From f2755315429157e21f5678d455254497f942fe75 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 2 Feb 2024 10:57:15 +0100 Subject: [PATCH 001/309] Add support for TS 5.4-beta --- .../lib/typescript/package-lock.json | 10 +- .../extractor/lib/typescript/package.json | 4 +- .../TypeScript/Types/printAst.expected | 151 ++++++++++++++---- .../TypeScript/Types/tests.expected | 20 +++ .../library-tests/TypeScript/Types/tst.ts | 8 + 5 files changed, 155 insertions(+), 38 deletions(-) diff --git a/javascript/extractor/lib/typescript/package-lock.json b/javascript/extractor/lib/typescript/package-lock.json index 2d448ae0448..fd672bf43c0 100644 --- a/javascript/extractor/lib/typescript/package-lock.json +++ b/javascript/extractor/lib/typescript/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "typescript-parser-wrapper", "dependencies": { - "typescript": "5.3.2" + "typescript": "5.4.0-beta" }, "devDependencies": { "@types/node": "18.15.3" @@ -20,9 +20,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "version": "5.4.0-beta", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.0-beta.tgz", + "integrity": "sha512-KgekV5JS7TQ7Bb8eO64QGxdM7MSBUUXOXq28OWX23d2MA8SiVtNYoo4s33tCTEGV8+6AGBRD2+KiXNNnexRRYw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -32,4 +32,4 @@ } } } -} +} \ No newline at end of file diff --git a/javascript/extractor/lib/typescript/package.json b/javascript/extractor/lib/typescript/package.json index 602379bc36a..2a636c3cdf3 100644 --- a/javascript/extractor/lib/typescript/package.json +++ b/javascript/extractor/lib/typescript/package.json @@ -2,7 +2,7 @@ "name": "typescript-parser-wrapper", "private": true, "dependencies": { - "typescript": "5.3.2" + "typescript": "5.4.0-beta" }, "scripts": { "build": "tsc --project tsconfig.json", @@ -14,4 +14,4 @@ "devDependencies": { "@types/node": "18.15.3" } -} +} \ No newline at end of file diff --git a/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected b/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected index 5f29995b854..90fa2b8dcda 100644 --- a/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected +++ b/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected @@ -124,6 +124,7 @@ nodes | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | +| file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | @@ -167,6 +168,8 @@ nodes | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | +| file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | +| file://:0:0:0:0 | (TypeParameters) | semmle.label | (TypeParameters) | | file://:0:0:0:0 | (TypeParameters) | semmle.label | (TypeParameters) | | file://:0:0:0:0 | (TypeParameters) | semmle.label | (TypeParameters) | | file://:0:0:0:0 | (TypeParameters) | semmle.label | (TypeParameters) | @@ -1757,8 +1760,36 @@ nodes | tst.ts:483:46:483:50 | [LocalTypeAccess] Pair3 | semmle.label | [LocalTypeAccess] Pair3 | | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3 | semmle.label | [GenericTypeExpr] Pair3 | | tst.ts:483:52:483:57 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | +| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | semmle.label | [NamespaceDeclaration] module ... ow"); } | +| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | semmle.order | 90 | +| tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.label | [VarDecl] TS54 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.label | [FunctionDeclStmt] functio ... 0]; } | +| tst.ts:487:12:487:28 | [VarDecl] createStreetLight | semmle.label | [VarDecl] createStreetLight | +| tst.ts:487:30:487:30 | [Identifier] C | semmle.label | [Identifier] C | +| tst.ts:487:30:487:45 | [TypeParameter] C extends string | semmle.label | [TypeParameter] C extends string | +| tst.ts:487:40:487:45 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | +| tst.ts:487:48:487:53 | [SimpleParameter] colors | semmle.label | [SimpleParameter] colors | +| tst.ts:487:56:487:56 | [LocalTypeAccess] C | semmle.label | [LocalTypeAccess] C | +| tst.ts:487:56:487:58 | [ArrayTypeExpr] C[] | semmle.label | [ArrayTypeExpr] C[] | +| tst.ts:487:61:487:72 | [SimpleParameter] defaultColor | semmle.label | [SimpleParameter] defaultColor | +| tst.ts:487:76:487:82 | [LocalTypeAccess] NoInfer | semmle.label | [LocalTypeAccess] NoInfer | +| tst.ts:487:76:487:85 | [GenericTypeExpr] NoInfer | semmle.label | [GenericTypeExpr] NoInfer | +| tst.ts:487:84:487:84 | [LocalTypeAccess] C | semmle.label | [LocalTypeAccess] C | +| tst.ts:487:88:489:3 | [BlockStmt] { r ... 0]; } | semmle.label | [BlockStmt] { r ... 0]; } | +| tst.ts:488:5:488:21 | [ReturnStmt] return colors[0]; | semmle.label | [ReturnStmt] return colors[0]; | +| tst.ts:488:12:488:17 | [VarRef] colors | semmle.label | [VarRef] colors | +| tst.ts:488:12:488:20 | [IndexExpr] colors[0] | semmle.label | [IndexExpr] colors[0] | +| tst.ts:488:19:488:19 | [Literal] 0 | semmle.label | [Literal] 0 | +| tst.ts:491:3:491:19 | [VarRef] createStreetLight | semmle.label | [VarRef] createStreetLight | +| tst.ts:491:3:491:57 | [CallExpr] createS ... ellow") | semmle.label | [CallExpr] createS ... ellow") | +| tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | semmle.label | [ExprStmt] createS ... llow"); | +| tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | semmle.label | [ArrayExpr] ["red", ... green"] | +| tst.ts:491:22:491:26 | [Literal] "red" | semmle.label | [Literal] "red" | +| tst.ts:491:29:491:36 | [Literal] "yellow" | semmle.label | [Literal] "yellow" | +| tst.ts:491:39:491:45 | [Literal] "green" | semmle.label | [Literal] "green" | +| tst.ts:491:49:491:56 | [Literal] "yellow" | semmle.label | [Literal] "yellow" | | tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.label | [ExportDeclaration] export ... 'b'; } | -| tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 90 | +| tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 91 | | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | [FunctionDeclStmt] functio ... 'b'; } | | tstModuleCJS.cts:1:17:1:28 | [VarDecl] tstModuleCJS | semmle.label | [VarDecl] tstModuleCJS | | tstModuleCJS.cts:1:33:1:35 | [LiteralTypeExpr] 'a' | semmle.label | [LiteralTypeExpr] 'a' | @@ -1776,7 +1807,7 @@ nodes | tstModuleCJS.cts:2:34:2:36 | [Literal] 'a' | semmle.label | [Literal] 'a' | | tstModuleCJS.cts:2:40:2:42 | [Literal] 'b' | semmle.label | [Literal] 'b' | | tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.label | [ExportDeclaration] export ... 'b'; } | -| tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 91 | +| tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 92 | | tstModuleES.mts:1:16:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | [FunctionDeclStmt] functio ... 'b'; } | | tstModuleES.mts:1:25:1:35 | [VarDecl] tstModuleES | semmle.label | [VarDecl] tstModuleES | | tstModuleES.mts:1:40:1:42 | [LiteralTypeExpr] 'a' | semmle.label | [LiteralTypeExpr] 'a' | @@ -1794,7 +1825,7 @@ nodes | tstModuleES.mts:2:34:2:36 | [Literal] 'a' | semmle.label | [Literal] 'a' | | tstModuleES.mts:2:40:2:42 | [Literal] 'b' | semmle.label | [Literal] 'b' | | tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } | -| tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 92 | +| tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 93 | | tstSuffixA.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } | | tstSuffixA.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile | | tstSuffixA.ts:1:33:1:47 | [LiteralTypeExpr] 'tstSuffixA.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixA.ts' | @@ -1802,7 +1833,7 @@ nodes | tstSuffixA.ts:2:5:2:27 | [ReturnStmt] return ... xA.ts'; | semmle.label | [ReturnStmt] return ... xA.ts'; | | tstSuffixA.ts:2:12:2:26 | [Literal] 'tstSuffixA.ts' | semmle.label | [Literal] 'tstSuffixA.ts' | | tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } | -| tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 93 | +| tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 94 | | tstSuffixB.ios.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } | | tstSuffixB.ios.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile | | tstSuffixB.ios.ts:1:33:1:51 | [LiteralTypeExpr] 'tstSuffixB.ios.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixB.ios.ts' | @@ -1810,7 +1841,7 @@ nodes | tstSuffixB.ios.ts:2:5:2:31 | [ReturnStmt] return ... os.ts'; | semmle.label | [ReturnStmt] return ... os.ts'; | | tstSuffixB.ios.ts:2:12:2:30 | [Literal] 'tstSuffixB.ios.ts' | semmle.label | [Literal] 'tstSuffixB.ios.ts' | | tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } | -| tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 94 | +| tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 95 | | tstSuffixB.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } | | tstSuffixB.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile | | tstSuffixB.ts:1:33:1:47 | [LiteralTypeExpr] 'tstSuffixB.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixB.ts' | @@ -1818,16 +1849,16 @@ nodes | tstSuffixB.ts:2:5:2:27 | [ReturnStmt] return ... xB.ts'; | semmle.label | [ReturnStmt] return ... xB.ts'; | | tstSuffixB.ts:2:12:2:26 | [Literal] 'tstSuffixB.ts' | semmle.label | [Literal] 'tstSuffixB.ts' | | type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | -| type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.order | 95 | +| type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.order | 96 | | type_alias.ts:1:6:1:6 | [Identifier] B | semmle.label | [Identifier] B | | type_alias.ts:1:10:1:16 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean | | type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.label | [DeclStmt] var b = ... | -| type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.order | 96 | +| type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.order | 97 | | type_alias.ts:3:5:3:5 | [VarDecl] b | semmle.label | [VarDecl] b | | type_alias.ts:3:5:3:8 | [VariableDeclarator] b: B | semmle.label | [VariableDeclarator] b: B | | type_alias.ts:3:8:3:8 | [LocalTypeAccess] B | semmle.label | [LocalTypeAccess] B | | type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay>; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Va ... ay>; | -| type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay>; | semmle.order | 97 | +| type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay>; | semmle.order | 98 | | type_alias.ts:5:6:5:17 | [Identifier] ValueOrArray | semmle.label | [Identifier] ValueOrArray | | type_alias.ts:5:19:5:19 | [Identifier] T | semmle.label | [Identifier] T | | type_alias.ts:5:19:5:19 | [TypeParameter] T | semmle.label | [TypeParameter] T | @@ -1839,14 +1870,14 @@ nodes | type_alias.ts:5:34:5:48 | [GenericTypeExpr] ValueOrArray | semmle.label | [GenericTypeExpr] ValueOrArray | | type_alias.ts:5:47:5:47 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T | | type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.label | [DeclStmt] var c = ... | -| type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.order | 98 | +| type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.order | 99 | | type_alias.ts:7:5:7:5 | [VarDecl] c | semmle.label | [VarDecl] c | | type_alias.ts:7:5:7:27 | [VariableDeclarator] c: Valu ... number> | semmle.label | [VariableDeclarator] c: Valu ... number> | | type_alias.ts:7:8:7:19 | [LocalTypeAccess] ValueOrArray | semmle.label | [LocalTypeAccess] ValueOrArray | | type_alias.ts:7:8:7:27 | [GenericTypeExpr] ValueOrArray | semmle.label | [GenericTypeExpr] ValueOrArray | | type_alias.ts:7:21:7:26 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | -| type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.order | 99 | +| type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.order | 100 | | type_alias.ts:9:6:9:9 | [Identifier] Json | semmle.label | [Identifier] Json | | type_alias.ts:10:5:15:12 | [UnionTypeExpr] \| strin ... Json[] | semmle.label | [UnionTypeExpr] \| strin ... Json[] | | type_alias.ts:10:7:10:12 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | @@ -1862,12 +1893,12 @@ nodes | type_alias.ts:15:7:15:10 | [LocalTypeAccess] Json | semmle.label | [LocalTypeAccess] Json | | type_alias.ts:15:7:15:12 | [ArrayTypeExpr] Json[] | semmle.label | [ArrayTypeExpr] Json[] | | type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.label | [DeclStmt] var json = ... | -| type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.order | 100 | +| type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.order | 101 | | type_alias.ts:17:5:17:8 | [VarDecl] json | semmle.label | [VarDecl] json | | type_alias.ts:17:5:17:14 | [VariableDeclarator] json: Json | semmle.label | [VariableDeclarator] json: Json | | type_alias.ts:17:11:17:14 | [LocalTypeAccess] Json | semmle.label | [LocalTypeAccess] Json | | type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | -| type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.order | 101 | +| type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.order | 102 | | type_alias.ts:19:6:19:16 | [Identifier] VirtualNode | semmle.label | [Identifier] VirtualNode | | type_alias.ts:20:5:21:56 | [UnionTypeExpr] \| strin ... Node[]] | semmle.label | [UnionTypeExpr] \| strin ... Node[]] | | type_alias.ts:20:7:20:12 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | @@ -1883,7 +1914,7 @@ nodes | type_alias.ts:21:43:21:53 | [LocalTypeAccess] VirtualNode | semmle.label | [LocalTypeAccess] VirtualNode | | type_alias.ts:21:43:21:55 | [ArrayTypeExpr] VirtualNode[] | semmle.label | [ArrayTypeExpr] VirtualNode[] | | type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.label | [DeclStmt] const myNode = ... | -| type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.order | 102 | +| type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.order | 103 | | type_alias.ts:23:7:23:12 | [VarDecl] myNode | semmle.label | [VarDecl] myNode | | type_alias.ts:23:7:27:5 | [VariableDeclarator] myNode: ... ] ] | semmle.label | [VariableDeclarator] myNode: ... ] ] | | type_alias.ts:23:15:23:25 | [LocalTypeAccess] VirtualNode | semmle.label | [LocalTypeAccess] VirtualNode | @@ -1908,12 +1939,12 @@ nodes | type_alias.ts:26:23:26:36 | [Literal] "second-child" | semmle.label | [Literal] "second-child" | | type_alias.ts:26:41:26:62 | [Literal] "I'm the second child" | semmle.label | [Literal] "I'm the second child" | | type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; | -| type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 103 | +| type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 104 | | type_definition_objects.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy | | type_definition_objects.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy | | type_definition_objects.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" | | type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.label | [ExportDeclaration] export class C {} | -| type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.order | 104 | +| type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.order | 105 | | type_definition_objects.ts:3:8:3:17 | [ClassDefinition,TypeDefinition] class C {} | semmle.label | [ClassDefinition,TypeDefinition] class C {} | | type_definition_objects.ts:3:14:3:14 | [VarDecl] C | semmle.label | [VarDecl] C | | type_definition_objects.ts:3:16:3:15 | [BlockStmt] {} | semmle.label | [BlockStmt] {} | @@ -1921,36 +1952,36 @@ nodes | type_definition_objects.ts:3:16:3:15 | [FunctionExpr] () {} | semmle.label | [FunctionExpr] () {} | | type_definition_objects.ts:3:16:3:15 | [Label] constructor | semmle.label | [Label] constructor | | type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.label | [DeclStmt] let classObj = ... | -| type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.order | 105 | +| type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.order | 106 | | type_definition_objects.ts:4:5:4:12 | [VarDecl] classObj | semmle.label | [VarDecl] classObj | | type_definition_objects.ts:4:5:4:16 | [VariableDeclarator] classObj = C | semmle.label | [VariableDeclarator] classObj = C | | type_definition_objects.ts:4:16:4:16 | [VarRef] C | semmle.label | [VarRef] C | | type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.label | [ExportDeclaration] export enum E {} | -| type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.order | 106 | +| type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.order | 107 | | type_definition_objects.ts:6:8:6:16 | [EnumDeclaration,TypeDefinition] enum E {} | semmle.label | [EnumDeclaration,TypeDefinition] enum E {} | | type_definition_objects.ts:6:13:6:13 | [VarDecl] E | semmle.label | [VarDecl] E | | type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.label | [DeclStmt] let enumObj = ... | -| type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.order | 107 | +| type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.order | 108 | | type_definition_objects.ts:7:5:7:11 | [VarDecl] enumObj | semmle.label | [VarDecl] enumObj | | type_definition_objects.ts:7:5:7:15 | [VariableDeclarator] enumObj = E | semmle.label | [VariableDeclarator] enumObj = E | | type_definition_objects.ts:7:15:7:15 | [VarRef] E | semmle.label | [VarRef] E | | type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.label | [ExportDeclaration] export ... e N {;} | -| type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.order | 108 | +| type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.order | 109 | | type_definition_objects.ts:9:8:9:22 | [NamespaceDeclaration] namespace N {;} | semmle.label | [NamespaceDeclaration] namespace N {;} | | type_definition_objects.ts:9:18:9:18 | [VarDecl] N | semmle.label | [VarDecl] N | | type_definition_objects.ts:9:21:9:21 | [EmptyStmt] ; | semmle.label | [EmptyStmt] ; | | type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.label | [DeclStmt] let namespaceObj = ... | -| type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.order | 109 | +| type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.order | 110 | | type_definition_objects.ts:10:5:10:16 | [VarDecl] namespaceObj | semmle.label | [VarDecl] namespaceObj | | type_definition_objects.ts:10:5:10:20 | [VariableDeclarator] namespaceObj = N | semmle.label | [VariableDeclarator] namespaceObj = N | | type_definition_objects.ts:10:20:10:20 | [VarRef] N | semmle.label | [VarRef] N | | type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; | -| type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 110 | +| type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 111 | | type_definitions.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy | | type_definitions.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy | | type_definitions.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" | | type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | -| type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.order | 111 | +| type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.order | 112 | | type_definitions.ts:3:11:3:11 | [Identifier] I | semmle.label | [Identifier] I | | type_definitions.ts:3:13:3:13 | [Identifier] S | semmle.label | [Identifier] S | | type_definitions.ts:3:13:3:13 | [TypeParameter] S | semmle.label | [TypeParameter] S | @@ -1958,14 +1989,14 @@ nodes | type_definitions.ts:4:3:4:7 | [FieldDeclaration] x: S; | semmle.label | [FieldDeclaration] x: S; | | type_definitions.ts:4:6:4:6 | [LocalTypeAccess] S | semmle.label | [LocalTypeAccess] S | | type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.label | [DeclStmt] let i = ... | -| type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.order | 112 | +| type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.order | 113 | | type_definitions.ts:6:5:6:5 | [VarDecl] i | semmle.label | [VarDecl] i | | type_definitions.ts:6:5:6:16 | [VariableDeclarator] i: I | semmle.label | [VariableDeclarator] i: I | | type_definitions.ts:6:8:6:8 | [LocalTypeAccess] I | semmle.label | [LocalTypeAccess] I | | type_definitions.ts:6:8:6:16 | [GenericTypeExpr] I | semmle.label | [GenericTypeExpr] I | | type_definitions.ts:6:10:6:15 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.label | [ClassDefinition,TypeDefinition] class C ... x: T } | -| type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.order | 113 | +| type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.order | 114 | | type_definitions.ts:8:7:8:7 | [VarDecl] C | semmle.label | [VarDecl] C | | type_definitions.ts:8:8:8:7 | [BlockStmt] {} | semmle.label | [BlockStmt] {} | | type_definitions.ts:8:8:8:7 | [ClassInitializedMember,ConstructorDefinition] constructor() {} | semmle.label | [ClassInitializedMember,ConstructorDefinition] constructor() {} | @@ -1977,14 +2008,14 @@ nodes | type_definitions.ts:9:3:9:6 | [FieldDeclaration] x: T | semmle.label | [FieldDeclaration] x: T | | type_definitions.ts:9:6:9:6 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T | | type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.label | [DeclStmt] let c = ... | -| type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.order | 114 | +| type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.order | 115 | | type_definitions.ts:11:5:11:5 | [VarDecl] c | semmle.label | [VarDecl] c | | type_definitions.ts:11:5:11:16 | [VariableDeclarator] c: C | semmle.label | [VariableDeclarator] c: C | | type_definitions.ts:11:8:11:8 | [LocalTypeAccess] C | semmle.label | [LocalTypeAccess] C | | type_definitions.ts:11:8:11:16 | [GenericTypeExpr] C | semmle.label | [GenericTypeExpr] C | | type_definitions.ts:11:10:11:15 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.label | [EnumDeclaration,TypeDefinition] enum Co ... blue } | -| type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.order | 115 | +| type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.order | 116 | | type_definitions.ts:13:6:13:10 | [VarDecl] Color | semmle.label | [VarDecl] Color | | type_definitions.ts:14:3:14:5 | [EnumMember,TypeDefinition] red | semmle.label | [EnumMember,TypeDefinition] red | | type_definitions.ts:14:3:14:5 | [VarDecl] red | semmle.label | [VarDecl] red | @@ -1993,29 +2024,29 @@ nodes | type_definitions.ts:14:15:14:18 | [EnumMember,TypeDefinition] blue | semmle.label | [EnumMember,TypeDefinition] blue | | type_definitions.ts:14:15:14:18 | [VarDecl] blue | semmle.label | [VarDecl] blue | | type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.label | [DeclStmt] let color = ... | -| type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.order | 116 | +| type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.order | 117 | | type_definitions.ts:16:5:16:9 | [VarDecl] color | semmle.label | [VarDecl] color | | type_definitions.ts:16:5:16:16 | [VariableDeclarator] color: Color | semmle.label | [VariableDeclarator] color: Color | | type_definitions.ts:16:12:16:16 | [LocalTypeAccess] Color | semmle.label | [LocalTypeAccess] Color | | type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.label | [EnumDeclaration,TypeDefinition] enum En ... ember } | -| type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.order | 117 | +| type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.order | 118 | | type_definitions.ts:18:6:18:22 | [VarDecl] EnumWithOneMember | semmle.label | [VarDecl] EnumWithOneMember | | type_definitions.ts:18:26:18:31 | [EnumMember,TypeDefinition] member | semmle.label | [EnumMember,TypeDefinition] member | | type_definitions.ts:18:26:18:31 | [VarDecl] member | semmle.label | [VarDecl] member | | type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.label | [DeclStmt] let e = ... | -| type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.order | 118 | +| type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.order | 119 | | type_definitions.ts:19:5:19:5 | [VarDecl] e | semmle.label | [VarDecl] e | | type_definitions.ts:19:5:19:24 | [VariableDeclarator] e: EnumWithOneMember | semmle.label | [VariableDeclarator] e: EnumWithOneMember | | type_definitions.ts:19:8:19:24 | [LocalTypeAccess] EnumWithOneMember | semmle.label | [LocalTypeAccess] EnumWithOneMember | | type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias = T[]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Alias = T[]; | -| type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias = T[]; | semmle.order | 119 | +| type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias = T[]; | semmle.order | 120 | | type_definitions.ts:21:6:21:10 | [Identifier] Alias | semmle.label | [Identifier] Alias | | type_definitions.ts:21:12:21:12 | [Identifier] T | semmle.label | [Identifier] T | | type_definitions.ts:21:12:21:12 | [TypeParameter] T | semmle.label | [TypeParameter] T | | type_definitions.ts:21:17:21:17 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T | | type_definitions.ts:21:17:21:19 | [ArrayTypeExpr] T[] | semmle.label | [ArrayTypeExpr] T[] | | type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.label | [DeclStmt] let aliasForNumberArray = ... | -| type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.order | 120 | +| type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.order | 121 | | type_definitions.ts:22:5:22:23 | [VarDecl] aliasForNumberArray | semmle.label | [VarDecl] aliasForNumberArray | | type_definitions.ts:22:5:22:38 | [VariableDeclarator] aliasFo ... number> | semmle.label | [VariableDeclarator] aliasFo ... number> | | type_definitions.ts:22:26:22:30 | [LocalTypeAccess] Alias | semmle.label | [LocalTypeAccess] Alias | @@ -2216,6 +2247,10 @@ edges | file://:0:0:0:0 | (Arguments) | tst.ts:478:17:478:42 | [IndexExpr] SomeCla ... tadata] | semmle.order | 0 | | file://:0:0:0:0 | (Arguments) | tst.ts:483:17:483:58 | [SatisfiesExpr] ["hello ... string> | semmle.label | 0 | | file://:0:0:0:0 | (Arguments) | tst.ts:483:17:483:58 | [SatisfiesExpr] ["hello ... string> | semmle.order | 0 | +| file://:0:0:0:0 | (Arguments) | tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | semmle.label | 0 | +| file://:0:0:0:0 | (Arguments) | tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | semmle.order | 0 | +| file://:0:0:0:0 | (Arguments) | tst.ts:491:49:491:56 | [Literal] "yellow" | semmle.label | 1 | +| file://:0:0:0:0 | (Arguments) | tst.ts:491:49:491:56 | [Literal] "yellow" | semmle.order | 1 | | file://:0:0:0:0 | (Parameters) | tst.ts:14:17:14:17 | [SimpleParameter] x | semmle.label | 0 | | file://:0:0:0:0 | (Parameters) | tst.ts:14:17:14:17 | [SimpleParameter] x | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | tst.ts:14:28:14:28 | [SimpleParameter] y | semmle.label | 1 | @@ -2314,6 +2349,10 @@ edges | file://:0:0:0:0 | (Parameters) | tst.ts:474:12:474:18 | [SimpleParameter] _target | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | tst.ts:474:21:474:28 | [SimpleParameter] _context | semmle.label | 1 | | file://:0:0:0:0 | (Parameters) | tst.ts:474:21:474:28 | [SimpleParameter] _context | semmle.order | 1 | +| file://:0:0:0:0 | (Parameters) | tst.ts:487:48:487:53 | [SimpleParameter] colors | semmle.label | 0 | +| file://:0:0:0:0 | (Parameters) | tst.ts:487:48:487:53 | [SimpleParameter] colors | semmle.order | 0 | +| file://:0:0:0:0 | (Parameters) | tst.ts:487:61:487:72 | [SimpleParameter] defaultColor | semmle.label | 1 | +| file://:0:0:0:0 | (Parameters) | tst.ts:487:61:487:72 | [SimpleParameter] defaultColor | semmle.order | 1 | | file://:0:0:0:0 | (Parameters) | type_alias.ts:14:10:14:17 | [SimpleParameter] property | semmle.label | 0 | | file://:0:0:0:0 | (Parameters) | type_alias.ts:14:10:14:17 | [SimpleParameter] property | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | type_alias.ts:21:19:21:21 | [SimpleParameter] key | semmle.label | 0 | @@ -2346,6 +2385,8 @@ edges | file://:0:0:0:0 | (TypeParameters) | tst.ts:462:40:462:72 | [TypeParameter] const T ... tring[] | semmle.order | 0 | | file://:0:0:0:0 | (TypeParameters) | tst.ts:481:16:481:16 | [TypeParameter] T | semmle.label | 0 | | file://:0:0:0:0 | (TypeParameters) | tst.ts:481:16:481:16 | [TypeParameter] T | semmle.order | 0 | +| file://:0:0:0:0 | (TypeParameters) | tst.ts:487:30:487:45 | [TypeParameter] C extends string | semmle.label | 0 | +| file://:0:0:0:0 | (TypeParameters) | tst.ts:487:30:487:45 | [TypeParameter] C extends string | semmle.order | 0 | | file://:0:0:0:0 | (TypeParameters) | type_alias.ts:5:19:5:19 | [TypeParameter] T | semmle.label | 0 | | file://:0:0:0:0 | (TypeParameters) | type_alias.ts:5:19:5:19 | [TypeParameter] T | semmle.order | 0 | | file://:0:0:0:0 | (TypeParameters) | type_definitions.ts:3:13:3:13 | [TypeParameter] S | semmle.label | 0 | @@ -5182,6 +5223,54 @@ edges | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3 | tst.ts:483:46:483:50 | [LocalTypeAccess] Pair3 | semmle.order | 1 | | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3 | tst.ts:483:52:483:57 | [KeywordTypeExpr] string | semmle.label | 2 | | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3 | tst.ts:483:52:483:57 | [KeywordTypeExpr] string | semmle.order | 2 | +| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.label | 1 | +| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.order | 1 | +| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.label | 2 | +| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.order | 2 | +| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | semmle.label | 3 | +| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | semmle.order | 3 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | file://:0:0:0:0 | (Parameters) | semmle.label | 1 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | file://:0:0:0:0 | (Parameters) | semmle.order | 1 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | file://:0:0:0:0 | (TypeParameters) | semmle.label | 2 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | file://:0:0:0:0 | (TypeParameters) | semmle.order | 2 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | tst.ts:487:12:487:28 | [VarDecl] createStreetLight | semmle.label | 0 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | tst.ts:487:12:487:28 | [VarDecl] createStreetLight | semmle.order | 0 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | tst.ts:487:88:489:3 | [BlockStmt] { r ... 0]; } | semmle.label | 5 | +| tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | tst.ts:487:88:489:3 | [BlockStmt] { r ... 0]; } | semmle.order | 5 | +| tst.ts:487:30:487:45 | [TypeParameter] C extends string | tst.ts:487:30:487:30 | [Identifier] C | semmle.label | 1 | +| tst.ts:487:30:487:45 | [TypeParameter] C extends string | tst.ts:487:30:487:30 | [Identifier] C | semmle.order | 1 | +| tst.ts:487:30:487:45 | [TypeParameter] C extends string | tst.ts:487:40:487:45 | [KeywordTypeExpr] string | semmle.label | 2 | +| tst.ts:487:30:487:45 | [TypeParameter] C extends string | tst.ts:487:40:487:45 | [KeywordTypeExpr] string | semmle.order | 2 | +| tst.ts:487:48:487:53 | [SimpleParameter] colors | tst.ts:487:56:487:58 | [ArrayTypeExpr] C[] | semmle.label | -2 | +| tst.ts:487:48:487:53 | [SimpleParameter] colors | tst.ts:487:56:487:58 | [ArrayTypeExpr] C[] | semmle.order | -2 | +| tst.ts:487:56:487:58 | [ArrayTypeExpr] C[] | tst.ts:487:56:487:56 | [LocalTypeAccess] C | semmle.label | 1 | +| tst.ts:487:56:487:58 | [ArrayTypeExpr] C[] | tst.ts:487:56:487:56 | [LocalTypeAccess] C | semmle.order | 1 | +| tst.ts:487:61:487:72 | [SimpleParameter] defaultColor | tst.ts:487:76:487:85 | [GenericTypeExpr] NoInfer | semmle.label | -2 | +| tst.ts:487:61:487:72 | [SimpleParameter] defaultColor | tst.ts:487:76:487:85 | [GenericTypeExpr] NoInfer | semmle.order | -2 | +| tst.ts:487:76:487:85 | [GenericTypeExpr] NoInfer | tst.ts:487:76:487:82 | [LocalTypeAccess] NoInfer | semmle.label | 1 | +| tst.ts:487:76:487:85 | [GenericTypeExpr] NoInfer | tst.ts:487:76:487:82 | [LocalTypeAccess] NoInfer | semmle.order | 1 | +| tst.ts:487:76:487:85 | [GenericTypeExpr] NoInfer | tst.ts:487:84:487:84 | [LocalTypeAccess] C | semmle.label | 2 | +| tst.ts:487:76:487:85 | [GenericTypeExpr] NoInfer | tst.ts:487:84:487:84 | [LocalTypeAccess] C | semmle.order | 2 | +| tst.ts:487:88:489:3 | [BlockStmt] { r ... 0]; } | tst.ts:488:5:488:21 | [ReturnStmt] return colors[0]; | semmle.label | 1 | +| tst.ts:487:88:489:3 | [BlockStmt] { r ... 0]; } | tst.ts:488:5:488:21 | [ReturnStmt] return colors[0]; | semmle.order | 1 | +| tst.ts:488:5:488:21 | [ReturnStmt] return colors[0]; | tst.ts:488:12:488:20 | [IndexExpr] colors[0] | semmle.label | 1 | +| tst.ts:488:5:488:21 | [ReturnStmt] return colors[0]; | tst.ts:488:12:488:20 | [IndexExpr] colors[0] | semmle.order | 1 | +| tst.ts:488:12:488:20 | [IndexExpr] colors[0] | tst.ts:488:12:488:17 | [VarRef] colors | semmle.label | 1 | +| tst.ts:488:12:488:20 | [IndexExpr] colors[0] | tst.ts:488:12:488:17 | [VarRef] colors | semmle.order | 1 | +| tst.ts:488:12:488:20 | [IndexExpr] colors[0] | tst.ts:488:19:488:19 | [Literal] 0 | semmle.label | 2 | +| tst.ts:488:12:488:20 | [IndexExpr] colors[0] | tst.ts:488:19:488:19 | [Literal] 0 | semmle.order | 2 | +| tst.ts:491:3:491:57 | [CallExpr] createS ... ellow") | file://:0:0:0:0 | (Arguments) | semmle.label | 1 | +| tst.ts:491:3:491:57 | [CallExpr] createS ... ellow") | file://:0:0:0:0 | (Arguments) | semmle.order | 1 | +| tst.ts:491:3:491:57 | [CallExpr] createS ... ellow") | tst.ts:491:3:491:19 | [VarRef] createStreetLight | semmle.label | 0 | +| tst.ts:491:3:491:57 | [CallExpr] createS ... ellow") | tst.ts:491:3:491:19 | [VarRef] createStreetLight | semmle.order | 0 | +| tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | tst.ts:491:3:491:57 | [CallExpr] createS ... ellow") | semmle.label | 1 | +| tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | tst.ts:491:3:491:57 | [CallExpr] createS ... ellow") | semmle.order | 1 | +| tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:22:491:26 | [Literal] "red" | semmle.label | 1 | +| tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:22:491:26 | [Literal] "red" | semmle.order | 1 | +| tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:29:491:36 | [Literal] "yellow" | semmle.label | 2 | +| tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:29:491:36 | [Literal] "yellow" | semmle.order | 2 | +| tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:39:491:45 | [Literal] "green" | semmle.label | 3 | +| tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:39:491:45 | [Literal] "green" | semmle.order | 3 | | tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | 1 | | tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.order | 1 | | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | tstModuleCJS.cts:1:17:1:28 | [VarDecl] tstModuleCJS | semmle.label | 0 | diff --git a/javascript/ql/test/library-tests/TypeScript/Types/tests.expected b/javascript/ql/test/library-tests/TypeScript/Types/tests.expected index 986ae56a664..49a1f1e000f 100644 --- a/javascript/ql/test/library-tests/TypeScript/Types/tests.expected +++ b/javascript/ql/test/library-tests/TypeScript/Types/tests.expected @@ -658,6 +658,17 @@ getExprType | tst.ts:483:17:483:58 | ["hello ... string> | [first: string, string] | | tst.ts:483:18:483:24 | "hello" | "hello" | | tst.ts:483:27:483:33 | "world" | "world" | +| tst.ts:486:8:486:11 | TS54 | typeof TS54 in library-tests/TypeScript/Types/tst.ts | +| tst.ts:487:48:487:53 | colors | C[] | +| tst.ts:488:12:488:17 | colors | C[] | +| tst.ts:488:12:488:20 | colors[0] | C | +| tst.ts:488:19:488:19 | 0 | 0 | +| tst.ts:491:3:491:57 | createS ... ellow") | "red" \| "green" \| "yellow" | +| tst.ts:491:21:491:46 | ["red", ... green"] | ("red" \| "green" \| "yellow")[] | +| tst.ts:491:22:491:26 | "red" | "red" | +| tst.ts:491:29:491:36 | "yellow" | "yellow" | +| tst.ts:491:39:491:45 | "green" | "green" | +| tst.ts:491:49:491:56 | "yellow" | "yellow" | | tstModuleCJS.cts:1:17:1:28 | tstModuleCJS | () => "a" \| "b" | | tstModuleCJS.cts:2:12:2:15 | Math | Math | | tstModuleCJS.cts:2:12:2:22 | Math.random | () => number | @@ -1138,6 +1149,12 @@ getTypeExprType | tst.ts:483:46:483:50 | Pair3 | Pair3 | | tst.ts:483:46:483:58 | Pair3 | Pair3 | | tst.ts:483:52:483:57 | string | string | +| tst.ts:487:30:487:30 | C | C | +| tst.ts:487:40:487:45 | string | string | +| tst.ts:487:56:487:56 | C | C | +| tst.ts:487:56:487:58 | C[] | C[] | +| tst.ts:487:76:487:82 | NoInfer | any | +| tst.ts:487:84:487:84 | C | C | | tstModuleCJS.cts:1:33:1:35 | 'a' | "a" | | tstModuleCJS.cts:1:33:1:41 | 'a' \| 'b' | "a" \| "b" | | tstModuleCJS.cts:1:39:1:41 | 'b' | "b" | @@ -1359,16 +1376,19 @@ unionIndex | "circle" | 0 | "circle" \| "square" | | "function" | 7 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | | "green" | 1 | "red" \| "green" \| "blue" | +| "green" | 1 | "red" \| "green" \| "yellow" | | "hello" | 0 | "hello" \| 42 | | "number" | 1 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | | "number" | 1 | keyof TypeMap | | "object" | 6 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | | "red" | 0 | "red" \| "green" \| "blue" | +| "red" | 0 | "red" \| "green" \| "yellow" | | "square" | 1 | "circle" \| "square" | | "string" | 0 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | | "string" | 0 | keyof TypeMap | | "symbol" | 4 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | | "undefined" | 5 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | +| "yellow" | 2 | "red" \| "green" \| "yellow" | | () => number | 0 | (() => number) \| (ClassMethodDecoratorContext number | 1 | void \| (() => number) | | ClassMethodDecoratorContext numbe... | 1 | (() => number) \| (ClassMethodDecoratorContext = [first: T, T]; console.log(["hello", "world"] satisfies Pair3); +} + +module TS54 { + function createStreetLight(colors: C[], defaultColor?: NoInfer) { + return colors[0]; + } + + createStreetLight(["red", "yellow", "green"], "yellow"); } \ No newline at end of file From f433039a2514cc03e6129f6496dc43a4bfad0ce8 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 2 Feb 2024 11:23:35 +0100 Subject: [PATCH 002/309] Add change note --- javascript/ql/lib/change-notes/2024-02-02-typescript-5-4.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2024-02-02-typescript-5-4.md diff --git a/javascript/ql/lib/change-notes/2024-02-02-typescript-5-4.md b/javascript/ql/lib/change-notes/2024-02-02-typescript-5-4.md new file mode 100644 index 00000000000..836719b5d6b --- /dev/null +++ b/javascript/ql/lib/change-notes/2024-02-02-typescript-5-4.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Added support for TypeScript 5.4. \ No newline at end of file From 3b1751dc8a6716d9a8bb9eecda2475c1f4b2408e Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Fri, 2 Feb 2024 11:45:21 +0100 Subject: [PATCH 003/309] Update supported versions --- docs/codeql/reusables/supported-versions-compilers.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index cb9ee322a04..525fe7730a8 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -25,7 +25,7 @@ Python [9]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12",Not applicable,``.py`` Ruby [10]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``" Swift [11]_,"Swift 5.4-5.9.1","Swift compiler","``.swift``" - TypeScript [12]_,"2.6-5.3",Standard TypeScript compiler,"``.ts``, ``.tsx``, ``.mts``, ``.cts``" + TypeScript [12]_,"2.6-5.4",Standard TypeScript compiler,"``.ts``, ``.tsx``, ``.mts``, ``.cts``" .. container:: footnote-group From 083f56921c8c4adced9e7e8ce2c945b1848dcd50 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Sun, 25 Feb 2024 21:20:41 +0100 Subject: [PATCH 004/309] update to 5.4.1-rc --- javascript/extractor/lib/typescript/package-lock.json | 8 ++++---- javascript/extractor/lib/typescript/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/javascript/extractor/lib/typescript/package-lock.json b/javascript/extractor/lib/typescript/package-lock.json index fd672bf43c0..af309c3b451 100644 --- a/javascript/extractor/lib/typescript/package-lock.json +++ b/javascript/extractor/lib/typescript/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "typescript-parser-wrapper", "dependencies": { - "typescript": "5.4.0-beta" + "typescript": "5.4.1-rc" }, "devDependencies": { "@types/node": "18.15.3" @@ -20,9 +20,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.4.0-beta", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.0-beta.tgz", - "integrity": "sha512-KgekV5JS7TQ7Bb8eO64QGxdM7MSBUUXOXq28OWX23d2MA8SiVtNYoo4s33tCTEGV8+6AGBRD2+KiXNNnexRRYw==", + "version": "5.4.1-rc", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.1-rc.tgz", + "integrity": "sha512-gInURzaO0bbfzfQAc3mfcHxh8qev+No4QOFUZHajo9vBgOLaljELJ3wuzyoGo/zHIzMSezdhtrsRdqL6E9SvNA==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/javascript/extractor/lib/typescript/package.json b/javascript/extractor/lib/typescript/package.json index 2a636c3cdf3..6a315fed292 100644 --- a/javascript/extractor/lib/typescript/package.json +++ b/javascript/extractor/lib/typescript/package.json @@ -2,7 +2,7 @@ "name": "typescript-parser-wrapper", "private": true, "dependencies": { - "typescript": "5.4.0-beta" + "typescript": "5.4.1-rc" }, "scripts": { "build": "tsc --project tsconfig.json", From a03c06802e7f08baadf6796dc19a968cd72fdc67 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 6 Feb 2024 09:34:20 +0000 Subject: [PATCH 005/309] Ruby: Add some more command injection sinks --- ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll | 10 ++++++++-- ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll | 8 +++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll index 96568e74902..2aa46ab550a 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll @@ -130,13 +130,19 @@ module Kernel { * `Kernel.spawn` takes the same argument forms as `Kernel.system`. * See `KernelSystemCall` for details. * Ruby documentation: https://docs.ruby-lang.org/en/3.0.0/Kernel.html#method-i-spawn + * Methods with the same effect exist in the `Process` and `PTY` classes, so they are also modeled here. * TODO: document and handle the env and option arguments. * ``` * spawn([env,] command... [,options]) -> pid * ``` */ - class KernelSpawnCall extends SystemCommandExecution::Range instanceof KernelMethodCall { - KernelSpawnCall() { this.getMethodName() = "spawn" } + class KernelSpawnCall extends SystemCommandExecution::Range instanceof DataFlow::CallNode { + KernelSpawnCall() { + this.getMethodName() = "spawn" and + this instanceof KernelMethodCall + or + this = DataFlow::getConstant(["Process", "PTY"]).getAMethodCall("spawn") + } override DataFlow::Node getAnArgument() { result = super.getArgument(_) } diff --git a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll index e65f3005503..5f349c451f3 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll @@ -7,7 +7,7 @@ private import codeql.ruby.ApiGraphs private import codeql.ruby.Concepts /** - * Provides modeling for the `Open3` library. + * Provides modeling for the `Open3` and `Open4` libraries. */ module Open3 { /** @@ -18,8 +18,10 @@ module Open3 { class Open3Call extends SystemCommandExecution::Range instanceof DataFlow::CallNode { Open3Call() { this = - API::getTopLevelMember("Open3") - .getAMethodCall(["popen3", "popen2", "popen2e", "capture3", "capture2", "capture2e"]) + API::getTopLevelMember(["Open3", "Open4"]) + .getAMethodCall([ + "popen3", "popen2", "popen2e", "capture3", "capture2", "capture2e", "popen4" + ]) } override DataFlow::Node getAnArgument() { result = super.getArgument(_) } From beef9965cc48174538cc8346fa056ca5fdec5c22 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Mon, 26 Feb 2024 10:35:08 +0000 Subject: [PATCH 006/309] Ruby: Model Open4 library Also remove duplicate modeling of Process.spawn. --- .../codeql/ruby/frameworks/core/Kernel.qll | 3 --- .../codeql/ruby/frameworks/stdlib/Open3.qll | 19 +++++++++++++++---- .../frameworks/stdlib/Open3.expected | 4 ++++ .../library-tests/frameworks/stdlib/Open3.ql | 2 ++ .../library-tests/frameworks/stdlib/Open3.rb | 6 +++++- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll index 2aa46ab550a..cc3ce9feb97 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll @@ -130,7 +130,6 @@ module Kernel { * `Kernel.spawn` takes the same argument forms as `Kernel.system`. * See `KernelSystemCall` for details. * Ruby documentation: https://docs.ruby-lang.org/en/3.0.0/Kernel.html#method-i-spawn - * Methods with the same effect exist in the `Process` and `PTY` classes, so they are also modeled here. * TODO: document and handle the env and option arguments. * ``` * spawn([env,] command... [,options]) -> pid @@ -140,8 +139,6 @@ module Kernel { KernelSpawnCall() { this.getMethodName() = "spawn" and this instanceof KernelMethodCall - or - this = DataFlow::getConstant(["Process", "PTY"]).getAMethodCall("spawn") } override DataFlow::Node getAnArgument() { result = super.getArgument(_) } diff --git a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll index 5f349c451f3..f2eb16d2aa8 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll @@ -18,10 +18,8 @@ module Open3 { class Open3Call extends SystemCommandExecution::Range instanceof DataFlow::CallNode { Open3Call() { this = - API::getTopLevelMember(["Open3", "Open4"]) - .getAMethodCall([ - "popen3", "popen2", "popen2e", "capture3", "capture2", "capture2e", "popen4" - ]) + API::getTopLevelMember("Open3") + .getAMethodCall(["popen3", "popen2", "popen2e", "capture3", "capture2", "capture2e"]) } override DataFlow::Node getAnArgument() { result = super.getArgument(_) } @@ -33,6 +31,19 @@ module Open3 { } } + class Open4Call extends SystemCommandExecution::Range instanceof DataFlow::CallNode { + Open4Call() { + this = API::getTopLevelMember("Open4").getAMethodCall(["open4", "popen4", "spawn"]) + } + + override DataFlow::Node getAnArgument() { result = super.getArgument(_) } + + override predicate isShellInterpreted(DataFlow::Node arg) { + super.getNumberOfArguments() = 1 and + arg = this.getAnArgument() + } + } + /** * A pipeline of system commands constructed via one of the `Open3` methods. * These methods accept a variable argument list of commands. diff --git a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.expected b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.expected index a601d199ff6..48bc6fc27f6 100644 --- a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.expected +++ b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.expected @@ -11,3 +11,7 @@ open3PipelineCallExecutions | Open3.rb:9:1:9:40 | call to pipeline_w | | Open3.rb:10:1:10:44 | call to pipeline_start | | Open3.rb:11:1:11:38 | call to pipeline | +open4CallExecutions +| Open3.rb:13:1:13:24 | call to open4 | +| Open3.rb:14:1:14:25 | call to popen4 | +| Open3.rb:15:1:15:23 | call to spawn | diff --git a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.ql b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.ql index 8d98734832d..014573d7010 100644 --- a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.ql +++ b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.ql @@ -4,3 +4,5 @@ import codeql.ruby.DataFlow query predicate open3CallExecutions(Open3Call c) { any() } query predicate open3PipelineCallExecutions(Open3PipelineCall c) { any() } + +query predicate open4CallExecutions(Open4Call c) { any() } diff --git a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.rb b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.rb index b1a3d491be1..4a112335ffb 100644 --- a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.rb +++ b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.rb @@ -8,4 +8,8 @@ Open3.pipeline_rw("echo foo", "grep bar") Open3.pipeline_r("echo foo", "grep bar") Open3.pipeline_w("echo foo", "grep bar") Open3.pipeline_start("echo foo", "grep bar") -Open3.pipeline("echo foo", "grep bar") \ No newline at end of file +Open3.pipeline("echo foo", "grep bar") + +Open4::open4("echo foo") +Open4::popen4("echo foo") +Open4.spawn("echo bar") From d1847566b6b5988254f826a6fd42727308bbddcb Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Mon, 26 Feb 2024 10:41:30 +0000 Subject: [PATCH 007/309] Ruby: Ql4QL fix --- ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll | 7 ++----- ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll | 5 +++++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll index cc3ce9feb97..96568e74902 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Kernel.qll @@ -135,11 +135,8 @@ module Kernel { * spawn([env,] command... [,options]) -> pid * ``` */ - class KernelSpawnCall extends SystemCommandExecution::Range instanceof DataFlow::CallNode { - KernelSpawnCall() { - this.getMethodName() = "spawn" and - this instanceof KernelMethodCall - } + class KernelSpawnCall extends SystemCommandExecution::Range instanceof KernelMethodCall { + KernelSpawnCall() { this.getMethodName() = "spawn" } override DataFlow::Node getAnArgument() { result = super.getArgument(_) } diff --git a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll index f2eb16d2aa8..16b9ecc3797 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll @@ -31,6 +31,11 @@ module Open3 { } } + /** + * A system command executed via one of the `Open4` methods. + * These methods take the same argument forms as `Kernel.system`. + * See `KernelSystemCall` for details. + */ class Open4Call extends SystemCommandExecution::Range instanceof DataFlow::CallNode { Open4Call() { this = API::getTopLevelMember("Open4").getAMethodCall(["open4", "popen4", "spawn"]) From 9d13a1ff515b86bd84e3897335734736ad7354e3 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Mon, 26 Feb 2024 10:43:48 +0000 Subject: [PATCH 008/309] Ruby: Add model for Process.spawn --- .../codeql/ruby/frameworks/stdlib/Process.qll | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ruby/ql/lib/codeql/ruby/frameworks/stdlib/Process.qll diff --git a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Process.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Process.qll new file mode 100644 index 00000000000..1ffc15d691b --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Process.qll @@ -0,0 +1,35 @@ +/** + * Provides modeling for the `Process` library. + */ + +private import codeql.ruby.Concepts +private import codeql.ruby.DataFlow +private import codeql.ruby.controlflow.CfgNodes +private import codeql.ruby.frameworks.core.Kernel + +/** + * Provides modeling for the `Process` library. + */ +module Process { + /** + * A call to `Process.spawn`. + * ```rb + * Process.spawn("tar xf ruby-2.0.0-p195.tar.bz2") + * Process.spawn({"ENV" => "VAR"}, "echo", "hi") + * ``` + */ + class SpawnCall extends SystemCommandExecution::Range instanceof DataFlow::CallNode { + SpawnCall() { this = DataFlow::getConstant(["Process", "PTY"]).getAMethodCall("spawn") } + + // The command can be argument 0 or 1 + // Options can be specified after the command, and we want to exclude those. + override DataFlow::Node getAnArgument() { + result = super.getArgument([0, 1]) and not result.asExpr() instanceof ExprNodes::PairCfgNode + } + + override predicate isShellInterpreted(DataFlow::Node arg) { + // Process.spawn invokes a subshell if you provide a single string as argument + super.getNumberOfArguments() = 1 and arg = this.getAnArgument() + } + } +} From 8bed3fbed442ecdfee770b494d6a188f71025aa1 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Mon, 26 Feb 2024 10:57:17 +0000 Subject: [PATCH 009/309] Ruby: Add basic model for Terrapin library --- .../codeql/ruby/frameworks/terrapin/model.yml | 41 +++++++++++++++++++ .../CommandInjection.expected | 10 +++++ .../CommandInjection/CommandInjection.rb | 11 ++++- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 ruby/ql/lib/codeql/ruby/frameworks/terrapin/model.yml diff --git a/ruby/ql/lib/codeql/ruby/frameworks/terrapin/model.yml b/ruby/ql/lib/codeql/ruby/frameworks/terrapin/model.yml new file mode 100644 index 00000000000..c111ca5efbc --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/frameworks/terrapin/model.yml @@ -0,0 +1,41 @@ +extensions: + - addsTo: + pack: codeql/ruby-all + extensible: sourceModel + data: [] + + - addsTo: + pack: codeql/ruby-all + extensible: sinkModel + data: + - ["Terrapin::CommandLine!","Method[new].Argument[0]","command-injection"] + - ["Terrapin::CommandLine!","Method[new].Argument[1]","command-injection"] + + - addsTo: + pack: codeql/ruby-all + extensible: summaryModel + data: + - ["Terrapin::CommandLine::Output!","Method[new]","Argument[1]","ReturnValue","value"] + - ["Terrapin::CommandLine!","Method[path=]","Argument[0]","ReturnValue","taint"] + - ["Terrapin::CommandLine!","Method[new]","Argument[2]","ReturnValue","taint"] + + - addsTo: + pack: codeql/ruby-all + extensible: neutralModel + data: [] + + - addsTo: + pack: codeql/ruby-all + extensible: typeModel + data: + - ["Terrapin::CommandLine::Output","Terrapin::CommandLine::MultiPipe","Method[output].ReturnValue"] + - ["Terrapin::CommandLine::Output","Terrapin::CommandLine::FakeRunner","Method[call].ReturnValue"] + - ["Terrapin::CommandLine::Output","Terrapin::CommandLine::ProcessRunner","Method[call].ReturnValue"] + - ["Terrapin::CommandLine::Output","Terrapin::CommandLine!","Method[runner].ReturnValue.ReturnValue"] + - ["Terrapin::CommandLine::FakeRunner","Terrapin::CommandLine!","Method[runner].ReturnValue"] + - ["Terrapin::CommandLine::Output","Terrapin::CommandLine!","Method[fake!].ReturnValue.ReturnValue"] + - ["Terrapin::CommandLine::FakeRunner","Terrapin::CommandLine!","Method[fake!].ReturnValue"] + - ["Terrapin::CommandLine::Output","Terrapin::CommandLine","Method[output].ReturnValue"] + - ["Terrapin::CommandLineError","Terrapin::CommandNotFoundError",""] + - ["Terrapin::CommandLineError","Terrapin::ExitStatusError",""] + - ["Terrapin::CommandLineError","Terrapin::InterpolationError",""] diff --git a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected index be4473409b7..0ca6e123e7b 100644 --- a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected @@ -21,6 +21,9 @@ edges | CommandInjection.rb:103:9:103:12 | file | CommandInjection.rb:104:16:104:28 | "cat #{...}" | provenance | | | CommandInjection.rb:103:16:103:21 | call to params | CommandInjection.rb:103:16:103:28 | ...[...] | provenance | | | CommandInjection.rb:103:16:103:28 | ...[...] | CommandInjection.rb:103:9:103:12 | file | provenance | | +| CommandInjection.rb:111:33:111:38 | call to params | CommandInjection.rb:111:33:111:44 | ...[...] | provenance | | +| CommandInjection.rb:113:44:113:49 | call to params | CommandInjection.rb:113:44:113:54 | ...[...] | provenance | | +| CommandInjection.rb:113:44:113:54 | ...[...] | CommandInjection.rb:113:41:113:56 | "#{...}" | provenance | | nodes | CommandInjection.rb:6:9:6:11 | cmd | semmle.label | cmd | | CommandInjection.rb:6:15:6:20 | call to params | semmle.label | call to params | @@ -51,6 +54,11 @@ nodes | CommandInjection.rb:103:16:103:21 | call to params | semmle.label | call to params | | CommandInjection.rb:103:16:103:28 | ...[...] | semmle.label | ...[...] | | CommandInjection.rb:104:16:104:28 | "cat #{...}" | semmle.label | "cat #{...}" | +| CommandInjection.rb:111:33:111:38 | call to params | semmle.label | call to params | +| CommandInjection.rb:111:33:111:44 | ...[...] | semmle.label | ...[...] | +| CommandInjection.rb:113:41:113:56 | "#{...}" | semmle.label | "#{...}" | +| CommandInjection.rb:113:44:113:49 | call to params | semmle.label | call to params | +| CommandInjection.rb:113:44:113:54 | ...[...] | semmle.label | ...[...] | subpaths #select | CommandInjection.rb:7:10:7:15 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:7:10:7:15 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | @@ -67,3 +75,5 @@ subpaths | CommandInjection.rb:82:14:82:34 | "echo #{...}" | CommandInjection.rb:81:23:81:33 | blah_number | CommandInjection.rb:82:14:82:34 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:81:23:81:33 | blah_number | user-provided value | | CommandInjection.rb:91:14:91:39 | "echo #{...}" | CommandInjection.rb:91:22:91:37 | ...[...] | CommandInjection.rb:91:14:91:39 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:91:22:91:37 | ...[...] | user-provided value | | CommandInjection.rb:104:16:104:28 | "cat #{...}" | CommandInjection.rb:103:16:103:21 | call to params | CommandInjection.rb:104:16:104:28 | "cat #{...}" | This command depends on a $@. | CommandInjection.rb:103:16:103:21 | call to params | user-provided value | +| CommandInjection.rb:111:33:111:44 | ...[...] | CommandInjection.rb:111:33:111:38 | call to params | CommandInjection.rb:111:33:111:44 | ...[...] | This command depends on a $@. | CommandInjection.rb:111:33:111:38 | call to params | user-provided value | +| CommandInjection.rb:113:41:113:56 | "#{...}" | CommandInjection.rb:113:44:113:49 | call to params | CommandInjection.rb:113:41:113:56 | "#{...}" | This command depends on a $@. | CommandInjection.rb:113:44:113:49 | call to params | user-provided value | diff --git a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.rb b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.rb index 4be9c95924a..12c15a30b15 100644 --- a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.rb +++ b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.rb @@ -106,4 +106,13 @@ class Foo < ActionController::Base system("cat #{file.shellescape}") # OK, because file is shell escaped end -end \ No newline at end of file + + def index + Terrapin::CommandLine.new(params[:foo], "bar") # BAD + + Terrapin::CommandLine.new("echo", "#{params[foo]}") # BAD + + cmd = Terrapin::CommandLine.new("echo", ":msg") + cmd.run(msg: params[:foo]) # GOOD + end +end From 3eb9491cb4e44659ddcbeed635bf6961eb49fef0 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Mon, 26 Feb 2024 17:18:40 +0100 Subject: [PATCH 010/309] python: rewrite `HardcodedCredentials` away from `PointsTo` - `ModuleValue.attr` and `ClassValue.lookup` are approximated by `Function.getName` - `ClassValue.getName` is apprximated by `Class.getName` - `Module::named` is approximated by `Module.getName` - `Value::named` is approximated by `Builtins::likelyBuiltin` - `FunctionValue.getNamedArgumentForCall` is approximated by `ArgumentNode.argumentOf` --- .../src/Security/CWE-798/HardcodedCredentials.ql | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/python/ql/src/Security/CWE-798/HardcodedCredentials.ql b/python/ql/src/Security/CWE-798/HardcodedCredentials.ql index 0a92427ec23..04197b13610 100644 --- a/python/ql/src/Security/CWE-798/HardcodedCredentials.ql +++ b/python/ql/src/Security/CWE-798/HardcodedCredentials.ql @@ -16,6 +16,8 @@ import python import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import semmle.python.filters.Tests +private import semmle.python.dataflow.new.internal.DataFlowDispatch as DataFlowDispatch +private import semmle.python.dataflow.new.internal.Builtins::Builtins as Builtins bindingset[char, fraction] predicate fewer_characters_than(StrConst str, string char, float fraction) { @@ -30,15 +32,13 @@ predicate fewer_characters_than(StrConst str, string char, float fraction) { } predicate possible_reflective_name(string name) { - exists(any(ModuleValue m).attr(name)) + any(Function f).getName() = name or - exists(any(ClassValue c).lookup(name)) + any(Class c).getName() = name or - any(ClassValue c).getName() = name + any(Module m).getName() = name or - exists(Module::named(name)) - or - exists(Value::named(name)) + exists(Builtins::likelyBuiltin(name)) } int char_count(StrConst str) { result = count(string c | c = str.getText().charAt(_)) } @@ -84,7 +84,9 @@ class CredentialSink extends DataFlow::Node { name.regexpMatch(getACredentialRegex()) and not name.matches("%file") | - any(FunctionValue func).getNamedArgumentForCall(_, name) = this.asCfgNode() + exists(DataFlowDispatch::ArgumentPosition pos | pos.isKeyword(name) | + this.(DataFlow::ArgumentNode).argumentOf(_, pos) + ) or exists(Keyword k | k.getArg() = name and k.getValue().getAFlowNode() = this.asCfgNode()) or From b4b5ae2a2c53503538b1cab99c7499ca97f536a1 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Tue, 27 Feb 2024 10:05:26 +0100 Subject: [PATCH 011/309] add some request-forgery sanitizers, inspired from C# --- .../code/java/security/RequestForgery.qll | 77 +++++++++++++++++++ .../CWE-601/semmle/tests/UrlRedirect.expected | 2 + .../CWE-601/semmle/tests/UrlRedirect2.java | 52 +++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect2.java diff --git a/java/ql/lib/semmle/code/java/security/RequestForgery.qll b/java/ql/lib/semmle/code/java/security/RequestForgery.qll index 7a72faeb5e4..e083977c74f 100644 --- a/java/ql/lib/semmle/code/java/security/RequestForgery.qll +++ b/java/ql/lib/semmle/code/java/security/RequestForgery.qll @@ -8,6 +8,7 @@ import semmle.code.java.frameworks.JaxWS import semmle.code.java.frameworks.javase.Http import semmle.code.java.dataflow.DataFlow import semmle.code.java.frameworks.Properties +private import semmle.code.java.controlflow.Guards private import semmle.code.java.dataflow.StringPrefixes private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.security.Sanitizers @@ -83,3 +84,79 @@ private class HostnameSanitizingPrefix extends InterestingPrefix { private class HostnameSantizer extends RequestForgerySanitizer { HostnameSantizer() { this.asExpr() = any(HostnameSanitizingPrefix hsp).getAnAppendedExpression() } } + +/** + * An argument to a call to `List.contains()` that is a sanitizer for URL redirects. + */ +private predicate isContainsUrlSanitizer(Guard guard, Expr e, boolean branch) { + guard = + any(MethodCall method | + method.getMethod().getName() = "contains" and + e = method.getArgument(0) and + branch = true + ) +} + +/** + * An URL argument to a call to `.contains()` that is a sanitizer for URL redirects. + * + * This `contains` method is usually called on a list, but the sanitizer matches any call to a method + * called `contains`, so other methods with the same name will also be considered sanitizers. + */ +class ContainsUrlSanitizer extends RequestForgerySanitizer { + ContainsUrlSanitizer() { + this = DataFlow::BarrierGuard::getABarrierNode() + } +} + +/** + * A check that the URL is relative, and therefore safe for URL redirects. + */ +private predicate isRelativeUrlSanitizer(Guard guard, Expr e, boolean branch) { + guard = + any(MethodCall call | + exists(Method method | + call.getMethod() = method and + method.getName() = "isAbsolute" and + method.getDeclaringType().hasQualifiedName("java.net", "URI") + ) and + e = call.getQualifier() and + branch = false + ) +} + +/** + * A check that the URL is relative, and therefore safe for URL redirects. + */ +class RelativeUrlSanitizer extends RequestForgerySanitizer { + RelativeUrlSanitizer() { + this = DataFlow::BarrierGuard::getABarrierNode() + } +} + +/** + * A comparison on the host of a url, that is a sanitizer for URL redirects. + * E.g. `"example.org".equals(url.getHost())"` + */ +private predicate isHostComparisonSanitizer(Guard guard, Expr e, boolean branch) { + guard = + any(MethodCall equalsCall | + equalsCall.getMethod().getName() = "equals" and + branch = true and + exists(MethodCall hostCall | + hostCall = [equalsCall.getQualifier(), equalsCall.getArgument(0)] and + hostCall.getMethod().getName() = "getHost" and + hostCall.getMethod().getDeclaringType().hasQualifiedName("java.net", "URI") and + e = hostCall.getQualifier() + ) + ) +} + +/** + * A comparison on the `Host` property of a url, that is a sanitizer for URL redirects. + */ +class HostComparisonSanitizer extends RequestForgerySanitizer { + HostComparisonSanitizer() { + this = DataFlow::BarrierGuard::getABarrierNode() + } +} diff --git a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected index 3757e51134b..cf5af88efd8 100644 --- a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected +++ b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected @@ -6,6 +6,7 @@ edges | mad/Test.java:9:16:9:41 | getParameter(...) : String | mad/Test.java:14:31:14:38 | source(...) : String | provenance | | | mad/Test.java:14:31:14:38 | source(...) : String | mad/Test.java:14:22:14:38 | (...)... | provenance | | nodes +| UrlRedirect2.java:27:25:27:54 | getParameter(...) | semmle.label | getParameter(...) | | UrlRedirect.java:23:25:23:54 | getParameter(...) | semmle.label | getParameter(...) | | UrlRedirect.java:32:25:32:67 | weakCleanup(...) | semmle.label | weakCleanup(...) | | UrlRedirect.java:32:37:32:66 | getParameter(...) : String | semmle.label | getParameter(...) : String | @@ -20,6 +21,7 @@ nodes subpaths | UrlRedirect.java:32:37:32:66 | getParameter(...) : String | UrlRedirect.java:45:28:45:39 | input : String | UrlRedirect.java:46:10:46:40 | replaceAll(...) : String | UrlRedirect.java:32:25:32:67 | weakCleanup(...) | #select +| UrlRedirect2.java:27:25:27:54 | getParameter(...) | UrlRedirect2.java:27:25:27:54 | getParameter(...) | UrlRedirect2.java:27:25:27:54 | getParameter(...) | Untrusted URL redirection depends on a $@. | UrlRedirect2.java:27:25:27:54 | getParameter(...) | user-provided value | | UrlRedirect.java:23:25:23:54 | getParameter(...) | UrlRedirect.java:23:25:23:54 | getParameter(...) | UrlRedirect.java:23:25:23:54 | getParameter(...) | Untrusted URL redirection depends on a $@. | UrlRedirect.java:23:25:23:54 | getParameter(...) | user-provided value | | UrlRedirect.java:32:25:32:67 | weakCleanup(...) | UrlRedirect.java:32:37:32:66 | getParameter(...) : String | UrlRedirect.java:32:25:32:67 | weakCleanup(...) | Untrusted URL redirection depends on a $@. | UrlRedirect.java:32:37:32:66 | getParameter(...) | user-provided value | | UrlRedirect.java:39:34:39:63 | getParameter(...) | UrlRedirect.java:39:34:39:63 | getParameter(...) | UrlRedirect.java:39:34:39:63 | getParameter(...) | Untrusted URL redirection depends on a $@. | UrlRedirect.java:39:34:39:63 | getParameter(...) | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect2.java b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect2.java new file mode 100644 index 00000000000..9014dcae7f2 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect2.java @@ -0,0 +1,52 @@ +// Test case for +// CWE-601: URL Redirection to Untrusted Site ('Open Redirect') +// http://cwe.mitre.org/data/definitions/601.html + +package test.cwe601.cwe.examples; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.net.URI; +import java.net.URISyntaxException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class UrlRedirect2 extends HttpServlet { + private static final List VALID_REDIRECTS = Arrays.asList( + "http://cwe.mitre.org/data/definitions/601.html", + "http://cwe.mitre.org/data/definitions/79.html" + ); + + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + // BAD: a request parameter is incorporated without validation into a URL redirect + response.sendRedirect(request.getParameter("target")); + + // GOOD: the request parameter is validated against a known list of strings + String target = request.getParameter("target"); + if (VALID_REDIRECTS.contains(target)) { + response.sendRedirect(target); + } + + try { + String urlString = request.getParameter("page"); + URI url = new URI(urlString); + + if (!url.isAbsolute()) { + // GOOD: The redirect is to a relative URL + response.sendRedirect(url.toString()); + } + + if ("example.org".equals(url.getHost())) { + // GOOD: The redirect is to a known host + response.sendRedirect(url.toString()); + } + } catch (URISyntaxException e) { + // handle exception + } + } +} From d0e7fbc871de377f6ab2693ce624e325902ea754 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 27 Feb 2024 09:47:51 +0000 Subject: [PATCH 012/309] Ruby: Add changenote --- ruby/ql/lib/change-notes/2024-02-27-process-spawn.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2024-02-27-process-spawn.md diff --git a/ruby/ql/lib/change-notes/2024-02-27-process-spawn.md b/ruby/ql/lib/change-notes/2024-02-27-process-spawn.md new file mode 100644 index 00000000000..30feedcbd20 --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-27-process-spawn.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* New command injection sinks have been added, including `Process.spawn`, `Terrapin::CommandLine` and the `open4` gem. \ No newline at end of file From 052a8e7f8187026396db06545647afc47f2dbde4 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 28 Feb 2024 14:58:04 +0100 Subject: [PATCH 013/309] JS: Avoid spurious recursion in AMD --- javascript/ql/lib/semmle/javascript/AMD.qll | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/AMD.qll b/javascript/ql/lib/semmle/javascript/AMD.qll index 20b1c26275a..7214005b593 100644 --- a/javascript/ql/lib/semmle/javascript/AMD.qll +++ b/javascript/ql/lib/semmle/javascript/AMD.qll @@ -102,9 +102,10 @@ class AmdModuleDefinition extends CallExpr instanceof AmdModuleDefinition::Range /** * Holds if `p` is the parameter corresponding to dependency `dep`. */ - predicate dependencyParameter(PathExpr dep, Parameter p) { + predicate dependencyParameter(Expr dep, Parameter p) { exists(int i | - dep = this.getDependency(i) and + // Note: to avoid spurious recursion, do not depend on PathExpr here + dep = this.getDependencies().getElement(i) and p = this.getFactoryParameter(i) ) } @@ -122,9 +123,9 @@ class AmdModuleDefinition extends CallExpr instanceof AmdModuleDefinition::Range * `dep1` and `dep2`. */ Parameter getDependencyParameter(string name) { - exists(PathExpr dep | + exists(Expr dep | this.dependencyParameter(dep, result) and - dep.getValue() = name + name = dep.getStringValue() ) } From 853397361fceb4395df26e52d1a5b46b259d2915 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 28 Feb 2024 13:51:28 +0100 Subject: [PATCH 014/309] JS: Do not treat AMD pseudo-dependencies as file paths --- javascript/ql/lib/semmle/javascript/AMD.qll | 14 ++++++++++++-- .../ql/test/library-tests/AMD/tests.expected | 1 - 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/AMD.qll b/javascript/ql/lib/semmle/javascript/AMD.qll index 7214005b593..b28dd5b9b72 100644 --- a/javascript/ql/lib/semmle/javascript/AMD.qll +++ b/javascript/ql/lib/semmle/javascript/AMD.qll @@ -61,7 +61,13 @@ class AmdModuleDefinition extends CallExpr instanceof AmdModuleDefinition::Range } /** Gets the `i`th dependency of this module definition. */ - PathExpr getDependency(int i) { result = this.getDependencies().getElement(i) } + PathExpr getDependency(int i) { + exists(Expr expr | + expr = this.getDependencies().getElement(i) and + not isPseudoDependency(expr.getStringValue()) and + result = expr + ) + } /** Gets a dependency of this module definition. */ PathExpr getADependency() { @@ -203,11 +209,15 @@ class AmdModuleDefinition extends CallExpr instanceof AmdModuleDefinition::Range } } +private predicate isPseudoDependency(string s) { s = ["exports", "require", "module"] } + /** An AMD dependency, considered as a path expression. */ private class AmdDependencyPath extends PathExprCandidate { AmdDependencyPath() { exists(AmdModuleDefinition amd | - this = amd.getDependencies().getAnElement() or + this = amd.getDependencies().getAnElement() and + not isPseudoDependency(this.getStringValue()) + or this = amd.getARequireCall().getAnArgument() ) } diff --git a/javascript/ql/test/library-tests/AMD/tests.expected b/javascript/ql/test/library-tests/AMD/tests.expected index 265a7f291df..ce9d6f60f5d 100644 --- a/javascript/ql/test/library-tests/AMD/tests.expected +++ b/javascript/ql/test/library-tests/AMD/tests.expected @@ -61,7 +61,6 @@ amdModuleDefinition | umd.js:4:9:4:43 | define( ... actory) | umd.js:1:18:1:24 | factory | | umd.js:4:9:4:43 | define( ... actory) | umd.js:9:9:14:1 | functio ... };\\n} | amdModuleDependencies -| tst2.js:1:1:3:2 | define( ... 42;\\n}) | tst2.js:1:9:1:17 | 'exports' | | tst3.js:1:1:3:2 | define( ... 42;\\n}) | tst3.js:2:21:2:25 | './a' | | tst4.js:1:1:11:2 | define( ... };\\n}) | tst4.js:2:9:2:14 | 'a.js' | | tst4.js:1:1:11:2 | define( ... };\\n}) | tst4.js:3:9:3:13 | 'foo' | From 9f01ea68f7d3ce004d54cf3d4132c2a2b89b0bea Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 10:19:49 +0100 Subject: [PATCH 015/309] Python: Add type-tracking consistency query For now I'm only ignoring stdlib nodes, so it's easy for reviewer to see why we need to have more excludes :) --- .../TypeTrackingConsistency.ql | 12 +++++ .../TypeTrackingConsistency.expected | 50 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 python/ql/consistency-queries/TypeTrackingConsistency.ql create mode 100644 python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/consistency-queries/TypeTrackingConsistency.ql b/python/ql/consistency-queries/TypeTrackingConsistency.ql new file mode 100644 index 00000000000..f338c4dcb1d --- /dev/null +++ b/python/ql/consistency-queries/TypeTrackingConsistency.ql @@ -0,0 +1,12 @@ +private import python +private import semmle.python.dataflow.new.DataFlow +private import semmle.python.dataflow.new.internal.DataFlowPrivate as DataFlowPrivate +private import semmle.python.dataflow.new.internal.TypeTrackingImpl + +private module ConsistencyChecksInput implements ConsistencyChecksInputSig { + predicate unreachableNodeExclude(DataFlow::Node n) { + not exists(n.getLocation().getFile().getRelativePath()) + } +} + +import ConsistencyChecks diff --git a/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected new file mode 100644 index 00000000000..8f036153e53 --- /dev/null +++ b/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected @@ -0,0 +1,50 @@ +unreachableNode +| attribute_tests.py:6:5:6:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:12:9:12:9 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:13:5:13:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:28:5:28:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:29:17:29:17 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:30:5:30:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:39:13:39:13 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:45:5:45:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:77:10:77:16 | [post] ControlFlowNode for MyClass | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:89:13:89:13 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:95:5:95:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:102:13:102:13 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:109:5:109:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:117:5:117:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:123:5:123:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:130:5:130:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:137:5:137:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:150:18:150:21 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:153:19:153:22 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:156:34:156:37 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:159:12:159:21 | [pre] ControlFlowNode for MyClass2() | Unreachable node in step of kind call. | +| attribute_tests.py:160:7:160:14 | [post] ControlFlowNode for instance | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:167:20:167:23 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:170:19:170:22 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:173:34:173:37 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:177:1:177:8 | [post] ControlFlowNode for instance | Unreachable node in step of kind simpleLocalSmallStep. | +| attribute_tests.py:178:1:178:8 | [post] ControlFlowNode for instance | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:54:5:54:12 | [post] ControlFlowNode for mymodule | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:55:9:55:16 | [post] ControlFlowNode for mymodule | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:72:15:72:15 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:74:13:74:17 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:92:9:92:13 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:98:2:98:13 | [post] ControlFlowNode for my_decorator | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:130:15:130:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:133:15:133:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:136:15:136:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:142:15:142:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:145:15:145:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:148:15:148:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:151:20:151:23 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:152:9:152:12 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:153:9:153:13 | [post] ControlFlowNode for super | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:162:5:162:7 | [post] ControlFlowNode for foo | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:163:9:163:11 | [post] ControlFlowNode for foo | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:179:14:179:24 | [post] ControlFlowNode for get_tracked | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:181:1:181:5 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:188:9:188:13 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:192:9:192:13 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:208:14:208:30 | [post] ControlFlowNode for yielding_function | Unreachable node in step of kind simpleLocalSmallStep. | From bbe8c6dcaa3f0702741b83d9706f01ca5d713be2 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 10:23:50 +0100 Subject: [PATCH 016/309] Python: Remove synth postupdate nodes from tt-consistency --- .../TypeTrackingConsistency.ql | 2 + .../TypeTrackingConsistency.expected | 48 ------------------- 2 files changed, 2 insertions(+), 48 deletions(-) diff --git a/python/ql/consistency-queries/TypeTrackingConsistency.ql b/python/ql/consistency-queries/TypeTrackingConsistency.ql index f338c4dcb1d..772960b08a8 100644 --- a/python/ql/consistency-queries/TypeTrackingConsistency.ql +++ b/python/ql/consistency-queries/TypeTrackingConsistency.ql @@ -6,6 +6,8 @@ private import semmle.python.dataflow.new.internal.TypeTrackingImpl private module ConsistencyChecksInput implements ConsistencyChecksInputSig { predicate unreachableNodeExclude(DataFlow::Node n) { not exists(n.getLocation().getFile().getRelativePath()) + or + n instanceof DataFlowPrivate::SyntheticPostUpdateNode } } diff --git a/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected index 8f036153e53..8cba9c02c17 100644 --- a/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected +++ b/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected @@ -1,50 +1,2 @@ unreachableNode -| attribute_tests.py:6:5:6:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:12:9:12:9 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:13:5:13:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:28:5:28:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:29:17:29:17 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:30:5:30:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:39:13:39:13 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:45:5:45:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:77:10:77:16 | [post] ControlFlowNode for MyClass | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:89:13:89:13 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:95:5:95:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:102:13:102:13 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:109:5:109:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:117:5:117:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:123:5:123:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:130:5:130:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:137:5:137:5 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:150:18:150:21 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:153:19:153:22 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:156:34:156:37 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | | attribute_tests.py:159:12:159:21 | [pre] ControlFlowNode for MyClass2() | Unreachable node in step of kind call. | -| attribute_tests.py:160:7:160:14 | [post] ControlFlowNode for instance | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:167:20:167:23 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:170:19:170:22 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:173:34:173:37 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:177:1:177:8 | [post] ControlFlowNode for instance | Unreachable node in step of kind simpleLocalSmallStep. | -| attribute_tests.py:178:1:178:8 | [post] ControlFlowNode for instance | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:54:5:54:12 | [post] ControlFlowNode for mymodule | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:55:9:55:16 | [post] ControlFlowNode for mymodule | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:72:15:72:15 | [post] ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:74:13:74:17 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:92:9:92:13 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:98:2:98:13 | [post] ControlFlowNode for my_decorator | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:130:15:130:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:133:15:133:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:136:15:136:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:142:15:142:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:145:15:145:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:148:15:148:18 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:151:20:151:23 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:152:9:152:12 | [post] ControlFlowNode for self | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:153:9:153:13 | [post] ControlFlowNode for super | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:162:5:162:7 | [post] ControlFlowNode for foo | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:163:9:163:11 | [post] ControlFlowNode for foo | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:179:14:179:24 | [post] ControlFlowNode for get_tracked | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:181:1:181:5 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:188:9:188:13 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:192:9:192:13 | [post] ControlFlowNode for print | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:208:14:208:30 | [post] ControlFlowNode for yielding_function | Unreachable node in step of kind simpleLocalSmallStep. | From ff5f79475099580c8652062988352f37143206bb Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 10:27:29 +0100 Subject: [PATCH 017/309] Python: Exclude synth preupdate nodes from tt-consistency ... and that should be it :+1: (so that's why I'm allowing the tests to run on all data-flow nodes again) --- python/ql/consistency-queries/TypeTrackingConsistency.ql | 4 ++-- .../typetracking/CONSISTENCY/TypeTrackingConsistency.expected | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/consistency-queries/TypeTrackingConsistency.ql b/python/ql/consistency-queries/TypeTrackingConsistency.ql index 772960b08a8..3083f2b5f1a 100644 --- a/python/ql/consistency-queries/TypeTrackingConsistency.ql +++ b/python/ql/consistency-queries/TypeTrackingConsistency.ql @@ -5,9 +5,9 @@ private import semmle.python.dataflow.new.internal.TypeTrackingImpl private module ConsistencyChecksInput implements ConsistencyChecksInputSig { predicate unreachableNodeExclude(DataFlow::Node n) { - not exists(n.getLocation().getFile().getRelativePath()) - or n instanceof DataFlowPrivate::SyntheticPostUpdateNode + or + n instanceof DataFlowPrivate::SyntheticPreUpdateNode } } diff --git a/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected deleted file mode 100644 index 8cba9c02c17..00000000000 --- a/python/ql/test/experimental/dataflow/typetracking/CONSISTENCY/TypeTrackingConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -unreachableNode -| attribute_tests.py:159:12:159:21 | [pre] ControlFlowNode for MyClass2() | Unreachable node in step of kind call. | From bff95c4c1b5ed5fca74215dccd3190758b9679e9 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 13:58:33 +0100 Subject: [PATCH 018/309] Python: Add example of consistency failure --- .../Arguments/CONSISTENCY/TypeTrackingConsistency.expected | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 python/ql/test/query-tests/Classes/Arguments/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/test/query-tests/Classes/Arguments/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/query-tests/Classes/Arguments/CONSISTENCY/TypeTrackingConsistency.expected new file mode 100644 index 00000000000..c48725c1ebf --- /dev/null +++ b/python/ql/test/query-tests/Classes/Arguments/CONSISTENCY/TypeTrackingConsistency.expected @@ -0,0 +1,7 @@ +unreachableNode +| wrong_arguments.py:65:1:65:7 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | +| wrong_arguments.py:66:1:66:7 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | +| wrong_arguments.py:67:1:67:12 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | +| wrong_arguments.py:71:1:71:7 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | +| wrong_arguments.py:72:1:72:12 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | +| wrong_arguments.py:73:1:73:7 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | From 1658a1cb801e140d185e6064a190c2bc0f613126 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 13:59:00 +0100 Subject: [PATCH 019/309] Python: Ignore SynthDictSplatArgumentNode failures --- python/ql/consistency-queries/TypeTrackingConsistency.ql | 3 +++ .../Arguments/CONSISTENCY/TypeTrackingConsistency.expected | 7 ------- 2 files changed, 3 insertions(+), 7 deletions(-) delete mode 100644 python/ql/test/query-tests/Classes/Arguments/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/consistency-queries/TypeTrackingConsistency.ql b/python/ql/consistency-queries/TypeTrackingConsistency.ql index 3083f2b5f1a..68f9e9e5fa7 100644 --- a/python/ql/consistency-queries/TypeTrackingConsistency.ql +++ b/python/ql/consistency-queries/TypeTrackingConsistency.ql @@ -8,6 +8,9 @@ private module ConsistencyChecksInput implements ConsistencyChecksInputSig { n instanceof DataFlowPrivate::SyntheticPostUpdateNode or n instanceof DataFlowPrivate::SyntheticPreUpdateNode + or + // TODO: when adding support for proper content, handle **kwargs passing better! + n instanceof DataFlowPrivate::SynthDictSplatArgumentNode } } diff --git a/python/ql/test/query-tests/Classes/Arguments/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/query-tests/Classes/Arguments/CONSISTENCY/TypeTrackingConsistency.expected deleted file mode 100644 index c48725c1ebf..00000000000 --- a/python/ql/test/query-tests/Classes/Arguments/CONSISTENCY/TypeTrackingConsistency.expected +++ /dev/null @@ -1,7 +0,0 @@ -unreachableNode -| wrong_arguments.py:65:1:65:7 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | -| wrong_arguments.py:66:1:66:7 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | -| wrong_arguments.py:67:1:67:12 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | -| wrong_arguments.py:71:1:71:7 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | -| wrong_arguments.py:72:1:72:12 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | -| wrong_arguments.py:73:1:73:7 | SynthDictSplatArgumentNode | Unreachable node in step of kind call. | From 5d212514c63ae288371b3878d64f6ed01d7e543b Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 14:07:08 +0100 Subject: [PATCH 020/309] Python: Add example of consistency failure --- .../TypeTrackingConsistency.expected | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 python/ql/test/experimental/dataflow/match/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/test/experimental/dataflow/match/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/experimental/dataflow/match/CONSISTENCY/TypeTrackingConsistency.expected new file mode 100644 index 00000000000..52cd572e19f --- /dev/null +++ b/python/ql/test/experimental/dataflow/match/CONSISTENCY/TypeTrackingConsistency.expected @@ -0,0 +1,51 @@ +unreachableNode +| test.py:72:15:72:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:72:15:72:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:72:18:72:18 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:72:18:72:18 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:73:20:73:20 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:74:18:74:18 | ControlFlowNode for y | Unreachable node in step of kind call. | +| test.py:79:15:79:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:79:15:79:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:79:18:79:18 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:79:18:79:18 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:80:20:80:20 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:81:18:81:18 | ControlFlowNode for y | Unreachable node in step of kind call. | +| test.py:89:15:89:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:89:15:89:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:89:19:89:19 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:89:19:89:19 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:90:20:90:20 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:96:15:96:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:96:15:96:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:96:19:96:19 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:96:19:96:19 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:97:18:97:18 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:103:15:103:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:103:15:103:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:103:19:103:19 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:103:19:103:19 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:104:20:104:20 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:110:15:110:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:110:15:110:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:110:19:110:19 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:110:19:110:19 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:111:18:111:18 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:117:20:117:20 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:117:20:117:20 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:117:28:117:28 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:117:28:117:28 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:118:20:118:20 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:119:18:119:18 | ControlFlowNode for y | Unreachable node in step of kind call. | +| test.py:125:20:125:20 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:125:20:125:20 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:126:20:126:20 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:132:20:132:20 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:132:20:132:20 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:133:18:133:18 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:151:27:151:27 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:151:27:151:27 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:152:18:152:18 | ControlFlowNode for x | Unreachable node in step of kind call. | +| test.py:155:27:155:27 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:155:27:155:27 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:156:20:156:20 | ControlFlowNode for x | Unreachable node in step of kind call. | From bcd5c08ebd2693690e5bdba177c023668cf45e5b Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 14:15:32 +0100 Subject: [PATCH 021/309] Python: Ignore match-related inconsistencies --- .../TypeTrackingConsistency.ql | 9 ++++ .../TypeTrackingConsistency.expected | 51 ------------------- 2 files changed, 9 insertions(+), 51 deletions(-) delete mode 100644 python/ql/test/experimental/dataflow/match/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/consistency-queries/TypeTrackingConsistency.ql b/python/ql/consistency-queries/TypeTrackingConsistency.ql index 68f9e9e5fa7..b2349fc0f1c 100644 --- a/python/ql/consistency-queries/TypeTrackingConsistency.ql +++ b/python/ql/consistency-queries/TypeTrackingConsistency.ql @@ -11,6 +11,15 @@ private module ConsistencyChecksInput implements ConsistencyChecksInputSig { or // TODO: when adding support for proper content, handle **kwargs passing better! n instanceof DataFlowPrivate::SynthDictSplatArgumentNode + or + // TODO: when adding support for proper content, handle unpacking tuples in match + // cases better, such as + // + // match (NONSOURCE, SOURCE): + // case (x, y): ... + exists(DataFlow::Node m | m.asCfgNode().getNode() instanceof MatchCapturePattern | + TypeTrackingInput::simpleLocalSmallStep*(m, n) + ) } } diff --git a/python/ql/test/experimental/dataflow/match/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/experimental/dataflow/match/CONSISTENCY/TypeTrackingConsistency.expected deleted file mode 100644 index 52cd572e19f..00000000000 --- a/python/ql/test/experimental/dataflow/match/CONSISTENCY/TypeTrackingConsistency.expected +++ /dev/null @@ -1,51 +0,0 @@ -unreachableNode -| test.py:72:15:72:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:72:15:72:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:72:18:72:18 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:72:18:72:18 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:73:20:73:20 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:74:18:74:18 | ControlFlowNode for y | Unreachable node in step of kind call. | -| test.py:79:15:79:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:79:15:79:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:79:18:79:18 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:79:18:79:18 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:80:20:80:20 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:81:18:81:18 | ControlFlowNode for y | Unreachable node in step of kind call. | -| test.py:89:15:89:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:89:15:89:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:89:19:89:19 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:89:19:89:19 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:90:20:90:20 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:96:15:96:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:96:15:96:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:96:19:96:19 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:96:19:96:19 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:97:18:97:18 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:103:15:103:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:103:15:103:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:103:19:103:19 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:103:19:103:19 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:104:20:104:20 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:110:15:110:15 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:110:15:110:15 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:110:19:110:19 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:110:19:110:19 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:111:18:111:18 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:117:20:117:20 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:117:20:117:20 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:117:28:117:28 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:117:28:117:28 | ControlFlowNode for y | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:118:20:118:20 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:119:18:119:18 | ControlFlowNode for y | Unreachable node in step of kind call. | -| test.py:125:20:125:20 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:125:20:125:20 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:126:20:126:20 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:132:20:132:20 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:132:20:132:20 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:133:18:133:18 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:151:27:151:27 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:151:27:151:27 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:152:18:152:18 | ControlFlowNode for x | Unreachable node in step of kind call. | -| test.py:155:27:155:27 | ControlFlowNode for MatchCapturePattern | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:155:27:155:27 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:156:20:156:20 | ControlFlowNode for x | Unreachable node in step of kind call. | From 7e3e5db3dbde7aa9304c758bd21141deff2225e6 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 14:21:16 +0100 Subject: [PATCH 022/309] Python: Add example of consistency failure --- .../TypeTrackingConsistency.expected | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 python/ql/test/experimental/dataflow/coverage/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/test/experimental/dataflow/coverage/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/experimental/dataflow/coverage/CONSISTENCY/TypeTrackingConsistency.expected new file mode 100644 index 00000000000..30f0348dc6d --- /dev/null +++ b/python/ql/test/experimental/dataflow/coverage/CONSISTENCY/TypeTrackingConsistency.expected @@ -0,0 +1,18 @@ +unreachableNode +| test.py:215:16:215:19 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:226:17:226:20 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:231:20:231:24 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:580:9:580:12 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:589:5:589:11 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:589:6:589:10 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:589:7:589:9 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:618:7:618:16 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:626:7:626:16 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:634:6:634:17 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:646:6:646:14 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:655:7:655:13 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:664:7:664:13 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:673:6:673:14 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:693:9:693:11 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:701:9:701:12 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | +| test.py:710:9:710:14 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | From 7c60562132247d13ee75a9e466caa73f8e1ebba6 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 1 Mar 2024 14:22:18 +0100 Subject: [PATCH 023/309] Python: Ignore IterableSequenceNode inconsistencies --- .../TypeTrackingConsistency.ql | 4 ++++ .../TypeTrackingConsistency.expected | 18 ------------------ 2 files changed, 4 insertions(+), 18 deletions(-) delete mode 100644 python/ql/test/experimental/dataflow/coverage/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/consistency-queries/TypeTrackingConsistency.ql b/python/ql/consistency-queries/TypeTrackingConsistency.ql index b2349fc0f1c..b8f1e3a1b48 100644 --- a/python/ql/consistency-queries/TypeTrackingConsistency.ql +++ b/python/ql/consistency-queries/TypeTrackingConsistency.ql @@ -20,6 +20,10 @@ private module ConsistencyChecksInput implements ConsistencyChecksInputSig { exists(DataFlow::Node m | m.asCfgNode().getNode() instanceof MatchCapturePattern | TypeTrackingInput::simpleLocalSmallStep*(m, n) ) + or + // TODO: when adding support for proper content, handle iterable unpacking better + // such as `for k,v in items:`, or `a, (b,c) = ...` + n instanceof DataFlow::IterableSequenceNode } } diff --git a/python/ql/test/experimental/dataflow/coverage/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/experimental/dataflow/coverage/CONSISTENCY/TypeTrackingConsistency.expected deleted file mode 100644 index 30f0348dc6d..00000000000 --- a/python/ql/test/experimental/dataflow/coverage/CONSISTENCY/TypeTrackingConsistency.expected +++ /dev/null @@ -1,18 +0,0 @@ -unreachableNode -| test.py:215:16:215:19 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:226:17:226:20 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:231:20:231:24 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:580:9:580:12 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:589:5:589:11 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:589:6:589:10 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:589:7:589:9 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:618:7:618:16 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:626:7:626:16 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:634:6:634:17 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:646:6:646:14 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:655:7:655:13 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:664:7:664:13 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:673:6:673:14 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:693:9:693:11 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:701:9:701:12 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | -| test.py:710:9:710:14 | IterableSequence | Unreachable node in step of kind simpleLocalSmallStep. | From 2b2ea597ce384aa1488de9c98ec7bb229ee0aa2c Mon Sep 17 00:00:00 2001 From: Angela P Wen Date: Mon, 4 Mar 2024 16:42:38 +0000 Subject: [PATCH 024/309] Fix formatting on changenotes --- ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md | 2 +- ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md index 56d2dcf5c73..6f3a90768ba 100644 --- a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md +++ b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. \ No newline at end of file +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md index f08bd54efa2..350e049b5bf 100644 --- a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md +++ b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. \ No newline at end of file +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. \ No newline at end of file From a67218a0277be5516730cf3bdb0fb1932c14b2c1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 4 Mar 2024 17:42:08 +0000 Subject: [PATCH 025/309] Release preparation for version 2.16.4 --- cpp/ql/lib/CHANGELOG.md | 6 ++++++ .../0.12.7.md} | 9 +++++---- cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 7 +++++++ .../2024-02-29-non-constant-format-path-query.md | 4 ---- .../0.9.6.md} | 8 +++++--- cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../Solorigate/lib/change-notes/released/1.7.10.md | 3 +++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../Solorigate/src/change-notes/released/1.7.10.md | 3 +++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 14 ++++++++++++++ .../change-notes/2024-02-21-getonly-properties.md | 4 ---- .../ql/lib/change-notes/2024-02-22-no-db-stats.md | 4 ---- .../change-notes/2024-02-23-compiler-generated.md | 4 ---- .../2024-02-26-variable-capture-flow.md | 4 ---- .../2024-02-28-experimental-attribute.md | 4 ---- .../2024-02-28-refreadonly-parameter.md | 4 ---- csharp/ql/lib/change-notes/released/0.8.10.md | 13 +++++++++++++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 6 ++++++ .../0.8.10.md} | 9 +++++---- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ .../change-notes/released/0.0.9.md | 3 +++ go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 11 +++++++++++ .../lib/change-notes/2024-02-14-range-map-read.md | 4 ---- .../0.7.10.md} | 11 ++++++++--- go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++++ go/ql/src/change-notes/released/0.7.10.md | 3 +++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/CHANGELOG.md | 4 ++++ .../automodel/src/change-notes/released/0.0.17.md | 3 +++ java/ql/automodel/src/codeql-pack.release.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 11 +++++++++++ .../change-notes/2024-02-23-widget-flowsteps.md | 4 ---- java/ql/lib/change-notes/2024-02-27-error-types.md | 4 ---- .../lib/change-notes/2024-02-27-mvnw-versions.md | 4 ---- java/ql/lib/change-notes/released/0.8.10.md | 10 ++++++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 10 ++++++++++ .../2024-02-12-android-insecure-keys.md | 4 ---- .../0.8.10.md} | 11 ++++++++--- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ++++ javascript/ql/lib/change-notes/released/0.8.10.md | 3 +++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ++++ javascript/ql/src/change-notes/released/0.8.10.md | 3 +++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ misc/suite-helpers/change-notes/released/0.7.10.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 7 +++++++ .../2024-02-28-iterable-unpacking-module-scope.md | 4 ---- .../0.11.10.md} | 8 +++++--- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 ++++++ .../0.9.10.md} | 7 ++++--- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 9 +++++++++ ...2024-02-15-activerecord_connection_sql_sinks.md | 4 ---- .../2024-02-20-activerecord-sql-sink-arguments.md | 4 ---- .../lib/change-notes/2024-02-26-arel-sqlliteral.md | 4 ---- .../lib/change-notes/2024-02-29-i18n-translate.md | 4 ---- ruby/ql/lib/change-notes/released/0.8.10.md | 8 ++++++++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 +++++++ .../2024-02-13-rails-more-request-sources.md | 4 ---- .../0.8.10.md} | 10 ++++++---- ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ shared/controlflow/change-notes/released/0.1.10.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ shared/dataflow/change-notes/released/0.2.1.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/0.2.10.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ .../rangeanalysis/change-notes/released/0.0.9.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/0.2.10.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/0.2.10.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ .../threat-models/change-notes/released/0.0.9.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ shared/tutorial/change-notes/released/0.2.10.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ .../typetracking/change-notes/released/0.2.10.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/0.2.10.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/0.2.10.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/0.2.10.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 6 ++++++ .../0.3.10.md} | 7 ++++--- swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/0.3.10.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 150 files changed, 394 insertions(+), 168 deletions(-) rename cpp/ql/lib/change-notes/{2024-02-26-ir-named-destructors.md => released/0.12.7.md} (54%) delete mode 100644 cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md rename cpp/ql/src/change-notes/{2024-02-16-modelled-functions-block-flow.md => released/0.9.6.md} (77%) create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md create mode 100644 csharp/ql/lib/change-notes/released/0.8.10.md rename csharp/ql/src/change-notes/{2024-02-06-threat-models.md => released/0.8.10.md} (88%) create mode 100644 go/ql/consistency-queries/change-notes/released/0.0.9.md delete mode 100644 go/ql/lib/change-notes/2024-02-14-range-map-read.md rename go/ql/lib/change-notes/{2024-03-04-autobuilder-changes.md => released/0.7.10.md} (68%) create mode 100644 go/ql/src/change-notes/released/0.7.10.md create mode 100644 java/ql/automodel/src/change-notes/released/0.0.17.md delete mode 100644 java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md delete mode 100644 java/ql/lib/change-notes/2024-02-27-error-types.md delete mode 100644 java/ql/lib/change-notes/2024-02-27-mvnw-versions.md create mode 100644 java/ql/lib/change-notes/released/0.8.10.md delete mode 100644 java/ql/src/change-notes/2024-02-12-android-insecure-keys.md rename java/ql/src/change-notes/{2024-03-04-sensitive-log-remove-null-from-sources.md => released/0.8.10.md} (54%) create mode 100644 javascript/ql/lib/change-notes/released/0.8.10.md create mode 100644 javascript/ql/src/change-notes/released/0.8.10.md create mode 100644 misc/suite-helpers/change-notes/released/0.7.10.md delete mode 100644 python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md rename python/ql/lib/change-notes/{2024-03-01-dict-update-content.md => released/0.11.10.md} (52%) rename python/ql/src/change-notes/{2024-03-04-nosql-injection.md => released/0.9.10.md} (81%) delete mode 100644 ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md create mode 100644 ruby/ql/lib/change-notes/released/0.8.10.md delete mode 100644 ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md rename ruby/ql/src/change-notes/{2024-03-01-method-code-injection-sinks.md => released/0.8.10.md} (51%) create mode 100644 shared/controlflow/change-notes/released/0.1.10.md create mode 100644 shared/dataflow/change-notes/released/0.2.1.md create mode 100644 shared/mad/change-notes/released/0.2.10.md create mode 100644 shared/rangeanalysis/change-notes/released/0.0.9.md create mode 100644 shared/regex/change-notes/released/0.2.10.md create mode 100644 shared/ssa/change-notes/released/0.2.10.md create mode 100644 shared/threat-models/change-notes/released/0.0.9.md create mode 100644 shared/tutorial/change-notes/released/0.2.10.md create mode 100644 shared/typetracking/change-notes/released/0.2.10.md create mode 100644 shared/typos/change-notes/released/0.2.10.md create mode 100644 shared/util/change-notes/released/0.2.10.md create mode 100644 shared/yaml/change-notes/released/0.2.10.md rename swift/ql/lib/change-notes/{2024-02-22-extension-patch.md => released/0.3.10.md} (83%) create mode 100644 swift/ql/src/change-notes/released/0.3.10.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index b3091ec37d8..e1c0dfbecd9 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.12.7 + +### Minor Analysis Improvements + +* Added destructors for named objects to the intermediate representation. + ## 0.12.6 ### New Features diff --git a/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md b/cpp/ql/lib/change-notes/released/0.12.7.md similarity index 54% rename from cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md rename to cpp/ql/lib/change-notes/released/0.12.7.md index 4e35decaf8e..856a8b665c7 100644 --- a/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md +++ b/cpp/ql/lib/change-notes/released/0.12.7.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- -* Added destructors for named objects to the intermediate representation. \ No newline at end of file +## 0.12.7 + +### Minor Analysis Improvements + +* Added destructors for named objects to the intermediate representation. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 170a312c104..20419e9c610 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.12.6 +lastReleaseVersion: 0.12.7 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 8e201fff594..3bb9229bf94 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.12.7-dev +version: 0.12.7 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index ffcd73ff5d7..f6acd424bb0 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.6 + +### Minor Analysis Improvements + +* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. +* The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. + ## 0.9.5 ### Minor Analysis Improvements diff --git a/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md b/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md deleted file mode 100644 index 2e5933a61e8..00000000000 --- a/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md b/cpp/ql/src/change-notes/released/0.9.6.md similarity index 77% rename from cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md rename to cpp/ql/src/change-notes/released/0.9.6.md index d6ef3c3e056..0c85f3f9f0f 100644 --- a/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md +++ b/cpp/ql/src/change-notes/released/0.9.6.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- +## 0.9.6 + +### Minor Analysis Improvements + +* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. * The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 460240feaff..19139c132b2 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.5 +lastReleaseVersion: 0.9.6 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 31bd20166b2..4052647bb97 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.9.6-dev +version: 0.9.6 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 190b83b0f25..82eacfc84f7 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.10 + +No user-facing changes. + ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md new file mode 100644 index 00000000000..8e8007d8475 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md @@ -0,0 +1,3 @@ +## 1.7.10 + +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 678da6bc37e..31c7fe07020 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.9 +lastReleaseVersion: 1.7.10 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 7e643b0fac3..ee993bed0c9 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.10-dev +version: 1.7.10 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 190b83b0f25..82eacfc84f7 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.10 + +No user-facing changes. + ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md new file mode 100644 index 00000000000..8e8007d8475 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md @@ -0,0 +1,3 @@ +## 1.7.10 + +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 678da6bc37e..31c7fe07020 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.9 +lastReleaseVersion: 1.7.10 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 8654bbfd031..1f421754fc8 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.10-dev +version: 1.7.10 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 95fd64c5270..16cc14259e1 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,17 @@ +## 0.8.10 + +### Major Analysis Improvements + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. + +### Minor Analysis Improvements + +* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. +* C# 12: Add extractor and QL library support for `ref readonly` parameters. +* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. +* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md b/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md deleted file mode 100644 index 6bb8e99c71e..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md b/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md deleted file mode 100644 index d6ffbd523ac..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. diff --git a/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md b/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md deleted file mode 100644 index 9b1739b9b6d..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. diff --git a/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md b/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md deleted file mode 100644 index 66ab65083dc..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md b/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md deleted file mode 100644 index 8749c790954..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. diff --git a/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md b/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md deleted file mode 100644 index 586b5341d29..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C# 12: Add extractor and QL library support for `ref readonly` parameters. diff --git a/csharp/ql/lib/change-notes/released/0.8.10.md b/csharp/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..f591ddc5b21 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,13 @@ +## 0.8.10 + +### Major Analysis Improvements + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. + +### Minor Analysis Improvements + +* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. +* C# 12: Add extractor and QL library support for `ref readonly` parameters. +* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. +* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index d75ea3c6320..93c5c1120a2 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.10-dev +version: 0.8.10 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 9fe1609363f..46c939e5cee 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/src/change-notes/2024-02-06-threat-models.md b/csharp/ql/src/change-notes/released/0.8.10.md similarity index 88% rename from csharp/ql/src/change-notes/2024-02-06-threat-models.md rename to csharp/ql/src/change-notes/released/0.8.10.md index 69ac4e4dc17..702161c3d28 100644 --- a/csharp/ql/src/change-notes/2024-02-06-threat-models.md +++ b/csharp/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- -* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. \ No newline at end of file +## 0.8.10 + +### Minor Analysis Improvements + +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 9ee23cc7307..46384094b19 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.10-dev +version: 0.8.10 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index fba2a870356..a59e560c415 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/0.0.9.md b/go/ql/consistency-queries/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +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 58fdc6b45de..ecdd64fbab8 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index b574796b995..d5a2fbee5f1 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: 0.0.9-dev +version: 0.0.9 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 65a2376217b..fee5fd37a26 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.7.10 + +### Major Analysis Improvements + +* We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. +* Go 1.22 has been included in the range of supported Go versions. + +### Bug Fixes + +* Fixed dataflow out of a `map` using a `range` statement. + ## 0.7.9 No user-facing changes. diff --git a/go/ql/lib/change-notes/2024-02-14-range-map-read.md b/go/ql/lib/change-notes/2024-02-14-range-map-read.md deleted file mode 100644 index ea45737a72e..00000000000 --- a/go/ql/lib/change-notes/2024-02-14-range-map-read.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md b/go/ql/lib/change-notes/released/0.7.10.md similarity index 68% rename from go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md rename to go/ql/lib/change-notes/released/0.7.10.md index 0442a571029..55954f8a394 100644 --- a/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md +++ b/go/ql/lib/change-notes/released/0.7.10.md @@ -1,5 +1,10 @@ ---- -category: majorAnalysis ---- +## 0.7.10 + +### Major Analysis Improvements + * We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. * Go 1.22 has been included in the range of supported Go versions. + +### Bug Fixes + +* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index f21e478efa6..8cc190fa880 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.10-dev +version: 0.7.10 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index d95165a3a34..24e38b9890e 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.10 + +No user-facing changes. + ## 0.7.9 ### New Queries diff --git a/go/ql/src/change-notes/released/0.7.10.md b/go/ql/src/change-notes/released/0.7.10.md new file mode 100644 index 00000000000..989c5b8f682 --- /dev/null +++ b/go/ql/src/change-notes/released/0.7.10.md @@ -0,0 +1,3 @@ +## 0.7.10 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index d91cab59612..4ded3a52f63 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.10-dev +version: 0.7.10 groups: - go - queries diff --git a/java/ql/automodel/src/CHANGELOG.md b/java/ql/automodel/src/CHANGELOG.md index 4a3c54adb38..c3282c773a9 100644 --- a/java/ql/automodel/src/CHANGELOG.md +++ b/java/ql/automodel/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.17 + +No user-facing changes. + ## 0.0.16 No user-facing changes. diff --git a/java/ql/automodel/src/change-notes/released/0.0.17.md b/java/ql/automodel/src/change-notes/released/0.0.17.md new file mode 100644 index 00000000000..62cc89030a6 --- /dev/null +++ b/java/ql/automodel/src/change-notes/released/0.0.17.md @@ -0,0 +1,3 @@ +## 0.0.17 + +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 a49f7be4cff..cbc3d3cd493 100644 --- a/java/ql/automodel/src/codeql-pack.release.yml +++ b/java/ql/automodel/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.16 +lastReleaseVersion: 0.0.17 diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 898239be098..59fab0cdcc5 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: 0.0.17-dev +version: 0.0.17 groups: - java - automodel diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index d369cbdc931..2a02ccee6ab 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. + +### Bug Fixes + +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. +* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. + ## 0.8.9 ### Deprecated APIs diff --git a/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md b/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md deleted file mode 100644 index eb560fba07d..00000000000 --- a/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/change-notes/2024-02-27-error-types.md b/java/ql/lib/change-notes/2024-02-27-error-types.md deleted file mode 100644 index cdc6d7620aa..00000000000 --- a/java/ql/lib/change-notes/2024-02-27-error-types.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. diff --git a/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md b/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md deleted file mode 100644 index a0227088ae9..00000000000 --- a/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. diff --git a/java/ql/lib/change-notes/released/0.8.10.md b/java/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..b45f14bf347 --- /dev/null +++ b/java/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,10 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. + +### Bug Fixes + +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. +* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 15b4982d41e..428eedc75e3 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.10-dev +version: 0.8.10 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 5d835351453..c61275f5ed8 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.8.10 + +### New Queries + +* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. + +### Minor Analysis Improvements + +* To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. + ## 0.8.9 ### New Queries diff --git a/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md b/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md deleted file mode 100644 index 1de07727796..00000000000 --- a/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. \ No newline at end of file diff --git a/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md b/java/ql/src/change-notes/released/0.8.10.md similarity index 54% rename from java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md rename to java/ql/src/change-notes/released/0.8.10.md index 0bb4f18f2bd..c5d18ae3379 100644 --- a/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md +++ b/java/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,9 @@ ---- -category: minorAnalysis ---- +## 0.8.10 + +### New Queries + +* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. + +### Minor Analysis Improvements + * To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 8f4de528e21..ebbdbeee3b2 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.10-dev +version: 0.8.10 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 5b97ebbb22b..d5edcc00513 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.10 + +No user-facing changes. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/released/0.8.10.md b/javascript/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..777bbd2fded --- /dev/null +++ b/javascript/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,3 @@ +## 0.8.10 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index ef3ca7521ac..da16493a21c 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.10-dev +version: 0.8.10 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 85516e3625d..b9627cac5ee 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.10 + +No user-facing changes. + ## 0.8.9 ### Bug Fixes diff --git a/javascript/ql/src/change-notes/released/0.8.10.md b/javascript/ql/src/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..777bbd2fded --- /dev/null +++ b/javascript/ql/src/change-notes/released/0.8.10.md @@ -0,0 +1,3 @@ +## 0.8.10 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index b6181aa30e9..d224952c564 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.10-dev +version: 0.8.10 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 3c06dd69b0f..1c4455b66c4 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.10 + +No user-facing changes. + ## 0.7.9 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/0.7.10.md b/misc/suite-helpers/change-notes/released/0.7.10.md new file mode 100644 index 00000000000..989c5b8f682 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/0.7.10.md @@ -0,0 +1,3 @@ +## 0.7.10 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 49b7a6bda4c..54d978d5efe 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.10-dev +version: 0.7.10 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index e6f318c51ea..f095607ca1b 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.11.10 + +### Minor Analysis Improvements + +* Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. +* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. + ## 0.11.9 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md b/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md deleted file mode 100644 index 3c47c6ba866..00000000000 --- a/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/change-notes/2024-03-01-dict-update-content.md b/python/ql/lib/change-notes/released/0.11.10.md similarity index 52% rename from python/ql/lib/change-notes/2024-03-01-dict-update-content.md rename to python/ql/lib/change-notes/released/0.11.10.md index dfb8d247fff..ed873724e4f 100644 --- a/python/ql/lib/change-notes/2024-03-01-dict-update-content.md +++ b/python/ql/lib/change-notes/released/0.11.10.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- +## 0.11.10 + +### Minor Analysis Improvements + * Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. +* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index b064d1778a1..ddddcbe9193 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.11.9 +lastReleaseVersion: 0.11.10 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index e9f66e205f2..59a8b4c96d1 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.10-dev +version: 0.11.10 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 50762bcbf34..d4245aba7a6 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.9.10 + +### New Queries + +* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. + ## 0.9.9 No user-facing changes. diff --git a/python/ql/src/change-notes/2024-03-04-nosql-injection.md b/python/ql/src/change-notes/released/0.9.10.md similarity index 81% rename from python/ql/src/change-notes/2024-03-04-nosql-injection.md rename to python/ql/src/change-notes/released/0.9.10.md index 6e98540c757..4cbb221b789 100644 --- a/python/ql/src/change-notes/2024-03-04-nosql-injection.md +++ b/python/ql/src/change-notes/released/0.9.10.md @@ -1,4 +1,5 @@ ---- -category: newQuery ---- +## 0.9.10 + +### New Queries + * The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index aabed7c396b..d086ed69541 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.9 +lastReleaseVersion: 0.9.10 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index aa18f2d8707..c920f667836 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.10-dev +version: 0.9.10 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index a623a151e89..c61a12e0f4a 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. +* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. +* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md b/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md deleted file mode 100644 index c2276f284a8..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md b/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md deleted file mode 100644 index 1486c7a472d..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md deleted file mode 100644 index 6f3a90768ba..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md deleted file mode 100644 index 350e049b5bf..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/released/0.8.10.md b/ruby/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..666e28f840e --- /dev/null +++ b/ruby/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,8 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. +* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. +* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 7d409b83adb..de5b41999fe 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.10-dev +version: 0.8.10 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 4149c728eff..f875b6d16ad 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. +* Added additional request sources for Ruby on Rails. + ## 0.8.9 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md b/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md deleted file mode 100644 index 84ea696dfef..00000000000 --- a/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added additional request sources for Ruby on Rails. \ No newline at end of file diff --git a/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md b/ruby/ql/src/change-notes/released/0.8.10.md similarity index 51% rename from ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md rename to ruby/ql/src/change-notes/released/0.8.10.md index 43e40d3fd53..985cdf8d22e 100644 --- a/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md +++ b/ruby/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- -* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. \ No newline at end of file +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. +* Added additional request sources for Ruby on Rails. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 8af7f9fd797..5e379268234 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.10-dev +version: 0.8.10 groups: - ruby - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index dbfa6ef4512..75f2ca53f98 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.10 + +No user-facing changes. + ## 0.1.9 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/0.1.10.md b/shared/controlflow/change-notes/released/0.1.10.md new file mode 100644 index 00000000000..47358eeee93 --- /dev/null +++ b/shared/controlflow/change-notes/released/0.1.10.md @@ -0,0 +1,3 @@ +## 0.1.10 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 1425c0edf7f..30f5ca88be0 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.9 +lastReleaseVersion: 0.1.10 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 9d35a678276..1d43802be42 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.10-dev +version: 0.1.10 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index 67a5bf589f4..ef80788bded 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.1 + +No user-facing changes. + ## 0.2.0 ### Breaking Changes diff --git a/shared/dataflow/change-notes/released/0.2.1.md b/shared/dataflow/change-notes/released/0.2.1.md new file mode 100644 index 00000000000..3dbfc85fe11 --- /dev/null +++ b/shared/dataflow/change-notes/released/0.2.1.md @@ -0,0 +1,3 @@ +## 0.2.1 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 5274e27ed52..df29a726bcc 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.2.1 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 1e7becf71c4..ee422e02ea9 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.2.1-dev +version: 0.2.1 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 4d09057118c..4730366775e 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/mad/change-notes/released/0.2.10.md b/shared/mad/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/mad/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 22c8f271ccc..6d7269ef3da 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: null diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 5b8dbcfab22..9943dcb7972 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/0.0.9.md b/shared/rangeanalysis/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 58fdc6b45de..ecdd64fbab8 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 836fe51ee34..01db5d5734d 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 0.0.9-dev +version: 0.0.9 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index cd5f91f71ec..c05869c153d 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/regex/change-notes/released/0.2.10.md b/shared/regex/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/regex/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index ea3f7f9b238..0d4f485312f 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 01acfae0148..a9161ff578b 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/ssa/change-notes/released/0.2.10.md b/shared/ssa/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/ssa/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 19304ad107f..2ad254711a5 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index fba2a870356..a59e560c415 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/0.0.9.md b/shared/threat-models/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/shared/threat-models/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 58fdc6b45de..ecdd64fbab8 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index d0ed9a913b2..60cbbc56fcb 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 0.0.9-dev +version: 0.0.9 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 1db3a01af0b..560ad058d5b 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/0.2.10.md b/shared/tutorial/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/tutorial/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index b595ae9ee70..69116705c1b 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: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index afc857bc6bc..350f9ecbeae 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/0.2.10.md b/shared/typetracking/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/typetracking/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index b55927f59bb..fbbdcf5162a 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 66c5871d982..54b1eaa4d58 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/typos/change-notes/released/0.2.10.md b/shared/typos/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/typos/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 644bfe11bff..4d59d9b3c34 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 63832e927fa..1ca1f71bcbc 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/util/change-notes/released/0.2.10.md b/shared/util/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/util/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index ca1a866a53d..28ed738a93d 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: null diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index e5495abcd50..9fd5ebc26ab 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/yaml/change-notes/released/0.2.10.md b/shared/yaml/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/yaml/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index de5b47e120a..9643ffcec66 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index e88cd0259cc..8f14bfcedc9 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.10 + +### Bug Fixes + +* Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. + ## 0.3.9 ### Minor Analysis Improvements diff --git a/swift/ql/lib/change-notes/2024-02-22-extension-patch.md b/swift/ql/lib/change-notes/released/0.3.10.md similarity index 83% rename from swift/ql/lib/change-notes/2024-02-22-extension-patch.md rename to swift/ql/lib/change-notes/released/0.3.10.md index 7bd78f3b785..9d6286ff58a 100644 --- a/swift/ql/lib/change-notes/2024-02-22-extension-patch.md +++ b/swift/ql/lib/change-notes/released/0.3.10.md @@ -1,4 +1,5 @@ ---- -category: fix ---- +## 0.3.10 + +### Bug Fixes + * Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 3fa5180bcb4..76ca0ac8ba7 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.9 +lastReleaseVersion: 0.3.10 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index a37a4cb3d58..70ec4798ea8 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.10-dev +version: 0.3.10 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 96615d06972..bda9834c9bc 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.10 + +No user-facing changes. + ## 0.3.9 ### New Queries diff --git a/swift/ql/src/change-notes/released/0.3.10.md b/swift/ql/src/change-notes/released/0.3.10.md new file mode 100644 index 00000000000..925a48fc52e --- /dev/null +++ b/swift/ql/src/change-notes/released/0.3.10.md @@ -0,0 +1,3 @@ +## 0.3.10 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 3fa5180bcb4..76ca0ac8ba7 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.9 +lastReleaseVersion: 0.3.10 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index e3ead42c98b..ba66b065529 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.10-dev +version: 0.3.10 groups: - swift - queries From 179aaa134201089df6374ff5ba2132df749d3e12 Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 5 Mar 2024 09:35:18 +0000 Subject: [PATCH 026/309] Ruby: model Open4.popen4ext --- .../lib/codeql/ruby/frameworks/stdlib/Open3.qll | 16 ++++++++++++++-- .../frameworks/stdlib/Open3.expected | 4 ++++ .../library-tests/frameworks/stdlib/Open3.rb | 4 ++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll index 16b9ecc3797..0e9b6245880 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Open3.qll @@ -38,14 +38,26 @@ module Open3 { */ class Open4Call extends SystemCommandExecution::Range instanceof DataFlow::CallNode { Open4Call() { - this = API::getTopLevelMember("Open4").getAMethodCall(["open4", "popen4", "spawn"]) + this = + API::getTopLevelMember("Open4").getAMethodCall(["open4", "popen4", "spawn", "popen4ext"]) } - override DataFlow::Node getAnArgument() { result = super.getArgument(_) } + override DataFlow::Node getAnArgument() { + // `popen4ext` takes an optional boolean as its first argument, but it is unlikely that we will be + // tracking flow into a boolean value so it doesn't seem worth modeling that special case here. + result = super.getArgument(_) + } override predicate isShellInterpreted(DataFlow::Node arg) { super.getNumberOfArguments() = 1 and arg = this.getAnArgument() + or + // ```rb + // Open4.popen4ext(true, "some cmd") + // ``` + super.getNumberOfArguments() = 2 and + super.getArgument(0).getConstantValue().isBoolean(_) and + arg = super.getArgument(1) } } diff --git a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.expected b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.expected index 48bc6fc27f6..9589d721a29 100644 --- a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.expected +++ b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.expected @@ -15,3 +15,7 @@ open4CallExecutions | Open3.rb:13:1:13:24 | call to open4 | | Open3.rb:14:1:14:25 | call to popen4 | | Open3.rb:15:1:15:23 | call to spawn | +| Open3.rb:16:1:16:27 | call to popen4ext | +| Open3.rb:17:1:17:30 | call to popen4ext | +| Open3.rb:18:1:18:33 | call to popen4ext | +| Open3.rb:19:1:19:36 | call to popen4ext | diff --git a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.rb b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.rb index 4a112335ffb..9cc7ea7fd5c 100644 --- a/ruby/ql/test/library-tests/frameworks/stdlib/Open3.rb +++ b/ruby/ql/test/library-tests/frameworks/stdlib/Open3.rb @@ -13,3 +13,7 @@ Open3.pipeline("echo foo", "grep bar") Open4::open4("echo foo") Open4::popen4("echo foo") Open4.spawn("echo bar") +Open4.popen4ext("echo foo") +Open4.popen4ext("echo", "foo") +Open4.popen4ext(true, "echo foo") +Open4.popen4ext(true, "echo", "foo") From 91cb2a37fd4ec3d8d9a2effa4f1e51761792d9db Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 5 Mar 2024 10:19:22 +0000 Subject: [PATCH 027/309] Ruby: Model Process.exec --- ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll | 1 + .../codeql/ruby/frameworks/stdlib/Process.qll | 14 ++++++++ .../stdlib/CommandExecution.expected | 32 +++++++++++++++++++ .../frameworks/stdlib/CommandExecution.ql | 12 +++++++ .../frameworks/stdlib/process.rb | 5 +++ 5 files changed, 64 insertions(+) create mode 100644 ruby/ql/test/library-tests/frameworks/stdlib/CommandExecution.expected create mode 100644 ruby/ql/test/library-tests/frameworks/stdlib/CommandExecution.ql create mode 100644 ruby/ql/test/library-tests/frameworks/stdlib/process.rb diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll b/ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll index f735f9daf8b..139f1d619d6 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Stdlib.qll @@ -5,3 +5,4 @@ import stdlib.Open3 import stdlib.Logger import stdlib.Pathname +import stdlib.Process diff --git a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Process.qll b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Process.qll index 1ffc15d691b..e4516f22038 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Process.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/stdlib/Process.qll @@ -32,4 +32,18 @@ module Process { super.getNumberOfArguments() = 1 and arg = this.getAnArgument() } } + + /** + * A system command executed via the `Process.exec` method. + */ + class ExecCall extends SystemCommandExecution::Range instanceof DataFlow::CallNode { + ExecCall() { this = DataFlow::getConstant("Process").getAMethodCall("exec") } + + override DataFlow::Node getAnArgument() { result = super.getArgument(_) } + + override predicate isShellInterpreted(DataFlow::Node arg) { + // Process.exec invokes a subshell if you provide a single string as argument + super.getNumberOfArguments() = 1 and arg = this.getAnArgument() + } + } } diff --git a/ruby/ql/test/library-tests/frameworks/stdlib/CommandExecution.expected b/ruby/ql/test/library-tests/frameworks/stdlib/CommandExecution.expected new file mode 100644 index 00000000000..e29aaf35bac --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/stdlib/CommandExecution.expected @@ -0,0 +1,32 @@ +| Open3.rb:1:1:1:24 | call to popen3 | Open3.rb:1:14:1:23 | "echo foo" | true | +| Open3.rb:2:1:2:24 | call to popen2 | Open3.rb:2:14:2:23 | "echo foo" | true | +| Open3.rb:3:1:3:25 | call to popen2e | Open3.rb:3:15:3:24 | "echo foo" | true | +| Open3.rb:4:1:4:26 | call to capture3 | Open3.rb:4:16:4:25 | "echo foo" | true | +| Open3.rb:5:1:5:26 | call to capture2 | Open3.rb:5:16:5:25 | "echo foo" | true | +| Open3.rb:6:1:6:27 | call to capture2e | Open3.rb:6:17:6:26 | "echo foo" | true | +| Open3.rb:7:1:7:41 | call to pipeline_rw | Open3.rb:7:19:7:28 | "echo foo" | true | +| Open3.rb:7:1:7:41 | call to pipeline_rw | Open3.rb:7:31:7:40 | "grep bar" | true | +| Open3.rb:8:1:8:40 | call to pipeline_r | Open3.rb:8:18:8:27 | "echo foo" | true | +| Open3.rb:8:1:8:40 | call to pipeline_r | Open3.rb:8:30:8:39 | "grep bar" | true | +| Open3.rb:9:1:9:40 | call to pipeline_w | Open3.rb:9:18:9:27 | "echo foo" | true | +| Open3.rb:9:1:9:40 | call to pipeline_w | Open3.rb:9:30:9:39 | "grep bar" | true | +| Open3.rb:10:1:10:44 | call to pipeline_start | Open3.rb:10:22:10:31 | "echo foo" | true | +| Open3.rb:10:1:10:44 | call to pipeline_start | Open3.rb:10:34:10:43 | "grep bar" | true | +| Open3.rb:11:1:11:38 | call to pipeline | Open3.rb:11:16:11:25 | "echo foo" | true | +| Open3.rb:11:1:11:38 | call to pipeline | Open3.rb:11:28:11:37 | "grep bar" | true | +| Open3.rb:13:1:13:24 | call to open4 | Open3.rb:13:14:13:23 | "echo foo" | true | +| Open3.rb:14:1:14:25 | call to popen4 | Open3.rb:14:15:14:24 | "echo foo" | true | +| Open3.rb:15:1:15:23 | call to spawn | Open3.rb:15:13:15:22 | "echo bar" | true | +| Open3.rb:16:1:16:27 | call to popen4ext | Open3.rb:16:17:16:26 | "echo foo" | true | +| Open3.rb:17:1:17:30 | call to popen4ext | Open3.rb:17:17:17:22 | "echo" | false | +| Open3.rb:17:1:17:30 | call to popen4ext | Open3.rb:17:25:17:29 | "foo" | false | +| Open3.rb:18:1:18:33 | call to popen4ext | Open3.rb:18:17:18:20 | true | false | +| Open3.rb:18:1:18:33 | call to popen4ext | Open3.rb:18:23:18:32 | "echo foo" | true | +| Open3.rb:19:1:19:36 | call to popen4ext | Open3.rb:19:17:19:20 | true | false | +| Open3.rb:19:1:19:36 | call to popen4ext | Open3.rb:19:23:19:28 | "echo" | false | +| Open3.rb:19:1:19:36 | call to popen4ext | Open3.rb:19:31:19:35 | "foo" | false | +| process.rb:1:1:1:25 | call to spawn | process.rb:1:15:1:24 | "echo foo" | true | +| process.rb:2:1:2:30 | call to spawn | process.rb:2:15:2:29 | call to [] | true | +| process.rb:3:1:3:24 | call to exec | process.rb:3:14:3:23 | "echo foo" | true | +| process.rb:4:1:4:29 | call to exec | process.rb:4:14:4:28 | call to [] | true | +| process.rb:5:1:5:21 | call to spawn | process.rb:5:11:5:20 | "echo foo" | true | diff --git a/ruby/ql/test/library-tests/frameworks/stdlib/CommandExecution.ql b/ruby/ql/test/library-tests/frameworks/stdlib/CommandExecution.ql new file mode 100644 index 00000000000..4de7304272b --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/stdlib/CommandExecution.ql @@ -0,0 +1,12 @@ +import codeql.ruby.Frameworks +import codeql.ruby.Concepts +import codeql.ruby.DataFlow + +query predicate commandExecutions( + SystemCommandExecution execution, DataFlow::Node arg, boolean isShellInterpreted +) { + arg = execution.getAnArgument() and + if execution.isShellInterpreted(arg) + then isShellInterpreted = true + else isShellInterpreted = false +} diff --git a/ruby/ql/test/library-tests/frameworks/stdlib/process.rb b/ruby/ql/test/library-tests/frameworks/stdlib/process.rb new file mode 100644 index 00000000000..2a40e7fa94e --- /dev/null +++ b/ruby/ql/test/library-tests/frameworks/stdlib/process.rb @@ -0,0 +1,5 @@ +Process.spawn("echo foo") +Process.spawn(["echo", "foo"]) +Process.exec("echo foo") +Process.exec(["echo", "foo"]) +PTY.spawn("echo foo") From 148241183a3a52d15f145fdb97218180d37ba50b Mon Sep 17 00:00:00 2001 From: Harry Maclean Date: Tue, 5 Mar 2024 10:20:22 +0000 Subject: [PATCH 028/309] Ruby: update changenote --- ruby/ql/lib/change-notes/2024-02-27-process-spawn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/change-notes/2024-02-27-process-spawn.md b/ruby/ql/lib/change-notes/2024-02-27-process-spawn.md index 30feedcbd20..9c20f05d865 100644 --- a/ruby/ql/lib/change-notes/2024-02-27-process-spawn.md +++ b/ruby/ql/lib/change-notes/2024-02-27-process-spawn.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* New command injection sinks have been added, including `Process.spawn`, `Terrapin::CommandLine` and the `open4` gem. \ No newline at end of file +* New command injection sinks have been added, including `Process.spawn`, `Process.exec`, `Terrapin::CommandLine` and the `open4` gem. \ No newline at end of file From 2aa093c95cde5faed2aef27e119f8266e660863b Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 5 Mar 2024 11:25:02 +0000 Subject: [PATCH 029/309] Go: Move `getImportPath` to shared `util` package --- .../cli/go-autobuilder/go-autobuilder.go | 60 +------------------ go/extractor/util/util.go | 59 ++++++++++++++++++ .../util_test.go} | 2 +- 3 files changed, 61 insertions(+), 60 deletions(-) rename go/extractor/{cli/go-autobuilder/go-autobuilder_test.go => util/util_test.go} (98%) diff --git a/go/extractor/cli/go-autobuilder/go-autobuilder.go b/go/extractor/cli/go-autobuilder/go-autobuilder.go index 91291c77144..b2e2a78666f 100644 --- a/go/extractor/cli/go-autobuilder/go-autobuilder.go +++ b/go/extractor/cli/go-autobuilder/go-autobuilder.go @@ -3,7 +3,6 @@ package main import ( "fmt" "log" - "net/url" "os" "os/exec" "path/filepath" @@ -56,63 +55,6 @@ Build behavior: fmt.Fprintf(os.Stderr, "Usage:\n\n %s\n", os.Args[0]) } -// Returns the import path of the package being built, or "" if it cannot be determined. -func getImportPath() (importpath string) { - importpath = os.Getenv("LGTM_INDEX_IMPORT_PATH") - if importpath == "" { - repourl := os.Getenv("SEMMLE_REPO_URL") - if repourl == "" { - githubrepo := os.Getenv("GITHUB_REPOSITORY") - if githubrepo == "" { - log.Printf("Unable to determine import path, as neither LGTM_INDEX_IMPORT_PATH nor GITHUB_REPOSITORY is set\n") - return "" - } else { - importpath = "github.com/" + githubrepo - } - } else { - importpath = getImportPathFromRepoURL(repourl) - if importpath == "" { - log.Printf("Failed to determine import path from SEMMLE_REPO_URL '%s'\n", repourl) - return - } - } - } - log.Printf("Import path is '%s'\n", importpath) - return -} - -// Returns the import path of the package being built from `repourl`, or "" if it cannot be -// determined. -func getImportPathFromRepoURL(repourl string) string { - // check for scp-like URL as in "git@github.com:github/codeql-go.git" - shorturl := regexp.MustCompile(`^([^@]+@)?([^:]+):([^/].*?)(\.git)?$`) - m := shorturl.FindStringSubmatch(repourl) - if m != nil { - return m[2] + "/" + m[3] - } - - // otherwise parse as proper URL - u, err := url.Parse(repourl) - if err != nil { - log.Fatalf("Malformed repository URL '%s'\n", repourl) - } - - if u.Scheme == "file" { - // we can't determine import paths from file paths - return "" - } - - if u.Hostname() == "" || u.Path == "" { - return "" - } - - host := u.Hostname() - path := u.Path - // strip off leading slashes and trailing `.git` if present - path = regexp.MustCompile(`^/+|\.git$`).ReplaceAllString(path, "") - return host + "/" + path -} - func restoreRepoLayout(fromDir string, dirEntries []string, scratchDirName string, toDir string) { for _, dirEntry := range dirEntries { if dirEntry != scratchDirName { @@ -568,7 +510,7 @@ func installDependenciesAndBuild() { if len(workspaces) == 1 { workspace := workspaces[0] - importpath := getImportPath() + importpath := util.GetImportPath() needGopath := getNeedGopath(workspace, importpath) inLGTM := os.Getenv("LGTM_SRC") != "" || os.Getenv("LGTM_INDEX_NEED_GOPATH") != "" diff --git a/go/extractor/util/util.go b/go/extractor/util/util.go index b5b28089e78..2ae6a2b0cd2 100644 --- a/go/extractor/util/util.go +++ b/go/extractor/util/util.go @@ -6,9 +6,11 @@ import ( "io" "io/fs" "log" + "net/url" "os" "os/exec" "path/filepath" + "regexp" "runtime" "slices" "strings" @@ -350,3 +352,60 @@ func GetParentDirs(paths []string) []string { } return dirs } + +// Returns the import path of the package being built, or "" if it cannot be determined. +func GetImportPath() (importpath string) { + importpath = os.Getenv("LGTM_INDEX_IMPORT_PATH") + if importpath == "" { + repourl := os.Getenv("SEMMLE_REPO_URL") + if repourl == "" { + githubrepo := os.Getenv("GITHUB_REPOSITORY") + if githubrepo == "" { + log.Printf("Unable to determine import path, as neither LGTM_INDEX_IMPORT_PATH nor GITHUB_REPOSITORY is set\n") + return "" + } else { + importpath = "github.com/" + githubrepo + } + } else { + importpath = getImportPathFromRepoURL(repourl) + if importpath == "" { + log.Printf("Failed to determine import path from SEMMLE_REPO_URL '%s'\n", repourl) + return + } + } + } + log.Printf("Import path is '%s'\n", importpath) + return +} + +// Returns the import path of the package being built from `repourl`, or "" if it cannot be +// determined. +func getImportPathFromRepoURL(repourl string) string { + // check for scp-like URL as in "git@github.com:github/codeql-go.git" + shorturl := regexp.MustCompile(`^([^@]+@)?([^:]+):([^/].*?)(\.git)?$`) + m := shorturl.FindStringSubmatch(repourl) + if m != nil { + return m[2] + "/" + m[3] + } + + // otherwise parse as proper URL + u, err := url.Parse(repourl) + if err != nil { + log.Fatalf("Malformed repository URL '%s'\n", repourl) + } + + if u.Scheme == "file" { + // we can't determine import paths from file paths + return "" + } + + if u.Hostname() == "" || u.Path == "" { + return "" + } + + host := u.Hostname() + path := u.Path + // strip off leading slashes and trailing `.git` if present + path = regexp.MustCompile(`^/+|\.git$`).ReplaceAllString(path, "") + return host + "/" + path +} diff --git a/go/extractor/cli/go-autobuilder/go-autobuilder_test.go b/go/extractor/util/util_test.go similarity index 98% rename from go/extractor/cli/go-autobuilder/go-autobuilder_test.go rename to go/extractor/util/util_test.go index f4e8405fe36..45d32bda3e1 100644 --- a/go/extractor/cli/go-autobuilder/go-autobuilder_test.go +++ b/go/extractor/util/util_test.go @@ -1,4 +1,4 @@ -package main +package util import "testing" From 367ecf75d5889bb20da8e8a2123804d6cb76d79b Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 5 Mar 2024 11:37:51 +0000 Subject: [PATCH 030/309] Go: Use import path for auto-generated Go module names --- go/extractor/toolchain/toolchain.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/go/extractor/toolchain/toolchain.go b/go/extractor/toolchain/toolchain.go index 38abfd43874..104894c5975 100644 --- a/go/extractor/toolchain/toolchain.go +++ b/go/extractor/toolchain/toolchain.go @@ -5,8 +5,10 @@ import ( "log" "os" "os/exec" + "path/filepath" "strings" + "github.com/github/codeql-go/extractor/util" "golang.org/x/mod/semver" ) @@ -81,7 +83,20 @@ func TidyModule(path string) *exec.Cmd { // Run `go mod init` in the directory given by `path`. func InitModule(path string) *exec.Cmd { - modInit := exec.Command("go", "mod", "init", "codeql/auto-project") + moduleName := "codeql/auto-project" + + if importpath := util.GetImportPath(); importpath != "" { + // This should be something like `github.com/user/repo` + moduleName = importpath + + // If we are not initialising the new module in the root directory of the workspace, + // append the relative path to the module name. + if relPath, err := filepath.Rel(".", path); err != nil && relPath != "." { + moduleName = moduleName + "/" + relPath + } + } + + modInit := exec.Command("go", "mod", "init", moduleName) modInit.Dir = path return modInit } From b1e0bc03ab34a271563ac8a5ba66577b0f59b954 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 5 Mar 2024 11:55:10 +0000 Subject: [PATCH 031/309] Go: Fix check for whether it is safe to initialise a `go.mod` file in a given directory --- go/extractor/project/project.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/go/extractor/project/project.go b/go/extractor/project/project.go index 187389ecd55..9315a33f04c 100644 --- a/go/extractor/project/project.go +++ b/go/extractor/project/project.go @@ -439,8 +439,9 @@ func getBuildRoots(emitDiagnostics bool) (goWorkspaces []GoWorkspace, totalModul for _, component := range components { path = filepath.Join(path, component) - // Try to initialize a `go.mod` file automatically for the stray source files. - if !slices.Contains(goModDirs, path) { + // Try to initialize a `go.mod` file automatically for the stray source files if + // doing so would not place it in a parent directory of an existing `go.mod` file. + if !startsWithAnyOf(path, goModDirs) { goWorkspaces = append(goWorkspaces, GoWorkspace{ BaseDir: path, DepMode: GoGetNoModules, @@ -477,6 +478,16 @@ func getBuildRoots(emitDiagnostics bool) (goWorkspaces []GoWorkspace, totalModul return } +// Determines whether `str` starts with any of `prefixes`. +func startsWithAnyOf(str string, prefixes []string) bool { + for _, prefix := range prefixes { + if strings.HasPrefix(str, prefix) { + return true + } + } + return false +} + // Finds Go workspaces in the current working directory. func GetWorkspaceInfo(emitDiagnostics bool) []GoWorkspace { bazelPaths := slices.Concat( From ac394dc80ce6e3488285fd5abc01f2c5543ba0fb Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 5 Mar 2024 13:46:33 +0000 Subject: [PATCH 032/309] Go: Better check for path prefixes --- go/extractor/project/project.go | 2 +- go/extractor/project/project_test.go | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 go/extractor/project/project_test.go diff --git a/go/extractor/project/project.go b/go/extractor/project/project.go index 9315a33f04c..22c0f856c79 100644 --- a/go/extractor/project/project.go +++ b/go/extractor/project/project.go @@ -481,7 +481,7 @@ func getBuildRoots(emitDiagnostics bool) (goWorkspaces []GoWorkspace, totalModul // Determines whether `str` starts with any of `prefixes`. func startsWithAnyOf(str string, prefixes []string) bool { for _, prefix := range prefixes { - if strings.HasPrefix(str, prefix) { + if relPath, err := filepath.Rel(str, prefix); err == nil && !strings.HasPrefix(relPath, "..") { return true } } diff --git a/go/extractor/project/project_test.go b/go/extractor/project/project_test.go new file mode 100644 index 00000000000..f2de420773f --- /dev/null +++ b/go/extractor/project/project_test.go @@ -0,0 +1,27 @@ +package project + +import ( + "path/filepath" + "testing" +) + +func testStartsWithAnyOf(t *testing.T, path string, prefix string, expectation bool) { + result := startsWithAnyOf(path, []string{prefix}) + if result != expectation { + t.Errorf("Expected startsWithAnyOf(%s, %s) to be %t, but it is %t.", path, prefix, expectation, result) + } +} + +func TestStartsWithAnyOf(t *testing.T) { + testStartsWithAnyOf(t, ".", ".", true) + testStartsWithAnyOf(t, ".", "dir", true) + testStartsWithAnyOf(t, ".", filepath.Join("foo", "bar"), true) + testStartsWithAnyOf(t, "dir", "dir", true) + testStartsWithAnyOf(t, "foo", filepath.Join("foo", "bar"), true) + testStartsWithAnyOf(t, filepath.Join("foo", "bar"), filepath.Join("foo", "bar"), true) + testStartsWithAnyOf(t, filepath.Join("foo", "bar"), filepath.Join("foo", "bar", "baz"), true) + + testStartsWithAnyOf(t, filepath.Join("foo", "bar"), "foo", false) + testStartsWithAnyOf(t, filepath.Join("foo", "bar"), "bar", false) + testStartsWithAnyOf(t, filepath.Join("foo", "bar"), filepath.Join("foo", "baz"), false) +} From a8d240dd7278a4d0e73b92daff10bfd1e7d17d98 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 5 Mar 2024 14:08:16 +0000 Subject: [PATCH 033/309] Go: Add integration test for mixed layout project --- .../go/mixed-layout/diagnostics.expected | 28 +++++++++++++++++++ .../force_sequential_test_execution | 2 ++ .../go/mixed-layout/src/module/go.mod | 5 ++++ .../go/mixed-layout/src/module/go.sum | 7 +++++ .../go/mixed-layout/src/module/test.go | 13 +++++++++ .../go/mixed-layout/src/stray-files/test.go | 13 +++++++++ .../go/mixed-layout/src/workspace/go.work | 3 ++ .../mixed-layout/src/workspace/subdir/go.mod | 5 ++++ .../mixed-layout/src/workspace/subdir/go.sum | 7 +++++ .../mixed-layout/src/workspace/subdir/test.go | 13 +++++++++ .../go/mixed-layout/test.expected | 8 ++++++ .../all-platforms/go/mixed-layout/test.py | 18 ++++++++++++ .../all-platforms/go/mixed-layout/test.ql | 8 ++++++ 13 files changed, 130 insertions(+) create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/diagnostics.expected create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/force_sequential_test_execution create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/go.mod create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/go.sum create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/test.go create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/src/stray-files/test.go create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/go.work create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/go.mod create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/go.sum create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/test.go create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/test.expected create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/test.py create mode 100644 go/ql/integration-tests/all-platforms/go/mixed-layout/test.ql diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/diagnostics.expected b/go/ql/integration-tests/all-platforms/go/mixed-layout/diagnostics.expected new file mode 100644 index 00000000000..bbbdd515d68 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/diagnostics.expected @@ -0,0 +1,28 @@ +{ + "markdownMessage": "1 `go.work` file was found:\n\n`workspace/go.work`", + "severity": "note", + "source": { + "extractorName": "go", + "id": "go/autobuilder/go-work-found", + "name": "`go.work` file found" + }, + "visibility": { + "cliSummaryTable": false, + "statusPage": false, + "telemetry": true + } +} +{ + "markdownMessage": "Go files were found outside of the Go modules corresponding to these `go.mod` files.\n\n`workspace/subdir/go.mod`, `module/go.mod`", + "severity": "note", + "source": { + "extractorName": "go", + "id": "go/autobuilder/go-files-outside-go-modules", + "name": "Go files were found outside Go modules" + }, + "visibility": { + "cliSummaryTable": false, + "statusPage": false, + "telemetry": true + } +} diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/force_sequential_test_execution b/go/ql/integration-tests/all-platforms/go/mixed-layout/force_sequential_test_execution new file mode 100644 index 00000000000..47ca9929099 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/force_sequential_test_execution @@ -0,0 +1,2 @@ +# go get has been observed to sometimes fail when multiple tests try to simultaneously fetch the same package. +goget diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/go.mod b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/go.mod new file mode 100644 index 00000000000..0b8f33b9069 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/go.mod @@ -0,0 +1,5 @@ +go 1.14 + +require golang.org/x/net v0.0.0-20200505041828-1ed23360d12c + +module module diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/go.sum b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/go.sum new file mode 100644 index 00000000000..6c5ffa613d0 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/go.sum @@ -0,0 +1,7 @@ +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c h1:zJ0mtu4jCalhKg6Oaukv6iIkb+cOvDrajDH9DH46Q4M= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/test.go b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/test.go new file mode 100644 index 00000000000..afc86ac3a12 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/module/test.go @@ -0,0 +1,13 @@ +package subdir + +import ( + "fmt" + + "golang.org/x/net/ipv4" +) + +func test() { + + header := ipv4.Header{} + fmt.Print(header.String()) +} diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/src/stray-files/test.go b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/stray-files/test.go new file mode 100644 index 00000000000..afc86ac3a12 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/stray-files/test.go @@ -0,0 +1,13 @@ +package subdir + +import ( + "fmt" + + "golang.org/x/net/ipv4" +) + +func test() { + + header := ipv4.Header{} + fmt.Print(header.String()) +} diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/go.work b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/go.work new file mode 100644 index 00000000000..e7e866fbe27 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/go.work @@ -0,0 +1,3 @@ +go 1.22.0 + +use ./subdir diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/go.mod b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/go.mod new file mode 100644 index 00000000000..40a3b330c38 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/go.mod @@ -0,0 +1,5 @@ +go 1.22.0 + +require golang.org/x/net v0.0.0-20200505041828-1ed23360d12c + +module subdir diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/go.sum b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/go.sum new file mode 100644 index 00000000000..6c5ffa613d0 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/go.sum @@ -0,0 +1,7 @@ +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c h1:zJ0mtu4jCalhKg6Oaukv6iIkb+cOvDrajDH9DH46Q4M= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/test.go b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/test.go new file mode 100644 index 00000000000..afc86ac3a12 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/src/workspace/subdir/test.go @@ -0,0 +1,13 @@ +package subdir + +import ( + "fmt" + + "golang.org/x/net/ipv4" +) + +func test() { + + header := ipv4.Header{} + fmt.Print(header.String()) +} diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/test.expected b/go/ql/integration-tests/all-platforms/go/mixed-layout/test.expected new file mode 100644 index 00000000000..ddd1888562f --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/test.expected @@ -0,0 +1,8 @@ +extractedFiles +| src/module/go.mod:0:0:0:0 | src/module/go.mod | +| src/module/test.go:0:0:0:0 | src/module/test.go | +| src/stray-files/go.mod:0:0:0:0 | src/stray-files/go.mod | +| src/stray-files/test.go:0:0:0:0 | src/stray-files/test.go | +| src/workspace/subdir/go.mod:0:0:0:0 | src/workspace/subdir/go.mod | +| src/workspace/subdir/test.go:0:0:0:0 | src/workspace/subdir/test.go | +#select diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/test.py b/go/ql/integration-tests/all-platforms/go/mixed-layout/test.py new file mode 100644 index 00000000000..43c7d1b38e8 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/test.py @@ -0,0 +1,18 @@ +import os +import subprocess + +from create_database_utils import * +from diagnostics_test_utils import * + +# Set up a GOPATH relative to this test's root directory; +# we set os.environ instead of using extra_env because we +# need it to be set for the call to "go clean -modcache" later +goPath = os.path.join(os.path.abspath(os.getcwd()), ".go") +os.environ['GOPATH'] = goPath +run_codeql_database_create([], lang="go", source="src") + +check_diagnostics() + +# Clean up the temporary GOPATH to prevent Bazel failures next +# time the tests are run; see https://github.com/golang/go/issues/27161 +subprocess.call(["go", "clean", "-modcache"]) diff --git a/go/ql/integration-tests/all-platforms/go/mixed-layout/test.ql b/go/ql/integration-tests/all-platforms/go/mixed-layout/test.ql new file mode 100644 index 00000000000..459a4301560 --- /dev/null +++ b/go/ql/integration-tests/all-platforms/go/mixed-layout/test.ql @@ -0,0 +1,8 @@ +import go +import semmle.go.DiagnosticsReporting + +query predicate extractedFiles(File f) { any() } + +from string msg, int sev +where reportableDiagnostics(_, msg, sev) +select msg, sev From 40ff75db07a66f4663ba00b7d76ea8d7ff870aa6 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 5 Mar 2024 14:56:51 +0000 Subject: [PATCH 034/309] Go: Update list of expected files for `single-go-mod-and-go-files-not-under-it` test --- .../go/single-go-mod-and-go-files-not-under-it/test.expected | 2 -- 1 file changed, 2 deletions(-) diff --git a/go/ql/integration-tests/all-platforms/go/single-go-mod-and-go-files-not-under-it/test.expected b/go/ql/integration-tests/all-platforms/go/single-go-mod-and-go-files-not-under-it/test.expected index 957d2f845a4..66ba3ef588f 100644 --- a/go/ql/integration-tests/all-platforms/go/single-go-mod-and-go-files-not-under-it/test.expected +++ b/go/ql/integration-tests/all-platforms/go/single-go-mod-and-go-files-not-under-it/test.expected @@ -1,6 +1,4 @@ extractedFiles -| src/go.mod:0:0:0:0 | src/go.mod | -| src/main.go:0:0:0:0 | src/main.go | | src/subdir/go.mod:0:0:0:0 | src/subdir/go.mod | | src/subdir/subsubdir/add.go:0:0:0:0 | src/subdir/subsubdir/add.go | | src/subdir/test.go:0:0:0:0 | src/subdir/test.go | From 967963a6534b1fcdda3d4f5b6960c29346516303 Mon Sep 17 00:00:00 2001 From: Angela P Wen Date: Tue, 5 Mar 2024 08:53:33 -0800 Subject: [PATCH 035/309] Revert "Release preparation for version 2.16.4" --- cpp/ql/lib/CHANGELOG.md | 6 ------ ....12.7.md => 2024-02-26-ir-named-destructors.md} | 9 ++++----- cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 7 ------- ...=> 2024-02-16-modelled-functions-block-flow.md} | 8 +++----- .../2024-02-29-non-constant-format-path-query.md | 4 ++++ cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ---- .../Solorigate/lib/change-notes/released/1.7.10.md | 3 --- .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ---- .../Solorigate/src/change-notes/released/1.7.10.md | 3 --- .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 14 -------------- .../change-notes/2024-02-21-getonly-properties.md | 4 ++++ .../ql/lib/change-notes/2024-02-22-no-db-stats.md | 4 ++++ .../change-notes/2024-02-23-compiler-generated.md | 4 ++++ .../2024-02-26-variable-capture-flow.md | 4 ++++ .../2024-02-28-experimental-attribute.md | 4 ++++ .../2024-02-28-refreadonly-parameter.md | 4 ++++ csharp/ql/lib/change-notes/released/0.8.10.md | 13 ------------- csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 6 ------ .../0.8.10.md => 2024-02-06-threat-models.md} | 9 ++++----- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ---- .../change-notes/released/0.0.9.md | 3 --- go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 11 ----------- .../lib/change-notes/2024-02-14-range-map-read.md | 4 ++++ ...0.7.10.md => 2024-03-04-autobuilder-changes.md} | 11 +++-------- go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ---- go/ql/src/change-notes/released/0.7.10.md | 3 --- go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/CHANGELOG.md | 4 ---- .../automodel/src/change-notes/released/0.0.17.md | 3 --- java/ql/automodel/src/codeql-pack.release.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 11 ----------- .../change-notes/2024-02-23-widget-flowsteps.md | 4 ++++ java/ql/lib/change-notes/2024-02-27-error-types.md | 4 ++++ .../lib/change-notes/2024-02-27-mvnw-versions.md | 4 ++++ java/ql/lib/change-notes/released/0.8.10.md | 10 ---------- java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 10 ---------- .../2024-02-12-android-insecure-keys.md | 4 ++++ ...3-04-sensitive-log-remove-null-from-sources.md} | 11 +++-------- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ---- javascript/ql/lib/change-notes/released/0.8.10.md | 3 --- javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ---- javascript/ql/src/change-notes/released/0.8.10.md | 3 --- javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ---- misc/suite-helpers/change-notes/released/0.7.10.md | 3 --- misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 7 ------- .../2024-02-28-iterable-unpacking-module-scope.md | 4 ++++ ....11.10.md => 2024-03-01-dict-update-content.md} | 8 +++----- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 ------ .../0.9.10.md => 2024-03-04-nosql-injection.md} | 7 +++---- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 9 --------- ...2024-02-15-activerecord_connection_sql_sinks.md | 4 ++++ .../2024-02-20-activerecord-sql-sink-arguments.md | 4 ++++ .../lib/change-notes/2024-02-26-arel-sqlliteral.md | 4 ++++ .../lib/change-notes/2024-02-29-i18n-translate.md | 4 ++++ ruby/ql/lib/change-notes/released/0.8.10.md | 8 -------- ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 ------- .../2024-02-13-rails-more-request-sources.md | 4 ++++ ...d => 2024-03-01-method-code-injection-sinks.md} | 10 ++++------ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ---- shared/controlflow/change-notes/released/0.1.10.md | 3 --- shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ---- shared/dataflow/change-notes/released/0.2.1.md | 3 --- shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ---- shared/mad/change-notes/released/0.2.10.md | 3 --- shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ---- .../rangeanalysis/change-notes/released/0.0.9.md | 3 --- shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ---- shared/regex/change-notes/released/0.2.10.md | 3 --- shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ---- shared/ssa/change-notes/released/0.2.10.md | 3 --- shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ---- .../threat-models/change-notes/released/0.0.9.md | 3 --- shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ---- shared/tutorial/change-notes/released/0.2.10.md | 3 --- shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ---- .../typetracking/change-notes/released/0.2.10.md | 3 --- shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ---- shared/typos/change-notes/released/0.2.10.md | 3 --- shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ---- shared/util/change-notes/released/0.2.10.md | 3 --- shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ---- shared/yaml/change-notes/released/0.2.10.md | 3 --- shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 6 ------ .../0.3.10.md => 2024-02-22-extension-patch.md} | 7 +++---- swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ---- swift/ql/src/change-notes/released/0.3.10.md | 3 --- swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 150 files changed, 168 insertions(+), 394 deletions(-) rename cpp/ql/lib/change-notes/{released/0.12.7.md => 2024-02-26-ir-named-destructors.md} (54%) rename cpp/ql/src/change-notes/{released/0.9.6.md => 2024-02-16-modelled-functions-block-flow.md} (77%) create mode 100644 cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md delete mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md delete mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md create mode 100644 csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md create mode 100644 csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md create mode 100644 csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md create mode 100644 csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md create mode 100644 csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md create mode 100644 csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md delete mode 100644 csharp/ql/lib/change-notes/released/0.8.10.md rename csharp/ql/src/change-notes/{released/0.8.10.md => 2024-02-06-threat-models.md} (88%) delete mode 100644 go/ql/consistency-queries/change-notes/released/0.0.9.md create mode 100644 go/ql/lib/change-notes/2024-02-14-range-map-read.md rename go/ql/lib/change-notes/{released/0.7.10.md => 2024-03-04-autobuilder-changes.md} (68%) delete mode 100644 go/ql/src/change-notes/released/0.7.10.md delete mode 100644 java/ql/automodel/src/change-notes/released/0.0.17.md create mode 100644 java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md create mode 100644 java/ql/lib/change-notes/2024-02-27-error-types.md create mode 100644 java/ql/lib/change-notes/2024-02-27-mvnw-versions.md delete mode 100644 java/ql/lib/change-notes/released/0.8.10.md create mode 100644 java/ql/src/change-notes/2024-02-12-android-insecure-keys.md rename java/ql/src/change-notes/{released/0.8.10.md => 2024-03-04-sensitive-log-remove-null-from-sources.md} (54%) delete mode 100644 javascript/ql/lib/change-notes/released/0.8.10.md delete mode 100644 javascript/ql/src/change-notes/released/0.8.10.md delete mode 100644 misc/suite-helpers/change-notes/released/0.7.10.md create mode 100644 python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md rename python/ql/lib/change-notes/{released/0.11.10.md => 2024-03-01-dict-update-content.md} (52%) rename python/ql/src/change-notes/{released/0.9.10.md => 2024-03-04-nosql-injection.md} (81%) create mode 100644 ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md create mode 100644 ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md create mode 100644 ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md create mode 100644 ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md delete mode 100644 ruby/ql/lib/change-notes/released/0.8.10.md create mode 100644 ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md rename ruby/ql/src/change-notes/{released/0.8.10.md => 2024-03-01-method-code-injection-sinks.md} (51%) delete mode 100644 shared/controlflow/change-notes/released/0.1.10.md delete mode 100644 shared/dataflow/change-notes/released/0.2.1.md delete mode 100644 shared/mad/change-notes/released/0.2.10.md delete mode 100644 shared/rangeanalysis/change-notes/released/0.0.9.md delete mode 100644 shared/regex/change-notes/released/0.2.10.md delete mode 100644 shared/ssa/change-notes/released/0.2.10.md delete mode 100644 shared/threat-models/change-notes/released/0.0.9.md delete mode 100644 shared/tutorial/change-notes/released/0.2.10.md delete mode 100644 shared/typetracking/change-notes/released/0.2.10.md delete mode 100644 shared/typos/change-notes/released/0.2.10.md delete mode 100644 shared/util/change-notes/released/0.2.10.md delete mode 100644 shared/yaml/change-notes/released/0.2.10.md rename swift/ql/lib/change-notes/{released/0.3.10.md => 2024-02-22-extension-patch.md} (83%) delete mode 100644 swift/ql/src/change-notes/released/0.3.10.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index e1c0dfbecd9..b3091ec37d8 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,9 +1,3 @@ -## 0.12.7 - -### Minor Analysis Improvements - -* Added destructors for named objects to the intermediate representation. - ## 0.12.6 ### New Features diff --git a/cpp/ql/lib/change-notes/released/0.12.7.md b/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md similarity index 54% rename from cpp/ql/lib/change-notes/released/0.12.7.md rename to cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md index 856a8b665c7..4e35decaf8e 100644 --- a/cpp/ql/lib/change-notes/released/0.12.7.md +++ b/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md @@ -1,5 +1,4 @@ -## 0.12.7 - -### Minor Analysis Improvements - -* Added destructors for named objects to the intermediate representation. +--- +category: minorAnalysis +--- +* Added destructors for named objects to the intermediate representation. \ No newline at end of file diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 20419e9c610..170a312c104 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.12.7 +lastReleaseVersion: 0.12.6 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 3bb9229bf94..8e201fff594 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.12.7 +version: 0.12.7-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index f6acd424bb0..ffcd73ff5d7 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,10 +1,3 @@ -## 0.9.6 - -### Minor Analysis Improvements - -* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. -* The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. - ## 0.9.5 ### Minor Analysis Improvements diff --git a/cpp/ql/src/change-notes/released/0.9.6.md b/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md similarity index 77% rename from cpp/ql/src/change-notes/released/0.9.6.md rename to cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md index 0c85f3f9f0f..d6ef3c3e056 100644 --- a/cpp/ql/src/change-notes/released/0.9.6.md +++ b/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md @@ -1,6 +1,4 @@ -## 0.9.6 - -### Minor Analysis Improvements - -* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. +--- +category: minorAnalysis +--- * The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. diff --git a/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md b/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md new file mode 100644 index 00000000000..2e5933a61e8 --- /dev/null +++ b/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. \ No newline at end of file diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 19139c132b2..460240feaff 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.6 +lastReleaseVersion: 0.9.5 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 4052647bb97..31bd20166b2 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.9.6 +version: 0.9.6-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 82eacfc84f7..190b83b0f25 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,7 +1,3 @@ -## 1.7.10 - -No user-facing changes. - ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md deleted file mode 100644 index 8e8007d8475..00000000000 --- a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.7.10 - -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 31c7fe07020..678da6bc37e 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.10 +lastReleaseVersion: 1.7.9 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index ee993bed0c9..7e643b0fac3 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.10 +version: 1.7.10-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 82eacfc84f7..190b83b0f25 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 1.7.10 - -No user-facing changes. - ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md deleted file mode 100644 index 8e8007d8475..00000000000 --- a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.7.10 - -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 31c7fe07020..678da6bc37e 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.10 +lastReleaseVersion: 1.7.9 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 1f421754fc8..8654bbfd031 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.10 +version: 1.7.10-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 16cc14259e1..95fd64c5270 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,17 +1,3 @@ -## 0.8.10 - -### Major Analysis Improvements - -* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. -* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. - -### Minor Analysis Improvements - -* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. -* C# 12: Add extractor and QL library support for `ref readonly` parameters. -* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. -* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. - ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md b/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md new file mode 100644 index 00000000000..6bb8e99c71e --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md b/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md new file mode 100644 index 00000000000..d6ffbd523ac --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. diff --git a/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md b/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md new file mode 100644 index 00000000000..9b1739b9b6d --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. diff --git a/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md b/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md new file mode 100644 index 00000000000..66ab65083dc --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md b/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md new file mode 100644 index 00000000000..8749c790954 --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. diff --git a/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md b/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md new file mode 100644 index 00000000000..586b5341d29 --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* C# 12: Add extractor and QL library support for `ref readonly` parameters. diff --git a/csharp/ql/lib/change-notes/released/0.8.10.md b/csharp/ql/lib/change-notes/released/0.8.10.md deleted file mode 100644 index f591ddc5b21..00000000000 --- a/csharp/ql/lib/change-notes/released/0.8.10.md +++ /dev/null @@ -1,13 +0,0 @@ -## 0.8.10 - -### Major Analysis Improvements - -* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. -* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. - -### Minor Analysis Improvements - -* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. -* C# 12: Add extractor and QL library support for `ref readonly` parameters. -* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. -* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 93c5c1120a2..d75ea3c6320 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.10 +version: 0.8.10-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 46c939e5cee..9fe1609363f 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,9 +1,3 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. - ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/src/change-notes/released/0.8.10.md b/csharp/ql/src/change-notes/2024-02-06-threat-models.md similarity index 88% rename from csharp/ql/src/change-notes/released/0.8.10.md rename to csharp/ql/src/change-notes/2024-02-06-threat-models.md index 702161c3d28..69ac4e4dc17 100644 --- a/csharp/ql/src/change-notes/released/0.8.10.md +++ b/csharp/ql/src/change-notes/2024-02-06-threat-models.md @@ -1,5 +1,4 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. +--- +category: minorAnalysis +--- +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. \ No newline at end of file diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 46384094b19..9ee23cc7307 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.10 +version: 0.8.10-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index a59e560c415..fba2a870356 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.0.9 - -No user-facing changes. - ## 0.0.8 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/0.0.9.md b/go/ql/consistency-queries/change-notes/released/0.0.9.md deleted file mode 100644 index c9e17c6d6cf..00000000000 --- a/go/ql/consistency-queries/change-notes/released/0.0.9.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.9 - -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 ecdd64fbab8..58fdc6b45de 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.8 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index d5a2fbee5f1..b574796b995 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: 0.0.9 +version: 0.0.9-dev groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index fee5fd37a26..65a2376217b 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,14 +1,3 @@ -## 0.7.10 - -### Major Analysis Improvements - -* We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. -* Go 1.22 has been included in the range of supported Go versions. - -### Bug Fixes - -* Fixed dataflow out of a `map` using a `range` statement. - ## 0.7.9 No user-facing changes. diff --git a/go/ql/lib/change-notes/2024-02-14-range-map-read.md b/go/ql/lib/change-notes/2024-02-14-range-map-read.md new file mode 100644 index 00000000000..ea45737a72e --- /dev/null +++ b/go/ql/lib/change-notes/2024-02-14-range-map-read.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/change-notes/released/0.7.10.md b/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md similarity index 68% rename from go/ql/lib/change-notes/released/0.7.10.md rename to go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md index 55954f8a394..0442a571029 100644 --- a/go/ql/lib/change-notes/released/0.7.10.md +++ b/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md @@ -1,10 +1,5 @@ -## 0.7.10 - -### Major Analysis Improvements - +--- +category: majorAnalysis +--- * We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. * Go 1.22 has been included in the range of supported Go versions. - -### Bug Fixes - -* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 67518567297..576395f3405 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.9 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 8cc190fa880..f21e478efa6 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.10 +version: 0.7.10-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 24e38b9890e..d95165a3a34 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.7.10 - -No user-facing changes. - ## 0.7.9 ### New Queries diff --git a/go/ql/src/change-notes/released/0.7.10.md b/go/ql/src/change-notes/released/0.7.10.md deleted file mode 100644 index 989c5b8f682..00000000000 --- a/go/ql/src/change-notes/released/0.7.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.7.10 - -No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 67518567297..576395f3405 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.9 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 4ded3a52f63..d91cab59612 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.10 +version: 0.7.10-dev groups: - go - queries diff --git a/java/ql/automodel/src/CHANGELOG.md b/java/ql/automodel/src/CHANGELOG.md index c3282c773a9..4a3c54adb38 100644 --- a/java/ql/automodel/src/CHANGELOG.md +++ b/java/ql/automodel/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.0.17 - -No user-facing changes. - ## 0.0.16 No user-facing changes. diff --git a/java/ql/automodel/src/change-notes/released/0.0.17.md b/java/ql/automodel/src/change-notes/released/0.0.17.md deleted file mode 100644 index 62cc89030a6..00000000000 --- a/java/ql/automodel/src/change-notes/released/0.0.17.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.17 - -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 cbc3d3cd493..a49f7be4cff 100644 --- a/java/ql/automodel/src/codeql-pack.release.yml +++ b/java/ql/automodel/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.17 +lastReleaseVersion: 0.0.16 diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 59fab0cdcc5..898239be098 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: 0.0.17 +version: 0.0.17-dev groups: - java - automodel diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 2a02ccee6ab..d369cbdc931 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,14 +1,3 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. - -### Bug Fixes - -* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. -* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. - ## 0.8.9 ### Deprecated APIs diff --git a/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md b/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md new file mode 100644 index 00000000000..eb560fba07d --- /dev/null +++ b/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/change-notes/2024-02-27-error-types.md b/java/ql/lib/change-notes/2024-02-27-error-types.md new file mode 100644 index 00000000000..cdc6d7620aa --- /dev/null +++ b/java/ql/lib/change-notes/2024-02-27-error-types.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. diff --git a/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md b/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md new file mode 100644 index 00000000000..a0227088ae9 --- /dev/null +++ b/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. diff --git a/java/ql/lib/change-notes/released/0.8.10.md b/java/ql/lib/change-notes/released/0.8.10.md deleted file mode 100644 index b45f14bf347..00000000000 --- a/java/ql/lib/change-notes/released/0.8.10.md +++ /dev/null @@ -1,10 +0,0 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. - -### Bug Fixes - -* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. -* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 428eedc75e3..15b4982d41e 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.10 +version: 0.8.10-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index c61275f5ed8..5d835351453 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,13 +1,3 @@ -## 0.8.10 - -### New Queries - -* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. - -### Minor Analysis Improvements - -* To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. - ## 0.8.9 ### New Queries diff --git a/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md b/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md new file mode 100644 index 00000000000..1de07727796 --- /dev/null +++ b/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. \ No newline at end of file diff --git a/java/ql/src/change-notes/released/0.8.10.md b/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md similarity index 54% rename from java/ql/src/change-notes/released/0.8.10.md rename to java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md index c5d18ae3379..0bb4f18f2bd 100644 --- a/java/ql/src/change-notes/released/0.8.10.md +++ b/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md @@ -1,9 +1,4 @@ -## 0.8.10 - -### New Queries - -* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. - -### Minor Analysis Improvements - +--- +category: minorAnalysis +--- * To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index ebbdbeee3b2..8f4de528e21 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.10 +version: 0.8.10-dev groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index d5edcc00513..5b97ebbb22b 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.8.10 - -No user-facing changes. - ## 0.8.9 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/released/0.8.10.md b/javascript/ql/lib/change-notes/released/0.8.10.md deleted file mode 100644 index 777bbd2fded..00000000000 --- a/javascript/ql/lib/change-notes/released/0.8.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.8.10 - -No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index da16493a21c..ef3ca7521ac 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.10 +version: 0.8.10-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index b9627cac5ee..85516e3625d 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.8.10 - -No user-facing changes. - ## 0.8.9 ### Bug Fixes diff --git a/javascript/ql/src/change-notes/released/0.8.10.md b/javascript/ql/src/change-notes/released/0.8.10.md deleted file mode 100644 index 777bbd2fded..00000000000 --- a/javascript/ql/src/change-notes/released/0.8.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.8.10 - -No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index d224952c564..b6181aa30e9 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.10 +version: 0.8.10-dev groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 1c4455b66c4..3c06dd69b0f 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.7.10 - -No user-facing changes. - ## 0.7.9 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/0.7.10.md b/misc/suite-helpers/change-notes/released/0.7.10.md deleted file mode 100644 index 989c5b8f682..00000000000 --- a/misc/suite-helpers/change-notes/released/0.7.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.7.10 - -No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 67518567297..576395f3405 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.9 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 54d978d5efe..49b7a6bda4c 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.10 +version: 0.7.10-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index f095607ca1b..e6f318c51ea 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,10 +1,3 @@ -## 0.11.10 - -### Minor Analysis Improvements - -* Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. -* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. - ## 0.11.9 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md b/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md new file mode 100644 index 00000000000..3c47c6ba866 --- /dev/null +++ b/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/change-notes/released/0.11.10.md b/python/ql/lib/change-notes/2024-03-01-dict-update-content.md similarity index 52% rename from python/ql/lib/change-notes/released/0.11.10.md rename to python/ql/lib/change-notes/2024-03-01-dict-update-content.md index ed873724e4f..dfb8d247fff 100644 --- a/python/ql/lib/change-notes/released/0.11.10.md +++ b/python/ql/lib/change-notes/2024-03-01-dict-update-content.md @@ -1,6 +1,4 @@ -## 0.11.10 - -### Minor Analysis Improvements - +--- +category: minorAnalysis +--- * Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. -* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index ddddcbe9193..b064d1778a1 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.11.10 +lastReleaseVersion: 0.11.9 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 59a8b4c96d1..e9f66e205f2 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.10 +version: 0.11.10-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index d4245aba7a6..50762bcbf34 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,9 +1,3 @@ -## 0.9.10 - -### New Queries - -* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. - ## 0.9.9 No user-facing changes. diff --git a/python/ql/src/change-notes/released/0.9.10.md b/python/ql/src/change-notes/2024-03-04-nosql-injection.md similarity index 81% rename from python/ql/src/change-notes/released/0.9.10.md rename to python/ql/src/change-notes/2024-03-04-nosql-injection.md index 4cbb221b789..6e98540c757 100644 --- a/python/ql/src/change-notes/released/0.9.10.md +++ b/python/ql/src/change-notes/2024-03-04-nosql-injection.md @@ -1,5 +1,4 @@ -## 0.9.10 - -### New Queries - +--- +category: newQuery +--- * The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index d086ed69541..aabed7c396b 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.10 +lastReleaseVersion: 0.9.9 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index c920f667836..aa18f2d8707 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.10 +version: 0.9.10-dev groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index c61a12e0f4a..a623a151e89 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,12 +1,3 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. -* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. -* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. -* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. - ## 0.8.9 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md b/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md new file mode 100644 index 00000000000..c2276f284a8 --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md b/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md new file mode 100644 index 00000000000..1486c7a472d --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md new file mode 100644 index 00000000000..6f3a90768ba --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md new file mode 100644 index 00000000000..350e049b5bf --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/released/0.8.10.md b/ruby/ql/lib/change-notes/released/0.8.10.md deleted file mode 100644 index 666e28f840e..00000000000 --- a/ruby/ql/lib/change-notes/released/0.8.10.md +++ /dev/null @@ -1,8 +0,0 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. -* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. -* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. -* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index de5b41999fe..7d409b83adb 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.10 +version: 0.8.10-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index f875b6d16ad..4149c728eff 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,10 +1,3 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. -* Added additional request sources for Ruby on Rails. - ## 0.8.9 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md b/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md new file mode 100644 index 00000000000..84ea696dfef --- /dev/null +++ b/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added additional request sources for Ruby on Rails. \ No newline at end of file diff --git a/ruby/ql/src/change-notes/released/0.8.10.md b/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md similarity index 51% rename from ruby/ql/src/change-notes/released/0.8.10.md rename to ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md index 985cdf8d22e..43e40d3fd53 100644 --- a/ruby/ql/src/change-notes/released/0.8.10.md +++ b/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md @@ -1,6 +1,4 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. -* Added additional request sources for Ruby on Rails. +--- +category: minorAnalysis +--- +* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. \ No newline at end of file diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 5e379268234..8af7f9fd797 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.10 +version: 0.8.10-dev groups: - ruby - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index 75f2ca53f98..dbfa6ef4512 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.1.10 - -No user-facing changes. - ## 0.1.9 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/0.1.10.md b/shared/controlflow/change-notes/released/0.1.10.md deleted file mode 100644 index 47358eeee93..00000000000 --- a/shared/controlflow/change-notes/released/0.1.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.1.10 - -No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 30f5ca88be0..1425c0edf7f 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.10 +lastReleaseVersion: 0.1.9 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 1d43802be42..9d35a678276 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.10 +version: 0.1.10-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index ef80788bded..67a5bf589f4 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.1 - -No user-facing changes. - ## 0.2.0 ### Breaking Changes diff --git a/shared/dataflow/change-notes/released/0.2.1.md b/shared/dataflow/change-notes/released/0.2.1.md deleted file mode 100644 index 3dbfc85fe11..00000000000 --- a/shared/dataflow/change-notes/released/0.2.1.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.1 - -No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index df29a726bcc..5274e27ed52 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.1 +lastReleaseVersion: 0.2.0 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index ee422e02ea9..1e7becf71c4 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.2.1 +version: 0.2.1-dev groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 4730366775e..4d09057118c 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/mad/change-notes/released/0.2.10.md b/shared/mad/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/mad/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 6d7269ef3da..22c8f271ccc 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: null diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 9943dcb7972..5b8dbcfab22 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.0.9 - -No user-facing changes. - ## 0.0.8 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/0.0.9.md b/shared/rangeanalysis/change-notes/released/0.0.9.md deleted file mode 100644 index c9e17c6d6cf..00000000000 --- a/shared/rangeanalysis/change-notes/released/0.0.9.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.9 - -No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index ecdd64fbab8..58fdc6b45de 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.8 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 01db5d5734d..836fe51ee34 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 0.0.9 +version: 0.0.9-dev groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index c05869c153d..cd5f91f71ec 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/regex/change-notes/released/0.2.10.md b/shared/regex/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/regex/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 0d4f485312f..ea3f7f9b238 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index a9161ff578b..01acfae0148 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/ssa/change-notes/released/0.2.10.md b/shared/ssa/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/ssa/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 2ad254711a5..19304ad107f 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index a59e560c415..fba2a870356 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.0.9 - -No user-facing changes. - ## 0.0.8 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/0.0.9.md b/shared/threat-models/change-notes/released/0.0.9.md deleted file mode 100644 index c9e17c6d6cf..00000000000 --- a/shared/threat-models/change-notes/released/0.0.9.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.9 - -No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index ecdd64fbab8..58fdc6b45de 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.8 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 60cbbc56fcb..d0ed9a913b2 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 0.0.9 +version: 0.0.9-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 560ad058d5b..1db3a01af0b 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/0.2.10.md b/shared/tutorial/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/tutorial/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 69116705c1b..b595ae9ee70 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: 0.2.10 +version: 0.2.10-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 350f9ecbeae..afc857bc6bc 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/0.2.10.md b/shared/typetracking/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/typetracking/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index fbbdcf5162a..b55927f59bb 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 54b1eaa4d58..66c5871d982 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/typos/change-notes/released/0.2.10.md b/shared/typos/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/typos/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 4d59d9b3c34..644bfe11bff 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 1ca1f71bcbc..63832e927fa 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/util/change-notes/released/0.2.10.md b/shared/util/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/util/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 28ed738a93d..ca1a866a53d 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: null diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 9fd5ebc26ab..e5495abcd50 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/yaml/change-notes/released/0.2.10.md b/shared/yaml/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/yaml/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 9643ffcec66..de5b47e120a 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index 8f14bfcedc9..e88cd0259cc 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,9 +1,3 @@ -## 0.3.10 - -### Bug Fixes - -* Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. - ## 0.3.9 ### Minor Analysis Improvements diff --git a/swift/ql/lib/change-notes/released/0.3.10.md b/swift/ql/lib/change-notes/2024-02-22-extension-patch.md similarity index 83% rename from swift/ql/lib/change-notes/released/0.3.10.md rename to swift/ql/lib/change-notes/2024-02-22-extension-patch.md index 9d6286ff58a..7bd78f3b785 100644 --- a/swift/ql/lib/change-notes/released/0.3.10.md +++ b/swift/ql/lib/change-notes/2024-02-22-extension-patch.md @@ -1,5 +1,4 @@ -## 0.3.10 - -### Bug Fixes - +--- +category: fix +--- * Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 76ca0ac8ba7..3fa5180bcb4 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.10 +lastReleaseVersion: 0.3.9 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 70ec4798ea8..a37a4cb3d58 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.10 +version: 0.3.10-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index bda9834c9bc..96615d06972 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.3.10 - -No user-facing changes. - ## 0.3.9 ### New Queries diff --git a/swift/ql/src/change-notes/released/0.3.10.md b/swift/ql/src/change-notes/released/0.3.10.md deleted file mode 100644 index 925a48fc52e..00000000000 --- a/swift/ql/src/change-notes/released/0.3.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.3.10 - -No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 76ca0ac8ba7..3fa5180bcb4 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.10 +lastReleaseVersion: 0.3.9 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index ba66b065529..e3ead42c98b 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.10 +version: 0.3.10-dev groups: - swift - queries From 661e68dab5ee8d71edcec82139314a481dd983d5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 5 Mar 2024 18:13:58 +0000 Subject: [PATCH 036/309] Release preparation for version 2.16.4 --- cpp/ql/lib/CHANGELOG.md | 6 ++++++ .../0.12.7.md} | 9 +++++---- cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 7 +++++++ .../2024-02-29-non-constant-format-path-query.md | 4 ---- .../0.9.6.md} | 8 +++++--- cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../Solorigate/lib/change-notes/released/1.7.10.md | 3 +++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../Solorigate/src/change-notes/released/1.7.10.md | 3 +++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 14 ++++++++++++++ .../change-notes/2024-02-21-getonly-properties.md | 4 ---- .../ql/lib/change-notes/2024-02-22-no-db-stats.md | 4 ---- .../change-notes/2024-02-23-compiler-generated.md | 4 ---- .../2024-02-26-variable-capture-flow.md | 4 ---- .../2024-02-28-experimental-attribute.md | 4 ---- .../2024-02-28-refreadonly-parameter.md | 4 ---- csharp/ql/lib/change-notes/released/0.8.10.md | 13 +++++++++++++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 6 ++++++ .../0.8.10.md} | 9 +++++---- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ .../change-notes/released/0.0.9.md | 3 +++ go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 11 +++++++++++ .../lib/change-notes/2024-02-14-range-map-read.md | 4 ---- .../0.7.10.md} | 11 ++++++++--- go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++++ go/ql/src/change-notes/released/0.7.10.md | 3 +++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/CHANGELOG.md | 4 ++++ .../automodel/src/change-notes/released/0.0.17.md | 3 +++ java/ql/automodel/src/codeql-pack.release.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 11 +++++++++++ .../change-notes/2024-02-23-widget-flowsteps.md | 4 ---- java/ql/lib/change-notes/2024-02-27-error-types.md | 4 ---- .../lib/change-notes/2024-02-27-mvnw-versions.md | 4 ---- java/ql/lib/change-notes/released/0.8.10.md | 10 ++++++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 10 ++++++++++ .../2024-02-12-android-insecure-keys.md | 4 ---- .../0.8.10.md} | 11 ++++++++--- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ++++ javascript/ql/lib/change-notes/released/0.8.10.md | 3 +++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ++++ javascript/ql/src/change-notes/released/0.8.10.md | 3 +++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ misc/suite-helpers/change-notes/released/0.7.10.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 7 +++++++ .../2024-02-28-iterable-unpacking-module-scope.md | 4 ---- .../0.11.10.md} | 8 +++++--- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 ++++++ .../0.9.10.md} | 7 ++++--- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 9 +++++++++ ...2024-02-15-activerecord_connection_sql_sinks.md | 4 ---- .../2024-02-20-activerecord-sql-sink-arguments.md | 4 ---- .../lib/change-notes/2024-02-26-arel-sqlliteral.md | 4 ---- .../lib/change-notes/2024-02-29-i18n-translate.md | 4 ---- ruby/ql/lib/change-notes/released/0.8.10.md | 8 ++++++++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 +++++++ .../2024-02-13-rails-more-request-sources.md | 4 ---- .../0.8.10.md} | 10 ++++++---- ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ shared/controlflow/change-notes/released/0.1.10.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ shared/dataflow/change-notes/released/0.2.1.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/0.2.10.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ .../rangeanalysis/change-notes/released/0.0.9.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/0.2.10.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/0.2.10.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ .../threat-models/change-notes/released/0.0.9.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ shared/tutorial/change-notes/released/0.2.10.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ .../typetracking/change-notes/released/0.2.10.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/0.2.10.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/0.2.10.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/0.2.10.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 6 ++++++ .../0.3.10.md} | 7 ++++--- swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/0.3.10.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 150 files changed, 394 insertions(+), 168 deletions(-) rename cpp/ql/lib/change-notes/{2024-02-26-ir-named-destructors.md => released/0.12.7.md} (54%) delete mode 100644 cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md rename cpp/ql/src/change-notes/{2024-02-16-modelled-functions-block-flow.md => released/0.9.6.md} (77%) create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md create mode 100644 csharp/ql/lib/change-notes/released/0.8.10.md rename csharp/ql/src/change-notes/{2024-02-06-threat-models.md => released/0.8.10.md} (88%) create mode 100644 go/ql/consistency-queries/change-notes/released/0.0.9.md delete mode 100644 go/ql/lib/change-notes/2024-02-14-range-map-read.md rename go/ql/lib/change-notes/{2024-03-04-autobuilder-changes.md => released/0.7.10.md} (68%) create mode 100644 go/ql/src/change-notes/released/0.7.10.md create mode 100644 java/ql/automodel/src/change-notes/released/0.0.17.md delete mode 100644 java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md delete mode 100644 java/ql/lib/change-notes/2024-02-27-error-types.md delete mode 100644 java/ql/lib/change-notes/2024-02-27-mvnw-versions.md create mode 100644 java/ql/lib/change-notes/released/0.8.10.md delete mode 100644 java/ql/src/change-notes/2024-02-12-android-insecure-keys.md rename java/ql/src/change-notes/{2024-03-04-sensitive-log-remove-null-from-sources.md => released/0.8.10.md} (54%) create mode 100644 javascript/ql/lib/change-notes/released/0.8.10.md create mode 100644 javascript/ql/src/change-notes/released/0.8.10.md create mode 100644 misc/suite-helpers/change-notes/released/0.7.10.md delete mode 100644 python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md rename python/ql/lib/change-notes/{2024-03-01-dict-update-content.md => released/0.11.10.md} (52%) rename python/ql/src/change-notes/{2024-03-04-nosql-injection.md => released/0.9.10.md} (81%) delete mode 100644 ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md create mode 100644 ruby/ql/lib/change-notes/released/0.8.10.md delete mode 100644 ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md rename ruby/ql/src/change-notes/{2024-03-01-method-code-injection-sinks.md => released/0.8.10.md} (51%) create mode 100644 shared/controlflow/change-notes/released/0.1.10.md create mode 100644 shared/dataflow/change-notes/released/0.2.1.md create mode 100644 shared/mad/change-notes/released/0.2.10.md create mode 100644 shared/rangeanalysis/change-notes/released/0.0.9.md create mode 100644 shared/regex/change-notes/released/0.2.10.md create mode 100644 shared/ssa/change-notes/released/0.2.10.md create mode 100644 shared/threat-models/change-notes/released/0.0.9.md create mode 100644 shared/tutorial/change-notes/released/0.2.10.md create mode 100644 shared/typetracking/change-notes/released/0.2.10.md create mode 100644 shared/typos/change-notes/released/0.2.10.md create mode 100644 shared/util/change-notes/released/0.2.10.md create mode 100644 shared/yaml/change-notes/released/0.2.10.md rename swift/ql/lib/change-notes/{2024-02-22-extension-patch.md => released/0.3.10.md} (83%) create mode 100644 swift/ql/src/change-notes/released/0.3.10.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index b3091ec37d8..e1c0dfbecd9 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.12.7 + +### Minor Analysis Improvements + +* Added destructors for named objects to the intermediate representation. + ## 0.12.6 ### New Features diff --git a/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md b/cpp/ql/lib/change-notes/released/0.12.7.md similarity index 54% rename from cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md rename to cpp/ql/lib/change-notes/released/0.12.7.md index 4e35decaf8e..856a8b665c7 100644 --- a/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md +++ b/cpp/ql/lib/change-notes/released/0.12.7.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- -* Added destructors for named objects to the intermediate representation. \ No newline at end of file +## 0.12.7 + +### Minor Analysis Improvements + +* Added destructors for named objects to the intermediate representation. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 170a312c104..20419e9c610 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.12.6 +lastReleaseVersion: 0.12.7 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 8e201fff594..3bb9229bf94 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.12.7-dev +version: 0.12.7 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index ffcd73ff5d7..f6acd424bb0 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.6 + +### Minor Analysis Improvements + +* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. +* The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. + ## 0.9.5 ### Minor Analysis Improvements diff --git a/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md b/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md deleted file mode 100644 index 2e5933a61e8..00000000000 --- a/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md b/cpp/ql/src/change-notes/released/0.9.6.md similarity index 77% rename from cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md rename to cpp/ql/src/change-notes/released/0.9.6.md index d6ef3c3e056..0c85f3f9f0f 100644 --- a/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md +++ b/cpp/ql/src/change-notes/released/0.9.6.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- +## 0.9.6 + +### Minor Analysis Improvements + +* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. * The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 460240feaff..19139c132b2 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.5 +lastReleaseVersion: 0.9.6 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 31bd20166b2..4052647bb97 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.9.6-dev +version: 0.9.6 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 190b83b0f25..82eacfc84f7 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.10 + +No user-facing changes. + ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md new file mode 100644 index 00000000000..8e8007d8475 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md @@ -0,0 +1,3 @@ +## 1.7.10 + +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 678da6bc37e..31c7fe07020 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.9 +lastReleaseVersion: 1.7.10 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 7e643b0fac3..ee993bed0c9 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.10-dev +version: 1.7.10 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 190b83b0f25..82eacfc84f7 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.10 + +No user-facing changes. + ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md new file mode 100644 index 00000000000..8e8007d8475 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md @@ -0,0 +1,3 @@ +## 1.7.10 + +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 678da6bc37e..31c7fe07020 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.9 +lastReleaseVersion: 1.7.10 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 8654bbfd031..1f421754fc8 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.10-dev +version: 1.7.10 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 95fd64c5270..16cc14259e1 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,17 @@ +## 0.8.10 + +### Major Analysis Improvements + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. + +### Minor Analysis Improvements + +* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. +* C# 12: Add extractor and QL library support for `ref readonly` parameters. +* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. +* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md b/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md deleted file mode 100644 index 6bb8e99c71e..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md b/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md deleted file mode 100644 index d6ffbd523ac..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. diff --git a/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md b/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md deleted file mode 100644 index 9b1739b9b6d..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. diff --git a/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md b/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md deleted file mode 100644 index 66ab65083dc..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md b/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md deleted file mode 100644 index 8749c790954..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. diff --git a/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md b/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md deleted file mode 100644 index 586b5341d29..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C# 12: Add extractor and QL library support for `ref readonly` parameters. diff --git a/csharp/ql/lib/change-notes/released/0.8.10.md b/csharp/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..f591ddc5b21 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,13 @@ +## 0.8.10 + +### Major Analysis Improvements + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. + +### Minor Analysis Improvements + +* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. +* C# 12: Add extractor and QL library support for `ref readonly` parameters. +* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. +* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index d75ea3c6320..93c5c1120a2 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.10-dev +version: 0.8.10 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 9fe1609363f..46c939e5cee 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/src/change-notes/2024-02-06-threat-models.md b/csharp/ql/src/change-notes/released/0.8.10.md similarity index 88% rename from csharp/ql/src/change-notes/2024-02-06-threat-models.md rename to csharp/ql/src/change-notes/released/0.8.10.md index 69ac4e4dc17..702161c3d28 100644 --- a/csharp/ql/src/change-notes/2024-02-06-threat-models.md +++ b/csharp/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- -* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. \ No newline at end of file +## 0.8.10 + +### Minor Analysis Improvements + +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 9ee23cc7307..46384094b19 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.10-dev +version: 0.8.10 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index fba2a870356..a59e560c415 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/0.0.9.md b/go/ql/consistency-queries/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +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 58fdc6b45de..ecdd64fbab8 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index b574796b995..d5a2fbee5f1 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: 0.0.9-dev +version: 0.0.9 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 65a2376217b..fee5fd37a26 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.7.10 + +### Major Analysis Improvements + +* We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. +* Go 1.22 has been included in the range of supported Go versions. + +### Bug Fixes + +* Fixed dataflow out of a `map` using a `range` statement. + ## 0.7.9 No user-facing changes. diff --git a/go/ql/lib/change-notes/2024-02-14-range-map-read.md b/go/ql/lib/change-notes/2024-02-14-range-map-read.md deleted file mode 100644 index ea45737a72e..00000000000 --- a/go/ql/lib/change-notes/2024-02-14-range-map-read.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md b/go/ql/lib/change-notes/released/0.7.10.md similarity index 68% rename from go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md rename to go/ql/lib/change-notes/released/0.7.10.md index 0442a571029..55954f8a394 100644 --- a/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md +++ b/go/ql/lib/change-notes/released/0.7.10.md @@ -1,5 +1,10 @@ ---- -category: majorAnalysis ---- +## 0.7.10 + +### Major Analysis Improvements + * We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. * Go 1.22 has been included in the range of supported Go versions. + +### Bug Fixes + +* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index f21e478efa6..8cc190fa880 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.10-dev +version: 0.7.10 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index d95165a3a34..24e38b9890e 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.10 + +No user-facing changes. + ## 0.7.9 ### New Queries diff --git a/go/ql/src/change-notes/released/0.7.10.md b/go/ql/src/change-notes/released/0.7.10.md new file mode 100644 index 00000000000..989c5b8f682 --- /dev/null +++ b/go/ql/src/change-notes/released/0.7.10.md @@ -0,0 +1,3 @@ +## 0.7.10 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index d91cab59612..4ded3a52f63 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.10-dev +version: 0.7.10 groups: - go - queries diff --git a/java/ql/automodel/src/CHANGELOG.md b/java/ql/automodel/src/CHANGELOG.md index 4a3c54adb38..c3282c773a9 100644 --- a/java/ql/automodel/src/CHANGELOG.md +++ b/java/ql/automodel/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.17 + +No user-facing changes. + ## 0.0.16 No user-facing changes. diff --git a/java/ql/automodel/src/change-notes/released/0.0.17.md b/java/ql/automodel/src/change-notes/released/0.0.17.md new file mode 100644 index 00000000000..62cc89030a6 --- /dev/null +++ b/java/ql/automodel/src/change-notes/released/0.0.17.md @@ -0,0 +1,3 @@ +## 0.0.17 + +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 a49f7be4cff..cbc3d3cd493 100644 --- a/java/ql/automodel/src/codeql-pack.release.yml +++ b/java/ql/automodel/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.16 +lastReleaseVersion: 0.0.17 diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 898239be098..59fab0cdcc5 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: 0.0.17-dev +version: 0.0.17 groups: - java - automodel diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index d369cbdc931..2a02ccee6ab 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. + +### Bug Fixes + +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. +* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. + ## 0.8.9 ### Deprecated APIs diff --git a/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md b/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md deleted file mode 100644 index eb560fba07d..00000000000 --- a/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/change-notes/2024-02-27-error-types.md b/java/ql/lib/change-notes/2024-02-27-error-types.md deleted file mode 100644 index cdc6d7620aa..00000000000 --- a/java/ql/lib/change-notes/2024-02-27-error-types.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. diff --git a/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md b/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md deleted file mode 100644 index a0227088ae9..00000000000 --- a/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. diff --git a/java/ql/lib/change-notes/released/0.8.10.md b/java/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..b45f14bf347 --- /dev/null +++ b/java/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,10 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. + +### Bug Fixes + +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. +* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 15b4982d41e..428eedc75e3 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.10-dev +version: 0.8.10 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 5d835351453..c61275f5ed8 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.8.10 + +### New Queries + +* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. + +### Minor Analysis Improvements + +* To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. + ## 0.8.9 ### New Queries diff --git a/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md b/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md deleted file mode 100644 index 1de07727796..00000000000 --- a/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. \ No newline at end of file diff --git a/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md b/java/ql/src/change-notes/released/0.8.10.md similarity index 54% rename from java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md rename to java/ql/src/change-notes/released/0.8.10.md index 0bb4f18f2bd..c5d18ae3379 100644 --- a/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md +++ b/java/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,9 @@ ---- -category: minorAnalysis ---- +## 0.8.10 + +### New Queries + +* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. + +### Minor Analysis Improvements + * To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 8f4de528e21..ebbdbeee3b2 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.10-dev +version: 0.8.10 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 5b97ebbb22b..d5edcc00513 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.10 + +No user-facing changes. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/released/0.8.10.md b/javascript/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..777bbd2fded --- /dev/null +++ b/javascript/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,3 @@ +## 0.8.10 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index ef3ca7521ac..da16493a21c 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.10-dev +version: 0.8.10 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 85516e3625d..b9627cac5ee 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.10 + +No user-facing changes. + ## 0.8.9 ### Bug Fixes diff --git a/javascript/ql/src/change-notes/released/0.8.10.md b/javascript/ql/src/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..777bbd2fded --- /dev/null +++ b/javascript/ql/src/change-notes/released/0.8.10.md @@ -0,0 +1,3 @@ +## 0.8.10 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index b6181aa30e9..d224952c564 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.10-dev +version: 0.8.10 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 3c06dd69b0f..1c4455b66c4 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.10 + +No user-facing changes. + ## 0.7.9 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/0.7.10.md b/misc/suite-helpers/change-notes/released/0.7.10.md new file mode 100644 index 00000000000..989c5b8f682 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/0.7.10.md @@ -0,0 +1,3 @@ +## 0.7.10 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 49b7a6bda4c..54d978d5efe 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.10-dev +version: 0.7.10 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index e6f318c51ea..f095607ca1b 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.11.10 + +### Minor Analysis Improvements + +* Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. +* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. + ## 0.11.9 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md b/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md deleted file mode 100644 index 3c47c6ba866..00000000000 --- a/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/change-notes/2024-03-01-dict-update-content.md b/python/ql/lib/change-notes/released/0.11.10.md similarity index 52% rename from python/ql/lib/change-notes/2024-03-01-dict-update-content.md rename to python/ql/lib/change-notes/released/0.11.10.md index dfb8d247fff..ed873724e4f 100644 --- a/python/ql/lib/change-notes/2024-03-01-dict-update-content.md +++ b/python/ql/lib/change-notes/released/0.11.10.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- +## 0.11.10 + +### Minor Analysis Improvements + * Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. +* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index b064d1778a1..ddddcbe9193 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.11.9 +lastReleaseVersion: 0.11.10 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index e9f66e205f2..59a8b4c96d1 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.10-dev +version: 0.11.10 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 50762bcbf34..d4245aba7a6 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.9.10 + +### New Queries + +* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. + ## 0.9.9 No user-facing changes. diff --git a/python/ql/src/change-notes/2024-03-04-nosql-injection.md b/python/ql/src/change-notes/released/0.9.10.md similarity index 81% rename from python/ql/src/change-notes/2024-03-04-nosql-injection.md rename to python/ql/src/change-notes/released/0.9.10.md index 6e98540c757..4cbb221b789 100644 --- a/python/ql/src/change-notes/2024-03-04-nosql-injection.md +++ b/python/ql/src/change-notes/released/0.9.10.md @@ -1,4 +1,5 @@ ---- -category: newQuery ---- +## 0.9.10 + +### New Queries + * The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index aabed7c396b..d086ed69541 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.9 +lastReleaseVersion: 0.9.10 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index aa18f2d8707..c920f667836 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.10-dev +version: 0.9.10 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index a623a151e89..c61a12e0f4a 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. +* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. +* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md b/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md deleted file mode 100644 index c2276f284a8..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md b/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md deleted file mode 100644 index 1486c7a472d..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md deleted file mode 100644 index 6f3a90768ba..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md deleted file mode 100644 index 350e049b5bf..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/released/0.8.10.md b/ruby/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..666e28f840e --- /dev/null +++ b/ruby/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,8 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. +* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. +* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 7d409b83adb..de5b41999fe 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.10-dev +version: 0.8.10 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 4149c728eff..f875b6d16ad 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. +* Added additional request sources for Ruby on Rails. + ## 0.8.9 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md b/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md deleted file mode 100644 index 84ea696dfef..00000000000 --- a/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added additional request sources for Ruby on Rails. \ No newline at end of file diff --git a/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md b/ruby/ql/src/change-notes/released/0.8.10.md similarity index 51% rename from ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md rename to ruby/ql/src/change-notes/released/0.8.10.md index 43e40d3fd53..985cdf8d22e 100644 --- a/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md +++ b/ruby/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- -* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. \ No newline at end of file +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. +* Added additional request sources for Ruby on Rails. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 8af7f9fd797..5e379268234 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.10-dev +version: 0.8.10 groups: - ruby - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index dbfa6ef4512..75f2ca53f98 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.10 + +No user-facing changes. + ## 0.1.9 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/0.1.10.md b/shared/controlflow/change-notes/released/0.1.10.md new file mode 100644 index 00000000000..47358eeee93 --- /dev/null +++ b/shared/controlflow/change-notes/released/0.1.10.md @@ -0,0 +1,3 @@ +## 0.1.10 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 1425c0edf7f..30f5ca88be0 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.9 +lastReleaseVersion: 0.1.10 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 9d35a678276..1d43802be42 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.10-dev +version: 0.1.10 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index 67a5bf589f4..ef80788bded 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.1 + +No user-facing changes. + ## 0.2.0 ### Breaking Changes diff --git a/shared/dataflow/change-notes/released/0.2.1.md b/shared/dataflow/change-notes/released/0.2.1.md new file mode 100644 index 00000000000..3dbfc85fe11 --- /dev/null +++ b/shared/dataflow/change-notes/released/0.2.1.md @@ -0,0 +1,3 @@ +## 0.2.1 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 5274e27ed52..df29a726bcc 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.2.1 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 1e7becf71c4..ee422e02ea9 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.2.1-dev +version: 0.2.1 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 4d09057118c..4730366775e 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/mad/change-notes/released/0.2.10.md b/shared/mad/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/mad/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 22c8f271ccc..6d7269ef3da 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: null diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 5b8dbcfab22..9943dcb7972 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/0.0.9.md b/shared/rangeanalysis/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 58fdc6b45de..ecdd64fbab8 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 836fe51ee34..01db5d5734d 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 0.0.9-dev +version: 0.0.9 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index cd5f91f71ec..c05869c153d 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/regex/change-notes/released/0.2.10.md b/shared/regex/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/regex/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index ea3f7f9b238..0d4f485312f 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 01acfae0148..a9161ff578b 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/ssa/change-notes/released/0.2.10.md b/shared/ssa/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/ssa/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 19304ad107f..2ad254711a5 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index fba2a870356..a59e560c415 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/0.0.9.md b/shared/threat-models/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/shared/threat-models/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 58fdc6b45de..ecdd64fbab8 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index d0ed9a913b2..60cbbc56fcb 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 0.0.9-dev +version: 0.0.9 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 1db3a01af0b..560ad058d5b 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/0.2.10.md b/shared/tutorial/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/tutorial/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index b595ae9ee70..69116705c1b 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: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index afc857bc6bc..350f9ecbeae 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/0.2.10.md b/shared/typetracking/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/typetracking/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index b55927f59bb..fbbdcf5162a 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 66c5871d982..54b1eaa4d58 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/typos/change-notes/released/0.2.10.md b/shared/typos/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/typos/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 644bfe11bff..4d59d9b3c34 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 63832e927fa..1ca1f71bcbc 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/util/change-notes/released/0.2.10.md b/shared/util/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/util/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index ca1a866a53d..28ed738a93d 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: null diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index e5495abcd50..9fd5ebc26ab 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/yaml/change-notes/released/0.2.10.md b/shared/yaml/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/yaml/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index de5b47e120a..9643ffcec66 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index e88cd0259cc..8f14bfcedc9 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.10 + +### Bug Fixes + +* Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. + ## 0.3.9 ### Minor Analysis Improvements diff --git a/swift/ql/lib/change-notes/2024-02-22-extension-patch.md b/swift/ql/lib/change-notes/released/0.3.10.md similarity index 83% rename from swift/ql/lib/change-notes/2024-02-22-extension-patch.md rename to swift/ql/lib/change-notes/released/0.3.10.md index 7bd78f3b785..9d6286ff58a 100644 --- a/swift/ql/lib/change-notes/2024-02-22-extension-patch.md +++ b/swift/ql/lib/change-notes/released/0.3.10.md @@ -1,4 +1,5 @@ ---- -category: fix ---- +## 0.3.10 + +### Bug Fixes + * Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 3fa5180bcb4..76ca0ac8ba7 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.9 +lastReleaseVersion: 0.3.10 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index a37a4cb3d58..70ec4798ea8 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.10-dev +version: 0.3.10 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 96615d06972..bda9834c9bc 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.10 + +No user-facing changes. + ## 0.3.9 ### New Queries diff --git a/swift/ql/src/change-notes/released/0.3.10.md b/swift/ql/src/change-notes/released/0.3.10.md new file mode 100644 index 00000000000..925a48fc52e --- /dev/null +++ b/swift/ql/src/change-notes/released/0.3.10.md @@ -0,0 +1,3 @@ +## 0.3.10 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 3fa5180bcb4..76ca0ac8ba7 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.9 +lastReleaseVersion: 0.3.10 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index e3ead42c98b..ba66b065529 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.10-dev +version: 0.3.10 groups: - swift - queries From ce31f8641a4c4f83c8665bdf48de524862aa15c7 Mon Sep 17 00:00:00 2001 From: Angela P Wen Date: Wed, 6 Mar 2024 12:07:33 -0800 Subject: [PATCH 037/309] Revert "Release preparation for version 2.16.4" --- cpp/ql/lib/CHANGELOG.md | 6 ------ ....12.7.md => 2024-02-26-ir-named-destructors.md} | 9 ++++----- cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 7 ------- ...=> 2024-02-16-modelled-functions-block-flow.md} | 8 +++----- .../2024-02-29-non-constant-format-path-query.md | 4 ++++ cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ---- .../Solorigate/lib/change-notes/released/1.7.10.md | 3 --- .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ---- .../Solorigate/src/change-notes/released/1.7.10.md | 3 --- .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 14 -------------- .../change-notes/2024-02-21-getonly-properties.md | 4 ++++ .../ql/lib/change-notes/2024-02-22-no-db-stats.md | 4 ++++ .../change-notes/2024-02-23-compiler-generated.md | 4 ++++ .../2024-02-26-variable-capture-flow.md | 4 ++++ .../2024-02-28-experimental-attribute.md | 4 ++++ .../2024-02-28-refreadonly-parameter.md | 4 ++++ csharp/ql/lib/change-notes/released/0.8.10.md | 13 ------------- csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 6 ------ .../0.8.10.md => 2024-02-06-threat-models.md} | 9 ++++----- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ---- .../change-notes/released/0.0.9.md | 3 --- go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 11 ----------- .../lib/change-notes/2024-02-14-range-map-read.md | 4 ++++ ...0.7.10.md => 2024-03-04-autobuilder-changes.md} | 11 +++-------- go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ---- go/ql/src/change-notes/released/0.7.10.md | 3 --- go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/CHANGELOG.md | 4 ---- .../automodel/src/change-notes/released/0.0.17.md | 3 --- java/ql/automodel/src/codeql-pack.release.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 11 ----------- .../change-notes/2024-02-23-widget-flowsteps.md | 4 ++++ java/ql/lib/change-notes/2024-02-27-error-types.md | 4 ++++ .../lib/change-notes/2024-02-27-mvnw-versions.md | 4 ++++ java/ql/lib/change-notes/released/0.8.10.md | 10 ---------- java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 10 ---------- .../2024-02-12-android-insecure-keys.md | 4 ++++ ...3-04-sensitive-log-remove-null-from-sources.md} | 11 +++-------- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ---- javascript/ql/lib/change-notes/released/0.8.10.md | 3 --- javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ---- javascript/ql/src/change-notes/released/0.8.10.md | 3 --- javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ---- misc/suite-helpers/change-notes/released/0.7.10.md | 3 --- misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 7 ------- .../2024-02-28-iterable-unpacking-module-scope.md | 4 ++++ ....11.10.md => 2024-03-01-dict-update-content.md} | 8 +++----- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 ------ .../0.9.10.md => 2024-03-04-nosql-injection.md} | 7 +++---- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 9 --------- ...2024-02-15-activerecord_connection_sql_sinks.md | 4 ++++ .../2024-02-20-activerecord-sql-sink-arguments.md | 4 ++++ .../lib/change-notes/2024-02-26-arel-sqlliteral.md | 4 ++++ .../lib/change-notes/2024-02-29-i18n-translate.md | 4 ++++ ruby/ql/lib/change-notes/released/0.8.10.md | 8 -------- ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 ------- .../2024-02-13-rails-more-request-sources.md | 4 ++++ ...d => 2024-03-01-method-code-injection-sinks.md} | 10 ++++------ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ---- shared/controlflow/change-notes/released/0.1.10.md | 3 --- shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ---- shared/dataflow/change-notes/released/0.2.1.md | 3 --- shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ---- shared/mad/change-notes/released/0.2.10.md | 3 --- shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ---- .../rangeanalysis/change-notes/released/0.0.9.md | 3 --- shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ---- shared/regex/change-notes/released/0.2.10.md | 3 --- shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ---- shared/ssa/change-notes/released/0.2.10.md | 3 --- shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ---- .../threat-models/change-notes/released/0.0.9.md | 3 --- shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ---- shared/tutorial/change-notes/released/0.2.10.md | 3 --- shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ---- .../typetracking/change-notes/released/0.2.10.md | 3 --- shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ---- shared/typos/change-notes/released/0.2.10.md | 3 --- shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ---- shared/util/change-notes/released/0.2.10.md | 3 --- shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ---- shared/yaml/change-notes/released/0.2.10.md | 3 --- shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 6 ------ .../0.3.10.md => 2024-02-22-extension-patch.md} | 7 +++---- swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ---- swift/ql/src/change-notes/released/0.3.10.md | 3 --- swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 150 files changed, 168 insertions(+), 394 deletions(-) rename cpp/ql/lib/change-notes/{released/0.12.7.md => 2024-02-26-ir-named-destructors.md} (54%) rename cpp/ql/src/change-notes/{released/0.9.6.md => 2024-02-16-modelled-functions-block-flow.md} (77%) create mode 100644 cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md delete mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md delete mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md create mode 100644 csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md create mode 100644 csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md create mode 100644 csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md create mode 100644 csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md create mode 100644 csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md create mode 100644 csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md delete mode 100644 csharp/ql/lib/change-notes/released/0.8.10.md rename csharp/ql/src/change-notes/{released/0.8.10.md => 2024-02-06-threat-models.md} (88%) delete mode 100644 go/ql/consistency-queries/change-notes/released/0.0.9.md create mode 100644 go/ql/lib/change-notes/2024-02-14-range-map-read.md rename go/ql/lib/change-notes/{released/0.7.10.md => 2024-03-04-autobuilder-changes.md} (68%) delete mode 100644 go/ql/src/change-notes/released/0.7.10.md delete mode 100644 java/ql/automodel/src/change-notes/released/0.0.17.md create mode 100644 java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md create mode 100644 java/ql/lib/change-notes/2024-02-27-error-types.md create mode 100644 java/ql/lib/change-notes/2024-02-27-mvnw-versions.md delete mode 100644 java/ql/lib/change-notes/released/0.8.10.md create mode 100644 java/ql/src/change-notes/2024-02-12-android-insecure-keys.md rename java/ql/src/change-notes/{released/0.8.10.md => 2024-03-04-sensitive-log-remove-null-from-sources.md} (54%) delete mode 100644 javascript/ql/lib/change-notes/released/0.8.10.md delete mode 100644 javascript/ql/src/change-notes/released/0.8.10.md delete mode 100644 misc/suite-helpers/change-notes/released/0.7.10.md create mode 100644 python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md rename python/ql/lib/change-notes/{released/0.11.10.md => 2024-03-01-dict-update-content.md} (52%) rename python/ql/src/change-notes/{released/0.9.10.md => 2024-03-04-nosql-injection.md} (81%) create mode 100644 ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md create mode 100644 ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md create mode 100644 ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md create mode 100644 ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md delete mode 100644 ruby/ql/lib/change-notes/released/0.8.10.md create mode 100644 ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md rename ruby/ql/src/change-notes/{released/0.8.10.md => 2024-03-01-method-code-injection-sinks.md} (51%) delete mode 100644 shared/controlflow/change-notes/released/0.1.10.md delete mode 100644 shared/dataflow/change-notes/released/0.2.1.md delete mode 100644 shared/mad/change-notes/released/0.2.10.md delete mode 100644 shared/rangeanalysis/change-notes/released/0.0.9.md delete mode 100644 shared/regex/change-notes/released/0.2.10.md delete mode 100644 shared/ssa/change-notes/released/0.2.10.md delete mode 100644 shared/threat-models/change-notes/released/0.0.9.md delete mode 100644 shared/tutorial/change-notes/released/0.2.10.md delete mode 100644 shared/typetracking/change-notes/released/0.2.10.md delete mode 100644 shared/typos/change-notes/released/0.2.10.md delete mode 100644 shared/util/change-notes/released/0.2.10.md delete mode 100644 shared/yaml/change-notes/released/0.2.10.md rename swift/ql/lib/change-notes/{released/0.3.10.md => 2024-02-22-extension-patch.md} (83%) delete mode 100644 swift/ql/src/change-notes/released/0.3.10.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index e1c0dfbecd9..b3091ec37d8 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,9 +1,3 @@ -## 0.12.7 - -### Minor Analysis Improvements - -* Added destructors for named objects to the intermediate representation. - ## 0.12.6 ### New Features diff --git a/cpp/ql/lib/change-notes/released/0.12.7.md b/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md similarity index 54% rename from cpp/ql/lib/change-notes/released/0.12.7.md rename to cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md index 856a8b665c7..4e35decaf8e 100644 --- a/cpp/ql/lib/change-notes/released/0.12.7.md +++ b/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md @@ -1,5 +1,4 @@ -## 0.12.7 - -### Minor Analysis Improvements - -* Added destructors for named objects to the intermediate representation. +--- +category: minorAnalysis +--- +* Added destructors for named objects to the intermediate representation. \ No newline at end of file diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 20419e9c610..170a312c104 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.12.7 +lastReleaseVersion: 0.12.6 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 3bb9229bf94..8e201fff594 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.12.7 +version: 0.12.7-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index f6acd424bb0..ffcd73ff5d7 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,10 +1,3 @@ -## 0.9.6 - -### Minor Analysis Improvements - -* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. -* The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. - ## 0.9.5 ### Minor Analysis Improvements diff --git a/cpp/ql/src/change-notes/released/0.9.6.md b/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md similarity index 77% rename from cpp/ql/src/change-notes/released/0.9.6.md rename to cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md index 0c85f3f9f0f..d6ef3c3e056 100644 --- a/cpp/ql/src/change-notes/released/0.9.6.md +++ b/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md @@ -1,6 +1,4 @@ -## 0.9.6 - -### Minor Analysis Improvements - -* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. +--- +category: minorAnalysis +--- * The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. diff --git a/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md b/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md new file mode 100644 index 00000000000..2e5933a61e8 --- /dev/null +++ b/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. \ No newline at end of file diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 19139c132b2..460240feaff 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.6 +lastReleaseVersion: 0.9.5 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 4052647bb97..31bd20166b2 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.9.6 +version: 0.9.6-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 82eacfc84f7..190b83b0f25 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,7 +1,3 @@ -## 1.7.10 - -No user-facing changes. - ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md deleted file mode 100644 index 8e8007d8475..00000000000 --- a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.7.10 - -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 31c7fe07020..678da6bc37e 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.10 +lastReleaseVersion: 1.7.9 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index ee993bed0c9..7e643b0fac3 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.10 +version: 1.7.10-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 82eacfc84f7..190b83b0f25 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 1.7.10 - -No user-facing changes. - ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md deleted file mode 100644 index 8e8007d8475..00000000000 --- a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.7.10 - -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 31c7fe07020..678da6bc37e 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.10 +lastReleaseVersion: 1.7.9 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 1f421754fc8..8654bbfd031 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.10 +version: 1.7.10-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 16cc14259e1..95fd64c5270 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,17 +1,3 @@ -## 0.8.10 - -### Major Analysis Improvements - -* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. -* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. - -### Minor Analysis Improvements - -* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. -* C# 12: Add extractor and QL library support for `ref readonly` parameters. -* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. -* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. - ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md b/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md new file mode 100644 index 00000000000..6bb8e99c71e --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md b/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md new file mode 100644 index 00000000000..d6ffbd523ac --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. diff --git a/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md b/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md new file mode 100644 index 00000000000..9b1739b9b6d --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. diff --git a/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md b/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md new file mode 100644 index 00000000000..66ab65083dc --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md b/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md new file mode 100644 index 00000000000..8749c790954 --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. diff --git a/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md b/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md new file mode 100644 index 00000000000..586b5341d29 --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* C# 12: Add extractor and QL library support for `ref readonly` parameters. diff --git a/csharp/ql/lib/change-notes/released/0.8.10.md b/csharp/ql/lib/change-notes/released/0.8.10.md deleted file mode 100644 index f591ddc5b21..00000000000 --- a/csharp/ql/lib/change-notes/released/0.8.10.md +++ /dev/null @@ -1,13 +0,0 @@ -## 0.8.10 - -### Major Analysis Improvements - -* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. -* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. - -### Minor Analysis Improvements - -* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. -* C# 12: Add extractor and QL library support for `ref readonly` parameters. -* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. -* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 93c5c1120a2..d75ea3c6320 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.10 +version: 0.8.10-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 46c939e5cee..9fe1609363f 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,9 +1,3 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. - ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/src/change-notes/released/0.8.10.md b/csharp/ql/src/change-notes/2024-02-06-threat-models.md similarity index 88% rename from csharp/ql/src/change-notes/released/0.8.10.md rename to csharp/ql/src/change-notes/2024-02-06-threat-models.md index 702161c3d28..69ac4e4dc17 100644 --- a/csharp/ql/src/change-notes/released/0.8.10.md +++ b/csharp/ql/src/change-notes/2024-02-06-threat-models.md @@ -1,5 +1,4 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. +--- +category: minorAnalysis +--- +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. \ No newline at end of file diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 46384094b19..9ee23cc7307 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.10 +version: 0.8.10-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index a59e560c415..fba2a870356 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.0.9 - -No user-facing changes. - ## 0.0.8 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/0.0.9.md b/go/ql/consistency-queries/change-notes/released/0.0.9.md deleted file mode 100644 index c9e17c6d6cf..00000000000 --- a/go/ql/consistency-queries/change-notes/released/0.0.9.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.9 - -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 ecdd64fbab8..58fdc6b45de 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.8 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index d5a2fbee5f1..b574796b995 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: 0.0.9 +version: 0.0.9-dev groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index fee5fd37a26..65a2376217b 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,14 +1,3 @@ -## 0.7.10 - -### Major Analysis Improvements - -* We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. -* Go 1.22 has been included in the range of supported Go versions. - -### Bug Fixes - -* Fixed dataflow out of a `map` using a `range` statement. - ## 0.7.9 No user-facing changes. diff --git a/go/ql/lib/change-notes/2024-02-14-range-map-read.md b/go/ql/lib/change-notes/2024-02-14-range-map-read.md new file mode 100644 index 00000000000..ea45737a72e --- /dev/null +++ b/go/ql/lib/change-notes/2024-02-14-range-map-read.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/change-notes/released/0.7.10.md b/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md similarity index 68% rename from go/ql/lib/change-notes/released/0.7.10.md rename to go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md index 55954f8a394..0442a571029 100644 --- a/go/ql/lib/change-notes/released/0.7.10.md +++ b/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md @@ -1,10 +1,5 @@ -## 0.7.10 - -### Major Analysis Improvements - +--- +category: majorAnalysis +--- * We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. * Go 1.22 has been included in the range of supported Go versions. - -### Bug Fixes - -* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 67518567297..576395f3405 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.9 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 8cc190fa880..f21e478efa6 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.10 +version: 0.7.10-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 24e38b9890e..d95165a3a34 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.7.10 - -No user-facing changes. - ## 0.7.9 ### New Queries diff --git a/go/ql/src/change-notes/released/0.7.10.md b/go/ql/src/change-notes/released/0.7.10.md deleted file mode 100644 index 989c5b8f682..00000000000 --- a/go/ql/src/change-notes/released/0.7.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.7.10 - -No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 67518567297..576395f3405 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.9 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 4ded3a52f63..d91cab59612 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.10 +version: 0.7.10-dev groups: - go - queries diff --git a/java/ql/automodel/src/CHANGELOG.md b/java/ql/automodel/src/CHANGELOG.md index c3282c773a9..4a3c54adb38 100644 --- a/java/ql/automodel/src/CHANGELOG.md +++ b/java/ql/automodel/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.0.17 - -No user-facing changes. - ## 0.0.16 No user-facing changes. diff --git a/java/ql/automodel/src/change-notes/released/0.0.17.md b/java/ql/automodel/src/change-notes/released/0.0.17.md deleted file mode 100644 index 62cc89030a6..00000000000 --- a/java/ql/automodel/src/change-notes/released/0.0.17.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.17 - -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 cbc3d3cd493..a49f7be4cff 100644 --- a/java/ql/automodel/src/codeql-pack.release.yml +++ b/java/ql/automodel/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.17 +lastReleaseVersion: 0.0.16 diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 59fab0cdcc5..898239be098 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: 0.0.17 +version: 0.0.17-dev groups: - java - automodel diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 2a02ccee6ab..d369cbdc931 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,14 +1,3 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. - -### Bug Fixes - -* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. -* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. - ## 0.8.9 ### Deprecated APIs diff --git a/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md b/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md new file mode 100644 index 00000000000..eb560fba07d --- /dev/null +++ b/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/change-notes/2024-02-27-error-types.md b/java/ql/lib/change-notes/2024-02-27-error-types.md new file mode 100644 index 00000000000..cdc6d7620aa --- /dev/null +++ b/java/ql/lib/change-notes/2024-02-27-error-types.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. diff --git a/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md b/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md new file mode 100644 index 00000000000..a0227088ae9 --- /dev/null +++ b/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. diff --git a/java/ql/lib/change-notes/released/0.8.10.md b/java/ql/lib/change-notes/released/0.8.10.md deleted file mode 100644 index b45f14bf347..00000000000 --- a/java/ql/lib/change-notes/released/0.8.10.md +++ /dev/null @@ -1,10 +0,0 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. - -### Bug Fixes - -* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. -* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 428eedc75e3..15b4982d41e 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.10 +version: 0.8.10-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index c61275f5ed8..5d835351453 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,13 +1,3 @@ -## 0.8.10 - -### New Queries - -* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. - -### Minor Analysis Improvements - -* To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. - ## 0.8.9 ### New Queries diff --git a/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md b/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md new file mode 100644 index 00000000000..1de07727796 --- /dev/null +++ b/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. \ No newline at end of file diff --git a/java/ql/src/change-notes/released/0.8.10.md b/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md similarity index 54% rename from java/ql/src/change-notes/released/0.8.10.md rename to java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md index c5d18ae3379..0bb4f18f2bd 100644 --- a/java/ql/src/change-notes/released/0.8.10.md +++ b/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md @@ -1,9 +1,4 @@ -## 0.8.10 - -### New Queries - -* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. - -### Minor Analysis Improvements - +--- +category: minorAnalysis +--- * To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index ebbdbeee3b2..8f4de528e21 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.10 +version: 0.8.10-dev groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index d5edcc00513..5b97ebbb22b 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.8.10 - -No user-facing changes. - ## 0.8.9 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/released/0.8.10.md b/javascript/ql/lib/change-notes/released/0.8.10.md deleted file mode 100644 index 777bbd2fded..00000000000 --- a/javascript/ql/lib/change-notes/released/0.8.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.8.10 - -No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index da16493a21c..ef3ca7521ac 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.10 +version: 0.8.10-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index b9627cac5ee..85516e3625d 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.8.10 - -No user-facing changes. - ## 0.8.9 ### Bug Fixes diff --git a/javascript/ql/src/change-notes/released/0.8.10.md b/javascript/ql/src/change-notes/released/0.8.10.md deleted file mode 100644 index 777bbd2fded..00000000000 --- a/javascript/ql/src/change-notes/released/0.8.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.8.10 - -No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index d224952c564..b6181aa30e9 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.10 +version: 0.8.10-dev groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 1c4455b66c4..3c06dd69b0f 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.7.10 - -No user-facing changes. - ## 0.7.9 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/0.7.10.md b/misc/suite-helpers/change-notes/released/0.7.10.md deleted file mode 100644 index 989c5b8f682..00000000000 --- a/misc/suite-helpers/change-notes/released/0.7.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.7.10 - -No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 67518567297..576395f3405 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.9 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 54d978d5efe..49b7a6bda4c 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.10 +version: 0.7.10-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index f095607ca1b..e6f318c51ea 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,10 +1,3 @@ -## 0.11.10 - -### Minor Analysis Improvements - -* Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. -* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. - ## 0.11.9 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md b/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md new file mode 100644 index 00000000000..3c47c6ba866 --- /dev/null +++ b/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/change-notes/released/0.11.10.md b/python/ql/lib/change-notes/2024-03-01-dict-update-content.md similarity index 52% rename from python/ql/lib/change-notes/released/0.11.10.md rename to python/ql/lib/change-notes/2024-03-01-dict-update-content.md index ed873724e4f..dfb8d247fff 100644 --- a/python/ql/lib/change-notes/released/0.11.10.md +++ b/python/ql/lib/change-notes/2024-03-01-dict-update-content.md @@ -1,6 +1,4 @@ -## 0.11.10 - -### Minor Analysis Improvements - +--- +category: minorAnalysis +--- * Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. -* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index ddddcbe9193..b064d1778a1 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.11.10 +lastReleaseVersion: 0.11.9 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 59a8b4c96d1..e9f66e205f2 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.10 +version: 0.11.10-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index d4245aba7a6..50762bcbf34 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,9 +1,3 @@ -## 0.9.10 - -### New Queries - -* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. - ## 0.9.9 No user-facing changes. diff --git a/python/ql/src/change-notes/released/0.9.10.md b/python/ql/src/change-notes/2024-03-04-nosql-injection.md similarity index 81% rename from python/ql/src/change-notes/released/0.9.10.md rename to python/ql/src/change-notes/2024-03-04-nosql-injection.md index 4cbb221b789..6e98540c757 100644 --- a/python/ql/src/change-notes/released/0.9.10.md +++ b/python/ql/src/change-notes/2024-03-04-nosql-injection.md @@ -1,5 +1,4 @@ -## 0.9.10 - -### New Queries - +--- +category: newQuery +--- * The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index d086ed69541..aabed7c396b 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.10 +lastReleaseVersion: 0.9.9 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index c920f667836..aa18f2d8707 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.10 +version: 0.9.10-dev groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index c61a12e0f4a..a623a151e89 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,12 +1,3 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. -* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. -* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. -* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. - ## 0.8.9 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md b/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md new file mode 100644 index 00000000000..c2276f284a8 --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md b/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md new file mode 100644 index 00000000000..1486c7a472d --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md new file mode 100644 index 00000000000..6f3a90768ba --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md new file mode 100644 index 00000000000..350e049b5bf --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/released/0.8.10.md b/ruby/ql/lib/change-notes/released/0.8.10.md deleted file mode 100644 index 666e28f840e..00000000000 --- a/ruby/ql/lib/change-notes/released/0.8.10.md +++ /dev/null @@ -1,8 +0,0 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. -* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. -* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. -* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index de5b41999fe..7d409b83adb 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.10 +version: 0.8.10-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index f875b6d16ad..4149c728eff 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,10 +1,3 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. -* Added additional request sources for Ruby on Rails. - ## 0.8.9 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md b/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md new file mode 100644 index 00000000000..84ea696dfef --- /dev/null +++ b/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added additional request sources for Ruby on Rails. \ No newline at end of file diff --git a/ruby/ql/src/change-notes/released/0.8.10.md b/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md similarity index 51% rename from ruby/ql/src/change-notes/released/0.8.10.md rename to ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md index 985cdf8d22e..43e40d3fd53 100644 --- a/ruby/ql/src/change-notes/released/0.8.10.md +++ b/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md @@ -1,6 +1,4 @@ -## 0.8.10 - -### Minor Analysis Improvements - -* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. -* Added additional request sources for Ruby on Rails. +--- +category: minorAnalysis +--- +* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. \ No newline at end of file diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 0521f0f75fa..5290c29b7fe 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.9 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 5e379268234..8af7f9fd797 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.10 +version: 0.8.10-dev groups: - ruby - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index 75f2ca53f98..dbfa6ef4512 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.1.10 - -No user-facing changes. - ## 0.1.9 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/0.1.10.md b/shared/controlflow/change-notes/released/0.1.10.md deleted file mode 100644 index 47358eeee93..00000000000 --- a/shared/controlflow/change-notes/released/0.1.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.1.10 - -No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 30f5ca88be0..1425c0edf7f 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.10 +lastReleaseVersion: 0.1.9 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 1d43802be42..9d35a678276 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.10 +version: 0.1.10-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index ef80788bded..67a5bf589f4 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.1 - -No user-facing changes. - ## 0.2.0 ### Breaking Changes diff --git a/shared/dataflow/change-notes/released/0.2.1.md b/shared/dataflow/change-notes/released/0.2.1.md deleted file mode 100644 index 3dbfc85fe11..00000000000 --- a/shared/dataflow/change-notes/released/0.2.1.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.1 - -No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index df29a726bcc..5274e27ed52 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.1 +lastReleaseVersion: 0.2.0 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index ee422e02ea9..1e7becf71c4 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.2.1 +version: 0.2.1-dev groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 4730366775e..4d09057118c 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/mad/change-notes/released/0.2.10.md b/shared/mad/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/mad/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 6d7269ef3da..22c8f271ccc 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: null diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 9943dcb7972..5b8dbcfab22 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.0.9 - -No user-facing changes. - ## 0.0.8 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/0.0.9.md b/shared/rangeanalysis/change-notes/released/0.0.9.md deleted file mode 100644 index c9e17c6d6cf..00000000000 --- a/shared/rangeanalysis/change-notes/released/0.0.9.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.9 - -No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index ecdd64fbab8..58fdc6b45de 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.8 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 01db5d5734d..836fe51ee34 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 0.0.9 +version: 0.0.9-dev groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index c05869c153d..cd5f91f71ec 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/regex/change-notes/released/0.2.10.md b/shared/regex/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/regex/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 0d4f485312f..ea3f7f9b238 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index a9161ff578b..01acfae0148 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/ssa/change-notes/released/0.2.10.md b/shared/ssa/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/ssa/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 2ad254711a5..19304ad107f 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index a59e560c415..fba2a870356 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.0.9 - -No user-facing changes. - ## 0.0.8 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/0.0.9.md b/shared/threat-models/change-notes/released/0.0.9.md deleted file mode 100644 index c9e17c6d6cf..00000000000 --- a/shared/threat-models/change-notes/released/0.0.9.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.9 - -No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index ecdd64fbab8..58fdc6b45de 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.8 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 60cbbc56fcb..d0ed9a913b2 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 0.0.9 +version: 0.0.9-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 560ad058d5b..1db3a01af0b 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/0.2.10.md b/shared/tutorial/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/tutorial/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 69116705c1b..b595ae9ee70 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: 0.2.10 +version: 0.2.10-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 350f9ecbeae..afc857bc6bc 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/0.2.10.md b/shared/typetracking/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/typetracking/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index fbbdcf5162a..b55927f59bb 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 54b1eaa4d58..66c5871d982 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/typos/change-notes/released/0.2.10.md b/shared/typos/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/typos/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 4d59d9b3c34..644bfe11bff 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 1ca1f71bcbc..63832e927fa 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/util/change-notes/released/0.2.10.md b/shared/util/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/util/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 28ed738a93d..ca1a866a53d 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true dependencies: null diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 9fd5ebc26ab..e5495abcd50 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.2.10 - -No user-facing changes. - ## 0.2.9 No user-facing changes. diff --git a/shared/yaml/change-notes/released/0.2.10.md b/shared/yaml/change-notes/released/0.2.10.md deleted file mode 100644 index 81c9722b19f..00000000000 --- a/shared/yaml/change-notes/released/0.2.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.2.10 - -No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index a71167814cb..d021cf0a6be 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.9 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 9643ffcec66..de5b47e120a 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.10 +version: 0.2.10-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index 8f14bfcedc9..e88cd0259cc 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,9 +1,3 @@ -## 0.3.10 - -### Bug Fixes - -* Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. - ## 0.3.9 ### Minor Analysis Improvements diff --git a/swift/ql/lib/change-notes/released/0.3.10.md b/swift/ql/lib/change-notes/2024-02-22-extension-patch.md similarity index 83% rename from swift/ql/lib/change-notes/released/0.3.10.md rename to swift/ql/lib/change-notes/2024-02-22-extension-patch.md index 9d6286ff58a..7bd78f3b785 100644 --- a/swift/ql/lib/change-notes/released/0.3.10.md +++ b/swift/ql/lib/change-notes/2024-02-22-extension-patch.md @@ -1,5 +1,4 @@ -## 0.3.10 - -### Bug Fixes - +--- +category: fix +--- * Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 76ca0ac8ba7..3fa5180bcb4 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.10 +lastReleaseVersion: 0.3.9 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 70ec4798ea8..a37a4cb3d58 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.10 +version: 0.3.10-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index bda9834c9bc..96615d06972 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,7 +1,3 @@ -## 0.3.10 - -No user-facing changes. - ## 0.3.9 ### New Queries diff --git a/swift/ql/src/change-notes/released/0.3.10.md b/swift/ql/src/change-notes/released/0.3.10.md deleted file mode 100644 index 925a48fc52e..00000000000 --- a/swift/ql/src/change-notes/released/0.3.10.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.3.10 - -No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 76ca0ac8ba7..3fa5180bcb4 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.10 +lastReleaseVersion: 0.3.9 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index ba66b065529..e3ead42c98b 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.10 +version: 0.3.10-dev groups: - swift - queries From 2f058ffb4d0bc7486717a95744c240b9eef87fe6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 6 Mar 2024 20:56:51 +0000 Subject: [PATCH 038/309] Release preparation for version 2.16.4 --- cpp/ql/lib/CHANGELOG.md | 6 ++++++ .../0.12.7.md} | 9 +++++---- cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 7 +++++++ .../2024-02-29-non-constant-format-path-query.md | 4 ---- .../0.9.6.md} | 8 +++++--- cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../Solorigate/lib/change-notes/released/1.7.10.md | 3 +++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../Solorigate/src/change-notes/released/1.7.10.md | 3 +++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 14 ++++++++++++++ .../change-notes/2024-02-21-getonly-properties.md | 4 ---- .../ql/lib/change-notes/2024-02-22-no-db-stats.md | 4 ---- .../change-notes/2024-02-23-compiler-generated.md | 4 ---- .../2024-02-26-variable-capture-flow.md | 4 ---- .../2024-02-28-experimental-attribute.md | 4 ---- .../2024-02-28-refreadonly-parameter.md | 4 ---- csharp/ql/lib/change-notes/released/0.8.10.md | 13 +++++++++++++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 6 ++++++ .../0.8.10.md} | 9 +++++---- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ .../change-notes/released/0.0.9.md | 3 +++ go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 11 +++++++++++ .../lib/change-notes/2024-02-14-range-map-read.md | 4 ---- .../0.7.10.md} | 11 ++++++++--- go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++++ go/ql/src/change-notes/released/0.7.10.md | 3 +++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/CHANGELOG.md | 4 ++++ .../automodel/src/change-notes/released/0.0.17.md | 3 +++ java/ql/automodel/src/codeql-pack.release.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 11 +++++++++++ .../change-notes/2024-02-23-widget-flowsteps.md | 4 ---- java/ql/lib/change-notes/2024-02-27-error-types.md | 4 ---- .../lib/change-notes/2024-02-27-mvnw-versions.md | 4 ---- java/ql/lib/change-notes/released/0.8.10.md | 10 ++++++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 10 ++++++++++ .../2024-02-12-android-insecure-keys.md | 4 ---- .../0.8.10.md} | 11 ++++++++--- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ++++ javascript/ql/lib/change-notes/released/0.8.10.md | 3 +++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ++++ javascript/ql/src/change-notes/released/0.8.10.md | 3 +++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ misc/suite-helpers/change-notes/released/0.7.10.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 7 +++++++ .../2024-02-28-iterable-unpacking-module-scope.md | 4 ---- .../0.11.10.md} | 8 +++++--- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 ++++++ .../0.9.10.md} | 7 ++++--- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 9 +++++++++ ...2024-02-15-activerecord_connection_sql_sinks.md | 4 ---- .../2024-02-20-activerecord-sql-sink-arguments.md | 4 ---- .../lib/change-notes/2024-02-26-arel-sqlliteral.md | 4 ---- .../lib/change-notes/2024-02-29-i18n-translate.md | 4 ---- ruby/ql/lib/change-notes/released/0.8.10.md | 8 ++++++++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 +++++++ .../2024-02-13-rails-more-request-sources.md | 4 ---- .../0.8.10.md} | 10 ++++++---- ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ shared/controlflow/change-notes/released/0.1.10.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ shared/dataflow/change-notes/released/0.2.1.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/0.2.10.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ .../rangeanalysis/change-notes/released/0.0.9.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/0.2.10.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/0.2.10.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ .../threat-models/change-notes/released/0.0.9.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ shared/tutorial/change-notes/released/0.2.10.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ .../typetracking/change-notes/released/0.2.10.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/0.2.10.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/0.2.10.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/0.2.10.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 6 ++++++ .../0.3.10.md} | 7 ++++--- swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/0.3.10.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 150 files changed, 394 insertions(+), 168 deletions(-) rename cpp/ql/lib/change-notes/{2024-02-26-ir-named-destructors.md => released/0.12.7.md} (54%) delete mode 100644 cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md rename cpp/ql/src/change-notes/{2024-02-16-modelled-functions-block-flow.md => released/0.9.6.md} (77%) create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md delete mode 100644 csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md create mode 100644 csharp/ql/lib/change-notes/released/0.8.10.md rename csharp/ql/src/change-notes/{2024-02-06-threat-models.md => released/0.8.10.md} (88%) create mode 100644 go/ql/consistency-queries/change-notes/released/0.0.9.md delete mode 100644 go/ql/lib/change-notes/2024-02-14-range-map-read.md rename go/ql/lib/change-notes/{2024-03-04-autobuilder-changes.md => released/0.7.10.md} (68%) create mode 100644 go/ql/src/change-notes/released/0.7.10.md create mode 100644 java/ql/automodel/src/change-notes/released/0.0.17.md delete mode 100644 java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md delete mode 100644 java/ql/lib/change-notes/2024-02-27-error-types.md delete mode 100644 java/ql/lib/change-notes/2024-02-27-mvnw-versions.md create mode 100644 java/ql/lib/change-notes/released/0.8.10.md delete mode 100644 java/ql/src/change-notes/2024-02-12-android-insecure-keys.md rename java/ql/src/change-notes/{2024-03-04-sensitive-log-remove-null-from-sources.md => released/0.8.10.md} (54%) create mode 100644 javascript/ql/lib/change-notes/released/0.8.10.md create mode 100644 javascript/ql/src/change-notes/released/0.8.10.md create mode 100644 misc/suite-helpers/change-notes/released/0.7.10.md delete mode 100644 python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md rename python/ql/lib/change-notes/{2024-03-01-dict-update-content.md => released/0.11.10.md} (52%) rename python/ql/src/change-notes/{2024-03-04-nosql-injection.md => released/0.9.10.md} (81%) delete mode 100644 ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md delete mode 100644 ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md create mode 100644 ruby/ql/lib/change-notes/released/0.8.10.md delete mode 100644 ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md rename ruby/ql/src/change-notes/{2024-03-01-method-code-injection-sinks.md => released/0.8.10.md} (51%) create mode 100644 shared/controlflow/change-notes/released/0.1.10.md create mode 100644 shared/dataflow/change-notes/released/0.2.1.md create mode 100644 shared/mad/change-notes/released/0.2.10.md create mode 100644 shared/rangeanalysis/change-notes/released/0.0.9.md create mode 100644 shared/regex/change-notes/released/0.2.10.md create mode 100644 shared/ssa/change-notes/released/0.2.10.md create mode 100644 shared/threat-models/change-notes/released/0.0.9.md create mode 100644 shared/tutorial/change-notes/released/0.2.10.md create mode 100644 shared/typetracking/change-notes/released/0.2.10.md create mode 100644 shared/typos/change-notes/released/0.2.10.md create mode 100644 shared/util/change-notes/released/0.2.10.md create mode 100644 shared/yaml/change-notes/released/0.2.10.md rename swift/ql/lib/change-notes/{2024-02-22-extension-patch.md => released/0.3.10.md} (83%) create mode 100644 swift/ql/src/change-notes/released/0.3.10.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index b3091ec37d8..e1c0dfbecd9 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.12.7 + +### Minor Analysis Improvements + +* Added destructors for named objects to the intermediate representation. + ## 0.12.6 ### New Features diff --git a/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md b/cpp/ql/lib/change-notes/released/0.12.7.md similarity index 54% rename from cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md rename to cpp/ql/lib/change-notes/released/0.12.7.md index 4e35decaf8e..856a8b665c7 100644 --- a/cpp/ql/lib/change-notes/2024-02-26-ir-named-destructors.md +++ b/cpp/ql/lib/change-notes/released/0.12.7.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- -* Added destructors for named objects to the intermediate representation. \ No newline at end of file +## 0.12.7 + +### Minor Analysis Improvements + +* Added destructors for named objects to the intermediate representation. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 170a312c104..20419e9c610 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.12.6 +lastReleaseVersion: 0.12.7 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 8e201fff594..3bb9229bf94 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.12.7-dev +version: 0.12.7 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index ffcd73ff5d7..f6acd424bb0 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.9.6 + +### Minor Analysis Improvements + +* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. +* The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. + ## 0.9.5 ### Minor Analysis Improvements diff --git a/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md b/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md deleted file mode 100644 index 2e5933a61e8..00000000000 --- a/cpp/ql/src/change-notes/2024-02-29-non-constant-format-path-query.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. \ No newline at end of file diff --git a/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md b/cpp/ql/src/change-notes/released/0.9.6.md similarity index 77% rename from cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md rename to cpp/ql/src/change-notes/released/0.9.6.md index d6ef3c3e056..0c85f3f9f0f 100644 --- a/cpp/ql/src/change-notes/2024-02-16-modelled-functions-block-flow.md +++ b/cpp/ql/src/change-notes/released/0.9.6.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- +## 0.9.6 + +### Minor Analysis Improvements + +* The "non-constant format string" query (`cpp/non-constant-format`) has been converted to a `path-problem` query. * The new C/C++ dataflow and taint-tracking libraries (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via `DataFlowFunction` and `TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new `isPartialWrite` predicate. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 460240feaff..19139c132b2 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.5 +lastReleaseVersion: 0.9.6 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 31bd20166b2..4052647bb97 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.9.6-dev +version: 0.9.6 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 190b83b0f25..82eacfc84f7 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.10 + +No user-facing changes. + ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md new file mode 100644 index 00000000000..8e8007d8475 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.10.md @@ -0,0 +1,3 @@ +## 1.7.10 + +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 678da6bc37e..31c7fe07020 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.9 +lastReleaseVersion: 1.7.10 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 7e643b0fac3..ee993bed0c9 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.10-dev +version: 1.7.10 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 190b83b0f25..82eacfc84f7 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.10 + +No user-facing changes. + ## 1.7.9 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md new file mode 100644 index 00000000000..8e8007d8475 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.10.md @@ -0,0 +1,3 @@ +## 1.7.10 + +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 678da6bc37e..31c7fe07020 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.9 +lastReleaseVersion: 1.7.10 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 8654bbfd031..1f421754fc8 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.10-dev +version: 1.7.10 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 95fd64c5270..16cc14259e1 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,17 @@ +## 0.8.10 + +### Major Analysis Improvements + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. + +### Minor Analysis Improvements + +* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. +* C# 12: Add extractor and QL library support for `ref readonly` parameters. +* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. +* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md b/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md deleted file mode 100644 index 6bb8e99c71e..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-21-getonly-properties.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md b/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md deleted file mode 100644 index d6ffbd523ac..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-22-no-db-stats.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. diff --git a/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md b/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md deleted file mode 100644 index 9b1739b9b6d..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-23-compiler-generated.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. diff --git a/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md b/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md deleted file mode 100644 index 66ab65083dc..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-26-variable-capture-flow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md b/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md deleted file mode 100644 index 8749c790954..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-28-experimental-attribute.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. diff --git a/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md b/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md deleted file mode 100644 index 586b5341d29..00000000000 --- a/csharp/ql/lib/change-notes/2024-02-28-refreadonly-parameter.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C# 12: Add extractor and QL library support for `ref readonly` parameters. diff --git a/csharp/ql/lib/change-notes/released/0.8.10.md b/csharp/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..f591ddc5b21 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,13 @@ +## 0.8.10 + +### Major Analysis Improvements + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. + +### Minor Analysis Improvements + +* C# 12: Add QL library support (`ExperimentalAttribute`) for the experimental attribute. +* C# 12: Add extractor and QL library support for `ref readonly` parameters. +* C#: The table `expr_compiler_generated` has been deleted and its content has been added to `compiler_generated`. +* Data flow via get only properties like `public object Obj { get; }` is now captured by the data flow library. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index d75ea3c6320..93c5c1120a2 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.10-dev +version: 0.8.10 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 9fe1609363f..46c939e5cee 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/csharp/ql/src/change-notes/2024-02-06-threat-models.md b/csharp/ql/src/change-notes/released/0.8.10.md similarity index 88% rename from csharp/ql/src/change-notes/2024-02-06-threat-models.md rename to csharp/ql/src/change-notes/released/0.8.10.md index 69ac4e4dc17..702161c3d28 100644 --- a/csharp/ql/src/change-notes/2024-02-06-threat-models.md +++ b/csharp/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- -* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. \ No newline at end of file +## 0.8.10 + +### Minor Analysis Improvements + +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are `cs/code-injection`, `cs/command-line-injection`, `cs/user-controlled-bypass`, `cs/count-untrusted-data-external-api`, `cs/untrusted-data-to-external-api`, `cs/ldap-injection`, `cs/log-forging`, `cs/xml/missing-validation`, `cs/redos`, `cs/regex-injection`, `cs/resource-injection`, `cs/sql-injection`, `cs/path-injection`, `cs/unsafe-deserialization-untrusted-input`, `cs/web/unvalidated-url-redirection`, `cs/xml/insecure-dtd-handling`, `cs/xml/xpath-injection`, `cs/web/xss`, and `cs/uncontrolled-format-string`. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 9ee23cc7307..46384094b19 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.10-dev +version: 0.8.10 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index fba2a870356..a59e560c415 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/0.0.9.md b/go/ql/consistency-queries/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +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 58fdc6b45de..ecdd64fbab8 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index b574796b995..d5a2fbee5f1 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: 0.0.9-dev +version: 0.0.9 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 65a2376217b..fee5fd37a26 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.7.10 + +### Major Analysis Improvements + +* We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. +* Go 1.22 has been included in the range of supported Go versions. + +### Bug Fixes + +* Fixed dataflow out of a `map` using a `range` statement. + ## 0.7.9 No user-facing changes. diff --git a/go/ql/lib/change-notes/2024-02-14-range-map-read.md b/go/ql/lib/change-notes/2024-02-14-range-map-read.md deleted file mode 100644 index ea45737a72e..00000000000 --- a/go/ql/lib/change-notes/2024-02-14-range-map-read.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md b/go/ql/lib/change-notes/released/0.7.10.md similarity index 68% rename from go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md rename to go/ql/lib/change-notes/released/0.7.10.md index 0442a571029..55954f8a394 100644 --- a/go/ql/lib/change-notes/2024-03-04-autobuilder-changes.md +++ b/go/ql/lib/change-notes/released/0.7.10.md @@ -1,5 +1,10 @@ ---- -category: majorAnalysis ---- +## 0.7.10 + +### Major Analysis Improvements + * We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. * Go 1.22 has been included in the range of supported Go versions. + +### Bug Fixes + +* Fixed dataflow out of a `map` using a `range` statement. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index f21e478efa6..8cc190fa880 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.10-dev +version: 0.7.10 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index d95165a3a34..24e38b9890e 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.10 + +No user-facing changes. + ## 0.7.9 ### New Queries diff --git a/go/ql/src/change-notes/released/0.7.10.md b/go/ql/src/change-notes/released/0.7.10.md new file mode 100644 index 00000000000..989c5b8f682 --- /dev/null +++ b/go/ql/src/change-notes/released/0.7.10.md @@ -0,0 +1,3 @@ +## 0.7.10 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index d91cab59612..4ded3a52f63 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.10-dev +version: 0.7.10 groups: - go - queries diff --git a/java/ql/automodel/src/CHANGELOG.md b/java/ql/automodel/src/CHANGELOG.md index 4a3c54adb38..c3282c773a9 100644 --- a/java/ql/automodel/src/CHANGELOG.md +++ b/java/ql/automodel/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.17 + +No user-facing changes. + ## 0.0.16 No user-facing changes. diff --git a/java/ql/automodel/src/change-notes/released/0.0.17.md b/java/ql/automodel/src/change-notes/released/0.0.17.md new file mode 100644 index 00000000000..62cc89030a6 --- /dev/null +++ b/java/ql/automodel/src/change-notes/released/0.0.17.md @@ -0,0 +1,3 @@ +## 0.0.17 + +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 a49f7be4cff..cbc3d3cd493 100644 --- a/java/ql/automodel/src/codeql-pack.release.yml +++ b/java/ql/automodel/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.16 +lastReleaseVersion: 0.0.17 diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 898239be098..59fab0cdcc5 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: 0.0.17-dev +version: 0.0.17 groups: - java - automodel diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index d369cbdc931..2a02ccee6ab 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. + +### Bug Fixes + +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. +* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. + ## 0.8.9 ### Deprecated APIs diff --git a/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md b/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md deleted file mode 100644 index eb560fba07d..00000000000 --- a/java/ql/lib/change-notes/2024-02-23-widget-flowsteps.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/change-notes/2024-02-27-error-types.md b/java/ql/lib/change-notes/2024-02-27-error-types.md deleted file mode 100644 index cdc6d7620aa..00000000000 --- a/java/ql/lib/change-notes/2024-02-27-error-types.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. diff --git a/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md b/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md deleted file mode 100644 index a0227088ae9..00000000000 --- a/java/ql/lib/change-notes/2024-02-27-mvnw-versions.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. diff --git a/java/ql/lib/change-notes/released/0.8.10.md b/java/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..b45f14bf347 --- /dev/null +++ b/java/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,10 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL `ErrorType` more often. + +### Bug Fixes + +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper `mvnw` is in use and the `maven-wrapper.jar` file is not present in the repository. +* Some flow steps related to `android.text.Editable.toString` that were accidentally disabled have been re-enabled. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 15b4982d41e..428eedc75e3 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.10-dev +version: 0.8.10 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 5d835351453..c61275f5ed8 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.8.10 + +### New Queries + +* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. + +### Minor Analysis Improvements + +* To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. + ## 0.8.9 ### New Queries diff --git a/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md b/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md deleted file mode 100644 index 1de07727796..00000000000 --- a/java/ql/src/change-notes/2024-02-12-android-insecure-keys.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. \ No newline at end of file diff --git a/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md b/java/ql/src/change-notes/released/0.8.10.md similarity index 54% rename from java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md rename to java/ql/src/change-notes/released/0.8.10.md index 0bb4f18f2bd..c5d18ae3379 100644 --- a/java/ql/src/change-notes/2024-03-04-sensitive-log-remove-null-from-sources.md +++ b/java/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,9 @@ ---- -category: minorAnalysis ---- +## 0.8.10 + +### New Queries + +* Added a new query `java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. + +### Minor Analysis Improvements + * To reduce the number of false positives in the query "Insertion of sensitive information into log files" (`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 8f4de528e21..ebbdbeee3b2 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.10-dev +version: 0.8.10 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 5b97ebbb22b..d5edcc00513 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.10 + +No user-facing changes. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/released/0.8.10.md b/javascript/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..777bbd2fded --- /dev/null +++ b/javascript/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,3 @@ +## 0.8.10 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index ef3ca7521ac..da16493a21c 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.10-dev +version: 0.8.10 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 85516e3625d..b9627cac5ee 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.10 + +No user-facing changes. + ## 0.8.9 ### Bug Fixes diff --git a/javascript/ql/src/change-notes/released/0.8.10.md b/javascript/ql/src/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..777bbd2fded --- /dev/null +++ b/javascript/ql/src/change-notes/released/0.8.10.md @@ -0,0 +1,3 @@ +## 0.8.10 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index b6181aa30e9..d224952c564 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.10-dev +version: 0.8.10 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 3c06dd69b0f..1c4455b66c4 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.10 + +No user-facing changes. + ## 0.7.9 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/0.7.10.md b/misc/suite-helpers/change-notes/released/0.7.10.md new file mode 100644 index 00000000000..989c5b8f682 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/0.7.10.md @@ -0,0 +1,3 @@ +## 0.7.10 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 576395f3405..67518567297 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.9 +lastReleaseVersion: 0.7.10 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 49b7a6bda4c..54d978d5efe 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.10-dev +version: 0.7.10 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index e6f318c51ea..f095607ca1b 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.11.10 + +### Minor Analysis Improvements + +* Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. +* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. + ## 0.11.9 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md b/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md deleted file mode 100644 index 3c47c6ba866..00000000000 --- a/python/ql/lib/change-notes/2024-02-28-iterable-unpacking-module-scope.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/change-notes/2024-03-01-dict-update-content.md b/python/ql/lib/change-notes/released/0.11.10.md similarity index 52% rename from python/ql/lib/change-notes/2024-03-01-dict-update-content.md rename to python/ql/lib/change-notes/released/0.11.10.md index dfb8d247fff..ed873724e4f 100644 --- a/python/ql/lib/change-notes/2024-03-01-dict-update-content.md +++ b/python/ql/lib/change-notes/released/0.11.10.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- +## 0.11.10 + +### Minor Analysis Improvements + * Fixed missing flow for dictionary updates (`d[] = ...`) when `` is a string constant not used in dictionary literals or as name of keyword-argument. +* Fixed flow for iterable unpacking (`a,b = my_tuple`) when it occurs on top-level (module) scope. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index b064d1778a1..ddddcbe9193 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.11.9 +lastReleaseVersion: 0.11.10 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index e9f66e205f2..59a8b4c96d1 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.10-dev +version: 0.11.10 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 50762bcbf34..d4245aba7a6 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.9.10 + +### New Queries + +* The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. + ## 0.9.9 No user-facing changes. diff --git a/python/ql/src/change-notes/2024-03-04-nosql-injection.md b/python/ql/src/change-notes/released/0.9.10.md similarity index 81% rename from python/ql/src/change-notes/2024-03-04-nosql-injection.md rename to python/ql/src/change-notes/released/0.9.10.md index 6e98540c757..4cbb221b789 100644 --- a/python/ql/src/change-notes/2024-03-04-nosql-injection.md +++ b/python/ql/src/change-notes/released/0.9.10.md @@ -1,4 +1,5 @@ ---- -category: newQuery ---- +## 0.9.10 + +### New Queries + * The query `py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index aabed7c396b..d086ed69541 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.9 +lastReleaseVersion: 0.9.10 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index aa18f2d8707..c920f667836 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.10-dev +version: 0.9.10 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index a623a151e89..c61a12e0f4a 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. +* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. +* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. + ## 0.8.9 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md b/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md deleted file mode 100644 index c2276f284a8..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-15-activerecord_connection_sql_sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md b/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md deleted file mode 100644 index 1486c7a472d..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-20-activerecord-sql-sink-arguments.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md deleted file mode 100644 index 6f3a90768ba..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md deleted file mode 100644 index 350e049b5bf..00000000000 --- a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/released/0.8.10.md b/ruby/ql/lib/change-notes/released/0.8.10.md new file mode 100644 index 00000000000..666e28f840e --- /dev/null +++ b/ruby/ql/lib/change-notes/released/0.8.10.md @@ -0,0 +1,8 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. +* Additional arguments beyond the first of calls to the `ActiveRecord` methods `select`, `reselect`, `order`, `reorder`, `joins`, `group`, and `pluck` are now recognized as sql injection sinks. +* Calls to several methods of `ActiveRecord::Connection`, such as `ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 7d409b83adb..de5b41999fe 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.10-dev +version: 0.8.10 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 4149c728eff..f875b6d16ad 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. +* Added additional request sources for Ruby on Rails. + ## 0.8.9 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md b/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md deleted file mode 100644 index 84ea696dfef..00000000000 --- a/ruby/ql/src/change-notes/2024-02-13-rails-more-request-sources.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added additional request sources for Ruby on Rails. \ No newline at end of file diff --git a/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md b/ruby/ql/src/change-notes/released/0.8.10.md similarity index 51% rename from ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md rename to ruby/ql/src/change-notes/released/0.8.10.md index 43e40d3fd53..985cdf8d22e 100644 --- a/ruby/ql/src/change-notes/2024-03-01-method-code-injection-sinks.md +++ b/ruby/ql/src/change-notes/released/0.8.10.md @@ -1,4 +1,6 @@ ---- -category: minorAnalysis ---- -* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. \ No newline at end of file +## 0.8.10 + +### Minor Analysis Improvements + +* Calls to `Object#method`, `Object#public_method` and `Object#singleton_method` with untrusted data are now recognised as sinks for code injection. +* Added additional request sources for Ruby on Rails. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 5290c29b7fe..0521f0f75fa 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.9 +lastReleaseVersion: 0.8.10 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 8af7f9fd797..5e379268234 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.10-dev +version: 0.8.10 groups: - ruby - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index dbfa6ef4512..75f2ca53f98 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.10 + +No user-facing changes. + ## 0.1.9 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/0.1.10.md b/shared/controlflow/change-notes/released/0.1.10.md new file mode 100644 index 00000000000..47358eeee93 --- /dev/null +++ b/shared/controlflow/change-notes/released/0.1.10.md @@ -0,0 +1,3 @@ +## 0.1.10 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 1425c0edf7f..30f5ca88be0 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.9 +lastReleaseVersion: 0.1.10 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 9d35a678276..1d43802be42 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.10-dev +version: 0.1.10 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index 67a5bf589f4..ef80788bded 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.1 + +No user-facing changes. + ## 0.2.0 ### Breaking Changes diff --git a/shared/dataflow/change-notes/released/0.2.1.md b/shared/dataflow/change-notes/released/0.2.1.md new file mode 100644 index 00000000000..3dbfc85fe11 --- /dev/null +++ b/shared/dataflow/change-notes/released/0.2.1.md @@ -0,0 +1,3 @@ +## 0.2.1 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 5274e27ed52..df29a726bcc 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.0 +lastReleaseVersion: 0.2.1 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 1e7becf71c4..ee422e02ea9 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.2.1-dev +version: 0.2.1 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 4d09057118c..4730366775e 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/mad/change-notes/released/0.2.10.md b/shared/mad/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/mad/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 22c8f271ccc..6d7269ef3da 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: null diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 5b8dbcfab22..9943dcb7972 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/0.0.9.md b/shared/rangeanalysis/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 58fdc6b45de..ecdd64fbab8 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 836fe51ee34..01db5d5734d 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 0.0.9-dev +version: 0.0.9 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index cd5f91f71ec..c05869c153d 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/regex/change-notes/released/0.2.10.md b/shared/regex/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/regex/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index ea3f7f9b238..0d4f485312f 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 01acfae0148..a9161ff578b 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/ssa/change-notes/released/0.2.10.md b/shared/ssa/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/ssa/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 19304ad107f..2ad254711a5 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index fba2a870356..a59e560c415 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/0.0.9.md b/shared/threat-models/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/shared/threat-models/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 58fdc6b45de..ecdd64fbab8 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index d0ed9a913b2..60cbbc56fcb 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 0.0.9-dev +version: 0.0.9 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 1db3a01af0b..560ad058d5b 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/0.2.10.md b/shared/tutorial/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/tutorial/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index b595ae9ee70..69116705c1b 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: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index afc857bc6bc..350f9ecbeae 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/0.2.10.md b/shared/typetracking/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/typetracking/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index b55927f59bb..fbbdcf5162a 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 66c5871d982..54b1eaa4d58 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/typos/change-notes/released/0.2.10.md b/shared/typos/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/typos/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 644bfe11bff..4d59d9b3c34 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 63832e927fa..1ca1f71bcbc 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/util/change-notes/released/0.2.10.md b/shared/util/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/util/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index ca1a866a53d..28ed738a93d 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true dependencies: null diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index e5495abcd50..9fd5ebc26ab 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.10 + +No user-facing changes. + ## 0.2.9 No user-facing changes. diff --git a/shared/yaml/change-notes/released/0.2.10.md b/shared/yaml/change-notes/released/0.2.10.md new file mode 100644 index 00000000000..81c9722b19f --- /dev/null +++ b/shared/yaml/change-notes/released/0.2.10.md @@ -0,0 +1,3 @@ +## 0.2.10 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index d021cf0a6be..a71167814cb 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.9 +lastReleaseVersion: 0.2.10 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index de5b47e120a..9643ffcec66 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.10-dev +version: 0.2.10 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index e88cd0259cc..8f14bfcedc9 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.3.10 + +### Bug Fixes + +* Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. + ## 0.3.9 ### Minor Analysis Improvements diff --git a/swift/ql/lib/change-notes/2024-02-22-extension-patch.md b/swift/ql/lib/change-notes/released/0.3.10.md similarity index 83% rename from swift/ql/lib/change-notes/2024-02-22-extension-patch.md rename to swift/ql/lib/change-notes/released/0.3.10.md index 7bd78f3b785..9d6286ff58a 100644 --- a/swift/ql/lib/change-notes/2024-02-22-extension-patch.md +++ b/swift/ql/lib/change-notes/released/0.3.10.md @@ -1,4 +1,5 @@ ---- -category: fix ---- +## 0.3.10 + +### Bug Fixes + * Fixed an issue where `TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 3fa5180bcb4..76ca0ac8ba7 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.9 +lastReleaseVersion: 0.3.10 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index a37a4cb3d58..70ec4798ea8 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.10-dev +version: 0.3.10 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 96615d06972..bda9834c9bc 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.10 + +No user-facing changes. + ## 0.3.9 ### New Queries diff --git a/swift/ql/src/change-notes/released/0.3.10.md b/swift/ql/src/change-notes/released/0.3.10.md new file mode 100644 index 00000000000..925a48fc52e --- /dev/null +++ b/swift/ql/src/change-notes/released/0.3.10.md @@ -0,0 +1,3 @@ +## 0.3.10 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 3fa5180bcb4..76ca0ac8ba7 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.9 +lastReleaseVersion: 0.3.10 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index e3ead42c98b..ba66b065529 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.10-dev +version: 0.3.10 groups: - swift - queries From dc9092c9ec2cdda8188e9e44d8d51d2a0c6b6cc9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 6 Mar 2024 22:19:33 +0000 Subject: [PATCH 039/309] Post-release preparation for codeql-cli-2.16.4 --- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 3bb9229bf94..8b17a050d82 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.12.7 +version: 0.12.8-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 4052647bb97..49eb255cc8f 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.9.6 +version: 0.9.7-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index ee993bed0c9..3e8792bce0e 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.10 +version: 1.7.11-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 1f421754fc8..c67ab9130a0 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.10 +version: 1.7.11-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 93c5c1120a2..a67b40f744f 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.10 +version: 0.8.11-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 46384094b19..a2148a36157 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.10 +version: 0.8.11-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index d5a2fbee5f1..e82c98f52cb 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: 0.0.9 +version: 0.0.10-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 8cc190fa880..54b284e7ee5 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.10 +version: 0.7.11-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 4ded3a52f63..c89aacb8aa2 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.10 +version: 0.7.11-dev groups: - go - queries diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 59fab0cdcc5..8064163f5cc 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: 0.0.17 +version: 0.0.18-dev groups: - java - automodel diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 428eedc75e3..ed83a620d20 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.10 +version: 0.8.11-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index ebbdbeee3b2..d7612d9da67 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.10 +version: 0.8.11-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index da16493a21c..30fa7de4198 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.10 +version: 0.8.11-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index d224952c564..01a3e8a0841 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.10 +version: 0.8.11-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 54d978d5efe..5d8225b2e0b 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.10 +version: 0.7.11-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 59a8b4c96d1..daab6a41206 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.10 +version: 0.11.11-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index c920f667836..5b641a329cb 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.10 +version: 0.9.11-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index de5b41999fe..81695d545ec 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.10 +version: 0.8.11-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 5e379268234..65e81bf2ba2 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.10 +version: 0.8.11-dev groups: - ruby - queries diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 1d43802be42..19c95747294 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.10 +version: 0.1.11-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index ee422e02ea9..4e896e9ae02 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.2.1 +version: 0.2.2-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 6d7269ef3da..e3d2ccaf748 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.10 +version: 0.2.11-dev groups: shared library: true dependencies: null diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 01db5d5734d..6a528c17637 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 0.0.9 +version: 0.0.10-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 0d4f485312f..8717c5b8a73 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.10 +version: 0.2.11-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 2ad254711a5..656662e9061 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.10 +version: 0.2.11-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 60cbbc56fcb..ece8f74f701 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 0.0.9 +version: 0.0.10-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 69116705c1b..b1f2b729a85 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: 0.2.10 +version: 0.2.11-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index fbbdcf5162a..efca1702069 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.10 +version: 0.2.11-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 4d59d9b3c34..76434dcb21c 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.10 +version: 0.2.11-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 28ed738a93d..f4d51c896ce 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.10 +version: 0.2.11-dev groups: shared library: true dependencies: null diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 9643ffcec66..41f2bc851fd 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.10 +version: 0.2.11-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 70ec4798ea8..673004b5172 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.10 +version: 0.3.11-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index ba66b065529..11192f11d8b 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.10 +version: 0.3.11-dev groups: - swift - queries From 8ae6fa5366839cd1cde7a4eadfb25b30ad128fd8 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 5 Mar 2024 16:23:58 -0800 Subject: [PATCH 040/309] C++: Add a new query 'cpp/type-confusion' for detecting type confusion vulnerabilities. --- .../Security/CWE/CWE-843/TypeConfusion.qhelp | 47 ++++ .../src/Security/CWE/CWE-843/TypeConfusion.ql | 251 ++++++++++++++++++ .../Security/CWE/CWE-843/TypeConfusionBad.cpp | 7 + .../CWE/CWE-843/TypeConfusionCommon.cpp | 25 ++ .../CWE/CWE-843/TypeConfusionGood.cpp | 11 + .../CWE/CWE-843/TypeConfusion.expected | 27 ++ .../Security/CWE/CWE-843/TypeConfusion.qlref | 1 + .../query-tests/Security/CWE/CWE-843/test.cpp | 146 ++++++++++ 8 files changed, 515 insertions(+) create mode 100644 cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp create mode 100644 cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql create mode 100644 cpp/ql/src/Security/CWE/CWE-843/TypeConfusionBad.cpp create mode 100644 cpp/ql/src/Security/CWE/CWE-843/TypeConfusionCommon.cpp create mode 100644 cpp/ql/src/Security/CWE/CWE-843/TypeConfusionGood.cpp create mode 100644 cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected create mode 100644 cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.qlref create mode 100644 cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp new file mode 100644 index 00000000000..b1ad3a7d6ce --- /dev/null +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp @@ -0,0 +1,47 @@ + + + + +

+Certain casts in C and C++ places no restrictions on the target type. For +example, C style casts such as (MyClass*)p allows the programmer +to cast any pointer p to an expression of type MyClass*. +If the runtime type of p turns out to be a type that's incompatible +with MyClass, this results in undefined behavior. +

+
+ + +

+If possible, use dynamic_cast to safely cast between polymorphic types. +If dynamic_cast is not an option, use static_cast to restrict +the kinds of conversions that the compiler is allowed to perform. If C++ style casts is +not an option, carefully check that all casts are safe. +

+
+ + +

+Consider the following class hierachy where we define a base class Shape and two +derived classes Circle and Square that are mutually incompatible: +

+ + +

+The following code demonstrates a type confusion vulnerability where the programmer +assumes that the runtime type of p is always a Square. +However, if p is a Circle, the cast will result in undefined behavior. +

+ + +

+The following code fixes the vulnerability by using dynamic_cast to +safely cast between polymorphic types. If the cast fails, dynamic_cast +returns a null pointer, which can be checked for and handled appropriately. +

+ +
+ + + +
diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql new file mode 100644 index 00000000000..99f89106fb6 --- /dev/null +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql @@ -0,0 +1,251 @@ +/** + * @name Type confusion + * @description Casting a value to an incompatible type can lead to undefined behavior. + * @kind path-problem + * @problem.severity warning + * @security-severity 9.3 + * @precision medium + * @id cpp/type-confusion + * @tags security + * external/cwe/cwe-843 + */ + +import cpp +import semmle.code.cpp.dataflow.new.DataFlow +import BadFlow::PathGraph + +/** + * Holds if `f` is a field located at byte offset `offset` in `c`. + * + * Note that predicate is recursive, so that given the following: + * ```cpp + * struct S1 { + * int a; + * void* b; + * }; + * + * struct S2 { + * S1 s1; + * char c; + * }; + * ``` + * both `hasAFieldWithOffset(S2, s1, 0)` and `hasAFieldWithOffset(S2, a, 0)` + * holds. + */ +predicate hasAFieldWithOffset(Class c, Field f, int offset) { + // Base case: `f` is a field in `c`. + f = c.getAField() and + offset = f.getByteOffset() and + not f.getUnspecifiedType().(Class).hasDefinition() + or + // Otherwise, we find the struct that is a field of `c` which then has + // the field `f` as a member. + exists(Field g | + g = c.getAField() and + // Find the field with the largest offset that's less than or equal to + // offset. That's the struct we need to search recursively. + g = + max(Field cand, int candOffset | + cand = c.getAField() and + candOffset = cand.getByteOffset() and + offset >= candOffset + | + cand order by candOffset + ) and + hasAFieldWithOffset(g.getUnspecifiedType(), f, offset - g.getByteOffset()) + ) +} + +/** Holds if `f` is the last field of its declaring class. */ +predicate lastField(Field f) { + exists(Class c | c = f.getDeclaringType() | + f = + max(Field cand, int byteOffset | + cand.getDeclaringType() = c and byteOffset = f.getByteOffset() + | + cand order by byteOffset + ) + ) +} + +/** + * Holds if there exists a field in `c2` at offset `offset` that's compatible + * with `f1`. + */ +bindingset[f1, offset, c2] +pragma[inline_late] +predicate hasCompatibleFieldAtOffset(Field f1, int offset, Class c2) { + exists(Field f2 | hasAFieldWithOffset(c2, f2, offset) | + // Let's not deal with bit-fields for now. + f2 instanceof BitField + or + f1.getUnspecifiedType().getSize() = f2.getUnspecifiedType().getSize() + or + lastField(f1) and + f1.getUnspecifiedType().getSize() <= f2.getUnspecifiedType().getSize() + ) +} + +/** + * Holds if `c1` is a prefix of `c2`. + */ +bindingset[c1, c2] +pragma[inline_late] +predicate prefix(Class c1, Class c2) { + not c1.isPolymorphic() and + not c2.isPolymorphic() and + if c1 instanceof Union + then + // If it's a union we just verify that one of it's variants is compatible with the other class + exists(Field f1, int offset | + // Let's not deal with bit-fields for now. + not f1 instanceof BitField and + hasAFieldWithOffset(c1, f1, offset) + | + hasCompatibleFieldAtOffset(f1, offset, c2) + ) + else + forall(Field f1, int offset | + // Let's not deal with bit-fields for now. + not f1 instanceof BitField and + hasAFieldWithOffset(c1, f1, offset) + | + hasCompatibleFieldAtOffset(f1, offset, c2) + ) +} + +/** + * An unsafe cast is any explicit cast that is not + * a `dynamic_cast`. + */ +class UnsafeCast extends Cast { + private Class toType; + + UnsafeCast() { + ( + this instanceof CStyleCast + or + this instanceof StaticCast + or + this instanceof ReinterpretCast + ) and + toType = this.getExplicitlyConverted().getUnspecifiedType().stripType() and + not this.isImplicit() and + exists(TypeDeclarationEntry tde | + tde = toType.getDefinition() and + not tde.isFromUninstantiatedTemplate(_) + ) + } + + Class getConvertedType() { result = toType } + + bindingset[this, t] + pragma[inline_late] + predicate compatibleWith(Type t) { + t.stripType() = this.getConvertedType() + or + prefix(this.getConvertedType(), t.stripType()) + or + t.stripType().(Class).getABaseClass+() = this.getConvertedType() + or + t.stripType() = this.getConvertedType().getABaseClass+() + } +} + +/** + * Holds if `source` is an allocation that allocates a value of type `state`. + */ +predicate isSourceImpl(DataFlow::Node source, Class state) { + state = source.asExpr().(AllocationExpr).getAllocatedElementType().stripType() and + exists(TypeDeclarationEntry tde | + tde = state.getDefinition() and + not tde.isFromUninstantiatedTemplate(_) + ) +} + +module RelevantStateConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { isSourceImpl(source, _) } + + predicate isBarrier(DataFlow::Node node) { + // We disable flow through global variables to reduce FPs from infeasible paths + node instanceof DataFlow::VariableNode + or + exists(Class c | c = node.getType().stripType() | + not c.hasDefinition() + or + exists(TypeDeclarationEntry tde | + tde = c.getDefinition() and + tde.isFromUninstantiatedTemplate(_) + ) + ) + } + + predicate isSink(DataFlow::Node sink) { + exists(UnsafeCast cast | sink.asExpr() = cast.getUnconverted()) + } +} + +module RelevantStateFlow = DataFlow::Global; + +predicate relevantState(DataFlow::Node sink, Class state) { + exists(DataFlow::Node source | + RelevantStateFlow::flow(source, sink) and + isSourceImpl(source, state) + ) +} + +predicate isSinkImpl(DataFlow::Node sink, Class state, Type convertedType, boolean compatible) { + exists(UnsafeCast cast | + relevantState(sink, state) and + sink.asExpr() = cast.getUnconverted() and + convertedType = cast.getConvertedType() + | + if cast.compatibleWith(state) then compatible = true else compatible = false + ) +} + +module BadConfig implements DataFlow::StateConfigSig { + class FlowState extends Class { + FlowState() { isSourceImpl(_, this) } + } + + predicate isSource(DataFlow::Node source, FlowState state) { isSourceImpl(source, state) } + + predicate isBarrier(DataFlow::Node node) { RelevantStateConfig::isBarrier(node) } + + predicate isSink(DataFlow::Node sink, FlowState state) { isSinkImpl(sink, state, _, false) } + + predicate isBarrierOut(DataFlow::Node sink, FlowState state) { isSink(sink, state) } +} + +module BadFlow = DataFlow::GlobalWithState; + +module GoodConfig implements DataFlow::StateConfigSig { + class FlowState = BadConfig::FlowState; + + predicate isSource(DataFlow::Node source, FlowState state) { BadConfig::isSource(source, state) } + + predicate isBarrier(DataFlow::Node node) { BadConfig::isBarrier(node) } + + predicate isSink(DataFlow::Node sink, FlowState state) { + isSinkImpl(sink, state, _, true) and + BadFlow::flowTo(sink) + } +} + +module GoodFlow = DataFlow::GlobalWithState; + +from + BadFlow::PathNode source, BadFlow::PathNode sink, Type sourceType, Type sinkType, + DataFlow::Node sinkNode +where + BadFlow::flowPath(source, sink) and + sinkNode = sink.getNode() and + // If there is any flow that would result in a valid cast then we don't + // report an alert here. This reduces the number of FPs from infeasible paths + // significantly. + not GoodFlow::flowTo(sinkNode) and + isSourceImpl(source.getNode(), sourceType) and + isSinkImpl(sinkNode, _, sinkType, false) +select sinkNode, source, sink, "Conversion from $@ to $@ is invalid.", sourceType, + sourceType.toString(), sinkType, sinkType.toString() diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionBad.cpp b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionBad.cpp new file mode 100644 index 00000000000..1ef9bfd3e31 --- /dev/null +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionBad.cpp @@ -0,0 +1,7 @@ +void allocate_and_draw_bad() { + Shape* shape = new Circle; + // ... + // BAD: Assumes that shape is always a Square + Square* square = static_cast(shape); + int length = square->getLength(); +} \ No newline at end of file diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionCommon.cpp b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionCommon.cpp new file mode 100644 index 00000000000..7bdee019588 --- /dev/null +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionCommon.cpp @@ -0,0 +1,25 @@ +struct Shape { + virtual ~Shape(); + + virtual void draw() = 0; +}; + +struct Circle : public Shape { + Circle(); + + void draw() override { + /* ... */ + } + + int getRadius(); +}; + +struct Square : public Shape { + Square(); + + void draw() override { + /* ... */ + } + + int getLength(); +}; diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionGood.cpp b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionGood.cpp new file mode 100644 index 00000000000..f56a00a5e10 --- /dev/null +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusionGood.cpp @@ -0,0 +1,11 @@ +void allocate_and_draw_good() { + Shape* shape = new Circle; + // ... + // GOOD: Dynamically checks if shape is a Square + Square* square = dynamic_cast(shape); + if(square) { + int length = square->getLength(); + } else { + // handle error + } +} \ No newline at end of file diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected new file mode 100644 index 00000000000..2bf82dec984 --- /dev/null +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected @@ -0,0 +1,27 @@ +edges +| test.cpp:27:13:27:18 | new | test.cpp:28:25:28:55 | p | provenance | | +| test.cpp:32:13:32:30 | new | test.cpp:33:12:33:30 | p | provenance | | +| test.cpp:66:15:66:21 | new | test.cpp:67:12:67:31 | a | provenance | | +| test.cpp:85:9:85:15 | new | test.cpp:88:14:88:33 | a | provenance | | +| test.cpp:127:12:127:17 | new | test.cpp:128:24:128:59 | s2 | provenance | | +| test.cpp:143:14:143:19 | new | test.cpp:145:28:145:68 | s1_2 | provenance | | +nodes +| test.cpp:27:13:27:18 | new | semmle.label | new | +| test.cpp:28:25:28:55 | p | semmle.label | p | +| test.cpp:32:13:32:30 | new | semmle.label | new | +| test.cpp:33:12:33:30 | p | semmle.label | p | +| test.cpp:66:15:66:21 | new | semmle.label | new | +| test.cpp:67:12:67:31 | a | semmle.label | a | +| test.cpp:85:9:85:15 | new | semmle.label | new | +| test.cpp:88:14:88:33 | a | semmle.label | a | +| test.cpp:127:12:127:17 | new | semmle.label | new | +| test.cpp:128:24:128:59 | s2 | semmle.label | s2 | +| test.cpp:143:14:143:19 | new | semmle.label | new | +| test.cpp:145:28:145:68 | s1_2 | semmle.label | s1_2 | +subpaths +#select +| test.cpp:28:25:28:55 | p | test.cpp:27:13:27:18 | new | test.cpp:28:25:28:55 | p | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:11:8:11:21 | Not_S1_wrapper | Not_S1_wrapper | +| test.cpp:33:12:33:30 | p | test.cpp:32:13:32:30 | new | test.cpp:33:12:33:30 | p | Conversion from $@ to $@ is invalid. | test.cpp:11:8:11:21 | Not_S1_wrapper | Not_S1_wrapper | test.cpp:1:8:1:9 | S1 | S1 | +| test.cpp:67:12:67:31 | a | test.cpp:66:15:66:21 | new | test.cpp:67:12:67:31 | a | Conversion from $@ to $@ is invalid. | test.cpp:55:8:55:10 | Cat | Cat | test.cpp:60:8:60:10 | Dog | Dog | +| test.cpp:128:24:128:59 | s2 | test.cpp:127:12:127:17 | new | test.cpp:128:24:128:59 | s2 | Conversion from $@ to $@ is invalid. | test.cpp:102:8:102:9 | S2 | S2 | test.cpp:119:8:119:20 | Not_S2_prefix | Not_S2_prefix | +| test.cpp:145:28:145:68 | s1_2 | test.cpp:143:14:143:19 | new | test.cpp:145:28:145:68 | s1_2 | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:131:8:131:23 | HasSomeBitFields | HasSomeBitFields | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.qlref b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.qlref new file mode 100644 index 00000000000..53b17f1e1fd --- /dev/null +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.qlref @@ -0,0 +1 @@ +Security/CWE/CWE-843/TypeConfusion.ql \ No newline at end of file diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp new file mode 100644 index 00000000000..90d8b47c820 --- /dev/null +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp @@ -0,0 +1,146 @@ +struct S1 { + int a; + void* b; + unsigned char c; +}; + +struct S1_wrapper { + S1 s1; +}; + +struct Not_S1_wrapper { + unsigned char x; + S1 s1; +}; + +void test1() { + void* p = new S1; + S1_wrapper* s1w = static_cast(p); // GOOD +} + +void test2() { + void* p = new S1_wrapper; + S1* s1 = static_cast(p); // GOOD +} + +void test3() { + void* p = new S1; + Not_S1_wrapper* s1w = static_cast(p); // BAD +} + +void test4() { + void* p = new Not_S1_wrapper; + S1* s1 = static_cast(p); // BAD +} + +struct HasBitFields { + int x : 16; + int y : 16; + int z : 32; +}; + +struct BufferStruct { + unsigned char buffer[sizeof(HasBitFields)]; +}; + +void test5() { + HasBitFields* p = new HasBitFields; + BufferStruct* bs = reinterpret_cast(p); // GOOD +} + +struct Animal { + virtual ~Animal(); +}; + +struct Cat : public Animal { + Cat(); + ~Cat(); +}; + +struct Dog : public Animal { + Dog(); + ~Dog(); +}; + +void test6() { + Animal* a = new Cat; + Dog* d = static_cast(a); // BAD +} + +void test7() { + Animal* a = new Cat; + Dog* d = dynamic_cast(a); // GOOD +} + +void test8() { + Animal* a = new Cat; + Cat* d = static_cast(a); // GOOD +} + +void test9(bool b) { + Animal* a; + if(b) { + a = new Cat; + } else { + a = new Dog; + } + if(b) { + Cat* d = static_cast(a); // GOOD + } +} + +/** + * The layout of S2 is: + * 0: int + * 8: void* + * 16: unsigned char + * 16 + pad: unsigned char + * 32 + pad: int + * 40 + pad: void* + * 48 + pad: unsigned char +*/ +struct S2 { + S1 s1; + unsigned char buffer[16]; + S1 s1_2; +}; + +struct S2_prefix { + int a; + void* p; + unsigned char c; +}; + +void test10() { + S2* s2 = new S2; + S2_prefix* s2p = reinterpret_cast(s2); // GOOD +} + +struct Not_S2_prefix { + int a; + void* p; + void* p2; + unsigned char c; +}; + +void test11() { + S2* s2 = new S2; + Not_S2_prefix* s2p = reinterpret_cast(s2); // BAD +} + +struct HasSomeBitFields { + int x : 16; + int y; + int z : 32; +}; + +void test12() { + // This has doesn't have any non-bitfield member, so we don't detect + // the problem here since the query currently ignores bitfields. + S1* s1 = new S1; + HasBitFields* hbf = reinterpret_cast(s1); // BAD [NOT DETECTED] + + S1* s1_2 = new S1; + // This one has a non-bitfield members. So we detect the problem + HasSomeBitFields* hbf2 = reinterpret_cast(s1_2); // BAD +} From 6dc0fa515d03d48de8bf572edf97bb6d14c3f162 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 5 Mar 2024 16:29:37 -0800 Subject: [PATCH 041/309] C++: Add change note. --- cpp/ql/src/change-notes/2024-03-05-type-confusion-query.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2024-03-05-type-confusion-query.md diff --git a/cpp/ql/src/change-notes/2024-03-05-type-confusion-query.md b/cpp/ql/src/change-notes/2024-03-05-type-confusion-query.md new file mode 100644 index 00000000000..f96a4684b76 --- /dev/null +++ b/cpp/ql/src/change-notes/2024-03-05-type-confusion-query.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, `cpp/type-confusion`, to detect casts to invalid types. \ No newline at end of file From cf4c8eb517982d81f4194bbdde7828af980f3a9f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Mar 2024 13:56:27 -0800 Subject: [PATCH 042/309] C++: Add more tests. --- cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp index 90d8b47c820..879df4e23e6 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp @@ -144,3 +144,4 @@ void test12() { // This one has a non-bitfield members. So we detect the problem HasSomeBitFields* hbf2 = reinterpret_cast(s1_2); // BAD } + From cd57cd0d8ac83218ec4bc388a98298fe70872661 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Mar 2024 13:56:37 -0800 Subject: [PATCH 043/309] C++: Add qhelp reference. --- cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp index b1ad3a7d6ce..0f72a992205 100644 --- a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp @@ -43,5 +43,8 @@ returns a null pointer, which can be checked for and handled appropriately. +
  • +Microsoft Learn: Type conversions and type safety. +
  • From c2db5f490e750b0e371f943376f59b8bbbae1355 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Mar 2024 14:02:45 -0800 Subject: [PATCH 044/309] C++: Add more FNs and FPs to show examples of where the 'successor typing' strategy fails. --- .../CWE/CWE-843/TypeConfusion.expected | 7 +++++ .../query-tests/Security/CWE/CWE-843/test.cpp | 26 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected index 2bf82dec984..07c37663db9 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected @@ -5,6 +5,8 @@ edges | test.cpp:85:9:85:15 | new | test.cpp:88:14:88:33 | a | provenance | | | test.cpp:127:12:127:17 | new | test.cpp:128:24:128:59 | s2 | provenance | | | test.cpp:143:14:143:19 | new | test.cpp:145:28:145:68 | s1_2 | provenance | | +| test.cpp:153:9:153:15 | new | test.cpp:159:14:159:33 | a | provenance | | +| test.cpp:168:9:168:15 | new | test.cpp:171:14:171:33 | a | provenance | | nodes | test.cpp:27:13:27:18 | new | semmle.label | new | | test.cpp:28:25:28:55 | p | semmle.label | p | @@ -18,6 +20,10 @@ nodes | test.cpp:128:24:128:59 | s2 | semmle.label | s2 | | test.cpp:143:14:143:19 | new | semmle.label | new | | test.cpp:145:28:145:68 | s1_2 | semmle.label | s1_2 | +| test.cpp:153:9:153:15 | new | semmle.label | new | +| test.cpp:159:14:159:33 | a | semmle.label | a | +| test.cpp:168:9:168:15 | new | semmle.label | new | +| test.cpp:171:14:171:33 | a | semmle.label | a | subpaths #select | test.cpp:28:25:28:55 | p | test.cpp:27:13:27:18 | new | test.cpp:28:25:28:55 | p | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:11:8:11:21 | Not_S1_wrapper | Not_S1_wrapper | @@ -25,3 +31,4 @@ subpaths | test.cpp:67:12:67:31 | a | test.cpp:66:15:66:21 | new | test.cpp:67:12:67:31 | a | Conversion from $@ to $@ is invalid. | test.cpp:55:8:55:10 | Cat | Cat | test.cpp:60:8:60:10 | Dog | Dog | | test.cpp:128:24:128:59 | s2 | test.cpp:127:12:127:17 | new | test.cpp:128:24:128:59 | s2 | Conversion from $@ to $@ is invalid. | test.cpp:102:8:102:9 | S2 | S2 | test.cpp:119:8:119:20 | Not_S2_prefix | Not_S2_prefix | | test.cpp:145:28:145:68 | s1_2 | test.cpp:143:14:143:19 | new | test.cpp:145:28:145:68 | s1_2 | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:131:8:131:23 | HasSomeBitFields | HasSomeBitFields | +| test.cpp:159:14:159:33 | a | test.cpp:153:9:153:15 | new | test.cpp:159:14:159:33 | a | Conversion from $@ to $@ is invalid. | test.cpp:60:8:60:10 | Dog | Dog | test.cpp:55:8:55:10 | Cat | Cat | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp index 879df4e23e6..1ba1aa2062c 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp @@ -145,3 +145,29 @@ void test12() { HasSomeBitFields* hbf2 = reinterpret_cast(s1_2); // BAD } +void test13(bool b, Cat* c) { + Animal* a; + if(b) { + a = c; + } else { + a = new Dog; + } + // This FP happens despite the `not GoodFlow::flowTo(sinkNode)` condition in the query + // because we don't find a flow path from `a = c` to `static_cast(a)` because + // the "source" (i.e., `a = c`) doesn't have an allocation. + if(b) { + Cat* d = static_cast(a); // GOOD [FALSE POSITIVE] + } +} + +void test14(bool b) { + Animal* a; + if(b) { + a = new Cat; + } else { + a = new Dog; + } + if(!b) { + Cat* d = static_cast(a); // BAD [NOT DETECTED] + } +} From fc9919a5b61f824f62f993ab0d30e3bb45bf7449 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Mar 2024 14:20:15 -0800 Subject: [PATCH 045/309] C++: Add a test that exercise the 'last field' check. --- .../CWE/CWE-843/TypeConfusion.expected | 4 ++++ .../query-tests/Security/CWE/CWE-843/test.cpp | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected index 07c37663db9..04e5462bf01 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected @@ -7,6 +7,7 @@ edges | test.cpp:143:14:143:19 | new | test.cpp:145:28:145:68 | s1_2 | provenance | | | test.cpp:153:9:153:15 | new | test.cpp:159:14:159:33 | a | provenance | | | test.cpp:168:9:168:15 | new | test.cpp:171:14:171:33 | a | provenance | | +| test.cpp:187:15:187:24 | new | test.cpp:189:25:189:45 | u64 | provenance | | nodes | test.cpp:27:13:27:18 | new | semmle.label | new | | test.cpp:28:25:28:55 | p | semmle.label | p | @@ -24,6 +25,8 @@ nodes | test.cpp:159:14:159:33 | a | semmle.label | a | | test.cpp:168:9:168:15 | new | semmle.label | new | | test.cpp:171:14:171:33 | a | semmle.label | a | +| test.cpp:187:15:187:24 | new | semmle.label | new | +| test.cpp:189:25:189:45 | u64 | semmle.label | u64 | subpaths #select | test.cpp:28:25:28:55 | p | test.cpp:27:13:27:18 | new | test.cpp:28:25:28:55 | p | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:11:8:11:21 | Not_S1_wrapper | Not_S1_wrapper | @@ -32,3 +35,4 @@ subpaths | test.cpp:128:24:128:59 | s2 | test.cpp:127:12:127:17 | new | test.cpp:128:24:128:59 | s2 | Conversion from $@ to $@ is invalid. | test.cpp:102:8:102:9 | S2 | S2 | test.cpp:119:8:119:20 | Not_S2_prefix | Not_S2_prefix | | test.cpp:145:28:145:68 | s1_2 | test.cpp:143:14:143:19 | new | test.cpp:145:28:145:68 | s1_2 | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:131:8:131:23 | HasSomeBitFields | HasSomeBitFields | | test.cpp:159:14:159:33 | a | test.cpp:153:9:153:15 | new | test.cpp:159:14:159:33 | a | Conversion from $@ to $@ is invalid. | test.cpp:60:8:60:10 | Dog | Dog | test.cpp:55:8:55:10 | Cat | Cat | +| test.cpp:189:25:189:45 | u64 | test.cpp:187:15:187:24 | new | test.cpp:189:25:189:45 | u64 | Conversion from $@ to $@ is invalid. | test.cpp:175:8:175:13 | UInt64 | UInt64 | test.cpp:184:8:184:22 | UInt8_with_more | UInt8_with_more | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp index 1ba1aa2062c..6b5b5ccde37 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp @@ -171,3 +171,22 @@ void test14(bool b) { Cat* d = static_cast(a); // BAD [NOT DETECTED] } } + +struct UInt64 { unsigned long u64; }; +struct UInt8 { unsigned char u8; }; + +void test14() { + void* u64 = new UInt64; + // ... + UInt8* u8 = (UInt8*)u64; // GOOD +} + +struct UInt8_with_more { UInt8 u8; void* p; }; + +void test15() { + void* u64 = new UInt64; + // ... + UInt8_with_more* u8 = (UInt8_with_more*)u64; // BAD +} + +// semmle-extractor-options: --gcc -std=c++11 From 3295d5cb9f03911a99831cf51fb70ce039559b1e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Mar 2024 14:36:18 -0800 Subject: [PATCH 046/309] C++: Add more QLDoc. --- .../src/Security/CWE/CWE-843/TypeConfusion.ql | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql index 99f89106fb6..6bfe9164a39 100644 --- a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql @@ -163,6 +163,12 @@ predicate isSourceImpl(DataFlow::Node source, Class state) { ) } +/** + * The `RelevantStateConfig` configuration is used to find the set of + * states for the `BadConfig` and `GoodConfig`. The flow computed by + * `RelevantStateConfig` is used to implement the `relevantState` predicate + * which is used to avoid a cartesian product in `isSinkImpl`. + */ module RelevantStateConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { isSourceImpl(source, _) } @@ -204,9 +210,16 @@ predicate isSinkImpl(DataFlow::Node sink, Class state, Type convertedType, boole ) } +/** + * The `BadConfig` configuration tracks flow from an allocation to an + * incompatible cast. + * + * We use `FlowState` to track the type of the source, and compare the + * flow state to the target of the cast in the `isSink` definition. + */ module BadConfig implements DataFlow::StateConfigSig { class FlowState extends Class { - FlowState() { isSourceImpl(_, this) } + FlowState() { relevantState(_, this) } } predicate isSource(DataFlow::Node source, FlowState state) { isSourceImpl(source, state) } @@ -220,6 +233,45 @@ module BadConfig implements DataFlow::StateConfigSig { module BadFlow = DataFlow::GlobalWithState; +/** + * The `GoodConfig` configuration tracks flow from an allocation to a + * compatible cast. + * + * We use `GoodConfig` to reduce the number of FPs from infeasible paths. + * For example, consider the following example: + * ```cpp + * struct Animal { virtual ~Animal(); }; + * + * struct Cat : public Animal { + * Cat(); + * ~Cat(); + * }; + * + * struct Dog : public Animal { + * Dog(); + * ~Dog(); + * }; + * + * void test9(bool b) { + * Animal* a; + * if(b) { + * a = new Cat; + * } else { + * a = new Dog; + * } + * if(b) { + * Cat* d = static_cast(a); + * } + * } + * ``` + * Here, `BadConfig` finds a flow from `a = new Dog` to `static_cast(a)`. + * However, that path is never realized in an actual execution path. So in + * order to remove this result we exclude results where there exists an + * allocation of a type that's compatible with `static_cast(a)`. + * + * We use `FlowState` to track the type of the source, and compare the + * flow state to the target of the cast in the `isSink` definition. + */ module GoodConfig implements DataFlow::StateConfigSig { class FlowState = BadConfig::FlowState; From bf84f3a936c07ca822a8394984cb84ebbba7ece7 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Mar 2024 15:53:16 -0800 Subject: [PATCH 047/309] C++: Add FN. --- .../query-tests/Security/CWE/CWE-843/test.cpp | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp index 6b5b5ccde37..3fdafd9d02f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp @@ -189,4 +189,24 @@ void test15() { UInt8_with_more* u8 = (UInt8_with_more*)u64; // BAD } -// semmle-extractor-options: --gcc -std=c++11 +struct SingleInt { + int i; +} __attribute__((packed));; + +struct PairInts { + int x, y; +} __attribute__((packed));; + +union MyUnion +{ + PairInts p; + unsigned long long foo; +} __attribute__((packed)); + +void test16() { + void* si = new SingleInt; + // ... + MyUnion* mu = (MyUnion*)si; // BAD [NOT DETECTED] +} + +// semmle-extractor-options: --gcc -std=c++11 \ No newline at end of file From 01fc7432cb79bc30857988401f8a4776c7b211e3 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Mar 2024 22:17:33 -0800 Subject: [PATCH 048/309] C++: Add more tests. --- .../CWE/CWE-843/TypeConfusion.expected | 8 ++++++++ .../query-tests/Security/CWE/CWE-843/test.cpp | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected index 04e5462bf01..45355a86a48 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected @@ -8,6 +8,8 @@ edges | test.cpp:153:9:153:15 | new | test.cpp:159:14:159:33 | a | provenance | | | test.cpp:168:9:168:15 | new | test.cpp:171:14:171:33 | a | provenance | | | test.cpp:187:15:187:24 | new | test.cpp:189:25:189:45 | u64 | provenance | | +| test.cpp:217:13:217:18 | new | test.cpp:218:30:218:65 | p | provenance | | +| test.cpp:226:13:226:18 | new | test.cpp:227:29:227:63 | p | provenance | | nodes | test.cpp:27:13:27:18 | new | semmle.label | new | | test.cpp:28:25:28:55 | p | semmle.label | p | @@ -27,6 +29,10 @@ nodes | test.cpp:171:14:171:33 | a | semmle.label | a | | test.cpp:187:15:187:24 | new | semmle.label | new | | test.cpp:189:25:189:45 | u64 | semmle.label | u64 | +| test.cpp:217:13:217:18 | new | semmle.label | new | +| test.cpp:218:30:218:65 | p | semmle.label | p | +| test.cpp:226:13:226:18 | new | semmle.label | new | +| test.cpp:227:29:227:63 | p | semmle.label | p | subpaths #select | test.cpp:28:25:28:55 | p | test.cpp:27:13:27:18 | new | test.cpp:28:25:28:55 | p | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:11:8:11:21 | Not_S1_wrapper | Not_S1_wrapper | @@ -36,3 +42,5 @@ subpaths | test.cpp:145:28:145:68 | s1_2 | test.cpp:143:14:143:19 | new | test.cpp:145:28:145:68 | s1_2 | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:131:8:131:23 | HasSomeBitFields | HasSomeBitFields | | test.cpp:159:14:159:33 | a | test.cpp:153:9:153:15 | new | test.cpp:159:14:159:33 | a | Conversion from $@ to $@ is invalid. | test.cpp:60:8:60:10 | Dog | Dog | test.cpp:55:8:55:10 | Cat | Cat | | test.cpp:189:25:189:45 | u64 | test.cpp:187:15:187:24 | new | test.cpp:189:25:189:45 | u64 | Conversion from $@ to $@ is invalid. | test.cpp:175:8:175:13 | UInt64 | UInt64 | test.cpp:184:8:184:22 | UInt8_with_more | UInt8_with_more | +| test.cpp:218:30:218:65 | p | test.cpp:217:13:217:18 | new | test.cpp:218:30:218:65 | p | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:212:8:212:26 | UnrelatedStructSize | UnrelatedStructSize | +| test.cpp:227:29:227:63 | p | test.cpp:226:13:226:18 | new | test.cpp:227:29:227:63 | p | Conversion from $@ to $@ is invalid. | test.cpp:1:8:1:9 | S1 | S1 | test.cpp:221:8:221:25 | TooLargeBufferSize | TooLargeBufferSize | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp index 3fdafd9d02f..982496218ff 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/test.cpp @@ -209,4 +209,22 @@ void test16() { MyUnion* mu = (MyUnion*)si; // BAD [NOT DETECTED] } +struct UnrelatedStructSize { + unsigned char buffer[1024]; +}; + +void test17() { + void* p = new S1; + UnrelatedStructSize* uss = static_cast(p); // BAD +} + +struct TooLargeBufferSize { + unsigned char buffer[sizeof(S1) + 1]; +}; + +void test18() { + void* p = new S1; + TooLargeBufferSize* uss = static_cast(p); // BAD +} + // semmle-extractor-options: --gcc -std=c++11 \ No newline at end of file From b876117eccf7b1e7c9db393ce0d6e2d1277a382a Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 6 Mar 2024 22:25:04 -0800 Subject: [PATCH 049/309] C++: Add more QLDoc. --- cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql index 6bfe9164a39..d43e0145c99 100644 --- a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql @@ -139,6 +139,20 @@ class UnsafeCast extends Cast { Class getConvertedType() { result = toType } + /** + * Holds if the result of this cast can safely be interpreted as a value of + * type `t`. + * + * The compatibility rules are as follows: + * + * 1. the result of `(T)x` is compatible with the type `T` for any `T` + * 2. the result of `(T)x` is compatible with the type `U` for any `U` such + * that `U` is a subtype of `T`, or `T` is a subtype of `U`. + * 3. the result of `(T)x` is compatible with the type `U` if `U` the list + * of fields of `U` is a prefix of the list of fields of `T`. + * For example, if `T` is `struct { unsigned char x; int y; };` + * and `U` is `struct { unsigned char uc; };`. + */ bindingset[this, t] pragma[inline_late] predicate compatibleWith(Type t) { From 7d74125508aaf237af675369655dbce2a0ae1b3d Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Thu, 7 Mar 2024 15:17:49 +0100 Subject: [PATCH 050/309] Go: Promote go/uncontrolled-allocation-size --- .../security/UncontrolledAllocationSize.qll | 34 +++++++++++ ...controlledAllocationSizeCustomizations.qll | 33 +++++++++++ .../CWE-770/UncontrolledAllocationSize.qhelp | 36 +++++++++++ .../CWE-770/UncontrolledAllocationSize.ql | 22 +++++++ .../CWE-770/UncontrolledAllocationSizeBad.go} | 0 .../UncontrolledAllocationSizeGood.go} | 0 ...2024-03-07-uncontrolled-allocation-size.md | 4 ++ .../CWE-770/DenialOfService.qhelp | 32 ---------- .../experimental/CWE-770/DenialOfService.ql | 59 ------------------- .../CWE-770/DenialOfService.expected | 18 ------ .../CWE-770/DenialOfService.qlref | 1 - .../UncontrolledAllocationSize.expected | 0 .../CWE-770/UncontrolledAllocationSize.ql | 4 ++ .../CWE-770/UncontrolledAllocationSizeBad.go} | 2 +- .../UncontrolledAllocationSizeGood.go} | 0 15 files changed, 134 insertions(+), 111 deletions(-) create mode 100644 go/ql/lib/semmle/go/security/UncontrolledAllocationSize.qll create mode 100644 go/ql/lib/semmle/go/security/UncontrolledAllocationSizeCustomizations.qll create mode 100644 go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp create mode 100644 go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql rename go/ql/src/{experimental/CWE-770/DenialOfServiceBad.go => Security/CWE-770/UncontrolledAllocationSizeBad.go} (100%) rename go/ql/src/{experimental/CWE-770/DenialOfServiceGood.go => Security/CWE-770/UncontrolledAllocationSizeGood.go} (100%) create mode 100644 go/ql/src/change-notes/2024-03-07-uncontrolled-allocation-size.md delete mode 100644 go/ql/src/experimental/CWE-770/DenialOfService.qhelp delete mode 100644 go/ql/src/experimental/CWE-770/DenialOfService.ql delete mode 100644 go/ql/test/experimental/CWE-770/DenialOfService.expected delete mode 100644 go/ql/test/experimental/CWE-770/DenialOfService.qlref create mode 100644 go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected create mode 100644 go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.ql rename go/ql/test/{experimental/CWE-770/DenialOfServiceBad.go => query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go} (89%) rename go/ql/test/{experimental/CWE-770/DenialOfServiceGood.go => query-tests/Security/CWE-770/UncontrolledAllocationSizeGood.go} (100%) diff --git a/go/ql/lib/semmle/go/security/UncontrolledAllocationSize.qll b/go/ql/lib/semmle/go/security/UncontrolledAllocationSize.qll new file mode 100644 index 00000000000..885aa7a7053 --- /dev/null +++ b/go/ql/lib/semmle/go/security/UncontrolledAllocationSize.qll @@ -0,0 +1,34 @@ +/** + * Provides a taint-tracking configuration for reasoning about uncontrolled allocation size issues. + */ + +import go + +/** + * Provides a taint-tracking flow for reasoning about uncontrolled allocation size issues. + */ +module UncontrolledAllocationSize { + private import UncontrolledAllocationSizeCustomizations::UncontrolledAllocationSize + + /** + * Module for defining predicates and tracking taint flow related to uncontrolled allocation size issues. + */ + 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 } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + exists(Function f, DataFlow::CallNode cn | cn = f.getACall() | + f.hasQualifiedName("strconv", ["Atoi", "ParseInt", "ParseUint", "ParseFloat"]) and + node1 = cn.getArgument(0) and + node2 = cn.getResult(0) + ) + } + } + + /** Tracks taint flow for reasoning about uncontrolled allocation size issues. */ + module Flow = TaintTracking::Global; +} diff --git a/go/ql/lib/semmle/go/security/UncontrolledAllocationSizeCustomizations.qll b/go/ql/lib/semmle/go/security/UncontrolledAllocationSizeCustomizations.qll new file mode 100644 index 00000000000..1237971dde1 --- /dev/null +++ b/go/ql/lib/semmle/go/security/UncontrolledAllocationSizeCustomizations.qll @@ -0,0 +1,33 @@ +/** + * Provides default sources, sinks, and sanitizers for reasoning about uncontrolled allocation size issues, + * as well as extension points for adding your own. + */ + +import go +private import semmle.go.security.AllocationSizeOverflow + +/** + * Provides extension points for customizing the taint-tracking configuration for reasoning + * about uncontrolled allocation size issues. + */ +module UncontrolledAllocationSize { + /** A data flow source for uncontrolled allocation size vulnerabilities. */ + abstract class Source extends DataFlow::Node { } + + /** A data flow sink for uncontrolled allocation size vulnerabilities. */ + abstract class Sink extends DataFlow::Node { } + + /** A sanitizer for uncontrolled allocation size vulnerabilities. */ + abstract class Sanitizer extends DataFlow::Node { } + + /** A source of untrusted data, considered as a taint source for uncontrolled size allocation vulnerabilities. */ + private class UntrustedFlowAsSource extends Source instanceof UntrustedFlowSource { } + + /** The size argument of a memory allocation function. */ + private class AllocationSizeAsSink extends Sink instanceof AllocationSizeOverflow::AllocationSize { + } + + /** A check that a value is below some upper limit. */ + private class SizeCheckSanitizer extends Sanitizer instanceof AllocationSizeOverflow::AllocationSizeCheckBarrier + { } +} diff --git a/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp new file mode 100644 index 00000000000..b4029e93e1e --- /dev/null +++ b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp @@ -0,0 +1,36 @@ + + + + +

    Using untrusted input to allocate slices with the built-in make function could + lead to excessive memory allocation and potentially cause the program to crash due to running + out of memory. This vulnerability could be exploited to perform a denial-of-service attack by + consuming all available server resources.

    +
    + + +

    Implement a maximum allowed value for size allocations with the built-in make + function to prevent excessively large allocations.

    +
    + + +

    In the following example snippet, the n parameter is user-controlled.

    +

    If the external user provides an excessively large value, the application allocates a slice + of size n without further verification, potentially exhausting all the available + memory.

    + + + +

    One way to prevent this vulnerability is by implementing a maximum allowed value for the + user-controlled input, as seen in the following example:

    + + +
    + + +
  • OWASP: Denial + of Service Cheat Sheet +
  • +
    +
    \ No newline at end of file diff --git a/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql new file mode 100644 index 00000000000..2be09c6901b --- /dev/null +++ b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql @@ -0,0 +1,22 @@ +/** + * @name Slice memory allocation with excessive size value + * @description Allocating memory for slices with the built-in make function from user-controlled sources + * can lead to a denial of service. + * @kind path-problem + * @problem.severity warning + * @security-severity 6.0 + * @precision high + * @id go/uncontrolled-allocation-size + * @tags security + * external/cwe/cwe-770 + */ + +import go +import semmle.go.security.UncontrolledAllocationSize +import UncontrolledAllocationSize::Flow::PathGraph + +from + UncontrolledAllocationSize::Flow::PathNode source, UncontrolledAllocationSize::Flow::PathNode sink +where UncontrolledAllocationSize::Flow::flowPath(source, sink) +select sink, source, sink, "This memory allocation depends on a $@.", source.getNode(), + "user-provided value" diff --git a/go/ql/src/experimental/CWE-770/DenialOfServiceBad.go b/go/ql/src/Security/CWE-770/UncontrolledAllocationSizeBad.go similarity index 100% rename from go/ql/src/experimental/CWE-770/DenialOfServiceBad.go rename to go/ql/src/Security/CWE-770/UncontrolledAllocationSizeBad.go diff --git a/go/ql/src/experimental/CWE-770/DenialOfServiceGood.go b/go/ql/src/Security/CWE-770/UncontrolledAllocationSizeGood.go similarity index 100% rename from go/ql/src/experimental/CWE-770/DenialOfServiceGood.go rename to go/ql/src/Security/CWE-770/UncontrolledAllocationSizeGood.go diff --git a/go/ql/src/change-notes/2024-03-07-uncontrolled-allocation-size.md b/go/ql/src/change-notes/2024-03-07-uncontrolled-allocation-size.md new file mode 100644 index 00000000000..663932005eb --- /dev/null +++ b/go/ql/src/change-notes/2024-03-07-uncontrolled-allocation-size.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* The query "Slice memory allocation with excessive size value" (`go/uncontrolled-allocation-size`) has been promoted from experimental to the main query pack. Its results will now appear by default. This query was originally [submitted as an experimental query by @Malayke](https://github.com/github/codeql/pull/15130). diff --git a/go/ql/src/experimental/CWE-770/DenialOfService.qhelp b/go/ql/src/experimental/CWE-770/DenialOfService.qhelp deleted file mode 100644 index b91f1f7e3b0..00000000000 --- a/go/ql/src/experimental/CWE-770/DenialOfService.qhelp +++ /dev/null @@ -1,32 +0,0 @@ - - - - -

    Using untrusted input to created with the built-in make function - could lead to excessive memory allocation and potentially cause the program to crash due - to running out of memory. This vulnerability could be exploited to perform a DoS attack by consuming all available server resources.

    -
    - - -

    Implement a maximum allowed value for creates a slice with the built-in make function to prevent excessively large allocations. - For instance, you could restrict it to a reasonable upper limit.

    -
    - - -

    In the following example snippet, the n field is user-controlled.

    -

    The server trusts that n has an acceptable value, however when using a maliciously large value, - it allocates a slice of n of strings before filling the slice with data.

    - - - -

    One way to prevent this vulnerability is by implementing a maximum allowed value for the user-controlled input:

    - - -
    - - -
  • - OWASP: Denial of Service Cheat Sheet -
  • -
    -
    \ No newline at end of file diff --git a/go/ql/src/experimental/CWE-770/DenialOfService.ql b/go/ql/src/experimental/CWE-770/DenialOfService.ql deleted file mode 100644 index 199cd0df552..00000000000 --- a/go/ql/src/experimental/CWE-770/DenialOfService.ql +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @name Denial Of Service - * @description slices created with the built-in make function from user-controlled sources using a - * maliciously large value possibly leading to a denial of service. - * @kind path-problem - * @problem.severity error - * @security-severity 9 - * @precision high - * @id go/denial-of-service - * @tags security - * experimental - * external/cwe/cwe-770 - */ - -import go - -/** - * Holds if the guard `g` on its branch `branch` checks that `e` is not constant and is less than some other value. - */ -predicate denialOfServiceSanitizerGuard(DataFlow::Node g, Expr e, boolean branch) { - exists(DataFlow::Node lesser | - e = lesser.asExpr() and - g.(DataFlow::RelationalComparisonNode).leq(branch, lesser, _, _) and - not e.isConst() - ) -} - -/** - * Module for defining predicates and tracking taint flow related to denial of service issues. - */ -module Config implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source instanceof UntrustedFlowSource } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - exists(Function f, DataFlow::CallNode cn | cn = f.getACall() | - f.hasQualifiedName("strconv", ["Atoi", "ParseInt", "ParseUint", "ParseFloat"]) and - node1 = cn.getArgument(0) and - node2 = cn.getResult(0) - ) - } - - predicate isBarrier(DataFlow::Node node) { - node = DataFlow::BarrierGuard::getABarrierNode() - } - - predicate isSink(DataFlow::Node sink) { sink = Builtin::make().getACall().getArgument(0) } -} - -/** - * Tracks taint flow for reasoning about denial of service, where source is - * user-controlled and unchecked. - */ -module Flow = TaintTracking::Global; - -import Flow::PathGraph - -from Flow::PathNode source, Flow::PathNode sink -where Flow::flowPath(source, sink) -select sink, source, sink, "This variable might be leading to denial of service." diff --git a/go/ql/test/experimental/CWE-770/DenialOfService.expected b/go/ql/test/experimental/CWE-770/DenialOfService.expected deleted file mode 100644 index 4a2ae9d6646..00000000000 --- a/go/ql/test/experimental/CWE-770/DenialOfService.expected +++ /dev/null @@ -1,18 +0,0 @@ -edges -| DenialOfServiceBad.go:11:12:11:16 | selection of URL | DenialOfServiceBad.go:11:12:11:24 | call to Query | provenance | | -| DenialOfServiceBad.go:11:12:11:24 | call to Query | DenialOfServiceBad.go:13:15:13:20 | source | provenance | | -| DenialOfServiceBad.go:13:15:13:20 | source | DenialOfServiceBad.go:13:15:13:29 | call to Get | provenance | | -| DenialOfServiceBad.go:13:15:13:29 | call to Get | DenialOfServiceBad.go:14:28:14:36 | sourceStr | provenance | | -| DenialOfServiceBad.go:14:2:14:37 | ... := ...[0] | DenialOfServiceBad.go:20:27:20:30 | sink | provenance | | -| DenialOfServiceBad.go:14:28:14:36 | sourceStr | DenialOfServiceBad.go:14:2:14:37 | ... := ...[0] | provenance | | -nodes -| DenialOfServiceBad.go:11:12:11:16 | selection of URL | semmle.label | selection of URL | -| DenialOfServiceBad.go:11:12:11:24 | call to Query | semmle.label | call to Query | -| DenialOfServiceBad.go:13:15:13:20 | source | semmle.label | source | -| DenialOfServiceBad.go:13:15:13:29 | call to Get | semmle.label | call to Get | -| DenialOfServiceBad.go:14:2:14:37 | ... := ...[0] | semmle.label | ... := ...[0] | -| DenialOfServiceBad.go:14:28:14:36 | sourceStr | semmle.label | sourceStr | -| DenialOfServiceBad.go:20:27:20:30 | sink | semmle.label | sink | -subpaths -#select -| DenialOfServiceBad.go:20:27:20:30 | sink | DenialOfServiceBad.go:11:12:11:16 | selection of URL | DenialOfServiceBad.go:20:27:20:30 | sink | This variable might be leading to denial of service. | diff --git a/go/ql/test/experimental/CWE-770/DenialOfService.qlref b/go/ql/test/experimental/CWE-770/DenialOfService.qlref deleted file mode 100644 index e5896bb61df..00000000000 --- a/go/ql/test/experimental/CWE-770/DenialOfService.qlref +++ /dev/null @@ -1 +0,0 @@ -experimental/CWE-770/DenialOfService.ql \ No newline at end of file diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.ql b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.ql new file mode 100644 index 00000000000..18add3a4881 --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.ql @@ -0,0 +1,4 @@ +import go +import semmle.go.security.UncontrolledAllocationSize +import TestUtilities.InlineFlowTest +import FlowTest diff --git a/go/ql/test/experimental/CWE-770/DenialOfServiceBad.go b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go similarity index 89% rename from go/ql/test/experimental/CWE-770/DenialOfServiceBad.go rename to go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go index 2d61cdbdafc..0ae70436bde 100644 --- a/go/ql/test/experimental/CWE-770/DenialOfServiceBad.go +++ b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go @@ -17,7 +17,7 @@ func OutOfMemoryBad(w http.ResponseWriter, r *http.Request) { return } - result := make([]string, sink) + result := make([]string, sink) // $hasTaintFlow="sink" for i := 0; i < sink; i++ { result[i] = fmt.Sprintf("Item %d", i+1) } diff --git a/go/ql/test/experimental/CWE-770/DenialOfServiceGood.go b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeGood.go similarity index 100% rename from go/ql/test/experimental/CWE-770/DenialOfServiceGood.go rename to go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeGood.go From 138ce42cf6f4f65c04e829448831bef548eeaec4 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Thu, 7 Mar 2024 15:22:46 +0100 Subject: [PATCH 051/309] Fix qhelp --- go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp index b4029e93e1e..14930944bb6 100644 --- a/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp +++ b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.qhelp @@ -19,12 +19,12 @@ of size n without further verification, potentially exhausting all the available memory.

    - +

    One way to prevent this vulnerability is by implementing a maximum allowed value for the user-controlled input, as seen in the following example:

    - + From 9e77b898856dec5ce1a139ed051eac019a9bd11c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 7 Mar 2024 08:33:49 -0800 Subject: [PATCH 052/309] Update TypeConfusion.qhelp Co-authored-by: hubwriter --- cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp index 0f72a992205..205a1ae7ff8 100644 --- a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.qhelp @@ -3,7 +3,7 @@

    -Certain casts in C and C++ places no restrictions on the target type. For +Certain casts in C and C++ place no restrictions on the target type. For example, C style casts such as (MyClass*)p allows the programmer to cast any pointer p to an expression of type MyClass*. If the runtime type of p turns out to be a type that's incompatible From cedbfbe7ea4841583f2c7ed1ca9c5ef235109151 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 7 Mar 2024 10:50:20 -0800 Subject: [PATCH 053/309] C++: Use a more generous definition of compatible types. --- .../src/Security/CWE/CWE-843/TypeConfusion.ql | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql index d43e0145c99..c2a6f89d33f 100644 --- a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql @@ -148,20 +148,32 @@ class UnsafeCast extends Cast { * 1. the result of `(T)x` is compatible with the type `T` for any `T` * 2. the result of `(T)x` is compatible with the type `U` for any `U` such * that `U` is a subtype of `T`, or `T` is a subtype of `U`. - * 3. the result of `(T)x` is compatible with the type `U` if `U` the list + * 3. the result of `(T)x` is compatible with the type `U` if the list + * of fields of `T` is a prefix of the list of fields of `U`. + * For example, if `U` is `struct { unsigned char x; int y; };` + * and `T` is `struct { unsigned char uc; };`. + * 4. the result of `(T)x` is compatible with the type `U` if the list * of fields of `U` is a prefix of the list of fields of `T`. - * For example, if `T` is `struct { unsigned char x; int y; };` - * and `U` is `struct { unsigned char uc; };`. + * + * Condition 4 is a bit controversial, since it assumes that the additional + * fields in `T` won't be accessed. This may result in some FNs. */ bindingset[this, t] pragma[inline_late] predicate compatibleWith(Type t) { + // Conition 1 t.stripType() = this.getConvertedType() or + // Condition 3 prefix(this.getConvertedType(), t.stripType()) or + // Condition 4 + prefix(t.stripType(), this.getConvertedType()) + or + // Condition 2 (a) t.stripType().(Class).getABaseClass+() = this.getConvertedType() or + // Condition 2 (b) t.stripType() = this.getConvertedType().getABaseClass+() } } From 4f9bdca4f083b3921d6dc22c95c9785c7d81896e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 7 Mar 2024 13:08:26 -0800 Subject: [PATCH 054/309] C++: Optimize. --- cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql index c2a6f89d33f..f7ac0465d87 100644 --- a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql @@ -219,16 +219,14 @@ module RelevantStateConfig implements DataFlow::ConfigSig { module RelevantStateFlow = DataFlow::Global; -predicate relevantState(DataFlow::Node sink, Class state) { - exists(DataFlow::Node source | - RelevantStateFlow::flow(source, sink) and - isSourceImpl(source, state) - ) +predicate relevantState(DataFlow::Node source, DataFlow::Node sink, Class state) { + RelevantStateFlow::flow(source, sink) and + isSourceImpl(source, state) } predicate isSinkImpl(DataFlow::Node sink, Class state, Type convertedType, boolean compatible) { exists(UnsafeCast cast | - relevantState(sink, state) and + relevantState(_, sink, state) and sink.asExpr() = cast.getUnconverted() and convertedType = cast.getConvertedType() | @@ -245,10 +243,10 @@ predicate isSinkImpl(DataFlow::Node sink, Class state, Type convertedType, boole */ module BadConfig implements DataFlow::StateConfigSig { class FlowState extends Class { - FlowState() { relevantState(_, this) } + FlowState() { relevantState(_, _, this) } } - predicate isSource(DataFlow::Node source, FlowState state) { isSourceImpl(source, state) } + predicate isSource(DataFlow::Node source, FlowState state) { relevantState(source, _, state) } predicate isBarrier(DataFlow::Node node) { RelevantStateConfig::isBarrier(node) } From 761f6d3a7eda185f17bd26a3360a5cfeb69cfcab Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 7 Mar 2024 13:44:41 -0800 Subject: [PATCH 055/309] C++: Disable field flow from the 'cpp/type-confusion' query to fix performance on ChakraCore. --- cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql index f7ac0465d87..530d8804ebd 100644 --- a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql @@ -215,6 +215,8 @@ module RelevantStateConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { exists(UnsafeCast cast | sink.asExpr() = cast.getUnconverted()) } + + int fieldFlowBranchLimit() { result = 0 } } module RelevantStateFlow = DataFlow::Global; @@ -253,6 +255,8 @@ module BadConfig implements DataFlow::StateConfigSig { predicate isSink(DataFlow::Node sink, FlowState state) { isSinkImpl(sink, state, _, false) } predicate isBarrierOut(DataFlow::Node sink, FlowState state) { isSink(sink, state) } + + int fieldFlowBranchLimit() { result = 0 } } module BadFlow = DataFlow::GlobalWithState; @@ -307,6 +311,8 @@ module GoodConfig implements DataFlow::StateConfigSig { isSinkImpl(sink, state, _, true) and BadFlow::flowTo(sink) } + + int fieldFlowBranchLimit() { result = 0 } } module GoodFlow = DataFlow::GlobalWithState; From e793a1e9fe78df48abc2069aff8767b822fd46f7 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 5 Mar 2024 09:38:09 +0100 Subject: [PATCH 056/309] Ruby: Add variable capture spurious flow test --- .../library-tests/dataflow/global/Flow.expected | 11 +++++++++++ .../dataflow/global/captured_variables.rb | 14 ++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.expected b/ruby/ql/test/library-tests/dataflow/global/Flow.expected index 7ae00a80dce..9e01d45a07c 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.expected +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.expected @@ -1,4 +1,5 @@ testFailures +| captured_variables.rb:236:14:236:14 | x | Unexpected result: hasValueFlow=19 | edges | blocks.rb:14:12:14:20 | call to source | blocks.rb:8:10:8:14 | yield ... | provenance | | | captured_variables.rb:9:24:9:24 | x | captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | provenance | | @@ -122,6 +123,10 @@ edges | captured_variables.rb:222:11:224:5 | -> { ... } [captured x] | captured_variables.rb:222:5:222:7 | fn1 [captured x] | provenance | | | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | captured_variables.rb:227:10:227:10 | y | provenance | | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | provenance | | +| captured_variables.rb:233:9:233:17 | call to taint | captured_variables.rb:235:11:237:5 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:235:5:235:7 | fn1 [captured x] | captured_variables.rb:241:5:241:7 | fn1 [captured x] | provenance | | +| captured_variables.rb:235:11:237:5 | -> { ... } [captured x] | captured_variables.rb:235:5:235:7 | fn1 [captured x] | provenance | | +| captured_variables.rb:241:5:241:7 | fn1 [captured x] | captured_variables.rb:236:14:236:14 | x | provenance | | | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | provenance | | | instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | provenance | | | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] | provenance | | @@ -385,6 +390,11 @@ nodes | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | semmle.label | [post] fn1 [captured y] | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | | captured_variables.rb:227:10:227:10 | y | semmle.label | y | +| captured_variables.rb:233:9:233:17 | call to taint | semmle.label | call to taint | +| captured_variables.rb:235:5:235:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | +| captured_variables.rb:235:11:237:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | +| captured_variables.rb:236:14:236:14 | x | semmle.label | x | +| captured_variables.rb:241:5:241:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | | instance_variables.rb:10:19:10:19 | x | semmle.label | x | | instance_variables.rb:11:9:11:14 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:11:18:11:18 | x | semmle.label | x | @@ -595,6 +605,7 @@ subpaths | captured_variables.rb:199:10:199:10 | x | captured_variables.rb:197:9:197:17 | call to taint | captured_variables.rb:199:10:199:10 | x | $@ | captured_variables.rb:197:9:197:17 | call to taint | call to taint | | captured_variables.rb:208:14:208:14 | x | captured_variables.rb:206:13:206:21 | call to taint | captured_variables.rb:208:14:208:14 | x | $@ | captured_variables.rb:206:13:206:21 | call to taint | call to taint | | captured_variables.rb:227:10:227:10 | y | captured_variables.rb:219:9:219:17 | call to taint | captured_variables.rb:227:10:227:10 | y | $@ | captured_variables.rb:219:9:219:17 | call to taint | call to taint | +| captured_variables.rb:236:14:236:14 | x | captured_variables.rb:233:9:233:17 | call to taint | captured_variables.rb:236:14:236:14 | x | $@ | captured_variables.rb:233:9:233:17 | call to taint | call to taint | | instance_variables.rb:20:10:20:13 | @foo | instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:20:10:20:13 | @foo | $@ | instance_variables.rb:19:12:19:21 | call to taint | call to taint | | instance_variables.rb:36:10:36:33 | call to get_field | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:33 | call to get_field | $@ | instance_variables.rb:36:14:36:22 | call to taint | call to taint | | instance_variables.rb:39:6:39:33 | call to get_field | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:33 | call to get_field | $@ | instance_variables.rb:39:14:39:22 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb b/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb index 79d1fc83b76..8c7c5049b2d 100644 --- a/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb +++ b/ruby/ql/test/library-tests/dataflow/global/captured_variables.rb @@ -228,3 +228,17 @@ def multi_capture end multi_capture + +def m1 + x = taint(19) + + fn1 = -> { + sink x + } + + x = nil + + fn1.call() +end + +m1 \ No newline at end of file From 63bb772ef9a67b4c2993cb370de4775b44c5f8b3 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 4 Mar 2024 13:25:15 +0100 Subject: [PATCH 057/309] Variable capture: Avoid overlapping and false-positive data flow paths --- .../codeql/dataflow/VariableCapture.qll | 80 +++++++++++++++++-- 1 file changed, 74 insertions(+), 6 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/VariableCapture.qll b/shared/dataflow/codeql/dataflow/VariableCapture.qll index e90bf481442..9fd385d4458 100644 --- a/shared/dataflow/codeql/dataflow/VariableCapture.qll +++ b/shared/dataflow/codeql/dataflow/VariableCapture.qll @@ -601,16 +601,22 @@ module Flow Input> implements OutputSig * observed in a similarly synthesized post-update node for this read of `v`. */ private predicate synthRead( - CapturedVariable v, BasicBlock bb, int i, boolean topScope, Expr closure + CapturedVariable v, BasicBlock bb, int i, boolean topScope, Expr closure, boolean alias ) { exists(ClosureExpr ce | closureCaptures(ce, v) | - ce.hasCfgNode(bb, i) and ce = closure + ce.hasCfgNode(bb, i) and ce = closure and alias = false or - localOrNestedClosureAccess(ce, closure, bb, i) + localOrNestedClosureAccess(ce, closure, bb, i) and alias = true ) and if v.getCallable() != bb.getEnclosingCallable() then topScope = false else topScope = true } + private predicate synthRead( + CapturedVariable v, BasicBlock bb, int i, boolean topScope, Expr closure + ) { + synthRead(v, bb, i, topScope, closure, _) + } + /** * Holds if there is an access of a captured variable inside a closure in the * `i`th node of `bb`, such that we need to synthesize a `this.` qualifier. @@ -919,16 +925,22 @@ module Flow Input> implements OutputSig ) } - predicate storeStep(ClosureNode node1, CapturedVariable v, ClosureNode node2) { - // store v in the closure or in the malloc in case of a relevant constructor call + private predicate storeStepClosure( + ClosureNode node1, CapturedVariable v, ClosureNode node2, boolean alias + ) { exists(BasicBlock bb, int i, Expr closure | - synthRead(v, bb, i, _, closure) and + synthRead(v, bb, i, _, closure, alias) and node1 = TSynthRead(v, bb, i, false) | node2 = TExprNode(closure, false) or node2 = TMallocNode(closure) and hasConstructorCapture(closure, v) ) + } + + predicate storeStep(ClosureNode node1, CapturedVariable v, ClosureNode node2) { + // store v in the closure or in the malloc in case of a relevant constructor call + storeStepClosure(node1, v, node2, _) or // write to v inside the closure body exists(BasicBlock bb, int i, VariableWrite vw | @@ -964,6 +976,62 @@ module Flow Input> implements OutputSig } predicate clearsContent(ClosureNode node, CapturedVariable v) { + /* + * Stores into closure aliases block flow from previous stores, both to + * avoid overlapping data flow paths, but also to avoid false positive + * flow. + * + * Example 1 (overlapping paths): + * + * ```rb + * def m + * x = taint + * + * fn = -> { # (1) + * sink x + * } + * + * fn.call # (2) + * ``` + * + * If we don't clear `x` at `fn` (2), we will have two overlapping paths: + * + * ``` + * taint -> fn (2) [captured x] + * taint -> fn (1) [captured x] -> fn (2) [captured x] + * ``` + * + * where the step `fn (1) [captured x] -> fn [captured x]` arises from normal + * use-use flow for `fn`. Clearing `x` at `fn` (2) removes the second path above. + * + * Example 2 (false positive flow): + * + * ```rb + * def m + * x = taint + * + * fn = -> { # (1) + * sink x + * } + * + * x = nil # (2) + * + * fn.call # (3) + * end + * ``` + * + * If we don't clear `x` at `fn` (3), we will have the following false positive + * flow path: + * + * ``` + * taint -> fn (1) [captured x] -> fn (3) [captured x] + * ``` + * + * since normal use-use flow for `fn` does not take the overwrite at (2) into account. + */ + + storeStepClosure(_, v, node, true) + or exists(BasicBlock bb, int i | captureWrite(v, bb, i, false, _) and node = TSynthThisQualifier(bb, i, false) From 24e35f6f3d0126b81b72f896aa9bd1d8fa369af4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 4 Mar 2024 13:31:53 +0100 Subject: [PATCH 058/309] Update expected test output --- .../dataflow/global/DataFlowPath.expected | 86 ------------------- .../global/TaintTrackingPath.expected | 86 ------------------- .../dataflow/variable-capture/by_value.py | 2 +- .../dataflow/global/Flow.expected | 46 ---------- 4 files changed, 1 insertion(+), 219 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected index c994ff441b4..7ebc9193829 100644 --- a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected @@ -1,27 +1,17 @@ edges -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:9:9:13:9 | CaptureIn1(...) : CaptureIn1 [captured tainted] : String | provenance | | | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:14:9:14:18 | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | provenance | | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:16:9:24:9 | CaptureIn2(...) : CaptureIn2 [captured tainted] : String | provenance | | | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | provenance | | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:27:43:32:9 | (...) => ... : (...) => ... [captured tainted] : String | provenance | | | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | provenance | | | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:61:36:61:42 | access to parameter tainted : String | provenance | | -| Capture.cs:9:9:13:9 | CaptureIn1(...) : CaptureIn1 [captured tainted] : String | Capture.cs:14:9:14:18 | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | provenance | | | Capture.cs:11:17:11:22 | access to local variable sink27 : String | Capture.cs:12:19:12:24 | access to local variable sink27 | provenance | | | Capture.cs:11:26:11:32 | access to parameter tainted : String | Capture.cs:11:17:11:22 | access to local variable sink27 : String | provenance | | | Capture.cs:14:9:14:18 | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | Capture.cs:11:26:11:32 | access to parameter tainted : String | provenance | | -| Capture.cs:16:9:24:9 | CaptureIn2(...) : CaptureIn2 [captured tainted] : String | Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | provenance | | -| Capture.cs:18:13:22:13 | M(...) : M [captured tainted] : String | Capture.cs:23:13:23:13 | access to local function M : M [captured tainted] : String | provenance | | | Capture.cs:20:21:20:26 | access to local variable sink28 : String | Capture.cs:21:23:21:28 | access to local variable sink28 | provenance | | | Capture.cs:20:30:20:36 | access to parameter tainted : String | Capture.cs:20:21:20:26 | access to local variable sink28 : String | provenance | | | Capture.cs:23:13:23:13 | access to local function M : M [captured tainted] : String | Capture.cs:20:30:20:36 | access to parameter tainted : String | provenance | | -| Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | Capture.cs:18:13:22:13 | M(...) : M [captured tainted] : String | provenance | | | Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | Capture.cs:23:13:23:13 | access to local function M : M [captured tainted] : String | provenance | | -| Capture.cs:27:30:27:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | Capture.cs:33:30:33:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | provenance | | -| Capture.cs:27:43:32:9 | (...) => ... : (...) => ... [captured tainted] : String | Capture.cs:27:30:27:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | provenance | | | Capture.cs:29:17:29:22 | access to local variable sink29 : String | Capture.cs:30:19:30:24 | access to local variable sink29 | provenance | | | Capture.cs:29:26:29:32 | access to parameter tainted : String | Capture.cs:29:17:29:22 | access to local variable sink29 : String | provenance | | -| Capture.cs:33:30:33:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | | | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | | | Capture.cs:50:50:50:55 | sink39 : String | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | provenance | | @@ -37,28 +27,18 @@ edges | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | provenance | | | Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | provenance | | | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | Capture.cs:124:15:124:20 | access to local variable sink40 | provenance | | -| Capture.cs:127:25:127:31 | tainted : String | Capture.cs:130:9:133:9 | CaptureThrough1(...) : CaptureThrough1 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | provenance | | -| Capture.cs:127:25:127:31 | tainted : String | Capture.cs:138:9:145:9 | CaptureThrough2(...) : CaptureThrough2 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | provenance | | -| Capture.cs:127:25:127:31 | tainted : String | Capture.cs:150:48:154:9 | (...) => ... : (...) => ... [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | provenance | | -| Capture.cs:127:25:127:31 | tainted : String | Capture.cs:158:9:161:9 | CaptureThrough4(...) : CaptureThrough4 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:170:25:170:31 | access to parameter tainted : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:196:25:196:31 | access to parameter tainted : String | provenance | | -| Capture.cs:130:9:133:9 | CaptureThrough1(...) : CaptureThrough1 [captured tainted] : String | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | provenance | | | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | Capture.cs:135:15:135:20 | access to local variable sink33 | provenance | | | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | provenance | | -| Capture.cs:138:9:145:9 | CaptureThrough2(...) : CaptureThrough2 [captured tainted] : String | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | provenance | | | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | Capture.cs:147:15:147:20 | access to local variable sink34 | provenance | | | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | provenance | | -| Capture.cs:150:30:150:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | provenance | | -| Capture.cs:150:48:154:9 | (...) => ... : (...) => ... [captured tainted] : String | Capture.cs:150:30:150:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | provenance | | | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | Capture.cs:156:15:156:20 | access to local variable sink35 | provenance | | -| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | | -| Capture.cs:158:9:161:9 | CaptureThrough4(...) : CaptureThrough4 [captured tainted] : String | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | provenance | | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | Capture.cs:163:15:163:20 | access to local variable sink36 | provenance | | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | provenance | | | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | Capture.cs:162:13:162:18 | access to local variable sink36 : String | provenance | | @@ -66,19 +46,13 @@ edges | Capture.cs:170:9:170:23 | [post] access to local function CaptureThrough5 : CaptureThrough5 [captured sink37] : String | Capture.cs:171:15:171:20 | access to local variable sink37 | provenance | | | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:166:37:166:37 | p : String | provenance | | | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:170:9:170:23 | [post] access to local function CaptureThrough5 : CaptureThrough5 [captured sink37] : String | provenance | | -| Capture.cs:190:26:190:26 | s : String | Capture.cs:192:13:192:28 | M(...) : M [captured s] : String | provenance | | | Capture.cs:190:26:190:26 | s : String | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | provenance | | -| Capture.cs:192:13:192:28 | M(...) : M [captured s] : String | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | provenance | | | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | Capture.cs:193:20:193:22 | call to local function M : String | provenance | | | Capture.cs:196:13:196:18 | access to local variable sink38 : String | Capture.cs:197:15:197:20 | access to local variable sink38 | provenance | | | Capture.cs:196:22:196:32 | call to local function Id : String | Capture.cs:196:13:196:18 | access to local variable sink38 : String | provenance | | | Capture.cs:196:25:196:31 | access to parameter tainted : String | Capture.cs:190:26:190:26 | s : String | provenance | | | Capture.cs:196:25:196:31 | access to parameter tainted : String | Capture.cs:196:22:196:32 | call to local function Id : String | provenance | | -| Capture.cs:202:20:202:20 | s : String | Capture.cs:204:20:207:9 | (...) => ... : (...) => ... [captured s] : String | provenance | | | Capture.cs:202:20:202:20 | s : String | Capture.cs:208:9:208:9 | access to local variable a : Action [captured s] : String | provenance | | -| Capture.cs:204:16:204:16 | access to local variable a : (...) => ... [captured s] : String | Capture.cs:208:9:208:9 | access to local variable a : (...) => ... [captured s] : String | provenance | | -| Capture.cs:204:20:207:9 | (...) => ... : (...) => ... [captured s] : String | Capture.cs:204:16:204:16 | access to local variable a : (...) => ... [captured s] : String | provenance | | -| Capture.cs:208:9:208:9 | access to local variable a : (...) => ... [captured s] : String | Capture.cs:206:19:206:19 | access to parameter s | provenance | | | Capture.cs:208:9:208:9 | access to local variable a : Action [captured s] : String | Capture.cs:206:19:206:19 | access to parameter s | provenance | | | Capture.cs:211:21:211:34 | "taint source" : String | Capture.cs:202:20:202:20 | s : String | provenance | | | Capture.cs:213:22:213:22 | s : String | Capture.cs:215:16:218:9 | (...) => ... : (...) => ... [captured s] : String | provenance | | @@ -93,17 +67,13 @@ edges | Capture.cs:229:20:233:9 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:231:19:231:19 | access to local variable x | provenance | | | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | Capture.cs:234:15:234:15 | access to local variable x | provenance | | | Capture.cs:232:17:232:30 | "taint source" : String | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | provenance | | -| Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:244:20:248:9 | (...) => ... : (...) => ... [captured c, field Field] : String | provenance | | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:249:9:249:9 | access to local variable a : Action [captured c, field Field] : String | provenance | | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:242:19:242:32 | "taint source" : String | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | provenance | | -| Capture.cs:244:16:244:16 | access to local variable a : (...) => ... [captured c, field Field] : String | Capture.cs:249:9:249:9 | access to local variable a : (...) => ... [captured c, field Field] : String | provenance | | -| Capture.cs:244:20:248:9 | (...) => ... : (...) => ... [captured c, field Field] : String | Capture.cs:244:16:244:16 | access to local variable a : (...) => ... [captured c, field Field] : String | provenance | | | Capture.cs:246:19:246:19 | access to local variable c : Capture [field Field] : String | Capture.cs:246:19:246:25 | access to field Field | provenance | | | Capture.cs:247:13:247:13 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:249:9:249:9 | [post] access to local variable a : (...) => ... [captured c, field Field] : String | provenance | | | Capture.cs:247:23:247:36 | "taint source" : String | Capture.cs:247:13:247:13 | [post] access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:249:9:249:9 | [post] access to local variable a : (...) => ... [captured c, field Field] : String | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | provenance | | -| Capture.cs:249:9:249:9 | access to local variable a : (...) => ... [captured c, field Field] : String | Capture.cs:246:19:246:19 | access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:249:9:249:9 | access to local variable a : Action [captured c, field Field] : String | Capture.cs:246:19:246:19 | access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | Capture.cs:251:15:251:21 | access to field Field | provenance | | | Capture.cs:264:13:264:13 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:266:9:266:9 | [post] access to local variable a : (...) => ... [captured c, field Field] : String | provenance | | @@ -112,52 +82,30 @@ edges | Capture.cs:268:15:268:15 | access to local variable c : Capture [field Field] : String | Capture.cs:268:15:268:21 | access to field Field | provenance | | | Capture.cs:273:19:273:19 | x : String | Capture.cs:273:30:273:30 | access to parameter x | provenance | | | Capture.cs:273:34:273:47 | "taint source" : String | Capture.cs:355:45:355:45 | x : String | provenance | | -| Capture.cs:278:17:278:30 | "taint source" : String | Capture.cs:280:25:288:9 | (...) => ... : (...) => ... [captured x] : String | provenance | | | Capture.cs:278:17:278:30 | "taint source" : String | Capture.cs:290:9:290:14 | access to local variable middle : Action [captured x] : String | provenance | | | Capture.cs:278:17:278:30 | "taint source" : String | Capture.cs:292:15:292:15 | access to local variable x | provenance | | -| Capture.cs:280:16:280:21 | access to local variable middle : (...) => ... [captured x] : String | Capture.cs:290:9:290:14 | access to local variable middle : (...) => ... [captured x] : String | provenance | | -| Capture.cs:280:25:288:9 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:280:16:280:21 | access to local variable middle : (...) => ... [captured x] : String | provenance | | -| Capture.cs:282:20:282:24 | access to local variable inner : (...) => ... [captured x] : String | Capture.cs:287:13:287:17 | access to local variable inner : (...) => ... [captured x] : String | provenance | | -| Capture.cs:282:28:286:13 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:282:20:282:24 | access to local variable inner : (...) => ... [captured x] : String | provenance | | | Capture.cs:285:21:285:34 | "taint source" : String | Capture.cs:287:13:287:17 | [post] access to local variable inner : (...) => ... [captured x] : String | provenance | | | Capture.cs:287:13:287:17 | [post] access to local variable inner : (...) => ... [captured x] : String | Capture.cs:290:9:290:14 | [post] access to local variable middle : (...) => ... [captured x] : String | provenance | | -| Capture.cs:287:13:287:17 | access to local variable inner : (...) => ... [captured x] : String | Capture.cs:284:23:284:23 | access to local variable x | provenance | | | Capture.cs:287:13:287:17 | access to local variable inner : Action [captured x] : String | Capture.cs:284:23:284:23 | access to local variable x | provenance | | | Capture.cs:290:9:290:14 | [post] access to local variable middle : (...) => ... [captured x] : String | Capture.cs:292:15:292:15 | access to local variable x | provenance | | -| Capture.cs:290:9:290:14 | access to local variable middle : (...) => ... [captured x] : String | Capture.cs:282:28:286:13 | (...) => ... : (...) => ... [captured x] : String | provenance | | -| Capture.cs:290:9:290:14 | access to local variable middle : (...) => ... [captured x] : String | Capture.cs:287:13:287:17 | access to local variable inner : Action [captured x] : String | provenance | | -| Capture.cs:290:9:290:14 | access to local variable middle : Action [captured x] : String | Capture.cs:282:28:286:13 | (...) => ... : (...) => ... [captured x] : String | provenance | | | Capture.cs:290:9:290:14 | access to local variable middle : Action [captured x] : String | Capture.cs:287:13:287:17 | access to local variable inner : Action [captured x] : String | provenance | | -| Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | Capture.cs:299:20:303:9 | (...) => ... : (...) => ... [captured this in M10, field Field] : String | provenance | | | Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | Capture.cs:304:9:304:9 | access to local variable a : Action [captured this in M10, field Field] : String | provenance | | | Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | Capture.cs:306:15:306:18 | this access : Capture [field Field] : String | provenance | | | Capture.cs:297:22:297:35 | "taint source" : String | Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | provenance | | -| Capture.cs:299:16:299:16 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | Capture.cs:304:9:304:9 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | provenance | | -| Capture.cs:299:20:303:9 | (...) => ... : (...) => ... [captured this in M10, field Field] : String | Capture.cs:299:16:299:16 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | provenance | | | Capture.cs:301:19:301:22 | this access : Capture [field Field] : String | Capture.cs:301:19:301:28 | access to field Field | provenance | | | Capture.cs:302:13:302:16 | [post] this access : Capture [field Field] : String | Capture.cs:304:9:304:9 | [post] access to local variable a : (...) => ... [captured this in M10, field Field] : String | provenance | | | Capture.cs:302:26:302:39 | "taint source" : String | Capture.cs:302:13:302:16 | [post] this access : Capture [field Field] : String | provenance | | | Capture.cs:304:9:304:9 | [post] access to local variable a : (...) => ... [captured this in M10, field Field] : String | Capture.cs:306:15:306:18 | this access : Capture [field Field] : String | provenance | | -| Capture.cs:304:9:304:9 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | Capture.cs:301:19:301:22 | this access : Capture [field Field] : String | provenance | | | Capture.cs:304:9:304:9 | access to local variable a : Action [captured this in M10, field Field] : String | Capture.cs:301:19:301:22 | this access : Capture [field Field] : String | provenance | | | Capture.cs:306:15:306:18 | this access : Capture [field Field] : String | Capture.cs:306:15:306:24 | access to field Field | provenance | | | Capture.cs:311:17:311:30 | "taint source" : String | Capture.cs:312:15:312:15 | access to local variable x | provenance | | | Capture.cs:318:17:318:30 | "taint source" : String | Capture.cs:319:19:319:19 | access to local variable x | provenance | | -| Capture.cs:328:17:328:30 | "taint source" : String | Capture.cs:330:9:330:49 | CapturedLocalFunction(...) : CapturedLocalFunction [captured x] : String | provenance | | -| Capture.cs:328:17:328:30 | "taint source" : String | Capture.cs:332:9:332:65 | CapturingLocalFunction(...) : CapturingLocalFunction [captured x] : String | provenance | | | Capture.cs:328:17:328:30 | "taint source" : String | Capture.cs:334:9:334:30 | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | provenance | | -| Capture.cs:330:9:330:49 | CapturedLocalFunction(...) : CapturedLocalFunction [captured x] : String | Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | provenance | | -| Capture.cs:332:9:332:65 | CapturingLocalFunction(...) : CapturingLocalFunction [captured x] : String | Capture.cs:334:9:334:30 | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | provenance | | -| Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | Capture.cs:330:47:330:47 | access to local variable x | provenance | | | Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | Capture.cs:330:47:330:47 | access to local variable x | provenance | | | Capture.cs:334:9:334:30 | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | provenance | | | Capture.cs:339:17:339:30 | "taint source" : String | Capture.cs:341:33:341:46 | (...) => ... : (...) => ... [captured x] : String | provenance | | -| Capture.cs:341:33:341:46 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:343:34:343:55 | (...) => ... : (...) => ... [captured capturedLambda, captured x] : String | provenance | | | Capture.cs:341:33:341:46 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:345:9:345:23 | access to local variable capturingLambda : Action [captured capturedLambda, captured x] : String | provenance | | -| Capture.cs:343:16:343:30 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | Capture.cs:345:9:345:23 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | provenance | | -| Capture.cs:343:34:343:55 | (...) => ... : (...) => ... [captured capturedLambda, captured x] : String | Capture.cs:343:16:343:30 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | provenance | | | Capture.cs:343:40:343:53 | access to local variable capturedLambda : (...) => ... [captured x] : String | Capture.cs:341:45:341:45 | access to local variable x | provenance | | -| Capture.cs:345:9:345:23 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | Capture.cs:343:40:343:53 | access to local variable capturedLambda : (...) => ... [captured x] : String | provenance | | | Capture.cs:345:9:345:23 | access to local variable capturingLambda : Action [captured capturedLambda, captured x] : String | Capture.cs:343:40:343:53 | access to local variable capturedLambda : (...) => ... [captured x] : String | provenance | | | Capture.cs:350:34:350:34 | a : (...) => ... [captured s] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured s] : String | provenance | | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | provenance | | @@ -519,24 +467,18 @@ edges | Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:48:13:48:13 | access to local variable s : String | provenance | | nodes | Capture.cs:7:20:7:26 | tainted : String | semmle.label | tainted : String | -| Capture.cs:9:9:13:9 | CaptureIn1(...) : CaptureIn1 [captured tainted] : String | semmle.label | CaptureIn1(...) : CaptureIn1 [captured tainted] : String | | Capture.cs:11:17:11:22 | access to local variable sink27 : String | semmle.label | access to local variable sink27 : String | | Capture.cs:11:26:11:32 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:12:19:12:24 | access to local variable sink27 | semmle.label | access to local variable sink27 | | Capture.cs:14:9:14:18 | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | semmle.label | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | -| Capture.cs:16:9:24:9 | CaptureIn2(...) : CaptureIn2 [captured tainted] : String | semmle.label | CaptureIn2(...) : CaptureIn2 [captured tainted] : String | -| Capture.cs:18:13:22:13 | M(...) : M [captured tainted] : String | semmle.label | M(...) : M [captured tainted] : String | | Capture.cs:20:21:20:26 | access to local variable sink28 : String | semmle.label | access to local variable sink28 : String | | Capture.cs:20:30:20:36 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:21:23:21:28 | access to local variable sink28 | semmle.label | access to local variable sink28 | | Capture.cs:23:13:23:13 | access to local function M : M [captured tainted] : String | semmle.label | access to local function M : M [captured tainted] : String | | Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | semmle.label | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | -| Capture.cs:27:30:27:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | semmle.label | access to local variable captureIn3 : (...) => ... [captured tainted] : String | -| Capture.cs:27:43:32:9 | (...) => ... : (...) => ... [captured tainted] : String | semmle.label | (...) => ... : (...) => ... [captured tainted] : String | | Capture.cs:29:17:29:22 | access to local variable sink29 : String | semmle.label | access to local variable sink29 : String | | Capture.cs:29:26:29:32 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:30:19:30:24 | access to local variable sink29 | semmle.label | access to local variable sink29 | -| Capture.cs:33:30:33:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | semmle.label | access to local variable captureIn3 : (...) => ... [captured tainted] : String | | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | semmle.label | access to local variable captureIn3 : Func [captured tainted] : String | | Capture.cs:50:50:50:55 | sink39 : String | semmle.label | sink39 : String | | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | semmle.label | (...) => ... : (...) => ... [captured sink39] : String | @@ -558,21 +500,15 @@ nodes | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | semmle.label | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | | Capture.cs:124:15:124:20 | access to local variable sink40 | semmle.label | access to local variable sink40 | | Capture.cs:127:25:127:31 | tainted : String | semmle.label | tainted : String | -| Capture.cs:130:9:133:9 | CaptureThrough1(...) : CaptureThrough1 [captured tainted] : String | semmle.label | CaptureThrough1(...) : CaptureThrough1 [captured tainted] : String | | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | semmle.label | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | semmle.label | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | | Capture.cs:135:15:135:20 | access to local variable sink33 | semmle.label | access to local variable sink33 | -| Capture.cs:138:9:145:9 | CaptureThrough2(...) : CaptureThrough2 [captured tainted] : String | semmle.label | CaptureThrough2(...) : CaptureThrough2 [captured tainted] : String | | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | semmle.label | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | semmle.label | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | | Capture.cs:147:15:147:20 | access to local variable sink34 | semmle.label | access to local variable sink34 | -| Capture.cs:150:30:150:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | semmle.label | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | -| Capture.cs:150:48:154:9 | (...) => ... : (...) => ... [captured tainted] : String | semmle.label | (...) => ... : (...) => ... [captured tainted] : String | | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | semmle.label | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | -| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | semmle.label | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | semmle.label | access to local variable captureThrough3 : Func [captured tainted] : String | | Capture.cs:156:15:156:20 | access to local variable sink35 | semmle.label | access to local variable sink35 | -| Capture.cs:158:9:161:9 | CaptureThrough4(...) : CaptureThrough4 [captured tainted] : String | semmle.label | CaptureThrough4(...) : CaptureThrough4 [captured tainted] : String | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | semmle.label | access to local variable sink36 : String | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | semmle.label | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | semmle.label | call to local function CaptureThrough4 : String | @@ -583,7 +519,6 @@ nodes | Capture.cs:170:25:170:31 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:171:15:171:20 | access to local variable sink37 | semmle.label | access to local variable sink37 | | Capture.cs:190:26:190:26 | s : String | semmle.label | s : String | -| Capture.cs:192:13:192:28 | M(...) : M [captured s] : String | semmle.label | M(...) : M [captured s] : String | | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | semmle.label | access to local function M : M [captured s] : String | | Capture.cs:193:20:193:22 | call to local function M : String | semmle.label | call to local function M : String | | Capture.cs:196:13:196:18 | access to local variable sink38 : String | semmle.label | access to local variable sink38 : String | @@ -591,10 +526,7 @@ nodes | Capture.cs:196:25:196:31 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:197:15:197:20 | access to local variable sink38 | semmle.label | access to local variable sink38 | | Capture.cs:202:20:202:20 | s : String | semmle.label | s : String | -| Capture.cs:204:16:204:16 | access to local variable a : (...) => ... [captured s] : String | semmle.label | access to local variable a : (...) => ... [captured s] : String | -| Capture.cs:204:20:207:9 | (...) => ... : (...) => ... [captured s] : String | semmle.label | (...) => ... : (...) => ... [captured s] : String | | Capture.cs:206:19:206:19 | access to parameter s | semmle.label | access to parameter s | -| Capture.cs:208:9:208:9 | access to local variable a : (...) => ... [captured s] : String | semmle.label | access to local variable a : (...) => ... [captured s] : String | | Capture.cs:208:9:208:9 | access to local variable a : Action [captured s] : String | semmle.label | access to local variable a : Action [captured s] : String | | Capture.cs:211:21:211:34 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:213:22:213:22 | s : String | semmle.label | s : String | @@ -612,14 +544,11 @@ nodes | Capture.cs:234:15:234:15 | access to local variable x | semmle.label | access to local variable x | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | semmle.label | [post] access to local variable c : Capture [field Field] : String | | Capture.cs:242:19:242:32 | "taint source" : String | semmle.label | "taint source" : String | -| Capture.cs:244:16:244:16 | access to local variable a : (...) => ... [captured c, field Field] : String | semmle.label | access to local variable a : (...) => ... [captured c, field Field] : String | -| Capture.cs:244:20:248:9 | (...) => ... : (...) => ... [captured c, field Field] : String | semmle.label | (...) => ... : (...) => ... [captured c, field Field] : String | | Capture.cs:246:19:246:19 | access to local variable c : Capture [field Field] : String | semmle.label | access to local variable c : Capture [field Field] : String | | Capture.cs:246:19:246:25 | access to field Field | semmle.label | access to field Field | | Capture.cs:247:13:247:13 | [post] access to local variable c : Capture [field Field] : String | semmle.label | [post] access to local variable c : Capture [field Field] : String | | Capture.cs:247:23:247:36 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:249:9:249:9 | [post] access to local variable a : (...) => ... [captured c, field Field] : String | semmle.label | [post] access to local variable a : (...) => ... [captured c, field Field] : String | -| Capture.cs:249:9:249:9 | access to local variable a : (...) => ... [captured c, field Field] : String | semmle.label | access to local variable a : (...) => ... [captured c, field Field] : String | | Capture.cs:249:9:249:9 | access to local variable a : Action [captured c, field Field] : String | semmle.label | access to local variable a : Action [captured c, field Field] : String | | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | semmle.label | access to local variable c : Capture [field Field] : String | | Capture.cs:251:15:251:21 | access to field Field | semmle.label | access to field Field | @@ -632,29 +561,20 @@ nodes | Capture.cs:273:30:273:30 | access to parameter x | semmle.label | access to parameter x | | Capture.cs:273:34:273:47 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:278:17:278:30 | "taint source" : String | semmle.label | "taint source" : String | -| Capture.cs:280:16:280:21 | access to local variable middle : (...) => ... [captured x] : String | semmle.label | access to local variable middle : (...) => ... [captured x] : String | -| Capture.cs:280:25:288:9 | (...) => ... : (...) => ... [captured x] : String | semmle.label | (...) => ... : (...) => ... [captured x] : String | -| Capture.cs:282:20:282:24 | access to local variable inner : (...) => ... [captured x] : String | semmle.label | access to local variable inner : (...) => ... [captured x] : String | -| Capture.cs:282:28:286:13 | (...) => ... : (...) => ... [captured x] : String | semmle.label | (...) => ... : (...) => ... [captured x] : String | | Capture.cs:284:23:284:23 | access to local variable x | semmle.label | access to local variable x | | Capture.cs:285:21:285:34 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:287:13:287:17 | [post] access to local variable inner : (...) => ... [captured x] : String | semmle.label | [post] access to local variable inner : (...) => ... [captured x] : String | -| Capture.cs:287:13:287:17 | access to local variable inner : (...) => ... [captured x] : String | semmle.label | access to local variable inner : (...) => ... [captured x] : String | | Capture.cs:287:13:287:17 | access to local variable inner : Action [captured x] : String | semmle.label | access to local variable inner : Action [captured x] : String | | Capture.cs:290:9:290:14 | [post] access to local variable middle : (...) => ... [captured x] : String | semmle.label | [post] access to local variable middle : (...) => ... [captured x] : String | -| Capture.cs:290:9:290:14 | access to local variable middle : (...) => ... [captured x] : String | semmle.label | access to local variable middle : (...) => ... [captured x] : String | | Capture.cs:290:9:290:14 | access to local variable middle : Action [captured x] : String | semmle.label | access to local variable middle : Action [captured x] : String | | Capture.cs:292:15:292:15 | access to local variable x | semmle.label | access to local variable x | | Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | semmle.label | [post] this access : Capture [field Field] : String | | Capture.cs:297:22:297:35 | "taint source" : String | semmle.label | "taint source" : String | -| Capture.cs:299:16:299:16 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | semmle.label | access to local variable a : (...) => ... [captured this in M10, field Field] : String | -| Capture.cs:299:20:303:9 | (...) => ... : (...) => ... [captured this in M10, field Field] : String | semmle.label | (...) => ... : (...) => ... [captured this in M10, field Field] : String | | Capture.cs:301:19:301:22 | this access : Capture [field Field] : String | semmle.label | this access : Capture [field Field] : String | | Capture.cs:301:19:301:28 | access to field Field | semmle.label | access to field Field | | Capture.cs:302:13:302:16 | [post] this access : Capture [field Field] : String | semmle.label | [post] this access : Capture [field Field] : String | | Capture.cs:302:26:302:39 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:304:9:304:9 | [post] access to local variable a : (...) => ... [captured this in M10, field Field] : String | semmle.label | [post] access to local variable a : (...) => ... [captured this in M10, field Field] : String | -| Capture.cs:304:9:304:9 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | semmle.label | access to local variable a : (...) => ... [captured this in M10, field Field] : String | | Capture.cs:304:9:304:9 | access to local variable a : Action [captured this in M10, field Field] : String | semmle.label | access to local variable a : Action [captured this in M10, field Field] : String | | Capture.cs:306:15:306:18 | this access : Capture [field Field] : String | semmle.label | this access : Capture [field Field] : String | | Capture.cs:306:15:306:24 | access to field Field | semmle.label | access to field Field | @@ -663,19 +583,13 @@ nodes | Capture.cs:318:17:318:30 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:319:19:319:19 | access to local variable x | semmle.label | access to local variable x | | Capture.cs:328:17:328:30 | "taint source" : String | semmle.label | "taint source" : String | -| Capture.cs:330:9:330:49 | CapturedLocalFunction(...) : CapturedLocalFunction [captured x] : String | semmle.label | CapturedLocalFunction(...) : CapturedLocalFunction [captured x] : String | | Capture.cs:330:47:330:47 | access to local variable x | semmle.label | access to local variable x | -| Capture.cs:332:9:332:65 | CapturingLocalFunction(...) : CapturingLocalFunction [captured x] : String | semmle.label | CapturingLocalFunction(...) : CapturingLocalFunction [captured x] : String | -| Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | semmle.label | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | | Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | semmle.label | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | | Capture.cs:334:9:334:30 | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | semmle.label | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | | Capture.cs:339:17:339:30 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:341:33:341:46 | (...) => ... : (...) => ... [captured x] : String | semmle.label | (...) => ... : (...) => ... [captured x] : String | | Capture.cs:341:45:341:45 | access to local variable x | semmle.label | access to local variable x | -| Capture.cs:343:16:343:30 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | semmle.label | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | -| Capture.cs:343:34:343:55 | (...) => ... : (...) => ... [captured capturedLambda, captured x] : String | semmle.label | (...) => ... : (...) => ... [captured capturedLambda, captured x] : String | | Capture.cs:343:40:343:53 | access to local variable capturedLambda : (...) => ... [captured x] : String | semmle.label | access to local variable capturedLambda : (...) => ... [captured x] : String | -| Capture.cs:345:9:345:23 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | semmle.label | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | | Capture.cs:345:9:345:23 | access to local variable capturingLambda : Action [captured capturedLambda, captured x] : String | semmle.label | access to local variable capturingLambda : Action [captured capturedLambda, captured x] : String | | Capture.cs:350:34:350:34 | a : (...) => ... [captured s] : String | semmle.label | a : (...) => ... [captured s] : String | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | semmle.label | a : (...) => ... [captured sink39] : String | diff --git a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected index 2bd30574649..a5ceb692695 100644 --- a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected @@ -1,27 +1,17 @@ edges -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:9:9:13:9 | CaptureIn1(...) : CaptureIn1 [captured tainted] : String | provenance | | | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:14:9:14:18 | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | provenance | | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:16:9:24:9 | CaptureIn2(...) : CaptureIn2 [captured tainted] : String | provenance | | | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | provenance | | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:27:43:32:9 | (...) => ... : (...) => ... [captured tainted] : String | provenance | | | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | provenance | | | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:61:36:61:42 | access to parameter tainted : String | provenance | | -| Capture.cs:9:9:13:9 | CaptureIn1(...) : CaptureIn1 [captured tainted] : String | Capture.cs:14:9:14:18 | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | provenance | | | Capture.cs:11:17:11:22 | access to local variable sink27 : String | Capture.cs:12:19:12:24 | access to local variable sink27 | provenance | | | Capture.cs:11:26:11:32 | access to parameter tainted : String | Capture.cs:11:17:11:22 | access to local variable sink27 : String | provenance | | | Capture.cs:14:9:14:18 | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | Capture.cs:11:26:11:32 | access to parameter tainted : String | provenance | | -| Capture.cs:16:9:24:9 | CaptureIn2(...) : CaptureIn2 [captured tainted] : String | Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | provenance | | -| Capture.cs:18:13:22:13 | M(...) : M [captured tainted] : String | Capture.cs:23:13:23:13 | access to local function M : M [captured tainted] : String | provenance | | | Capture.cs:20:21:20:26 | access to local variable sink28 : String | Capture.cs:21:23:21:28 | access to local variable sink28 | provenance | | | Capture.cs:20:30:20:36 | access to parameter tainted : String | Capture.cs:20:21:20:26 | access to local variable sink28 : String | provenance | | | Capture.cs:23:13:23:13 | access to local function M : M [captured tainted] : String | Capture.cs:20:30:20:36 | access to parameter tainted : String | provenance | | -| Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | Capture.cs:18:13:22:13 | M(...) : M [captured tainted] : String | provenance | | | Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | Capture.cs:23:13:23:13 | access to local function M : M [captured tainted] : String | provenance | | -| Capture.cs:27:30:27:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | Capture.cs:33:30:33:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | provenance | | -| Capture.cs:27:43:32:9 | (...) => ... : (...) => ... [captured tainted] : String | Capture.cs:27:30:27:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | provenance | | | Capture.cs:29:17:29:22 | access to local variable sink29 : String | Capture.cs:30:19:30:24 | access to local variable sink29 | provenance | | | Capture.cs:29:26:29:32 | access to parameter tainted : String | Capture.cs:29:17:29:22 | access to local variable sink29 : String | provenance | | -| Capture.cs:33:30:33:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | | | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | | | Capture.cs:50:50:50:55 | sink39 : String | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | provenance | | @@ -37,28 +27,18 @@ edges | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | provenance | | | Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | provenance | | | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | Capture.cs:124:15:124:20 | access to local variable sink40 | provenance | | -| Capture.cs:127:25:127:31 | tainted : String | Capture.cs:130:9:133:9 | CaptureThrough1(...) : CaptureThrough1 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | provenance | | -| Capture.cs:127:25:127:31 | tainted : String | Capture.cs:138:9:145:9 | CaptureThrough2(...) : CaptureThrough2 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | provenance | | -| Capture.cs:127:25:127:31 | tainted : String | Capture.cs:150:48:154:9 | (...) => ... : (...) => ... [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | provenance | | -| Capture.cs:127:25:127:31 | tainted : String | Capture.cs:158:9:161:9 | CaptureThrough4(...) : CaptureThrough4 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:170:25:170:31 | access to parameter tainted : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:196:25:196:31 | access to parameter tainted : String | provenance | | -| Capture.cs:130:9:133:9 | CaptureThrough1(...) : CaptureThrough1 [captured tainted] : String | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | provenance | | | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | Capture.cs:135:15:135:20 | access to local variable sink33 | provenance | | | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | provenance | | -| Capture.cs:138:9:145:9 | CaptureThrough2(...) : CaptureThrough2 [captured tainted] : String | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | provenance | | | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | Capture.cs:147:15:147:20 | access to local variable sink34 | provenance | | | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | provenance | | -| Capture.cs:150:30:150:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | provenance | | -| Capture.cs:150:48:154:9 | (...) => ... : (...) => ... [captured tainted] : String | Capture.cs:150:30:150:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | provenance | | | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | Capture.cs:156:15:156:20 | access to local variable sink35 | provenance | | -| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | | -| Capture.cs:158:9:161:9 | CaptureThrough4(...) : CaptureThrough4 [captured tainted] : String | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | provenance | | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | Capture.cs:163:15:163:20 | access to local variable sink36 | provenance | | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | provenance | | | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | Capture.cs:162:13:162:18 | access to local variable sink36 : String | provenance | | @@ -66,19 +46,13 @@ edges | Capture.cs:170:9:170:23 | [post] access to local function CaptureThrough5 : CaptureThrough5 [captured sink37] : String | Capture.cs:171:15:171:20 | access to local variable sink37 | provenance | | | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:166:37:166:37 | p : String | provenance | | | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:170:9:170:23 | [post] access to local function CaptureThrough5 : CaptureThrough5 [captured sink37] : String | provenance | | -| Capture.cs:190:26:190:26 | s : String | Capture.cs:192:13:192:28 | M(...) : M [captured s] : String | provenance | | | Capture.cs:190:26:190:26 | s : String | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | provenance | | -| Capture.cs:192:13:192:28 | M(...) : M [captured s] : String | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | provenance | | | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | Capture.cs:193:20:193:22 | call to local function M : String | provenance | | | Capture.cs:196:13:196:18 | access to local variable sink38 : String | Capture.cs:197:15:197:20 | access to local variable sink38 | provenance | | | Capture.cs:196:22:196:32 | call to local function Id : String | Capture.cs:196:13:196:18 | access to local variable sink38 : String | provenance | | | Capture.cs:196:25:196:31 | access to parameter tainted : String | Capture.cs:190:26:190:26 | s : String | provenance | | | Capture.cs:196:25:196:31 | access to parameter tainted : String | Capture.cs:196:22:196:32 | call to local function Id : String | provenance | | -| Capture.cs:202:20:202:20 | s : String | Capture.cs:204:20:207:9 | (...) => ... : (...) => ... [captured s] : String | provenance | | | Capture.cs:202:20:202:20 | s : String | Capture.cs:208:9:208:9 | access to local variable a : Action [captured s] : String | provenance | | -| Capture.cs:204:16:204:16 | access to local variable a : (...) => ... [captured s] : String | Capture.cs:208:9:208:9 | access to local variable a : (...) => ... [captured s] : String | provenance | | -| Capture.cs:204:20:207:9 | (...) => ... : (...) => ... [captured s] : String | Capture.cs:204:16:204:16 | access to local variable a : (...) => ... [captured s] : String | provenance | | -| Capture.cs:208:9:208:9 | access to local variable a : (...) => ... [captured s] : String | Capture.cs:206:19:206:19 | access to parameter s | provenance | | | Capture.cs:208:9:208:9 | access to local variable a : Action [captured s] : String | Capture.cs:206:19:206:19 | access to parameter s | provenance | | | Capture.cs:211:21:211:34 | "taint source" : String | Capture.cs:202:20:202:20 | s : String | provenance | | | Capture.cs:213:22:213:22 | s : String | Capture.cs:215:16:218:9 | (...) => ... : (...) => ... [captured s] : String | provenance | | @@ -93,17 +67,13 @@ edges | Capture.cs:229:20:233:9 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:231:19:231:19 | access to local variable x | provenance | | | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | Capture.cs:234:15:234:15 | access to local variable x | provenance | | | Capture.cs:232:17:232:30 | "taint source" : String | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | provenance | | -| Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:244:20:248:9 | (...) => ... : (...) => ... [captured c, field Field] : String | provenance | | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:249:9:249:9 | access to local variable a : Action [captured c, field Field] : String | provenance | | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:242:19:242:32 | "taint source" : String | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | provenance | | -| Capture.cs:244:16:244:16 | access to local variable a : (...) => ... [captured c, field Field] : String | Capture.cs:249:9:249:9 | access to local variable a : (...) => ... [captured c, field Field] : String | provenance | | -| Capture.cs:244:20:248:9 | (...) => ... : (...) => ... [captured c, field Field] : String | Capture.cs:244:16:244:16 | access to local variable a : (...) => ... [captured c, field Field] : String | provenance | | | Capture.cs:246:19:246:19 | access to local variable c : Capture [field Field] : String | Capture.cs:246:19:246:25 | access to field Field | provenance | | | Capture.cs:247:13:247:13 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:249:9:249:9 | [post] access to local variable a : (...) => ... [captured c, field Field] : String | provenance | | | Capture.cs:247:23:247:36 | "taint source" : String | Capture.cs:247:13:247:13 | [post] access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:249:9:249:9 | [post] access to local variable a : (...) => ... [captured c, field Field] : String | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | provenance | | -| Capture.cs:249:9:249:9 | access to local variable a : (...) => ... [captured c, field Field] : String | Capture.cs:246:19:246:19 | access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:249:9:249:9 | access to local variable a : Action [captured c, field Field] : String | Capture.cs:246:19:246:19 | access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | Capture.cs:251:15:251:21 | access to field Field | provenance | | | Capture.cs:264:13:264:13 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:266:9:266:9 | [post] access to local variable a : (...) => ... [captured c, field Field] : String | provenance | | @@ -112,52 +82,30 @@ edges | Capture.cs:268:15:268:15 | access to local variable c : Capture [field Field] : String | Capture.cs:268:15:268:21 | access to field Field | provenance | | | Capture.cs:273:19:273:19 | x : String | Capture.cs:273:30:273:30 | access to parameter x | provenance | | | Capture.cs:273:34:273:47 | "taint source" : String | Capture.cs:355:45:355:45 | x : String | provenance | | -| Capture.cs:278:17:278:30 | "taint source" : String | Capture.cs:280:25:288:9 | (...) => ... : (...) => ... [captured x] : String | provenance | | | Capture.cs:278:17:278:30 | "taint source" : String | Capture.cs:290:9:290:14 | access to local variable middle : Action [captured x] : String | provenance | | | Capture.cs:278:17:278:30 | "taint source" : String | Capture.cs:292:15:292:15 | access to local variable x | provenance | | -| Capture.cs:280:16:280:21 | access to local variable middle : (...) => ... [captured x] : String | Capture.cs:290:9:290:14 | access to local variable middle : (...) => ... [captured x] : String | provenance | | -| Capture.cs:280:25:288:9 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:280:16:280:21 | access to local variable middle : (...) => ... [captured x] : String | provenance | | -| Capture.cs:282:20:282:24 | access to local variable inner : (...) => ... [captured x] : String | Capture.cs:287:13:287:17 | access to local variable inner : (...) => ... [captured x] : String | provenance | | -| Capture.cs:282:28:286:13 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:282:20:282:24 | access to local variable inner : (...) => ... [captured x] : String | provenance | | | Capture.cs:285:21:285:34 | "taint source" : String | Capture.cs:287:13:287:17 | [post] access to local variable inner : (...) => ... [captured x] : String | provenance | | | Capture.cs:287:13:287:17 | [post] access to local variable inner : (...) => ... [captured x] : String | Capture.cs:290:9:290:14 | [post] access to local variable middle : (...) => ... [captured x] : String | provenance | | -| Capture.cs:287:13:287:17 | access to local variable inner : (...) => ... [captured x] : String | Capture.cs:284:23:284:23 | access to local variable x | provenance | | | Capture.cs:287:13:287:17 | access to local variable inner : Action [captured x] : String | Capture.cs:284:23:284:23 | access to local variable x | provenance | | | Capture.cs:290:9:290:14 | [post] access to local variable middle : (...) => ... [captured x] : String | Capture.cs:292:15:292:15 | access to local variable x | provenance | | -| Capture.cs:290:9:290:14 | access to local variable middle : (...) => ... [captured x] : String | Capture.cs:282:28:286:13 | (...) => ... : (...) => ... [captured x] : String | provenance | | -| Capture.cs:290:9:290:14 | access to local variable middle : (...) => ... [captured x] : String | Capture.cs:287:13:287:17 | access to local variable inner : Action [captured x] : String | provenance | | -| Capture.cs:290:9:290:14 | access to local variable middle : Action [captured x] : String | Capture.cs:282:28:286:13 | (...) => ... : (...) => ... [captured x] : String | provenance | | | Capture.cs:290:9:290:14 | access to local variable middle : Action [captured x] : String | Capture.cs:287:13:287:17 | access to local variable inner : Action [captured x] : String | provenance | | -| Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | Capture.cs:299:20:303:9 | (...) => ... : (...) => ... [captured this in M10, field Field] : String | provenance | | | Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | Capture.cs:304:9:304:9 | access to local variable a : Action [captured this in M10, field Field] : String | provenance | | | Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | Capture.cs:306:15:306:18 | this access : Capture [field Field] : String | provenance | | | Capture.cs:297:22:297:35 | "taint source" : String | Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | provenance | | -| Capture.cs:299:16:299:16 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | Capture.cs:304:9:304:9 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | provenance | | -| Capture.cs:299:20:303:9 | (...) => ... : (...) => ... [captured this in M10, field Field] : String | Capture.cs:299:16:299:16 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | provenance | | | Capture.cs:301:19:301:22 | this access : Capture [field Field] : String | Capture.cs:301:19:301:28 | access to field Field | provenance | | | Capture.cs:302:13:302:16 | [post] this access : Capture [field Field] : String | Capture.cs:304:9:304:9 | [post] access to local variable a : (...) => ... [captured this in M10, field Field] : String | provenance | | | Capture.cs:302:26:302:39 | "taint source" : String | Capture.cs:302:13:302:16 | [post] this access : Capture [field Field] : String | provenance | | | Capture.cs:304:9:304:9 | [post] access to local variable a : (...) => ... [captured this in M10, field Field] : String | Capture.cs:306:15:306:18 | this access : Capture [field Field] : String | provenance | | -| Capture.cs:304:9:304:9 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | Capture.cs:301:19:301:22 | this access : Capture [field Field] : String | provenance | | | Capture.cs:304:9:304:9 | access to local variable a : Action [captured this in M10, field Field] : String | Capture.cs:301:19:301:22 | this access : Capture [field Field] : String | provenance | | | Capture.cs:306:15:306:18 | this access : Capture [field Field] : String | Capture.cs:306:15:306:24 | access to field Field | provenance | | | Capture.cs:311:17:311:30 | "taint source" : String | Capture.cs:312:15:312:15 | access to local variable x | provenance | | | Capture.cs:318:17:318:30 | "taint source" : String | Capture.cs:319:19:319:19 | access to local variable x | provenance | | -| Capture.cs:328:17:328:30 | "taint source" : String | Capture.cs:330:9:330:49 | CapturedLocalFunction(...) : CapturedLocalFunction [captured x] : String | provenance | | -| Capture.cs:328:17:328:30 | "taint source" : String | Capture.cs:332:9:332:65 | CapturingLocalFunction(...) : CapturingLocalFunction [captured x] : String | provenance | | | Capture.cs:328:17:328:30 | "taint source" : String | Capture.cs:334:9:334:30 | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | provenance | | -| Capture.cs:330:9:330:49 | CapturedLocalFunction(...) : CapturedLocalFunction [captured x] : String | Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | provenance | | -| Capture.cs:332:9:332:65 | CapturingLocalFunction(...) : CapturingLocalFunction [captured x] : String | Capture.cs:334:9:334:30 | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | provenance | | -| Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | Capture.cs:330:47:330:47 | access to local variable x | provenance | | | Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | Capture.cs:330:47:330:47 | access to local variable x | provenance | | | Capture.cs:334:9:334:30 | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | provenance | | | Capture.cs:339:17:339:30 | "taint source" : String | Capture.cs:341:33:341:46 | (...) => ... : (...) => ... [captured x] : String | provenance | | -| Capture.cs:341:33:341:46 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:343:34:343:55 | (...) => ... : (...) => ... [captured capturedLambda, captured x] : String | provenance | | | Capture.cs:341:33:341:46 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:345:9:345:23 | access to local variable capturingLambda : Action [captured capturedLambda, captured x] : String | provenance | | -| Capture.cs:343:16:343:30 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | Capture.cs:345:9:345:23 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | provenance | | -| Capture.cs:343:34:343:55 | (...) => ... : (...) => ... [captured capturedLambda, captured x] : String | Capture.cs:343:16:343:30 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | provenance | | | Capture.cs:343:40:343:53 | access to local variable capturedLambda : (...) => ... [captured x] : String | Capture.cs:341:45:341:45 | access to local variable x | provenance | | -| Capture.cs:345:9:345:23 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | Capture.cs:343:40:343:53 | access to local variable capturedLambda : (...) => ... [captured x] : String | provenance | | | Capture.cs:345:9:345:23 | access to local variable capturingLambda : Action [captured capturedLambda, captured x] : String | Capture.cs:343:40:343:53 | access to local variable capturedLambda : (...) => ... [captured x] : String | provenance | | | Capture.cs:350:34:350:34 | a : (...) => ... [captured s] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured s] : String | provenance | | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | provenance | | @@ -569,24 +517,18 @@ edges | Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:48:13:48:13 | access to local variable s : String | provenance | | nodes | Capture.cs:7:20:7:26 | tainted : String | semmle.label | tainted : String | -| Capture.cs:9:9:13:9 | CaptureIn1(...) : CaptureIn1 [captured tainted] : String | semmle.label | CaptureIn1(...) : CaptureIn1 [captured tainted] : String | | Capture.cs:11:17:11:22 | access to local variable sink27 : String | semmle.label | access to local variable sink27 : String | | Capture.cs:11:26:11:32 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:12:19:12:24 | access to local variable sink27 | semmle.label | access to local variable sink27 | | Capture.cs:14:9:14:18 | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | semmle.label | access to local function CaptureIn1 : CaptureIn1 [captured tainted] : String | -| Capture.cs:16:9:24:9 | CaptureIn2(...) : CaptureIn2 [captured tainted] : String | semmle.label | CaptureIn2(...) : CaptureIn2 [captured tainted] : String | -| Capture.cs:18:13:22:13 | M(...) : M [captured tainted] : String | semmle.label | M(...) : M [captured tainted] : String | | Capture.cs:20:21:20:26 | access to local variable sink28 : String | semmle.label | access to local variable sink28 : String | | Capture.cs:20:30:20:36 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:21:23:21:28 | access to local variable sink28 | semmle.label | access to local variable sink28 | | Capture.cs:23:13:23:13 | access to local function M : M [captured tainted] : String | semmle.label | access to local function M : M [captured tainted] : String | | Capture.cs:25:9:25:18 | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | semmle.label | access to local function CaptureIn2 : CaptureIn2 [captured tainted] : String | -| Capture.cs:27:30:27:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | semmle.label | access to local variable captureIn3 : (...) => ... [captured tainted] : String | -| Capture.cs:27:43:32:9 | (...) => ... : (...) => ... [captured tainted] : String | semmle.label | (...) => ... : (...) => ... [captured tainted] : String | | Capture.cs:29:17:29:22 | access to local variable sink29 : String | semmle.label | access to local variable sink29 : String | | Capture.cs:29:26:29:32 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:30:19:30:24 | access to local variable sink29 | semmle.label | access to local variable sink29 | -| Capture.cs:33:30:33:39 | access to local variable captureIn3 : (...) => ... [captured tainted] : String | semmle.label | access to local variable captureIn3 : (...) => ... [captured tainted] : String | | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | semmle.label | access to local variable captureIn3 : Func [captured tainted] : String | | Capture.cs:50:50:50:55 | sink39 : String | semmle.label | sink39 : String | | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | semmle.label | (...) => ... : (...) => ... [captured sink39] : String | @@ -608,21 +550,15 @@ nodes | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | semmle.label | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | | Capture.cs:124:15:124:20 | access to local variable sink40 | semmle.label | access to local variable sink40 | | Capture.cs:127:25:127:31 | tainted : String | semmle.label | tainted : String | -| Capture.cs:130:9:133:9 | CaptureThrough1(...) : CaptureThrough1 [captured tainted] : String | semmle.label | CaptureThrough1(...) : CaptureThrough1 [captured tainted] : String | | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | semmle.label | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | semmle.label | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | | Capture.cs:135:15:135:20 | access to local variable sink33 | semmle.label | access to local variable sink33 | -| Capture.cs:138:9:145:9 | CaptureThrough2(...) : CaptureThrough2 [captured tainted] : String | semmle.label | CaptureThrough2(...) : CaptureThrough2 [captured tainted] : String | | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | semmle.label | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | semmle.label | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | | Capture.cs:147:15:147:20 | access to local variable sink34 | semmle.label | access to local variable sink34 | -| Capture.cs:150:30:150:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | semmle.label | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | -| Capture.cs:150:48:154:9 | (...) => ... : (...) => ... [captured tainted] : String | semmle.label | (...) => ... : (...) => ... [captured tainted] : String | | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | semmle.label | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | -| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | semmle.label | access to local variable captureThrough3 : (...) => ... [captured tainted] : String | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | semmle.label | access to local variable captureThrough3 : Func [captured tainted] : String | | Capture.cs:156:15:156:20 | access to local variable sink35 | semmle.label | access to local variable sink35 | -| Capture.cs:158:9:161:9 | CaptureThrough4(...) : CaptureThrough4 [captured tainted] : String | semmle.label | CaptureThrough4(...) : CaptureThrough4 [captured tainted] : String | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | semmle.label | access to local variable sink36 : String | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | semmle.label | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | semmle.label | call to local function CaptureThrough4 : String | @@ -633,7 +569,6 @@ nodes | Capture.cs:170:25:170:31 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:171:15:171:20 | access to local variable sink37 | semmle.label | access to local variable sink37 | | Capture.cs:190:26:190:26 | s : String | semmle.label | s : String | -| Capture.cs:192:13:192:28 | M(...) : M [captured s] : String | semmle.label | M(...) : M [captured s] : String | | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | semmle.label | access to local function M : M [captured s] : String | | Capture.cs:193:20:193:22 | call to local function M : String | semmle.label | call to local function M : String | | Capture.cs:196:13:196:18 | access to local variable sink38 : String | semmle.label | access to local variable sink38 : String | @@ -641,10 +576,7 @@ nodes | Capture.cs:196:25:196:31 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:197:15:197:20 | access to local variable sink38 | semmle.label | access to local variable sink38 | | Capture.cs:202:20:202:20 | s : String | semmle.label | s : String | -| Capture.cs:204:16:204:16 | access to local variable a : (...) => ... [captured s] : String | semmle.label | access to local variable a : (...) => ... [captured s] : String | -| Capture.cs:204:20:207:9 | (...) => ... : (...) => ... [captured s] : String | semmle.label | (...) => ... : (...) => ... [captured s] : String | | Capture.cs:206:19:206:19 | access to parameter s | semmle.label | access to parameter s | -| Capture.cs:208:9:208:9 | access to local variable a : (...) => ... [captured s] : String | semmle.label | access to local variable a : (...) => ... [captured s] : String | | Capture.cs:208:9:208:9 | access to local variable a : Action [captured s] : String | semmle.label | access to local variable a : Action [captured s] : String | | Capture.cs:211:21:211:34 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:213:22:213:22 | s : String | semmle.label | s : String | @@ -662,14 +594,11 @@ nodes | Capture.cs:234:15:234:15 | access to local variable x | semmle.label | access to local variable x | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | semmle.label | [post] access to local variable c : Capture [field Field] : String | | Capture.cs:242:19:242:32 | "taint source" : String | semmle.label | "taint source" : String | -| Capture.cs:244:16:244:16 | access to local variable a : (...) => ... [captured c, field Field] : String | semmle.label | access to local variable a : (...) => ... [captured c, field Field] : String | -| Capture.cs:244:20:248:9 | (...) => ... : (...) => ... [captured c, field Field] : String | semmle.label | (...) => ... : (...) => ... [captured c, field Field] : String | | Capture.cs:246:19:246:19 | access to local variable c : Capture [field Field] : String | semmle.label | access to local variable c : Capture [field Field] : String | | Capture.cs:246:19:246:25 | access to field Field | semmle.label | access to field Field | | Capture.cs:247:13:247:13 | [post] access to local variable c : Capture [field Field] : String | semmle.label | [post] access to local variable c : Capture [field Field] : String | | Capture.cs:247:23:247:36 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:249:9:249:9 | [post] access to local variable a : (...) => ... [captured c, field Field] : String | semmle.label | [post] access to local variable a : (...) => ... [captured c, field Field] : String | -| Capture.cs:249:9:249:9 | access to local variable a : (...) => ... [captured c, field Field] : String | semmle.label | access to local variable a : (...) => ... [captured c, field Field] : String | | Capture.cs:249:9:249:9 | access to local variable a : Action [captured c, field Field] : String | semmle.label | access to local variable a : Action [captured c, field Field] : String | | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | semmle.label | access to local variable c : Capture [field Field] : String | | Capture.cs:251:15:251:21 | access to field Field | semmle.label | access to field Field | @@ -682,29 +611,20 @@ nodes | Capture.cs:273:30:273:30 | access to parameter x | semmle.label | access to parameter x | | Capture.cs:273:34:273:47 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:278:17:278:30 | "taint source" : String | semmle.label | "taint source" : String | -| Capture.cs:280:16:280:21 | access to local variable middle : (...) => ... [captured x] : String | semmle.label | access to local variable middle : (...) => ... [captured x] : String | -| Capture.cs:280:25:288:9 | (...) => ... : (...) => ... [captured x] : String | semmle.label | (...) => ... : (...) => ... [captured x] : String | -| Capture.cs:282:20:282:24 | access to local variable inner : (...) => ... [captured x] : String | semmle.label | access to local variable inner : (...) => ... [captured x] : String | -| Capture.cs:282:28:286:13 | (...) => ... : (...) => ... [captured x] : String | semmle.label | (...) => ... : (...) => ... [captured x] : String | | Capture.cs:284:23:284:23 | access to local variable x | semmle.label | access to local variable x | | Capture.cs:285:21:285:34 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:287:13:287:17 | [post] access to local variable inner : (...) => ... [captured x] : String | semmle.label | [post] access to local variable inner : (...) => ... [captured x] : String | -| Capture.cs:287:13:287:17 | access to local variable inner : (...) => ... [captured x] : String | semmle.label | access to local variable inner : (...) => ... [captured x] : String | | Capture.cs:287:13:287:17 | access to local variable inner : Action [captured x] : String | semmle.label | access to local variable inner : Action [captured x] : String | | Capture.cs:290:9:290:14 | [post] access to local variable middle : (...) => ... [captured x] : String | semmle.label | [post] access to local variable middle : (...) => ... [captured x] : String | -| Capture.cs:290:9:290:14 | access to local variable middle : (...) => ... [captured x] : String | semmle.label | access to local variable middle : (...) => ... [captured x] : String | | Capture.cs:290:9:290:14 | access to local variable middle : Action [captured x] : String | semmle.label | access to local variable middle : Action [captured x] : String | | Capture.cs:292:15:292:15 | access to local variable x | semmle.label | access to local variable x | | Capture.cs:297:9:297:12 | [post] this access : Capture [field Field] : String | semmle.label | [post] this access : Capture [field Field] : String | | Capture.cs:297:22:297:35 | "taint source" : String | semmle.label | "taint source" : String | -| Capture.cs:299:16:299:16 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | semmle.label | access to local variable a : (...) => ... [captured this in M10, field Field] : String | -| Capture.cs:299:20:303:9 | (...) => ... : (...) => ... [captured this in M10, field Field] : String | semmle.label | (...) => ... : (...) => ... [captured this in M10, field Field] : String | | Capture.cs:301:19:301:22 | this access : Capture [field Field] : String | semmle.label | this access : Capture [field Field] : String | | Capture.cs:301:19:301:28 | access to field Field | semmle.label | access to field Field | | Capture.cs:302:13:302:16 | [post] this access : Capture [field Field] : String | semmle.label | [post] this access : Capture [field Field] : String | | Capture.cs:302:26:302:39 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:304:9:304:9 | [post] access to local variable a : (...) => ... [captured this in M10, field Field] : String | semmle.label | [post] access to local variable a : (...) => ... [captured this in M10, field Field] : String | -| Capture.cs:304:9:304:9 | access to local variable a : (...) => ... [captured this in M10, field Field] : String | semmle.label | access to local variable a : (...) => ... [captured this in M10, field Field] : String | | Capture.cs:304:9:304:9 | access to local variable a : Action [captured this in M10, field Field] : String | semmle.label | access to local variable a : Action [captured this in M10, field Field] : String | | Capture.cs:306:15:306:18 | this access : Capture [field Field] : String | semmle.label | this access : Capture [field Field] : String | | Capture.cs:306:15:306:24 | access to field Field | semmle.label | access to field Field | @@ -713,19 +633,13 @@ nodes | Capture.cs:318:17:318:30 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:319:19:319:19 | access to local variable x | semmle.label | access to local variable x | | Capture.cs:328:17:328:30 | "taint source" : String | semmle.label | "taint source" : String | -| Capture.cs:330:9:330:49 | CapturedLocalFunction(...) : CapturedLocalFunction [captured x] : String | semmle.label | CapturedLocalFunction(...) : CapturedLocalFunction [captured x] : String | | Capture.cs:330:47:330:47 | access to local variable x | semmle.label | access to local variable x | -| Capture.cs:332:9:332:65 | CapturingLocalFunction(...) : CapturingLocalFunction [captured x] : String | semmle.label | CapturingLocalFunction(...) : CapturingLocalFunction [captured x] : String | -| Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | semmle.label | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | | Capture.cs:332:42:332:62 | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | semmle.label | access to local function CapturedLocalFunction : CapturedLocalFunction [captured x] : String | | Capture.cs:334:9:334:30 | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | semmle.label | access to local function CapturingLocalFunction : CapturingLocalFunction [captured x] : String | | Capture.cs:339:17:339:30 | "taint source" : String | semmle.label | "taint source" : String | | Capture.cs:341:33:341:46 | (...) => ... : (...) => ... [captured x] : String | semmle.label | (...) => ... : (...) => ... [captured x] : String | | Capture.cs:341:45:341:45 | access to local variable x | semmle.label | access to local variable x | -| Capture.cs:343:16:343:30 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | semmle.label | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | -| Capture.cs:343:34:343:55 | (...) => ... : (...) => ... [captured capturedLambda, captured x] : String | semmle.label | (...) => ... : (...) => ... [captured capturedLambda, captured x] : String | | Capture.cs:343:40:343:53 | access to local variable capturedLambda : (...) => ... [captured x] : String | semmle.label | access to local variable capturedLambda : (...) => ... [captured x] : String | -| Capture.cs:345:9:345:23 | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | semmle.label | access to local variable capturingLambda : (...) => ... [captured capturedLambda, captured x] : String | | Capture.cs:345:9:345:23 | access to local variable capturingLambda : Action [captured capturedLambda, captured x] : String | semmle.label | access to local variable capturingLambda : Action [captured capturedLambda, captured x] : String | | Capture.cs:350:34:350:34 | a : (...) => ... [captured s] : String | semmle.label | a : (...) => ... [captured s] : String | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | semmle.label | a : (...) => ... [captured sink39] : String | diff --git a/python/ql/test/experimental/dataflow/variable-capture/by_value.py b/python/ql/test/experimental/dataflow/variable-capture/by_value.py index fa7546b8f2b..01b2ed83a46 100644 --- a/python/ql/test/experimental/dataflow/variable-capture/by_value.py +++ b/python/ql/test/experimental/dataflow/variable-capture/by_value.py @@ -34,7 +34,7 @@ def by_value1(): a = SOURCE def inner(a_val=a): SINK(a_val) #$ captured - SINK_F(a) #$ SPURIOUS: captured + SINK_F(a) a = NONSOURCE inner() diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.expected b/ruby/ql/test/library-tests/dataflow/global/Flow.expected index 9e01d45a07c..94589e1aafb 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.expected +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.expected @@ -1,11 +1,7 @@ testFailures -| captured_variables.rb:236:14:236:14 | x | Unexpected result: hasValueFlow=19 | edges | blocks.rb:14:12:14:20 | call to source | blocks.rb:8:10:8:14 | yield ... | provenance | | -| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | provenance | | | captured_variables.rb:9:24:9:24 | x | captured_variables.rb:11:5:11:6 | fn [captured x] | provenance | | -| captured_variables.rb:10:5:10:6 | fn [captured x] | captured_variables.rb:11:5:11:6 | fn [captured x] | provenance | | -| captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | captured_variables.rb:10:5:10:6 | fn [captured x] | provenance | | | captured_variables.rb:11:5:11:6 | fn [captured x] | captured_variables.rb:10:20:10:20 | x | provenance | | | captured_variables.rb:13:20:13:29 | call to taint | captured_variables.rb:9:24:9:24 | x | provenance | | | captured_variables.rb:15:28:15:28 | x | captured_variables.rb:16:5:18:5 | -> { ... } [captured x] | provenance | | @@ -17,18 +13,12 @@ edges | captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | captured_variables.rb:24:14:24:14 | x | provenance | | | captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:22:28:22:28 | x | provenance | | | captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | provenance | | -| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | provenance | | | captured_variables.rb:29:33:29:33 | x | captured_variables.rb:33:29:33:30 | fn [captured x] | provenance | | -| captured_variables.rb:30:5:30:6 | fn [captured x] | captured_variables.rb:33:29:33:30 | fn [captured x] | provenance | | -| captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | captured_variables.rb:30:5:30:6 | fn [captured x] | provenance | | | captured_variables.rb:33:29:33:30 | fn [captured x] | captured_variables.rb:31:14:31:14 | x | provenance | | | captured_variables.rb:35:29:35:38 | call to taint | captured_variables.rb:29:33:29:33 | x | provenance | | | captured_variables.rb:37:13:37:14 | fn [captured x] | captured_variables.rb:38:5:38:6 | fn [captured x] | provenance | | | captured_variables.rb:38:5:38:6 | fn [captured x] | captured_variables.rb:42:14:42:14 | x | provenance | | -| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | provenance | | | captured_variables.rb:40:31:40:31 | x | captured_variables.rb:44:13:44:14 | fn [captured x] | provenance | | -| captured_variables.rb:41:5:41:6 | fn [captured x] | captured_variables.rb:44:13:44:14 | fn [captured x] | provenance | | -| captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | captured_variables.rb:41:5:41:6 | fn [captured x] | provenance | | | captured_variables.rb:44:13:44:14 | fn [captured x] | captured_variables.rb:37:13:37:14 | fn [captured x] | provenance | | | captured_variables.rb:46:27:46:36 | call to taint | captured_variables.rb:40:31:40:31 | x | provenance | | | captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:49:16:52:3 | do ... end [captured x] | provenance | | @@ -66,11 +56,8 @@ edges | captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | | captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:83:6:83:18 | call to get_field | provenance | | | captured_variables.rb:83:6:83:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | -| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | provenance | | | captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:90:1:90:2 | fn [captured y] | provenance | | | captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:91:6:91:6 | y | provenance | | -| captured_variables.rb:86:1:86:2 | fn [captured y] | captured_variables.rb:90:1:90:2 | fn [captured y] | provenance | | -| captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | captured_variables.rb:86:1:86:2 | fn [captured y] | provenance | | | captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:90:1:90:2 | [post] fn [captured y] | provenance | | | captured_variables.rb:90:1:90:2 | [post] fn [captured y] | captured_variables.rb:91:6:91:6 | y | provenance | | | captured_variables.rb:90:1:90:2 | fn [captured y] | captured_variables.rb:87:10:87:10 | y | provenance | | @@ -82,18 +69,12 @@ edges | captured_variables.rb:101:11:101:11 | x | captured_variables.rb:104:31:104:31 | x | provenance | | | captured_variables.rb:104:17:104:24 | call to taint | captured_variables.rb:100:21:100:21 | x | provenance | | | captured_variables.rb:104:31:104:31 | x | captured_variables.rb:105:10:105:10 | x | provenance | | -| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | provenance | | | captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:117:5:117:10 | middle [captured x] | provenance | | | captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:118:10:118:10 | x | provenance | | -| captured_variables.rb:110:5:110:10 | middle [captured x] | captured_variables.rb:117:5:117:10 | middle [captured x] | provenance | | -| captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | captured_variables.rb:110:5:110:10 | middle [captured x] | provenance | | -| captured_variables.rb:111:9:111:13 | inner [captured x] | captured_variables.rb:115:9:115:13 | inner [captured x] | provenance | | -| captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | captured_variables.rb:111:9:111:13 | inner [captured x] | provenance | | | captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:115:9:115:13 | [post] inner [captured x] | provenance | | | captured_variables.rb:115:9:115:13 | [post] inner [captured x] | captured_variables.rb:117:5:117:10 | [post] middle [captured x] | provenance | | | captured_variables.rb:115:9:115:13 | inner [captured x] | captured_variables.rb:112:18:112:18 | x | provenance | | | captured_variables.rb:117:5:117:10 | [post] middle [captured x] | captured_variables.rb:118:10:118:10 | x | provenance | | -| captured_variables.rb:117:5:117:10 | middle [captured x] | captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | provenance | | | captured_variables.rb:117:5:117:10 | middle [captured x] | captured_variables.rb:115:9:115:13 | inner [captured x] | provenance | | | captured_variables.rb:147:5:147:6 | [post] self [@x] | captured_variables.rb:153:14:155:7 | do ... end [captured self, @x] | provenance | | | captured_variables.rb:147:10:147:18 | call to taint | captured_variables.rb:147:5:147:6 | [post] self [@x] | provenance | | @@ -117,16 +98,9 @@ edges | captured_variables.rb:194:1:194:1 | c [@x] | captured_variables.rb:185:5:189:7 | self in baz [@x] | provenance | | | captured_variables.rb:197:9:197:17 | call to taint | captured_variables.rb:199:10:199:10 | x | provenance | | | captured_variables.rb:206:13:206:21 | call to taint | captured_variables.rb:208:14:208:14 | x | provenance | | -| captured_variables.rb:219:9:219:17 | call to taint | captured_variables.rb:222:11:224:5 | -> { ... } [captured x] | provenance | | | captured_variables.rb:219:9:219:17 | call to taint | captured_variables.rb:226:5:226:7 | fn1 [captured x] | provenance | | -| captured_variables.rb:222:5:222:7 | fn1 [captured x] | captured_variables.rb:226:5:226:7 | fn1 [captured x] | provenance | | -| captured_variables.rb:222:11:224:5 | -> { ... } [captured x] | captured_variables.rb:222:5:222:7 | fn1 [captured x] | provenance | | | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | captured_variables.rb:227:10:227:10 | y | provenance | | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | provenance | | -| captured_variables.rb:233:9:233:17 | call to taint | captured_variables.rb:235:11:237:5 | -> { ... } [captured x] | provenance | | -| captured_variables.rb:235:5:235:7 | fn1 [captured x] | captured_variables.rb:241:5:241:7 | fn1 [captured x] | provenance | | -| captured_variables.rb:235:11:237:5 | -> { ... } [captured x] | captured_variables.rb:235:5:235:7 | fn1 [captured x] | provenance | | -| captured_variables.rb:241:5:241:7 | fn1 [captured x] | captured_variables.rb:236:14:236:14 | x | provenance | | | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | provenance | | | instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | provenance | | | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] | provenance | | @@ -269,8 +243,6 @@ nodes | blocks.rb:8:10:8:14 | yield ... | semmle.label | yield ... | | blocks.rb:14:12:14:20 | call to source | semmle.label | call to source | | captured_variables.rb:9:24:9:24 | x | semmle.label | x | -| captured_variables.rb:10:5:10:6 | fn [captured x] | semmle.label | fn [captured x] | -| captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:10:20:10:20 | x | semmle.label | x | | captured_variables.rb:11:5:11:6 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:13:20:13:29 | call to taint | semmle.label | call to taint | @@ -286,16 +258,12 @@ nodes | captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | semmle.label | call to capture_escape_return2 [captured x] | | captured_variables.rb:27:48:27:57 | call to taint | semmle.label | call to taint | | captured_variables.rb:29:33:29:33 | x | semmle.label | x | -| captured_variables.rb:30:5:30:6 | fn [captured x] | semmle.label | fn [captured x] | -| captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:31:14:31:14 | x | semmle.label | x | | captured_variables.rb:33:29:33:30 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:35:29:35:38 | call to taint | semmle.label | call to taint | | captured_variables.rb:37:13:37:14 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:38:5:38:6 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:40:31:40:31 | x | semmle.label | x | -| captured_variables.rb:41:5:41:6 | fn [captured x] | semmle.label | fn [captured x] | -| captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:42:14:42:14 | x | semmle.label | x | | captured_variables.rb:44:13:44:14 | fn [captured x] | semmle.label | fn [captured x] | | captured_variables.rb:46:27:46:36 | call to taint | semmle.label | call to taint | @@ -328,8 +296,6 @@ nodes | captured_variables.rb:83:6:83:8 | foo [@field] | semmle.label | foo [@field] | | captured_variables.rb:83:6:83:18 | call to get_field | semmle.label | call to get_field | | captured_variables.rb:85:5:85:12 | call to taint | semmle.label | call to taint | -| captured_variables.rb:86:1:86:2 | fn [captured y] | semmle.label | fn [captured y] | -| captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | semmle.label | -> { ... } [captured y] | | captured_variables.rb:87:10:87:10 | y | semmle.label | y | | captured_variables.rb:88:9:88:16 | call to taint | semmle.label | call to taint | | captured_variables.rb:90:1:90:2 | [post] fn [captured y] | semmle.label | [post] fn [captured y] | @@ -346,10 +312,6 @@ nodes | captured_variables.rb:104:31:104:31 | x | semmle.label | x | | captured_variables.rb:105:10:105:10 | x | semmle.label | x | | captured_variables.rb:109:9:109:17 | call to taint | semmle.label | call to taint | -| captured_variables.rb:110:5:110:10 | middle [captured x] | semmle.label | middle [captured x] | -| captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | -| captured_variables.rb:111:9:111:13 | inner [captured x] | semmle.label | inner [captured x] | -| captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:112:18:112:18 | x | semmle.label | x | | captured_variables.rb:113:17:113:25 | call to taint | semmle.label | call to taint | | captured_variables.rb:115:9:115:13 | [post] inner [captured x] | semmle.label | [post] inner [captured x] | @@ -385,16 +347,9 @@ nodes | captured_variables.rb:206:13:206:21 | call to taint | semmle.label | call to taint | | captured_variables.rb:208:14:208:14 | x | semmle.label | x | | captured_variables.rb:219:9:219:17 | call to taint | semmle.label | call to taint | -| captured_variables.rb:222:5:222:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | -| captured_variables.rb:222:11:224:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | semmle.label | [post] fn1 [captured y] | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | | captured_variables.rb:227:10:227:10 | y | semmle.label | y | -| captured_variables.rb:233:9:233:17 | call to taint | semmle.label | call to taint | -| captured_variables.rb:235:5:235:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | -| captured_variables.rb:235:11:237:5 | -> { ... } [captured x] | semmle.label | -> { ... } [captured x] | -| captured_variables.rb:236:14:236:14 | x | semmle.label | x | -| captured_variables.rb:241:5:241:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | | instance_variables.rb:10:19:10:19 | x | semmle.label | x | | instance_variables.rb:11:9:11:14 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:11:18:11:18 | x | semmle.label | x | @@ -605,7 +560,6 @@ subpaths | captured_variables.rb:199:10:199:10 | x | captured_variables.rb:197:9:197:17 | call to taint | captured_variables.rb:199:10:199:10 | x | $@ | captured_variables.rb:197:9:197:17 | call to taint | call to taint | | captured_variables.rb:208:14:208:14 | x | captured_variables.rb:206:13:206:21 | call to taint | captured_variables.rb:208:14:208:14 | x | $@ | captured_variables.rb:206:13:206:21 | call to taint | call to taint | | captured_variables.rb:227:10:227:10 | y | captured_variables.rb:219:9:219:17 | call to taint | captured_variables.rb:227:10:227:10 | y | $@ | captured_variables.rb:219:9:219:17 | call to taint | call to taint | -| captured_variables.rb:236:14:236:14 | x | captured_variables.rb:233:9:233:17 | call to taint | captured_variables.rb:236:14:236:14 | x | $@ | captured_variables.rb:233:9:233:17 | call to taint | call to taint | | instance_variables.rb:20:10:20:13 | @foo | instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:20:10:20:13 | @foo | $@ | instance_variables.rb:19:12:19:21 | call to taint | call to taint | | instance_variables.rb:36:10:36:33 | call to get_field | instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:33 | call to get_field | $@ | instance_variables.rb:36:14:36:22 | call to taint | call to taint | | instance_variables.rb:39:6:39:33 | call to get_field | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:33 | call to get_field | $@ | instance_variables.rb:39:14:39:22 | call to taint | call to taint | From 8fe483d9d802dad7ded644d34abe26f062e9081b Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Thu, 7 Mar 2024 14:25:55 +0100 Subject: [PATCH 059/309] Python: Add example of missing use-use flow (see PR for more detailed description) --- .../library-tests/essa/ssa-compute/test2.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 python/ql/test/library-tests/essa/ssa-compute/test2.py diff --git a/python/ql/test/library-tests/essa/ssa-compute/test2.py b/python/ql/test/library-tests/essa/ssa-compute/test2.py new file mode 100644 index 00000000000..d117a6b53e6 --- /dev/null +++ b/python/ql/test/library-tests/essa/ssa-compute/test2.py @@ -0,0 +1,29 @@ +def func(x): # $ def=x + try: + with Thing() as y: # $ def=y + y.foo(x, 0) # $ def-use=x:1 def-use=y:3 + while not x.attribute: # $ use-use=x:4 use-use=x:7 + y.bar() # $ use-use=y:4 use-use=y:6 + print(x) # $ use-use=x:5 + finally: + pass + +def func(x): # $ def=x + try: + with Thing() as y: # $ def=y + y.foo(x, some_var) # $ def-use=x:11 def-use=y:13 + while not x.attribute: # $ use-use=x:14 use-use=x:17 + y.bar() # $ use-use=y:16 MISSING: use-use=y:14 + print(x) # $ use-use=x:15 + finally: + pass + +def func(x): # $ def=x + try: + with Thing() as y: # $ def=y + y.foo(x, some_var.some_attr) # $ def-use=x:21 def-use=y:23 + while not x.attribute: # $ use-use=x:27 MISSING: use-use=x:24 + y.bar() # $ use-use=y:26 MISSING: use-use=y:24 + print(x) # $ use-use=x:25 + finally: + pass From 87b6592dbc99b5ec861b7c6d835868980d58cc6f Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 8 Mar 2024 13:34:26 +0100 Subject: [PATCH 060/309] Python: Accept inconsistency for missing use-use flow At least until we have a proper fix --- python/ql/consistency-queries/TypeTrackingConsistency.ql | 6 ++++++ .../CONSISTENCY/TypeTrackingConsistency.expected | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 python/ql/test/library-tests/essa/ssa-compute/CONSISTENCY/TypeTrackingConsistency.expected diff --git a/python/ql/consistency-queries/TypeTrackingConsistency.ql b/python/ql/consistency-queries/TypeTrackingConsistency.ql index b8f1e3a1b48..b937b0c6163 100644 --- a/python/ql/consistency-queries/TypeTrackingConsistency.ql +++ b/python/ql/consistency-queries/TypeTrackingConsistency.ql @@ -24,6 +24,12 @@ private module ConsistencyChecksInput implements ConsistencyChecksInputSig { // TODO: when adding support for proper content, handle iterable unpacking better // such as `for k,v in items:`, or `a, (b,c) = ...` n instanceof DataFlow::IterableSequenceNode + or + // We have missing use-use flow in + // https://github.com/python/cpython/blob/0fb18b02c8ad56299d6a2910be0bab8ad601ef24/Lib/socketserver.py#L276-L303 + // which I couldn't just fix. We ignore the problems here, and instead rely on the + // test-case added in https://github.com/github/codeql/pull/15841 + n.getLocation().getFile().getAbsolutePath().matches("%/socketserver.py") } } diff --git a/python/ql/test/library-tests/essa/ssa-compute/CONSISTENCY/TypeTrackingConsistency.expected b/python/ql/test/library-tests/essa/ssa-compute/CONSISTENCY/TypeTrackingConsistency.expected new file mode 100644 index 00000000000..81d19f3f20d --- /dev/null +++ b/python/ql/test/library-tests/essa/ssa-compute/CONSISTENCY/TypeTrackingConsistency.expected @@ -0,0 +1,6 @@ +unreachableNode +| test2.py:16:17:16:17 | ControlFlowNode for y | Unreachable node in step of kind load bar. | +| test2.py:25:23:25:23 | ControlFlowNode for x | Unreachable node in step of kind load attribute. | +| test2.py:25:23:25:23 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | +| test2.py:26:17:26:17 | ControlFlowNode for y | Unreachable node in step of kind load bar. | +| test2.py:27:23:27:23 | ControlFlowNode for x | Unreachable node in step of kind simpleLocalSmallStep. | From adf5a4b1e445b4f041625f49d1095c2f0be08bb1 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen Date: Fri, 8 Mar 2024 14:13:47 +0100 Subject: [PATCH 061/309] Python: Fix internal consistency failures --- python/ql/consistency-queries/TypeTrackingConsistency.ql | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/python/ql/consistency-queries/TypeTrackingConsistency.ql b/python/ql/consistency-queries/TypeTrackingConsistency.ql index b937b0c6163..15083229002 100644 --- a/python/ql/consistency-queries/TypeTrackingConsistency.ql +++ b/python/ql/consistency-queries/TypeTrackingConsistency.ql @@ -17,7 +17,13 @@ private module ConsistencyChecksInput implements ConsistencyChecksInputSig { // // match (NONSOURCE, SOURCE): // case (x, y): ... - exists(DataFlow::Node m | m.asCfgNode().getNode() instanceof MatchCapturePattern | + exists(DataFlow::Node m | + m.asCfgNode().getNode() instanceof MatchCapturePattern + or + m.asCfgNode().getNode() instanceof MatchAsPattern + or + m.asCfgNode().getNode() instanceof MatchOrPattern + | TypeTrackingInput::simpleLocalSmallStep*(m, n) ) or From dbd33d1cf0d8211779a90bfb7fdc4f7eb4aa9ba7 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Fri, 8 Mar 2024 14:04:01 +0000 Subject: [PATCH 062/309] Model Argument[1] of ActiveRecord from --- .../2024-03-08-activerecord-from.md | 4 + .../codeql/ruby/frameworks/ActiveRecord.qll | 6 +- .../security/cwe-089/ActiveRecordInjection.rb | 6 + .../security/cwe-089/SqlInjection.expected | 138 +++++++++--------- 4 files changed, 86 insertions(+), 68 deletions(-) create mode 100644 ruby/ql/lib/change-notes/2024-03-08-activerecord-from.md diff --git a/ruby/ql/lib/change-notes/2024-03-08-activerecord-from.md b/ruby/ql/lib/change-notes/2024-03-08-activerecord-from.md new file mode 100644 index 00000000000..704a4f27a61 --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-03-08-activerecord-from.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The second argument, `subquery_name`, of the `ActiveRecord::QueryMethods::from` method, is now recognized as an sql injection sink. \ No newline at end of file diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index f0917100058..7573e099c19 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -175,14 +175,14 @@ private predicate sqlFragmentArgumentInner(DataFlow::CallNode call, DataFlow::No call = activeRecordQueryBuilderCall([ "delete_all", "delete_by", "destroy_all", "destroy_by", "exists?", "find_by", "find_by!", - "find_or_create_by", "find_or_create_by!", "find_or_initialize_by", "find_by_sql", "from", - "having", "lock", "not", "where", "rewhere" + "find_or_create_by", "find_or_create_by!", "find_or_initialize_by", "find_by_sql", "having", + "lock", "not", "where", "rewhere" ]) and sink = call.getArgument(0) or call = activeRecordQueryBuilderCall([ - "group", "joins", "order", "reorder", "pluck", "select", "reselect" + "from", "group", "joins", "order", "reorder", "pluck", "select", "reselect" ]) and sink = call.getArgument(_) or diff --git a/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb b/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb index 9a94e48708d..ad074de5e98 100644 --- a/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb +++ b/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb @@ -114,6 +114,12 @@ class FooController < ActionController::Base User.joins(:a, params[:column]) User.count_by_sql(params[:custom_sql_query]) + + # BAD: executes `SELECT users.* FROM #{params[:tab]}` + # where `params[:tab]` is unsanitized + User.all.from(params[:tab]) + # BAD: executes `SELECT "users".* FROM (SELECT "users".* FROM "users") #{params[:sq]} + User.all.from(User.all, params[:sq]) end end diff --git a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected index 9bf4513af07..8b6c5bf4d16 100644 --- a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected @@ -46,34 +46,36 @@ edges | ActiveRecordInjection.rb:113:21:113:26 | call to params | ActiveRecordInjection.rb:113:21:113:35 | ...[...] | provenance | | | ActiveRecordInjection.rb:114:20:114:25 | call to params | ActiveRecordInjection.rb:114:20:114:34 | ...[...] | provenance | | | ActiveRecordInjection.rb:116:23:116:28 | call to params | ActiveRecordInjection.rb:116:23:116:47 | ...[...] | provenance | | -| ActiveRecordInjection.rb:122:5:122:6 | ps | ActiveRecordInjection.rb:123:11:123:12 | ps | provenance | | -| ActiveRecordInjection.rb:122:10:122:15 | call to params | ActiveRecordInjection.rb:122:5:122:6 | ps | provenance | | -| ActiveRecordInjection.rb:123:5:123:7 | uid | ActiveRecordInjection.rb:124:5:124:9 | uidEq | provenance | | -| ActiveRecordInjection.rb:123:11:123:12 | ps | ActiveRecordInjection.rb:123:11:123:17 | ...[...] | provenance | | -| ActiveRecordInjection.rb:123:11:123:17 | ...[...] | ActiveRecordInjection.rb:123:5:123:7 | uid | provenance | | -| ActiveRecordInjection.rb:124:5:124:9 | uidEq | ActiveRecordInjection.rb:128:20:128:32 | ... + ... | provenance | | -| ActiveRecordInjection.rb:124:5:124:9 | uidEq | ActiveRecordInjection.rb:128:28:128:32 | uidEq | provenance | | -| ActiveRecordInjection.rb:128:20:128:32 | ... + ... [element] | ActiveRecordInjection.rb:128:20:128:32 | ... + ... | provenance | | -| ActiveRecordInjection.rb:128:28:128:32 | uidEq | ActiveRecordInjection.rb:128:20:128:32 | ... + ... [element] | provenance | | -| ActiveRecordInjection.rb:161:21:161:26 | call to params | ActiveRecordInjection.rb:161:21:161:44 | ...[...] | provenance | | -| ActiveRecordInjection.rb:161:21:161:26 | call to params | ActiveRecordInjection.rb:161:21:161:44 | ...[...] | provenance | | -| ActiveRecordInjection.rb:161:21:161:44 | ...[...] | ActiveRecordInjection.rb:20:22:20:30 | condition | provenance | | -| ActiveRecordInjection.rb:175:59:175:64 | call to params | ActiveRecordInjection.rb:175:59:175:74 | ...[...] | provenance | | -| ActiveRecordInjection.rb:175:59:175:74 | ...[...] | ActiveRecordInjection.rb:175:27:175:76 | "this is an unsafe annotation:..." | provenance | | -| ActiveRecordInjection.rb:186:5:186:13 | my_params | ActiveRecordInjection.rb:187:47:187:55 | my_params | provenance | | -| ActiveRecordInjection.rb:186:17:186:32 | call to permitted_params | ActiveRecordInjection.rb:186:5:186:13 | my_params | provenance | | -| ActiveRecordInjection.rb:187:5:187:9 | query | ActiveRecordInjection.rb:188:37:188:41 | query | provenance | | -| ActiveRecordInjection.rb:187:47:187:55 | my_params | ActiveRecordInjection.rb:187:47:187:65 | ...[...] | provenance | | -| ActiveRecordInjection.rb:187:47:187:65 | ...[...] | ActiveRecordInjection.rb:187:5:187:9 | query | provenance | | -| ActiveRecordInjection.rb:193:5:193:10 | call to params | ActiveRecordInjection.rb:193:5:193:27 | call to require | provenance | | -| ActiveRecordInjection.rb:193:5:193:27 | call to require | ActiveRecordInjection.rb:193:5:193:59 | call to permit | provenance | | -| ActiveRecordInjection.rb:193:5:193:59 | call to permit | ActiveRecordInjection.rb:186:17:186:32 | call to permitted_params | provenance | | -| ActiveRecordInjection.rb:193:5:193:59 | call to permit | ActiveRecordInjection.rb:197:77:197:92 | call to permitted_params | provenance | | -| ActiveRecordInjection.rb:193:5:193:59 | call to permit | ActiveRecordInjection.rb:198:69:198:84 | call to permitted_params | provenance | | -| ActiveRecordInjection.rb:197:77:197:92 | call to permitted_params | ActiveRecordInjection.rb:197:77:197:102 | ...[...] | provenance | | -| ActiveRecordInjection.rb:197:77:197:102 | ...[...] | ActiveRecordInjection.rb:197:43:197:104 | "SELECT * FROM users WHERE id ..." | provenance | | -| ActiveRecordInjection.rb:198:69:198:84 | call to permitted_params | ActiveRecordInjection.rb:198:69:198:94 | ...[...] | provenance | | -| ActiveRecordInjection.rb:198:69:198:94 | ...[...] | ActiveRecordInjection.rb:198:35:198:96 | "SELECT * FROM users WHERE id ..." | provenance | | +| ActiveRecordInjection.rb:120:19:120:24 | call to params | ActiveRecordInjection.rb:120:19:120:30 | ...[...] | provenance | | +| ActiveRecordInjection.rb:122:29:122:34 | call to params | ActiveRecordInjection.rb:122:29:122:39 | ...[...] | provenance | | +| ActiveRecordInjection.rb:128:5:128:6 | ps | ActiveRecordInjection.rb:129:11:129:12 | ps | provenance | | +| ActiveRecordInjection.rb:128:10:128:15 | call to params | ActiveRecordInjection.rb:128:5:128:6 | ps | provenance | | +| ActiveRecordInjection.rb:129:5:129:7 | uid | ActiveRecordInjection.rb:130:5:130:9 | uidEq | provenance | | +| ActiveRecordInjection.rb:129:11:129:12 | ps | ActiveRecordInjection.rb:129:11:129:17 | ...[...] | provenance | | +| ActiveRecordInjection.rb:129:11:129:17 | ...[...] | ActiveRecordInjection.rb:129:5:129:7 | uid | provenance | | +| ActiveRecordInjection.rb:130:5:130:9 | uidEq | ActiveRecordInjection.rb:134:20:134:32 | ... + ... | provenance | | +| ActiveRecordInjection.rb:130:5:130:9 | uidEq | ActiveRecordInjection.rb:134:28:134:32 | uidEq | provenance | | +| ActiveRecordInjection.rb:134:20:134:32 | ... + ... [element] | ActiveRecordInjection.rb:134:20:134:32 | ... + ... | provenance | | +| ActiveRecordInjection.rb:134:28:134:32 | uidEq | ActiveRecordInjection.rb:134:20:134:32 | ... + ... [element] | provenance | | +| ActiveRecordInjection.rb:167:21:167:26 | call to params | ActiveRecordInjection.rb:167:21:167:44 | ...[...] | provenance | | +| ActiveRecordInjection.rb:167:21:167:26 | call to params | ActiveRecordInjection.rb:167:21:167:44 | ...[...] | provenance | | +| ActiveRecordInjection.rb:167:21:167:44 | ...[...] | ActiveRecordInjection.rb:20:22:20:30 | condition | provenance | | +| ActiveRecordInjection.rb:181:59:181:64 | call to params | ActiveRecordInjection.rb:181:59:181:74 | ...[...] | provenance | | +| ActiveRecordInjection.rb:181:59:181:74 | ...[...] | ActiveRecordInjection.rb:181:27:181:76 | "this is an unsafe annotation:..." | provenance | | +| ActiveRecordInjection.rb:192:5:192:13 | my_params | ActiveRecordInjection.rb:193:47:193:55 | my_params | provenance | | +| ActiveRecordInjection.rb:192:17:192:32 | call to permitted_params | ActiveRecordInjection.rb:192:5:192:13 | my_params | provenance | | +| ActiveRecordInjection.rb:193:5:193:9 | query | ActiveRecordInjection.rb:194:37:194:41 | query | provenance | | +| ActiveRecordInjection.rb:193:47:193:55 | my_params | ActiveRecordInjection.rb:193:47:193:65 | ...[...] | provenance | | +| ActiveRecordInjection.rb:193:47:193:65 | ...[...] | ActiveRecordInjection.rb:193:5:193:9 | query | provenance | | +| ActiveRecordInjection.rb:199:5:199:10 | call to params | ActiveRecordInjection.rb:199:5:199:27 | call to require | provenance | | +| ActiveRecordInjection.rb:199:5:199:27 | call to require | ActiveRecordInjection.rb:199:5:199:59 | call to permit | provenance | | +| ActiveRecordInjection.rb:199:5:199:59 | call to permit | ActiveRecordInjection.rb:192:17:192:32 | call to permitted_params | provenance | | +| ActiveRecordInjection.rb:199:5:199:59 | call to permit | ActiveRecordInjection.rb:203:77:203:92 | call to permitted_params | provenance | | +| ActiveRecordInjection.rb:199:5:199:59 | call to permit | ActiveRecordInjection.rb:204:69:204:84 | call to permitted_params | provenance | | +| ActiveRecordInjection.rb:203:77:203:92 | call to permitted_params | ActiveRecordInjection.rb:203:77:203:102 | ...[...] | provenance | | +| ActiveRecordInjection.rb:203:77:203:102 | ...[...] | ActiveRecordInjection.rb:203:43:203:104 | "SELECT * FROM users WHERE id ..." | provenance | | +| ActiveRecordInjection.rb:204:69:204:84 | call to permitted_params | ActiveRecordInjection.rb:204:69:204:94 | ...[...] | provenance | | +| ActiveRecordInjection.rb:204:69:204:94 | ...[...] | ActiveRecordInjection.rb:204:35:204:96 | "SELECT * FROM users WHERE id ..." | provenance | | | ArelInjection.rb:4:5:4:8 | name | ArelInjection.rb:6:20:6:61 | "SELECT * FROM users WHERE nam..." | provenance | | | ArelInjection.rb:4:5:4:8 | name | ArelInjection.rb:7:39:7:80 | "SELECT * FROM users WHERE nam..." | provenance | | | ArelInjection.rb:4:12:4:17 | call to params | ArelInjection.rb:4:12:4:29 | ...[...] | provenance | | @@ -165,36 +167,40 @@ nodes | ActiveRecordInjection.rb:114:20:114:34 | ...[...] | semmle.label | ...[...] | | ActiveRecordInjection.rb:116:23:116:28 | call to params | semmle.label | call to params | | ActiveRecordInjection.rb:116:23:116:47 | ...[...] | semmle.label | ...[...] | -| ActiveRecordInjection.rb:122:5:122:6 | ps | semmle.label | ps | -| ActiveRecordInjection.rb:122:10:122:15 | call to params | semmle.label | call to params | -| ActiveRecordInjection.rb:123:5:123:7 | uid | semmle.label | uid | -| ActiveRecordInjection.rb:123:11:123:12 | ps | semmle.label | ps | -| ActiveRecordInjection.rb:123:11:123:17 | ...[...] | semmle.label | ...[...] | -| ActiveRecordInjection.rb:124:5:124:9 | uidEq | semmle.label | uidEq | -| ActiveRecordInjection.rb:128:20:128:32 | ... + ... | semmle.label | ... + ... | -| ActiveRecordInjection.rb:128:20:128:32 | ... + ... [element] | semmle.label | ... + ... [element] | -| ActiveRecordInjection.rb:128:28:128:32 | uidEq | semmle.label | uidEq | -| ActiveRecordInjection.rb:161:21:161:26 | call to params | semmle.label | call to params | -| ActiveRecordInjection.rb:161:21:161:44 | ...[...] | semmle.label | ...[...] | -| ActiveRecordInjection.rb:161:21:161:44 | ...[...] | semmle.label | ...[...] | -| ActiveRecordInjection.rb:175:27:175:76 | "this is an unsafe annotation:..." | semmle.label | "this is an unsafe annotation:..." | -| ActiveRecordInjection.rb:175:59:175:64 | call to params | semmle.label | call to params | -| ActiveRecordInjection.rb:175:59:175:74 | ...[...] | semmle.label | ...[...] | -| ActiveRecordInjection.rb:186:5:186:13 | my_params | semmle.label | my_params | -| ActiveRecordInjection.rb:186:17:186:32 | call to permitted_params | semmle.label | call to permitted_params | -| ActiveRecordInjection.rb:187:5:187:9 | query | semmle.label | query | -| ActiveRecordInjection.rb:187:47:187:55 | my_params | semmle.label | my_params | -| ActiveRecordInjection.rb:187:47:187:65 | ...[...] | semmle.label | ...[...] | -| ActiveRecordInjection.rb:188:37:188:41 | query | semmle.label | query | -| ActiveRecordInjection.rb:193:5:193:10 | call to params | semmle.label | call to params | -| ActiveRecordInjection.rb:193:5:193:27 | call to require | semmle.label | call to require | -| ActiveRecordInjection.rb:193:5:193:59 | call to permit | semmle.label | call to permit | -| ActiveRecordInjection.rb:197:43:197:104 | "SELECT * FROM users WHERE id ..." | semmle.label | "SELECT * FROM users WHERE id ..." | -| ActiveRecordInjection.rb:197:77:197:92 | call to permitted_params | semmle.label | call to permitted_params | -| ActiveRecordInjection.rb:197:77:197:102 | ...[...] | semmle.label | ...[...] | -| ActiveRecordInjection.rb:198:35:198:96 | "SELECT * FROM users WHERE id ..." | semmle.label | "SELECT * FROM users WHERE id ..." | -| ActiveRecordInjection.rb:198:69:198:84 | call to permitted_params | semmle.label | call to permitted_params | -| ActiveRecordInjection.rb:198:69:198:94 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:120:19:120:24 | call to params | semmle.label | call to params | +| ActiveRecordInjection.rb:120:19:120:30 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:122:29:122:34 | call to params | semmle.label | call to params | +| ActiveRecordInjection.rb:122:29:122:39 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:128:5:128:6 | ps | semmle.label | ps | +| ActiveRecordInjection.rb:128:10:128:15 | call to params | semmle.label | call to params | +| ActiveRecordInjection.rb:129:5:129:7 | uid | semmle.label | uid | +| ActiveRecordInjection.rb:129:11:129:12 | ps | semmle.label | ps | +| ActiveRecordInjection.rb:129:11:129:17 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:130:5:130:9 | uidEq | semmle.label | uidEq | +| ActiveRecordInjection.rb:134:20:134:32 | ... + ... | semmle.label | ... + ... | +| ActiveRecordInjection.rb:134:20:134:32 | ... + ... [element] | semmle.label | ... + ... [element] | +| ActiveRecordInjection.rb:134:28:134:32 | uidEq | semmle.label | uidEq | +| ActiveRecordInjection.rb:167:21:167:26 | call to params | semmle.label | call to params | +| ActiveRecordInjection.rb:167:21:167:44 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:167:21:167:44 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:181:27:181:76 | "this is an unsafe annotation:..." | semmle.label | "this is an unsafe annotation:..." | +| ActiveRecordInjection.rb:181:59:181:64 | call to params | semmle.label | call to params | +| ActiveRecordInjection.rb:181:59:181:74 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:192:5:192:13 | my_params | semmle.label | my_params | +| ActiveRecordInjection.rb:192:17:192:32 | call to permitted_params | semmle.label | call to permitted_params | +| ActiveRecordInjection.rb:193:5:193:9 | query | semmle.label | query | +| ActiveRecordInjection.rb:193:47:193:55 | my_params | semmle.label | my_params | +| ActiveRecordInjection.rb:193:47:193:65 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:194:37:194:41 | query | semmle.label | query | +| ActiveRecordInjection.rb:199:5:199:10 | call to params | semmle.label | call to params | +| ActiveRecordInjection.rb:199:5:199:27 | call to require | semmle.label | call to require | +| ActiveRecordInjection.rb:199:5:199:59 | call to permit | semmle.label | call to permit | +| ActiveRecordInjection.rb:203:43:203:104 | "SELECT * FROM users WHERE id ..." | semmle.label | "SELECT * FROM users WHERE id ..." | +| ActiveRecordInjection.rb:203:77:203:92 | call to permitted_params | semmle.label | call to permitted_params | +| ActiveRecordInjection.rb:203:77:203:102 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:204:35:204:96 | "SELECT * FROM users WHERE id ..." | semmle.label | "SELECT * FROM users WHERE id ..." | +| ActiveRecordInjection.rb:204:69:204:84 | call to permitted_params | semmle.label | call to permitted_params | +| ActiveRecordInjection.rb:204:69:204:94 | ...[...] | semmle.label | ...[...] | | ArelInjection.rb:4:5:4:8 | name | semmle.label | name | | ArelInjection.rb:4:12:4:17 | call to params | semmle.label | call to params | | ArelInjection.rb:4:12:4:29 | ...[...] | semmle.label | ...[...] | @@ -217,7 +223,7 @@ subpaths #select | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | ActiveRecordInjection.rb:70:23:70:28 | call to params | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:70:23:70:28 | call to params | user-provided value | | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | ActiveRecordInjection.rb:70:38:70:43 | call to params | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:70:38:70:43 | call to params | user-provided value | -| ActiveRecordInjection.rb:23:16:23:24 | condition | ActiveRecordInjection.rb:161:21:161:26 | call to params | ActiveRecordInjection.rb:23:16:23:24 | condition | This SQL query depends on a $@. | ActiveRecordInjection.rb:161:21:161:26 | call to params | user-provided value | +| ActiveRecordInjection.rb:23:16:23:24 | condition | ActiveRecordInjection.rb:167:21:167:26 | call to params | ActiveRecordInjection.rb:23:16:23:24 | condition | This SQL query depends on a $@. | ActiveRecordInjection.rb:167:21:167:26 | call to params | user-provided value | | ActiveRecordInjection.rb:35:30:35:44 | ...[...] | ActiveRecordInjection.rb:35:30:35:35 | call to params | ActiveRecordInjection.rb:35:30:35:44 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:35:30:35:35 | call to params | user-provided value | | ActiveRecordInjection.rb:39:18:39:32 | ...[...] | ActiveRecordInjection.rb:39:18:39:23 | call to params | ActiveRecordInjection.rb:39:18:39:32 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:39:18:39:23 | call to params | user-provided value | | ActiveRecordInjection.rb:43:20:43:42 | "id = '#{...}'" | ActiveRecordInjection.rb:43:29:43:34 | call to params | ActiveRecordInjection.rb:43:20:43:42 | "id = '#{...}'" | This SQL query depends on a $@. | ActiveRecordInjection.rb:43:29:43:34 | call to params | user-provided value | @@ -243,12 +249,14 @@ subpaths | ActiveRecordInjection.rb:113:21:113:35 | ...[...] | ActiveRecordInjection.rb:113:21:113:26 | call to params | ActiveRecordInjection.rb:113:21:113:35 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:113:21:113:26 | call to params | user-provided value | | ActiveRecordInjection.rb:114:20:114:34 | ...[...] | ActiveRecordInjection.rb:114:20:114:25 | call to params | ActiveRecordInjection.rb:114:20:114:34 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:114:20:114:25 | call to params | user-provided value | | ActiveRecordInjection.rb:116:23:116:47 | ...[...] | ActiveRecordInjection.rb:116:23:116:28 | call to params | ActiveRecordInjection.rb:116:23:116:47 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:116:23:116:28 | call to params | user-provided value | -| ActiveRecordInjection.rb:128:20:128:32 | ... + ... | ActiveRecordInjection.rb:122:10:122:15 | call to params | ActiveRecordInjection.rb:128:20:128:32 | ... + ... | This SQL query depends on a $@. | ActiveRecordInjection.rb:122:10:122:15 | call to params | user-provided value | -| ActiveRecordInjection.rb:161:21:161:44 | ...[...] | ActiveRecordInjection.rb:161:21:161:26 | call to params | ActiveRecordInjection.rb:161:21:161:44 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:161:21:161:26 | call to params | user-provided value | -| ActiveRecordInjection.rb:175:27:175:76 | "this is an unsafe annotation:..." | ActiveRecordInjection.rb:175:59:175:64 | call to params | ActiveRecordInjection.rb:175:27:175:76 | "this is an unsafe annotation:..." | This SQL query depends on a $@. | ActiveRecordInjection.rb:175:59:175:64 | call to params | user-provided value | -| ActiveRecordInjection.rb:188:37:188:41 | query | ActiveRecordInjection.rb:193:5:193:10 | call to params | ActiveRecordInjection.rb:188:37:188:41 | query | This SQL query depends on a $@. | ActiveRecordInjection.rb:193:5:193:10 | call to params | user-provided value | -| ActiveRecordInjection.rb:197:43:197:104 | "SELECT * FROM users WHERE id ..." | ActiveRecordInjection.rb:193:5:193:10 | call to params | ActiveRecordInjection.rb:197:43:197:104 | "SELECT * FROM users WHERE id ..." | This SQL query depends on a $@. | ActiveRecordInjection.rb:193:5:193:10 | call to params | user-provided value | -| ActiveRecordInjection.rb:198:35:198:96 | "SELECT * FROM users WHERE id ..." | ActiveRecordInjection.rb:193:5:193:10 | call to params | ActiveRecordInjection.rb:198:35:198:96 | "SELECT * FROM users WHERE id ..." | This SQL query depends on a $@. | ActiveRecordInjection.rb:193:5:193:10 | call to params | user-provided value | +| ActiveRecordInjection.rb:120:19:120:30 | ...[...] | ActiveRecordInjection.rb:120:19:120:24 | call to params | ActiveRecordInjection.rb:120:19:120:30 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:120:19:120:24 | call to params | user-provided value | +| ActiveRecordInjection.rb:122:29:122:39 | ...[...] | ActiveRecordInjection.rb:122:29:122:34 | call to params | ActiveRecordInjection.rb:122:29:122:39 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:122:29:122:34 | call to params | user-provided value | +| ActiveRecordInjection.rb:134:20:134:32 | ... + ... | ActiveRecordInjection.rb:128:10:128:15 | call to params | ActiveRecordInjection.rb:134:20:134:32 | ... + ... | This SQL query depends on a $@. | ActiveRecordInjection.rb:128:10:128:15 | call to params | user-provided value | +| ActiveRecordInjection.rb:167:21:167:44 | ...[...] | ActiveRecordInjection.rb:167:21:167:26 | call to params | ActiveRecordInjection.rb:167:21:167:44 | ...[...] | This SQL query depends on a $@. | ActiveRecordInjection.rb:167:21:167:26 | call to params | user-provided value | +| ActiveRecordInjection.rb:181:27:181:76 | "this is an unsafe annotation:..." | ActiveRecordInjection.rb:181:59:181:64 | call to params | ActiveRecordInjection.rb:181:27:181:76 | "this is an unsafe annotation:..." | This SQL query depends on a $@. | ActiveRecordInjection.rb:181:59:181:64 | call to params | user-provided value | +| ActiveRecordInjection.rb:194:37:194:41 | query | ActiveRecordInjection.rb:199:5:199:10 | call to params | ActiveRecordInjection.rb:194:37:194:41 | query | This SQL query depends on a $@. | ActiveRecordInjection.rb:199:5:199:10 | call to params | user-provided value | +| ActiveRecordInjection.rb:203:43:203:104 | "SELECT * FROM users WHERE id ..." | ActiveRecordInjection.rb:199:5:199:10 | call to params | ActiveRecordInjection.rb:203:43:203:104 | "SELECT * FROM users WHERE id ..." | This SQL query depends on a $@. | ActiveRecordInjection.rb:199:5:199:10 | call to params | user-provided value | +| ActiveRecordInjection.rb:204:35:204:96 | "SELECT * FROM users WHERE id ..." | ActiveRecordInjection.rb:199:5:199:10 | call to params | ActiveRecordInjection.rb:204:35:204:96 | "SELECT * FROM users WHERE id ..." | This SQL query depends on a $@. | ActiveRecordInjection.rb:199:5:199:10 | call to params | user-provided value | | ArelInjection.rb:6:20:6:61 | "SELECT * FROM users WHERE nam..." | ArelInjection.rb:4:12:4:17 | call to params | ArelInjection.rb:6:20:6:61 | "SELECT * FROM users WHERE nam..." | This SQL query depends on a $@. | ArelInjection.rb:4:12:4:17 | call to params | user-provided value | | ArelInjection.rb:7:39:7:80 | "SELECT * FROM users WHERE nam..." | ArelInjection.rb:4:12:4:17 | call to params | ArelInjection.rb:7:39:7:80 | "SELECT * FROM users WHERE nam..." | This SQL query depends on a $@. | ArelInjection.rb:4:12:4:17 | call to params | user-provided value | | PgInjection.rb:14:15:14:18 | qry1 | PgInjection.rb:6:12:6:17 | call to params | PgInjection.rb:14:15:14:18 | qry1 | This SQL query depends on a $@. | PgInjection.rb:6:12:6:17 | call to params | user-provided value | From a09eb9f4c570184a8d899529bb558c5ef89cb888 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Mon, 11 Mar 2024 08:58:59 +0100 Subject: [PATCH 063/309] Update go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> --- go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql index 2be09c6901b..c6d2091cc53 100644 --- a/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql +++ b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql @@ -1,7 +1,6 @@ /** * @name Slice memory allocation with excessive size value - * @description Allocating memory for slices with the built-in make function from user-controlled sources - * can lead to a denial of service. + * @description Allocating memory for slices with the built-in make function from user-controlled sources can lead to a denial of service. * @kind path-problem * @problem.severity warning * @security-severity 6.0 From 7a39f077d9531d48e121659e2cade47488896d50 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 11 Mar 2024 11:58:20 +0100 Subject: [PATCH 064/309] Data flow: Add `ConfigSig::accessPathLimit` --- .../dataflow/internal/ContentDataFlow.qll | 2 ++ .../modelgenerator/internal/CaptureModels.qll | 6 +++--- .../modelgenerator/internal/CaptureModels.qll | 6 +++--- .../ruby/dataflow/internal/DataFlowImpl1.qll | 2 ++ shared/dataflow/codeql/dataflow/DataFlow.qll | 10 ++++++++++ .../codeql/dataflow/internal/DataFlowImpl.qll | 19 ++++++++++++++++--- 6 files changed, 36 insertions(+), 9 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ContentDataFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ContentDataFlow.qll index e9cd7373975..76936549051 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ContentDataFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ContentDataFlow.qll @@ -109,6 +109,8 @@ module Global { DataFlow::FlowFeature getAFeature() { result = ContentConfig::getAFeature() } + predicate accessPathLimit = ContentConfig::accessPathLimit/0; + // needed to record reads/stores inside summarized callables predicate includeHiddenNodes() { any() } } diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 9c19e5b9cbb..0a22178d108 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -72,11 +72,11 @@ string captureQualifierFlow(TargetApiSpecific api) { result = ModelPrinting::asValueModel(api, qualifierString(), "ReturnValue") } -private int accessPathLimit() { result = 2 } +private int accessPathLimit0() { result = 2 } private newtype TTaintState = - TTaintRead(int n) { n in [0 .. accessPathLimit()] } or - TTaintStore(int n) { n in [1 .. accessPathLimit()] } + TTaintRead(int n) { n in [0 .. accessPathLimit0()] } or + TTaintStore(int n) { n in [1 .. accessPathLimit0()] } abstract private class TaintState extends TTaintState { abstract string toString(); diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 9c19e5b9cbb..0a22178d108 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -72,11 +72,11 @@ string captureQualifierFlow(TargetApiSpecific api) { result = ModelPrinting::asValueModel(api, qualifierString(), "ReturnValue") } -private int accessPathLimit() { result = 2 } +private int accessPathLimit0() { result = 2 } private newtype TTaintState = - TTaintRead(int n) { n in [0 .. accessPathLimit()] } or - TTaintStore(int n) { n in [1 .. accessPathLimit()] } + TTaintRead(int n) { n in [0 .. accessPathLimit0()] } or + TTaintStore(int n) { n in [1 .. accessPathLimit0()] } abstract private class TaintState extends TTaintState { abstract string toString(); diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl1.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 6a18c166613..6b14d3d2e06 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -376,6 +376,9 @@ module Configs { */ default int fieldFlowBranchLimit() { result = 2 } + /** Gets the access path limit. */ + default int accessPathLimit() { result = Lang::accessPathLimit() } + /** * Gets a data flow configuration feature to add restrictions to the set of * valid flow paths. @@ -495,6 +498,9 @@ module Configs { */ default int fieldFlowBranchLimit() { result = 2 } + /** Gets the access path limit. */ + default int accessPathLimit() { result = Lang::accessPathLimit() } + /** * Gets a data flow configuration feature to add restrictions to the set of * valid flow paths. @@ -583,6 +589,8 @@ module DataFlowMake { private module C implements FullStateConfigSig { import DefaultState import Config + + predicate accessPathLimit = Config::accessPathLimit/0; } import Impl @@ -599,6 +607,8 @@ module DataFlowMake { module GlobalWithState implements GlobalFlowSig { private module C implements FullStateConfigSig { import Config + + predicate accessPathLimit = Config::accessPathLimit/0; } import Impl diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index d555b281710..2b43cbdd474 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -93,6 +93,9 @@ module MakeImpl { */ int fieldFlowBranchLimit(); + /** Gets the access path limit. */ + int accessPathLimit(); + /** * Gets a data flow configuration feature to add restrictions to the set of * valid flow paths. @@ -1328,6 +1331,13 @@ module MakeImpl { fwdFlow1(_, _, _, _, _, _, t0, t, ap, _) and t0 != t } + bindingset[c, t, tail] + additional Ap apCons(Content c, Typ t, Ap tail) { + result = Param::apCons(c, t, tail) and + Config::accessPathLimit() > 0 and + if tail instanceof ApNil then any() else Config::accessPathLimit() > 1 + } + pragma[nomagic] private predicate fwdFlow0( NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, TypOption argT, @@ -3026,11 +3036,11 @@ module MakeImpl { } or TConsCons(Content c1, DataFlowType t, Content c2, int len) { Stage4::consCand(c1, t, TFrontHead(c2)) and - len in [2 .. accessPathLimit()] and + len in [2 .. Config::accessPathLimit()] and not expensiveLen2unfolding(c1) } or TCons1(Content c, int len) { - len in [1 .. accessPathLimit()] and + len in [1 .. Config::accessPathLimit()] and expensiveLen2unfolding(c) } @@ -3189,7 +3199,10 @@ module MakeImpl { Typ getTyp(DataFlowType t) { result = t } bindingset[c, t, tail] - Ap apCons(Content c, Typ t, Ap tail) { result.isCons(c, t, tail) } + Ap apCons(Content c, Typ t, Ap tail) { + result.isCons(c, t, tail) and + Config::accessPathLimit() > tail.len() + } class ApHeadContent = Content; From da66281fef261b93c2ca667d5c4a66effc53cbaf Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 11 Mar 2024 11:59:15 +0100 Subject: [PATCH 065/309] Sync files --- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll | 2 ++ cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 2 ++ cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 2 ++ cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 2 ++ .../lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll | 2 ++ .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll | 2 ++ .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 2 ++ .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 2 ++ .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 2 ++ .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll | 2 ++ .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll | 2 ++ .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll | 2 ++ .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll | 2 ++ .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll | 2 ++ go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll | 2 ++ go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll | 2 ++ .../ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll | 2 ++ .../ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 2 ++ .../ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 2 ++ .../ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 2 ++ .../ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 2 ++ .../ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll | 2 ++ .../lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll | 2 ++ .../lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll | 2 ++ .../lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll | 2 ++ .../lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll | 2 ++ ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll | 2 ++ swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll | 2 ++ 28 files changed, 56 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl1.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl1.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl2.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl1.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl1.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll index 2bbc565daa6..9b92f961e6f 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl1.qll @@ -285,6 +285,8 @@ deprecated private module Config implements FullStateConfigSig { int fieldFlowBranchLimit() { result = min(any(Configuration config).fieldFlowBranchLimit()) } + int accessPathLimit() { result = 5 } + FlowFeature getAFeature() { result = any(Configuration config).getAFeature() } predicate sourceGrouping(Node source, string sourceGroup) { From f571ebdaf4dcef776d521a30dd13f34b422f0135 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 11 Mar 2024 14:43:14 +0100 Subject: [PATCH 066/309] C#: Overall change note for C# 12 / .NET 8 support. --- csharp/ql/lib/change-notes/2024-03-11-csharp12-dotnet8.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2024-03-11-csharp12-dotnet8.md diff --git a/csharp/ql/lib/change-notes/2024-03-11-csharp12-dotnet8.md b/csharp/ql/lib/change-notes/2024-03-11-csharp12-dotnet8.md new file mode 100644 index 00000000000..7111e8966d6 --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-03-11-csharp12-dotnet8.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Support for C# 12 / .NET8. From 7b0df57d7a485d71cdb5f060dccc2388590674bf Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 11 Mar 2024 13:56:22 +0000 Subject: [PATCH 067/309] C++: Remove the two configurations that depend on flow state to speed up performance on ChakraCore. --- .../src/Security/CWE/CWE-843/TypeConfusion.ql | 158 +++++------------- .../CWE/CWE-843/TypeConfusion.expected | 28 ++++ 2 files changed, 72 insertions(+), 114 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql index 530d8804ebd..18a331f9c32 100644 --- a/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql +++ b/cpp/ql/src/Security/CWE/CWE-843/TypeConfusion.ql @@ -12,7 +12,7 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow -import BadFlow::PathGraph +import Flow::PathGraph /** * Holds if `f` is a field located at byte offset `offset` in `c`. @@ -179,23 +179,28 @@ class UnsafeCast extends Cast { } /** - * Holds if `source` is an allocation that allocates a value of type `state`. + * Holds if `source` is an allocation that allocates a value of type `type`. */ -predicate isSourceImpl(DataFlow::Node source, Class state) { - state = source.asExpr().(AllocationExpr).getAllocatedElementType().stripType() and +predicate isSourceImpl(DataFlow::Node source, Class type) { + exists(AllocationExpr alloc | + alloc = source.asExpr() and + type = alloc.getAllocatedElementType().stripType() and + not exists( + alloc + .(NewOrNewArrayExpr) + .getAllocator() + .(OperatorNewAllocationFunction) + .getPlacementArgument() + ) + ) and exists(TypeDeclarationEntry tde | - tde = state.getDefinition() and + tde = type.getDefinition() and not tde.isFromUninstantiatedTemplate(_) ) } -/** - * The `RelevantStateConfig` configuration is used to find the set of - * states for the `BadConfig` and `GoodConfig`. The flow computed by - * `RelevantStateConfig` is used to implement the `relevantState` predicate - * which is used to avoid a cartesian product in `isSinkImpl`. - */ -module RelevantStateConfig implements DataFlow::ConfigSig { +/** A configuration describing flow from an allocation to a potentially unsafe cast. */ +module Config implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { isSourceImpl(source, _) } predicate isBarrier(DataFlow::Node node) { @@ -212,122 +217,47 @@ module RelevantStateConfig implements DataFlow::ConfigSig { ) } - predicate isSink(DataFlow::Node sink) { - exists(UnsafeCast cast | sink.asExpr() = cast.getUnconverted()) - } + predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(UnsafeCast cast).getUnconverted() } int fieldFlowBranchLimit() { result = 0 } } -module RelevantStateFlow = DataFlow::Global; +module Flow = DataFlow::Global; -predicate relevantState(DataFlow::Node source, DataFlow::Node sink, Class state) { - RelevantStateFlow::flow(source, sink) and - isSourceImpl(source, state) -} - -predicate isSinkImpl(DataFlow::Node sink, Class state, Type convertedType, boolean compatible) { - exists(UnsafeCast cast | - relevantState(_, sink, state) and - sink.asExpr() = cast.getUnconverted() and - convertedType = cast.getConvertedType() - | - if cast.compatibleWith(state) then compatible = true else compatible = false +predicate relevantType(DataFlow::Node sink, Class allocatedType) { + exists(DataFlow::Node source | + Flow::flow(source, sink) and + isSourceImpl(source, allocatedType) ) } -/** - * The `BadConfig` configuration tracks flow from an allocation to an - * incompatible cast. - * - * We use `FlowState` to track the type of the source, and compare the - * flow state to the target of the cast in the `isSink` definition. - */ -module BadConfig implements DataFlow::StateConfigSig { - class FlowState extends Class { - FlowState() { relevantState(_, _, this) } - } - - predicate isSource(DataFlow::Node source, FlowState state) { relevantState(source, _, state) } - - predicate isBarrier(DataFlow::Node node) { RelevantStateConfig::isBarrier(node) } - - predicate isSink(DataFlow::Node sink, FlowState state) { isSinkImpl(sink, state, _, false) } - - predicate isBarrierOut(DataFlow::Node sink, FlowState state) { isSink(sink, state) } - - int fieldFlowBranchLimit() { result = 0 } +predicate isSinkImpl( + DataFlow::Node sink, Class allocatedType, Type convertedType, boolean compatible +) { + exists(UnsafeCast cast | + relevantType(sink, allocatedType) and + sink.asExpr() = cast.getUnconverted() and + convertedType = cast.getConvertedType() + | + if cast.compatibleWith(allocatedType) then compatible = true else compatible = false + ) } -module BadFlow = DataFlow::GlobalWithState; - -/** - * The `GoodConfig` configuration tracks flow from an allocation to a - * compatible cast. - * - * We use `GoodConfig` to reduce the number of FPs from infeasible paths. - * For example, consider the following example: - * ```cpp - * struct Animal { virtual ~Animal(); }; - * - * struct Cat : public Animal { - * Cat(); - * ~Cat(); - * }; - * - * struct Dog : public Animal { - * Dog(); - * ~Dog(); - * }; - * - * void test9(bool b) { - * Animal* a; - * if(b) { - * a = new Cat; - * } else { - * a = new Dog; - * } - * if(b) { - * Cat* d = static_cast(a); - * } - * } - * ``` - * Here, `BadConfig` finds a flow from `a = new Dog` to `static_cast(a)`. - * However, that path is never realized in an actual execution path. So in - * order to remove this result we exclude results where there exists an - * allocation of a type that's compatible with `static_cast(a)`. - * - * We use `FlowState` to track the type of the source, and compare the - * flow state to the target of the cast in the `isSink` definition. - */ -module GoodConfig implements DataFlow::StateConfigSig { - class FlowState = BadConfig::FlowState; - - predicate isSource(DataFlow::Node source, FlowState state) { BadConfig::isSource(source, state) } - - predicate isBarrier(DataFlow::Node node) { BadConfig::isBarrier(node) } - - predicate isSink(DataFlow::Node sink, FlowState state) { - isSinkImpl(sink, state, _, true) and - BadFlow::flowTo(sink) - } - - int fieldFlowBranchLimit() { result = 0 } -} - -module GoodFlow = DataFlow::GlobalWithState; - from - BadFlow::PathNode source, BadFlow::PathNode sink, Type sourceType, Type sinkType, + Flow::PathNode source, Flow::PathNode sink, Type badSourceType, Type sinkType, DataFlow::Node sinkNode where - BadFlow::flowPath(source, sink) and + Flow::flowPath(source, sink) and sinkNode = sink.getNode() and + isSourceImpl(source.getNode(), badSourceType) and + isSinkImpl(sinkNode, badSourceType, sinkType, false) and // If there is any flow that would result in a valid cast then we don't // report an alert here. This reduces the number of FPs from infeasible paths // significantly. - not GoodFlow::flowTo(sinkNode) and - isSourceImpl(source.getNode(), sourceType) and - isSinkImpl(sinkNode, _, sinkType, false) -select sinkNode, source, sink, "Conversion from $@ to $@ is invalid.", sourceType, - sourceType.toString(), sinkType, sinkType.toString() + not exists(DataFlow::Node goodSource, Type goodSourceType | + isSourceImpl(goodSource, goodSourceType) and + isSinkImpl(sinkNode, goodSourceType, sinkType, true) and + Flow::flow(goodSource, sinkNode) + ) +select sinkNode, source, sink, "Conversion from $@ to $@ is invalid.", badSourceType, + badSourceType.toString(), sinkType, sinkType.toString() diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected index 45355a86a48..4cd377e9f5e 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-843/TypeConfusion.expected @@ -1,34 +1,62 @@ edges +| test.cpp:17:13:17:18 | new | test.cpp:18:21:18:47 | p | provenance | | +| test.cpp:22:13:22:26 | new | test.cpp:23:12:23:30 | p | provenance | | | test.cpp:27:13:27:18 | new | test.cpp:28:25:28:55 | p | provenance | | | test.cpp:32:13:32:30 | new | test.cpp:33:12:33:30 | p | provenance | | +| test.cpp:47:21:47:36 | new | test.cpp:48:22:48:55 | p | provenance | | | test.cpp:66:15:66:21 | new | test.cpp:67:12:67:31 | a | provenance | | +| test.cpp:76:15:76:21 | new | test.cpp:77:12:77:31 | a | provenance | | +| test.cpp:83:9:83:15 | new | test.cpp:88:14:88:33 | a | provenance | | | test.cpp:85:9:85:15 | new | test.cpp:88:14:88:33 | a | provenance | | +| test.cpp:115:12:115:17 | new | test.cpp:116:20:116:51 | s2 | provenance | | | test.cpp:127:12:127:17 | new | test.cpp:128:24:128:59 | s2 | provenance | | +| test.cpp:140:12:140:17 | new | test.cpp:141:23:141:57 | s1 | provenance | | | test.cpp:143:14:143:19 | new | test.cpp:145:28:145:68 | s1_2 | provenance | | | test.cpp:153:9:153:15 | new | test.cpp:159:14:159:33 | a | provenance | | +| test.cpp:166:9:166:15 | new | test.cpp:171:14:171:33 | a | provenance | | | test.cpp:168:9:168:15 | new | test.cpp:171:14:171:33 | a | provenance | | +| test.cpp:179:15:179:24 | new | test.cpp:181:15:181:25 | u64 | provenance | | | test.cpp:187:15:187:24 | new | test.cpp:189:25:189:45 | u64 | provenance | | +| test.cpp:207:14:207:26 | new | test.cpp:209:17:209:28 | si | provenance | | | test.cpp:217:13:217:18 | new | test.cpp:218:30:218:65 | p | provenance | | | test.cpp:226:13:226:18 | new | test.cpp:227:29:227:63 | p | provenance | | nodes +| test.cpp:17:13:17:18 | new | semmle.label | new | +| test.cpp:18:21:18:47 | p | semmle.label | p | +| test.cpp:22:13:22:26 | new | semmle.label | new | +| test.cpp:23:12:23:30 | p | semmle.label | p | | test.cpp:27:13:27:18 | new | semmle.label | new | | test.cpp:28:25:28:55 | p | semmle.label | p | | test.cpp:32:13:32:30 | new | semmle.label | new | | test.cpp:33:12:33:30 | p | semmle.label | p | +| test.cpp:47:21:47:36 | new | semmle.label | new | +| test.cpp:48:22:48:55 | p | semmle.label | p | | test.cpp:66:15:66:21 | new | semmle.label | new | | test.cpp:67:12:67:31 | a | semmle.label | a | +| test.cpp:76:15:76:21 | new | semmle.label | new | +| test.cpp:77:12:77:31 | a | semmle.label | a | +| test.cpp:83:9:83:15 | new | semmle.label | new | | test.cpp:85:9:85:15 | new | semmle.label | new | | test.cpp:88:14:88:33 | a | semmle.label | a | +| test.cpp:115:12:115:17 | new | semmle.label | new | +| test.cpp:116:20:116:51 | s2 | semmle.label | s2 | | test.cpp:127:12:127:17 | new | semmle.label | new | | test.cpp:128:24:128:59 | s2 | semmle.label | s2 | +| test.cpp:140:12:140:17 | new | semmle.label | new | +| test.cpp:141:23:141:57 | s1 | semmle.label | s1 | | test.cpp:143:14:143:19 | new | semmle.label | new | | test.cpp:145:28:145:68 | s1_2 | semmle.label | s1_2 | | test.cpp:153:9:153:15 | new | semmle.label | new | | test.cpp:159:14:159:33 | a | semmle.label | a | +| test.cpp:166:9:166:15 | new | semmle.label | new | | test.cpp:168:9:168:15 | new | semmle.label | new | | test.cpp:171:14:171:33 | a | semmle.label | a | +| test.cpp:179:15:179:24 | new | semmle.label | new | +| test.cpp:181:15:181:25 | u64 | semmle.label | u64 | | test.cpp:187:15:187:24 | new | semmle.label | new | | test.cpp:189:25:189:45 | u64 | semmle.label | u64 | +| test.cpp:207:14:207:26 | new | semmle.label | new | +| test.cpp:209:17:209:28 | si | semmle.label | si | | test.cpp:217:13:217:18 | new | semmle.label | new | | test.cpp:218:30:218:65 | p | semmle.label | p | | test.cpp:226:13:226:18 | new | semmle.label | new | From 61dbe2685867984fb009bf89c211ecbea5b7c4bc Mon Sep 17 00:00:00 2001 From: Ed Minnix Date: Mon, 11 Mar 2024 10:31:51 -0400 Subject: [PATCH 068/309] Add sinks for `android.os.ParcelFileDescriptor` --- java/ql/lib/ext/android.os.model.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java/ql/lib/ext/android.os.model.yml b/java/ql/lib/ext/android.os.model.yml index fc4822dd59f..80271eac954 100644 --- a/java/ql/lib/ext/android.os.model.yml +++ b/java/ql/lib/ext/android.os.model.yml @@ -132,3 +132,8 @@ extensions: - ["android.os", "Parcel", False, "readTypedList", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["android.os", "Parcel", False, "readTypedObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.os", "Parcel", False, "readValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["android.os", "ParcelFileDescriptor", False, "open", "", "", "Argument[0]", "path-injection", "manual"] \ No newline at end of file From 76aeee2820fc625d1ba45ddf70f03ac548986338 Mon Sep 17 00:00:00 2001 From: Ed Minnix Date: Mon, 11 Mar 2024 10:34:15 -0400 Subject: [PATCH 069/309] Change note --- .../2024-03-11-add-parcelfiledescriptor-open-model.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2024-03-11-add-parcelfiledescriptor-open-model.md diff --git a/java/ql/lib/change-notes/2024-03-11-add-parcelfiledescriptor-open-model.md b/java/ql/lib/change-notes/2024-03-11-add-parcelfiledescriptor-open-model.md new file mode 100644 index 00000000000..31f76712828 --- /dev/null +++ b/java/ql/lib/change-notes/2024-03-11-add-parcelfiledescriptor-open-model.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added a `path-injection` sink for the `open` methods of the `android.os.ParcelFileDescriptor` class. From ff2d78d2c8bc15bd36bf24ae204b444ba9feb30d Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Mon, 11 Mar 2024 15:53:40 +0100 Subject: [PATCH 070/309] Update go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql --- go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql index c6d2091cc53..eabfa3333ec 100644 --- a/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql +++ b/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql @@ -2,8 +2,8 @@ * @name Slice memory allocation with excessive size value * @description Allocating memory for slices with the built-in make function from user-controlled sources can lead to a denial of service. * @kind path-problem - * @problem.severity warning - * @security-severity 6.0 + * @problem.severity error + * @security-severity 7.5 * @precision high * @id go/uncontrolled-allocation-size * @tags security From d73f43477fec68116e8401ae54c1b1648a4562e3 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen Date: Mon, 11 Mar 2024 16:32:19 +0100 Subject: [PATCH 071/309] update ts to released version 54 --- javascript/extractor/lib/typescript/package-lock.json | 10 +++++----- javascript/extractor/lib/typescript/package.json | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/javascript/extractor/lib/typescript/package-lock.json b/javascript/extractor/lib/typescript/package-lock.json index af309c3b451..604db5f3e37 100644 --- a/javascript/extractor/lib/typescript/package-lock.json +++ b/javascript/extractor/lib/typescript/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "typescript-parser-wrapper", "dependencies": { - "typescript": "5.4.1-rc" + "typescript": "5.4" }, "devDependencies": { "@types/node": "18.15.3" @@ -20,9 +20,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.4.1-rc", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.1-rc.tgz", - "integrity": "sha512-gInURzaO0bbfzfQAc3mfcHxh8qev+No4QOFUZHajo9vBgOLaljELJ3wuzyoGo/zHIzMSezdhtrsRdqL6E9SvNA==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -32,4 +32,4 @@ } } } -} \ No newline at end of file +} diff --git a/javascript/extractor/lib/typescript/package.json b/javascript/extractor/lib/typescript/package.json index 6a315fed292..8f6a1549a60 100644 --- a/javascript/extractor/lib/typescript/package.json +++ b/javascript/extractor/lib/typescript/package.json @@ -2,7 +2,7 @@ "name": "typescript-parser-wrapper", "private": true, "dependencies": { - "typescript": "5.4.1-rc" + "typescript": "5.4" }, "scripts": { "build": "tsc --project tsconfig.json", @@ -14,4 +14,4 @@ "devDependencies": { "@types/node": "18.15.3" } -} \ No newline at end of file +} From c325ff8a237d6c5fa860a1eed288ee508b5c46bf Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Mon, 11 Mar 2024 16:38:33 +0000 Subject: [PATCH 072/309] Mark lines of code queries as telemetry queries The new file coverage metrics are available in all supported GHES versions. This PR tags lines of code queries as telemetry queries. Lines of code information will still be available in the SARIF file, but it will no longer be displayed in the logging output of the CLI. The one exception is the metric queries for Java/Kotlin that provides separate lines of code information for Java and Kotlin. I've kept these since separate file coverage information for languages like Java and Kotlin is only available for GHES 3.12 and later. --- cpp/ql/src/Summary/LinesOfUserCode.ql | 1 + csharp/ql/src/Metrics/Summaries/LinesOfCode.ql | 1 + go/ql/src/Summary/LinesOfCode.ql | 1 + java/ql/src/Metrics/Summaries/LinesOfCode.ql | 1 + javascript/ql/src/Summary/LinesOfUserCode.ql | 1 + python/ql/src/Summary/LinesOfUserCode.ql | 1 + ql/ql/src/queries/summary/LinesOfCode.ql | 1 + ql/ql/src/queries/summary/LinesOfUserCode.ql | 1 + ruby/ql/src/queries/summary/LinesOfCode.ql | 1 + ruby/ql/src/queries/summary/LinesOfUserCode.ql | 1 + swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql | 1 + 11 files changed, 11 insertions(+) diff --git a/cpp/ql/src/Summary/LinesOfUserCode.ql b/cpp/ql/src/Summary/LinesOfUserCode.ql index 67d3aa6a8e0..2c198a1488d 100644 --- a/cpp/ql/src/Summary/LinesOfUserCode.ql +++ b/cpp/ql/src/Summary/LinesOfUserCode.ql @@ -4,6 +4,7 @@ * @kind metric * @tags summary * lines-of-code + * telemetry * @id cpp/summary/lines-of-user-code */ diff --git a/csharp/ql/src/Metrics/Summaries/LinesOfCode.ql b/csharp/ql/src/Metrics/Summaries/LinesOfCode.ql index 2115cd60d2b..4c6eb55e5ab 100644 --- a/csharp/ql/src/Metrics/Summaries/LinesOfCode.ql +++ b/csharp/ql/src/Metrics/Summaries/LinesOfCode.ql @@ -5,6 +5,7 @@ * @kind metric * @tags summary * lines-of-code + * telemetry */ import csharp diff --git a/go/ql/src/Summary/LinesOfCode.ql b/go/ql/src/Summary/LinesOfCode.ql index 383d7c5021e..04864e5c4a0 100644 --- a/go/ql/src/Summary/LinesOfCode.ql +++ b/go/ql/src/Summary/LinesOfCode.ql @@ -5,6 +5,7 @@ * @kind metric * @tags summary * lines-of-code + * telemetry */ import go diff --git a/java/ql/src/Metrics/Summaries/LinesOfCode.ql b/java/ql/src/Metrics/Summaries/LinesOfCode.ql index 769a3476ed2..1ead46f1b20 100644 --- a/java/ql/src/Metrics/Summaries/LinesOfCode.ql +++ b/java/ql/src/Metrics/Summaries/LinesOfCode.ql @@ -7,6 +7,7 @@ * @kind metric * @tags summary * lines-of-code + * telemetry */ import java diff --git a/javascript/ql/src/Summary/LinesOfUserCode.ql b/javascript/ql/src/Summary/LinesOfUserCode.ql index 61ad13519cb..83fbb9b32da 100644 --- a/javascript/ql/src/Summary/LinesOfUserCode.ql +++ b/javascript/ql/src/Summary/LinesOfUserCode.ql @@ -6,6 +6,7 @@ * @kind metric * @tags summary * lines-of-code + * telemetry * @id js/summary/lines-of-user-code */ diff --git a/python/ql/src/Summary/LinesOfUserCode.ql b/python/ql/src/Summary/LinesOfUserCode.ql index 528ae948cd7..a30ba7afd19 100644 --- a/python/ql/src/Summary/LinesOfUserCode.ql +++ b/python/ql/src/Summary/LinesOfUserCode.ql @@ -8,6 +8,7 @@ * @kind metric * @tags summary * lines-of-code + * telemetry * @id py/summary/lines-of-user-code */ diff --git a/ql/ql/src/queries/summary/LinesOfCode.ql b/ql/ql/src/queries/summary/LinesOfCode.ql index cb5ef617476..c0dbe831967 100644 --- a/ql/ql/src/queries/summary/LinesOfCode.ql +++ b/ql/ql/src/queries/summary/LinesOfCode.ql @@ -8,6 +8,7 @@ * @kind metric * @tags summary * lines-of-code + * telemetry */ import ql diff --git a/ql/ql/src/queries/summary/LinesOfUserCode.ql b/ql/ql/src/queries/summary/LinesOfUserCode.ql index 1701af1a5c9..8f49ce27d2f 100644 --- a/ql/ql/src/queries/summary/LinesOfUserCode.ql +++ b/ql/ql/src/queries/summary/LinesOfUserCode.ql @@ -6,6 +6,7 @@ * query counts the lines of code, excluding whitespace or comments. * @kind metric * @tags summary + * telemetry */ import ql diff --git a/ruby/ql/src/queries/summary/LinesOfCode.ql b/ruby/ql/src/queries/summary/LinesOfCode.ql index 74994d77347..34e7438bab1 100644 --- a/ruby/ql/src/queries/summary/LinesOfCode.ql +++ b/ruby/ql/src/queries/summary/LinesOfCode.ql @@ -8,6 +8,7 @@ * @kind metric * @tags summary * lines-of-code + * telemetry */ import codeql.ruby.AST diff --git a/ruby/ql/src/queries/summary/LinesOfUserCode.ql b/ruby/ql/src/queries/summary/LinesOfUserCode.ql index d8025088ceb..121124862a1 100644 --- a/ruby/ql/src/queries/summary/LinesOfUserCode.ql +++ b/ruby/ql/src/queries/summary/LinesOfUserCode.ql @@ -6,6 +6,7 @@ * query counts the lines of code, excluding whitespace or comments. * @kind metric * @tags summary + * telemetry */ import codeql.ruby.AST diff --git a/swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql b/swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql index 373b6c4bd0f..9fc40680852 100644 --- a/swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql +++ b/swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql @@ -4,6 +4,7 @@ * @kind metric * @id swift/diagnostics/successfully-extracted-lines * @tags summary + * telemetry */ import swift From bc745dfd5eea4e87a3d29bc745bea7cb815ba6b2 Mon Sep 17 00:00:00 2001 From: Ed Minnix Date: Mon, 11 Mar 2024 13:55:34 -0400 Subject: [PATCH 073/309] Windows registry sources --- csharp/ql/lib/ext/Microsoft.Win32.model.yml | 9 +++ .../security/dataflow/flowsources/Local.qll | 13 +++++ .../local/registry/Registry.expected | 8 +++ .../local/registry/Registry.ext.yml | 7 +++ .../flowsources/local/registry/Registry.ql | 6 ++ .../flowsources/local/registry/UseRegistry.cs | 55 +++++++++++++++++++ .../flowsources/local/registry/options | 3 + shared/mad/codeql/mad/ModelValidation.qll | 2 +- .../ext/threat-model-grouping.model.yml | 1 + 9 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 csharp/ql/lib/ext/Microsoft.Win32.model.yml create mode 100644 csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.expected create mode 100644 csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.ext.yml create mode 100644 csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.ql create mode 100644 csharp/ql/test/library-tests/dataflow/flowsources/local/registry/UseRegistry.cs create mode 100644 csharp/ql/test/library-tests/dataflow/flowsources/local/registry/options diff --git a/csharp/ql/lib/ext/Microsoft.Win32.model.yml b/csharp/ql/lib/ext/Microsoft.Win32.model.yml new file mode 100644 index 00000000000..c7e439f2910 --- /dev/null +++ b/csharp/ql/lib/ext/Microsoft.Win32.model.yml @@ -0,0 +1,9 @@ +extensions: + - addsTo: + pack: codeql/csharp-all + extensible: sourceModel + data: + - ["Microsoft.Win32", "Registry", False, "GetValue", "(System.String,System.String,System.Object)", "", "ReturnValue", "windows-registry", "manual"] + - ["Microsoft.Win32", "RegistryKey", False, "GetSubKeyNames", "()", "", "ReturnValue", "windows-registry", "manual"] + - ["Microsoft.Win32", "RegistryKey", False, "GetValue", "", "", "ReturnValue", "windows-registry", "manual"] + - ["Microsoft.Win32", "RegistryKey", False, "GetValueNames", "()", "", "ReturnValue", "windows-registry", "manual"] \ No newline at end of file diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Local.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Local.qll index 9f3f398e5b1..7ad656e11d3 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Local.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Local.qll @@ -55,3 +55,16 @@ abstract class CommandLineArgumentSource extends LocalFlowSource { private class MainMethodArgumentSource extends CommandLineArgumentSource { MainMethodArgumentSource() { this.asParameter() = any(MainMethod mainMethod).getAParameter() } } + +/** + * A data flow source that represents the access of a value from the Windows registry. + */ +abstract class WindowsRegistrySource extends LocalFlowSource { + override string getThreatModel() { result = "windows-registry" } + + override string getSourceType() { result = "a value from the Windows registry" } +} + +private class ExternalWindowsRegistrySource extends WindowsRegistrySource { + ExternalWindowsRegistrySource() { sourceNode(this, "windows-registry") } +} diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.expected b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.expected new file mode 100644 index 00000000000..9a5b8ef2c0e --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.expected @@ -0,0 +1,8 @@ +| UseRegistry.cs:10:36:10:58 | call to method GetValue | windows-registry | +| UseRegistry.cs:16:36:16:58 | call to method GetValue | windows-registry | +| UseRegistry.cs:22:36:22:58 | call to method GetValue | windows-registry | +| UseRegistry.cs:28:36:28:58 | call to method GetValue | windows-registry | +| UseRegistry.cs:34:36:34:58 | call to method GetValue | windows-registry | +| UseRegistry.cs:40:36:40:58 | call to method GetValue | windows-registry | +| UseRegistry.cs:46:35:46:53 | call to method GetValueNames | windows-registry | +| UseRegistry.cs:52:36:52:55 | call to method GetSubKeyNames | windows-registry | diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.ext.yml b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.ext.yml new file mode 100644 index 00000000000..71007f3394c --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.ext.yml @@ -0,0 +1,7 @@ +extensions: + + - addsTo: + pack: codeql/threat-models + extensible: threatModelConfiguration + data: + - ["windows-registry", true, 0] \ No newline at end of file diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.ql b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.ql new file mode 100644 index 00000000000..9e2934e9e19 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/Registry.ql @@ -0,0 +1,6 @@ +import csharp +import semmle.code.csharp.security.dataflow.flowsources.FlowSources + +from DataFlow::Node source +where source instanceof ThreatModelFlowSource +select source, source.(SourceNode).getThreatModel() diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/UseRegistry.cs b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/UseRegistry.cs new file mode 100644 index 00000000000..e5698127be4 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/UseRegistry.cs @@ -0,0 +1,55 @@ +using Microsoft.Win32; + +namespace Test +{ + class UseRegistry + { + public static void GetRegistryValue(string keyName, string valueName) + { + RegistryKey key = Registry.LocalMachine.OpenSubKey(keyName); + string value = (string)key.GetValue(valueName); + } + + public static void GetRegistryValue2(string keyName, string valueName) + { + RegistryKey key = Registry.CurrentUser.OpenSubKey(keyName); + string value = (string)key.GetValue(valueName); + } + + public static void GetRegistryValue3(string keyName, string valueName) + { + RegistryKey key = Registry.ClassesRoot.OpenSubKey(keyName); + string value = (string)key.GetValue(valueName); + } + + public static void GetRegistryValue4(string keyName, string valueName) + { + RegistryKey key = Registry.Users.OpenSubKey(keyName); + string value = (string)key.GetValue(valueName); + } + + public static void GetRegistryValue5(string keyName, string valueName) + { + RegistryKey key = Registry.CurrentConfig.OpenSubKey(keyName); + string value = (string)key.GetValue(valueName); + } + + public static void GetRegistryValue6(string keyName, string valueName) + { + RegistryKey key = Registry.PerformanceData.OpenSubKey(keyName); + string value = (string)key.GetValue(valueName); + } + + public static void GetRegistryValueNames(string keyName, string valueName) + { + RegistryKey key = Registry.LocalMachine.OpenSubKey(keyName); + string[] valueNames = key.GetValueNames(); + } + + public static void GetRegistrySubKeyNames(string keyName, string valueName) + { + RegistryKey key = Registry.LocalMachine.OpenSubKey(keyName); + string[] subKeyNames = key.GetSubKeyNames(); + } + } +} \ No newline at end of file diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/options b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/options new file mode 100644 index 00000000000..f28b8af0ae4 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/flowsources/local/registry/options @@ -0,0 +1,3 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: ${testdir}/../../../../../resources/stubs/Microsoft.VisualStudio.TestTools.UnitTesting.cs diff --git a/shared/mad/codeql/mad/ModelValidation.qll b/shared/mad/codeql/mad/ModelValidation.qll index 2f990af4e0f..bb3b8c174b9 100644 --- a/shared/mad/codeql/mad/ModelValidation.qll +++ b/shared/mad/codeql/mad/ModelValidation.qll @@ -120,7 +120,7 @@ module KindValidation { // Java "android-external-storage-dir", "contentprovider", // C# - "file-write", + "file-write", "windows-registry", // JavaScript "database-access-result" ] diff --git a/shared/threat-models/ext/threat-model-grouping.model.yml b/shared/threat-models/ext/threat-model-grouping.model.yml index 53107c1e32b..7cc650d3341 100644 --- a/shared/threat-models/ext/threat-model-grouping.model.yml +++ b/shared/threat-models/ext/threat-model-grouping.model.yml @@ -16,6 +16,7 @@ extensions: - ["commandargs", "local"] - ["environment", "local"] - ["file", "local"] + - ["windows-registry", "local"] # Android threat models - ["android-external-storage-dir", "android"] From 32e532ff3c6ed015996f760084b87023d19d4402 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 11 Mar 2024 18:42:42 +0000 Subject: [PATCH 074/309] C++: Some cleanup to avoid conflating the case of a function returning something as a return value, and a function updating one of its arguments. --- .../Likely Bugs/Format/NonConstantFormat.ql | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index 0d1cc7bcf39..72ce3590677 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -37,6 +37,11 @@ class UncalledFunction extends Function { } } +predicate dataFlowOrTaintFlowFunction(Function func, FunctionOutput output) { + func.(DataFlowFunction).hasDataFlow(_, output) or + func.(TaintFunction).hasTaintFlow(_, output) +} + /** * Holds if `node` is a non-constant source of data flow for non-const format string detection. * This is defined as either: @@ -81,24 +86,30 @@ predicate isNonConst(DataFlow::Node node) { // i.e., functions that with unknown bodies and are not known to define the output through its input // are considered as possible non-const sources // The function's output must also not be const to be considered a non-const source - exists(Function func, CallInstruction call | - // NOTE: could use `Call` getAnArgument() instead of `CallInstruction` but requires two - // variables representing the same call in ordoer to use `callOutput` below. - exists(Expr arg | - call.getPositionalArgumentOperand(_).getDef().getUnconvertedResultExpression() = arg and - arg = node.asDefiningArgument() + ( + // Case 1: It's a known dataflow or taintflow function with flow to the return value + exists(Function func, CallInstruction call | + // NOTE: could use `Call` getAnArgument() instead of `CallInstruction` but requires two + // variables representing the same call in ordoer to use `callOutput` below. + call.getUnconvertedResultExpression() = node.asIndirectExpr() and + func = call.getStaticCallTarget() and + not exists(FunctionOutput output | + dataFlowOrTaintFlowFunction(func, output) and + output.isReturnValueDeref() and + node = callOutput(call, output) + ) ) or - call.getUnconvertedResultExpression() = node.asIndirectExpr() - | - func = call.getStaticCallTarget() and - not exists(FunctionOutput output | - // NOTE: we must include dataflow and taintflow. e.g., including only dataflow we will find sprintf - // variant function's output are now possible non-const sources - pragma[only_bind_out](func).(DataFlowFunction).hasDataFlow(_, output) or - pragma[only_bind_out](func).(TaintFunction).hasTaintFlow(_, output) - | - node = callOutput(call, output) + // Case 1: It's a known dataflow or taintflow function with flow to an output parameter + exists(Function func, int i, CallInstruction call | + call.getPositionalArgumentOperand(i).getDef().getUnconvertedResultExpression() = + node.asDefiningArgument() and + func = call.getStaticCallTarget() and + not exists(FunctionOutput output | + dataFlowOrTaintFlowFunction(func, output) and + output.isParameterDeref(i) and + node = callOutput(call, output) + ) ) ) and not exists(Call c | From f97b6e2848a1af385534d341e56c770c8453cfde Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 11 Mar 2024 18:44:34 +0000 Subject: [PATCH 075/309] C++: Stop conflating pointers and indirections in the query. --- .../Likely Bugs/Format/NonConstantFormat.ql | 10 +++--- .../NonConstantFormat.expected | 33 +++++-------------- .../Format/NonConstantFormat/test.cpp | 4 +-- .../semmle/consts/NonConstantFormat.expected | 8 ----- 4 files changed, 17 insertions(+), 38 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index 72ce3590677..b02986e0b68 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -74,7 +74,9 @@ predicate isNonConst(DataFlow::Node node) { // Parameters of uncalled functions that aren't const exists(UncalledFunction f, Parameter p | f.getAParameter() = p and - p = node.asParameter() and + // We pick the indirection of the parameter since this query is focused + // on strings. + p = node.asParameter(1) and // Ignore main's argv parameter as it is already considered a `FlowSource` // not ignoring it will result in path redundancies (f.getName() = "main" implies p != f.getParameter(1)) @@ -116,7 +118,7 @@ predicate isNonConst(DataFlow::Node node) { c.getTarget().hasDefinition() and if node instanceof DataFlow::DefinitionByReferenceNode then c.getAnArgument() = node.asDefiningArgument() - else c = [node.asExpr(), node.asIndirectExpr()] + else c = node.asIndirectExpr() ) } @@ -125,7 +127,7 @@ predicate isNonConst(DataFlow::Node node) { * `FormattingFunctionCall`. */ predicate isSinkImpl(DataFlow::Node sink, Expr formatString) { - [sink.asExpr(), sink.asIndirectExpr()] = formatString and + sink.asIndirectExpr() = formatString and exists(FormattingFunctionCall fc | formatString = fc.getArgument(fc.getFormatParameterIndex())) } @@ -136,7 +138,7 @@ module NonConstFlowConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { // Ignore tracing non-const through array indices - exists(ArrayExpr a | a.getArrayOffset() = node.asExpr()) + exists(ArrayExpr a | a.getArrayOffset() = node.asIndirectExpr()) } } diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected index 2539c728d87..c3c94158da8 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected @@ -8,15 +8,10 @@ edges | nested.cpp:35:19:35:21 | *fmt | nested.cpp:27:32:27:34 | *fmt | provenance | | | nested.cpp:42:24:42:34 | *call to ext_fmt_str | nested.cpp:34:37:34:39 | *fmt | provenance | | | nested.cpp:86:19:86:46 | *call to __builtin_alloca | nested.cpp:87:18:87:20 | *fmt | provenance | | -| test.cpp:27:39:27:39 | n | test.cpp:27:13:27:24 | **make_message | provenance | | -| test.cpp:46:14:46:17 | argc | test.cpp:51:23:51:30 | ... - ... | provenance | | | test.cpp:46:27:46:30 | **argv | test.cpp:130:20:130:26 | *access to array | provenance | | -| test.cpp:51:23:51:30 | ... - ... | test.cpp:27:39:27:39 | n | provenance | | -| test.cpp:51:23:51:30 | ... - ... | test.cpp:51:10:51:21 | *call to make_message | provenance | | -| test.cpp:155:27:155:30 | data | test.cpp:157:12:157:15 | data | provenance | | -| test.cpp:167:31:167:34 | data | test.cpp:170:12:170:14 | *res | provenance | | -| test.cpp:193:32:193:34 | str | test.cpp:195:31:195:33 | str | provenance | | -| test.cpp:193:32:193:34 | str | test.cpp:197:11:197:14 | *wstr | provenance | | +| test.cpp:167:31:167:34 | *data | test.cpp:170:12:170:14 | *res | provenance | | +| test.cpp:193:32:193:34 | *str | test.cpp:195:31:195:33 | *str | provenance | | +| test.cpp:193:32:193:34 | *str | test.cpp:197:11:197:14 | *wstr | provenance | | | test.cpp:204:25:204:36 | *call to get_string | test.cpp:205:12:205:20 | *... + ... | provenance | | | test.cpp:204:25:204:36 | *call to get_string | test.cpp:206:12:206:16 | *hello | provenance | | | test.cpp:209:25:209:36 | *call to get_string | test.cpp:211:12:211:16 | *hello | provenance | | @@ -42,19 +37,12 @@ nodes | nested.cpp:79:32:79:38 | *call to get_fmt | semmle.label | *call to get_fmt | | nested.cpp:86:19:86:46 | *call to __builtin_alloca | semmle.label | *call to __builtin_alloca | | nested.cpp:87:18:87:20 | *fmt | semmle.label | *fmt | -| test.cpp:27:13:27:24 | **make_message | semmle.label | **make_message | -| test.cpp:27:39:27:39 | n | semmle.label | n | -| test.cpp:46:14:46:17 | argc | semmle.label | argc | | test.cpp:46:27:46:30 | **argv | semmle.label | **argv | -| test.cpp:51:10:51:21 | *call to make_message | semmle.label | *call to make_message | -| test.cpp:51:23:51:30 | ... - ... | semmle.label | ... - ... | | test.cpp:130:20:130:26 | *access to array | semmle.label | *access to array | -| test.cpp:155:27:155:30 | data | semmle.label | data | -| test.cpp:157:12:157:15 | data | semmle.label | data | -| test.cpp:167:31:167:34 | data | semmle.label | data | +| test.cpp:167:31:167:34 | *data | semmle.label | *data | | test.cpp:170:12:170:14 | *res | semmle.label | *res | -| test.cpp:193:32:193:34 | str | semmle.label | str | -| test.cpp:195:31:195:33 | str | semmle.label | str | +| test.cpp:193:32:193:34 | *str | semmle.label | *str | +| test.cpp:195:31:195:33 | *str | semmle.label | *str | | test.cpp:197:11:197:14 | *wstr | semmle.label | *wstr | | test.cpp:204:25:204:36 | *call to get_string | semmle.label | *call to get_string | | test.cpp:205:12:205:20 | *... + ... | semmle.label | *... + ... | @@ -74,7 +62,6 @@ nodes | test.cpp:245:25:245:36 | *call to get_string | semmle.label | *call to get_string | | test.cpp:247:12:247:16 | *hello | semmle.label | *hello | subpaths -| test.cpp:51:23:51:30 | ... - ... | test.cpp:27:39:27:39 | n | test.cpp:27:13:27:24 | **make_message | test.cpp:51:10:51:21 | *call to make_message | #select | NonConstantFormat.c:30:10:30:16 | *access to array | NonConstantFormat.c:28:27:28:30 | **argv | NonConstantFormat.c:30:10:30:16 | *access to array | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | NonConstantFormat.c:30:3:30:8 | call to printf | printf | | NonConstantFormat.c:41:9:41:45 | *call to any_random_function | NonConstantFormat.c:41:9:41:45 | *call to any_random_function | NonConstantFormat.c:41:9:41:45 | *call to any_random_function | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | NonConstantFormat.c:41:2:41:7 | call to printf | printf | @@ -82,12 +69,10 @@ subpaths | nested.cpp:21:23:21:26 | *fmt0 | nested.cpp:42:24:42:34 | *call to ext_fmt_str | nested.cpp:21:23:21:26 | *fmt0 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:21:5:21:12 | call to snprintf | snprintf | | nested.cpp:79:32:79:38 | *call to get_fmt | nested.cpp:79:32:79:38 | *call to get_fmt | nested.cpp:79:32:79:38 | *call to get_fmt | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:79:5:79:14 | call to diagnostic | diagnostic | | nested.cpp:87:18:87:20 | *fmt | nested.cpp:86:19:86:46 | *call to __builtin_alloca | nested.cpp:87:18:87:20 | *fmt | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:87:7:87:16 | call to diagnostic | diagnostic | -| test.cpp:51:10:51:21 | *call to make_message | test.cpp:46:14:46:17 | argc | test.cpp:51:10:51:21 | *call to make_message | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:51:3:51:8 | call to printf | printf | | test.cpp:130:20:130:26 | *access to array | test.cpp:46:27:46:30 | **argv | test.cpp:130:20:130:26 | *access to array | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:130:2:130:10 | call to sprintf | sprintf | -| test.cpp:157:12:157:15 | data | test.cpp:155:27:155:30 | data | test.cpp:157:12:157:15 | data | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:157:5:157:10 | call to printf | printf | -| test.cpp:170:12:170:14 | *res | test.cpp:167:31:167:34 | data | test.cpp:170:12:170:14 | *res | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:170:5:170:10 | call to printf | printf | -| test.cpp:195:31:195:33 | str | test.cpp:193:32:193:34 | str | test.cpp:195:31:195:33 | str | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:195:3:195:18 | call to StringCchPrintfW | StringCchPrintfW | -| test.cpp:197:11:197:14 | *wstr | test.cpp:193:32:193:34 | str | test.cpp:197:11:197:14 | *wstr | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:197:3:197:9 | call to wprintf | wprintf | +| test.cpp:170:12:170:14 | *res | test.cpp:167:31:167:34 | *data | test.cpp:170:12:170:14 | *res | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:170:5:170:10 | call to printf | printf | +| test.cpp:195:31:195:33 | *str | test.cpp:193:32:193:34 | *str | test.cpp:195:31:195:33 | *str | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:195:3:195:18 | call to StringCchPrintfW | StringCchPrintfW | +| test.cpp:197:11:197:14 | *wstr | test.cpp:193:32:193:34 | *str | test.cpp:197:11:197:14 | *wstr | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:197:3:197:9 | call to wprintf | wprintf | | test.cpp:205:12:205:20 | *... + ... | test.cpp:204:25:204:36 | *call to get_string | test.cpp:205:12:205:20 | *... + ... | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:205:5:205:10 | call to printf | printf | | test.cpp:206:12:206:16 | *hello | test.cpp:204:25:204:36 | *call to get_string | test.cpp:206:12:206:16 | *hello | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:206:5:206:10 | call to printf | printf | | test.cpp:211:12:211:16 | *hello | test.cpp:209:25:209:36 | *call to get_string | test.cpp:211:12:211:16 | *hello | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:211:5:211:10 | call to printf | printf | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/test.cpp b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/test.cpp index bc8d0c26bbb..e60db94f9b1 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/test.cpp +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/test.cpp @@ -48,7 +48,7 @@ int main(int argc, char **argv) { printf(choose_message(argc - 1), argc - 1); // GOOD printf(messages[1]); // GOOD printf(message); // GOOD - printf(make_message(argc - 1)); // BAD + printf(make_message(argc - 1)); // BAD [NOT DETECTED] printf("Hello, World\n"); // GOOD printf(_("Hello, World\n")); // GOOD { @@ -154,7 +154,7 @@ void print_ith_message() { void fmt_via_strcpy(char *data) { strcpy(data, "some string"); - printf(data); // GOOD [FALSE POSITIVE: Due to inaccurate dataflow killers] + printf(data); // GOOD } void fmt_with_assignment() { diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected index 91f3d367db6..7889b880374 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected @@ -23,9 +23,7 @@ edges | consts.cpp:106:13:106:19 | *call to varFunc | consts.cpp:107:9:107:10 | *v5 | provenance | | | consts.cpp:111:7:111:13 | *call to varFunc | consts.cpp:112:9:112:10 | *v6 | provenance | | | consts.cpp:139:13:139:16 | readString output argument | consts.cpp:140:9:140:11 | *v11 | provenance | | -| consts.cpp:139:13:139:16 | readString output argument | consts.cpp:140:9:140:11 | v11 | provenance | | | consts.cpp:144:16:144:18 | readStringRef output argument | consts.cpp:145:9:145:11 | *v12 | provenance | | -| consts.cpp:144:16:144:18 | readStringRef output argument | consts.cpp:145:9:145:11 | v12 | provenance | | nodes | consts.cpp:24:7:24:9 | **gv1 | semmle.label | **gv1 | | consts.cpp:29:7:29:25 | **nonConstFuncToArray | semmle.label | **nonConstFuncToArray | @@ -47,13 +45,9 @@ nodes | consts.cpp:130:9:130:10 | *v9 | semmle.label | *v9 | | consts.cpp:135:9:135:11 | *v10 | semmle.label | *v10 | | consts.cpp:139:13:139:16 | readString output argument | semmle.label | readString output argument | -| consts.cpp:139:13:139:16 | readString output argument | semmle.label | readString output argument | | consts.cpp:140:9:140:11 | *v11 | semmle.label | *v11 | -| consts.cpp:140:9:140:11 | v11 | semmle.label | v11 | -| consts.cpp:144:16:144:18 | readStringRef output argument | semmle.label | readStringRef output argument | | consts.cpp:144:16:144:18 | readStringRef output argument | semmle.label | readStringRef output argument | | consts.cpp:145:9:145:11 | *v12 | semmle.label | *v12 | -| consts.cpp:145:9:145:11 | v12 | semmle.label | v12 | subpaths #select | consts.cpp:86:9:86:10 | *v1 | consts.cpp:85:7:85:8 | gets output argument | consts.cpp:86:9:86:10 | *v1 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | consts.cpp:86:2:86:7 | call to printf | printf | @@ -78,6 +72,4 @@ subpaths | consts.cpp:135:9:135:11 | *v10 | consts.cpp:85:7:85:8 | gets output argument | consts.cpp:135:9:135:11 | *v10 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | consts.cpp:135:2:135:7 | call to printf | printf | | consts.cpp:135:9:135:11 | *v10 | consts.cpp:90:12:90:13 | gets output argument | consts.cpp:135:9:135:11 | *v10 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | consts.cpp:135:2:135:7 | call to printf | printf | | consts.cpp:140:9:140:11 | *v11 | consts.cpp:139:13:139:16 | readString output argument | consts.cpp:140:9:140:11 | *v11 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | consts.cpp:140:2:140:7 | call to printf | printf | -| consts.cpp:140:9:140:11 | v11 | consts.cpp:139:13:139:16 | readString output argument | consts.cpp:140:9:140:11 | v11 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | consts.cpp:140:2:140:7 | call to printf | printf | | consts.cpp:145:9:145:11 | *v12 | consts.cpp:144:16:144:18 | readStringRef output argument | consts.cpp:145:9:145:11 | *v12 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | consts.cpp:145:2:145:7 | call to printf | printf | -| consts.cpp:145:9:145:11 | v12 | consts.cpp:144:16:144:18 | readStringRef output argument | consts.cpp:145:9:145:11 | v12 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | consts.cpp:145:2:145:7 | call to printf | printf | From 2345907a52b1f690f2647394bf6d12ef0123dbfe Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 11 Mar 2024 18:49:03 +0000 Subject: [PATCH 076/309] C++: Reintroduce the 'cannotContainString' optimization that was removed in #15516. --- .../Likely Bugs/Format/NonConstantFormat.ql | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index b02986e0b68..ee3139f3682 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -37,6 +37,25 @@ class UncalledFunction extends Function { } } +/** + * Holds if `t` cannot refer to a string. That is, it's a built-in + * or arithmetic type that is not a "`char` like" type. + */ +predicate cannotContainString(Type t) { + exists(Type unspecified | + unspecified = t.getUnspecifiedType() and + not unspecified instanceof UnknownType and + not unspecified instanceof CharType and + not unspecified instanceof WideCharType and + not unspecified instanceof Char8Type and + not unspecified instanceof Char16Type and + not unspecified instanceof Char32Type + | + unspecified instanceof ArithmeticType or + unspecified instanceof BuiltInType + ) +} + predicate dataFlowOrTaintFlowFunction(Function func, FunctionOutput output) { func.(DataFlowFunction).hasDataFlow(_, output) or func.(TaintFunction).hasTaintFlow(_, output) @@ -132,13 +151,24 @@ predicate isSinkImpl(DataFlow::Node sink, Expr formatString) { } module NonConstFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { isNonConst(source) } + predicate isSource(DataFlow::Node source) { + exists(Type t | + isNonConst(source) and + t = source.getType() and + not cannotContainString(t) + ) + } predicate isSink(DataFlow::Node sink) { isSinkImpl(sink, _) } predicate isBarrier(DataFlow::Node node) { // Ignore tracing non-const through array indices exists(ArrayExpr a | a.getArrayOffset() = node.asIndirectExpr()) + or + exists(Type t | + t = node.getType() and + cannotContainString(t) + ) } } From 9854ed4b89f4f0194085504f776a87eb5d3ce57e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 11 Mar 2024 18:54:53 +0000 Subject: [PATCH 077/309] C++: Delete comment. --- cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index ee3139f3682..461df854c75 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -110,8 +110,6 @@ predicate isNonConst(DataFlow::Node node) { ( // Case 1: It's a known dataflow or taintflow function with flow to the return value exists(Function func, CallInstruction call | - // NOTE: could use `Call` getAnArgument() instead of `CallInstruction` but requires two - // variables representing the same call in ordoer to use `callOutput` below. call.getUnconvertedResultExpression() = node.asIndirectExpr() and func = call.getStaticCallTarget() and not exists(FunctionOutput output | From e82e3180f0ea444915438b3195e2402c60284bf9 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 8 Mar 2024 08:47:46 +0100 Subject: [PATCH 078/309] Data flow: Replace `hasLocationInfo` with `getLocation` --- shared/dataflow/codeql/dataflow/DataFlow.qll | 65 ++++++++----------- .../codeql/dataflow/TaintTracking.qll | 12 ++-- .../codeql/dataflow/internal/DataFlowImpl.qll | 61 ++++++----------- .../dataflow/internal/DataFlowImplCommon.qll | 45 +++---------- .../internal/DataFlowImplConsistency.qll | 14 ++-- .../dataflow/internal/FlowSummaryImpl.qll | 13 ++-- .../codeql/dataflow/test/InlineFlowTest.qll | 14 ++-- 7 files changed, 86 insertions(+), 138 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 6a18c166613..ebb9f7c8c25 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -4,8 +4,10 @@ * modules. */ +private import codeql.util.Location + /** Provides language-specific data flow parameters. */ -signature module InputSig { +signature module InputSig { /** * A node in the data flow graph. */ @@ -13,16 +15,8 @@ signature module InputSig { /** Gets a textual representation of this element. */ string toString(); - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ); + /** Gets the location of this node. */ + Location getLocation(); } class ParameterNode extends Node; @@ -321,9 +315,9 @@ signature module InputSig { default predicate ignoreFieldFlowBranchLimit(DataFlowCallable c) { none() } } -module Configs { +module Configs Lang> { private import Lang - private import internal.DataFlowImplCommon::MakeImplCommon + private import internal.DataFlowImplCommon::MakeImplCommon import DataFlowImplCommonPublic /** An input configuration for data flow. */ @@ -531,10 +525,10 @@ module Configs { } } -module DataFlowMake { +module DataFlowMake Lang> { private import Lang - private import internal.DataFlowImpl::MakeImpl - import Configs + private import internal.DataFlowImpl::MakeImpl + import Configs /** * Gets the exploration limit for `partialFlow` and `partialFlowRev` @@ -613,19 +607,11 @@ module DataFlowMake { /** Gets a textual representation of this element. */ string toString(); - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ); - /** Gets the underlying `Node`. */ Node getNode(); + + /** Gets the location of this node. */ + Location getLocation(); } signature module PathGraphSig { @@ -668,6 +654,15 @@ module DataFlowMake { result = this.asPathNode2().toString() } + /** Gets the underlying `Node`. */ + Node getNode() { + result = this.asPathNode1().getNode() or + result = this.asPathNode2().getNode() + } + + /** Gets the location of this node. */ + Location getLocation() { result = this.getNode().getLocation() } + /** * Holds if this element is at the specified location. * The location spans column `startcolumn` of line `startline` to @@ -675,17 +670,10 @@ module DataFlowMake { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { - this.asPathNode1().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) or - this.asPathNode2().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - - /** Gets the underlying `Node`. */ - Node getNode() { - result = this.asPathNode1().getNode() or - result = this.asPathNode2().getNode() + this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) } } @@ -750,7 +738,7 @@ module DataFlowMake { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) @@ -758,6 +746,9 @@ module DataFlowMake { /** Gets the underlying `Node`. */ Node getNode() { result = super.getNode() } + + /** Gets the location of this node. */ + Location getLocation() { result = super.getLocation() } } /** diff --git a/shared/dataflow/codeql/dataflow/TaintTracking.qll b/shared/dataflow/codeql/dataflow/TaintTracking.qll index 73960fbca1d..c7d4f6bf505 100644 --- a/shared/dataflow/codeql/dataflow/TaintTracking.qll +++ b/shared/dataflow/codeql/dataflow/TaintTracking.qll @@ -5,11 +5,12 @@ private import DataFlow as DF private import internal.DataFlowImpl +private import codeql.util.Location /** * Provides language-specific taint-tracking parameters. */ -signature module InputSig { +signature module InputSig Lang> { /** * Holds if `node` should be a sanitizer in all global taint flow configurations * but not in local taint. @@ -33,10 +34,13 @@ signature module InputSig { /** * Construct the modules for taint-tracking analyses. */ -module TaintFlowMake TaintTrackingLang> { +module TaintFlowMake< + LocationSig Location, DF::InputSig DataFlowLang, + InputSig TaintTrackingLang> +{ private import TaintTrackingLang - private import DF::DataFlowMake as DataFlow - private import MakeImpl as DataFlowInternal + private import DF::DataFlowMake as DataFlow + private import MakeImpl as DataFlowInternal private module AddTaintDefaults implements DataFlowInternal::FullStateConfigSig diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index d555b281710..1db7a258181 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -7,12 +7,13 @@ private import codeql.util.Unit private import codeql.util.Option private import codeql.util.Boolean +private import codeql.util.Location private import codeql.dataflow.DataFlow -module MakeImpl { +module MakeImpl Lang> { private import Lang - private import DataFlowMake - private import DataFlowImplCommon::MakeImplCommon + private import DataFlowMake + private import DataFlowImplCommon::MakeImplCommon private import DataFlowImplCommonPublic /** @@ -192,11 +193,7 @@ module MakeImpl { pragma[only_bind_out](this).getDataFlowType0() = pragma[only_bind_into](result) } - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.projectToNode().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + Location getLocation() { result = this.projectToNode().getLocation() } } private class ArgNodeEx extends NodeEx { @@ -3305,11 +3302,7 @@ module MakeImpl { override string toString() { result = p + concat(" : " + ppReprType(t)) + " " + ap } - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - p.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + Location getLocation() { result = p.getLocation() } } /** @@ -3727,18 +3720,8 @@ module MakeImpl { this.ppSummaryCtx() } - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getNodeEx().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + /** Gets the location of this node. */ + Location getLocation() { result = this.getNodeEx().getLocation() } } /** Holds if `n` can reach a sink. */ @@ -3774,6 +3757,9 @@ module MakeImpl { */ final string toStringWithContext() { result = super.toStringWithContext() } + /** Gets the location of this node. */ + Location getLocation() { result = super.getLocation() } + /** * Holds if this element is at the specified location. * The location spans column `startcolumn` of line `startline` to @@ -3781,10 +3767,11 @@ module MakeImpl { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - final predicate hasLocationInfo( + pragma[inline] + deprecated final predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) } /** Gets the underlying `Node`. */ @@ -3945,12 +3932,6 @@ module MakeImpl { override predicate isSource() { none() } override string toString() { result = sourceGroup } - - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - filepath = "" and startline = 0 and startcolumn = 0 and endline = 0 and endcolumn = 0 - } } private class PathNodeSinkGroup extends PathNodeImpl, TPathNodeSinkGroup { @@ -3967,12 +3948,6 @@ module MakeImpl { override predicate isSource() { none() } override string toString() { result = sinkGroup } - - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - filepath = "" and startline = 0 and startcolumn = 0 and endline = 0 and endcolumn = 0 - } } private predicate pathNode( @@ -4801,6 +4776,9 @@ module MakeImpl { result = this.getNodeEx().toString() + this.ppType() + this.ppAp() + this.ppCtx() } + /** Gets the location of this node. */ + Location getLocation() { result = this.getNodeEx().getLocation() } + /** * Holds if this element is at the specified location. * The location spans column `startcolumn` of line `startline` to @@ -4808,10 +4786,11 @@ module MakeImpl { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + pragma[inline] + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { - this.getNodeEx().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) } /** Gets the underlying `Node`. */ diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index 679be2cb5c6..1caf76de7bc 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -1,8 +1,9 @@ private import codeql.dataflow.DataFlow private import codeql.typetracking.TypeTracking as Tt +private import codeql.util.Location private import codeql.util.Unit -module MakeImplCommon { +module MakeImplCommon Lang> { private import Lang import Cached @@ -1642,19 +1643,15 @@ module MakeImplCommon { } } + final private class NodeFinal = Node; + /** * A `Node` at which a cast can occur such that the type should be checked. */ - class CastingNode instanceof Node { + class CastingNode extends NodeFinal { CastingNode() { castingNode(this) } string toString() { result = super.toString() } - - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } } private predicate readStepWithTypes( @@ -1800,17 +1797,11 @@ module MakeImplCommon { * The value of a parameter at function entry, viewed as a node in a data * flow graph. */ - class ParamNode instanceof Node { + class ParamNode extends NodeFinal { ParamNode() { parameterNode(this, _, _) } string toString() { result = super.toString() } - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - /** * Holds if this node is the parameter of callable `c` at the specified * position. @@ -1821,17 +1812,11 @@ module MakeImplCommon { } /** A data-flow node that represents a call argument. */ - class ArgNode instanceof Node { + class ArgNode extends NodeFinal { ArgNode() { argumentNode(this, _, _) } string toString() { result = super.toString() } - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - /** Holds if this argument occurs at the given position in the given call. */ final predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { argumentNode(this, call, pos) @@ -1842,17 +1827,11 @@ module MakeImplCommon { * A node from which flow can return to the caller. This is either a regular * `ReturnNode` or a `PostUpdateNode` corresponding to the value of a parameter. */ - class ReturnNodeExt instanceof Node { + class ReturnNodeExt extends NodeFinal { ReturnNodeExt() { returnNodeExt(this, _) } string toString() { result = super.toString() } - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - /** Gets the kind of this returned value. */ ReturnKindExt getKind() { returnNodeExt(this, result) } } @@ -1861,16 +1840,10 @@ module MakeImplCommon { * A node to which data can flow from a call. Either an ordinary out node * or a post-update node associated with a call argument. */ - class OutNodeExt instanceof Node { + class OutNodeExt extends NodeFinal { OutNodeExt() { outNodeExt(this) } string toString() { result = super.toString() } - - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } } /** diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll index 374d42e9ad5..1d0f8d1969d 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplConsistency.qll @@ -5,8 +5,9 @@ private import codeql.dataflow.DataFlow as DF private import codeql.dataflow.TaintTracking as TT +private import codeql.util.Location -signature module InputSig { +signature module InputSig DataFlowLang> { /** Holds if `n` should be excluded from the consistency test `uniqueEnclosingCallable`. */ default predicate uniqueEnclosingCallableExclude(DataFlowLang::Node n) { none() } @@ -71,8 +72,8 @@ signature module InputSig { } module MakeConsistency< - DF::InputSig DataFlowLang, TT::InputSig TaintTrackingLang, - InputSig Input> + LocationSig Location, DF::InputSig DataFlowLang, + TT::InputSig TaintTrackingLang, InputSig Input> { private import DataFlowLang private import TaintTrackingLang @@ -128,10 +129,7 @@ module MakeConsistency< query predicate uniqueNodeLocation(Node n, string msg) { exists(int c | - c = - count(string filepath, int startline, int startcolumn, int endline, int endcolumn | - n.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - ) and + c = count(n.getLocation()) and c != 1 and not Input::uniqueNodeLocationExclude(n) and msg = "Node should have one location but has " + c + "." @@ -142,7 +140,7 @@ module MakeConsistency< exists(int c | c = strictcount(Node n | - not n.hasLocationInfo(_, _, _, _, _) and + not exists(n.getLocation()) and not Input::missingLocationExclude(n) ) and msg = "Nodes without location: " + c diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index f3e840720ab..4d6df294521 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -10,7 +10,7 @@ private import AccessPathSyntax as AccessPathSyntax /** * Provides language-specific parameters. */ -signature module InputSig { +signature module InputSig Lang> { /** * A base class of callables that are candidates for flow summary modeling. */ @@ -139,10 +139,12 @@ signature module InputSig { } } -module Make Input> { +module Make< + LocationSig Location, DF::InputSig DataFlowLang, InputSig Input> +{ private import DataFlowLang private import Input - private import codeql.dataflow.internal.DataFlowImplCommon::MakeImplCommon + private import codeql.dataflow.internal.DataFlowImplCommon::MakeImplCommon private import codeql.util.Unit final private class SummarizedCallableBaseFinal = SummarizedCallableBase; @@ -1457,7 +1459,7 @@ module Make Input> { AccessPathSyntax::parseInt(part.getArgumentList()) < 0 } - signature module SourceSinkInterpretationInputSig { + signature module SourceSinkInterpretationInputSig { class Element { string toString(); @@ -1523,8 +1525,7 @@ module Make Input> { * Should eventually be replaced with API graphs like in dynamic languages. */ module SourceSinkInterpretation< - LocationSig Location, - SourceSinkInterpretationInputSig SourceSinkInterpretationInput> + SourceSinkInterpretationInputSig SourceSinkInterpretationInput> { private import SourceSinkInterpretationInput diff --git a/shared/dataflow/codeql/dataflow/test/InlineFlowTest.qll b/shared/dataflow/codeql/dataflow/test/InlineFlowTest.qll index 22a55f5aa07..e35d1332bca 100644 --- a/shared/dataflow/codeql/dataflow/test/InlineFlowTest.qll +++ b/shared/dataflow/codeql/dataflow/test/InlineFlowTest.qll @@ -29,8 +29,9 @@ private import codeql.dataflow.DataFlow as DF private import codeql.dataflow.TaintTracking as TT private import codeql.util.test.InlineExpectationsTest as IET +private import codeql.util.Location -signature module InputSig { +signature module InputSig DataFlowLang> { predicate defaultSource(DataFlowLang::Node source); predicate defaultSink(DataFlowLang::Node source); @@ -40,12 +41,13 @@ signature module InputSig { } module InlineFlowTestMake< - DF::InputSig DataFlowLang, TT::InputSig TaintTrackingLang, - IET::InlineExpectationsTestSig Test, InputSig Impl> + LocationSig Location, DF::InputSig DataFlowLang, + TT::InputSig TaintTrackingLang, IET::InlineExpectationsTestSig Test, + InputSig Impl> { - private module DataFlow = DF::DataFlowMake; + private module DataFlow = DF::DataFlowMake; - private module TaintTracking = TT::TaintFlowMake; + private module TaintTracking = TT::TaintFlowMake; private module InlineExpectationsTest = IET::Make; @@ -76,7 +78,7 @@ module InlineFlowTestMake< private predicate hasLocationInfo(DataFlowLang::Node node, Test::Location location) { exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | - node.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + node.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and location.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) ) } From 4291290277e7e1618e4902fd17ababe22c146cd6 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 8 Mar 2024 09:04:29 +0100 Subject: [PATCH 079/309] Ruby: Implement new data flow interface --- ruby/ql/consistency-queries/DataFlowConsistency.ql | 4 ++-- ruby/ql/lib/codeql/ruby/DataFlow.qll | 2 +- ruby/ql/lib/codeql/ruby/TaintTracking.qll | 3 ++- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll | 3 ++- .../lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll | 3 ++- .../codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll | 3 ++- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll | 2 +- .../ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll | 4 ++-- .../ruby/dataflow/internal/TaintTrackingImplSpecific.qll | 3 ++- ruby/ql/test/TestUtilities/InlineFlowTest.qll | 5 +++-- 10 files changed, 19 insertions(+), 13 deletions(-) diff --git a/ruby/ql/consistency-queries/DataFlowConsistency.ql b/ruby/ql/consistency-queries/DataFlowConsistency.ql index d064eeb3701..76155d5d1c1 100644 --- a/ruby/ql/consistency-queries/DataFlowConsistency.ql +++ b/ruby/ql/consistency-queries/DataFlowConsistency.ql @@ -5,7 +5,7 @@ private import codeql.ruby.dataflow.internal.DataFlowImplSpecific private import codeql.ruby.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency -private module Input implements InputSig { +private module Input implements InputSig { private import RubyDataFlow predicate postWithInFlowExclude(Node n) { n instanceof FlowSummaryNode } @@ -46,4 +46,4 @@ private module Input implements InputSig { } } -import MakeConsistency +import MakeConsistency diff --git a/ruby/ql/lib/codeql/ruby/DataFlow.qll b/ruby/ql/lib/codeql/ruby/DataFlow.qll index aa6e7e0cd59..f17c85143f5 100644 --- a/ruby/ql/lib/codeql/ruby/DataFlow.qll +++ b/ruby/ql/lib/codeql/ruby/DataFlow.qll @@ -12,6 +12,6 @@ import codeql.Locations module DataFlow { private import codeql.ruby.dataflow.internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake + import DataFlowMake import codeql.ruby.dataflow.internal.DataFlowImpl1 } diff --git a/ruby/ql/lib/codeql/ruby/TaintTracking.qll b/ruby/ql/lib/codeql/ruby/TaintTracking.qll index 461a423e1f1..7534b28079a 100644 --- a/ruby/ql/lib/codeql/ruby/TaintTracking.qll +++ b/ruby/ql/lib/codeql/ruby/TaintTracking.qll @@ -7,6 +7,7 @@ module TaintTracking { private import codeql.ruby.dataflow.internal.DataFlowImplSpecific private import codeql.ruby.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.TaintTracking - import TaintFlowMake + private import codeql.Locations + import TaintFlowMake import codeql.ruby.dataflow.internal.tainttracking1.TaintTrackingImpl } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index 277b639d0ab..21ceca9e3b5 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -1,3 +1,4 @@ +private import codeql.Locations private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl -import MakeImpl +import MakeImpl diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll index 05e0bc67b30..0b0e883803e 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplCommon.qll @@ -1,3 +1,4 @@ +private import codeql.Locations private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImplCommon -import MakeImplCommon +import MakeImplCommon diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll index 7a8e6dad9f8..b342537b053 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplSpecific.qll @@ -2,6 +2,7 @@ * Provides Ruby-specific definitions for use in the data flow library. */ +private import codeql.Locations private import codeql.dataflow.DataFlow module Private { @@ -13,7 +14,7 @@ module Public { import DataFlowPublic } -module RubyDataFlow implements InputSig { +module RubyDataFlow implements InputSig { import Private import Public diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 8d0c565a737..c1c625a2316 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -35,7 +35,7 @@ class Node extends TNode { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll index 59f8e541b3d..d0beb44ac7b 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll @@ -9,7 +9,7 @@ private import codeql.ruby.dataflow.internal.DataFlowImplSpecific as DataFlowImp private import DataFlowImplSpecific::Private private import DataFlowImplSpecific::Public -module Input implements InputSig { +module Input implements InputSig { class SummarizedCallableBase = string; ArgumentPosition callbackSelfParameterPosition() { result.isLambdaSelf() } @@ -146,7 +146,7 @@ module Input implements InputSig { } } -private import Make as Impl +private import Make as Impl private module StepsInput implements Impl::Private::StepsInputSig { DataFlowCall getACall(Public::SummarizedCallable sc) { diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingImplSpecific.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingImplSpecific.qll index fe733ee5d95..987aefdda72 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingImplSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/TaintTrackingImplSpecific.qll @@ -2,9 +2,10 @@ * Provides Ruby-specific definitions for use in the taint tracking library. */ +private import codeql.Locations private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific -module RubyTaintTracking implements InputSig { +module RubyTaintTracking implements InputSig { import TaintTrackingPrivate } diff --git a/ruby/ql/test/TestUtilities/InlineFlowTest.qll b/ruby/ql/test/TestUtilities/InlineFlowTest.qll index c9ceda9dff5..7d8a4cb03b8 100644 --- a/ruby/ql/test/TestUtilities/InlineFlowTest.qll +++ b/ruby/ql/test/TestUtilities/InlineFlowTest.qll @@ -4,12 +4,13 @@ */ import ruby +private import codeql.Locations private import codeql.dataflow.test.InlineFlowTest private import codeql.ruby.dataflow.internal.DataFlowImplSpecific private import codeql.ruby.dataflow.internal.TaintTrackingImplSpecific private import internal.InlineExpectationsTestImpl -private module FlowTestImpl implements InputSig { +private module FlowTestImpl implements InputSig { import TestUtilities.InlineFlowTestUtil bindingset[src, sink] @@ -19,4 +20,4 @@ private module FlowTestImpl implements InputSig { } } -import InlineFlowTestMake +import InlineFlowTestMake From 257686eb9a3554d8d602c98be2baaaa67fe8effc Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 8 Mar 2024 09:14:09 +0100 Subject: [PATCH 080/309] C#: Implement new data flow interface --- csharp/ql/consistency-queries/DataFlowConsistency.ql | 4 ++-- csharp/ql/lib/semmle/code/csharp/dataflow/DataFlow.qll | 2 +- .../ql/lib/semmle/code/csharp/dataflow/TaintTracking.qll | 2 +- .../semmle/code/csharp/dataflow/internal/DataFlowImpl.qll | 3 ++- .../code/csharp/dataflow/internal/DataFlowImplCommon.qll | 3 ++- .../csharp/dataflow/internal/DataFlowImplSpecific.qll | 3 ++- .../code/csharp/dataflow/internal/DataFlowPublic.qll | 2 +- .../code/csharp/dataflow/internal/FlowSummaryImpl.qll | 8 ++++---- .../dataflow/internal/TaintTrackingImplSpecific.qll | 3 ++- csharp/ql/test/TestUtilities/InlineFlowTest.qll | 4 ++-- 10 files changed, 19 insertions(+), 15 deletions(-) diff --git a/csharp/ql/consistency-queries/DataFlowConsistency.ql b/csharp/ql/consistency-queries/DataFlowConsistency.ql index 1ee888329c7..2f34368b669 100644 --- a/csharp/ql/consistency-queries/DataFlowConsistency.ql +++ b/csharp/ql/consistency-queries/DataFlowConsistency.ql @@ -4,7 +4,7 @@ private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency -private module Input implements InputSig { +private module Input implements InputSig { private import CsharpDataFlow private predicate isStaticAssignable(Assignable a) { a.(Modifiable).isStatic() } @@ -99,4 +99,4 @@ private module Input implements InputSig { } } -import MakeConsistency +import MakeConsistency diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/DataFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/DataFlow.qll index 17e698dce2d..0fc12debaa8 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/DataFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/DataFlow.qll @@ -8,6 +8,6 @@ import csharp module DataFlow { private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake + import DataFlowMake import semmle.code.csharp.dataflow.internal.DataFlowImpl1 } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/TaintTracking.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/TaintTracking.qll index 7243d36b05d..fb39294ed23 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/TaintTracking.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/TaintTracking.qll @@ -10,6 +10,6 @@ module TaintTracking { private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.TaintTracking - import TaintFlowMake + import TaintFlowMake import semmle.code.csharp.dataflow.internal.tainttracking1.TaintTrackingImpl } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index 4cf39afc812..09e47bdd831 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -1,3 +1,4 @@ +private import semmle.code.csharp.Location private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl -import MakeImpl +import MakeImpl diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll index 55829d7d059..72ccd3152da 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll @@ -1,3 +1,4 @@ +private import semmle.code.csharp.Location private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImplCommon -import MakeImplCommon +import MakeImplCommon diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll index 774dc6bd86a..af104d777b8 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll @@ -2,6 +2,7 @@ * Provides C#-specific definitions for use in the data flow library. */ +private import semmle.code.csharp.Location private import codeql.dataflow.DataFlow module Private { @@ -13,7 +14,7 @@ module Public { import DataFlowPublic } -module CsharpDataFlow implements InputSig { +module CsharpDataFlow implements InputSig { import Private import Public diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll index bf30fe5112d..20e3dd8eb7d 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll @@ -58,7 +58,7 @@ class Node extends TNode { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index 19972a86ab6..8c76fc3d1a7 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -12,7 +12,7 @@ private import DataFlowImplSpecific::Public private import semmle.code.csharp.Unification private import semmle.code.csharp.dataflow.internal.ExternalFlow -module Input implements InputSig { +module Input implements InputSig { class SummarizedCallableBase = UnboundCallable; ArgumentPosition callbackSelfParameterPosition() { result.isDelegateSelf() } @@ -80,7 +80,7 @@ module Input implements InputSig { } } -private import Make as Impl +private import Make as Impl private module TypesInput implements Impl::Private::TypesInputSig { DataFlowType getSyntheticGlobalType(Impl::Private::SyntheticGlobal sg) { @@ -154,7 +154,7 @@ private module StepsInput implements Impl::Private::StepsInputSig { } module SourceSinkInterpretationInput implements - Impl::Private::External::SourceSinkInterpretationInputSig + Impl::Private::External::SourceSinkInterpretationInputSig { private import csharp as Cs @@ -252,7 +252,7 @@ module Private { module External { import Impl::Private::External - import Impl::Private::External::SourceSinkInterpretation + import Impl::Private::External::SourceSinkInterpretation } private module SummaryComponentInternal = Impl::Private::SummaryComponent; diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingImplSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingImplSpecific.qll index 17a0d2c3c1a..b33d582021f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingImplSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingImplSpecific.qll @@ -2,9 +2,10 @@ * Provides C#-specific definitions for use in the taint tracking library. */ +private import semmle.code.csharp.Location private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific -module CsharpTaintTracking implements InputSig { +module CsharpTaintTracking implements InputSig { import TaintTrackingPrivate } diff --git a/csharp/ql/test/TestUtilities/InlineFlowTest.qll b/csharp/ql/test/TestUtilities/InlineFlowTest.qll index b7d7226e812..bf7463535e1 100644 --- a/csharp/ql/test/TestUtilities/InlineFlowTest.qll +++ b/csharp/ql/test/TestUtilities/InlineFlowTest.qll @@ -9,7 +9,7 @@ private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific private import internal.InlineExpectationsTestImpl -private module FlowTestImpl implements InputSig { +private module FlowTestImpl implements InputSig { predicate defaultSource(DataFlow::Node source) { source.asExpr().(MethodCall).getTarget().getUndecoratedName() = ["Source", "Taint"] } @@ -35,4 +35,4 @@ private module FlowTestImpl implements InputSig { } } -import InlineFlowTestMake +import InlineFlowTestMake From 1c57e996860357f0bc73987256ff6de496139b02 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 8 Mar 2024 09:48:37 +0100 Subject: [PATCH 081/309] C++: Implement new data flow interface --- cpp/ql/lib/semmle/code/cpp/dataflow/DataFlow.qll | 2 +- cpp/ql/lib/semmle/code/cpp/dataflow/TaintTracking.qll | 2 +- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 3 ++- .../semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll | 3 ++- .../code/cpp/dataflow/internal/DataFlowImplConsistency.qll | 4 ++-- .../code/cpp/dataflow/internal/DataFlowImplSpecific.qll | 3 ++- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll | 2 +- .../code/cpp/dataflow/internal/TaintTrackingImplSpecific.qll | 3 ++- cpp/ql/lib/semmle/code/cpp/dataflow/new/DataFlow.qll | 2 +- cpp/ql/lib/semmle/code/cpp/dataflow/new/TaintTracking.qll | 3 ++- cpp/ql/lib/semmle/code/cpp/ir/dataflow/DataFlow.qll | 2 +- cpp/ql/lib/semmle/code/cpp/ir/dataflow/TaintTracking.qll | 2 +- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 3 ++- .../code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll | 3 ++- .../code/cpp/ir/dataflow/internal/DataFlowImplConsistency.qll | 4 ++-- .../code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll | 3 ++- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 2 +- .../cpp/ir/dataflow/internal/TaintTrackingImplSpecific.qll | 3 ++- 18 files changed, 29 insertions(+), 20 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/DataFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/DataFlow.qll index 43bf134ea79..505b2e190e5 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/DataFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/DataFlow.qll @@ -28,6 +28,6 @@ import cpp deprecated module DataFlow { private import semmle.code.cpp.dataflow.internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake + import DataFlowMake import semmle.code.cpp.dataflow.internal.DataFlowImpl1 } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/TaintTracking.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/TaintTracking.qll index 8a8db1bdcce..1f93e2a74df 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/TaintTracking.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/TaintTracking.qll @@ -29,6 +29,6 @@ deprecated module TaintTracking { private import semmle.code.cpp.dataflow.internal.DataFlowImplSpecific private import semmle.code.cpp.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.TaintTracking - import TaintFlowMake + import TaintFlowMake import semmle.code.cpp.dataflow.internal.tainttracking1.TaintTrackingImpl } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index 115e145bec0..2038b14880a 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -2,6 +2,7 @@ * DEPRECATED: Use `semmle.code.cpp.dataflow.new.DataFlow` instead. */ +private import semmle.code.cpp.Location private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl -import MakeImpl +import MakeImpl diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll index 5d61aac1561..b6e72884fa8 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll @@ -2,6 +2,7 @@ * DEPRECATED: Use `semmle.code.cpp.dataflow.new.DataFlow` instead. */ +private import semmle.code.cpp.Location private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImplCommon -import MakeImplCommon +import MakeImplCommon diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplConsistency.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplConsistency.qll index 8abc7a8760a..558bb80f368 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplConsistency.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplConsistency.qll @@ -10,7 +10,7 @@ private import DataFlowImplSpecific private import TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency -private module Input implements InputSig { +private module Input implements InputSig { predicate argHasPostUpdateExclude(Private::ArgumentNode n) { // Is the null pointer (or something that's not really a pointer) exists(n.asExpr().getValue()) @@ -26,4 +26,4 @@ private module Input implements InputSig { } } -module Consistency = MakeConsistency; +module Consistency = MakeConsistency; diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplSpecific.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplSpecific.qll index e8686419aac..f2e9ffc6988 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplSpecific.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplSpecific.qll @@ -4,6 +4,7 @@ * Provides C++-specific definitions for use in the data flow library. */ +private import semmle.code.cpp.Location private import codeql.dataflow.DataFlow module Private { @@ -15,7 +16,7 @@ module Public { import DataFlowUtil } -module CppOldDataFlow implements InputSig { +module CppOldDataFlow implements InputSig { import Private import Public diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll index 83efaf1511f..0b932e7f05f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll @@ -105,7 +105,7 @@ class Node extends TNode { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/TaintTrackingImplSpecific.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/TaintTrackingImplSpecific.qll index e1549ea57a3..694d344c2f9 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/TaintTrackingImplSpecific.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/TaintTrackingImplSpecific.qll @@ -4,9 +4,10 @@ * Provides C++-specific definitions for use in the taint tracking library. */ +private import semmle.code.cpp.Location private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific -module CppOldTaintTracking implements InputSig { +module CppOldTaintTracking implements InputSig { import TaintTrackingUtil } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/new/DataFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/new/DataFlow.qll index ea4218da734..bcbebd0de1e 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/new/DataFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/new/DataFlow.qll @@ -28,6 +28,6 @@ import cpp module DataFlow { private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake + import DataFlowMake import semmle.code.cpp.ir.dataflow.internal.DataFlowImpl1 } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/new/TaintTracking.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/new/TaintTracking.qll index 87e037aad9b..d28a389203f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/new/TaintTracking.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/new/TaintTracking.qll @@ -27,6 +27,7 @@ module TaintTracking { private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplSpecific private import semmle.code.cpp.ir.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.TaintTracking - import TaintFlowMake + private import semmle.code.cpp.Location + import TaintFlowMake import semmle.code.cpp.ir.dataflow.internal.tainttracking1.TaintTrackingImpl } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/DataFlow.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/DataFlow.qll index a2dd75d635c..671d82c74ef 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/DataFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/DataFlow.qll @@ -24,6 +24,6 @@ import cpp module DataFlow { private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake + import DataFlowMake import semmle.code.cpp.ir.dataflow.internal.DataFlowImpl1 } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/TaintTracking.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/TaintTracking.qll index 6f2bfcdd6aa..9ca1315ec3e 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/TaintTracking.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/TaintTracking.qll @@ -23,6 +23,6 @@ module TaintTracking { private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplSpecific private import semmle.code.cpp.ir.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.TaintTracking - import TaintFlowMake + import TaintFlowMake import semmle.code.cpp.ir.dataflow.internal.tainttracking1.TaintTrackingImpl } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index f3e52187647..edac7f5f62a 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -1,3 +1,4 @@ +private import semmle.code.cpp.Location private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl -import MakeImpl +import MakeImpl diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll index 266693f45f6..e620cc5de78 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll @@ -1,3 +1,4 @@ +private import semmle.code.cpp.Location private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImplCommon -import MakeImplCommon +import MakeImplCommon diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplConsistency.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplConsistency.qll index c32f63a619d..6b0de326d11 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplConsistency.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplConsistency.qll @@ -8,7 +8,7 @@ private import DataFlowImplSpecific private import TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency -private module Input implements InputSig { +private module Input implements InputSig { predicate argHasPostUpdateExclude(Private::ArgumentNode n) { // The rules for whether an IR argument gets a post-update node are too // complex to model here. @@ -16,4 +16,4 @@ private module Input implements InputSig { } } -module Consistency = MakeConsistency; +module Consistency = MakeConsistency; diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll index a8b9f99f354..aeb136c761e 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplSpecific.qll @@ -3,6 +3,7 @@ */ private import codeql.dataflow.DataFlow +private import semmle.code.cpp.Location module Private { import DataFlowPrivate @@ -13,7 +14,7 @@ module Public { import DataFlowUtil } -module CppDataFlow implements InputSig { +module CppDataFlow implements InputSig { import Private import Public diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index b411790596e..ab52e91429f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -448,7 +448,7 @@ class Node extends TIRDataFlowNode { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingImplSpecific.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingImplSpecific.qll index f62468087b9..3364eff6e35 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingImplSpecific.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/TaintTrackingImplSpecific.qll @@ -4,7 +4,8 @@ private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific +private import semmle.code.cpp.Location -module CppTaintTracking implements InputSig { +module CppTaintTracking implements InputSig { import TaintTrackingUtil } From 8d767862dc7138ad0d5b38569f197752de1b5777 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 8 Mar 2024 10:08:03 +0100 Subject: [PATCH 082/309] Swift: Implement new data flow interface --- swift/ql/lib/codeql/swift/dataflow/DataFlow.qll | 3 ++- swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll | 3 ++- .../lib/codeql/swift/dataflow/internal/DataFlowImpl.qll | 3 ++- .../codeql/swift/dataflow/internal/DataFlowImplCommon.qll | 3 ++- .../swift/dataflow/internal/DataFlowImplConsistency.qll | 4 ++-- .../swift/dataflow/internal/DataFlowImplSpecific.qll | 2 +- .../lib/codeql/swift/dataflow/internal/DataFlowPublic.qll | 2 +- .../codeql/swift/dataflow/internal/FlowSummaryImpl.qll | 8 ++++---- .../swift/dataflow/internal/TaintTrackingImplSpecific.qll | 3 ++- 9 files changed, 18 insertions(+), 13 deletions(-) diff --git a/swift/ql/lib/codeql/swift/dataflow/DataFlow.qll b/swift/ql/lib/codeql/swift/dataflow/DataFlow.qll index b267b74d328..670a94babd9 100644 --- a/swift/ql/lib/codeql/swift/dataflow/DataFlow.qll +++ b/swift/ql/lib/codeql/swift/dataflow/DataFlow.qll @@ -5,6 +5,7 @@ module DataFlow { private import internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake + private import codeql.swift.elements.Location + import DataFlowMake import internal.DataFlowImpl1 } diff --git a/swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll b/swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll index 2dcb4e239c6..e46cd18abb4 100644 --- a/swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll +++ b/swift/ql/lib/codeql/swift/dataflow/TaintTracking.qll @@ -7,6 +7,7 @@ module TaintTracking { private import codeql.swift.dataflow.internal.DataFlowImplSpecific private import codeql.swift.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.TaintTracking - import TaintFlowMake + private import codeql.swift.elements.Location + import TaintFlowMake import codeql.swift.dataflow.internal.tainttracking1.TaintTrackingImpl } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index 532f0def116..f02fe9635ae 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -1,3 +1,4 @@ private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl -import MakeImpl +private import codeql.swift.elements.Location +import MakeImpl diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplCommon.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplCommon.qll index 969275ffa07..eae4f58a86b 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplCommon.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplCommon.qll @@ -1,3 +1,4 @@ private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImplCommon -import MakeImplCommon +import codeql.swift.elements.Location +import MakeImplCommon diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplConsistency.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplConsistency.qll index e9de11852a6..3e17bc87803 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplConsistency.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplConsistency.qll @@ -8,6 +8,6 @@ private import DataFlowImplSpecific private import TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency -private module Input implements InputSig { } +private module Input implements InputSig { } -module Consistency = MakeConsistency; +module Consistency = MakeConsistency; diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplSpecific.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplSpecific.qll index e6941afd9d9..4273414c724 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplSpecific.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImplSpecific.qll @@ -15,7 +15,7 @@ module Public { import DataFlowPublic } -module SwiftDataFlow implements InputSig { +module SwiftDataFlow implements InputSig { import Private import Public diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll index abbb400904a..16a5a2c19ca 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll @@ -26,7 +26,7 @@ class Node extends TNode { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll index 1151a7aeec8..53f51433dac 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll @@ -11,7 +11,7 @@ private import DataFlowImplSpecific::Public private import DataFlowImplCommon private import codeql.swift.dataflow.ExternalFlow -module Input implements InputSig { +module Input implements InputSig { class SummarizedCallableBase = Function; ArgumentPosition callbackSelfParameterPosition() { result instanceof ThisArgumentPosition } @@ -102,14 +102,14 @@ module Input implements InputSig { } } -private import Make as Impl +private import Make as Impl private module StepsInput implements Impl::Private::StepsInputSig { DataFlowCall getACall(Public::SummarizedCallable sc) { result.asCall().getStaticTarget() = sc } } module SourceSinkInterpretationInput implements - Impl::Private::External::SourceSinkInterpretationInputSig + Impl::Private::External::SourceSinkInterpretationInputSig { class Element = AstNode; @@ -222,7 +222,7 @@ module Private { module External { import Impl::Private::External - import Impl::Private::External::SourceSinkInterpretation + import Impl::Private::External::SourceSinkInterpretation } /** diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingImplSpecific.qll b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingImplSpecific.qll index fd00fa5e8f1..d2a9f6ae5f1 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingImplSpecific.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/TaintTrackingImplSpecific.qll @@ -4,8 +4,9 @@ private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific +private import codeql.swift.elements.Location -module SwiftTaintTracking implements InputSig { +module SwiftTaintTracking implements InputSig { import TaintTrackingPrivate import TaintTrackingPublic } From 7745c2c2b76cd207a59907a106c32ca55e0b7a7f Mon Sep 17 00:00:00 2001 From: Ed Minnix Date: Mon, 11 Mar 2024 17:00:12 -0400 Subject: [PATCH 083/309] Change note --- csharp/ql/lib/change-notes/2024-03-11-registry-sources.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2024-03-11-registry-sources.md diff --git a/csharp/ql/lib/change-notes/2024-03-11-registry-sources.md b/csharp/ql/lib/change-notes/2024-03-11-registry-sources.md new file mode 100644 index 00000000000..1d105049185 --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-03-11-registry-sources.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added the `windows-registry` source kind and threat model to represent values which come from the registry on Windows. From d1f8336be6a44017cbfc7f3749ea18764409c1db Mon Sep 17 00:00:00 2001 From: Pierre Date: Mon, 11 Mar 2024 22:21:25 +0100 Subject: [PATCH 084/309] Add changelog for 2.16.4 --- .../codeql-changelog/codeql-cli-2.16.1.rst | 2 +- .../codeql-changelog/codeql-cli-2.16.3.rst | 13 +- .../codeql-changelog/codeql-cli-2.16.4.rst | 156 ++++++++++++++++++ .../codeql-changelog/index.rst | 1 + 4 files changed, 165 insertions(+), 7 deletions(-) create mode 100644 docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.4.rst diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.1.rst index e9f1dd20f34..7a1e6b6230b 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.1.rst @@ -171,7 +171,7 @@ Python Ruby """" -* Deleted many deprecated predicates and classes with uppercase :code:`HTTP`, :code:`CSRF`, :code:`,` etc. in their names. Use the PascalCased versions instead. +* Deleted many deprecated predicates and classes with uppercase :code:`HTTP`, :code:`CSRF` etc. in their names. Use the PascalCased versions instead. * Deleted the deprecated :code:`getAUse` and :code:`getARhs` predicates from :code:`API::Node`, use :code:`getASource` and :code:`getASink` instead. * Deleted the deprecated :code:`disablesCertificateValidation` predicate from the :code:`Http` module. * Deleted the deprecated :code:`ParamsCall`, :code:`CookiesCall`, and :code:`ActionControllerControllerClass` classes from :code:`ActionController.qll`, use the simarly named classes from :code:`codeql.ruby.frameworks.Rails::Rails` instead. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.3.rst index af699a301c4..af7c4ce84b0 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.3.rst @@ -27,14 +27,15 @@ Bug Fixes New Features ~~~~~~~~~~~~ -* A new extractor option has been added to the Python extractor: :code:`python_executable_name`. - You can use this option to override the default process the extractor uses to find and select a Python executable. - Pass one of :code:`--extractor-option python_executable_name=py` or :code:`--extractor-option python_executable_name=python` or :code:`--extractor-option python_executable_name=python3` to commands that run the extractor, for example: :code:`codeql database create`. +* A new extractor option has been added to the Python extractor: + :code:`python_executable_name`. You can use this option to override the default process the extractor uses to find and select a Python executable. Pass one of + :code:`--extractor-option python_executable_name=py` or :code:`--extractor-option python_executable_name=python` or :code:`--extractor-option python_executable_name=python3` to commands that run the extractor, for example: :code:`codeql database create`. - On Windows machines, the Python extractor will expect to find :code:`py.exe` on the system :code:`PATH` by default. - If the Python executable has a different name, you can set the new extractor option to override this value and look for :code:`python.exe` or :code:`python3.exe`. + On Windows machines, the Python extractor will expect to find :code:`py.exe` on the system :code:`PATH` by default. If the Python executable has a different name, you can set the new extractor option to override this value and look for + :code:`python.exe` or :code:`python3.exe`. - For more information about using the extractor option with the CodeQL CLI, see `Extractor options `__. + For more information about using the extractor option with the CodeQL CLI, see + \ `Extractor options `__. Security Updates ~~~~~~~~~~~~~~~~ diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.4.rst new file mode 100644 index 00000000000..dccf2ce4796 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.4.rst @@ -0,0 +1,156 @@ +.. _codeql-cli-2.16.4: + +========================== +CodeQL 2.16.4 (2024-03-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.16.4 runs a total of 409 security queries when configured with the Default suite (covering 160 CWE). The Extended suite enables an additional 132 queries (covering 34 more CWE). 2 security queries have been added with this release. + +CodeQL CLI +---------- + +Potentially Breaking Changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* A number of internal command line options (:code:`--builtin_functions_file`, :code:`--clang_builtin_functions`, + :code:`--disable-objc-default-synthesize-properties`, :code:`--list_builtin_functions`, :code:`--memory-limit-bytes`, + :code:`--mimic_config`, and :code:`--objc`) has been removed from the C/C++ extractor. It has never been possible to pass these options through the CLI itself, but some customers with advanced setups may have been passing them through internal undocumented interfaces. All of the removed options were already no-ops, and will now generate errors. + + The :code:`--verbosity` command line option has also been removed. The option was an alias for + :code:`--codeql-verbosity`, which should be used instead. + +Bug Fixes +~~~~~~~~~ + +* When parsing user-authored YAML files such as :code:`codeql-pack.yml`, + :code:`qlpack.yml`, :code:`codeql-workspace.yml`, and any YAML file defining a data extension, unquoted string values starting with a :code:`*` character are now correctly interpreted as YAML aliases. Previously, they were interpreted as strings, but with the first character skipped. + + If you see a parse error similar to :code:`while scanning an alias... unexpected` :code:`character found *(42)`,it likely means that you need to add quotes around the indicated string value. The most common cause is unquoted glob patterns that start with :code:`*`, such as :code:`include: **/*.yml`, which will need to be quoted as :code:`include: "**/*.yml"`. + +Improvements +~~~~~~~~~~~~ + +* The frontend of the C/C++ extractor has been updated, improving the extractor's reliability and increasing its ability to extract source code. + +Query Packs +----------- + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The "non-constant format string" query (:code:`cpp/non-constant-format`) has been converted to a :code:`path-problem` query. +* The new C/C++ dataflow and taint-tracking libraries (:code:`semmle.code.cpp.dataflow.new.DataFlow` and :code:`semmle.code.cpp.dataflow.new.TaintTracking`) now implicitly assume that dataflow and taint modelled via :code:`DataFlowFunction` and :code:`TaintFunction` always fully overwrite their buffers and thus act as flow barriers. As a result, many dataflow and taint-tracking queries now produce fewer false positives. To remove this assumption and go back to the previous behavior for a given model, one can override the new :code:`isPartialWrite` predicate. + +C# +"" + +* Most data flow queries that track flow from *remote* flow sources now use the current *threat model* configuration instead. This doesn't lead to any changes in the produced alerts (as the default configuration is *remote* flow sources) unless the threat model configuration is changed. The changed queries are :code:`cs/code-injection`, :code:`cs/command-line-injection`, :code:`cs/user-controlled-bypass`, :code:`cs/count-untrusted-data-external-api`, :code:`cs/untrusted-data-to-external-api`, :code:`cs/ldap-injection`, :code:`cs/log-forging`, :code:`cs/xml/missing-validation`, :code:`cs/redos`, :code:`cs/regex-injection`, :code:`cs/resource-injection`, :code:`cs/sql-injection`, :code:`cs/path-injection`, :code:`cs/unsafe-deserialization-untrusted-input`, :code:`cs/web/unvalidated-url-redirection`, :code:`cs/xml/insecure-dtd-handling`, :code:`cs/xml/xpath-injection`, :code:`cs/web/xss`, and :code:`cs/uncontrolled-format-string`. + +Java +"""" + +* To reduce the number of false positives in the query "Insertion of sensitive information into log files" (:code:`java/sensitive-log`), variables with names that contain "null" (case-insensitively) are no longer considered sources of sensitive information. + +Ruby +"""" + +* Calls to :code:`Object#method`, :code:`Object#public_method` and :code:`Object#singleton_method` with untrusted data are now recognised as sinks for code injection. +* Added additional request sources for Ruby on Rails. + +New Queries +~~~~~~~~~~~ + +Java +"""" + +* Added a new query :code:`java/android/insecure-local-key-gen` for finding instances of keys generated for biometric authentication in an insecure way. + +Python +"""""" + +* The query :code:`py/nosql-injection` for finding NoSQL injection vulnerabilities is now part of the default security suite. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +Golang +"""""" + +* Fixed dataflow out of a :code:`map` using a :code:`range` statement. + +Java +"""" + +* Fixed the Java autobuilder overriding the version of Maven used by a project when the Maven wrapper :code:`mvnw` is in use and the :code:`maven-wrapper.jar` file is not present in the repository. +* Some flow steps related to :code:`android.text.Editable.toString` that were accidentally disabled have been re-enabled. + +Swift +""""" + +* Fixed an issue where :code:`TypeDecl.getFullName` would get stuck in an loop and fail when minor database inconsistencies are present. + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* Improved support for flow through captured variables that properly adheres to inter-procedural control flow. +* We no longer make use of CodeQL database stats, which may affect join-orders in custom queries. It is therefore recommended to test performance of custom queries after upgrading to this version. + +Golang +"""""" + +* We have significantly improved the Go autobuilder to understand a greater range of project layouts, which allows Go source files to be analysed that could previously not be processed. +* Go 1.22 has been included in the range of supported Go versions. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* Added destructors for named objects to the intermediate representation. + +C# +"" + +* C# 12: Add QL library support (:code:`ExperimentalAttribute`) for the experimental attribute. +* C# 12: Add extractor and QL library support for :code:`ref readonly` parameters. +* C#: The table :code:`expr_compiler_generated` has been deleted and its content has been added to :code:`compiler_generated`. +* Data flow via get only properties like :code:`public object Obj { get; }` is now captured by the data flow library. + +Java +"""" + +* Java expressions with erroneous types (e.g. the result of a call whose callee couldn't be resolved during extraction) are now given a CodeQL :code:`ErrorType` more often. + +Python +"""""" + +* Fixed missing flow for dictionary updates (:code:`d[] = ...`) when :code:`` is a string constant not used in dictionary literals or as name of keyword-argument. +* Fixed flow for iterable unpacking (:code:`a,b = my_tuple`) when it occurs on top-level (module) scope. + +Ruby +"""" + +* Calls to :code:`I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. +* Calls to :code:`Arel::Nodes::SqlLiteral.new` are now modeled as instances of the :code:`SqlConstruction` concept, as well as propagating taint from their argument. +* Additional arguments beyond the first of calls to the :code:`ActiveRecord` methods :code:`select`, :code:`reselect`, :code:`order`, :code:`reorder`, :code:`joins`, :code:`group`, and :code:`pluck` are now recognized as sql injection sinks. +* Calls to several methods of :code:`ActiveRecord::Connection`, such as :code:`ActiveRecord::Connection#exec_query`, are now recognized as SQL executions, including those via subclasses. diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index a04f37ad9e4..edec857c740 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,7 @@ A list of queries for each suite and language `is available here Date: Tue, 12 Mar 2024 09:22:38 +0100 Subject: [PATCH 085/309] C#: Deduplicate not yet restored package names --- .../DependencyManager.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 724ae8f69fd..143ed49f440 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -924,6 +924,17 @@ namespace Semmle.Extraction.CSharp.DependencyFetching return; } + var multipleVersions = notYetDownloadedPackages + .GroupBy(p => p.Name) + .Where(g => g.Count() > 1) + .Select(g => g.Key); + + foreach (var package in multipleVersions) + { + logger.LogWarning($"Found multiple not yet restored packages with name '{package}'."); + notYetDownloadedPackages.Remove(new(package, PackageReferenceSource.PackagesConfig)); + } + logger.LogInfo($"Found {notYetDownloadedPackages.Count} packages that are not yet restored"); var nugetConfigs = allFiles.SelectFileNamesByName("nuget.config").ToArray(); From bf27f203d5d62776e369db0becfd51f936ccd7ca Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 4 Mar 2024 13:58:31 +0100 Subject: [PATCH 086/309] C#: Remove CIL extractor projects. --- .../ExtractorOptions.cs | 250 --------- .../InvalidAssemblyException.cs | 7 - .../Semmle.Extraction.CIL.Driver/Program.cs | 64 --- .../Properties/AssemblyInfo.cs | 35 -- .../Semmle.Extraction.CIL.Driver.csproj | 23 - .../Semmle.Extraction.CIL/Analyser.cs | 52 -- .../Semmle.Extraction.CIL/CachedFunction.cs | 68 --- .../Context.Factories.cs | 253 --------- .../Semmle.Extraction.CIL/Context.cs | 115 ---- .../Semmle.Extraction.CIL/EmptyContext.cs | 22 - .../Entities/ArrayType.cs | 74 --- .../Entities/Assembly.cs | 101 ---- .../Entities/Attribute.cs | 90 ---- .../Entities/Base/IExtractedEntity.cs | 16 - .../Entities/Base/IExtractionProduct.cs | 24 - .../Entities/Base/IGenericContext.cs | 24 - .../Entities/Base/LabelledEntity.cs | 36 -- .../Entities/Base/Tuple.cs | 22 - .../Entities/Base/UnlabelledEntity.cs | 29 - .../Entities/ByRefType.cs | 42 -- .../Entities/CilTypeKind.cs | 14 - .../Entities/ConstructedType.cs | 118 ---- .../Entities/CustomAttributeDecoder.cs | 63 --- .../Entities/DefinitionField.cs | 66 --- .../Entities/DefinitionMethod.cs | 299 ----------- .../Entities/ErrorType.cs | 31 -- .../Semmle.Extraction.CIL/Entities/Event.cs | 73 --- .../Entities/ExceptionRegion.cs | 56 -- .../Semmle.Extraction.CIL/Entities/Field.cs | 51 -- .../Semmle.Extraction.CIL/Entities/File.cs | 43 -- .../Semmle.Extraction.CIL/Entities/Folder.cs | 41 -- .../Entities/FunctionPointerType.cs | 114 ---- .../Entities/GenericsHelper.cs | 59 -- .../Entities/IFileOrFolder.cs | 6 - .../Entities/ILocation.cs | 6 - .../Semmle.Extraction.CIL/Entities/IMember.cs | 10 - .../Entities/IParameterizable.cs | 7 - .../Entities/ITypeSignature.cs | 7 - .../Entities/Instruction.cs | 508 ------------------ .../Entities/LocalVariable.cs | 35 -- .../Entities/MemberReferenceField.cs | 42 -- .../Entities/MemberReferenceMethod.cs | 95 ---- .../Semmle.Extraction.CIL/Entities/Method.cs | 131 ----- .../Entities/MethodImplementation.cs | 26 - .../Entities/MethodSpecificationMethod.cs | 104 ---- .../Entities/MethodTypeParameter.cs | 52 -- .../Entities/ModifiedType.cs | 49 -- .../Entities/NamedTypeIdWriter.cs | 61 --- .../Entities/Namespace.cs | 83 --- ...dataHandleType.FullyQualifiedNameParser.cs | 162 ------ .../Entities/NoMetadataHandleType.cs | 161 ------ .../Entities/Parameter.cs | 47 -- .../Entities/PdbSourceFile.cs | 32 -- .../Entities/PointerType.cs | 64 --- .../Entities/PrimitiveType.cs | 44 -- .../Entities/Property.cs | 91 ---- .../Entities/SignatureDecoder.cs | 289 ---------- .../Entities/SourceLocation.cs | 47 -- .../Semmle.Extraction.CIL/Entities/Type.cs | 209 ------- .../Entities/TypeAnnotation.cs | 11 - .../Entities/TypeContainer.cs | 17 - .../Entities/TypeDefinitionType.cs | 263 --------- .../Entities/TypeParameter.cs | 57 -- .../Entities/TypeReferenceType.cs | 104 ---- .../Entities/TypeSignatureDecoder.cs | 60 --- .../Entities/TypeTypeParameter.cs | 48 -- .../ICustomModifierReceiver.cs | 6 - csharp/extractor/Semmle.Extraction.CIL/Id.cs | 33 -- .../Semmle.Extraction.CIL/PDB/IPdb.cs | 26 - .../Semmle.Extraction.CIL/PDB/ISourceFile.cs | 20 - .../Semmle.Extraction.CIL/PDB/Location.cs | 63 --- .../Semmle.Extraction.CIL/PDB/MdProvider.cs | 37 -- .../PDB/MetadataPdbReader.cs | 99 ---- .../Semmle.Extraction.CIL/PDB/Method.cs | 17 - .../PDB/NativePdbReader.cs | 116 ---- .../Semmle.Extraction.CIL/PDB/PdbReader.cs | 19 - .../PDB/SequencePoint.cs | 30 -- .../Properties/AssemblyInfo.cs | 35 -- .../Semmle.Extraction.CIL.csproj | 34 -- .../extractor/Semmle.Extraction.CIL/Tuples.cs | 227 -------- 80 files changed, 6065 deletions(-) delete mode 100644 csharp/extractor/Semmle.Extraction.CIL.Driver/ExtractorOptions.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL.Driver/InvalidAssemblyException.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL.Driver/Program.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL.Driver/Properties/AssemblyInfo.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL.Driver/Semmle.Extraction.CIL.Driver.csproj delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Analyser.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/CachedFunction.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Context.Factories.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Context.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/EmptyContext.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/ArrayType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Assembly.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Attribute.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IExtractedEntity.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IExtractionProduct.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IGenericContext.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Base/LabelledEntity.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Base/Tuple.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Base/UnlabelledEntity.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/ByRefType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/CilTypeKind.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/ConstructedType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/CustomAttributeDecoder.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/DefinitionField.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/DefinitionMethod.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/ErrorType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Event.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/ExceptionRegion.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Field.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/File.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Folder.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/FunctionPointerType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/GenericsHelper.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/IFileOrFolder.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/ILocation.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/IMember.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/IParameterizable.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/ITypeSignature.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Instruction.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/LocalVariable.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/MemberReferenceField.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/MemberReferenceMethod.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Method.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/MethodImplementation.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/MethodSpecificationMethod.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/MethodTypeParameter.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/ModifiedType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/NamedTypeIdWriter.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Namespace.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/NoMetadataHandleType.FullyQualifiedNameParser.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/NoMetadataHandleType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Parameter.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/PdbSourceFile.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/PointerType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/PrimitiveType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Property.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/SignatureDecoder.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/SourceLocation.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/Type.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/TypeAnnotation.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/TypeContainer.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/TypeDefinitionType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/TypeParameter.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/TypeReferenceType.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/TypeSignatureDecoder.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Entities/TypeTypeParameter.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/ICustomModifierReceiver.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Id.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/IPdb.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/ISourceFile.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/Location.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/MdProvider.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/MetadataPdbReader.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/Method.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/NativePdbReader.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/PdbReader.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/PDB/SequencePoint.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Properties/AssemblyInfo.cs delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj delete mode 100644 csharp/extractor/Semmle.Extraction.CIL/Tuples.cs diff --git a/csharp/extractor/Semmle.Extraction.CIL.Driver/ExtractorOptions.cs b/csharp/extractor/Semmle.Extraction.CIL.Driver/ExtractorOptions.cs deleted file mode 100644 index e371bf59517..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL.Driver/ExtractorOptions.cs +++ /dev/null @@ -1,250 +0,0 @@ -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Reflection.Metadata; -using System.Reflection.PortableExecutable; -using System.Runtime.InteropServices; -using Semmle.Util; - -namespace Semmle.Extraction.CIL.Driver -{ - ///

    - /// Information about a single assembly. - /// In particular, provides references between assemblies. - /// - internal class AssemblyInfo - { - public override string ToString() => Filename; - - private static AssemblyName CreateAssemblyName(MetadataReader mdReader, StringHandle name, System.Version version, StringHandle culture) - { - var cultureString = mdReader.GetString(culture); - - var assemblyName = new AssemblyName() - { - Name = mdReader.GetString(name), - Version = version - }; - - if (cultureString != "neutral") - assemblyName.CultureInfo = CultureInfo.GetCultureInfo(cultureString); - - return assemblyName; - } - - private static AssemblyName CreateAssemblyName(MetadataReader mdReader, AssemblyReference ar) - { - var an = CreateAssemblyName(mdReader, ar.Name, ar.Version, ar.Culture); - if (!ar.PublicKeyOrToken.IsNil) - an.SetPublicKeyToken(mdReader.GetBlobBytes(ar.PublicKeyOrToken)); - return an; - } - - private static AssemblyName CreateAssemblyName(MetadataReader mdReader, AssemblyDefinition ad) - { - var an = CreateAssemblyName(mdReader, ad.Name, ad.Version, ad.Culture); - if (!ad.PublicKey.IsNil) - an.SetPublicKey(mdReader.GetBlobBytes(ad.PublicKey)); - return an; - } - - /// - /// Initializes a new instance of the class. - /// - /// Path of the assembly. - /// - /// Thrown when the input file is not a valid assembly. - /// - public AssemblyInfo(string path) - { - Filename = path; - - // Attempt to open the file and see if it's a valid assembly. - using var stream = File.OpenRead(path); - using var peReader = new PEReader(stream); - try - { - if (!peReader.HasMetadata) - throw new InvalidAssemblyException(); - - var mdReader = peReader.GetMetadataReader(); - - if (!mdReader.IsAssembly) - throw new InvalidAssemblyException(); - - // Get our own assembly name - Name = CreateAssemblyName(mdReader, mdReader.GetAssemblyDefinition()); - - References = mdReader.AssemblyReferences - .Select(r => mdReader.GetAssemblyReference(r)) - .Select(ar => CreateAssemblyName(mdReader, ar)) - .ToArray(); - } - catch (System.BadImageFormatException) - { - // This failed on one of the Roslyn tests that includes - // a deliberately malformed assembly. - // In this case, we just skip the extraction of this assembly. - throw new InvalidAssemblyException(); - } - } - - public AssemblyName Name { get; } - public string Filename { get; } - public bool Extract { get; set; } - public AssemblyName[] References { get; } - } - - /// - /// Helper to manage a collection of assemblies. - /// Resolves references between assemblies and determines which - /// additional assemblies need to be extracted. - /// - internal class AssemblyList - { - private class AssemblyNameComparer : IEqualityComparer - { - bool IEqualityComparer.Equals(AssemblyName? x, AssemblyName? y) => - object.ReferenceEquals(x, y) || - x?.Name == y?.Name && x?.Version == y?.Version; - - int IEqualityComparer.GetHashCode(AssemblyName obj) => - (obj.Name, obj.Version).GetHashCode(); - } - - private readonly Dictionary assembliesRead = new Dictionary(new AssemblyNameComparer()); - - public void AddFile(string assemblyPath, bool extractAll) - { - if (!filesAnalyzed.Contains(assemblyPath)) - { - filesAnalyzed.Add(assemblyPath); - try - { - var info = new AssemblyInfo(assemblyPath) - { - Extract = extractAll - }; - if (!assembliesRead.ContainsKey(info.Name)) - assembliesRead.Add(info.Name, info); - } - catch (InvalidAssemblyException) - { } - } - } - - public IEnumerable AssembliesToExtract => assembliesRead.Values.Where(info => info.Extract); - - private IEnumerable AssembliesToReference => AssembliesToExtract.SelectMany(info => info.References); - - public void ResolveReferences() - { - var assembliesToReference = new Stack(AssembliesToReference); - - while (assembliesToReference.Any()) - { - var item = assembliesToReference.Pop(); - if (assembliesRead.TryGetValue(item, out var info)) - { - if (!info.Extract) - { - info.Extract = true; - foreach (var reference in info.References) - assembliesToReference.Push(reference); - } - } - else - { - MissingReferences.Add(item); - } - } - } - - private readonly HashSet filesAnalyzed = new HashSet(); - public HashSet MissingReferences { get; } = new HashSet(); - } - - /// - /// Parses the command line and collates a list of DLLs/EXEs to extract. - /// - internal class ExtractorOptions : CommonOptions - { - private readonly AssemblyList assemblyList = new AssemblyList(); - - public ExtractorOptions(string[] args) - { - this.ParseArguments(args.Append("--pdb").ToArray()); - - AddFrameworkDirectories(false); - - assemblyList.ResolveReferences(); - AssembliesToExtract = assemblyList.AssembliesToExtract.ToArray(); - } - - public void AddDirectory(string directory, bool extractAll) - { - foreach (var file in - Directory.EnumerateFiles(directory, "*.dll", SearchOption.AllDirectories). - Concat(Directory.EnumerateFiles(directory, "*.exe", SearchOption.AllDirectories))) - { - assemblyList.AddFile(file, extractAll); - } - } - - private void AddFrameworkDirectories(bool extractAll) - { - AddDirectory(RuntimeEnvironment.GetRuntimeDirectory(), extractAll); - } - - private void AddFileOrDirectory(string path) - { - path = Path.GetFullPath(path); - if (File.Exists(path)) - { - assemblyList.AddFile(path, true); - var directory = Path.GetDirectoryName(path); - if (directory is null) - { - throw new InternalError($"Directory of path '{path}' is null"); - } - AddDirectory(directory, false); - } - else if (Directory.Exists(path)) - { - AddDirectory(path, true); - } - } - - public IEnumerable AssembliesToExtract { get; } - - /// - /// Gets the assemblies that were referenced but were not available to be - /// extracted. This is not an error, it just means that the database is not - /// as complete as it could be. - /// - public IEnumerable MissingReferences => assemblyList.MissingReferences; - - public override bool HandleFlag(string flag, bool value) - { - switch (flag) - { - case "dotnet": - if (value) - AddFrameworkDirectories(true); - return true; - default: - return base.HandleFlag(flag, value); - } - } - - public override bool HandleArgument(string argument) - { - AddFileOrDirectory(argument); - return true; - } - - public override void InvalidArgument(string argument) { } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL.Driver/InvalidAssemblyException.cs b/csharp/extractor/Semmle.Extraction.CIL.Driver/InvalidAssemblyException.cs deleted file mode 100644 index 2686442a08d..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL.Driver/InvalidAssemblyException.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System; - -namespace Semmle.Extraction.CIL.Driver -{ - public class InvalidAssemblyException : Exception - { } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL.Driver/Program.cs b/csharp/extractor/Semmle.Extraction.CIL.Driver/Program.cs deleted file mode 100644 index 2009fe1c94f..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL.Driver/Program.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Diagnostics; -using System.Linq; -using System.Threading.Tasks; -using Semmle.Util.Logging; - -namespace Semmle.Extraction.CIL.Driver -{ - public static class Program - { - private static void DisplayHelp() - { - Console.WriteLine("CIL command line extractor"); - Console.WriteLine(); - Console.WriteLine("Usage: Semmle.Extraction.CIL.Driver.exe [options] path ..."); - Console.WriteLine(" --verbose Turn on verbose output"); - Console.WriteLine(" --dotnet Extract the .Net Framework"); - Console.WriteLine(" --nocache Overwrite existing trap files"); - Console.WriteLine(" --no-pdb Do not extract PDB files"); - Console.WriteLine(" path A directory/dll/exe to analyze"); - } - - private static void ExtractAssembly(string assemblyPath, ILogger logger, CommonOptions options) - { - var sw = new Stopwatch(); - sw.Start(); - Analyser.ExtractCIL(assemblyPath, logger, options, out _, out _); - sw.Stop(); - logger.Log(Severity.Info, " {0} ({1})", assemblyPath, sw.Elapsed); - } - - public static void Main(string[] args) - { - if (args.Length == 0) - { - DisplayHelp(); - return; - } - - var options = new ExtractorOptions(args); - using ILogger logger = new ConsoleLogger(options.Verbosity, logThreadId: false); - - var actions = options.AssembliesToExtract - .Select(asm => asm.Filename) - .Select(filename => () => ExtractAssembly(filename, logger, options)) - .ToArray(); - - foreach (var missingRef in options.MissingReferences) - logger.LogInfo(" Missing assembly " + missingRef); - - var sw = new Stopwatch(); - sw.Start(); - var piOptions = new ParallelOptions - { - MaxDegreeOfParallelism = options.Threads - }; - - Parallel.Invoke(piOptions, actions); - - sw.Stop(); - logger.Log(Severity.Info, "Extraction completed in {0}", sw.Elapsed); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL.Driver/Properties/AssemblyInfo.cs b/csharp/extractor/Semmle.Extraction.CIL.Driver/Properties/AssemblyInfo.cs deleted file mode 100644 index 56f7f94c143..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL.Driver/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Semmle.Extraction.CIL.Driver")] -[assembly: AssemblyDescription("Semmle CIL extractor")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Semmle Ltd")] -[assembly: AssemblyProduct("Semmle.Extraction.CIL.Driver")] -[assembly: AssemblyCopyright("Copyright © Semmle 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5642ae68-9c26-43c9-bd3c-49923dddf02d")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/csharp/extractor/Semmle.Extraction.CIL.Driver/Semmle.Extraction.CIL.Driver.csproj b/csharp/extractor/Semmle.Extraction.CIL.Driver/Semmle.Extraction.CIL.Driver.csproj deleted file mode 100644 index b0a27245ac2..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL.Driver/Semmle.Extraction.CIL.Driver.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - Exe - net8.0 - Semmle.Extraction.CIL.Driver - Semmle.Extraction.CIL.Driver - false - win-x64;linux-x64;osx-x64 - enable - - - - - - - - - - - - - diff --git a/csharp/extractor/Semmle.Extraction.CIL/Analyser.cs b/csharp/extractor/Semmle.Extraction.CIL/Analyser.cs deleted file mode 100644 index 50288aadd94..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Analyser.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using Semmle.Util; -using Semmle.Util.Logging; -using Semmle.Extraction.CIL.Entities; - -namespace Semmle.Extraction.CIL -{ - public static class Analyser - { - private static void ExtractCIL(TracingExtractor extractor, TrapWriter trapWriter, bool extractPdbs) - { - using var cilContext = new Context(extractor, trapWriter, extractor.OutputPath, extractPdbs); - cilContext.Populate(new Assembly(cilContext)); - cilContext.PopulateAll(); - } - - /// - /// Main entry point to the CIL extractor. - /// Call this to extract a given assembly. - /// - /// The trap layout. - /// The full path of the assembly to extract. - /// The logger. - /// True to overwrite existing trap file. - /// Whether to extract PDBs. - /// The path of the trap file. - /// Whether the file was extracted (false=cached). - public static void ExtractCIL(string assemblyPath, ILogger logger, CommonOptions options, out string trapFile, out bool extracted) - { - trapFile = ""; - extracted = false; - try - { - var canonicalPathCache = CanonicalPathCache.Create(logger, 1000); - var pathTransformer = new PathTransformer(canonicalPathCache); - var extractor = new TracingExtractor(assemblyPath, logger, pathTransformer, options); - var transformedAssemblyPath = pathTransformer.Transform(assemblyPath); - using var trapWriter = transformedAssemblyPath.WithSuffix(".cil").CreateTrapWriter(logger, options.TrapCompression, discardDuplicates: true); - trapFile = trapWriter.TrapFile; - if (!options.Cache || !System.IO.File.Exists(trapFile)) - { - ExtractCIL(extractor, trapWriter, options.PDB); - extracted = true; - } - } - catch (Exception ex) // lgtm[cs/catch-of-all-exceptions] - { - logger.LogError(string.Format("Exception extracting {0}: {1}", assemblyPath, ex)); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/CachedFunction.cs b/csharp/extractor/Semmle.Extraction.CIL/CachedFunction.cs deleted file mode 100644 index 4f7ce5a7ef1..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/CachedFunction.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL -{ - /// - /// A factory and a cache for mapping source entities to target entities. - /// Could be considered as a memoizer. - /// - /// The type of the source. - /// The type of the generated object. - public class CachedFunction where TSrc : notnull - { - private readonly Func generator; - private readonly Dictionary cache; - - /// - /// Initializes the factory with a given mapping. - /// - /// The mapping. - public CachedFunction(Func g) - { - generator = g; - cache = new Dictionary(); - } - - /// - /// Gets the target for a given source. - /// Create it if it does not exist. - /// - /// The source object. - /// The created object. - public TTarget this[TSrc src] - { - get - { - if (!cache.TryGetValue(src, out var result)) - { - result = generator(src); - cache[src] = result; - } - return result; - } - } - } - - /// - /// A factory for mapping a pair of source entities to a target entity. - /// - /// Source entity type 1. - /// Source entity type 2. - /// The target type. - public class CachedFunction - { - private readonly CachedFunction<(TSrcEntity1, TSrcEntity2), TTarget> factory; - - /// - /// Initializes the factory with a given mapping. - /// - /// The mapping. - public CachedFunction(Func g) - { - factory = new CachedFunction<(TSrcEntity1, TSrcEntity2), TTarget>(p => g(p.Item1, p.Item2)); - } - - public TTarget this[TSrcEntity1 s1, TSrcEntity2 s2] => factory[(s1, s2)]; - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Context.Factories.cs b/csharp/extractor/Semmle.Extraction.CIL/Context.Factories.cs deleted file mode 100644 index 1c90e693a5f..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Context.Factories.cs +++ /dev/null @@ -1,253 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection.Metadata; -using Semmle.Extraction.CIL.Entities; - -namespace Semmle.Extraction.CIL -{ - /// - /// Provides methods for creating and caching various entities. - /// - internal sealed partial class Context - { - private readonly Dictionary ids = new Dictionary(); - - internal T Populate(T e) where T : IExtractedEntity - { - if (e.Label.Valid) - { - return e; // Already populated - } - - if (ids.TryGetValue(e, out var existing)) - { - // It exists already - e.Label = existing; - } - else - { - e.Label = GetNewLabel(); - DefineLabel(e); - ids.Add(e, e.Label); - PopulateLater(() => - { - foreach (var c in e.Contents) - c.Extract(this); - }); -#if DEBUG_LABELS - using var writer = new EscapingTextWriter(); - e.WriteId(writer); - var id = writer.ToString(); - - if (debugLabels.TryGetValue(id, out var previousEntity)) - { - Extractor.Message(new Message("Duplicate trap ID", id, null, severity: Util.Logging.Severity.Warning)); - } - else - { - debugLabels.Add(id, e); - } -#endif - } - return e; - } - -#if DEBUG_LABELS - private readonly Dictionary debugLabels = new Dictionary(); -#endif - - public IExtractedEntity Create(Handle h) - { - var entity = CreateGeneric(defaultGenericContext, h); - return entity; - } - - // Lazily cache primitive types. - private readonly PrimitiveType[] primitiveTypes = new PrimitiveType[(int)PrimitiveTypeCode.Object + 1]; - - public PrimitiveType Create(PrimitiveTypeCode code) - { - var e = primitiveTypes[(int)code]; - - if (e is null) - { - e = new PrimitiveType(this, code) - { - Label = GetNewLabel() - }; - DefineLabel(e); - primitiveTypes[(int)code] = e; - } - - return e; - } - - /// - /// Creates an entity from a Handle in a GenericContext. - /// The type of the returned entity depends on the type of the handle. - /// The GenericContext is needed because some handles are generics which - /// need to be expanded in terms of the current instantiation. If this sounds - /// complex, you are right. - /// - /// The pair (h,genericContext) is cached in case it is needed again. - /// - /// The handle of the entity. - /// The generic context. - /// - public IExtractedEntity CreateGeneric(IGenericContext genericContext, Handle h) => genericHandleFactory[genericContext, h]; - - private readonly IGenericContext defaultGenericContext; - - private IExtractedEntity CreateGenericHandle(IGenericContext gc, Handle handle) - { - IExtractedEntity entity; - switch (handle.Kind) - { - case HandleKind.MethodDefinition: - entity = new DefinitionMethod(gc, (MethodDefinitionHandle)handle); - break; - case HandleKind.MemberReference: - entity = Create(gc, (MemberReferenceHandle)handle); - break; - case HandleKind.MethodSpecification: - entity = new MethodSpecificationMethod(gc, (MethodSpecificationHandle)handle); - break; - case HandleKind.FieldDefinition: - entity = new DefinitionField(gc.Context, (FieldDefinitionHandle)handle); - break; - case HandleKind.TypeReference: - var tr = new TypeReferenceType(this, (TypeReferenceHandle)handle); - if (tr.TryGetPrimitiveType(out var pt)) - // Map special names like `System.Int32` to `int` - return pt; - entity = tr; - break; - case HandleKind.TypeSpecification: - return Entities.Type.DecodeType(gc, (TypeSpecificationHandle)handle); - case HandleKind.TypeDefinition: - entity = new TypeDefinitionType(this, (TypeDefinitionHandle)handle); - break; - case HandleKind.StandaloneSignature: - var signature = MdReader.GetStandaloneSignature((StandaloneSignatureHandle)handle); - var method = signature.DecodeMethodSignature(gc.Context.TypeSignatureDecoder, gc); - entity = new FunctionPointerType(this, method); - break; - default: - throw new InternalError("Unhandled handle kind " + handle.Kind); - } - - Populate(entity); - return entity; - } - - private IExtractedEntity Create(IGenericContext gc, MemberReferenceHandle handle) - { - var mr = MdReader.GetMemberReference(handle); - switch (mr.GetKind()) - { - case MemberReferenceKind.Method: - return new MemberReferenceMethod(gc, handle); - case MemberReferenceKind.Field: - return new MemberReferenceField(gc, handle); - default: - throw new InternalError("Unhandled member reference handle"); - } - } - - /// - /// Gets the string for a string handle. - /// - /// The string handle. - /// The string. - public string GetString(StringHandle h) => MdReader.GetString(h); - - #region Namespaces - - private readonly CachedFunction namespaceFactory; - - public Namespace CreateNamespace(StringHandle fqn) => namespaceFactory[fqn]; - - private readonly Lazy globalNamespace, systemNamespace; - - /// - /// The entity representing the global namespace. - /// - public Namespace GlobalNamespace => globalNamespace.Value; - - /// - /// The entity representing the System namespace. - /// - public Namespace SystemNamespace => systemNamespace.Value; - - /// - /// Creates a namespace from a fully-qualified name. - /// - /// The fully-qualified namespace name. - /// The namespace entity. - private Namespace CreateNamespace(string fqn) => Populate(new Namespace(this, fqn)); - - private readonly CachedFunction namespaceDefinitionFactory; - - /// - /// Creates a namespace from a namespace handle. - /// - /// The handle of the namespace. - /// The namespace entity. - public Namespace Create(NamespaceDefinitionHandle handle) => namespaceDefinitionFactory[handle]; - - private Namespace CreateNamespace(NamespaceDefinitionHandle handle) - { - if (handle.IsNil) - return GlobalNamespace; - var nd = MdReader.GetNamespaceDefinition(handle); - return Populate(new Namespace(this, GetString(nd.Name), Create(nd.Parent))); - } - #endregion - - #region Locations - private readonly CachedFunction sourceFiles; - private readonly CachedFunction folders; - private readonly CachedFunction sourceLocations; - - /// - /// Creates a source file entity from a PDB source file. - /// - /// The PDB source file. - /// A source file entity. - public PdbSourceFile CreateSourceFile(PDB.ISourceFile file) => sourceFiles[file]; - - /// - /// Creates a folder entity with the given path. - /// - /// The path of the folder. - /// A folder entity. - public Folder CreateFolder(PathTransformer.ITransformedPath path) => folders[path]; - - /// - /// Creates a source location. - /// - /// The source location from PDB. - /// A source location entity. - public PdbSourceLocation CreateSourceLocation(PDB.Location loc) => sourceLocations[loc]; - - #endregion - - private readonly CachedFunction genericHandleFactory; - - /// - /// Gets the short name of a member, without the preceding interface qualifier. - /// - /// The handle of the name. - /// The short name. - public string ShortName(StringHandle handle) - { - var str = MdReader.GetString(handle); - if (str.EndsWith(".ctor")) - return ".ctor"; - if (str.EndsWith(".cctor")) - return ".cctor"; - var dot = str.LastIndexOf('.'); - return dot == -1 ? str : str.Substring(dot + 1); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Context.cs b/csharp/extractor/Semmle.Extraction.CIL/Context.cs deleted file mode 100644 index 9aa1917dd3e..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Context.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using System.IO; -using System.Reflection.Metadata; -using System.Reflection.PortableExecutable; - -namespace Semmle.Extraction.CIL -{ - /// - /// Extraction context for CIL extraction. - /// Adds additional context that is specific for CIL extraction. - /// One context = one DLL/EXE. - /// - internal sealed partial class Context : Extraction.Context, IDisposable - { - private readonly FileStream stream; - private Entities.Assembly? assemblyNull; - public MetadataReader MdReader { get; } - public PEReader PeReader { get; } - public string AssemblyPath { get; } - public Entities.Assembly Assembly - { - get { return assemblyNull!; } - set { assemblyNull = value; } - } - public PDB.IPdb? Pdb { get; } - - public Context(Extractor extractor, TrapWriter trapWriter, string assemblyPath, bool extractPdbs) - : base(extractor, trapWriter) - { - this.AssemblyPath = assemblyPath; - stream = File.OpenRead(assemblyPath); - PeReader = new PEReader(stream, PEStreamOptions.PrefetchEntireImage); - MdReader = PeReader.GetMetadataReader(); - TypeSignatureDecoder = new Entities.TypeSignatureDecoder(this); - - globalNamespace = new Lazy(() => Populate(new Entities.Namespace(this, "", null))); - systemNamespace = new Lazy(() => Populate(new Entities.Namespace(this, "System"))); - genericHandleFactory = new CachedFunction(CreateGenericHandle); - namespaceFactory = new CachedFunction(n => CreateNamespace(MdReader.GetString(n))); - namespaceDefinitionFactory = new CachedFunction(CreateNamespace); - sourceFiles = new CachedFunction(path => new Entities.PdbSourceFile(this, path)); - folders = new CachedFunction(path => new Entities.Folder(this, path)); - sourceLocations = new CachedFunction(location => new Entities.PdbSourceLocation(this, location)); - - defaultGenericContext = new EmptyContext(this); - - if (extractPdbs) - { - Pdb = PDB.PdbReader.Create(assemblyPath, PeReader); - if (Pdb is not null) - { - Extractor.Logger.Log(Util.Logging.Severity.Info, string.Format("Found PDB information for {0}", assemblyPath)); - } - } - } - - public void Dispose() - { - if (Pdb is not null) - Pdb.Dispose(); - PeReader.Dispose(); - stream.Dispose(); - } - - /// - /// Extract the contents of a given entity. - /// - /// The entity to extract. - public void Extract(IExtractedEntity entity) - { - foreach (var content in entity.Contents) - { - content.Extract(this); - } - } - - public void WriteAssemblyPrefix(TextWriter trapFile) - { - var def = MdReader.GetAssemblyDefinition(); - trapFile.Write(GetString(def.Name)); - trapFile.Write('_'); - trapFile.Write(def.Version.ToString()); - trapFile.Write(Entities.Type.AssemblyTypeNameSeparator); - } - - public Entities.TypeSignatureDecoder TypeSignatureDecoder { get; } - - /// - /// A type used to signify something we can't handle yet. - /// Specifically, function pointers (used in C++). - /// - public Entities.Type ErrorType - { - get - { - var errorType = new Entities.ErrorType(this); - Populate(errorType); - return errorType; - } - } - - /// - /// Attempt to locate debugging information for a particular method. - /// - /// Returns null on failure, for example if there was no PDB information found for the - /// DLL, or if the particular method is compiler generated or doesn't come from source code. - /// - /// The handle of the method. - /// The debugging information, or null if the information could not be located. - public PDB.Method? GetMethodDebugInformation(MethodDefinitionHandle handle) - { - return Pdb?.GetMethod(handle.ToDebugInformationHandle()); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/EmptyContext.cs b/csharp/extractor/Semmle.Extraction.CIL/EmptyContext.cs deleted file mode 100644 index 8404bc26545..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/EmptyContext.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL -{ - /// - /// A generic context which does not contain any type parameters. - /// - internal class EmptyContext : IGenericContext - { - public EmptyContext(Context cx) - { - Context = cx; - } - - public Context Context { get; } - - public IEnumerable TypeParameters { get { yield break; } } - - public IEnumerable MethodParameters { get { yield break; } } - - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/ArrayType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/ArrayType.cs deleted file mode 100644 index 0f4138e20c5..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/ArrayType.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// An array type. - /// - internal sealed class ArrayType : Type - { - private readonly Type elementType; - private readonly int rank; - - public ArrayType(Context cx, Type elementType, int rank) : base(cx) - { - this.rank = rank; - this.elementType = elementType; - } - - public ArrayType(Context cx, Type elementType) : this(cx, elementType, 1) - { - } - - public override bool Equals(object? obj) - { - return obj is ArrayType array && elementType.Equals(array.elementType) && rank == array.rank; - } - - public override int GetHashCode() => HashCode.Combine(elementType, rank); - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - elementType.WriteId(trapFile, inContext); - trapFile.Write('['); - for (var i = 1; i < rank; ++i) - { - trapFile.Write(','); - } - trapFile.Write(']'); - } - - public override string Name => elementType.Name + "[]"; - - public override Namespace ContainingNamespace => Context.SystemNamespace; - - public override Type? ContainingType => null; - - public override int ThisTypeParameterCount => elementType.ThisTypeParameterCount; - - public override CilTypeKind Kind => CilTypeKind.Array; - - public override Type Construct(IEnumerable typeArguments) => Context.Populate(new ArrayType(Context, elementType.Construct(typeArguments))); - - public override Type SourceDeclaration => Context.Populate(new ArrayType(Context, elementType.SourceDeclaration)); - - public override IEnumerable Contents - { - get - { - foreach (var c in base.Contents) - yield return c; - - yield return Tuples.cil_array_type(this, elementType, rank); - } - } - - public override void WriteAssemblyPrefix(TextWriter trapFile) => elementType.WriteAssemblyPrefix(trapFile); - - public override IEnumerable GenericArguments => elementType.GenericArguments; - - public override IEnumerable TypeParameters => elementType.TypeParameters; - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Assembly.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Assembly.cs deleted file mode 100644 index 5350f010311..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Assembly.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System.Collections.Generic; -using System.Globalization; -using System.Reflection; -using Semmle.Extraction.Entities; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// An assembly to extract. - /// - internal class Assembly : LabelledEntity, ILocation - { - private readonly File file; - private readonly AssemblyName assemblyName; - - public Assembly(Context cx) : base(cx) - { - cx.Assembly = this; - var def = cx.MdReader.GetAssemblyDefinition(); - - assemblyName = new AssemblyName - { - Name = cx.MdReader.GetString(def.Name), - Version = def.Version, - CultureInfo = new CultureInfo(cx.MdReader.GetString(def.Culture)) - }; - - if (!def.PublicKey.IsNil) - assemblyName.SetPublicKey(cx.MdReader.GetBlobBytes(def.PublicKey)); - - file = new File(cx, cx.AssemblyPath); - } - - public override void WriteId(EscapingTextWriter trapFile) - { - trapFile.Write(FullName); - trapFile.Write("#file:///"); - trapFile.Write(Context.AssemblyPath.Replace("\\", "/")); - trapFile.Write(";assembly"); - } - - public override bool Equals(object? obj) - { - return GetType() == obj?.GetType() && Equals(file, ((Assembly)obj).file); - } - - public override int GetHashCode() => 7 * file.GetHashCode(); - - private string FullName => assemblyName.GetPublicKey() is null ? assemblyName.FullName + ", PublicKeyToken=null" : assemblyName.FullName; - - public override IEnumerable Contents - { - get - { - yield return file; - yield return Tuples.assemblies(this, file, FullName, assemblyName.Name ?? string.Empty, assemblyName.Version?.ToString() ?? string.Empty); - - if (Context.Pdb is not null) - { - foreach (var f in Context.Pdb.SourceFiles) - { - yield return Context.CreateSourceFile(f); - } - } - - foreach (var handle in Context.MdReader.TypeDefinitions) - { - IExtractionProduct? product = null; - try - { - product = Context.Create(handle); - } - catch (InternalError e) - { - Context.ExtractionError("Error processing type definition", e.Message, GeneratedLocation.Create(Context), e.StackTrace); - } - - // Limitation of C#: Cannot yield return inside a try-catch. - if (product is not null) - yield return product; - } - - foreach (var handle in Context.MdReader.MethodDefinitions) - { - IExtractionProduct? product = null; - try - { - product = Context.Create(handle); - } - catch (InternalError e) - { - Context.ExtractionError("Error processing bytecode", e.Message, GeneratedLocation.Create(Context), e.StackTrace); - } - - if (product is not null) - yield return product; - } - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Attribute.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Attribute.cs deleted file mode 100644 index a42594d35aa..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Attribute.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// Entity representing a CIL attribute. - /// - internal sealed class Attribute : UnlabelledEntity - { - private readonly CustomAttributeHandle handle; - private readonly CustomAttribute attrib; - private readonly IExtractedEntity @object; - - public Attribute(Context cx, IExtractedEntity @object, CustomAttributeHandle handle) : base(cx) - { - attrib = cx.MdReader.GetCustomAttribute(handle); - this.handle = handle; - this.@object = @object; - } - - public override bool Equals(object? obj) - { - return obj is Attribute attribute && handle.Equals(attribute.handle); - } - - public override int GetHashCode() => handle.GetHashCode(); - - public override IEnumerable Contents - { - get - { - var constructor = (Method)Context.Create(attrib.Constructor); - yield return constructor; - - yield return Tuples.cil_attribute(this, @object, constructor); - - CustomAttributeValue decoded; - - try - { - decoded = attrib.DecodeValue(new CustomAttributeDecoder(Context)); - } - catch - { - Context.Extractor.Logger.Log(Util.Logging.Severity.Info, - $"Attribute decoding is partial. Decoding attribute {constructor.DeclaringType.GetQualifiedName()} failed on {@object}."); - yield break; - } - - for (var index = 0; index < decoded.FixedArguments.Length; ++index) - { - var stringValue = GetStringValue(decoded.FixedArguments[index].Type, decoded.FixedArguments[index].Value); - yield return Tuples.cil_attribute_positional_argument(this, index, stringValue); - } - - foreach (var p in decoded.NamedArguments) - { - var stringValue = GetStringValue(p.Type, p.Value); - yield return Tuples.cil_attribute_named_argument(this, p.Name!, stringValue); - } - } - } - - private static string GetStringValue(Type type, object? value) - { - if (value is System.Collections.Immutable.ImmutableArray> values) - { - return "[" + string.Join(",", values.Select(v => GetStringValue(v.Type, v.Value))) + "]"; - } - - if (type.GetQualifiedName() == "System.Type" && - value is Type t) - { - return t.GetQualifiedName(); - } - - return value?.ToString() ?? "null"; - } - - public static IEnumerable Populate(Context cx, IExtractedEntity @object, CustomAttributeHandleCollection attributes) - { - foreach (var attrib in attributes) - { - yield return new Attribute(cx, @object, attrib); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IExtractedEntity.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IExtractedEntity.cs deleted file mode 100644 index d94b94df8a8..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IExtractedEntity.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL -{ - /// - /// A CIL entity which has been extracted. - /// - internal interface IExtractedEntity : IExtractionProduct, IEntity - { - /// - /// The contents of the entity. - /// - - IEnumerable Contents { get; } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IExtractionProduct.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IExtractionProduct.cs deleted file mode 100644 index 231a311a78c..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IExtractionProduct.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Semmle.Extraction.CIL -{ - /// - /// Something that is extracted from an entity. - /// - /// - /// - /// The extraction algorithm proceeds as follows: - /// - Construct entity - /// - Call Extract() - /// - IExtractedEntity check if already extracted - /// - Enumerate Contents to produce more extraction products - /// - Extract these until there is nothing left to extract - /// - internal interface IExtractionProduct - { - /// - /// Perform further extraction/population of this item as necessary. - /// - /// - /// The extraction context. - void Extract(Context cx); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IGenericContext.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IGenericContext.cs deleted file mode 100644 index babe0bdfd65..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/IGenericContext.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL -{ - /// - /// When we decode a type/method signature, we need access to - /// generic parameters. - /// - internal interface IGenericContext - { - Context Context { get; } - - /// - /// The list of generic type parameters/arguments, including type parameters/arguments of - /// containing types. - /// - IEnumerable TypeParameters { get; } - - /// - /// The list of generic method parameters/arguments. - /// - IEnumerable MethodParameters { get; } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/LabelledEntity.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/LabelledEntity.cs deleted file mode 100644 index 4c872f33240..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/LabelledEntity.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL -{ - /// - /// An entity that needs to be populated during extraction. - /// This assigns a key and optionally extracts its contents. - /// - internal abstract class LabelledEntity : Extraction.LabelledEntity, IExtractedEntity - { - public override Context Context => (Context)base.Context; - - protected LabelledEntity(Context cx) : base(cx) - { - } - - public override Microsoft.CodeAnalysis.Location ReportingLocation => throw new NotImplementedException(); - - public void Extract(Context cx2) - { - cx2.Populate(this); - } - - public override string ToString() - { - using var writer = new EscapingTextWriter(); - WriteQuotedId(writer); - return writer.ToString(); - } - - public override TrapStackBehaviour TrapStackBehaviour => TrapStackBehaviour.NoLabel; - - public abstract IEnumerable Contents { get; } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/Tuple.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/Tuple.cs deleted file mode 100644 index 58c15dd21f6..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/Tuple.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace Semmle.Extraction.CIL -{ - /// - /// A tuple that is an extraction product. - /// - internal class Tuple : IExtractionProduct - { - private readonly Extraction.Tuple tuple; - - public Tuple(string name, params object[] args) - { - tuple = new Extraction.Tuple(name, args); - } - - public void Extract(Context cx) - { - cx.TrapWriter.Emit(tuple); - } - - public override string ToString() => tuple.ToString(); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/UnlabelledEntity.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/UnlabelledEntity.cs deleted file mode 100644 index de563080d4b..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Base/UnlabelledEntity.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL -{ - /// - /// An entity that has contents to extract. There is no need to populate - /// a key as it's done in the constructor. - /// - internal abstract class UnlabelledEntity : Extraction.UnlabelledEntity, IExtractedEntity - { - public override Context Context => (Context)base.Context; - - protected UnlabelledEntity(Context cx) : base(cx) - { - } - - public override Microsoft.CodeAnalysis.Location ReportingLocation => throw new NotImplementedException(); - - public void Extract(Context cx2) - { - cx2.Extract(this); - } - - public override TrapStackBehaviour TrapStackBehaviour => TrapStackBehaviour.NoLabel; - - public abstract IEnumerable Contents { get; } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/ByRefType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/ByRefType.cs deleted file mode 100644 index 5b9ae9fd1aa..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/ByRefType.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// Types that are passed by reference are not written directly to trap files. Instead, the annotation is stored on - /// the entity. - /// - internal sealed class ByRefType : Type - { - public ByRefType(Context cx, Type elementType) : base(cx) - { - ElementType = elementType; - } - - public override CilTypeKind Kind => throw new NotImplementedException(); - - public override Namespace? ContainingNamespace => throw new NotImplementedException(); - - public override Type? ContainingType => throw new NotImplementedException(); - - public override int ThisTypeParameterCount => throw new NotImplementedException(); - - public override IEnumerable TypeParameters => throw new NotImplementedException(); - - public override Type Construct(IEnumerable typeArguments) => throw new NotImplementedException(); - - public override string Name => $"{ElementType.Name}&"; - - public Type ElementType { get; } - - public override void WriteAssemblyPrefix(TextWriter trapFile) => throw new NotImplementedException(); - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - ElementType.WriteId(trapFile, inContext); - trapFile.Write('&'); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/CilTypeKind.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/CilTypeKind.cs deleted file mode 100644 index e95fe0e28c0..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/CilTypeKind.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// The CIL database type-kind. - /// - public enum CilTypeKind - { - ValueOrRefType, - TypeParameter, - Array, - Pointer, - FunctionPointer - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/ConstructedType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/ConstructedType.cs deleted file mode 100644 index 089d7855dfc..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/ConstructedType.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using Semmle.Util; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A constructed type. - /// - internal sealed class ConstructedType : Type - { - private readonly Type unboundGenericType; - - // Either null or notEmpty - private readonly Type[]? thisTypeArguments; - - private readonly Type? containingType; - private readonly NamedTypeIdWriter idWriter; - - public ConstructedType(Context cx, Type unboundType, IEnumerable typeArguments) : base(cx) - { - idWriter = new NamedTypeIdWriter(this); - var suppliedArgs = typeArguments.Count(); - if (suppliedArgs != unboundType.TotalTypeParametersCount) - throw new InternalError("Unexpected number of type arguments in ConstructedType"); - - unboundGenericType = unboundType; - var thisParams = unboundType.ThisTypeParameterCount; - - if (typeArguments.Count() == thisParams) - { - containingType = unboundType.ContainingType; - thisTypeArguments = typeArguments.ToArray(); - } - else if (thisParams == 0) - { - // all type arguments belong to containing type - containingType = unboundType.ContainingType!.Construct(typeArguments); - } - else - { - // some type arguments belong to containing type - var parentParams = suppliedArgs - thisParams; - containingType = unboundType.ContainingType!.Construct(typeArguments.Take(parentParams)); - thisTypeArguments = typeArguments.Skip(parentParams).ToArray(); - } - } - - public override bool Equals(object? obj) - { - if (obj is ConstructedType t && Equals(unboundGenericType, t.unboundGenericType) && Equals(containingType, t.containingType)) - { - if (thisTypeArguments is null) - return t.thisTypeArguments is null; - if (!(t.thisTypeArguments is null)) - return thisTypeArguments.SequenceEqual(t.thisTypeArguments); - } - return false; - } - - public override int GetHashCode() - { - var h = unboundGenericType.GetHashCode(); - h = 13 * h + (containingType is null ? 0 : containingType.GetHashCode()); - if (!(thisTypeArguments is null)) - h = h * 13 + thisTypeArguments.SequenceHash(); - return h; - } - - public override IEnumerable Contents - { - get - { - foreach (var c in base.Contents) - yield return c; - - var i = 0; - foreach (var type in ThisTypeArguments) - { - yield return type; - yield return Tuples.cil_type_argument(this, i++, type); - } - } - } - - public override Type SourceDeclaration => unboundGenericType; - - public override Type? ContainingType => containingType; - - public override string Name => unboundGenericType.Name; - - public override Namespace ContainingNamespace => unboundGenericType.ContainingNamespace!; - - public override CilTypeKind Kind => unboundGenericType.Kind; - - public override Type Construct(IEnumerable typeArguments) - { - throw new NotImplementedException(); - } - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - idWriter.WriteId(trapFile, inContext); - } - - public override void WriteAssemblyPrefix(TextWriter trapFile) => unboundGenericType.WriteAssemblyPrefix(trapFile); - - public override int ThisTypeParameterCount => thisTypeArguments?.Length ?? 0; - - public override IEnumerable TypeParameters => GenericArguments; - - public override IEnumerable ThisTypeArguments => thisTypeArguments.EnumerateNull(); - - public override IEnumerable ThisGenericArguments => thisTypeArguments.EnumerateNull(); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/CustomAttributeDecoder.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/CustomAttributeDecoder.cs deleted file mode 100644 index 184e37a1adf..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/CustomAttributeDecoder.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// Helper class to decode the attribute structure. - /// Note that there are some unhandled cases that should be fixed in due course. - /// - internal class CustomAttributeDecoder : ICustomAttributeTypeProvider - { - private readonly Context cx; - public CustomAttributeDecoder(Context cx) { this.cx = cx; } - - public Type GetPrimitiveType(PrimitiveTypeCode typeCode) => cx.Create(typeCode); - - public Type GetSystemType() => new NoMetadataHandleType(cx, "System.Type"); - - public Type GetSZArrayType(Type elementType) => - cx.Populate(new ArrayType(cx, elementType)); - - public Type GetTypeFromDefinition(MetadataReader reader, TypeDefinitionHandle handle, byte rawTypeKind) => - (Type)cx.Create(handle); - - public Type GetTypeFromReference(MetadataReader reader, TypeReferenceHandle handle, byte rawTypeKind) => - (Type)cx.Create(handle); - - public Type GetTypeFromSerializedName(string name) => new NoMetadataHandleType(cx, name); - - public PrimitiveTypeCode GetUnderlyingEnumType(Type type) - { - if (type is TypeDefinitionType tdt && - tdt.GetUnderlyingEnumType() is PrimitiveTypeCode underlying) - { - return underlying; - } - - var name = type.GetQualifiedName(); - - if (wellKnownEnums.TryGetValue(name, out var code)) - { - cx.Extractor.Logger.Log(Util.Logging.Severity.Debug, $"Using hard coded underlying enum type for {name}"); - return code; - } - - cx.Extractor.Logger.Log(Util.Logging.Severity.Info, $"Couldn't get underlying enum type for {name}"); - - // We can't fall back to Int32, because the type returned here defines how many bytes are read from the - // stream and how those bytes are interpreted. - throw new NotImplementedException(); - } - - public bool IsSystemType(Type type) => type.GetQualifiedName() == "System.Type"; - - private static readonly Dictionary wellKnownEnums = new Dictionary - { - { "System.AttributeTargets", PrimitiveTypeCode.Int32 }, - { "System.ComponentModel.EditorBrowsableState", PrimitiveTypeCode.Int32 }, - { "System.Diagnostics.DebuggerBrowsableState", PrimitiveTypeCode.Int32 } - }; - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/DefinitionField.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/DefinitionField.cs deleted file mode 100644 index c299ac19d57..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/DefinitionField.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Reflection.Metadata; -using System.Reflection.Metadata.Ecma335; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class DefinitionField : Field - { - private readonly Handle handle; - private readonly FieldDefinition fd; - - public DefinitionField(Context cx, FieldDefinitionHandle handle) : base(cx) - { - this.handle = handle; - fd = Context.MdReader.GetFieldDefinition(handle); - } - - public override bool Equals(object? obj) - { - return obj is DefinitionField field && handle.Equals(field.handle); - } - - public override int GetHashCode() => handle.GetHashCode(); - - public override IEnumerable Contents - { - get - { - yield return Tuples.metadata_handle(this, Context.Assembly, MetadataTokens.GetToken(handle)); - - foreach (var c in base.Contents) - yield return c; - - if (fd.Attributes.HasFlag(FieldAttributes.Private)) - yield return Tuples.cil_private(this); - - if (fd.Attributes.HasFlag(FieldAttributes.Public)) - yield return Tuples.cil_public(this); - - if (fd.Attributes.HasFlag(FieldAttributes.Family)) - yield return Tuples.cil_protected(this); - - if (fd.Attributes.HasFlag(FieldAttributes.Static)) - yield return Tuples.cil_static(this); - - if (fd.Attributes.HasFlag(FieldAttributes.Assembly)) - yield return Tuples.cil_internal(this); - - foreach (var c in Attribute.Populate(Context, this, fd.GetCustomAttributes())) - yield return c; - } - } - - public override string Name => Context.GetString(fd.Name); - - public override Type DeclaringType => (Type)Context.Create(fd.GetDeclaringType()); - - public override Type Type => fd.DecodeSignature(Context.TypeSignatureDecoder, DeclaringType); - - public override IEnumerable TypeParameters => throw new NotImplementedException(); - - public override IEnumerable MethodParameters => throw new NotImplementedException(); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/DefinitionMethod.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/DefinitionMethod.cs deleted file mode 100644 index f75a6ee5e7b..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/DefinitionMethod.cs +++ /dev/null @@ -1,299 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Reflection.Metadata; -using System.Reflection.Metadata.Ecma335; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A definition method - a method defined in the current assembly. - /// - internal sealed class DefinitionMethod : Method - { - private readonly Handle handle; - private readonly MethodDefinition md; - private readonly PDB.Method? methodDebugInformation; - private readonly Type declaringType; - - private readonly string name; - private LocalVariable[]? locals; - - public MethodImplementation? Implementation { get; private set; } - - public override IList? LocalVariables => locals; - - public DefinitionMethod(IGenericContext gc, MethodDefinitionHandle handle) : base(gc) - { - md = Context.MdReader.GetMethodDefinition(handle); - this.gc = gc; - this.handle = handle; - name = Context.GetString(md.Name); - - declaringType = (Type)Context.CreateGeneric(this, md.GetDeclaringType()); - - signature = md.DecodeSignature(new SignatureDecoder(), this); - - methodDebugInformation = Context.GetMethodDebugInformation(handle); - } - - public override bool Equals(object? obj) - { - return obj is DefinitionMethod method && handle.Equals(method.handle); - } - - public override int GetHashCode() => handle.GetHashCode(); - - public override bool IsStatic => !signature.Header.IsInstance; - - public override Type DeclaringType => declaringType; - - public override string Name => Context.ShortName(md.Name); - - public override string NameLabel => name; - - /// - /// Holds if this method has bytecode. - /// - public bool HasBytecode => md.ImplAttributes == MethodImplAttributes.IL && md.RelativeVirtualAddress != 0; - - public override IEnumerable Contents - { - get - { - if (md.GetGenericParameters().Any()) - { - // We need to perform a 2-phase population because some type parameters can - // depend on other type parameters (as a constraint). - genericParams = new MethodTypeParameter[md.GetGenericParameters().Count]; - for (var i = 0; i < genericParams.Length; ++i) - genericParams[i] = Context.Populate(new MethodTypeParameter(this, this, i)); - for (var i = 0; i < genericParams.Length; ++i) - genericParams[i].PopulateHandle(md.GetGenericParameters()[i]); - foreach (var p in genericParams) - yield return p; - } - - var typeSignature = md.DecodeSignature(Context.TypeSignatureDecoder, this); - - var parameters = GetParameterExtractionProducts(typeSignature.ParameterTypes).ToArray(); - Parameters = parameters.OfType().ToArray(); - - foreach (var c in parameters) - yield return c; - - foreach (var c in PopulateFlags) - yield return c; - - foreach (var p in md.GetParameters().Select(h => Context.MdReader.GetParameter(h)).Where(p => p.SequenceNumber > 0)) - { - var pe = Parameters[IsStatic ? p.SequenceNumber - 1 : p.SequenceNumber]; - if (p.Attributes.HasFlag(ParameterAttributes.Out)) - yield return Tuples.cil_parameter_out(pe); - if (p.Attributes.HasFlag(ParameterAttributes.In)) - yield return Tuples.cil_parameter_in(pe); - foreach (var c in Attribute.Populate(Context, pe, p.GetCustomAttributes())) - yield return c; - } - - yield return Tuples.metadata_handle(this, Context.Assembly, MetadataTokens.GetToken(handle)); - - foreach (var m in GetMethodExtractionProducts(Name, declaringType, typeSignature.ReturnType)) - { - yield return m; - } - - yield return Tuples.cil_method_source_declaration(this, this); - yield return Tuples.cil_method_location(this, Context.Assembly); - - if (HasBytecode) - { - Implementation = new MethodImplementation(this); - yield return Implementation; - - var body = Context.PeReader.GetMethodBody(md.RelativeVirtualAddress); - - if (!body.LocalSignature.IsNil) - { - var localVariableTypes = System.Collections.Immutable.ImmutableArray.Empty; - var hasError = false; - try - { - var locals = Context.MdReader.GetStandaloneSignature(body.LocalSignature); - localVariableTypes = locals.DecodeLocalSignature(Context.TypeSignatureDecoder, this); - } - catch (System.BadImageFormatException exc) - { - Context.Extractor.Logger.Log(Util.Logging.Severity.Info, - $"Could not decode locals in method {declaringType.GetQualifiedName()}.{name}. {exc}"); - hasError = true; - } - - if (!hasError) - { - this.locals = new LocalVariable[localVariableTypes.Length]; - - for (var l = 0; l < this.locals.Length; ++l) - { - var t = localVariableTypes[l]; - if (t is ByRefType brt) - { - t = brt.ElementType; - this.locals[l] = Context.Populate(new LocalVariable(Context, Implementation, l, t)); - yield return this.locals[l]; - yield return Tuples.cil_type_annotation(this.locals[l], TypeAnnotation.Ref); - } - else - { - this.locals[l] = Context.Populate(new LocalVariable(Context, Implementation, l, t)); - yield return this.locals[l]; - } - } - } - } - - var jump_table = new Dictionary(); - - foreach (var c in Decode(body.GetILBytes(), jump_table)) - yield return c; - - var filter_index = 0; - foreach (var region in body.ExceptionRegions) - { - yield return new ExceptionRegion(this, Implementation, filter_index++, region, jump_table); - } - - yield return Tuples.cil_method_stack_size(Implementation, body.MaxStack); - - if (methodDebugInformation is not null) - { - var sourceLocation = Context.CreateSourceLocation(methodDebugInformation.Location); - yield return sourceLocation; - yield return Tuples.cil_method_location(this, sourceLocation); - } - } - - // Flags - - if (md.Attributes.HasFlag(MethodAttributes.Private)) - yield return Tuples.cil_private(this); - - if (md.Attributes.HasFlag(MethodAttributes.Public)) - yield return Tuples.cil_public(this); - - if (md.Attributes.HasFlag(MethodAttributes.Family)) - yield return Tuples.cil_protected(this); - - if (md.Attributes.HasFlag(MethodAttributes.Final)) - yield return Tuples.cil_sealed(this); - - if (md.Attributes.HasFlag(MethodAttributes.Virtual)) - yield return Tuples.cil_virtual(this); - - if (md.Attributes.HasFlag(MethodAttributes.Abstract)) - yield return Tuples.cil_abstract(this); - - if (md.Attributes.HasFlag(MethodAttributes.HasSecurity)) - yield return Tuples.cil_security(this); - - if (md.Attributes.HasFlag(MethodAttributes.RequireSecObject)) - yield return Tuples.cil_requiresecobject(this); - - if (md.Attributes.HasFlag(MethodAttributes.SpecialName)) - yield return Tuples.cil_specialname(this); - - if (md.Attributes.HasFlag(MethodAttributes.NewSlot)) - yield return Tuples.cil_newslot(this); - - // Populate attributes - foreach (var c in Attribute.Populate(Context, this, md.GetCustomAttributes())) - yield return c; - } - } - - private IEnumerable Decode(byte[]? ilbytes, Dictionary jump_table) - { - // Sequence points are stored in order of offset. - // We use an enumerator to locate the correct sequence point for each instruction. - // The sequence point gives the location of each instruction. - // The location of an instruction is given by the sequence point *after* the - // instruction. - IEnumerator? nextSequencePoint = null; - PdbSourceLocation? instructionLocation = null; - - if (methodDebugInformation is not null) - { - nextSequencePoint = methodDebugInformation.SequencePoints.GetEnumerator(); - if (nextSequencePoint.MoveNext()) - { - instructionLocation = Context.CreateSourceLocation(nextSequencePoint.Current.Location); - yield return instructionLocation; - } - else - { - nextSequencePoint = null; - } - } - - var child = 0; - for (var offset = 0; offset < (ilbytes?.Length ?? 0);) - { - var instruction = new Instruction(Context, this, ilbytes!, offset, child++); - yield return instruction; - - if (nextSequencePoint is not null && offset >= nextSequencePoint.Current.Offset) - { - instructionLocation = Context.CreateSourceLocation(nextSequencePoint.Current.Location); - yield return instructionLocation; - if (!nextSequencePoint.MoveNext()) - nextSequencePoint = null; - } - - if (instructionLocation is not null) - yield return Tuples.cil_instruction_location(instruction, instructionLocation); - - jump_table.Add(instruction.Offset, instruction); - offset += instruction.Width; - } - - foreach (var i in jump_table) - { - foreach (var t in i.Value.JumpContents(jump_table)) - yield return t; - } - } - - /// - /// Display the instructions in the method in the debugger. - /// This is only used for debugging, not in the code itself. - /// - public IEnumerable DebugInstructions - { - get - { - if (md.ImplAttributes == MethodImplAttributes.IL && md.RelativeVirtualAddress != 0) - { - var body = Context.PeReader.GetMethodBody(md.RelativeVirtualAddress); - - var ilbytes = body.GetILBytes(); - - var child = 0; - for (var offset = 0; offset < (ilbytes?.Length ?? 0);) - { - Instruction decoded; - try - { - decoded = new Instruction(Context, this, ilbytes!, offset, child++); - offset += decoded.Width; - } - catch // lgtm[cs/catch-of-all-exceptions] - { - yield break; - } - yield return decoded; - } - } - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/ErrorType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/ErrorType.cs deleted file mode 100644 index 41b5810ba27..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/ErrorType.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class ErrorType : Type - { - public ErrorType(Context cx) : base(cx) - { - } - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) => trapFile.Write(""); - - public override CilTypeKind Kind => CilTypeKind.ValueOrRefType; - - public override string Name => "!error"; - - public override Namespace ContainingNamespace => Context.GlobalNamespace; - - public override Type? ContainingType => null; - - public override int ThisTypeParameterCount => 0; - - public override void WriteAssemblyPrefix(TextWriter trapFile) => throw new NotImplementedException(); - - public override IEnumerable TypeParameters => throw new NotImplementedException(); - - public override Type Construct(IEnumerable typeArguments) => throw new NotImplementedException(); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Event.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Event.cs deleted file mode 100644 index 0ff273789c1..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Event.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System.Collections.Generic; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// An event entity. - /// - internal sealed class Event : LabelledEntity - { - private readonly EventDefinitionHandle handle; - private readonly Type parent; - private readonly EventDefinition ed; - - public Event(Context cx, Type parent, EventDefinitionHandle handle) : base(cx) - { - this.handle = handle; - this.parent = parent; - ed = cx.MdReader.GetEventDefinition(handle); - } - - public override void WriteId(EscapingTextWriter trapFile) - { - parent.WriteId(trapFile); - trapFile.Write('.'); - trapFile.Write(Context.ShortName(ed.Name)); - trapFile.Write(";cil-event"); - } - - public override bool Equals(object? obj) - { - return obj is Event e && handle.Equals(e.handle); - } - - public override int GetHashCode() => handle.GetHashCode(); - - public override IEnumerable Contents - { - get - { - var signature = (Type)Context.CreateGeneric(parent, ed.Type); - yield return signature; - - yield return Tuples.cil_event(this, parent, Context.ShortName(ed.Name), signature); - - var accessors = ed.GetAccessors(); - if (!accessors.Adder.IsNil) - { - var adder = (Method)Context.CreateGeneric(parent, accessors.Adder); - yield return adder; - yield return Tuples.cil_adder(this, adder); - } - - if (!accessors.Remover.IsNil) - { - var remover = (Method)Context.CreateGeneric(parent, accessors.Remover); - yield return remover; - yield return Tuples.cil_remover(this, remover); - } - - if (!accessors.Raiser.IsNil) - { - var raiser = (Method)Context.CreateGeneric(parent, accessors.Raiser); - yield return raiser; - yield return Tuples.cil_raiser(this, raiser); - } - - foreach (var c in Attribute.Populate(Context, this, ed.GetCustomAttributes())) - yield return c; - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/ExceptionRegion.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/ExceptionRegion.cs deleted file mode 100644 index 5e49c10f533..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/ExceptionRegion.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// An exception region entity. - /// - internal class ExceptionRegion : UnlabelledEntity - { - private readonly IGenericContext gc; - private readonly MethodImplementation method; - private readonly int index; - private readonly System.Reflection.Metadata.ExceptionRegion r; - private readonly Dictionary jump_table; - - public ExceptionRegion(IGenericContext gc, MethodImplementation method, int index, System.Reflection.Metadata.ExceptionRegion r, Dictionary jump_table) : base(gc.Context) - { - this.gc = gc; - this.method = method; - this.index = index; - this.r = r; - this.jump_table = jump_table; - } - - public override IEnumerable Contents - { - get - { - - if (!jump_table.TryGetValue(r.TryOffset, out var try_start)) - throw new InternalError("Failed to retrieve handler"); - if (!jump_table.TryGetValue(r.TryOffset + r.TryLength, out var try_end)) - throw new InternalError("Failed to retrieve handler"); - if (!jump_table.TryGetValue(r.HandlerOffset, out var handler_start)) - throw new InternalError("Failed to retrieve handler"); - - yield return Tuples.cil_handler(this, method, index, (int)r.Kind, try_start, try_end, handler_start); - - if (r.FilterOffset != -1) - { - if (!jump_table.TryGetValue(r.FilterOffset, out var filter_start)) - throw new InternalError("ExceptionRegion filter clause"); - - yield return Tuples.cil_handler_filter(this, filter_start); - } - - if (!r.CatchType.IsNil) - { - var catchType = (Type)Context.CreateGeneric(gc, r.CatchType); - yield return catchType; - yield return Tuples.cil_handler_type(this, catchType); - } - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Field.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Field.cs deleted file mode 100644 index a42fdab0b1f..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Field.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// An entity representing a field. - /// - internal abstract class Field : LabelledEntity, IGenericContext, IMember, ICustomModifierReceiver - { - protected Field(Context cx) : base(cx) - { - } - - public override void WriteId(EscapingTextWriter trapFile) - { - trapFile.WriteSubId(DeclaringType); - trapFile.Write('.'); - trapFile.Write(Name); - trapFile.Write(";cil-field"); - } - - public abstract string Name { get; } - - public abstract Type DeclaringType { get; } - - public abstract Type Type { get; } - - public override IEnumerable Contents - { - get - { - var t = Type; - if (t is ModifiedType mt) - { - t = mt.Unmodified; - yield return Tuples.cil_custom_modifiers(this, mt.Modifier, mt.IsRequired); - } - if (t is ByRefType brt) - { - t = brt.ElementType; - yield return Tuples.cil_type_annotation(this, TypeAnnotation.Ref); - } - yield return Tuples.cil_field(this, DeclaringType, Name, t); - } - } - - public abstract IEnumerable TypeParameters { get; } - - public abstract IEnumerable MethodParameters { get; } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/File.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/File.cs deleted file mode 100644 index f7ae53af56a..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/File.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - internal class File : LabelledEntity, IFileOrFolder - { - protected string OriginalPath { get; } - protected PathTransformer.ITransformedPath TransformedPath { get; } - - public File(Context cx, string path) : base(cx) - { - this.OriginalPath = path; - TransformedPath = Context.Extractor.PathTransformer.Transform(OriginalPath); - } - - public override void WriteId(EscapingTextWriter trapFile) - { - trapFile.Write(TransformedPath.DatabaseId); - trapFile.Write(";sourcefile"); - } - - public override bool Equals(object? obj) - { - return GetType() == obj?.GetType() && OriginalPath == ((File)obj).OriginalPath; - } - - public override int GetHashCode() => 11 * OriginalPath.GetHashCode(); - - public override IEnumerable Contents - { - get - { - if (TransformedPath.ParentDirectory is PathTransformer.ITransformedPath dir) - { - var parent = Context.CreateFolder(dir); - yield return parent; - yield return Tuples.containerparent(parent, this); - } - yield return Tuples.files(this, TransformedPath.Value); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Folder.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Folder.cs deleted file mode 100644 index 3023ea6db91..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Folder.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class Folder : LabelledEntity, IFileOrFolder - { - private readonly PathTransformer.ITransformedPath transformedPath; - - public Folder(Context cx, PathTransformer.ITransformedPath path) : base(cx) - { - this.transformedPath = path; - } - - public override void WriteId(EscapingTextWriter trapFile) - { - trapFile.Write(transformedPath.DatabaseId); - trapFile.Write(";folder"); - } - - public override IEnumerable Contents - { - get - { - if (transformedPath.ParentDirectory is PathTransformer.ITransformedPath parent) - { - var parentFolder = Context.CreateFolder(parent); - yield return parentFolder; - yield return Tuples.containerparent(parentFolder, this); - } - yield return Tuples.folders(this, transformedPath.Value); - } - } - - public override bool Equals(object? obj) - { - return obj is Folder folder && transformedPath == folder.transformedPath; - } - - public override int GetHashCode() => transformedPath.GetHashCode(); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/FunctionPointerType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/FunctionPointerType.cs deleted file mode 100644 index 511826e003c..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/FunctionPointerType.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class FunctionPointerType : Type, IParameterizable, ICustomModifierReceiver - { - private readonly MethodSignature signature; - - public FunctionPointerType(Context cx, MethodSignature signature) : base(cx) - { - this.signature = signature; - } - - public override CilTypeKind Kind => CilTypeKind.FunctionPointer; - - public override string Name - { - get - { - using var id = new StringWriter(); - WriteName( - id.Write, - t => id.Write(t.Name), - signature - ); - return id.ToString(); - } - } - - public override Namespace? ContainingNamespace => Context.GlobalNamespace; - - public override Type? ContainingType => null; - - public override int ThisTypeParameterCount => throw new System.NotImplementedException(); - - public override IEnumerable TypeParameters => throw new System.NotImplementedException(); - - public override Type Construct(IEnumerable typeArguments) => throw new System.NotImplementedException(); - - public override void WriteAssemblyPrefix(TextWriter trapFile) { } - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - WriteName( - trapFile.Write, - t => t.WriteId(trapFile, inContext), - signature - ); - } - - internal static void WriteName(Action write, Action writeType, MethodSignature signature) - { - write("delegate* "); - write(GetCallingConvention(signature.Header.CallingConvention)); - write("<"); - foreach (var pt in signature.ParameterTypes) - { - writeType(pt); - write(","); - } - writeType(signature.ReturnType); - write(">"); - } - - internal static string GetCallingConvention(SignatureCallingConvention callingConvention) - { - if (callingConvention == SignatureCallingConvention.Default) - { - return "managed"; - } - - if (callingConvention == SignatureCallingConvention.Unmanaged) - { - return "unmanaged"; - } - - return $"unmanaged[{callingConvention}]"; - } - - public override IEnumerable Contents - { - get - { - foreach (var c in base.Contents) - { - yield return c; - } - - var retType = signature.ReturnType; - if (retType is ModifiedType mt) - { - retType = mt.Unmodified; - yield return Tuples.cil_custom_modifiers(this, mt.Modifier, mt.IsRequired); - } - if (retType is ByRefType byRefType) - { - retType = byRefType.ElementType; - yield return Tuples.cil_type_annotation(this, TypeAnnotation.Ref); - } - yield return Tuples.cil_function_pointer_return_type(this, retType); - - yield return Tuples.cil_function_pointer_calling_conventions(this, signature.Header.CallingConvention); - - foreach (var p in Method.GetParameterExtractionProducts(signature.ParameterTypes, this, this, Context, 0)) - { - yield return p; - } - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/GenericsHelper.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/GenericsHelper.cs deleted file mode 100644 index dd3657c0e0d..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/GenericsHelper.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System.Collections.Generic; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - internal static class GenericsHelper - { - public static TypeTypeParameter[] MakeTypeParameters(Type container, int count) - { - var newTypeParams = new TypeTypeParameter[count]; - for (var i = 0; i < newTypeParams.Length; ++i) - { - newTypeParams[i] = new TypeTypeParameter(container, i); - } - return newTypeParams; - } - - public static string GetNonGenericName(StringHandle name, MetadataReader reader) - { - var n = reader.GetString(name); - return GetNonGenericName(n); - } - - public static string GetNonGenericName(string name) - { - var tick = name.LastIndexOf('`'); - return tick == -1 - ? name - : name.Substring(0, tick); - } - - public static int GetGenericTypeParameterCount(StringHandle name, MetadataReader reader) - { - var n = reader.GetString(name); - return GetGenericTypeParameterCount(n); - } - - public static int GetGenericTypeParameterCount(string name) - { - var tick = name.LastIndexOf('`'); - return tick == -1 - ? 0 - : int.Parse(name.Substring(tick + 1)); - } - - public static IEnumerable GetAllTypeParameters(Type? container, IEnumerable thisTypeParameters) - { - if (container is not null) - { - foreach (var t in container.TypeParameters) - yield return t; - } - - foreach (var t in thisTypeParameters) - yield return t; - - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/IFileOrFolder.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/IFileOrFolder.cs deleted file mode 100644 index 321bb842ccc..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/IFileOrFolder.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Semmle.Extraction.CIL.Entities -{ - internal interface IFileOrFolder : IEntity - { - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/ILocation.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/ILocation.cs deleted file mode 100644 index 69498223625..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/ILocation.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Semmle.Extraction.CIL.Entities -{ - public interface ILocation : IEntity - { - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/IMember.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/IMember.cs deleted file mode 100644 index 37c0af7702b..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/IMember.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// An entity representing a member. - /// Used to type tuples correctly. - /// - internal interface IMember : IExtractedEntity - { - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/IParameterizable.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/IParameterizable.cs deleted file mode 100644 index ad9347848e4..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/IParameterizable.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Semmle.Extraction.CIL.Entities -{ - internal interface IParameterizable : IEntity - { - - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/ITypeSignature.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/ITypeSignature.cs deleted file mode 100644 index 377035c7e70..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/ITypeSignature.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Semmle.Extraction.CIL.Entities -{ - internal interface ITypeSignature - { - void WriteId(EscapingTextWriter trapFile, IGenericContext gc); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Instruction.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Instruction.cs deleted file mode 100644 index cf7e8fee0b5..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Instruction.cs +++ /dev/null @@ -1,508 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection.Metadata; -using System.Reflection.Metadata.Ecma335; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A CIL instruction. - /// - internal class Instruction : UnlabelledEntity - { - /// - /// The additional data following the opcode, if any. - /// - public enum Payload - { - None, TypeTok, Field, Target8, Class, - Method, Arg8, Local8, Target32, Int8, - Int16, Int32, Int64, Float32, Float64, - CallSiteDesc, Switch, String, Constructor, ValueType, - Type, Arg16, Ignore8, Token, Local16, MethodRef - } - - /// - /// For each Payload, how many additional bytes in the bytestream need to be read. - /// - private static readonly int[] payloadSizes = { - 0, 4, 4, 1, 4, - 4, 1, 1, 4, 1, - 2, 4, 8, 4, 8, - 4, -1, 4, 4, 4, - 4, 2, 1, 4, 2, 4 }; - - // Maps opcodes to payloads for each instruction. - private static readonly Dictionary opPayload = new Dictionary() - { - { ILOpCode.Nop, Payload.None }, - { ILOpCode.Break, Payload.None }, - { ILOpCode.Ldarg_0, Payload.None }, - { ILOpCode.Ldarg_1, Payload.None }, - { ILOpCode.Ldarg_2, Payload.None }, - { ILOpCode.Ldarg_3, Payload.None }, - { ILOpCode.Ldloc_0, Payload.None }, - { ILOpCode.Ldloc_1, Payload.None }, - { ILOpCode.Ldloc_2, Payload.None }, - { ILOpCode.Ldloc_3, Payload.None }, - { ILOpCode.Stloc_0, Payload.None }, - { ILOpCode.Stloc_1, Payload.None }, - { ILOpCode.Stloc_2, Payload.None }, - { ILOpCode.Stloc_3, Payload.None }, - { ILOpCode.Ldarg_s, Payload.Arg8 }, - { ILOpCode.Ldarga_s, Payload.Arg8 }, - { ILOpCode.Starg_s, Payload.Arg8 }, - { ILOpCode.Ldloc_s, Payload.Local8 }, - { ILOpCode.Ldloca_s, Payload.Local8 }, - { ILOpCode.Stloc_s, Payload.Local8 }, - { ILOpCode.Ldnull, Payload.None }, - { ILOpCode.Ldc_i4_m1, Payload.None }, - { ILOpCode.Ldc_i4_0, Payload.None }, - { ILOpCode.Ldc_i4_1, Payload.None }, - { ILOpCode.Ldc_i4_2, Payload.None }, - { ILOpCode.Ldc_i4_3, Payload.None }, - { ILOpCode.Ldc_i4_4, Payload.None }, - { ILOpCode.Ldc_i4_5, Payload.None }, - { ILOpCode.Ldc_i4_6, Payload.None }, - { ILOpCode.Ldc_i4_7, Payload.None }, - { ILOpCode.Ldc_i4_8, Payload.None }, - { ILOpCode.Ldc_i4_s, Payload.Int8 }, - { ILOpCode.Ldc_i4, Payload.Int32 }, - { ILOpCode.Ldc_i8, Payload.Int64 }, - { ILOpCode.Ldc_r4, Payload.Float32 }, - { ILOpCode.Ldc_r8, Payload.Float64 }, - { ILOpCode.Dup, Payload.None }, - { ILOpCode.Pop, Payload.None }, - { ILOpCode.Jmp, Payload.Method }, - { ILOpCode.Call, Payload.Method }, - { ILOpCode.Calli, Payload.CallSiteDesc }, - { ILOpCode.Ret, Payload.None }, - { ILOpCode.Br_s, Payload.Target8 }, - { ILOpCode.Brfalse_s, Payload.Target8 }, - { ILOpCode.Brtrue_s, Payload.Target8 }, - { ILOpCode.Beq_s, Payload.Target8 }, - { ILOpCode.Bge_s, Payload.Target8 }, - { ILOpCode.Bgt_s, Payload.Target8 }, - { ILOpCode.Ble_s, Payload.Target8 }, - { ILOpCode.Blt_s, Payload.Target8 }, - { ILOpCode.Bne_un_s, Payload.Target8 }, - { ILOpCode.Bge_un_s, Payload.Target8 }, - { ILOpCode.Bgt_un_s, Payload.Target8 }, - { ILOpCode.Ble_un_s, Payload.Target8 }, - { ILOpCode.Blt_un_s, Payload.Target8 }, - { ILOpCode.Br, Payload.Target32 }, - { ILOpCode.Brfalse, Payload.Target32 }, - { ILOpCode.Brtrue, Payload.Target32 }, - { ILOpCode.Beq, Payload.Target32 }, - { ILOpCode.Bge, Payload.Target32 }, - { ILOpCode.Bgt, Payload.Target32 }, - { ILOpCode.Ble, Payload.Target32 }, - { ILOpCode.Blt, Payload.Target32 }, - { ILOpCode.Bne_un, Payload.Target32 }, - { ILOpCode.Bge_un, Payload.Target32 }, - { ILOpCode.Bgt_un, Payload.Target32 }, - { ILOpCode.Ble_un, Payload.Target32 }, - { ILOpCode.Blt_un, Payload.Target32 }, - { ILOpCode.Switch, Payload.Switch }, - { ILOpCode.Ldind_i1, Payload.None }, - { ILOpCode.Ldind_u1, Payload.None }, - { ILOpCode.Ldind_i2, Payload.None }, - { ILOpCode.Ldind_u2, Payload.None }, - { ILOpCode.Ldind_i4, Payload.None }, - { ILOpCode.Ldind_u4, Payload.None }, - { ILOpCode.Ldind_i8, Payload.None }, - { ILOpCode.Ldind_i, Payload.None }, - { ILOpCode.Ldind_r4, Payload.None }, - { ILOpCode.Ldind_r8, Payload.None }, - { ILOpCode.Ldind_ref, Payload.None }, - { ILOpCode.Stind_ref, Payload.None }, - { ILOpCode.Stind_i1, Payload.None }, - { ILOpCode.Stind_i2, Payload.None }, - { ILOpCode.Stind_i4, Payload.None }, - { ILOpCode.Stind_i8, Payload.None }, - { ILOpCode.Stind_r4, Payload.None }, - { ILOpCode.Stind_r8, Payload.None }, - { ILOpCode.Add, Payload.None }, - { ILOpCode.Sub, Payload.None }, - { ILOpCode.Mul, Payload.None }, - { ILOpCode.Div, Payload.None }, - { ILOpCode.Div_un, Payload.None }, - { ILOpCode.Rem, Payload.None }, - { ILOpCode.Rem_un, Payload.None }, - { ILOpCode.And, Payload.None }, - { ILOpCode.Or, Payload.None }, - { ILOpCode.Xor, Payload.None }, - { ILOpCode.Shl, Payload.None }, - { ILOpCode.Shr, Payload.None }, - { ILOpCode.Shr_un, Payload.None }, - { ILOpCode.Neg, Payload.None }, - { ILOpCode.Not, Payload.None }, - { ILOpCode.Conv_i1, Payload.None }, - { ILOpCode.Conv_i2, Payload.None }, - { ILOpCode.Conv_i4, Payload.None }, - { ILOpCode.Conv_i8, Payload.None }, - { ILOpCode.Conv_r4, Payload.None }, - { ILOpCode.Conv_r8, Payload.None }, - { ILOpCode.Conv_u4, Payload.None }, - { ILOpCode.Conv_u8, Payload.None }, - { ILOpCode.Callvirt, Payload.MethodRef }, - { ILOpCode.Cpobj, Payload.TypeTok }, - { ILOpCode.Ldobj, Payload.TypeTok }, - { ILOpCode.Ldstr, Payload.String }, - { ILOpCode.Newobj, Payload.Constructor }, - { ILOpCode.Castclass, Payload.Class }, - { ILOpCode.Isinst, Payload.Class }, - { ILOpCode.Conv_r_un, Payload.None }, - { ILOpCode.Unbox, Payload.ValueType }, - { ILOpCode.Throw, Payload.None }, - { ILOpCode.Ldfld, Payload.Field }, - { ILOpCode.Ldflda, Payload.Field }, - { ILOpCode.Stfld, Payload.Field }, - { ILOpCode.Ldsfld, Payload.Field }, - { ILOpCode.Ldsflda, Payload.Field }, - { ILOpCode.Stsfld, Payload.Field }, - { ILOpCode.Stobj, Payload.Field }, - { ILOpCode.Conv_ovf_i1_un, Payload.None }, - { ILOpCode.Conv_ovf_i2_un, Payload.None }, - { ILOpCode.Conv_ovf_i4_un, Payload.None }, - { ILOpCode.Conv_ovf_i8_un, Payload.None }, - { ILOpCode.Conv_ovf_u1_un, Payload.None }, - { ILOpCode.Conv_ovf_u2_un, Payload.None }, - { ILOpCode.Conv_ovf_u4_un, Payload.None }, - { ILOpCode.Conv_ovf_u8_un, Payload.None }, - { ILOpCode.Conv_ovf_i_un, Payload.None }, - { ILOpCode.Conv_ovf_u_un, Payload.None }, - { ILOpCode.Box, Payload.TypeTok }, - { ILOpCode.Newarr, Payload.TypeTok }, - { ILOpCode.Ldlen, Payload.None }, - { ILOpCode.Ldelema, Payload.Class }, - { ILOpCode.Ldelem_i1, Payload.None }, - { ILOpCode.Ldelem_u1, Payload.None }, - { ILOpCode.Ldelem_i2, Payload.None }, - { ILOpCode.Ldelem_u2, Payload.None }, - { ILOpCode.Ldelem_i4, Payload.None }, - { ILOpCode.Ldelem_u4, Payload.None }, - { ILOpCode.Ldelem_i8, Payload.None }, - { ILOpCode.Ldelem_i, Payload.None }, - { ILOpCode.Ldelem_r4, Payload.None }, - { ILOpCode.Ldelem_r8, Payload.None }, - { ILOpCode.Ldelem_ref, Payload.None }, - { ILOpCode.Stelem_i, Payload.None }, - { ILOpCode.Stelem_i1, Payload.None }, - { ILOpCode.Stelem_i2, Payload.None }, - { ILOpCode.Stelem_i4, Payload.None }, - { ILOpCode.Stelem_i8, Payload.None }, - { ILOpCode.Stelem_r4, Payload.None }, - { ILOpCode.Stelem_r8, Payload.None }, - { ILOpCode.Stelem_ref, Payload.None }, - { ILOpCode.Ldelem, Payload.TypeTok }, - { ILOpCode.Stelem, Payload.TypeTok }, - { ILOpCode.Unbox_any, Payload.TypeTok }, - { ILOpCode.Conv_ovf_i1, Payload.None }, - { ILOpCode.Conv_ovf_u1, Payload.None }, - { ILOpCode.Conv_ovf_i2, Payload.None }, - { ILOpCode.Conv_ovf_u2, Payload.None }, - { ILOpCode.Conv_ovf_i4, Payload.None }, - { ILOpCode.Conv_ovf_u4, Payload.None }, - { ILOpCode.Conv_ovf_i8, Payload.None }, - { ILOpCode.Conv_ovf_u8, Payload.None }, - { ILOpCode.Refanyval, Payload.Type }, - { ILOpCode.Ckfinite, Payload.None }, - { ILOpCode.Mkrefany, Payload.Class }, - { ILOpCode.Ldtoken, Payload.Token }, - { ILOpCode.Conv_u2, Payload.None }, - { ILOpCode.Conv_u1, Payload.None }, - { ILOpCode.Conv_i, Payload.None }, - { ILOpCode.Conv_ovf_i, Payload.None }, - { ILOpCode.Conv_ovf_u, Payload.None }, - { ILOpCode.Add_ovf, Payload.None }, - { ILOpCode.Add_ovf_un, Payload.None }, - { ILOpCode.Mul_ovf, Payload.None }, - { ILOpCode.Mul_ovf_un, Payload.None }, - { ILOpCode.Sub_ovf, Payload.None }, - { ILOpCode.Sub_ovf_un, Payload.None }, - { ILOpCode.Endfinally, Payload.None }, - { ILOpCode.Leave, Payload.Target32 }, - { ILOpCode.Leave_s, Payload.Target8 }, - { ILOpCode.Stind_i, Payload.None }, - { ILOpCode.Conv_u, Payload.None }, - { ILOpCode.Arglist, Payload.None }, - { ILOpCode.Ceq, Payload.None }, - { ILOpCode.Cgt, Payload.None }, - { ILOpCode.Cgt_un, Payload.None }, - { ILOpCode.Clt, Payload.None }, - { ILOpCode.Clt_un, Payload.None }, - { ILOpCode.Ldftn, Payload.Method }, - { ILOpCode.Ldvirtftn, Payload.Method }, - { ILOpCode.Ldarg, Payload.Arg16 }, - { ILOpCode.Ldarga, Payload.Arg16 }, - { ILOpCode.Starg, Payload.Arg16 }, - { ILOpCode.Ldloc, Payload.Local16 }, - { ILOpCode.Ldloca, Payload.Local16 }, - { ILOpCode.Stloc, Payload.Local16 }, - { ILOpCode.Localloc, Payload.None }, - { ILOpCode.Endfilter, Payload.None }, - { ILOpCode.Unaligned, Payload.Ignore8 }, - { ILOpCode.Volatile, Payload.None }, - { ILOpCode.Tail, Payload.None }, - { ILOpCode.Initobj, Payload.TypeTok }, - { ILOpCode.Constrained, Payload.Type }, - { ILOpCode.Cpblk, Payload.None }, - { ILOpCode.Initblk, Payload.None }, - { ILOpCode.Rethrow, Payload.None }, - { ILOpCode.Sizeof, Payload.TypeTok }, - { ILOpCode.Refanytype, Payload.None }, - { ILOpCode.Readonly, Payload.None } - }; - - public DefinitionMethod Method { get; } - public ILOpCode OpCode { get; } - public int Offset { get; } - public int Index { get; } - private readonly int payloadValue; - private readonly uint unsignedPayloadValue; - - public Payload PayloadType - { - get - { - if (!opPayload.TryGetValue(OpCode, out var result)) - throw new InternalError("Unknown op code " + OpCode); - return result; - } - } - - public override string ToString() => Index + ": " + OpCode; - - /// - /// The number of bytes of this instruction, - /// including the payload (if any). - /// - public int Width - { - get - { - if (OpCode == ILOpCode.Switch) - return 5 + 4 * payloadValue; - - return ((int)OpCode > 255 ? 2 : 1) + PayloadSize; - } - } - - private readonly byte[] data; - - private int PayloadSize => payloadSizes[(int)PayloadType]; - - /// - /// Reads the instruction from a byte stream. - /// - /// The byte stream. - /// The offset of the instruction. - /// The index of this instruction in the callable. - public Instruction(Context cx, DefinitionMethod method, byte[] data, int offset, int index) : base(cx) - { - Method = method; - Offset = offset; - Index = index; - this.data = data; - int opcode = data[offset]; - ++offset; - - /* - * An opcode is either 1 or 2 bytes, followed by an optional payload depending on the instruction. - * Instructions where the first byte is 0xfe are 2-byte instructions. - */ - if (opcode == 0xfe) - opcode = opcode << 8 | data[offset++]; - OpCode = (ILOpCode)opcode; - - switch (PayloadSize) - { - case 0: - payloadValue = 0; - break; - case 1: - payloadValue = (sbyte)data[offset]; - unsignedPayloadValue = data[offset]; - break; - case 2: - payloadValue = BitConverter.ToInt16(data, offset); - unsignedPayloadValue = BitConverter.ToUInt16(data, offset); - break; - case -1: // Switch - case 4: - payloadValue = BitConverter.ToInt32(data, offset); - break; - case 8: // Not handled here. - break; - default: - throw new InternalError("Unhandled CIL instruction Payload"); - } - } - - public override IEnumerable Contents - { - get - { - var offset = Offset; - - if (Method.Implementation is null) - { - yield break; - } - - yield return Tuples.cil_instruction(this, (int)OpCode, Index, Method.Implementation); - - switch (PayloadType) - { - case Payload.String: - yield return Tuples.cil_value(this, Context.MdReader.GetUserString(MetadataTokens.UserStringHandle(payloadValue))); - break; - case Payload.Float32: - yield return Tuples.cil_value(this, BitConverter.ToSingle(data, offset).ToString()); - break; - case Payload.Float64: - yield return Tuples.cil_value(this, BitConverter.ToDouble(data, offset).ToString()); - break; - case Payload.Int8: - yield return Tuples.cil_value(this, data[offset].ToString()); - break; - case Payload.Int16: - yield return Tuples.cil_value(this, BitConverter.ToInt16(data, offset).ToString()); - break; - case Payload.Int32: - yield return Tuples.cil_value(this, BitConverter.ToInt32(data, offset).ToString()); - break; - case Payload.Int64: - yield return Tuples.cil_value(this, BitConverter.ToInt64(data, offset).ToString()); - break; - case Payload.Constructor: - case Payload.Method: - case Payload.MethodRef: - case Payload.Class: - case Payload.TypeTok: - case Payload.Token: - case Payload.Type: - case Payload.Field: - case Payload.ValueType: - { - // A generic EntityHandle. - var handle = MetadataTokens.EntityHandle(payloadValue); - var target = Context.CreateGeneric(Method, handle); - yield return target; - if (target is not null) - { - yield return Tuples.cil_access(this, target); - } - else - { - throw new InternalError($"Unable to create payload type {PayloadType} for opcode {OpCode}"); - } - break; - } - case Payload.Arg8: - case Payload.Arg16: - if (Method.Parameters is not null) - { - yield return Tuples.cil_access(this, Method.Parameters[(int)unsignedPayloadValue]); - } - break; - case Payload.Local8: - case Payload.Local16: - if (Method.LocalVariables is not null) - { - yield return Tuples.cil_access(this, Method.LocalVariables[(int)unsignedPayloadValue]); - } - break; - case Payload.None: - case Payload.Target8: - case Payload.Target32: - case Payload.Switch: - case Payload.Ignore8: - // These are not handled here. - // Some of these are handled by JumpContents(). - break; - case Payload.CallSiteDesc: - { - var handle = MetadataTokens.EntityHandle(payloadValue); - IExtractedEntity? target = null; - try - { - target = Context.CreateGeneric(Method, handle); - } - catch (Exception exc) - { - Context.Extractor.Logger.Log(Util.Logging.Severity.Warning, $"Couldn't interpret payload of payload type {PayloadType} as a function pointer type. {exc.Message} {exc.StackTrace}"); - } - - if (target is not null) - { - yield return target; - yield return Tuples.cil_access(this, target); - } - else - { - throw new InternalError($"Unable to create payload type {PayloadType} for opcode {OpCode}"); - } - break; - } - default: - throw new InternalError($"Unhandled payload type {PayloadType}"); - } - } - } - - // Called to populate the jumps in each instruction. - public IEnumerable JumpContents(Dictionary jump_table) - { - int target; - Instruction? inst; - - switch (PayloadType) - { - case Payload.Target8: - target = Offset + payloadValue + 2; - break; - case Payload.Target32: - target = Offset + payloadValue + 5; - break; - case Payload.Switch: - var end = Offset + Width; - - var offset = Offset + 5; - - for (var b = 0; b < payloadValue; ++b, offset += 4) - { - target = BitConverter.ToInt32(data, offset) + end; - if (jump_table.TryGetValue(target, out inst)) - { - yield return Tuples.cil_switch(this, b, inst); - } - else - { - throw new InternalError("Invalid jump target"); - } - } - - yield break; - default: - // Not a jump - yield break; - } - - - if (jump_table.TryGetValue(target, out inst)) - { - yield return Tuples.cil_jump(this, inst); - } - else - { - // Sometimes instructions can jump outside the current method. - // TODO: Find a solution to this. - - // For now, just log the error - Context.ExtractionError("A CIL instruction jumps outside the current method", null, Extraction.Entities.GeneratedLocation.Create(Context), "", Util.Logging.Severity.Warning); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/LocalVariable.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/LocalVariable.cs deleted file mode 100644 index ec14e364f87..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/LocalVariable.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - internal class LocalVariable : LabelledEntity - { - private readonly MethodImplementation method; - private readonly int index; - private readonly Type type; - - public LocalVariable(Context cx, MethodImplementation m, int i, Type t) : base(cx) - { - method = m; - index = i; - type = t; - } - - public override void WriteId(EscapingTextWriter trapFile) - { - trapFile.WriteSubId(method); - trapFile.Write('_'); - trapFile.Write(index); - trapFile.Write(";cil-local"); - } - - public override IEnumerable Contents - { - get - { - yield return type; - yield return Tuples.cil_local_variable(this, method, index, type); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/MemberReferenceField.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/MemberReferenceField.cs deleted file mode 100644 index 6a198052018..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/MemberReferenceField.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class MemberReferenceField : Field - { - private readonly MemberReferenceHandle handle; - private readonly MemberReference mr; - private readonly IGenericContext gc; - private readonly Type declType; - - public MemberReferenceField(IGenericContext gc, MemberReferenceHandle handle) : base(gc.Context) - { - this.handle = handle; - this.gc = gc; - mr = Context.MdReader.GetMemberReference(handle); - declType = (Type)Context.CreateGeneric(gc, mr.Parent); - } - - public override bool Equals(object? obj) - { - return obj is MemberReferenceField field && handle.Equals(field.handle); - } - - public override int GetHashCode() - { - return handle.GetHashCode(); - } - - public override string Name => Context.GetString(mr.Name); - - public override Type DeclaringType => declType; - - public override Type Type => mr.DecodeFieldSignature(Context.TypeSignatureDecoder, this); - - public override IEnumerable TypeParameters => gc.TypeParameters.Concat(declType.TypeParameters); - - public override IEnumerable MethodParameters => gc.MethodParameters.Concat(declType.MethodParameters); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/MemberReferenceMethod.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/MemberReferenceMethod.cs deleted file mode 100644 index 1a7942936d6..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/MemberReferenceMethod.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// This is a late-bound reference to a method. - /// - internal sealed class MemberReferenceMethod : Method - { - private readonly MemberReferenceHandle handle; - private readonly MemberReference mr; - private readonly Type declaringType; - private readonly IGenericContext parent; - private readonly Method? sourceDeclaration; - - public MemberReferenceMethod(IGenericContext gc, MemberReferenceHandle handle) : base(gc) - { - this.handle = handle; - this.gc = gc; - mr = Context.MdReader.GetMemberReference(handle); - - signature = mr.DecodeMethodSignature(new SignatureDecoder(), gc); - - parent = (IGenericContext)Context.CreateGeneric(gc, mr.Parent); - - var declType = parent is Method parentMethod - ? parentMethod.DeclaringType - : parent as Type; - - if (declType is null) - throw new InternalError("Parent context of method is not a type"); - - declaringType = declType; - nameLabel = Context.GetString(mr.Name); - - var typeSourceDeclaration = declaringType.SourceDeclaration; - sourceDeclaration = typeSourceDeclaration == declaringType ? (Method)this : typeSourceDeclaration.LookupMethod(mr.Name, mr.Signature); - } - - private readonly string nameLabel; - - public override string NameLabel => nameLabel; - - public override bool Equals(object? obj) - { - return obj is MemberReferenceMethod method && handle.Equals(method.handle); - } - - public override int GetHashCode() - { - return handle.GetHashCode(); - } - - public override Method? SourceDeclaration => sourceDeclaration; - - public override bool IsStatic => !signature.Header.IsInstance; - - public override Type DeclaringType => declaringType; - - public override string Name => Context.ShortName(mr.Name); - - public override IEnumerable TypeParameters => parent.TypeParameters.Concat(gc.TypeParameters); - - public override IEnumerable Contents - { - get - { - genericParams = new MethodTypeParameter[signature.GenericParameterCount]; - for (var p = 0; p < genericParams.Length; ++p) - genericParams[p] = Context.Populate(new MethodTypeParameter(this, this, p)); - - foreach (var p in genericParams) - yield return p; - - var typeSignature = mr.DecodeMethodSignature(Context.TypeSignatureDecoder, this); - - var parameters = GetParameterExtractionProducts(typeSignature.ParameterTypes).ToArray(); - Parameters = parameters.OfType().ToArray(); - foreach (var p in parameters) yield return p; - - foreach (var f in PopulateFlags) yield return f; - - foreach (var m in GetMethodExtractionProducts(Name, DeclaringType, typeSignature.ReturnType)) - { - yield return m; - } - - if (SourceDeclaration is not null) - yield return Tuples.cil_method_source_declaration(this, SourceDeclaration); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Method.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Method.cs deleted file mode 100644 index b5d58affd6e..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Method.cs +++ /dev/null @@ -1,131 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A method entity. - /// - internal abstract class Method : TypeContainer, IMember, ICustomModifierReceiver, IParameterizable - { - protected MethodTypeParameter[]? genericParams; - protected IGenericContext gc; - protected MethodSignature signature; - - protected Method(IGenericContext gc) : base(gc.Context) - { - this.gc = gc; - } - - public ITypeSignature ReturnType => signature.ReturnType; - - public override IEnumerable TypeParameters => gc.TypeParameters.Concat(DeclaringType.TypeParameters); - - public override IEnumerable MethodParameters => - genericParams is null ? gc.MethodParameters : gc.MethodParameters.Concat(genericParams); - - public int GenericParameterCount => signature.GenericParameterCount; - - public virtual Method? SourceDeclaration => this; - - public abstract Type DeclaringType { get; } - public abstract string Name { get; } - - public virtual IList? LocalVariables => throw new NotImplementedException(); - public IList? Parameters { get; protected set; } - - public abstract string NameLabel { get; } - - public override void WriteId(EscapingTextWriter trapFile) - { - signature.ReturnType.WriteId(trapFile, this); - trapFile.Write(' '); - DeclaringType.WriteId(trapFile); - trapFile.Write('.'); - trapFile.Write(NameLabel); - - if (signature.GenericParameterCount > 0) - { - trapFile.Write('`'); - trapFile.Write(signature.GenericParameterCount); - } - trapFile.Write('('); - var index = 0; - foreach (var param in signature.ParameterTypes) - { - trapFile.WriteSeparator(",", ref index); - param.WriteId(trapFile, this); - } - trapFile.Write(");cil-method"); - } - - protected IEnumerable PopulateFlags - { - get - { - if (IsStatic) - yield return Tuples.cil_static(this); - } - } - - public abstract bool IsStatic { get; } - - protected IEnumerable GetParameterExtractionProducts(IEnumerable parameterTypes) - { - var i = 0; - - if (!IsStatic) - { - yield return Context.Populate(new Parameter(Context, this, i++, DeclaringType)); - } - - foreach (var p in GetParameterExtractionProducts(parameterTypes, this, this, Context, i)) - { - yield return p; - } - } - - internal static IEnumerable GetParameterExtractionProducts(IEnumerable parameterTypes, IParameterizable parameterizable, ICustomModifierReceiver receiver, Context cx, int firstChildIndex) - { - var i = firstChildIndex; - foreach (var p in parameterTypes) - { - var t = p; - if (t is ModifiedType mt) - { - t = mt.Unmodified; - yield return Tuples.cil_custom_modifiers(receiver, mt.Modifier, mt.IsRequired); - } - if (t is ByRefType brt) - { - t = brt.ElementType; - var parameter = cx.Populate(new Parameter(cx, parameterizable, i++, t)); - yield return parameter; - yield return Tuples.cil_type_annotation(parameter, TypeAnnotation.Ref); - } - else - { - yield return cx.Populate(new Parameter(cx, parameterizable, i++, t)); - } - } - } - - protected IEnumerable GetMethodExtractionProducts(string name, Type declaringType, Type returnType) - { - var t = returnType; - if (t is ModifiedType mt) - { - t = mt.Unmodified; - yield return Tuples.cil_custom_modifiers(this, mt.Modifier, mt.IsRequired); - } - if (t is ByRefType brt) - { - t = brt.ElementType; - yield return Tuples.cil_type_annotation(this, TypeAnnotation.Ref); - } - yield return Tuples.cil_method(this, name, declaringType, t); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodImplementation.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodImplementation.cs deleted file mode 100644 index eb31e2813ee..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodImplementation.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A method implementation entity. - /// In the database, the same method could in principle have multiple implementations. - /// - internal class MethodImplementation : UnlabelledEntity - { - private readonly Method m; - - public MethodImplementation(Method m) : base(m.Context) - { - this.m = m; - } - - public override IEnumerable Contents - { - get - { - yield return Tuples.cil_method_implementation(this, m, Context.Assembly); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodSpecificationMethod.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodSpecificationMethod.cs deleted file mode 100644 index 9d149d9dc58..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodSpecificationMethod.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Linq; -using System.Reflection.Metadata; -using Semmle.Util; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A constructed method. - /// - internal sealed class MethodSpecificationMethod : Method - { - private readonly MethodSpecificationHandle handle; - private readonly MethodSpecification ms; - private readonly Method unboundMethod; - private readonly ImmutableArray typeParams; - - public MethodSpecificationMethod(IGenericContext gc, MethodSpecificationHandle handle) : base(gc) - { - this.handle = handle; - ms = Context.MdReader.GetMethodSpecification(handle); - typeParams = ms.DecodeSignature(Context.TypeSignatureDecoder, gc); - unboundMethod = (Method)Context.CreateGeneric(gc, ms.Method); - } - - public override void WriteId(EscapingTextWriter trapFile) - { - unboundMethod.WriteId(trapFile); - trapFile.Write('<'); - var index = 0; - foreach (var param in typeParams) - { - trapFile.WriteSeparator(",", ref index); - trapFile.WriteSubId(param); - } - trapFile.Write('>'); - } - - public override string NameLabel => throw new NotImplementedException(); - - public override bool Equals(object? obj) - { - return obj is MethodSpecificationMethod method && handle.Equals(method.handle) && typeParams.SequenceEqual(method.typeParams); - } - - public override int GetHashCode() => handle.GetHashCode() * 11 + typeParams.SequenceHash(); - - public override Method SourceDeclaration => unboundMethod; - - public override Type DeclaringType => unboundMethod.DeclaringType; - - public override string Name => unboundMethod.Name; - - public override bool IsStatic => unboundMethod.IsStatic; - - public override IEnumerable MethodParameters => typeParams; - - public override IEnumerable Contents - { - get - { - MethodSignature constructedTypeSignature; - switch (ms.Method.Kind) - { - case HandleKind.MemberReference: - var mr = Context.MdReader.GetMemberReference((MemberReferenceHandle)ms.Method); - constructedTypeSignature = mr.DecodeMethodSignature(Context.TypeSignatureDecoder, this); - break; - case HandleKind.MethodDefinition: - var md = Context.MdReader.GetMethodDefinition((MethodDefinitionHandle)ms.Method); - constructedTypeSignature = md.DecodeSignature(Context.TypeSignatureDecoder, this); - break; - default: - throw new InternalError($"Unexpected constructed method handle kind {ms.Method.Kind}"); - } - - var parameters = GetParameterExtractionProducts(constructedTypeSignature.ParameterTypes).ToArray(); - Parameters = parameters.OfType().ToArray(); - foreach (var p in parameters) - yield return p; - - foreach (var f in PopulateFlags) - yield return f; - - foreach (var m in GetMethodExtractionProducts(Name, DeclaringType, constructedTypeSignature.ReturnType)) - { - yield return m; - } - - yield return Tuples.cil_method_source_declaration(this, SourceDeclaration); - - if (typeParams.Length != unboundMethod.GenericParameterCount) - throw new InternalError("Method type parameter mismatch"); - - for (var p = 0; p < typeParams.Length; ++p) - { - yield return Tuples.cil_type_argument(this, p, typeParams[p]); - } - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodTypeParameter.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodTypeParameter.cs deleted file mode 100644 index 94752623313..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/MethodTypeParameter.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class MethodTypeParameter : TypeParameter - { - private readonly Method method; - private readonly int index; - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - if (!(inContext && method == gc)) - { - trapFile.WriteSubId(method); - } - trapFile.Write("!"); - trapFile.Write(index); - } - - public override string Name => "!" + index; - - public MethodTypeParameter(IGenericContext gc, Method m, int index) : base(gc) - { - method = m; - this.index = index; - } - - public override bool Equals(object? obj) - { - return obj is MethodTypeParameter tp && method.Equals(tp.method) && index == tp.index; - } - - public override int GetHashCode() - { - return method.GetHashCode() * 29 + index; - } - - public override TypeContainer Parent => method; - - public override IEnumerable TypeParameters => throw new NotImplementedException(); - - public override IEnumerable Contents - { - get - { - yield return Tuples.cil_type(this, Name, Kind, method, SourceDeclaration); - yield return Tuples.cil_type_parameter(method, index, this); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/ModifiedType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/ModifiedType.cs deleted file mode 100644 index 36e08a2e594..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/ModifiedType.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// Modified types are not written directly to trap files. Instead, the modifiers are stored - /// on the modifiable entity (field type, property/method/function pointer parameter or return types). - /// - internal sealed class ModifiedType : Type - { - public ModifiedType(Context cx, Type unmodified, Type modifier, bool isRequired) : base(cx) - { - Unmodified = unmodified; - Modifier = modifier; - IsRequired = isRequired; - } - - public Type Unmodified { get; } - public Type Modifier { get; } - public bool IsRequired { get; } - - public override CilTypeKind Kind => throw new NotImplementedException(); - - public override Namespace? ContainingNamespace => throw new NotImplementedException(); - - public override Type? ContainingType => throw new NotImplementedException(); - - public override IEnumerable TypeParameters => throw new NotImplementedException(); - - public override int ThisTypeParameterCount => throw new NotImplementedException(); - - public override Type Construct(IEnumerable typeArguments) => throw new NotImplementedException(); - - public override string Name => $"{Unmodified.Name} {(IsRequired ? "modreq" : "modopt")}({Modifier.Name})"; - - public override void WriteAssemblyPrefix(TextWriter trapFile) => throw new NotImplementedException(); - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - Unmodified.WriteId(trapFile, inContext); - trapFile.Write(IsRequired ? " modreq" : " modopt"); - trapFile.Write("("); - Modifier.WriteId(trapFile, inContext); - trapFile.Write(")"); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/NamedTypeIdWriter.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/NamedTypeIdWriter.cs deleted file mode 100644 index f78aba27a12..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/NamedTypeIdWriter.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System.Linq; - -namespace Semmle.Extraction.CIL.Entities -{ - internal class NamedTypeIdWriter - { - private readonly Type type; - - public NamedTypeIdWriter(Type type) - { - this.type = type; - } - - public void WriteId(EscapingTextWriter trapFile, bool inContext) - { - if (type.IsPrimitiveType) - { - Type.WritePrimitiveTypeId(trapFile, type.Name); - return; - } - - var ct = type.ContainingType; - if (ct is not null) - { - ct.WriteId(trapFile, inContext); - trapFile.Write('.'); - } - else - { - type.WriteAssemblyPrefix(trapFile); - - var ns = type.ContainingNamespace!; - if (!ns.IsGlobalNamespace) - { - ns.WriteId(trapFile); - trapFile.Write('.'); - } - } - - trapFile.Write(type.Name); - - var thisTypeArguments = type.ThisTypeArguments; - if (thisTypeArguments is not null && thisTypeArguments.Any()) - { - trapFile.Write('<'); - var index = 0; - foreach (var t in thisTypeArguments) - { - trapFile.WriteSeparator(",", ref index); - t.WriteId(trapFile); - } - trapFile.Write('>'); - } - else if (type.ThisTypeParameterCount > 0) - { - trapFile.Write('`'); - trapFile.Write(type.ThisTypeParameterCount); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Namespace.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Namespace.cs deleted file mode 100644 index 2ab143b3733..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Namespace.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A namespace. - /// - internal sealed class Namespace : TypeContainer - { - public Namespace? ParentNamespace { get; } - public string Name { get; } - - public bool IsGlobalNamespace => ParentNamespace is null; - - public override void WriteId(EscapingTextWriter trapFile) - { - if (ParentNamespace is not null && !ParentNamespace.IsGlobalNamespace) - { - ParentNamespace.WriteId(trapFile); - trapFile.Write('.'); - } - trapFile.Write(Name); - trapFile.Write(";namespace"); - } - - public override bool Equals(object? obj) - { - if (obj is Namespace ns && Name == ns.Name) - { - if (ParentNamespace is null) - return ns.ParentNamespace is null; - if (!(ns.ParentNamespace is null)) - return ParentNamespace.Equals(ns.ParentNamespace); - } - return false; - } - - public override int GetHashCode() - { - var h = ParentNamespace is null ? 19 : ParentNamespace.GetHashCode(); - return 13 * h + Name.GetHashCode(); - } - - public override IEnumerable TypeParameters => throw new NotImplementedException(); - - public override IEnumerable MethodParameters => throw new NotImplementedException(); - - private static string parseNamespaceName(string fqn) - { - var i = fqn.LastIndexOf('.'); - return i == -1 ? fqn : fqn.Substring(i + 1); - } - - private static Namespace? createParentNamespace(Context cx, string fqn) - { - if (fqn.Length == 0) - return null; - var i = fqn.LastIndexOf('.'); - return i == -1 ? cx.GlobalNamespace : cx.Populate(new Namespace(cx, fqn.Substring(0, i))); - } - - public Namespace(Context cx, string fqn) : this(cx, parseNamespaceName(fqn), createParentNamespace(cx, fqn)) - { - } - - public Namespace(Context cx, string name, Namespace? parent) : base(cx) - { - Name = name; - ParentNamespace = parent; - } - - public override IEnumerable Contents - { - get - { - yield return Tuples.namespaces(this, Name); - if (ParentNamespace is not null) - yield return Tuples.parent_namespace(this, ParentNamespace); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/NoMetadataHandleType.FullyQualifiedNameParser.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/NoMetadataHandleType.FullyQualifiedNameParser.cs deleted file mode 100644 index ab1aedab3c3..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/NoMetadataHandleType.FullyQualifiedNameParser.cs +++ /dev/null @@ -1,162 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Semmle.Util; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed partial class NoMetadataHandleType - { - /// - /// Parser to split a fully qualified name into short name, namespace or declaring type name, assembly name, and - /// type argument names. Names are in the following format: - /// N1.N2.T1`2+T2`2[T3,[T4, A1, Version=...],T5,T6], A2, Version=... - /// - /// - /// typeof(System.Collections.Generic.List.Enumerator) - /// -> System.Collections.Generic.List`1+Enumerator[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e - /// typeof(System.Collections.Generic.List<>.Enumerator) - /// -> System.Collections.Generic.List`1+Enumerator, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e - /// - /// - private class FullyQualifiedNameParser - { - public string ShortName { get; internal set; } - public string? AssemblyName { get; private set; } - public IEnumerable? TypeArguments { get; internal set; } - public string? UnboundGenericTypeName { get; internal set; } - public string ContainerName { get; internal set; } - public bool IsContainerNamespace { get; internal set; } - - private string AssemblySuffix => string.IsNullOrWhiteSpace(AssemblyName) ? "" : $", {AssemblyName}"; - - public FullyQualifiedNameParser(string name) - { - ExtractAssemblyName(ref name, out var lastBracketIndex); - ExtractTypeArguments(ref name, lastBracketIndex, out var containerTypeArguments); - ContainerName = ExtractContainer(ref name, containerTypeArguments); - - ShortName = name; - } - - private void ExtractTypeArguments(ref string name, int lastBracketIndex, out string containerTypeArguments) - { - var firstBracketIndex = name.IndexOf('['); - if (firstBracketIndex < 0) - { - // not generic or non-constructed generic - TypeArguments = null; - containerTypeArguments = ""; - UnboundGenericTypeName = null; - return; - } - - // "T3,[T4, Assembly1, Version=...],T5,T6" - string typeArgs; - (name, _, typeArgs, _) = name.Split(firstBracketIndex, firstBracketIndex + 1, lastBracketIndex); - - var thisTypeArgCount = GenericsHelper.GetGenericTypeParameterCount(name); - if (thisTypeArgCount == 0) - { - // not generic or non-constructed generic; container is constructed - TypeArguments = null; - containerTypeArguments = $"[{typeArgs}]"; - UnboundGenericTypeName = null; - return; - } - - // constructed generic - // "T3,[T4, Assembly1, Version=...]", ["T5", "T6"] - var (containerTypeArgs, thisTypeArgs) = ParseTypeArgumentStrings(typeArgs, thisTypeArgCount); - - TypeArguments = thisTypeArgs; - - containerTypeArguments = string.IsNullOrWhiteSpace(containerTypeArgs) - ? "" // containing type is not constructed generics - : $"[{containerTypeArgs}]"; // "T3,[T4, Assembly1, Version=...],,]" - - UnboundGenericTypeName = $"{name}{AssemblySuffix}"; - } - - private string ExtractContainer(ref string name, string containerTypeArguments) - { - var lastPlusIndex = name.LastIndexOf('+'); - IsContainerNamespace = lastPlusIndex < 0; - if (IsContainerNamespace) - { - return ExtractContainerNamespace(ref name); - } - - return ExtractContainerType(ref name, containerTypeArguments, lastPlusIndex); - } - - private static string ExtractContainerNamespace(ref string name) - { - var lastDotIndex = name.LastIndexOf('.'); - if (lastDotIndex >= 0) - { - string containerName; - (containerName, _, name) = name.Split(lastDotIndex, lastDotIndex + 1); - return containerName; - } - - return ""; // global namespace name - } - - private string ExtractContainerType(ref string name, string containerTypeArguments, int lastPlusIndex) - { - string containerName; - (containerName, _, name) = name.Split(lastPlusIndex, lastPlusIndex + 1); - return $"{containerName}{containerTypeArguments}{AssemblySuffix}"; - } - - private void ExtractAssemblyName(ref string name, out int lastBracketIndex) - { - lastBracketIndex = name.LastIndexOf(']'); - var assemblyCommaIndex = name.IndexOf(',', lastBracketIndex < 0 ? 0 : lastBracketIndex); - if (assemblyCommaIndex >= 0) - { - // "Assembly2, Version=..." - (name, _, AssemblyName) = name.Split(assemblyCommaIndex, assemblyCommaIndex + 2); - } - } - - private static (string, IEnumerable) ParseTypeArgumentStrings(string typeArgs, int thisTypeArgCount) - { - var thisTypeArgs = new Stack(thisTypeArgCount); - while (typeArgs.Length > 0 && thisTypeArgCount > 0) - { - int startCurrentType; - if (typeArgs[^1] != ']') - { - startCurrentType = typeArgs.LastIndexOf(',') + 1; - thisTypeArgs.Push(typeArgs.Substring(startCurrentType)); - } - else - { - var bracketCount = 1; - for (startCurrentType = typeArgs.Length - 2; startCurrentType >= 0 && bracketCount > 0; startCurrentType--) - { - if (typeArgs[startCurrentType] == ']') - { - bracketCount++; - } - else if (typeArgs[startCurrentType] == '[') - { - bracketCount--; - } - } - startCurrentType++; - thisTypeArgs.Push(typeArgs[(startCurrentType + 1)..^1]); - } - - typeArgs = startCurrentType != 0 - ? typeArgs.Substring(0, startCurrentType - 1) - : ""; - - thisTypeArgCount--; - } - return (typeArgs, thisTypeArgs.ToList()); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/NoMetadataHandleType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/NoMetadataHandleType.cs deleted file mode 100644 index 41a28e32bf1..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/NoMetadataHandleType.cs +++ /dev/null @@ -1,161 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed partial class NoMetadataHandleType : Type - { - private readonly string originalName; - private readonly string name; - private readonly string? assemblyName; - private readonly string containerName; - private readonly bool isContainerNamespace; - - private readonly Lazy? typeParams; - - // Either null or notEmpty - private readonly Type[]? thisTypeArguments; - private readonly Type unboundGenericType; - private readonly Type? containingType; - private readonly Namespace? containingNamespace; - - private readonly NamedTypeIdWriter idWriter; - - public NoMetadataHandleType(Context cx, string originalName) : base(cx) - { - this.originalName = originalName; - this.idWriter = new NamedTypeIdWriter(this); - - var nameParser = new FullyQualifiedNameParser(originalName); - - name = nameParser.ShortName; - assemblyName = nameParser.AssemblyName; - isContainerNamespace = nameParser.IsContainerNamespace; - containerName = nameParser.ContainerName; - - unboundGenericType = nameParser.UnboundGenericTypeName is null - ? this - : new NoMetadataHandleType(Context, nameParser.UnboundGenericTypeName); - - if (nameParser.TypeArguments is not null) - { - thisTypeArguments = nameParser.TypeArguments.Select(t => new NoMetadataHandleType(Context, t)).ToArray(); - } - else - { - typeParams = new Lazy(GenericsHelper.MakeTypeParameters(this, ThisTypeParameterCount)); - } - - containingType = isContainerNamespace - ? null - : new NoMetadataHandleType(Context, containerName); - - containingNamespace = isContainerNamespace - ? containerName == Context.GlobalNamespace.Name - ? Context.GlobalNamespace - : containerName == Context.SystemNamespace.Name - ? Context.SystemNamespace - : new Namespace(Context, containerName) - : null; - - Populate(); - } - - private void Populate() - { - if (ContainingNamespace is not null) - { - Context.Populate(ContainingNamespace); - } - - Context.Populate(this); - } - - public override bool Equals(object? obj) - { - return obj is NoMetadataHandleType t && originalName.Equals(t.originalName, StringComparison.Ordinal); - } - - public override int GetHashCode() - { - return originalName.GetHashCode(StringComparison.Ordinal); - } - - public override IEnumerable Contents - { - get - { - foreach (var tp in typeParams?.Value ?? Array.Empty()) - yield return tp; - - foreach (var c in base.Contents) - yield return c; - - var i = 0; - foreach (var type in ThisTypeArguments) - { - yield return type; - yield return Tuples.cil_type_argument(this, i++, type); - } - } - } - - public override CilTypeKind Kind => CilTypeKind.ValueOrRefType; - - public override string Name => GenericsHelper.GetNonGenericName(name); - - public override Namespace? ContainingNamespace => containingNamespace; - - public override Type? ContainingType => containingType; - - public override Type SourceDeclaration => unboundGenericType; - - public override Type Construct(IEnumerable typeArguments) - { - if (TotalTypeParametersCount != typeArguments.Count()) - throw new InternalError("Mismatched type arguments"); - - return Context.Populate(new ConstructedType(Context, this, typeArguments)); - } - - public override void WriteAssemblyPrefix(TextWriter trapFile) - { - if (!string.IsNullOrWhiteSpace(assemblyName)) - { - var an = new AssemblyName(assemblyName); - trapFile.Write(an.Name); - trapFile.Write('_'); - trapFile.Write((an.Version ?? new Version(0, 0, 0, 0)).ToString()); - trapFile.Write(Type.AssemblyTypeNameSeparator); - } - else - { - Context.WriteAssemblyPrefix(trapFile); - } - } - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - idWriter.WriteId(trapFile, inContext); - } - - public override int ThisTypeParameterCount => unboundGenericType == this - ? GenericsHelper.GetGenericTypeParameterCount(name) - : thisTypeArguments!.Length; - - public override IEnumerable TypeParameters => unboundGenericType == this - ? GenericsHelper.GetAllTypeParameters(containingType, typeParams!.Value) - : GenericArguments; - - public override IEnumerable ThisTypeArguments => unboundGenericType == this - ? base.ThisTypeArguments - : thisTypeArguments!; - - public override IEnumerable ThisGenericArguments => unboundGenericType == this - ? typeParams!.Value - : thisTypeArguments!; - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Parameter.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Parameter.cs deleted file mode 100644 index cc26c2f4023..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Parameter.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A parameter entity. - /// - internal sealed class Parameter : LabelledEntity - { - private readonly IParameterizable parameterizable; - private readonly int index; - private readonly Type type; - - public Parameter(Context cx, IParameterizable p, int i, Type t) : base(cx) - { - parameterizable = p; - index = i; - type = t; - } - - public override void WriteId(EscapingTextWriter trapFile) - { - trapFile.WriteSubId(parameterizable); - trapFile.Write('_'); - trapFile.Write(index); - trapFile.Write(";cil-parameter"); - } - - public override bool Equals(object? obj) - { - return obj is Parameter param && parameterizable.Equals(param.parameterizable) && index == param.index; - } - - public override int GetHashCode() - { - return 23 * parameterizable.GetHashCode() + index; - } - - public override IEnumerable Contents - { - get - { - yield return Tuples.cil_parameter(this, parameterizable, index, type); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/PdbSourceFile.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/PdbSourceFile.cs deleted file mode 100644 index 29eb7d118ff..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/PdbSourceFile.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - internal class PdbSourceFile : File - { - private readonly PDB.ISourceFile file; - - public PdbSourceFile(Context cx, PDB.ISourceFile file) : base(cx, file.Path) - { - this.file = file; - } - - public override IEnumerable Contents - { - get - { - foreach (var c in base.Contents) - yield return c; - - var text = file.Contents; - - if (text is null) - Context.Extractor.Logger.Log(Util.Logging.Severity.Warning, string.Format("PDB source file {0} could not be found", OriginalPath)); - else - Context.TrapWriter.Archive(TransformedPath, text); - - yield return Tuples.file_extraction_mode(this, Context.Extractor.Mode | ExtractorMode.Pdb); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/PointerType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/PointerType.cs deleted file mode 100644 index 9ce05b4a054..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/PointerType.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class PointerType : Type - { - private readonly Type pointee; - - public PointerType(Context cx, Type pointee) : base(cx) - { - this.pointee = pointee; - - if (pointee is ModifiedType mt) - { - cx.Extractor.Logger.Log( - Util.Logging.Severity.Info, - $"Pointer to modified type {pointee.GetQualifiedName()} is changed to {mt.Unmodified.GetQualifiedName()}"); - this.pointee = mt.Unmodified; - } - } - - public override bool Equals(object? obj) - { - return obj is PointerType pt && pointee.Equals(pt.pointee); - } - - public override int GetHashCode() => HashCode.Combine(pointee, nameof(PointerType)); - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - pointee.WriteId(trapFile, inContext); - trapFile.Write('*'); - } - - public override string Name => pointee.Name + "*"; - - public override Namespace? ContainingNamespace => pointee.ContainingNamespace; - - public override Type? ContainingType => pointee.ContainingType; - - public override TypeContainer Parent => pointee.Parent; - - public override int ThisTypeParameterCount => 0; - - public override CilTypeKind Kind => CilTypeKind.Pointer; - - public override void WriteAssemblyPrefix(TextWriter trapFile) => pointee.WriteAssemblyPrefix(trapFile); - - public override IEnumerable TypeParameters => throw new NotImplementedException(); - - public override Type Construct(IEnumerable typeArguments) => throw new NotImplementedException(); - - public override IEnumerable Contents - { - get - { - foreach (var c in base.Contents) yield return c; - yield return Tuples.cil_pointer_type(this, pointee); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/PrimitiveType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/PrimitiveType.cs deleted file mode 100644 index 4d95e4ca9e2..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/PrimitiveType.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class PrimitiveType : Type - { - private readonly PrimitiveTypeCode typeCode; - public PrimitiveType(Context cx, PrimitiveTypeCode tc) : base(cx) - { - typeCode = tc; - } - - public override bool Equals(object? obj) - { - return obj is PrimitiveType pt && typeCode == pt.typeCode; - } - - public override int GetHashCode() => typeCode.GetHashCode(); - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - Type.WritePrimitiveTypeId(trapFile, Name); - } - - public override string Name => typeCode.Id(); - - public override Namespace ContainingNamespace => Context.SystemNamespace; - - public override Type? ContainingType => null; - - public override int ThisTypeParameterCount => 0; - - public override CilTypeKind Kind => CilTypeKind.ValueOrRefType; - - public override void WriteAssemblyPrefix(TextWriter trapFile) { } - - public override IEnumerable TypeParameters => throw new NotImplementedException(); - - public override Type Construct(IEnumerable typeArguments) => throw new NotImplementedException(); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Property.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Property.cs deleted file mode 100644 index 3e7db7b36d6..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Property.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System.Collections.Generic; -using System.Reflection.Metadata; -using System.Reflection.Metadata.Ecma335; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A property. - /// - internal sealed class Property : LabelledEntity, ICustomModifierReceiver - { - private readonly Handle handle; - private readonly Type type; - private readonly PropertyDefinition pd; - private readonly IGenericContext gc; - - public Property(IGenericContext gc, Type type, PropertyDefinitionHandle handle) : base(gc.Context) - { - this.gc = gc; - this.handle = handle; - pd = Context.MdReader.GetPropertyDefinition(handle); - this.type = type; - } - - public override void WriteId(EscapingTextWriter trapFile) - { - trapFile.WriteSubId(type); - trapFile.Write('.'); - trapFile.Write(Context.GetString(pd.Name)); - trapFile.Write("("); - var index = 0; - var signature = pd.DecodeSignature(new SignatureDecoder(), gc); - foreach (var param in signature.ParameterTypes) - { - trapFile.WriteSeparator(",", ref index); - param.WriteId(trapFile, gc); - } - trapFile.Write(")"); - trapFile.Write(";cil-property"); - } - - public override bool Equals(object? obj) - { - return obj is Property property && Equals(handle, property.handle); - } - - public override int GetHashCode() => handle.GetHashCode(); - - public override IEnumerable Contents - { - get - { - yield return Tuples.metadata_handle(this, Context.Assembly, MetadataTokens.GetToken(handle)); - var sig = pd.DecodeSignature(Context.TypeSignatureDecoder, type); - - var name = Context.ShortName(pd.Name); - - var t = sig.ReturnType; - if (t is ModifiedType mt) - { - t = mt.Unmodified; - yield return Tuples.cil_custom_modifiers(this, mt.Modifier, mt.IsRequired); - } - if (t is ByRefType brt) - { - t = brt.ElementType; - yield return Tuples.cil_type_annotation(this, TypeAnnotation.Ref); - } - yield return Tuples.cil_property(this, type, name, t); - - var accessors = pd.GetAccessors(); - if (!accessors.Getter.IsNil) - { - var getter = (Method)Context.CreateGeneric(type, accessors.Getter); - yield return getter; - yield return Tuples.cil_getter(this, getter); - } - - if (!accessors.Setter.IsNil) - { - var setter = (Method)Context.CreateGeneric(type, accessors.Setter); - yield return setter; - yield return Tuples.cil_setter(this, setter); - } - - foreach (var c in Attribute.Populate(Context, this, pd.GetCustomAttributes())) - yield return c; - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/SignatureDecoder.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/SignatureDecoder.cs deleted file mode 100644 index 5a767b7575c..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/SignatureDecoder.cs +++ /dev/null @@ -1,289 +0,0 @@ -using System.Collections.Immutable; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - public class SignatureDecoder : ISignatureTypeProvider - { - private struct Array : ITypeSignature - { - private readonly ITypeSignature elementType; - private readonly ArrayShape shape; - - public Array(ITypeSignature elementType, ArrayShape shape) : this() - { - this.elementType = elementType; - this.shape = shape; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - elementType.WriteId(trapFile, gc); - trapFile.Write('['); - for (var i = 1; i < shape.Rank; ++i) - { - trapFile.Write(','); - } - trapFile.Write(']'); - } - } - - private struct ByRef : ITypeSignature - { - private readonly ITypeSignature elementType; - - public ByRef(ITypeSignature elementType) - { - this.elementType = elementType; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - elementType.WriteId(trapFile, gc); - trapFile.Write('&'); - } - } - - private struct FnPtr : ITypeSignature - { - private readonly MethodSignature signature; - - public FnPtr(MethodSignature signature) - { - this.signature = signature; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - FunctionPointerType.WriteName( - trapFile.Write, - t => t.WriteId(trapFile, gc), - signature - ); - } - } - - ITypeSignature IConstructedTypeProvider.GetArrayType(ITypeSignature elementType, ArrayShape shape) => - new Array(elementType, shape); - - ITypeSignature IConstructedTypeProvider.GetByReferenceType(ITypeSignature elementType) => - new ByRef(elementType); - - ITypeSignature ISignatureTypeProvider.GetFunctionPointerType(MethodSignature signature) => - new FnPtr(signature); - - private class Instantiation : ITypeSignature - { - private readonly ITypeSignature genericType; - private readonly ImmutableArray typeArguments; - - public Instantiation(ITypeSignature genericType, ImmutableArray typeArguments) - { - this.genericType = genericType; - this.typeArguments = typeArguments; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - genericType.WriteId(trapFile, gc); - trapFile.Write('<'); - var index = 0; - foreach (var arg in typeArguments) - { - trapFile.WriteSeparator(",", ref index); - arg.WriteId(trapFile, gc); - } - trapFile.Write('>'); - } - } - - ITypeSignature IConstructedTypeProvider.GetGenericInstantiation(ITypeSignature genericType, ImmutableArray typeArguments) => - new Instantiation(genericType, typeArguments); - - private class GenericMethodParameter : ITypeSignature - { - private readonly object innerGc; - private readonly int index; - - public GenericMethodParameter(object innerGc, int index) - { - this.innerGc = innerGc; - this.index = index; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext outerGc) - { - if (!ReferenceEquals(innerGc, outerGc) && innerGc is Method method) - { - trapFile.WriteSubId(method); - } - trapFile.Write("M!"); - trapFile.Write(index); - } - } - - private class GenericTypeParameter : ITypeSignature - { - private readonly int index; - - public GenericTypeParameter(int index) - { - this.index = index; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - trapFile.Write("T!"); - trapFile.Write(index); - } - } - - ITypeSignature ISignatureTypeProvider.GetGenericMethodParameter(object genericContext, int index) => - new GenericMethodParameter(genericContext, index); - - ITypeSignature ISignatureTypeProvider.GetGenericTypeParameter(object genericContext, int index) => - new GenericTypeParameter(index); - - private class Modified : ITypeSignature - { - private readonly ITypeSignature unmodifiedType; - private readonly ITypeSignature modifier; - private readonly bool isRequired; - - public Modified(ITypeSignature unmodifiedType, ITypeSignature modifier, bool isRequired) - { - this.unmodifiedType = unmodifiedType; - this.modifier = modifier; - this.isRequired = isRequired; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - unmodifiedType.WriteId(trapFile, gc); - trapFile.Write(isRequired ? " modreq(" : " modopt("); - modifier.WriteId(trapFile, gc); - trapFile.Write(")"); - } - } - - ITypeSignature ISignatureTypeProvider.GetModifiedType(ITypeSignature modifier, ITypeSignature unmodifiedType, bool isRequired) - { - return new Modified(unmodifiedType, modifier, isRequired); - } - - ITypeSignature ISignatureTypeProvider.GetPinnedType(ITypeSignature elementType) - { - return elementType; - } - - private class PointerType : ITypeSignature - { - private readonly ITypeSignature elementType; - - public PointerType(ITypeSignature elementType) - { - this.elementType = elementType; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - elementType.WriteId(trapFile, gc); - trapFile.Write('*'); - } - } - - ITypeSignature IConstructedTypeProvider.GetPointerType(ITypeSignature elementType) - { - return new PointerType(elementType); - } - - private class Primitive : ITypeSignature - { - private readonly PrimitiveTypeCode typeCode; - - public Primitive(PrimitiveTypeCode typeCode) - { - this.typeCode = typeCode; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - trapFile.Write(typeCode.Id()); - } - } - - ITypeSignature ISimpleTypeProvider.GetPrimitiveType(PrimitiveTypeCode typeCode) - { - return new Primitive(typeCode); - } - - private class SzArrayType : ITypeSignature - { - private readonly ITypeSignature elementType; - - public SzArrayType(ITypeSignature elementType) - { - this.elementType = elementType; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - elementType.WriteId(trapFile, gc); - trapFile.Write("[]"); - } - } - - ITypeSignature ISZArrayTypeProvider.GetSZArrayType(ITypeSignature elementType) - { - return new SzArrayType(elementType); - } - - private class TypeDefinition : ITypeSignature - { - private readonly TypeDefinitionHandle handle; - - public TypeDefinition(TypeDefinitionHandle handle) - { - this.handle = handle; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - var type = (Type)gc.Context.Create(handle); - type.WriteId(trapFile); - } - } - - ITypeSignature ISimpleTypeProvider.GetTypeFromDefinition(MetadataReader reader, TypeDefinitionHandle handle, byte rawTypeKind) - { - return new TypeDefinition(handle); - } - - private class TypeReference : ITypeSignature - { - private readonly TypeReferenceHandle handle; - - public TypeReference(TypeReferenceHandle handle) - { - this.handle = handle; - } - - public void WriteId(EscapingTextWriter trapFile, IGenericContext gc) - { - var type = (Type)gc.Context.Create(handle); - type.WriteId(trapFile); - } - } - - ITypeSignature ISimpleTypeProvider.GetTypeFromReference(MetadataReader reader, TypeReferenceHandle handle, byte rawTypeKind) - { - return new TypeReference(handle); - } - - ITypeSignature ISignatureTypeProvider.GetTypeFromSpecification(MetadataReader reader, object genericContext, TypeSpecificationHandle handle, byte rawTypeKind) - { - var ts = reader.GetTypeSpecification(handle); - return ts.DecodeSignature(this, genericContext); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/SourceLocation.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/SourceLocation.cs deleted file mode 100644 index 9b7b4d583a1..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/SourceLocation.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System.Collections.Generic; -using Semmle.Extraction.PDB; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class PdbSourceLocation : LabelledEntity, ILocation - { - private readonly Location location; - private readonly PdbSourceFile file; - - public PdbSourceLocation(Context cx, PDB.Location location) : base(cx) - { - this.location = location; - file = cx.CreateSourceFile(location.File); - } - - public override void WriteId(EscapingTextWriter trapFile) - { - file.WriteId(trapFile); - trapFile.Write(','); - trapFile.Write(location.StartLine); - trapFile.Write(','); - trapFile.Write(location.StartColumn); - trapFile.Write(','); - trapFile.Write(location.EndLine); - trapFile.Write(','); - trapFile.Write(location.EndColumn); - trapFile.Write(";sourcelocation"); - } - - public override bool Equals(object? obj) - { - return obj is PdbSourceLocation l && location.Equals(l.location); - } - - public override int GetHashCode() => location.GetHashCode(); - - public override IEnumerable Contents - { - get - { - yield return file; - yield return Tuples.locations_default(this, file, location.StartLine, location.StartColumn, location.EndLine, location.EndColumn); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/Type.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/Type.cs deleted file mode 100644 index 335a6c89c30..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/Type.cs +++ /dev/null @@ -1,209 +0,0 @@ -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.IO; -using System.Linq; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A type. - /// - internal abstract class Type : TypeContainer, IMember - { - internal const string AssemblyTypeNameSeparator = "::"; - internal const string PrimitiveTypePrefix = "builtin" + AssemblyTypeNameSeparator + "System."; - - protected Type(Context cx) : base(cx) { } - - /// - /// Find the method in this type matching the name and signature. - /// - /// The handle to the name. - /// - /// The handle to the signature. Note that comparing handles is a valid - /// shortcut to comparing the signature bytes since handles are unique. - /// - /// The method, or 'null' if not found or not supported. - internal virtual Method? LookupMethod(StringHandle methodName, BlobHandle signature) - { - return null; - } - - /// - /// Writes the assembly identifier of this type. - /// - public abstract void WriteAssemblyPrefix(TextWriter trapFile); - - /// - /// Writes the ID part to be used in a method ID. - /// - /// - /// Whether we should output the context prefix of type parameters. - /// (This is to avoid infinite recursion generating a method ID that returns a - /// type parameter.) - /// - public abstract void WriteId(EscapingTextWriter trapFile, bool inContext); - - public sealed override void WriteId(EscapingTextWriter trapFile) - { - WriteId(trapFile, false); - trapFile.Write(";cil-type"); - } - - /// - /// Returns the friendly qualified name of types, such as - /// ``"System.Collection.Generic.List`1"`` or - /// ``"System.Collection.Generic.List"``. - /// - /// Note that method/type generic type parameters never show up in the returned name. - /// - public string GetQualifiedName() - { - using var writer = new EscapingTextWriter(); - WriteId(writer, false); - var name = writer.ToString(); - return name.Substring(name.IndexOf(AssemblyTypeNameSeparator) + 2). - Replace(";namespace", ""). - Replace(";cil-type", ""); - } - - public abstract CilTypeKind Kind { get; } - - public override IEnumerable Contents - { - get - { - yield return Tuples.cil_type(this, Name, Kind, Parent, SourceDeclaration); - } - } - - public abstract string Name { get; } - - public abstract Namespace? ContainingNamespace { get; } - - public abstract Type? ContainingType { get; } - - public virtual TypeContainer Parent => (TypeContainer?)ContainingType ?? ContainingNamespace!; - - public abstract Type Construct(IEnumerable typeArguments); - - /// - /// Returns the type arguments of constructed types. For non-constructed types it returns an - /// empty collection. - /// - public virtual IEnumerable ThisTypeArguments - { - get - { - yield break; - } - } - - /// - /// The number of type parameters for non-constructed generic types, the number of type arguments - /// for constructed types, or 0. - /// - public abstract int ThisTypeParameterCount { get; } - - /// - /// The total number of type parameters/type arguments (including parent types). - /// This is used for internal consistency checking only. - /// - public int TotalTypeParametersCount => - ThisTypeParameterCount + (ContainingType?.TotalTypeParametersCount ?? 0); - - /// - /// Returns all bound/unbound generic arguments of a constructed/unbound generic type. - /// - public virtual IEnumerable ThisGenericArguments - { - get - { - yield break; - } - } - - public virtual IEnumerable GenericArguments - { - get - { - if (ContainingType is not null) - { - foreach (var t in ContainingType.GenericArguments) - yield return t; - } - - foreach (var t in ThisGenericArguments) - yield return t; - } - } - - public virtual Type SourceDeclaration => this; - - public static void WritePrimitiveTypeId(TextWriter trapFile, string name) - { - trapFile.Write(PrimitiveTypePrefix); - trapFile.Write(name); - } - - private static readonly Dictionary primitiveTypeCodeMapping = new Dictionary - { - {"Boolean", PrimitiveTypeCode.Boolean}, - {"Object", PrimitiveTypeCode.Object}, - {"Byte", PrimitiveTypeCode.Byte}, - {"SByte", PrimitiveTypeCode.SByte}, - {"Int16", PrimitiveTypeCode.Int16}, - {"UInt16", PrimitiveTypeCode.UInt16}, - {"Int32", PrimitiveTypeCode.Int32}, - {"UInt32", PrimitiveTypeCode.UInt32}, - {"Int64", PrimitiveTypeCode.Int64}, - {"UInt64", PrimitiveTypeCode.UInt64}, - {"Single", PrimitiveTypeCode.Single}, - {"Double", PrimitiveTypeCode.Double}, - {"String", PrimitiveTypeCode.String}, - {"Void", PrimitiveTypeCode.Void}, - {"IntPtr", PrimitiveTypeCode.IntPtr}, - {"UIntPtr", PrimitiveTypeCode.UIntPtr}, - {"Char", PrimitiveTypeCode.Char}, - {"TypedReference", PrimitiveTypeCode.TypedReference} - }; - - /// - /// Gets the primitive type corresponding to this type, if possible. - /// - /// The resulting primitive type, or null. - /// True if this type is a primitive type. - public bool TryGetPrimitiveType([NotNullWhen(true)] out PrimitiveType? t) - { - if (TryGetPrimitiveTypeCode(out var code)) - { - t = Context.Create(code); - return true; - } - - t = null; - return false; - } - - private bool TryGetPrimitiveTypeCode(out PrimitiveTypeCode code) - { - if (ContainingType is null && - ContainingNamespace?.Name == Context.SystemNamespace.Name && - primitiveTypeCodeMapping.TryGetValue(Name, out code)) - { - return true; - } - - code = default; - return false; - } - - protected internal bool IsPrimitiveType => TryGetPrimitiveTypeCode(out _); - - public sealed override IEnumerable MethodParameters => Enumerable.Empty(); - - public static Type DecodeType(IGenericContext gc, TypeSpecificationHandle handle) => - gc.Context.MdReader.GetTypeSpecification(handle).DecodeSignature(gc.Context.TypeSignatureDecoder, gc); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeAnnotation.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeAnnotation.cs deleted file mode 100644 index fe005326b95..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeAnnotation.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; - -namespace Semmle.Extraction.CIL.Entities -{ - [Flags] - public enum TypeAnnotation - { - None = 0, - Ref = 32 - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeContainer.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeContainer.cs deleted file mode 100644 index 463f2c963a3..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeContainer.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// Base class for all type containers (namespaces, types, methods). - /// - internal abstract class TypeContainer : LabelledEntity, IGenericContext - { - protected TypeContainer(Context cx) : base(cx) - { - } - - public abstract IEnumerable MethodParameters { get; } - public abstract IEnumerable TypeParameters { get; } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeDefinitionType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeDefinitionType.cs deleted file mode 100644 index f9cec6a4133..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeDefinitionType.cs +++ /dev/null @@ -1,263 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Reflection.Metadata; -using System.Reflection.Metadata.Ecma335; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A type defined in the current assembly. - /// - internal sealed class TypeDefinitionType : Type - { - private readonly TypeDefinitionHandle handle; - private readonly TypeDefinition td; - private readonly Lazy> typeParams; - private readonly Type? declType; - private readonly NamedTypeIdWriter idWriter; - - public TypeDefinitionType(Context cx, TypeDefinitionHandle handle) : base(cx) - { - idWriter = new NamedTypeIdWriter(this); - td = cx.MdReader.GetTypeDefinition(handle); - this.handle = handle; - - declType = - td.GetDeclaringType().IsNil ? null : - (Type)cx.Create(td.GetDeclaringType()); - - // Lazy because should happen during population. - typeParams = new Lazy>(MakeTypeParameters); - } - - public override bool Equals(object? obj) - { - return obj is TypeDefinitionType t && handle.Equals(t.handle); - } - - public override int GetHashCode() => handle.GetHashCode(); - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - idWriter.WriteId(trapFile, inContext); - } - - public override string Name => GenericsHelper.GetNonGenericName(td.Name, Context.MdReader); - - public override Namespace ContainingNamespace => Context.Create(td.NamespaceDefinition); - - public override Type? ContainingType => declType; - - public override CilTypeKind Kind => CilTypeKind.ValueOrRefType; - - public override Type Construct(IEnumerable typeArguments) - { - if (TotalTypeParametersCount != typeArguments.Count()) - throw new InternalError("Mismatched type arguments"); - - return Context.Populate(new ConstructedType(Context, this, typeArguments)); - } - - public override void WriteAssemblyPrefix(TextWriter trapFile) - { - var ct = ContainingType; - if (ct is null) - Context.WriteAssemblyPrefix(trapFile); - else if (IsPrimitiveType) - trapFile.Write(Type.PrimitiveTypePrefix); - else - ct.WriteAssemblyPrefix(trapFile); - } - - private IEnumerable MakeTypeParameters() - { - if (ThisTypeParameterCount == 0) - return Enumerable.Empty(); - - var newTypeParams = new TypeTypeParameter[ThisTypeParameterCount]; - var genericParams = td.GetGenericParameters(); - var toSkip = genericParams.Count - newTypeParams.Length; - - // Two-phase population because type parameters can be mutually dependent - for (var i = 0; i < newTypeParams.Length; ++i) - newTypeParams[i] = Context.Populate(new TypeTypeParameter(this, i)); - for (var i = 0; i < newTypeParams.Length; ++i) - newTypeParams[i].PopulateHandle(genericParams[i + toSkip]); - return newTypeParams; - } - - public override int ThisTypeParameterCount - { - get - { - var containingType = td.GetDeclaringType(); - var parentTypeParameters = containingType.IsNil - ? 0 - : Context.MdReader.GetTypeDefinition(containingType).GetGenericParameters().Count; - - return td.GetGenericParameters().Count - parentTypeParameters; - } - } - - public override IEnumerable TypeParameters => GenericsHelper.GetAllTypeParameters(declType, typeParams!.Value); - - public override IEnumerable ThisGenericArguments => typeParams.Value; - - public override IEnumerable Contents - { - get - { - yield return Tuples.metadata_handle(this, Context.Assembly, MetadataTokens.GetToken(handle)); - - foreach (var c in base.Contents) yield return c; - - MakeTypeParameters(); - - foreach (var f in td.GetFields()) - { - // Populate field if needed - yield return Context.CreateGeneric(this, f); - } - - foreach (var prop in td.GetProperties()) - { - yield return new Property(this, this, prop); - } - - foreach (var @event in td.GetEvents()) - { - yield return new Event(Context, this, @event); - } - - foreach (var a in Attribute.Populate(Context, this, td.GetCustomAttributes())) - yield return a; - - foreach (var impl in td.GetMethodImplementations().Select(i => Context.MdReader.GetMethodImplementation(i))) - { - var m = (Method)Context.CreateGeneric(this, impl.MethodBody); - var decl = (Method)Context.CreateGeneric(this, impl.MethodDeclaration); - - yield return m; - yield return decl; - yield return Tuples.cil_implements(m, decl); - } - - if (td.Attributes.HasFlag(TypeAttributes.Abstract)) - yield return Tuples.cil_abstract(this); - - if (td.Attributes.HasFlag(TypeAttributes.Interface)) - yield return Tuples.cil_interface(this); - else - yield return Tuples.cil_class(this); - - if (td.Attributes.HasFlag(TypeAttributes.Public)) - yield return Tuples.cil_public(this); - - if (td.Attributes.HasFlag(TypeAttributes.Sealed)) - yield return Tuples.cil_sealed(this); - - if (td.Attributes.HasFlag(TypeAttributes.HasSecurity)) - yield return Tuples.cil_security(this); - - // Base types - - if (!td.BaseType.IsNil) - { - var @base = (Type)Context.CreateGeneric(this, td.BaseType); - yield return @base; - yield return Tuples.cil_base_class(this, @base); - - if (IsSystemEnum(td.BaseType) && - GetUnderlyingEnumType() is var underlying && - underlying.HasValue) - { - var underlyingType = Context.Create(underlying.Value); - yield return underlyingType; - yield return Tuples.cil_enum_underlying_type(this, underlyingType); - } - } - - foreach (var @interface in td.GetInterfaceImplementations().Select(i => Context.MdReader.GetInterfaceImplementation(i))) - { - var t = (Type)Context.CreateGeneric(this, @interface.Interface); - yield return t; - yield return Tuples.cil_base_interface(this, t); - } - - // Only type definitions have locations. - yield return Tuples.cil_type_location(this, Context.Assembly); - } - } - - private bool IsSystemEnum(EntityHandle baseType) - { - return baseType.Kind switch - { - HandleKind.TypeReference => IsSystemEnum((TypeReferenceHandle)baseType), - HandleKind.TypeDefinition => IsSystemEnum((TypeDefinitionHandle)baseType), - _ => false, - }; - } - - private bool IsSystemEnum(TypeReferenceHandle baseType) - { - var baseTypeReference = Context.MdReader.GetTypeReference(baseType); - - return IsSystemEnum(baseTypeReference.Name, baseTypeReference.Namespace); - } - - private bool IsSystemEnum(TypeDefinitionHandle baseType) - { - var baseTypeDefinition = Context.MdReader.GetTypeDefinition(baseType); - - return IsSystemEnum(baseTypeDefinition.Name, baseTypeDefinition.Namespace); - } - - private bool IsSystemEnum(StringHandle typeName, StringHandle namespaceName) - { - return Context.MdReader.StringComparer.Equals(typeName, "Enum") && - !namespaceName.IsNil && - Context.MdReader.StringComparer.Equals(namespaceName, "System"); - } - - internal PrimitiveTypeCode? GetUnderlyingEnumType() - { - foreach (var handle in td.GetFields()) - { - var field = Context.MdReader.GetFieldDefinition(handle); - if (field.Attributes.HasFlag(FieldAttributes.Static)) - { - continue; - } - - var blob = Context.MdReader.GetBlobReader(field.Signature); - if (blob.ReadSignatureHeader().Kind != SignatureKind.Field) - { - break; - } - - return (PrimitiveTypeCode)blob.ReadByte(); - } - - return null; - } - - internal override Method LookupMethod(StringHandle name, BlobHandle signature) - { - foreach (var h in td.GetMethods()) - { - var md = Context.MdReader.GetMethodDefinition(h); - - if (md.Name == name && md.Signature == signature) - { - return (Method)Context.Create(h); - } - } - - throw new InternalError("Couldn't locate method in type"); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeParameter.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeParameter.cs deleted file mode 100644 index 5db8b7fb6a3..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeParameter.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - internal abstract class TypeParameter : Type - { - protected readonly IGenericContext gc; - - protected TypeParameter(IGenericContext gc) : base(gc.Context) - { - this.gc = gc; - } - - public override Namespace? ContainingNamespace => null; - - public override Type? ContainingType => null; - - public override int ThisTypeParameterCount => 0; - - public override CilTypeKind Kind => CilTypeKind.TypeParameter; - - public override void WriteAssemblyPrefix(TextWriter trapFile) => throw new NotImplementedException(); - - public override Type Construct(IEnumerable typeArguments) => throw new InternalError("Attempt to construct a type parameter"); - - public IEnumerable PopulateHandle(GenericParameterHandle parameterHandle) - { - if (!parameterHandle.IsNil) - { - var tp = Context.MdReader.GetGenericParameter(parameterHandle); - - if (tp.Attributes.HasFlag(GenericParameterAttributes.Contravariant)) - yield return Tuples.cil_typeparam_contravariant(this); - if (tp.Attributes.HasFlag(GenericParameterAttributes.Covariant)) - yield return Tuples.cil_typeparam_covariant(this); - if (tp.Attributes.HasFlag(GenericParameterAttributes.DefaultConstructorConstraint)) - yield return Tuples.cil_typeparam_new(this); - if (tp.Attributes.HasFlag(GenericParameterAttributes.ReferenceTypeConstraint)) - yield return Tuples.cil_typeparam_class(this); - if (tp.Attributes.HasFlag(GenericParameterAttributes.NotNullableValueTypeConstraint)) - yield return Tuples.cil_typeparam_struct(this); - - foreach (var constraint in tp.GetConstraints().Select(h => Context.MdReader.GetGenericParameterConstraint(h))) - { - var t = (Type)Context.CreateGeneric(this.gc, constraint.Type); - yield return t; - yield return Tuples.cil_typeparam_constraint(this, t); - } - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeReferenceType.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeReferenceType.cs deleted file mode 100644 index f1c10fe836e..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeReferenceType.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// A type reference, to a type in a referenced assembly. - /// - internal sealed class TypeReferenceType : Type - { - private readonly TypeReferenceHandle handle; - private readonly TypeReference tr; - private readonly Lazy typeParams; - private readonly NamedTypeIdWriter idWriter; - - public TypeReferenceType(Context cx, TypeReferenceHandle handle) : base(cx) - { - this.idWriter = new NamedTypeIdWriter(this); - this.handle = handle; - this.tr = cx.MdReader.GetTypeReference(handle); - this.typeParams = new Lazy(GenericsHelper.MakeTypeParameters(this, ThisTypeParameterCount)); - } - - public override bool Equals(object? obj) - { - return obj is TypeReferenceType t && handle.Equals(t.handle); - } - - public override int GetHashCode() - { - return handle.GetHashCode(); - } - - public override IEnumerable Contents - { - get - { - foreach (var tp in typeParams.Value) - yield return tp; - - foreach (var c in base.Contents) - yield return c; - } - } - - public override string Name => GenericsHelper.GetNonGenericName(tr.Name, Context.MdReader); - - public override Namespace ContainingNamespace => Context.CreateNamespace(tr.Namespace); - - public override Type? ContainingType - { - get - { - return tr.ResolutionScope.Kind == HandleKind.TypeReference - ? (Type)Context.Create((TypeReferenceHandle)tr.ResolutionScope) - : null; - } - } - - public override CilTypeKind Kind => CilTypeKind.ValueOrRefType; - - public override void WriteAssemblyPrefix(TextWriter trapFile) - { - switch (tr.ResolutionScope.Kind) - { - case HandleKind.TypeReference: - ContainingType!.WriteAssemblyPrefix(trapFile); - break; - case HandleKind.AssemblyReference: - var assemblyDef = Context.MdReader.GetAssemblyReference((AssemblyReferenceHandle)tr.ResolutionScope); - trapFile.Write(Context.GetString(assemblyDef.Name)); - trapFile.Write('_'); - trapFile.Write(assemblyDef.Version.ToString()); - trapFile.Write(Entities.Type.AssemblyTypeNameSeparator); - break; - default: - Context.WriteAssemblyPrefix(trapFile); - break; - } - } - - public override int ThisTypeParameterCount => GenericsHelper.GetGenericTypeParameterCount(tr.Name, Context.MdReader); - - public override IEnumerable TypeParameters => GenericsHelper.GetAllTypeParameters(ContainingType, typeParams!.Value); - - public override IEnumerable ThisGenericArguments => typeParams.Value; - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - idWriter.WriteId(trapFile, inContext); - } - - public override Type Construct(IEnumerable typeArguments) - { - if (TotalTypeParametersCount != typeArguments.Count()) - throw new InternalError("Mismatched type arguments"); - - return Context.Populate(new ConstructedType(Context, this, typeArguments)); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeSignatureDecoder.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeSignatureDecoder.cs deleted file mode 100644 index bcd34c76e41..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeSignatureDecoder.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.Immutable; -using System.Linq; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL.Entities -{ - /// - /// Decodes a type signature and produces a Type, for use by DecodeSignature() and friends. - /// - internal class TypeSignatureDecoder : ISignatureTypeProvider - { - private readonly Context cx; - - public TypeSignatureDecoder(Context cx) - { - this.cx = cx; - } - - Type IConstructedTypeProvider.GetArrayType(Type elementType, ArrayShape shape) => - cx.Populate(new ArrayType(cx, elementType, shape.Rank)); - - Type IConstructedTypeProvider.GetByReferenceType(Type elementType) => - new ByRefType(cx, elementType); - - Type ISignatureTypeProvider.GetFunctionPointerType(MethodSignature signature) => - cx.Populate(new FunctionPointerType(cx, signature)); - - Type IConstructedTypeProvider.GetGenericInstantiation(Type genericType, ImmutableArray typeArguments) => - genericType.Construct(typeArguments); - - Type ISignatureTypeProvider.GetGenericMethodParameter(IGenericContext genericContext, int index) => - genericContext.MethodParameters.ElementAt(index); - - Type ISignatureTypeProvider.GetGenericTypeParameter(IGenericContext genericContext, int index) => - genericContext.TypeParameters.ElementAt(index); - - Type ISignatureTypeProvider.GetModifiedType(Type modifier, Type unmodifiedType, bool isRequired) => - new ModifiedType(cx, unmodifiedType, modifier, isRequired); - - Type ISignatureTypeProvider.GetPinnedType(Type elementType) => elementType; - - Type IConstructedTypeProvider.GetPointerType(Type elementType) => - cx.Populate(new PointerType(cx, elementType)); - - Type ISimpleTypeProvider.GetPrimitiveType(PrimitiveTypeCode typeCode) => cx.Create(typeCode); - - Type ISZArrayTypeProvider.GetSZArrayType(Type elementType) => - cx.Populate(new ArrayType(cx, elementType)); - - Type ISimpleTypeProvider.GetTypeFromDefinition(MetadataReader reader, TypeDefinitionHandle handle, byte rawTypeKind) => - (Type)cx.Create(handle); - - Type ISimpleTypeProvider.GetTypeFromReference(MetadataReader reader, TypeReferenceHandle handle, byte rawTypeKind) => - (Type)cx.Create(handle); - - Type ISignatureTypeProvider.GetTypeFromSpecification(MetadataReader reader, IGenericContext genericContext, TypeSpecificationHandle handle, byte rawTypeKind) => - throw new NotImplementedException(); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeTypeParameter.cs b/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeTypeParameter.cs deleted file mode 100644 index ba4ec79fb78..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Entities/TypeTypeParameter.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System.Collections.Generic; -using System.Linq; - -namespace Semmle.Extraction.CIL.Entities -{ - internal sealed class TypeTypeParameter : TypeParameter - { - private readonly Type type; - private readonly int index; - - public TypeTypeParameter(Type t, int i) : base(t) - { - index = i; - type = t; - } - - public override bool Equals(object? obj) - { - return obj is TypeTypeParameter tp && type.Equals(tp.type) && index == tp.index; - } - - public override int GetHashCode() - { - return type.GetHashCode() * 13 + index; - } - - public override void WriteId(EscapingTextWriter trapFile, bool inContext) - { - type.WriteId(trapFile, inContext); - trapFile.Write('!'); - trapFile.Write(index); - } - - public override TypeContainer Parent => type; - public override string Name => "!" + index; - - public override IEnumerable TypeParameters => Enumerable.Empty(); - - public override IEnumerable Contents - { - get - { - yield return Tuples.cil_type(this, Name, Kind, type, SourceDeclaration); - yield return Tuples.cil_type_parameter(type, index, this); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/ICustomModifierReceiver.cs b/csharp/extractor/Semmle.Extraction.CIL/ICustomModifierReceiver.cs deleted file mode 100644 index 24d2c057b2e..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/ICustomModifierReceiver.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Semmle.Extraction.CIL -{ - internal interface ICustomModifierReceiver - { - } -} \ No newline at end of file diff --git a/csharp/extractor/Semmle.Extraction.CIL/Id.cs b/csharp/extractor/Semmle.Extraction.CIL/Id.cs deleted file mode 100644 index 8d9a78f76d3..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Id.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection.Metadata; - -namespace Semmle.Extraction.CIL -{ - public static class IdUtils - { - public static string Id(this PrimitiveTypeCode typeCode) - { - switch (typeCode) - { - case PrimitiveTypeCode.Boolean: return "Boolean"; - case PrimitiveTypeCode.Byte: return "Byte"; - case PrimitiveTypeCode.Char: return "Char"; - case PrimitiveTypeCode.Double: return "Double"; - case PrimitiveTypeCode.Int16: return "Int16"; - case PrimitiveTypeCode.Int32: return "Int32"; - case PrimitiveTypeCode.Int64: return "Int64"; - case PrimitiveTypeCode.IntPtr: return "IntPtr"; - case PrimitiveTypeCode.Object: return "Object"; - case PrimitiveTypeCode.SByte: return "SByte"; - case PrimitiveTypeCode.Single: return "Single"; - case PrimitiveTypeCode.String: return "String"; - case PrimitiveTypeCode.UInt16: return "UInt16"; - case PrimitiveTypeCode.UInt32: return "UInt32"; - case PrimitiveTypeCode.UInt64: return "UInt64"; - case PrimitiveTypeCode.UIntPtr: return "UIntPtr"; - case PrimitiveTypeCode.Void: return "Void"; - case PrimitiveTypeCode.TypedReference: return "TypedReference"; - default: throw new InternalError($"Unhandled type code {typeCode}"); - } - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/IPdb.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/IPdb.cs deleted file mode 100644 index 46c11440dc5..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/IPdb.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection.Metadata; - -namespace Semmle.Extraction.PDB -{ - /// - /// Wrapper for reading PDB files. - /// This is needed because there are different libraries for dealing with - /// different types of PDB file, even though they share the same file extension. - /// - public interface IPdb : IDisposable - { - /// - /// Gets all source files in this PDB. - /// - IEnumerable SourceFiles { get; } - - /// - /// Look up a method from a given handle. - /// - /// The handle to query. - /// The method information, or null if the method does not have debug information. - Method? GetMethod(MethodDebugInformationHandle methodHandle); - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/ISourceFile.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/ISourceFile.cs deleted file mode 100644 index 48e1de708f2..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/ISourceFile.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Semmle.Extraction.PDB -{ - /// - /// A source file reference in a PDB file. - /// - public interface ISourceFile - { - string Path { get; } - - /// - /// The contents of the file. - /// This property is needed in case the contents - /// of the file are embedded in the PDB instead of being on the filesystem. - /// - /// null if the contents are unavailable. - /// E.g. if the PDB file exists but the corresponding source files are missing. - /// - string? Contents { get; } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/Location.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/Location.cs deleted file mode 100644 index ccf95f8e7d9..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/Location.cs +++ /dev/null @@ -1,63 +0,0 @@ -namespace Semmle.Extraction.PDB -{ - /// - /// A location in source code. - /// - public sealed class Location - { - /// - /// The file containing the code. - /// - public ISourceFile File { get; } - - /// - /// The start line of text within the source file. - /// - public int StartLine { get; } - - /// - /// The start column of text within the source file. - /// - public int StartColumn { get; } - - /// - /// The end line of text within the source file. - /// - public int EndLine { get; } - - /// - /// The end column of text within the source file. - /// - public int EndColumn { get; } - - public override string ToString() - { - return string.Format("({0},{1})-({2},{3})", StartLine, StartColumn, EndLine, EndColumn); - } - - public override bool Equals(object? obj) - { - return obj is Location otherLocation && - File.Equals(otherLocation.File) && - StartLine == otherLocation.StartLine && - StartColumn == otherLocation.StartColumn && - EndLine == otherLocation.EndLine && - EndColumn == otherLocation.EndColumn; - } - - public override int GetHashCode() - { - var h1 = StartLine + 37 * (StartColumn + 51 * (EndLine + 97 * EndColumn)); - return File.GetHashCode() + 17 * h1; - } - - public Location(ISourceFile file, int startLine, int startCol, int endLine, int endCol) - { - File = file; - StartLine = startLine; - StartColumn = startCol; - EndLine = endLine; - EndColumn = endCol; - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/MdProvider.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/MdProvider.cs deleted file mode 100644 index 90b953ac0e7..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/MdProvider.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Reflection; -using Microsoft.DiaSymReader; - -#pragma warning disable IDE0060, CA1822 - -namespace Semmle.Extraction.PDB -{ - /// - /// This is not used but is seemingly needed in order to use DiaSymReader. - /// - internal class MdProvider : ISymReaderMetadataProvider - { - public MdProvider() - { - } - - public object? GetMetadataImport() => null; - - public unsafe bool TryGetStandaloneSignature(int standaloneSignatureToken, out byte* signature, out int length) => - throw new NotImplementedException(); - - public bool TryGetTypeDefinitionInfo(int typeDefinitionToken, out string namespaceName, out string typeName, out TypeAttributes attributes, out int baseTypeToken) => - throw new NotImplementedException(); - - public bool TryGetTypeDefinitionInfo(int typeDefinitionToken, out string namespaceName, out string typeName, out TypeAttributes attributes) => - throw new NotImplementedException(); - - public bool TryGetTypeReferenceInfo(int typeReferenceToken, out string namespaceName, out string typeName, out int resolutionScopeToken) => - throw new NotImplementedException(); - - public bool TryGetTypeReferenceInfo(int typeReferenceToken, out string namespaceName, out string typeName) => - throw new NotImplementedException(); - } -} - -#pragma warning restore diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/MetadataPdbReader.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/MetadataPdbReader.cs deleted file mode 100644 index fa7a1d0e8ca..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/MetadataPdbReader.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection.Metadata; -using System.Reflection.PortableExecutable; - -namespace Semmle.Extraction.PDB -{ - /// - /// A reader of PDB information using System.Reflection.Metadata. - /// This is cross platform, and the future of PDB. - /// - /// PDB information can be in a separate PDB file, or embedded in the DLL. - /// - internal sealed class MetadataPdbReader : IPdb - { - private class SourceFile : ISourceFile - { - public SourceFile(MetadataReader reader, DocumentHandle handle) - { - var doc = reader.GetDocument(handle); - Path = reader.GetString(doc.Name); - } - - public string Path { get; private set; } - - public string? Contents => File.Exists(Path) ? File.ReadAllText(Path, System.Text.Encoding.Default) : null; - } - - // Turns out to be very important to keep the MetadataReaderProvider live - // or the reader will crash. - private readonly MetadataReaderProvider provider; - private readonly MetadataReader reader; - - public MetadataPdbReader(MetadataReaderProvider provider) - { - this.provider = provider; - reader = provider.GetMetadataReader(); - } - - public IEnumerable SourceFiles => reader.Documents.Select(handle => new SourceFile(reader, handle)); - - public Method? GetMethod(MethodDebugInformationHandle handle) - { - var debugInfo = reader.GetMethodDebugInformation(handle); - - var sequencePoints = debugInfo.GetSequencePoints() - .Where(p => !p.Document.IsNil && !p.IsHidden) - .Select(p => new SequencePoint(p.Offset, new Location( - new SourceFile(reader, p.Document), p.StartLine, p.StartColumn, p.EndLine, p.EndColumn))) - .Where(p => p.Location.File.Path is not null) - .ToArray(); - - return sequencePoints.Any() ? new Method(sequencePoints) : null; - } - - public static MetadataPdbReader? CreateFromAssembly(string assemblyPath, PEReader peReader) - { - var provider = peReader - .ReadDebugDirectory() - .Where(d => d.Type == DebugDirectoryEntryType.EmbeddedPortablePdb) - .Select(dirEntry => peReader.ReadEmbeddedPortablePdbDebugDirectoryData(dirEntry)) - .FirstOrDefault(); - - if (provider is not null) - { - return new MetadataPdbReader(provider); - } - - try - { - if (peReader.TryOpenAssociatedPortablePdb( - assemblyPath, - s => new FileStream(s, FileMode.Open, FileAccess.Read, FileShare.Read), - out provider, - out _)) - { - return new MetadataPdbReader(provider!); - } - } - - catch (BadImageFormatException) - { - // Something is wrong with the file. - } - catch (FileNotFoundException) - { - // The PDB file was not found. - } - return null; - } - - public void Dispose() - { - provider.Dispose(); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/Method.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/Method.cs deleted file mode 100644 index 6a534a4dd20..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/Method.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.Generic; -using System.Linq; - -namespace Semmle.Extraction.PDB -{ - public class Method - { - public IEnumerable SequencePoints { get; } - - public Method(IEnumerable sequencePoints) - { - SequencePoints = sequencePoints; - } - - public Location Location => SequencePoints.First().Location; - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/NativePdbReader.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/NativePdbReader.cs deleted file mode 100644 index c6db472411e..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/NativePdbReader.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection.Metadata; -using System.Reflection.Metadata.Ecma335; -using System.Reflection.PortableExecutable; -using Microsoft.DiaSymReader; - -namespace Semmle.Extraction.PDB -{ - /// - /// A PDB reader using Microsoft.DiaSymReader.Native. - /// This is an unmanaged Windows DLL, which therefore only works on Windows. - /// - internal sealed class NativePdbReader : IPdb - { - private sealed class Document : ISourceFile - { - private readonly ISymUnmanagedDocument document; - - public Document(ISymUnmanagedDocument doc) - { - document = doc; - contents = new Lazy(() => - { - if (document.HasEmbeddedSource(out var isEmbedded) == 0 && isEmbedded) - { - var rawContents = document.GetEmbeddedSource().ToArray(); - return System.Text.Encoding.Default.GetString(rawContents); - } - - return File.Exists(Path) - ? File.ReadAllText(Path) - : null; - - }); - } - - public override bool Equals(object? obj) - { - return obj is Document otherDoc && Path.Equals(otherDoc.Path); - } - - public override int GetHashCode() => Path.GetHashCode(); - - public string Path => document.GetName(); - - public override string ToString() => Path; - - private readonly Lazy contents; - - public string? Contents => contents.Value; - } - - public IEnumerable SourceFiles => reader.GetDocuments().Select(d => new Document(d)); - - public Method? GetMethod(MethodDebugInformationHandle h) - { - var methodToken = MetadataTokens.GetToken(h.ToDefinitionHandle()); - var method = reader.GetMethod(methodToken); - if (method is not null) - { - if (method.GetSequencePointCount(out var count) != 0 || count == 0) - return null; - - var s = method.GetSequencePoints() - .Where(sp => !sp.IsHidden) - .Select(sp => new SequencePoint(sp.Offset, new Location( - new Document(sp.Document), sp.StartLine, sp.StartColumn, sp.EndLine, sp.EndColumn))) - .ToArray(); - - return s.Any() ? new Method(s) : null; - } - return null; - } - - private NativePdbReader(string path) - { - pdbStream = new FileStream(path, FileMode.Open); - var metadataProvider = new MdProvider(); - reader = SymUnmanagedReaderFactory.CreateReader(pdbStream, metadataProvider); - } - - private readonly ISymUnmanagedReader5 reader; - private readonly FileStream pdbStream; - - public static NativePdbReader? CreateFromAssembly(PEReader peReader) - { - // The Native PDB reader uses an unmanaged Windows DLL - // so only works on Windows. - if (!Semmle.Util.Win32.IsWindows()) - return null; - - var debugDirectory = peReader.ReadDebugDirectory(); - - var path = debugDirectory - .Where(d => d.Type == DebugDirectoryEntryType.CodeView) - .Select(peReader.ReadCodeViewDebugDirectoryData) - .Select(cv => cv.Path) - .FirstOrDefault(File.Exists); - - if (path is not null) - { - return new NativePdbReader(path); - } - - return null; - } - - public void Dispose() - { - pdbStream.Dispose(); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/PdbReader.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/PdbReader.cs deleted file mode 100644 index 1f0f1b455dc..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/PdbReader.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Reflection.PortableExecutable; - -namespace Semmle.Extraction.PDB -{ - internal static class PdbReader - { - /// - /// Returns the PDB information associated with an assembly. - /// - /// The path to the assembly. - /// The PE reader for the assembly. - /// A PdbReader, or null if no PDB information is available. - public static IPdb? Create(string assemblyPath, PEReader peReader) - { - return (IPdb?)MetadataPdbReader.CreateFromAssembly(assemblyPath, peReader) ?? - NativePdbReader.CreateFromAssembly(peReader); - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/PDB/SequencePoint.cs b/csharp/extractor/Semmle.Extraction.CIL/PDB/SequencePoint.cs deleted file mode 100644 index 2cea6e54768..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/PDB/SequencePoint.cs +++ /dev/null @@ -1,30 +0,0 @@ -namespace Semmle.Extraction.PDB -{ - /// - /// A sequencepoint is a marker in the source code where you can put a breakpoint, and - /// maps instructions to source code. - /// - public struct SequencePoint - { - /// - /// The byte-offset of the instruction. - /// - public int Offset { get; } - - /// - /// The source location of the instruction. - /// - public Location Location { get; } - - public override string ToString() - { - return string.Format("{0} = {1}", Offset, Location); - } - - public SequencePoint(int offset, Location location) - { - Offset = offset; - Location = location; - } - } -} diff --git a/csharp/extractor/Semmle.Extraction.CIL/Properties/AssemblyInfo.cs b/csharp/extractor/Semmle.Extraction.CIL/Properties/AssemblyInfo.cs deleted file mode 100644 index 110feb8de0d..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Semmle.Extraction.CIL")] -[assembly: AssemblyDescription("Semme CIL extractor.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Semmle.Extraction.CIL")] -[assembly: AssemblyCopyright("Copyright © Semmle 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("a23d9ec2-8aae-43da-97cb-579f640b89cd")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj b/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj deleted file mode 100644 index a952ea2d3dd..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Semmle.Extraction.CIL.csproj +++ /dev/null @@ -1,34 +0,0 @@ - - - - net8.0 - Semmle.Extraction.CIL - Semmle.Extraction.CIL - false - true - win-x64;linux-x64;osx-x64 - enable - - - - DEBUG;DEBUG_LABELS - - - - - - - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive -all - - - - diff --git a/csharp/extractor/Semmle.Extraction.CIL/Tuples.cs b/csharp/extractor/Semmle.Extraction.CIL/Tuples.cs deleted file mode 100644 index 44519f45468..00000000000 --- a/csharp/extractor/Semmle.Extraction.CIL/Tuples.cs +++ /dev/null @@ -1,227 +0,0 @@ -using Semmle.Extraction.CIL.Entities; - -namespace Semmle.Extraction.CIL -{ - - internal static class Tuples - { - internal static Tuple assemblies(Assembly assembly, File file, string identifier, string name, string version) => - new Tuple("assemblies", assembly, file, identifier, name, version); - - internal static Tuple cil_abstract(IMember method) => - new Tuple("cil_abstract", method); - - internal static Tuple cil_adder(Event member, Method method) => - new Tuple("cil_adder", member, method); - - internal static Tuple cil_access(Instruction i, IExtractedEntity m) => - new Tuple("cil_access", i, m); - - internal static Tuple cil_attribute(Attribute attribute, IExtractedEntity @object, Method constructor) => - new Tuple("cil_attribute", attribute, @object, constructor); - - internal static Tuple cil_attribute_named_argument(Attribute attribute, string name, string value) => - new Tuple("cil_attribute_named_argument", attribute, name, value); - - internal static Tuple cil_attribute_positional_argument(Attribute attribute, int index, string value) => - new Tuple("cil_attribute_positional_argument", attribute, index, value); - - internal static Tuple cil_array_type(ArrayType array, Type element, int rank) => - new Tuple("cil_array_type", array, element, rank); - - internal static Tuple cil_base_class(Type t, Type @base) => - new Tuple("cil_base_class", t, @base); - - internal static Tuple cil_enum_underlying_type(Type t, PrimitiveType underlying) => - new Tuple("cil_enum_underlying_type", t, underlying); - - internal static Tuple cil_base_interface(Type t, Type @base) => - new Tuple("cil_base_interface", t, @base); - - internal static Tuple cil_class(TypeDefinitionType type) => - new Tuple("cil_class", type); - - internal static Tuple cil_event(Event e, Type parent, string name, Type type) => - new Tuple("cil_event", e, parent, name, type); - - internal static Tuple cil_field(Field field, Type parent, string name, Type fieldType) => - new Tuple("cil_field", field, parent, name, fieldType); - - internal static Tuple cil_getter(Property member, Method method) => - new Tuple("cil_getter", member, method); - - internal static Tuple cil_handler(ExceptionRegion region, MethodImplementation method, int index, int kind, - Instruction region_start, - Instruction region_end, - Instruction handler_start) => - new Tuple("cil_handler", region, method, index, kind, region_start, region_end, handler_start); - - internal static Tuple cil_handler_filter(ExceptionRegion region, Instruction filter_start) => - new Tuple("cil_handler_filter", region, filter_start); - - internal static Tuple cil_handler_type(ExceptionRegion region, Type t) => - new Tuple("cil_handler_type", region, t); - - internal static Tuple cil_implements(Method derived, Method declaration) => - new Tuple("cil_implements", derived, declaration); - - internal static Tuple cil_instruction(Instruction instruction, int opcode, int index, MethodImplementation parent) => - new Tuple("cil_instruction", instruction, opcode, index, parent); - - internal static Tuple cil_instruction_location(Instruction i, PdbSourceLocation loc) => - new Tuple("cil_instruction_location", i, loc); - - internal static Tuple cil_interface(TypeDefinitionType type) => - new Tuple("cil_interface", type); - - internal static Tuple cil_internal(DefinitionField field) => - new Tuple("cil_internal", field); - - internal static Tuple cil_jump(Instruction from, Instruction to) => - new Tuple("cil_jump", from, to); - - internal static Tuple cil_local_variable(LocalVariable l, MethodImplementation m, int i, Type t) => - new Tuple("cil_local_variable", l, m, i, t); - - internal static Tuple cil_method(Method method, string name, Type declType, Type returnType) => - new Tuple("cil_method", method, name, declType, returnType); - - internal static Tuple cil_function_pointer_return_type(FunctionPointerType fnptr, Type returnType) => - new Tuple("cil_function_pointer_return_type", fnptr, returnType); - - internal static Tuple cil_function_pointer_calling_conventions(FunctionPointerType fnptr, System.Reflection.Metadata.SignatureCallingConvention callingConvention) => - new Tuple("cil_function_pointer_calling_conventions", fnptr, (int)callingConvention); - - internal static Tuple cil_method_implementation(MethodImplementation impl, Method method, Assembly assembly) => - new Tuple("cil_method_implementation", impl, method, assembly); - - internal static Tuple cil_method_location(Method m, ILocation a) => - new Tuple("cil_method_location", m, a); - - internal static Tuple cil_method_source_declaration(Method method, Method sourceDecl) => - new Tuple("cil_method_source_declaration", method, sourceDecl); - - internal static Tuple cil_method_stack_size(MethodImplementation method, int stackSize) => - new Tuple("cil_method_stack_size", method, stackSize); - - internal static Tuple cil_newslot(Method method) => - new Tuple("cil_newslot", method); - - internal static Tuple cil_parameter(Parameter p, IParameterizable m, int i, Type t) => - new Tuple("cil_parameter", p, m, i, t); - - internal static Tuple cil_parameter_in(Parameter p) => - new Tuple("cil_parameter_in", p); - - internal static Tuple cil_parameter_out(Parameter p) => - new Tuple("cil_parameter_out", p); - - internal static Tuple cil_pointer_type(PointerType t, Type pointee) => - new Tuple("cil_pointer_type", t, pointee); - - internal static Tuple cil_private(IMember modifiable) => - new Tuple("cil_private", modifiable); - - internal static Tuple cil_protected(IMember modifiable) => - new Tuple("cil_protected", modifiable); - - internal static Tuple cil_property(Property p, Type parent, string name, Type propType) => - new Tuple("cil_property", p, parent, name, propType); - - internal static Tuple cil_public(IMember modifiable) => - new Tuple("cil_public", modifiable); - - internal static Tuple cil_raiser(Event member, Method method) => - new Tuple("cil_raiser", member, method); - - internal static Tuple cil_requiresecobject(Method method) => - new Tuple("cil_requiresecobject", method); - - internal static Tuple cil_remover(Event member, Method method) => - new Tuple("cil_remover", member, method); - - internal static Tuple cil_sealed(IMember modifiable) => - new Tuple("cil_sealed", modifiable); - - internal static Tuple cil_security(IMember method) => - new Tuple("cil_security", method); - - internal static Tuple cil_setter(Property member, Method method) => - new Tuple("cil_setter", member, method); - - internal static Tuple cil_specialname(Method method) => - new Tuple("cil_specialname", method); - - internal static Tuple cil_static(IMember modifiable) => - new Tuple("cil_static", modifiable); - - internal static Tuple cil_switch(Instruction from, int index, Instruction to) => - new Tuple("cil_switch", from, index, to); - - internal static Tuple cil_type(Type t, string name, CilTypeKind kind, TypeContainer parent, Type sourceDecl) => - new Tuple("cil_type", t, name, (int)kind, parent, sourceDecl); - - internal static Tuple cil_type_argument(TypeContainer constructedTypeOrMethod, int index, Type argument) => - new Tuple("cil_type_argument", constructedTypeOrMethod, index, argument); - - internal static Tuple cil_type_location(Type t, Assembly a) => - new Tuple("cil_type_location", t, a); - - internal static Tuple cil_type_parameter(TypeContainer unboundTypeOrMethod, int index, TypeParameter parameter) => - new Tuple("cil_type_parameter", unboundTypeOrMethod, index, parameter); - - internal static Tuple cil_typeparam_covariant(TypeParameter p) => - new Tuple("cil_typeparam_covariant", p); - - internal static Tuple cil_typeparam_contravariant(TypeParameter p) => - new Tuple("cil_typeparam_contravariant", p); - - internal static Tuple cil_typeparam_class(TypeParameter p) => - new Tuple("cil_typeparam_class", p); - - internal static Tuple cil_typeparam_constraint(TypeParameter p, Type constraint) => - new Tuple("cil_typeparam_constraint", p, constraint); - - internal static Tuple cil_typeparam_new(TypeParameter p) => - new Tuple("cil_typeparam_new", p); - - internal static Tuple cil_typeparam_struct(TypeParameter p) => - new Tuple("cil_typeparam_struct", p); - - internal static Tuple cil_value(Instruction i, string value) => - new Tuple("cil_value", i, value); - - internal static Tuple cil_virtual(Method method) => - new Tuple("cil_virtual", method); - - internal static Tuple cil_custom_modifiers(ICustomModifierReceiver receiver, Type modifier, bool isRequired) => - new Tuple("cil_custom_modifiers", receiver, modifier, isRequired ? 1 : 0); - - internal static Tuple cil_type_annotation(IExtractedEntity receiver, TypeAnnotation annotation) => - new Tuple("cil_type_annotation", receiver, (int)annotation); - - internal static Tuple containerparent(Folder parent, IFileOrFolder child) => - new Tuple("containerparent", parent, child); - - internal static Tuple files(File file, string fullName) => - new Tuple("files", file, fullName); - - internal static Tuple file_extraction_mode(File file, ExtractorMode mode) => - new Tuple("file_extraction_mode", file, mode); - - internal static Tuple folders(Folder folder, string path) => - new Tuple("folders", folder, path); - - internal static Tuple locations_default(PdbSourceLocation label, File file, int startLine, int startCol, int endLine, int endCol) => - new Tuple("locations_default", label, file, startLine, startCol, endLine, endCol); - - internal static Tuple metadata_handle(IExtractedEntity entity, Assembly assembly, int handleValue) => - new Tuple("metadata_handle", entity, assembly, handleValue); - - internal static Tuple namespaces(Namespace ns, string name) => - new Tuple("namespaces", ns, name); - - internal static Tuple parent_namespace(TypeContainer child, Namespace parent) => - new Tuple("parent_namespace", child, parent); - } -} From af06202241d9ddd6752f0f15a129f057399ec582 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 4 Mar 2024 14:16:58 +0100 Subject: [PATCH 087/309] C#: Cleanup implementation. --- csharp/.editorconfig | 5 ++-- csharp/CSharp.sln | 4 --- csharp/codeql-extractor.yml | 7 ----- .../Options.cs | 1 - .../Extractor/Analyser.cs | 14 ---------- .../Semmle.Extraction.CSharp.csproj | 1 - .../Semmle.Extraction.Tests/Options.cs | 28 ------------------- csharp/extractor/Semmle.Extraction/Options.cs | 18 ------------ 8 files changed, 2 insertions(+), 76 deletions(-) diff --git a/csharp/.editorconfig b/csharp/.editorconfig index 3705b7144e3..2602206b037 100644 --- a/csharp/.editorconfig +++ b/csharp/.editorconfig @@ -268,6 +268,5 @@ csharp_style_var_elsewhere = true:suggestion # [extractor/Semmle.Extraction/Tuples.cs, - extractor/Semmle.Extraction.CSharp/Tuples.cs, - extractor/Semmle.Extraction.CIL/Tuples.cs] -dotnet_naming_rule.members_should_be_pascal_case.severity = none \ No newline at end of file + extractor/Semmle.Extraction.CSharp/Tuples.cs] +dotnet_naming_rule.members_should_be_pascal_case.severity = none diff --git a/csharp/CSharp.sln b/csharp/CSharp.sln index 0ba39b813bb..0578b5b8810 100644 --- a/csharp/CSharp.sln +++ b/csharp/CSharp.sln @@ -8,8 +8,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction", "extrac EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp", "extractor\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj", "{C4D62DA0-B64B-440B-86DC-AB52318CB8BF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CIL", "extractor\Semmle.Extraction.CIL\Semmle.Extraction.CIL.csproj", "{399A1579-68F0-40F4-9A23-F241BA697F9C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.DependencyFetching", "extractor\Semmle.Extraction.CSharp.DependencyFetching\Semmle.Extraction.CSharp.DependencyFetching.csproj", "{541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Standalone", "extractor\Semmle.Extraction.CSharp.Standalone\Semmle.Extraction.CSharp.Standalone.csproj", "{D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}" @@ -18,8 +16,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.St EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Util", "extractor\Semmle.Extraction.CSharp.Util\Semmle.Extraction.CSharp.Util.csproj", "{998A0D4C-8BFC-4513-A28D-4816AFB89882}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CIL.Driver", "extractor\Semmle.Extraction.CIL.Driver\Semmle.Extraction.CIL.Driver.csproj", "{EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Driver", "extractor\Semmle.Extraction.CSharp.Driver\Semmle.Extraction.CSharp.Driver.csproj", "{C36453BF-0C82-448A-B15D-26947503A2D3}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.Tests", "extractor\Semmle.Extraction.Tests\Semmle.Extraction.Tests.csproj", "{CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}" diff --git a/csharp/codeql-extractor.yml b/csharp/codeql-extractor.yml index 13019e7b0a3..6c3285c412b 100644 --- a/csharp/codeql-extractor.yml +++ b/csharp/codeql-extractor.yml @@ -47,13 +47,6 @@ options: the code (for example if it uses inaccessible dependencies). type: string pattern: "^(false|true)$" - cil: - title: Whether to enable CIL extraction. - description: > - A value indicating, whether CIL extraction should be enabled. - The default is 'true'. - type: string - pattern: "^(false|true)$" logging: title: Options pertaining to logging. type: object diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs index 2efe7704775..39c363a7753 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/Options.cs @@ -58,7 +58,6 @@ namespace Semmle.Extraction.CSharp.Standalone output.WriteLine("Additional options:\n"); output.WriteLine(" --threads:nnn Specify number of threads (default=CPU cores)"); output.WriteLine(" --verbose Produce more output"); - output.WriteLine(" --pdb Cross-reference information from PDBs where available"); } private Options() diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Analyser.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Analyser.cs index 59359b2715a..57ce2f7827c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Analyser.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Analyser.cs @@ -66,9 +66,6 @@ namespace Semmle.Extraction.CSharp { foreach (var assembly in compilation.References.OfType()) { - // CIL first - it takes longer. - if (options.CIL) - extractionTasks.Add(() => DoExtractCIL(assembly)); extractionTasks.Add(() => DoAnalyseReferenceAssembly(assembly)); } } @@ -177,17 +174,6 @@ namespace Semmle.Extraction.CSharp } } - private void DoExtractCIL(PortableExecutableReference r) - { - var currentTaskId = IncrementTaskCount(); - ReportProgressTaskStarted(currentTaskId, r.FilePath); - var stopwatch = new Stopwatch(); - stopwatch.Start(); - CIL.Analyser.ExtractCIL(r.FilePath!, Logger, options, out var trapFile, out var extracted); - stopwatch.Stop(); - ReportProgressTaskDone(currentTaskId, r.FilePath, trapFile, stopwatch.Elapsed, extracted ? AnalysisAction.Extracted : AnalysisAction.UpToDate); - } - private void DoExtractTree(SyntaxTree tree) { try diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj b/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj index 17943c6e21b..2a59f3716ce 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp/Semmle.Extraction.CSharp.csproj @@ -9,7 +9,6 @@ enable - diff --git a/csharp/extractor/Semmle.Extraction.Tests/Options.cs b/csharp/extractor/Semmle.Extraction.Tests/Options.cs index 492d5ce5f5e..a20788cd244 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/Options.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/Options.cs @@ -22,14 +22,12 @@ namespace Semmle.Extraction.Tests { options = CSharp.Options.CreateWithEnvironment(Array.Empty()); Assert.True(options.Cache); - Assert.False(options.CIL); Assert.Null(options.Framework); Assert.Null(options.CompilerName); Assert.Empty(options.CompilerArguments); Assert.True(options.Threads >= 1); Assert.Equal(Verbosity.Info, options.LegacyVerbosity); Assert.False(options.Console); - Assert.False(options.PDB); Assert.False(options.Fast); Assert.Equal(TrapWriter.CompressionMode.Brotli, options.TrapCompression); } @@ -48,25 +46,6 @@ namespace Semmle.Extraction.Tests Assert.False(options.Cache); } - [Fact] - public void CIL() - { - options = CSharp.Options.CreateWithEnvironment(Array.Empty()); - Assert.False(options.CIL); - - Environment.SetEnvironmentVariable("CODEQL_EXTRACTOR_CSHARP_OPTION_CIL", "false"); - options = CSharp.Options.CreateWithEnvironment(Array.Empty()); - Assert.False(options.CIL); - - Environment.SetEnvironmentVariable("CODEQL_EXTRACTOR_CSHARP_OPTION_CIL", "true"); - options = CSharp.Options.CreateWithEnvironment(Array.Empty()); - Assert.True(options.CIL); - - Environment.SetEnvironmentVariable("CODEQL_EXTRACTOR_CSHARP_OPTION_CIL", null); - options = CSharp.Options.CreateWithEnvironment(Array.Empty()); - Assert.False(options.CIL); - } - [Fact] public void CompilerArguments() { @@ -141,13 +120,6 @@ namespace Semmle.Extraction.Tests Assert.True(options.Console); } - [Fact] - public void PDB() - { - options = CSharp.Options.CreateWithEnvironment(new string[] { "--pdb" }); - Assert.True(options.PDB); - } - [Fact] public void Compiler() { diff --git a/csharp/extractor/Semmle.Extraction/Options.cs b/csharp/extractor/Semmle.Extraction/Options.cs index 576d7a4762e..3aa704e60c5 100644 --- a/csharp/extractor/Semmle.Extraction/Options.cs +++ b/csharp/extractor/Semmle.Extraction/Options.cs @@ -55,21 +55,11 @@ namespace Semmle.Extraction /// public bool Console { get; private set; } = false; - /// - /// Holds if CIL should be extracted. - /// - public bool CIL { get; private set; } = false; - /// /// Holds if assemblies shouldn't be extracted twice. /// public bool Cache { get; private set; } = true; - /// - /// Whether to extract PDB information. - /// - public bool PDB { get; private set; } = false; - /// /// Whether "fast extraction mode" has been enabled. /// @@ -102,9 +92,6 @@ namespace Semmle.Extraction return true; } return false; - case "cil": - CIL = Boolean.Parse(value); - return true; default: return false; } @@ -128,12 +115,7 @@ namespace Semmle.Extraction case "cache": Cache = value; return true; - case "pdb": - PDB = value; - CIL = true; - return true; case "fast": - CIL = !value; Fast = value; return true; case "qltest": From 2e5155d1f8dbc9fd28fef0d411e7d9d68f54e163 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 4 Mar 2024 16:22:39 +0100 Subject: [PATCH 088/309] C#: Remove all CIL related tests. --- .../test/library-tests/cil/attributes/Test.cs | 5 - .../cil/attributes/attribute.expected | 14750 ---------------- .../library-tests/cil/attributes/attribute.ql | 47 - .../test/library-tests/cil/attributes/options | 1 - .../cil/consistency/Handles.expected | 14 - .../library-tests/cil/consistency/Handles.ql | 68 - .../library-tests/cil/consistency/Program.cs | 8 - .../cil/consistency/consistency.expected | 17 - .../cil/consistency/consistency.ql | 6 - .../library-tests/cil/consistency/options | 1 - .../test/library-tests/cil/enums/Program.cs | 8 - .../library-tests/cil/enums/enums.expected | 290 - .../ql/test/library-tests/cil/enums/enums.ql | 19 - .../ql/test/library-tests/cil/enums/options | 1 - .../cil/functionPointers/Class1.cs_ | 52 - .../cil/functionPointers/Test.cs | 5 - .../cil/functionPointers/fnptr.dll | Bin 5632 -> 0 bytes .../functionPointers.expected | 73 - .../cil/functionPointers/functionPointers.ql | 42 - .../cil/functionPointers/options | 1 - .../cil/init-only-prop/Program.cs | 8 - .../library-tests/cil/init-only-prop/Test.cs_ | 13 - .../cil/init-only-prop/cil-init-prop.dll | Bin 4608 -> 0 bytes .../init-only-prop/customModifiers.expected | 104 - .../cil/init-only-prop/customModifiers.ql | 17 - .../library-tests/cil/init-only-prop/options | 1 - .../cil/init-only-prop/setters.expected | 2 - .../cil/init-only-prop/setters.ql | 11 - .../library-tests/cil/pdbs/EmbeddedPdb.dll | Bin 4608 -> 0 bytes .../test/library-tests/cil/pdbs/FullPdb.dll | Bin 4096 -> 0 bytes .../test/library-tests/cil/pdbs/FullPdb.pdb | Bin 11776 -> 0 bytes .../cil/pdbs/InstructionLocations.expected | 41 - .../cil/pdbs/InstructionLocations.ql | 17 - .../cil/pdbs/MethodLocations.expected | 4 - .../library-tests/cil/pdbs/MethodLocations.ql | 19 - .../test/library-tests/cil/pdbs/PdbOnly.dll | Bin 4096 -> 0 bytes .../test/library-tests/cil/pdbs/PdbOnly.pdb | Bin 11776 -> 0 bytes csharp/ql/test/library-tests/cil/pdbs/Pdbs.cs | 1 - .../library-tests/cil/pdbs/PortablePdb.dll | Bin 4096 -> 0 bytes .../library-tests/cil/pdbs/PortablePdb.pdb | Bin 524 -> 0 bytes .../library-tests/cil/pdbs/Stubs.expected | 2 - .../ql/test/library-tests/cil/pdbs/Stubs.ql | 3 - csharp/ql/test/library-tests/cil/pdbs/options | 1 - .../regressions/ConstructedMethods.expected | 2 - .../cil/regressions/ConstructedMethods.ql | 9 - .../library-tests/cil/regressions/Methods.cs | 17 - .../library-tests/cil/regressions/Methods.dll | Bin 4096 -> 0 bytes .../library-tests/cil/regressions/options | 1 - .../cil/typeAnnotations/Program.cs | 8 - .../library-tests/cil/typeAnnotations/options | 1 - .../typeAnnotations/typeAnnotations.expected | 3942 ----- .../cil/typeAnnotations/typeAnnotations.ql | 94 - .../library-tests/controlflow/guards/options | 1 - .../library-tests/csharp11/PrintAst.expected | 9 - .../library-tests/csharp11/cil/Assembly.cs_ | 16 - .../library-tests/csharp11/cil/Struct.cs_ | 14 - .../library-tests/csharp11/cil/assembly.dll | Bin 5120 -> 0 bytes .../test/library-tests/csharp11/cil/class1.cs | 7 - .../csharp11/cil/genericAttribute.expected | 2 - .../csharp11/cil/genericAttribute.ql | 14 - .../test/library-tests/csharp11/cil/options | 1 - .../csharp11/cil/refField.expected | 6 - .../library-tests/csharp11/cil/refField.ql | 5 - .../csharp11/cil/structassembly.dll | Bin 5120 -> 0 bytes 64 files changed, 19801 deletions(-) delete mode 100644 csharp/ql/test/library-tests/cil/attributes/Test.cs delete mode 100644 csharp/ql/test/library-tests/cil/attributes/attribute.expected delete mode 100644 csharp/ql/test/library-tests/cil/attributes/attribute.ql delete mode 100644 csharp/ql/test/library-tests/cil/attributes/options delete mode 100644 csharp/ql/test/library-tests/cil/consistency/Handles.expected delete mode 100644 csharp/ql/test/library-tests/cil/consistency/Handles.ql delete mode 100644 csharp/ql/test/library-tests/cil/consistency/Program.cs delete mode 100644 csharp/ql/test/library-tests/cil/consistency/consistency.expected delete mode 100644 csharp/ql/test/library-tests/cil/consistency/consistency.ql delete mode 100644 csharp/ql/test/library-tests/cil/consistency/options delete mode 100644 csharp/ql/test/library-tests/cil/enums/Program.cs delete mode 100644 csharp/ql/test/library-tests/cil/enums/enums.expected delete mode 100644 csharp/ql/test/library-tests/cil/enums/enums.ql delete mode 100644 csharp/ql/test/library-tests/cil/enums/options delete mode 100644 csharp/ql/test/library-tests/cil/functionPointers/Class1.cs_ delete mode 100644 csharp/ql/test/library-tests/cil/functionPointers/Test.cs delete mode 100644 csharp/ql/test/library-tests/cil/functionPointers/fnptr.dll delete mode 100644 csharp/ql/test/library-tests/cil/functionPointers/functionPointers.expected delete mode 100644 csharp/ql/test/library-tests/cil/functionPointers/functionPointers.ql delete mode 100644 csharp/ql/test/library-tests/cil/functionPointers/options delete mode 100644 csharp/ql/test/library-tests/cil/init-only-prop/Program.cs delete mode 100644 csharp/ql/test/library-tests/cil/init-only-prop/Test.cs_ delete mode 100644 csharp/ql/test/library-tests/cil/init-only-prop/cil-init-prop.dll delete mode 100644 csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.expected delete mode 100644 csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.ql delete mode 100644 csharp/ql/test/library-tests/cil/init-only-prop/options delete mode 100644 csharp/ql/test/library-tests/cil/init-only-prop/setters.expected delete mode 100644 csharp/ql/test/library-tests/cil/init-only-prop/setters.ql delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/EmbeddedPdb.dll delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/FullPdb.dll delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/FullPdb.pdb delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/InstructionLocations.expected delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/InstructionLocations.ql delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/MethodLocations.expected delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/MethodLocations.ql delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/PdbOnly.dll delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/PdbOnly.pdb delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/Pdbs.cs delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/PortablePdb.dll delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/PortablePdb.pdb delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/Stubs.expected delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/Stubs.ql delete mode 100644 csharp/ql/test/library-tests/cil/pdbs/options delete mode 100644 csharp/ql/test/library-tests/cil/regressions/ConstructedMethods.expected delete mode 100644 csharp/ql/test/library-tests/cil/regressions/ConstructedMethods.ql delete mode 100644 csharp/ql/test/library-tests/cil/regressions/Methods.cs delete mode 100644 csharp/ql/test/library-tests/cil/regressions/Methods.dll delete mode 100644 csharp/ql/test/library-tests/cil/regressions/options delete mode 100644 csharp/ql/test/library-tests/cil/typeAnnotations/Program.cs delete mode 100644 csharp/ql/test/library-tests/cil/typeAnnotations/options delete mode 100644 csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.expected delete mode 100644 csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.ql delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/Assembly.cs_ delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/Struct.cs_ delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/assembly.dll delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/class1.cs delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/genericAttribute.expected delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/genericAttribute.ql delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/options delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/refField.expected delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/refField.ql delete mode 100644 csharp/ql/test/library-tests/csharp11/cil/structassembly.dll diff --git a/csharp/ql/test/library-tests/cil/attributes/Test.cs b/csharp/ql/test/library-tests/cil/attributes/Test.cs deleted file mode 100644 index 2dfba697682..00000000000 --- a/csharp/ql/test/library-tests/cil/attributes/Test.cs +++ /dev/null @@ -1,5 +0,0 @@ -using System; - -class Test -{ -} diff --git a/csharp/ql/test/library-tests/cil/attributes/attribute.expected b/csharp/ql/test/library-tests/cil/attributes/attribute.expected deleted file mode 100644 index 0be9130404a..00000000000 --- a/csharp/ql/test/library-tests/cil/attributes/attribute.expected +++ /dev/null @@ -1,14750 +0,0 @@ -attrNoArg -| !0 | [AllowNullAttribute(...)] | -| !0 | [DisallowNullAttribute(...)] | -| !0 | [IsReadOnlyAttribute(...)] | -| !0 | [NotNullAttribute(...)] | -| !0 | [RequiresLocationAttribute(...)] | -| !0 | [ScopedRefAttribute(...)] | -| !0 System.Activator.CreateInstance`1() | [IntrinsicAttribute(...)] | -| !0 System.Collections.Concurrent.ConcurrentQueue`1.d__26.get_Current() | [DebuggerHiddenAttribute(...)] | -| !0 System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.d__15.get_Current() | [DebuggerHiddenAttribute(...)] | -| !0 System.Nullable`1.GetValueOrDefault(!0) | [IsReadOnlyAttribute(...)] | -| !0 System.Nullable`1.GetValueOrDefault(!0) | [NonVersionableAttribute(...)] | -| !0 System.Nullable`1.GetValueOrDefault() | [IsReadOnlyAttribute(...)] | -| !0 System.Nullable`1.GetValueOrDefault() | [NonVersionableAttribute(...)] | -| !0 System.Nullable`1.get_Value() | [IsReadOnlyAttribute(...)] | -| !0 System.Nullable`1.op_Explicit(System.Nullable) | [NonVersionableAttribute(...)] | -| !0 System.Numerics.Vector.Dot`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| !0 System.Numerics.Vector.GetElementUnsafe`1(System.Numerics.Vector,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Numerics.Vector.GetElement`1(System.Numerics.Vector,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Numerics.Vector.GetElement`1(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.Numerics.Vector.Sum`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| !0 System.Numerics.Vector.ToScalar`1(System.Numerics.Vector) | [ExtensionAttribute(...)] | -| !0 System.Numerics.Vector.ToScalar`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| !0 System.Numerics.Vector`1.get_Item(System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.ReadOnlySpan`1.Enumerator.Current | [IsReadOnlyAttribute(...)] | -| !0 System.ReadOnlySpan`1.Item | [IsReadOnlyAttribute(...)] | -| !0 System.ReadOnlySpan`1.get_Item(System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.ReadOnlySpan`1.get_Item(System.Int32) | [NonVersionableAttribute(...)] | -| !0 System.Reflection.CustomAttributeExtensions.GetCustomAttribute`1(System.Reflection.Assembly) | [ExtensionAttribute(...)] | -| !0 System.Reflection.CustomAttributeExtensions.GetCustomAttribute`1(System.Reflection.MemberInfo) | [ExtensionAttribute(...)] | -| !0 System.Reflection.CustomAttributeExtensions.GetCustomAttribute`1(System.Reflection.MemberInfo,System.Boolean) | [ExtensionAttribute(...)] | -| !0 System.Reflection.CustomAttributeExtensions.GetCustomAttribute`1(System.Reflection.Module) | [ExtensionAttribute(...)] | -| !0 System.Reflection.CustomAttributeExtensions.GetCustomAttribute`1(System.Reflection.ParameterInfo) | [ExtensionAttribute(...)] | -| !0 System.Reflection.CustomAttributeExtensions.GetCustomAttribute`1(System.Reflection.ParameterInfo,System.Boolean) | [ExtensionAttribute(...)] | -| !0 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() | [StackTraceHiddenAttribute(...)] | -| !0 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() | [StackTraceHiddenAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.AddByteOffset`1(!0,System.IntPtr) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.AddByteOffset`1(!0,System.IntPtr) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.AddByteOffset`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.AddByteOffset`1(!0,System.UIntPtr) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Add`1(!0,System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Add`1(!0,System.Int32) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Add`1(!0,System.IntPtr) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Add`1(!0,System.IntPtr) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Add`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Add`1(!0,System.UIntPtr) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.AsRef`1(!0) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.AsRef`1(!0) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.AsRef`1(System.Void*) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.AsRef`1(System.Void*) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.As`1(System.Object) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.As`1(System.Object) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.NullRef`1() | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.NullRef`1() | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.ReadUnaligned`1(System.Byte) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.ReadUnaligned`1(System.Byte) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.ReadUnaligned`1(System.Void*) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.ReadUnaligned`1(System.Void*) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Read`1(System.Void*) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Read`1(System.Void*) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.SubtractByteOffset`1(!0,System.IntPtr) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.SubtractByteOffset`1(!0,System.IntPtr) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.SubtractByteOffset`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.SubtractByteOffset`1(!0,System.UIntPtr) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Subtract`1(!0,System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Subtract`1(!0,System.Int32) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Subtract`1(!0,System.IntPtr) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Subtract`1(!0,System.IntPtr) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Subtract`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Subtract`1(!0,System.UIntPtr) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Unbox`1(System.Object) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.CompilerServices.Unsafe.Unbox`1(System.Object) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.InteropServices.MemoryMarshal.<g__FromArray\|18_2>d`1.get_Current() | [DebuggerHiddenAttribute(...)] | -| !0 System.Runtime.InteropServices.MemoryMarshal.<g__FromMemoryManager\|18_1>d`1.get_Current() | [DebuggerHiddenAttribute(...)] | -| !0 System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference`1(!0[]) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference`1(!0[]) | [NonVersionableAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector64.Dot`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector64.GetElementUnsafe`1(System.Runtime.Intrinsics.Vector64,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector64.GetElement`1(System.Runtime.Intrinsics.Vector64,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector64.GetElement`1(System.Runtime.Intrinsics.Vector64,System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector64.Sum`1(System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector64.ToScalar`1(System.Runtime.Intrinsics.Vector64) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector64.ToScalar`1(System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector128.Dot`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector128.GetElementUnsafe`1(System.Runtime.Intrinsics.Vector128,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector128.GetElement`1(System.Runtime.Intrinsics.Vector128,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector128.GetElement`1(System.Runtime.Intrinsics.Vector128,System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector128.Sum`1(System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector128.ToScalar`1(System.Runtime.Intrinsics.Vector128) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector128.ToScalar`1(System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector256.Dot`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector256.GetElementUnsafe`1(System.Runtime.Intrinsics.Vector256,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector256.GetElement`1(System.Runtime.Intrinsics.Vector256,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector256.GetElement`1(System.Runtime.Intrinsics.Vector256,System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector256.Sum`1(System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector256.ToScalar`1(System.Runtime.Intrinsics.Vector256) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector256.ToScalar`1(System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector512.Dot`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector512.GetElementUnsafe`1(System.Runtime.Intrinsics.Vector512,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector512.GetElement`1(System.Runtime.Intrinsics.Vector512,System.Int32) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector512.GetElement`1(System.Runtime.Intrinsics.Vector512,System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector512.Sum`1(System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector512.ToScalar`1(System.Runtime.Intrinsics.Vector512) | [ExtensionAttribute(...)] | -| !0 System.Runtime.Intrinsics.Vector512.ToScalar`1(System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| !0 System.Span`1.get_Item(System.Int32) | [IntrinsicAttribute(...)] | -| !0 System.Span`1.get_Item(System.Int32) | [NonVersionableAttribute(...)] | -| !0 System.Threading.AsyncLocalValueChangedArgs`1.get_CurrentValue() | [CompilerGeneratedAttribute(...)] | -| !0 System.Threading.AsyncLocalValueChangedArgs`1.get_PreviousValue() | [CompilerGeneratedAttribute(...)] | -| !0 System.Threading.Interlocked.CompareExchange`1(!0,!0,!0) | [IntrinsicAttribute(...)] | -| !0 System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetResult(System.Int16) | [StackTraceHiddenAttribute(...)] | -| !0 System.Threading.Tasks.TaskAsyncEnumerableExtensions.d__3`1.get_Current() | [DebuggerHiddenAttribute(...)] | -| !0 System.Threading.Volatile.Read`1(!0) | [IntrinsicAttribute(...)] | -| !0 System.Threading.Volatile.Read`1(!0) | [NonVersionableAttribute(...)] | -| !0* | [ScopedRefAttribute(...)] | -| !0[] | [NotNullAttribute(...)] | -| !1 System.Collections.Generic.CollectionExtensions.GetValueOrDefault`2(System.Collections.Generic.IReadOnlyDictionary,!0) | [ExtensionAttribute(...)] | -| !1 System.Collections.Generic.CollectionExtensions.GetValueOrDefault`2(System.Collections.Generic.IReadOnlyDictionary,!0,!1) | [ExtensionAttribute(...)] | -| !1 System.Runtime.CompilerServices.Unsafe.As`2(!0) | [IntrinsicAttribute(...)] | -| !1 System.Runtime.CompilerServices.Unsafe.As`2(!0) | [NonVersionableAttribute(...)] | -| !1 System.Runtime.CompilerServices.Unsafe.BitCast`2(!0) | [IntrinsicAttribute(...)] | -| !1 System.Runtime.CompilerServices.Unsafe.BitCast`2(!0) | [NonVersionableAttribute(...)] | -| | [CompilerGeneratedAttribute(...)] | -| Internal.PaddingFor32 | [IsReadOnlyAttribute(...)] | -| Internal.Runtime.InteropServices.ComponentActivator.<>c__DisplayClass15_0 | [CompilerGeneratedAttribute(...)] | -| Internal.Runtime.InteropServices.ComponentActivator.k__BackingField | [CompilerGeneratedAttribute(...)] | -| Interop.ErrorInfo InteropErrorExtensions.Info(Interop.Error) | [ExtensionAttribute(...)] | -| Interop.Globalization.ResultCode Interop.Globalization.g____PInvoke\|1_0(System.UInt16*,System.Globalization.CalendarId,System.Globalization.CalendarDataType,System.Char*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| Interop.Globalization.ResultCode Interop.Globalization.g____PInvoke\|10_0(System.Byte*,System.IntPtr*) | [CompilerGeneratedAttribute(...)] | -| Interop.Globalization.ResultCode Interop.Globalization.g____PInvoke\|41_0(System.UInt16*,System.UInt16*,Interop.Globalization.TimeZoneDisplayNameType,System.Char*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| Interop.Globalization.ResultCode Interop.Globalization.GetCalendarInfo(System.String,System.Globalization.CalendarId,System.Globalization.CalendarDataType,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| Interop.Globalization.ResultCode Interop.Globalization.GetSortHandle(System.String,System.IntPtr) | [LibraryImportAttribute(...)] | -| Interop.Globalization.ResultCode Interop.Globalization.GetTimeZoneDisplayName(System.String,System.String,Interop.Globalization.TimeZoneDisplayNameType,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| Interop.PollEvents | [FlagsAttribute(...)] | -| Interop.Sys.WinSize | [IsReadOnlyAttribute(...)] | -| InteropErrorExtensions | [ExtensionAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeFileHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeFileHandle.k__BackingField | [CompilerGeneratedAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeFileHandle.ThreadPoolValueTaskSource.<>c | [CompilerGeneratedAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeFileHandle.t_lastCloseErrorInfo | [ThreadStaticAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeWaitHandle | [AllowNullAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateEventEx(System.IntPtr,System.String,System.UInt32,System.UInt32) | [LibraryImportAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateMutexEx(System.IntPtr,System.String,System.UInt32,System.UInt32) | [LibraryImportAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateSemaphoreEx(System.IntPtr,System.Int32,System.Int32,System.String,System.UInt32,System.UInt32) | [LibraryImportAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.OpenMutex(System.UInt32,System.Boolean,System.String) | [LibraryImportAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeWaitHandle System.Threading.RegisteredWaitHandle.get_UserUnregisterWaitHandle() | [CompilerGeneratedAttribute(...)] | -| Microsoft.Win32.SafeHandles.SafeWaitHandle System.Threading.WaitHandleExtensions.GetSafeWaitHandle(System.Threading.WaitHandle) | [ExtensionAttribute(...)] | -| System.Action System.Runtime.InteropServices.PosixSignalRegistration.Token.get_Handler() | [CompilerGeneratedAttribute(...)] | -| System.AppContext.FirstChanceException | [CompilerGeneratedAttribute(...)] | -| System.AppContext.ProcessExit | [CompilerGeneratedAttribute(...)] | -| System.AppContext.UnhandledException | [CompilerGeneratedAttribute(...)] | -| System.AppDomain.DomainUnload | [CompilerGeneratedAttribute(...)] | -| System.AppDomain.ReflectionOnlyAssemblyResolve | [CompilerGeneratedAttribute(...)] | -| System.ApplicationId.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ApplicationId.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ApplicationId.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ApplicationId.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ArgIterator | [IsByRefLikeAttribute(...)] | -| System.Array.SorterGenericArray | [IsReadOnlyAttribute(...)] | -| System.Array.SorterObjectArray | [IsReadOnlyAttribute(...)] | -| System.ArraySegment System.ArraySegment`1.get_Empty() | [CompilerGeneratedAttribute(...)] | -| System.ArraySegment`1 | [IsReadOnlyAttribute(...)] | -| System.ArraySegment`1.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.AssemblyLoadEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Attribute System.Reflection.CustomAttributeExtensions.GetCustomAttribute(System.Reflection.Assembly,System.Type) | [ExtensionAttribute(...)] | -| System.Attribute System.Reflection.CustomAttributeExtensions.GetCustomAttribute(System.Reflection.MemberInfo,System.Type) | [ExtensionAttribute(...)] | -| System.Attribute System.Reflection.CustomAttributeExtensions.GetCustomAttribute(System.Reflection.MemberInfo,System.Type,System.Boolean) | [ExtensionAttribute(...)] | -| System.Attribute System.Reflection.CustomAttributeExtensions.GetCustomAttribute(System.Reflection.Module,System.Type) | [ExtensionAttribute(...)] | -| System.Attribute System.Reflection.CustomAttributeExtensions.GetCustomAttribute(System.Reflection.ParameterInfo,System.Type) | [ExtensionAttribute(...)] | -| System.Attribute System.Reflection.CustomAttributeExtensions.GetCustomAttribute(System.Reflection.ParameterInfo,System.Type,System.Boolean) | [ExtensionAttribute(...)] | -| System.AttributeTargets | [FlagsAttribute(...)] | -| System.Base64FormattingOptions | [FlagsAttribute(...)] | -| System.BitConverter.IsLittleEndian | [IntrinsicAttribute(...)] | -| System.Boolean Internal.Runtime.InteropServices.ComponentActivator.get_IsSupported() | [CompilerGeneratedAttribute(...)] | -| System.Boolean Interop.g__ParentDirectoryExists\|11_0(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Boolean Interop.g__ParentDirectoryExists\|19_0(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Boolean Interop.Globalization.EndsWith(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.EnumCalendarInfo(System.IntPtr,System.String,System.Globalization.CalendarId,System.Globalization.CalendarDataType,System.IntPtr) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.GetDefaultLocaleName(System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.GetLocaleInfoGroupingSizes(System.String,System.UInt32,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.GetLocaleInfoInt(System.String,System.UInt32,System.Int32) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.GetLocaleInfoString(System.String,System.UInt32,System.Char*,System.Int32,System.String) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.GetLocaleName(System.String,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.GetLocaleTimeFormat(System.String,System.Boolean,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.IsPredefinedLocale(System.String) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Globalization.StartsWith(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [LibraryImportAttribute(...)] | -| System.Boolean Interop.Kernel32.SetEnvironmentVariable(System.String,System.String) | [LibraryImportAttribute(...)] | -| System.Boolean Microsoft.Win32.SafeHandles.SafeFileHandle.get_DisableFileLocking() | [CompilerGeneratedAttribute(...)] | -| System.Boolean Microsoft.Win32.SafeHandles.SafeFileHandle.get_IsAsync() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Boolean.g__TryParseUncommon\|20_0(System.ReadOnlySpan,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Boolean.Equals(System.Boolean) | [NonVersionableAttribute(...)] | -| System.Boolean System.Buffers.BitVector256.Contains128(System.Char) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Buffers.BitVector256.Contains256(System.Char) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Buffers.BitVector256.Contains(System.Byte) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Buffers.BitVector256.ContainsUnchecked(System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Buffers.Text.ParserHelpers.TryParseThrowFormatException`1(System.ReadOnlySpan,!0,System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Boolean System.Buffers.Text.ParserHelpers.TryParseThrowFormatException`1(System.ReadOnlySpan,!0,System.Int32) | [StackTraceHiddenAttribute(...)] | -| System.Boolean System.Byte.Equals(System.Byte) | [NonVersionableAttribute(...)] | -| System.Boolean System.Char.Equals(System.Char) | [NonVersionableAttribute(...)] | -| System.Boolean System.Collections.Generic.CollectionExtensions.Remove`2(System.Collections.Generic.IDictionary,!0,!1) | [ExtensionAttribute(...)] | -| System.Boolean System.Collections.Generic.CollectionExtensions.TryAdd`2(System.Collections.Generic.IDictionary,!0,!1) | [ExtensionAttribute(...)] | -| System.Boolean System.ComponentModel.DefaultValueAttribute.ctor>g__TryConvertFromInvariantString\|2_0(System.Type,System.String,System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.ConsoleCancelEventArgs.get_Cancel() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.ConsolePal.g__AppendToStdInReaderUntil\|82_2(System.Byte,System.IO.StdInReader,System.Span,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.ConsolePal.g__BufferUntil\|82_1(System.Byte,System.Span,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Convert.IsSpace(System.Char) | [ExtensionAttribute(...)] | -| System.Boolean System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.get_ParameterValue() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.get_ReturnValue() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.get_ReturnValue() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.get_ReturnValue() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Diagnostics.StackFrameExtensions.HasILOffset(System.Diagnostics.StackFrame) | [ExtensionAttribute(...)] | -| System.Boolean System.Diagnostics.StackFrameExtensions.HasMethod(System.Diagnostics.StackFrame) | [ExtensionAttribute(...)] | -| System.Boolean System.Diagnostics.StackFrameExtensions.HasNativeImage(System.Diagnostics.StackFrame) | [ExtensionAttribute(...)] | -| System.Boolean System.Diagnostics.StackFrameExtensions.HasSource(System.Diagnostics.StackFrame) | [ExtensionAttribute(...)] | -| System.Boolean System.Diagnostics.Tracing.EventChannelAttribute.get_Enabled() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Diagnostics.Tracing.EventSource.get_IsSupported() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Double.IsFinite(System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.IsInfinity(System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.IsNaN(System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.IsNegative(System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.IsNegativeInfinity(System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.IsNormal(System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.IsPositiveInfinity(System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.IsSubnormal(System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.op_Equality(System.Double,System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.op_GreaterThan(System.Double,System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.op_GreaterThanOrEqual(System.Double,System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.op_Inequality(System.Double,System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.op_LessThan(System.Double,System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Double.op_LessThanOrEqual(System.Double,System.Double) | [NonVersionableAttribute(...)] | -| System.Boolean System.Enum.g__TryParseRareTypes\|41_0(System.RuntimeType,System.ReadOnlySpan,System.Boolean,System.Boolean,System.Int64) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Enum.HasFlag(System.Enum) | [IntrinsicAttribute(...)] | -| System.Boolean System.Globalization.CalendarData.g__AreEraNamesEmpty\|24_0() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Globalization.GlobalizationMode.Settings.get_Invariant() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Globalization.GlobalizationMode.Settings.get_PredefinedCulturesOnly() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Guid.g__TryCompatParsing\|33_0(System.ReadOnlySpan,System.Guid.GuidResult) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.IO.Enumeration.FileSystemEnumerator`1.g__ShouldSkip\|36_0(System.IO.FileAttributes) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.IO.EnumerationOptions.get_IgnoreInaccessible() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.IO.EnumerationOptions.get_RecurseSubdirectories() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.IO.EnumerationOptions.get_ReturnSpecialDirectories() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.IO.File.d__110.GetResult(System.Int16) | [DebuggerHiddenAttribute(...)] | -| System.Boolean System.IO.KeyParser.g__IsRxvtModifier\|7_5(System.Char) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.IO.KeyParser.g__IsSequenceEndTag\|7_4(System.Char) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.IO.Strategies.FileStreamStrategy.get_IsDerived() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.IO.Stream.HasOverriddenBeginEndRead() | [IntrinsicAttribute(...)] | -| System.Boolean System.IO.Stream.HasOverriddenBeginEndWrite() | [IntrinsicAttribute(...)] | -| System.Boolean System.IO.StreamReader.g__IsPreambleWorker\|57_0() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Int16.Equals(System.Int16) | [NonVersionableAttribute(...)] | -| System.Boolean System.Int32.Equals(System.Int32) | [NonVersionableAttribute(...)] | -| System.Boolean System.Int64.Equals(System.Int64) | [NonVersionableAttribute(...)] | -| System.Boolean System.IntPtr.Equals(System.IntPtr) | [NonVersionableAttribute(...)] | -| System.Boolean System.IntPtr.op_Equality(System.IntPtr,System.IntPtr) | [NonVersionableAttribute(...)] | -| System.Boolean System.IntPtr.op_Inequality(System.IntPtr,System.IntPtr) | [NonVersionableAttribute(...)] | -| System.Boolean System.MemoryExtensions.Contains(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExceptInRange`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExceptInRange`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.ReadOnlySpan,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.ReadOnlySpan,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.Span,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.Span,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.Span,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyInRange`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAnyInRange`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.ReadOnlySpan,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.ReadOnlySpan,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.Span,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.Span,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.Contains`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.Contains`1(System.Span,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.EndsWith(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.EndsWithOrdinalIgnoreCase(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.EndsWith`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.EndsWith`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.Equals(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.Equals(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [IntrinsicAttribute(...)] | -| System.Boolean System.MemoryExtensions.EqualsOrdinal(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.EqualsOrdinalIgnoreCase(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.EqualsOrdinalIgnoreCaseUtf8(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.IsWhiteSpace(System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.Overlaps`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.Overlaps`1(System.ReadOnlySpan,System.ReadOnlySpan,System.Int32) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.Overlaps`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.Overlaps`1(System.Span,System.ReadOnlySpan,System.Int32) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.SequenceEqual`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.SequenceEqual`1(System.ReadOnlySpan,System.ReadOnlySpan) | [IntrinsicAttribute(...)] | -| System.Boolean System.MemoryExtensions.SequenceEqual`1(System.ReadOnlySpan,System.ReadOnlySpan,System.Collections.Generic.IEqualityComparer) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.SequenceEqual`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.SequenceEqual`1(System.Span,System.ReadOnlySpan) | [IntrinsicAttribute(...)] | -| System.Boolean System.MemoryExtensions.SequenceEqual`1(System.Span,System.ReadOnlySpan,System.Collections.Generic.IEqualityComparer) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWith(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWith(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [IntrinsicAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWithOrdinalIgnoreCase(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWithOrdinalIgnoreCaseUtf8(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWithUtf8(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWith`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWith`1(System.ReadOnlySpan,System.ReadOnlySpan) | [IntrinsicAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWith`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.StartsWith`1(System.Span,System.ReadOnlySpan) | [IntrinsicAttribute(...)] | -| System.Boolean System.MemoryExtensions.TryWrite(System.Span,System.IFormatProvider,System.MemoryExtensions.TryWriteInterpolatedStringHandler,System.Int32) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.TryWrite(System.Span,System.IFormatProvider,System.Text.CompositeFormat,System.Int32,System.Object[]) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.TryWrite(System.Span,System.IFormatProvider,System.Text.CompositeFormat,System.Int32,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.TryWrite(System.Span,System.MemoryExtensions.TryWriteInterpolatedStringHandler,System.Int32) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.TryWrite`1(System.Span,System.IFormatProvider,System.Text.CompositeFormat,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.TryWrite`2(System.Span,System.IFormatProvider,System.Text.CompositeFormat,System.Int32,!0,!1) | [ExtensionAttribute(...)] | -| System.Boolean System.MemoryExtensions.TryWrite`3(System.Span,System.IFormatProvider,System.Text.CompositeFormat,System.Int32,!0,!1,!2) | [ExtensionAttribute(...)] | -| System.Boolean System.Nullable`1.get_HasValue() | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Nullable`1.get_HasValue() | [NonVersionableAttribute(...)] | -| System.Boolean System.Number.g__ShouldRoundUp\|121_0(System.Byte*,System.Int32,System.Number.NumberBufferKind,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Number.g__TryFormatInt32Slow\|42_0`1(System.Int32,System.Int32,System.ReadOnlySpan,System.IFormatProvider,System.Span,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Number.g__TryFormatInt64Slow\|46_0`1(System.Int64,System.ReadOnlySpan,System.IFormatProvider,System.Span,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Number.g__TryFormatInt128Slow\|50_0`1(System.Int128,System.ReadOnlySpan,System.IFormatProvider,System.Span,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Number.g__TryFormatUInt32Slow\|44_0`1(System.UInt32,System.ReadOnlySpan,System.IFormatProvider,System.Span,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Number.g__TryFormatUInt64Slow\|48_0`1(System.UInt64,System.ReadOnlySpan,System.IFormatProvider,System.Span,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Number.g__TryFormatUInt128Slow\|52_0`1(System.UInt128,System.ReadOnlySpan,System.IFormatProvider,System.Span,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Matrix3x2.Equals(System.Numerics.Matrix3x2) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix3x2.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix3x2.Impl.Equals(System.Numerics.Matrix3x2.Impl) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix3x2.Impl.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix3x2.Impl.get_IsIdentity() | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix3x2.get_IsIdentity() | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix4x4.Equals(System.Numerics.Matrix4x4) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix4x4.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix4x4.Impl.g__SoftwareFallback\|64_2(System.Numerics.Matrix4x4.Impl,System.Numerics.Matrix4x4.Impl) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Matrix4x4.Impl.g__SseImpl\|64_0(System.Numerics.Matrix4x4.Impl,System.Numerics.Matrix4x4.Impl) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Matrix4x4.Impl.Equals(System.Numerics.Matrix4x4.Impl) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix4x4.Impl.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix4x4.Impl.get_IsIdentity() | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Matrix4x4.get_IsIdentity() | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Plane.g__SoftwareFallback\|16_0(System.Numerics.Plane,System.Numerics.Plane) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Plane.Equals(System.Numerics.Plane) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Plane.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Plane.op_Equality(System.Numerics.Plane,System.Numerics.Plane) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Plane.op_Inequality(System.Numerics.Plane,System.Numerics.Plane) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Quaternion.g__SoftwareFallback\|44_0(System.Numerics.Quaternion,System.Numerics.Quaternion) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Quaternion.Equals(System.Numerics.Quaternion) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Quaternion.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Quaternion.get_IsIdentity() | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Quaternion.op_Equality(System.Numerics.Quaternion,System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Quaternion.op_Inequality(System.Numerics.Quaternion,System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector2.g__SoftwareFallback\|59_0(System.Numerics.Vector2,System.Numerics.Vector2) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Vector2.Equals(System.Numerics.Vector2) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector2.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector2.TryCopyTo(System.Span) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector2.op_Equality(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector2.op_Inequality(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector3.g__SoftwareFallback\|60_0(System.Numerics.Vector3,System.Numerics.Vector3) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Vector3.Equals(System.Numerics.Vector3) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector3.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector3.TryCopyTo(System.Span) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector3.op_Equality(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector3.op_Inequality(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector4.g__SoftwareFallback\|66_0(System.Numerics.Vector4,System.Numerics.Vector4) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Vector4.Equals(System.Numerics.Vector4) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector4.Equals(System.Object) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector4.TryCopyTo(System.Span) | [IsReadOnlyAttribute(...)] | -| System.Boolean System.Numerics.Vector4.op_Equality(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector4.op_Inequality(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.EqualsAll`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.EqualsAny`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.GreaterThanAll`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.GreaterThanAny`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.GreaterThanOrEqualAll`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.GreaterThanOrEqualAny`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.LessThanAll`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.LessThanAny`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.LessThanOrEqualAll`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.LessThanOrEqualAny`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector.get_IsHardwareAccelerated() | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector`1.g__SoftwareFallback\|57_0(System.Numerics.Vector,System.Numerics.Vector) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Numerics.Vector`1.op_Equality(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Numerics.Vector`1.op_Inequality(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Boolean System.Object.ReferenceEquals(System.Object,System.Object) | [NonVersionableAttribute(...)] | -| System.Boolean System.ObsoleteAttribute.get_IsError() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.OperatingSystem.IsAndroid() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsBrowser() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsFreeBSD() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsIOS() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsIOSVersionAtLeast(System.Int32,System.Int32,System.Int32) | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsLinux() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsMacCatalyst() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsMacOS() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsTvOS() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsWasi() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsWatchOS() | [NonVersionableAttribute(...)] | -| System.Boolean System.OperatingSystem.IsWindows() | [NonVersionableAttribute(...)] | -| System.Boolean System.ReadOnlySpan`1.get_IsEmpty() | [NonVersionableAttribute(...)] | -| System.Boolean System.Reflection.AssemblyDelaySignAttribute.get_DelaySign() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.CustomAttributeExtensions.IsDefined(System.Reflection.Assembly,System.Type) | [ExtensionAttribute(...)] | -| System.Boolean System.Reflection.CustomAttributeExtensions.IsDefined(System.Reflection.MemberInfo,System.Type) | [ExtensionAttribute(...)] | -| System.Boolean System.Reflection.CustomAttributeExtensions.IsDefined(System.Reflection.MemberInfo,System.Type,System.Boolean) | [ExtensionAttribute(...)] | -| System.Boolean System.Reflection.CustomAttributeExtensions.IsDefined(System.Reflection.Module,System.Type) | [ExtensionAttribute(...)] | -| System.Boolean System.Reflection.CustomAttributeExtensions.IsDefined(System.Reflection.ParameterInfo,System.Type) | [ExtensionAttribute(...)] | -| System.Boolean System.Reflection.CustomAttributeExtensions.IsDefined(System.Reflection.ParameterInfo,System.Type,System.Boolean) | [ExtensionAttribute(...)] | -| System.Boolean System.Reflection.Metadata.AssemblyExtensions.TryGetRawMetadata(System.Reflection.Assembly,System.Byte*,System.Int32) | [ExtensionAttribute(...)] | -| System.Boolean System.Reflection.Metadata.MetadataUpdater.get_IsSupported() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.NullabilityInfoContext.get_IsSupported() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.ObfuscateAssemblyAttribute.get_AssemblyIsPrivate() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.ObfuscateAssemblyAttribute.get_StripAfterObfuscation() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.ObfuscationAttribute.get_ApplyToMembers() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.ObfuscationAttribute.get_Exclude() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.ObfuscationAttribute.get_StripAfterObfuscation() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.RuntimeMethodInfo.g__IsDisallowedByRefType\|97_0(System.Type) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Reflection.SignatureTypeExtensions.MatchesExactly(System.Reflection.SignatureType,System.Type) | [ExtensionAttribute(...)] | -| System.Boolean System.Reflection.SignatureTypeExtensions.MatchesParameterTypeExactly(System.Type,System.Reflection.ParameterInfo) | [ExtensionAttribute(...)] | -| System.Boolean System.Resources.ResourceReader.g__InitializeBinaryFormatterLocal\|5_0() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Resources.ResourceReader.get_AllowCustomResourceTypes() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.get_IsOptional() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.InternalsVisibleToAttribute.get_AllInternalsVisible() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeCompatibilityAttribute.get_WrapNonExceptionThrows() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeFeature.get_IsDynamicCodeSupported() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.EnumEquals`1(!0,!0) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.IsBitwiseEquatable`1() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.IsKnownConstant(System.Char) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.IsKnownConstant(System.Int32) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.IsKnownConstant(System.Type) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.IsPrimitiveType(System.Reflection.CorElementType) | [ExtensionAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences`1() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.Unsafe.AreSame`1(!0,!0) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.Unsafe.AreSame`1(!0,!0) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan`1(!0,!0) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan`1(!0,!0) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.Unsafe.IsAddressLessThan`1(!0,!0) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.Unsafe.IsAddressLessThan`1(!0,!0) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.Unsafe.IsNullRef`1(!0) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.CompilerServices.Unsafe.IsNullRef`1(!0) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.BestFitMappingAttribute.get_BestFitMapping() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.ComVisibleAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.DynamicInterfaceCastableHelpers.IsInterfaceImplemented(System.Runtime.InteropServices.IDynamicInterfaceCastable,System.RuntimeType,System.Boolean) | [StackTraceHiddenAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.LibraryImportAttribute.get_SetLastError() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.IsFinite(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.IsInfinity(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.IsNaN(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.IsNegative(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.IsNegativeInfinity(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.IsNormal(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.IsPositiveInfinity(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.IsSubnormal(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.op_Equality(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.op_GreaterThan(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.op_GreaterThanOrEqual(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.op_Inequality(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.op_LessThan(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.NFloat.op_LessThanOrEqual(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Boolean System.Runtime.InteropServices.PosixSignalContext.get_Cancel() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.AdvSimd.Arm64.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.AdvSimd.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Aes.Arm64.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Aes.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.ArmBase.Arm64.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.ArmBase.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Crc32.Arm64.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Crc32.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Dp.Arm64.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Dp.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Rdm.Arm64.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Rdm.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Sha1.Arm64.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Sha1.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Sha256.Arm64.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Arm.Sha256.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.EqualsAll`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.EqualsAny`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.GreaterThanAll`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.GreaterThanAny`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.GreaterThanOrEqualAll`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.GreaterThanOrEqualAny`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.LessThanAll`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.LessThanAny`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.LessThanOrEqualAll`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.LessThanOrEqualAny`1(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.TryCopyTo`1(System.Runtime.Intrinsics.Vector64,System.Span) | [ExtensionAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64.get_IsHardwareAccelerated() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64`1.g__SoftwareFallback\|34_0(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64`1.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64`1.op_Equality(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector64`1.op_Inequality(System.Runtime.Intrinsics.Vector64,System.Runtime.Intrinsics.Vector64) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.EqualsAll`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.EqualsAny`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.GreaterThanAll`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.GreaterThanAny`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.GreaterThanOrEqualAll`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.GreaterThanOrEqualAny`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.LessThanAll`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.LessThanAny`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.LessThanOrEqualAll`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.LessThanOrEqualAny`1(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.TryCopyTo`1(System.Runtime.Intrinsics.Vector128,System.Span) | [ExtensionAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128.get_IsHardwareAccelerated() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128`1.EqualsFloatingPoint(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128`1.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128`1.op_Equality(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector128`1.op_Inequality(System.Runtime.Intrinsics.Vector128,System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.EqualsAll`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.EqualsAny`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.GreaterThanAll`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.GreaterThanAny`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.GreaterThanOrEqualAll`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.GreaterThanOrEqualAny`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.LessThanAll`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.LessThanAny`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.LessThanOrEqualAll`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.LessThanOrEqualAny`1(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.TryCopyTo`1(System.Runtime.Intrinsics.Vector256,System.Span) | [ExtensionAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256.get_IsHardwareAccelerated() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256`1.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256`1.op_Equality(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector256`1.op_Inequality(System.Runtime.Intrinsics.Vector256,System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.EqualsAll`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.EqualsAny`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.GreaterThanAll`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.GreaterThanAny`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.GreaterThanOrEqualAll`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.GreaterThanOrEqualAny`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.LessThanAll`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.LessThanAny`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.LessThanOrEqualAll`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.LessThanOrEqualAny`1(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.TryCopyTo`1(System.Runtime.Intrinsics.Vector512,System.Span) | [ExtensionAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512.get_IsHardwareAccelerated() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512`1.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512`1.op_Equality(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Vector512`1.op_Inequality(System.Runtime.Intrinsics.Vector512,System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Intrinsics.Wasm.PackedSimd.get_IsSupported() | [IntrinsicAttribute(...)] | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyLoadFromResolveHandlerInvoked(System.String,System.Boolean,System.String,System.String) | [LibraryImportAttribute(...)] | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyResolveHandlerInvoked(System.String,System.String,System.String,System.String) | [LibraryImportAttribute(...)] | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceResolvingHandlerInvoked(System.String,System.String,System.String,System.String,System.String) | [LibraryImportAttribute(...)] | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceSatelliteSubdirectoryPathProbed(System.String,System.Int32) | [LibraryImportAttribute(...)] | -| System.Boolean System.Runtime.Serialization.DeserializationTracker.get_DeserializationInProgress() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.Serialization.SerializationInfo.get_IsAssemblyNameSetExplicit() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Runtime.Serialization.SerializationInfo.get_IsFullTypeNameSetExplicit() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.RuntimeType.get_IsActualEnum() | [IntrinsicAttribute(...)] | -| System.Boolean System.SByte.Equals(System.SByte) | [NonVersionableAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityAttribute.get_Unrestricted() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_Assertion() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_BindingRedirects() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_ControlAppDomain() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_ControlDomainPolicy() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_ControlEvidence() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_ControlPolicy() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_ControlPrincipal() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_ControlThread() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_Execution() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_Infrastructure() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_RemotingConfiguration() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_SerializationFormatter() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_SkipVerification() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.Permissions.SecurityPermissionAttribute.get_UnmanagedCode() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Security.SecurityRulesAttribute.get_SkipVerificationInFullTrust() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Single.IsFinite(System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.IsInfinity(System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.IsNaN(System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.IsNegative(System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.IsNegativeInfinity(System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.IsNormal(System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.IsPositiveInfinity(System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.IsSubnormal(System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.op_Equality(System.Single,System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.op_GreaterThan(System.Single,System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.op_GreaterThanOrEqual(System.Single,System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.op_Inequality(System.Single,System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.op_LessThan(System.Single,System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.Single.op_LessThanOrEqual(System.Single,System.Single) | [NonVersionableAttribute(...)] | -| System.Boolean System.SpanHelpers.SequenceEqual(System.Byte,System.Byte,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Boolean System.Span`1.get_IsEmpty() | [NonVersionableAttribute(...)] | -| System.Boolean System.String.Equals(System.String) | [IntrinsicAttribute(...)] | -| System.Boolean System.String.Equals(System.String,System.String) | [IntrinsicAttribute(...)] | -| System.Boolean System.String.Equals(System.String,System.String,System.StringComparison) | [IntrinsicAttribute(...)] | -| System.Boolean System.String.Equals(System.String,System.StringComparison) | [IntrinsicAttribute(...)] | -| System.Boolean System.String.StartsWith(System.String,System.StringComparison) | [IntrinsicAttribute(...)] | -| System.Boolean System.StringNormalizationExtensions.IsNormalized(System.String) | [ExtensionAttribute(...)] | -| System.Boolean System.StringNormalizationExtensions.IsNormalized(System.String,System.Text.NormalizationForm) | [ExtensionAttribute(...)] | -| System.Boolean System.Text.CompositeFormat.g__TryMoveNext\|12_0(System.ReadOnlySpan,System.Int32,System.Char) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.g__GrowAndAppendFormatted\|21_0`1(System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler,!0,System.Int32,System.Int32,System.String) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.g__GrowAndAppendFormatted\|20_0`1(System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler,!0,System.Int32,System.Int32,System.String) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Threading.AsyncLocalValueChangedArgs`1.get_ThreadContextChanged() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Threading.Tasks.TaskToAsyncResult.TaskAsyncResult.get_CompletedSynchronously() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Threading.Volatile.Read(System.Boolean) | [IntrinsicAttribute(...)] | -| System.Boolean System.Threading.Volatile.Read(System.Boolean) | [NonVersionableAttribute(...)] | -| System.Boolean System.TimeZoneInfo.get_HasIanaId() | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.Type.IsAssignableFrom(System.Type) | [IntrinsicAttribute(...)] | -| System.Boolean System.Type.IsAssignableTo(System.Type) | [IntrinsicAttribute(...)] | -| System.Boolean System.Type.get_IsByRefLike() | [IntrinsicAttribute(...)] | -| System.Boolean System.Type.get_IsEnum() | [IntrinsicAttribute(...)] | -| System.Boolean System.Type.get_IsValueType() | [IntrinsicAttribute(...)] | -| System.Boolean System.Type.op_Equality(System.Type,System.Type) | [IntrinsicAttribute(...)] | -| System.Boolean System.Type.op_Inequality(System.Type,System.Type) | [IntrinsicAttribute(...)] | -| System.Boolean System.UInt16.Equals(System.UInt16) | [NonVersionableAttribute(...)] | -| System.Boolean System.UInt32.Equals(System.UInt32) | [NonVersionableAttribute(...)] | -| System.Boolean System.UInt64.Equals(System.UInt64) | [NonVersionableAttribute(...)] | -| System.Boolean System.UInt128.g__DivideGuessTooBig\|110_1(System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32) | [CompilerGeneratedAttribute(...)] | -| System.Boolean System.UIntPtr.Equals(System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.Boolean System.UIntPtr.op_Equality(System.UIntPtr,System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.Boolean System.UIntPtr.op_Inequality(System.UIntPtr,System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.Buffers.Binary.BinaryPrimitives.Int16EndiannessReverser | [IsReadOnlyAttribute(...)] | -| System.Buffers.Binary.BinaryPrimitives.Int32EndiannessReverser | [IsReadOnlyAttribute(...)] | -| System.Buffers.Binary.BinaryPrimitives.Int64EndiannessReverser | [IsReadOnlyAttribute(...)] | -| System.Buffers.BitVector256.<_values>e__FixedBuffer | [CompilerGeneratedAttribute(...)] | -| System.Buffers.BitVector256.<_values>e__FixedBuffer | [UnsafeValueTypeAttribute(...)] | -| System.Buffers.IndexOfAnyAsciiSearcher.Default | [IsReadOnlyAttribute(...)] | -| System.Buffers.IndexOfAnyAsciiSearcher.DontNegate | [IsReadOnlyAttribute(...)] | -| System.Buffers.IndexOfAnyAsciiSearcher.Negate | [IsReadOnlyAttribute(...)] | -| System.Buffers.IndexOfAnyAsciiSearcher.Ssse3AndWasmHandleZeroInNeedle | [IsReadOnlyAttribute(...)] | -| System.Buffers.OperationStatus System.Buffers.Text.Base64.g__InvalidDataFallback\|15_0(System.ReadOnlySpan,System.Span,System.Int32,System.Int32,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Buffers.ProbabilisticMap | [IsReadOnlyAttribute(...)] | -| System.Buffers.SearchValues.FalseConst | [IsReadOnlyAttribute(...)] | -| System.Buffers.SearchValues.TrueConst | [IsReadOnlyAttribute(...)] | -| System.Buffers.SharedArrayPool`1.<>c | [CompilerGeneratedAttribute(...)] | -| System.Buffers.SharedArrayPool`1.t_tlsBuckets | [ThreadStaticAttribute(...)] | -| System.Buffers.StandardFormat | [IsReadOnlyAttribute(...)] | -| System.Buffers.Text.Base64.Base64ByteValidatable | [IsReadOnlyAttribute(...)] | -| System.Buffers.Text.Base64.Base64CharValidatable | [IsReadOnlyAttribute(...)] | -| System.Buffers.Text.Utf8Parser.ParseNumberOptions | [FlagsAttribute(...)] | -| System.ByReference | [IsByRefLikeAttribute(...)] | -| System.ByReference | [IsReadOnlyAttribute(...)] | -| System.ByReference | [NonVersionableAttribute(...)] | -| System.Byte System.Diagnostics.Tracing.EventAttribute.get_Version() | [CompilerGeneratedAttribute(...)] | -| System.Byte System.Math.Max(System.Byte,System.Byte) | [NonVersionableAttribute(...)] | -| System.Byte System.Math.Min(System.Byte,System.Byte) | [NonVersionableAttribute(...)] | -| System.Byte System.Runtime.CompilerServices.CastHelpers.Unbox(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Byte System.Runtime.CompilerServices.CastHelpers.Unbox(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Byte System.Runtime.CompilerServices.CastHelpers.Unbox(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Byte System.Runtime.CompilerServices.RuntimeHelpers.GetRawData(System.Object) | [ExtensionAttribute(...)] | -| System.Byte System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference(System.Array) | [IntrinsicAttribute(...)] | -| System.Byte System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Byte System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Byte System.Threading.Volatile.Read(System.Byte) | [IntrinsicAttribute(...)] | -| System.Byte System.Threading.Volatile.Read(System.Byte) | [NonVersionableAttribute(...)] | -| System.Byte* System.Reflection.RuntimeAssembly.g____PInvoke\|37_0(System.Runtime.CompilerServices.QCallAssembly,System.UInt16*,System.UInt32*) | [CompilerGeneratedAttribute(...)] | -| System.Byte* System.Reflection.RuntimeAssembly.GetResource(System.Runtime.CompilerServices.QCallAssembly,System.String,System.UInt32) | [LibraryImportAttribute(...)] | -| System.Byte[] System.Buffers.BitVector256.GetByteValues() | [IsReadOnlyAttribute(...)] | -| System.Byte[] System.Security.PermissionSet.ConvertPermissionSet(System.String,System.Byte[],System.String) | [ObsoleteAttribute(...)] | -| System.Char System.Runtime.InteropServices.MemoryMarshal.<g__FromString\|18_0>d`1.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Char System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Char System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Char System.String.GetPinnableReference() | [NonVersionableAttribute(...)] | -| System.Char System.String.get_Chars(System.Int32) | [IntrinsicAttribute(...)] | -| System.Char System.Text.StringBuilder.g__MoveNext\|116_0(System.String,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Char System.Text.ValueStringBuilder.g__MoveNext\|0_0(System.String,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Char[] System.Buffers.BitVector256.GetCharValues() | [IsReadOnlyAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__23 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__37 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__38 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__39 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__40 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__41 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__59 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__60 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__61 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__62 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__63 | [CompilerGeneratedAttribute(...)] | -| System.CodeDom.Compiler.IndentedTextWriter.d__64 | [CompilerGeneratedAttribute(...)] | -| System.Collections.Concurrent.ConcurrentQueue`1.d__26 | [CompilerGeneratedAttribute(...)] | -| System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.d__15 | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.BitHelper | [IsByRefLikeAttribute(...)] | -| System.Collections.Generic.CollectionExtensions | [ExtensionAttribute(...)] | -| System.Collections.Generic.Comparer System.Collections.Generic.Comparer`1.get_Default() | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.Comparer System.Collections.Generic.Comparer`1.get_Default() | [IntrinsicAttribute(...)] | -| System.Collections.Generic.Comparer`1.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer`1.get_Default() | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.EqualityComparer System.Collections.Generic.EqualityComparer`1.get_Default() | [IntrinsicAttribute(...)] | -| System.Collections.Generic.EqualityComparer`1.<>c | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.EqualityComparer`1.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.IAsyncEnumerator System.IO.File.d__110.GetAsyncEnumerator(System.Threading.CancellationToken) | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IDictionary System.Diagnostics.Tracing.EventCommandEventArgs.get_Arguments() | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes`1(System.Reflection.Assembly) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes`1(System.Reflection.MemberInfo) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes`1(System.Reflection.MemberInfo,System.Boolean) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes`1(System.Reflection.Module) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes`1(System.Reflection.ParameterInfo) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes`1(System.Reflection.ParameterInfo,System.Boolean) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Runtime.InteropServices.MemoryMarshal.g__FromArray\|18_2`1(!0[],System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Runtime.InteropServices.MemoryMarshal.g__FromMemoryManager\|18_1`1(System.ReadOnlyMemory) | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Threading.Tasks.TaskAsyncEnumerableExtensions.ToBlockingEnumerable`1(System.Collections.Generic.IAsyncEnumerable,System.Threading.CancellationToken) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.Assembly) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.Assembly,System.Type) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.MemberInfo) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.MemberInfo,System.Boolean) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.MemberInfo,System.Type) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.MemberInfo,System.Type,System.Boolean) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.Module) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.Module,System.Type) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.ParameterInfo) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.ParameterInfo,System.Boolean) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.ParameterInfo,System.Type) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.CustomAttributeExtensions.GetCustomAttributes(System.Reflection.ParameterInfo,System.Type,System.Boolean) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Runtime.InteropServices.MemoryMarshal.g__FromString\|18_0`1(System.String,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.RuntimeReflectionExtensions.GetRuntimeEvents(System.Type) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.RuntimeReflectionExtensions.GetRuntimeFields(System.Type) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.RuntimeReflectionExtensions.GetRuntimeMethods(System.Type) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerable System.Reflection.RuntimeReflectionExtensions.GetRuntimeProperties(System.Type) | [ExtensionAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Runtime.InteropServices.MemoryMarshal.<g__FromArray\|18_2>d`1.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Runtime.InteropServices.MemoryMarshal.<g__FromMemoryManager\|18_1>d`1.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Threading.Tasks.TaskAsyncEnumerableExtensions.d__3`1.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Runtime.InteropServices.MemoryMarshal.<g__FromString\|18_0>d`1.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator> System.Diagnostics.Tracing.CounterPayload.d__51.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator> System.Diagnostics.Tracing.IncrementingCounterPayload.d__39.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Threading.ThreadPool.d__26.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Runtime.Loader.AssemblyLoadContext.d__55.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Reflection.TypeInfo.d__10.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Reflection.TypeInfo.d__22.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Runtime.Loader.AssemblyLoadContext.d__85.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Runtime.Loader.LibraryNameVariation.d__5.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Threading.Tasks.ThreadPoolTaskScheduler.d__6.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.IEnumerator System.Threading.TimerQueue.d__7.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.KeyValuePair System.Diagnostics.Tracing.CounterPayload.d__51.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.KeyValuePair System.Diagnostics.Tracing.EventPayload.d__17.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.KeyValuePair System.Diagnostics.Tracing.IncrementingCounterPayload.d__39.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Collections.Generic.KeyValuePair`2 | [IsReadOnlyAttribute(...)] | -| System.Collections.Generic.ReferenceEqualityComparer System.Collections.Generic.ReferenceEqualityComparer.get_Instance() | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.ReferenceEqualityComparer.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Collections.Generic.ValueListBuilder`1 | [IsByRefLikeAttribute(...)] | -| System.Collections.IEnumerator System.Diagnostics.Tracing.CounterPayload.d__51.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Diagnostics.Tracing.IncrementingCounterPayload.d__39.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Reflection.TypeInfo.d__10.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Reflection.TypeInfo.d__22.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Runtime.InteropServices.MemoryMarshal.<g__FromArray\|18_2>d`1.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Runtime.InteropServices.MemoryMarshal.<g__FromMemoryManager\|18_1>d`1.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Runtime.InteropServices.MemoryMarshal.<g__FromString\|18_0>d`1.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Runtime.Loader.AssemblyLoadContext.d__85.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Runtime.Loader.AssemblyLoadContext.d__55.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Runtime.Loader.LibraryNameVariation.d__5.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Threading.Tasks.TaskAsyncEnumerableExtensions.d__3`1.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Threading.Tasks.ThreadPoolTaskScheduler.d__6.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Threading.ThreadPool.d__26.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.IEnumerator System.Threading.TimerQueue.d__7.GetEnumerator() | [DebuggerHiddenAttribute(...)] | -| System.Collections.ObjectModel.ReadOnlyCollection System.Collections.Generic.CollectionExtensions.AsReadOnly`1(System.Collections.Generic.IList) | [ExtensionAttribute(...)] | -| System.Collections.ObjectModel.ReadOnlyCollection System.Collections.ObjectModel.ReadOnlyCollection`1.get_Empty() | [CompilerGeneratedAttribute(...)] | -| System.Collections.ObjectModel.ReadOnlyCollection System.Diagnostics.Tracing.EventWrittenEventArgs.get_Payload() | [CompilerGeneratedAttribute(...)] | -| System.Collections.ObjectModel.ReadOnlyCollection`1.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Collections.ObjectModel.ReadOnlyDictionary System.Collections.Generic.CollectionExtensions.AsReadOnly`2(System.Collections.Generic.IDictionary) | [ExtensionAttribute(...)] | -| System.Collections.ObjectModel.ReadOnlyDictionary System.Collections.ObjectModel.ReadOnlyDictionary`2.get_Empty() | [CompilerGeneratedAttribute(...)] | -| System.Collections.ObjectModel.ReadOnlyDictionary`2.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ComponentModel.EditorBrowsableAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ComponentModel.EditorBrowsableState System.ComponentModel.EditorBrowsableAttribute.get_State() | [CompilerGeneratedAttribute(...)] | -| System.ComponentModel.Win32Exception.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Console.<>O | [CompilerGeneratedAttribute(...)] | -| System.ConsoleCancelEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ConsoleKey System.IO.KeyParser.g__ControlAndDigitPressed\|8_2(System.Char,System.Char,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.ConsoleKey System.IO.KeyParser.g__ControlAndLetterPressed\|8_1(System.Char,System.Boolean,System.Char,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.ConsoleKey System.IO.KeyParser.g__UppercaseCharacter\|8_0(System.Char,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.ConsoleKey System.IO.KeyParser.g__MapEscapeSequenceNumber\|7_2(System.Byte) | [CompilerGeneratedAttribute(...)] | -| System.ConsoleKeyInfo | [IsReadOnlyAttribute(...)] | -| System.ConsoleKeyInfo System.IO.KeyParser.g__Create\|7_7(System.Char,System.ConsoleKey,System.ConsoleModifiers) | [CompilerGeneratedAttribute(...)] | -| System.ConsoleModifiers | [FlagsAttribute(...)] | -| System.ConsoleModifiers System.IO.KeyParser.g__MapRxvtModifiers\|7_6(System.Char) | [CompilerGeneratedAttribute(...)] | -| System.ConsoleModifiers System.IO.KeyParser.g__MapXtermModifiers\|7_3(System.Char) | [CompilerGeneratedAttribute(...)] | -| System.ConsolePal.<>c | [CompilerGeneratedAttribute(...)] | -| System.Convert | [ExtensionAttribute(...)] | -| System.DTSubString | [IsByRefLikeAttribute(...)] | -| System.DateOnly | [IsReadOnlyAttribute(...)] | -| System.DateOnly.<>c | [CompilerGeneratedAttribute(...)] | -| System.DateTime | [IsReadOnlyAttribute(...)] | -| System.DateTime System.Diagnostics.Tracing.EventWrittenEventArgs.get_TimeStamp() | [CompilerGeneratedAttribute(...)] | -| System.DateTimeOffset | [IsReadOnlyAttribute(...)] | -| System.DateTimeParse.TM | [ScopedRefAttribute(...)] | -| System.DateTimeRawInfo | [ScopedRefAttribute(...)] | -| System.DateTimeResult | [IsByRefLikeAttribute(...)] | -| System.DateTimeResult | [ScopedRefAttribute(...)] | -| System.DateTimeToken | [ScopedRefAttribute(...)] | -| System.Decimal System.Runtime.InteropServices.CurrencyWrapper.get_WrappedObject() | [CompilerGeneratedAttribute(...)] | -| System.Decimal System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Decimal.DecCalc.PowerOvfl | [IsReadOnlyAttribute(...)] | -| System.DefaultBinder.Primitives | [FlagsAttribute(...)] | -| System.Delegate[] | [ParamArrayAttribute(...)] | -| System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes | [FlagsAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.get_MemberTypes() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute.get_MemberTypes() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.ExperimentalAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.ExperimentalAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.ConditionalAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Debug.AssertInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | -| System.Diagnostics.Debug.WriteIfInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | -| System.Diagnostics.Debug.t_indentLevel | [ThreadStaticAttribute(...)] | -| System.Diagnostics.DebuggableAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggableAttribute.DebuggingModes | [FlagsAttribute(...)] | -| System.Diagnostics.DebuggableAttribute.DebuggingModes System.Diagnostics.DebuggableAttribute.get_DebuggingFlags() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerBrowsableAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerBrowsableState System.Diagnostics.DebuggerBrowsableAttribute.get_State() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerDisplayAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerDisplayAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerDisplayAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerDisplayAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerTypeProxyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerTypeProxyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerVisualizerAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerVisualizerAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerVisualizerAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.DebuggerVisualizerAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.StackFrameExtensions | [ExtensionAttribute(...)] | -| System.Diagnostics.StackFrameHelper.t_reentrancy | [ThreadStaticAttribute(...)] | -| System.Diagnostics.Tracing.CounterGroup.<>O | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload | [EventDataAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload System.Diagnostics.Tracing.CounterPayloadType.get_Payload() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload System.Diagnostics.Tracing.PollingPayloadType.get_Payload() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayload.d__51 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayloadType | [EventDataAttribute(...)] | -| System.Diagnostics.Tracing.CounterPayloadType.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.DataCollector.ThreadInstance | [ThreadStaticAttribute(...)] | -| System.Diagnostics.Tracing.DiagnosticCounter.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.DiagnosticCounter.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EmptyStruct | [IsReadOnlyAttribute(...)] | -| System.Diagnostics.Tracing.EventActivityOptions | [FlagsAttribute(...)] | -| System.Diagnostics.Tracing.EventActivityOptions System.Diagnostics.Tracing.EventAttribute.get_ActivityOptions() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventChannel System.Diagnostics.Tracing.EventAttribute.get_Channel() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventChannelAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventChannelAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventChannelType System.Diagnostics.Tracing.EventChannelAttribute.get_EventChannelType() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventCommand System.Diagnostics.Tracing.EventCommandEventArgs.get_Command() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventCommandEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventCommandEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventDataAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventDataAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventDataAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventDescriptor | [IsReadOnlyAttribute(...)] | -| System.Diagnostics.Tracing.EventFieldAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventFieldAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventFieldAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventFieldFormat System.Diagnostics.Tracing.EventFieldAttribute.get_Format() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventFieldTags | [FlagsAttribute(...)] | -| System.Diagnostics.Tracing.EventFieldTags System.Diagnostics.Tracing.EventFieldAttribute.get_Tags() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventFieldTags System.Diagnostics.Tracing.TraceLoggingMetadataCollector.get_Tags() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventKeywords | [FlagsAttribute(...)] | -| System.Diagnostics.Tracing.EventKeywords System.Diagnostics.Tracing.EventAttribute.get_Keywords() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventKeywords System.Diagnostics.Tracing.EventDataAttribute.get_Keywords() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventKeywords System.Diagnostics.Tracing.EventPipeEventDispatcher.EventListenerSubscription.get_MatchAnyKeywords() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventLevel System.Diagnostics.Tracing.EventAttribute.get_Level() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventLevel System.Diagnostics.Tracing.EventPipeEventDispatcher.EventListenerSubscription.get_Level() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventListener.<>c | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventListener.EventWritten | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventListener._EventSourceCreated | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventManifestOptions | [FlagsAttribute(...)] | -| System.Diagnostics.Tracing.EventPayload.d__17 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventPipeEventDispatcher.<>c__DisplayClass12_0 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventPipeEventDispatcher.EventListenerSubscription.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventPipeEventDispatcher.EventListenerSubscription.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventProvider.s_returnCode | [ThreadStaticAttribute(...)] | -| System.Diagnostics.Tracing.EventSource System.Diagnostics.Tracing.DiagnosticCounter.get_EventSource() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventSource System.Diagnostics.Tracing.EventSourceCreatedEventArgs.get_EventSource() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventSource System.Diagnostics.Tracing.EventWrittenEventArgs.get_EventSource() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventSource.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventSource.EventMetadata[] | [NotNullAttribute(...)] | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive | [IsReadOnlyAttribute(...)] | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive[] | [ParamArrayAttribute(...)] | -| System.Diagnostics.Tracing.EventSource.m_EventSourceExceptionRecurenceCount | [ThreadStaticAttribute(...)] | -| System.Diagnostics.Tracing.EventSourceAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventSourceAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventSourceAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventSourceCreatedEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventSourceSettings | [FlagsAttribute(...)] | -| System.Diagnostics.Tracing.EventTags | [FlagsAttribute(...)] | -| System.Diagnostics.Tracing.EventTags System.Diagnostics.Tracing.EventAttribute.get_Tags() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventTags System.Diagnostics.Tracing.EventDataAttribute.get_Tags() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventTask System.Diagnostics.Tracing.EventAttribute.get_Task() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.EventWrittenEventArgs.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload | [EventDataAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload System.Diagnostics.Tracing.IncrementingEventCounterPayloadType.get_Payload() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload System.Diagnostics.Tracing.IncrementingPollingCounterPayloadType.get_Payload() | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingCounterPayload.d__39 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingEventCounter.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingEventCounterPayloadType | [EventDataAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingEventCounterPayloadType.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingPollingCounter.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingPollingCounterPayloadType | [EventDataAttribute(...)] | -| System.Diagnostics.Tracing.IncrementingPollingCounterPayloadType.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.ManifestBuilder.<>c | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PollingPayloadType | [EventDataAttribute(...)] | -| System.Diagnostics.Tracing.PollingPayloadType.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue | [IsReadOnlyAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.<>c | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.<>c__DisplayClass33_0 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_0 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_1 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_2 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_3 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_4 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_5 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_6 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_7 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_8 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_9 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_10 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_11 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_12 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_13 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_14 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_15 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_16 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_17 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_18 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_19 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.PropertyValue.ReferenceTypeHelper`1.<>c__DisplayClass1_20 | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.RuntimeEventSource.<>O | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.RuntimeEventSource.<>c | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.Statics.<>O | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.TraceLoggingMetadataCollector.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Diagnostics.Tracing.TraceLoggingTypeInfo.threadCache | [ThreadStaticAttribute(...)] | -| System.Diagnostics.Tracing.TraceLoggingTypeInfo[] | [ParamArrayAttribute(...)] | -| System.Double System.BitConverter.Int64BitsToDouble(System.Int64) | [IntrinsicAttribute(...)] | -| System.Double System.BitConverter.UInt64BitsToDouble(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Double System.Diagnostics.Tracing.CounterPayload.get_Max() | [CompilerGeneratedAttribute(...)] | -| System.Double System.Diagnostics.Tracing.CounterPayload.get_Mean() | [CompilerGeneratedAttribute(...)] | -| System.Double System.Diagnostics.Tracing.CounterPayload.get_Min() | [CompilerGeneratedAttribute(...)] | -| System.Double System.Diagnostics.Tracing.CounterPayload.get_StandardDeviation() | [CompilerGeneratedAttribute(...)] | -| System.Double System.Diagnostics.Tracing.IncrementingCounterPayload.get_Increment() | [CompilerGeneratedAttribute(...)] | -| System.Double System.Double.g__NegativeN\|219_1(System.Double,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Double System.Double.g__PositiveN\|219_0(System.Double,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Double System.Double.Abs(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Acos(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Acosh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Asin(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Asinh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Atan2(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Atan(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Atanh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Cbrt(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Ceiling(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Cos(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Cosh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Exp(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Floor(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.FusedMultiplyAdd(System.Double,System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Log2(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Log10(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Log(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Max(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.MaxMagnitude(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.MaxMagnitudeNumber(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.MaxNumber(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Min(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.MinMagnitude(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.MinMagnitudeNumber(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.MinNumber(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Pow(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Round(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Sin(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Sinh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Sqrt(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Tan(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Tanh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Double.Truncate(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.g__SoftwareFallback\|53_0(System.Double,System.Double) | [CompilerGeneratedAttribute(...)] | -| System.Double System.Math.Abs(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Acos(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Acosh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Asin(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Asinh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Atan2(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Atan(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Atanh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Cbrt(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Ceiling(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Cos(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Cosh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Exp(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Floor(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.FusedMultiplyAdd(System.Double,System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Log2(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Log10(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Log(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Max(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.MaxMagnitude(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Min(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.MinMagnitude(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Pow(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Round(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Sin(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Sinh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Sqrt(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Tan(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Tanh(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Math.Truncate(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Runtime.InteropServices.NFloat.get_Value() | [NonVersionableAttribute(...)] | -| System.Double System.Threading.PortableThreadPool.HillClimbing.Complex.get_Imaginary() | [CompilerGeneratedAttribute(...)] | -| System.Double System.Threading.PortableThreadPool.HillClimbing.Complex.get_Real() | [CompilerGeneratedAttribute(...)] | -| System.Double System.Threading.Volatile.Read(System.Double) | [IntrinsicAttribute(...)] | -| System.Double System.Threading.Volatile.Read(System.Double) | [NonVersionableAttribute(...)] | -| System.Enum.<>c__63`1 | [CompilerGeneratedAttribute(...)] | -| System.Enum.EnumInfo System.Enum.g__InitializeEnumInfo\|7_0`1(System.RuntimeType,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Environment.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Exception System.Runtime.ExceptionServices.ExceptionDispatchInfo.SetCurrentStackTrace(System.Exception) | [StackTraceHiddenAttribute(...)] | -| System.Exception System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs.get_Exception() | [CompilerGeneratedAttribute(...)] | -| System.Exception.DispatchState | [IsReadOnlyAttribute(...)] | -| System.Exception[] | [ParamArrayAttribute(...)] | -| System.Exception[] System.Reflection.ReflectionTypeLoadException.get_LoaderExceptions() | [CompilerGeneratedAttribute(...)] | -| System.GCGenerationInfo | [IsReadOnlyAttribute(...)] | -| System.GCGenerationInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.GCGenerationInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.GCGenerationInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.GCGenerationInfo.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.GCMemoryInfo | [IsReadOnlyAttribute(...)] | -| System.Globalization.Calendar | [ScopedRefAttribute(...)] | -| System.Globalization.CalendarData.<>c | [CompilerGeneratedAttribute(...)] | -| System.Globalization.CalendricalCalculationsHelper.EphemerisCorrectionAlgorithmMap | [IsReadOnlyAttribute(...)] | -| System.Globalization.CompareOptions | [FlagsAttribute(...)] | -| System.Globalization.CultureInfo System.Resources.ResourceFallbackManager.d__5.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Globalization.CultureInfo.<>O | [CompilerGeneratedAttribute(...)] | -| System.Globalization.CultureInfo.s_currentThreadCulture | [ThreadStaticAttribute(...)] | -| System.Globalization.CultureInfo.s_currentThreadUICulture | [ThreadStaticAttribute(...)] | -| System.Globalization.CultureTypes | [FlagsAttribute(...)] | -| System.Globalization.DateTimeFormatFlags | [FlagsAttribute(...)] | -| System.Globalization.DateTimeFormatInfo | [ScopedRefAttribute(...)] | -| System.Globalization.DateTimeStyles | [FlagsAttribute(...)] | -| System.Globalization.DateTimeStyles | [ScopedRefAttribute(...)] | -| System.Globalization.DaylightTimeStruct | [IsReadOnlyAttribute(...)] | -| System.Globalization.GlobalizationExtensions | [ExtensionAttribute(...)] | -| System.Globalization.GlobalizationMode.Settings.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Globalization.GlobalizationMode.Settings.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Globalization.HebrewNumber.HebrewValue | [IsReadOnlyAttribute(...)] | -| System.Globalization.MonthNameStyles | [FlagsAttribute(...)] | -| System.Globalization.NumberFormatInfo System.Globalization.NumberFormatInfo.g__GetProviderNonNull\|58_0(System.IFormatProvider) | [CompilerGeneratedAttribute(...)] | -| System.Globalization.NumberStyles | [FlagsAttribute(...)] | -| System.Globalization.OrdinalCasing | [ExtensionAttribute(...)] | -| System.Globalization.TextInfo.ToLowerConversion | [IsReadOnlyAttribute(...)] | -| System.Globalization.TextInfo.ToUpperConversion | [IsReadOnlyAttribute(...)] | -| System.Globalization.TimeSpanParse.StringParser | [IsByRefLikeAttribute(...)] | -| System.Globalization.TimeSpanParse.TimeSpanRawInfo | [IsByRefLikeAttribute(...)] | -| System.Globalization.TimeSpanParse.TimeSpanResult | [IsByRefLikeAttribute(...)] | -| System.Globalization.TimeSpanParse.TimeSpanStandardStyles | [FlagsAttribute(...)] | -| System.Globalization.TimeSpanParse.TimeSpanToken | [IsByRefLikeAttribute(...)] | -| System.Globalization.TimeSpanParse.TimeSpanTokenizer | [IsByRefLikeAttribute(...)] | -| System.Globalization.TimeSpanStyles | [FlagsAttribute(...)] | -| System.Globalization.UmAlQuraCalendar.DateMapping | [IsReadOnlyAttribute(...)] | -| System.Guid | [IsReadOnlyAttribute(...)] | -| System.Guid | [NonVersionableAttribute(...)] | -| System.Guid | [RequiresLocationAttribute(...)] | -| System.Guid System.Guid.GuidResult.ToGuid() | [IsReadOnlyAttribute(...)] | -| System.Half | [IsReadOnlyAttribute(...)] | -| System.Half System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.HexConverter.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__68 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__33 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__36 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__40 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__48 | [CompilerGeneratedAttribute(...)] | -| System.IO.BufferedStream.d__59 | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEntry | [IsByRefLikeAttribute(...)] | -| System.IO.Enumeration.FileSystemEntry.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEntry.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEntry.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEntry.FileNameBuffer.<_buffer>e__FixedBuffer | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEntry.FileNameBuffer.<_buffer>e__FixedBuffer | [UnsafeValueTypeAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerable.FindPredicate System.IO.Enumeration.FileSystemEnumerable`1.get_ShouldIncludePredicate() | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerable.FindPredicate System.IO.Enumeration.FileSystemEnumerable`1.get_ShouldRecursePredicate() | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerableFactory.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass2_0 | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass3_0 | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass4_0 | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass5_0 | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass6_0 | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass7_0 | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerable`1.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.Enumeration.FileSystemEnumerable`1.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions System.IO.EnumerationOptions.get_Compatible() | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions System.IO.EnumerationOptions.get_CompatibleRecursive() | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions System.IO.EnumerationOptions.get_Default() | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.EnumerationOptions.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.File.<g__Core\|92_0>d | [CompilerGeneratedAttribute(...)] | -| System.IO.File.d__90 | [CompilerGeneratedAttribute(...)] | -| System.IO.File.d__91 | [CompilerGeneratedAttribute(...)] | -| System.IO.File.d__95 | [CompilerGeneratedAttribute(...)] | -| System.IO.File.d__86 | [CompilerGeneratedAttribute(...)] | -| System.IO.File.d__98 | [CompilerGeneratedAttribute(...)] | -| System.IO.File.d__110 | [CompilerGeneratedAttribute(...)] | -| System.IO.File.d__108 | [CompilerGeneratedAttribute(...)] | -| System.IO.FileAccess | [FlagsAttribute(...)] | -| System.IO.FileAttributes | [FlagsAttribute(...)] | -| System.IO.FileAttributes System.IO.EnumerationOptions.get_AttributesToSkip() | [CompilerGeneratedAttribute(...)] | -| System.IO.FileLoadException.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.FileLoadException.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.FileNotFoundException.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.FileNotFoundException.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.FileOptions | [FlagsAttribute(...)] | -| System.IO.FileShare | [FlagsAttribute(...)] | -| System.IO.FileStream.d__57 | [CompilerGeneratedAttribute(...)] | -| System.IO.FileSystem.<>O | [CompilerGeneratedAttribute(...)] | -| System.IO.FileSystem.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.MatchCasing System.IO.EnumerationOptions.get_MatchCasing() | [CompilerGeneratedAttribute(...)] | -| System.IO.MatchType System.IO.EnumerationOptions.get_MatchType() | [CompilerGeneratedAttribute(...)] | -| System.IO.Path.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.Strategies.BufferedFileStreamStrategy.d__57 | [CompilerGeneratedAttribute(...)] | -| System.IO.Strategies.BufferedFileStreamStrategy.d__27 | [CompilerGeneratedAttribute(...)] | -| System.IO.Strategies.BufferedFileStreamStrategy.d__55 | [CompilerGeneratedAttribute(...)] | -| System.IO.Strategies.BufferedFileStreamStrategy.d__37 | [CompilerGeneratedAttribute(...)] | -| System.IO.Strategies.BufferedFileStreamStrategy.d__36 | [CompilerGeneratedAttribute(...)] | -| System.IO.Strategies.BufferedFileStreamStrategy.d__48 | [CompilerGeneratedAttribute(...)] | -| System.IO.Strategies.BufferedFileStreamStrategy.d__47 | [CompilerGeneratedAttribute(...)] | -| System.IO.Strategies.FileStreamStrategy.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.<g__Core\|27_0>d | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.<g__FinishReadAsync\|42_0>d | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.d__61 | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.d__46 | [CompilerGeneratedAttribute(...)] | -| System.IO.Stream.ReadWriteTask.<>O | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamReader.d__69 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamReader.d__72 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamReader.d__63 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamReader.d__66 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.<g__Core\|76_0>d | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.d__36 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.d__64 | [CompilerGeneratedAttribute(...)] | -| System.IO.StreamWriter.d__68 | [CompilerGeneratedAttribute(...)] | -| System.IO.SyncTextReader System.ConsolePal.g__EnsureInitialized\|19_0() | [CompilerGeneratedAttribute(...)] | -| System.IO.TextReader System.Console.g__EnsureInitialized\|14_0() | [CompilerGeneratedAttribute(...)] | -| System.IO.TextReader.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.TextReader.d__23 | [CompilerGeneratedAttribute(...)] | -| System.IO.TextReader.d__17 | [CompilerGeneratedAttribute(...)] | -| System.IO.TextWriter System.Console.g__EnsureInitialized\|28_0() | [CompilerGeneratedAttribute(...)] | -| System.IO.TextWriter System.Console.g__EnsureInitialized\|26_0() | [CompilerGeneratedAttribute(...)] | -| System.IO.TextWriter.<g__WriteAsyncCore\|60_0>d | [CompilerGeneratedAttribute(...)] | -| System.IO.TextWriter.<g__WriteLineAsyncCore\|66_0>d | [CompilerGeneratedAttribute(...)] | -| System.IO.TextWriter.<>c | [CompilerGeneratedAttribute(...)] | -| System.IO.UnixFileMode | [FlagsAttribute(...)] | -| System.Index | [IsReadOnlyAttribute(...)] | -| System.Index System.Range.get_End() | [CompilerGeneratedAttribute(...)] | -| System.Index System.Range.get_Start() | [CompilerGeneratedAttribute(...)] | -| System.Int16 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.Int16) | [IntrinsicAttribute(...)] | -| System.Int16 System.Math.Max(System.Int16,System.Int16) | [NonVersionableAttribute(...)] | -| System.Int16 System.Math.Min(System.Int16,System.Int16) | [NonVersionableAttribute(...)] | -| System.Int16 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Int16 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Int16 System.Threading.Volatile.Read(System.Int16) | [IntrinsicAttribute(...)] | -| System.Int16 System.Threading.Volatile.Read(System.Int16) | [NonVersionableAttribute(...)] | -| System.Int32 Internal.Runtime.InteropServices.ComActivator.GetClassFactoryForTypeInternal(Internal.Runtime.InteropServices.ComActivationContextInternal*) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Int32 Internal.Runtime.InteropServices.ComActivator.RegisterClassForTypeInternal(Internal.Runtime.InteropServices.ComActivationContextInternal*) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Int32 Internal.Runtime.InteropServices.ComActivator.UnregisterClassForTypeInternal(Internal.Runtime.InteropServices.ComActivationContextInternal*) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.GetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssembly(System.IntPtr,System.IntPtr,System.IntPtr) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyBytes(System.Byte*,System.IntPtr,System.Byte*,System.IntPtr,System.IntPtr,System.IntPtr) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|16_0(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|3_0(System.IntPtr,System.UInt16*,System.Globalization.CalendarId,System.Globalization.CalendarDataType,System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|0_0(System.UInt16*,System.Globalization.CalendarId*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|31_0(System.Char*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|5_0(System.Int32,System.Int32*,System.Int32*,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|35_0(System.UInt16*,System.UInt32,System.Int32*,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|34_0(System.UInt16*,System.UInt32,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|30_0(System.UInt16*,System.UInt32,System.Char*,System.Int32,System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|29_0(System.UInt16*,System.Char*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|33_0(System.UInt16*,System.Int32,System.Char*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|36_0(System.Char*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|43_0(System.UInt16*,System.Char*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|32_0(System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|15_0(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.g____PInvoke\|42_0(System.UInt16*,System.IntPtr,System.Char*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Globalization.CompareString(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.GetCalendars(System.String,System.Globalization.CalendarId[],System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.GetLocales(System.Char[],System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.GetSortKey(System.IntPtr,System.Char*,System.Int32,System.Byte*,System.Int32,System.Globalization.CompareOptions) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.IanaIdToWindowsId(System.String,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.IndexOf(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.IsNormalized(System.Text.NormalizationForm,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.LastIndexOf(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.NormalizeString(System.Text.NormalizationForm,System.Char*,System.Int32,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.ToAscii(System.UInt32,System.Char*,System.Int32,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.ToUnicode(System.UInt32,System.Char*,System.Int32,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Globalization.WindowsIdToIanaId(System.String,System.IntPtr,System.Char*,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.HostPolicy.g____PInvoke\|2_0(System.Byte*,System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.HostPolicy.corehost_resolve_component_dependencies(System.String,Interop.HostPolicy.corehost_resolve_component_dependencies_result_fn) | [LibraryImportAttribute(...)] | -| System.Int32 Interop.Kernel32.g____PInvoke\|46_0(System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Kernel32.g____PInvoke\|70_0(System.Int32,System.IntPtr,System.UInt32,System.Int32,System.Void*,System.Int32,System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Kernel32.g____PInvoke\|77_0(System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Kernel32.g____PInvoke\|80_0(System.IntPtr,System.Int32,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Kernel32.g____PInvoke\|58_0(System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Kernel32.g____PInvoke\|81_0(System.UInt16*,System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 Interop.Kernel32.g____PInvoke\|57_0(System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Array.g__GenericBinarySearch\|85_0`1(System.Array,System.Int32,System.Int32,System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Array.g__GenericIndexOf\|110_0`1(System.Array,System.Object,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Array.g__GenericLastIndexOf\|116_0`1(System.Array,System.Object,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Array.GetLength(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Array.GetLowerBound(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Array.GetUpperBound(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.BitConverter.SingleToInt32Bits(System.Single) | [IntrinsicAttribute(...)] | -| System.Int32 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.ComponentModel.Win32Exception.get_NativeErrorCode() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Debugger.g____PInvoke\|6_0() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Tracing.CounterPayload.get_Count() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Tracing.EventAttribute.get_EventId() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.g____PInvoke\|6_0(System.UInt32,System.Guid*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.g____PInvoke\|9_0(System.UInt64,System.Diagnostics.Tracing.EventPipeEventInstanceData*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.g____PInvoke\|8_0(System.UInt64,System.Diagnostics.Tracing.EventPipeSessionInfo*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.g____PInvoke\|10_0(System.UInt64) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.g____PInvoke\|11_0(System.UInt64,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Diagnostics.Tracing.EventWrittenEventArgs.get_EventId() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Environment.get_ProcessorCount() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.GC.<_StartNoGCRegion>g____PInvoke\|3_0(System.Int64,System.Int32,System.Int64,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Globalization.ISOWeek.g__P\|8_0(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Globalization.IcuLocaleData.g__ResolveDigitListSeparator\|25_1(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Globalization.IcuLocaleData.g__ResolveIndex\|25_0(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.IO.EnumerationOptions.get_BufferSize() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Int32.LeadingZeroCount(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Int32.Log2(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Int32.PopCount(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Int32.RotateLeft(System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Int32.RotateRight(System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Int32.TrailingZeroCount(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.IntPtr.ToInt32() | [NonVersionableAttribute(...)] | -| System.Int32 System.IntPtr.get_Size() | [NonVersionableAttribute(...)] | -| System.Int32 System.IntPtr.op_Explicit(System.IntPtr) | [NonVersionableAttribute(...)] | -| System.Int32 System.Math.Max(System.Int32,System.Int32) | [NonVersionableAttribute(...)] | -| System.Int32 System.Math.Min(System.Int32,System.Int32) | [NonVersionableAttribute(...)] | -| System.Int32 System.MdUtf8String.g____PInvoke\|0_0(System.Void*,System.Void*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.MemoryExtensions.BinarySearch`1(System.ReadOnlySpan,System.IComparable) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.BinarySearch`1(System.Span,System.IComparable) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.BinarySearch`2(System.ReadOnlySpan,!0,!1) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.BinarySearch`2(System.ReadOnlySpan,!1) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.BinarySearch`2(System.Span,!0,!1) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.BinarySearch`2(System.Span,!1) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.CommonPrefixLength`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.CommonPrefixLength`1(System.ReadOnlySpan,System.ReadOnlySpan,System.Collections.Generic.IEqualityComparer) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.CommonPrefixLength`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.CommonPrefixLength`1(System.Span,System.ReadOnlySpan,System.Collections.Generic.IEqualityComparer) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.CompareTo(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.Count`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.Count`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.Count`1(System.Span,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.Count`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOf(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExceptInRange`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExceptInRange`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.ReadOnlySpan,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.ReadOnlySpan,!0,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.ReadOnlySpan,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.Span,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.Span,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.Span,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyInRange`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAnyInRange`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.ReadOnlySpan,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.ReadOnlySpan,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.Span,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.Span,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOf`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOf`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOf`1(System.Span,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.IndexOf`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOf(System.ReadOnlySpan,System.ReadOnlySpan,System.StringComparison) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExceptInRange`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExceptInRange`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.ReadOnlySpan,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.ReadOnlySpan,!0,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.ReadOnlySpan,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.Span,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.Span,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.Span,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyInRange`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyInRange`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.ReadOnlySpan,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.ReadOnlySpan,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.ReadOnlySpan,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.Span,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.Span,!0,!0,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.Span,System.Buffers.SearchValues) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOf`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOf`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOf`1(System.Span,!0) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.LastIndexOf`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.SequenceCompareTo`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.SequenceCompareTo`1(System.Span,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.Split(System.ReadOnlySpan,System.Span,System.Char,System.StringSplitOptions) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.Split(System.ReadOnlySpan,System.Span,System.ReadOnlySpan,System.StringSplitOptions) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.SplitAny(System.ReadOnlySpan,System.Span,System.ReadOnlySpan,System.StringSplitOptions) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.SplitAny(System.ReadOnlySpan,System.Span,System.ReadOnlySpan,System.StringSplitOptions) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.ToLower(System.ReadOnlySpan,System.Span,System.Globalization.CultureInfo) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.ToLowerInvariant(System.ReadOnlySpan,System.Span) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.ToUpper(System.ReadOnlySpan,System.Span,System.Globalization.CultureInfo) | [ExtensionAttribute(...)] | -| System.Int32 System.MemoryExtensions.ToUpperInvariant(System.ReadOnlySpan,System.Span) | [ExtensionAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.g__SoftwareFallback\|24_0(System.UInt32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.g__SoftwareFallback\|25_0(System.UInt64) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.LeadingZeroCount(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.LeadingZeroCount(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.LeadingZeroCount(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.Log2(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.Log2(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.Log2(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.PopCount(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.PopCount(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.PopCount(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.TrailingZeroCount(System.Int64) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.TrailingZeroCount(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.TrailingZeroCount(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.TrailingZeroCount(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.BitOperations.TrailingZeroCount(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Int32 System.Numerics.Matrix3x2.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.Matrix3x2.Impl.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.Matrix4x4.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.Matrix4x4.Impl.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.Plane.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.Quaternion.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.TotalOrderIeee754Comparer`1.g__CompareGeneric\|0_1(!0,!0) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Numerics.TotalOrderIeee754Comparer`1.g__CompareIntegerSemantic\|0_0`1(!0,!0) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Numerics.TotalOrderIeee754Comparer`1.g__CompareSignificand\|0_2(!0,!0) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Numerics.Vector2.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.Vector3.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.Vector4.GetHashCode() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Numerics.Vector`1.get_Count() | [IntrinsicAttribute(...)] | -| System.Int32 System.ReadOnlySpan`1.get_Length() | [IntrinsicAttribute(...)] | -| System.Int32 System.ReadOnlySpan`1.get_Length() | [NonVersionableAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.g____PInvoke\|25_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.UInt16*,System.Byte*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.g____PInvoke\|16_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.UInt16*,System.Byte*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.g____PInvoke\|26_0(System.Runtime.CompilerServices.QCallModule,System.UInt16*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.g____PInvoke\|23_0(System.Runtime.CompilerServices.QCallModule,System.Byte*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.g____PInvoke\|13_0(System.Runtime.CompilerServices.QCallModule,System.UInt16*,System.Runtime.CompilerServices.QCallModule,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetArrayMethodToken(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefFromSignature(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetStringConstant(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetTypeRef(System.Runtime.CompilerServices.QCallModule,System.String,System.Runtime.CompilerServices.QCallModule,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|11_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.UInt16*,System.Reflection.EventAttributes,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|6_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.UInt16*,System.Byte*,System.Int32,System.Reflection.FieldAttributes) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|56_0(System.Runtime.CompilerServices.QCallModule,System.UInt16*,System.Int32,System.Reflection.GenericParameterAttributes,System.Int32,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|4_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.UInt16*,System.Byte*,System.Int32,System.Reflection.MethodAttributes) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|5_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|10_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.UInt16*,System.Reflection.PropertyAttributes,System.Byte*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|55_0(System.Runtime.CompilerServices.QCallModule,System.UInt16*,System.Int32,System.Reflection.TypeAttributes,System.Int32,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|16_0(System.Runtime.CompilerServices.QCallModule,System.Byte*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.g____PInvoke\|15_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Reflection.ParameterAttributes,System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineEvent(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Reflection.EventAttributes,System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineField(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32,System.Reflection.FieldAttributes) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineGenericParam(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32,System.Reflection.GenericParameterAttributes,System.Int32,System.Int32[]) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineMethod(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32,System.Reflection.MethodAttributes) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineProperty(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Reflection.PropertyAttributes,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineType(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32,System.Reflection.TypeAttributes,System.Int32,System.Int32[]) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.SetParamInfo(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Reflection.ParameterAttributes,System.String) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.LoaderAllocatorScout.g____PInvoke\|1_0(System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Metadata.AssemblyExtensions.g____PInvoke\|0_0(System.Runtime.CompilerServices.QCallAssembly,System.Byte**,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.Metadata.MetadataUpdater.g____PInvoke\|1_0() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.NullabilityInfoContext.g__CountNullabilityStates\|28_0(System.Type) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.RuntimeAssembly.g____PInvoke\|14_0(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.RuntimeAssembly.g____PInvoke\|60_0(System.Runtime.CompilerServices.QCallAssembly,System.UInt16*,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StringHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Reflection.RuntimeAssembly.GetManifestResourceInfo(System.Runtime.CompilerServices.QCallAssembly,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | -| System.Int32 System.Reflection.RuntimeParameterInfo.g__GetConstructorArgument\|32_0(System.Collections.Generic.IList,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Resources.ResourceLocator.get_DataPosition() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.CompilationRelaxationsAttribute.get_CompilationRelaxations() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.FixedBufferAttribute.get_Length() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.InlineArrayAttribute.get_Length() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.RefSafetyRulesAttribute.get_Version() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.RuntimeHelpers.g____PInvoke\|34_0(System.Runtime.CompilerServices.MethodTable*,System.Runtime.CompilerServices.MethodTable*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.RuntimeHelpers.EnumCompareTo`1(!0,!0) | [IntrinsicAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.RuntimeHelpers.get_OffsetToStringData() | [NonVersionableAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.Unsafe.SizeOf`1() | [IntrinsicAttribute(...)] | -| System.Int32 System.Runtime.CompilerServices.Unsafe.SizeOf`1() | [NonVersionableAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.ComWrappers.g____PInvoke\|1_0(System.Runtime.CompilerServices.ObjectHandleOnStack,System.IntPtr*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.ComWrappers.g____PInvoke\|3_0(System.IntPtr,System.Runtime.CompilerServices.ObjectHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.ComWrappers.g____PInvoke\|11_0(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.InteropServices.CreateComInterfaceFlags,System.IntPtr*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.ComWrappers.g____PInvoke\|18_0(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.IntPtr,System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.DispIdAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.ErrorWrapper.get_ErrorCode() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.FieldOffsetAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.LCIDConversionAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2.ManagedToUnmanagedIn.get_BufferSize() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.get_ConstantElementCount() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.get_ElementIndirectionDepth() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.ManagedToUnmanagedIn.get_BufferSize() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.Marshalling.SpanMarshaller`2.ManagedToUnmanagedIn.get_BufferSize() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.NFloat.get_Size() | [NonVersionableAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.PosixSignalRegistration.OnPosixSignal(System.Int32,System.Runtime.InteropServices.PosixSignal) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Int32 System.Runtime.InteropServices.PosixSignalRegistration.Token.get_SigNo() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.Intrinsics.Vector64`1.get_Count() | [IntrinsicAttribute(...)] | -| System.Int32 System.Runtime.Intrinsics.Vector128`1.get_Count() | [IntrinsicAttribute(...)] | -| System.Int32 System.Runtime.Intrinsics.Vector256`1.get_Count() | [IntrinsicAttribute(...)] | -| System.Int32 System.Runtime.Intrinsics.Vector512`1.get_Count() | [IntrinsicAttribute(...)] | -| System.Int32 System.Runtime.Loader.AssemblyLoadContext.g____PInvoke\|10_0(System.UInt16*,System.Int32,System.UInt16*,System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.Loader.AssemblyLoadContext.g____PInvoke\|9_0(System.UInt16*,System.UInt16*,System.UInt16*,System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.Loader.AssemblyLoadContext.g____PInvoke\|8_0(System.UInt16*,System.UInt16*,System.UInt16*,System.UInt16*,System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Runtime.Loader.AssemblyLoadContext.g____PInvoke\|11_0(System.UInt16*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.RuntimeTypeHandle.<_IsVisible>g____PInvoke\|66_0(System.Runtime.CompilerServices.QCallTypeHandle) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.SpanHelpers.BinarySearch`2(System.ReadOnlySpan,!1) | [ExtensionAttribute(...)] | -| System.Int32 System.Span`1.get_Length() | [IntrinsicAttribute(...)] | -| System.Int32 System.Span`1.get_Length() | [NonVersionableAttribute(...)] | -| System.Int32 System.String.g__GetNonRandomizedHashCodeOrdinalIgnoreCaseSlow\|47_0(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.String.get_Length() | [IntrinsicAttribute(...)] | -| System.Int32 System.Text.CodePageDataItem.get_UIFamilyCodePage() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Text.EncodingInfo.get_CodePage() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Text.UTF8Encoding.UTF8EncodingSealed.ReadUtf8(System.Char,System.Int32,System.Byte,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Text.Unicode.TextSegmentationUtility.Processor`1.get_CurrentCodeUnitOffset() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Text.Unicode.TextSegmentationUtility.Processor`1.get_CurrentCodeUnitOffset() | [IsReadOnlyAttribute(...)] | -| System.Int32 System.Threading.Interlocked.And(System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Threading.Interlocked.CompareExchange(System.Int32,System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Threading.Interlocked.Exchange(System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Threading.Interlocked.ExchangeAdd(System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Threading.Interlocked.Or(System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Threading.LowLevelLifoSemaphore.g____PInvoke\|3_0(System.IntPtr,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Threading.RegisteredWaitHandle.get_TimeoutTimeMs() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Threading.Thread.get_ManagedThreadId() | [IntrinsicAttribute(...)] | -| System.Int32 System.Threading.Thread.get_OptimalMaxSpinWaitsPerSpinIteration() | [CompilerGeneratedAttribute(...)] | -| System.Int32 System.Threading.Volatile.Read(System.Int32) | [IntrinsicAttribute(...)] | -| System.Int32 System.Threading.Volatile.Read(System.Int32) | [NonVersionableAttribute(...)] | -| System.Int32 System.UIntPtr.get_Size() | [NonVersionableAttribute(...)] | -| System.Int64 System.BitConverter.DoubleToInt64Bits(System.Double) | [IntrinsicAttribute(...)] | -| System.Int64 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.GCGenerationInfo.get_FragmentationAfterBytes() | [CompilerGeneratedAttribute(...)] | -| System.Int64 System.GCGenerationInfo.get_FragmentationBeforeBytes() | [CompilerGeneratedAttribute(...)] | -| System.Int64 System.GCGenerationInfo.get_SizeAfterBytes() | [CompilerGeneratedAttribute(...)] | -| System.Int64 System.GCGenerationInfo.get_SizeBeforeBytes() | [CompilerGeneratedAttribute(...)] | -| System.Int64 System.Int64.LeadingZeroCount(System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Int64.Log2(System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Int64.PopCount(System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Int64.RotateLeft(System.Int64,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int64 System.Int64.RotateRight(System.Int64,System.Int32) | [IntrinsicAttribute(...)] | -| System.Int64 System.Int64.TrailingZeroCount(System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.IntPtr.ToInt64() | [NonVersionableAttribute(...)] | -| System.Int64 System.IntPtr.op_Explicit(System.IntPtr) | [NonVersionableAttribute(...)] | -| System.Int64 System.Math.Max(System.Int64,System.Int64) | [NonVersionableAttribute(...)] | -| System.Int64 System.Math.Min(System.Int64,System.Int64) | [NonVersionableAttribute(...)] | -| System.Int64 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Int64 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Int64 System.Threading.Interlocked.And(System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Threading.Interlocked.CompareExchange(System.Int64,System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Threading.Interlocked.Exchange(System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Threading.Interlocked.ExchangeAdd(System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Threading.Interlocked.Or(System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Threading.TimerQueue.get_ActiveCount() | [CompilerGeneratedAttribute(...)] | -| System.Int64 System.Threading.Volatile.Read(System.Int64) | [IntrinsicAttribute(...)] | -| System.Int64 System.Threading.Volatile.Read(System.Int64) | [NonVersionableAttribute(...)] | -| System.Int128 | [IntrinsicAttribute(...)] | -| System.Int128 | [IsReadOnlyAttribute(...)] | -| System.Int128 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Int128 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.IntPtr | [IsReadOnlyAttribute(...)] | -| System.IntPtr | [RequiresLocationAttribute(...)] | -| System.IntPtr Interop.Kernel32.g____PInvoke\|59_0(System.IntPtr,System.UInt16*,System.UInt32,System.UInt32) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr Interop.Kernel32.g____PInvoke\|76_0(System.IntPtr,System.UInt16*,System.UInt32,System.UInt32) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr Interop.Kernel32.g____PInvoke\|79_0(System.IntPtr,System.Int32,System.Int32,System.UInt16*,System.UInt32,System.UInt32) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr Interop.Kernel32.g____PInvoke\|75_0(System.UInt32,System.Int32,System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.ComAwareWeakReference.g____PInvoke\|4_0(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64*) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.Diagnostics.StackFrameExtensions.GetNativeIP(System.Diagnostics.StackFrame) | [ExtensionAttribute(...)] | -| System.IntPtr System.Diagnostics.StackFrameExtensions.GetNativeImageBase(System.Diagnostics.StackFrame) | [ExtensionAttribute(...)] | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.g____PInvoke\|2_0(System.UInt16*,delegate* unmanaged,System.Void*) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.g____PInvoke\|4_0(System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.CreateProvider(System.String,delegate* unmanaged,System.Void*) | [LibraryImportAttribute(...)] | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.GetProvider(System.String) | [LibraryImportAttribute(...)] | -| System.IntPtr System.IntPtr.Add(System.IntPtr,System.Int32) | [NonVersionableAttribute(...)] | -| System.IntPtr System.IntPtr.LeadingZeroCount(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.IntPtr System.IntPtr.Log2(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.IntPtr System.IntPtr.PopCount(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.IntPtr System.IntPtr.RotateLeft(System.IntPtr,System.Int32) | [IntrinsicAttribute(...)] | -| System.IntPtr System.IntPtr.RotateRight(System.IntPtr,System.Int32) | [IntrinsicAttribute(...)] | -| System.IntPtr System.IntPtr.Subtract(System.IntPtr,System.Int32) | [NonVersionableAttribute(...)] | -| System.IntPtr System.IntPtr.TrailingZeroCount(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.IntPtr System.IntPtr.get_MaxValue() | [NonVersionableAttribute(...)] | -| System.IntPtr System.IntPtr.get_MinValue() | [NonVersionableAttribute(...)] | -| System.IntPtr System.IntPtr.op_Addition(System.IntPtr,System.Int32) | [NonVersionableAttribute(...)] | -| System.IntPtr System.IntPtr.op_Explicit(System.Int32) | [NonVersionableAttribute(...)] | -| System.IntPtr System.IntPtr.op_Explicit(System.Int64) | [NonVersionableAttribute(...)] | -| System.IntPtr System.IntPtr.op_Explicit(System.Void*) | [NonVersionableAttribute(...)] | -| System.IntPtr System.IntPtr.op_Subtraction(System.IntPtr,System.Int32) | [NonVersionableAttribute(...)] | -| System.IntPtr System.Math.Max(System.IntPtr,System.IntPtr) | [NonVersionableAttribute(...)] | -| System.IntPtr System.Math.Min(System.IntPtr,System.IntPtr) | [NonVersionableAttribute(...)] | -| System.IntPtr System.Runtime.CompilerServices.Unsafe.ByteOffset`1(!0,!0) | [IntrinsicAttribute(...)] | -| System.IntPtr System.Runtime.CompilerServices.Unsafe.ByteOffset`1(!0,!0) | [NonVersionableAttribute(...)] | -| System.IntPtr System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.IntPtr System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.g____PInvoke\|4_0(System.IntPtr,System.UInt16*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.g____PInvoke\|2_0(System.UInt16*,System.Runtime.CompilerServices.QCallAssembly,System.Int32,System.UInt32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.g____PInvoke\|1_0(System.UInt16*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.GetSymbol(System.IntPtr,System.String,System.Boolean) | [LibraryImportAttribute(...)] | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.LoadByName(System.String,System.Runtime.CompilerServices.QCallAssembly,System.Boolean,System.UInt32,System.Boolean) | [LibraryImportAttribute(...)] | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.LoadFromPath(System.String,System.Boolean) | [LibraryImportAttribute(...)] | -| System.IntPtr System.Runtime.Loader.AssemblyLoadContext.g____PInvoke\|0_0(System.IntPtr,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.RuntimeTypeHandle.ToIntPtr(System.RuntimeTypeHandle) | [IntrinsicAttribute(...)] | -| System.IntPtr System.StubHelpers.StubHelpers.GetStubContext() | [IntrinsicAttribute(...)] | -| System.IntPtr System.StubHelpers.StubHelpers.NextCallReturnAddress() | [IntrinsicAttribute(...)] | -| System.IntPtr System.Threading.RegisteredWaitHandle.get_UserUnregisterWaitHandleValue() | [CompilerGeneratedAttribute(...)] | -| System.IntPtr System.Threading.Volatile.Read(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.IntPtr System.Threading.Volatile.Read(System.IntPtr) | [NonVersionableAttribute(...)] | -| System.IntPtr.Zero | [IntrinsicAttribute(...)] | -| System.LazyHelper.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.LazyState System.LazyHelper.get_State() | [CompilerGeneratedAttribute(...)] | -| System.LocalDataStoreSlot.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Marvin.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.MdUtf8String | [IsReadOnlyAttribute(...)] | -| System.Memory System.MemoryExtensions.AsMemory`1(!0[]) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.AsMemory`1(!0[],System.Index) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.AsMemory`1(!0[],System.Int32) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.AsMemory`1(!0[],System.Int32,System.Int32) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.AsMemory`1(!0[],System.Range) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.AsMemory`1(System.ArraySegment) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.AsMemory`1(System.ArraySegment,System.Int32) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.AsMemory`1(System.ArraySegment,System.Int32,System.Int32) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.TrimEnd`1(System.Memory,!0) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.TrimEnd`1(System.Memory,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.TrimStart`1(System.Memory,!0) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.TrimStart`1(System.Memory,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.Trim`1(System.Memory,!0) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.Trim`1(System.Memory,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.Trim(System.Memory) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.TrimEnd(System.Memory) | [ExtensionAttribute(...)] | -| System.Memory System.MemoryExtensions.TrimStart(System.Memory) | [ExtensionAttribute(...)] | -| System.MemoryExtensions | [ExtensionAttribute(...)] | -| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | -| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [IsByRefLikeAttribute(...)] | -| System.Memory`1 | [IsReadOnlyAttribute(...)] | -| System.Nullable | [RequiresLocationAttribute(...)] | -| System.Nullable System.Nullable`1.op_Implicit(!0) | [NonVersionableAttribute(...)] | -| System.Nullable`1 | [NonVersionableAttribute(...)] | -| System.Number.BigInteger | [IsByRefLikeAttribute(...)] | -| System.Number.BigInteger | [ScopedRefAttribute(...)] | -| System.Number.BigInteger.<_blocks>e__FixedBuffer | [CompilerGeneratedAttribute(...)] | -| System.Number.BigInteger.<_blocks>e__FixedBuffer | [UnsafeValueTypeAttribute(...)] | -| System.Number.BinaryParser`1 | [IsReadOnlyAttribute(...)] | -| System.Number.DiyFp | [IsByRefLikeAttribute(...)] | -| System.Number.DiyFp | [IsReadOnlyAttribute(...)] | -| System.Number.HexParser`1 | [IsReadOnlyAttribute(...)] | -| System.Number.NumberBuffer | [IsByRefLikeAttribute(...)] | -| System.Number.NumberBuffer | [ScopedRefAttribute(...)] | -| System.Numerics.Matrix3x2 | [IntrinsicAttribute(...)] | -| System.Numerics.Matrix3x2 System.Numerics.Matrix3x2.Impl.AsM3x2() | [UnscopedRefAttribute(...)] | -| System.Numerics.Matrix3x2.Impl | [IsReadOnlyAttribute(...)] | -| System.Numerics.Matrix3x2.Impl System.Numerics.Matrix3x2.AsImpl() | [UnscopedRefAttribute(...)] | -| System.Numerics.Matrix3x2.Impl System.Numerics.Matrix3x2.AsROImpl() | [IsReadOnlyAttribute(...)] | -| System.Numerics.Matrix3x2.Impl System.Numerics.Matrix3x2.AsROImpl() | [UnscopedRefAttribute(...)] | -| System.Numerics.Matrix4x4 | [IntrinsicAttribute(...)] | -| System.Numerics.Matrix4x4 System.Numerics.Matrix4x4.Impl.AsM4x4() | [UnscopedRefAttribute(...)] | -| System.Numerics.Matrix4x4.Impl | [IsReadOnlyAttribute(...)] | -| System.Numerics.Matrix4x4.Impl System.Numerics.Matrix4x4.AsImpl() | [UnscopedRefAttribute(...)] | -| System.Numerics.Matrix4x4.Impl System.Numerics.Matrix4x4.AsROImpl() | [IsReadOnlyAttribute(...)] | -| System.Numerics.Matrix4x4.Impl System.Numerics.Matrix4x4.AsROImpl() | [UnscopedRefAttribute(...)] | -| System.Numerics.Plane | [IntrinsicAttribute(...)] | -| System.Numerics.Plane | [IsReadOnlyAttribute(...)] | -| System.Numerics.Quaternion | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion | [IsReadOnlyAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Add(System.Numerics.Quaternion,System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Conjugate(System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Divide(System.Numerics.Quaternion,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Inverse(System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Multiply(System.Numerics.Quaternion,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Multiply(System.Numerics.Quaternion,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Negate(System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Normalize(System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.Subtract(System.Numerics.Quaternion,System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.get_Identity() | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.get_Zero() | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.op_Addition(System.Numerics.Quaternion,System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.op_Multiply(System.Numerics.Quaternion,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.op_Subtraction(System.Numerics.Quaternion,System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Quaternion.op_UnaryNegation(System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Vector.WithElement(System.Numerics.Quaternion,System.Int32,System.Single) | [ExtensionAttribute(...)] | -| System.Numerics.Quaternion System.Numerics.Vector.WithElement(System.Numerics.Quaternion,System.Int32,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.TotalOrderIeee754Comparer`1 | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector | [ExtensionAttribute(...)] | -| System.Numerics.Vector | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Matrix3x2.Impl.get_Translation() | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Matrix3x2.get_Translation() | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Abs(System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Add(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Clamp(System.Numerics.Vector2,System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Divide(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Divide(System.Numerics.Vector2,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Lerp(System.Numerics.Vector2,System.Numerics.Vector2,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Max(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Min(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Multiply(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Multiply(System.Numerics.Vector2,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Multiply(System.Single,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Negate(System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Normalize(System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.SquareRoot(System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.Subtract(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.get_One() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.get_UnitX() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.get_UnitY() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.get_Zero() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.op_Addition(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.op_Division(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.op_Division(System.Numerics.Vector2,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.op_Multiply(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.op_Multiply(System.Numerics.Vector2,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.op_Multiply(System.Single,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.op_Subtraction(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector2.op_UnaryNegation(System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector.WithElement(System.Numerics.Vector2,System.Int32,System.Single) | [ExtensionAttribute(...)] | -| System.Numerics.Vector2 System.Numerics.Vector.WithElement(System.Numerics.Vector2,System.Int32,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector2 System.Runtime.Intrinsics.Vector128.AsVector2(System.Runtime.Intrinsics.Vector128) | [ExtensionAttribute(...)] | -| System.Numerics.Vector2 System.Runtime.Intrinsics.Vector128.AsVector2(System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Matrix4x4.Impl.get_Translation() | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Matrix4x4.get_Translation() | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Abs(System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Add(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Clamp(System.Numerics.Vector3,System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Divide(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Divide(System.Numerics.Vector3,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Lerp(System.Numerics.Vector3,System.Numerics.Vector3,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Max(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Min(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Multiply(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Multiply(System.Numerics.Vector3,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Multiply(System.Single,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Negate(System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Normalize(System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.SquareRoot(System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.Subtract(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.get_One() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.get_UnitX() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.get_UnitY() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.get_UnitZ() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.get_Zero() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.op_Addition(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.op_Division(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.op_Division(System.Numerics.Vector3,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.op_Multiply(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.op_Multiply(System.Numerics.Vector3,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.op_Multiply(System.Single,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.op_Subtraction(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector3.op_UnaryNegation(System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector.WithElement(System.Numerics.Vector3,System.Int32,System.Single) | [ExtensionAttribute(...)] | -| System.Numerics.Vector3 System.Numerics.Vector.WithElement(System.Numerics.Vector3,System.Int32,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector3 System.Runtime.Intrinsics.Vector128.AsVector3(System.Runtime.Intrinsics.Vector128) | [ExtensionAttribute(...)] | -| System.Numerics.Vector3 System.Runtime.Intrinsics.Vector128.AsVector3(System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Abs(System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Add(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Clamp(System.Numerics.Vector4,System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Divide(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Divide(System.Numerics.Vector4,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Lerp(System.Numerics.Vector4,System.Numerics.Vector4,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Max(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Min(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Multiply(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Multiply(System.Numerics.Vector4,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Multiply(System.Single,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Negate(System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Normalize(System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.SquareRoot(System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.Subtract(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.get_One() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.get_UnitW() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.get_UnitX() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.get_UnitY() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.get_UnitZ() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.get_Zero() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.op_Addition(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.op_Division(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.op_Division(System.Numerics.Vector4,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.op_Multiply(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.op_Multiply(System.Numerics.Vector4,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.op_Multiply(System.Single,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.op_Subtraction(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector4.op_UnaryNegation(System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector.WithElement(System.Numerics.Vector4,System.Int32,System.Single) | [ExtensionAttribute(...)] | -| System.Numerics.Vector4 System.Numerics.Vector.WithElement(System.Numerics.Vector4,System.Int32,System.Single) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector4 System.Runtime.Intrinsics.Vector128.AsVector4(System.Runtime.Intrinsics.Vector128) | [ExtensionAttribute(...)] | -| System.Numerics.Vector4 System.Runtime.Intrinsics.Vector128.AsVector4(System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Abs`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Add`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AndNot`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.BitwiseAnd`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.BitwiseOr`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConditionalSelect`1(System.Numerics.Vector,System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Divide`1(System.Numerics.Vector,!0) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Divide`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Equals`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThanOrEqual`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThan`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThanOrEqual`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThan`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LoadAlignedNonTemporal`1(!0*) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LoadAligned`1(!0*) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LoadUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LoadUnsafe`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Load`1(!0*) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Max`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Min`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Multiply`1(!0,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Multiply`1(System.Numerics.Vector,!0) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Multiply`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Negate`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.OnesComplement`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.SquareRoot`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Subtract`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WithElement`1(System.Numerics.Vector,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Xor`1(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.get_AllBitsSet() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.get_One() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.get_Zero() | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Addition(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_BitwiseAnd(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_BitwiseOr(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Division(System.Numerics.Vector,!0) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Division(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_ExclusiveOr(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_LeftShift(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Multiply(!0,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Multiply(System.Numerics.Vector,!0) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Multiply(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_OnesComplement(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_RightShift(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Subtraction(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_UnaryNegation(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_UnaryPlus(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_UnsignedRightShift(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Runtime.Intrinsics.Vector128.AsVector`1(System.Runtime.Intrinsics.Vector128) | [ExtensionAttribute(...)] | -| System.Numerics.Vector System.Runtime.Intrinsics.Vector128.AsVector`1(System.Runtime.Intrinsics.Vector128) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Runtime.Intrinsics.Vector256.AsVector`1(System.Runtime.Intrinsics.Vector256) | [ExtensionAttribute(...)] | -| System.Numerics.Vector System.Runtime.Intrinsics.Vector256.AsVector`1(System.Runtime.Intrinsics.Vector256) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Runtime.Intrinsics.Vector512.AsVector`1(System.Runtime.Intrinsics.Vector512) | [ExtensionAttribute(...)] | -| System.Numerics.Vector System.Runtime.Intrinsics.Vector512.AsVector`1(System.Runtime.Intrinsics.Vector512) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.As`2(System.Numerics.Vector) | [ExtensionAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.As`2(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorByte`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Narrow(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorDouble`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Ceiling(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConditionalSelect(System.Numerics.Vector,System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConvertToDouble(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConvertToDouble(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Floor(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenLower(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenUpper(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorInt16`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Narrow(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightArithmetic(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenLower(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenUpper(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorInt32`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConvertToInt32(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Equals(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Equals(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThan(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThan(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThanOrEqual(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThanOrEqual(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThan(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThan(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThanOrEqual(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThanOrEqual(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Narrow(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightArithmetic(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenLower(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenUpper(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorInt64`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConvertToInt64(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Equals(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Equals(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThan(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThanOrEqual(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.GreaterThanOrEqual(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThan(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThan(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThanOrEqual(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.LessThanOrEqual(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightArithmetic(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenLower(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenUpper(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorNInt`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightArithmetic(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorSByte`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Narrow(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightArithmetic(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorSingle`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Ceiling(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConditionalSelect(System.Numerics.Vector,System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConvertToSingle(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConvertToSingle(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Floor(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Narrow(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorUInt16`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Narrow(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenLower(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenUpper(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorUInt32`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConvertToUInt32(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.Narrow(System.Numerics.Vector,System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenLower(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenUpper(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorUInt64`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ConvertToUInt64(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenLower(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.WidenUpper(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.AsVectorNUInt`1(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftLeft(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector,System.Int32) | [IntrinsicAttribute(...)] | -| System.Numerics.Vector System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector) | [IntrinsicAttribute(...)] | -| System.Numerics.VectorDebugView`1 | [IsReadOnlyAttribute(...)] | -| System.Numerics.Vector`1 | [IntrinsicAttribute(...)] | -| System.Numerics.Vector`1 | [IsReadOnlyAttribute(...)] | -| System.Object System.Activator.CreateInstance(System.Type) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Activator.CreateInstance(System.Type) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Activator.CreateInstance(System.Type,System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Activator.CreateInstance(System.Type,System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Activator.CreateInstance(System.Type,System.Object[],System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Activator.CreateInstance(System.Type,System.Object[],System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Activator.CreateInstance(System.Type,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Activator.CreateInstance(System.Type,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Array.Clone() | [IntrinsicAttribute(...)] | -| System.Object System.Collections.Concurrent.ConcurrentQueue`1.d__26.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.d__15.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute.get_Max() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute.get_Min() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Diagnostics.Tracing.CounterPayload.d__51.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Diagnostics.Tracing.EventPayload.d__17.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Diagnostics.Tracing.IncrementingCounterPayload.d__39.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Object.MemberwiseClone() | [IntrinsicAttribute(...)] | -| System.Object System.Reflection.ConstructorInfo.Invoke(System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.ConstructorInfo.Invoke(System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.MdFieldInfo.GetValue(System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.MdFieldInfo.GetValue(System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.MdFieldInfo.GetValueDirect(System.TypedReference) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.MdFieldInfo.GetValueDirect(System.TypedReference) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.MethodBase.Invoke(System.Object,System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.MethodBase.Invoke(System.Object,System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.PropertyInfo.GetValue(System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.PropertyInfo.GetValue(System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.PropertyInfo.GetValue(System.Object,System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.PropertyInfo.GetValue(System.Object,System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.RtFieldInfo.GetValue(System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.RtFieldInfo.GetValue(System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.RtFieldInfo.GetValueDirect(System.TypedReference) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.RtFieldInfo.GetValueDirect(System.TypedReference) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.RuntimeConstructorInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.RuntimeConstructorInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.RuntimeConstructorInfo.Invoke(System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.RuntimeConstructorInfo.Invoke(System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.RuntimeMethodInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.RuntimeMethodInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.RuntimePropertyInfo.GetValue(System.Object,System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.RuntimePropertyInfo.GetValue(System.Object,System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.RuntimePropertyInfo.GetValue(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.RuntimePropertyInfo.GetValue(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Reflection.TypeInfo.d__10.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Reflection.TypeInfo.d__22.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Resources.ResourceFallbackManager.d__5.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Resources.ResourceLocator.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastAny(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastAny(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastAny(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastClass(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastClass(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastClass(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastClassSpecial(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastClassSpecial(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastClassSpecial(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCastInterface(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCast_Helper(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCast_Helper(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ChkCast_Helper(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfAny(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfClass(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfClass(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfClass(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfInterface(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfInterface(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstanceOfInterface(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstance_Helper(System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstance_Helper(System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.IsInstance_Helper(System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.LdelemaRef(System.Array,System.IntPtr,System.Void*) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.LdelemaRef(System.Array,System.IntPtr,System.Void*) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.LdelemaRef(System.Array,System.IntPtr,System.Void*) | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ThrowArrayMismatchException() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ThrowArrayMismatchException() | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Runtime.CompilerServices.CastHelpers.ThrowArrayMismatchException() | [StackTraceHiddenAttribute(...)] | -| System.Object System.Runtime.CompilerServices.SwitchExpressionException.get_UnmatchedValue() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Runtime.InteropServices.DefaultParameterValueAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Runtime.InteropServices.DispatchWrapper.get_WrappedObject() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Runtime.InteropServices.MemoryMarshal.<g__FromArray\|18_2>d`1.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.InteropServices.MemoryMarshal.<g__FromMemoryManager\|18_1>d`1.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.InteropServices.MemoryMarshal.<g__FromString\|18_0>d`1.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.InteropServices.UnknownWrapper.get_WrappedObject() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Runtime.InteropServices.VariantWrapper.get_WrappedObject() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Runtime.Loader.AssemblyLoadContext.d__85.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.Loader.AssemblyLoadContext.d__55.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Runtime.Loader.LibraryNameVariation.d__5.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.RuntimeMethodHandle.InvokeMethod(System.Object,System.Void**,System.Signature,System.Boolean) | [DebuggerHiddenAttribute(...)] | -| System.Object System.RuntimeMethodHandle.InvokeMethod(System.Object,System.Void**,System.Signature,System.Boolean) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.RuntimeType.g__CreateInstanceLocal\|145_0(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Object System.RuntimeType.ActivatorCache.ctor>g__ReturnNull\|4_0(System.Void*) | [CompilerGeneratedAttribute(...)] | -| System.Object System.RuntimeType.CreateInstanceDefaultCtor(System.Boolean,System.Boolean) | [DebuggerHiddenAttribute(...)] | -| System.Object System.RuntimeType.CreateInstanceDefaultCtor(System.Boolean,System.Boolean) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.RuntimeType.CreateInstanceOfT() | [DebuggerHiddenAttribute(...)] | -| System.Object System.RuntimeType.CreateInstanceOfT() | [DebuggerStepThroughAttribute(...)] | -| System.Object System.RuntimeType.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DebuggerHiddenAttribute(...)] | -| System.Object System.RuntimeType.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Security.SecurityException.get_Demanded() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Security.SecurityException.get_DenySetInstance() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Security.SecurityException.get_PermitOnlySetInstance() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Threading.Interlocked.CompareExchange(System.Object,System.Object,System.Object) | [IntrinsicAttribute(...)] | -| System.Object System.Threading.Interlocked.Exchange(System.Object,System.Object) | [IntrinsicAttribute(...)] | -| System.Object System.Threading.Tasks.TaskAsyncEnumerableExtensions.d__3`1.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Threading.Tasks.TaskToAsyncResult.TaskAsyncResult.get_AsyncState() | [CompilerGeneratedAttribute(...)] | -| System.Object System.Threading.Tasks.ThreadPoolTaskScheduler.d__6.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Threading.ThreadPool.d__26.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Threading.TimerQueue.d__7.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Object[] System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.get_Arguments() | [CompilerGeneratedAttribute(...)] | -| System.ObsoleteAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ObsoleteAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ObsoleteAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ObsoleteAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ParseFlags | [FlagsAttribute(...)] | -| System.ParsingInfo | [ScopedRefAttribute(...)] | -| System.Progress`1.ProgressChanged | [CompilerGeneratedAttribute(...)] | -| System.Random System.Random.get_Shared() | [CompilerGeneratedAttribute(...)] | -| System.Random.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Random.ThreadSafeRandom.t_random | [ThreadStaticAttribute(...)] | -| System.Range | [IsReadOnlyAttribute(...)] | -| System.Range.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Range.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.TrimEnd`1(System.ReadOnlyMemory,!0) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.TrimEnd`1(System.ReadOnlyMemory,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.TrimStart`1(System.ReadOnlyMemory,!0) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.TrimStart`1(System.ReadOnlyMemory,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.Trim`1(System.ReadOnlyMemory,!0) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.Trim`1(System.ReadOnlyMemory,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.AsMemory(System.String) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.AsMemory(System.String,System.Index) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.AsMemory(System.String,System.Int32) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.AsMemory(System.String,System.Int32,System.Int32) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.AsMemory(System.String,System.Range) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.Trim(System.ReadOnlyMemory) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.TrimEnd(System.ReadOnlyMemory) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory System.MemoryExtensions.TrimStart(System.ReadOnlyMemory) | [ExtensionAttribute(...)] | -| System.ReadOnlyMemory`1 | [IsReadOnlyAttribute(...)] | -| System.ReadOnlySpan | [ScopedRefAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimEnd`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimEnd`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimStart`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimStart`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.Trim`1(System.ReadOnlySpan,!0) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.Trim`1(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.Runtime.CompilerServices.RuntimeHelpers.CreateSpan`1(System.RuntimeFieldHandle) | [IntrinsicAttribute(...)] | -| System.ReadOnlySpan | [ScopedRefAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.g__TrimFallback\|233_0(System.ReadOnlySpan) | [CompilerGeneratedAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimUtf8(System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.Runtime.Loader.AssemblyLoadContext.g__ReadAllBytes\|92_0(System.IO.Stream) | [CompilerGeneratedAttribute(...)] | -| System.ReadOnlySpan | [ScopedRefAttribute(...)] | -| System.ReadOnlySpan System.IO.Enumeration.FileSystemEntry.get_Directory() | [CompilerGeneratedAttribute(...)] | -| System.ReadOnlySpan System.IO.Enumeration.FileSystemEntry.get_Directory() | [IsReadOnlyAttribute(...)] | -| System.ReadOnlySpan System.IO.Enumeration.FileSystemEntry.get_OriginalRootDirectory() | [CompilerGeneratedAttribute(...)] | -| System.ReadOnlySpan System.IO.Enumeration.FileSystemEntry.get_OriginalRootDirectory() | [IsReadOnlyAttribute(...)] | -| System.ReadOnlySpan System.IO.Enumeration.FileSystemEntry.get_RootDirectory() | [CompilerGeneratedAttribute(...)] | -| System.ReadOnlySpan System.IO.Enumeration.FileSystemEntry.get_RootDirectory() | [IsReadOnlyAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.g__TrimFallback\|219_0(System.ReadOnlySpan) | [CompilerGeneratedAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.AsSpan(System.String) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.AsSpan(System.String) | [IntrinsicAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.AsSpan(System.String,System.Index) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.AsSpan(System.String,System.Int32) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.AsSpan(System.String,System.Int32,System.Int32) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.AsSpan(System.String,System.Range) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.Trim(System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.Trim(System.ReadOnlySpan,System.Char) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.Trim(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimEnd(System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimEnd(System.ReadOnlySpan,System.Char) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimEnd(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimStart(System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimStart(System.ReadOnlySpan,System.Char) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.MemoryExtensions.TrimStart(System.ReadOnlySpan,System.ReadOnlySpan) | [ExtensionAttribute(...)] | -| System.ReadOnlySpan System.String.op_Implicit(System.String) | [IntrinsicAttribute(...)] | -| System.ReadOnlySpan`1 | [IsByRefLikeAttribute(...)] | -| System.ReadOnlySpan`1 | [IsReadOnlyAttribute(...)] | -| System.ReadOnlySpan`1 | [NonVersionableAttribute(...)] | -| System.ReadOnlySpan`1.Enumerator | [IsByRefLikeAttribute(...)] | -| System.Reflection.Assembly System.AssemblyLoadEventArgs.get_LoadedAssembly() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Assembly System.Reflection.ManifestResourceInfo.get_ReferencedAssembly() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Assembly System.ResolveEventArgs.get_RequestingAssembly() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.d__55.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Reflection.Assembly.<>O | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyAlgorithmIdAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyCompanyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyConfigurationAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyCopyrightAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyCultureAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyDefaultAliasAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyDelaySignAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyDescriptionAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyFileVersionAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyInformationalVersionAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyKeyFileAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyKeyNameAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyMetadataAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyMetadataAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyName System.Security.SecurityException.get_FailedAssemblyInfo() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyNameFlags | [FlagsAttribute(...)] | -| System.Reflection.AssemblyNameFormatter | [ExtensionAttribute(...)] | -| System.Reflection.AssemblyNameParser | [IsByRefLikeAttribute(...)] | -| System.Reflection.AssemblyNameParser.AssemblyNameParts | [IsReadOnlyAttribute(...)] | -| System.Reflection.AssemblyNameParser.AttributeKind | [ScopedRefAttribute(...)] | -| System.Reflection.AssemblyProductAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblySignatureKeyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblySignatureKeyAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyTitleAttribute.k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyTrademarkAttribute.<Trademark>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.AssemblyVersionAttribute.<Version>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Associates.Attributes | [FlagsAttribute(...)] | -| System.Reflection.BindingFlags | [FlagsAttribute(...)] | -| System.Reflection.CallingConventions | [FlagsAttribute(...)] | -| System.Reflection.ConstArray | [IsReadOnlyAttribute(...)] | -| System.Reflection.CustomAttributeCtorParameter | [IsReadOnlyAttribute(...)] | -| System.Reflection.CustomAttributeEncodedArgument | [IsReadOnlyAttribute(...)] | -| System.Reflection.CustomAttributeExtensions | [ExtensionAttribute(...)] | -| System.Reflection.CustomAttributeNamedArgument | [IsReadOnlyAttribute(...)] | -| System.Reflection.CustomAttributeNamedParameter | [IsReadOnlyAttribute(...)] | -| System.Reflection.CustomAttributeType | [IsReadOnlyAttribute(...)] | -| System.Reflection.CustomAttributeTypedArgument | [IsReadOnlyAttribute(...)] | -| System.Reflection.DefaultMemberAttribute.<MemberName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Emit.AssemblyBuilder.t_allowDynamicCode | [ThreadStaticAttribute(...)] | -| System.Reflection.Emit.AssemblyBuilderAccess | [FlagsAttribute(...)] | -| System.Reflection.Emit.DynamicResolver.SecurityControlFlags | [FlagsAttribute(...)] | -| System.Reflection.Emit.ExceptionHandler | [IsReadOnlyAttribute(...)] | -| System.Reflection.Emit.Label | [IsReadOnlyAttribute(...)] | -| System.Reflection.Emit.OpCode | [IsReadOnlyAttribute(...)] | -| System.Reflection.EventAttributes | [FlagsAttribute(...)] | -| System.Reflection.EventInfo System.Reflection.RuntimeReflectionExtensions.GetRuntimeEvent(System.Type,System.String) | [ExtensionAttribute(...)] | -| System.Reflection.ExceptionHandlingClauseOptions | [FlagsAttribute(...)] | -| System.Reflection.FieldAttributes | [FlagsAttribute(...)] | -| System.Reflection.FieldInfo System.Reflection.RuntimeReflectionExtensions.GetRuntimeField(System.Type,System.String) | [ExtensionAttribute(...)] | -| System.Reflection.FieldInfo[] System.Diagnostics.Tracing.ManifestBuilder.<CreateManifestString>g__GetEnumFields\|19_0(System.Type) | [CompilerGeneratedAttribute(...)] | -| System.Reflection.GenericParameterAttributes | [FlagsAttribute(...)] | -| System.Reflection.InterfaceMapping System.Reflection.RuntimeReflectionExtensions.GetRuntimeInterfaceMap(System.Reflection.TypeInfo,System.Type) | [ExtensionAttribute(...)] | -| System.Reflection.IntrospectionExtensions | [ExtensionAttribute(...)] | -| System.Reflection.InvocationFlags | [FlagsAttribute(...)] | -| System.Reflection.ManifestResourceInfo.<FileName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ManifestResourceInfo.<ReferencedAssembly>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ManifestResourceInfo.<ResourceLocation>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.MdSigCallingConvention | [FlagsAttribute(...)] | -| System.Reflection.MemberTypes | [FlagsAttribute(...)] | -| System.Reflection.Metadata.AssemblyExtensions | [ExtensionAttribute(...)] | -| System.Reflection.Metadata.MetadataUpdateHandlerAttribute.<HandlerType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.Metadata.MetadataUpdater.<IsSupported>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.MetadataEnumResult.<smallResult>e__FixedBuffer | [CompilerGeneratedAttribute(...)] | -| System.Reflection.MetadataEnumResult.<smallResult>e__FixedBuffer | [UnsafeValueTypeAttribute(...)] | -| System.Reflection.MetadataImport | [IsReadOnlyAttribute(...)] | -| System.Reflection.MethodAttributes | [FlagsAttribute(...)] | -| System.Reflection.MethodBase.InvokerArgFlags | [FlagsAttribute(...)] | -| System.Reflection.MethodBase.InvokerStrategy | [FlagsAttribute(...)] | -| System.Reflection.MethodBase.StackAllocatedArguments | [IsByRefLikeAttribute(...)] | -| System.Reflection.MethodBase.StackAllocatedArgumentsWithCopyBack | [IsByRefLikeAttribute(...)] | -| System.Reflection.MethodBase.StackAllocatedByRefs | [IsByRefLikeAttribute(...)] | -| System.Reflection.MethodInfo System.Reflection.RuntimeReflectionExtensions.GetMethodInfo(System.Delegate) | [ExtensionAttribute(...)] | -| System.Reflection.MethodInfo System.Reflection.RuntimeReflectionExtensions.GetRuntimeBaseDefinition(System.Reflection.MethodInfo) | [ExtensionAttribute(...)] | -| System.Reflection.MethodInfo System.Reflection.RuntimeReflectionExtensions.GetRuntimeMethod(System.Type,System.String,System.Type[]) | [ExtensionAttribute(...)] | -| System.Reflection.MethodInfo System.Reflection.TypeInfo.<GetDeclaredMethods>d__10.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Reflection.MethodInfo System.Security.SecurityException.get_Method() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.MethodInfo[] System.Diagnostics.StackTrace.<TryResolveStateMachineMethod>g__GetDeclaredMethods\|28_0(System.Type) | [CompilerGeneratedAttribute(...)] | -| System.Reflection.MethodInfo[] System.Reflection.TypeInfo.<GetDeclaredMethods>g__GetDeclaredOnlyMethods\|10_0(System.Type) | [CompilerGeneratedAttribute(...)] | -| System.Reflection.MethodSemanticsAttributes | [FlagsAttribute(...)] | -| System.Reflection.Module.<>c | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityInfo System.Reflection.NullabilityInfo.get_ElementType() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityInfo.<ElementType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityInfo.<GenericTypeArguments>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityInfo.<ReadState>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityInfo.<Type>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityInfo.<WriteState>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityInfoContext.<IsSupported>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityInfoContext.NotAnnotatedStatus | [FlagsAttribute(...)] | -| System.Reflection.NullabilityInfoContext.NullableAttributeStateParser | [IsReadOnlyAttribute(...)] | -| System.Reflection.NullabilityInfo[] System.Reflection.NullabilityInfo.get_GenericTypeArguments() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityState System.Reflection.NullabilityInfo.get_ReadState() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.NullabilityState System.Reflection.NullabilityInfo.get_WriteState() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ObfuscateAssemblyAttribute.<AssemblyIsPrivate>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ObfuscateAssemblyAttribute.<StripAfterObfuscation>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ObfuscationAttribute.<ApplyToMembers>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ObfuscationAttribute.<Exclude>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ObfuscationAttribute.<Feature>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ObfuscationAttribute.<StripAfterObfuscation>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.PInvokeAttributes | [FlagsAttribute(...)] | -| System.Reflection.ParameterAttributes | [FlagsAttribute(...)] | -| System.Reflection.ParameterModifier | [IsReadOnlyAttribute(...)] | -| System.Reflection.PortableExecutableKinds | [FlagsAttribute(...)] | -| System.Reflection.PropertyAttributes | [FlagsAttribute(...)] | -| System.Reflection.PropertyInfo System.Reflection.RuntimeReflectionExtensions.GetRuntimeProperty(System.Type,System.String) | [ExtensionAttribute(...)] | -| System.Reflection.ReflectionTypeLoadException.<LoaderExceptions>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ReflectionTypeLoadException.<Types>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Reflection.ResourceAttributes | [FlagsAttribute(...)] | -| System.Reflection.ResourceLocation | [FlagsAttribute(...)] | -| System.Reflection.ResourceLocation System.Reflection.ManifestResourceInfo.get_ResourceLocation() | [CompilerGeneratedAttribute(...)] | -| System.Reflection.RuntimeAssembly._ModuleResolve | [CompilerGeneratedAttribute(...)] | -| System.Reflection.RuntimeMethodInfo System.Reflection.RuntimePropertyInfo.GetGetMethod(System.Boolean) | [PreserveBaseOverridesAttribute(...)] | -| System.Reflection.RuntimeMethodInfo System.Reflection.RuntimePropertyInfo.GetSetMethod(System.Boolean) | [PreserveBaseOverridesAttribute(...)] | -| System.Reflection.RuntimeReflectionExtensions | [ExtensionAttribute(...)] | -| System.Reflection.SignatureTypeExtensions | [ExtensionAttribute(...)] | -| System.Reflection.TypeAttributes | [FlagsAttribute(...)] | -| System.Reflection.TypeInfo System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type) | [ExtensionAttribute(...)] | -| System.Reflection.TypeInfo System.Reflection.TypeInfo.<get_DeclaredNestedTypes>d__22.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Reflection.TypeInfo.<GetDeclaredMethods>d__10 | [CompilerGeneratedAttribute(...)] | -| System.Reflection.TypeInfo.<get_DeclaredNestedTypes>d__22 | [CompilerGeneratedAttribute(...)] | -| System.Reflection.TypeNameParser | [IsByRefLikeAttribute(...)] | -| System.ResolveEventArgs.<Name>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.ResolveEventArgs.<RequestingAssembly>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Resources.NeutralResourcesLanguageAttribute.<CultureName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Resources.NeutralResourcesLanguageAttribute.<Location>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Resources.ResourceFallbackManager.<GetEnumerator>d__5 | [CompilerGeneratedAttribute(...)] | -| System.Resources.ResourceLocator | [IsReadOnlyAttribute(...)] | -| System.Resources.ResourceLocator.<DataPosition>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Resources.ResourceLocator.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Resources.ResourceReader.<>c__DisplayClass7_0`1 | [CompilerGeneratedAttribute(...)] | -| System.Resources.ResourceReader.<AllowCustomResourceTypes>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Resources.SatelliteContractVersionAttribute.<Version>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Resources.UltimateResourceFallbackLocation System.Resources.NeutralResourcesLanguageAttribute.get_Location() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.AssemblyTargetedPatchBandAttribute.<TargetedPatchBand>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.AccessedThroughPropertyAttribute.<PropertyName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.<BuilderType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.<ParameterName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.CollectionBuilderAttribute.<BuilderType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.CollectionBuilderAttribute.<MethodName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.CompExactlyDependsOnAttribute.<IntrinsicsTypeUsedInHelperFunction>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.CompilationRelaxations | [FlagsAttribute(...)] | -| System.Runtime.CompilerServices.CompilationRelaxationsAttribute.<CompilationRelaxations>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.<FeatureName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.<IsOptional>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.ConditionalWeakTable`2.<>c | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredAsyncDisposable | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredAsyncDisposable System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait(System.IAsyncDisposable,System.Boolean) | [ExtensionAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<!0> System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait`1(System.Collections.Generic.IAsyncEnumerable<!0>,System.Boolean) | [ExtensionAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<!0> System.Threading.Tasks.TaskAsyncEnumerableExtensions.WithCancellation`1(System.Collections.Generic.IAsyncEnumerable<!0>,System.Threading.CancellationToken) | [ExtensionAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredTaskAwaitable | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ContractHelper.InternalContractFailed | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.DefaultDependencyAttribute.<LoadHint>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [IsByRefLikeAttribute(...)] | -| System.Runtime.CompilerServices.DependencyAttribute.<DependentAssembly>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.DependencyAttribute.<LoadHint>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.FixedBufferAttribute.<ElementType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.FixedBufferAttribute.<Length>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.InlineArrayAttribute.<Length>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.InternalsVisibleToAttribute.<AllInternalsVisible>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.InternalsVisibleToAttribute.<AssemblyName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.<Arguments>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.LoadHint System.Runtime.CompilerServices.DefaultDependencyAttribute.get_LoadHint() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.LoadHint System.Runtime.CompilerServices.DependencyAttribute.get_LoadHint() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.MetadataUpdateOriginalTypeAttribute.<OriginalType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.MethodImplAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.MethodImplOptions | [FlagsAttribute(...)] | -| System.Runtime.CompilerServices.MethodImplOptions System.Runtime.CompilerServices.MethodImplAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.MethodTable* System.Runtime.CompilerServices.RuntimeHelpers.GetMethodTable(System.Object) | [IntrinsicAttribute(...)] | -| System.Runtime.CompilerServices.ObjectHandleOnStack | [IsByRefLikeAttribute(...)] | -| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<!0>.StateMachineBox | [NotNullAttribute(...)] | -| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.t_tlsCache | [ThreadStaticAttribute(...)] | -| System.Runtime.CompilerServices.QCallAssembly | [IsByRefLikeAttribute(...)] | -| System.Runtime.CompilerServices.QCallModule | [IsByRefLikeAttribute(...)] | -| System.Runtime.CompilerServices.QCallTypeHandle | [IsByRefLikeAttribute(...)] | -| System.Runtime.CompilerServices.RawArrayData | [NonVersionableAttribute(...)] | -| System.Runtime.CompilerServices.RawData | [NonVersionableAttribute(...)] | -| System.Runtime.CompilerServices.RefSafetyRulesAttribute.<Version>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.ReferenceAssemblyAttribute.<Description>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.RuntimeCompatibilityAttribute.<WrapNonExceptionThrows>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.RuntimeFeature.<IsDynamicCodeSupported>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.RuntimeHelpers | [ExtensionAttribute(...)] | -| System.Runtime.CompilerServices.StackCrawlMarkHandle | [IsByRefLikeAttribute(...)] | -| System.Runtime.CompilerServices.StateMachineAttribute.<StateMachineType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.StringHandleOnStack | [IsByRefLikeAttribute(...)] | -| System.Runtime.CompilerServices.StrongBox<System.Boolean> System.Console.<get_IsErrorRedirected>g__EnsureInitialized\|38_0() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.StrongBox<System.Boolean> System.Console.<get_IsInputRedirected>g__EnsureInitialized\|34_0() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.StrongBox<System.Boolean> System.Console.<get_IsOutputRedirected>g__EnsureInitialized\|36_0() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.StrongBox`1.Value | [MaybeNullAttribute(...)] | -| System.Runtime.CompilerServices.SwitchExpressionException.<UnmatchedValue>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.TaskAwaiter | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.TaskAwaiter.<>c | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.TaskAwaiter`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.TypeForwardedFromAttribute.<AssemblyFullName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.TypeForwardedToAttribute.<Destination>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.UnsafeAccessorAttribute.<Kind>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.UnsafeAccessorAttribute.<Name>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.UnsafeAccessorKind System.Runtime.CompilerServices.UnsafeAccessorAttribute.get_Kind() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.ValueTaskAwaiter | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.ValueTaskAwaiter.<>c | [CompilerGeneratedAttribute(...)] | -| System.Runtime.CompilerServices.ValueTaskAwaiter`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.YieldAwaitable | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter | [IsReadOnlyAttribute(...)] | -| System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.<>c | [CompilerGeneratedAttribute(...)] | -| System.Runtime.ConstrainedExecution.Cer System.Runtime.ConstrainedExecution.ReliabilityContractAttribute.get_Cer() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.ConstrainedExecution.Consistency System.Runtime.ConstrainedExecution.ReliabilityContractAttribute.get_ConsistencyGuarantee() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.ConstrainedExecution.ReliabilityContractAttribute.<Cer>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.ConstrainedExecution.ReliabilityContractAttribute.<ConsistencyGuarantee>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.ControlledExecution.<>c | [CompilerGeneratedAttribute(...)] | -| System.Runtime.ControlledExecution.t_executing | [ThreadStaticAttribute(...)] | -| System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs.<Exception>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ArrayWithOffset | [IsReadOnlyAttribute(...)] | -| System.Runtime.InteropServices.BStrWrapper.<WrappedObject>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.BestFitMappingAttribute.<BestFitMapping>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.CLong | [IntrinsicAttribute(...)] | -| System.Runtime.InteropServices.CLong | [IsReadOnlyAttribute(...)] | -| System.Runtime.InteropServices.CULong | [IntrinsicAttribute(...)] | -| System.Runtime.InteropServices.CULong | [IsReadOnlyAttribute(...)] | -| System.Runtime.InteropServices.CallingConvention System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.get_CallingConvention() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.CharSet System.Runtime.InteropServices.DefaultCharSetAttribute.get_CharSet() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ClassInterfaceAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ClassInterfaceType System.Runtime.InteropServices.ClassInterfaceAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.CoClassAttribute.<CoClass>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ComDefaultInterfaceAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ComEventInterfaceAttribute.<EventProvider>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ComEventInterfaceAttribute.<SourceInterface>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ComInterfaceType System.Runtime.InteropServices.InterfaceTypeAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ComSourceInterfacesAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ComTypes.FUNCFLAGS | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.ComTypes.IDLFLAG | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.ComTypes.INVOKEKIND | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.ComTypes.LIBFLAGS | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.ComTypes.PARAMFLAG | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.ComTypes.TYPEFLAGS | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.ComTypes.VARFLAGS | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.ComVisibleAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.CreateComInterfaceFlags | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.CreateObjectFlags | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.CurrencyWrapper.<WrappedObject>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.DefaultCharSetAttribute.<CharSet>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute.<Paths>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.DefaultParameterValueAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.DispIdAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.DispatchWrapper.<WrappedObject>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.DllImportAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.DllImportSearchPath | [FlagsAttribute(...)] | -| System.Runtime.InteropServices.DllImportSearchPath System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute.get_Paths() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ErrorWrapper.<ErrorCode>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.FieldOffsetAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.GuidAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.HandleRef | [IsReadOnlyAttribute(...)] | -| System.Runtime.InteropServices.InterfaceTypeAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.LCIDConversionAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.LayoutKind System.Runtime.InteropServices.StructLayoutAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.LibraryImportAttribute.<EntryPoint>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.LibraryImportAttribute.<LibraryName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.LibraryImportAttribute.<SetLastError>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.LibraryImportAttribute.<StringMarshalling>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.LibraryImportAttribute.<StringMarshallingCustomType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshal.<>O | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.MarshalAsAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller.ManagedToUnmanagedIn | [IsByRefLikeAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2 | [ContiguousCollectionMarshallerAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2.ManagedToUnmanagedIn | [IsByRefLikeAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2.ManagedToUnmanagedIn.<BufferSize>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller.ManagedToUnmanagedIn | [IsByRefLikeAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.<ManagedType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.<MarshalMode>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.<MarshallerType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.MarshalMode System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.get_MarshalMode() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.<ConstantElementCount>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.<CountElementName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.<ElementIndirectionDepth>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.<NativeType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute.<NativeType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2 | [ContiguousCollectionMarshallerAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2.ManagedToUnmanagedIn | [IsByRefLikeAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2 | [ContiguousCollectionMarshallerAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.ManagedToUnmanagedIn | [IsByRefLikeAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.ManagedToUnmanagedIn.<BufferSize>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | [ContiguousCollectionMarshallerAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2.ManagedToUnmanagedIn | [IsByRefLikeAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2.ManagedToUnmanagedIn.<BufferSize>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller.ManagedToUnmanagedIn | [IsByRefLikeAttribute(...)] | -| System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromArray\|18_2>d`1 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromMemoryManager\|18_1>d`1 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromString\|18_0>d`1 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.NFloat | [IntrinsicAttribute(...)] | -| System.Runtime.InteropServices.NFloat | [IsReadOnlyAttribute(...)] | -| System.Runtime.InteropServices.NFloat | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.get_AllBitsSet() | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.get_Epsilon() | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.get_MaxValue() | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.get_MinValue() | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.get_NaN() | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.get_NegativeInfinity() | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.get_PositiveInfinity() | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Addition(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Decrement(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Division(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Explicit(System.Decimal) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Explicit(System.Double) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Explicit(System.Int128) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Explicit(System.UInt128) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.Byte) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.Char) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.Half) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.Int16) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.Int32) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.Int64) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.IntPtr) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.SByte) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.Single) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.UInt16) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.UInt32) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.UInt64) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Increment(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Modulus(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Multiply(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Subtraction(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_UnaryNegation(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_UnaryPlus(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform | [IsReadOnlyAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform System.Runtime.InteropServices.OSPlatform.get_FreeBSD() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform System.Runtime.InteropServices.OSPlatform.get_Linux() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform System.Runtime.InteropServices.OSPlatform.get_OSX() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform System.Runtime.InteropServices.OSPlatform.get_Windows() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform.<FreeBSD>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform.<Linux>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform.<Name>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform.<OSX>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.OSPlatform.<Windows>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.PosixSignal System.Runtime.InteropServices.PosixSignalContext.get_Signal() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.PosixSignal System.Runtime.InteropServices.PosixSignalRegistration.Token.get_Signal() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.PosixSignalContext.<Cancel>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.PosixSignalContext.<Signal>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.PosixSignalRegistration.<>O | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.PosixSignalRegistration.Token.<Handler>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.PosixSignalRegistration.Token.<SigNo>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.PosixSignalRegistration.Token.<Signal>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.ProgIdAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.StringMarshalling System.Runtime.InteropServices.LibraryImportAttribute.get_StringMarshalling() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.StructLayoutAttribute.<Value>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.TypeIdentifierAttribute.<Identifier>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.TypeIdentifierAttribute.<Scope>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.UnknownWrapper.<WrappedObject>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.<CallingConvention>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.UnmanagedType System.Runtime.InteropServices.MarshalAsAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.InteropServices.VariantWrapper.<WrappedObject>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Intrinsics.Vector64 | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Abs`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Add`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.AndNot`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.BitwiseAnd`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.BitwiseOr`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.ConditionalSelect`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.CreateScalar`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Create`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Divide`1(System.Runtime.Intrinsics.Vector64<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Divide`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Equals`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.GreaterThanOrEqual`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.GreaterThan`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LessThanOrEqual`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LessThan`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadAlignedNonTemporal`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadAligned`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadUnsafe`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Load`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Max`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Min`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Multiply`1(!0,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Multiply`1(System.Runtime.Intrinsics.Vector64<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Multiply`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Negate`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.OnesComplement`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Sqrt`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Subtract`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.WithElement`1(System.Runtime.Intrinsics.Vector64<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.WithElement`1(System.Runtime.Intrinsics.Vector64<!0>,System.Int32,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Xor`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.get_AllBitsSet() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.get_One() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.get_Zero() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_Addition(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_BitwiseAnd(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_BitwiseOr(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_Division(System.Runtime.Intrinsics.Vector64<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_Division(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_ExclusiveOr(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_LeftShift(System.Runtime.Intrinsics.Vector64<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_Multiply(!0,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_Multiply(System.Runtime.Intrinsics.Vector64<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_Multiply(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_OnesComplement(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_RightShift(System.Runtime.Intrinsics.Vector64<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_Subtraction(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_UnaryNegation(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_UnaryPlus(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.op_UnsignedRightShift(System.Runtime.Intrinsics.Vector64<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector128.GetLower`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector128.GetLower`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector128.GetUpper`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector128.GetUpper`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!1> System.Runtime.Intrinsics.Vector64.As`2(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<!1> System.Runtime.Intrinsics.Vector64.As`2(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.AsByte`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.AsByte`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.Create(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.Create(System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.CreateScalar(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Runtime.Intrinsics.Vector64<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.Byte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.Byte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.Byte>,System.Runtime.Intrinsics.Vector64<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.AsDouble`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.AsDouble`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.Ceiling(System.Runtime.Intrinsics.Vector64<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.ConvertToDouble(System.Runtime.Intrinsics.Vector64<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.ConvertToDouble(System.Runtime.Intrinsics.Vector64<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.Create(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.CreateScalar(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.Floor(System.Runtime.Intrinsics.Vector64<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.AsInt16`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.AsInt16`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.Create(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.Create(System.Int16,System.Int16,System.Int16,System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.CreateScalar(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.Int32>,System.Runtime.Intrinsics.Vector64<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.Int16>,System.Runtime.Intrinsics.Vector64<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.AsInt32`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.AsInt32`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.ConvertToInt32(System.Runtime.Intrinsics.Vector64<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.Create(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.Create(System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.CreateScalar(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.Int64>,System.Runtime.Intrinsics.Vector64<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.Int32>,System.Runtime.Intrinsics.Vector64<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int32> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.AsInt64`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.AsInt64`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.ConvertToInt64(System.Runtime.Intrinsics.Vector64<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.Create(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.CreateScalar(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Int64> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.IntPtr> System.Runtime.Intrinsics.Vector64.AsNInt`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.IntPtr> System.Runtime.Intrinsics.Vector64.AsNInt`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.IntPtr> System.Runtime.Intrinsics.Vector64.Create(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.IntPtr> System.Runtime.Intrinsics.Vector64.CreateScalar(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.IntPtr> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.IntPtr> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.IntPtr> System.Runtime.Intrinsics.Vector64.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.IntPtr> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.AsSByte`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.AsSByte`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.Create(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.Create(System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.CreateScalar(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.Int16>,System.Runtime.Intrinsics.Vector64<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Runtime.Intrinsics.Vector64<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.AsSingle`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.AsSingle`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.Ceiling(System.Runtime.Intrinsics.Vector64<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.ConvertToSingle(System.Runtime.Intrinsics.Vector64<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.ConvertToSingle(System.Runtime.Intrinsics.Vector64<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.Create(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.Create(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.CreateScalar(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.Floor(System.Runtime.Intrinsics.Vector64<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.Double>,System.Runtime.Intrinsics.Vector64<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.Single>,System.Runtime.Intrinsics.Vector64<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.AsUInt16`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.AsUInt16`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.Create(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.Create(System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.CreateScalar(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Runtime.Intrinsics.Vector64<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Runtime.Intrinsics.Vector64<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.AsUInt32`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.AsUInt32`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.ConvertToUInt32(System.Runtime.Intrinsics.Vector64<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.Create(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.Create(System.UInt32,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.CreateScalar(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.UInt64>,System.Runtime.Intrinsics.Vector64<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Runtime.Intrinsics.Vector64<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.AsUInt64`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.AsUInt64`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.ConvertToUInt64(System.Runtime.Intrinsics.Vector64<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.Create(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.CreateScalar(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.UInt64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.UInt64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.AsNUInt`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.AsNUInt`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.Create(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.CreateScalar(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.UIntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.UIntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64DebugView`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector64`1 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector64`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector128 | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector64.ToVector128Unsafe`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector64.ToVector128Unsafe`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector64.ToVector128`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector64.ToVector128`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Abs`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Add`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.AndNot`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.AsVector128`1(System.Numerics.Vector<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.AsVector128`1(System.Numerics.Vector<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.BitwiseAnd`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.BitwiseOr`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.ConditionalSelect`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.CreateScalar`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Create`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Divide`1(System.Runtime.Intrinsics.Vector128<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Divide`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Equals`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.GreaterThanOrEqual`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.GreaterThan`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LessThanOrEqual`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LessThan`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadAlignedNonTemporal`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadAligned`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadUnsafe`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Load`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Max`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Min`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Multiply`1(!0,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Multiply`1(System.Runtime.Intrinsics.Vector128<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Multiply`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Negate`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.OnesComplement`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Sqrt`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Subtract`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithElement`1(System.Runtime.Intrinsics.Vector128<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithElement`1(System.Runtime.Intrinsics.Vector128<!0>,System.Int32,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithLower`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithLower`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithUpper`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithUpper`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Xor`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.get_AllBitsSet() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.get_One() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.get_Zero() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_Addition(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_BitwiseAnd(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_BitwiseOr(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_Division(System.Runtime.Intrinsics.Vector128<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_Division(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_ExclusiveOr(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_LeftShift(System.Runtime.Intrinsics.Vector128<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_Multiply(!0,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_Multiply(System.Runtime.Intrinsics.Vector128<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_Multiply(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_OnesComplement(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_RightShift(System.Runtime.Intrinsics.Vector128<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_Subtraction(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_UnaryNegation(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_UnaryPlus(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.op_UnsignedRightShift(System.Runtime.Intrinsics.Vector128<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector256.GetLower`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector256.GetLower`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector256.GetUpper`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector256.GetUpper`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!1> System.Runtime.Intrinsics.Vector128.As`2(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<!1> System.Runtime.Intrinsics.Vector128.As`2(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.AsByte`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.AsByte`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.Create(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.Create(System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.CreateScalar(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.AsDouble`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.AsDouble`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.Ceiling(System.Runtime.Intrinsics.Vector128<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.ConvertToDouble(System.Runtime.Intrinsics.Vector128<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.ConvertToDouble(System.Runtime.Intrinsics.Vector128<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.Create(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.Create(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.CreateScalar(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.Floor(System.Runtime.Intrinsics.Vector128<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.Double>,System.Runtime.Intrinsics.Vector128<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.AsInt16`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.AsInt16`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.Create(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.Create(System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.CreateScalar(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.Int32>,System.Runtime.Intrinsics.Vector128<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.AsInt32`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.AsInt32`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.ConvertToInt32(System.Runtime.Intrinsics.Vector128<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.Create(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.Create(System.Int32,System.Int32,System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.CreateScalar(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.Int64>,System.Runtime.Intrinsics.Vector128<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.Int32>,System.Runtime.Intrinsics.Vector128<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int32> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.AsInt64`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.AsInt64`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.ConvertToInt64(System.Runtime.Intrinsics.Vector128<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.Create(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.Create(System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.CreateScalar(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.Int64>,System.Runtime.Intrinsics.Vector128<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Int64> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.IntPtr> System.Runtime.Intrinsics.Vector128.AsNInt`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.IntPtr> System.Runtime.Intrinsics.Vector128.AsNInt`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.IntPtr> System.Runtime.Intrinsics.Vector128.Create(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.IntPtr> System.Runtime.Intrinsics.Vector128.CreateScalar(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.IntPtr> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.IntPtr> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.IntPtr> System.Runtime.Intrinsics.Vector128.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.IntPtr> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.AsSByte`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.AsSByte`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Create(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Create(System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.CreateScalar(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Runtime.Intrinsics.Vector128<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Numerics.Matrix4x4.Impl.<Invert>g__Permute\|64_1(System.Runtime.Intrinsics.Vector128<System.Single>,System.Byte) | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.<ConvertToSingle>g__SoftwareFallback\|40_0(System.Runtime.Intrinsics.Vector128<System.UInt32>) | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsSingle`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsSingle`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Plane) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Plane) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Quaternion) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Vector2) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Vector3) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Vector4) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.AsVector128(System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.Ceiling(System.Runtime.Intrinsics.Vector128<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.ConvertToSingle(System.Runtime.Intrinsics.Vector128<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.ConvertToSingle(System.Runtime.Intrinsics.Vector128<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.Create(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.Create(System.Single,System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.CreateScalar(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.Floor(System.Runtime.Intrinsics.Vector128<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.Double>,System.Runtime.Intrinsics.Vector128<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.Single>,System.Runtime.Intrinsics.Vector128<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.AsUInt16`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.AsUInt16`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Create(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Create(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.CreateScalar(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Runtime.Intrinsics.Vector128<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.AsUInt32`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.AsUInt32`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.ConvertToUInt32(System.Runtime.Intrinsics.Vector128<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Create(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Create(System.UInt32,System.UInt32,System.UInt32,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.CreateScalar(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Runtime.Intrinsics.Vector128<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Runtime.Intrinsics.Vector128<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.AsUInt64`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.AsUInt64`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.ConvertToUInt64(System.Runtime.Intrinsics.Vector128<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.Create(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.Create(System.UInt64,System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.CreateScalar(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Runtime.Intrinsics.Vector128<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.AsNUInt`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.AsNUInt`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.Create(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.CreateScalar(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.UIntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.UIntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128DebugView`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector128`1 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector128`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector256 | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector128.ToVector256Unsafe`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector128.ToVector256Unsafe`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector128.ToVector256`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector128.ToVector256`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Abs`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Add`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.AndNot`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.AsVector256`1(System.Numerics.Vector<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.AsVector256`1(System.Numerics.Vector<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.BitwiseAnd`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.BitwiseOr`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.ConditionalSelect`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.CreateScalar`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Create`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Divide`1(System.Runtime.Intrinsics.Vector256<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Divide`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Equals`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.GreaterThanOrEqual`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.GreaterThan`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LessThanOrEqual`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LessThan`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadAlignedNonTemporal`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadAligned`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadUnsafe`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Load`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Max`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Min`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Multiply`1(!0,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Multiply`1(System.Runtime.Intrinsics.Vector256<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Multiply`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Negate`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.OnesComplement`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Sqrt`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Subtract`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithElement`1(System.Runtime.Intrinsics.Vector256<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithElement`1(System.Runtime.Intrinsics.Vector256<!0>,System.Int32,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithLower`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithLower`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithUpper`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithUpper`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Xor`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.get_AllBitsSet() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.get_One() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.get_Zero() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_Addition(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_BitwiseAnd(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_BitwiseOr(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_Division(System.Runtime.Intrinsics.Vector256<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_Division(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_ExclusiveOr(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_LeftShift(System.Runtime.Intrinsics.Vector256<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_Multiply(!0,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_Multiply(System.Runtime.Intrinsics.Vector256<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_Multiply(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_OnesComplement(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_RightShift(System.Runtime.Intrinsics.Vector256<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_Subtraction(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_UnaryNegation(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_UnaryPlus(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.op_UnsignedRightShift(System.Runtime.Intrinsics.Vector256<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector512.GetLower`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector512.GetLower`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector512.GetUpper`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector512.GetUpper`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!1> System.Runtime.Intrinsics.Vector256.As`2(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<!1> System.Runtime.Intrinsics.Vector256.As`2(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.AsByte`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.AsByte`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.Create(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.Create(System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.CreateScalar(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Runtime.Intrinsics.Vector256<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.Byte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.Byte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.Byte>,System.Runtime.Intrinsics.Vector256<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.AsDouble`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.AsDouble`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.Ceiling(System.Runtime.Intrinsics.Vector256<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.ConvertToDouble(System.Runtime.Intrinsics.Vector256<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.ConvertToDouble(System.Runtime.Intrinsics.Vector256<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.Create(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.Create(System.Double,System.Double,System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.CreateScalar(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.Floor(System.Runtime.Intrinsics.Vector256<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.Double>,System.Runtime.Intrinsics.Vector256<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.AsInt16`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.AsInt16`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.Create(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.Create(System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.CreateScalar(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.Int32>,System.Runtime.Intrinsics.Vector256<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.Int16>,System.Runtime.Intrinsics.Vector256<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.AsInt32`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.AsInt32`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.ConvertToInt32(System.Runtime.Intrinsics.Vector256<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.Create(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.Create(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.CreateScalar(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.Int64>,System.Runtime.Intrinsics.Vector256<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.Int32>,System.Runtime.Intrinsics.Vector256<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int32> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.AsInt64`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.AsInt64`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.ConvertToInt64(System.Runtime.Intrinsics.Vector256<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.Create(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.Create(System.Int64,System.Int64,System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.CreateScalar(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.Int64>,System.Runtime.Intrinsics.Vector256<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Int64> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.IntPtr> System.Runtime.Intrinsics.Vector256.AsNInt`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.IntPtr> System.Runtime.Intrinsics.Vector256.AsNInt`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.IntPtr> System.Runtime.Intrinsics.Vector256.Create(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.IntPtr> System.Runtime.Intrinsics.Vector256.CreateScalar(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.IntPtr> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.IntPtr> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.IntPtr> System.Runtime.Intrinsics.Vector256.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.IntPtr> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.AsSByte`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.AsSByte`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Create(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Create(System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.CreateScalar(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.Int16>,System.Runtime.Intrinsics.Vector256<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Runtime.Intrinsics.Vector256<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.AsSingle`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.AsSingle`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.Ceiling(System.Runtime.Intrinsics.Vector256<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.ConvertToSingle(System.Runtime.Intrinsics.Vector256<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.ConvertToSingle(System.Runtime.Intrinsics.Vector256<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.Create(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.Create(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.CreateScalar(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.Floor(System.Runtime.Intrinsics.Vector256<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.Double>,System.Runtime.Intrinsics.Vector256<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.Single>,System.Runtime.Intrinsics.Vector256<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.AsUInt16`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.AsUInt16`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Create(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Create(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.CreateScalar(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Runtime.Intrinsics.Vector256<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Runtime.Intrinsics.Vector256<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.AsUInt32`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.AsUInt32`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.ConvertToUInt32(System.Runtime.Intrinsics.Vector256<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Create(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Create(System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.CreateScalar(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Runtime.Intrinsics.Vector256<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Runtime.Intrinsics.Vector256<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.AsUInt64`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.AsUInt64`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.ConvertToUInt64(System.Runtime.Intrinsics.Vector256<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.Create(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.Create(System.UInt64,System.UInt64,System.UInt64,System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.CreateScalar(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Runtime.Intrinsics.Vector256<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.AsNUInt`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.AsNUInt`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.Create(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.CreateScalar(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.UIntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.UIntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256DebugView`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector256`1 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector256`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector512 | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector256.ToVector512Unsafe`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector256.ToVector512Unsafe`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector256.ToVector512`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector256.ToVector512`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Abs`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Add`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.AndNot`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.AsVector512`1(System.Numerics.Vector<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.AsVector512`1(System.Numerics.Vector<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.BitwiseAnd`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.BitwiseOr`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.ConditionalSelect`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Create`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Divide`1(System.Runtime.Intrinsics.Vector512<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Divide`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Equals`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.GreaterThanOrEqual`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.GreaterThan`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LessThanOrEqual`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LessThan`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadAlignedNonTemporal`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadAligned`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadUnsafe`1(!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadUnsafe`1(!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Load`1(!0*) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Max`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Min`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Multiply`1(!0,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Multiply`1(System.Runtime.Intrinsics.Vector512<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Multiply`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Negate`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.OnesComplement`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Sqrt`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Subtract`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithElement`1(System.Runtime.Intrinsics.Vector512<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithElement`1(System.Runtime.Intrinsics.Vector512<!0>,System.Int32,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithLower`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithLower`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithUpper`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithUpper`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Xor`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.get_AllBitsSet() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.get_One() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.get_Zero() | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_Addition(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_BitwiseAnd(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_BitwiseOr(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_Division(System.Runtime.Intrinsics.Vector512<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_Division(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_ExclusiveOr(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_LeftShift(System.Runtime.Intrinsics.Vector512<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_Multiply(!0,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_Multiply(System.Runtime.Intrinsics.Vector512<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_Multiply(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_OnesComplement(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_RightShift(System.Runtime.Intrinsics.Vector512<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_Subtraction(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_UnaryNegation(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_UnaryPlus(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.op_UnsignedRightShift(System.Runtime.Intrinsics.Vector512<!0>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!1> System.Runtime.Intrinsics.Vector512.As`2(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<!1> System.Runtime.Intrinsics.Vector512.As`2(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.AsByte`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.AsByte`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.Create(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.Create(System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.Byte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Runtime.Intrinsics.Vector512<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.Byte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.Byte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.Byte>,System.Runtime.Intrinsics.Vector512<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.AsDouble`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.AsDouble`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.Ceiling(System.Runtime.Intrinsics.Vector512<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.ConvertToDouble(System.Runtime.Intrinsics.Vector512<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.ConvertToDouble(System.Runtime.Intrinsics.Vector512<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.Create(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.Create(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.Double) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.Floor(System.Runtime.Intrinsics.Vector512<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.Double>,System.Runtime.Intrinsics.Vector512<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.AsInt16`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.AsInt16`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.Create(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.Create(System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16,System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.Int16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.Int32>,System.Runtime.Intrinsics.Vector512<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector512<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.Int16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.Int16>,System.Runtime.Intrinsics.Vector512<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.AsInt32`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.AsInt32`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.ConvertToInt32(System.Runtime.Intrinsics.Vector512<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.Create(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.Create(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.Int64>,System.Runtime.Intrinsics.Vector512<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector512<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.Int32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.Int32>,System.Runtime.Intrinsics.Vector512<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int32> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.AsInt64`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.AsInt64`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.ConvertToInt64(System.Runtime.Intrinsics.Vector512<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.Create(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.Create(System.Int64,System.Int64,System.Int64,System.Int64,System.Int64,System.Int64,System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.Int64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector512<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.Int64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.Int64>,System.Runtime.Intrinsics.Vector512<System.Int64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Int64> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.IntPtr> System.Runtime.Intrinsics.Vector512.AsNInt`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.IntPtr> System.Runtime.Intrinsics.Vector512.AsNInt`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.IntPtr> System.Runtime.Intrinsics.Vector512.Create(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.IntPtr> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.IntPtr> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.IntPtr> System.Runtime.Intrinsics.Vector512.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector512<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.IntPtr> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.IntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.AsSByte`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.AsSByte`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Create(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Create(System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.SByte) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.Int16>,System.Runtime.Intrinsics.Vector512<System.Int16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector512<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.SByte>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.SByte>,System.Runtime.Intrinsics.Vector512<System.SByte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.AsSingle`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.AsSingle`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.Ceiling(System.Runtime.Intrinsics.Vector512<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.ConvertToSingle(System.Runtime.Intrinsics.Vector512<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.ConvertToSingle(System.Runtime.Intrinsics.Vector512<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.Create(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.Create(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.Single) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.Floor(System.Runtime.Intrinsics.Vector512<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.Double>,System.Runtime.Intrinsics.Vector512<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.Single>,System.Runtime.Intrinsics.Vector512<System.Int32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.AsUInt16`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.AsUInt16`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Create(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Create(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.UInt16) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Runtime.Intrinsics.Vector512<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Runtime.Intrinsics.Vector512<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.Byte>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.AsUInt32`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.AsUInt32`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.ConvertToUInt32(System.Runtime.Intrinsics.Vector512<System.Single>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Create(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Create(System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Runtime.Intrinsics.Vector512<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Runtime.Intrinsics.Vector512<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.UInt16>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.AsUInt64`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.AsUInt64`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.ConvertToUInt64(System.Runtime.Intrinsics.Vector512<System.Double>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.Create(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.Create(System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.UInt64) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Runtime.Intrinsics.Vector512<System.UInt64>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.UInt32>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.AsNUInt`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.AsNUInt`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.Create(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.UIntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.UIntPtr>,System.Int32) | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512DebugView`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.Vector512`1 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.Vector512`1 | [IsReadOnlyAttribute(...)] | -| System.Runtime.Intrinsics.X86.Aes | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Aes.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx2 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx2.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512BW | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512BW.VL | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512BW.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512CD | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512CD.VL | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512CD.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512DQ | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512DQ.VL | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512DQ.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512F | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512F.VL | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512F.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512Vbmi | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512Vbmi.VL | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx512Vbmi.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Avx.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.AvxVnni | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.AvxVnni.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Bmi1 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Bmi1.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Bmi2 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Bmi2.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.FloatComparisonMode | [ConstantExpectedAttribute(...)] | -| System.Runtime.Intrinsics.X86.Fma | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Fma.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Lzcnt | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Lzcnt.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Pclmulqdq | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Pclmulqdq.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Popcnt | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Popcnt.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse2 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse2.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse3 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse3.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse41 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse41.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse42 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse42.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Sse.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Ssse3 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.Ssse3.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.X86Base | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.X86Base.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.X86Serialize | [IntrinsicAttribute(...)] | -| System.Runtime.Intrinsics.X86.X86Serialize.X64 | [IntrinsicAttribute(...)] | -| System.Runtime.Loader.AssemblyDependencyResolver.<>c__DisplayClass6_0 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext System.Runtime.Loader.AssemblyLoadContext.<get_All>d__85.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext.<get_All>d__85 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext.<get_Assemblies>d__55 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext.AssemblyLoad | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext.AssemblyResolve | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext.ResourceResolve | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext.TypeResolve | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext._resolving | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext._resolvingUnmanagedDll | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.AssemblyLoadContext._unloading | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Loader.LibraryNameVariation System.Runtime.Loader.LibraryNameVariation.<DetermineLibraryNameVariations>d__5.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Runtime.Loader.LibraryNameVariation.<DetermineLibraryNameVariations>d__5 | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Serialization.DeserializationToken | [IsReadOnlyAttribute(...)] | -| System.Runtime.Serialization.DeserializationTracker.<DeserializationInProgress>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Serialization.SafeSerializationEventArgs.<StreamingContext>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Serialization.SerializationEntry | [IsReadOnlyAttribute(...)] | -| System.Runtime.Serialization.SerializationInfo.<AsyncDeserializationInProgress>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Serialization.SerializationInfo.<IsAssemblyNameSetExplicit>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Serialization.SerializationInfo.<IsFullTypeNameSetExplicit>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Serialization.SerializationInfo.t_deserializationTracker | [ThreadStaticAttribute(...)] | -| System.Runtime.Serialization.StreamingContext | [IsReadOnlyAttribute(...)] | -| System.Runtime.Serialization.StreamingContext System.Runtime.Serialization.SafeSerializationEventArgs.get_StreamingContext() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Serialization.StreamingContextStates | [FlagsAttribute(...)] | -| System.Runtime.TargetedPatchingOptOutAttribute.<Reason>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ComponentGuaranteesAttribute.<Guarantees>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ComponentGuaranteesOptions | [FlagsAttribute(...)] | -| System.Runtime.Versioning.ComponentGuaranteesOptions System.Runtime.Versioning.ComponentGuaranteesAttribute.get_Guarantees() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.OSPlatformAttribute.<PlatformName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ObsoletedOSPlatformAttribute.<Message>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ObsoletedOSPlatformAttribute.<Url>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.<Message>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.<Url>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ResourceConsumptionAttribute.<ConsumptionScope>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ResourceConsumptionAttribute.<ResourceScope>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ResourceExposureAttribute.<ResourceExposureLevel>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ResourceScope | [FlagsAttribute(...)] | -| System.Runtime.Versioning.ResourceScope System.Runtime.Versioning.ResourceConsumptionAttribute.get_ConsumptionScope() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ResourceScope System.Runtime.Versioning.ResourceConsumptionAttribute.get_ResourceScope() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.ResourceScope System.Runtime.Versioning.ResourceExposureAttribute.get_ResourceExposureLevel() | [CompilerGeneratedAttribute(...)] | -| System.Runtime.Versioning.SxSRequirements | [FlagsAttribute(...)] | -| System.Runtime.Versioning.UnsupportedOSPlatformAttribute.<Message>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.RuntimeArgumentHandle | [IsByRefLikeAttribute(...)] | -| System.RuntimeFieldHandle | [NonVersionableAttribute(...)] | -| System.RuntimeMethodHandle | [NonVersionableAttribute(...)] | -| System.RuntimeType System.Runtime.InteropServices.DynamicInterfaceCastableHelpers.GetInterfaceImplementation(System.Runtime.InteropServices.IDynamicInterfaceCastable,System.RuntimeType) | [StackTraceHiddenAttribute(...)] | -| System.RuntimeType System.RuntimeType.RuntimeTypeCache.<GetGenericTypeDefinition>g__CacheGenericDefinition\|50_0() | [CompilerGeneratedAttribute(...)] | -| System.RuntimeType.RuntimeTypeCache.Filter | [IsReadOnlyAttribute(...)] | -| System.RuntimeTypeHandle | [NonVersionableAttribute(...)] | -| System.RuntimeTypeHandle System.RuntimeType.get_TypeHandle() | [IntrinsicAttribute(...)] | -| System.RuntimeTypeHandle System.Type.get_TypeHandle() | [IntrinsicAttribute(...)] | -| System.SByte System.Math.Max(System.SByte,System.SByte) | [NonVersionableAttribute(...)] | -| System.SByte System.Math.Min(System.SByte,System.SByte) | [NonVersionableAttribute(...)] | -| System.SByte System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.SByte System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.SByte System.Threading.Volatile.Read(System.SByte) | [IntrinsicAttribute(...)] | -| System.SByte System.Threading.Volatile.Read(System.SByte) | [NonVersionableAttribute(...)] | -| System.Security.AllowPartiallyTrustedCallersAttribute.<PartialTrustVisibilityLevel>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.PartialTrustVisibilityLevel System.Security.AllowPartiallyTrustedCallersAttribute.get_PartialTrustVisibilityLevel() | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityAction System.Security.Permissions.SecurityAttribute.get_Action() | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityAttribute.<Action>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityAttribute.<Unrestricted>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<Assertion>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<BindingRedirects>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<ControlAppDomain>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<ControlDomainPolicy>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<ControlEvidence>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<ControlPolicy>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<ControlPrincipal>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<ControlThread>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<Execution>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<Flags>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<Infrastructure>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<RemotingConfiguration>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<SerializationFormatter>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<SkipVerification>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionAttribute.<UnmanagedCode>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.Permissions.SecurityPermissionFlag | [FlagsAttribute(...)] | -| System.Security.Permissions.SecurityPermissionFlag System.Security.Permissions.SecurityPermissionAttribute.get_Flags() | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityCriticalAttribute.<Scope>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityCriticalScope System.Security.SecurityCriticalAttribute.get_Scope() | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityElement.<>c | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<Demanded>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<DenySetInstance>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<FailedAssemblyInfo>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<GrantedSet>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<Method>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<PermissionState>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<PermissionType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<PermitOnlySetInstance>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<RefusedSet>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityException.<Url>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityRuleSet System.Security.SecurityRulesAttribute.get_RuleSet() | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityRulesAttribute.<RuleSet>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Security.SecurityRulesAttribute.<SkipVerificationInFullTrust>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Signature System.Reflection.Emit.DynamicMethod.<get_Signature>g__LazyCreateSignature\|23_0() | [CompilerGeneratedAttribute(...)] | -| System.Signature System.Reflection.RuntimeConstructorInfo.<get_Signature>g__LazyCreateSignature\|21_0() | [CompilerGeneratedAttribute(...)] | -| System.Signature System.Reflection.RuntimeMethodInfo.<get_Signature>g__LazyCreateSignature\|25_0() | [CompilerGeneratedAttribute(...)] | -| System.Single System.BitConverter.Int32BitsToSingle(System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.BitConverter.UInt32BitsToSingle(System.UInt32) | [IntrinsicAttribute(...)] | -| System.Single System.Diagnostics.Tracing.CounterPayload.get_IntervalSec() | [CompilerGeneratedAttribute(...)] | -| System.Single System.Diagnostics.Tracing.IncrementingCounterPayload.get_IntervalSec() | [CompilerGeneratedAttribute(...)] | -| System.Single System.Math.Abs(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Math.Max(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Math.Min(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.<CopySign>g__SoftwareFallback\|42_0(System.Single,System.Single) | [CompilerGeneratedAttribute(...)] | -| System.Single System.MathF.Abs(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Acos(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Acosh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Asin(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Asinh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Atan2(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Atan(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Atanh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Cbrt(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Ceiling(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Cos(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Cosh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Exp(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Floor(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.FusedMultiplyAdd(System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Log2(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Log10(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Log(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Max(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.MaxMagnitude(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Min(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.MinMagnitude(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Pow(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Round(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Sin(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Sinh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Sqrt(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Tan(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Tanh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.MathF.Truncate(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Matrix3x2.GetDeterminant() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Matrix3x2.Impl.GetDeterminant() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Matrix3x2.Impl.get_Item(System.Int32,System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Matrix3x2.get_Item(System.Int32,System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Matrix4x4.GetDeterminant() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Matrix4x4.Impl.GetDeterminant() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Matrix4x4.Impl.get_Item(System.Int32,System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Matrix4x4.get_Item(System.Int32,System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Plane.Dot(System.Numerics.Plane,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Quaternion.Dot(System.Numerics.Quaternion,System.Numerics.Quaternion) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Quaternion.Length() | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Quaternion.Length() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Quaternion.LengthSquared() | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Quaternion.LengthSquared() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Quaternion.get_Item(System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Quaternion.get_Item(System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector2.Distance(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector2.DistanceSquared(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector2.Dot(System.Numerics.Vector2,System.Numerics.Vector2) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector2.Length() | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector2.Length() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector2.LengthSquared() | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector2.LengthSquared() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector2.get_Item(System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector2.get_Item(System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector3.Distance(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector3.DistanceSquared(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector3.Dot(System.Numerics.Vector3,System.Numerics.Vector3) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector3.Length() | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector3.Length() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector3.LengthSquared() | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector3.LengthSquared() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector3.get_Item(System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector3.get_Item(System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector4.Distance(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector4.DistanceSquared(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector4.Dot(System.Numerics.Vector4,System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector4.Length() | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector4.Length() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector4.LengthSquared() | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector4.LengthSquared() | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector4.get_Item(System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector4.get_Item(System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Single System.Numerics.Vector.GetElement(System.Numerics.Quaternion,System.Int32) | [ExtensionAttribute(...)] | -| System.Single System.Numerics.Vector.GetElement(System.Numerics.Quaternion,System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector.GetElement(System.Numerics.Vector2,System.Int32) | [ExtensionAttribute(...)] | -| System.Single System.Numerics.Vector.GetElement(System.Numerics.Vector2,System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector.GetElement(System.Numerics.Vector3,System.Int32) | [ExtensionAttribute(...)] | -| System.Single System.Numerics.Vector.GetElement(System.Numerics.Vector3,System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector.GetElement(System.Numerics.Vector4,System.Int32) | [ExtensionAttribute(...)] | -| System.Single System.Numerics.Vector.GetElement(System.Numerics.Vector4,System.Int32) | [IntrinsicAttribute(...)] | -| System.Single System.Numerics.Vector.GetElementUnsafe(System.Numerics.Quaternion,System.Int32) | [ExtensionAttribute(...)] | -| System.Single System.Numerics.Vector.GetElementUnsafe(System.Numerics.Vector2,System.Int32) | [ExtensionAttribute(...)] | -| System.Single System.Numerics.Vector.GetElementUnsafe(System.Numerics.Vector3,System.Int32) | [ExtensionAttribute(...)] | -| System.Single System.Numerics.Vector.GetElementUnsafe(System.Numerics.Vector4,System.Int32) | [ExtensionAttribute(...)] | -| System.Single System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.Single System.Single.<RootN>g__NegativeN\|219_1(System.Single,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Single System.Single.<RootN>g__PositiveN\|219_0(System.Single,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Single System.Single.Abs(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Acos(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Acosh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Asin(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Asinh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Atan2(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Atan(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Atanh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Cbrt(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Ceiling(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Cos(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Cosh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Exp(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Floor(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.FusedMultiplyAdd(System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Log2(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Log10(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Log(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Max(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.MaxMagnitude(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.MaxMagnitudeNumber(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.MaxNumber(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Min(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.MinMagnitude(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.MinMagnitudeNumber(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.MinNumber(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Pow(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Round(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Sin(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Sinh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Sqrt(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Tan(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Tanh(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Single.Truncate(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Threading.Volatile.Read(System.Single) | [IntrinsicAttribute(...)] | -| System.Single System.Threading.Volatile.Read(System.Single) | [NonVersionableAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[]) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[],System.Index) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[],System.Int32) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[],System.Int32,System.Int32) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[],System.Range) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>,System.Index) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>,System.Int32) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>,System.Int32,System.Int32) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>,System.Range) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.TrimEnd`1(System.Span<!0>,!0) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.TrimEnd`1(System.Span<!0>,System.ReadOnlySpan<!0>) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.TrimStart`1(System.Span<!0>,!0) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.TrimStart`1(System.Span<!0>,System.ReadOnlySpan<!0>) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.Trim`1(System.Span<!0>,!0) | [ExtensionAttribute(...)] | -| System.Span<!0> System.MemoryExtensions.Trim`1(System.Span<!0>,System.ReadOnlySpan<!0>) | [ExtensionAttribute(...)] | -| System.Span<!0> System.Reflection.MethodBase.ArgumentData`1.AsSpan(System.Int32) | [UnscopedRefAttribute(...)] | -| System.Span<System.Char> System.MemoryExtensions.<Trim>g__TrimFallback\|228_0(System.Span<System.Char>) | [CompilerGeneratedAttribute(...)] | -| System.Span<System.Char> System.MemoryExtensions.Trim(System.Span<System.Char>) | [ExtensionAttribute(...)] | -| System.Span<System.Char> System.MemoryExtensions.TrimEnd(System.Span<System.Char>) | [ExtensionAttribute(...)] | -| System.Span<System.Char> System.MemoryExtensions.TrimStart(System.Span<System.Char>) | [ExtensionAttribute(...)] | -| System.SpanHelpers | [ExtensionAttribute(...)] | -| System.SpanHelpers.ComparerComparable`2 | [IsReadOnlyAttribute(...)] | -| System.SpanHelpers.DontNegate`1 | [IsReadOnlyAttribute(...)] | -| System.SpanHelpers.Negate`1 | [IsReadOnlyAttribute(...)] | -| System.Span`1 | [IsByRefLikeAttribute(...)] | -| System.Span`1 | [IsReadOnlyAttribute(...)] | -| System.Span`1 | [NonVersionableAttribute(...)] | -| System.Span`1.Enumerator | [IsByRefLikeAttribute(...)] | -| System.String System.ApplicationId.get_Culture() | [CompilerGeneratedAttribute(...)] | -| System.String System.ApplicationId.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.ApplicationId.get_ProcessorArchitecture() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.get_AssemblyName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.get_Condition() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.get_MemberSignature() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.get_TypeName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute.get_Justification() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.ExperimentalAttribute.get_DiagnosticId() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.ExperimentalAttribute.get_UrlFormat() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.get_ParameterName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.get_Message() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.get_Url() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.get_Message() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.get_Url() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.get_Message() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.get_Url() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.get_Syntax() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.get_Category() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.get_CheckId() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.get_Justification() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.get_MessageId() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.get_Scope() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.get_Target() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.get_Category() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.get_CheckId() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.get_Justification() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.get_MessageId() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.get_Scope() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.get_Target() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.ConditionalAttribute.get_ConditionString() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerDisplayAttribute.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerDisplayAttribute.get_TargetTypeName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerDisplayAttribute.get_Type() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerDisplayAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerTypeProxyAttribute.get_ProxyTypeName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerTypeProxyAttribute.get_TargetTypeName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerVisualizerAttribute.get_Description() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerVisualizerAttribute.get_TargetTypeName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerVisualizerAttribute.get_VisualizerObjectSourceTypeName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.DebuggerVisualizerAttribute.get_VisualizerTypeName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.CounterPayload.get_CounterType() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.CounterPayload.get_DisplayName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.CounterPayload.get_DisplayUnits() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.CounterPayload.get_Metadata() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.CounterPayload.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.CounterPayload.get_Series() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.DiagnosticCounter.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.EventAttribute.get_Message() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.EventDataAttribute.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.EventFieldAttribute.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.EventSourceAttribute.get_Guid() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.EventSourceAttribute.get_LocalizationResources() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.EventSourceAttribute.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.IncrementingCounterPayload.get_CounterType() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.IncrementingCounterPayload.get_DisplayName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.IncrementingCounterPayload.get_DisplayRateTimeScale() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.IncrementingCounterPayload.get_DisplayUnits() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.IncrementingCounterPayload.get_Metadata() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.IncrementingCounterPayload.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Diagnostics.Tracing.IncrementingCounterPayload.get_Series() | [CompilerGeneratedAttribute(...)] | -| System.String System.Enum.<ToString>g__HandleRareTypes\|55_0(System.RuntimeType,System.Byte) | [CompilerGeneratedAttribute(...)] | -| System.String System.Enum.<ToString>g__HandleRareTypes\|56_0(System.RuntimeType,System.Char,System.Byte) | [CompilerGeneratedAttribute(...)] | -| System.String System.IO.File.<IterateFileLinesAsync>d__110.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.String System.IO.FileLoadException.get_FileName() | [CompilerGeneratedAttribute(...)] | -| System.String System.IO.FileLoadException.get_FusionLog() | [CompilerGeneratedAttribute(...)] | -| System.String System.IO.FileNotFoundException.get_FileName() | [CompilerGeneratedAttribute(...)] | -| System.String System.IO.FileNotFoundException.get_FusionLog() | [CompilerGeneratedAttribute(...)] | -| System.String System.IO.Win32Marshal.<GetExceptionForWin32Error>g__GetPInvokeErrorMessage\|1_0(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.String System.Number.<FormatInt32>g__FormatInt32Slow\|41_0(System.Int32,System.Int32,System.String,System.IFormatProvider) | [CompilerGeneratedAttribute(...)] | -| System.String System.Number.<FormatInt64>g__FormatInt64Slow\|45_0(System.Int64,System.String,System.IFormatProvider) | [CompilerGeneratedAttribute(...)] | -| System.String System.Number.<FormatInt128>g__FormatInt128Slow\|49_0(System.Int128,System.String,System.IFormatProvider) | [CompilerGeneratedAttribute(...)] | -| System.String System.Number.<FormatUInt32>g__FormatUInt32Slow\|43_0(System.UInt32,System.String,System.IFormatProvider) | [CompilerGeneratedAttribute(...)] | -| System.String System.Number.<FormatUInt64>g__FormatUInt64Slow\|47_0(System.UInt64,System.String,System.IFormatProvider) | [CompilerGeneratedAttribute(...)] | -| System.String System.Number.<FormatUInt128>g__FormatUInt128Slow\|51_0(System.UInt128,System.String,System.IFormatProvider) | [CompilerGeneratedAttribute(...)] | -| System.String System.Number.<UInt32ToDecStrForKnownSmallNumber>g__CreateAndCacheString\|70_0(System.UInt32) | [CompilerGeneratedAttribute(...)] | -| System.String System.Numerics.Matrix3x2.ToString() | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Matrix4x4.ToString() | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Plane.ToString() | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Quaternion.ToString() | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector2.ToString() | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector2.ToString(System.String) | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector2.ToString(System.String,System.IFormatProvider) | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector3.ToString() | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector3.ToString(System.String) | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector3.ToString(System.String,System.IFormatProvider) | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector4.ToString() | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector4.ToString(System.String) | [IsReadOnlyAttribute(...)] | -| System.String System.Numerics.Vector4.ToString(System.String,System.IFormatProvider) | [IsReadOnlyAttribute(...)] | -| System.String System.ObsoleteAttribute.get_DiagnosticId() | [CompilerGeneratedAttribute(...)] | -| System.String System.ObsoleteAttribute.get_Message() | [CompilerGeneratedAttribute(...)] | -| System.String System.ObsoleteAttribute.get_UrlFormat() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyCompanyAttribute.get_Company() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyConfigurationAttribute.get_Configuration() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyCopyrightAttribute.get_Copyright() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyCultureAttribute.get_Culture() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyDefaultAliasAttribute.get_DefaultAlias() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyDescriptionAttribute.get_Description() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyFileVersionAttribute.get_Version() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyInformationalVersionAttribute.get_InformationalVersion() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyKeyFileAttribute.get_KeyFile() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyKeyNameAttribute.get_KeyName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyMetadataAttribute.get_Key() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyMetadataAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyProductAttribute.get_Product() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblySignatureKeyAttribute.get_Countersignature() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblySignatureKeyAttribute.get_PublicKey() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyTitleAttribute.get_Title() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyTrademarkAttribute.get_Trademark() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.AssemblyVersionAttribute.get_Version() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.DefaultMemberAttribute.get_MemberName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.ManifestResourceInfo.get_FileName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.ObfuscationAttribute.get_Feature() | [CompilerGeneratedAttribute(...)] | -| System.String System.Reflection.TypeNameParser.<ParseNamedTypeName>g__ApplyLeadingDotCompatQuirk\|25_0(System.String) | [CompilerGeneratedAttribute(...)] | -| System.String System.ResolveEventArgs.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Resources.NeutralResourcesLanguageAttribute.get_CultureName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Resources.SatelliteContractVersionAttribute.get_Version() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.AssemblyTargetedPatchBandAttribute.get_TargetedPatchBand() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.AccessedThroughPropertyAttribute.get_PropertyName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.get_ParameterName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.CollectionBuilderAttribute.get_MethodName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.get_FeatureName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.ContractHelper.RaiseContractFailedEvent(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception) | [DebuggerNonUserCodeAttribute(...)] | -| System.String System.Runtime.CompilerServices.DependencyAttribute.get_DependentAssembly() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.InternalsVisibleToAttribute.get_AssemblyName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.ReferenceAssemblyAttribute.get_Description() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.TypeForwardedFromAttribute.get_AssemblyFullName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.CompilerServices.UnsafeAccessorAttribute.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.BStrWrapper.get_WrappedObject() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.ComSourceInterfacesAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.DllImportAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.GuidAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.LibraryImportAttribute.get_EntryPoint() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.LibraryImportAttribute.get_LibraryName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.get_CountElementName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.OSPlatform.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.ProgIdAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.TypeIdentifierAttribute.get_Identifier() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.InteropServices.TypeIdentifierAttribute.get_Scope() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.TargetedPatchingOptOutAttribute.get_Reason() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.Versioning.OSPlatformAttribute.get_PlatformName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.Versioning.ObsoletedOSPlatformAttribute.get_Message() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.Versioning.ObsoletedOSPlatformAttribute.get_Url() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.get_Message() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.get_Url() | [CompilerGeneratedAttribute(...)] | -| System.String System.Runtime.Versioning.UnsupportedOSPlatformAttribute.get_Message() | [CompilerGeneratedAttribute(...)] | -| System.String System.Security.SecurityException.get_GrantedSet() | [CompilerGeneratedAttribute(...)] | -| System.String System.Security.SecurityException.get_PermissionState() | [CompilerGeneratedAttribute(...)] | -| System.String System.Security.SecurityException.get_RefusedSet() | [CompilerGeneratedAttribute(...)] | -| System.String System.Security.SecurityException.get_Url() | [CompilerGeneratedAttribute(...)] | -| System.String System.StringNormalizationExtensions.Normalize(System.String) | [ExtensionAttribute(...)] | -| System.String System.StringNormalizationExtensions.Normalize(System.String,System.Text.NormalizationForm) | [ExtensionAttribute(...)] | -| System.String System.Text.CodePageDataItem.get_BodyName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Text.CodePageDataItem.get_DisplayName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Text.CodePageDataItem.get_HeaderName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Text.CodePageDataItem.get_WebName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Text.CompositeFormat.get_Format() | [CompilerGeneratedAttribute(...)] | -| System.String System.Text.EncodingInfo.get_DisplayName() | [CompilerGeneratedAttribute(...)] | -| System.String System.Text.EncodingInfo.get_Name() | [CompilerGeneratedAttribute(...)] | -| System.StringComparer System.Globalization.GlobalizationExtensions.GetStringComparer(System.Globalization.CompareInfo,System.Globalization.CompareOptions) | [ExtensionAttribute(...)] | -| System.StringNormalizationExtensions | [ExtensionAttribute(...)] | -| System.StringSplitOptions | [FlagsAttribute(...)] | -| System.String[] System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.get_Members() | [CompilerGeneratedAttribute(...)] | -| System.String[] System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.get_Members() | [CompilerGeneratedAttribute(...)] | -| System.String[] System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.get_Arguments() | [CompilerGeneratedAttribute(...)] | -| System.StubHelpers.StubHelpers.s_pendingExceptionObject | [ThreadStaticAttribute(...)] | -| System.TermInfo.ParameterizedStrings.FormatParam | [IsReadOnlyAttribute(...)] | -| System.TermInfo.ParameterizedStrings.FormatParam[] | [ParamArrayAttribute(...)] | -| System.TermInfo.ParameterizedStrings.t_cachedOneElementArgsArray | [ThreadStaticAttribute(...)] | -| System.TermInfo.ParameterizedStrings.t_cachedStack | [ThreadStaticAttribute(...)] | -| System.TermInfo.ParameterizedStrings.t_cachedTwoElementArgsArray | [ThreadStaticAttribute(...)] | -| System.Text.Ascii.PlainLoader`1 | [IsReadOnlyAttribute(...)] | -| System.Text.Ascii.WideningLoader | [IsReadOnlyAttribute(...)] | -| System.Text.CodePageDataItem.<BodyName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.CodePageDataItem.<DisplayName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.CodePageDataItem.<Flags>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.CodePageDataItem.<HeaderName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.CodePageDataItem.<UIFamilyCodePage>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.CodePageDataItem.<WebName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.CompositeFormat.<Format>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.Encoding System.Text.EncodingExtensions.RemovePreamble(System.Text.Encoding) | [ExtensionAttribute(...)] | -| System.Text.EncodingExtensions | [ExtensionAttribute(...)] | -| System.Text.EncodingInfo.<CodePage>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.EncodingInfo.<DisplayName>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.EncodingInfo.<Name>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.EncodingInfo.<Provider>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.EncodingProvider System.Text.EncodingInfo.get_Provider() | [CompilerGeneratedAttribute(...)] | -| System.Text.Rune | [IsReadOnlyAttribute(...)] | -| System.Text.SpanLineEnumerator | [IsByRefLikeAttribute(...)] | -| System.Text.SpanLineEnumerator System.MemoryExtensions.EnumerateLines(System.ReadOnlySpan<System.Char>) | [ExtensionAttribute(...)] | -| System.Text.SpanLineEnumerator System.MemoryExtensions.EnumerateLines(System.Span<System.Char>) | [ExtensionAttribute(...)] | -| System.Text.SpanRuneEnumerator | [IsByRefLikeAttribute(...)] | -| System.Text.SpanRuneEnumerator System.MemoryExtensions.EnumerateRunes(System.ReadOnlySpan<System.Char>) | [ExtensionAttribute(...)] | -| System.Text.SpanRuneEnumerator System.MemoryExtensions.EnumerateRunes(System.Span<System.Char>) | [ExtensionAttribute(...)] | -| System.Text.StringBuilder | [NotNullAttribute(...)] | -| System.Text.StringBuilder.AppendInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | -| System.Text.StringBuilderCache.t_cachedInstance | [ThreadStaticAttribute(...)] | -| System.Text.TranscodingStream.<<DisposeAsync>g__DisposeAsyncCore\|30_0>d | [CompilerGeneratedAttribute(...)] | -| System.Text.TranscodingStream.<<ReadAsync>g__ReadAsyncCore\|41_0>d | [CompilerGeneratedAttribute(...)] | -| System.Text.TranscodingStream.<<WriteAsync>g__WriteAsyncCore\|50_0>d | [CompilerGeneratedAttribute(...)] | -| System.Text.TrimType | [FlagsAttribute(...)] | -| System.Text.Unicode.GraphemeClusterBreakType System.Text.Unicode.TextSegmentationUtility.Processor`1.get_CurrentType() | [CompilerGeneratedAttribute(...)] | -| System.Text.Unicode.GraphemeClusterBreakType System.Text.Unicode.TextSegmentationUtility.Processor`1.get_CurrentType() | [IsReadOnlyAttribute(...)] | -| System.Text.Unicode.TextSegmentationUtility.Processor`1 | [IsByRefLikeAttribute(...)] | -| System.Text.Unicode.TextSegmentationUtility.Processor`1.<CurrentCodeUnitOffset>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.Unicode.TextSegmentationUtility.Processor`1.<CurrentType>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [InterpolatedStringHandlerAttribute(...)] | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [IsByRefLikeAttribute(...)] | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [ScopedRefAttribute(...)] | -| System.Text.ValueStringBuilder | [IsByRefLikeAttribute(...)] | -| System.Text.ValueUtf8Converter | [IsByRefLikeAttribute(...)] | -| System.Threading.AsyncLocal<System.Boolean> System.Runtime.Serialization.SerializationInfo.get_AsyncDeserializationInProgress() | [CompilerGeneratedAttribute(...)] | -| System.Threading.AsyncLocalValueChangedArgs`1 | [IsReadOnlyAttribute(...)] | -| System.Threading.AsyncLocalValueChangedArgs`1.<CurrentValue>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.AsyncLocalValueChangedArgs`1.<PreviousValue>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.AsyncLocalValueChangedArgs`1.<ThreadContextChanged>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.AsyncLocalValueMap.<Empty>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.CancellationToken | [EnumeratorCancellationAttribute(...)] | -| System.Threading.CancellationToken | [IsReadOnlyAttribute(...)] | -| System.Threading.CancellationToken.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.CancellationTokenRegistration | [IsReadOnlyAttribute(...)] | -| System.Threading.CancellationTokenSource.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.CancellationTokenSource.CallbackNode.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.CancellationTokenSource.LinkedNCancellationTokenSource.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.CancellationTokenSource.Registrations.<WaitForCallbackToCompleteAsync>d__12 | [CompilerGeneratedAttribute(...)] | -| System.Threading.CancellationToken[] | [ParamArrayAttribute(...)] | -| System.Threading.EventWaitHandle | [NotNullAttribute(...)] | -| System.Threading.IAsyncLocalValueMap System.Threading.AsyncLocalValueMap.get_Empty() | [CompilerGeneratedAttribute(...)] | -| System.Threading.PeriodicTimer.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.PeriodicTimer.State.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.GateThread.<>O | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.HillClimbing.Complex | [IsReadOnlyAttribute(...)] | -| System.Threading.PortableThreadPool.HillClimbing.Complex.<Imaginary>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.HillClimbing.Complex.<Real>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.WaitThread System.Threading.PortableThreadPool.WaitThreadNode.get_Thread() | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.WaitThread System.Threading.RegisteredWaitHandle.get_WaitThread() | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.WaitThreadNode System.Threading.PortableThreadPool.WaitThreadNode.get_Next() | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.WaitThreadNode.<Next>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.WaitThreadNode.<Thread>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.WorkerThread.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.PortableThreadPool.t_completionCountObject | [ThreadStaticAttribute(...)] | -| System.Threading.ProcessorIdCache.t_currentProcessorIdCache | [ThreadStaticAttribute(...)] | -| System.Threading.QueueUserWorkItemCallback.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.ReaderWriterLockSlim.WaiterStates | [FlagsAttribute(...)] | -| System.Threading.ReaderWriterLockSlim.t_rwc | [ThreadStaticAttribute(...)] | -| System.Threading.RegisteredWaitHandle.<TimeoutTimeMs>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.RegisteredWaitHandle.<UserUnregisterWaitHandle>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.RegisteredWaitHandle.<UserUnregisterWaitHandleValue>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.RegisteredWaitHandle.<WaitThread>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.SemaphoreSlim.<WaitUntilCountOrTimeoutAsync>d__31 | [CompilerGeneratedAttribute(...)] | -| System.Threading.SynchronizationContext.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.AwaitTaskContinuation.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.CompletionState System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.<EnsureCompletionStateInitialized>g__InitializeCompletionState\|23_0() | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ConcurrentExclusiveTaskScheduler.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ProcessingMode | [FlagsAttribute(...)] | -| System.Threading.Tasks.ConfigureAwaitOptions | [FlagsAttribute(...)] | -| System.Threading.Tasks.InternalTaskOptions | [FlagsAttribute(...)] | -| System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags | [FlagsAttribute(...)] | -| System.Threading.Tasks.Sources.ValueTaskSourceStatus System.IO.File.<IterateFileLinesAsync>d__110.GetStatus(System.Int16) | [DebuggerHiddenAttribute(...)] | -| System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.<>O | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.<>c__DisplayClass6_0 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.SynchronizationContextTaskScheduler.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task System.IO.File.<WriteAllBytesAsync>g__Core\|92_0(System.String,System.Byte[],System.Threading.CancellationToken) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task System.IO.Stream.<CopyToAsync>g__Core\|27_0(System.IO.Stream,System.IO.Stream,System.Int32,System.Threading.CancellationToken) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task System.IO.StreamWriter.<FlushAsyncInternal>g__Core\|76_0(System.Boolean,System.Boolean,System.Threading.CancellationToken) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task System.IO.TextWriter.<WriteAsync>g__WriteAsyncCore\|60_0(System.Text.StringBuilder,System.Threading.CancellationToken) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task System.IO.TextWriter.<WriteLineAsync>g__WriteLineAsyncCore\|66_0(System.Text.StringBuilder,System.Threading.CancellationToken) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task System.Threading.Tasks.TaskExtensions.Unwrap(System.Threading.Tasks.Task<System.Threading.Tasks.Task>) | [ExtensionAttribute(...)] | -| System.Threading.Tasks.Task System.Threading.Tasks.ThreadPoolTaskScheduler.<FilterTasksFromWorkItems>d__6.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Threading.Tasks.Task.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task.<Factory>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task.CancellationPromise`1.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task.ContingentProperties System.Threading.Tasks.Task.<EnsureContingentPropertiesInitialized>g__InitializeContingentProperties\|81_0() | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task.DelayPromiseWithCancellation.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task.TaskStateFlags | [FlagsAttribute(...)] | -| System.Threading.Tasks.Task.WhenAllPromise.<>c__DisplayClass3_0 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task.t_currentTask | [ThreadStaticAttribute(...)] | -| System.Threading.Tasks.Task<!0> | [NotNullAttribute(...)] | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.TaskExtensions.Unwrap`1(System.Threading.Tasks.Task<System.Threading.Tasks.Task<!0>>) | [ExtensionAttribute(...)] | -| System.Threading.Tasks.Task<!0>[] | [ParamArrayAttribute(...)] | -| System.Threading.Tasks.TaskAsyncEnumerableExtensions | [ExtensionAttribute(...)] | -| System.Threading.Tasks.TaskAsyncEnumerableExtensions.<ToBlockingEnumerable>d__3`1 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskContinuationOptions | [FlagsAttribute(...)] | -| System.Threading.Tasks.TaskCreationOptions | [FlagsAttribute(...)] | -| System.Threading.Tasks.TaskExtensions | [ExtensionAttribute(...)] | -| System.Threading.Tasks.TaskFactory System.Threading.Tasks.Task.get_Factory() | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskFactory`1.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskFactory`1.<>c__56`1 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskFactory`1.<>c__67`1 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskFactory`1.<>c__DisplayClass32_0 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskFactory`1.<>c__DisplayClass35_0 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskFactory`1.<>c__DisplayClass38_0`1 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskFactory`1.<>c__DisplayClass41_0`2 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskFactory`1.<>c__DisplayClass44_0`3 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskScheduler.UnobservedTaskException | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskSchedulerAwaitTaskContinuation.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskToAsyncResult.TaskAsyncResult.<AsyncState>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.TaskToAsyncResult.TaskAsyncResult.<CompletedSynchronously>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.Task[] | [ParamArrayAttribute(...)] | -| System.Threading.Tasks.ThreadPoolTaskScheduler.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ThreadPoolTaskScheduler.<FilterTasksFromWorkItems>d__6 | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.UnwrapPromise`1.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ValueTask | [IsReadOnlyAttribute(...)] | -| System.Threading.Tasks.ValueTask System.IO.File.<IterateFileLinesAsync>d__110.DisposeAsync() | [DebuggerHiddenAttribute(...)] | -| System.Threading.Tasks.ValueTask System.Text.TranscodingStream.<DisposeAsync>g__DisposeAsyncCore\|30_0(System.ArraySegment<System.Byte>) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ValueTask System.Text.TranscodingStream.<WriteAsync>g__WriteAsyncCore\|50_0(System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ValueTask System.Threading.CancellationTokenRegistration.<DisposeAsync>g__WaitForCallbackIfNecessaryAsync\|4_0(System.Int64,System.Threading.CancellationTokenSource.CallbackNode) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ValueTask<!0> | [IsReadOnlyAttribute(...)] | -| System.Threading.Tasks.ValueTask<System.Boolean> System.IO.File.<IterateFileLinesAsync>d__110.MoveNextAsync() | [DebuggerHiddenAttribute(...)] | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Stream.<ReadAsync>g__FinishReadAsync\|42_0(System.Threading.Tasks.Task<System.Int32>,System.Byte[],System.Memory<System.Byte>) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ValueTask<System.Int32> System.Text.TranscodingStream.<ReadAsync>g__ReadAsyncCore\|41_0(System.Memory<System.Byte>,System.Threading.CancellationToken) | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.ValueTask`1 | [IsReadOnlyAttribute(...)] | -| System.Threading.Tasks.ValueTask`1.ValueTaskSourceAsTask.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.Tasks.VoidTaskResult | [IsReadOnlyAttribute(...)] | -| System.Threading.Thread System.Threading.Thread.get_CurrentThread() | [IntrinsicAttribute(...)] | -| System.Threading.Thread.<OptimalMaxSpinWaitsPerSpinIteration>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.Thread.t_currentThread | [ThreadStaticAttribute(...)] | -| System.Threading.ThreadHandle | [IsReadOnlyAttribute(...)] | -| System.Threading.ThreadInt64PersistentCounter.t_nodeFinalizationHelpers | [ThreadStaticAttribute(...)] | -| System.Threading.ThreadLocal<System.Object> System.LocalDataStoreSlot.get_Data() | [CompilerGeneratedAttribute(...)] | -| System.Threading.ThreadLocal`1.ts_finalizationHelper | [ThreadStaticAttribute(...)] | -| System.Threading.ThreadLocal`1.ts_slotArray | [ThreadStaticAttribute(...)] | -| System.Threading.ThreadPool.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.ThreadPool.<GetQueuedWorkItems>d__26 | [CompilerGeneratedAttribute(...)] | -| System.Threading.ThreadPoolWorkQueueThreadLocals.threadLocals | [ThreadStaticAttribute(...)] | -| System.Threading.ThreadState | [FlagsAttribute(...)] | -| System.Threading.Timer.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.TimerQueue.<>O | [CompilerGeneratedAttribute(...)] | -| System.Threading.TimerQueue.<ActiveCount>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.TimerQueue.<GetTimersForDebugger>d__7 | [CompilerGeneratedAttribute(...)] | -| System.Threading.TimerQueue.<Instances>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.Threading.TimerQueueTimer System.Threading.TimerQueue.<GetTimersForDebugger>d__7.get_Current() | [DebuggerHiddenAttribute(...)] | -| System.Threading.TimerQueueTimer.<>c | [CompilerGeneratedAttribute(...)] | -| System.Threading.TimerQueue[] System.Threading.TimerQueue.get_Instances() | [CompilerGeneratedAttribute(...)] | -| System.Threading.WaitHandle.t_safeWaitHandlesForRent | [ThreadStaticAttribute(...)] | -| System.Threading.WaitHandleExtensions | [ExtensionAttribute(...)] | -| System.ThrowHelper | [StackTraceHiddenAttribute(...)] | -| System.TimeOnly | [IsReadOnlyAttribute(...)] | -| System.TimeOnly.<>c | [CompilerGeneratedAttribute(...)] | -| System.TimeProvider System.TimeProvider.get_System() | [CompilerGeneratedAttribute(...)] | -| System.TimeProvider.<System>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.TimeSpan | [IsReadOnlyAttribute(...)] | -| System.TimeSpan | [ScopedRefAttribute(...)] | -| System.TimeSpan System.Diagnostics.Tracing.IncrementingEventCounter.get_DisplayRateTimeScale() | [CompilerGeneratedAttribute(...)] | -| System.TimeSpan System.Diagnostics.Tracing.IncrementingPollingCounter.get_DisplayRateTimeScale() | [CompilerGeneratedAttribute(...)] | -| System.TimeZoneInfo.<>c | [CompilerGeneratedAttribute(...)] | -| System.TimeZoneInfo.<>c__DisplayClass187_0 | [CompilerGeneratedAttribute(...)] | -| System.TimeZoneInfo.<HasIanaId>k__BackingField | [CompilerGeneratedAttribute(...)] | -| System.TimeZoneInfo.AdjustmentRule | [NotNullAttribute(...)] | -| System.TimeZoneInfo.TZifHead | [IsReadOnlyAttribute(...)] | -| System.TimeZoneInfo.TZifType | [IsReadOnlyAttribute(...)] | -| System.TimeZoneInfo.TransitionTime | [IsReadOnlyAttribute(...)] | -| System.TimeZoneInfoOptions | [FlagsAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8,!9>> System.TupleExtensions.ToTuple`10(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8>> System.TupleExtensions.ToTuple`9(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7,!8>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7>> System.TupleExtensions.ToTuple`8(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!7,!8,!9>> System.TupleExtensions.ToTuple`11(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!7,!8,!9>> System.TupleExtensions.ToTuple`12(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!7,!8,!9>> System.TupleExtensions.ToTuple`13(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19,!20>>> System.TupleExtensions.ToTuple`21(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18,!19,!20>>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19>>> System.TupleExtensions.ToTuple`20(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18,!19>>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18>>> System.TupleExtensions.ToTuple`19(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18>>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17>>> System.TupleExtensions.ToTuple`18(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17>>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16>>> System.TupleExtensions.ToTuple`17(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16>>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15>>> System.TupleExtensions.ToTuple`16(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15>>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14>>> System.TupleExtensions.ToTuple`15(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14>>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9>> System.TupleExtensions.ToTuple`14(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6> System.TupleExtensions.ToTuple`7(System.ValueTuple<!0,!1,!2,!3,!4,!5,!6>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4,!5> System.TupleExtensions.ToTuple`6(System.ValueTuple<!0,!1,!2,!3,!4,!5>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3,!4> System.TupleExtensions.ToTuple`5(System.ValueTuple<!0,!1,!2,!3,!4>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2,!3> System.TupleExtensions.ToTuple`4(System.ValueTuple<!0,!1,!2,!3>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1,!2> System.TupleExtensions.ToTuple`3(System.ValueTuple<!0,!1,!2>) | [ExtensionAttribute(...)] | -| System.Tuple<!0,!1> System.TupleExtensions.ToTuple`2(System.ValueTuple<!0,!1>) | [ExtensionAttribute(...)] | -| System.Tuple<!0> System.TupleExtensions.ToTuple`1(System.ValueTuple<!0>) | [ExtensionAttribute(...)] | -| System.TupleExtensions | [ExtensionAttribute(...)] | -| System.Type System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.get_Type() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Object.GetType() | [IntrinsicAttribute(...)] | -| System.Type System.Reflection.Metadata.MetadataUpdateHandlerAttribute.get_HandlerType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Reflection.ModifiedFunctionPointerType.<GetFunctionPointerReturnType>g__Initialize\|4_0() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Reflection.ModifiedHasElementType.<GetElementType>g__Initialize\|2_0() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Reflection.NullabilityInfo.get_Type() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeArrayType(System.Type) | [ExtensionAttribute(...)] | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeArrayType(System.Type,System.Int32) | [ExtensionAttribute(...)] | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeByRefType(System.Type) | [ExtensionAttribute(...)] | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeGenericType(System.Type,System.Type[]) | [ExtensionAttribute(...)] | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakePointerType(System.Type) | [ExtensionAttribute(...)] | -| System.Type System.Reflection.SignatureTypeExtensions.TryResolve(System.Reflection.SignatureType,System.Type[]) | [ExtensionAttribute(...)] | -| System.Type System.Reflection.SignatureTypeExtensions.TryResolveAgainstGenericMethod(System.Reflection.SignatureType,System.Reflection.MethodInfo) | [ExtensionAttribute(...)] | -| System.Type System.Resources.ResourceReader.<FindType>g__UseReflectionToGetTypeLocal\|52_0(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.get_BuilderType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.CompilerServices.CollectionBuilderAttribute.get_BuilderType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.CompilerServices.FixedBufferAttribute.get_ElementType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.CompilerServices.MetadataUpdateOriginalTypeAttribute.get_OriginalType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.CompilerServices.StateMachineAttribute.get_StateMachineType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.CompilerServices.TypeForwardedToAttribute.get_Destination() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.CoClassAttribute.get_CoClass() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.ComDefaultInterfaceAttribute.get_Value() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.ComEventInterfaceAttribute.get_EventProvider() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.ComEventInterfaceAttribute.get_SourceInterface() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.LibraryImportAttribute.get_StringMarshallingCustomType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.get_ManagedType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.get_MarshallerType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.get_NativeType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute.get_NativeType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Security.SecurityException.get_PermissionType() | [CompilerGeneratedAttribute(...)] | -| System.Type System.Type.GetEnumUnderlyingType() | [IntrinsicAttribute(...)] | -| System.Type System.Type.GetTypeFromHandle(System.RuntimeTypeHandle) | [IntrinsicAttribute(...)] | -| System.Type.<>c | [CompilerGeneratedAttribute(...)] | -| System.Type[] | [ParamArrayAttribute(...)] | -| System.Type[] System.Diagnostics.Tracing.EventSource.EventMetadata.<get_ParameterTypes>g__GetParameterTypes\|22_0(System.Reflection.ParameterInfo[]) | [CompilerGeneratedAttribute(...)] | -| System.Type[] System.Reflection.ModifiedFunctionPointerType.<GetFunctionPointerParameterTypes>g__Initialize\|5_0() | [CompilerGeneratedAttribute(...)] | -| System.Type[] System.Reflection.ModifiedGenericType.<GetGenericArguments>g__Initialize\|2_0() | [CompilerGeneratedAttribute(...)] | -| System.Type[] System.Reflection.ReflectionTypeLoadException.get_Types() | [CompilerGeneratedAttribute(...)] | -| System.Type[] System.Reflection.TypeInfo.<get_DeclaredNestedTypes>g__GetDeclaredOnlyNestedTypes\|22_0(System.Type) | [CompilerGeneratedAttribute(...)] | -| System.TypedReference | [IsByRefLikeAttribute(...)] | -| System.TypedReference | [NonVersionableAttribute(...)] | -| System.UInt16 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.UInt16) | [IntrinsicAttribute(...)] | -| System.UInt16 System.Math.Max(System.UInt16,System.UInt16) | [NonVersionableAttribute(...)] | -| System.UInt16 System.Math.Min(System.UInt16,System.UInt16) | [NonVersionableAttribute(...)] | -| System.UInt16 System.Runtime.CompilerServices.RuntimeHelpers.GetElementSize(System.Array) | [ExtensionAttribute(...)] | -| System.UInt16 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UInt16 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UInt16 System.Threading.Volatile.Read(System.UInt16) | [IntrinsicAttribute(...)] | -| System.UInt16 System.Threading.Volatile.Read(System.UInt16) | [NonVersionableAttribute(...)] | -| System.UInt32 Interop.Kernel32.<GetEnvironmentVariable>g____PInvoke\|61_0(System.UInt16*,System.Char*,System.UInt32) | [CompilerGeneratedAttribute(...)] | -| System.UInt32 Interop.Kernel32.GetEnvironmentVariable(System.String,System.Char,System.UInt32) | [LibraryImportAttribute(...)] | -| System.UInt32 System.BitConverter.SingleToUInt32Bits(System.Single) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.UInt32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Math.Max(System.UInt32,System.UInt32) | [NonVersionableAttribute(...)] | -| System.UInt32 System.Math.Min(System.UInt32,System.UInt32) | [NonVersionableAttribute(...)] | -| System.UInt32 System.Numerics.BitOperations.Crc32C(System.UInt32,System.Byte) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Numerics.BitOperations.Crc32C(System.UInt32,System.UInt16) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Numerics.BitOperations.Crc32C(System.UInt32,System.UInt32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Numerics.BitOperations.Crc32C(System.UInt32,System.UInt64) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Numerics.BitOperations.RotateLeft(System.UInt32,System.Int32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Numerics.BitOperations.RotateRight(System.UInt32,System.Int32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Reflection.Assembly.GetAssemblyCount() | [SuppressGCTransitionAttribute(...)] | -| System.UInt32 System.Reflection.AssemblyAlgorithmIdAttribute.get_AlgorithmId() | [CompilerGeneratedAttribute(...)] | -| System.UInt32 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UInt32 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UInt32 System.Runtime.Intrinsics.Vector64.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.UInt32 System.Runtime.Intrinsics.Vector64.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector64<!0>) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Runtime.Intrinsics.Vector128.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.UInt32 System.Runtime.Intrinsics.Vector128.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector128<!0>) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Runtime.Intrinsics.Vector256.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.UInt32 System.Runtime.Intrinsics.Vector256.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector256<!0>) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Text.CodePageDataItem.get_Flags() | [CompilerGeneratedAttribute(...)] | -| System.UInt32 System.Threading.Volatile.Read(System.UInt32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.Threading.Volatile.Read(System.UInt32) | [NonVersionableAttribute(...)] | -| System.UInt32 System.UInt32.LeadingZeroCount(System.UInt32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.UInt32.Log2(System.UInt32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.UInt32.PopCount(System.UInt32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.UInt32.RotateLeft(System.UInt32,System.Int32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.UInt32.RotateRight(System.UInt32,System.Int32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.UInt32.TrailingZeroCount(System.UInt32) | [IntrinsicAttribute(...)] | -| System.UInt32 System.UInt128.<op_Division>g__AddDivisor\|110_0(System.Span<System.UInt32>,System.ReadOnlySpan<System.UInt32>) | [CompilerGeneratedAttribute(...)] | -| System.UInt32 System.UInt128.<op_Division>g__SubtractDivisor\|110_3(System.Span<System.UInt32>,System.ReadOnlySpan<System.UInt32>,System.UInt64) | [CompilerGeneratedAttribute(...)] | -| System.UInt32 System.UIntPtr.ToUInt32() | [NonVersionableAttribute(...)] | -| System.UInt32 System.UIntPtr.op_Explicit(System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.UInt64 System.BitConverter.DoubleToUInt64Bits(System.Double) | [IntrinsicAttribute(...)] | -| System.UInt64 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.UInt64) | [IntrinsicAttribute(...)] | -| System.UInt64 System.Marvin.get_DefaultSeed() | [CompilerGeneratedAttribute(...)] | -| System.UInt64 System.Math.<BigMul>g__SoftwareFallback\|49_0(System.UInt64,System.UInt64,System.UInt64) | [CompilerGeneratedAttribute(...)] | -| System.UInt64 System.Math.Max(System.UInt64,System.UInt64) | [NonVersionableAttribute(...)] | -| System.UInt64 System.Math.Min(System.UInt64,System.UInt64) | [NonVersionableAttribute(...)] | -| System.UInt64 System.Numerics.BitOperations.RotateLeft(System.UInt64,System.Int32) | [IntrinsicAttribute(...)] | -| System.UInt64 System.Numerics.BitOperations.RotateRight(System.UInt64,System.Int32) | [IntrinsicAttribute(...)] | -| System.UInt64 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UInt64 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UInt64 System.Runtime.Intrinsics.Vector512.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector512<!0>) | [ExtensionAttribute(...)] | -| System.UInt64 System.Runtime.Intrinsics.Vector512.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector512<!0>) | [IntrinsicAttribute(...)] | -| System.UInt64 System.Threading.Volatile.Read(System.UInt64) | [IntrinsicAttribute(...)] | -| System.UInt64 System.Threading.Volatile.Read(System.UInt64) | [NonVersionableAttribute(...)] | -| System.UInt64 System.UInt64.LeadingZeroCount(System.UInt64) | [IntrinsicAttribute(...)] | -| System.UInt64 System.UInt64.Log2(System.UInt64) | [IntrinsicAttribute(...)] | -| System.UInt64 System.UInt64.PopCount(System.UInt64) | [IntrinsicAttribute(...)] | -| System.UInt64 System.UInt64.RotateLeft(System.UInt64,System.Int32) | [IntrinsicAttribute(...)] | -| System.UInt64 System.UInt64.RotateRight(System.UInt64,System.Int32) | [IntrinsicAttribute(...)] | -| System.UInt64 System.UInt64.TrailingZeroCount(System.UInt64) | [IntrinsicAttribute(...)] | -| System.UInt64 System.UIntPtr.ToUInt64() | [NonVersionableAttribute(...)] | -| System.UInt64 System.UIntPtr.op_Explicit(System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.UInt128 | [IntrinsicAttribute(...)] | -| System.UInt128 | [IsReadOnlyAttribute(...)] | -| System.UInt128 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UInt128 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UInt128 System.UInt128.<op_Division>g__DivideSlow\|110_2(System.UInt128,System.UInt128) | [CompilerGeneratedAttribute(...)] | -| System.UIntPtr | [IsReadOnlyAttribute(...)] | -| System.UIntPtr | [RequiresLocationAttribute(...)] | -| System.UIntPtr System.Math.Max(System.UIntPtr,System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.Math.Min(System.UIntPtr,System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.Numerics.BitOperations.RotateLeft(System.UIntPtr,System.Int32) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.Numerics.BitOperations.RotateRight(System.UIntPtr,System.Int32) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.Threading.Volatile.Read(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.Threading.Volatile.Read(System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.Add(System.UIntPtr,System.Int32) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.LeadingZeroCount(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.UIntPtr.Log2(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.UIntPtr.PopCount(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.UIntPtr.RotateLeft(System.UIntPtr,System.Int32) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.UIntPtr.RotateRight(System.UIntPtr,System.Int32) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.UIntPtr.Subtract(System.UIntPtr,System.Int32) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.TrailingZeroCount(System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.UIntPtr System.UIntPtr.get_AllBitsSet() | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.get_MaxValue() | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.get_MinValue() | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.op_Addition(System.UIntPtr,System.Int32) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.op_Explicit(System.UInt32) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.op_Explicit(System.UInt64) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.op_Explicit(System.Void*) | [NonVersionableAttribute(...)] | -| System.UIntPtr System.UIntPtr.op_Subtraction(System.UIntPtr,System.Int32) | [NonVersionableAttribute(...)] | -| System.UIntPtr.Zero | [IntrinsicAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7,!8,!9>> System.TupleExtensions.ToValueTuple`10(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7,!8>> System.TupleExtensions.ToValueTuple`9(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7>> System.TupleExtensions.ToValueTuple`8(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!7,!8,!9>> System.TupleExtensions.ToValueTuple`11(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!7,!8,!9>> System.TupleExtensions.ToValueTuple`12(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!7,!8,!9>> System.TupleExtensions.ToValueTuple`13(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18,!19,!20>>> System.TupleExtensions.ToValueTuple`21(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19,!20>>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18,!19>>> System.TupleExtensions.ToValueTuple`20(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19>>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18>>> System.TupleExtensions.ToValueTuple`19(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18>>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17>>> System.TupleExtensions.ToValueTuple`18(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17>>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16>>> System.TupleExtensions.ToValueTuple`17(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16>>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15>>> System.TupleExtensions.ToValueTuple`16(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15>>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14>>> System.TupleExtensions.ToValueTuple`15(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14>>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9>> System.TupleExtensions.ToValueTuple`14(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9>>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6> System.TupleExtensions.ToValueTuple`7(System.Tuple<!0,!1,!2,!3,!4,!5,!6>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5> System.TupleExtensions.ToValueTuple`6(System.Tuple<!0,!1,!2,!3,!4,!5>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3,!4> System.TupleExtensions.ToValueTuple`5(System.Tuple<!0,!1,!2,!3,!4>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2,!3> System.TupleExtensions.ToValueTuple`4(System.Tuple<!0,!1,!2,!3>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1,!2> System.TupleExtensions.ToValueTuple`3(System.Tuple<!0,!1,!2>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0,!1> System.TupleExtensions.ToValueTuple`2(System.Tuple<!0,!1>) | [ExtensionAttribute(...)] | -| System.ValueTuple<!0> System.TupleExtensions.ToValueTuple`1(System.Tuple<!0>) | [ExtensionAttribute(...)] | -| System.ValueTuple<System.Byte,System.Byte> System.Math.DivRem(System.Byte,System.Byte) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.ConsoleKey,System.ConsoleModifiers> System.IO.KeyParser.<TryParseTerminalInputSequence>g__MapKeyIdOXterm\|7_0(System.Char,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.ValueTuple<System.ConsoleKey,System.ConsoleModifiers> System.IO.KeyParser.<TryParseTerminalInputSequence>g__MapSCO\|7_1(System.Char) | [CompilerGeneratedAttribute(...)] | -| System.ValueTuple<System.Int16,System.Int16> System.Math.DivRem(System.Int16,System.Int16) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.Int32,System.Int32> System.Math.DivRem(System.Int32,System.Int32) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.Int64,System.Int64> System.Math.DivRem(System.Int64,System.Int64) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.IntPtr,System.IntPtr> System.Math.DivRem(System.IntPtr,System.IntPtr) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.SByte,System.SByte> System.Math.DivRem(System.SByte,System.SByte) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.UInt16,System.UInt16> System.Math.DivRem(System.UInt16,System.UInt16) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.UInt32,System.UInt32> System.Math.DivRem(System.UInt32,System.UInt32) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.UInt64,System.UInt64> System.Math.DivRem(System.UInt64,System.UInt64) | [NonVersionableAttribute(...)] | -| System.ValueTuple<System.UIntPtr,System.UIntPtr> System.Math.DivRem(System.UIntPtr,System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.Version System.ApplicationId.get_Version() | [CompilerGeneratedAttribute(...)] | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.<LoadAssembly>g__LoadAssemblyLocal\|14_0(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.<LoadAssemblyBytes>g__LoadAssemblyBytesLocal\|16_0(System.ReadOnlySpan<System.Byte>,System.ReadOnlySpan<System.Byte>) | [CompilerGeneratedAttribute(...)] | -| System.Void Interop.Globalization.<ChangeCase>g____PInvoke\|6_0(System.Char*,System.Int32,System.Char*,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void Interop.Globalization.<ChangeCaseInvariant>g____PInvoke\|7_0(System.Char*,System.Int32,System.Char*,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void Interop.Globalization.<ChangeCaseTurkish>g____PInvoke\|8_0(System.Char*,System.Int32,System.Char*,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void Interop.Globalization.<InitICUFunctions>g____PInvoke\|23_0(System.IntPtr,System.IntPtr,System.Byte*,System.Byte*) | [CompilerGeneratedAttribute(...)] | -| System.Void Interop.Globalization.ChangeCase(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [LibraryImportAttribute(...)] | -| System.Void Interop.Globalization.ChangeCaseInvariant(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [LibraryImportAttribute(...)] | -| System.Void Interop.Globalization.ChangeCaseTurkish(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [LibraryImportAttribute(...)] | -| System.Void Interop.Globalization.InitICUFunctions(System.IntPtr,System.IntPtr,System.String,System.String) | [LibraryImportAttribute(...)] | -| System.Void Interop.Globalization.InitOrdinalCasingPage(System.Int32,System.Char*) | [LibraryImportAttribute(...)] | -| System.Void Microsoft.Win32.SafeHandles.SafeFileHandle.set_IsAsync(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppContext.<LogSwitchValues>g__LogDataStore\|23_0(System.Diagnostics.Tracing.RuntimeEventSource,System.Collections.Generic.Dictionary<System.Boolean,System.String>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppContext.add_FirstChanceException(System.EventHandler<System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppContext.add_ProcessExit(System.EventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppContext.add_UnhandledException(System.UnhandledExceptionEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppContext.remove_FirstChanceException(System.EventHandler<System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppContext.remove_ProcessExit(System.EventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppContext.remove_UnhandledException(System.UnhandledExceptionEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppDomain.add_DomainUnload(System.EventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppDomain.add_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppDomain.remove_DomainUnload(System.EventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.AppDomain.remove_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.ArgumentException.ThrowNullOrEmptyException(System.String,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentException.ThrowNullOrWhiteSpaceException(System.String,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentNullException.Throw(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowEqual`1(!0,!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowGreaterEqual`1(!0,!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowGreater`1(!0,!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowLessEqual`1(!0,!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowLess`1(!0,!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowNegativeOrZero`1(!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowNegative`1(!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowNotEqual`1(!0,!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ArgumentOutOfRangeException.ThrowZero`1(!0,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.Array.<Sort>g__GenericSort\|131_0`1(System.Array,System.Array,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Buffer.Memmove(System.Byte,System.Byte,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Buffer.Memmove`1(!0,!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Buffers.ArrayPoolEventSource.BufferAllocated(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferAllocatedReason) | [EventAttribute(...)] | -| System.Void System.Buffers.ArrayPoolEventSource.BufferDropped(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferDroppedReason) | [EventAttribute(...)] | -| System.Void System.Buffers.ArrayPoolEventSource.BufferRented(System.Int32,System.Int32,System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Buffers.ArrayPoolEventSource.BufferReturned(System.Int32,System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Buffers.ArrayPoolEventSource.BufferTrimPoll(System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Buffers.ArrayPoolEventSource.BufferTrimmed(System.Int32,System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Buffers.Binary.BinaryPrimitives.ThrowDestinationTooSmall() | [DoesNotReturnAttribute(...)] | -| System.Void System.Char.ConvertToUtf32_ThrowInvalidArgs(System.UInt32) | [StackTraceHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<OutputTabsAsync>d__23.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__37.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__38.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__39.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__40.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__41.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__59.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__60.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__61.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__62.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__63.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__64.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Collections.Concurrent.ConcurrentQueue`1.<Enumerate>d__26..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Collections.Concurrent.ConcurrentQueue`1.<Enumerate>d__26.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Collections.Concurrent.ConcurrentQueue`1.<Enumerate>d__26.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.<GetEnumerator>d__15..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.<GetEnumerator>d__15.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.<GetEnumerator>d__15.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Collections.Generic.CollectionExtensions.AddRange`1(System.Collections.Generic.List<!0>,System.ReadOnlySpan<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Collections.Generic.CollectionExtensions.CopyTo`1(System.Collections.Generic.List<!0>,System.Span<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Collections.Generic.CollectionExtensions.InsertRange`1(System.Collections.Generic.List<!0>,System.Int32,System.ReadOnlySpan<!0>) | [ExtensionAttribute(...)] | -| System.Void System.ConsoleCancelEventArgs.set_Cancel(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.ConsolePal.<TryGetCursorPosition>g__ReadRowOrCol\|82_3(System.Int32,System.Int32,System.IO.StdInReader,System.ReadOnlySpan<System.Byte>,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.ConsolePal.<TryGetCursorPosition>g__TransferBytes\|82_0(System.ReadOnlySpan<System.Byte>,System.IO.StdInReader) | [CompilerGeneratedAttribute(...)] | -| System.Void System.ConsolePal.InvalidateTerminalSettings() | [UnmanagedCallersOnlyAttribute(...)] | -| System.Void System.Convert.ThrowByteOverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Convert.ThrowCharOverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Convert.ThrowInt16OverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Convert.ThrowInt32OverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Convert.ThrowInt64OverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Convert.ThrowSByteOverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Convert.ThrowUInt16OverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Convert.ThrowUInt32OverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Convert.ThrowUInt64OverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.DateOnly.<AddDays>g__ThrowOutOfRange\|25_0() | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute.set_Max(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute.set_Min(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.set_Condition(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute.set_Justification(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.ExperimentalAttribute.set_UrlFormat(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.set_Url(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.set_Url(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.set_Url(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.set_Justification(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.set_MessageId(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.set_Scope(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.set_Target(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.set_Justification(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.set_MessageId(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.set_Scope(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.set_Target(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Contracts.Contract.ReportFailure(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.Exception) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.Diagnostics.Debug.Fail(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.Diagnostics.Debug.Fail(System.String,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.Diagnostics.DebugProvider.Fail(System.String,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.Diagnostics.Debugger.<LogInternal>g____PInvoke\|11_0(System.Int32,System.UInt16*,System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Debugger.LogInternal(System.Int32,System.String,System.String) | [LibraryImportAttribute(...)] | -| System.Void System.Diagnostics.DebuggerDisplayAttribute.set_Name(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.DebuggerDisplayAttribute.set_TargetTypeName(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.DebuggerDisplayAttribute.set_Type(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.DebuggerTypeProxyAttribute.set_TargetTypeName(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.DebuggerVisualizerAttribute.set_Description(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.DebuggerVisualizerAttribute.set_TargetTypeName(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.<get_ForEnumeration>d__51..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.<get_ForEnumeration>d__51.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.<get_ForEnumeration>d__51.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_Count(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_CounterType(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_DisplayName(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_DisplayUnits(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_IntervalSec(System.Single) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_Max(System.Double) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_Mean(System.Double) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_Metadata(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_Min(System.Double) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_Name(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_Series(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayload.set_StandardDeviation(System.Double) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.CounterPayloadType.set_Payload(System.Diagnostics.Tracing.CounterPayload) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_ActivityOptions(System.Diagnostics.Tracing.EventActivityOptions) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_Channel(System.Diagnostics.Tracing.EventChannel) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_EventId(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_Keywords(System.Diagnostics.Tracing.EventKeywords) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_Level(System.Diagnostics.Tracing.EventLevel) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_Message(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_Tags(System.Diagnostics.Tracing.EventTags) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_Task(System.Diagnostics.Tracing.EventTask) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventAttribute.set_Version(System.Byte) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventChannelAttribute.set_Enabled(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventChannelAttribute.set_EventChannelType(System.Diagnostics.Tracing.EventChannelType) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventCommandEventArgs.set_Arguments(System.Collections.Generic.IDictionary<System.String,System.String>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventCommandEventArgs.set_Command(System.Diagnostics.Tracing.EventCommand) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventDataAttribute.set_Name(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventFieldAttribute.set_Format(System.Diagnostics.Tracing.EventFieldFormat) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventFieldAttribute.set_Tags(System.Diagnostics.Tracing.EventFieldTags) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventListener.add_EventWritten(System.EventHandler<System.Diagnostics.Tracing.EventWrittenEventArgs>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventListener.remove_EventWritten(System.EventHandler<System.Diagnostics.Tracing.EventWrittenEventArgs>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventPayload.<GetEnumerator>d__17..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventPayload.<GetEnumerator>d__17.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventPayload.<GetEnumerator>d__17.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventPipeEventDispatcher.EventListenerSubscription.set_Level(System.Diagnostics.Tracing.EventLevel) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventPipeEventDispatcher.EventListenerSubscription.set_MatchAnyKeywords(System.Diagnostics.Tracing.EventKeywords) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventPipeEventProvider.Callback(System.Byte*,System.Int32,System.Byte,System.Int64,System.Int64,Interop.Advapi32.EVENT_FILTER_DESCRIPTOR*,System.Void*) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventSource.WriteCleanup(System.Runtime.InteropServices.GCHandle*,System.Int32) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventSourceAttribute.set_Guid(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventSourceAttribute.set_LocalizationResources(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventSourceAttribute.set_Name(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventSourceCreatedEventArgs.set_EventSource(System.Diagnostics.Tracing.EventSource) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventWrittenEventArgs.set_Payload(System.Collections.ObjectModel.ReadOnlyCollection<System.Object>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.EventWrittenEventArgs.set_TimeStamp(System.DateTime) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.ThreadPoolDequeueWork(System.Int64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.ThreadPoolDequeueWorkObject(System.Object) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.ThreadPoolEnqueueWork(System.Int64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.ThreadPoolEnqueueWorkObject(System.Object) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.ThreadTransferReceive(System.Int64,System.Int32,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.ThreadTransferReceiveObj(System.Object,System.Int32,System.String) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.ThreadTransferSend(System.Int64,System.Int32,System.String,System.Boolean,System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.ThreadTransferSendObj(System.Object,System.Int32,System.String,System.Boolean,System.Int32,System.Int32) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent(System.Int32,System.Int64,System.Int32,System.String) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent(System.Int32,System.Int64,System.Int32,System.String,System.Boolean,System.Int32,System.Int32) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.<get_ForEnumeration>d__39..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.<get_ForEnumeration>d__39.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.<get_ForEnumeration>d__39.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_CounterType(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_DisplayName(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_DisplayRateTimeScale(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_DisplayUnits(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_Increment(System.Double) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_IntervalSec(System.Single) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_Metadata(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_Name(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingCounterPayload.set_Series(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingEventCounter.set_DisplayRateTimeScale(System.TimeSpan) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingEventCounterPayloadType.set_Payload(System.Diagnostics.Tracing.IncrementingCounterPayload) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingPollingCounter.set_DisplayRateTimeScale(System.TimeSpan) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.IncrementingPollingCounterPayloadType.set_Payload(System.Diagnostics.Tracing.IncrementingCounterPayload) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.<LogThreadPoolIOEnqueue>g____PInvoke\|10_0(System.IntPtr,System.IntPtr,System.Int32,System.UInt16) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AppDomainAssemblyResolveHandlerInvoked(System.UInt16,System.String,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AppDomainLoad_V1(System.UInt64,System.UInt32,System.String,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AppDomainMemAllocated(System.UInt64,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AppDomainMemSurvived(System.UInt64,System.UInt64,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AppDomainUnload_V1(System.UInt64,System.UInt32,System.String,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AssemblyLoadContextResolvingHandlerInvoked(System.UInt16,System.String,System.String,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AssemblyLoadFromResolveHandlerInvoked(System.UInt16,System.String,System.Boolean,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AssemblyLoadStart(System.UInt16,System.String,System.String,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AssemblyLoadStop(System.UInt16,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.Boolean) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AssemblyLoad_V1(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AssemblyUnload_V1(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AuthenticodeVerificationStart_V1(System.UInt32,System.UInt32,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.AuthenticodeVerificationStop_V1(System.UInt32,System.UInt32,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.BulkType(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.CLRStackWalk(System.UInt16,System.Byte,System.Byte,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.CodeSymbols(System.UInt64,System.UInt16,System.UInt16,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionLockCreated(System.IntPtr,System.IntPtr,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionStart(System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionFlagsMap,System.UInt16,System.IntPtr,System.IntPtr,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionStop(System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionFlagsMap,System.UInt16,System.Double) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionStop(System.Double) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DCEndCompleteV2() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DCStartCompleteV2() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DebugExceptionProcessingEnd() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DebugExceptionProcessingStart() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DebugIPCEventEnd() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DebugIPCEventStart() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DecreaseMemoryPressure(System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DestroyGCHandle(System.IntPtr,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.DomainModuleLoad_V1(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.String,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.EventSource(System.Int32,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExceptionCatchStart(System.UInt64,System.UInt64,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExceptionCatchStop() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExceptionFilterStart(System.UInt64,System.UInt64,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExceptionFilterStop() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExceptionFinallyStart(System.UInt64,System.UInt64,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExceptionFinallyStop() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExceptionThrownStop() | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExceptionThrown_V1(System.String,System.String,System.IntPtr,System.UInt32,System.UInt16,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ExecutionCheckpoint(System.UInt16,System.String,System.Int64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.FinalizeObject(System.IntPtr,System.IntPtr,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCAllocationTick_V4(System.UInt32,System.UInt32,System.UInt16,System.UInt64,System.IntPtr,System.String,System.UInt32,System.IntPtr,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkEdge(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkMovedObjectRanges(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkNode(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkRCW(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkRootCCW(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkRootConditionalWeakTableElementEdge(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkRootEdge(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkRootStaticVar(System.UInt32,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCBulkSurvivingObjectRanges(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCCreateConcurrentThread_V1(System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCCreateSegment_V1(System.UInt64,System.UInt64,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCDynamicEvent(System.String,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCEnd_V1(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCFinalizersBegin_V1(System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCFinalizersEnd_V1(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCFitBucketInfo(System.UInt16,System.UInt16,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCFreeSegment_V1(System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCGenerationRange(System.Byte,System.IntPtr,System.UInt64,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCGlobalHeapHistory_V4(System.UInt64,System.Int32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt16,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCHeapStats_V2(System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32,System.UInt16,System.UInt64,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCJoin_V2(System.UInt32,System.UInt32,System.UInt32,System.UInt16,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCLOHCompact(System.UInt16,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCMarkFinalizeQueueRoots(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCMarkHandles(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCMarkOlderGenerationRoots(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCMarkStackRoots(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCMarkWithType(System.UInt32,System.UInt16,System.UInt32,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCPerHeapHistory_V3(System.UInt16,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.IntPtr,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCRestartEEBegin_V1(System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCRestartEEEnd_V1(System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCSampledObjectAllocationHigh(System.IntPtr,System.IntPtr,System.UInt32,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCSampledObjectAllocationLow(System.IntPtr,System.IntPtr,System.UInt32,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCStart_V2(System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt16,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCSuspendEEBegin_V1(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCSuspendEEEnd_V1(System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCTerminateConcurrentThread_V1(System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GCTriggered(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GenAwareBegin(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.GenAwareEnd(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ILStubCacheHit(System.UInt16,System.UInt64,System.UInt64,System.UInt32,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ILStubGenerated(System.UInt16,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.String,System.String,System.String,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.IOThreadCreate_V1(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.IOThreadRetire_V1(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.IOThreadTerminate_V1(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.IOThreadUnretire_V1(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.IncreaseMemoryPressure(System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.JitInstrumentationData(System.UInt16,System.UInt32,System.UInt32,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.JitInstrumentationDataVerbose(System.UInt16,System.UInt32,System.UInt32,System.UInt64,System.UInt64,System.UInt32,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.KnownPathProbed(System.UInt16,System.String,System.UInt16,System.Int32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogContentionLockCreated(System.IntPtr,System.IntPtr,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogContentionStart(System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionFlagsMap,System.UInt16,System.IntPtr,System.IntPtr,System.UInt64) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogContentionStop(System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionFlagsMap,System.UInt16,System.Double) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolIODequeue(System.IntPtr,System.IntPtr,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolIOEnqueue(System.IntPtr,System.IntPtr,System.Boolean,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolIOPack(System.IntPtr,System.IntPtr,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolMinMaxThreads(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadAdjustmentAdjustment(System.Double,System.UInt32,System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadAdjustmentReasonMap,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadAdjustmentSample(System.Double,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadAdjustmentStats(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.UInt16,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadStart(System.UInt32,System.UInt32,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadStop(System.UInt32,System.UInt32,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadWait(System.UInt32,System.UInt32,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkingThreadCount(System.UInt32,System.UInt16) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodDCEndV2(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodDCEndVerboseV2(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodDCStartV2(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodDCStartVerboseV2(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodDetails(System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodILToNativeMap_V1(System.UInt64,System.UInt64,System.Byte,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodJitInliningFailed(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodJitInliningFailedAnsi(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodJitInliningSucceeded(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodJitMemoryAllocatedForCode(System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodJitTailCallFailed(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodJitTailCallFailedAnsi(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodJitTailCallSucceeded(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodJittingStarted_V1(System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.String,System.String,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodLoadVerbose_V2(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32,System.String,System.String,System.String,System.UInt16,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodLoad_V2(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32,System.UInt16,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodUnloadVerbose_V2(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32,System.String,System.String,System.String,System.UInt16,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.MethodUnload_V2(System.UInt64,System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32,System.UInt16,System.UInt64) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ModuleDCEndV2(System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ModuleDCStartV2(System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ModuleLoad_V2(System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.String,System.String,System.UInt16,System.Guid,System.UInt32,System.String,System.Guid,System.UInt32,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ModuleRangeLoad(System.UInt16,System.UInt64,System.UInt32,System.UInt32,System.Byte) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ModuleUnload_V2(System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.String,System.String,System.UInt16,System.Guid,System.UInt32,System.String,System.Guid,System.UInt32,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.PinObjectAtGCTime(System.IntPtr,System.IntPtr,System.UInt64,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ProcessEvent(System.UInt32,System.UInt32,System.DateTime,System.Guid,System.Guid,System.ReadOnlySpan<System.Byte>) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ProfilerMessage(System.UInt16,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.R2RGetEntryPoint(System.UInt64,System.String,System.String,System.String,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.R2RGetEntryPointStart(System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ResolutionAttempted(System.UInt16,System.String,System.UInt16,System.String,System.UInt16,System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.RuntimeInformationStart(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt32,System.Byte,System.String,System.Guid,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.SetGCHandle(System.IntPtr,System.IntPtr,System.UInt32,System.UInt32,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.StrongNameVerificationStart_V1(System.UInt32,System.UInt32,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.StrongNameVerificationStop_V1(System.UInt32,System.UInt32,System.String,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadCreated(System.UInt64,System.UInt64,System.UInt32,System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadCreating(System.IntPtr,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadDomainEnter(System.UInt64,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolIODequeue(System.IntPtr,System.IntPtr,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolIODequeue(System.Threading.NativeOverlapped*) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolIODequeue(System.Threading.RegisteredWaitHandle) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolIOEnqueue(System.IntPtr,System.IntPtr,System.Boolean,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolIOEnqueue(System.Threading.NativeOverlapped*) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolIOEnqueue(System.Threading.RegisteredWaitHandle) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolIOPack(System.IntPtr,System.IntPtr,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolIOPack(System.Threading.NativeOverlapped*) | [NonEventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolMinMaxThreads(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolWorkerThreadAdjustmentAdjustment(System.Double,System.UInt32,System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadAdjustmentReasonMap,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolWorkerThreadAdjustmentSample(System.Double,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolWorkerThreadAdjustmentStats(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.UInt16,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolWorkerThreadStart(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolWorkerThreadStop(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolWorkerThreadWait(System.UInt32,System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadPoolWorkingThreadCount(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadRunning(System.IntPtr,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadTerminated(System.UInt64,System.UInt64,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadpoolSuspensionResumeThread(System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadpoolSuspensionSuspendThread(System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.TieredCompilationBackgroundJitStart(System.UInt16,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.TieredCompilationBackgroundJitStop(System.UInt16,System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.TieredCompilationPause(System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.TieredCompilationResume(System.UInt16,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.TieredCompilationSettings(System.UInt16,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.TypeLoadStart(System.UInt32,System.UInt16) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.TypeLoadStop(System.UInt32,System.UInt16,System.UInt16,System.UInt64,System.String) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.WorkerThreadCreate(System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.WorkerThreadRetire(System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.WorkerThreadTerminate(System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.WorkerThreadUnretire(System.UInt32,System.UInt32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.YieldProcessorMeasurement(System.UInt16,System.Double,System.Double) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.PollingPayloadType.set_Payload(System.Diagnostics.Tracing.CounterPayload) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Diagnostics.Tracing.RuntimeEventSource.LogAppContextSwitch(System.String,System.Int32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.RuntimeEventSource.ProcessorCount(System.Int32) | [EventAttribute(...)] | -| System.Void System.Diagnostics.Tracing.TraceLoggingMetadataCollector.set_Tags(System.Diagnostics.Tracing.EventFieldTags) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Enum.ThrowInvalidRuntimeType(System.Type) | [DoesNotReturnAttribute(...)] | -| System.Void System.Environment.Exit(System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.Environment.FailFast(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.Environment.FailFast(System.String,System.Exception) | [DoesNotReturnAttribute(...)] | -| System.Void System.Environment.FailFast(System.String,System.Exception,System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.Environment._Exit(System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.Exception.<ToString>g__Write\|60_0(System.String,System.Span<System.Char>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Exception.OnDeserialized(System.Runtime.Serialization.StreamingContext) | [OnDeserializedAttribute(...)] | -| System.Void System.Exception.SetCurrentStackTrace() | [StackTraceHiddenAttribute(...)] | -| System.Void System.GC.<RegisterNoGCRegionCallback>g__Callback\|67_0(System.GC.NoGCRegionCallbackFinalizerWorkItem*) | [CompilerGeneratedAttribute(...)] | -| System.Void System.GC.<RegisterNoGCRegionCallback>g__Callback\|67_0(System.GC.NoGCRegionCallbackFinalizerWorkItem*) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Void System.GC.<RegisterNoGCRegionCallback>g__Free\|67_1(System.GC.NoGCRegionCallbackFinalizerWorkItem*) | [CompilerGeneratedAttribute(...)] | -| System.Void System.GC.ConfigCallback(System.Void*,System.Void*,System.Void*,System.GC.GCConfigurationType,System.Int64) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Void System.GC.KeepAlive(System.Object) | [IntrinsicAttribute(...)] | -| System.Void System.Globalization.CalendarData.EnumCalendarInfoCallback(System.Char*,System.IntPtr) | [UnmanagedCallersOnlyAttribute(...)] | -| System.Void System.Globalization.CompareInfo.CheckCompareOptionsForCompare(System.Globalization.CompareOptions) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Globalization.CompareInfo.OnDeserialized(System.Runtime.Serialization.StreamingContext) | [OnDeserializedAttribute(...)] | -| System.Void System.Globalization.CompareInfo.OnDeserializing(System.Runtime.Serialization.StreamingContext) | [OnDeserializingAttribute(...)] | -| System.Void System.Globalization.CompareInfo.OnSerializing(System.Runtime.Serialization.StreamingContext) | [OnSerializingAttribute(...)] | -| System.Void System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions) | [DoesNotReturnAttribute(...)] | -| System.Void System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Globalization.DateTimeFormatInfo.<ValidateStyles>g__ThrowInvalid\|229_0(System.Globalization.DateTimeStyles,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Globalization.NumberFormatInfo.<ValidateParseStyleFloatingPoint>g__ThrowInvalid\|166_0(System.Globalization.NumberStyles) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Globalization.NumberFormatInfo.<ValidateParseStyleInteger>g__ThrowInvalid\|165_0(System.Globalization.NumberStyles) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Guid.GuidResult.SetFailure(System.Guid.ParseFailure) | [IsReadOnlyAttribute(...)] | -| System.Void System.Guid.ThrowBadGuidFormatSpecification() | [DoesNotReturnAttribute(...)] | -| System.Void System.Guid.ThrowGuidArrayCtorArgumentException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Guid.ThrowGuidArrayCtorArgumentException() | [StackTraceHiddenAttribute(...)] | -| System.Void System.IO.BinaryWriter.<WriteCharsCommonWithoutLengthPrefix>g__WriteToOutStream\|39_0(System.Byte[],System.Int32,System.Int32,System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.BufferedStream.<CopyToAsyncCore>d__68.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.BufferedStream.<DisposeAsync>d__33.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.BufferedStream.<FlushAsyncInternal>d__36.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.BufferedStream.<FlushWriteAsync>d__40.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.BufferedStream.<ReadFromUnderlyingStreamAsync>d__48.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.BufferedStream.<WriteToUnderlyingStreamAsync>d__59.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Enumeration.FileSystemEntry.set_Directory(System.ReadOnlySpan<System.Char>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.Enumeration.FileSystemEntry.set_OriginalRootDirectory(System.ReadOnlySpan<System.Char>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.Enumeration.FileSystemEntry.set_RootDirectory(System.ReadOnlySpan<System.Char>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.Enumeration.FileSystemEnumerable`1.set_ShouldIncludePredicate(System.IO.Enumeration.FileSystemEnumerable<!0>.FindPredicate) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.Enumeration.FileSystemEnumerable`1.set_ShouldRecursePredicate(System.IO.Enumeration.FileSystemEnumerable<!0>.FindPredicate) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.EnumerationOptions.set_AttributesToSkip(System.IO.FileAttributes) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.EnumerationOptions.set_BufferSize(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.EnumerationOptions.set_IgnoreInaccessible(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.EnumerationOptions.set_MatchCasing(System.IO.MatchCasing) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.EnumerationOptions.set_MatchType(System.IO.MatchType) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.EnumerationOptions.set_RecurseSubdirectories(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.EnumerationOptions.set_ReturnSpecialDirectories(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.File.<<WriteAllBytesAsync>g__Core\|92_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<InternalReadAllBytesAsync>d__90.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<InternalReadAllBytesUnknownLengthAsync>d__91.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<InternalReadAllLinesAsync>d__95.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<InternalReadAllTextAsync>d__86.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<InternalWriteAllLinesAsync>d__98.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<IterateFileLinesAsync>d__110..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<IterateFileLinesAsync>d__110.GetResult(System.Int16) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<IterateFileLinesAsync>d__110.OnCompleted(System.Action<System.Object>,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<IterateFileLinesAsync>d__110.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.File.<WriteToFileAsync>d__108.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.FileStream.<DisposeAsync>d__57.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.FileSystem.<ResolveLinkTarget>g__GetLinkTargetFullPath\|46_0(System.Text.ValueStringBuilder,System.ReadOnlySpan<System.Char>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.<CopyToAsyncCore>d__57.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.<DisposeAsync>d__27.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.<FlushAsyncInternal>d__55.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.<ReadAsyncSlowPath>d__37.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.<ReadFromNonSeekableAsync>d__36.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.<WriteAsyncSlowPath>d__48.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.<WriteToNonSeekableAsync>d__47.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Strategies.FileStreamStrategy.set_IsDerived(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.Stream.<<CopyToAsync>g__Core\|27_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Stream.<<ReadAsync>g__FinishReadAsync\|42_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Stream.<FinishWriteAsync>d__61.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.Stream.<ReadAtLeastAsyncCore>d__46.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamReader.<ReadAsyncInternal>d__69.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamReader.<ReadBufferAsync>d__72.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamReader.<ReadLineAsyncInternal>d__63.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamReader.<ReadToEndAsyncInternal>d__66.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamReader.<ThrowIfDisposed>g__ThrowObjectDisposedException\|73_0() | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.StreamReader.ThrowAsyncIOInProgress() | [DoesNotReturnAttribute(...)] | -| System.Void System.IO.StreamWriter.<<FlushAsyncInternal>g__Core\|76_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamWriter.<DisposeAsyncCore>d__36.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamWriter.<ThrowIfDisposed>g__ThrowObjectDisposedException\|77_0() | [CompilerGeneratedAttribute(...)] | -| System.Void System.IO.StreamWriter.<WriteAsyncInternal>d__64.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamWriter.<WriteAsyncInternal>d__68.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.StreamWriter.ThrowAsyncIOInProgress() | [DoesNotReturnAttribute(...)] | -| System.Void System.IO.StringReader.ThrowObjectDisposedException_ReaderClosed() | [DoesNotReturnAttribute(...)] | -| System.Void System.IO.TextReader.<ReadBlockAsyncInternal>d__23.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.TextReader.<ReadToEndAsync>d__17.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.TextWriter.<<WriteAsync>g__WriteAsyncCore\|60_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IO.TextWriter.<<WriteLineAsync>g__WriteLineAsyncCore\|66_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.IntPtr..ctor(System.Int32) | [NonVersionableAttribute(...)] | -| System.Void System.IntPtr..ctor(System.Int64) | [NonVersionableAttribute(...)] | -| System.Void System.IntPtr..ctor(System.Void*) | [NonVersionableAttribute(...)] | -| System.Void System.LazyHelper.ThrowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.LocalDataStoreSlot.set_Data(System.Threading.ThreadLocal<System.Object>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Math.ThrowMinMaxException`1(!0,!0) | [DoesNotReturnAttribute(...)] | -| System.Void System.Math.ThrowNegateTwosCompOverflow() | [DoesNotReturnAttribute(...)] | -| System.Void System.Math.ThrowNegateTwosCompOverflow() | [StackTraceHiddenAttribute(...)] | -| System.Void System.MemoryExtensions.CopyTo`1(!0[],System.Memory<!0>) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.CopyTo`1(!0[],System.Span<!0>) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Replace`1(System.ReadOnlySpan<!0>,System.Span<!0>,!0,!0) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Replace`1(System.Span<!0>,!0,!0) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Reverse`1(System.Span<!0>) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Sort`1(System.Span<!0>) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Sort`1(System.Span<!0>,System.Comparison<!0>) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Sort`2(System.Span<!0>,!1) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Sort`2(System.Span<!0>,System.Span<!1>) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Sort`2(System.Span<!0>,System.Span<!1>,System.Comparison<!0>) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.Sort`3(System.Span<!0>,System.Span<!1>,!2) | [ExtensionAttribute(...)] | -| System.Void System.MemoryExtensions.ThrowNullLowHighInclusive`1(!0,!0) | [DoesNotReturnAttribute(...)] | -| System.Void System.ModuleHandle.<ValidateModulePointer>g__ThrowInvalidOperationException\|11_0() | [CompilerGeneratedAttribute(...)] | -| System.Void System.ModuleHandle.<ValidateModulePointer>g__ThrowInvalidOperationException\|11_0() | [DoesNotReturnAttribute(...)] | -| System.Void System.ModuleHandle.<ValidateModulePointer>g__ThrowInvalidOperationException\|11_0() | [StackTraceHiddenAttribute(...)] | -| System.Void System.MulticastDelegate.CtorClosed(System.Object,System.IntPtr) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.CtorClosed(System.Object,System.IntPtr) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.MulticastDelegate.CtorClosedStatic(System.Object,System.IntPtr) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.CtorClosedStatic(System.Object,System.IntPtr) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.MulticastDelegate.CtorCollectibleClosedStatic(System.Object,System.IntPtr,System.IntPtr) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.CtorCollectibleClosedStatic(System.Object,System.IntPtr,System.IntPtr) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.MulticastDelegate.CtorCollectibleOpened(System.Object,System.IntPtr,System.IntPtr,System.IntPtr) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.CtorCollectibleOpened(System.Object,System.IntPtr,System.IntPtr,System.IntPtr) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.MulticastDelegate.CtorCollectibleVirtualDispatch(System.Object,System.IntPtr,System.IntPtr,System.IntPtr) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.CtorCollectibleVirtualDispatch(System.Object,System.IntPtr,System.IntPtr,System.IntPtr) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.MulticastDelegate.CtorOpened(System.Object,System.IntPtr,System.IntPtr) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.CtorOpened(System.Object,System.IntPtr,System.IntPtr) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.MulticastDelegate.CtorRTClosed(System.Object,System.IntPtr) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.CtorRTClosed(System.Object,System.IntPtr) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.MulticastDelegate.CtorVirtualDispatch(System.Object,System.IntPtr,System.IntPtr) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.CtorVirtualDispatch(System.Object,System.IntPtr,System.IntPtr) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.MulticastDelegate.ThrowNullThisInDelegateToInstance() | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.MulticastDelegate.ThrowNullThisInDelegateToInstance() | [DoesNotReturnAttribute(...)] | -| System.Void System.Nullable`1..ctor(!0) | [NonVersionableAttribute(...)] | -| System.Void System.Number.<AppendUnknownChar>g__AppendNonAsciiBytes\|115_0`1(System.Collections.Generic.ValueListBuilder<!0>,System.Char) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Number.ThrowFormatException`1(System.ReadOnlySpan<!0>) | [DoesNotReturnAttribute(...)] | -| System.Void System.Number.ThrowOverflowException(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.Number.ThrowOverflowException`1() | [DoesNotReturnAttribute(...)] | -| System.Void System.Number.ThrowOverflowOrFormatException`2(System.Number.ParsingStatus,System.ReadOnlySpan<!0>) | [DoesNotReturnAttribute(...)] | -| System.Void System.Numerics.Plane..ctor(System.Numerics.Vector3,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Plane..ctor(System.Numerics.Vector4) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Plane..ctor(System.Single,System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Quaternion..ctor(System.Numerics.Vector3,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Quaternion..ctor(System.Single,System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector2..ctor(System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector2..ctor(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector2.CopyTo(System.Single[]) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector2.CopyTo(System.Single[],System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector2.CopyTo(System.Span<System.Single>) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector3..ctor(System.Numerics.Vector2,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector3..ctor(System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector3..ctor(System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector3.CopyTo(System.Single[]) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector3.CopyTo(System.Single[],System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector3.CopyTo(System.Span<System.Single>) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector4..ctor(System.Numerics.Vector2,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector4..ctor(System.Numerics.Vector3,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector4..ctor(System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector4..ctor(System.Single,System.Single,System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector4.CopyTo(System.Single[]) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector4.CopyTo(System.Single[],System.Int32) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector4.CopyTo(System.Span<System.Single>) | [IsReadOnlyAttribute(...)] | -| System.Void System.Numerics.Vector.SetElementUnsafe(System.Numerics.Quaternion,System.Int32,System.Single) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.SetElementUnsafe(System.Numerics.Vector2,System.Int32,System.Single) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.SetElementUnsafe(System.Numerics.Vector3,System.Int32,System.Single) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.SetElementUnsafe(System.Numerics.Vector4,System.Int32,System.Single) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.SetElementUnsafe`1(System.Numerics.Vector<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.StoreAlignedNonTemporal`1(System.Numerics.Vector<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.StoreAlignedNonTemporal`1(System.Numerics.Vector<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector.StoreAligned`1(System.Numerics.Vector<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.StoreAligned`1(System.Numerics.Vector<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector.StoreUnsafe`1(System.Numerics.Vector<!0>,!0) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.StoreUnsafe`1(System.Numerics.Vector<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector.StoreUnsafe`1(System.Numerics.Vector<!0>,!0,System.UIntPtr) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.StoreUnsafe`1(System.Numerics.Vector<!0>,!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector.Store`1(System.Numerics.Vector<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Numerics.Vector.Store`1(System.Numerics.Vector<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Numerics.Vector`1..ctor(!0) | [IntrinsicAttribute(...)] | -| System.Void System.Object..ctor() | [NonVersionableAttribute(...)] | -| System.Void System.Object.Finalize() | [NonVersionableAttribute(...)] | -| System.Void System.ObjectDisposedException.ThrowIf(System.Boolean,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Void System.ObjectDisposedException.ThrowIf(System.Boolean,System.Type) | [StackTraceHiddenAttribute(...)] | -| System.Void System.ObsoleteAttribute.set_DiagnosticId(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.ObsoleteAttribute.set_UrlFormat(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Progress`1.add_ProgressChanged(System.EventHandler<!0>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Progress`1.remove_ProgressChanged(System.EventHandler<!0>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.AssemblyNameFormatter.AppendQuoted(System.Text.ValueStringBuilder,System.String) | [ExtensionAttribute(...)] | -| System.Void System.Reflection.AssemblyNameParser.ThrowInvalidAssemblyName() | [DoesNotReturnAttribute(...)] | -| System.Void System.Reflection.Emit.RuntimeModuleBuilder.<SetFieldRVAContent>g____PInvoke\|27_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.<DefineCustomAttribute>g____PInvoke\|8_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Byte*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.<SetMethodIL>g____PInvoke\|7_0(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Byte*,System.Int32,System.Byte*,System.Int32,System.Int32,System.Reflection.Emit.ExceptionHandler*,System.Int32,System.Int32*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.<SetPInvokeData>g____PInvoke\|20_0(System.Runtime.CompilerServices.QCallModule,System.UInt16*,System.UInt16*,System.Int32,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetPInvokeData(System.Runtime.CompilerServices.QCallModule,System.String,System.String,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | -| System.Void System.Reflection.EventInfo.AddEventHandler(System.Object,System.Delegate) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.EventInfo.AddEventHandler(System.Object,System.Delegate) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.EventInfo.RemoveEventHandler(System.Object,System.Delegate) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.EventInfo.RemoveEventHandler(System.Object,System.Delegate) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.FieldInfo.SetValue(System.Object,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.FieldInfo.SetValue(System.Object,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.MdFieldInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.MdFieldInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.MdFieldInfo.SetValueDirect(System.TypedReference,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.MdFieldInfo.SetValueDirect(System.TypedReference,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.MethodBaseInvoker.ThrowTargetParameterCountException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Reflection.NullabilityInfo.set_ReadState(System.Reflection.NullabilityState) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.NullabilityInfo.set_WriteState(System.Reflection.NullabilityState) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.ObfuscateAssemblyAttribute.set_StripAfterObfuscation(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.ObfuscationAttribute.set_ApplyToMembers(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.ObfuscationAttribute.set_Exclude(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.ObfuscationAttribute.set_Feature(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.ObfuscationAttribute.set_StripAfterObfuscation(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.PropertyInfo.SetValue(System.Object,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.PropertyInfo.SetValue(System.Object,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.PropertyInfo.SetValue(System.Object,System.Object,System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.PropertyInfo.SetValue(System.Object,System.Object,System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.RtFieldInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.RtFieldInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.RtFieldInfo.SetValueDirect(System.TypedReference,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.RtFieldInfo.SetValueDirect(System.TypedReference,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.<GetModule>g____PInvoke\|52_0(System.Runtime.CompilerServices.QCallAssembly,System.UInt16*,System.Runtime.CompilerServices.ObjectHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.<GetModules>g____PInvoke\|90_0(System.Runtime.CompilerServices.QCallAssembly,System.Int32,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.<GetTypeCore>g____PInvoke\|26_0(System.Runtime.CompilerServices.QCallAssembly,System.Byte*,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.<GetTypeCoreIgnoreCase>g____PInvoke\|27_0(System.Runtime.CompilerServices.QCallAssembly,System.UInt16*,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.<GetVersion>g____PInvoke\|72_0(System.Runtime.CompilerServices.QCallAssembly,System.Int32*,System.Int32*,System.Int32*,System.Int32*) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.<InternalLoad>g____PInvoke\|49_0(System.Reflection.NativeAssemblyNameParts*,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StackCrawlMarkHandle,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.GetModule(System.Runtime.CompilerServices.QCallAssembly,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.GetTypeCore(System.Runtime.CompilerServices.QCallAssembly,System.String,System.ReadOnlySpan<System.String>,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.GetTypeCoreIgnoreCase(System.Runtime.CompilerServices.QCallAssembly,System.String,System.ReadOnlySpan<System.String>,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.add__ModuleResolve(System.Reflection.ModuleResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.RuntimeAssembly.remove__ModuleResolve(System.Reflection.ModuleResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Reflection.RuntimeConstructorInfo.ThrowNoInvokeException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Reflection.RuntimeMethodInfo.InvokePropertySetter(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.RuntimeMethodInfo.InvokePropertySetter(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.RuntimeMethodInfo.ThrowNoInvokeException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Reflection.RuntimePropertyInfo.SetValue(System.Object,System.Object,System.Object[]) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.RuntimePropertyInfo.SetValue(System.Object,System.Object,System.Object[]) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.RuntimePropertyInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.RuntimePropertyInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Reflection.TypeInfo.<GetDeclaredMethods>d__10..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.TypeInfo.<GetDeclaredMethods>d__10.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.TypeInfo.<GetDeclaredMethods>d__10.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.TypeInfo.<get_DeclaredNestedTypes>d__22..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.TypeInfo.<get_DeclaredNestedTypes>d__22.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Reflection.TypeInfo.<get_DeclaredNestedTypes>d__22.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Resources.ResourceFallbackManager.<GetEnumerator>d__5..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Resources.ResourceFallbackManager.<GetEnumerator>d__5.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Resources.ResourceFallbackManager.<GetEnumerator>d__5.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start`1(!0) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start`1(!0) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start`1(!0) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start`1(!0) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef(System.Array,System.IntPtr,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef(System.Array,System.IntPtr,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef(System.Array,System.IntPtr,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper(System.Object,System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper(System.Object,System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper(System.Object,System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper_NoCacheLookup(System.Object,System.Void*,System.Object) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper_NoCacheLookup(System.Object,System.Void*,System.Object) | [DebuggerStepThroughAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper_NoCacheLookup(System.Object,System.Void*,System.Object) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.set_IsOptional(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.ContractHelper.TriggerFailure(System.Diagnostics.Contracts.ContractFailureKind,System.String,System.String,System.String,System.Exception) | [DebuggerNonUserCodeAttribute(...)] | -| System.Void System.Runtime.CompilerServices.ContractHelper.add_InternalContractFailed(System.EventHandler<System.Diagnostics.Contracts.ContractFailedEventArgs>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.CompilerServices.ContractHelper.remove_InternalContractFailed(System.EventHandler<System.Diagnostics.Contracts.ContractFailedEventArgs>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.CompilerServices.InternalsVisibleToAttribute.set_AllInternalsVisible(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.CompilerServices.RuntimeCompatibilityAttribute.set_WrapNonExceptionThrows(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.DispatchTailCalls(System.IntPtr,delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void>,System.Byte) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.InitializeArray(System.Array,System.RuntimeFieldHandle) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.TaskAwaiter.GetResult() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,System.Threading.Tasks.ConfigureAwaitOptions) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Task,System.Threading.Tasks.ConfigureAwaitOptions) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte,System.Byte,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte,System.Byte,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte,System.Byte,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte,System.Byte,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.Copy`1(!0,System.Void*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.Copy`1(!0,System.Void*) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.Copy`1(System.Void*,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.Copy`1(System.Void*,!0) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte,System.Byte,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte,System.Byte,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte,System.Byte,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte,System.Byte,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.SkipInit`1(!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.SkipInit`1(!0) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.WriteUnaligned`1(System.Byte,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.WriteUnaligned`1(System.Byte,!0) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.WriteUnaligned`1(System.Void*,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.WriteUnaligned`1(System.Void*,!0) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.Write`1(System.Void*,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.CompilerServices.Unsafe.Write`1(System.Void*,!0) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.CompilerServices.UnsafeAccessorAttribute.set_Name(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.ControlledExecution.ResetAbortThread() | [SuppressGCTransitionAttribute(...)] | -| System.Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() | [DoesNotReturnAttribute(...)] | -| System.Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(System.Exception) | [DoesNotReturnAttribute(...)] | -| System.Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(System.Exception) | [StackTraceHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.ComWrappers.<GetIUnknownImplInternal>g____PInvoke\|25_0(System.IntPtr*,System.IntPtr*,System.IntPtr*) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.ComWrappers.SetGlobalInstanceRegisteredForMarshalling(System.Int64) | [SuppressGCTransitionAttribute(...)] | -| System.Void System.Runtime.InteropServices.ComWrappers.SetGlobalInstanceRegisteredForTrackerSupport(System.Int64) | [SuppressGCTransitionAttribute(...)] | -| System.Void System.Runtime.InteropServices.LibraryImportAttribute.set_EntryPoint(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.LibraryImportAttribute.set_SetLastError(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.LibraryImportAttribute.set_StringMarshalling(System.Runtime.InteropServices.StringMarshalling) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.LibraryImportAttribute.set_StringMarshallingCustomType(System.Type) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.set_ConstantElementCount(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.set_CountElementName(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.set_ElementIndirectionDepth(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromArray\|18_2>d`1..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromArray\|18_2>d`1.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromArray\|18_2>d`1.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromMemoryManager\|18_1>d`1..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromMemoryManager\|18_1>d`1.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromMemoryManager\|18_1>d`1.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromString\|18_0>d`1..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromString\|18_0>d`1.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromString\|18_0>d`1.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.InteropServices.NFloat..ctor(System.Double) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.InteropServices.NFloat..ctor(System.Single) | [NonVersionableAttribute(...)] | -| System.Void System.Runtime.InteropServices.PosixSignalContext.set_Cancel(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.PosixSignalContext.set_Signal(System.Runtime.InteropServices.PosixSignal) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.InteropServices.PosixSignalRegistration.<OnPosixSignal>g__HandleSignal\|10_0(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.CopyTo`1(System.Runtime.Intrinsics.Vector64<!0>,!0[]) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.CopyTo`1(System.Runtime.Intrinsics.Vector64<!0>,!0[],System.Int32) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.CopyTo`1(System.Runtime.Intrinsics.Vector64<!0>,System.Span<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.SetElementUnsafe`1(System.Runtime.Intrinsics.Vector64<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.StoreAligned`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.StoreAligned`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.StoreUnsafe`1(System.Runtime.Intrinsics.Vector64<!0>,!0) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.StoreUnsafe`1(System.Runtime.Intrinsics.Vector64<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.StoreUnsafe`1(System.Runtime.Intrinsics.Vector64<!0>,!0,System.UIntPtr) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.StoreUnsafe`1(System.Runtime.Intrinsics.Vector64<!0>,!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.Store`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector64.Store`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.CopyTo`1(System.Runtime.Intrinsics.Vector128<!0>,!0[]) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.CopyTo`1(System.Runtime.Intrinsics.Vector128<!0>,!0[],System.Int32) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.CopyTo`1(System.Runtime.Intrinsics.Vector128<!0>,System.Span<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.SetElementUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.SetLowerUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.SetUpperUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreAligned`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreAligned`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreLowerUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,!0,System.UIntPtr) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,!0) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,!0,System.UIntPtr) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.StoreUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.Store`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector128.Store`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.CopyTo`1(System.Runtime.Intrinsics.Vector256<!0>,!0[]) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.CopyTo`1(System.Runtime.Intrinsics.Vector256<!0>,!0[],System.Int32) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.CopyTo`1(System.Runtime.Intrinsics.Vector256<!0>,System.Span<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.SetElementUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.SetLowerUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.SetUpperUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.StoreAligned`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.StoreAligned`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.StoreUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,!0) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.StoreUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.StoreUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,!0,System.UIntPtr) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.StoreUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.Store`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector256.Store`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.CopyTo`1(System.Runtime.Intrinsics.Vector512<!0>,!0[]) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.CopyTo`1(System.Runtime.Intrinsics.Vector512<!0>,!0[],System.Int32) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.CopyTo`1(System.Runtime.Intrinsics.Vector512<!0>,System.Span<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.SetElementUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,System.Int32,!0) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.SetLowerUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.SetUpperUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.StoreAligned`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.StoreAligned`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.StoreUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,!0) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.StoreUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.StoreUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,!0,System.UIntPtr) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.StoreUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,!0,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.Store`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [ExtensionAttribute(...)] | -| System.Void System.Runtime.Intrinsics.Vector512.Store`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [IntrinsicAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<InternalSetProfileRoot>g____PInvoke\|3_0(System.UInt16*) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<InternalStartProfile>g____PInvoke\|4_0(System.UInt16*,System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<LoadFromPath>g____PInvoke\|5_0(System.IntPtr,System.UInt16*,System.UInt16*,System.Runtime.CompilerServices.ObjectHandleOnStack) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<get_All>d__85..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<get_All>d__85.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<get_All>d__85.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<get_Assemblies>d__55..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<get_Assemblies>d__55.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.<get_Assemblies>d__55.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.InternalSetProfileRoot(System.String) | [LibraryImportAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.InternalStartProfile(System.String,System.IntPtr) | [LibraryImportAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(System.IntPtr,System.String,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.add_AssemblyLoad(System.AssemblyLoadEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.add_AssemblyResolve(System.ResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.add_ResourceResolve(System.ResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.add_TypeResolve(System.ResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.add__resolving(System.Func<System.Reflection.Assembly,System.Reflection.AssemblyName,System.Runtime.Loader.AssemblyLoadContext>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.add__resolvingUnmanagedDll(System.Func<System.IntPtr,System.Reflection.Assembly,System.String>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.add__unloading(System.Action<System.Runtime.Loader.AssemblyLoadContext>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.remove_AssemblyLoad(System.AssemblyLoadEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.remove_AssemblyResolve(System.ResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.remove_ResourceResolve(System.ResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.remove_TypeResolve(System.ResolveEventHandler) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.remove__resolving(System.Func<System.Reflection.Assembly,System.Reflection.AssemblyName,System.Runtime.Loader.AssemblyLoadContext>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.remove__resolvingUnmanagedDll(System.Func<System.IntPtr,System.Reflection.Assembly,System.String>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.AssemblyLoadContext.remove__unloading(System.Action<System.Runtime.Loader.AssemblyLoadContext>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Loader.LibraryNameVariation.<DetermineLibraryNameVariations>d__5..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Loader.LibraryNameVariation.<DetermineLibraryNameVariations>d__5.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Loader.LibraryNameVariation.<DetermineLibraryNameVariations>d__5.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Runtime.Serialization.DeserializationTracker.set_DeserializationInProgress(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Serialization.SerializationInfo.set_IsAssemblyNameSetExplicit(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Serialization.SerializationInfo.set_IsFullTypeNameSetExplicit(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Versioning.ObsoletedOSPlatformAttribute.set_Url(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.set_Url(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.RuntimeType.ActivatorCache.ctor>g__CtorNoopStub\|4_1(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.AllowPartiallyTrustedCallersAttribute.set_PartialTrustVisibilityLevel(System.Security.PartialTrustVisibilityLevel) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.PermissionSet.Deny() | [ObsoleteAttribute(...)] | -| System.Void System.Security.Permissions.SecurityAttribute.set_Action(System.Security.Permissions.SecurityAction) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityAttribute.set_Unrestricted(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_Assertion(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_BindingRedirects(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_ControlAppDomain(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_ControlDomainPolicy(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_ControlEvidence(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_ControlPolicy(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_ControlPrincipal(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_ControlThread(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_Execution(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_Flags(System.Security.Permissions.SecurityPermissionFlag) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_Infrastructure(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_RemotingConfiguration(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_SerializationFormatter(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_SkipVerification(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.Permissions.SecurityPermissionAttribute.set_UnmanagedCode(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_Demanded(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_DenySetInstance(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_FailedAssemblyInfo(System.Reflection.AssemblyName) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_GrantedSet(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_Method(System.Reflection.MethodInfo) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_PermissionState(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_PermissionType(System.Type) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_PermitOnlySetInstance(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_RefusedSet(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityException.set_Url(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Security.SecurityRulesAttribute.set_SkipVerificationInFullTrust(System.Boolean) | [CompilerGeneratedAttribute(...)] | -| System.Void System.SpanHelpers.ThrowMustBeNullTerminatedString() | [DoesNotReturnAttribute(...)] | -| System.Void System.String.ThrowSubstringArgumentOutOfRange(System.Int32,System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.Text.DecoderExceptionFallbackBuffer.Throw(System.Byte[],System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.Text.DecoderFallbackBuffer.ThrowLastBytesRecursive(System.Byte[]) | [DoesNotReturnAttribute(...)] | -| System.Void System.Text.EncoderFallbackBuffer.ThrowLastCharRecursive(System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.Text.Encoding.ThrowBytesOverflow() | [DoesNotReturnAttribute(...)] | -| System.Void System.Text.Encoding.ThrowCharsOverflow() | [DoesNotReturnAttribute(...)] | -| System.Void System.Text.Encoding.ThrowCharsOverflow() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Text.Encoding.ThrowConversionOverflow() | [DoesNotReturnAttribute(...)] | -| System.Void System.Text.Encoding.ThrowConversionOverflow() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Text.TranscodingStream.<<DisposeAsync>g__DisposeAsyncCore\|30_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Text.TranscodingStream.<<ReadAsync>g__ReadAsyncCore\|41_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Text.TranscodingStream.<<WriteAsync>g__WriteAsyncCore\|50_0>d.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Text.TranscodingStream.<EnsurePreReadConditions>g__InitializeReadDataStructures\|33_0() | [CompilerGeneratedAttribute(...)] | -| System.Void System.Text.TranscodingStream.<EnsurePreWriteConditions>g__InitializeReadDataStructures\|34_0() | [CompilerGeneratedAttribute(...)] | -| System.Void System.Text.TranscodingStream.ThrowIfDisposed() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Text.TranscodingStream.ThrowObjectDisposedException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Text.TranscodingStream.ThrowObjectDisposedException() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Text.UTF8Encoding.UTF8EncodingSealed.<GetMaxByteCount>g__ThrowArgumentException\|7_0(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Text.UTF8Encoding.UTF8EncodingSealed.<GetMaxCharCount>g__ThrowArgumentException\|8_0(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Text.Unicode.TextSegmentationUtility.Processor`1.set_CurrentCodeUnitOffset(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Text.Unicode.TextSegmentationUtility.Processor`1.set_CurrentType(System.Text.Unicode.GraphemeClusterBreakType) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.CancellationToken.ThrowOperationCanceledException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Threading.CancellationTokenRegistration.<Dispose>g__WaitForCallbackIfNecessary\|3_0(System.Int64,System.Threading.CancellationTokenSource.CallbackNode) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.CancellationTokenSource.Registrations.<EnterLock>g__Contention\|13_0(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.CancellationTokenSource.Registrations.<WaitForCallbackToCompleteAsync>d__12.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.ExecutionContext.ThrowNullContext() | [DoesNotReturnAttribute(...)] | -| System.Void System.Threading.ExecutionContext.ThrowNullContext() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Threading.Interlocked.MemoryBarrier() | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Interlocked.ReadMemoryBarrier() | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Monitor.ThrowLockTakenException() | [DoesNotReturnAttribute(...)] | -| System.Void System.Threading.PortableThreadPool.WaitThreadNode.set_Next(System.Threading.PortableThreadPool.WaitThreadNode) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.RegisteredWaitHandle.set_TimeoutTimeMs(System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.RegisteredWaitHandle.set_UserUnregisterWaitHandle(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.RegisteredWaitHandle.set_UserUnregisterWaitHandleValue(System.IntPtr) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.RegisteredWaitHandle.set_WaitThread(System.Threading.PortableThreadPool.WaitThread) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.SemaphoreSlim.<WaitUntilCountOrTimeoutAsync>d__31.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared.<ScheduleCapturedContext>g__ScheduleSynchronizationContext\|2_0(System.Threading.SynchronizationContext,System.Action<System.Object>,System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared.<ScheduleCapturedContext>g__ScheduleTaskScheduler\|2_1(System.Threading.Tasks.TaskScheduler,System.Action<System.Object>,System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.ThrowForFailedGetResult() | [StackTraceHiddenAttribute(...)] | -| System.Void System.Threading.Tasks.Task.WhenAllPromise.<Invoke>g__HandleTask\|3_0(System.Threading.Tasks.Task,System.Threading.Tasks.Task.WhenAllPromise.<>c__DisplayClass3_0) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Tasks.TaskAsyncEnumerableExtensions.<ToBlockingEnumerable>d__3`1..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.Tasks.TaskAsyncEnumerableExtensions.<ToBlockingEnumerable>d__3`1.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.Tasks.TaskAsyncEnumerableExtensions.<ToBlockingEnumerable>d__3`1.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.Tasks.TaskScheduler.add_UnobservedTaskException(System.EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Tasks.TaskScheduler.remove_UnobservedTaskException(System.EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs>) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Tasks.TaskToAsyncResult.TaskAsyncResult.ctor>b__2_0() | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Tasks.Task`1.<ConfigureAwait>g__ThrowForInvalidOptions\|36_0(System.Threading.Tasks.ConfigureAwaitOptions) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Tasks.ThreadPoolTaskScheduler.<FilterTasksFromWorkItems>d__6..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.Tasks.ThreadPoolTaskScheduler.<FilterTasksFromWorkItems>d__6.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.Tasks.ThreadPoolTaskScheduler.<FilterTasksFromWorkItems>d__6.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.AwaitTaskContinuationScheduled(System.Int32,System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.DebugFacilityMessage1(System.String,System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.DebugFacilityMessage(System.String,System.String) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.IncompleteAsyncMethod(System.Runtime.CompilerServices.IAsyncStateMachineBox) | [NonEventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.IncompleteAsyncMethod(System.String) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.NewID(System.Int32) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.RunningContinuation(System.Int32,System.Int64) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.RunningContinuation(System.Int32,System.Object) | [NonEventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.RunningContinuationList(System.Int32,System.Int32,System.Int64) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.RunningContinuationList(System.Int32,System.Int32,System.Object) | [NonEventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.SetActivityId(System.Guid) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TaskCompleted(System.Int32,System.Int32,System.Int32,System.Boolean) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TaskScheduled(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TaskStarted(System.Int32,System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TaskWaitBegin(System.Int32,System.Int32,System.Int32,System.Threading.Tasks.TplEventSource.TaskWaitBehavior,System.Int32) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TaskWaitContinuationComplete(System.Int32) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TaskWaitContinuationStarted(System.Int32) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TaskWaitEnd(System.Int32,System.Int32,System.Int32) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TraceOperationBegin(System.Int32,System.String,System.Int64) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TraceOperationEnd(System.Int32,System.Threading.Tasks.AsyncCausalityStatus) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TraceOperationRelation(System.Int32,System.Threading.Tasks.CausalityRelation) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TraceSynchronousWorkBegin(System.Int32,System.Threading.Tasks.CausalitySynchronousWork) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.TplEventSource.TraceSynchronousWorkEnd(System.Threading.Tasks.CausalitySynchronousWork) | [EventAttribute(...)] | -| System.Void System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.cctor>g__ThrowUnexpectedStateForKnownCallback\|4_1(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Tasks.ValueTask`1.ValueTaskSourceAsTask.cctor>g__ThrowUnexpectedStateForKnownCallback\|4_1(System.Object) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Thread.<InformThreadNameChange>g____PInvoke\|26_0(System.Threading.ThreadHandle,System.UInt16*,System.Int32) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Thread.InformThreadNameChange(System.Threading.ThreadHandle,System.String,System.Int32) | [LibraryImportAttribute(...)] | -| System.Void System.Threading.ThreadPool.<GetQueuedWorkItems>d__26..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.ThreadPool.<GetQueuedWorkItems>d__26.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.ThreadPool.<GetQueuedWorkItems>d__26.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.TimerQueue.<GetTimersForDebugger>d__7..ctor(System.Int32) | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.TimerQueue.<GetTimersForDebugger>d__7.Dispose() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.TimerQueue.<GetTimersForDebugger>d__7.Reset() | [DebuggerHiddenAttribute(...)] | -| System.Void System.Threading.TimerQueue.set_ActiveCount(System.Int64) | [CompilerGeneratedAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Boolean,System.Boolean) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Boolean,System.Boolean) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Byte,System.Byte) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Byte,System.Byte) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Double,System.Double) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Double,System.Double) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Int16,System.Int16) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Int16,System.Int16) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Int32,System.Int32) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Int32,System.Int32) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Int64,System.Int64) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Int64,System.Int64) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.IntPtr,System.IntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.IntPtr,System.IntPtr) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.SByte,System.SByte) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.SByte,System.SByte) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Single,System.Single) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.Single,System.Single) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.UInt16,System.UInt16) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.UInt16,System.UInt16) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.UInt32,System.UInt32) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.UInt32,System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.UInt64,System.UInt64) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.UInt64,System.UInt64) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.UIntPtr,System.UIntPtr) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write(System.UIntPtr,System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.Volatile.Write`1(!0,!0) | [IntrinsicAttribute(...)] | -| System.Void System.Threading.Volatile.Write`1(!0,!0) | [NonVersionableAttribute(...)] | -| System.Void System.Threading.WaitHandleExtensions.SetSafeWaitHandle(System.Threading.WaitHandle,Microsoft.Win32.SafeHandles.SafeWaitHandle) | [ExtensionAttribute(...)] | -| System.Void System.ThrowHelper.ArgumentOutOfRangeException_Enum_Value() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowAccessViolationException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowAddingDuplicateWithKeyArgumentException`1(!0) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowAggregateException(System.Collections.Generic.List<System.Exception>) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException(System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException(System.ExceptionResource,System.ExceptionArgument) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_Arg_CannotBeNaN() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_ArgumentNull_TypedRefType() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_Argument_IncompatibleArrayType() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_BadComparer(System.Object) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_CannotExtractScalar(System.ExceptionArgument) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_DestinationTooShort() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_HandleNotAsync(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_HandleNotSync(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_InvalidHandle(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_OverlapAlignmentMismatch() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentException_TupleIncorrectType(System.Object) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentNullException(System.ExceptionArgument,System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException(System.ExceptionArgument) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException(System.ExceptionArgument,System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException(System.ExceptionArgument,System.Int32,System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException_NeedNonNegNum(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException_PrecisionTooLarge() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRangeException_SymbolDoesNotFit() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_BadHourMinuteSecond() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_BadYearMonthDay() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_DayNumber(System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_IndexMustBeLessException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_Month(System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_Range`1(System.String,!0,!0,!0) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_TimeSpanTooLong() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArgumentOutOfRange_Year() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArraySegmentCtorValidationFailedExceptions(System.Array,System.Int32,System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowArrayTypeMismatchException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowCountArgumentOutOfRange_ArgumentOutOfRange_Count() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowEndOfFileException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowFormatException_BadBoolean(System.ReadOnlySpan<System.Char>) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowFormatException_BadFormatSpecifier() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowFormatException_NeedSingleChar() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowFormatIndexOutOfRange() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowFormatInvalidString() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowFormatInvalidString(System.Int32,System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowIndexOutOfRangeException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource,System.Exception) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_ConcurrentOperationsNotSupported() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_EnumCurrent(System.Int32) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_HandleIsNotInitialized() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_HandleIsNotPinned() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumEnded() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumNotStarted() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumOpCantHappen() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_InvalidOperation_NoValue() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidOperationException_InvalidUtf8() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported(System.Type) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowKeyNotFoundException`1(!0) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowLengthArgumentOutOfRange_ArgumentOutOfRange_NeedNonNegNum() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowNotSupportedException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowNotSupportedException(System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowNotSupportedException_UnreadableStream() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowNotSupportedException_UnseekableStream() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowNotSupportedException_UnwritableStream() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowObjectDisposedException(System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowObjectDisposedException(System.Object) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowObjectDisposedException(System.Type) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowObjectDisposedException_FileClosed() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowObjectDisposedException_StreamClosed(System.String) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowOutOfMemoryException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowOutOfMemoryException_StringTooLong() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowOverflowException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowOverflowException_TimeSpanTooLong() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowRankException(System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowSerializationException(System.ExceptionResource) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLessOrEqual() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowUnexpectedStateForKnownCallback(System.Object) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowValueArgumentOutOfRange_NeedNonNegNumException() | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowWrongKeyTypeArgumentException`1(!0,System.Type) | [DoesNotReturnAttribute(...)] | -| System.Void System.ThrowHelper.ThrowWrongValueTypeArgumentException`1(!0,System.Type) | [DoesNotReturnAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`1(System.Tuple<!0>,!0) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`2(System.Tuple<!0,!1>,!0,!1) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`3(System.Tuple<!0,!1,!2>,!0,!1,!2) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`4(System.Tuple<!0,!1,!2,!3>,!0,!1,!2,!3) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`5(System.Tuple<!0,!1,!2,!3,!4>,!0,!1,!2,!3,!4) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`6(System.Tuple<!0,!1,!2,!3,!4,!5>,!0,!1,!2,!3,!4,!5) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`7(System.Tuple<!0,!1,!2,!3,!4,!5,!6>,!0,!1,!2,!3,!4,!5,!6) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`8(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7>>,!0,!1,!2,!3,!4,!5,!6,!7) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`9(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8>>,!0,!1,!2,!3,!4,!5,!6,!7,!8) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`10(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`11(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`12(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`13(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`14(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`15(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`16(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`17(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`18(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`19(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`20(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18,!19) | [ExtensionAttribute(...)] | -| System.Void System.TupleExtensions.Deconstruct`21(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19,!20>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18,!19,!20) | [ExtensionAttribute(...)] | -| System.Void System.UIntPtr..ctor(System.UInt32) | [NonVersionableAttribute(...)] | -| System.Void System.UIntPtr..ctor(System.UInt64) | [NonVersionableAttribute(...)] | -| System.Void System.UIntPtr..ctor(System.Void*) | [NonVersionableAttribute(...)] | -| System.Void System.Version.<TryFormatCore>g__ThrowArgumentException\|35_0`1(System.String) | [CompilerGeneratedAttribute(...)] | -| System.Void* System.IntPtr.ToPointer() | [NonVersionableAttribute(...)] | -| System.Void* System.IntPtr.op_Explicit(System.IntPtr) | [NonVersionableAttribute(...)] | -| System.Void* System.Runtime.CompilerServices.Unsafe.Add`1(System.Void*,System.Int32) | [IntrinsicAttribute(...)] | -| System.Void* System.Runtime.CompilerServices.Unsafe.Add`1(System.Void*,System.Int32) | [NonVersionableAttribute(...)] | -| System.Void* System.Runtime.CompilerServices.Unsafe.AsPointer`1(!0) | [IntrinsicAttribute(...)] | -| System.Void* System.Runtime.CompilerServices.Unsafe.AsPointer`1(!0) | [NonVersionableAttribute(...)] | -| System.Void* System.Runtime.CompilerServices.Unsafe.Subtract`1(System.Void*,System.Int32) | [IntrinsicAttribute(...)] | -| System.Void* System.Runtime.CompilerServices.Unsafe.Subtract`1(System.Void*,System.Int32) | [NonVersionableAttribute(...)] | -| System.Void* System.UIntPtr.ToPointer() | [NonVersionableAttribute(...)] | -| System.Void* System.UIntPtr.op_Explicit(System.UIntPtr) | [NonVersionableAttribute(...)] | -| System.__DTString | [IsByRefLikeAttribute(...)] | -| bool | [IsReadOnlyAttribute(...)] | -| bool | [RequiresLocationAttribute(...)] | -| bool | [ScopedRefAttribute(...)] | -| byte | [ConstantExpectedAttribute(...)] | -| byte | [IsReadOnlyAttribute(...)] | -| byte | [RequiresLocationAttribute(...)] | -| char | [IsReadOnlyAttribute(...)] | -| char[] | [ParamArrayAttribute(...)] | -| decimal | [IsReadOnlyAttribute(...)] | -| decimal | [NonVersionableAttribute(...)] | -| decimal | [ScopedRefAttribute(...)] | -| double | [IsReadOnlyAttribute(...)] | -| double | [RequiresLocationAttribute(...)] | -| double | [ScopedRefAttribute(...)] | -| float | [IsReadOnlyAttribute(...)] | -| float | [RequiresLocationAttribute(...)] | -| int | [IsReadOnlyAttribute(...)] | -| int | [RequiresLocationAttribute(...)] | -| int | [ScopedRefAttribute(...)] | -| int[] | [ParamArrayAttribute(...)] | -| long | [IsReadOnlyAttribute(...)] | -| long | [RequiresLocationAttribute(...)] | -| long[] | [ParamArrayAttribute(...)] | -| object | [NotNullAttribute(...)] | -| object[] | [ParamArrayAttribute(...)] | -| sbyte | [IsReadOnlyAttribute(...)] | -| sbyte | [RequiresLocationAttribute(...)] | -| short | [IsReadOnlyAttribute(...)] | -| short | [RequiresLocationAttribute(...)] | -| string | [AllowNullAttribute(...)] | -| string | [ConstantExpectedAttribute(...)] | -| string | [DisallowNullAttribute(...)] | -| string | [NonVersionableAttribute(...)] | -| string | [NotNullAttribute(...)] | -| string.Empty | [IntrinsicAttribute(...)] | -| string[] | [ParamArrayAttribute(...)] | -| uint | [IsReadOnlyAttribute(...)] | -| uint | [RequiresLocationAttribute(...)] | -| ulong | [IsReadOnlyAttribute(...)] | -| ulong | [RequiresLocationAttribute(...)] | -| ushort | [IsReadOnlyAttribute(...)] | -| ushort | [RequiresLocationAttribute(...)] | -| void* | [NotNullAttribute(...)] | -attrArgNamed -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext Internal.Runtime.InteropServices.ComponentActivator.GetIsolatedComponentLoadContext(System.String) | [RequiresUnreferencedCodeAttribute(...)] | Url | https://aka.ms/dotnet-illink/nativehost | -| Interop.BOOL System.Reflection.RuntimeAssembly.GetIsCollectible(System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetIsCollectible | -| Interop.BOOL System.RuntimeMethodHandle.GetIsCollectible(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeMethodHandle_GetIsCollectible | -| Interop.BOOL System.RuntimeMethodHandle.IsCAVisibleFromDecoratedType(System.Runtime.CompilerServices.QCallTypeHandle,System.RuntimeMethodHandleInternal,System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.QCallModule) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeMethodHandle_IsCAVisibleFromDecoratedType | -| Interop.BOOL System.RuntimeTypeHandle.IsCollectible(System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_IsCollectible | -| Interop.BOOL System.Threading.Thread.YieldInternal() | [LibraryImportAttribute(...)] | EntryPoint | ThreadNative_YieldThread | -| System.AppDomain System.AppDomain.CreateDomain(System.String) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0024 | -| System.AppDomain System.AppDomain.CreateDomain(System.String) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Array System.Array.CreateInstance(System.Type,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | MDArrays of Rank != 1 can be created because they don't implement generic interfaces. | -| System.Array System.Array.CreateInstance(System.Type,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | MDArrays of Rank != 1 can be created because they don't implement generic interfaces. | -| System.Attribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Attribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.Attribute System.Diagnostics.Tracing.EventSource.GetCustomAttributeHelper(System.Reflection.MemberInfo,System.Type,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which has dynamically accessed members requirements, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.AttributeUsageAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.AttributeUsageAttribute System.Reflection.CustomAttribute.GetAttributeUsage(System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Module.ResolveType is marked as RequiresUnreferencedCode because it relies on tokenswhich are not guaranteed to be stable across trimming. So if somebody hardcodes a token it could break.The usage here is not like that as all these tokens come from existing metadata loaded from some ILand so trimming has no effect (the tokens are read AFTER trimming occurred). | -| System.Boolean Interop.Globalization.GetJapaneseEraStartDate(System.Int32,System.Int32,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | GlobalizationNative_GetJapaneseEraStartDate | -| System.Boolean Interop.Kernel32.CloseHandle(System.IntPtr) | [LibraryImportAttribute(...)] | SetLastError | True | -| System.Boolean Interop.Kernel32.ReleaseMutex(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [LibraryImportAttribute(...)] | SetLastError | True | -| System.Boolean Interop.Kernel32.ReleaseSemaphore(Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | SetLastError | True | -| System.Boolean Interop.Kernel32.ResetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [LibraryImportAttribute(...)] | SetLastError | True | -| System.Boolean Interop.Kernel32.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [LibraryImportAttribute(...)] | SetLastError | True | -| System.Boolean System.Attribute.Equals(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Unused fields don't make a difference for equality | -| System.Boolean System.Diagnostics.Debugger.LaunchInternal() | [LibraryImportAttribute(...)] | EntryPoint | DebugDebugger_Launch | -| System.Boolean System.Diagnostics.StackFrameExtensions.HasMethod(System.Diagnostics.StackFrame) | [UnconditionalSuppressMessageAttribute(...)] | Justification | StackFrame.GetMethod is used to establish if method is available. | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.GetNextEvent(System.UInt64,System.Diagnostics.Tracing.EventPipeEventInstanceData*) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_GetNextEvent | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.GetSessionInfo(System.UInt64,System.Diagnostics.Tracing.EventPipeSessionInfo*) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_GetSessionInfo | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.SignalSession(System.UInt64) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_SignalSession | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.WaitForSessionSignal(System.UInt64,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_WaitForSessionSignal | -| System.Boolean System.MdUtf8String.EqualsCaseInsensitive(System.Void*,System.Void*,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | MdUtf8String_EqualsCaseInsensitive | -| System.Boolean System.Reflection.CustomAttribute.FilterCustomAttributeRecord(System.Reflection.MetadataToken,System.Reflection.MetadataImport,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,System.Boolean,System.RuntimeType.ListBuilder<System.Object>,System.RuntimeType,System.IRuntimeMethodInfo,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Module.ResolveMethod and Module.ResolveType are marked as RequiresUnreferencedCode because they rely on tokenswhich are not guaranteed to be stable across trimming. So if somebody hardcodes a token it could break.The usage here is not like that as all these tokens come from existing metadata loaded from some ILand so trimming has no effect (the tokens are read AFTER trimming occurred). | -| System.Boolean System.Reflection.Emit.RuntimeTypeBuilder.IsAssignableFrom(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The GetInterfaces technically requires all interfaces to be preservedBut in this case it acts only on TypeBuilder which is never trimmed (as it's runtime created). | -| System.Boolean System.Reflection.LoaderAllocatorScout.Destroy(System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | LoaderAllocator_Destroy | -| System.Boolean System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata(System.Runtime.CompilerServices.QCallAssembly,System.Byte*,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_InternalTryGetRawMetadata | -| System.Boolean System.Reflection.Metadata.MetadataUpdater.IsApplyUpdateSupported() | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_IsApplyUpdateSupported | -| System.Boolean System.Reflection.RuntimeAssembly.GetCodeBase(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetCodeBase | -| System.Boolean System.Resources.ResourceReader.<DeserializeObject>g__InitializeBinaryFormatterLocal\|5_0() | [UnconditionalSuppressMessageAttribute(...)] | Justification | InitializeBinaryFormatter will get trimmed out when AllowCustomResourceTypes is set to false. When set to true, we will already throw a warning for this feature switch, so we suppress this one in order forthe user to only get one error. | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.AreTypesEquivalent(System.Runtime.CompilerServices.MethodTable*,System.Runtime.CompilerServices.MethodTable*) | [LibraryImportAttribute(...)] | EntryPoint | MethodTable_AreTypesEquivalent | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetComInstanceInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | ComWrappers_TryGetComInstance | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetObjectInternal(System.IntPtr,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | ComWrappers_TryGetObject | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.InteropServices.CreateComInterfaceFlags,System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | ComWrappers_TryGetOrCreateComInterfaceForObject | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetOrCreateObjectForComInstanceInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.IntPtr,System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | ComWrappers_TryGetOrCreateObjectForComInstance | -| System.Boolean System.RuntimeTypeHandle._IsVisible(System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_IsVisible | -| System.Boolean System.Type.ImplementInterface(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The GetInterfaces technically requires all interfaces to be preservedBut this method only compares the result against the passed in ifaceType.So if ifaceType exists, then trimming should have kept it implemented on any type. | -| System.Boolean System.ValueType.Equals(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Trimmed fields don't make a difference for equality | -| System.Buffers.ArrayPoolEventSource | [EventSourceAttribute(...)] | Guid | 0866B2B8-5CEF-5DB9-2612-0C0FFD814A44 | -| System.Buffers.ArrayPoolEventSource | [EventSourceAttribute(...)] | Name | System.Buffers.ArrayPoolEventSource | -| System.Byte[] System.Diagnostics.Tracing.EventSource.CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which has dynamically accessed members requirements, but its use of this method satisfies these requirements because it passes in the result of GetType with the same annotations. | -| System.CLSCompliantAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.CLSCompliantAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.CodeDom.Compiler.GeneratedCodeAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.CodeDom.Compiler.GeneratedCodeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Collections.KeyValuePairs | [DebuggerDisplayAttribute(...)] | Name | [{_key}] | -| System.Configuration.Assemblies.AssemblyHashAlgorithm System.Reflection.AssemblyName.HashAlgorithm | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0037 | -| System.Configuration.Assemblies.AssemblyHashAlgorithm System.Reflection.AssemblyName.HashAlgorithm | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Configuration.Assemblies.AssemblyHashAlgorithm System.Reflection.RuntimeAssembly.GetHashAlgorithm(System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetHashAlgorithm | -| System.Configuration.Assemblies.AssemblyVersionCompatibility System.Reflection.AssemblyName.VersionCompatibility | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0037 | -| System.Configuration.Assemblies.AssemblyVersionCompatibility System.Reflection.AssemblyName.VersionCompatibility | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.ContextStaticAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Delegate System.Diagnostics.Tracing.PropertyValue.TypeHelper.GetGetMethod(System.Reflection.PropertyInfo,System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Instantiation over a reference type. See comments above. | -| System.Diagnostics.CodeAnalysis.AllowNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.DisallowNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.ExperimentalAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.MaybeNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.MemberNotNullAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.CodeAnalysis.MemberNotNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.NotNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.NotNullWhenAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.StringSyntaxAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.CodeAnalysis.StringSyntaxAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.CodeAnalysis.UnscopedRefAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.CodeAnalysis.UnscopedRefAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.ConditionalAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.Contracts.ContractAbbreviatorAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.Contracts.ContractArgumentValidatorAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.Contracts.ContractClassAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.Contracts.ContractClassAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.Contracts.ContractClassForAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.Contracts.ContractClassForAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.Contracts.ContractInvariantMethodAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.Contracts.ContractInvariantMethodAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.Contracts.ContractOptionAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.Contracts.ContractOptionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.Diagnostics.Contracts.PureAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.Contracts.PureAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.Diagnostics.DebuggableAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.DebuggerBrowsableAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Diagnostics.DebuggerDisplayAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.DebuggerHiddenAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.DebuggerNonUserCodeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.DebuggerStepThroughAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.DebuggerStepperBoundaryAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.DebuggerTypeProxyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.DebuggerVisualizerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Diagnostics.StackTraceHiddenAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.Tracing.EventDataAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Diagnostics.Tracing.FrameworkEventSource | [EventSourceAttribute(...)] | Guid | 8E9F5090-2D75-4d03-8A81-E5AFBF85DAF1 | -| System.Diagnostics.Tracing.FrameworkEventSource | [EventSourceAttribute(...)] | Name | System.Diagnostics.Eventing.FrameworkEventSource | -| System.Diagnostics.Tracing.NativeRuntimeEventSource | [EventSourceAttribute(...)] | Guid | E13C0D23-CCBC-4E12-931B-D9CC2EEE27E4 | -| System.Diagnostics.Tracing.NativeRuntimeEventSource | [EventSourceAttribute(...)] | Name | Microsoft-Windows-DotNETRuntime | -| System.Diagnostics.Tracing.RuntimeEventSource | [EventSourceAttribute(...)] | Guid | 49592C0F-5A05-516D-AA4B-A64E02026C89 | -| System.Diagnostics.Tracing.RuntimeEventSource | [EventSourceAttribute(...)] | Name | System.Runtime | -| System.Diagnostics.Tracing.TraceLoggingEventTypes System.Diagnostics.Tracing.EventSource.EventMetadata.get_TraceLoggingEventTypes() | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Exception.SerializeObjectState | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0011 | -| System.Exception.SerializeObjectState | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.FlagsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Func<System.Diagnostics.Tracing.PropertyValue,System.Diagnostics.Tracing.PropertyValue> System.Diagnostics.Tracing.PropertyValue.GetReferenceTypePropertyGetter(System.Reflection.PropertyInfo) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Instantiation over a reference type. See comments above. | -| System.GC.EnableNoGCRegionCallbackStatus System.GC._EnableNoGCRegionCallback(System.GC.NoGCRegionCallbackFinalizerWorkItem*,System.Int64) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_EnableNoGCRegionCallback | -| System.Globalization.CompareInfo.m_SortVersion | [OptionalFieldAttribute(...)] | VersionAdded | 3 | -| System.Globalization.CompareInfo.m_name | [OptionalFieldAttribute(...)] | VersionAdded | 2 | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [RequiresUnreferencedCodeAttribute(...)] | Url | https://aka.ms/dotnet-illink/nativehost | -| System.Int32 Interop.Globalization.GetICUVersion() | [LibraryImportAttribute(...)] | EntryPoint | GlobalizationNative_GetICUVersion | -| System.Int32 Interop.Globalization.GetLatestJapaneseEra() | [LibraryImportAttribute(...)] | EntryPoint | GlobalizationNative_GetLatestJapaneseEra | -| System.Int32 Interop.Globalization.GetSortVersion(System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | GlobalizationNative_GetSortVersion | -| System.Int32 Interop.Globalization.LoadICU() | [LibraryImportAttribute(...)] | EntryPoint | GlobalizationNative_LoadICU | -| System.Int32 Interop.HostPolicy.<corehost_resolve_component_dependencies>g____PInvoke\|2_0(System.Byte*,System.IntPtr) | [UnmanagedCallConvAttribute(...)] | CallConvs | [System.Runtime.CompilerServices.CallConvCdecl] | -| System.Int32 Interop.HostPolicy.corehost_resolve_component_dependencies(System.String,Interop.HostPolicy.corehost_resolve_component_dependencies_result_fn) | [UnmanagedCallConvAttribute(...)] | CallConvs | [System.Runtime.CompilerServices.CallConvCdecl] | -| System.Int32 Interop.Kernel32.FormatMessage(System.Int32,System.IntPtr,System.UInt32,System.Int32,System.Void*,System.Int32,System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | FormatMessageW | -| System.Int32 Interop.Kernel32.FormatMessage(System.Int32,System.IntPtr,System.UInt32,System.Int32,System.Void*,System.Int32,System.IntPtr) | [LibraryImportAttribute(...)] | SetLastError | True | -| System.Int32 System.AppDomain.ExecuteAssembly(System.String,System.String[],System.Byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Int32 System.AppDomain.ExecuteAssembly(System.String,System.String[],System.Byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Int32 System.Attribute.GetHashCode() | [UnconditionalSuppressMessageAttribute(...)] | Justification | Unused fields don't make a difference for hashcode quality | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.EventActivityIdControl(System.UInt32,System.Guid) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_EventActivityIdControl | -| System.Int32 System.Diagnostics.Tracing.EventSource.GetHelperCallFirstArg(System.Reflection.MethodInfo) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The method calls MethodBase.GetMethodBody. Trimming application can change IL of various methodswhich can lead to change of behavior. This method only uses this to validate usage of event source APIs.In the worst case it will not be able to determine the value it's looking for and will not performany validation. | -| System.Int32 System.Environment.GetProcessorCount() | [LibraryImportAttribute(...)] | EntryPoint | Environment_GetProcessorCount | -| System.Int32 System.GC._EndNoGCRegion() | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_EndNoGCRegion | -| System.Int32 System.GC._RefreshMemoryLimit(System.GC.GCHeapHardLimitInfo) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_RefreshMemoryLimit | -| System.Int32 System.GC._StartNoGCRegion(System.Int64,System.Boolean,System.Int64,System.Boolean) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_StartNoGCRegion | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRef(System.Runtime.CompilerServices.QCallModule,System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | ModuleBuilder_GetMemberRef | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefOfFieldInfo(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Runtime.CompilerServices.QCallTypeHandle,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | ModuleBuilder_GetMemberRefOfFieldInfo | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefOfMethodInfo(System.Runtime.CompilerServices.QCallModule,System.Int32,System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | EntryPoint | ModuleBuilder_GetMemberRefOfMethodInfo | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetTokenFromTypeSpec(System.Runtime.CompilerServices.QCallModule,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | ModuleBuilder_GetTokenFromTypeSpec | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodSpec(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_DefineMethodSpec | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.GetTokenFromSig(System.Runtime.CompilerServices.QCallModule,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_GetTokenFromSig | -| System.Int32 System.Threading.LowLevelLifoSemaphore.WaitNative(Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | WaitHandle_CorWaitOnePrioritizedNative | -| System.Int64 System.GC.GetTotalMemory() | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_GetTotalMemory | -| System.Int64 System.GC._GetGenerationBudget(System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_GetGenerationBudget | -| System.Int64 System.Threading.Monitor.GetLockContentionCount() | [LibraryImportAttribute(...)] | EntryPoint | ObjectNative_GetMonitorLockContentionCount | -| System.IntPtr Internal.Runtime.InteropServices.ComponentActivator.InternalGetFunctionPointer(System.Runtime.Loader.AssemblyLoadContext,System.String,System.String,System.IntPtr) | [RequiresUnreferencedCodeAttribute(...)] | Url | https://aka.ms/dotnet-illink/nativehost | -| System.IntPtr Interop.HostPolicy.corehost_set_error_writer(System.IntPtr) | [UnmanagedCallConvAttribute(...)] | CallConvs | [System.Runtime.CompilerServices.CallConvCdecl] | -| System.IntPtr System.ComAwareWeakReference.ObjectToComWeakRef(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64) | [LibraryImportAttribute(...)] | EntryPoint | ObjectToComWeakRef | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.DefineEvent(System.IntPtr,System.UInt32,System.Int64,System.UInt32,System.UInt32,System.Void*,System.UInt32) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_DefineEvent | -| System.IntPtr System.GC._RegisterFrozenSegment(System.IntPtr,System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_RegisterFrozenSegment | -| System.IntPtr System.Runtime.CompilerServices.RuntimeHelpers.AllocateTypeAssociatedMemory(System.Runtime.CompilerServices.QCallTypeHandle,System.UInt32) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_AllocateTypeAssociatedMemory | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate`1(!0) | [UnconditionalSuppressMessageAttribute(...)] | Justification | AOT compilers can see the T. | -| System.IntPtr System.Runtime.InteropServices.Marshal.OffsetOf(System.Type,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Trimming doesn't affect types eligible for marshalling. Different exception for invalid inputs doesn't matter. | -| System.IntPtr System.Runtime.Loader.AssemblyLoadContext.GetLoadContextForAssembly(System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetLoadContextForAssembly | -| System.IntPtr System.Runtime.Loader.AssemblyLoadContext.InitializeAssemblyLoadContext(System.IntPtr,System.Boolean,System.Boolean) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_InitializeAssemblyLoadContext | -| System.IntPtr System.RuntimeMethodHandle.GetFunctionPointer(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeMethodHandle_GetFunctionPointer | -| System.IntPtr System.RuntimeTypeHandle.FreeGCHandle(System.Runtime.CompilerServices.QCallTypeHandle,System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | QCall_FreeGCHandleForTypeHandle | -| System.IntPtr System.RuntimeTypeHandle.GetGCHandle(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.InteropServices.GCHandleType) | [LibraryImportAttribute(...)] | EntryPoint | QCall_GetGCHandleForTypeHandle | -| System.NonSerializedAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Object System.MarshalByRefObject.GetLifetimeService() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0010 | -| System.Object System.MarshalByRefObject.GetLifetimeService() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Object System.MarshalByRefObject.InitializeLifetimeService() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0010 | -| System.Object System.MarshalByRefObject.InitializeLifetimeService() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Object System.Reflection.ParameterInfo.GetRealObject(System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Object System.Reflection.ParameterInfo.GetRealObject(System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Object System.Runtime.InteropServices.Marshal.BindToMoniker(System.String) | [RequiresUnreferencedCodeAttribute(...)] | Url | https://aka.ms/dotnet-illink/com | -| System.Object System.RuntimeType.<CreateInstanceImpl>g__CreateInstanceLocal\|145_0(System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Implementation detail of Activator that linker intrinsically recognizes | -| System.Object System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The parameter 'type' is passed by ref to QCallTypeHandle which only instantiatesthe type using the public parameterless constructor and doesn't modify it | -| System.Object System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(System.RuntimeType,System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The parameter 'type' is passed by ref to QCallTypeHandle which only instantiatesthe type using the public parameterless constructor and doesn't modify it | -| System.Object[] System.Diagnostics.Tracing.EventSource.SerializeEventArgs(System.Int32,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.ObsoleteAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.ParamArrayAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.ParamArrayAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.Reflection.Assembly Internal.Runtime.InteropServices.IsolatedComponentLoadContext.Load(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The trimmer warning is added to the constructor of this class since this method is a virtual one. | -| System.Reflection.Assembly System.Reflection.Assembly.LoadFromResolveHandler(System.Object,System.ResolveEventArgs) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The assembly is loaded by specifying a path outside of the single-file bundle, the location of the path will not be empty if the path exist, otherwise it will be handled as null | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoad(System.Byte[]) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0018 | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoad(System.Byte[]) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoad(System.String) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0018 | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoad(System.String) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoadFrom(System.String) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0018 | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoadFrom(System.String) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The code handles the Assembly.Location equals null | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.ResolveSatelliteAssembly(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Satellite assemblies have no code in them and loading is not a problem | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.ResolveSatelliteAssembly(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | Justification | This call is fine because native call runs before this and checks BindSatelliteResourceFromBundle | -| System.Reflection.AssemblyAlgorithmIdAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyCompanyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyConfigurationAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyCopyrightAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyCultureAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyDefaultAliasAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyDelaySignAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyDescriptionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyFileVersionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyFlagsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyInformationalVersionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyKeyFileAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyKeyNameAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyMetadataAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Reflection.AssemblyMetadataAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyNameFlags System.Reflection.RuntimeAssembly.GetFlags(System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetFlags | -| System.Reflection.AssemblyProductAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblySignatureKeyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Reflection.AssemblySignatureKeyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyTitleAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyTrademarkAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.AssemblyVersionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.ConstructorInfo System.Reflection.Emit.TypeBuilder.GetConstructor(System.Type,System.Reflection.ConstructorInfo) | [UnconditionalSuppressMessageAttribute(...)] | Justification | MakeGenericType is only called on a TypeBuilder which is not subject to trimming | -| System.Reflection.Emit.ConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineConstructorNoLock(System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type[],System.Type[][],System.Type[][]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Reflection.Emit is not subject to trimming | -| System.Reflection.Emit.ConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineTypeInitializerCore() | [UnconditionalSuppressMessageAttribute(...)] | Justification | Reflection.Emit is not subject to trimming | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodCore(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Reflection.Emit is not subject to trimming | -| System.Reflection.Emit.RuntimeConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineDefaultConstructorNoLock(System.Reflection.MethodAttributes) | [UnconditionalSuppressMessageAttribute(...)] | Justification | GetConstructor is only called on a TypeBuilderInstantiation which is not subject to trimming | -| System.Reflection.Emit.RuntimeConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineDefaultConstructorNoLock(System.Reflection.MethodAttributes) | [UnconditionalSuppressMessageAttribute(...)] | Justification | MakeGenericType is only called on a TypeBuilderInstantiation which is not subject to trimming | -| System.Reflection.EventInfo System.Attribute.GetParentDefinition(System.Reflection.EventInfo) | [UnconditionalSuppressMessageAttribute(...)] | Justification | rtAdd.DeclaringType is guaranteed to have the specified event because rtAdd.GetParentDefinition() returned a non-null MethodInfo. | -| System.Reflection.FieldAttributes.NotSerialized | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Reflection.FieldAttributes.NotSerialized | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Reflection.FieldInfo System.Reflection.Emit.TypeBuilder.GetField(System.Type,System.Reflection.FieldInfo) | [UnconditionalSuppressMessageAttribute(...)] | Justification | MakeGenericType is only called on a TypeBuilder which is not subject to trimming | -| System.Reflection.FieldInfo[] System.Diagnostics.Tracing.ManifestBuilder.<CreateManifestString>g__GetEnumFields\|19_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Trimmer does not trim enums | -| System.Reflection.MemberInfo System.Type.GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo) | [UnconditionalSuppressMessageAttribute(...)] | Justification | This is finding the MemberInfo with the same MetadataToken as specified MemberInfo. If the specified MemberInfo exists and wasn't trimmed, then the current Type's MemberInfo couldn't have been trimmed. | -| System.Reflection.Metadata.MetadataUpdateHandlerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Reflection.MethodBase System.DefaultBinder.BindToMethod(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],System.Object) | [UnconditionalSuppressMessageAttribute(...)] | Justification | AOT compiler ensures params arrays are created for reflection-invokable methods | -| System.Reflection.MethodBase System.Reflection.Emit.RuntimeModuleBuilder.GetGenericMethodBaseDefinition(System.Reflection.MethodBase) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Module.ResolveMethod is marked as RequiresUnreferencedCode because it relies on tokens which are not guaranteed to be stable across trimming. So if somebody hardcodes a token it could break. The usage here is not like that as all these tokens come from existing metadata loaded from some IL and so trimming has no effect (the tokens are read AFTER trimming occurred). | -| System.Reflection.MethodBase System.RuntimeType.GetMethodBase(System.RuntimeType,System.RuntimeMethodHandleInternal) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The code in this method looks up the method by name, but it always starts with a method handle.To get here something somewhere had to get the method handle and thus the method must exist. | -| System.Reflection.MethodInfo System.Reflection.Emit.TypeBuilder.GetMethod(System.Type,System.Reflection.MethodInfo) | [UnconditionalSuppressMessageAttribute(...)] | Justification | MakeGenericType is only called on a TypeBuilder which is not subject to trimming | -| System.Reflection.MethodInfo[] System.Diagnostics.StackTrace.<TryResolveStateMachineMethod>g__GetDeclaredMethods\|28_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Using Reflection to find the state machine's corresponding method is safe because the corresponding method is the only caller of the state machine. If the state machine is present, the corresponding method will be, too. | -| System.Reflection.MethodInfo[] System.Reflection.TypeInfo.<GetDeclaredMethods>g__GetDeclaredOnlyMethods\|10_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The yield return state machine doesn't propagate annotations | -| System.Reflection.ObfuscateAssemblyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Reflection.ObfuscateAssemblyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.ObfuscationAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Reflection.ObfuscationAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Reflection.ProcessorArchitecture System.Reflection.AssemblyName.ProcessorArchitecture | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0037 | -| System.Reflection.ProcessorArchitecture System.Reflection.AssemblyName.ProcessorArchitecture | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Reflection.PropertyInfo System.Attribute.GetParentDefinition(System.Reflection.PropertyInfo,System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | rtPropAccessor.DeclaringType is guaranteed to have the specified property because rtPropAccessor.GetParentDefinition() returned a non-null MethodInfo. | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Linker doesn't recognize GetPropertyImpl(BindingFlags.Public) but this is what the body is doing | -| System.Reflection.RuntimeAssembly System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The code handles the Assembly.Location equals null | -| System.Reflection.RuntimeFieldInfo[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateFields(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Calls to GetInterfaces technically require all interfaces on ReflectedTypeBut this is not a public API to enumerate reflection items, all the public APIs which do thatshould be annotated accordingly. | -| System.Reflection.RuntimeMethodInfo System.Reflection.Associates.AssignAssociates(System.Int32,System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Module.ResolveMethod is marked as RequiresUnreferencedCode because it relies on tokenswhich are not guaranteed to be stable across trimming. So if somebody hardcodes a token it could break.The usage here is not like that as all these tokens come from existing metadata loaded from some ILand so trimming has no effect (the tokens are read AFTER trimming occurred). | -| System.Reflection.StrongNameKeyPair | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0017 | -| System.Reflection.StrongNameKeyPair | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Reflection.StrongNameKeyPair System.Reflection.AssemblyName.KeyPair | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0017 | -| System.Reflection.StrongNameKeyPair System.Reflection.AssemblyName.KeyPair | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Reflection.TypeAttributes.Serializable | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Reflection.TypeAttributes.Serializable | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Reflection.TypeInfo System.Reflection.Emit.RuntimeTypeBuilder.CreateTypeNoLock() | [UnconditionalSuppressMessageAttribute(...)] | Justification | Reflection.Emit is not subject to trimming | -| System.Resources.NeutralResourcesLanguageAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Resources.SatelliteContractVersionAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.AssemblyTargetedPatchBandAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.AsyncStateMachineAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.AsyncStateMachineAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.CallerArgumentExpressionAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.CallerArgumentExpressionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.CallerFilePathAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.CallerLineNumberAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.CallerMemberNameAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.CollectionBuilderAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.CompExactlyDependsOnAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.CompilerServices.CompExactlyDependsOnAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.CompilerGeneratedAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.Runtime.CompilerServices.CreateNewOnMetadataUpdateAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.CustomConstantAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.DateTimeConstantAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.DecimalConstantAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.DependencyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0015 | -| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.EnumeratorCancellationAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.FixedBufferAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.IndexerNameAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.Runtime.CompilerServices.InlineArrayAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.InternalsVisibleToAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.CompilerServices.InternalsVisibleToAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.IntrinsicAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.IsReadOnlyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.IteratorStateMachineAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.IteratorStateMachineAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.MetadataUpdateOriginalTypeAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.MetadataUpdateOriginalTypeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.MethodImplAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.ModuleInitializerAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.NullableAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.NullableContextAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.NullablePublicOnlyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.PreserveBaseOverridesAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.PreserveBaseOverridesAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.RefSafetyRulesAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.ReferenceAssemblyAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.RequiredMemberAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.RequiredMemberAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.RequiresLocationAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.RuntimeCompatibilityAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.RuntimeCompatibilityAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.ScopedRefAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.SkipLocalsInitAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.StateMachineAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.StateMachineAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.StringFreezingAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.SuppressIldasmAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0025 | -| System.Runtime.CompilerServices.SuppressIldasmAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.CompilerServices.TypeForwardedFromAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.TypeForwardedFromAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.TypeForwardedToAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.CompilerServices.TypeForwardedToAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.CompilerServices.UnsafeAccessorAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.CompilerServices.UnsafeAccessorAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.ConstrainedExecution.Cer | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Runtime.ConstrainedExecution.Cer | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.ConstrainedExecution.Consistency | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Runtime.ConstrainedExecution.Consistency | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.ConstrainedExecution.ReliabilityContractAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.ConstrainedExecution.ReliabilityContractAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Runtime.ConstrainedExecution.ReliabilityContractAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0032 | -| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.InteropServices.BestFitMappingAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.ClassInterfaceAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.CoClassAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.ComDefaultInterfaceAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.ComEventInterfaceAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.ComImportAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.ComSourceInterfacesAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.Runtime.InteropServices.ComVisibleAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.DefaultCharSetAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.InteropServices.DispIdAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.DllImportAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.FieldOffsetAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.GuidAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.InAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.InterfaceTypeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.LCIDConversionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.LibraryImportAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.InteropServices.LibraryImportAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.MarshalAsAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute | [AttributeUsageAttribute(...)] | Inherited | True | -| System.Runtime.InteropServices.OptionalAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.OutAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.PreserveSigAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.ProgIdAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.StructLayoutAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.SuppressGCTransitionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.TypeIdentifierAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.InteropServices.TypeIdentifierAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.UnmanagedCallConvAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.InteropServices.UnmanagedCallConvAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstanceInternal(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[],System.Threading.StackCrawlMark) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Implementation detail of Activator that linker intrinsically recognizes | -| System.Runtime.Serialization.IFormatterConverter | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Runtime.Serialization.IFormatterConverter | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.Serialization.IObjectReference | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Runtime.Serialization.IObjectReference | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.Serialization.ISafeSerializationData | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Runtime.Serialization.ISafeSerializationData | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.Serialization.OnDeserializedAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Serialization.OnDeserializingAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Serialization.OnSerializedAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Serialization.OnSerializingAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Serialization.OptionalFieldAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Serialization.SafeSerializationEventArgs | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Runtime.Serialization.SafeSerializationEventArgs | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.Serialization.StreamingContext._state | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Runtime.Serialization.StreamingContext._state | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.Serialization.StreamingContextStates | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Runtime.Serialization.StreamingContextStates | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.Serialization.StreamingContextStates System.Runtime.Serialization.StreamingContext.State | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Runtime.Serialization.StreamingContextStates System.Runtime.Serialization.StreamingContext.State | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Runtime.TargetedPatchingOptOutAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.TargetedPatchingOptOutAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.ComponentGuaranteesAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.Versioning.ComponentGuaranteesAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.NonVersionableAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.Versioning.NonVersionableAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.ObsoletedOSPlatformAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.Versioning.ObsoletedOSPlatformAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.ResourceConsumptionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.ResourceExposureAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.SupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.Versioning.SupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.SupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.Versioning.SupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.TargetFrameworkAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.Versioning.TargetFrameworkAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.TargetPlatformAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Runtime.Versioning.TargetPlatformAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.RuntimeMethodHandleInternal System.Diagnostics.StackFrame.GetMethodDescFromNativeIP(System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | StackFrame_GetMethodDescFromNativeIP | -| System.RuntimeMethodHandleInternal System.ModuleHandle.ResolveMethod(System.Runtime.CompilerServices.QCallModule,System.Int32,System.IntPtr*,System.Int32,System.IntPtr*,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | ModuleHandle_ResolveMethod | -| System.RuntimeMethodHandleInternal System.RuntimeTypeHandle.GetInterfaceMethodImplementation(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.QCallTypeHandle,System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_GetInterfaceMethodImplementation | -| System.RuntimeType[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateInterfaces(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Calls to GetInterfaces technically require all interfaces on ReflectedTypeBut this is not a public API to enumerate reflection items, all the public APIs which do thatshould be annotated accordingly. | -| System.RuntimeType[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateNestedClasses(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Calls to ResolveTypeHandle technically require all types to be kept But this is not a public API to enumerate reflection items, all the public APIs which do that should be annotated accordingly. | -| System.Security.AllowPartiallyTrustedCallersAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Security.AllowPartiallyTrustedCallersAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.IPermission | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.IPermission | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.IStackWalk | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.IStackWalk | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.PermissionSet | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.PermissionSet | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.PermissionSet System.AppDomain.PermissionSet | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.PermissionSet System.AppDomain.PermissionSet | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.Permissions.CodeAccessSecurityAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Security.Permissions.CodeAccessSecurityAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.Permissions.CodeAccessSecurityAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.Permissions.CodeAccessSecurityAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.Permissions.PermissionState | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.Permissions.PermissionState | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.Permissions.SecurityAction | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.Permissions.SecurityAction | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.Permissions.SecurityAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Security.Permissions.SecurityAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.Permissions.SecurityAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.Permissions.SecurityAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.Permissions.SecurityPermissionAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Security.Permissions.SecurityPermissionAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.Permissions.SecurityPermissionAttribute | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.Permissions.SecurityPermissionAttribute | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.Permissions.SecurityPermissionFlag | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Security.Permissions.SecurityPermissionFlag | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Security.SecurityCriticalAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Security.SecurityCriticalAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.SecurityRulesAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Security.SecuritySafeCriticalAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Security.SecuritySafeCriticalAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.SecurityTransparentAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Security.SecurityTransparentAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.SecurityTreatAsSafeAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | False | -| System.Security.SecurityTreatAsSafeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.SuppressUnmanagedCodeSecurityAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Security.SuppressUnmanagedCodeSecurityAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Security.UnverifiableCodeAttribute | [AttributeUsageAttribute(...)] | AllowMultiple | True | -| System.Security.UnverifiableCodeAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.SerializableAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.String System.AppContext.GetBaseDirectoryCore() | [UnconditionalSuppressMessageAttribute(...)] | Justification | Single File apps should always set APP_CONTEXT_BASE_DIRECTORY therefore code handles Assembly.Location equals null | -| System.String System.Diagnostics.Tracing.EventSource.GenerateManifest(System.Type,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which has dynamically accessed members requirements, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.String System.Diagnostics.Tracing.EventSource.GenerateManifest(System.Type,System.String,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which has dynamically accessed members requirements, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.String System.Exception.get_Source() | [UnconditionalSuppressMessageAttribute(...)] | Justification | The API will return <unknown> if the metadata for current method cannot be established. | -| System.String System.Runtime.CompilerServices.AsyncMethodBuilderCore.GetAsyncStateMachineDescription(System.Runtime.CompilerServices.IAsyncStateMachine) | [UnconditionalSuppressMessageAttribute(...)] | Justification | It's okay if unused fields disappear from debug views | -| System.Text.Encoding System.Text.Encoding.UTF7 | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0001 | -| System.Text.Encoding System.Text.Encoding.UTF7 | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Text.Encoding._isReadOnly | [OptionalFieldAttribute(...)] | VersionAdded | 2 | -| System.ThreadStaticAttribute | [AttributeUsageAttribute(...)] | Inherited | False | -| System.Threading.CompressedStack System.Threading.Thread.GetCompressedStack() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Threading.CompressedStack System.Threading.Thread.GetCompressedStack() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Threading.Tasks.TplEventSource | [EventSourceAttribute(...)] | Guid | 2e5dba47-a3d2-4d16-8ee0-6671ffdcd7b5 | -| System.Threading.Tasks.TplEventSource | [EventSourceAttribute(...)] | Name | System.Threading.Tasks.TplEventSource | -| System.Type System.Reflection.Emit.TypeBuilderInstantiation.Substitute(System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The entire TypeBuilderInstantiation is serving the MakeGenericType implementation. Currently this is not supported by linker. Once it is supported the outercall (Type.MakeGenericType)will validate that the types fulfill the necessary requirements of annotations on type parameters.As such the actual internals of the implementation are not interesting. | -| System.Type System.Reflection.RuntimeExceptionHandlingClause.get_CatchType() | [UnconditionalSuppressMessageAttribute(...)] | Justification | Module.ResolveType is marked as RequiresUnreferencedCode because it relies on tokenswhich are not guaranteed to be stable across trimming. So if somebody hardcodes a token it could break.The usage here is not like that as all these tokens come from existing metadata loaded from some ILand so trimming has no effect (the tokens are read AFTER trimming occurred). | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeArrayType(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Used to find matching method overloads. Only used for assignability checks. | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeArrayType(System.Type,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Used to find matching method overloads. Only used for assignability checks. | -| System.Type System.Reflection.SignatureTypeExtensions.TryResolve(System.Reflection.SignatureType,System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Used to find matching method overloads. Only used for assignability checks. | -| System.Type System.Reflection.TypeNameParser.GenericTypeName.ResolveType(System.Reflection.TypeNameParser,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Used to implement resolving types from strings. | -| System.Type System.Reflection.TypeNameParser.GetType(System.String,System.ReadOnlySpan<System.String>,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | TypeNameParser.GetType is marked as RequiresUnreferencedCode. | -| System.Type System.Reflection.TypeNameParser.ModifierTypeName.ResolveType(System.Reflection.TypeNameParser,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Used to implement resolving types from strings. | -| System.Type System.Resources.ResourceReader.<FindType>g__UseReflectionToGetTypeLocal\|52_0(System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | UseReflectionToGetType will get trimmed out when AllowCustomResourceTypes is set to false. When set to true, we will already throw a warning for this feature switch, so we suppress this one in order forthe user to only get one error. | -| System.Type System.RuntimeType.GetInterface(System.String,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Trimming makes sure that interfaces are fully preserved, so the Interfaces annotation is transitive.The cache doesn't carry the necessary annotation since it returns an array type,so the analysis complains that the returned value doesn't have the necessary annotation. | -| System.Type System.Type.GetEnumUnderlyingType() | [UnconditionalSuppressMessageAttribute(...)] | Justification | The single instance field on enum types is never trimmed | -| System.Type System.Type.ReflectionOnlyGetType(System.String,System.Boolean,System.Boolean) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0018 | -| System.Type System.Type.ReflectionOnlyGetType(System.String,System.Boolean,System.Boolean) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Type[] System.Reflection.TypeInfo.<get_DeclaredNestedTypes>g__GetDeclaredOnlyNestedTypes\|22_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The yield return state machine doesn't propagate annotations | -| System.UInt32 System.Reflection.Assembly.GetAssemblyCount() | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetAssemblyCount | -| System.UInt64 System.Diagnostics.Tracing.EventPipeInternal.Enable(System.Char*,System.Diagnostics.Tracing.EventPipeSerializationFormat,System.UInt32,System.Diagnostics.Tracing.EventPipeInternal.EventPipeProviderConfigurationNative*,System.UInt32) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_Enable | -| System.UInt64 System.Threading.Thread.GetCurrentOSThreadId() | [LibraryImportAttribute(...)] | EntryPoint | ThreadNative_GetCurrentOSThreadId | -| System.UnitySerializationHolder | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.UnitySerializationHolder | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.<LoadAssembly>g__LoadAssemblyLocal\|14_0(System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The same feature switch applies to GetFunctionPointer and this function. We rely on the warning from GetFunctionPointer. | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.<LoadAssemblyBytes>g__LoadAssemblyBytesLocal\|16_0(System.ReadOnlySpan<System.Byte>,System.ReadOnlySpan<System.Byte>) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The same feature switch applies to GetFunctionPointer and this function. We rely on the warning from GetFunctionPointer. | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyImpl(System.String) | [RequiresUnreferencedCodeAttribute(...)] | Url | https://aka.ms/dotnet-illink/nativehost | -| System.Void Internal.Runtime.InteropServices.IsolatedComponentLoadContext..ctor(System.String) | [RequiresUnreferencedCodeAttribute(...)] | Url | https://aka.ms/dotnet-illink/nativehost | -| System.Void Interop.Globalization.CloseSortHandle(System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | GlobalizationNative_CloseSortHandle | -| System.Void System.AccessViolationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.AccessViolationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.AggregateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.AggregateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.AggregateException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.AggregateException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.AppDomain.Unload(System.AppDomain) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0024 | -| System.Void System.AppDomain.Unload(System.AppDomain) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.AppDomainUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.AppDomainUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ApplicationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ApplicationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ArgumentException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ArgumentException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ArgumentException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ArgumentException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ArgumentNullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ArgumentNullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ArgumentOutOfRangeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ArgumentOutOfRangeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ArgumentOutOfRangeException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ArgumentOutOfRangeException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ArithmeticException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ArithmeticException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.BadImageFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.BadImageFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.BadImageFormatException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.BadImageFormatException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Buffer.__Memmove(System.Byte*,System.Byte*,System.UIntPtr) | [LibraryImportAttribute(...)] | EntryPoint | Buffer_MemMove | -| System.Void System.Buffer.__ZeroMemory(System.Void*,System.UIntPtr) | [LibraryImportAttribute(...)] | EntryPoint | Buffer_Clear | -| System.Void System.Buffers.ArrayPoolEventSource.BufferAllocated(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferAllocatedReason) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Buffers.ArrayPoolEventSource.BufferDropped(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferDroppedReason) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Buffers.ArrayPoolEventSource.BufferRented(System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.CannotUnloadAppDomainException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.CannotUnloadAppDomainException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Comparer.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Comparer.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Generic.Dictionary`2..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Generic.Dictionary`2..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Generic.Dictionary`2.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Generic.Dictionary`2.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Generic.HashSet`1..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Generic.HashSet`1..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Generic.KeyNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Generic.KeyNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Generic.NonRandomizedStringEqualityComparer..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Generic.NonRandomizedStringEqualityComparer..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Hashtable..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Hashtable..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Hashtable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Hashtable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Collections.Hashtable.SyncHashtable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Collections.Hashtable.SyncHashtable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ComAwareWeakReference.ComWeakRefToObject(System.IntPtr,System.Int64,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | ComWeakRefToObject | -| System.Void System.ComponentModel.Win32Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ComponentModel.Win32Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ComponentModel.Win32Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ComponentModel.Win32Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ContextMarshalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ContextMarshalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.DBNull.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.DBNull.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.DataMisalignedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.DataMisalignedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Delegate.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Delegate.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Diagnostics.Contracts.Contract.AssertMustUseRewriter(System.Diagnostics.Contracts.ContractFailureKind,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | StackFrame.GetMethod is only used to help diagnosing incorrect use of contracts. It handles missing or incomplete metadata. | -| System.Void System.Diagnostics.Contracts.ContractException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Diagnostics.Contracts.ContractException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Diagnostics.Contracts.ContractException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Diagnostics.Contracts.ContractException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Diagnostics.StackTrace.ToString(System.Diagnostics.StackTrace.TraceFormat,System.Text.StringBuilder) | [UnconditionalSuppressMessageAttribute(...)] | Justification | ToString is best effort when it comes to available information. | -| System.Void System.Diagnostics.Tracing.EventCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The DynamicDependency will preserve the properties of CounterPayload | -| System.Void System.Diagnostics.Tracing.EventPipeInternal.DeleteProvider(System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_DeleteProvider | -| System.Void System.Diagnostics.Tracing.EventPipeInternal.Disable(System.UInt64) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_Disable | -| System.Void System.Diagnostics.Tracing.EventPipeInternal.WriteEventData(System.IntPtr,System.Diagnostics.Tracing.EventProvider.EventData*,System.UInt32,System.Guid*,System.Guid*) | [LibraryImportAttribute(...)] | EntryPoint | EventPipeInternal_WriteEventData | -| System.Void System.Diagnostics.Tracing.EventSource.Write(System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.Write(System.String,System.Diagnostics.Tracing.EventSourceOptions) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Byte[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Diagnostics.Tracing.EventSource.EventSourcePrimitive[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Byte[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Int64,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.String,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventCore(System.Int32,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventVarargs(System.Int32,System.Guid*,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityId(System.Int32,System.Guid,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(System.Int32,System.Guid*,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,!0) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,System.Diagnostics.Tracing.EventSourceOptions,!0) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,System.Diagnostics.Tracing.EventSourceOptions,System.Guid,System.Guid,!0) | [UnconditionalSuppressMessageAttribute(...)] | Justification | EnsureDescriptorsInitialized's use of GetType preserves this method which requires unreferenced code, but EnsureDescriptorsInitialized does not access this member and is safe to call. | -| System.Void System.Diagnostics.Tracing.EventSourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Diagnostics.Tracing.EventSourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent(System.Int32,System.Int64,System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent(System.Int32,System.Int64,System.Int32,System.String,System.Boolean,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Diagnostics.Tracing.IncrementingEventCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The DynamicDependency will preserve the properties of IncrementingCounterPayload | -| System.Void System.Diagnostics.Tracing.IncrementingPollingCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The DynamicDependency will preserve the properties of IncrementingCounterPayload | -| System.Void System.Diagnostics.Tracing.NullableTypeInfo.WriteData(System.Diagnostics.Tracing.PropertyValue) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The underlying type of Nullable<T> must be defaultable | -| System.Void System.Diagnostics.Tracing.PollingCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The DynamicDependency will preserve the properties of CounterPayload | -| System.Void System.DivideByZeroException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.DivideByZeroException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.DllNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.DllNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.DuplicateWaitObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.DuplicateWaitObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.EntryPointNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.EntryPointNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Enum.GetEnumValuesAndNames(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack,Interop.BOOL) | [LibraryImportAttribute(...)] | EntryPoint | Enum_GetValuesAndNames | -| System.Void System.Environment._Exit(System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | Environment_Exit | -| System.Void System.Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Exception.GetMessageFromNativeResources(System.Exception.ExceptionMessageKind,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | ExceptionNative_GetMessageFromNativeResources | -| System.Void System.Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.FieldAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.FieldAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.FormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.FormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.GC._AddMemoryPressure(System.UInt64) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_AddMemoryPressure | -| System.Void System.GC._Collect(System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_Collect | -| System.Void System.GC._EnumerateConfigurationValues(System.Void*,delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void>) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_EnumerateConfigurationValues | -| System.Void System.GC._RemoveMemoryPressure(System.UInt64) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_RemoveMemoryPressure | -| System.Void System.GC._UnregisterFrozenSegment(System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_UnregisterFrozenSegment | -| System.Void System.GC._WaitForPendingFinalizers() | [LibraryImportAttribute(...)] | EntryPoint | GCInterface_WaitForPendingFinalizers | -| System.Void System.Globalization.CultureNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Globalization.CultureNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Globalization.CultureNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Globalization.CultureNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.DirectoryNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.DirectoryNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.EndOfStreamException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.EndOfStreamException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.FileLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.FileLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.FileLoadException.GetMessageForHR(System.Int32,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | FileLoadException_GetMessageForHR | -| System.Void System.IO.FileLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.FileLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.FileNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.FileNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.FileNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.FileNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.FileSystemInfo..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.FileSystemInfo..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.FileSystemInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.FileSystemInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.IOException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.IOException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.InvalidDataException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.InvalidDataException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IO.PathTooLongException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IO.PathTooLongException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.IndexOutOfRangeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.IndexOutOfRangeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.InsufficientExecutionStackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.InsufficientExecutionStackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.InsufficientMemoryException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.InsufficientMemoryException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.InvalidCastException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.InvalidCastException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.InvalidOperationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.InvalidOperationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.InvalidProgramException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.InvalidProgramException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.InvalidTimeZoneException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.InvalidTimeZoneException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.MemberAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.MemberAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.MethodAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.MethodAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.MissingFieldException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.MissingFieldException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.MissingMemberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.MissingMemberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.MissingMemberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.MissingMemberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.MissingMethodException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.MissingMethodException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ModuleHandle.GetModuleType(System.Runtime.CompilerServices.QCallModule,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | ModuleHandle_GetModuleType | -| System.Void System.ModuleHandle.GetPEKind(System.Runtime.CompilerServices.QCallModule,System.Int32*,System.Int32*) | [LibraryImportAttribute(...)] | EntryPoint | ModuleHandle_GetPEKind | -| System.Void System.ModuleHandle.ResolveField(System.Runtime.CompilerServices.QCallModule,System.Int32,System.IntPtr*,System.Int32,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | ModuleHandle_ResolveField | -| System.Void System.ModuleHandle.ResolveType(System.Runtime.CompilerServices.QCallModule,System.Int32,System.IntPtr*,System.Int32,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | ModuleHandle_ResolveType | -| System.Void System.MulticastDelegate.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.MulticastDelegate.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.MulticastNotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.MulticastNotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.NotFiniteNumberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.NotFiniteNumberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.NotFiniteNumberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.NotFiniteNumberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.NotImplementedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.NotImplementedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.NotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.NotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.NullReferenceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.NullReferenceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ObjectDisposedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ObjectDisposedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.ObjectDisposedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.ObjectDisposedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.OperatingSystem.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.OperatingSystem.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.OperationCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.OperationCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.OutOfMemoryException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.OutOfMemoryException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.OverflowException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.OverflowException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.PlatformNotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.PlatformNotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.RankException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.RankException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.AmbiguousMatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.AmbiguousMatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.Assembly.GetEntryAssemblyNative(System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetEntryAssembly | -| System.Void System.Reflection.Assembly.GetExecutingAssemblyNative(System.Runtime.CompilerServices.StackCrawlMarkHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetExecutingAssembly | -| System.Void System.Reflection.Assembly.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.Assembly.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.AssemblyName.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.AssemblyName.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.AssemblyName.InitializeAssemblySpec(System.Reflection.NativeAssemblyNameParts*,System.Void*) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyName_InitializeAssemblySpec | -| System.Void System.Reflection.CustomAttribute.AddCustomAttributes(System.RuntimeType.ListBuilder<System.Object>,System.Reflection.RuntimeModule,System.Int32,System.RuntimeType,System.Boolean,System.RuntimeType.ListBuilder<System.Object>) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Linker guarantees presence of all the constructor parameters, property setters and fields which are accessed by any attribute instantiation which is present in the code linker has analyzed.As such the reflection usage in this method will never fail as those methods/fields will be present. | -| System.Void System.Reflection.CustomAttributeFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.CustomAttributeFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.Emit.RuntimeAssemblyBuilder.CreateDynamicAssembly(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Reflection.NativeAssemblyNameParts*,System.Configuration.Assemblies.AssemblyHashAlgorithm,System.Reflection.Emit.AssemblyBuilderAccess,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AppDomain_CreateDynamicAssembly | -| System.Void System.Reflection.Emit.RuntimeEnumBuilder..ctor(System.String,System.Type,System.Reflection.TypeAttributes,System.Reflection.Emit.RuntimeModuleBuilder) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Reflection.Emit is not subject to trimming | -| System.Void System.Reflection.Emit.RuntimeModuleBuilder.SetFieldRVAContent(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | ModuleBuilder_SetFieldRVAContent | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.AddInterfaceImpl(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_AddInterfaceImpl | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.DefineCustomAttribute(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.ReadOnlySpan<System.Byte>,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_DefineCustomAttribute | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodImpl(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_DefineMethodImpl | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodSemantics(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Reflection.MethodSemanticsAttributes,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_DefineMethodSemantics | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetClassLayout(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Reflection.Emit.PackingSize,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_SetClassLayout | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetConstantValue(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Void*) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_SetConstantValue | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetFieldLayoutOffset(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_SetFieldLayoutOffset | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetMethodIL(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Boolean,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32,System.Reflection.Emit.ExceptionHandler[],System.Int32,System.Int32[],System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_SetMethodIL | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetMethodImpl(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Reflection.MethodImplAttributes) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_SetMethodImpl | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetParentType(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_SetParentType | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.TermCreateClass(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | TypeBuilder_TermCreateClass | -| System.Void System.Reflection.InvalidFilterCriteriaException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.InvalidFilterCriteriaException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.Metadata.MetadataUpdater.ApplyUpdate(System.Runtime.CompilerServices.QCallAssembly,System.Byte*,System.Int32,System.Byte*,System.Int32,System.Byte*,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_ApplyUpdate | -| System.Void System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler.ClearCache(System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Clearing the caches on a Type isn't affected if a Type is trimmed, or has any of its members trimmed. | -| System.Void System.Reflection.Module.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.Module.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.ReflectionTypeLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.ReflectionTypeLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.ReflectionTypeLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.ReflectionTypeLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.RuntimeAssembly.GetEntryPoint(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetEntryPoint | -| System.Void System.Reflection.RuntimeAssembly.GetExportedTypes(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetExportedTypes | -| System.Void System.Reflection.RuntimeAssembly.GetForwardedType(System.Runtime.CompilerServices.QCallAssembly,System.Reflection.MetadataToken,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetForwardedType | -| System.Void System.Reflection.RuntimeAssembly.GetFullName(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetFullName | -| System.Void System.Reflection.RuntimeAssembly.GetImageRuntimeVersion(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetImageRuntimeVersion | -| System.Void System.Reflection.RuntimeAssembly.GetLocale(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetLocale | -| System.Void System.Reflection.RuntimeAssembly.GetLocation(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetLocation | -| System.Void System.Reflection.RuntimeAssembly.GetModules(System.Runtime.CompilerServices.QCallAssembly,System.Boolean,System.Boolean,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetModules | -| System.Void System.Reflection.RuntimeAssembly.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.RuntimeAssembly.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.RuntimeAssembly.GetPublicKey(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetPublicKey | -| System.Void System.Reflection.RuntimeAssembly.GetSimpleName(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetSimpleName | -| System.Void System.Reflection.RuntimeAssembly.GetVersion(System.Runtime.CompilerServices.QCallAssembly,System.Int32,System.Int32,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_GetVersion | -| System.Void System.Reflection.RuntimeAssembly.InternalLoad(System.Reflection.NativeAssemblyNameParts*,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StackCrawlMarkHandle,System.Boolean,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_InternalLoad | -| System.Void System.Reflection.RuntimeConstructorInfo.InvokeClassConstructor() | [UnconditionalSuppressMessageAttribute(...)] | Justification | This ConstructorInfo instance represents the static constructor itself, so if this object was created, the static constructor exists. | -| System.Void System.Reflection.RuntimeCustomAttributeData..ctor(System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.Reflection.ConstArray) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Property setters and fields which are accessed by any attribute instantiation which is present in the code linker has analyzed.As such enumerating all fields and properties may return different results after trimmingbut all those which are needed to actually have data will be there. | -| System.Void System.Reflection.RuntimeCustomAttributeData..ctor(System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.Reflection.ConstArray) | [UnconditionalSuppressMessageAttribute(...)] | Justification | We're getting a MethodBase of a constructor that we found in the metadata. The attribute constructor won't be trimmed. | -| System.Void System.Reflection.RuntimeCustomAttributeData.Init(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | Justification | The pca object had to be created by the single ctor on the Type. So the ctor couldn't have been trimmed. | -| System.Void System.Reflection.RuntimeModule.GetFullyQualifiedName(System.Runtime.CompilerServices.QCallModule,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeModule_GetFullyQualifiedName | -| System.Void System.Reflection.RuntimeModule.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.RuntimeModule.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.RuntimeModule.GetScopeName(System.Runtime.CompilerServices.QCallModule,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeModule_GetScopeName | -| System.Void System.Reflection.StrongNameKeyPair..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.StrongNameKeyPair..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.TargetException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.TargetException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.TargetInvocationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.TargetInvocationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Reflection.TargetParameterCountException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Reflection.TargetParameterCountException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Resources.MissingManifestResourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Resources.MissingManifestResourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Resources.MissingSatelliteAssemblyException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Resources.MissingSatelliteAssemblyException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.AmbiguousImplementationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.AmbiguousImplementationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.CompileMethod(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | EntryPoint | ReflectionInvocation_CompileMethod | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(System.Runtime.CompilerServices.RuntimeHelpers.TryCode,System.Runtime.CompilerServices.RuntimeHelpers.CleanupCode,System.Object) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(System.Runtime.CompilerServices.RuntimeHelpers.TryCode,System.Runtime.CompilerServices.RuntimeHelpers.CleanupCode,System.Object) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.GetUninitializedObject(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | ReflectionSerialization_GetUninitializedObject | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegions() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegions() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegionsNoOP() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegionsNoOP() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareContractedDelegate(System.Delegate) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareContractedDelegate(System.Delegate) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod(System.RuntimeMethodHandleInternal,System.IntPtr*,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | ReflectionInvocation_PrepareMethod | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.ProbeForSufficientStack() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0004 | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.ProbeForSufficientStack() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | EntryPoint | ReflectionInvocation_RunClassConstructor | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.RunModuleConstructor(System.Runtime.CompilerServices.QCallModule) | [LibraryImportAttribute(...)] | EntryPoint | ReflectionInvocation_RunModuleConstructor | -| System.Void System.Runtime.CompilerServices.RuntimeWrappedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.CompilerServices.RuntimeWrappedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.RuntimeWrappedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.CompilerServices.RuntimeWrappedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.SwitchExpressionException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.CompilerServices.SwitchExpressionException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.CompilerServices.SwitchExpressionException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.CompilerServices.SwitchExpressionException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.ControlledExecution.AbortThread(System.Threading.ThreadHandle) | [LibraryImportAttribute(...)] | EntryPoint | ThreadNative_Abort | -| System.Void System.Runtime.ControlledExecution.ResetAbortThread() | [LibraryImportAttribute(...)] | EntryPoint | ThreadNative_ResetAbort | -| System.Void System.Runtime.ControlledExecution.Run(System.Action,System.Threading.CancellationToken) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0046 | -| System.Void System.Runtime.ControlledExecution.Run(System.Action,System.Threading.CancellationToken) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.InteropServices.COMException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.InteropServices.COMException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal(System.IntPtr,System.IntPtr,System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | ComWrappers_GetIUnknownImpl | -| System.Void System.Runtime.InteropServices.ComWrappers.SetGlobalInstanceRegisteredForMarshalling(System.Int64) | [LibraryImportAttribute(...)] | EntryPoint | ComWrappers_SetGlobalInstanceRegisteredForMarshalling | -| System.Void System.Runtime.InteropServices.ComWrappers.SetGlobalInstanceRegisteredForTrackerSupport(System.Int64) | [LibraryImportAttribute(...)] | EntryPoint | ComWrappers_SetGlobalInstanceRegisteredForTrackerSupport | -| System.Void System.Runtime.InteropServices.ExternalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.InteropServices.ExternalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.InteropServices.InvalidComObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.InteropServices.InvalidComObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.InteropServices.InvalidOleVariantTypeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.InteropServices.InvalidOleVariantTypeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.InteropServices.Marshal.DestroyStructure`1(System.IntPtr) | [UnconditionalSuppressMessageAttribute(...)] | Justification | AOT compilers can see the T. | -| System.Void System.Runtime.InteropServices.Marshal.InternalPrelink(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | EntryPoint | MarshalNative_Prelink | -| System.Void System.Runtime.InteropServices.Marshal.PrelinkAll(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | Justification | This only needs to prelink methods that are actually used | -| System.Void System.Runtime.InteropServices.Marshal.StructureToPtr`1(!0,System.IntPtr,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | Justification | AOT compilers can see the T. | -| System.Void System.Runtime.InteropServices.MarshalDirectiveException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.InteropServices.MarshalDirectiveException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.InteropServices.NativeLibrary.FreeLib(System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | NativeLibrary_FreeLib | -| System.Void System.Runtime.InteropServices.SEHException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.InteropServices.SEHException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.InteropServices.SafeArrayRankMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.InteropServices.SafeArrayRankMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.InteropServices.SafeArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.InteropServices.SafeArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.Intrinsics.X86.X86Base.__cpuidex(System.Int32*,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | EntryPoint | X86BaseCpuId | -| System.Void System.Runtime.Loader.AssemblyLoadContext.LoadFromStream(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_LoadFromStream | -| System.Void System.Runtime.Loader.AssemblyLoadContext.PrepareForAssemblyLoadContextRelease(System.IntPtr,System.IntPtr) | [LibraryImportAttribute(...)] | EntryPoint | AssemblyNative_PrepareForAssemblyLoadContextRelease | -| System.Void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.Serialization.SerializationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Runtime.Serialization.SerializationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.Serialization.SerializationInfo..ctor(System.Type,System.Runtime.Serialization.IFormatterConverter) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Void System.Runtime.Serialization.SerializationInfo..ctor(System.Type,System.Runtime.Serialization.IFormatterConverter) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.Serialization.SerializationInfo..ctor(System.Type,System.Runtime.Serialization.IFormatterConverter,System.Boolean) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Void System.Runtime.Serialization.SerializationInfo..ctor(System.Type,System.Runtime.Serialization.IFormatterConverter,System.Boolean) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.Serialization.StreamingContext..ctor(System.Runtime.Serialization.StreamingContextStates) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Void System.Runtime.Serialization.StreamingContext..ctor(System.Runtime.Serialization.StreamingContextStates) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Runtime.Serialization.StreamingContext..ctor(System.Runtime.Serialization.StreamingContextStates,System.Object) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| System.Void System.Runtime.Serialization.StreamingContext..ctor(System.Runtime.Serialization.StreamingContextStates,System.Object) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.RuntimeFieldHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.RuntimeFieldHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.RuntimeMethodHandle.ConstructInstantiation(System.RuntimeMethodHandleInternal,System.TypeNameFormatFlags,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeMethodHandle_ConstructInstantiation | -| System.Void System.RuntimeMethodHandle.Destroy(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeMethodHandle_Destroy | -| System.Void System.RuntimeMethodHandle.GetMethodInstantiation(System.RuntimeMethodHandleInternal,System.Runtime.CompilerServices.ObjectHandleOnStack,Interop.BOOL) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeMethodHandle_GetMethodInstantiation | -| System.Void System.RuntimeMethodHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.RuntimeMethodHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.RuntimeMethodHandle.GetTypicalMethodDefinition(System.RuntimeMethodHandleInternal,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeMethodHandle_GetTypicalMethodDefinition | -| System.Void System.RuntimeMethodHandle.StripMethodInstantiation(System.RuntimeMethodHandleInternal,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeMethodHandle_StripMethodInstantiation | -| System.Void System.RuntimeTypeHandle.ConstructName(System.Runtime.CompilerServices.QCallTypeHandle,System.TypeNameFormatFlags,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_ConstructName | -| System.Void System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(System.Runtime.CompilerServices.QCallTypeHandle,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_CreateInstanceForAnotherGenericParameter | -| System.Void System.RuntimeTypeHandle.GetActivationInfo(System.Runtime.CompilerServices.ObjectHandleOnStack,delegate* managed<Void*,Object>*,System.Void**,delegate* managed<Object,Void>*,Interop.BOOL*) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_GetActivationInfo | -| System.Void System.RuntimeTypeHandle.GetConstraints(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_GetConstraints | -| System.Void System.RuntimeTypeHandle.GetGenericTypeDefinition(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_GetGenericTypeDefinition | -| System.Void System.RuntimeTypeHandle.GetInstantiation(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack,Interop.BOOL) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_GetInstantiation | -| System.Void System.RuntimeTypeHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.RuntimeTypeHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.RuntimeTypeHandle.Instantiate(System.Runtime.CompilerServices.QCallTypeHandle,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_Instantiate | -| System.Void System.RuntimeTypeHandle.MakeArray(System.Runtime.CompilerServices.QCallTypeHandle,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_MakeArray | -| System.Void System.RuntimeTypeHandle.MakeByRef(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_MakeByRef | -| System.Void System.RuntimeTypeHandle.MakePointer(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_MakePointer | -| System.Void System.RuntimeTypeHandle.MakeSZArray(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_MakeSZArray | -| System.Void System.RuntimeTypeHandle.RegisterCollectibleTypeDependency(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_RegisterCollectibleTypeDependency | -| System.Void System.RuntimeTypeHandle.VerifyInterfaceIsImplemented(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | EntryPoint | RuntimeTypeHandle_VerifyInterfaceIsImplemented | -| System.Void System.Security.Cryptography.CryptographicException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Security.Cryptography.CryptographicException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Security.SecurityException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Security.SecurityException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Security.SecurityException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Security.SecurityException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Security.VerificationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Security.VerificationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.StackOverflowException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.StackOverflowException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.StartupHookProvider.CallStartupHook(System.Char*) | [UnconditionalSuppressMessageAttribute(...)] | Justification | An ILLink warning when trimming an app with System.StartupHookProvider.IsSupported=true already exists for ProcessStartupHooks. | -| System.Void System.SystemException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.SystemException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Text.DecoderFallbackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Text.DecoderFallbackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Text.EncoderFallbackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Text.EncoderFallbackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Text.UTF7Encoding..ctor() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0001 | -| System.Void System.Text.UTF7Encoding..ctor() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Text.UTF7Encoding..ctor(System.Boolean) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0001 | -| System.Void System.Text.UTF7Encoding..ctor(System.Boolean) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.AbandonedMutexException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.AbandonedMutexException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.CompressedStack.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.CompressedStack.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.ExecutionContext.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.ExecutionContext.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.Interlocked._MemoryBarrierProcessWide() | [LibraryImportAttribute(...)] | EntryPoint | Interlocked_MemoryBarrierProcessWide | -| System.Void System.Threading.LockRecursionException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.LockRecursionException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.SemaphoreFullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.SemaphoreFullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.SynchronizationLockException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.SynchronizationLockException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.Tasks.TaskCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.Tasks.TaskCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.Tasks.TaskSchedulerException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.Tasks.TaskSchedulerException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.Tasks.TplEventSource.AwaitTaskContinuationScheduled(System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Threading.Tasks.TplEventSource.TaskCompleted(System.Int32,System.Int32,System.Int32,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Threading.Tasks.TplEventSource.TaskScheduled(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Threading.Tasks.TplEventSource.TaskWaitBegin(System.Int32,System.Int32,System.Int32,System.Threading.Tasks.TplEventSource.TaskWaitBehavior,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Threading.Tasks.TplEventSource.TraceOperationBegin(System.Int32,System.String,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Threading.Tasks.TplEventSource.TraceSynchronousWorkEnd(System.Threading.Tasks.CausalitySynchronousWork) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Parameters to this method are primitive and are trimmer safe | -| System.Void System.Threading.Thread.Abort() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0006 | -| System.Void System.Threading.Thread.Abort() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.Thread.Abort(System.Object) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0006 | -| System.Void System.Threading.Thread.Abort(System.Object) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.Thread.ResetAbort() | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0006 | -| System.Void System.Threading.Thread.ResetAbort() | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.Thread.SetCompressedStack(System.Threading.CompressedStack) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0003 | -| System.Void System.Threading.Thread.SetCompressedStack(System.Threading.CompressedStack) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.Thread.StartInternal(System.Threading.ThreadHandle,System.Int32,System.Int32,System.Char*) | [LibraryImportAttribute(...)] | EntryPoint | ThreadNative_Start | -| System.Void System.Threading.ThreadAbortException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.ThreadAbortException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.ThreadInterruptedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.ThreadInterruptedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.ThreadStartException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.ThreadStartException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.ThreadStateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.ThreadStateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Threading.WaitHandleCannotBeOpenedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.Threading.WaitHandleCannotBeOpenedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.TimeZoneNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.TimeZoneNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.TimeoutException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.TimeoutException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.Type.GetEnumData(System.String[],System.Array) | [UnconditionalSuppressMessageAttribute(...)] | Justification | Literal fields on enums can never be trimmed | -| System.Void System.TypeAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.TypeAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.TypeInitializationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.TypeInitializationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.TypeInitializationException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.TypeInitializationException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.TypeLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.TypeLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.TypeLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.TypeLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.TypeUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.TypeUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.UnauthorizedAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.UnauthorizedAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.WeakReference..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.WeakReference..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.WeakReference.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.WeakReference.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| System.Void System.WeakReference`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0051 | -| System.Void System.WeakReference`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| bool System.Reflection.Assembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0005 | -| bool System.Reflection.Assembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| bool System.Reflection.FieldInfo.IsNotSerialized | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| bool System.Reflection.FieldInfo.IsNotSerialized | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| bool System.Reflection.RuntimeAssembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0005 | -| bool System.Reflection.RuntimeAssembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| bool System.Reflection.SignatureType.IsSerializable | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| bool System.Reflection.SignatureType.IsSerializable | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| bool System.Type.IsSerializable | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0050 | -| bool System.Type.IsSerializable | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| byte | [ConstantExpectedAttribute(...)] | Max | 1 | -| byte | [ConstantExpectedAttribute(...)] | Max | 3 | -| byte | [ConstantExpectedAttribute(...)] | Max | 7 | -| byte | [ConstantExpectedAttribute(...)] | Max | 8 | -| byte | [ConstantExpectedAttribute(...)] | Max | 15 | -| byte | [ConstantExpectedAttribute(...)] | Max | 16 | -| byte | [ConstantExpectedAttribute(...)] | Max | 31 | -| byte | [ConstantExpectedAttribute(...)] | Max | 32 | -| byte | [ConstantExpectedAttribute(...)] | Max | 63 | -| byte | [ConstantExpectedAttribute(...)] | Max | 64 | -| byte | [ConstantExpectedAttribute(...)] | Max | 127 | -| byte | [ConstantExpectedAttribute(...)] | Max | 128 | -| byte | [ConstantExpectedAttribute(...)] | Min | 1 | -| delegate* managed<Byte&,Void> System.Array.ArrayInitializeCache.GetElementConstructorEntrypoint(System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | EntryPoint | Array_GetElementConstructorEntrypoint | -| string System.Reflection.Assembly.CodeBase | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0012 | -| string System.Reflection.Assembly.CodeBase | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| string System.Reflection.Assembly.EscapedCodeBase | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0012 | -| string System.Reflection.Assembly.EscapedCodeBase | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| string System.Reflection.AssemblyName.CodeBase | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0044 | -| string System.Reflection.AssemblyName.CodeBase | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| string System.Reflection.AssemblyName.EscapedCodeBase | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0044 | -| string System.Reflection.AssemblyName.EscapedCodeBase | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| string System.Reflection.Emit.AssemblyBuilder.CodeBase | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0012 | -| string System.Reflection.Emit.AssemblyBuilder.CodeBase | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -| string System.Reflection.RuntimeAssembly.CodeBase | [ObsoleteAttribute(...)] | DiagnosticId | SYSLIB0012 | -| string System.Reflection.RuntimeAssembly.CodeBase | [ObsoleteAttribute(...)] | UrlFormat | https://aka.ms/dotnet-warnings/{0} | -attrArgPositional -| !0 | [NotNullIfNotNullAttribute(...)] | 0 | location | -| !0 | [NotNullIfNotNullAttribute(...)] | 0 | value | -| !0 | [NullableAttribute(...)] | 0 | 1 | -| !0 | [NullableAttribute(...)] | 0 | 2 | -| !0 System.ArraySegment`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.ArraySegment`1.Enumerator.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.HashSet`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.HashSet`1.Enumerator.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.IAsyncEnumerator`1.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.IAsyncEnumerator`1.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.IEnumerator`1.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.IEnumerator`1.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.List`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.List`1.Enumerator.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.Queue`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Collections.Generic.Queue`1.Enumerator.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Enum.Parse`1(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Enum.Parse`1(System.ReadOnlySpan<System.Char>,System.Boolean) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Enum.Parse`1(System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Enum.Parse`1(System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Func`1.Invoke() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.IO.Enumeration.FileSystemEnumerable`1.FindTransform.Invoke(System.IO.Enumeration.FileSystemEntry) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.IO.Enumeration.FileSystemEnumerator`1.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.IO.Enumeration.FileSystemEnumerator`1.TransformEntry(System.IO.Enumeration.FileSystemEntry) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.IO.Enumeration.FileSystemEnumerator`1.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.IParsable`1.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Lazy`1.Value | [DebuggerBrowsableAttribute(...)] | 0 | 0 | -| !0 System.Lazy`1.ValueForDebugDisplay | [NullableAttribute(...)] | 0 | 2 | -| !0 System.Numerics.IBinaryInteger`1.ReadBigEndian(System.ReadOnlySpan<System.Byte>,System.Boolean) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Numerics.IBinaryInteger`1.ReadLittleEndian(System.ReadOnlySpan<System.Byte>,System.Boolean) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Numerics.IBinaryNumber`1.AllBitsSet | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Numerics.IBinaryNumber`1.Log2(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.IBinaryNumber`1.get_AllBitsSet() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.INumberBase`1.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Numerics.INumberBase`1.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Numerics.INumberBase`1.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Numerics.INumberBase`1.Parse(System.ReadOnlySpan<System.Byte>,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Numerics.INumberBase`1.Parse(System.ReadOnlySpan<System.Char>,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Numerics.IPowerFunctions`1.Pow(!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.IRootFunctions`1.Cbrt(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.IRootFunctions`1.Hypot(!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.IRootFunctions`1.RootN(!0,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.IRootFunctions`1.Sqrt(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.ISignedNumber`1.NegativeOne | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Numerics.ISignedNumber`1.get_NegativeOne() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.Vector.Dot`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.Vector.GetElement`1(System.Numerics.Vector<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.Vector.Sum`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.Vector.ToScalar`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Numerics.Vector`1.Item | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Numerics.Vector`1.get_Item(System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.ReadOnlySpan`1.GetPinnableReference() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| !0 System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.CompilerServices.Unsafe.AddByteOffset`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| !0 System.Runtime.CompilerServices.Unsafe.Add`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| !0 System.Runtime.CompilerServices.Unsafe.AsRef`1(System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| !0 System.Runtime.CompilerServices.Unsafe.AsRef`1(System.Void*) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Runtime.CompilerServices.Unsafe.As`1(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| !0 System.Runtime.CompilerServices.Unsafe.ReadUnaligned`1(System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| !0 System.Runtime.CompilerServices.Unsafe.ReadUnaligned`1(System.Void*) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Runtime.CompilerServices.Unsafe.Read`1(System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| !0 System.Runtime.CompilerServices.Unsafe.Read`1(System.Void*) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Runtime.CompilerServices.Unsafe.SubtractByteOffset`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| !0 System.Runtime.CompilerServices.Unsafe.Subtract`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| !0 System.Runtime.CompilerServices.Unsafe.Unbox`1(System.Object) | [NullableContextAttribute(...)] | 0 | 0 | -| !0 System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance`1(System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.Marshal.GetObjectForNativeVariant`1(System.IntPtr) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.Marshal.GetObjectForNativeVariant`1(System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| !0 System.Runtime.InteropServices.Marshal.GetObjectForNativeVariant`1(System.IntPtr) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| !0 System.Runtime.InteropServices.Marshal.PtrToStructure`1(System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| !0 System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2.ManagedToUnmanagedIn.GetPinnableReference(!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.ManagedToUnmanagedIn.GetPinnableReference(System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1.ManagedToUnmanagedOut.ToManaged() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.Marshalling.SpanMarshaller`2.ManagedToUnmanagedIn.GetPinnableReference(System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference`1(!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.MemoryMarshal.GetReference`1(System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.MemoryMarshal.GetReference`1(System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.InteropServices.SafeBuffer.Read`1(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| !0 System.Runtime.Intrinsics.Vector64.Dot`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector64.GetElement`1(System.Runtime.Intrinsics.Vector64<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector64.Sum`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector64.ToScalar`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector128.Dot`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector128.GetElement`1(System.Runtime.Intrinsics.Vector128<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector128.Sum`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector128.ToScalar`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector256.Dot`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector256.GetElement`1(System.Runtime.Intrinsics.Vector256<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector256.Sum`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector256.ToScalar`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector512.Dot`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector512.GetElement`1(System.Runtime.Intrinsics.Vector512<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector512.Sum`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Runtime.Intrinsics.Vector512.ToScalar`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Span`1.GetPinnableReference() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| !0 System.Threading.Tasks.Sources.IValueTaskSource`1.GetResult(System.Int16) | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Threading.Tasks.Task`1.Result | [DebuggerBrowsableAttribute(...)] | 0 | 0 | -| !0 System.Threading.Tasks.ValueTask`1.Result | [DebuggerBrowsableAttribute(...)] | 0 | 0 | -| !0 System.Threading.ThreadLocal`1.Value | [DebuggerBrowsableAttribute(...)] | 0 | 0 | -| !0 System.Threading.ThreadLocal`1.ValueForDebugDisplay | [NullableAttribute(...)] | 0 | 2 | -| !0 System.Tuple`1.Item1 | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Tuple`1.get_Item1() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.Tuple`2.Item1 | [NullableAttribute(...)] | 0 | 1 | -| !0 System.Tuple`2.get_Item1() | [NullableContextAttribute(...)] | 0 | 1 | -| !0 System.WeakReference`1.Target | [NullableAttribute(...)] | 0 | 2 | -| !0* | [NullableAttribute(...)] | 0 | [0,1] | -| !0*[] | [NullableAttribute(...)] | 0 | [2,0,0] | -| !0[] | [NullableAttribute(...)] | 0 | 1 | -| !0[] | [NullableAttribute(...)] | 0 | [1,0] | -| !0[] | [NullableAttribute(...)] | 0 | [2,1] | -| !0[] System.ArraySegment`1.Array | [NullableAttribute(...)] | 0 | [2,1] | -| !0[] System.Buffers.SearchValuesDebugView`1.Values | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !0[] System.Collections.Concurrent.IProducerConsumerCollectionDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !0[] System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.SingleProducerSingleConsumerQueue_DebugView.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !0[] System.Collections.Generic.DictionaryKeyCollectionDebugView`2.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !0[] System.Collections.Generic.ICollectionDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !0[] System.Collections.Generic.QueueDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !0[] System.Enum.GetValues`1() | [NullableContextAttribute(...)] | 0 | 0 | -| !0[] System.MemoryDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !0[] System.Runtime.InteropServices.Marshal.GetObjectsForNativeVariants`1(System.IntPtr,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| !0[] System.Runtime.InteropServices.Marshal.GetObjectsForNativeVariants`1(System.IntPtr,System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| !0[] System.SpanDebugView`1.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !1 | [NullableAttribute(...)] | 0 | 1 | -| !1 System.Collections.Generic.CollectionExtensions.GetValueOrDefault`2(System.Collections.Generic.IReadOnlyDictionary<!0,!1>,!0) | [NullableContextAttribute(...)] | 0 | 2 | -| !1 System.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current | [NullableAttribute(...)] | 0 | 1 | -| !1 System.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.get_Current() | [NullableContextAttribute(...)] | 0 | 1 | -| !1 System.Converter`2.Invoke(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !1 System.Func`2.Invoke(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !1 System.Numerics.IUnaryPlusOperators`2.op_UnaryPlus(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !1 System.Runtime.CompilerServices.ConditionalWeakTable`2.CreateValueCallback.Invoke(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| !1 System.Runtime.CompilerServices.Unsafe.BitCast`2(!0) | [NullableContextAttribute(...)] | 0 | 0 | -| !1 System.Runtime.InteropServices.Marshal.CreateWrapperOfType`2(!0) | [NullableContextAttribute(...)] | 0 | 2 | -| !1 System.Runtime.InteropServices.Marshal.CreateWrapperOfType`2(!0) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| !1 System.Tuple`2.Item2 | [NullableAttribute(...)] | 0 | 1 | -| !1 System.Tuple`2.get_Item2() | [NullableContextAttribute(...)] | 0 | 1 | -| !1[] | [NullableAttribute(...)] | 0 | [2,1] | -| !1[] System.Collections.Generic.DictionaryValueCollectionDebugView`2.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| !2 | [NullableAttribute(...)] | 0 | 1 | -| !2 System.Func`3.Invoke(!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| !2 System.Numerics.IModulusOperators`3.op_Modulus(!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| !3 System.Func`4.Invoke(!0,!1,!2) | [NullableContextAttribute(...)] | 0 | 1 | -| !4 System.Func`5.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !4 System.Func`5.Invoke(!0,!1,!2,!3) | [NullableContextAttribute(...)] | 0 | 1 | -| !5 System.Func`6.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !5 System.Func`6.Invoke(!0,!1,!2,!3,!4) | [NullableContextAttribute(...)] | 0 | 1 | -| !6 System.Func`7.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !6 System.Func`7.Invoke(!0,!1,!2,!3,!4,!5) | [NullableContextAttribute(...)] | 0 | 1 | -| !7 | [NullableAttribute(...)] | 0 | 0 | -| !7 System.Func`8.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !7 System.Func`8.Invoke(!0,!1,!2,!3,!4,!5,!6) | [NullableContextAttribute(...)] | 0 | 1 | -| !8 System.Func`9.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !8 System.Func`9.Invoke(!0,!1,!2,!3,!4,!5,!6,!7) | [NullableContextAttribute(...)] | 0 | 1 | -| !9 System.Func`10.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !9 System.Func`10.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8) | [NullableContextAttribute(...)] | 0 | 1 | -| !10 System.Func`11.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !10 System.Func`11.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9) | [NullableContextAttribute(...)] | 0 | 1 | -| !11 System.Func`12.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !11 System.Func`12.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10) | [NullableContextAttribute(...)] | 0 | 1 | -| !12 System.Func`13.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !12 System.Func`13.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11) | [NullableContextAttribute(...)] | 0 | 1 | -| !13 System.Func`14.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !13 System.Func`14.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12) | [NullableContextAttribute(...)] | 0 | 1 | -| !14 System.Func`15.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !14 System.Func`15.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13) | [NullableContextAttribute(...)] | 0 | 1 | -| !15 System.Func`16.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !15 System.Func`16.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14) | [NullableContextAttribute(...)] | 0 | 1 | -| !16 System.Func`17.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| !16 System.Func`17.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15) | [NullableContextAttribute(...)] | 0 | 1 | -| Internal.Runtime.InteropServices.ComponentActivator.s_assemblyLoadContexts | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| Internal.Runtime.InteropServices.ComponentActivator.s_assemblyLoadContexts | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| Internal.Runtime.InteropServices.ComponentActivator.s_assemblyLoadContexts | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| Internal.Runtime.InteropServices.ComponentActivator.s_assemblyLoadContexts | [UnsupportedOSPlatformAttribute(...)] | 0 | maccatalyst | -| Internal.Runtime.InteropServices.ComponentActivator.s_assemblyLoadContexts | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext | [UnsupportedOSPlatformAttribute(...)] | 0 | maccatalyst | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext Internal.Runtime.InteropServices.ComponentActivator.GetIsolatedComponentLoadContext(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Native hosting is not trim compatible and this warning will be seen if trimming is enabled. | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext Internal.Runtime.InteropServices.ComponentActivator.GetIsolatedComponentLoadContext(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext Internal.Runtime.InteropServices.ComponentActivator.GetIsolatedComponentLoadContext(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext Internal.Runtime.InteropServices.ComponentActivator.GetIsolatedComponentLoadContext(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| Internal.Runtime.InteropServices.IsolatedComponentLoadContext Internal.Runtime.InteropServices.ComponentActivator.GetIsolatedComponentLoadContext(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| Interop.BOOL Interop.Kernel32.FreeEnvironmentStringsW(System.Char*) | [LibraryImportAttribute(...)] | 0 | QCall | -| Interop.BOOL System.Reflection.RuntimeAssembly.GetIsCollectible(System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | 0 | QCall | -| Interop.BOOL System.RuntimeMethodHandle.GetIsCollectible(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | 0 | QCall | -| Interop.BOOL System.RuntimeMethodHandle.IsCAVisibleFromDecoratedType(System.Runtime.CompilerServices.QCallTypeHandle,System.RuntimeMethodHandleInternal,System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.QCallModule) | [LibraryImportAttribute(...)] | 0 | QCall | -| Interop.BOOL System.RuntimeTypeHandle.IsCollectible(System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| Interop.BOOL System.Threading.Thread.YieldInternal() | [LibraryImportAttribute(...)] | 0 | QCall | -| Interop.Globalization.ResultCode Interop.Globalization.GetCalendarInfo(System.String,System.Globalization.CalendarId,System.Globalization.CalendarDataType,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| Interop.Globalization.ResultCode Interop.Globalization.GetCalendarInfo(System.String,System.Globalization.CalendarId,System.Globalization.CalendarDataType,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| Interop.Globalization.ResultCode Interop.Globalization.GetSortHandle(System.String,System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| Interop.Globalization.ResultCode Interop.Globalization.GetSortHandle(System.String,System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| Interop.Globalization.ResultCode Interop.Globalization.GetTimeZoneDisplayName(System.String,System.String,Interop.Globalization.TimeZoneDisplayNameType,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| Interop.Globalization.ResultCode Interop.Globalization.GetTimeZoneDisplayName(System.String,System.String,Interop.Globalization.TimeZoneDisplayNameType,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| Interop.HostPolicy.corehost_error_writer_fn | [UnmanagedFunctionPointerAttribute(...)] | 0 | 2 | -| Interop.HostPolicy.corehost_resolve_component_dependencies_result_fn | [UnmanagedFunctionPointerAttribute(...)] | 0 | 2 | -| Microsoft.Win32.SafeHandles.SafeFileHandle | [NullableAttribute(...)] | 0 | 0 | -| Microsoft.Win32.SafeHandles.SafeFileHandle | [NullableAttribute(...)] | 0 | 1 | -| Microsoft.Win32.SafeHandles.SafeFileHandle | [NullableContextAttribute(...)] | 0 | 2 | -| Microsoft.Win32.SafeHandles.SafeWaitHandle | [NullableAttribute(...)] | 0 | 2 | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateEventEx(System.IntPtr,System.String,System.UInt32,System.UInt32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateEventEx(System.IntPtr,System.String,System.UInt32,System.UInt32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateMutexEx(System.IntPtr,System.String,System.UInt32,System.UInt32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateMutexEx(System.IntPtr,System.String,System.UInt32,System.UInt32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateSemaphoreEx(System.IntPtr,System.Int32,System.Int32,System.String,System.UInt32,System.UInt32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.CreateSemaphoreEx(System.IntPtr,System.Int32,System.Int32,System.String,System.UInt32,System.UInt32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.OpenMutex(System.UInt32,System.Boolean,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| Microsoft.Win32.SafeHandles.SafeWaitHandle Interop.Kernel32.OpenMutex(System.UInt32,System.Boolean,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| Microsoft.Win32.SafeHandles.SafeWaitHandle System.Threading.RegisteredWaitHandle.Handle | [NullableAttribute(...)] | 0 | 1 | -| System.AccessViolationException | [NullableAttribute(...)] | 0 | 0 | -| System.AccessViolationException | [NullableContextAttribute(...)] | 0 | 2 | -| System.AccessViolationException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Action<System.Object,System.Threading.CancellationToken> | [NullableAttribute(...)] | 0 | [1,2] | -| System.Action<System.Object,System.Threading.Tasks.Task<!0>> | [NullableAttribute(...)] | 0 | [1,1,1,2] | -| System.Action<System.Object,System.Threading.Tasks.Task> | [NullableAttribute(...)] | 0 | [1,1,2] | -| System.Action<System.Object> | [NullableAttribute(...)] | 0 | [1,2] | -| System.Action<System.Runtime.Loader.AssemblyLoadContext> | [NullableAttribute(...)] | 0 | [2,1] | -| System.Action<System.Threading.AsyncLocalValueChangedArgs<!0>> | [NullableAttribute(...)] | 0 | [2,0,1] | -| System.Action`4 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`4 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`5 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`5 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`6 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`6 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`7 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`7 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`8 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`8 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`9 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`9 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`10 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`10 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`11 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`11 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`12 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`12 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`13 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`13 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`14 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`14 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`15 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`15 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Action`16 | [NullableAttribute(...)] | 0 | 0 | -| System.Action`16 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Activator | [NullableAttribute(...)] | 0 | 0 | -| System.Activator | [NullableContextAttribute(...)] | 0 | 1 | -| System.AggregateException | [DebuggerDisplayAttribute(...)] | 0 | Count = {InnerExceptionCount} | -| System.AggregateException | [NullableAttribute(...)] | 0 | 0 | -| System.AggregateException | [NullableContextAttribute(...)] | 0 | 1 | -| System.AggregateException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.AggregateException System.Threading.Tasks.Task.Exception | [NullableAttribute(...)] | 0 | 2 | -| System.AggregateException System.Threading.Tasks.Task.get_Exception() | [NullableContextAttribute(...)] | 0 | 2 | -| System.AppContext | [NullableAttribute(...)] | 0 | 0 | -| System.AppContext | [NullableContextAttribute(...)] | 0 | 1 | -| System.AppContext.FirstChanceException | [NullableAttribute(...)] | 0 | [2,1] | -| System.AppContext.ProcessExit | [NullableAttribute(...)] | 0 | 2 | -| System.AppContext.UnhandledException | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomain | [NullableAttribute(...)] | 0 | 0 | -| System.AppDomain | [NullableContextAttribute(...)] | 0 | 1 | -| System.AppDomain System.AppDomain.CreateDomain(System.String) | [ObsoleteAttribute(...)] | 0 | Creating and unloading AppDomains is not supported and throws an exception. | -| System.AppDomain.AssemblyLoad | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomain.AssemblyResolve | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomain.DomainUnload | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomain.FirstChanceException | [NullableAttribute(...)] | 0 | [2,1] | -| System.AppDomain.ProcessExit | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomain.ReflectionOnlyAssemblyResolve | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomain.ResourceResolve | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomain.TypeResolve | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomain.UnhandledException | [NullableAttribute(...)] | 0 | 2 | -| System.AppDomainSetup | [NullableAttribute(...)] | 0 | 0 | -| System.AppDomainSetup | [NullableContextAttribute(...)] | 0 | 2 | -| System.AppDomainUnloadedException | [NullableAttribute(...)] | 0 | 0 | -| System.AppDomainUnloadedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.AppDomainUnloadedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ApplicationException | [NullableAttribute(...)] | 0 | 0 | -| System.ApplicationException | [NullableContextAttribute(...)] | 0 | 2 | -| System.ApplicationException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ApplicationId | [NullableAttribute(...)] | 0 | 0 | -| System.ApplicationId | [NullableContextAttribute(...)] | 0 | 1 | -| System.ArgumentException | [NullableAttribute(...)] | 0 | 0 | -| System.ArgumentException | [NullableContextAttribute(...)] | 0 | 2 | -| System.ArgumentException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ArgumentNullException | [NullableAttribute(...)] | 0 | 0 | -| System.ArgumentNullException | [NullableContextAttribute(...)] | 0 | 2 | -| System.ArgumentNullException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ArgumentOutOfRangeException | [NullableAttribute(...)] | 0 | 0 | -| System.ArgumentOutOfRangeException | [NullableContextAttribute(...)] | 0 | 1 | -| System.ArgumentOutOfRangeException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ArithmeticException | [NullableAttribute(...)] | 0 | 0 | -| System.ArithmeticException | [NullableContextAttribute(...)] | 0 | 2 | -| System.ArithmeticException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Array | [NullableAttribute(...)] | 0 | 0 | -| System.Array | [NullableAttribute(...)] | 0 | 1 | -| System.Array | [NullableAttribute(...)] | 0 | 2 | -| System.Array | [NullableContextAttribute(...)] | 0 | 1 | -| System.Array | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Array System.Array.CreateInstance(System.Type,System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Array.CreateInstance(System.Type,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Array System.Array.CreateInstance(System.Type,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:RequiresDynamicCode | -| System.Array System.Array.CreateInstance(System.Type,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Array System.Array.CreateInstance(System.Type,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:RequiresDynamicCode | -| System.Array System.Array.CreateInstance(System.Type,System.Int32[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Array.CreateInstance(System.Type,System.Int32[],System.Int32[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Array.CreateInstance(System.Type,System.Int64[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Collections.ArrayList.FixedSizeArrayList.ToArray(System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Collections.ArrayList.IListWrapper.ToArray(System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Collections.ArrayList.Range.ToArray(System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Collections.ArrayList.ReadOnlyArrayList.ToArray(System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Collections.ArrayList.SyncArrayList.ToArray(System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Collections.ArrayList.ToArray(System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Array System.Enum.GetValues(System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | It might not be possible to create an array of the enum type at runtime. Use the GetValues<TEnum> overload or the GetValuesAsUnderlyingType method instead. | -| System.Array System.Reflection.SignatureType.GetEnumValues() | [RequiresDynamicCodeAttribute(...)] | 0 | It might not be possible to create an array of the enum type at runtime. Use Enum.GetValues<T> or the GetEnumValuesAsUnderlyingType method instead. | -| System.Array System.RuntimeType.GetEnumValues() | [RequiresDynamicCodeAttribute(...)] | 0 | It might not be possible to create an array of the enum type at runtime. Use Enum.GetValues<T> or the GetEnumValuesAsUnderlyingType method instead. | -| System.Array System.Type.GetEnumValues() | [RequiresDynamicCodeAttribute(...)] | 0 | It might not be possible to create an array of the enum type at runtime. Use Enum.GetValues<T> or the GetEnumValuesAsUnderlyingType method instead. | -| System.ArraySegment<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.ArraySegment<!0> System.ArraySegment`1.Empty | [NullableAttribute(...)] | 0 | [0,1] | -| System.ArraySegment<!0>.Enumerator System.ArraySegment`1.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 0 | -| System.ArraySegment`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.ArraySegment`1 | [NullableAttribute(...)] | 0 | 0 | -| System.ArraySegment`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.ArraySegment`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ArraySegment`1.Enumerator | [NullableContextAttribute(...)] | 0 | 0 | -| System.ArrayTypeMismatchException | [NullableAttribute(...)] | 0 | 0 | -| System.ArrayTypeMismatchException | [NullableContextAttribute(...)] | 0 | 2 | -| System.ArrayTypeMismatchException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.AssemblyLoadEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.AssemblyLoadEventArgs | [NullableAttribute(...)] | 0 | 1 | -| System.AssemblyLoadEventArgs | [NullableContextAttribute(...)] | 0 | 1 | -| System.AsyncCallback | [NullableAttribute(...)] | 0 | 0 | -| System.AsyncCallback | [NullableAttribute(...)] | 0 | 2 | -| System.Attribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Attribute | [NullableAttribute(...)] | 0 | 0 | -| System.Attribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Attribute | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Attribute System.Diagnostics.Tracing.EventSource.GetCustomAttributeHelper(System.Reflection.MemberInfo,System.Type,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Attribute System.Diagnostics.Tracing.EventSource.GetCustomAttributeHelper(System.Reflection.MemberInfo,System.Type,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2114:ReflectionToDynamicallyAccessedMembers | -| System.AttributeUsageAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | -| System.AttributeUsageAttribute System.Reflection.CustomAttribute.GetAttributeUsage(System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.AttributeUsageAttribute System.Reflection.CustomAttribute.GetAttributeUsage(System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.BadImageFormatException | [NullableAttribute(...)] | 0 | 0 | -| System.BadImageFormatException | [NullableContextAttribute(...)] | 0 | 2 | -| System.BadImageFormatException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.BitConverter | [NullableAttribute(...)] | 0 | 0 | -| System.BitConverter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean Interop.Globalization.EndsWith(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.EndsWith(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.EnumCalendarInfo(System.IntPtr,System.String,System.Globalization.CalendarId,System.Globalization.CalendarDataType,System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.EnumCalendarInfo(System.IntPtr,System.String,System.Globalization.CalendarId,System.Globalization.CalendarDataType,System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.GetDefaultLocaleName(System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.GetDefaultLocaleName(System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.GetJapaneseEraStartDate(System.Int32,System.Int32,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.GetJapaneseEraStartDate(System.Int32,System.Int32,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.GetJapaneseEraStartDate(System.Int32,System.Int32,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | libSystem.Globalization.Native | -| System.Boolean Interop.Globalization.GetLocaleInfoGroupingSizes(System.String,System.UInt32,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.GetLocaleInfoGroupingSizes(System.String,System.UInt32,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.GetLocaleInfoInt(System.String,System.UInt32,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.GetLocaleInfoInt(System.String,System.UInt32,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.GetLocaleInfoString(System.String,System.UInt32,System.Char*,System.Int32,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.GetLocaleInfoString(System.String,System.UInt32,System.Char*,System.Int32,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.GetLocaleName(System.String,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.GetLocaleName(System.String,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.GetLocaleTimeFormat(System.String,System.Boolean,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.GetLocaleTimeFormat(System.String,System.Boolean,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.IsPredefinedLocale(System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.IsPredefinedLocale(System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Globalization.StartsWith(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Globalization.StartsWith(System.IntPtr,System.Char*,System.Int32,System.Char*,System.Int32,System.Globalization.CompareOptions,System.Int32*) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Kernel32.CloseHandle(System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Kernel32.CloseHandle(System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Kernel32.CloseHandle(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean Interop.Kernel32.ReleaseMutex(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Kernel32.ReleaseMutex(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Kernel32.ReleaseMutex(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean Interop.Kernel32.ReleaseSemaphore(Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Kernel32.ReleaseSemaphore(Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Kernel32.ReleaseSemaphore(Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean Interop.Kernel32.ResetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Kernel32.ResetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Kernel32.ResetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean Interop.Kernel32.SetEnvironmentVariable(System.String,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Kernel32.SetEnvironmentVariable(System.String,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Kernel32.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean Interop.Kernel32.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean Interop.Kernel32.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.ApplicationId.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ArgIterator.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ArraySegment`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Attribute.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Attribute.Equals(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Boolean System.Attribute.Equals(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Boolean System.Attribute.Match(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.BitConverter.ToBoolean(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.Boolean) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.Char) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.Double) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.Half) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.Int16) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.Int64) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.Single) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.UInt16) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.UInt32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.BitConverter.TryWriteBytes(System.Span<System.Byte>,System.UInt64) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Boolean.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Boolean.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Boolean.TryParse(System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUInt16BigEndian(System.ReadOnlySpan<System.Byte>,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUInt16LittleEndian(System.ReadOnlySpan<System.Byte>,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUInt32BigEndian(System.ReadOnlySpan<System.Byte>,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUInt32LittleEndian(System.ReadOnlySpan<System.Byte>,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUInt64BigEndian(System.ReadOnlySpan<System.Byte>,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUInt64LittleEndian(System.ReadOnlySpan<System.Byte>,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUInt128BigEndian(System.ReadOnlySpan<System.Byte>,System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUInt128LittleEndian(System.ReadOnlySpan<System.Byte>,System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUIntPtrBigEndian(System.ReadOnlySpan<System.Byte>,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryReadUIntPtrLittleEndian(System.ReadOnlySpan<System.Byte>,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUInt16BigEndian(System.Span<System.Byte>,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUInt16LittleEndian(System.Span<System.Byte>,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUInt32BigEndian(System.Span<System.Byte>,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUInt32LittleEndian(System.Span<System.Byte>,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUInt64BigEndian(System.Span<System.Byte>,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUInt64LittleEndian(System.Span<System.Byte>,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUInt128BigEndian(System.Span<System.Byte>,System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUInt128LittleEndian(System.Span<System.Byte>,System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUIntPtrBigEndian(System.Span<System.Byte>,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Binary.BinaryPrimitives.TryWriteUIntPtrLittleEndian(System.Span<System.Byte>,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.SearchValues`1.Contains(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Buffers.StandardFormat.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Buffers.Text.Utf8Formatter.TryFormat(System.SByte,System.Span<System.Byte>,System.Int32,System.Buffers.StandardFormat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Text.Utf8Formatter.TryFormat(System.UInt16,System.Span<System.Byte>,System.Int32,System.Buffers.StandardFormat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Text.Utf8Formatter.TryFormat(System.UInt32,System.Span<System.Byte>,System.Int32,System.Buffers.StandardFormat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Text.Utf8Formatter.TryFormat(System.UInt64,System.Span<System.Byte>,System.Int32,System.Buffers.StandardFormat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Text.Utf8Parser.TryParse(System.ReadOnlySpan<System.Byte>,System.SByte,System.Int32,System.Char) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Text.Utf8Parser.TryParse(System.ReadOnlySpan<System.Byte>,System.UInt16,System.Int32,System.Char) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Text.Utf8Parser.TryParse(System.ReadOnlySpan<System.Byte>,System.UInt32,System.Int32,System.Char) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Buffers.Text.Utf8Parser.TryParse(System.ReadOnlySpan<System.Byte>,System.UInt64,System.Int32,System.Char) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Byte.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Byte.TryParse(System.String,System.Byte) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Byte.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Byte) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Byte.TryParse(System.String,System.IFormatProvider,System.Byte) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Char.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Char.IsControl(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsDigit(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsHighSurrogate(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsLetter(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsLetterOrDigit(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsLowSurrogate(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsLower(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsNumber(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsPunctuation(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsSeparator(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsSurrogate(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsSurrogatePair(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsSymbol(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsUpper(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.IsWhiteSpace(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Char.TryParse(System.String,System.Char) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.ArrayList.Contains(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.Generic.ByteEqualityComparer.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.Generic.Dictionary`2.KeyCollection.Contains(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Collections.Generic.EnumEqualityComparer`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.Generic.EqualityComparer`1.Equals(!0,!0) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.Generic.NonRandomizedStringEqualityComparer.Equals(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.Generic.NullableComparer`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.Generic.NullableEqualityComparer`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.Generic.ReferenceEqualityComparer.Equals(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.Hashtable.ContainsValue(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Collections.IEqualityComparer.Equals(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ComponentModel.DefaultValueAttribute.ctor>g__TryConvertFromInvariantString\|2_0(System.Type,System.String,System.Object) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All. | -| System.Boolean System.ComponentModel.EditorBrowsableAttribute.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Console.get_CursorVisible() | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Boolean System.ConsoleKeyInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Convert.ToBoolean(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Convert.ToBoolean(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Convert.ToBoolean(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Convert.ToBoolean(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Convert.TryFromBase64Chars(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Convert.TryFromBase64String(System.String,System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Convert.TryToBase64Chars(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32,System.Base64FormattingOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.DateOnly.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateOnly.TryParse(System.String,System.DateOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateOnly.TryParse(System.String,System.IFormatProvider,System.DateOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateOnly.TryParse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateOnly.TryParseExact(System.ReadOnlySpan<System.Char>,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateOnly.TryParseExact(System.String,System.String,System.DateOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateOnly.TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateOnly.TryParseExact(System.String,System.String[],System.DateOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateOnly.TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTime.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTime.TryParse(System.String,System.DateTime) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTime.TryParse(System.String,System.IFormatProvider,System.DateTime) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTime.TryParse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTime) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTime.TryParseExact(System.ReadOnlySpan<System.Char>,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTime) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTime.TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTime) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTime.TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTime) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTimeOffset.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTimeOffset.TryParse(System.String,System.DateTimeOffset) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTimeOffset.TryParse(System.String,System.IFormatProvider,System.DateTimeOffset) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTimeOffset.TryParse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTimeOffset) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTimeOffset.TryParseExact(System.ReadOnlySpan<System.Char>,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTimeOffset) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTimeOffset.TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTimeOffset) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.DateTimeOffset.TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.DateTimeOffset) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Decimal.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Decimal.TryParse(System.String,System.Decimal) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Decimal.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Decimal) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Decimal.TryParse(System.String,System.IFormatProvider,System.Decimal) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Delegate.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Delegate.op_Equality(System.Delegate,System.Delegate) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Delegate.op_Inequality(System.Delegate,System.Delegate) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Diagnostics.Debugger.LaunchInternal() | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Diagnostics.Debugger.LaunchInternal() | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Diagnostics.Debugger.LaunchInternal() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Diagnostics.StackFrameExtensions.HasMethod(System.Diagnostics.StackFrame) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Boolean System.Diagnostics.StackFrameExtensions.HasMethod(System.Diagnostics.StackFrame) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.GetNextEvent(System.UInt64,System.Diagnostics.Tracing.EventPipeEventInstanceData*) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.GetNextEvent(System.UInt64,System.Diagnostics.Tracing.EventPipeEventInstanceData*) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.GetNextEvent(System.UInt64,System.Diagnostics.Tracing.EventPipeEventInstanceData*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.GetSessionInfo(System.UInt64,System.Diagnostics.Tracing.EventPipeSessionInfo*) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.GetSessionInfo(System.UInt64,System.Diagnostics.Tracing.EventPipeSessionInfo*) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.GetSessionInfo(System.UInt64,System.Diagnostics.Tracing.EventPipeSessionInfo*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.SignalSession(System.UInt64) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.SignalSession(System.UInt64) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.SignalSession(System.UInt64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.WaitForSessionSignal(System.UInt64,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.WaitForSessionSignal(System.UInt64,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Diagnostics.Tracing.EventPipeInternal.WaitForSessionSignal(System.UInt64,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Double.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Double.TryParse(System.String,System.Double) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Double.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Double) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Double.TryParse(System.String,System.IFormatProvider,System.Double) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Enum.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Enum.IsDefined`1(!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Enum.TryFormat`1(!0,System.Span<System.Char>,System.Int32,System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Enum.TryParse(System.Type,System.ReadOnlySpan<System.Char>,System.Boolean,System.Object) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Enum.TryParse(System.Type,System.ReadOnlySpan<System.Char>,System.Object) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Enum.TryParse(System.Type,System.String,System.Boolean,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Enum.TryParse(System.Type,System.String,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Enum.TryParse`1(System.ReadOnlySpan<System.Char>,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Enum.TryParse`1(System.ReadOnlySpan<System.Char>,System.Boolean,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Enum.TryParse`1(System.String,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Enum.TryParse`1(System.String,System.Boolean,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Globalization.CompareInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Globalization.CompareInfo.IsPrefix(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Globalization.CompareInfo.IsPrefix(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Globalization.CompareInfo.IsSortable(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Globalization.CompareInfo.IsSuffix(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Globalization.CompareInfo.IsSuffix(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Globalization.CultureInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Globalization.IdnMapping.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Globalization.RegionInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Globalization.SortKey.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Globalization.StringInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Globalization.TextInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Guid.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Guid.TryParse(System.String,System.Guid) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Guid.TryParse(System.String,System.IFormatProvider,System.Guid) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Guid.TryParseExact(System.String,System.String,System.Guid) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Half.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Half.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Half) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Half.TryParse(System.String,System.Half) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Half.TryParse(System.String,System.IFormatProvider,System.Half) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.HashCode.Equals(System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Boolean System.HashCode.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.HashCode.Equals(System.Object) | [ObsoleteAttribute(...)] | 0 | HashCode is a mutable struct and should not be compared with other HashCodes. | -| System.Boolean System.HashCode.Equals(System.Object) | [ObsoleteAttribute(...)] | 1 | True | -| System.Boolean System.HexConverter.TryDecodeFromUtf16_Vector128(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Boolean System.HexConverter.TryDecodeFromUtf16_Vector128(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Boolean System.IO.Directory.Exists(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IO.File.Exists(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IO.MemoryStream.TryGetBuffer(System.ArraySegment<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.IO.Path.EndsInDirectorySeparator(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IO.Path.Exists(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IO.Path.HasExtension(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IO.Path.IsPathFullyQualified(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.IO.Path.IsPathRooted(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IParsable`1.TryParse(System.String,System.IFormatProvider,!0) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Index.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int16.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int16.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Int16) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int16.TryParse(System.String,System.IFormatProvider,System.Int16) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int16.TryParse(System.String,System.Int16) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int32.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int32.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int32.TryParse(System.String,System.IFormatProvider,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int32.TryParse(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int64.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int64.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int64.TryParse(System.String,System.IFormatProvider,System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int64.TryParse(System.String,System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int128.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int128.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Int128) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int128.TryParse(System.String,System.IFormatProvider,System.Int128) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Int128.TryParse(System.String,System.Int128) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IntPtr.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IntPtr.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IntPtr.TryParse(System.String,System.IFormatProvider,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.IntPtr.TryParse(System.String,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MdUtf8String.EqualsCaseInsensitive(System.Void*,System.Void*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.MdUtf8String.EqualsCaseInsensitive(System.Void*,System.Void*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.MdUtf8String.EqualsCaseInsensitive(System.Void*,System.Void*,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.MemoryExtensions.ContainsAnyExceptInRange`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAnyExceptInRange`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.ReadOnlySpan<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAnyExcept`1(System.Span<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAnyInRange`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAnyInRange`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.ReadOnlySpan<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.ContainsAny`1(System.Span<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.Overlaps`1(System.ReadOnlySpan<!0>,System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.Overlaps`1(System.ReadOnlySpan<!0>,System.ReadOnlySpan<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.Overlaps`1(System.Span<!0>,System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.Overlaps`1(System.Span<!0>,System.ReadOnlySpan<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.SequenceEqual`1(System.ReadOnlySpan<!0>,System.ReadOnlySpan<!0>,System.Collections.Generic.IEqualityComparer<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.SequenceEqual`1(System.Span<!0>,System.ReadOnlySpan<!0>,System.Collections.Generic.IEqualityComparer<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.TryWriteInterpolatedStringHandler.AppendFormatted(System.Object,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.TryWriteInterpolatedStringHandler.AppendFormatted(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.TryWriteInterpolatedStringHandler.AppendFormatted(System.String,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.TryWriteInterpolatedStringHandler.AppendFormatted`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.TryWriteInterpolatedStringHandler.AppendFormatted`1(!0,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.TryWriteInterpolatedStringHandler.AppendFormatted`1(!0,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.TryWriteInterpolatedStringHandler.AppendFormatted`1(!0,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MemoryExtensions.TryWriteInterpolatedStringHandler.AppendLiteral(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.TryWrite`1(System.Span<System.Char>,System.IFormatProvider,System.Text.CompositeFormat,System.Int32,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.TryWrite`2(System.Span<System.Char>,System.IFormatProvider,System.Text.CompositeFormat,System.Int32,!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.MemoryExtensions.TryWrite`3(System.Span<System.Char>,System.IFormatProvider,System.Text.CompositeFormat,System.Int32,!0,!1,!2) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Memory`1.Equals(System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Boolean System.Memory`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MulticastDelegate.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MulticastDelegate.op_Equality(System.MulticastDelegate,System.MulticastDelegate) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.MulticastDelegate.op_Inequality(System.MulticastDelegate,System.MulticastDelegate) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Nullable`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.BitOperations.IsPow2(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Numerics.BitOperations.IsPow2(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Numerics.BitOperations.IsPow2(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Numerics.IBinaryInteger`1.TryReadBigEndian(System.ReadOnlySpan<System.Byte>,System.Boolean,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.IBinaryInteger`1.TryReadLittleEndian(System.ReadOnlySpan<System.Byte>,System.Boolean,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.IBinaryInteger`1.TryWriteBigEndian(System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.IBinaryInteger`1.TryWriteLittleEndian(System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.IBinaryNumber`1.IsPow2(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Numerics.IFloatingPoint`1.TryWriteExponentBigEndian(System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.IFloatingPoint`1.TryWriteExponentLittleEndian(System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.IFloatingPoint`1.TryWriteSignificandBigEndian(System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.IFloatingPoint`1.TryWriteSignificandLittleEndian(System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryConvertFromChecked`1(!0,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryConvertFromSaturating`1(!0,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryConvertFromTruncating`1(!0,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryConvertToChecked`1(!0,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryConvertToSaturating`1(!0,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryConvertToTruncating`1(!0,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryParse(System.ReadOnlySpan<System.Byte>,System.Globalization.NumberStyles,System.IFormatProvider,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryParse(System.ReadOnlySpan<System.Char>,System.Globalization.NumberStyles,System.IFormatProvider,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Numerics.INumberBase`1.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,!0) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Matrix3x2.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Matrix4x4.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Matrix4x4.Impl.<Invert>g__SseImpl\|64_0(System.Numerics.Matrix4x4.Impl,System.Numerics.Matrix4x4.Impl) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse | -| System.Boolean System.Numerics.Plane.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Quaternion.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector2.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector3.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector4.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.EqualsAll`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.EqualsAny`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.GreaterThanAll`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.GreaterThanAny`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.GreaterThanOrEqualAll`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.GreaterThanOrEqualAny`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.LessThanAll`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.LessThanAny`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.LessThanOrEqualAll`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector.LessThanOrEqualAny`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Numerics.Vector`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.OperatingSystem.IsIOS() | [SupportedOSPlatformGuardAttribute(...)] | 0 | maccatalyst | -| System.Boolean System.OperatingSystem.IsIOSVersionAtLeast(System.Int32,System.Int32,System.Int32) | [SupportedOSPlatformGuardAttribute(...)] | 0 | maccatalyst | -| System.Boolean System.PackedSpanHelpers.Contains(System.Int16,System.Int16,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Boolean System.Predicate`1.Invoke(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Range.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ReadOnlyMemory`1.Equals(System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Boolean System.ReadOnlyMemory`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ReadOnlySpan`1.Equals(System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Boolean System.ReadOnlySpan`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ReadOnlySpan`1.Equals(System.Object) | [ObsoleteAttribute(...)] | 0 | Equals() on ReadOnlySpan will always throw an exception. Use the equality operator instead. | -| System.Boolean System.Reflection.Assembly.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Assembly.op_Equality(System.Reflection.Assembly,System.Reflection.Assembly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Assembly.op_Inequality(System.Reflection.Assembly,System.Reflection.Assembly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.CustomAttribute.FilterCustomAttributeRecord(System.Reflection.MetadataToken,System.Reflection.MetadataImport,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,System.Boolean,System.RuntimeType.ListBuilder<System.Object>,System.RuntimeType,System.IRuntimeMethodInfo,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Boolean System.Reflection.CustomAttribute.FilterCustomAttributeRecord(System.Reflection.MetadataToken,System.Reflection.MetadataImport,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,System.Boolean,System.RuntimeType.ListBuilder<System.Object>,System.RuntimeType,System.IRuntimeMethodInfo,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Boolean System.Reflection.CustomAttributeData.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.CustomAttributeNamedArgument.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.CustomAttributeTypedArgument.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Emit.Label.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Emit.RuntimeTypeBuilder.IsAssignableFrom(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Boolean System.Reflection.Emit.RuntimeTypeBuilder.IsAssignableFrom(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:UnrecognizedReflectionPattern | -| System.Boolean System.Reflection.Emit.SignatureHelper.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.FieldInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.FieldInfo.op_Equality(System.Reflection.FieldInfo,System.Reflection.FieldInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.FieldInfo.op_Inequality(System.Reflection.FieldInfo,System.Reflection.FieldInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.LoaderAllocatorScout.Destroy(System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Reflection.LoaderAllocatorScout.Destroy(System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Reflection.LoaderAllocatorScout.Destroy(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Reflection.MemberFilter.Invoke(System.Reflection.MemberInfo,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Reflection.MemberInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.MemberInfo.op_Equality(System.Reflection.MemberInfo,System.Reflection.MemberInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.MemberInfo.op_Inequality(System.Reflection.MemberInfo,System.Reflection.MemberInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata(System.Runtime.CompilerServices.QCallAssembly,System.Byte*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata(System.Runtime.CompilerServices.QCallAssembly,System.Byte*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata(System.Runtime.CompilerServices.QCallAssembly,System.Byte*,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Reflection.Metadata.AssemblyExtensions.TryGetRawMetadata(System.Reflection.Assembly,System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Reflection.Metadata.MetadataUpdater.IsApplyUpdateSupported() | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Reflection.Metadata.MetadataUpdater.IsApplyUpdateSupported() | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Reflection.Metadata.MetadataUpdater.IsApplyUpdateSupported() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Reflection.MethodInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.MethodInfo.op_Equality(System.Reflection.MethodInfo,System.Reflection.MethodInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.MethodInfo.op_Inequality(System.Reflection.MethodInfo,System.Reflection.MethodInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Module.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Module.op_Equality(System.Reflection.Module,System.Reflection.Module) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Module.op_Inequality(System.Reflection.Module,System.Reflection.Module) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.Pointer.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.RuntimeAssembly.GetCodeBase(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Reflection.RuntimeAssembly.GetCodeBase(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Reflection.RuntimeAssembly.GetCodeBase(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Reflection.TypeDelegator.IsAssignableFrom(System.Reflection.TypeInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Reflection.TypeFilter.Invoke(System.Type,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Reflection.TypeInfo.IsAssignableFrom(System.Reflection.TypeInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Resources.ResourceReader.<DeserializeObject>g__InitializeBinaryFormatterLocal\|5_0() | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Boolean System.Resources.ResourceReader.<DeserializeObject>g__InitializeBinaryFormatterLocal\|5_0() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Boolean System.Resources.ResourceReader.<DeserializeObject>g__InitializeBinaryFormatterLocal\|5_0() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Boolean System.Resources.ResourceReader.<DeserializeObject>g__InitializeBinaryFormatterLocal\|5_0() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:RequiresDynamicCode | -| System.Boolean System.Resources.ResourceReader.InitializeBinaryFormatter() | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for this instantiation might not be available at runtime. | -| System.Boolean System.Resources.ResourceReader.InitializeBinaryFormatter() | [RequiresUnreferencedCodeAttribute(...)] | 0 | The CustomResourceTypesSupport feature switch has been enabled for this app which is being trimmed. Custom readers as well as custom objects on the resources file are not observable by the trimmer and so required assemblies, types and members may be removed. | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.AreTypesEquivalent(System.Runtime.CompilerServices.MethodTable*,System.Runtime.CompilerServices.MethodTable*) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.AreTypesEquivalent(System.Runtime.CompilerServices.MethodTable*,System.Runtime.CompilerServices.MethodTable*) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.AreTypesEquivalent(System.Runtime.CompilerServices.MethodTable*,System.Runtime.CompilerServices.MethodTable*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.Equals(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences`1() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.CLong.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.CULong.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetComInstanceInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetComInstanceInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetComInstanceInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetObject(System.IntPtr,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetObjectInternal(System.IntPtr,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetObjectInternal(System.IntPtr,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetObjectInternal(System.IntPtr,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.InteropServices.CreateComInterfaceFlags,System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.InteropServices.CreateComInterfaceFlags,System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.InteropServices.CreateComInterfaceFlags,System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetOrCreateObjectForComInstanceInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.IntPtr,System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetOrCreateObjectForComInstanceInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.IntPtr,System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.InteropServices.ComWrappers.TryGetOrCreateObjectForComInstanceInternal(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64,System.IntPtr,System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.Runtime.InteropServices.Marshal.SetComObjectData(System.Object,System.Object,System.Object) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Boolean System.Runtime.InteropServices.MemoryMarshal.TryGetArray`1(System.ReadOnlyMemory<!0>,System.ArraySegment<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.MemoryMarshal.TryGetMemoryManager`2(System.ReadOnlyMemory<!0>,!1) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.MemoryMarshal.TryGetMemoryManager`2(System.ReadOnlyMemory<!0>,!1,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.NFloat.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.NFloat.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Runtime.InteropServices.NFloat) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.NFloat.TryParse(System.String,System.IFormatProvider,System.Runtime.InteropServices.NFloat) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.NFloat.TryParse(System.String,System.Runtime.InteropServices.NFloat) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.InteropServices.OSPlatform.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.EqualsAll`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.EqualsAny`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.GreaterThanAll`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.GreaterThanAny`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.GreaterThanOrEqualAll`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.GreaterThanOrEqualAny`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.LessThanAll`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.LessThanAny`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.LessThanOrEqualAll`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.LessThanOrEqualAny`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64.TryCopyTo`1(System.Runtime.Intrinsics.Vector64<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector64`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.EqualsAll`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.EqualsAny`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.GreaterThanAll`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.GreaterThanAny`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.GreaterThanOrEqualAll`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.GreaterThanOrEqualAny`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.LessThanAll`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.LessThanAny`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.LessThanOrEqualAll`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.LessThanOrEqualAny`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128.TryCopyTo`1(System.Runtime.Intrinsics.Vector128<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector128`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.EqualsAll`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.EqualsAny`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.GreaterThanAll`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.GreaterThanAny`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.GreaterThanOrEqualAll`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.GreaterThanOrEqualAny`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.LessThanAll`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.LessThanAny`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.LessThanOrEqualAll`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.LessThanOrEqualAny`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256.TryCopyTo`1(System.Runtime.Intrinsics.Vector256<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector256`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.EqualsAll`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.EqualsAny`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.GreaterThanAll`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.GreaterThanAny`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.GreaterThanOrEqualAll`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.GreaterThanOrEqualAny`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.LessThanAll`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.LessThanAny`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.LessThanOrEqualAll`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.LessThanOrEqualAny`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512.TryCopyTo`1(System.Runtime.Intrinsics.Vector512<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Intrinsics.Vector512`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyLoadFromResolveHandlerInvoked(System.String,System.Boolean,System.String,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyLoadFromResolveHandlerInvoked(System.String,System.Boolean,System.String,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyResolveHandlerInvoked(System.String,System.String,System.String,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyResolveHandlerInvoked(System.String,System.String,System.String,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceResolvingHandlerInvoked(System.String,System.String,System.String,System.String,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceResolvingHandlerInvoked(System.String,System.String,System.String,System.String,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceSatelliteSubdirectoryPathProbed(System.String,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.Runtime.Loader.AssemblyLoadContext.TraceSatelliteSubdirectoryPathProbed(System.String,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.Runtime.Versioning.FrameworkName.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Versioning.FrameworkName.Equals(System.Runtime.Versioning.FrameworkName) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Versioning.FrameworkName.op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Runtime.Versioning.FrameworkName.op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.RuntimeFieldHandle.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.RuntimeMethodHandle.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.RuntimeTypeHandle._IsVisible(System.Runtime.CompilerServices.QCallTypeHandle) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Boolean System.RuntimeTypeHandle._IsVisible(System.Runtime.CompilerServices.QCallTypeHandle) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Boolean System.RuntimeTypeHandle._IsVisible(System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Boolean System.SByte.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.SByte.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.SByte) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.SByte.TryParse(System.String,System.IFormatProvider,System.SByte) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.SByte.TryParse(System.String,System.SByte) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Security.Principal.IPrincipal.IsInRole(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Single.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Single.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Single) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Single.TryParse(System.String,System.IFormatProvider,System.Single) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Single.TryParse(System.String,System.Single) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Span`1.Equals(System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Boolean System.Span`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Span`1.Equals(System.Object) | [ObsoleteAttribute(...)] | 0 | Equals() on Span will always throw an exception. Use the equality operator instead. | -| System.Boolean System.String.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.String.Equals(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.String.Equals(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.String.Equals(System.String,System.String,System.StringComparison) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.String.Equals(System.String,System.StringComparison) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.String.IsNullOrEmpty(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.String.IsNullOrWhiteSpace(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.String.TryCopyTo(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.String.op_Equality(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.String.op_Inequality(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.StringComparer.Equals(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.StringComparer.Equals(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.StringComparer.IsWellKnownCultureAwareComparer(System.Collections.Generic.IEqualityComparer<System.String>,System.Globalization.CompareInfo,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.StringComparer.IsWellKnownOrdinalComparer(System.Collections.Generic.IEqualityComparer<System.String>,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Ascii.AllCharsInVectorAreAscii`1(System.Runtime.Intrinsics.Vector256<!0>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx | -| System.Boolean System.Text.Ascii.PlainLoader`1.EqualAndAscii256(!0,!0) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx | -| System.Boolean System.Text.Ascii.WideningLoader.EqualAndAscii256(System.Byte,System.UInt16) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx | -| System.Boolean System.Text.DecoderExceptionFallback.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.DecoderExceptionFallbackBuffer.Fallback(System.Byte[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Text.DecoderFallbackBuffer.Fallback(System.Byte[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Text.DecoderReplacementFallback.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.EncoderExceptionFallback.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.EncoderReplacementFallback.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Encoding.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Encoding.TryGetBytes(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Text.Encoding.TryGetChars(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Text.EncodingInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Rune.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Rune.IsValid(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Text.Rune.TryCreate(System.UInt32,System.Text.Rune) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Text.Rune.TryGetRuneAt(System.String,System.Int32,System.Text.Rune) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Text.StringBuilder.Equals(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Text.StringBuilder.Equals(System.Text.StringBuilder) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.UTF7Encoding.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.UTF8Encoding.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.UTF32Encoding.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.AppendFormatted(System.Object,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.AppendFormatted(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.AppendFormatted(System.String,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.AppendFormatted`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.AppendFormatted`1(!0,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.AppendFormatted`1(!0,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.AppendFormatted`1(!0,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.AppendLiteral(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Text.UnicodeEncoding.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Threading.AsyncFlowControl.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Threading.CancellationTokenRegistration.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Threading.EventWaitHandle.TryOpenExisting(System.String,System.Threading.EventWaitHandle) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Boolean System.Threading.ManualResetEventSlim.Wait(System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.ManualResetEventSlim.Wait(System.Int32,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.ManualResetEventSlim.Wait(System.TimeSpan) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.ManualResetEventSlim.Wait(System.TimeSpan,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Monitor.Wait(System.Object) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Monitor.Wait(System.Object,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Monitor.Wait(System.Object,System.TimeSpan) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Monitor.Wait(System.Object,System.TimeSpan,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.RegisteredWaitHandle.Unregister(System.Threading.WaitHandle) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Boolean System.Threading.Semaphore.TryOpenExisting(System.String,System.Threading.Semaphore) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Boolean System.Threading.SemaphoreSlim.Wait(System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.SemaphoreSlim.Wait(System.Int32,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.SemaphoreSlim.Wait(System.TimeSpan) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.SemaphoreSlim.Wait(System.TimeSpan,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.SemaphoreSlim.WaitUntilCountOrTimeout(System.Int32,System.UInt32,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.TimeSpan) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Tasks.Task.WaitAllBlockingCore(System.Collections.Generic.List<System.Threading.Tasks.Task>,System.Int32,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Tasks.Task.WaitAllCore(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Boolean System.Threading.Tasks.Task.get_IsFaulted() | [MemberNotNullWhenAttribute(...)] | 0 | True | -| System.Boolean System.Threading.Tasks.Task.get_IsFaulted() | [MemberNotNullWhenAttribute(...)] | 1 | Exception | -| System.Boolean System.Threading.Tasks.ValueTask.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Threading.Tasks.ValueTask`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Threading.ThreadPool.BindHandle(System.IntPtr) | [ObsoleteAttribute(...)] | 0 | ThreadPool.BindHandle(IntPtr) has been deprecated. Use ThreadPool.BindHandle(SafeHandle) instead. | -| System.Boolean System.Threading.ThreadPool.BindHandle(System.IntPtr) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Boolean System.Threading.ThreadPool.BindHandle(System.Runtime.InteropServices.SafeHandle) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Boolean System.Threading.ThreadPool.UnsafeQueueNativeOverlapped(System.Threading.NativeOverlapped*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.Threading.ThreadPool.UnsafeQueueNativeOverlapped(System.Threading.NativeOverlapped*) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Boolean System.Threading.ThreadPool.UnsafeQueueNativeOverlapped(System.Threading.NativeOverlapped*) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Boolean System.Threading.Timer.Change(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Boolean System.TimeOnly.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeOnly.TryParse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.TimeOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeOnly.TryParse(System.String,System.IFormatProvider,System.TimeOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeOnly.TryParse(System.String,System.TimeOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeOnly.TryParseExact(System.ReadOnlySpan<System.Char>,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.TimeOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeOnly.TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,System.TimeOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeOnly.TryParseExact(System.String,System.String,System.TimeOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeOnly.TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,System.TimeOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeOnly.TryParseExact(System.String,System.String[],System.TimeOnly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.TryParse(System.String,System.IFormatProvider,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.TryParse(System.String,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.TryParseExact(System.ReadOnlySpan<System.Char>,System.String[],System.IFormatProvider,System.Globalization.TimeSpanStyles,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.TryParseExact(System.ReadOnlySpan<System.Char>,System.String[],System.IFormatProvider,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.TimeSpanStyles,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.TryParseExact(System.String,System.String,System.IFormatProvider,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.TimeSpanStyles,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeSpan.TryParseExact(System.String,System.String[],System.IFormatProvider,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeZoneInfo.AdjustmentRule.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeZoneInfo.AdjustmentRule.Equals(System.TimeZoneInfo.AdjustmentRule) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeZoneInfo.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeZoneInfo.Equals(System.TimeZoneInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeZoneInfo.TransitionTime.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.TimeZoneInfo.TryConvertWindowsIdToIanaId(System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Tuple`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Tuple`2.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Tuple`3.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Tuple`4.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Tuple`5.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Tuple`6.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Tuple`7.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Tuple`8.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Type.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Type.Equals(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Type.ImplementInterface(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Boolean System.Type.ImplementInterface(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2085:UnrecognizedReflectionPattern | -| System.Boolean System.Type.IsAssignableFrom(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Type.IsAssignableTo(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Type.IsEquivalentTo(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Type.IsInstanceOfType(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Type.op_Equality(System.Type,System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Type.op_Inequality(System.Type,System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt16.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt16.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.UInt16) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt16.TryParse(System.String,System.IFormatProvider,System.UInt16) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt16.TryParse(System.String,System.UInt16) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt32.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt32.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.UInt32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt32.TryParse(System.String,System.IFormatProvider,System.UInt32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt32.TryParse(System.String,System.UInt32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt64.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt64.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.UInt64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt64.TryParse(System.String,System.IFormatProvider,System.UInt64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt64.TryParse(System.String,System.UInt64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt128.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt128.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.UInt128) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt128.TryParse(System.String,System.IFormatProvider,System.UInt128) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UInt128.TryParse(System.String,System.UInt128) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UIntPtr.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UIntPtr.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UIntPtr.TryParse(System.String,System.IFormatProvider,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.UIntPtr.TryParse(System.String,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple`1.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple`2.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple`3.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple`4.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple`5.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple`6.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple`7.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueTuple`8.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.ValueType.Equals(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Boolean System.ValueType.Equals(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Boolean System.Version.Equals(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Version.Equals(System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Version.TryParse(System.String,System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Version.op_Equality(System.Version,System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Version.op_GreaterThan(System.Version,System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Version.op_GreaterThanOrEqual(System.Version,System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Version.op_Inequality(System.Version,System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Version.op_LessThan(System.Version,System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Boolean System.Version.op_LessThanOrEqual(System.Version,System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Buffer | [NullableAttribute(...)] | 0 | 0 | -| System.Buffer | [NullableContextAttribute(...)] | 0 | 1 | -| System.Buffers.ArrayPoolEventSource | [GeneratedCodeAttribute(...)] | 0 | System.Private.CoreLib.Generators | -| System.Buffers.ArrayPoolEventSource | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Buffers.ArrayPool`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Buffers.ArrayPool`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Buffers.BitVector256._values | [FixedBufferAttribute(...)] | 0 | System.UInt32 | -| System.Buffers.BitVector256._values | [FixedBufferAttribute(...)] | 1 | 8 | -| System.Buffers.IPinnable | [NullableAttribute(...)] | 0 | 2 | -| System.Buffers.SearchValues<!0> | [NullableAttribute(...)] | 0 | 1 | -| System.Buffers.SearchValues`1 | [DebuggerDisplayAttribute(...)] | 0 | {DebuggerDisplay,nq} | -| System.Buffers.SearchValues`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Buffers.SearchValuesDebugView`1 | -| System.Buffers.StandardFormat System.Buffers.StandardFormat.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.ByReference | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.ByReference | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.ByReference | [ObsoleteAttribute(...)] | 1 | True | -| System.Byte System.Byte.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte System.Byte.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte System.Byte.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte System.Byte.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte System.Byte.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte System.Byte.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte System.Byte.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte System.Convert.ToByte(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Byte System.Convert.ToByte(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Byte System.Convert.ToByte(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Byte System.Convert.ToByte(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Byte System.Runtime.InteropServices.Marshal.ReadByte(System.Object,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Byte System.Runtime.InteropServices.Marshal.ReadByte(System.Object,System.Int32) | [ObsoleteAttribute(...)] | 0 | ReadByte(Object, Int32) may be unavailable in future releases. | -| System.Byte System.Runtime.InteropServices.Marshal.ReadByte(System.Object,System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Byte System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference(System.Array) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte* System.Reflection.RuntimeAssembly.GetResource(System.Runtime.CompilerServices.QCallAssembly,System.String,System.UInt32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Byte* System.Reflection.RuntimeAssembly.GetResource(System.Runtime.CompilerServices.QCallAssembly,System.String,System.UInt32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Byte[] System.BitConverter.GetBytes(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Byte[] System.BitConverter.GetBytes(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Byte[] System.BitConverter.GetBytes(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Byte[] System.Convert.FromBase64CharArray(System.Char[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte[] System.Convert.FromBase64String(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte[] System.Convert.FromHexString(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Byte[] System.Convert.FromHexString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte[] System.Diagnostics.Tracing.EventSource.CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Byte[] System.Diagnostics.Tracing.EventSource.CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2114:ReflectionToDynamicallyAccessedMembers | -| System.Byte[] System.Guid.ToByteArray() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte[] System.Guid.ToByteArray(System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte[] System.Reflection.Emit.RuntimeModuleBuilder.ResolveSignature(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Byte[] System.Reflection.MethodBody.GetILAsByteArray() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Byte[] System.Reflection.Module.ResolveSignature(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Byte[] System.Reflection.RuntimeModule.ResolveSignature(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Byte[] System.Security.PermissionSet.ConvertPermissionSet(System.String,System.Byte[],System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Byte[] System.Text.UTF8Encoding.GetPreamble() | [NullableContextAttribute(...)] | 0 | 1 | -| System.CLSCompliantAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.CannotUnloadAppDomainException | [NullableAttribute(...)] | 0 | 0 | -| System.CannotUnloadAppDomainException | [NullableContextAttribute(...)] | 0 | 2 | -| System.CannotUnloadAppDomainException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Char System.BitConverter.ToChar(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Char System.Char.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Char System.Char.ToLower(System.Char,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Char System.Char.ToUpper(System.Char,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Char System.Convert.ToChar(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Char System.Convert.ToChar(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Char System.Convert.ToChar(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Char System.Convert.ToChar(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Char System.Convert.ToChar(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Char System.Convert.ToChar(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Char System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Char System.String.GetPinnableReference() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Char* Interop.Kernel32.GetEnvironmentStringsW() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Char[] System.IO.Path.GetInvalidFileNameChars() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Char[] System.IO.Path.GetInvalidPathChars() | [NullableContextAttribute(...)] | 0 | 1 | -| System.CodeDom.Compiler.GeneratedCodeAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.CodeDom.Compiler.GeneratedCodeAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.CodeDom.Compiler.GeneratedCodeAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.CodeDom.Compiler.IndentedTextWriter | [NullableAttribute(...)] | 0 | 0 | -| System.CodeDom.Compiler.IndentedTextWriter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.ArrayList | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.ArrayList | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.ArrayList.ArrayListDebugView | -| System.Collections.ArrayList | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ArrayList | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.ArrayList | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.ArrayList | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.ArrayList.FixedSizeArrayList | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ArrayList.FixedSizeList | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ArrayList.IListWrapper | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ArrayList.Range | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ArrayList.ReadOnlyArrayList | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ArrayList.ReadOnlyList | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ArrayList.SyncArrayList | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ArrayList.SyncIList | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Comparer | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Comparer | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Comparer | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Concurrent.ConcurrentQueueSegment`1 | [DebuggerDisplayAttribute(...)] | 0 | Capacity = {Capacity} | -| System.Collections.Concurrent.ConcurrentQueueSegment`1.Slot | [DebuggerDisplayAttribute(...)] | 0 | Item = {Item}, SequenceNumber = {SequenceNumber} | -| System.Collections.Concurrent.ConcurrentQueue`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Concurrent.ConcurrentQueue`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Concurrent.IProducerConsumerCollectionDebugView`1 | -| System.Collections.Concurrent.ConcurrentQueue`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Concurrent.ConcurrentQueue`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Concurrent.IProducerConsumerCollection`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Concurrent.MultiProducerMultiConsumerQueue`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Concurrent.PaddedHeadAndTail | [DebuggerDisplayAttribute(...)] | 0 | Head = {Head}, Tail = {Tail} | -| System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.SingleProducerSingleConsumerQueue_DebugView | -| System.Collections.DictionaryEntry | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.DictionaryEntry | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.DictionaryEntry | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.EmptyReadOnlyDictionaryInternal | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.ArrayBuilder`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.BitHelper | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Collections.Generic.BitHelper | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Collections.Generic.BitHelper | [ObsoleteAttribute(...)] | 1 | True | -| System.Collections.Generic.ByteEqualityComparer | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.CollectionExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.CollectionExtensions | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.Comparer`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.Comparer`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.Comparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.Dictionary<!0,!1>.Enumerator System.Collections.Generic.Dictionary`2.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.Dictionary<!0,!1>.KeyCollection System.Collections.Generic.Dictionary`2.Keys | [NullableAttribute(...)] | 0 | [1,0,0] | -| System.Collections.Generic.Dictionary<!0,!1>.ValueCollection System.Collections.Generic.Dictionary`2.Values | [NullableAttribute(...)] | 0 | [1,0,0] | -| System.Collections.Generic.Dictionary<System.Int64,System.WeakReference<System.Runtime.Loader.AssemblyLoadContext>> System.Runtime.Loader.AssemblyLoadContext.AllContexts | [MemberNotNullAttribute(...)] | 0 | s_allContexts | -| System.Collections.Generic.Dictionary<System.Int64,System.WeakReference<System.Runtime.Loader.AssemblyLoadContext>> System.Runtime.Loader.AssemblyLoadContext.get_AllContexts() | [MemberNotNullAttribute(...)] | 0 | s_allContexts | -| System.Collections.Generic.Dictionary`2 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Generic.Dictionary`2 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.IDictionaryDebugView`2 | -| System.Collections.Generic.Dictionary`2 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.Dictionary`2 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.Dictionary`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.Dictionary`2 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.Dictionary`2.Enumerator | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.Dictionary`2.KeyCollection | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Generic.Dictionary`2.KeyCollection | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.DictionaryKeyCollectionDebugView`2 | -| System.Collections.Generic.Dictionary`2.KeyCollection | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.Dictionary`2.ValueCollection | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Generic.Dictionary`2.ValueCollection | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.DictionaryValueCollectionDebugView`2 | -| System.Collections.Generic.Dictionary`2.ValueCollection | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.EnumEqualityComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.EqualityComparer`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.EqualityComparer`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.EqualityComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.GenericComparer`1 | [NullableAttribute(...)] | 0 | [0,1] | -| System.Collections.Generic.GenericComparer`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.Generic.GenericComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.GenericEqualityComparer`1 | [NullableAttribute(...)] | 0 | [0,1] | -| System.Collections.Generic.GenericEqualityComparer`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.Generic.GenericEqualityComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.HashSet<!0>.Enumerator System.Collections.Generic.HashSet`1.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.HashSet`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Generic.HashSet`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.ICollectionDebugView`1 | -| System.Collections.Generic.HashSet`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.HashSet`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.HashSet`1 | [TypeForwardedFromAttribute(...)] | 0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.HashSet`1.Enumerator | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.IAsyncEnumerable<System.String> System.IO.File.IterateFileLinesAsync(System.IO.StreamReader,System.String,System.Text.Encoding,System.Threading.CancellationToken,System.Threading.CancellationToken) | [AsyncIteratorStateMachineAttribute(...)] | 0 | System.IO.File.<IterateFileLinesAsync>d__110 | -| System.Collections.Generic.IAsyncEnumerable`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.ICollection`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IComparer<!0> | [NullableAttribute(...)] | 0 | [2,1] | -| System.Collections.Generic.IComparer`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.Generic.IDictionary<System.String,System.String> | [NullableAttribute(...)] | 0 | [2,1,2] | -| System.Collections.Generic.IDictionary<System.String,System.String> System.Diagnostics.Tracing.EventCommandEventArgs.Arguments | [NullableAttribute(...)] | 0 | [2,1,2] | -| System.Collections.Generic.IDictionary`2 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.IDictionary`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IEnumerable<!0> System.Runtime.InteropServices.MemoryMarshal.<ToEnumerable>g__FromArray\|18_2`1(!0[],System.Int32,System.Int32) | [IteratorStateMachineAttribute(...)] | 0 | System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromArray\|18_2>d`1 | -| System.Collections.Generic.IEnumerable<!0> System.Runtime.InteropServices.MemoryMarshal.<ToEnumerable>g__FromMemoryManager\|18_1`1(System.ReadOnlyMemory<!0>) | [IteratorStateMachineAttribute(...)] | 0 | System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromMemoryManager\|18_1>d`1 | -| System.Collections.Generic.IEnumerable<!0> System.Runtime.InteropServices.MemoryMarshal.ToEnumerable`1(System.ReadOnlyMemory<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IEnumerable<!0> System.Threading.Tasks.TaskAsyncEnumerableExtensions.ToBlockingEnumerable`1(System.Collections.Generic.IAsyncEnumerable<!0>,System.Threading.CancellationToken) | [IteratorStateMachineAttribute(...)] | 0 | System.Threading.Tasks.TaskAsyncEnumerableExtensions.<ToBlockingEnumerable>d__3`1 | -| System.Collections.Generic.IEnumerable<!0> System.Threading.Tasks.TaskAsyncEnumerableExtensions.ToBlockingEnumerable`1(System.Collections.Generic.IAsyncEnumerable<!0>,System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Collections.Generic.IEnumerable<System.Char> System.Runtime.InteropServices.MemoryMarshal.<ToEnumerable>g__FromString\|18_0`1(System.String,System.Int32,System.Int32) | [IteratorStateMachineAttribute(...)] | 0 | System.Runtime.InteropServices.MemoryMarshal.<<ToEnumerable>g__FromString\|18_0>d`1 | -| System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<!0,!1>> | [NullableAttribute(...)] | 0 | [1,0,1,1] | -| System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Object,System.String>> System.Diagnostics.Tracing.CounterPayload.get_ForEnumeration() | [IteratorStateMachineAttribute(...)] | 0 | System.Diagnostics.Tracing.CounterPayload.<get_ForEnumeration>d__51 | -| System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Object,System.String>> System.Diagnostics.Tracing.IncrementingCounterPayload.get_ForEnumeration() | [IteratorStateMachineAttribute(...)] | 0 | System.Diagnostics.Tracing.IncrementingCounterPayload.<get_ForEnumeration>d__39 | -| System.Collections.Generic.IEnumerable<System.Diagnostics.Tracing.EventSource> System.Diagnostics.Tracing.EventSource.GetSources() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IEnumerable<System.Object> System.Threading.ThreadPool.GetQueuedWorkItems() | [IteratorStateMachineAttribute(...)] | 0 | System.Threading.ThreadPool.<GetQueuedWorkItems>d__26 | -| System.Collections.Generic.IEnumerable<System.Reflection.Assembly> System.Runtime.Loader.AssemblyLoadContext.get_Assemblies() | [IteratorStateMachineAttribute(...)] | 0 | System.Runtime.Loader.AssemblyLoadContext.<get_Assemblies>d__55 | -| System.Collections.Generic.IEnumerable<System.Reflection.ConstructorInfo> System.Reflection.TypeInfo.get_DeclaredConstructors() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder> | [NullableAttribute(...)] | 0 | [2,1] | -| System.Collections.Generic.IEnumerable<System.Reflection.EventInfo> System.Reflection.TypeInfo.get_DeclaredEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Collections.Generic.IEnumerable<System.Reflection.FieldInfo> System.Reflection.TypeInfo.get_DeclaredFields() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> System.Reflection.TypeInfo.get_DeclaredMembers() | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> System.Reflection.TypeInfo.GetDeclaredMethods(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> System.Reflection.TypeInfo.GetDeclaredMethods(System.String) | [IteratorStateMachineAttribute(...)] | 0 | System.Reflection.TypeInfo.<GetDeclaredMethods>d__10 | -| System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> System.Reflection.TypeInfo.get_DeclaredMethods() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Collections.Generic.IEnumerable<System.Reflection.PropertyInfo> System.Reflection.TypeInfo.get_DeclaredProperties() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo> System.Reflection.Assembly.get_DefinedTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo> System.Reflection.RuntimeAssembly.get_DefinedTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo> System.Reflection.TypeInfo.get_DeclaredNestedTypes() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Collections.Generic.IEnumerable<System.Reflection.TypeInfo> System.Reflection.TypeInfo.get_DeclaredNestedTypes() | [IteratorStateMachineAttribute(...)] | 0 | System.Reflection.TypeInfo.<get_DeclaredNestedTypes>d__22 | -| System.Collections.Generic.IEnumerable<System.Runtime.Loader.AssemblyLoadContext> System.Runtime.Loader.AssemblyLoadContext.get_All() | [IteratorStateMachineAttribute(...)] | 0 | System.Runtime.Loader.AssemblyLoadContext.<get_All>d__85 | -| System.Collections.Generic.IEnumerable<System.Runtime.Loader.LibraryNameVariation> System.Runtime.Loader.LibraryNameVariation.DetermineLibraryNameVariations(System.String,System.Boolean) | [IteratorStateMachineAttribute(...)] | 0 | System.Runtime.Loader.LibraryNameVariation.<DetermineLibraryNameVariations>d__5 | -| System.Collections.Generic.IEnumerable<System.String> | [NullableAttribute(...)] | 0 | [1,2] | -| System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task> System.Threading.Tasks.ThreadPoolTaskScheduler.FilterTasksFromWorkItems(System.Collections.Generic.IEnumerable<System.Object>) | [IteratorStateMachineAttribute(...)] | 0 | System.Threading.Tasks.ThreadPoolTaskScheduler.<FilterTasksFromWorkItems>d__6 | -| System.Collections.Generic.IEnumerable<System.Threading.TimerQueueTimer> System.Threading.TimerQueue.GetTimersForDebugger() | [IteratorStateMachineAttribute(...)] | 0 | System.Threading.TimerQueue.<GetTimersForDebugger>d__7 | -| System.Collections.Generic.IEnumerable<System.Type> System.Reflection.Assembly.get_ExportedTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Collections.Generic.IEnumerable<System.Type> System.Reflection.TypeInfo.get_ImplementedInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Collections.Generic.IEnumerator<!0> System.Collections.Concurrent.ConcurrentQueue`1.Enumerate(System.Collections.Concurrent.ConcurrentQueueSegment<!0>,System.Int32,System.Collections.Concurrent.ConcurrentQueueSegment<!0>,System.Int32) | [IteratorStateMachineAttribute(...)] | 0 | System.Collections.Concurrent.ConcurrentQueue`1.<Enumerate>d__26 | -| System.Collections.Generic.IEnumerator<!0> System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.GetEnumerator() | [IteratorStateMachineAttribute(...)] | 0 | System.Collections.Concurrent.SingleProducerSingleConsumerQueue`1.<GetEnumerator>d__15 | -| System.Collections.Generic.IEnumerator<!0> System.Collections.Generic.IEnumerable`1.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IEnumerator<!0> System.IO.Enumeration.FileSystemEnumerable`1.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IEnumerator<!1> System.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<System.Object,System.String>> System.Diagnostics.Tracing.EventPayload.GetEnumerator() | [IteratorStateMachineAttribute(...)] | 0 | System.Diagnostics.Tracing.EventPayload.<GetEnumerator>d__17 | -| System.Collections.Generic.IEnumerator<System.Globalization.CultureInfo> System.Resources.ResourceFallbackManager.GetEnumerator() | [IteratorStateMachineAttribute(...)] | 0 | System.Resources.ResourceFallbackManager.<GetEnumerator>d__5 | -| System.Collections.Generic.IEqualityComparer<!0> | [NullableAttribute(...)] | 0 | [2,1] | -| System.Collections.Generic.IEqualityComparer<System.String> System.Collections.Generic.NonRandomizedStringEqualityComparer.GetStringComparer(System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IEqualityComparer`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.Generic.IList<System.String> System.Runtime.CompilerServices.TupleElementNamesAttribute.TransformNames | [NullableAttribute(...)] | 0 | [1,2] | -| System.Collections.Generic.IList`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.IList`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IReadOnlyDictionary<!0,!1> | [NullableAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IReadOnlyDictionary`2 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.IReadOnlyDictionary`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IReadOnlyList<System.Memory<System.Byte>> | [NullableAttribute(...)] | 0 | [1,0] | -| System.Collections.Generic.IReadOnlyList<System.ReadOnlyMemory<System.Byte>> | [NullableAttribute(...)] | 0 | [1,0] | -| System.Collections.Generic.IReadOnlyList`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.IReadOnlyList`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.IReadOnlySet`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.ISet`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.KeyNotFoundException | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.KeyNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.Generic.KeyNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.KeyValuePair<!0,!1> System.Collections.Generic.Dictionary`2.Enumerator.Current | [NullableAttribute(...)] | 0 | [0,1,1] | -| System.Collections.Generic.KeyValuePair<!0,!1> System.Collections.Generic.KeyValuePair.Create`2(!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.KeyValuePair<!0,!1>[] System.Collections.Generic.IDictionaryDebugView`2.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| System.Collections.Generic.KeyValuePair`2 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.KeyValuePair`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.KeyValuePair`2 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.KeyValuePair`2.key | [DebuggerBrowsableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.KeyValuePair`2.value | [DebuggerBrowsableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.List<!0> | [NullableAttribute(...)] | 0 | [2,1] | -| System.Collections.Generic.List<!0> System.Threading.ThreadLocal`1.ValuesForDebugDisplay | [NullableAttribute(...)] | 0 | [2,1] | -| System.Collections.Generic.List<!0>.Enumerator System.Collections.Generic.List`1.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.List<System.ValueTuple<System.Int32,System.Int32,System.String,System.String>> | [TupleElementNamesAttribute(...)] | 0 | [Literal,ArgIndex,Alignment,Format] | -| System.Collections.Generic.List`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Generic.List`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.ICollectionDebugView`1 | -| System.Collections.Generic.List`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.List`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.List`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.List`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.List`1.Enumerator | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.NullableComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.NullableEqualityComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.ObjectComparer`1 | [NullableAttribute(...)] | 0 | [0,1] | -| System.Collections.Generic.ObjectComparer`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.Generic.ObjectComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.ObjectEqualityComparer`1 | [NullableAttribute(...)] | 0 | [0,1] | -| System.Collections.Generic.ObjectEqualityComparer`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.Generic.ObjectEqualityComparer`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.Queue<!0>.Enumerator System.Collections.Generic.Queue`1.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.Queue`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Generic.Queue`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.QueueDebugView`1 | -| System.Collections.Generic.Queue`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Generic.Queue`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.Queue`1 | [TypeForwardedFromAttribute(...)] | 0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Generic.Queue`1.Enumerator | [NullableContextAttribute(...)] | 0 | 0 | -| System.Collections.Generic.ReferenceEqualityComparer System.Collections.Generic.ReferenceEqualityComparer.Instance | [NullableAttribute(...)] | 0 | 1 | -| System.Collections.Generic.ReferenceEqualityComparer System.Collections.Generic.ReferenceEqualityComparer.get_Instance() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Generic.ValueListBuilder`1 | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Collections.Generic.ValueListBuilder`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Generic.ValueListBuilder`1 | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Collections.Generic.ValueListBuilder`1 | [ObsoleteAttribute(...)] | 1 | True | -| System.Collections.Hashtable | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.Hashtable | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Hashtable.HashtableDebugView | -| System.Collections.Hashtable | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.Hashtable | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.Hashtable | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.Hashtable | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.Hashtable.SyncHashtable | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ICollection | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IComparer | [NullableAttribute(...)] | 0 | 2 | -| System.Collections.IComparer | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.IComparer System.Collections.Hashtable.comparer | [NullableAttribute(...)] | 0 | 2 | -| System.Collections.IComparer System.Collections.Hashtable.comparer | [ObsoleteAttribute(...)] | 0 | Hashtable.comparer has been deprecated. Use the KeyComparer properties instead. | -| System.Collections.IComparer System.Collections.Hashtable.get_comparer() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.IDictionary | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.IDictionary | [NullableAttribute(...)] | 0 | 1 | -| System.Collections.IDictionary | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IDictionary System.Exception.Data | [NullableAttribute(...)] | 0 | 1 | -| System.Collections.IDictionary System.Exception.get_Data() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IDictionaryEnumerator | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IDictionaryEnumerator System.Resources.IResourceReader.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IDictionaryEnumerator System.Resources.ResourceReader.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IEnumerable | [ComVisibleAttribute(...)] | 0 | True | -| System.Collections.IEnumerable | [GuidAttribute(...)] | 0 | 496B0ABE-CDEE-11d3-88E8-00902754C43A | -| System.Collections.IEnumerable | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IEnumerator System.Runtime.InteropServices.ComTypes.IEnumerable.GetEnumerator() | [DispIdAttribute(...)] | 0 | -4 | -| System.Collections.IEnumerator System.Security.PermissionSet.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IEnumerator System.Security.PermissionSet.GetEnumeratorImpl() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IEqualityComparer | [NullableAttribute(...)] | 0 | 2 | -| System.Collections.IEqualityComparer | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IEqualityComparer System.Collections.Hashtable.EqualityComparer | [NullableAttribute(...)] | 0 | 2 | -| System.Collections.IEqualityComparer System.Collections.Hashtable.get_EqualityComparer() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.IHashCodeProvider | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IHashCodeProvider | [ObsoleteAttribute(...)] | 0 | IHashCodeProvider has been deprecated. Use IEqualityComparer instead. | -| System.Collections.IHashCodeProvider | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.IHashCodeProvider System.Collections.Hashtable.get_hcp() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.IHashCodeProvider System.Collections.Hashtable.hcp | [NullableAttribute(...)] | 0 | 2 | -| System.Collections.IHashCodeProvider System.Collections.Hashtable.hcp | [ObsoleteAttribute(...)] | 0 | Hashtable.hcp has been deprecated. Use the EqualityComparer property instead. | -| System.Collections.IList | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.IList | [NullableContextAttribute(...)] | 0 | 2 | -| System.Collections.IStructuralComparable | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.IStructuralEquatable | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.KeyValuePairs | [DebuggerDisplayAttribute(...)] | 0 | {_value} | -| System.Collections.KeyValuePairs._key | [DebuggerBrowsableAttribute(...)] | 0 | 0 | -| System.Collections.KeyValuePairs._value | [DebuggerBrowsableAttribute(...)] | 0 | 0 | -| System.Collections.KeyValuePairs[] System.Collections.Hashtable.HashtableDebugView.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| System.Collections.ListDictionaryInternal | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ListDictionaryInternal | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.ListDictionaryInternal | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.ListDictionaryInternal | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.ObjectModel.Collection`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.ObjectModel.Collection`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.ICollectionDebugView`1 | -| System.Collections.ObjectModel.Collection`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ObjectModel.Collection`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.ObjectModel.Collection`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.ObjectModel.Collection`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.ObjectModel.ReadOnlyCollection<System.String> System.Diagnostics.Tracing.EventWrittenEventArgs.PayloadNames | [NullableAttribute(...)] | 0 | [2,1] | -| System.Collections.ObjectModel.ReadOnlyCollection`1 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.ObjectModel.ReadOnlyCollection`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.ICollectionDebugView`1 | -| System.Collections.ObjectModel.ReadOnlyCollection`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ObjectModel.ReadOnlyCollection`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.ObjectModel.ReadOnlyCollection`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.ObjectModel.ReadOnlyCollection`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.ObjectModel.ReadOnlyDictionary<!0,!1>.KeyCollection System.Collections.ObjectModel.ReadOnlyDictionary`2.Keys | [NullableAttribute(...)] | 0 | [1,0,0] | -| System.Collections.ObjectModel.ReadOnlyDictionary<!0,!1>.ValueCollection System.Collections.ObjectModel.ReadOnlyDictionary`2.Values | [NullableAttribute(...)] | 0 | [1,0,0] | -| System.Collections.ObjectModel.ReadOnlyDictionary`2 | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.ObjectModel.ReadOnlyDictionary`2 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.IDictionaryDebugView`2 | -| System.Collections.ObjectModel.ReadOnlyDictionary`2 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Collections.ObjectModel.ReadOnlyDictionary`2 | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.ObjectModel.ReadOnlyDictionary`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Collections.ObjectModel.ReadOnlyDictionary`2 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Collections.ObjectModel.ReadOnlyDictionary`2.KeyCollection | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.ObjectModel.ReadOnlyDictionary`2.KeyCollection | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.ICollectionDebugView`1 | -| System.Collections.ObjectModel.ReadOnlyDictionary`2.KeyCollection | [NullableAttribute(...)] | 0 | 0 | -| System.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection | [DebuggerDisplayAttribute(...)] | 0 | Count = {Count} | -| System.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection | [DebuggerTypeProxyAttribute(...)] | 0 | System.Collections.Generic.ICollectionDebugView`1 | -| System.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection | [NullableContextAttribute(...)] | 0 | 0 | -| System.Comparison<!0> | [NullableAttribute(...)] | 0 | 1 | -| System.ComponentModel.DefaultValueAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.ComponentModel.DefaultValueAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.ComponentModel.DefaultValueAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.ComponentModel.EditorBrowsableAttribute | [AttributeUsageAttribute(...)] | 0 | 6140 | -| System.ComponentModel.Win32Exception | [NullableAttribute(...)] | 0 | 0 | -| System.ComponentModel.Win32Exception | [NullableContextAttribute(...)] | 0 | 1 | -| System.ComponentModel.Win32Exception | [TypeForwardedFromAttribute(...)] | 0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Configuration.Assemblies.AssemblyHashAlgorithm System.Reflection.AssemblyName.HashAlgorithm | [ObsoleteAttribute(...)] | 0 | AssemblyName members HashAlgorithm, ProcessorArchitecture, and VersionCompatibility are obsolete and not supported. | -| System.Configuration.Assemblies.AssemblyHashAlgorithm System.Reflection.RuntimeAssembly.GetHashAlgorithm(System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Configuration.Assemblies.AssemblyVersionCompatibility System.Reflection.AssemblyName.VersionCompatibility | [ObsoleteAttribute(...)] | 0 | AssemblyName members HashAlgorithm, ProcessorArchitecture, and VersionCompatibility are obsolete and not supported. | -| System.Console | [NullableAttribute(...)] | 0 | 0 | -| System.Console | [NullableContextAttribute(...)] | 0 | 1 | -| System.Console.CancelKeyPress | [NullableAttribute(...)] | 0 | 2 | -| System.Console.CancelKeyPress | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Console.CancelKeyPress | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Console.CancelKeyPress | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Console.CancelKeyPress | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.ConsoleCancelEventArgs | [NullableAttribute(...)] | 0 | 1 | -| System.ConsoleColor System.Console.BackgroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.ConsoleColor System.Console.BackgroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.ConsoleColor System.Console.BackgroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.ConsoleColor System.Console.BackgroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.ConsoleColor System.Console.ForegroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.ConsoleColor System.Console.ForegroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.ConsoleColor System.Console.ForegroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.ConsoleColor System.Console.ForegroundColor | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.ConsoleKeyInfo System.Console.ReadKey() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.ConsoleKeyInfo System.Console.ReadKey() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.ConsoleKeyInfo System.Console.ReadKey() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.ConsoleKeyInfo System.Console.ReadKey() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.ConsoleKeyInfo System.Console.ReadKey(System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.ConsoleKeyInfo System.Console.ReadKey(System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.ConsoleKeyInfo System.Console.ReadKey(System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.ConsoleKeyInfo System.Console.ReadKey(System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.ContextMarshalException | [NullableAttribute(...)] | 0 | 0 | -| System.ContextMarshalException | [NullableContextAttribute(...)] | 0 | 2 | -| System.ContextMarshalException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ContextStaticAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Convert | [NullableAttribute(...)] | 0 | 0 | -| System.Convert | [NullableContextAttribute(...)] | 0 | 2 | -| System.Convert.DBNull | [NullableAttribute(...)] | 0 | 1 | -| System.CultureAwareComparer | [NullableAttribute(...)] | 0 | 0 | -| System.CultureAwareComparer | [NullableContextAttribute(...)] | 0 | 2 | -| System.CultureAwareComparer | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.CurrentSystemTimeZone | [ObsoleteAttribute(...)] | 0 | System.CurrentSystemTimeZone has been deprecated. Investigate the use of System.TimeZoneInfo.Local instead. | -| System.DBNull | [NullableAttribute(...)] | 0 | 0 | -| System.DBNull | [NullableContextAttribute(...)] | 0 | 1 | -| System.DTSubString | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.DTSubString | [DefaultMemberAttribute(...)] | 0 | Item | -| System.DTSubString | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.DTSubString | [ObsoleteAttribute(...)] | 1 | True | -| System.DataMisalignedException | [NullableAttribute(...)] | 0 | 0 | -| System.DataMisalignedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.DataMisalignedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.DateOnly System.DateOnly.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateOnly System.DateOnly.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateOnly System.DateOnly.Parse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateOnly System.DateOnly.ParseExact(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateOnly System.DateOnly.ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateOnly System.DateOnly.ParseExact(System.String,System.String[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateOnly System.DateOnly.ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTime | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.DateTime System.Convert.ToDateTime(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.DateTime System.Convert.ToDateTime(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.DateTime System.Convert.ToDateTime(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.DateTime System.Convert.ToDateTime(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.DateTime System.DateTime.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTime System.DateTime.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTime System.DateTime.Parse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTime System.DateTime.ParseExact(System.String,System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTime System.DateTime.ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTime System.DateTime.ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTimeOffset | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.DateTimeOffset System.DateTimeOffset.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTimeOffset System.DateTimeOffset.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTimeOffset System.DateTimeOffset.Parse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTimeOffset System.DateTimeOffset.ParseExact(System.String,System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTimeOffset System.DateTimeOffset.ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTimeOffset System.DateTimeOffset.ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DateTimeResult | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.DateTimeResult | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.DateTimeResult | [ObsoleteAttribute(...)] | 1 | True | -| System.Decimal System.Convert.ToDecimal(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Decimal System.Convert.ToDecimal(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Decimal System.Convert.ToDecimal(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Decimal System.Convert.ToDecimal(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Decimal System.Decimal.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Decimal System.Decimal.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Decimal System.Decimal.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Decimal System.Decimal.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Decimal System.Decimal.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Decimal System.Decimal.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Decimal System.Decimal.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Decimal System.Decimal.op_Implicit(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Decimal System.Decimal.op_Implicit(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Decimal System.Decimal.op_Implicit(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Decimal System.Decimal.op_Implicit(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Delegate | [ClassInterfaceAttribute(...)] | 0 | 0 | -| System.Delegate | [ComVisibleAttribute(...)] | 0 | True | -| System.Delegate | [NullableAttribute(...)] | 0 | 0 | -| System.Delegate | [NullableAttribute(...)] | 0 | 2 | -| System.Delegate | [NullableContextAttribute(...)] | 0 | 1 | -| System.Delegate System.Delegate.Combine(System.Delegate,System.Delegate) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Delegate System.Delegate.Combine(System.Delegate[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Delegate System.Delegate.CreateDelegate(System.Type,System.Object,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The target method might be removed | -| System.Delegate System.Delegate.CreateDelegate(System.Type,System.Object,System.String,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The target method might be removed | -| System.Delegate System.Delegate.CreateDelegate(System.Type,System.Object,System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The target method might be removed | -| System.Delegate System.Delegate.Remove(System.Delegate,System.Delegate) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Delegate System.Delegate.RemoveAll(System.Delegate,System.Delegate) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Delegate System.Diagnostics.Tracing.PropertyValue.TypeHelper.GetGetMethod(System.Reflection.PropertyInfo,System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Delegate System.Diagnostics.Tracing.PropertyValue.TypeHelper.GetGetMethod(System.Reflection.PropertyInfo,System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Delegate System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(System.IntPtr,System.Type) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Delegate System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(System.IntPtr,System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the delegate might not be available. Use the GetDelegateForFunctionPointer<TDelegate> overload instead. | -| System.Diagnostics.CodeAnalysis.AllowNullAttribute | [AttributeUsageAttribute(...)] | 0 | 2432 | -| System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.CodeAnalysis.DisallowNullAttribute | [AttributeUsageAttribute(...)] | 0 | 2432 | -| System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | [AttributeUsageAttribute(...)] | 0 | 352 | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute | [AttributeUsageAttribute(...)] | 0 | 28108 | -| System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | [AttributeUsageAttribute(...)] | 0 | 749 | -| System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.CodeAnalysis.ExperimentalAttribute | [AttributeUsageAttribute(...)] | 0 | 6143 | -| System.Diagnostics.CodeAnalysis.ExperimentalAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.ExperimentalAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.CodeAnalysis.MaybeNullAttribute | [AttributeUsageAttribute(...)] | 0 | 10624 | -| System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Diagnostics.CodeAnalysis.MemberNotNullAttribute | [AttributeUsageAttribute(...)] | 0 | 192 | -| System.Diagnostics.CodeAnalysis.MemberNotNullAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.MemberNotNullAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute | [AttributeUsageAttribute(...)] | 0 | 192 | -| System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.CodeAnalysis.NotNullAttribute | [AttributeUsageAttribute(...)] | 0 | 10624 | -| System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [AttributeUsageAttribute(...)] | 0 | 10368 | -| System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.CodeAnalysis.NotNullWhenAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [AttributeUsageAttribute(...)] | 0 | 736 | -| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute | [AttributeUsageAttribute(...)] | 0 | 100 | -| System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [AttributeUsageAttribute(...)] | 0 | 100 | -| System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute | [AttributeUsageAttribute(...)] | 0 | 32 | -| System.Diagnostics.CodeAnalysis.StringSyntaxAttribute | [AttributeUsageAttribute(...)] | 0 | 2432 | -| System.Diagnostics.CodeAnalysis.StringSyntaxAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.StringSyntaxAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [ConditionalAttribute(...)] | 0 | CODE_ANALYSIS | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.SuppressMessageAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.CodeAnalysis.UnscopedRefAttribute | [AttributeUsageAttribute(...)] | 0 | 2240 | -| System.Diagnostics.ConditionalAttribute | [AttributeUsageAttribute(...)] | 0 | 68 | -| System.Diagnostics.ConditionalAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.ConditionalAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Contracts.Contract | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Contracts.Contract | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Contracts.Contract.ContractFailed | [NullableAttribute(...)] | 0 | [2,1] | -| System.Diagnostics.Contracts.ContractAbbreviatorAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Diagnostics.Contracts.ContractAbbreviatorAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.ContractArgumentValidatorAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Diagnostics.Contracts.ContractArgumentValidatorAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.ContractClassAttribute | [AttributeUsageAttribute(...)] | 0 | 5124 | -| System.Diagnostics.Contracts.ContractClassAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.ContractClassAttribute | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Diagnostics.Contracts.ContractClassAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Contracts.ContractClassAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Contracts.ContractClassForAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | -| System.Diagnostics.Contracts.ContractClassForAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.ContractClassForAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Contracts.ContractClassForAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Contracts.ContractException | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Contracts.ContractException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Contracts.ContractException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Diagnostics.Contracts.ContractFailedEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Contracts.ContractFailedEventArgs | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Contracts.ContractFailureKind | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Diagnostics.Contracts.ContractInvariantMethodAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Diagnostics.Contracts.ContractInvariantMethodAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.ContractOptionAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Diagnostics.Contracts.ContractOptionAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.ContractOptionAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Contracts.ContractOptionAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Contracts.ContractReferenceAssemblyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute | [AttributeUsageAttribute(...)] | 0 | 192 | -| System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.ContractVerificationAttribute | [AttributeUsageAttribute(...)] | 0 | 237 | -| System.Diagnostics.Contracts.ContractVerificationAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Contracts.PureAttribute | [AttributeUsageAttribute(...)] | 0 | 6884 | -| System.Diagnostics.Contracts.PureAttribute | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Diagnostics.Debug | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Debug | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Debug.AssertInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Diagnostics.Debug.AssertInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | condition | -| System.Diagnostics.Debug.AssertInterpolatedStringHandler | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Debug.WriteIfInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Diagnostics.Debug.WriteIfInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | condition | -| System.Diagnostics.Debug.WriteIfInterpolatedStringHandler | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.DebugProvider | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.DebugProvider | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.DebugProvider System.Diagnostics.Debug.SetProvider(System.Diagnostics.DebugProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.DebuggableAttribute | [AttributeUsageAttribute(...)] | 0 | 3 | -| System.Diagnostics.Debugger | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Debugger | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.DebuggerBrowsableAttribute | [AttributeUsageAttribute(...)] | 0 | 384 | -| System.Diagnostics.DebuggerDisplayAttribute | [AttributeUsageAttribute(...)] | 0 | 4509 | -| System.Diagnostics.DebuggerDisplayAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.DebuggerDisplayAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.DebuggerHiddenAttribute | [AttributeUsageAttribute(...)] | 0 | 224 | -| System.Diagnostics.DebuggerNonUserCodeAttribute | [AttributeUsageAttribute(...)] | 0 | 236 | -| System.Diagnostics.DebuggerStepThroughAttribute | [AttributeUsageAttribute(...)] | 0 | 108 | -| System.Diagnostics.DebuggerStepperBoundaryAttribute | [AttributeUsageAttribute(...)] | 0 | 96 | -| System.Diagnostics.DebuggerTypeProxyAttribute | [AttributeUsageAttribute(...)] | 0 | 13 | -| System.Diagnostics.DebuggerTypeProxyAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.DebuggerTypeProxyAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.DebuggerVisualizerAttribute | [AttributeUsageAttribute(...)] | 0 | 13 | -| System.Diagnostics.DebuggerVisualizerAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.DebuggerVisualizerAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.StackFrame | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.StackFrame | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.StackFrame System.Diagnostics.StackTrace.GetFrame(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.StackFrameExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.StackFrameExtensions | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.StackTrace | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.StackTrace | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.StackTraceHiddenAttribute | [AttributeUsageAttribute(...)] | 0 | 108 | -| System.Diagnostics.Stopwatch | [DebuggerDisplayAttribute(...)] | 0 | {DebuggerDisplay,nq} | -| System.Diagnostics.Stopwatch | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Stopwatch | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.SymbolStore.ISymbolDocumentWriter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.CounterGroup | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Diagnostics.Tracing.DiagnosticCounter | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.DiagnosticCounter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.DiagnosticCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Diagnostics.Tracing.EventAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Diagnostics.Tracing.EventAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Tracing.EventChannelAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Diagnostics.Tracing.EventCounter | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventCounter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.EventCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Diagnostics.Tracing.EventDataAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | -| System.Diagnostics.Tracing.EventDataAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventDataAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Tracing.EventFieldAttribute | [AttributeUsageAttribute(...)] | 0 | 128 | -| System.Diagnostics.Tracing.EventIgnoreAttribute | [AttributeUsageAttribute(...)] | 0 | 128 | -| System.Diagnostics.Tracing.EventListener | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventListener | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.EventListener.EventSourceCreated | [NullableAttribute(...)] | 0 | [2,1] | -| System.Diagnostics.Tracing.EventListener.EventWritten | [NullableAttribute(...)] | 0 | [2,1] | -| System.Diagnostics.Tracing.EventPayload | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Diagnostics.Tracing.EventSource | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Diagnostics.Tracing.EventSource | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventSource | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Tracing.EventSource System.Diagnostics.Tracing.EventWrittenEventArgs.EventSource | [NullableAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.EventSource System.Diagnostics.Tracing.EventWrittenEventArgs.get_EventSource() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.EventSource.EventCommandExecuted | [NullableAttribute(...)] | 0 | [2,1] | -| System.Diagnostics.Tracing.EventSource.EventData | [NullableContextAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive System.Diagnostics.Tracing.EventSource.EventSourcePrimitive.op_Implicit(System.Enum) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive System.Diagnostics.Tracing.EventSource.EventSourcePrimitive.op_Implicit(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive System.Diagnostics.Tracing.EventSource.EventSourcePrimitive.op_Implicit(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive System.Diagnostics.Tracing.EventSource.EventSourcePrimitive.op_Implicit(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive System.Diagnostics.Tracing.EventSource.EventSourcePrimitive.op_Implicit(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Diagnostics.Tracing.EventSource.EventSourcePrimitive System.Diagnostics.Tracing.EventSource.EventSourcePrimitive.op_Implicit(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Diagnostics.Tracing.EventSourceAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | -| System.Diagnostics.Tracing.EventSourceAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventSourceAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Tracing.EventSourceCreatedEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventSourceCreatedEventArgs | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Tracing.EventSourceException | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventSourceException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Tracing.EventWrittenEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.EventWrittenEventArgs | [NullableContextAttribute(...)] | 0 | 2 | -| System.Diagnostics.Tracing.EventWrittenEventArgs.MoreEventInfo System.Diagnostics.Tracing.EventWrittenEventArgs.MoreInfo | [NullableAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.FrameworkEventSource | [GeneratedCodeAttribute(...)] | 0 | System.Private.CoreLib.Generators | -| System.Diagnostics.Tracing.FrameworkEventSource | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Diagnostics.Tracing.IncrementingEventCounter | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.IncrementingEventCounter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.IncrementingEventCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Diagnostics.Tracing.IncrementingPollingCounter | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.IncrementingPollingCounter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.IncrementingPollingCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Diagnostics.Tracing.NativeRuntimeEventSource | [GeneratedCodeAttribute(...)] | 0 | System.Private.CoreLib.Generators | -| System.Diagnostics.Tracing.NativeRuntimeEventSource | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Diagnostics.Tracing.NonEventAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Diagnostics.Tracing.PollingCounter | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.Tracing.PollingCounter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Diagnostics.Tracing.PollingCounter | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Diagnostics.Tracing.RuntimeEventSource | [GeneratedCodeAttribute(...)] | 0 | System.Private.CoreLib.Generators | -| System.Diagnostics.Tracing.RuntimeEventSource | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Diagnostics.Tracing.SessionMask | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Diagnostics.Tracing.TraceLoggingEventHandleTable | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Diagnostics.Tracing.TraceLoggingEventTypes System.Diagnostics.Tracing.EventSource.EventMetadata.get_TraceLoggingEventTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Diagnostics.Tracing.TraceLoggingEventTypes System.Diagnostics.Tracing.EventSource.EventMetadata.get_TraceLoggingEventTypes() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Diagnostics.Tracing.TraceLoggingEventTypes System.Diagnostics.Tracing.EventSource.EventMetadata.get_TraceLoggingEventTypes() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Diagnostics.Tracing.TraceLoggingEventTypes System.Diagnostics.Tracing.SimpleEventTypes`1.InitInstance() | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Diagnostics.Tracing.TraceLoggingEventTypes System.Diagnostics.Tracing.SimpleEventTypes`1.get_Instance() | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Diagnostics.Tracing.TraceLoggingTypeInfo System.Diagnostics.Tracing.Statics.CreateDefaultTypeInfo(System.Type,System.Collections.Generic.List<System.Type>) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Diagnostics.Tracing.TraceLoggingTypeInfo System.Diagnostics.Tracing.TraceLoggingTypeInfo.GetInstance(System.Type,System.Collections.Generic.List<System.Type>) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Diagnostics.Tracing.TraceLoggingTypeInfo[] System.Diagnostics.Tracing.TraceLoggingEventTypes.MakeArray(System.Reflection.ParameterInfo[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Diagnostics.Tracing.TraceLoggingTypeInfo[] System.Diagnostics.Tracing.TraceLoggingEventTypes.MakeArray(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Diagnostics.UnreachableException | [NullableAttribute(...)] | 0 | 0 | -| System.Diagnostics.UnreachableException | [NullableContextAttribute(...)] | 0 | 2 | -| System.DivideByZeroException | [NullableAttribute(...)] | 0 | 0 | -| System.DivideByZeroException | [NullableContextAttribute(...)] | 0 | 2 | -| System.DivideByZeroException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.DllNotFoundException | [NullableAttribute(...)] | 0 | 0 | -| System.DllNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | -| System.DllNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Double System.BitConverter.ToDouble(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Double System.BitConverter.UInt64BitsToDouble(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Double System.Char.GetNumericValue(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Double System.Convert.ToDouble(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Double System.Convert.ToDouble(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Double System.Convert.ToDouble(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Double System.Convert.ToDouble(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Double System.Double.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Double System.Double.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Double System.Double.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Double System.Double.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Double System.Double.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Double System.Double.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Double System.Double.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Double System.Globalization.CharUnicodeInfo.GetNumericValue(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.DuplicateWaitObjectException | [NullableAttribute(...)] | 0 | 0 | -| System.DuplicateWaitObjectException | [NullableContextAttribute(...)] | 0 | 2 | -| System.DuplicateWaitObjectException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.EntryPointNotFoundException | [NullableAttribute(...)] | 0 | 0 | -| System.EntryPointNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | -| System.EntryPointNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Enum | [NullableAttribute(...)] | 0 | 0 | -| System.Enum | [NullableContextAttribute(...)] | 0 | 1 | -| System.Enum | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Environment | [NullableAttribute(...)] | 0 | 0 | -| System.Environment | [NullableContextAttribute(...)] | 0 | 1 | -| System.Environment.SpecialFolder | [NullableContextAttribute(...)] | 0 | 0 | -| System.Environment.SpecialFolderOption | [NullableContextAttribute(...)] | 0 | 0 | -| System.EventArgs | [NullableAttribute(...)] | 0 | 1 | -| System.EventArgs | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.EventArgs.Empty | [NullableAttribute(...)] | 0 | 1 | -| System.EventHandler<!0> | [NullableAttribute(...)] | 0 | [2,1] | -| System.EventHandler<System.Diagnostics.Contracts.ContractFailedEventArgs> | [NullableAttribute(...)] | 0 | [2,1] | -| System.EventHandler<System.Diagnostics.Tracing.EventCommandEventArgs> | [NullableAttribute(...)] | 0 | [2,1] | -| System.EventHandler<System.Diagnostics.Tracing.EventSourceCreatedEventArgs> | [NullableAttribute(...)] | 0 | [2,1] | -| System.EventHandler<System.Diagnostics.Tracing.EventWrittenEventArgs> | [NullableAttribute(...)] | 0 | [2,1] | -| System.EventHandler<System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs> | [NullableAttribute(...)] | 0 | [2,1] | -| System.EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs> | [NullableAttribute(...)] | 0 | [2,1] | -| System.EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs> | [NullableAttribute(...)] | 0 | [2,1] | -| System.Exception | [NullableAttribute(...)] | 0 | 0 | -| System.Exception | [NullableAttribute(...)] | 0 | 1 | -| System.Exception | [NullableContextAttribute(...)] | 0 | 2 | -| System.Exception | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Exception System.Exception.GetBaseException() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Exception System.Runtime.InteropServices.Marshal.GetExceptionForHR(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Exception System.Runtime.InteropServices.Marshal.GetExceptionForHR(System.Int32,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Exception.SerializeObjectState | [NullableAttribute(...)] | 0 | [2,1] | -| System.Exception.SerializeObjectState | [ObsoleteAttribute(...)] | 0 | BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information. | -| System.Exception[] System.Reflection.ReflectionTypeLoadException.LoaderExceptions | [NullableAttribute(...)] | 0 | [1,2] | -| System.ExecutionEngineException | [NullableAttribute(...)] | 0 | 0 | -| System.ExecutionEngineException | [NullableContextAttribute(...)] | 0 | 2 | -| System.ExecutionEngineException | [ObsoleteAttribute(...)] | 0 | ExecutionEngineException previously indicated an unspecified fatal error in the runtime. The runtime no longer raises this exception so this type is obsolete. | -| System.ExecutionEngineException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.FieldAccessException | [NullableAttribute(...)] | 0 | 0 | -| System.FieldAccessException | [NullableContextAttribute(...)] | 0 | 2 | -| System.FieldAccessException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.FlagsAttribute | [AttributeUsageAttribute(...)] | 0 | 16 | -| System.FormatException | [NullableAttribute(...)] | 0 | 0 | -| System.FormatException | [NullableContextAttribute(...)] | 0 | 2 | -| System.FormatException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.FormattableString | [NullableAttribute(...)] | 0 | 0 | -| System.FormattableString | [NullableContextAttribute(...)] | 0 | 1 | -| System.FormattableString System.Runtime.CompilerServices.FormattableStringFactory.Create(System.String,System.Object[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Func<!0,!0,System.Boolean> | [NullableAttribute(...)] | 0 | [1,2,2] | -| System.Func<!0,!1,!2,System.AsyncCallback,System.IAsyncResult,System.Object> | [NullableAttribute(...)] | 0 | [1,1,1,1,1,2,1] | -| System.Func<!0,!1,System.AsyncCallback,System.IAsyncResult,System.Object> | [NullableAttribute(...)] | 0 | [1,1,1,1,2,1] | -| System.Func<!0,System.AsyncCallback,System.IAsyncResult,System.Object> | [NullableAttribute(...)] | 0 | [1,1,1,2,1] | -| System.Func<!0,System.Int32> | [NullableAttribute(...)] | 0 | [2,1] | -| System.Func<!0,System.Object,System.Threading.Tasks.Task<!0>> | [NullableAttribute(...)] | 0 | [1,1,1,2,1] | -| System.Func<!0,System.Object,System.Threading.Tasks.Task> | [NullableAttribute(...)] | 0 | [1,1,2,1] | -| System.Func<!0,System.Object> | [NullableAttribute(...)] | 0 | [1,2,1] | -| System.Func<System.AsyncCallback,System.IAsyncResult,System.Object> | [NullableAttribute(...)] | 0 | [1,1,2,1] | -| System.Func<System.Boolean,System.Reflection.Assembly,System.String,System.Type> | [NullableAttribute(...)] | 0 | [2,2,1,2] | -| System.Func<System.Diagnostics.Tracing.PropertyValue,System.Diagnostics.Tracing.PropertyValue> System.Diagnostics.Tracing.PropertyValue.GetReferenceTypePropertyGetter(System.Reflection.PropertyInfo) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Func<System.Diagnostics.Tracing.PropertyValue,System.Diagnostics.Tracing.PropertyValue> System.Diagnostics.Tracing.PropertyValue.GetReferenceTypePropertyGetter(System.Reflection.PropertyInfo) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Func<System.IntPtr,System.Reflection.Assembly,System.String> | [NullableAttribute(...)] | 0 | [2,1,1] | -| System.Func<System.Reflection.Assembly,System.Reflection.AssemblyName,System.Runtime.Loader.AssemblyLoadContext> | [NullableAttribute(...)] | 0 | [2,1,1,2] | -| System.Func<System.Reflection.Assembly,System.Reflection.AssemblyName> | [NullableAttribute(...)] | 0 | [2,1,2] | -| System.Func<System.Threading.Tasks.Task<!0>> | [NullableAttribute(...)] | 0 | [1,2,1] | -| System.Func<System.Threading.Tasks.Task> | [NullableAttribute(...)] | 0 | [1,2] | -| System.Func`5 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`5 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`6 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`6 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`7 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`7 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`8 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`8 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`9 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`9 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`10 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`10 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`11 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`11 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`12 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`12 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`13 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`13 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`14 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`14 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`15 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`15 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`16 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`16 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Func`17 | [NullableAttribute(...)] | 0 | 0 | -| System.Func`17 | [NullableContextAttribute(...)] | 0 | 2 | -| System.GC | [NullableAttribute(...)] | 0 | 0 | -| System.GC | [NullableContextAttribute(...)] | 0 | 1 | -| System.GC.EnableNoGCRegionCallbackStatus System.GC._EnableNoGCRegionCallback(System.GC.NoGCRegionCallbackFinalizerWorkItem*,System.Int64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Globalization.Calendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.Calendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.ChineseLunisolarCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.ChineseLunisolarCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.CompareInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.CompareInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.CompareInfo | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Globalization.CultureInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.CultureInfo | [NullableAttribute(...)] | 0 | 2 | -| System.Globalization.CultureInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.CultureInfo System.Globalization.CultureInfo.DefaultThreadCurrentCulture | [NullableAttribute(...)] | 0 | 2 | -| System.Globalization.CultureInfo System.Globalization.CultureInfo.DefaultThreadCurrentUICulture | [NullableAttribute(...)] | 0 | 2 | -| System.Globalization.CultureInfo System.Globalization.CultureInfo.get_DefaultThreadCurrentCulture() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Globalization.CultureInfo System.Globalization.CultureInfo.get_DefaultThreadCurrentUICulture() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Globalization.CultureNotFoundException | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.CultureNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Globalization.CultureNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Globalization.CultureTypes.FrameworkCultures | [ObsoleteAttribute(...)] | 0 | CultureTypes.FrameworkCultures has been deprecated. Use other values in CultureTypes instead. | -| System.Globalization.CultureTypes.WindowsOnlyCultures | [ObsoleteAttribute(...)] | 0 | CultureTypes.WindowsOnlyCultures has been deprecated. Use other values in CultureTypes instead. | -| System.Globalization.DateTimeFormatInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.DateTimeFormatInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.EraInfo[] System.Globalization.ChineseLunisolarCalendar.CalEraInfo | [NullableAttribute(...)] | 0 | [2,1] | -| System.Globalization.EraInfo[] System.Globalization.EastAsianLunisolarCalendar.CalEraInfo | [NullableAttribute(...)] | 0 | [2,1] | -| System.Globalization.EraInfo[] System.Globalization.JapaneseLunisolarCalendar.CalEraInfo | [NullableAttribute(...)] | 0 | [2,1] | -| System.Globalization.EraInfo[] System.Globalization.KoreanLunisolarCalendar.CalEraInfo | [NullableAttribute(...)] | 0 | [2,1] | -| System.Globalization.EraInfo[] System.Globalization.TaiwanLunisolarCalendar.CalEraInfo | [NullableAttribute(...)] | 0 | [2,1] | -| System.Globalization.IdnMapping | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.IdnMapping | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.JapaneseCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.JapaneseCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.JapaneseLunisolarCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.JapaneseLunisolarCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.JulianCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.JulianCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.KoreanCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.KoreanCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.KoreanLunisolarCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.KoreanLunisolarCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.NumberFormatInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.NumberFormatInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.RegionInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.RegionInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.SortKey | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.SortKey | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.SortVersion | [NotNullWhenAttribute(...)] | 0 | True | -| System.Globalization.SortVersion | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.SortVersion | [NullableContextAttribute(...)] | 0 | 2 | -| System.Globalization.SortVersion | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Globalization.StringInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.StringInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.TaiwanCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.TaiwanCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.TaiwanLunisolarCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.TaiwanLunisolarCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.TextElementEnumerator | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.TextElementEnumerator | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.TextInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.TextInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.ThaiBuddhistCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.ThaiBuddhistCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.TimeSpanParse.StringParser | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Globalization.TimeSpanParse.StringParser | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Globalization.TimeSpanParse.StringParser | [ObsoleteAttribute(...)] | 1 | True | -| System.Globalization.TimeSpanParse.TimeSpanRawInfo | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Globalization.TimeSpanParse.TimeSpanRawInfo | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Globalization.TimeSpanParse.TimeSpanRawInfo | [ObsoleteAttribute(...)] | 1 | True | -| System.Globalization.TimeSpanParse.TimeSpanResult | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Globalization.TimeSpanParse.TimeSpanResult | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Globalization.TimeSpanParse.TimeSpanResult | [ObsoleteAttribute(...)] | 1 | True | -| System.Globalization.TimeSpanParse.TimeSpanToken | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Globalization.TimeSpanParse.TimeSpanToken | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Globalization.TimeSpanParse.TimeSpanToken | [ObsoleteAttribute(...)] | 1 | True | -| System.Globalization.TimeSpanParse.TimeSpanTokenizer | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Globalization.TimeSpanParse.TimeSpanTokenizer | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Globalization.TimeSpanParse.TimeSpanTokenizer | [ObsoleteAttribute(...)] | 1 | True | -| System.Globalization.UmAlQuraCalendar | [NullableAttribute(...)] | 0 | 0 | -| System.Globalization.UmAlQuraCalendar | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.UnicodeCategory System.Char.GetUnicodeCategory(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Globalization.UnicodeCategory System.Globalization.CharUnicodeInfo.GetUnicodeCategory(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Guid | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Guid System.Diagnostics.Tracing.EventSource.GetGuid(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Guid System.Guid.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Guid System.Guid.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Guid System.Guid.ParseExact(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Half System.BitConverter.ToHalf(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Half System.BitConverter.UInt16BitsToHalf(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Half System.Half.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Half System.Half.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Half System.Half.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Half System.Half.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Half System.Half.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Half System.Half.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Half System.Half.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Half System.Half.op_Explicit(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Half System.Half.op_Explicit(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Half System.Half.op_Explicit(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Half System.Half.op_Explicit(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Half System.Half.op_Implicit(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.HashCode | [NullableAttribute(...)] | 0 | 0 | -| System.HashCode | [NullableContextAttribute(...)] | 0 | 1 | -| System.HexConverter.<>c.<>9__6_0 | [TupleElementNamesAttribute(...)] | 0 | [RosPtr,casing] | -| System.IAsyncResult | [NullableAttribute(...)] | 0 | 1 | -| System.IAsyncResult | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`4.BeginInvoke(!0,!1,!2,!3,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`5.BeginInvoke(!0,!1,!2,!3,!4,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`6.BeginInvoke(!0,!1,!2,!3,!4,!5,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`7.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`8.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`9.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`10.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`11.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`12.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`13.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`14.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`15.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Action`16.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`5.BeginInvoke(!0,!1,!2,!3,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`6.BeginInvoke(!0,!1,!2,!3,!4,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`7.BeginInvoke(!0,!1,!2,!3,!4,!5,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`8.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`9.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`10.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`11.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`12.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`13.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`14.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`15.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`16.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Func`17.BeginInvoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,System.AsyncCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Threading.Overlapped.AsyncResult | [NullableAttribute(...)] | 0 | 1 | -| System.IAsyncResult System.Threading.Overlapped.get_AsyncResult() | [NullableContextAttribute(...)] | 0 | 1 | -| System.ICloneable | [NullableContextAttribute(...)] | 0 | 1 | -| System.IComparable | [NullableContextAttribute(...)] | 0 | 2 | -| System.IComparable`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.IConvertible | [CLSCompliantAttribute(...)] | 0 | False | -| System.IConvertible | [NullableContextAttribute(...)] | 0 | 2 | -| System.ICustomFormatter | [NullableContextAttribute(...)] | 0 | 2 | -| System.IEquatable`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.IFormatProvider | [NullableAttribute(...)] | 0 | 2 | -| System.IFormatProvider | [NullableContextAttribute(...)] | 0 | 2 | -| System.IFormattable | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.BinaryReader | [NullableAttribute(...)] | 0 | 0 | -| System.IO.BinaryReader | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.BinaryWriter | [NullableAttribute(...)] | 0 | 0 | -| System.IO.BinaryWriter | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.BufferedStream | [NullableAttribute(...)] | 0 | 0 | -| System.IO.BufferedStream | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.Directory | [NullableAttribute(...)] | 0 | 0 | -| System.IO.Directory | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.DirectoryInfo | [NullableAttribute(...)] | 0 | 0 | -| System.IO.DirectoryInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.DirectoryInfo System.IO.Directory.CreateDirectory(System.String,System.IO.UnixFileMode) | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IO.DirectoryInfo System.IO.DirectoryInfo.Parent | [NullableAttribute(...)] | 0 | 2 | -| System.IO.DirectoryInfo System.IO.DirectoryInfo.get_Parent() | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.DirectoryInfo System.IO.FileInfo.Directory | [NullableAttribute(...)] | 0 | 2 | -| System.IO.DirectoryInfo System.IO.FileInfo.get_Directory() | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.DirectoryNotFoundException | [NullableAttribute(...)] | 0 | 0 | -| System.IO.DirectoryNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.DirectoryNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IO.EndOfStreamException | [NullableAttribute(...)] | 0 | 0 | -| System.IO.EndOfStreamException | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.EndOfStreamException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IO.Enumeration.FileSystemEntry | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.IO.Enumeration.FileSystemEntry | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.IO.Enumeration.FileSystemEntry | [ObsoleteAttribute(...)] | 1 | True | -| System.IO.Enumeration.FileSystemEntry.FileNameBuffer._buffer | [FixedBufferAttribute(...)] | 0 | System.Char | -| System.IO.Enumeration.FileSystemEntry.FileNameBuffer._buffer | [FixedBufferAttribute(...)] | 1 | 256 | -| System.IO.Enumeration.FileSystemEnumerable<!0>.FindPredicate | [NullableAttribute(...)] | 0 | [2,0] | -| System.IO.Enumeration.FileSystemEnumerable<!0>.FindPredicate System.IO.Enumeration.FileSystemEnumerable`1.ShouldIncludePredicate | [NullableAttribute(...)] | 0 | [2,0] | -| System.IO.Enumeration.FileSystemEnumerable<!0>.FindPredicate System.IO.Enumeration.FileSystemEnumerable`1.ShouldRecursePredicate | [NullableAttribute(...)] | 0 | [2,0] | -| System.IO.Enumeration.FileSystemEnumerable<!0>.FindTransform | [NullableAttribute(...)] | 0 | [1,0] | -| System.IO.Enumeration.FileSystemEnumerator`1._pending | [TupleElementNamesAttribute(...)] | 0 | [Path,RemainingDepth] | -| System.IO.EnumerationOptions | [NullableAttribute(...)] | 0 | 0 | -| System.IO.EnumerationOptions | [NullableAttribute(...)] | 0 | 2 | -| System.IO.EnumerationOptions | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.File | [NullableAttribute(...)] | 0 | 0 | -| System.IO.File | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.FileInfo | [NullableAttribute(...)] | 0 | 0 | -| System.IO.FileInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.FileLoadException | [NullableAttribute(...)] | 0 | 0 | -| System.IO.FileLoadException | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.FileLoadException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IO.FileNotFoundException | [NullableAttribute(...)] | 0 | 0 | -| System.IO.FileNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.FileNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IO.FileStream | [NullableAttribute(...)] | 0 | 0 | -| System.IO.FileStream | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.FileStream System.Reflection.Assembly.GetFile(System.String) | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| System.IO.FileStream System.Reflection.Emit.AssemblyBuilder.GetFile(System.String) | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| System.IO.FileStream System.Reflection.RuntimeAssembly.GetFile(System.String) | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| System.IO.FileStream[] System.Reflection.Assembly.GetFiles() | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| System.IO.FileStream[] System.Reflection.Assembly.GetFiles(System.Boolean) | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| System.IO.FileStream[] System.Reflection.Emit.AssemblyBuilder.GetFiles(System.Boolean) | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| System.IO.FileStream[] System.Reflection.RuntimeAssembly.GetFiles(System.Boolean) | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| System.IO.FileSystemInfo | [NullableAttribute(...)] | 0 | 0 | -| System.IO.FileSystemInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.FileSystemInfo System.IO.Enumeration.FileSystemEntry.ToFileSystemInfo() | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.FileSystemInfo System.IO.FileSystemInfo.ResolveLinkTarget(System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.IOException | [NullableAttribute(...)] | 0 | 0 | -| System.IO.IOException | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.IOException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IO.InvalidDataException | [NullableAttribute(...)] | 0 | 0 | -| System.IO.InvalidDataException | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.InvalidDataException | [TypeForwardedFromAttribute(...)] | 0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IO.MemoryStream | [NullableAttribute(...)] | 0 | 0 | -| System.IO.MemoryStream | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.Path.InvalidPathChars | [NullableAttribute(...)] | 0 | 1 | -| System.IO.Path.InvalidPathChars | [ObsoleteAttribute(...)] | 0 | Path.InvalidPathChars has been deprecated. Use GetInvalidPathChars or GetInvalidFileNameChars instead. | -| System.IO.PathTooLongException | [NullableAttribute(...)] | 0 | 0 | -| System.IO.PathTooLongException | [NullableContextAttribute(...)] | 0 | 2 | -| System.IO.PathTooLongException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IO.Stream | [NullableAttribute(...)] | 0 | 0 | -| System.IO.Stream | [NullableAttribute(...)] | 0 | 2 | -| System.IO.Stream | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.Stream System.Console.OpenStandardInput() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.IO.Stream System.Console.OpenStandardInput() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.IO.Stream System.Console.OpenStandardInput() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.IO.Stream System.Console.OpenStandardInput() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.IO.Stream System.Console.OpenStandardInput(System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.IO.Stream System.Console.OpenStandardInput(System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.IO.StreamReader | [NullableAttribute(...)] | 0 | 0 | -| System.IO.StreamReader | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.StreamWriter | [NullableAttribute(...)] | 0 | 0 | -| System.IO.StreamWriter | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.StringReader | [NullableAttribute(...)] | 0 | 0 | -| System.IO.StringReader | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.StringWriter | [NullableAttribute(...)] | 0 | 0 | -| System.IO.StringWriter | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.TextReader | [NullableAttribute(...)] | 0 | 0 | -| System.IO.TextReader | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.TextReader System.Console.In | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.IO.TextReader System.Console.In | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.IO.TextReader System.Console.In | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.IO.TextReader System.Console.In | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.IO.TextWriter | [NullableAttribute(...)] | 0 | 0 | -| System.IO.TextWriter | [NullableContextAttribute(...)] | 0 | 1 | -| System.IO.UnixFileMode System.IO.File.GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle) | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IO.UnixFileMode System.IO.File.GetUnixFileMode(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IO.UnmanagedMemoryStream System.Resources.ResourceManager.GetStream(System.String,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IObservable`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.IObserver`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.IProgress`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.IndexOutOfRangeException | [NullableAttribute(...)] | 0 | 0 | -| System.IndexOutOfRangeException | [NullableContextAttribute(...)] | 0 | 2 | -| System.IndexOutOfRangeException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.InsufficientExecutionStackException | [NullableAttribute(...)] | 0 | 0 | -| System.InsufficientExecutionStackException | [NullableContextAttribute(...)] | 0 | 2 | -| System.InsufficientExecutionStackException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.InsufficientMemoryException | [NullableAttribute(...)] | 0 | 0 | -| System.InsufficientMemoryException | [NullableContextAttribute(...)] | 0 | 2 | -| System.InsufficientMemoryException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Int16 System.BitConverter.ToInt16(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int16 System.Convert.ToInt16(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int16 System.Convert.ToInt16(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int16 System.Convert.ToInt16(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int16 System.Convert.ToInt16(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int16 System.Int16.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int16 System.Int16.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int16 System.Int16.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int16 System.Int16.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int16 System.Int16.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int16 System.Int16.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int16 System.Int16.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int16 System.Runtime.InteropServices.Marshal.ReadInt16(System.Object,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int16 System.Runtime.InteropServices.Marshal.ReadInt16(System.Object,System.Int32) | [ObsoleteAttribute(...)] | 0 | ReadInt16(Object, Int32) may be unavailable in future releases. | -| System.Int16 System.Runtime.InteropServices.Marshal.ReadInt16(System.Object,System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.GetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for the method requested might not be available at runtime. | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssembly(System.IntPtr,System.IntPtr,System.IntPtr) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for the method requested might not be available at runtime. | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssembly(System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssembly(System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssembly(System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssembly(System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | maccatalyst | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssembly(System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for the method requested might not be available at runtime. | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Native hosting is not trim compatible and this warning will be seen if trimming is enabled. | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | maccatalyst | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyAndGetFunctionPointer(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyBytes(System.Byte*,System.IntPtr,System.Byte*,System.IntPtr,System.IntPtr,System.IntPtr) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for the method requested might not be available at runtime. | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyBytes(System.Byte*,System.IntPtr,System.Byte*,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyBytes(System.Byte*,System.IntPtr,System.Byte*,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyBytes(System.Byte*,System.IntPtr,System.Byte*,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyBytes(System.Byte*,System.IntPtr,System.Byte*,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | maccatalyst | -| System.Int32 Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyBytes(System.Byte*,System.IntPtr,System.Byte*,System.IntPtr,System.IntPtr,System.IntPtr) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Int32 Interop.Globalization.GetCalendars(System.String,System.Globalization.CalendarId[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 Interop.Globalization.GetCalendars(System.String,System.Globalization.CalendarId[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 Interop.Globalization.GetICUVersion() | [LibraryImportAttribute(...)] | 0 | libSystem.Globalization.Native | -| System.Int32 Interop.Globalization.GetLatestJapaneseEra() | [LibraryImportAttribute(...)] | 0 | libSystem.Globalization.Native | -| System.Int32 Interop.Globalization.GetLocales(System.Char[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 Interop.Globalization.GetLocales(System.Char[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 Interop.Globalization.GetSortVersion(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | libSystem.Globalization.Native | -| System.Int32 Interop.Globalization.IanaIdToWindowsId(System.String,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 Interop.Globalization.IanaIdToWindowsId(System.String,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 Interop.Globalization.LoadICU() | [LibraryImportAttribute(...)] | 0 | libSystem.Globalization.Native | -| System.Int32 Interop.Globalization.WindowsIdToIanaId(System.String,System.IntPtr,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 Interop.Globalization.WindowsIdToIanaId(System.String,System.IntPtr,System.Char*,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 Interop.HostPolicy.corehost_resolve_component_dependencies(System.String,Interop.HostPolicy.corehost_resolve_component_dependencies_result_fn) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 Interop.HostPolicy.corehost_resolve_component_dependencies(System.String,Interop.HostPolicy.corehost_resolve_component_dependencies_result_fn) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 Interop.Kernel32.FormatMessage(System.Int32,System.IntPtr,System.UInt32,System.Int32,System.Void*,System.Int32,System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 Interop.Kernel32.FormatMessage(System.Int32,System.IntPtr,System.UInt32,System.Int32,System.Void*,System.Int32,System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 Interop.Kernel32.FormatMessage(System.Int32,System.IntPtr,System.UInt32,System.Int32,System.Void*,System.Int32,System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.AppDomain.ExecuteAssembly(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Int32 System.AppDomain.ExecuteAssembly(System.String,System.String[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Int32 System.AppDomain.ExecuteAssembly(System.String,System.String[],System.Byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.AppDomain.ExecuteAssembly(System.String,System.String[],System.Byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Int32 System.AppDomain.ExecuteAssembly(System.String,System.String[],System.Byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Int32 System.AppDomain.GetCurrentThreadId() | [ObsoleteAttribute(...)] | 0 | AppDomain.GetCurrentThreadId has been deprecated because it does not provide a stable Id when managed threads are running on fibers (aka lightweight threads). To get a stable identifier for a managed thread, use the ManagedThreadId property on Thread instead. | -| System.Int32 System.Array.BinarySearch(System.Array,System.Int32,System.Int32,System.Object,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Array.BinarySearch(System.Array,System.Object,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Attribute.GetHashCode() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Int32 System.Attribute.GetHashCode() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Int32 System.BitConverter.ToInt32(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Boolean.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.ComputeFirstIndexOverlapped`2(!0,!0,!0,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.ComputeFirstIndex`2(!0,!0,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.ComputeLastIndexOverlapped`2(!0,!0,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.ComputeLastIndex`2(!0,!0,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized`2(System.Int16,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized`2(System.Int16,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized`2(System.Int16,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized`1(System.Byte,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized`2(System.Int16,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized`2(System.Int16,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Int32 System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized`2(System.Int16,System.Int32,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Int32 System.Buffers.ProbabilisticMap.IndexOfAnyVectorized(System.UInt32,System.Char,System.Int32,System.ReadOnlySpan<System.Char>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Int32 System.Buffers.ProbabilisticMap.IndexOfAnyVectorized(System.UInt32,System.Char,System.Int32,System.ReadOnlySpan<System.Char>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse41 | -| System.Int32 System.Byte.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Char.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Char.ConvertToUtf32(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Collections.ArrayList.Add(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.BinarySearch(System.Int32,System.Int32,System.Object,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.BinarySearch(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.BinarySearch(System.Object,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.IndexOf(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.IndexOf(System.Object,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.IndexOf(System.Object,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.LastIndexOf(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.LastIndexOf(System.Object,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.ArrayList.LastIndexOf(System.Object,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.Comparer.Compare(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.Generic.Comparer`1.Compare(!0,!0) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.Generic.GenericEqualityComparer`1.GetHashCode(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Collections.Generic.IEqualityComparer`1.GetHashCode(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Collections.Generic.NonRandomizedStringEqualityComparer.GetHashCode(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Collections.Generic.ObjectEqualityComparer`1.GetHashCode(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Collections.Generic.ReferenceEqualityComparer.GetHashCode(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Comparison`1.Invoke(!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Console.Read() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Int32 System.Console.Read() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Int32 System.Console.get_BufferHeight() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Int32 System.Console.get_BufferHeight() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Int32 System.Console.get_BufferHeight() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Int32 System.Console.get_BufferHeight() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Int32 System.Console.get_BufferWidth() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Int32 System.Console.get_BufferWidth() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Int32 System.Console.get_BufferWidth() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Int32 System.Console.get_BufferWidth() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Int32 System.Console.get_CursorSize() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Int32 System.Console.get_CursorSize() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Int32 System.Console.get_CursorSize() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Int32 System.Console.get_CursorSize() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Int32 System.Convert.ToBase64CharArray(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Convert.ToBase64CharArray(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Base64FormattingOptions) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Convert.ToInt32(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Convert.ToInt32(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Convert.ToInt32(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Convert.ToInt32(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.CultureAwareComparer.GetHashCode(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.DateOnly.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.DateTime.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Decimal.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.EventActivityIdControl(System.UInt32,System.Guid) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.EventActivityIdControl(System.UInt32,System.Guid) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Diagnostics.Tracing.EventPipeInternal.EventActivityIdControl(System.UInt32,System.Guid) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Diagnostics.Tracing.EventSource.GetHelperCallFirstArg(System.Reflection.MethodInfo) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Int32 System.Diagnostics.Tracing.EventSource.GetHelperCallFirstArg(System.Reflection.MethodInfo) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Int32 System.Double.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Enum.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Environment.GetProcessorCount() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.GC._EndNoGCRegion() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.GC._RefreshMemoryLimit(System.GC.GCHeapHardLimitInfo) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.GC._StartNoGCRegion(System.Int64,System.Boolean,System.Int64,System.Boolean) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.GC._StartNoGCRegion(System.Int64,System.Boolean,System.Int64,System.Boolean) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.GC._StartNoGCRegion(System.Int64,System.Boolean,System.Int64,System.Boolean) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Globalization.CharUnicodeInfo.GetDecimalDigitValue(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Globalization.CharUnicodeInfo.GetDigitValue(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Globalization.CompareInfo.Compare(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.Compare(System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Globalization.CompareInfo.Compare(System.String,System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Globalization.CompareInfo.Compare(System.String,System.Int32,System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Globalization.CompareInfo.Compare(System.String,System.Int32,System.String,System.Int32,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Globalization.CompareInfo.Compare(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Globalization.CompareInfo.Compare(System.String,System.String,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Globalization.CompareInfo.GetHashCode(System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.GetSortKey(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.GetSortKeyLength(System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.IndexOf(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.IndexOf(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.IndexOf(System.ReadOnlySpan<System.Char>,System.Text.Rune,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.LastIndexOf(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.LastIndexOf(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.Globalization.CompareOptions,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.CompareInfo.LastIndexOf(System.ReadOnlySpan<System.Char>,System.Text.Rune,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Globalization.StringInfo.GetNextTextElementLength(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Guid.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Half.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.HashCode.GetHashCode() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.HashCode.GetHashCode() | [ObsoleteAttribute(...)] | 0 | HashCode is a mutable struct and should not be compared with other HashCodes. Use ToHashCode to retrieve the computed hash code. | -| System.Int32 System.HashCode.GetHashCode() | [ObsoleteAttribute(...)] | 1 | True | -| System.Int32 System.IO.BinaryReader.Read(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.BinaryReader.Read(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.BufferedStream.Read(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.FileStream.Read(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.MemoryStream.Read(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.Stream.Read(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.Stream.ReadAtLeast(System.Span<System.Byte>,System.Int32,System.Boolean) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.StreamReader.Read(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.StreamReader.ReadBlock(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.StringReader.Read(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.StringReader.ReadBlock(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.TextReader.Read(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.TextReader.ReadBlock(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.IO.UnmanagedMemoryStream.Read(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Int16.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Int32.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Int32.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Int32.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Int32.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Int32.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Int32.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Int32.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Int32.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Int64.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Int128.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.IntPtr.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Math.Sign(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.MemoryExtensions.BinarySearch`1(System.ReadOnlySpan<!0>,System.IComparable<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.BinarySearch`1(System.Span<!0>,System.IComparable<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.BinarySearch`2(System.ReadOnlySpan<!0>,!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.BinarySearch`2(System.ReadOnlySpan<!0>,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.BinarySearch`2(System.Span<!0>,!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.BinarySearch`2(System.Span<!0>,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.CommonPrefixLength`1(System.ReadOnlySpan<!0>,System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.MemoryExtensions.CommonPrefixLength`1(System.ReadOnlySpan<!0>,System.ReadOnlySpan<!0>,System.Collections.Generic.IEqualityComparer<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.MemoryExtensions.CommonPrefixLength`1(System.Span<!0>,System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.MemoryExtensions.CommonPrefixLength`1(System.Span<!0>,System.ReadOnlySpan<!0>,System.Collections.Generic.IEqualityComparer<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.MemoryExtensions.IndexOfAnyExceptInRange`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAnyExceptInRange`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.ReadOnlySpan<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAnyExcept`1(System.Span<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAnyInRange`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAnyInRange`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.ReadOnlySpan<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.IndexOfAny`1(System.Span<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExceptInRange`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExceptInRange`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.ReadOnlySpan<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyExcept`1(System.Span<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyInRange`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAnyInRange`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.ReadOnlySpan<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.ReadOnlySpan<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.MemoryExtensions.LastIndexOfAny`1(System.Span<!0>,!0,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Memory`1.GetHashCode() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.Numerics.BitOperations.LeadingZeroCount(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.LeadingZeroCount(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.LeadingZeroCount(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.Log2(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.Log2(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.Log2(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.PopCount(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.PopCount(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.PopCount(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.TrailingZeroCount(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.TrailingZeroCount(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.BitOperations.TrailingZeroCount(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Numerics.IBinaryInteger`1.WriteBigEndian(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Numerics.IBinaryInteger`1.WriteLittleEndian(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Numerics.IFloatingPoint`1.WriteExponentBigEndian(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Numerics.IFloatingPoint`1.WriteExponentLittleEndian(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Numerics.IFloatingPoint`1.WriteSignificandBigEndian(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Numerics.IFloatingPoint`1.WriteSignificandLittleEndian(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Numerics.TotalOrderIeee754Comparer`1.GetHashCode(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.OrdinalComparer.GetHashCode(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.PackedSpanHelpers.ComputeFirstIndex(System.Int16,System.Int16,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Int32 System.PackedSpanHelpers.ComputeFirstIndex(System.Int16,System.Int16,System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx512F | -| System.Int32 System.PackedSpanHelpers.ComputeFirstIndexOverlapped(System.Int16,System.Int16,System.Int16,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Int32 System.PackedSpanHelpers.ComputeFirstIndexOverlapped(System.Int16,System.Int16,System.Int16,System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx512F | -| System.Int32 System.PackedSpanHelpers.IndexOf(System.Char,System.Char,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAny(System.Char,System.Char,System.Char,System.Char,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAny(System.Char,System.Char,System.Char,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAnyExcept(System.Char,System.Char,System.Char,System.Char,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAnyExcept(System.Char,System.Char,System.Char,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAnyExcept(System.Char,System.Char,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAnyExceptInRange(System.Char,System.Char,System.Char,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAnyInRange(System.Char,System.Char,System.Char,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAnyInRange`1(System.Int16,System.Int16,System.Int16,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAny`1(System.Int16,System.Int16,System.Int16,System.Int16,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOfAny`1(System.Int16,System.Int16,System.Int16,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.PackedSpanHelpers.IndexOf`1(System.Int16,System.Int16,System.Int32) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Int32 System.ReadOnlyMemory`1.GetHashCode() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.ReadOnlySpan`1.GetHashCode() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.ReadOnlySpan`1.GetHashCode() | [ObsoleteAttribute(...)] | 0 | GetHashCode() on ReadOnlySpan will always throw an exception. | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetArrayMethodToken(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetArrayMethodToken(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRef(System.Runtime.CompilerServices.QCallModule,System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefFromSignature(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefFromSignature(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefOfFieldInfo(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Runtime.CompilerServices.QCallTypeHandle,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefOfMethodInfo(System.Runtime.CompilerServices.QCallModule,System.Int32,System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetStringConstant(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetStringConstant(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetTokenFromTypeSpec(System.Runtime.CompilerServices.QCallModule,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetTokenFromTypeSpec(System.Runtime.CompilerServices.QCallModule,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetTokenFromTypeSpec(System.Runtime.CompilerServices.QCallModule,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetTypeRef(System.Runtime.CompilerServices.QCallModule,System.String,System.Runtime.CompilerServices.QCallModule,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeModuleBuilder.GetTypeRef(System.Runtime.CompilerServices.QCallModule,System.String,System.Runtime.CompilerServices.QCallModule,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineEvent(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Reflection.EventAttributes,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineEvent(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Reflection.EventAttributes,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineField(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32,System.Reflection.FieldAttributes) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineField(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32,System.Reflection.FieldAttributes) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineGenericParam(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32,System.Reflection.GenericParameterAttributes,System.Int32,System.Int32[]) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineGenericParam(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32,System.Reflection.GenericParameterAttributes,System.Int32,System.Int32[]) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineMethod(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32,System.Reflection.MethodAttributes) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineMethod(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Byte[],System.Int32,System.Reflection.MethodAttributes) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodSpec(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodSpec(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodSpec(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineProperty(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Reflection.PropertyAttributes,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineProperty(System.Runtime.CompilerServices.QCallModule,System.Int32,System.String,System.Reflection.PropertyAttributes,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineType(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32,System.Reflection.TypeAttributes,System.Int32,System.Int32[]) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.DefineType(System.Runtime.CompilerServices.QCallModule,System.String,System.Int32,System.Reflection.TypeAttributes,System.Int32,System.Int32[]) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.GetTokenFromSig(System.Runtime.CompilerServices.QCallModule,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.GetTokenFromSig(System.Runtime.CompilerServices.QCallModule,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.GetTokenFromSig(System.Runtime.CompilerServices.QCallModule,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.SetParamInfo(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Reflection.ParameterAttributes,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.Emit.RuntimeTypeBuilder.SetParamInfo(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Reflection.ParameterAttributes,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Reflection.RuntimeAssembly.GetManifestResourceInfo(System.Runtime.CompilerServices.QCallAssembly,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StringHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Reflection.RuntimeAssembly.GetManifestResourceInfo(System.Runtime.CompilerServices.QCallAssembly,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StringHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Runtime.CompilerServices.Unsafe.SizeOf`1() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Runtime.InteropServices.ComTypes.IMoniker.IsRunning(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Runtime.InteropServices.ComTypes.IMoniker,System.Runtime.InteropServices.ComTypes.IMoniker) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(System.Object) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Int32 System.Runtime.InteropServices.Marshal.GetEndComSlot(System.Type) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Int32 System.Runtime.InteropServices.Marshal.GetExceptionCode() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.Runtime.InteropServices.Marshal.GetExceptionCode() | [ObsoleteAttribute(...)] | 0 | GetExceptionCode() may be unavailable in future releases. | -| System.Int32 System.Runtime.InteropServices.Marshal.GetHRForException(System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Runtime.InteropServices.Marshal.GetStartComSlot(System.Type) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Int32 System.Runtime.InteropServices.Marshal.ReadInt32(System.Object,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.Runtime.InteropServices.Marshal.ReadInt32(System.Object,System.Int32) | [ObsoleteAttribute(...)] | 0 | ReadInt32(Object, Int32) may be unavailable in future releases. | -| System.Int32 System.Runtime.InteropServices.Marshal.ReadInt32(System.Object,System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Int32 System.Runtime.InteropServices.Marshal.ReleaseComObject(System.Object) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Int32 System.Runtime.InteropServices.Marshal.SizeOf(System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.Runtime.InteropServices.Marshal.SizeOf(System.Object) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available. Use the SizeOf<T> overload instead. | -| System.Int32 System.Runtime.InteropServices.Marshal.SizeOf(System.Type) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.Runtime.InteropServices.Marshal.SizeOf(System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available. Use the SizeOf<T> overload instead. | -| System.Int32 System.Runtime.InteropServices.Marshal.SizeOf`1() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Runtime.InteropServices.NFloat.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.SByte.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Single.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Span`1.GetHashCode() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int32 System.Span`1.GetHashCode() | [ObsoleteAttribute(...)] | 0 | GetHashCode() on Span will always throw an exception. | -| System.Int32 System.String.Compare(System.String,System.Int32,System.String,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.Int32,System.String,System.Int32,System.Int32,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.Int32,System.String,System.Int32,System.Int32,System.Boolean,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.Int32,System.String,System.Int32,System.Int32,System.Globalization.CultureInfo,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.Int32,System.String,System.Int32,System.Int32,System.StringComparison) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.String,System.Boolean,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.String,System.Globalization.CultureInfo,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.Compare(System.String,System.String,System.StringComparison) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.CompareOrdinal(System.String,System.Int32,System.String,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.CompareOrdinal(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.CompareTo(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.String.GetHashCode(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.String.GetHashCode(System.ReadOnlySpan<System.Char>,System.StringComparison) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.StringComparer.Compare(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.StringComparer.Compare(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Text.ASCIIEncoding.GetByteCount(System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.ASCIIEncoding.GetByteCount(System.Char[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.ASCIIEncoding.GetByteCount(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.ASCIIEncoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.ASCIIEncoding.GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.ASCIIEncoding.GetBytes(System.String,System.Int32,System.Int32,System.Byte[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.ASCIIEncoding.GetCharCount(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.ASCIIEncoding.GetCharCount(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.ASCIIEncoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.ASCIIEncoding.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.Decoder.GetCharCount(System.Byte*,System.Int32,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.Decoder.GetCharCount(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.Decoder.GetCharCount(System.Byte[],System.Int32,System.Int32,System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.Decoder.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.Decoder.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.Decoder.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.Encoder.GetByteCount(System.Char*,System.Int32,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.Encoder.GetByteCount(System.Char[],System.Int32,System.Int32,System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.Encoder.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.Encoder.GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.Encoding.GetByteCount(System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.Encoding.GetByteCount(System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.Encoding.GetByteCount(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.Encoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.Encoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.Encoding.GetBytes(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.Encoding.GetCharCount(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.Encoding.GetCharCount(System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.Encoding.GetCharCount(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.Encoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.Encoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.Encoding.GetChars(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UTF7Encoding.GetByteCount(System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF7Encoding.GetByteCount(System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UTF7Encoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF7Encoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UTF7Encoding.GetCharCount(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF7Encoding.GetCharCount(System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UTF7Encoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF7Encoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UTF8Encoding.GetByteCount(System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF8Encoding.GetByteCount(System.Char[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.UTF8Encoding.GetByteCount(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.UTF8Encoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF8Encoding.GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.UTF8Encoding.GetBytes(System.String,System.Int32,System.Int32,System.Byte[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.UTF8Encoding.GetCharCount(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF8Encoding.GetCharCount(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.UTF8Encoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF8Encoding.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32 System.Text.UTF32Encoding.GetByteCount(System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF32Encoding.GetByteCount(System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UTF32Encoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF32Encoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UTF32Encoding.GetCharCount(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF32Encoding.GetCharCount(System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UTF32Encoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UTF32Encoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UnicodeEncoding.GetByteCount(System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UnicodeEncoding.GetByteCount(System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UnicodeEncoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UnicodeEncoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UnicodeEncoding.GetCharCount(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UnicodeEncoding.GetCharCount(System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Text.UnicodeEncoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Text.UnicodeEncoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int32 System.Threading.LowLevelLifoSemaphore.WaitNative(Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Int32 System.Threading.LowLevelLifoSemaphore.WaitNative(Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Int32 System.Threading.LowLevelLifoSemaphore.WaitNative(Microsoft.Win32.SafeHandles.SafeWaitHandle,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int32 System.Threading.SynchronizationContext.Wait(System.IntPtr[],System.Boolean,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.Threading.SynchronizationContext.WaitHelper(System.IntPtr[],System.Boolean,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int32 System.TimeOnly.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.TimeSpan.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.UInt16.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.UInt32.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.UInt64.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.UInt128.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.UIntPtr.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Version.CompareTo(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32 System.Version.CompareTo(System.Version) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Int32[] System.Decimal.GetBits(System.Decimal) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32[] System.Globalization.GregorianCalendar.get_Eras() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32[] System.Globalization.HebrewCalendar.get_Eras() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32[] System.Globalization.HijriCalendar.get_Eras() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int32[] System.Globalization.PersianCalendar.get_Eras() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.BitConverter.ToInt64(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Int64 System.Convert.ToInt64(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int64 System.Convert.ToInt64(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int64 System.Convert.ToInt64(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int64 System.Convert.ToInt64(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int64 System.GC.GetTotalMemory() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int64 System.GC._GetGenerationBudget(System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int64 System.IO.RandomAccess.GetLength(Microsoft.Win32.SafeHandles.SafeFileHandle) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.IO.RandomAccess.Read(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList<System.Memory<System.Byte>>,System.Int64) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.Int64.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.Int64.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.Int64.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.Int64.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.Int64.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.Int64.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.Int64.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int64 System.Runtime.InteropServices.Marshal.ReadInt64(System.Object,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Int64 System.Runtime.InteropServices.Marshal.ReadInt64(System.Object,System.Int32) | [ObsoleteAttribute(...)] | 0 | ReadInt64(Object, Int32) may be unavailable in future releases. | -| System.Int64 System.Runtime.InteropServices.Marshal.ReadInt64(System.Object,System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Int64 System.Threading.Monitor.GetLockContentionCount() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Int128 System.Int128.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int128 System.Int128.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int128 System.Int128.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int128 System.Int128.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int128 System.Int128.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int128 System.Int128.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int128 System.Int128.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Int128 System.Int128.op_Implicit(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int128 System.Int128.op_Implicit(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int128 System.Int128.op_Implicit(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int128 System.Int128.op_Implicit(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int128 System.Int128.op_Implicit(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int128 System.UInt128.op_CheckedExplicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Int128 System.UInt128.op_Explicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.IntPtr | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.IntPtr Internal.Runtime.InteropServices.ComponentActivator.InternalGetFunctionPointer(System.Runtime.Loader.AssemblyLoadContext,System.String,System.String,System.IntPtr) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for the method requested might not be available at runtime. | -| System.IntPtr Internal.Runtime.InteropServices.ComponentActivator.InternalGetFunctionPointer(System.Runtime.Loader.AssemblyLoadContext,System.String,System.String,System.IntPtr) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Native hosting is not trim compatible and this warning will be seen if trimming is enabled. | -| System.IntPtr Interop.HostPolicy.corehost_set_error_writer(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | libhostpolicy | -| System.IntPtr System.ComAwareWeakReference.ObjectToComWeakRef(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.IntPtr System.ComAwareWeakReference.ObjectToComWeakRef(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.IntPtr System.ComAwareWeakReference.ObjectToComWeakRef(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Int64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.CreateProvider(System.String,delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void>,System.Void*) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.CreateProvider(System.String,delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void>,System.Void*) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.DefineEvent(System.IntPtr,System.UInt32,System.Int64,System.UInt32,System.UInt32,System.Void*,System.UInt32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.GetProvider(System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.IntPtr System.Diagnostics.Tracing.EventPipeInternal.GetProvider(System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.IntPtr System.GC._RegisterFrozenSegment(System.IntPtr,System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.IO.FileStream.Handle | [ObsoleteAttribute(...)] | 0 | FileStream.Handle has been deprecated. Use FileStream's SafeFileHandle property instead. | -| System.IntPtr System.IntPtr.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IntPtr System.IntPtr.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IntPtr System.IntPtr.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IntPtr System.IntPtr.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IntPtr System.IntPtr.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IntPtr System.IntPtr.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IntPtr System.IntPtr.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IntPtr System.IntPtr.op_Explicit(System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.IntPtr System.Runtime.CompilerServices.RuntimeHelpers.AllocateTypeAssociatedMemory(System.Runtime.CompilerServices.QCallTypeHandle,System.UInt32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.Runtime.InteropServices.DllImportResolver.Invoke(System.String,System.Reflection.Assembly,System.Nullable<System.Runtime.InteropServices.DllImportSearchPath>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.IntPtr System.Runtime.InteropServices.Marshal.CreateAggregatedObject(System.IntPtr,System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.IntPtr System.Runtime.InteropServices.Marshal.CreateAggregatedObject(System.IntPtr,System.Object) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IntPtr System.Runtime.InteropServices.Marshal.CreateAggregatedObject`1(System.IntPtr,!0) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type,System.Runtime.InteropServices.CustomQueryInterfaceMode) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type,System.Runtime.InteropServices.CustomQueryInterfaceMode) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetComInterfaceForObject`2(!0) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetComInterfaceForObject`2(!0) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(System.Delegate) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(System.Delegate) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the delegate might not be available. Use the GetFunctionPointerForDelegate<TDelegate> overload instead. | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate`1(!0) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate`1(!0) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Module) | [RequiresAssemblyFilesAttribute(...)] | 0 | Windows only assigns HINSTANCE to assemblies loaded from disk. This API will return -1 for modules without a file on disk. | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetIDispatchForObject(System.Object) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IntPtr System.Runtime.InteropServices.Marshal.GetIUnknownForObject(System.Object) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.IntPtr System.Runtime.InteropServices.Marshal.OffsetOf(System.Type,System.String) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.IntPtr System.Runtime.InteropServices.Marshal.OffsetOf(System.Type,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.IntPtr System.Runtime.InteropServices.Marshal.OffsetOf(System.Type,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:UnrecognizedReflectionPattern | -| System.IntPtr System.Runtime.InteropServices.Marshal.ReadIntPtr(System.Object,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.IntPtr System.Runtime.InteropServices.Marshal.ReadIntPtr(System.Object,System.Int32) | [ObsoleteAttribute(...)] | 0 | ReadIntPtr(Object, Int32) may be unavailable in future releases. | -| System.IntPtr System.Runtime.InteropServices.Marshal.ReadIntPtr(System.Object,System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.IntPtr System.Runtime.InteropServices.Marshal.StringToBSTR(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.StringToCoTaskMemAnsi(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.StringToCoTaskMemAuto(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.StringToCoTaskMemUTF8(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.StringToCoTaskMemUni(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.StringToHGlobalUni(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.IntPtr System.Runtime.InteropServices.Marshal.UnsafeAddrOfPinnedArrayElement(System.Array,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.GetSymbol(System.IntPtr,System.String,System.Boolean) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.GetSymbol(System.IntPtr,System.String,System.Boolean) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.LoadByName(System.String,System.Runtime.CompilerServices.QCallAssembly,System.Boolean,System.UInt32,System.Boolean) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.LoadByName(System.String,System.Runtime.CompilerServices.QCallAssembly,System.Boolean,System.UInt32,System.Boolean) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.LoadFromPath(System.String,System.Boolean) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.IntPtr System.Runtime.InteropServices.NativeLibrary.LoadFromPath(System.String,System.Boolean) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.IntPtr System.Runtime.Loader.AssemblyLoadContext.GetLoadContextForAssembly(System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.Runtime.Loader.AssemblyLoadContext.InitializeAssemblyLoadContext(System.IntPtr,System.Boolean,System.Boolean) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.IntPtr System.Runtime.Loader.AssemblyLoadContext.InitializeAssemblyLoadContext(System.IntPtr,System.Boolean,System.Boolean) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.IntPtr System.Runtime.Loader.AssemblyLoadContext.InitializeAssemblyLoadContext(System.IntPtr,System.Boolean,System.Boolean) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.RuntimeMethodHandle.GetFunctionPointer(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.RuntimeTypeHandle.FreeGCHandle(System.Runtime.CompilerServices.QCallTypeHandle,System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.RuntimeTypeHandle.GetGCHandle(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.InteropServices.GCHandleType) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.IntPtr System.Threading.WaitHandle.Handle | [ObsoleteAttribute(...)] | 0 | WaitHandle.Handle has been deprecated. Use the SafeWaitHandle property instead. | -| System.InvalidCastException | [NullableAttribute(...)] | 0 | 0 | -| System.InvalidCastException | [NullableContextAttribute(...)] | 0 | 2 | -| System.InvalidCastException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.InvalidOperationException | [NullableAttribute(...)] | 0 | 0 | -| System.InvalidOperationException | [NullableContextAttribute(...)] | 0 | 2 | -| System.InvalidOperationException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.InvalidProgramException | [NullableAttribute(...)] | 0 | 0 | -| System.InvalidProgramException | [NullableContextAttribute(...)] | 0 | 2 | -| System.InvalidProgramException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.InvalidTimeZoneException | [NullableAttribute(...)] | 0 | 0 | -| System.InvalidTimeZoneException | [NullableContextAttribute(...)] | 0 | 2 | -| System.InvalidTimeZoneException | [TypeForwardedFromAttribute(...)] | 0 | System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Lazy`1 | [DebuggerDisplayAttribute(...)] | 0 | ThreadSafetyMode = {Mode}, IsValueCreated = {IsValueCreated}, IsValueFaulted = {IsValueFaulted}, Value = {ValueForDebugDisplay} | -| System.Lazy`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.LazyDebugView`1 | -| System.Lazy`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Lazy`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Lazy`2 | [NullableAttribute(...)] | 0 | [0,1] | -| System.Lazy`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.LoaderOptimization.DisallowBindings | [ObsoleteAttribute(...)] | 0 | LoaderOptimization.DisallowBindings has been deprecated and is not supported. | -| System.LoaderOptimization.DomainMask | [ObsoleteAttribute(...)] | 0 | LoaderOptimization.DomainMask has been deprecated and is not supported. | -| System.LoaderOptimizationAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.MTAThreadAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.MarshalByRefObject | [ClassInterfaceAttribute(...)] | 0 | 1 | -| System.MarshalByRefObject | [ComVisibleAttribute(...)] | 0 | True | -| System.MarshalByRefObject | [NullableAttribute(...)] | 0 | 0 | -| System.MarshalByRefObject | [NullableContextAttribute(...)] | 0 | 1 | -| System.MemberAccessException | [NullableAttribute(...)] | 0 | 0 | -| System.MemberAccessException | [NullableContextAttribute(...)] | 0 | 2 | -| System.MemberAccessException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Memory<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Memory<!0> System.Buffers.IMemoryOwner`1.Memory | [NullableAttribute(...)] | 0 | [0,1] | -| System.Memory<!0> System.Buffers.MemoryManager`1.Memory | [NullableAttribute(...)] | 0 | [0,1] | -| System.Memory<!0> System.MemoryExtensions.AsMemory`1(!0[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.MemoryExtensions.AsMemory`1(!0[],System.Index) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.MemoryExtensions.AsMemory`1(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.MemoryExtensions.AsMemory`1(!0[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.MemoryExtensions.AsMemory`1(!0[],System.Range) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.MemoryExtensions.AsMemory`1(System.ArraySegment<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.MemoryExtensions.AsMemory`1(System.ArraySegment<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.MemoryExtensions.AsMemory`1(System.ArraySegment<!0>,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.Memory`1.Empty | [NullableAttribute(...)] | 0 | [0,1] | -| System.Memory<!0> System.Runtime.InteropServices.MemoryMarshal.AsMemory`1(System.ReadOnlyMemory<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Memory<!0> System.Runtime.InteropServices.MemoryMarshal.CreateFromPinnedArray`1(!0[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | [destination,provider] | -| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | destination | -| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.MemoryExtensions.TryWriteInterpolatedStringHandler | [ObsoleteAttribute(...)] | 1 | True | -| System.Memory`1 | [DebuggerDisplayAttribute(...)] | 0 | {ToString(),raw} | -| System.Memory`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.MemoryDebugView`1 | -| System.Memory`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Memory`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.MethodAccessException | [NullableAttribute(...)] | 0 | 0 | -| System.MethodAccessException | [NullableContextAttribute(...)] | 0 | 2 | -| System.MethodAccessException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.MissingFieldException | [NullableAttribute(...)] | 0 | 0 | -| System.MissingFieldException | [NullableContextAttribute(...)] | 0 | 1 | -| System.MissingFieldException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.MissingMemberException | [NullableAttribute(...)] | 0 | 0 | -| System.MissingMemberException | [NullableContextAttribute(...)] | 0 | 2 | -| System.MissingMemberException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.MissingMethodException | [NullableAttribute(...)] | 0 | 0 | -| System.MissingMethodException | [NullableContextAttribute(...)] | 0 | 1 | -| System.MissingMethodException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ModuleHandle | [NullableAttribute(...)] | 0 | 0 | -| System.ModuleHandle | [NullableContextAttribute(...)] | 0 | 2 | -| System.MulticastDelegate | [ClassInterfaceAttribute(...)] | 0 | 0 | -| System.MulticastDelegate | [ComVisibleAttribute(...)] | 0 | True | -| System.MulticastDelegate | [NullableAttribute(...)] | 0 | 0 | -| System.MulticastDelegate | [NullableContextAttribute(...)] | 0 | 1 | -| System.MulticastNotSupportedException | [NullableAttribute(...)] | 0 | 0 | -| System.MulticastNotSupportedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.MulticastNotSupportedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Net.WebUtility | [NullableAttribute(...)] | 0 | 0 | -| System.Net.WebUtility | [NullableContextAttribute(...)] | 0 | 2 | -| System.NonSerializedAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.NonSerializedAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.NotFiniteNumberException | [NullableAttribute(...)] | 0 | 0 | -| System.NotFiniteNumberException | [NullableContextAttribute(...)] | 0 | 2 | -| System.NotFiniteNumberException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.NotImplementedException | [NullableAttribute(...)] | 0 | 0 | -| System.NotImplementedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.NotImplementedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.NotSupportedException | [NullableAttribute(...)] | 0 | 0 | -| System.NotSupportedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.NotSupportedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.NullReferenceException | [NullableAttribute(...)] | 0 | 0 | -| System.NullReferenceException | [NullableContextAttribute(...)] | 0 | 2 | -| System.NullReferenceException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Nullable`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Number.BigInteger | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Number.BigInteger | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Number.BigInteger | [ObsoleteAttribute(...)] | 1 | True | -| System.Number.BigInteger._blocks | [FixedBufferAttribute(...)] | 0 | System.UInt32 | -| System.Number.BigInteger._blocks | [FixedBufferAttribute(...)] | 1 | 115 | -| System.Number.DiyFp | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Number.DiyFp | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Number.DiyFp | [ObsoleteAttribute(...)] | 1 | True | -| System.Number.NumberBuffer | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Number.NumberBuffer | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Number.NumberBuffer | [ObsoleteAttribute(...)] | 1 | True | -| System.Numerics.IAdditionOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IAdditiveIdentity`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IBinaryInteger`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IBitwiseOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IComparisonOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IDecrementOperators`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IDivisionOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IEqualityOperators`3 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.IExponentialFunctions`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IFloatingPointConstants`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IFloatingPointIeee754`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IFloatingPoint`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IHyperbolicFunctions`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IIncrementOperators`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.ILogarithmicFunctions`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IMinMaxValue`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IModulusOperators`3 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.IMultiplicativeIdentity`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IMultiplyOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.INumberBase`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.INumber`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IShiftOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.ISubtractionOperators`3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.ITrigonometricFunctions`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.IUnaryNegationOperators`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Matrix3x2 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Numerics.Matrix3x2.Impl | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Numerics.Matrix4x4 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Numerics.Matrix4x4.Impl | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Numerics.Quaternion | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Numerics.TotalOrderIeee754Comparer<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Numerics.TotalOrderIeee754Comparer`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Numerics.TotalOrderIeee754Comparer`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector2 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Numerics.Vector3 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Numerics.Vector4 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Numerics.Vector<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Numerics.Vector<!0> System.Numerics.Vector.Abs`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Add`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.AndNot`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.BitwiseAnd`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.BitwiseOr`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.ConditionalSelect`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Divide`1(System.Numerics.Vector<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Divide`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Equals`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.GreaterThanOrEqual`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.GreaterThan`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.LessThanOrEqual`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.LessThan`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.LoadAlignedNonTemporal`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<!0> System.Numerics.Vector.LoadAlignedNonTemporal`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.LoadAligned`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<!0> System.Numerics.Vector.LoadAligned`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.LoadUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Numerics.Vector.LoadUnsafe`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<!0> System.Numerics.Vector.LoadUnsafe`1(!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Load`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<!0> System.Numerics.Vector.Load`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Max`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Min`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Multiply`1(!0,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Multiply`1(System.Numerics.Vector<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Multiply`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Negate`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.OnesComplement`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.SquareRoot`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Subtract`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector.WithElement`1(System.Numerics.Vector<!0>,System.Int32,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Numerics.Vector.Xor`1(System.Numerics.Vector<!0>,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Numerics.Vector`1.AllBitsSet | [NullableAttribute(...)] | 0 | [0,1] | -| System.Numerics.Vector<!0> System.Numerics.Vector`1.One | [NullableAttribute(...)] | 0 | [0,1] | -| System.Numerics.Vector<!0> System.Numerics.Vector`1.Zero | [NullableAttribute(...)] | 0 | [0,1] | -| System.Numerics.Vector<!0> System.Numerics.Vector`1.op_Division(System.Numerics.Vector<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Numerics.Vector`1.op_Multiply(!0,System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Numerics.Vector`1.op_Multiply(System.Numerics.Vector<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Numerics.Vector<!0> System.Runtime.Intrinsics.Vector128.AsVector`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Runtime.Intrinsics.Vector256.AsVector`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!0> System.Runtime.Intrinsics.Vector512.AsVector`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<!1> System.Numerics.Vector.As`2(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Numerics.Vector<System.Byte> System.Numerics.Vector.Narrow(System.Numerics.Vector<System.UInt16>,System.Numerics.Vector<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.Double> System.Numerics.Vector.ConvertToDouble(System.Numerics.Vector<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.Int16> System.Numerics.Vector.WidenLower(System.Numerics.Vector<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.Int16> System.Numerics.Vector.WidenUpper(System.Numerics.Vector<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.SByte> System.Numerics.Vector.AsVectorSByte`1(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.SByte> System.Numerics.Vector.Narrow(System.Numerics.Vector<System.Int16>,System.Numerics.Vector<System.Int16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.SByte> System.Numerics.Vector.ShiftLeft(System.Numerics.Vector<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.SByte> System.Numerics.Vector.ShiftRightArithmetic(System.Numerics.Vector<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.SByte> System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.SByte> System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.Single> System.Numerics.Vector.ConvertToSingle(System.Numerics.Vector<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt16> System.Numerics.Vector.AsVectorUInt16`1(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt16> System.Numerics.Vector.Narrow(System.Numerics.Vector<System.UInt32>,System.Numerics.Vector<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt16> System.Numerics.Vector.ShiftLeft(System.Numerics.Vector<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt16> System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt16> System.Numerics.Vector.WidenLower(System.Numerics.Vector<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt16> System.Numerics.Vector.WidenUpper(System.Numerics.Vector<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt16> System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt32> System.Numerics.Vector.AsVectorUInt32`1(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt32> System.Numerics.Vector.ConvertToUInt32(System.Numerics.Vector<System.Single>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt32> System.Numerics.Vector.Narrow(System.Numerics.Vector<System.UInt64>,System.Numerics.Vector<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt32> System.Numerics.Vector.ShiftLeft(System.Numerics.Vector<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt32> System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt32> System.Numerics.Vector.WidenLower(System.Numerics.Vector<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt32> System.Numerics.Vector.WidenUpper(System.Numerics.Vector<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt32> System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt64> System.Numerics.Vector.AsVectorUInt64`1(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt64> System.Numerics.Vector.ConvertToUInt64(System.Numerics.Vector<System.Double>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt64> System.Numerics.Vector.ShiftLeft(System.Numerics.Vector<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt64> System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt64> System.Numerics.Vector.WidenLower(System.Numerics.Vector<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt64> System.Numerics.Vector.WidenUpper(System.Numerics.Vector<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UInt64> System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UIntPtr> System.Numerics.Vector.AsVectorNUInt`1(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UIntPtr> System.Numerics.Vector.ShiftLeft(System.Numerics.Vector<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UIntPtr> System.Numerics.Vector.ShiftRightLogical(System.Numerics.Vector<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector<System.UIntPtr> System.Numerics.Vector`1.op_Explicit(System.Numerics.Vector<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Numerics.Vector`1 | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | -| System.Numerics.Vector`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Numerics.VectorDebugView`1 | -| System.Numerics.Vector`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Object System.Activator.CreateInstance(System.Type,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Activator.CreateInstance(System.Type,System.Object[],System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Activator.CreateInstance(System.Type,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Activator.CreateInstance(System.Type,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.AppDomain.CreateInstanceAndUnwrap(System.String,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Object System.AppDomain.CreateInstanceAndUnwrap(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.AppDomain.CreateInstanceAndUnwrap(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Object System.AppDomain.CreateInstanceAndUnwrap(System.String,System.String,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Object System.AppDomain.CreateInstanceFromAndUnwrap(System.String,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Object System.AppDomain.CreateInstanceFromAndUnwrap(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.AppDomain.CreateInstanceFromAndUnwrap(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Object System.AppDomain.CreateInstanceFromAndUnwrap(System.String,System.String,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Object System.ArgumentOutOfRangeException.get_ActualValue() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Array.GetValue(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Array.GetValue(System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Array.GetValue(System.Int32,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Array.GetValue(System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Array.GetValue(System.Int64,System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Array.GetValue(System.Int64,System.Int64,System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.CharEnumerator.Clone() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Object System.Collections.ArrayList.get_Item(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Collections.DictionaryEntry.get_Value() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Collections.IDictionaryEnumerator.get_Value() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Delegate.DynamicInvoke(System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Delegate.DynamicInvokeImpl(System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Delegate.get_Target() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Enum.ToObject(System.Type,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Object System.Enum.ToObject(System.Type,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Object System.Enum.ToObject(System.Type,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Object System.Enum.ToObject(System.Type,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Object System.FormattableString.GetArgument(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Globalization.CultureInfo.GetFormat(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Globalization.DateTimeFormatInfo.GetFormat(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Globalization.NumberFormatInfo.GetFormat(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.IAsyncResult.get_AsyncState() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.IConvertible.ToType(System.Type,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Object System.MarshalByRefObject.GetLifetimeService() | [ObsoleteAttribute(...)] | 0 | This Remoting API is not supported and throws PlatformNotSupportedException. | -| System.Object System.MarshalByRefObject.InitializeLifetimeService() | [ObsoleteAttribute(...)] | 0 | This Remoting API is not supported and throws PlatformNotSupportedException. | -| System.Object System.Object.MemberwiseClone() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Object System.Reflection.Assembly.CreateInstance(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead. | -| System.Object System.Reflection.Assembly.CreateInstance(System.String,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead. | -| System.Object System.Reflection.Assembly.CreateInstance(System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.Assembly.CreateInstance(System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead. | -| System.Object System.Reflection.AssemblyName.Clone() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Object System.Reflection.ConstructorInfo.Invoke(System.Object[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Object System.Reflection.ConstructorInvoker.Invoke(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.ConstructorInvoker.Invoke(System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.ConstructorInvoker.Invoke(System.Object,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.CustomAttributeTypedArgument.get_Value() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.Emit.DynamicMethod.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.Emit.RuntimeEnumBuilder.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.Emit.RuntimeTypeBuilder.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.Emit.SymbolType.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.Emit.TypeBuilderInstantiation.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.FieldInfo.GetRawConstantValue() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.FieldInfo.GetValue(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.FieldInfo.GetValueDirect(System.TypedReference) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Object System.Reflection.FieldInfo.GetValueDirect(System.TypedReference) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.IReflect.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.IReflect.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.ModifiedType.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.ParameterInfo.GetRealObject(System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Object System.Reflection.ParameterInfo.GetRealObject(System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Object System.Reflection.ParameterInfo.get_DefaultValue() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.ParameterInfo.get_RawDefaultValue() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Reflection.Pointer.Box(System.Void*,System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Object System.Reflection.SignatureType.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.TypeDelegator.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Reflection.TypeDelegator.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Resources.ResourceManager.GetObject(System.String,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Runtime.InteropServices.ComWrappers.CreateObject(System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Runtime.InteropServices.Marshal.BindToMoniker(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Built-in COM support is not trim compatible | -| System.Object System.Runtime.InteropServices.Marshal.BindToMoniker(System.String) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Object System.Runtime.InteropServices.Marshal.CreateWrapperOfType(System.Object,System.Type) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Object System.Runtime.InteropServices.Marshal.CreateWrapperOfType(System.Object,System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Runtime.InteropServices.Marshal.CreateWrapperOfType(System.Object,System.Type) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Object System.Runtime.InteropServices.Marshal.GetComObjectData(System.Object,System.Object) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Object System.Runtime.InteropServices.Marshal.GetObjectForIUnknown(System.IntPtr) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Object System.Runtime.InteropServices.Marshal.GetObjectForNativeVariant(System.IntPtr) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Object System.Runtime.InteropServices.Marshal.GetObjectForNativeVariant(System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Runtime.InteropServices.Marshal.GetObjectForNativeVariant(System.IntPtr) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Object System.Runtime.InteropServices.Marshal.GetTypedObjectForIUnknown(System.IntPtr,System.Type) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Object System.Runtime.InteropServices.Marshal.GetUniqueObjectForIUnknown(System.IntPtr) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Object System.Runtime.InteropServices.Marshal.PtrToStructure(System.IntPtr,System.Type) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Object System.Runtime.InteropServices.Marshal.PtrToStructure(System.IntPtr,System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Object System.Runtime.Serialization.SerializationEntry.get_Value() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Runtime.Serialization.SerializationInfoEnumerator.get_Value() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.RuntimeType.<CreateInstanceImpl>g__CreateInstanceLocal\|145_0(System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Object System.RuntimeType.<CreateInstanceImpl>g__CreateInstanceLocal\|145_0(System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2082:UnrecognizedReflectionPattern | -| System.Object System.RuntimeType.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Object System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2067:ParameterDoesntMeetParameterRequirements | -| System.Object System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(System.RuntimeType,System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Object System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(System.RuntimeType,System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2067:ParameterDoesntMeetParameterRequirements | -| System.Object System.Security.PermissionSet.get_SyncRoot() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Object System.Threading.Interlocked.CompareExchange(System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Threading.Interlocked.Exchange(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Threading.Tasks.Task.get_AsyncState() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Threading.Thread.VolatileRead(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Threading.ThreadPoolBoundHandle.GetNativeOverlappedState(System.Threading.NativeOverlapped*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Globalization.CultureInfo) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Object System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Object System.UnitySerializationHolder.GetRealObject(System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Object System.Version.Clone() | [NullableContextAttribute(...)] | 0 | 1 | -| System.ObjectDisposedException | [NullableAttribute(...)] | 0 | 0 | -| System.ObjectDisposedException | [NullableContextAttribute(...)] | 0 | 1 | -| System.ObjectDisposedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Object[] System.Diagnostics.Tracing.EventSource.SerializeEventArgs(System.Int32,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Object[] System.Diagnostics.Tracing.EventSource.SerializeEventArgs(System.Int32,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Object[] System.Diagnostics.Tracing.EventSource.SerializeEventArgs(System.Int32,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Object[] System.Runtime.InteropServices.Marshal.GetObjectsForNativeVariants(System.IntPtr,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Object[] System.Runtime.InteropServices.Marshal.GetObjectsForNativeVariants(System.IntPtr,System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.ObsoleteAttribute | [AttributeUsageAttribute(...)] | 0 | 6140 | -| System.ObsoleteAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.ObsoleteAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.OperatingSystem | [NullableAttribute(...)] | 0 | 0 | -| System.OperatingSystem | [NullableContextAttribute(...)] | 0 | 1 | -| System.OperationCanceledException | [NullableAttribute(...)] | 0 | 0 | -| System.OperationCanceledException | [NullableContextAttribute(...)] | 0 | 2 | -| System.OperationCanceledException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.OrdinalComparer | [NullableAttribute(...)] | 0 | 0 | -| System.OrdinalComparer | [NullableContextAttribute(...)] | 0 | 2 | -| System.OrdinalComparer | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.OutOfMemoryException | [NullableAttribute(...)] | 0 | 0 | -| System.OutOfMemoryException | [NullableContextAttribute(...)] | 0 | 2 | -| System.OutOfMemoryException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.OverflowException | [NullableAttribute(...)] | 0 | 0 | -| System.OverflowException | [NullableContextAttribute(...)] | 0 | 2 | -| System.OverflowException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ParamArrayAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.PlatformID.MacOSX | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.PlatformID.Win32S | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.PlatformID.Win32Windows | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.PlatformID.WinCE | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.PlatformID.Xbox | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.PlatformNotSupportedException | [NullableAttribute(...)] | 0 | 0 | -| System.PlatformNotSupportedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.PlatformNotSupportedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Progress`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Progress`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Progress`1.ProgressChanged | [NullableAttribute(...)] | 0 | [2,1] | -| System.Random | [NullableAttribute(...)] | 0 | 0 | -| System.Random | [NullableContextAttribute(...)] | 0 | 1 | -| System.RankException | [NullableAttribute(...)] | 0 | 0 | -| System.RankException | [NullableContextAttribute(...)] | 0 | 2 | -| System.RankException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ReadOnlyMemory<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.ReadOnlyMemory<!0> System.ReadOnlyMemory`1.Empty | [NullableAttribute(...)] | 0 | [0,1] | -| System.ReadOnlyMemory`1 | [DebuggerDisplayAttribute(...)] | 0 | {ToString(),raw} | -| System.ReadOnlyMemory`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.MemoryDebugView`1 | -| System.ReadOnlyMemory`1 | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlyMemory`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.ReadOnlySpan<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.ReadOnlySpan<!0> System.ReadOnlyMemory`1.Span | [NullableAttribute(...)] | 0 | [0,1] | -| System.ReadOnlySpan<!0> System.ReadOnlySpan`1.Empty | [NullableAttribute(...)] | 0 | [0,1] | -| System.ReadOnlySpan<!0> System.Runtime.CompilerServices.RuntimeHelpers.CreateSpan`1(System.RuntimeFieldHandle) | [NullableContextAttribute(...)] | 0 | 2 | -| System.ReadOnlySpan<!0> System.Runtime.InteropServices.MemoryMarshal.CreateReadOnlySpan`1(!0,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.ReadOnlySpan<!0>.Enumerator System.ReadOnlySpan`1.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Boolean> System.Globalization.CompareInfo.HighCharTable | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Byte> System.Diagnostics.Tracing.EventSource.ProviderMetadata | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Byte> System.Runtime.InteropServices.MemoryMarshal.CreateReadOnlySpanFromNullTerminated(System.Byte*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ReadOnlySpan<System.Byte> System.Text.Encoding.Preamble | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Byte> System.Text.Encoding.get_Preamble() | [NullableContextAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Byte> System.Text.UTF32Encoding.Preamble | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Byte> System.Text.UTF32Encoding.get_Preamble() | [NullableContextAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Byte> System.Text.UnicodeEncoding.Preamble | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Byte> System.Text.UnicodeEncoding.get_Preamble() | [NullableContextAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Char> | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Char> | [StringSyntaxAttribute(...)] | 0 | DateOnlyFormat | -| System.ReadOnlySpan<System.Char> | [StringSyntaxAttribute(...)] | 0 | DateTimeFormat | -| System.ReadOnlySpan<System.Char> | [StringSyntaxAttribute(...)] | 0 | EnumFormat | -| System.ReadOnlySpan<System.Char> | [StringSyntaxAttribute(...)] | 0 | GuidFormat | -| System.ReadOnlySpan<System.Char> | [StringSyntaxAttribute(...)] | 0 | NumericFormat | -| System.ReadOnlySpan<System.Char> | [StringSyntaxAttribute(...)] | 0 | TimeOnlyFormat | -| System.ReadOnlySpan<System.Char> | [StringSyntaxAttribute(...)] | 0 | TimeSpanFormat | -| System.ReadOnlySpan<System.Char> System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.Text | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Char> System.Runtime.InteropServices.MemoryMarshal.CreateReadOnlySpanFromNullTerminated(System.Char*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ReadOnlySpan<System.Char> System.String.op_Implicit(System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.Object> | [NullableAttribute(...)] | 0 | [0,2] | -| System.ReadOnlySpan<System.SByte> System.Convert.DecodingMap | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan<System.String> | [NullableAttribute(...)] | 0 | [0,1] | -| System.ReadOnlySpan`1 | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.ReadOnlySpan`1 | [DebuggerDisplayAttribute(...)] | 0 | {ToString(),raw} | -| System.ReadOnlySpan`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.SpanDebugView`1 | -| System.ReadOnlySpan`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.ReadOnlySpan`1 | [NativeMarshallingAttribute(...)] | 0 | System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2 | -| System.ReadOnlySpan`1 | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.ReadOnlySpan`1 | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.ReadOnlySpan`1 | [ObsoleteAttribute(...)] | 1 | True | -| System.ReadOnlySpan`1.Enumerator | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.ReadOnlySpan`1.Enumerator | [NullableAttribute(...)] | 0 | 0 | -| System.ReadOnlySpan`1.Enumerator | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.ReadOnlySpan`1.Enumerator | [ObsoleteAttribute(...)] | 1 | True | -| System.Reflection.AmbiguousMatchException | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AmbiguousMatchException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.AmbiguousMatchException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Reflection.Assembly | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Assembly | [NullableAttribute(...)] | 0 | 1 | -| System.Reflection.Assembly | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.Assembly | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Assembly Internal.Runtime.InteropServices.IsolatedComponentLoadContext.Load(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.Assembly Internal.Runtime.InteropServices.IsolatedComponentLoadContext.Load(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Reflection.Assembly System.AppDomain.Load(System.Byte[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.AppDomain.Load(System.Byte[],System.Byte[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.GetEntryAssembly() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Assembly System.Reflection.Assembly.Load(System.Byte[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.Load(System.Byte[],System.Byte[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.LoadFile(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.LoadFrom(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.LoadFrom(System.String,System.Byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.LoadFromResolveHandler(System.Object,System.ResolveEventArgs) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.LoadFromResolveHandler(System.Object,System.ResolveEventArgs) | [UnconditionalSuppressMessageAttribute(...)] | 0 | SingleFile | -| System.Reflection.Assembly System.Reflection.Assembly.LoadFromResolveHandler(System.Object,System.ResolveEventArgs) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3000:Avoid accessing Assembly file path when publishing as a single file | -| System.Reflection.Assembly System.Reflection.Assembly.LoadWithPartialName(System.String) | [ObsoleteAttribute(...)] | 0 | Assembly.LoadWithPartialName has been deprecated. Use Assembly.Load() instead. | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoad(System.Byte[]) | [ObsoleteAttribute(...)] | 0 | ReflectionOnly loading is not supported and throws PlatformNotSupportedException. | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoad(System.Byte[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoad(System.String) | [ObsoleteAttribute(...)] | 0 | ReflectionOnly loading is not supported and throws PlatformNotSupportedException. | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoad(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoadFrom(System.String) | [ObsoleteAttribute(...)] | 0 | ReflectionOnly loading is not supported and throws PlatformNotSupportedException. | -| System.Reflection.Assembly System.Reflection.Assembly.ReflectionOnlyLoadFrom(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Reflection.Assembly.UnsafeLoadFrom(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.ResolveEventArgs.RequestingAssembly | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.Assembly System.ResolveEventArgs.get_RequestingAssembly() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Assembly System.ResolveEventHandler.Invoke(System.Object,System.ResolveEventArgs) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | 0 | SingleFile | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3000: Avoid accessing Assembly file path when publishing as a single file | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.InternalLoad(System.ReadOnlySpan<System.Byte>,System.ReadOnlySpan<System.Byte>) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.LoadFromNativeImagePath(System.String,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.LoadFromStream(System.IO.Stream) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.LoadFromStream(System.IO.Stream,System.IO.Stream) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.ResolveSatelliteAssembly(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.ResolveSatelliteAssembly(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | 0 | SingleFile | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.ResolveSatelliteAssembly(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Reflection.Assembly System.Runtime.Loader.AssemblyLoadContext.ResolveSatelliteAssembly(System.Reflection.AssemblyName) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3000: Avoid accessing Assembly file path when publishing as a single file | -| System.Reflection.Assembly.ModuleResolve | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.AssemblyAlgorithmIdAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyCompanyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyCompanyAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyCompanyAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyConfigurationAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyConfigurationAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyConfigurationAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyCopyrightAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyCopyrightAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyCopyrightAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyCultureAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyCultureAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyCultureAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyDefaultAliasAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyDefaultAliasAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyDefaultAliasAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyDelaySignAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyDescriptionAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyDescriptionAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyDescriptionAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyFileVersionAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyFileVersionAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyFileVersionAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyFlagsAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyInformationalVersionAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyInformationalVersionAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyInformationalVersionAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyKeyFileAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyKeyFileAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyKeyFileAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyKeyNameAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyKeyNameAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyKeyNameAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyMetadataAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyMetadataAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyMetadataAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyName | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyName | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.AssemblyName System.Reflection.AssemblyName.GetAssemblyName(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyName System.Reflection.AssemblyNameProxy.GetAssemblyName(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyNameFlags System.Reflection.RuntimeAssembly.GetFlags(System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Reflection.AssemblyNameParser | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Reflection.AssemblyNameParser | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Reflection.AssemblyNameParser | [ObsoleteAttribute(...)] | 1 | True | -| System.Reflection.AssemblyName[] System.Reflection.Assembly.GetReferencedAssemblies() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Assembly references might be removed | -| System.Reflection.AssemblyName[] System.Reflection.Emit.RuntimeAssemblyBuilder.GetReferencedAssemblies() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Assembly references might be removed | -| System.Reflection.AssemblyName[] System.Reflection.RuntimeAssembly.GetReferencedAssemblies() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Assembly references might be removed | -| System.Reflection.AssemblyProductAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyProductAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyProductAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblySignatureKeyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblySignatureKeyAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblySignatureKeyAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyTitleAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyTitleAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyTitleAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyTrademarkAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyTrademarkAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyTrademarkAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyVersionAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.AssemblyVersionAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.AssemblyVersionAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Binder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Binder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.CerHashtable`2 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Reflection.ConstArray | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Reflection.ConstructorInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.ConstructorInfo | [NullableAttribute(...)] | 0 | 1 | -| System.Reflection.ConstructorInfo | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.ConstructorInfo System.Reflection.Emit.RuntimeEnumBuilder.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Reflection.Emit.RuntimeTypeBuilder.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Reflection.Emit.SymbolType.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Reflection.Emit.TypeBuilder.GetConstructor(System.Type,System.Reflection.ConstructorInfo) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.ConstructorInfo System.Reflection.Emit.TypeBuilder.GetConstructor(System.Type,System.Reflection.ConstructorInfo) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2055:UnrecognizedReflectionPattern | -| System.Reflection.ConstructorInfo System.Reflection.Emit.TypeBuilderInstantiation.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Reflection.ModifiedType.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Reflection.SignatureType.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Reflection.TypeDelegator.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Reflection.TypeDelegator.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.ConstructorInfo System.RuntimeType.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.ConstructorInfo System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Type.GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.ConstructorInfo System.Type.GetConstructor(System.Reflection.BindingFlags,System.Type[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Type.GetConstructor(System.Type[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 3 | -| System.Reflection.ConstructorInfo System.Type.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Type.GetConstructorImpl(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.ConstructorInfo System.Type.TypeInitializer | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.ConstructorInfo System.Type.get_TypeInitializer() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo System.Type.get_TypeInitializer() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.ConstructorInfo.ConstructorName | [NullableAttribute(...)] | 0 | 1 | -| System.Reflection.ConstructorInfo.TypeConstructorName | [NullableAttribute(...)] | 0 | 1 | -| System.Reflection.ConstructorInfo[] System.Reflection.Emit.RuntimeEnumBuilder.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.Reflection.Emit.RuntimeTypeBuilder.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.Reflection.Emit.SymbolType.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.Reflection.Emit.TypeBuilderInstantiation.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.Reflection.ModifiedType.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.Reflection.SignatureType.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.Reflection.TypeDelegator.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.RuntimeType.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInfo[] System.Type.GetConstructors() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 3 | -| System.Reflection.ConstructorInfo[] System.Type.GetConstructors(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Reflection.ConstructorInvoker | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.ConstructorInvoker | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.CustomAttributeData | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.CustomAttributeData | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.CustomAttributeExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.CustomAttributeExtensions | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.CustomAttributeFormatException | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.CustomAttributeFormatException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.CustomAttributeFormatException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Reflection.CustomAttributeNamedArgument | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.CustomAttributeNamedArgument | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.CustomAttributeTypedArgument | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.CustomAttributeTypedArgument | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.DefaultMemberAttribute | [AttributeUsageAttribute(...)] | 0 | 1036 | -| System.Reflection.DefaultMemberAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.DefaultMemberAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.AssemblyBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.AssemblyBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.AssemblyBuilder System.Reflection.Emit.AssemblyBuilder.DefineDynamicAssembly(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess) | [RequiresDynamicCodeAttribute(...)] | 0 | Defining a dynamic assembly requires dynamic code. | -| System.Reflection.Emit.AssemblyBuilder System.Reflection.Emit.AssemblyBuilder.DefineDynamicAssembly(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder>) | [RequiresDynamicCodeAttribute(...)] | 0 | Defining a dynamic assembly requires dynamic code. | -| System.Reflection.Emit.ConstructorBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.ConstructorBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.ConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineConstructorNoLock(System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type[],System.Type[][],System.Type[][]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.Emit.ConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineConstructorNoLock(System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type[],System.Type[][],System.Type[][]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2082:UnrecognizedReflectionPattern | -| System.Reflection.Emit.ConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineTypeInitializerCore() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.Emit.ConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineTypeInitializerCore() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2082:UnrecognizedReflectionPattern | -| System.Reflection.Emit.CustomAttributeBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.CustomAttributeBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.DynamicILInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.DynamicILInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.DynamicMethod | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.DynamicMethod | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.DynamicScope | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Reflection.Emit.EnumBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.EnumBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.EventBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.EventBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.FlowControl.Phi | [ObsoleteAttribute(...)] | 0 | FlowControl.Phi has been deprecated and is not supported. | -| System.Reflection.Emit.ILGenerator | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.ILGenerator | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.LocalBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.LocalBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.MethodBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.MethodBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.ModuleBuilder.DefinePInvokeMethod(System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.ModuleBuilder.DefinePInvokeMethod(System.String,System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.ModuleBuilder.DefinePInvokeMethodCore(System.String,System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.RuntimeModuleBuilder.DefinePInvokeMethodCore(System.String,System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodCore(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodCore(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2082:UnrecognizedReflectionPattern | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefinePInvokeMethodCore(System.String,System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.TypeBuilder.DefinePInvokeMethod(System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.TypeBuilder.DefinePInvokeMethod(System.String,System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.TypeBuilder.DefinePInvokeMethod(System.String,System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.MethodBuilder System.Reflection.Emit.TypeBuilder.DefinePInvokeMethodCore(System.String,System.String,System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],System.Runtime.InteropServices.CallingConvention,System.Runtime.InteropServices.CharSet) | [RequiresUnreferencedCodeAttribute(...)] | 0 | P/Invoke marshalling may dynamically access members that could be trimmed. | -| System.Reflection.Emit.ModuleBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.ModuleBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.OpCode | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.OpCode | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.OpCodeType.Annotation | [ObsoleteAttribute(...)] | 0 | OpCodeType.Annotation has been deprecated and is not supported. | -| System.Reflection.Emit.OperandType.InlinePhi | [ObsoleteAttribute(...)] | 0 | OperandType.InlinePhi has been deprecated and is not supported. | -| System.Reflection.Emit.ParameterBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.ParameterBuilder | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.ParameterBuilder System.Reflection.Emit.DynamicMethod.DefineParameter(System.Int32,System.Reflection.ParameterAttributes,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.PropertyBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.PropertyBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.RuntimeConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineDefaultConstructorNoLock(System.Reflection.MethodAttributes) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.Emit.RuntimeConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineDefaultConstructorNoLock(System.Reflection.MethodAttributes) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2055:UnrecognizedReflectionPattern | -| System.Reflection.Emit.RuntimeConstructorBuilder System.Reflection.Emit.RuntimeTypeBuilder.DefineDefaultConstructorNoLock(System.Reflection.MethodAttributes) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Reflection.Emit.RuntimeEnumBuilder.m_typeBuilder | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Reflection.Emit.RuntimeMethodBuilder.m_containingType | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Reflection.Emit.RuntimeTypeBuilder | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Reflection.Emit.RuntimeTypeBuilder.m_bakedRuntimeType | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Reflection.Emit.RuntimeTypeBuilder.m_typeParent | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Reflection.Emit.SignatureHelper | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.SignatureHelper | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Emit.SignatureHelper System.Reflection.Emit.SignatureHelper.GetMethodSigHelper(System.Reflection.Module,System.Reflection.CallingConventions,System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.SignatureHelper System.Reflection.Emit.SignatureHelper.GetMethodSigHelper(System.Reflection.Module,System.Type,System.Type[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.SignatureHelper System.Reflection.Emit.SignatureHelper.GetPropertySigHelper(System.Reflection.Module,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.SignatureHelper System.Reflection.Emit.SignatureHelper.GetPropertySigHelper(System.Reflection.Module,System.Type,System.Type[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.SignatureHelper System.Reflection.Emit.SignatureHelper.GetPropertySigHelper(System.Reflection.Module,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.Emit.TypeBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Emit.TypeBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.EventInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.EventInfo | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.EventInfo System.Attribute.GetParentDefinition(System.Reflection.EventInfo) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.EventInfo System.Attribute.GetParentDefinition(System.Reflection.EventInfo) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Reflection.EventInfo System.Reflection.Emit.RuntimeEnumBuilder.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Reflection.Emit.RuntimeTypeBuilder.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Reflection.Emit.SymbolType.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Reflection.Emit.TypeBuilderInstantiation.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Reflection.ModifiedType.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Reflection.SignatureType.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Reflection.TypeDelegator.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Reflection.TypeInfo.GetDeclaredEvent(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.RuntimeType.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo System.Type.GetEvent(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo System.Type.GetEvent(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Reflection.Emit.RuntimeEnumBuilder.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Reflection.Emit.RuntimeEnumBuilder.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Reflection.Emit.RuntimeTypeBuilder.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Reflection.Emit.RuntimeTypeBuilder.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Reflection.Emit.SymbolType.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Reflection.Emit.SymbolType.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Reflection.Emit.TypeBuilderInstantiation.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Reflection.Emit.TypeBuilderInstantiation.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Reflection.ModifiedType.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Reflection.ModifiedType.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Reflection.SignatureType.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Reflection.SignatureType.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Reflection.TypeDelegator.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Reflection.TypeDelegator.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.RuntimeType.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.EventInfo[] System.Type.GetEvents() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Reflection.EventInfo[] System.Type.GetEvents(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Reflection.ExceptionHandlingClause | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.ExceptionHandlingClause | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.FieldAttributes.NotSerialized | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Reflection.FieldInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.FieldInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.FieldInfo System.Reflection.Emit.RuntimeEnumBuilder.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.Emit.RuntimeModuleBuilder.GetField(System.String,System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Fields might be removed | -| System.Reflection.FieldInfo System.Reflection.Emit.RuntimeModuleBuilder.ResolveField(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.FieldInfo System.Reflection.Emit.RuntimeTypeBuilder.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.Emit.SymbolType.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.Emit.TypeBuilder.GetField(System.Type,System.Reflection.FieldInfo) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.FieldInfo System.Reflection.Emit.TypeBuilder.GetField(System.Type,System.Reflection.FieldInfo) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2055:UnrecognizedReflectionPattern | -| System.Reflection.FieldInfo System.Reflection.Emit.TypeBuilderInstantiation.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.IReflect.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.ModifiedType.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.Module.GetField(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Fields might be removed | -| System.Reflection.FieldInfo System.Reflection.Module.GetField(System.String,System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Fields might be removed | -| System.Reflection.FieldInfo System.Reflection.Module.ResolveField(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.FieldInfo System.Reflection.Module.ResolveField(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.FieldInfo System.Reflection.Module.ResolveField(System.Int32,System.Type[],System.Type[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.FieldInfo System.Reflection.Module.ResolveField(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.FieldInfo System.Reflection.RuntimeModule.GetField(System.String,System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Fields might be removed | -| System.Reflection.FieldInfo System.Reflection.RuntimeModule.ResolveField(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.FieldInfo System.Reflection.RuntimeModule.ResolveLiteralField(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.FieldInfo System.Reflection.SignatureType.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.TypeDelegator.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Reflection.TypeInfo.GetDeclaredField(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.RuntimeType.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo System.Type.GetField(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 32 | -| System.Reflection.FieldInfo System.Type.GetField(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Diagnostics.Tracing.ManifestBuilder.<CreateManifestString>g__GetEnumFields\|19_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.FieldInfo[] System.Diagnostics.Tracing.ManifestBuilder.<CreateManifestString>g__GetEnumFields\|19_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:UnrecognizedReflectionPattern | -| System.Reflection.FieldInfo[] System.Reflection.Emit.RuntimeEnumBuilder.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Reflection.Emit.RuntimeModuleBuilder.GetFields(System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Fields might be removed | -| System.Reflection.FieldInfo[] System.Reflection.Emit.RuntimeTypeBuilder.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Reflection.Emit.SymbolType.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Reflection.Emit.TypeBuilderInstantiation.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Reflection.IReflect.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Reflection.ModifiedType.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Reflection.Module.GetFields() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Fields might be removed | -| System.Reflection.FieldInfo[] System.Reflection.Module.GetFields(System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Fields might be removed | -| System.Reflection.FieldInfo[] System.Reflection.RuntimeModule.GetFields(System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Fields might be removed | -| System.Reflection.FieldInfo[] System.Reflection.SignatureType.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Reflection.TypeDelegator.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.RuntimeType.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.FieldInfo[] System.Type.GetFields() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 32 | -| System.Reflection.FieldInfo[] System.Type.GetFields(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Reflection.ICustomAttributeProvider | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.IReflect | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.IReflectableType | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.InterfaceMapping | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.InterfaceMapping | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.IntrospectionExtensions | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Reflection.InvalidFilterCriteriaException | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.InvalidFilterCriteriaException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.InvalidFilterCriteriaException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Reflection.LocalVariableInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.LocalVariableInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.ManifestResourceInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.ManifestResourceInfo | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MemberInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.MemberInfo | [NullableAttribute(...)] | 0 | 1 | -| System.Reflection.MemberInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.MemberInfo System.Reflection.Emit.RuntimeModuleBuilder.ResolveMember(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MemberInfo System.Reflection.Module.ResolveMember(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MemberInfo System.Reflection.Module.ResolveMember(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MemberInfo System.Reflection.Module.ResolveMember(System.Int32,System.Type[],System.Type[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MemberInfo System.Reflection.Module.ResolveMember(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MemberInfo System.Reflection.RuntimeModule.ResolveMember(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MemberInfo System.Type.GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.MemberInfo System.Type.GetMemberWithSameMetadataDefinitionAs(System.Reflection.MemberInfo) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2085:UnrecognizedReflectionPattern | -| System.Reflection.MemberInfo[] System.Reflection.Emit.RuntimeEnumBuilder.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.RuntimeEnumBuilder.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.RuntimeTypeBuilder.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.RuntimeTypeBuilder.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.SymbolType.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.SymbolType.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.TypeBuilderInstantiation.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.Emit.TypeBuilderInstantiation.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.IReflect.GetMember(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.IReflect.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.ModifiedType.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.ModifiedType.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.SignatureType.FindMembers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Reflection.MemberInfo[] System.Reflection.SignatureType.GetDefaultMembers() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2731 | -| System.Reflection.MemberInfo[] System.Reflection.SignatureType.GetMember(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.SignatureType.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.SignatureType.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.TypeDelegator.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Reflection.TypeDelegator.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.RuntimeType.GetDefaultMembers() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2731 | -| System.Reflection.MemberInfo[] System.RuntimeType.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.RuntimeType.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Type.FindMembers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object) | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Reflection.MemberInfo[] System.Type.FindMembers(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MemberInfo[] System.Type.GetDefaultMembers() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2731 | -| System.Reflection.MemberInfo[] System.Type.GetMember(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2731 | -| System.Reflection.MemberInfo[] System.Type.GetMember(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Type.GetMember(System.String,System.Reflection.MemberTypes,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.MemberInfo[] System.Type.GetMembers() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2731 | -| System.Reflection.MemberInfo[] System.Type.GetMembers(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8191 | -| System.Reflection.Metadata.MetadataUpdateHandlerAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.Metadata.MetadataUpdateHandlerAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Metadata.MetadataUpdateHandlerAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.MetadataEnumResult | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Reflection.MetadataEnumResult.smallResult | [FixedBufferAttribute(...)] | 0 | System.Int32 | -| System.Reflection.MetadataEnumResult.smallResult | [FixedBufferAttribute(...)] | 1 | 16 | -| System.Reflection.MethodBase | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.MethodBase | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodBase System.DefaultBinder.BindToMethod(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],System.Object) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Reflection.MethodBase System.DefaultBinder.BindToMethod(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],System.Object) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:RequiresDynamicCode | -| System.Reflection.MethodBase System.Diagnostics.StackFrame.GetMethod() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Metadata for the method might be incomplete or removed | -| System.Reflection.MethodBase System.Exception.get_TargetSite() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Metadata for the method might be incomplete or removed | -| System.Reflection.MethodBase System.Reflection.Binder.BindToMethod(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodBase System.Reflection.Emit.RuntimeModuleBuilder.GetGenericMethodBaseDefinition(System.Reflection.MethodBase) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.MethodBase System.Reflection.Emit.RuntimeModuleBuilder.GetGenericMethodBaseDefinition(System.Reflection.MethodBase) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Reflection.MethodBase System.Reflection.Emit.RuntimeModuleBuilder.ResolveMethod(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MethodBase System.Reflection.MethodBase.GetCurrentMethod() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Metadata for the method might be incomplete or removed | -| System.Reflection.MethodBase System.Reflection.Module.ResolveMethod(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodBase System.Reflection.Module.ResolveMethod(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MethodBase System.Reflection.Module.ResolveMethod(System.Int32,System.Type[],System.Type[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodBase System.Reflection.Module.ResolveMethod(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MethodBase System.Reflection.RuntimeModule.ResolveMethod(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MethodBase System.RuntimeType.GetMethodBase(System.Reflection.RuntimeModule,System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Reflection.MethodBase System.RuntimeType.GetMethodBase(System.RuntimeType,System.RuntimeMethodHandleInternal) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.MethodBase System.RuntimeType.GetMethodBase(System.RuntimeType,System.RuntimeMethodHandleInternal) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:UnrecognizedReflectionPattern | -| System.Reflection.MethodBase System.Type.DeclaringMethod | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.MethodBase System.Type.get_DeclaringMethod() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodBase.ArgumentData`1 | [InlineArrayAttribute(...)] | 0 | 4 | -| System.Reflection.MethodBase.StackAllocatedArguments | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Reflection.MethodBase.StackAllocatedArguments | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Reflection.MethodBase.StackAllocatedArguments | [ObsoleteAttribute(...)] | 1 | True | -| System.Reflection.MethodBase.StackAllocatedArgumentsWithCopyBack | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Reflection.MethodBase.StackAllocatedArgumentsWithCopyBack | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Reflection.MethodBase.StackAllocatedArgumentsWithCopyBack | [ObsoleteAttribute(...)] | 1 | True | -| System.Reflection.MethodBase.StackAllocatedByRefs | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Reflection.MethodBase.StackAllocatedByRefs | [InlineArrayAttribute(...)] | 0 | 4 | -| System.Reflection.MethodBase.StackAllocatedByRefs | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Reflection.MethodBase.StackAllocatedByRefs | [ObsoleteAttribute(...)] | 1 | True | -| System.Reflection.MethodBase[] | [NullableAttribute(...)] | 0 | 1 | -| System.Reflection.MethodBody | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.MethodBody | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.MethodBody System.Reflection.MethodBase.GetMethodBody() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming may change method bodies. For example it can change some instructions, remove branches or local variables. | -| System.Reflection.MethodBody System.Reflection.RuntimeConstructorInfo.GetMethodBody() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming may change method bodies. For example it can change some instructions, remove branches or local variables. | -| System.Reflection.MethodBody System.Reflection.RuntimeMethodInfo.GetMethodBody() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming may change method bodies. For example it can change some instructions, remove branches or local variables. | -| System.Reflection.MethodInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.MethodInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.MethodInfo System.Reflection.Assembly.EntryPoint | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Reflection.Assembly.get_EntryPoint() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Reflection.Emit.AssemblyBuilder.EntryPoint | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Reflection.Emit.AssemblyBuilder.get_EntryPoint() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Reflection.Emit.MethodBuilderInstantiation.MakeGenericMethod(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Reflection.MethodInfo System.Reflection.Emit.MethodOnTypeBuilderInstantiation.MakeGenericMethod(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Reflection.MethodInfo System.Reflection.Emit.RuntimeEnumBuilder.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.Emit.RuntimeMethodBuilder.MakeGenericMethod(System.Type[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for this instantiation might not be available at runtime. | -| System.Reflection.MethodInfo System.Reflection.Emit.RuntimeMethodBuilder.MakeGenericMethod(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Reflection.MethodInfo System.Reflection.Emit.RuntimeModuleBuilder.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo System.Reflection.Emit.RuntimeTypeBuilder.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.Emit.SymbolType.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.Emit.TypeBuilder.GetMethod(System.Type,System.Reflection.MethodInfo) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.MethodInfo System.Reflection.Emit.TypeBuilder.GetMethod(System.Type,System.Reflection.MethodInfo) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2055:UnrecognizedReflectionPattern | -| System.Reflection.MethodInfo System.Reflection.Emit.TypeBuilderInstantiation.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.IReflect.GetMethod(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.IReflect.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.IReflect.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Reflection.MethodInfo.MakeGenericMethod(System.Type[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for this instantiation might not be available at runtime. | -| System.Reflection.MethodInfo System.Reflection.MethodInfo.MakeGenericMethod(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Reflection.MethodInfo System.Reflection.ModifiedType.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.Module.GetMethod(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo System.Reflection.Module.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Reflection.Module.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo System.Reflection.Module.GetMethod(System.String,System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo System.Reflection.Module.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Reflection.Module.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo System.Reflection.RuntimeMethodInfo.MakeGenericMethod(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Reflection.MethodInfo System.Reflection.RuntimeModule.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed because Module methods can't currently be annotated for dynamic access. | -| System.Reflection.MethodInfo System.Reflection.RuntimeModule.GetMethodInternal(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed because Module methods can't currently be annotated for dynamic access. | -| System.Reflection.MethodInfo System.Reflection.SignatureType.GetMethodImpl(System.String,System.Int32,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.SignatureType.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.TypeDelegator.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Reflection.TypeDelegator.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Reflection.TypeInfo.GetDeclaredMethod(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.RuntimeType.GetMethodImpl(System.String,System.Int32,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.RuntimeType.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Int32,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Int32,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Int32,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Int32,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Int32,System.Type[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Int32,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Reflection.BindingFlags,System.Type[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Type[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | -| System.Reflection.MethodInfo System.Type.GetMethod(System.String,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | -| System.Reflection.MethodInfo System.Type.GetMethodImpl(System.String,System.Int32,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethodImpl(System.String,System.Int32,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo System.Type.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo System.Type.GetMethodImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInfo[] System.Diagnostics.StackTrace.<TryResolveStateMachineMethod>g__GetDeclaredMethods\|28_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.MethodInfo[] System.Diagnostics.StackTrace.<TryResolveStateMachineMethod>g__GetDeclaredMethods\|28_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:UnrecognizedReflectionPattern | -| System.Reflection.MethodInfo[] System.Reflection.Emit.RuntimeEnumBuilder.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.Emit.RuntimeModuleBuilder.GetMethods(System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo[] System.Reflection.Emit.RuntimeTypeBuilder.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.Emit.SymbolType.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.Emit.TypeBuilderInstantiation.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.EventInfo.GetOtherMethods() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.MethodInfo[] System.Reflection.EventInfo.GetOtherMethods(System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.MethodInfo[] System.Reflection.IReflect.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.ModifiedType.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.Module.GetMethods() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo[] System.Reflection.Module.GetMethods(System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo[] System.Reflection.PropertyInfo.GetAccessors() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.MethodInfo[] System.Reflection.PropertyInfo.GetAccessors(System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.MethodInfo[] System.Reflection.RuntimeModule.GetMethods(System.Reflection.BindingFlags) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Methods might be removed | -| System.Reflection.MethodInfo[] System.Reflection.SignatureType.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.TypeDelegator.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Reflection.TypeInfo.<GetDeclaredMethods>g__GetDeclaredOnlyMethods\|10_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.MethodInfo[] System.Reflection.TypeInfo.<GetDeclaredMethods>g__GetDeclaredOnlyMethods\|10_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:UnrecognizedReflectionPattern | -| System.Reflection.MethodInfo[] System.RuntimeType.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInfo[] System.Type.GetMethods() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | -| System.Reflection.MethodInfo[] System.Type.GetMethods(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Reflection.MethodInvoker | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.MethodInvoker | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.MethodInvoker System.Reflection.MethodInvoker.Create(System.Reflection.MethodBase) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Missing.Value | [NullableAttribute(...)] | 0 | 1 | -| System.Reflection.Module | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.Module | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.Module | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.Module System.Reflection.Assembly.LoadModule(System.String,System.Byte[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded module depends on might be removed | -| System.Reflection.Module System.Reflection.Assembly.LoadModule(System.String,System.Byte[],System.Byte[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded module depends on might be removed | -| System.Reflection.Module System.Reflection.ModuleResolveEventHandler.Invoke(System.Object,System.ResolveEventArgs) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.NullabilityInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.NullabilityInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.NullabilityInfo System.Reflection.NullabilityInfo.ElementType | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.NullabilityInfo System.Reflection.NullabilityInfo.get_ElementType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.NullabilityInfoContext | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.NullabilityInfoContext | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.ObfuscateAssemblyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Reflection.ObfuscationAttribute | [AttributeUsageAttribute(...)] | 0 | 8157 | -| System.Reflection.ObfuscationAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.ObfuscationAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.ParameterInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.ParameterInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.ParameterInfo.ClassImpl | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.ParameterInfo.DefaultValueImpl | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.ParameterInfo.NameImpl | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.ParameterInfo[] System.Reflection.MethodBase.GetParameters() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.ParameterInfo[] System.Reflection.PropertyInfo.GetIndexParameters() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.ParameterModifier | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Reflection.ParameterModifier[] | [NullableAttribute(...)] | 0 | 2 | -| System.Reflection.Pointer | [CLSCompliantAttribute(...)] | 0 | False | -| System.Reflection.ProcessorArchitecture System.Reflection.AssemblyName.ProcessorArchitecture | [ObsoleteAttribute(...)] | 0 | AssemblyName members HashAlgorithm, ProcessorArchitecture, and VersionCompatibility are obsolete and not supported. | -| System.Reflection.PropertyInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.PropertyInfo | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.PropertyInfo System.Attribute.GetParentDefinition(System.Reflection.PropertyInfo,System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.PropertyInfo System.Attribute.GetParentDefinition(System.Reflection.PropertyInfo,System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Reflection.PropertyInfo System.Reflection.Binder.SelectProperty(System.Reflection.BindingFlags,System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.PropertyInfo System.Reflection.Emit.RuntimeEnumBuilder.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.Emit.RuntimeTypeBuilder.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.Emit.SymbolType.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.Emit.TypeBuilderInstantiation.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.IReflect.GetProperty(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.IReflect.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.IReflect.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.PropertyInfo System.Reflection.ModifiedType.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.SignatureType.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.TypeDelegator.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Reflection.TypeDelegator.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.PropertyInfo System.Reflection.TypeInfo.GetDeclaredProperty(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.RuntimeType.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 512 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 512 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2085:UnrecognizedReflectionPattern | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type,System.Type[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 512 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 512 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.PropertyInfo System.Type.GetProperty(System.String,System.Type[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 512 | -| System.Reflection.PropertyInfo System.Type.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo System.Type.GetPropertyImpl(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.PropertyInfo[] | [NullableAttribute(...)] | 0 | 1 | -| System.Reflection.PropertyInfo[] System.Reflection.Emit.RuntimeEnumBuilder.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Reflection.Emit.RuntimeTypeBuilder.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Reflection.Emit.SymbolType.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Reflection.Emit.TypeBuilderInstantiation.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Reflection.IReflect.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Reflection.ModifiedType.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Reflection.SignatureType.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Reflection.TypeDelegator.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.RuntimeType.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.PropertyInfo[] System.Type.GetProperties() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 512 | -| System.Reflection.PropertyInfo[] System.Type.GetProperties(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Reflection.ReflectionContext | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.ReflectionContext | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.ReflectionTypeLoadException | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.ReflectionTypeLoadException | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.ReflectionTypeLoadException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Reflection.RuntimeAssembly System.Runtime.Loader.AssemblyLoadContext.InternalLoadFromPath(System.String,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Reflection.RuntimeAssembly System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | SingleFile | -| System.Reflection.RuntimeAssembly System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3000: Avoid accessing Assembly file path when publishing as a single file | -| System.Reflection.RuntimeFieldInfo[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateFields(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.RuntimeFieldInfo[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateFields(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Reflection.RuntimeMethodInfo System.Reflection.Associates.AssignAssociates(System.Int32,System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.RuntimeMethodInfo System.Reflection.Associates.AssignAssociates(System.Int32,System.RuntimeType,System.RuntimeType) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Reflection.RuntimeReflectionExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.RuntimeReflectionExtensions | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.StrongNameKeyPair | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.StrongNameKeyPair | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.StrongNameKeyPair | [ObsoleteAttribute(...)] | 0 | Strong name signing is not supported and throws PlatformNotSupportedException. | -| System.Reflection.StrongNameKeyPair System.Reflection.AssemblyName.KeyPair | [ObsoleteAttribute(...)] | 0 | Strong name signing is not supported and throws PlatformNotSupportedException. | -| System.Reflection.TargetException | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.TargetException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.TargetException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Reflection.TargetInvocationException | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.TargetInvocationException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.TargetInvocationException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Reflection.TargetParameterCountException | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.TargetParameterCountException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Reflection.TargetParameterCountException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Reflection.TypeAttributes.Serializable | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Reflection.TypeDelegator | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.TypeDelegator | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.TypeDelegator.typeImpl | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Reflection.TypeInfo | [NotNullWhenAttribute(...)] | 0 | True | -| System.Reflection.TypeInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Reflection.TypeInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.TypeInfo System.Reflection.Emit.RuntimeTypeBuilder.CreateTypeNoLock() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Reflection.TypeInfo System.Reflection.Emit.RuntimeTypeBuilder.CreateTypeNoLock() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2068:UnrecognizedReflectionPattern | -| System.Reflection.TypeInfo System.Reflection.Emit.RuntimeTypeBuilder.CreateTypeNoLock() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2069:UnrecognizedReflectionPattern | -| System.Reflection.TypeInfo System.Reflection.Emit.RuntimeTypeBuilder.CreateTypeNoLock() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2083:UnrecognizedReflectionPattern | -| System.Reflection.TypeInfo System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Reflection.TypeInfo System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Reflection.TypeInfo System.Reflection.TypeInfo.GetDeclaredNestedType(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Reflection.TypeNameParser | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Reflection.TypeNameParser | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Reflection.TypeNameParser | [ObsoleteAttribute(...)] | 1 | True | -| System.ResolveEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.ResolveEventArgs | [NullableAttribute(...)] | 0 | 1 | -| System.ResolveEventArgs | [NullableContextAttribute(...)] | 0 | 1 | -| System.Resources.MissingManifestResourceException | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Resources.MissingManifestResourceException | [NullableAttribute(...)] | 0 | 0 | -| System.Resources.MissingManifestResourceException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Resources.MissingManifestResourceException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Resources.MissingSatelliteAssemblyException | [NullableAttribute(...)] | 0 | 0 | -| System.Resources.MissingSatelliteAssemblyException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Resources.MissingSatelliteAssemblyException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Resources.NeutralResourcesLanguageAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Resources.NeutralResourcesLanguageAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Resources.NeutralResourcesLanguageAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Resources.NeutralResourcesLanguageAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Resources.ResourceManager | [NullableAttribute(...)] | 0 | 0 | -| System.Resources.ResourceManager | [NullableContextAttribute(...)] | 0 | 1 | -| System.Resources.ResourceManager.MainAssembly | [NullableAttribute(...)] | 0 | 2 | -| System.Resources.ResourceManager._userResourceSet | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Resources.ResourceReader.s_binaryFormatterType | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1 | -| System.Resources.ResourceSet | [NullableAttribute(...)] | 0 | 0 | -| System.Resources.ResourceSet | [NullableContextAttribute(...)] | 0 | 1 | -| System.Resources.ResourceSet System.Resources.ManifestBasedResourceGroveler.InternalGetResourceSetFromSerializedData(System.IO.Stream,System.String,System.String,System.Resources.ResourceManager.ResourceManagerMediator) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The CustomResourceTypesSupport feature switch has been enabled for this app which is being trimmed. Custom readers as well as custom objects on the resources file are not observable by the trimmer and so required assemblies, types and members may be removed. | -| System.Resources.ResourceSet.Reader | [NullableAttribute(...)] | 0 | 2 | -| System.Resources.SatelliteContractVersionAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Resources.SatelliteContractVersionAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Resources.SatelliteContractVersionAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Resources.SatelliteContractVersionAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.AmbiguousImplementationException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.AmbiguousImplementationException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.AmbiguousImplementationException | [TypeForwardedFromAttribute(...)] | 0 | System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| System.Runtime.AssemblyTargetedPatchBandAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.AssemblyTargetedPatchBandAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.AssemblyTargetedPatchBandAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.AccessedThroughPropertyAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Runtime.CompilerServices.AccessedThroughPropertyAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.AccessedThroughPropertyAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.AsyncIteratorMethodBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.AsyncIteratorMethodBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [AttributeUsageAttribute(...)] | 0 | 5212 | -| System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.AsyncMethodBuilderAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.AsyncStateMachineAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1 | [DebuggerDisplayAttribute(...)] | 0 | {DebuggerDisplay,nq} | -| System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.AsyncVoidMethodBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.AsyncVoidMethodBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.CallerArgumentExpressionAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.CompilerServices.CallerArgumentExpressionAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.CallerArgumentExpressionAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.CallerFilePathAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.CompilerServices.CallerLineNumberAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.CompilerServices.CallerMemberNameAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.CompilerServices.CollectionBuilderAttribute | [AttributeUsageAttribute(...)] | 0 | 1036 | -| System.Runtime.CompilerServices.CollectionBuilderAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.CollectionBuilderAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.CompExactlyDependsOnAttribute | [AttributeUsageAttribute(...)] | 0 | 96 | -| System.Runtime.CompilerServices.CompilationRelaxationsAttribute | [AttributeUsageAttribute(...)] | 0 | 71 | -| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.CompilerGeneratedAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Runtime.CompilerServices.CompilerGlobalScopeAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | -| System.Runtime.CompilerServices.ConditionalWeakTable<!0,!1>.CreateValueCallback | [NullableAttribute(...)] | 0 | [1,0,0] | -| System.Runtime.CompilerServices.ConditionalWeakTable`2 | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.ConditionalWeakTable`2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.ConditionalWeakTable`2.CreateValueCallback | [NullableContextAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.ContractHelper | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.ContractHelper | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.ContractHelper.InternalContractFailed | [NullableAttribute(...)] | 0 | [2,1] | -| System.Runtime.CompilerServices.CreateNewOnMetadataUpdateAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | -| System.Runtime.CompilerServices.CustomConstantAttribute | [AttributeUsageAttribute(...)] | 0 | 2304 | -| System.Runtime.CompilerServices.CustomConstantAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.CustomConstantAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.DateTimeConstantAttribute | [AttributeUsageAttribute(...)] | 0 | 2304 | -| System.Runtime.CompilerServices.DateTimeConstantAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.DateTimeConstantAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.DecimalConstantAttribute | [AttributeUsageAttribute(...)] | 0 | 2304 | -| System.Runtime.CompilerServices.DefaultDependencyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | [provider,initialBuffer] | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | provider | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.CompilerServices.DefaultInterpolatedStringHandler | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.CompilerServices.DependencyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.DependencyAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.DependencyAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.DisablePrivateReflectionAttribute | [ObsoleteAttribute(...)] | 0 | DisablePrivateReflectionAttribute has no effect in .NET 6.0+. | -| System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.DiscardableAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Runtime.CompilerServices.EnumeratorCancellationAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.CompilerServices.ExtensionAttribute | [AttributeUsageAttribute(...)] | 0 | 69 | -| System.Runtime.CompilerServices.FixedAddressValueTypeAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Runtime.CompilerServices.FixedBufferAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Runtime.CompilerServices.FixedBufferAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.FixedBufferAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.IAsyncStateMachine | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.ICastable | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.INotifyCompletion | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.IStrongBox | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.ITuple | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Runtime.CompilerServices.ITuple | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.IndexerNameAttribute | [AttributeUsageAttribute(...)] | 0 | 128 | -| System.Runtime.CompilerServices.InlineArrayAttribute | [AttributeUsageAttribute(...)] | 0 | 8 | -| System.Runtime.CompilerServices.InternalsVisibleToAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.InternalsVisibleToAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.InternalsVisibleToAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | -| System.Runtime.CompilerServices.IntrinsicAttribute | [AttributeUsageAttribute(...)] | 0 | 364 | -| System.Runtime.CompilerServices.IsByRefLikeAttribute | [AttributeUsageAttribute(...)] | 0 | 8 | -| System.Runtime.CompilerServices.IsByRefLikeAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.IsExternalInit | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.IsReadOnlyAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Runtime.CompilerServices.IsReadOnlyAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.IsUnmanagedAttribute | [AttributeUsageAttribute(...)] | 0 | 32767 | -| System.Runtime.CompilerServices.IsUnmanagedAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.IteratorStateMachineAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.CompilerServices.MetadataUpdateOriginalTypeAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | -| System.Runtime.CompilerServices.MetadataUpdateOriginalTypeAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.MetadataUpdateOriginalTypeAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.MethodImplAttribute | [AttributeUsageAttribute(...)] | 0 | 96 | -| System.Runtime.CompilerServices.ModuleInitializerAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.CompilerServices.NullableAttribute | [AttributeUsageAttribute(...)] | 0 | 27524 | -| System.Runtime.CompilerServices.NullableAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.NullableAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.NullableAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.NullableContextAttribute | [AttributeUsageAttribute(...)] | 0 | 5196 | -| System.Runtime.CompilerServices.NullableContextAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.NullablePublicOnlyAttribute | [AttributeUsageAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.NullablePublicOnlyAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.ObjectHandleOnStack | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.CompilerServices.ObjectHandleOnStack | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.CompilerServices.ObjectHandleOnStack | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.PreserveBaseOverridesAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.CompilerServices.QCallAssembly | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.CompilerServices.QCallAssembly | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.CompilerServices.QCallAssembly | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.CompilerServices.QCallModule | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.CompilerServices.QCallModule | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.CompilerServices.QCallModule | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.CompilerServices.QCallTypeHandle | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.CompilerServices.QCallTypeHandle | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.CompilerServices.QCallTypeHandle | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.CompilerServices.RefSafetyRulesAttribute | [AttributeUsageAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.RefSafetyRulesAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.ReferenceAssemblyAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.ReferenceAssemblyAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.ReferenceAssemblyAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.RequiredMemberAttribute | [AttributeUsageAttribute(...)] | 0 | 396 | -| System.Runtime.CompilerServices.RequiredMemberAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.RequiresLocationAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.CompilerServices.RequiresLocationAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.RuntimeCompatibilityAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.RuntimeFeature | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.RuntimeFeature | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.RuntimeHelpers | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.RuntimeHelpers | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.RuntimeHelpers.CleanupCode | [NullableContextAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.RuntimeHelpers.TryCode | [NullableContextAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.RuntimeWrappedException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.RuntimeWrappedException | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.RuntimeWrappedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.CompilerServices.ScopedRefAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.CompilerServices.ScopedRefAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.SkipLocalsInitAttribute | [AttributeUsageAttribute(...)] | 0 | 1774 | -| System.Runtime.CompilerServices.SpecialNameAttribute | [AttributeUsageAttribute(...)] | 0 | 972 | -| System.Runtime.CompilerServices.StackCrawlMarkHandle | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.CompilerServices.StackCrawlMarkHandle | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.CompilerServices.StackCrawlMarkHandle | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.CompilerServices.StateMachineAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.CompilerServices.StateMachineAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.StateMachineAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.StringFreezingAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.StringHandleOnStack | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.CompilerServices.StringHandleOnStack | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.CompilerServices.StringHandleOnStack | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.CompilerServices.StrongBox`1.Value | [NullableAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.SuppressIldasmAttribute | [AttributeUsageAttribute(...)] | 0 | 3 | -| System.Runtime.CompilerServices.SuppressIldasmAttribute | [ObsoleteAttribute(...)] | 0 | SuppressIldasmAttribute has no effect in .NET 6.0+. | -| System.Runtime.CompilerServices.SwitchExpressionException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.SwitchExpressionException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.SwitchExpressionException | [TypeForwardedFromAttribute(...)] | 0 | System.Runtime.Extensions, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| System.Runtime.CompilerServices.TupleElementNamesAttribute | [AttributeUsageAttribute(...)] | 0 | 11148 | -| System.Runtime.CompilerServices.TupleElementNamesAttribute | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.CompilerServices.TypeForwardedFromAttribute | [AttributeUsageAttribute(...)] | 0 | 5148 | -| System.Runtime.CompilerServices.TypeForwardedFromAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.TypeForwardedFromAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.TypeForwardedToAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.TypeForwardedToAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.TypeForwardedToAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.Unsafe | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.Unsafe | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.CompilerServices.UnsafeAccessorAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.CompilerServices.UnsafeAccessorAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.CompilerServices.UnsafeAccessorAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.CompilerServices.UnsafeValueTypeAttribute | [AttributeUsageAttribute(...)] | 0 | 8 | -| System.Runtime.ConstrainedExecution.Cer | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Runtime.ConstrainedExecution.Consistency | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute | [AttributeUsageAttribute(...)] | 0 | 96 | -| System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Runtime.ConstrainedExecution.ReliabilityContractAttribute | [AttributeUsageAttribute(...)] | 0 | 1133 | -| System.Runtime.ConstrainedExecution.ReliabilityContractAttribute | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Runtime.DependentHandle | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.DependentHandle | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.ExceptionServices.ExceptionDispatchInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.ExceptionServices.ExceptionDispatchInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute | [ObsoleteAttribute(...)] | 0 | Recovery from corrupted process state exceptions is not supported; HandleProcessCorruptedStateExceptionsAttribute is ignored. | -| System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Runtime.InteropServices.ArrayWithOffset | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ArrayWithOffset | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.BStrWrapper | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.BStrWrapper | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.BStrWrapper | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.BestFitMappingAttribute | [AttributeUsageAttribute(...)] | 0 | 1037 | -| System.Runtime.InteropServices.CLong | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.COMException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.COMException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.COMException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.InteropServices.CULong | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.ClassInterfaceAttribute | [AttributeUsageAttribute(...)] | 0 | 5 | -| System.Runtime.InteropServices.CoClassAttribute | [AttributeUsageAttribute(...)] | 0 | 1024 | -| System.Runtime.InteropServices.CoClassAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.CoClassAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.CollectionsMarshal | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.CollectionsMarshal | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComDefaultInterfaceAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | -| System.Runtime.InteropServices.ComDefaultInterfaceAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComDefaultInterfaceAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComEventInterfaceAttribute | [AttributeUsageAttribute(...)] | 0 | 1024 | -| System.Runtime.InteropServices.ComEventInterfaceAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComEventInterfaceAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComEventInterfaceAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComEventsHelper | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComEventsHelper | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComEventsHelper | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComEventsHelper | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Runtime.InteropServices.ComImportAttribute | [AttributeUsageAttribute(...)] | 0 | 1028 | -| System.Runtime.InteropServices.ComSourceInterfacesAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | -| System.Runtime.InteropServices.ComSourceInterfacesAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComSourceInterfacesAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComSourceInterfacesAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.BINDPTR | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.BIND_OPTS | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.CALLCONV | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.CONNECTDATA | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.CONNECTDATA.pUnk | [NullableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.DESCKIND | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.DISPPARAMS | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ELEMDESC | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.EXCEPINFO | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.EXCEPINFO | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComTypes.EXCEPINFO | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.FILETIME | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.FUNCDESC | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.FUNCFLAGS | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.FUNCKIND | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IBindCtx | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IBindCtx | [GuidAttribute(...)] | 0 | 0000000e-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.IBindCtx | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IBindCtx | [NullableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IBindCtx | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IConnectionPoint | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IConnectionPoint | [GuidAttribute(...)] | 0 | B196B286-BAB4-101A-B69C-00AA00341D07 | -| System.Runtime.InteropServices.ComTypes.IConnectionPoint | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IConnectionPoint | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IConnectionPointContainer | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IConnectionPointContainer | [GuidAttribute(...)] | 0 | B196B284-BAB4-101A-B69C-00AA00341D07 | -| System.Runtime.InteropServices.ComTypes.IConnectionPointContainer | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IConnectionPointContainer | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IDLDESC | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IDLFLAG | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints | [GuidAttribute(...)] | 0 | B196B285-BAB4-101A-B69C-00AA00341D07 | -| System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumConnections | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumConnections | [GuidAttribute(...)] | 0 | B196B287-BAB4-101A-B69C-00AA00341D07 | -| System.Runtime.InteropServices.ComTypes.IEnumConnections | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumConnections | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumMoniker | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumMoniker | [GuidAttribute(...)] | 0 | 00000102-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.IEnumMoniker | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumMoniker | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumString | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumString | [GuidAttribute(...)] | 0 | 00000101-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.IEnumString | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumString | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumVARIANT | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumVARIANT | [GuidAttribute(...)] | 0 | 00020404-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.IEnumVARIANT | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumVARIANT | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IEnumerable | [GuidAttribute(...)] | 0 | 496B0ABE-CDEE-11d3-88E8-00902754C43A | -| System.Runtime.InteropServices.ComTypes.IEnumerator | [GuidAttribute(...)] | 0 | 496B0ABF-CDEE-11d3-88E8-00902754C43A | -| System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IMoniker | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IMoniker | [GuidAttribute(...)] | 0 | 0000000f-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.IMoniker | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IMoniker | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.ComTypes.IMoniker | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.INVOKEKIND | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IPersistFile | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IPersistFile | [GuidAttribute(...)] | 0 | 0000010b-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.IPersistFile | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IPersistFile | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IRunningObjectTable | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IRunningObjectTable | [GuidAttribute(...)] | 0 | 00000010-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.IRunningObjectTable | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IRunningObjectTable | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IStream | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IStream | [GuidAttribute(...)] | 0 | 0000000c-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.IStream | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.IStream | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeComp | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeComp | [GuidAttribute(...)] | 0 | 00020403-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.ITypeComp | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeComp | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeInfo | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeInfo | [GuidAttribute(...)] | 0 | 00020401-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.ITypeInfo | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeInfo2 | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeInfo2 | [GuidAttribute(...)] | 0 | 00020412-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.ITypeInfo2 | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeInfo2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeLib | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeLib | [GuidAttribute(...)] | 0 | 00020402-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.ITypeLib | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeLib | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeLib2 | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeLib2 | [GuidAttribute(...)] | 0 | 00020411-0000-0000-C000-000000000046 | -| System.Runtime.InteropServices.ComTypes.ITypeLib2 | [InterfaceTypeAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.ITypeLib2 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.LIBFLAGS | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.PARAMDESC | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.PARAMFLAG | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.STATSTG | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.STATSTG.pwcsName | [NullableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.SYSKIND | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.TYPEATTR | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.TYPEDESC | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.TYPEFLAGS | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.TYPEKIND | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.TYPELIBATTR | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.VARDESC | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.VARDESC.lpstrSchema | [NullableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.VARFLAGS | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComTypes.VARKIND | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComVisibleAttribute | [AttributeUsageAttribute(...)] | 0 | 5597 | -| System.Runtime.InteropServices.ComWrappers | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.ComWrappers | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComWrappers | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ComWrappers | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Runtime.InteropServices.ComWrappers | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Runtime.InteropServices.ComWrappers | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Runtime.InteropServices.ComWrappers | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch | [NullableContextAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry | [NullableContextAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry* System.Runtime.InteropServices.ComWrappers.ComputeVtables(System.Object,System.Runtime.InteropServices.CreateComInterfaceFlags,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.CurrencyWrapper | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.CurrencyWrapper | [ObsoleteAttribute(...)] | 0 | CurrencyWrapper and support for marshalling to the VARIANT type may be unavailable in future releases. | -| System.Runtime.InteropServices.CustomQueryInterfaceMode | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.CustomQueryInterfaceResult | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.DefaultCharSetAttribute | [AttributeUsageAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute | [AttributeUsageAttribute(...)] | 0 | 65 | -| System.Runtime.InteropServices.DefaultParameterValueAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.InteropServices.DefaultParameterValueAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.DefaultParameterValueAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.DispIdAttribute | [AttributeUsageAttribute(...)] | 0 | 960 | -| System.Runtime.InteropServices.DispatchWrapper | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.DispatchWrapper | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.DispatchWrapper | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.DispatchWrapper | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Runtime.InteropServices.DllImportAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.InteropServices.DllImportAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.DllImportAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.DllImportAttribute.EntryPoint | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute | [AttributeUsageAttribute(...)] | 0 | 1024 | -| System.Runtime.InteropServices.ErrorWrapper | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ErrorWrapper | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ErrorWrapper | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ExternalException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ExternalException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.ExternalException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.InteropServices.FieldOffsetAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Runtime.InteropServices.GCHandle | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.GCHandle | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.GuidAttribute | [AttributeUsageAttribute(...)] | 0 | 5149 | -| System.Runtime.InteropServices.GuidAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.GuidAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.HandleRef | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.HandleRef | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.ICustomAdapter | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ICustomAdapter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ICustomFactory | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ICustomMarshaler | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ICustomQueryInterface | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.InAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.InteropServices.InterfaceTypeAttribute | [AttributeUsageAttribute(...)] | 0 | 1024 | -| System.Runtime.InteropServices.InvalidComObjectException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.InvalidComObjectException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.InvalidComObjectException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.InteropServices.InvalidOleVariantTypeException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.InvalidOleVariantTypeException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.InvalidOleVariantTypeException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.InteropServices.LCIDConversionAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.InteropServices.LibraryImportAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.InteropServices.LibraryImportAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.LibraryImportAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.Marshal | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.Marshal | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.MarshalAsAttribute | [AttributeUsageAttribute(...)] | 0 | 10496 | -| System.Runtime.InteropServices.MarshalAsAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.MarshalAsAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.MarshalDirectiveException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.MarshalDirectiveException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.MarshalDirectiveException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller | [CustomMarshallerAttribute(...)] | 0 | System.String | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller | [CustomMarshallerAttribute(...)] | 1 | 0 | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller | [CustomMarshallerAttribute(...)] | 1 | 1 | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller.ManagedToUnmanagedIn | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller.ManagedToUnmanagedIn | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.InteropServices.Marshalling.AnsiStringMarshaller.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 0 | System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.GenericPlaceholder | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 1 | 0 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 1 | 1 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2.ManagedToUnmanagedIn | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2.ManagedToUnmanagedIn | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller | [CustomMarshallerAttribute(...)] | 0 | System.String | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller | [CustomMarshallerAttribute(...)] | 1 | 0 | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller | [CustomMarshallerAttribute(...)] | 1 | 1 | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.BStrStringMarshaller | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.BStrStringMarshaller.ManagedToUnmanagedIn | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller.ManagedToUnmanagedIn | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.InteropServices.Marshalling.BStrStringMarshaller.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.InteropServices.Marshalling.ContiguousCollectionMarshallerAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | -| System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | -| System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.GenericPlaceholder | [NullableContextAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute | [AttributeUsageAttribute(...)] | 0 | 10240 | -| System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute | [AttributeUsageAttribute(...)] | 0 | 5148 | -| System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 0 | System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.GenericPlaceholder* | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 1 | 0 | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 1 | 1 | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2 | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2.ManagedToUnmanagedIn | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2.ManagedToUnmanagedIn | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller`2.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 0 | System.ReadOnlySpan`1 | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 1 | 1 | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 1 | 6 | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.ManagedToUnmanagedIn | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.UnmanagedToManagedOut | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.ManagedToUnmanagedIn | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1 | [CustomMarshallerAttribute(...)] | 0 | System.Runtime.InteropServices.Marshalling.CustomMarshallerAttribute.GenericPlaceholder | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1 | [CustomMarshallerAttribute(...)] | 1 | 1 | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1 | [CustomMarshallerAttribute(...)] | 1 | 2 | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1 | [CustomMarshallerAttribute(...)] | 1 | 3 | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1.ManagedToUnmanagedIn | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1.ManagedToUnmanagedOut | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1.ManagedToUnmanagedRef | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1.ManagedToUnmanagedRef | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1.ManagedToUnmanagedRef | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 0 | System.Span`1 | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 1 | 0 | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 1 | 1 | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.SpanMarshaller`2.ManagedToUnmanagedIn | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2.ManagedToUnmanagedIn | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller`2.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller | [CustomMarshallerAttribute(...)] | 0 | System.String | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller | [CustomMarshallerAttribute(...)] | 1 | 0 | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller | [CustomMarshallerAttribute(...)] | 1 | 1 | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller.ManagedToUnmanagedIn | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller.ManagedToUnmanagedIn | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller.ManagedToUnmanagedIn | [ObsoleteAttribute(...)] | 1 | True | -| System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller | [CustomMarshallerAttribute(...)] | 0 | System.String | -| System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller | [CustomMarshallerAttribute(...)] | 1 | 0 | -| System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller | [CustomMarshallerAttribute(...)] | 2 | System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Explicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.NFloat System.Runtime.InteropServices.NFloat.op_Implicit(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.InteropServices.NativeLibrary | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.NativeLibrary | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.OSPlatform | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.OSPlatform | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler | [NullableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | -| System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute | [SupportedOSPlatformAttribute(...)] | 0 | macos | -| System.Runtime.InteropServices.OptionalAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.InteropServices.OutAttribute | [AttributeUsageAttribute(...)] | 0 | 2048 | -| System.Runtime.InteropServices.PosixSignal.SIGCHLD | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Runtime.InteropServices.PosixSignal.SIGCONT | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Runtime.InteropServices.PosixSignal.SIGTSTP | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Runtime.InteropServices.PosixSignal.SIGTTIN | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Runtime.InteropServices.PosixSignal.SIGTTOU | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Runtime.InteropServices.PosixSignal.SIGWINCH | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Runtime.InteropServices.PosixSignalRegistration System.Runtime.InteropServices.PosixSignalRegistration.Create(System.Runtime.InteropServices.PosixSignal,System.Action<System.Runtime.InteropServices.PosixSignalContext>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.PosixSignalRegistration System.Runtime.InteropServices.PosixSignalRegistration.Create(System.Runtime.InteropServices.PosixSignal,System.Action<System.Runtime.InteropServices.PosixSignalContext>) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Runtime.InteropServices.PosixSignalRegistration System.Runtime.InteropServices.PosixSignalRegistration.Create(System.Runtime.InteropServices.PosixSignal,System.Action<System.Runtime.InteropServices.PosixSignalContext>) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Runtime.InteropServices.PosixSignalRegistration System.Runtime.InteropServices.PosixSignalRegistration.Create(System.Runtime.InteropServices.PosixSignal,System.Action<System.Runtime.InteropServices.PosixSignalContext>) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Runtime.InteropServices.PosixSignalRegistration System.Runtime.InteropServices.PosixSignalRegistration.Create(System.Runtime.InteropServices.PosixSignal,System.Action<System.Runtime.InteropServices.PosixSignalContext>) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Runtime.InteropServices.PreserveSigAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.InteropServices.ProgIdAttribute | [AttributeUsageAttribute(...)] | 0 | 4 | -| System.Runtime.InteropServices.ProgIdAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.ProgIdAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.RuntimeInformation | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.RuntimeInformation | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.SEHException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.SEHException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.SEHException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.InteropServices.SafeArrayRankMismatchException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.SafeArrayRankMismatchException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.SafeArrayRankMismatchException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.InteropServices.SafeArrayTypeMismatchException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.SafeArrayTypeMismatchException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.SafeArrayTypeMismatchException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.InteropServices.SafeHandle System.Threading.ThreadPoolBoundHandle.Handle | [NullableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.SafeHandle System.Threading.ThreadPoolBoundHandle.get_Handle() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.StructLayoutAttribute | [AttributeUsageAttribute(...)] | 0 | 12 | -| System.Runtime.InteropServices.StructLayoutAttribute System.Type.StructLayoutAttribute | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.StructLayoutAttribute System.Type.get_StructLayoutAttribute() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.SuppressGCTransitionAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.InteropServices.TypeIdentifierAttribute | [AttributeUsageAttribute(...)] | 0 | 5144 | -| System.Runtime.InteropServices.TypeIdentifierAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.TypeIdentifierAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.UnknownWrapper | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnknownWrapper | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.UnknownWrapper | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.UnmanagedCallConvAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.InteropServices.UnmanagedCallConvAttribute.CallConvs | [NullableAttribute(...)] | 0 | [2,1] | -| System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute.CallConvs | [NullableAttribute(...)] | 0 | [2,1] | -| System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute.EntryPoint | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute | [AttributeUsageAttribute(...)] | 0 | 4096 | -| System.Runtime.InteropServices.UnmanagedType.AnsiBStr | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnmanagedType.AnsiBStr | [ObsoleteAttribute(...)] | 0 | Marshalling as AnsiBStr may be unavailable in future releases. | -| System.Runtime.InteropServices.UnmanagedType.AsAny | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnmanagedType.AsAny | [ObsoleteAttribute(...)] | 0 | Marshalling arbitrary types may be unavailable in future releases. Specify the type you wish to marshal as. | -| System.Runtime.InteropServices.UnmanagedType.Currency | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnmanagedType.Currency | [ObsoleteAttribute(...)] | 0 | Marshalling as Currency may be unavailable in future releases. | -| System.Runtime.InteropServices.UnmanagedType.IDispatch | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnmanagedType.SafeArray | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnmanagedType.Struct | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnmanagedType.TBStr | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnmanagedType.TBStr | [ObsoleteAttribute(...)] | 0 | Marshalling as TBstr may be unavailable in future releases. | -| System.Runtime.InteropServices.UnmanagedType.VBByRefStr | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.UnmanagedType.VBByRefStr | [ObsoleteAttribute(...)] | 0 | Marshalling as VBByRefString may be unavailable in future releases. | -| System.Runtime.InteropServices.UnmanagedType.VariantBool | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.VarEnum | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.VariantWrapper | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.InteropServices.VariantWrapper | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.InteropServices.VariantWrapper | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Arm.AdvSimd | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Arm.Aes | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Arm.ArmBase | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Arm.Crc32 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Arm.Dp | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Arm.Rdm | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Arm.Sha1 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Arm.Sha256 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Abs`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Add`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.AndNot`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.BitwiseAnd`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.BitwiseOr`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.ConditionalSelect`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.CreateScalar`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Create`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Create`1(!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Create`1(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Create`1(System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Divide`1(System.Runtime.Intrinsics.Vector64<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Divide`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Equals`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.GreaterThanOrEqual`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.GreaterThan`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LessThanOrEqual`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LessThan`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadAlignedNonTemporal`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadAlignedNonTemporal`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadAligned`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadAligned`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadUnsafe`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.LoadUnsafe`1(!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Load`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Load`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Max`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Min`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Multiply`1(!0,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Multiply`1(System.Runtime.Intrinsics.Vector64<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Multiply`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Negate`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.OnesComplement`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Sqrt`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Subtract`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.WithElement`1(System.Runtime.Intrinsics.Vector64<!0>,System.Int32,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64.Xor`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.AllBitsSet | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.One | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector64`1.Zero | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector128.GetLower`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!0> System.Runtime.Intrinsics.Vector128.GetUpper`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<!1> System.Runtime.Intrinsics.Vector64.As`2(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector64<System.Byte> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Runtime.Intrinsics.Vector64<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.Double> System.Runtime.Intrinsics.Vector64.ConvertToDouble(System.Runtime.Intrinsics.Vector64<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.Int16> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.AsSByte`1(System.Runtime.Intrinsics.Vector64<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.Create(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.Create(System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.CreateScalar(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.Int16>,System.Runtime.Intrinsics.Vector64<System.Int16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.SByte> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Runtime.Intrinsics.Vector64<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.Single> System.Runtime.Intrinsics.Vector64.ConvertToSingle(System.Runtime.Intrinsics.Vector64<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.AsUInt16`1(System.Runtime.Intrinsics.Vector64<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.Create(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.Create(System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.CreateScalar(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Runtime.Intrinsics.Vector64<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Runtime.Intrinsics.Vector64<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt16> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.AsUInt32`1(System.Runtime.Intrinsics.Vector64<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.ConvertToUInt32(System.Runtime.Intrinsics.Vector64<System.Single>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.Create(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.Create(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.CreateScalar(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.Narrow(System.Runtime.Intrinsics.Vector64<System.UInt64>,System.Runtime.Intrinsics.Vector64<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.Shuffle(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Runtime.Intrinsics.Vector64<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt32> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.AsUInt64`1(System.Runtime.Intrinsics.Vector64<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.ConvertToUInt64(System.Runtime.Intrinsics.Vector64<System.Double>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.Create(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.CreateScalar(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.WidenLower(System.Runtime.Intrinsics.Vector64<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UInt64> System.Runtime.Intrinsics.Vector64.WidenUpper(System.Runtime.Intrinsics.Vector64<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.AsNUInt`1(System.Runtime.Intrinsics.Vector64<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.Create(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.CreateScalar(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.CreateScalarUnsafe(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.ShiftLeft(System.Runtime.Intrinsics.Vector64<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64<System.UIntPtr> System.Runtime.Intrinsics.Vector64.ShiftRightLogical(System.Runtime.Intrinsics.Vector64<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector64`1 | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | -| System.Runtime.Intrinsics.Vector64`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Runtime.Intrinsics.Vector64DebugView`1 | -| System.Runtime.Intrinsics.Vector64`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Runtime.Intrinsics.Vector64`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Intrinsics.Vector64`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector64.ToVector128Unsafe`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector64.ToVector128`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Abs`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Add`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.AndNot`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.AsVector128`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.BitwiseAnd`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.BitwiseOr`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.ConditionalSelect`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.CreateScalar`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Create`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Create`1(!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Create`1(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Create`1(System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Create`1(System.Runtime.Intrinsics.Vector64<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Divide`1(System.Runtime.Intrinsics.Vector128<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Divide`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Equals`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.GreaterThanOrEqual`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.GreaterThan`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LessThanOrEqual`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LessThan`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadAlignedNonTemporal`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadAlignedNonTemporal`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadAligned`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadAligned`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadUnsafe`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.LoadUnsafe`1(!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Load`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Load`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Max`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Min`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Multiply`1(!0,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Multiply`1(System.Runtime.Intrinsics.Vector128<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Multiply`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Negate`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.OnesComplement`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Sqrt`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Subtract`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithElement`1(System.Runtime.Intrinsics.Vector128<!0>,System.Int32,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithLower`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.WithUpper`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128.Xor`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.AllBitsSet | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.One | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector128`1.Zero | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector256.GetLower`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!0> System.Runtime.Intrinsics.Vector256.GetUpper`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<!1> System.Runtime.Intrinsics.Vector128.As`2(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.Default.PackSources(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.Default.PackSources(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.Default.PackSources(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookupCore(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookupCore(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookupCore(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookup`1(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookup`1(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookup`1(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookup`2(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookup`2(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookup`2(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.Ssse3AndWasmHandleZeroInNeedle.PackSources(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.Ssse3AndWasmHandleZeroInNeedle.PackSources(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.ProbabilisticMap.ContainsMask16Chars(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Char) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.ProbabilisticMap.ContainsMask16Chars(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Char) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.ProbabilisticMap.IsCharBitSet(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.ProbabilisticMap.IsCharBitSet(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.ProbabilisticMap.IsCharBitSet(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.ProbabilisticMap.IsCharBitSet(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.ProbabilisticMap.IsCharBitSet(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.Text.Base64.SimdShuffle(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Buffers.Text.Base64.SimdShuffle(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.PackedSpanHelpers.PackSources(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Int16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.AddSaturate(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.AddSaturate(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.ShuffleUnsafe(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.ShuffleUnsafe(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.ShuffleUnsafe(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Wasm.PackedSimd | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.ShuffleUnsafe(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.SubtractSaturate(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.SubtractSaturate(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.UnpackHigh(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.UnpackHigh(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.UnpackLow(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.Byte> System.Runtime.Intrinsics.Vector128.UnpackLow(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.Double> System.Runtime.Intrinsics.Vector128.ConvertToDouble(System.Runtime.Intrinsics.Vector128<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.Int16> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.AsSByte`1(System.Runtime.Intrinsics.Vector128<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Create(System.Runtime.Intrinsics.Vector64<System.SByte>,System.Runtime.Intrinsics.Vector64<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Create(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Create(System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.CreateScalar(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Int16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.SByte> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Runtime.Intrinsics.Vector128<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.Single> System.Runtime.Intrinsics.Vector128.ConvertToSingle(System.Runtime.Intrinsics.Vector128<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.AddSaturate(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.AddSaturate(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.AsUInt16`1(System.Runtime.Intrinsics.Vector128<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Create(System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Runtime.Intrinsics.Vector64<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Create(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Create(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.CreateScalar(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Runtime.Intrinsics.Vector128<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt16> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.AsUInt32`1(System.Runtime.Intrinsics.Vector128<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.ConvertToUInt32(System.Runtime.Intrinsics.Vector128<System.Single>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Create(System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Runtime.Intrinsics.Vector64<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Create(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Create(System.UInt32,System.UInt32,System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.CreateScalar(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Narrow(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Runtime.Intrinsics.Vector128<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Runtime.Intrinsics.Vector128<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt32> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.AsUInt64`1(System.Runtime.Intrinsics.Vector128<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.ConvertToUInt64(System.Runtime.Intrinsics.Vector128<System.Double>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.Create(System.Runtime.Intrinsics.Vector64<System.UInt64>,System.Runtime.Intrinsics.Vector64<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.Create(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.Create(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.CreateScalar(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.Shuffle(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Runtime.Intrinsics.Vector128<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.WidenLower(System.Runtime.Intrinsics.Vector128<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UInt64> System.Runtime.Intrinsics.Vector128.WidenUpper(System.Runtime.Intrinsics.Vector128<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.AsNUInt`1(System.Runtime.Intrinsics.Vector128<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.Create(System.Runtime.Intrinsics.Vector64<System.UIntPtr>,System.Runtime.Intrinsics.Vector64<System.UIntPtr>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.Create(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.CreateScalar(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.CreateScalarUnsafe(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.ShiftLeft(System.Runtime.Intrinsics.Vector128<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128<System.UIntPtr> System.Runtime.Intrinsics.Vector128.ShiftRightLogical(System.Runtime.Intrinsics.Vector128<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector128`1 | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | -| System.Runtime.Intrinsics.Vector128`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Runtime.Intrinsics.Vector128DebugView`1 | -| System.Runtime.Intrinsics.Vector128`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Runtime.Intrinsics.Vector128`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Intrinsics.Vector128`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector128.ToVector256Unsafe`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector128.ToVector256`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Abs`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Add`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.AndNot`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.AsVector256`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.BitwiseAnd`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.BitwiseOr`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.ConditionalSelect`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.CreateScalar`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Create`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Create`1(!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Create`1(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Create`1(System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Create`1(System.Runtime.Intrinsics.Vector128<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Divide`1(System.Runtime.Intrinsics.Vector256<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Divide`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Equals`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.GreaterThanOrEqual`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.GreaterThan`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LessThanOrEqual`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LessThan`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadAlignedNonTemporal`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadAlignedNonTemporal`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadAligned`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadAligned`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadUnsafe`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.LoadUnsafe`1(!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Load`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Load`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Max`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Min`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Multiply`1(!0,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Multiply`1(System.Runtime.Intrinsics.Vector256<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Multiply`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Negate`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.OnesComplement`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Sqrt`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Subtract`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithElement`1(System.Runtime.Intrinsics.Vector256<!0>,System.Int32,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithLower`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.WithUpper`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256.Xor`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.AllBitsSet | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.One | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector256`1.Zero | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector512.GetLower`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!0> System.Runtime.Intrinsics.Vector512.GetUpper`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<!1> System.Runtime.Intrinsics.Vector256.As`2(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.Default.PackSources(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Runtime.Intrinsics.Vector256<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.FixUpPackedVector256Result(System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookupCore(System.Runtime.Intrinsics.Vector256<System.Byte>,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookup`1(System.Runtime.Intrinsics.Vector256<System.Byte>,System.Runtime.Intrinsics.Vector256<System.Byte>,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookup`2(System.Runtime.Intrinsics.Vector256<System.Int16>,System.Runtime.Intrinsics.Vector256<System.Int16>,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Buffers.IndexOfAnyAsciiSearcher.Ssse3AndWasmHandleZeroInNeedle.PackSources(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Runtime.Intrinsics.Vector256<System.UInt16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Buffers.ProbabilisticMap.ContainsMask32CharsAvx2(System.Runtime.Intrinsics.Vector256<System.Byte>,System.Runtime.Intrinsics.Vector256<System.Byte>,System.Char) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Buffers.ProbabilisticMap.IsCharBitSetAvx2(System.Runtime.Intrinsics.Vector256<System.Byte>,System.Runtime.Intrinsics.Vector256<System.Byte>,System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.PackedSpanHelpers.FixUpPackedVector256Result(System.Runtime.Intrinsics.Vector256<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.PackedSpanHelpers.PackSources(System.Runtime.Intrinsics.Vector256<System.Int16>,System.Runtime.Intrinsics.Vector256<System.Int16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Runtime.Intrinsics.Vector256<System.Byte> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Runtime.Intrinsics.Vector256<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.Double> System.Runtime.Intrinsics.Vector256.ConvertToDouble(System.Runtime.Intrinsics.Vector256<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.Int16> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.AsSByte`1(System.Runtime.Intrinsics.Vector256<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Create(System.Runtime.Intrinsics.Vector128<System.SByte>,System.Runtime.Intrinsics.Vector128<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Create(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Create(System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.CreateScalar(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.Int16>,System.Runtime.Intrinsics.Vector256<System.Int16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.SByte> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Runtime.Intrinsics.Vector256<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.Single> System.Runtime.Intrinsics.Vector256.ConvertToSingle(System.Runtime.Intrinsics.Vector256<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.AsUInt16`1(System.Runtime.Intrinsics.Vector256<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Create(System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Create(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Create(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.CreateScalar(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Runtime.Intrinsics.Vector256<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Runtime.Intrinsics.Vector256<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt16> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.AsUInt32`1(System.Runtime.Intrinsics.Vector256<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.ConvertToUInt32(System.Runtime.Intrinsics.Vector256<System.Single>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Create(System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Runtime.Intrinsics.Vector128<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Create(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Create(System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.CreateScalar(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Narrow(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Runtime.Intrinsics.Vector256<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Runtime.Intrinsics.Vector256<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt32> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.AsUInt64`1(System.Runtime.Intrinsics.Vector256<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.ConvertToUInt64(System.Runtime.Intrinsics.Vector256<System.Double>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.Create(System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Runtime.Intrinsics.Vector128<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.Create(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.Create(System.UInt64,System.UInt64,System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.CreateScalar(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.Shuffle(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Runtime.Intrinsics.Vector256<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.WidenLower(System.Runtime.Intrinsics.Vector256<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UInt64> System.Runtime.Intrinsics.Vector256.WidenUpper(System.Runtime.Intrinsics.Vector256<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.AsNUInt`1(System.Runtime.Intrinsics.Vector256<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.Create(System.Runtime.Intrinsics.Vector128<System.UIntPtr>,System.Runtime.Intrinsics.Vector128<System.UIntPtr>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.Create(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.CreateScalar(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.CreateScalarUnsafe(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.ShiftLeft(System.Runtime.Intrinsics.Vector256<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256<System.UIntPtr> System.Runtime.Intrinsics.Vector256.ShiftRightLogical(System.Runtime.Intrinsics.Vector256<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector256`1 | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | -| System.Runtime.Intrinsics.Vector256`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Runtime.Intrinsics.Vector256DebugView`1 | -| System.Runtime.Intrinsics.Vector256`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Runtime.Intrinsics.Vector256`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Intrinsics.Vector256`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector256.ToVector512Unsafe`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector256.ToVector512`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Abs`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Add`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.AndNot`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.AsVector512`1(System.Numerics.Vector<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.BitwiseAnd`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.BitwiseOr`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.ConditionalSelect`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.CreateScalar`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Create`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Create`1(!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Create`1(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Create`1(System.ReadOnlySpan<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Create`1(System.Runtime.Intrinsics.Vector256<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Divide`1(System.Runtime.Intrinsics.Vector512<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Divide`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Equals`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.GreaterThanOrEqual`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.GreaterThan`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LessThanOrEqual`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LessThan`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadAlignedNonTemporal`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadAlignedNonTemporal`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadAligned`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadAligned`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadUnsafe`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadUnsafe`1(!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.LoadUnsafe`1(!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Load`1(!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Load`1(!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Max`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Min`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Multiply`1(!0,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Multiply`1(System.Runtime.Intrinsics.Vector512<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Multiply`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Negate`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.OnesComplement`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Sqrt`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Subtract`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithElement`1(System.Runtime.Intrinsics.Vector512<!0>,System.Int32,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithLower`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.WithUpper`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512.Xor`1(System.Runtime.Intrinsics.Vector512<!0>,System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.AllBitsSet | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.One | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector512<!0> System.Runtime.Intrinsics.Vector512`1.Zero | [NullableAttribute(...)] | 0 | [0,1] | -| System.Runtime.Intrinsics.Vector512<!1> System.Runtime.Intrinsics.Vector512.As`2(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.PackedSpanHelpers.FixUpPackedVector512Result(System.Runtime.Intrinsics.Vector512<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx512F | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.PackedSpanHelpers.PackSources(System.Runtime.Intrinsics.Vector512<System.Int16>,System.Runtime.Intrinsics.Vector512<System.Int16>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx512BW | -| System.Runtime.Intrinsics.Vector512<System.Byte> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Runtime.Intrinsics.Vector512<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.Double> System.Runtime.Intrinsics.Vector512.ConvertToDouble(System.Runtime.Intrinsics.Vector512<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.Int16> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.AsSByte`1(System.Runtime.Intrinsics.Vector512<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Create(System.Runtime.Intrinsics.Vector256<System.SByte>,System.Runtime.Intrinsics.Vector256<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Create(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Create(System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.CreateScalar(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.Int16>,System.Runtime.Intrinsics.Vector512<System.Int16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.ShiftRightArithmetic(System.Runtime.Intrinsics.Vector512<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.SByte>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.SByte> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.SByte>,System.Runtime.Intrinsics.Vector512<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.Single> System.Runtime.Intrinsics.Vector512.ConvertToSingle(System.Runtime.Intrinsics.Vector512<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.AsUInt16`1(System.Runtime.Intrinsics.Vector512<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Create(System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Runtime.Intrinsics.Vector256<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Create(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Create(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.CreateScalar(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Runtime.Intrinsics.Vector512<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Runtime.Intrinsics.Vector512<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt16> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.AsUInt32`1(System.Runtime.Intrinsics.Vector512<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.ConvertToUInt32(System.Runtime.Intrinsics.Vector512<System.Single>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Create(System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Runtime.Intrinsics.Vector256<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Create(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Create(System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.CreateScalar(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Narrow(System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Runtime.Intrinsics.Vector512<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Runtime.Intrinsics.Vector512<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt32> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.AsUInt64`1(System.Runtime.Intrinsics.Vector512<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.ConvertToUInt64(System.Runtime.Intrinsics.Vector512<System.Double>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.Create(System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Runtime.Intrinsics.Vector256<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.Create(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.Create(System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.CreateScalar(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.Shuffle(System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Runtime.Intrinsics.Vector512<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.WidenLower(System.Runtime.Intrinsics.Vector512<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UInt64> System.Runtime.Intrinsics.Vector512.WidenUpper(System.Runtime.Intrinsics.Vector512<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.AsNUInt`1(System.Runtime.Intrinsics.Vector512<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.Create(System.Runtime.Intrinsics.Vector256<System.UIntPtr>,System.Runtime.Intrinsics.Vector256<System.UIntPtr>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.Create(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.CreateScalar(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.CreateScalarUnsafe(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.ShiftLeft(System.Runtime.Intrinsics.Vector512<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512<System.UIntPtr> System.Runtime.Intrinsics.Vector512.ShiftRightLogical(System.Runtime.Intrinsics.Vector512<System.UIntPtr>,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.Vector512`1 | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | -| System.Runtime.Intrinsics.Vector512`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Runtime.Intrinsics.Vector512DebugView`1 | -| System.Runtime.Intrinsics.Vector512`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Runtime.Intrinsics.Vector512`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Intrinsics.Vector512`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Intrinsics.Wasm.PackedSimd | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Aes | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Avx | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Avx2 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Avx512BW | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Avx512CD | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Avx512DQ | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Avx512F | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Avx512Vbmi | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.AvxVnni | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.AvxVnni | [RequiresPreviewFeaturesAttribute(...)] | 0 | AvxVnni is in preview. | -| System.Runtime.Intrinsics.X86.Bmi1 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Bmi2 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Fma | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Lzcnt | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Pclmulqdq | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Popcnt | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Sse | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Sse2 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Sse3 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Sse41 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Sse42 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.Ssse3 | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.X86Base | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Intrinsics.X86.X86Serialize | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Loader.AssemblyDependencyResolver | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Loader.AssemblyDependencyResolver | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Loader.AssemblyDependencyResolver | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Runtime.Loader.AssemblyDependencyResolver | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Runtime.Loader.AssemblyDependencyResolver | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Runtime.Loader.AssemblyDependencyResolver | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Runtime.Loader.AssemblyLoadContext | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Loader.AssemblyLoadContext | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Loader.AssemblyLoadContext System.Runtime.Loader.AssemblyLoadContext.CurrentContextualReflectionContext | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.Loader.AssemblyLoadContext System.Runtime.Loader.AssemblyLoadContext.get_CurrentContextualReflectionContext() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Loader.AssemblyLoadContext.AssemblyLoad | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.Loader.AssemblyLoadContext.AssemblyResolve | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.Loader.AssemblyLoadContext.ContextualReflectionScope | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Runtime.Loader.AssemblyLoadContext.ContextualReflectionScope | [NullableContextAttribute(...)] | 0 | 0 | -| System.Runtime.Loader.AssemblyLoadContext.ContextualReflectionScope System.Runtime.Loader.AssemblyLoadContext.EnterContextualReflection(System.Reflection.Assembly) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Loader.AssemblyLoadContext.Resolving | [NullableAttribute(...)] | 0 | [2,1,1,2] | -| System.Runtime.Loader.AssemblyLoadContext.ResolvingUnmanagedDll | [NullableAttribute(...)] | 0 | [2,1,1] | -| System.Runtime.Loader.AssemblyLoadContext.ResourceResolve | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.Loader.AssemblyLoadContext.TypeResolve | [NullableAttribute(...)] | 0 | 2 | -| System.Runtime.Loader.AssemblyLoadContext.Unloading | [NullableAttribute(...)] | 0 | [2,1] | -| System.Runtime.Loader.AssemblyLoadContext._resolving | [NullableAttribute(...)] | 0 | [2,1,1,1] | -| System.Runtime.Loader.AssemblyLoadContext._resolvingUnmanagedDll | [NullableAttribute(...)] | 0 | [2,1,1] | -| System.Runtime.Loader.AssemblyLoadContext._unloading | [NullableAttribute(...)] | 0 | [2,1] | -| System.Runtime.Remoting.ObjectHandle | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Remoting.ObjectHandle | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstance(System.String,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstance(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstance(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstance(System.String,System.String,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstanceFrom(System.String,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstanceFrom(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstanceFrom(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstanceFrom(System.String,System.String,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstanceInternal(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[],System.Threading.StackCrawlMark) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstanceInternal(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[],System.Threading.StackCrawlMark) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstanceInternal(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[],System.Threading.StackCrawlMark) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2072:UnrecognizedReflectionPattern | -| System.Runtime.Remoting.ObjectHandle System.AppDomain.CreateInstance(System.String,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.AppDomain.CreateInstance(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Remoting.ObjectHandle System.AppDomain.CreateInstance(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.AppDomain.CreateInstance(System.String,System.String,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.AppDomain.CreateInstanceFrom(System.String,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.AppDomain.CreateInstanceFrom(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Remoting.ObjectHandle System.AppDomain.CreateInstanceFrom(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Remoting.ObjectHandle System.AppDomain.CreateInstanceFrom(System.String,System.String,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Type and its constructor could be removed | -| System.Runtime.Serialization.IDeserializationCallback | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Serialization.IFormatterConverter | [CLSCompliantAttribute(...)] | 0 | False | -| System.Runtime.Serialization.IFormatterConverter | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Serialization.IFormatterConverter | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Runtime.Serialization.IObjectReference | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Serialization.IObjectReference | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Runtime.Serialization.ISafeSerializationData | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Serialization.ISafeSerializationData | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Runtime.Serialization.ISerializable | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Serialization.OnDeserializedAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.Serialization.OnDeserializingAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.Serialization.OnSerializedAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.Serialization.OnSerializingAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Runtime.Serialization.OptionalFieldAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Runtime.Serialization.SafeSerializationEventArgs | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Runtime.Serialization.SerializationEntry | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Serialization.SerializationEntry | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Serialization.SerializationException | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Serialization.SerializationException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Serialization.SerializationException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Runtime.Serialization.SerializationInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Serialization.SerializationInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Serialization.SerializationInfoEnumerator | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Serialization.SerializationInfoEnumerator | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Serialization.StreamingContext | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Serialization.StreamingContext | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Serialization.StreamingContext._state | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Runtime.Serialization.StreamingContextStates | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Runtime.Serialization.StreamingContextStates System.Runtime.Serialization.StreamingContext.State | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Runtime.TargetedPatchingOptOutAttribute | [AttributeUsageAttribute(...)] | 0 | 96 | -| System.Runtime.TargetedPatchingOptOutAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.TargetedPatchingOptOutAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Versioning.ComponentGuaranteesAttribute | [AttributeUsageAttribute(...)] | 0 | 5887 | -| System.Runtime.Versioning.FrameworkName | [NotNullWhenAttribute(...)] | 0 | True | -| System.Runtime.Versioning.FrameworkName | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Versioning.FrameworkName | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Versioning.NonVersionableAttribute | [AttributeUsageAttribute(...)] | 0 | 108 | -| System.Runtime.Versioning.OSPlatformAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Versioning.OSPlatformAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Versioning.ObsoletedOSPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 2047 | -| System.Runtime.Versioning.ObsoletedOSPlatformAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Versioning.ObsoletedOSPlatformAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute | [AttributeUsageAttribute(...)] | 0 | 6143 | -| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Versioning.RequiresPreviewFeaturesAttribute | [NullableContextAttribute(...)] | 0 | 2 | -| System.Runtime.Versioning.ResourceConsumptionAttribute | [AttributeUsageAttribute(...)] | 0 | 224 | -| System.Runtime.Versioning.ResourceConsumptionAttribute | [ConditionalAttribute(...)] | 0 | RESOURCE_ANNOTATION_WORK | -| System.Runtime.Versioning.ResourceExposureAttribute | [AttributeUsageAttribute(...)] | 0 | 480 | -| System.Runtime.Versioning.ResourceExposureAttribute | [ConditionalAttribute(...)] | 0 | RESOURCE_ANNOTATION_WORK | -| System.Runtime.Versioning.SupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 2047 | -| System.Runtime.Versioning.SupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | 0 | 448 | -| System.Runtime.Versioning.TargetFrameworkAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.Versioning.TargetFrameworkAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Versioning.TargetFrameworkAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Versioning.TargetPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [AttributeUsageAttribute(...)] | 0 | 2047 | -| System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [NullableAttribute(...)] | 0 | 0 | -| System.Runtime.Versioning.UnsupportedOSPlatformAttribute | [NullableContextAttribute(...)] | 0 | 1 | -| System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute | [AttributeUsageAttribute(...)] | 0 | 448 | -| System.RuntimeFieldHandle System.ModuleHandle.GetRuntimeFieldHandleFromMetadataToken(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeFieldHandle System.ModuleHandle.ResolveFieldHandle(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeFieldHandle System.ModuleHandle.ResolveFieldHandle(System.Int32,System.RuntimeTypeHandle[],System.RuntimeTypeHandle[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeMethodHandle System.ModuleHandle.GetRuntimeMethodHandleFromMetadataToken(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeMethodHandle System.ModuleHandle.ResolveMethodHandle(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeMethodHandle System.ModuleHandle.ResolveMethodHandle(System.Int32,System.RuntimeTypeHandle[],System.RuntimeTypeHandle[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeMethodHandleInternal System.Diagnostics.StackFrame.GetMethodDescFromNativeIP(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.RuntimeMethodHandleInternal System.ModuleHandle.ResolveMethod(System.Runtime.CompilerServices.QCallModule,System.Int32,System.IntPtr*,System.Int32,System.IntPtr*,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.RuntimeMethodHandleInternal System.RuntimeTypeHandle.GetInterfaceMethodImplementation(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.QCallTypeHandle,System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.RuntimeType | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1 | -| System.RuntimeType | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.RuntimeType | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.RuntimeType.ListBuilder`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.RuntimeTypeHandle | [NullableAttribute(...)] | 0 | 0 | -| System.RuntimeTypeHandle | [NullableContextAttribute(...)] | 0 | 2 | -| System.RuntimeTypeHandle System.ModuleHandle.GetRuntimeTypeHandleFromMetadataToken(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeTypeHandle System.ModuleHandle.ResolveTypeHandle(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeTypeHandle System.ModuleHandle.ResolveTypeHandle(System.Int32,System.RuntimeTypeHandle[],System.RuntimeTypeHandle[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.RuntimeType[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateInterfaces(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.RuntimeType[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateInterfaces(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2065:UnrecognizedReflectionPattern | -| System.RuntimeType[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateNestedClasses(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.RuntimeType[] System.RuntimeType.RuntimeTypeCache.MemberInfoCache`1.PopulateNestedClasses(System.RuntimeType.RuntimeTypeCache.Filter) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.SByte System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Byte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Char) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.DateTime) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Double) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Int16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Object,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.Single) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.String,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SByte System.Convert.ToSByte(System.String,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Convert.ToSByte(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Decimal.ToSByte(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Decimal.op_Explicit(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Half.op_CheckedExplicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Half.op_Explicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.IO.BinaryReader.ReadSByte() | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.IO.UnmanagedMemoryAccessor.ReadSByte(System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Int128.op_CheckedExplicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Int128.op_Explicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Math.Abs(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Math.Clamp(System.SByte,System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Math.Max(System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Math.Min(System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Runtime.Serialization.SerializationInfo.GetSByte(System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.SByte.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SByte System.SByte.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SByte System.SByte.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SByte System.SByte.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SByte System.SByte.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SByte System.SByte.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SByte System.SByte.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SByte System.Threading.Thread.VolatileRead(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.Threading.Volatile.Read(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.UInt128.op_CheckedExplicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.SByte System.UInt128.op_Explicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.STAThreadAttribute | [AttributeUsageAttribute(...)] | 0 | 64 | -| System.Security.AllowPartiallyTrustedCallersAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Security.Cryptography.CryptographicException | [NullableAttribute(...)] | 0 | 0 | -| System.Security.Cryptography.CryptographicException | [NullableContextAttribute(...)] | 0 | 1 | -| System.Security.Cryptography.CryptographicException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Security.IPermission | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.IPermission | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.IPermission System.Security.IPermission.Copy() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Security.IPermission System.Security.Permissions.SecurityAttribute.CreatePermission() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.IPermission System.Security.Permissions.SecurityPermissionAttribute.CreatePermission() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.ISecurityEncodable | [NullableContextAttribute(...)] | 0 | 1 | -| System.Security.IStackWalk | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.PermissionSet | [NullableAttribute(...)] | 0 | 0 | -| System.Security.PermissionSet | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.PermissionSet | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.PermissionSet System.AppDomain.PermissionSet | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.PermissionSet System.Security.PermissionSet.Copy() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Security.Permissions.CodeAccessSecurityAttribute | [AttributeUsageAttribute(...)] | 0 | 109 | -| System.Security.Permissions.CodeAccessSecurityAttribute | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.Permissions.PermissionState | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.Permissions.SecurityAction | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.Permissions.SecurityAttribute | [AttributeUsageAttribute(...)] | 0 | 109 | -| System.Security.Permissions.SecurityAttribute | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.Permissions.SecurityPermissionAttribute | [AttributeUsageAttribute(...)] | 0 | 109 | -| System.Security.Permissions.SecurityPermissionAttribute | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.Permissions.SecurityPermissionFlag | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Security.Principal.IIdentity | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.Principal.IPrincipal | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.Principal.IPrincipal System.Threading.Thread.CurrentPrincipal | [NullableAttribute(...)] | 0 | 2 | -| System.Security.Principal.IPrincipal System.Threading.Thread.get_CurrentPrincipal() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.SecureString System.Security.SecureString.Copy() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Security.SecurityCriticalAttribute | [AttributeUsageAttribute(...)] | 0 | 5501 | -| System.Security.SecurityCriticalScope | [ObsoleteAttribute(...)] | 0 | SecurityCriticalScope is only used for .NET 2.0 transparency compatibility. | -| System.Security.SecurityCriticalScope System.Security.SecurityCriticalAttribute.Scope | [ObsoleteAttribute(...)] | 0 | SecurityCriticalScope is only used for .NET 2.0 transparency compatibility. | -| System.Security.SecurityElement | [NotNullWhenAttribute(...)] | 0 | True | -| System.Security.SecurityElement | [NullableAttribute(...)] | 0 | 0 | -| System.Security.SecurityElement | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.SecurityElement System.Security.ISecurityEncodable.ToXml() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.SecurityElement System.Security.SecurityElement.Copy() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Security.SecurityElement System.Security.SecurityElement.FromString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Security.SecurityElement System.Security.SecurityElement.SearchForChildByTag(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Security.SecurityException | [NullableAttribute(...)] | 0 | 0 | -| System.Security.SecurityException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.SecurityException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Security.SecurityRulesAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Security.SecuritySafeCriticalAttribute | [AttributeUsageAttribute(...)] | 0 | 5500 | -| System.Security.SecurityTransparentAttribute | [AttributeUsageAttribute(...)] | 0 | 1 | -| System.Security.SecurityTreatAsSafeAttribute | [AttributeUsageAttribute(...)] | 0 | 5501 | -| System.Security.SecurityTreatAsSafeAttribute | [ObsoleteAttribute(...)] | 0 | SecurityTreatAsSafe is only used for .NET 2.0 transparency compatibility. Use the SecuritySafeCriticalAttribute instead. | -| System.Security.SuppressUnmanagedCodeSecurityAttribute | [AttributeUsageAttribute(...)] | 0 | 5188 | -| System.Security.UnverifiableCodeAttribute | [AttributeUsageAttribute(...)] | 0 | 2 | -| System.Security.VerificationException | [NullableAttribute(...)] | 0 | 0 | -| System.Security.VerificationException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Security.VerificationException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.SerializableAttribute | [AttributeUsageAttribute(...)] | 0 | 4124 | -| System.SerializableAttribute | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Single System.BitConverter.ToSingle(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Single System.BitConverter.UInt32BitsToSingle(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Single System.Convert.ToSingle(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Single System.Convert.ToSingle(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Single System.Convert.ToSingle(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Single System.Convert.ToSingle(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Single System.Single.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Single System.Single.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Single System.Single.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Single System.Single.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Single System.Single.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Single System.Single.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Single System.Single.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Span<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[],System.Index) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(!0[],System.Range) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>,System.Index) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.MemoryExtensions.AsSpan`1(System.ArraySegment<!0>,System.Range) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.Memory`1.Span | [NullableAttribute(...)] | 0 | [0,1] | -| System.Span<!0> System.Runtime.InteropServices.CollectionsMarshal.AsSpan`1(System.Collections.Generic.List<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Span<!0> System.Runtime.InteropServices.MemoryMarshal.CreateSpan`1(!0,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Span<!0> System.Span`1.Empty | [NullableAttribute(...)] | 0 | [0,1] | -| System.Span<!0>.Enumerator System.Span`1.GetEnumerator() | [NullableContextAttribute(...)] | 0 | 0 | -| System.Span<!1> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Span<System.Char> | [NullableAttribute(...)] | 0 | 0 | -| System.Span<System.Char> System.Text.StringBuilder.RemainingCurrentChunk | [NullableAttribute(...)] | 0 | 0 | -| System.Span<System.Object> | [NullableAttribute(...)] | 0 | [0,2] | -| System.Span`1 | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Span`1 | [DebuggerDisplayAttribute(...)] | 0 | {ToString(),raw} | -| System.Span`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.SpanDebugView`1 | -| System.Span`1 | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Span`1 | [NativeMarshallingAttribute(...)] | 0 | System.Runtime.InteropServices.Marshalling.SpanMarshaller`2 | -| System.Span`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Span`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Span`1 | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Span`1 | [ObsoleteAttribute(...)] | 1 | True | -| System.Span`1.Enumerator | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Span`1.Enumerator | [NullableAttribute(...)] | 0 | 0 | -| System.Span`1.Enumerator | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Span`1.Enumerator | [ObsoleteAttribute(...)] | 1 | True | -| System.StackOverflowException | [NullableAttribute(...)] | 0 | 0 | -| System.StackOverflowException | [NullableContextAttribute(...)] | 0 | 2 | -| System.StackOverflowException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.String System.AppContext.GetBaseDirectoryCore() | [UnconditionalSuppressMessageAttribute(...)] | 0 | SingleFile | -| System.String System.AppContext.GetBaseDirectoryCore() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3000: Avoid accessing Assembly file path when publishing as a single file | -| System.String System.AppContext.get_TargetFrameworkName() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.AppDomain.get_DynamicDirectory() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.AppDomain.get_RelativeSearchPath() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.ApplicationId.get_Culture() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.ApplicationId.get_ProcessorArchitecture() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.ArgumentException.get_Message() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.BadImageFormatException.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.BadImageFormatException.get_Message() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Boolean.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Boolean.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Buffers.StandardFormat.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Byte.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Byte.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Byte.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Byte.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Char.ConvertFromUtf32(System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Char.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Char.ToString(System.Char) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Char.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Console.ReadLine() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Console.ReadLine() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.String System.Console.ReadLine() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.String System.Console.get_Title() | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.String System.Convert.ToBase64String(System.Byte[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToBase64String(System.Byte[],System.Base64FormattingOptions) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToBase64String(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToBase64String(System.Byte[],System.Int32,System.Int32,System.Base64FormattingOptions) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToBase64String(System.ReadOnlySpan<System.Byte>,System.Base64FormattingOptions) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.Convert.ToHexString(System.Byte[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToHexString(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToHexString(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.Convert.ToString(System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Boolean,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Byte) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Byte,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Byte,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Char) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Char,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.DateTime) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.DateTime,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Decimal) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Decimal,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Double) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Double,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int16) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int16,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int16,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int32,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int64) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int64,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Int64,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Convert.ToString(System.SByte) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.SByte,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Convert.ToString(System.SByte,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Single) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.Single,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Convert.ToString(System.UInt16) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.UInt16,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Convert.ToString(System.UInt16,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Convert.ToString(System.UInt32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.UInt32,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Convert.ToString(System.UInt32,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Convert.ToString(System.UInt64) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Convert.ToString(System.UInt64,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Convert.ToString(System.UInt64,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateOnly.ToLongDateString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateOnly.ToShortDateString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateOnly.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateOnly.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateOnly.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateOnly.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.DateTime.ToLongDateString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTime.ToLongTimeString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTime.ToShortDateString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTime.ToShortTimeString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTime.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTime.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTime.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTime.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.DateTimeOffset.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTimeOffset.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTimeOffset.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.DateTimeOffset.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Decimal.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Decimal.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Decimal.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Decimal.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Diagnostics.CodeAnalysis.ExperimentalAttribute.get_UrlFormat() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.get_Url() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.get_Url() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.get_Category() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.get_CheckId() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.get_Category() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.get_CheckId() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.Contracts.ContractException.get_Failure() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.Contracts.ContractOptionAttribute.get_Value() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Diagnostics.DebuggerDisplayAttribute.get_Value() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.DebuggerTypeProxyAttribute.get_ProxyTypeName() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.DebuggerVisualizerAttribute.get_VisualizerTypeName() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.StackFrame.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.Tracing.EventSource.GenerateManifest(System.Type,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.String System.Diagnostics.Tracing.EventSource.GenerateManifest(System.Type,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2114:ReflectionToDynamicallyAccessedMembers | -| System.String System.Diagnostics.Tracing.EventSource.GenerateManifest(System.Type,System.String,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.String System.Diagnostics.Tracing.EventSource.GenerateManifest(System.Type,System.String,System.Diagnostics.Tracing.EventManifestOptions) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2114:ReflectionToDynamicallyAccessedMembers | -| System.String System.Diagnostics.Tracing.EventSource.GetName(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.Tracing.EventSource.GetTrait(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.Tracing.EventSource.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Diagnostics.Tracing.EventSource.get_Name() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Double.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Double.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Double.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Double.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Enum.GetName`1(!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.Enum.ToString(System.IFormatProvider) | [ObsoleteAttribute(...)] | 0 | The provider argument is not used. Use ToString() instead. | -| System.String System.Enum.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Enum.ToString(System.String,System.IFormatProvider) | [ObsoleteAttribute(...)] | 0 | The provider argument is not used. Use ToString(String) instead. | -| System.String System.Environment.get_ProcessPath() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Exception.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Exception.get_Message() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Exception.get_Source() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.String System.Exception.get_Source() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.String System.Globalization.CultureNotFoundException.get_Message() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Guid.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Guid.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Guid.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Half.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Half.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Half.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Half.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IConvertible.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Enumeration.FileSystemEntry.ToFullPath() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Enumeration.FileSystemEntry.ToSpecifiedFullPath() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Enumeration.FileSystemName.TranslateWin32Expression(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.FileInfo.get_DirectoryName() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.FileLoadException.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.FileLoadException.get_Message() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.FileNotFoundException.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.FileNotFoundException.get_Message() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.FileSystemInfo.get_LinkTarget() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.ChangeExtension(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.Combine(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.Combine(System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.Combine(System.String,System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.Combine(System.String[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.GetDirectoryName(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.GetExtension(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.GetFileName(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.GetFileNameWithoutExtension(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.GetFullPath(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.GetFullPath(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.GetPathRoot(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.GetRandomFileName() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.GetRelativePath(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.GetTempFileName() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.GetTempPath() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.Join(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.Join(System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.Join(System.String,System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.Path.Join(System.String[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.Path.TrimEndingDirectorySeparator(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IO.StreamReader.ReadLine() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.StringReader.ReadLine() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IO.TextReader.ReadLine() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Index.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int16.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int16.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int16.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int16.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Int32.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int32.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int32.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int32.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Int64.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int64.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int64.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int64.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Int128.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int128.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int128.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Int128.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.IntPtr.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IntPtr.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IntPtr.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.IntPtr.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Lazy`1.ToString() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.MissingMemberException.get_Message() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Nullable`1.ToString() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Numerics.Matrix3x2.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Matrix4x4.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Plane.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Quaternion.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector2.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector2.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector2.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Numerics.Vector3.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector3.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector3.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Numerics.Vector4.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector4.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector4.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Numerics.Vector`1.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector`1.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Numerics.Vector`1.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Range.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Reflection.Assembly.CreateQualifiedName(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Reflection.Assembly.get_CodeBase() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Reflection.Assembly.get_FullName() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Reflection.AssemblyMetadataAttribute.get_Value() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Reflection.AssemblyName.EscapeCodeBase(System.String) | [RequiresAssemblyFilesAttribute(...)] | 0 | The code will return an empty string for assemblies embedded in a single-file app | -| System.String System.Reflection.AssemblyName.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Reflection.AssemblyName.get_CodeBase() | [RequiresAssemblyFilesAttribute(...)] | 0 | The code will return an empty string for assemblies embedded in a single-file app | -| System.String System.Reflection.AssemblyName.get_FullName() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Reflection.Emit.AssemblyBuilder.get_CodeBase() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Reflection.Emit.RuntimeModuleBuilder.ResolveString(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.String System.Reflection.ExceptionHandlingClause.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Reflection.Module.ResolveString(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.String System.Reflection.ParameterInfo.get_Name() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Reflection.RuntimeModule.GetFullyQualifiedName() | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns <Unknown> for modules with no file path | -| System.String System.Reflection.RuntimeModule.ResolveString(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.String System.Reflection.TypeDelegator.get_AssemblyQualifiedName() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Reflection.TypeDelegator.get_FullName() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Reflection.TypeDelegator.get_Namespace() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Resources.ResourceManager.GetString(System.String,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.CompilerServices.AsyncMethodBuilderCore.GetAsyncStateMachineDescription(System.Runtime.CompilerServices.IAsyncStateMachine) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.String System.Runtime.CompilerServices.AsyncMethodBuilderCore.GetAsyncStateMachineDescription(System.Runtime.CompilerServices.IAsyncStateMachine) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.String System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.ToStringAndClear() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.CompilerServices.SwitchExpressionException.get_Message() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.CLong.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.COMException.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.CULong.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.ExternalException.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.LibraryImportAttribute.get_LibraryName() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.Marshal.GetTypeInfoName(System.Runtime.InteropServices.ComTypes.ITypeInfo) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.String System.Runtime.InteropServices.Marshal.PtrToStringAnsi(System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.InteropServices.Marshal.PtrToStringAuto(System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.InteropServices.Marshal.PtrToStringAuto(System.IntPtr,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.InteropServices.Marshal.PtrToStringUTF8(System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.InteropServices.Marshal.PtrToStringUni(System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.InteropServices.NFloat.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.NFloat.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.NFloat.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.InteropServices.NFloat.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.Loader.AssemblyLoadContext.get_Name() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.Versioning.TargetFrameworkAttribute.get_FrameworkDisplayName() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.Versioning.UnsupportedOSPlatformAttribute.get_Message() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Runtime.Versioning.VersioningHelper.MakeVersionSafeName(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Runtime.Versioning.VersioningHelper.MakeVersionSafeName(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.SByte.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.SByte.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.SByte.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.SByte.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Security.PermissionSet.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Security.SecurityElement.Attribute(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Security.SecurityElement.SearchForTextOfTag(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Security.SecurityElement.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Security.SecurityElement.get_Tag() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Security.SecurityException.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Single.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Single.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Single.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Single.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.String.Concat(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.String.Concat(System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.String.Concat(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.String.Concat(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.String.Concat(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.String.Concat(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.String.Concat(System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.String.Concat(System.String,System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.String.Copy(System.String) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.String System.String.Copy(System.String) | [ObsoleteAttribute(...)] | 0 | This API should not be used to create mutable strings. See https://go.microsoft.com/fwlink/?linkid=2084035 for alternatives. | -| System.String System.String.Create(System.IFormatProvider,System.Span<System.Char>,System.Runtime.CompilerServices.DefaultInterpolatedStringHandler) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.String.Format(System.IFormatProvider,System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.String.Format(System.IFormatProvider,System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.String.Format(System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Text.ASCIIEncoding.GetString(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Text.Encoding.GetString(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.String System.Text.Encoding.GetString(System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.Text.Encoding.GetString(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.String System.Text.Rune.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Text.UTF8Encoding.GetString(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Threading.Tasks.ValueTask`1.ToString() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Threading.Thread.get_Name() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Threading.ThreadLocal`1.ToString() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.TimeOnly.ToLongTimeString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.TimeOnly.ToShortTimeString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.TimeOnly.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.TimeOnly.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.TimeOnly.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.TimeOnly.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.TimeSpan.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.TimeSpan.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.TimeSpan.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Tuple`1.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Tuple`2.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Type.get_AssemblyQualifiedName() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Type.get_FullName() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.Type.get_Namespace() | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.UInt16.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt16.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt16.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt16.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.UInt32.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt32.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt32.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt32.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.UInt64.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt64.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt64.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt64.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.UInt128.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt128.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt128.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UInt128.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.UIntPtr.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UIntPtr.ToString(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UIntPtr.ToString(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.UIntPtr.ToString(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.String System.ValueTuple`1.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.ValueTuple`2.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.ValueTuple`3.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.ValueTuple`4.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Version.ToString() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String System.Version.ToString(System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.StringComparer | [NullableAttribute(...)] | 0 | 0 | -| System.StringComparer | [NullableContextAttribute(...)] | 0 | 1 | -| System.StringComparer | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.StringComparer System.Globalization.GlobalizationExtensions.GetStringComparer(System.Globalization.CompareInfo,System.Globalization.CompareOptions) | [NullableContextAttribute(...)] | 0 | 1 | -| System.StringNormalizationExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.StringNormalizationExtensions | [NullableContextAttribute(...)] | 0 | 1 | -| System.String[] System.DateTime.GetDateTimeFormats() | [NullableContextAttribute(...)] | 0 | 1 | -| System.String[] System.DateTime.GetDateTimeFormats(System.Char) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String[] System.DateTime.GetDateTimeFormats(System.Char,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.String[] System.DateTime.GetDateTimeFormats(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.SystemException | [NullableAttribute(...)] | 0 | 0 | -| System.SystemException | [NullableContextAttribute(...)] | 0 | 2 | -| System.SystemException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Text.CompositeFormat | [DebuggerDisplayAttribute(...)] | 0 | {Format} | -| System.Text.CompositeFormat | [NullableAttribute(...)] | 0 | 0 | -| System.Text.CompositeFormat | [NullableAttribute(...)] | 0 | 1 | -| System.Text.CompositeFormat | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.CompositeFormat._segments | [TupleElementNamesAttribute(...)] | 0 | [Literal,ArgIndex,Alignment,Format] | -| System.Text.Decoder System.Text.ASCIIEncoding.GetDecoder() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Decoder System.Text.UTF8Encoding.GetDecoder() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.DecoderFallback | [NullableAttribute(...)] | 0 | 0 | -| System.Text.DecoderFallback | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.DecoderFallback System.Text.Decoder.Fallback | [NullableAttribute(...)] | 0 | 2 | -| System.Text.DecoderFallback System.Text.Decoder.get_Fallback() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Text.DecoderFallbackBuffer System.Text.Decoder.FallbackBuffer | [NullableAttribute(...)] | 0 | 1 | -| System.Text.DecoderFallbackBuffer System.Text.Decoder.get_FallbackBuffer() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.DecoderFallbackBuffer System.Text.DecoderExceptionFallback.CreateFallbackBuffer() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.DecoderFallbackException | [NullableAttribute(...)] | 0 | 0 | -| System.Text.DecoderFallbackException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Text.DecoderFallbackException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Text.DecoderReplacementFallback | [NullableAttribute(...)] | 0 | 0 | -| System.Text.DecoderReplacementFallback | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.DecoderReplacementFallbackBuffer | [NullableAttribute(...)] | 0 | 0 | -| System.Text.DecoderReplacementFallbackBuffer | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Encoder System.Text.ASCIIEncoding.GetEncoder() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Encoder System.Text.UTF8Encoding.GetEncoder() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.EncoderFallback | [NullableAttribute(...)] | 0 | 0 | -| System.Text.EncoderFallback | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.EncoderFallback System.Text.Encoder.Fallback | [NullableAttribute(...)] | 0 | 2 | -| System.Text.EncoderFallback System.Text.Encoder.get_Fallback() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Text.EncoderFallbackBuffer System.Text.Encoder.FallbackBuffer | [NullableAttribute(...)] | 0 | 1 | -| System.Text.EncoderFallbackBuffer System.Text.Encoder.get_FallbackBuffer() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.EncoderFallbackBuffer System.Text.EncoderExceptionFallback.CreateFallbackBuffer() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.EncoderFallbackException | [NullableAttribute(...)] | 0 | 0 | -| System.Text.EncoderFallbackException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Text.EncoderFallbackException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Text.EncoderReplacementFallback | [NullableAttribute(...)] | 0 | 0 | -| System.Text.EncoderReplacementFallback | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Encoding | [NullableAttribute(...)] | 0 | 0 | -| System.Text.Encoding | [NullableAttribute(...)] | 0 | 1 | -| System.Text.Encoding | [NullableAttribute(...)] | 0 | 2 | -| System.Text.Encoding | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Encoding System.Console.InputEncoding | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Text.Encoding System.Console.InputEncoding | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Text.Encoding System.Console.InputEncoding | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Text.Encoding System.Console.InputEncoding | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Text.Encoding System.Text.Encoding.UTF7 | [ObsoleteAttribute(...)] | 0 | The UTF-7 encoding is insecure and should not be used. Consider using UTF-8 instead. | -| System.Text.Encoding System.Text.EncodingProvider.GetEncoding(System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Text.EncodingInfo | [NullableAttribute(...)] | 0 | 0 | -| System.Text.EncodingInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.EncodingProvider | [NullableAttribute(...)] | 0 | 0 | -| System.Text.EncodingProvider | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.EncodingProvider System.Text.EncodingInfo.Provider | [NullableAttribute(...)] | 0 | 2 | -| System.Text.NormalizationForm.FormKC | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Text.NormalizationForm.FormKD | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Text.Rune | [DebuggerDisplayAttribute(...)] | 0 | {DebuggerDisplay,nq} | -| System.Text.Rune System.Text.Rune.GetRuneAt(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Rune System.Text.Rune.ToLower(System.Text.Rune,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Rune System.Text.Rune.ToUpper(System.Text.Rune,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Rune System.Text.Rune.op_Explicit(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.SpanLineEnumerator | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Text.SpanLineEnumerator | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Text.SpanLineEnumerator | [ObsoleteAttribute(...)] | 1 | True | -| System.Text.SpanRuneEnumerator | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Text.SpanRuneEnumerator | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Text.SpanRuneEnumerator | [ObsoleteAttribute(...)] | 1 | True | -| System.Text.StringBuilder | [DefaultMemberAttribute(...)] | 0 | Chars | -| System.Text.StringBuilder | [NotNullWhenAttribute(...)] | 0 | True | -| System.Text.StringBuilder | [NullableAttribute(...)] | 0 | 0 | -| System.Text.StringBuilder | [NullableAttribute(...)] | 0 | 2 | -| System.Text.StringBuilder | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.StringBuilder | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Text.StringBuilder System.Text.StringBuilder.Append(System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder System.Text.StringBuilder.Append(System.Char*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Text.StringBuilder System.Text.StringBuilder.Append(System.ReadOnlyMemory<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Text.StringBuilder System.Text.StringBuilder.Append(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Text.StringBuilder System.Text.StringBuilder.Append(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder System.Text.StringBuilder.Append(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder System.Text.StringBuilder.Append(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder System.Text.StringBuilder.Append(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder System.Text.StringBuilder.AppendFormat(System.IFormatProvider,System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Text.StringBuilder System.Text.StringBuilder.AppendFormat(System.IFormatProvider,System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Text.StringBuilder System.Text.StringBuilder.AppendFormat(System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Text.StringBuilder System.Text.StringBuilder.Insert(System.Int32,System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Text.StringBuilder System.Text.StringBuilder.Insert(System.Int32,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder System.Text.StringBuilder.Insert(System.Int32,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder System.Text.StringBuilder.Insert(System.Int32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder System.Text.StringBuilder.Insert(System.Int32,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Text.StringBuilder.AppendInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Text.StringBuilder.AppendInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | | -| System.Text.StringBuilder.AppendInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | [,provider] | -| System.Text.StringBuilder.AppendInterpolatedStringHandler | [NullableAttribute(...)] | 0 | 0 | -| System.Text.StringBuilder.ChunkEnumerator | [NullableContextAttribute(...)] | 0 | 0 | -| System.Text.StringBuilder.ChunkEnumerator System.Text.StringBuilder.ChunkEnumerator.GetEnumerator() | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Text.UTF7Encoding | [NullableAttribute(...)] | 0 | 0 | -| System.Text.UTF7Encoding | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.UTF32Encoding | [NullableAttribute(...)] | 0 | 0 | -| System.Text.UTF32Encoding | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.Unicode.TextSegmentationUtility.Processor`1 | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Text.Unicode.TextSegmentationUtility.Processor`1 | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Text.Unicode.TextSegmentationUtility.Processor`1 | [ObsoleteAttribute(...)] | 1 | True | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | [destination,provider] | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [InterpolatedStringHandlerArgumentAttribute(...)] | 0 | destination | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler | [ObsoleteAttribute(...)] | 1 | True | -| System.Text.UnicodeEncoding | [NullableAttribute(...)] | 0 | 0 | -| System.Text.UnicodeEncoding | [NullableContextAttribute(...)] | 0 | 1 | -| System.Text.ValueStringBuilder | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Text.ValueStringBuilder | [DefaultMemberAttribute(...)] | 0 | Item | -| System.Text.ValueStringBuilder | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Text.ValueStringBuilder | [ObsoleteAttribute(...)] | 1 | True | -| System.Text.ValueUtf8Converter | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.Text.ValueUtf8Converter | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.Text.ValueUtf8Converter | [ObsoleteAttribute(...)] | 1 | True | -| System.ThreadStaticAttribute | [AttributeUsageAttribute(...)] | 0 | 256 | -| System.Threading.AbandonedMutexException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.AbandonedMutexException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.AbandonedMutexException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.ApartmentState System.Threading.Thread.ApartmentState | [ObsoleteAttribute(...)] | 0 | The ApartmentState property has been deprecated. Use GetApartmentState, SetApartmentState or TrySetApartmentState instead. | -| System.Threading.AsyncLocalValueChangedArgs`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.AsyncLocalValueChangedArgs`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.AsyncLocal`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.AsyncLocal`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.CancellationToken | [DebuggerDisplayAttribute(...)] | 0 | IsCancellationRequested = {IsCancellationRequested} | -| System.Threading.CancellationToken | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.CancellationToken | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.CancellationTokenRegistration System.Threading.CancellationToken.Register(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.CancellationTokenRegistration System.Threading.CancellationToken.Register(System.Action,System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.CancellationTokenSource | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.CancellationTokenSource | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.CompressedStack | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.CompressedStack | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.CompressedStack System.Threading.Thread.GetCompressedStack() | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Threading.EventWaitHandle | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.EventWaitHandle | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.EventWaitHandle System.Threading.EventWaitHandle.OpenExisting(System.String) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Threading.ExecutionContext | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.ExecutionContext | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.ExecutionContext System.Threading.ExecutionContext.Capture() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.ExecutionContext System.Threading.Tasks.Task.CapturedContext | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.ExecutionContext System.Threading.Thread.ExecutionContext | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.ExecutionContext System.Threading.Thread.get_ExecutionContext() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.IOCompletionCallback | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.IOCompletionCallback | [NullableAttribute(...)] | 0 | 1 | -| System.Threading.IOCompletionCallback | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.Interlocked | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Interlocked | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.LazyInitializer | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.LazyInitializer | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.LockRecursionException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.LockRecursionException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.LockRecursionException | [TypeForwardedFromAttribute(...)] | 0 | System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.ManualResetEventSlim | [DebuggerDisplayAttribute(...)] | 0 | Set = {IsSet} | -| System.Threading.Monitor | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Monitor | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Mutex | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Mutex | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.NativeOverlapped* System.Threading.Overlapped.Pack(System.Threading.IOCompletionCallback) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.NativeOverlapped* System.Threading.Overlapped.Pack(System.Threading.IOCompletionCallback) | [ObsoleteAttribute(...)] | 0 | This overload is not safe and has been deprecated. Use Pack(IOCompletionCallback?, object?) instead. | -| System.Threading.NativeOverlapped* System.Threading.Overlapped.Pack(System.Threading.IOCompletionCallback,System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.NativeOverlapped* System.Threading.Overlapped.Pack(System.Threading.IOCompletionCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.NativeOverlapped* System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.NativeOverlapped* System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback) | [ObsoleteAttribute(...)] | 0 | This overload is not safe and has been deprecated. Use UnsafePack(IOCompletionCallback?, object?) instead. | -| System.Threading.NativeOverlapped* System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback,System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.NativeOverlapped* System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.NativeOverlapped* System.Threading.ThreadPoolBoundHandle.AllocateNativeOverlapped(System.Threading.IOCompletionCallback,System.Object,System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.NativeOverlapped* System.Threading.ThreadPoolBoundHandle.AllocateNativeOverlapped(System.Threading.IOCompletionCallback,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.NativeOverlapped* System.Threading.ThreadPoolBoundHandle.AllocateNativeOverlapped(System.Threading.PreAllocatedOverlapped) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.NativeOverlapped* System.Threading.ThreadPoolBoundHandle.UnsafeAllocateNativeOverlapped(System.Threading.IOCompletionCallback,System.Object,System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.NativeOverlapped* System.Threading.ThreadPoolBoundHandle.UnsafeAllocateNativeOverlapped(System.Threading.IOCompletionCallback,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Overlapped System.Threading.Overlapped.Unpack(System.Threading.NativeOverlapped*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.PreAllocatedOverlapped | [NullableAttribute(...)] | 0 | 1 | -| System.Threading.PreAllocatedOverlapped System.Threading.PreAllocatedOverlapped.UnsafeCreate(System.Threading.IOCompletionCallback,System.Object,System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.PreAllocatedOverlapped System.Threading.PreAllocatedOverlapped.UnsafeCreate(System.Threading.IOCompletionCallback,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.RegisteredWaitHandle | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.RegisteredWaitHandle | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.RegisteredWaitHandle | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int32,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int64,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.TimeSpan,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.RegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int32,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int64,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.TimeSpan,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Threading.RegisteredWaitHandle System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Threading.Semaphore | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Semaphore | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Semaphore System.Threading.Semaphore.OpenExisting(System.String) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Threading.SemaphoreFullException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.SemaphoreFullException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.SemaphoreFullException | [TypeForwardedFromAttribute(...)] | 0 | System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.SemaphoreSlim | [DebuggerDisplayAttribute(...)] | 0 | Current Count = {m_currentCount} | -| System.Threading.SemaphoreSlim | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.SemaphoreSlim | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.SemaphoreSlim System.IO.Stream.EnsureAsyncActiveSemaphoreInitialized() | [MemberNotNullAttribute(...)] | 0 | _asyncActiveSemaphore | -| System.Threading.SpinLock | [DebuggerDisplayAttribute(...)] | 0 | IsHeld = {IsHeld} | -| System.Threading.SpinLock | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.SpinLock.SystemThreading_SpinLockDebugView | -| System.Threading.SpinWait | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.SpinWait | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.SynchronizationContext | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.SynchronizationContext | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.SynchronizationContext System.Threading.SynchronizationContext.Current | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.SynchronizationContext System.Threading.SynchronizationContext.get_Current() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.SynchronizationLockException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.SynchronizationLockException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.SynchronizationLockException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair | [DebuggerDisplayAttribute(...)] | 0 | Concurrent = {ConcurrentTaskCountForDebugger}, Exclusive = {ExclusiveTaskCountForDebugger}, Mode = {ModeForDebugger} | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.DebugView | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ConcurrentExclusiveTaskScheduler | [DebuggerDisplayAttribute(...)] | 0 | Count = {CountForDebugger}, MaxConcurrencyLevel = {m_maxConcurrencyLevel}, Id = {Id} | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ConcurrentExclusiveTaskScheduler | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ConcurrentExclusiveTaskScheduler.DebugView | -| System.Threading.Tasks.Sources.IValueTaskSource | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Sources.IValueTaskSource`1 | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.Task | [DebuggerDisplayAttribute(...)] | 0 | Id = {Id}, Status = {Status}, Method = {DebuggerDisplayMethodDescription} | -| System.Threading.Tasks.Task | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.Tasks.SystemThreadingTasks_TaskDebugView | -| System.Threading.Tasks.Task | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.OutputTabsAsync() | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<OutputTabsAsync>d__23 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteAsync(System.Char) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__37 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteAsync(System.Char[],System.Int32,System.Int32) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__38 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__40 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteAsync(System.String) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__39 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteAsync(System.Text.StringBuilder,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteAsync>d__41 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteLineAsync() | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__59 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteLineAsync(System.Char) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__60 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteLineAsync(System.Char[],System.Int32,System.Int32) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__61 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteLineAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__63 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteLineAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteLineAsync(System.String) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__62 | -| System.Threading.Tasks.Task System.CodeDom.Compiler.IndentedTextWriter.WriteLineAsync(System.Text.StringBuilder,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.CodeDom.Compiler.IndentedTextWriter.<WriteLineAsync>d__64 | -| System.Threading.Tasks.Task System.IO.BufferedStream.CopyToAsyncCore(System.IO.Stream,System.Int32,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.BufferedStream.<CopyToAsyncCore>d__68 | -| System.Threading.Tasks.Task System.IO.BufferedStream.FlushAsyncInternal(System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.BufferedStream.<FlushAsyncInternal>d__36 | -| System.Threading.Tasks.Task System.IO.File.<WriteAllBytesAsync>g__Core\|92_0(System.String,System.Byte[],System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.File.<<WriteAllBytesAsync>g__Core\|92_0>d | -| System.Threading.Tasks.Task System.IO.File.InternalWriteAllLinesAsync(System.IO.StreamWriter,System.Collections.Generic.IEnumerable<System.String>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.File.<InternalWriteAllLinesAsync>d__98 | -| System.Threading.Tasks.Task System.IO.File.WriteToFileAsync(System.String,System.IO.FileMode,System.String,System.Text.Encoding,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.File.<WriteToFileAsync>d__108 | -| System.Threading.Tasks.Task System.IO.Strategies.BufferedFileStreamStrategy.CopyToAsyncCore(System.IO.Stream,System.Int32,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Strategies.BufferedFileStreamStrategy.<CopyToAsyncCore>d__57 | -| System.Threading.Tasks.Task System.IO.Strategies.BufferedFileStreamStrategy.FlushAsyncInternal(System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Strategies.BufferedFileStreamStrategy.<FlushAsyncInternal>d__55 | -| System.Threading.Tasks.Task System.IO.Stream.<CopyToAsync>g__Core\|27_0(System.IO.Stream,System.IO.Stream,System.Int32,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Stream.<<CopyToAsync>g__Core\|27_0>d | -| System.Threading.Tasks.Task System.IO.Stream.FinishWriteAsync(System.Threading.Tasks.Task,System.Byte[]) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Stream.<FinishWriteAsync>d__61 | -| System.Threading.Tasks.Task System.IO.StreamWriter.<FlushAsyncInternal>g__Core\|76_0(System.Boolean,System.Boolean,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.StreamWriter.<<FlushAsyncInternal>g__Core\|76_0>d | -| System.Threading.Tasks.Task System.IO.StreamWriter.WriteAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task System.IO.StreamWriter.WriteAsyncInternal(System.Char,System.Boolean) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.StreamWriter.<WriteAsyncInternal>d__64 | -| System.Threading.Tasks.Task System.IO.StreamWriter.WriteAsyncInternal(System.ReadOnlyMemory<System.Char>,System.Boolean,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.StreamWriter.<WriteAsyncInternal>d__68 | -| System.Threading.Tasks.Task System.IO.StreamWriter.WriteLineAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task System.IO.StringWriter.WriteAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task System.IO.StringWriter.WriteLineAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task System.IO.TextWriter.<WriteAsync>g__WriteAsyncCore\|60_0(System.Text.StringBuilder,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.TextWriter.<<WriteAsync>g__WriteAsyncCore\|60_0>d | -| System.Threading.Tasks.Task System.IO.TextWriter.<WriteLineAsync>g__WriteLineAsyncCore\|66_0(System.Text.StringBuilder,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.TextWriter.<<WriteLineAsync>g__WriteLineAsyncCore\|66_0>d | -| System.Threading.Tasks.Task System.IO.TextWriter.WriteAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task System.IO.TextWriter.WriteLineAsync(System.ReadOnlyMemory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task System.IO.UnmanagedMemoryStream.FlushAsync(System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.Task System.IO.UnmanagedMemoryStream.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.Task System.Threading.Tasks.Task.InternalCurrent | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task System.Threading.Tasks.Task.ParentForDebugger | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.Task.ContinueWith`1(System.Func<!0,System.Object,System.Threading.Tasks.Task>,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.Task.ContinueWith`1(System.Func<!0,System.Object,System.Threading.Tasks.Task>,System.Object,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.Task.ContinueWith`1(System.Func<!0,System.Object,System.Threading.Tasks.Task>,System.Object,System.Threading.Tasks.TaskContinuationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.TaskFactory.StartNew`1(System.Func<!0,System.Object>,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.TaskFactory.StartNew`1(System.Func<!0,System.Object>,System.Object,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.TaskFactory.StartNew`1(System.Func<!0,System.Object>,System.Object,System.Threading.Tasks.TaskCreationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.Task`1.ContinueWith`1(System.Func<!0,System.Object,System.Threading.Tasks.Task<!0>>,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.Task`1.ContinueWith`1(System.Func<!0,System.Object,System.Threading.Tasks.Task<!0>>,System.Object,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<!0> System.Threading.Tasks.Task`1.ContinueWith`1(System.Func<!0,System.Object,System.Threading.Tasks.Task<!0>>,System.Object,System.Threading.Tasks.TaskContinuationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.Task<System.Boolean> System.Threading.SemaphoreSlim.WaitUntilCountOrTimeoutAsync(System.Threading.SemaphoreSlim.TaskNode,System.Int32,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.Threading.SemaphoreSlim.<WaitUntilCountOrTimeoutAsync>d__31 | -| System.Threading.Tasks.Task<System.Byte[]> System.IO.File.InternalReadAllBytesAsync(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Int32,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.File.<InternalReadAllBytesAsync>d__90 | -| System.Threading.Tasks.Task<System.Byte[]> System.IO.File.InternalReadAllBytesUnknownLengthAsync(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.File.<InternalReadAllBytesUnknownLengthAsync>d__91 | -| System.Threading.Tasks.Task<System.Int32> System.IO.UnmanagedMemoryStream.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.Task<System.String> System.IO.File.InternalReadAllTextAsync(System.String,System.Text.Encoding,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.File.<InternalReadAllTextAsync>d__86 | -| System.Threading.Tasks.Task<System.String> System.IO.StreamReader.ReadLineAsyncInternal(System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.StreamReader.<ReadLineAsyncInternal>d__63 | -| System.Threading.Tasks.Task<System.String> System.IO.StreamReader.ReadToEndAsyncInternal(System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.StreamReader.<ReadToEndAsyncInternal>d__66 | -| System.Threading.Tasks.Task<System.String> System.IO.TextReader.ReadToEndAsync(System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.TextReader.<ReadToEndAsync>d__17 | -| System.Threading.Tasks.Task<System.String[]> System.IO.File.InternalReadAllLinesAsync(System.String,System.Text.Encoding,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.File.<InternalReadAllLinesAsync>d__95 | -| System.Threading.Tasks.TaskAsyncEnumerableExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskAsyncEnumerableExtensions | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.TaskCanceledException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskCanceledException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.TaskCanceledException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.Tasks.TaskCompletionSource | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskCompletionSource | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.TaskCompletionSource`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskCompletionSource`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.TaskExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskExtensions | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.TaskFactory | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskFactory | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.TaskFactory`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskFactory`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.TaskScheduler | [DebuggerDisplayAttribute(...)] | 0 | Id = {Id} | -| System.Threading.Tasks.TaskScheduler | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.Tasks.TaskScheduler.SystemThreadingTasks_TaskSchedulerDebugView | -| System.Threading.Tasks.TaskScheduler | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskScheduler | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.TaskScheduler System.Threading.Tasks.Task.ExecutingTaskScheduler | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.TaskScheduler System.Threading.Tasks.TaskFactory.Scheduler | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.TaskScheduler System.Threading.Tasks.TaskFactory.get_Scheduler() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.TaskScheduler System.Threading.Tasks.TaskFactory`1.Scheduler | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.TaskScheduler System.Threading.Tasks.TaskFactory`1.get_Scheduler() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.TaskScheduler System.Threading.Tasks.TaskScheduler.InternalCurrent | [NullableAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.TaskScheduler.UnobservedTaskException | [NullableAttribute(...)] | 0 | [2,1] | -| System.Threading.Tasks.TaskSchedulerException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskSchedulerException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.TaskSchedulerException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.Tasks.TaskToAsyncResult | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.TaskToAsyncResult | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.Task`1 | [DebuggerDisplayAttribute(...)] | 0 | Id = {Id}, Status = {Status}, Method = {DebuggerDisplayMethodDescription}, Result = {DebuggerDisplayResultDescription} | -| System.Threading.Tasks.Task`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.Tasks.SystemThreadingTasks_FutureDebugView`1 | -| System.Threading.Tasks.Task`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.Task`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.TplEventSource | [GeneratedCodeAttribute(...)] | 0 | System.Private.CoreLib.Generators | -| System.Threading.Tasks.TplEventSource | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Threading.Tasks.UnobservedTaskExceptionEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.UnobservedTaskExceptionEventArgs | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.ValueTask | [AsyncMethodBuilderAttribute(...)] | 0 | System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder | -| System.Threading.Tasks.ValueTask | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.ValueTask System.IO.BufferedStream.DisposeAsync() | [AsyncStateMachineAttribute(...)] | 0 | System.IO.BufferedStream.<DisposeAsync>d__33 | -| System.Threading.Tasks.ValueTask System.IO.BufferedStream.FlushWriteAsync(System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.BufferedStream.<FlushWriteAsync>d__40 | -| System.Threading.Tasks.ValueTask System.IO.BufferedStream.WriteAsync(System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask System.IO.BufferedStream.WriteToUnderlyingStreamAsync(System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken,System.Threading.Tasks.Task) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.BufferedStream.<WriteToUnderlyingStreamAsync>d__59 | -| System.Threading.Tasks.ValueTask System.IO.FileStream.DisposeAsync() | [AsyncStateMachineAttribute(...)] | 0 | System.IO.FileStream.<DisposeAsync>d__57 | -| System.Threading.Tasks.ValueTask System.IO.FileStream.WriteAsync(System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask System.IO.MemoryStream.WriteAsync(System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask System.IO.RandomAccess.WriteAsync(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList<System.ReadOnlyMemory<System.Byte>>,System.Int64,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Tasks.ValueTask System.IO.Strategies.BufferedFileStreamStrategy.DisposeAsync() | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Strategies.BufferedFileStreamStrategy.<DisposeAsync>d__27 | -| System.Threading.Tasks.ValueTask System.IO.Strategies.BufferedFileStreamStrategy.WriteAsyncSlowPath(System.Threading.Tasks.Task,System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [AsyncMethodBuilderAttribute(...)] | 0 | System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder | -| System.Threading.Tasks.ValueTask System.IO.Strategies.BufferedFileStreamStrategy.WriteAsyncSlowPath(System.Threading.Tasks.Task,System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Strategies.BufferedFileStreamStrategy.<WriteAsyncSlowPath>d__48 | -| System.Threading.Tasks.ValueTask System.IO.Strategies.BufferedFileStreamStrategy.WriteToNonSeekableAsync(System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Strategies.BufferedFileStreamStrategy.<WriteToNonSeekableAsync>d__47 | -| System.Threading.Tasks.ValueTask System.IO.Stream.ReadExactlyAsync(System.Memory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask System.IO.Stream.WriteAsync(System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask System.IO.StreamWriter.DisposeAsyncCore() | [AsyncStateMachineAttribute(...)] | 0 | System.IO.StreamWriter.<DisposeAsyncCore>d__36 | -| System.Threading.Tasks.ValueTask System.Text.TranscodingStream.<DisposeAsync>g__DisposeAsyncCore\|30_0(System.ArraySegment<System.Byte>) | [AsyncStateMachineAttribute(...)] | 0 | System.Text.TranscodingStream.<<DisposeAsync>g__DisposeAsyncCore\|30_0>d | -| System.Threading.Tasks.ValueTask System.Text.TranscodingStream.<WriteAsync>g__WriteAsyncCore\|50_0(System.ReadOnlyMemory<System.Byte>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.Text.TranscodingStream.<<WriteAsync>g__WriteAsyncCore\|50_0>d | -| System.Threading.Tasks.ValueTask System.Threading.CancellationTokenSource.Registrations.WaitForCallbackToCompleteAsync(System.Int64) | [AsyncStateMachineAttribute(...)] | 0 | System.Threading.CancellationTokenSource.Registrations.<WaitForCallbackToCompleteAsync>d__12 | -| System.Threading.Tasks.ValueTask<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.Threading.Tasks.ValueTask<!0> System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Task | [NullableAttribute(...)] | 0 | [0,1] | -| System.Threading.Tasks.ValueTask<!0> System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.Task | [NullableAttribute(...)] | 0 | [0,1] | -| System.Threading.Tasks.ValueTask<!0> System.Threading.Tasks.ValueTask.FromCanceled`1(System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.BufferedStream.ReadAsync(System.Memory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.BufferedStream.ReadFromUnderlyingStreamAsync(System.Memory<System.Byte>,System.Threading.CancellationToken,System.Int32,System.Threading.Tasks.Task) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.BufferedStream.<ReadFromUnderlyingStreamAsync>d__48 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.FileStream.ReadAsync(System.Memory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.MemoryStream.ReadAsync(System.Memory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Strategies.BufferedFileStreamStrategy.ReadAsyncSlowPath(System.Threading.Tasks.Task,System.Memory<System.Byte>,System.Threading.CancellationToken) | [AsyncMethodBuilderAttribute(...)] | 0 | System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Strategies.BufferedFileStreamStrategy.ReadAsyncSlowPath(System.Threading.Tasks.Task,System.Memory<System.Byte>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Strategies.BufferedFileStreamStrategy.<ReadAsyncSlowPath>d__37 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Strategies.BufferedFileStreamStrategy.ReadFromNonSeekableAsync(System.Memory<System.Byte>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Strategies.BufferedFileStreamStrategy.<ReadFromNonSeekableAsync>d__36 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Stream.<ReadAsync>g__FinishReadAsync\|42_0(System.Threading.Tasks.Task<System.Int32>,System.Byte[],System.Memory<System.Byte>) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Stream.<<ReadAsync>g__FinishReadAsync\|42_0>d | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Stream.ReadAsync(System.Memory<System.Byte>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Stream.ReadAtLeastAsync(System.Memory<System.Byte>,System.Int32,System.Boolean,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Stream.ReadAtLeastAsyncCore(System.Memory<System.Byte>,System.Int32,System.Boolean,System.Threading.CancellationToken) | [AsyncMethodBuilderAttribute(...)] | 0 | System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.Stream.ReadAtLeastAsyncCore(System.Memory<System.Byte>,System.Int32,System.Boolean,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.Stream.<ReadAtLeastAsyncCore>d__46 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.StreamReader.ReadAsync(System.Memory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.StreamReader.ReadAsyncInternal(System.Memory<System.Char>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.StreamReader.<ReadAsyncInternal>d__69 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.StreamReader.ReadBlockAsync(System.Memory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.StreamReader.ReadBufferAsync(System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.StreamReader.<ReadBufferAsync>d__72 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.StringReader.ReadAsync(System.Memory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.StringReader.ReadBlockAsync(System.Memory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.TextReader.ReadAsync(System.Memory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.TextReader.ReadBlockAsync(System.Memory<System.Char>,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask<System.Int32> System.IO.TextReader.ReadBlockAsyncInternal(System.Memory<System.Char>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.IO.TextReader.<ReadBlockAsyncInternal>d__23 | -| System.Threading.Tasks.ValueTask<System.Int32> System.Text.TranscodingStream.<ReadAsync>g__ReadAsyncCore\|41_0(System.Memory<System.Byte>,System.Threading.CancellationToken) | [AsyncStateMachineAttribute(...)] | 0 | System.Text.TranscodingStream.<<ReadAsync>g__ReadAsyncCore\|41_0>d | -| System.Threading.Tasks.ValueTask`1 | [AsyncMethodBuilderAttribute(...)] | 0 | System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1 | -| System.Threading.Tasks.ValueTask`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Tasks.ValueTask`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.Thread | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Thread | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.ThreadAbortException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.ThreadAbortException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.ThreadAbortException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.ThreadExceptionEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.ThreadExceptionEventArgs | [NullableAttribute(...)] | 0 | 1 | -| System.Threading.ThreadExceptionEventArgs | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.ThreadInterruptedException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.ThreadInterruptedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.ThreadInterruptedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.ThreadLocal<System.Object> System.LocalDataStoreSlot.Data | [NullableAttribute(...)] | 0 | [1,2] | -| System.Threading.ThreadLocal`1 | [DebuggerDisplayAttribute(...)] | 0 | IsValueCreated = {IsValueCreated}, Value = {ValueForDebugDisplay}, Count = {ValuesCountForDebugDisplay} | -| System.Threading.ThreadLocal`1 | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.SystemThreading_ThreadLocalDebugView`1 | -| System.Threading.ThreadLocal`1 | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.ThreadLocal`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.ThreadPool | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.ThreadPool | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.ThreadPoolBoundHandle System.Threading.ThreadPoolBoundHandle.BindHandle(System.Runtime.InteropServices.SafeHandle) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.ThreadStartException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.ThreadStateException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.ThreadStateException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.ThreadStateException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.Timer | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | -| System.Threading.Timer | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.TimerQueueTimer.TimerDebuggerTypeProxy | -| System.Threading.Timer | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Timer | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.TimerQueue | [DebuggerDisplayAttribute(...)] | 0 | Count = {CountForDebugger} | -| System.Threading.TimerQueue | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.TimerQueue.TimerQueueDebuggerTypeProxy | -| System.Threading.TimerQueue.s_tickCountToTimeMap | [TupleElementNamesAttribute(...)] | 0 | [TickCount,Time] | -| System.Threading.TimerQueueTimer | [DebuggerDisplayAttribute(...)] | 0 | {DisplayString,nq} | -| System.Threading.TimerQueueTimer | [DebuggerTypeProxyAttribute(...)] | 0 | System.Threading.TimerQueueTimer.TimerDebuggerTypeProxy | -| System.Threading.TimerQueueTimer[] System.Threading.TimerQueue.TimerQueueDebuggerTypeProxy.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| System.Threading.Volatile | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.Volatile | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.WaitHandle | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.WaitHandle | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.WaitHandle System.IO.Stream.CreateWaitHandle() | [ObsoleteAttribute(...)] | 0 | CreateWaitHandle has been deprecated. Use the ManualResetEvent(false) constructor instead. | -| System.Threading.WaitHandle System.Threading.CancellationToken.WaitHandle | [NullableAttribute(...)] | 0 | 1 | -| System.Threading.WaitHandle System.Threading.CancellationToken.get_WaitHandle() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.WaitHandle System.Threading.ManualResetEventSlim.WaitHandle | [NullableAttribute(...)] | 0 | 1 | -| System.Threading.WaitHandle System.Threading.ManualResetEventSlim.get_WaitHandle() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Threading.WaitHandleCannotBeOpenedException | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.WaitHandleCannotBeOpenedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.Threading.WaitHandleCannotBeOpenedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Threading.WaitHandleExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.Threading.WaitHandleExtensions | [NullableContextAttribute(...)] | 0 | 1 | -| System.ThreeObjects | [InlineArrayAttribute(...)] | 0 | 3 | -| System.TimeOnly System.TimeOnly.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeOnly System.TimeOnly.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeOnly System.TimeOnly.Parse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeOnly System.TimeOnly.ParseExact(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeOnly System.TimeOnly.ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeOnly System.TimeOnly.ParseExact(System.String,System.String[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeOnly System.TimeOnly.ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeProvider | [NullableAttribute(...)] | 0 | 0 | -| System.TimeProvider | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeSpan System.TimeSpan.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeSpan System.TimeSpan.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeSpan System.TimeSpan.ParseExact(System.String,System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeSpan System.TimeSpan.ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.TimeSpanStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeSpan System.TimeSpan.ParseExact(System.String,System.String[],System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeSpan System.TimeSpan.ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.TimeSpanStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeZone | [NullableAttribute(...)] | 0 | 0 | -| System.TimeZone | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeZone | [ObsoleteAttribute(...)] | 0 | System.TimeZone has been deprecated. Investigate the use of System.TimeZoneInfo instead. | -| System.TimeZoneInfo | [NotNullWhenAttribute(...)] | 0 | True | -| System.TimeZoneInfo | [NullableAttribute(...)] | 0 | 0 | -| System.TimeZoneInfo | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeZoneInfo | [TypeForwardedFromAttribute(...)] | 0 | System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.TimeZoneInfo System.TimeZoneInfo.CreateCustomTimeZone(System.String,System.TimeSpan,System.String,System.String,System.String,System.TimeZoneInfo.AdjustmentRule[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.TimeZoneInfo System.TimeZoneInfo.CreateCustomTimeZone(System.String,System.TimeSpan,System.String,System.String,System.String,System.TimeZoneInfo.AdjustmentRule[],System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.TimeZoneInfo.AdjustmentRule | [NotNullWhenAttribute(...)] | 0 | True | -| System.TimeZoneInfo.AdjustmentRule | [NullableContextAttribute(...)] | 0 | 0 | -| System.TimeZoneInfo.AdjustmentRule System.TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo.TransitionTime,System.TimeZoneInfo.TransitionTime) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeZoneInfo.AdjustmentRule System.TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(System.DateTime,System.DateTime,System.TimeSpan,System.TimeZoneInfo.TransitionTime,System.TimeZoneInfo.TransitionTime,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TimeZoneInfo.AdjustmentRule[] | [NullableAttribute(...)] | 0 | [2,1] | -| System.TimeZoneInfo.TransitionTime | [NullableContextAttribute(...)] | 0 | 0 | -| System.TimeZoneNotFoundException | [NullableAttribute(...)] | 0 | 0 | -| System.TimeZoneNotFoundException | [NullableContextAttribute(...)] | 0 | 2 | -| System.TimeZoneNotFoundException | [TypeForwardedFromAttribute(...)] | 0 | System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.TimeoutException | [NullableAttribute(...)] | 0 | 0 | -| System.TimeoutException | [NullableContextAttribute(...)] | 0 | 2 | -| System.TimeoutException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Tuple | [NullableAttribute(...)] | 0 | 0 | -| System.Tuple | [NullableContextAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8,!9>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!7,!8,!9>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!7,!8,!9>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!7,!8,!9>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19,!20>>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19>>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18>>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17>>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16>>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15>>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14>>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9>> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5,!6> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4,!5> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3,!4> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2,!3> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1,!2> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0,!1> | [NullableAttribute(...)] | 0 | 1 | -| System.Tuple<!0> System.TupleExtensions.ToTuple`1(System.ValueTuple<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TupleExtensions | [NullableAttribute(...)] | 0 | 0 | -| System.TupleExtensions | [NullableContextAttribute(...)] | 0 | 2 | -| System.Tuple`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Tuple`2 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Tuple`3 | [NullableAttribute(...)] | 0 | 0 | -| System.Tuple`3 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Tuple`3 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Tuple`4 | [NullableAttribute(...)] | 0 | 0 | -| System.Tuple`4 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Tuple`4 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Tuple`5 | [NullableAttribute(...)] | 0 | 0 | -| System.Tuple`5 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Tuple`5 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Tuple`6 | [NullableAttribute(...)] | 0 | 0 | -| System.Tuple`6 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Tuple`6 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Tuple`7 | [NullableAttribute(...)] | 0 | 0 | -| System.Tuple`7 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Tuple`7 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Tuple`8 | [NullableAttribute(...)] | 0 | 0 | -| System.Tuple`8 | [NullableContextAttribute(...)] | 0 | 1 | -| System.Tuple`8 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.TwoObjects | [InlineArrayAttribute(...)] | 0 | 2 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 3 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 32 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 96 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 512 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 515 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 1536 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2048 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2607 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 6144 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| System.Type | [NotNullWhenAttribute(...)] | 0 | True | -| System.Type | [NullableAttribute(...)] | 0 | 0 | -| System.Type | [NullableAttribute(...)] | 0 | 1 | -| System.Type | [NullableAttribute(...)] | 0 | 2 | -| System.Type | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type System.Exception.GetType() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type System.Nullable.GetUnderlyingType(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type System.Object.GetType() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type System.Reflection.Assembly.GetType(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Assembly.GetType(System.String,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Assembly.GetType(System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Emit.DynamicMethod.DeclaringType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.Emit.DynamicMethod.ReflectedType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.Emit.DynamicMethod.get_DeclaringType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.Emit.DynamicMethod.get_ReflectedType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.Emit.EnumBuilder.MakeArrayType() | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Reflection.Emit.EnumBuilder.MakeArrayType(System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Reflection.Emit.RuntimeAssemblyBuilder.GetType(System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Emit.RuntimeEnumBuilder.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Reflection.Emit.RuntimeEnumBuilder.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.MakeArrayType() | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.MakeArrayType(System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.MakeGenericType(System.Type[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for this instantiation might not be available at runtime. | -| System.Type System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.MakeGenericType(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Type System.Reflection.Emit.RuntimeModuleBuilder.GetType(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Emit.RuntimeModuleBuilder.GetType(System.String,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Emit.RuntimeModuleBuilder.GetType(System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Emit.RuntimeModuleBuilder.GetTypeNoLock(System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Emit.RuntimeModuleBuilder.ResolveType(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Type System.Reflection.Emit.RuntimeTypeBuilder.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Reflection.Emit.RuntimeTypeBuilder.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Reflection.Emit.SymbolType.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Reflection.Emit.SymbolType.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Reflection.Emit.TypeBuilder.MakeArrayType() | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Reflection.Emit.TypeBuilder.MakeArrayType(System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Reflection.Emit.TypeBuilder.MakeGenericType(System.Type[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for this instantiation might not be available at runtime. | -| System.Type System.Reflection.Emit.TypeBuilder.MakeGenericType(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Type System.Reflection.Emit.TypeBuilderInstantiation.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Reflection.Emit.TypeBuilderInstantiation.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Reflection.Emit.TypeBuilderInstantiation.MakeGenericType(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Type System.Reflection.Emit.TypeBuilderInstantiation.Substitute(System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type System.Reflection.Emit.TypeBuilderInstantiation.Substitute(System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2055:UnrecognizedReflectionPattern | -| System.Type System.Reflection.MemberInfo.DeclaringType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.MemberInfo.ReflectedType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.MemberInfo.get_DeclaringType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.MemberInfo.get_ReflectedType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.Metadata.MetadataUpdateHandlerAttribute.HandlerType | [DynamicallyAccessedMembersAttribute(...)] | 0 | 24 | -| System.Type System.Reflection.ModifiedType.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Reflection.ModifiedType.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Reflection.Module.GetType(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Module.GetType(System.String,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Module.GetType(System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.Module.ResolveType(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Type System.Reflection.Module.ResolveType(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Type System.Reflection.PropertyInfo.GetModifiedPropertyType() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type System.Reflection.PropertyInfo.PropertyType | [NullableAttribute(...)] | 0 | 1 | -| System.Type System.Reflection.PropertyInfo.get_PropertyType() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type System.Reflection.RuntimeAssembly.GetType(System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.RuntimeExceptionHandlingClause.get_CatchType() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type System.Reflection.RuntimeExceptionHandlingClause.get_CatchType() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Type System.Reflection.RuntimeModule.GetType(System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type System.Reflection.RuntimeModule.ResolveType(System.Int32,System.Type[],System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimming changes metadata tokens | -| System.Type System.Reflection.SignatureType.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Reflection.SignatureType.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Reflection.SignatureType.MakeArrayType() | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Reflection.SignatureType.MakeArrayType(System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Reflection.SignatureType.MakeGenericType(System.Type[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for this instantiation might not be available at runtime. | -| System.Type System.Reflection.SignatureType.MakeGenericType(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeArrayType(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeArrayType(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeArrayType(System.Type,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeArrayType(System.Type,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeGenericType(System.Type,System.Type[]) | [RequiresDynamicCodeAttribute(...)] | 0 | Wrapper around MakeGenericType which itself has RequiresDynamicCode | -| System.Type System.Reflection.SignatureTypeExtensions.TryMakeGenericType(System.Type,System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Wrapper around MakeGenericType which itself has RequiresUnreferencedCode | -| System.Type System.Reflection.SignatureTypeExtensions.TryResolve(System.Reflection.SignatureType,System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Type System.Reflection.SignatureTypeExtensions.TryResolve(System.Reflection.SignatureType,System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type System.Reflection.SignatureTypeExtensions.TryResolve(System.Reflection.SignatureType,System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Type System.Reflection.SignatureTypeExtensions.TryResolve(System.Reflection.SignatureType,System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Type System.Reflection.TypeDelegator.BaseType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.TypeDelegator.GetElementType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.TypeDelegator.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Reflection.TypeDelegator.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Reflection.TypeDelegator.get_BaseType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Reflection.TypeNameParser.GenericTypeName.ResolveType(System.Reflection.TypeNameParser,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Type System.Reflection.TypeNameParser.GenericTypeName.ResolveType(System.Reflection.TypeNameParser,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type System.Reflection.TypeNameParser.GenericTypeName.ResolveType(System.Reflection.TypeNameParser,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2055:UnrecognizedReflectionPattern | -| System.Type System.Reflection.TypeNameParser.GenericTypeName.ResolveType(System.Reflection.TypeNameParser,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Type System.Reflection.TypeNameParser.GetType(System.String,System.Boolean,System.Boolean,System.Reflection.Assembly) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Reflection.TypeNameParser.GetType(System.String,System.Func<System.Reflection.Assembly,System.Reflection.AssemblyName>,System.Func<System.Boolean,System.Reflection.Assembly,System.String,System.Type>,System.Reflection.Assembly,System.Boolean,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Reflection.TypeNameParser.GetType(System.String,System.ReadOnlySpan<System.String>,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type System.Reflection.TypeNameParser.GetType(System.String,System.ReadOnlySpan<System.String>,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Type System.Reflection.TypeNameParser.GetType(System.String,System.ReadOnlySpan<System.String>,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Type System.Reflection.TypeNameParser.GetType(System.String,System.Reflection.Assembly,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Reflection.TypeNameParser.ModifierTypeName.ResolveType(System.Reflection.TypeNameParser,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Type System.Reflection.TypeNameParser.ModifierTypeName.ResolveType(System.Reflection.TypeNameParser,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Type System.Resources.ResourceManager.ResourceManagerMediator.UserResourceSet | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Type System.Resources.ResourceManager.ResourceSetType | [DynamicallyAccessedMembersAttribute(...)] | 0 | 7 | -| System.Type System.Resources.ResourceReader.<FindType>g__UseReflectionToGetTypeLocal\|52_0(System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type System.Resources.ResourceReader.<FindType>g__UseReflectionToGetTypeLocal\|52_0(System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Type System.Resources.ResourceReader.UseReflectionToGetType(System.Int32) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The CustomResourceTypesSupport feature switch has been enabled for this app which is being trimmed. Custom readers as well as custom objects on the resources file are not observable by the trimmer and so required assemblies, types and members may be removed. | -| System.Type System.Runtime.InteropServices.ComEventInterfaceAttribute.EventProvider | [DynamicallyAccessedMembersAttribute(...)] | 0 | 2607 | -| System.Type System.Runtime.InteropServices.ComEventInterfaceAttribute.SourceInterface | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8 | -| System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.NativeType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Runtime.InteropServices.Marshalling.MarshalUsingAttribute.get_NativeType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.RuntimeType.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.RuntimeType.GetInterface(System.String,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type System.RuntimeType.GetInterface(System.String,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2063:UnrecognizedReflectionPattern | -| System.Type System.RuntimeType.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.RuntimeType.MakeGenericType(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Type System.Type.BaseType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Type.DeclaringType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetElementType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetEnumUnderlyingType() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type System.Type.GetEnumUnderlyingType() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2085:UnrecognizedReflectionPattern | -| System.Type System.Type.GetInterface(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Type.GetInterface(System.String,System.Boolean) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type System.Type.GetNestedType(System.String) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 128 | -| System.Type System.Type.GetNestedType(System.String,System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type System.Type.GetType(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Type.GetType(System.String,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Type.GetType(System.String,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Type.GetType(System.String,System.Func<System.Reflection.Assembly,System.Reflection.AssemblyName>,System.Func<System.Boolean,System.Reflection.Assembly,System.String,System.Type>) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Type.GetType(System.String,System.Func<System.Reflection.Assembly,System.Reflection.AssemblyName>,System.Func<System.Boolean,System.Reflection.Assembly,System.String,System.Type>,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Type.GetType(System.String,System.Func<System.Reflection.Assembly,System.Reflection.AssemblyName>,System.Func<System.Boolean,System.Reflection.Assembly,System.String,System.Type>,System.Boolean,System.Boolean) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The type might be removed | -| System.Type System.Type.GetTypeFromCLSID(System.Guid) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetTypeFromCLSID(System.Guid) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Type.GetTypeFromCLSID(System.Guid,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetTypeFromCLSID(System.Guid,System.Boolean) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Type.GetTypeFromCLSID(System.Guid,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetTypeFromCLSID(System.Guid,System.String) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Type.GetTypeFromCLSID(System.Guid,System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetTypeFromCLSID(System.Guid,System.String,System.Boolean) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Type.GetTypeFromHandle(System.RuntimeTypeHandle) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetTypeFromProgID(System.String) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Type.GetTypeFromProgID(System.String,System.Boolean) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Type.GetTypeFromProgID(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetTypeFromProgID(System.String,System.String) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Type.GetTypeFromProgID(System.String,System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.GetTypeFromProgID(System.String,System.String,System.Boolean) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Type System.Type.MakeArrayType() | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Type.MakeArrayType(System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | The code for an array of the specified type might not be available. | -| System.Type System.Type.MakeGenericType(System.Type[]) | [RequiresDynamicCodeAttribute(...)] | 0 | The native code for this instantiation might not be available at runtime. | -| System.Type System.Type.MakeGenericType(System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met. | -| System.Type System.Type.ReflectedType | [NullableAttribute(...)] | 0 | 2 | -| System.Type System.Type.ReflectionOnlyGetType(System.String,System.Boolean,System.Boolean) | [ObsoleteAttribute(...)] | 0 | ReflectionOnly loading is not supported and throws PlatformNotSupportedException. | -| System.Type System.Type.get_BaseType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.get_DeclaringType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.Type.get_ReflectedType() | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type System.TypedReference.GetTargetType(System.TypedReference) | [NullableContextAttribute(...)] | 0 | 1 | -| System.TypeAccessException | [NullableAttribute(...)] | 0 | 0 | -| System.TypeAccessException | [NullableContextAttribute(...)] | 0 | 2 | -| System.TypeAccessException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.TypeCode System.Type.GetTypeCode(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.TypeInitializationException | [NullableAttribute(...)] | 0 | 0 | -| System.TypeInitializationException | [NullableContextAttribute(...)] | 0 | 1 | -| System.TypeInitializationException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.TypeLoadException | [NullableAttribute(...)] | 0 | 0 | -| System.TypeLoadException | [NullableContextAttribute(...)] | 0 | 1 | -| System.TypeLoadException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.TypeUnloadedException | [NullableAttribute(...)] | 0 | 0 | -| System.TypeUnloadedException | [NullableContextAttribute(...)] | 0 | 2 | -| System.TypeUnloadedException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Type[] | [NotNullWhenAttribute(...)] | 0 | False | -| System.Type[] | [NullableAttribute(...)] | 0 | 1 | -| System.Type[] | [NullableAttribute(...)] | 0 | [2,1] | -| System.Type[] System.Reflection.Assembly.GetExportedTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.Assembly.GetForwardedTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.Assembly.GetTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.Emit.AssemblyBuilder.GetExportedTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.Emit.RuntimeEnumBuilder.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.Emit.RuntimeEnumBuilder.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.Emit.RuntimeGenericTypeParameterBuilder.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Reflection.Emit.RuntimeModuleBuilder.GetTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.Emit.RuntimeTypeBuilder.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.Emit.RuntimeTypeBuilder.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Reflection.Emit.SymbolType.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.Emit.SymbolType.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Reflection.Emit.TypeBuilderInstantiation.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.Emit.TypeBuilderInstantiation.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Reflection.MethodBase.GetGenericArguments() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type[] System.Reflection.ModifiedType.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.ModifiedType.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Reflection.Module.FindTypes(System.Reflection.TypeFilter,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Type[] System.Reflection.Module.FindTypes(System.Reflection.TypeFilter,System.Object) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.Module.GetTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.PropertyInfo.GetOptionalCustomModifiers() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type[] System.Reflection.PropertyInfo.GetRequiredCustomModifiers() | [NullableContextAttribute(...)] | 0 | 1 | -| System.Type[] System.Reflection.ReflectionTypeLoadException.Types | [NullableAttribute(...)] | 0 | [1,2] | -| System.Type[] System.Reflection.RuntimeAssembly.GetExportedTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.RuntimeAssembly.GetForwardedTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.RuntimeModule.GetTypes() | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed | -| System.Type[] System.Reflection.SignatureType.FindInterfaces(System.Reflection.TypeFilter,System.Object) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.SignatureType.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.SignatureType.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Reflection.TypeDelegator.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Reflection.TypeDelegator.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Reflection.TypeInfo.<get_DeclaredNestedTypes>g__GetDeclaredOnlyNestedTypes\|22_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Type[] System.Reflection.TypeInfo.<get_DeclaredNestedTypes>g__GetDeclaredOnlyNestedTypes\|22_0(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:UnrecognizedReflectionPattern | -| System.Type[] System.RuntimeType.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.RuntimeType.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[] System.Type.FindInterfaces(System.Reflection.TypeFilter,System.Object) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Type.GetInterfaces() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 8192 | -| System.Type[] System.Type.GetNestedTypes() | [DynamicallyAccessedMembersAttribute(...)] | 0 | 128 | -| System.Type[] System.Type.GetNestedTypes(System.Reflection.BindingFlags) | [DynamicallyAccessedMembersAttribute(...)] | 0 | 384 | -| System.Type[][] | [NullableAttribute(...)] | 0 | [2,1,1] | -| System.TypedReference | [CLSCompliantAttribute(...)] | 0 | False | -| System.TypedReference | [NullableAttribute(...)] | 0 | 0 | -| System.TypedReference | [NullableContextAttribute(...)] | 0 | 2 | -| System.TypedReference System.ArgIterator.GetNextArg() | [CLSCompliantAttribute(...)] | 0 | False | -| System.TypedReference System.ArgIterator.GetNextArg(System.RuntimeTypeHandle) | [CLSCompliantAttribute(...)] | 0 | False | -| System.TypedReference System.TypedReference.MakeTypedReference(System.Object,System.Reflection.FieldInfo[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt16 System.BitConverter.HalfToUInt16Bits(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.BitConverter.ToUInt16(System.Byte[],System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.BitConverter.ToUInt16(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.BitConverter.ToUInt16(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.UInt16 System.Buffers.Binary.BinaryPrimitives.ReadUInt16BigEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Buffers.Binary.BinaryPrimitives.ReadUInt16LittleEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Byte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Char) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.DateTime) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Double) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Int16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Object,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.Single) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.String,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.String,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Convert.ToUInt16(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Decimal.ToUInt16(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Decimal.op_Explicit(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Half.op_CheckedExplicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Half.op_Explicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.IO.BinaryReader.ReadUInt16() | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.IO.UnmanagedMemoryAccessor.ReadUInt16(System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Int128.op_CheckedExplicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Int128.op_Explicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Math.Clamp(System.UInt16,System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Math.Max(System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Math.Min(System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Runtime.Serialization.SerializationInfo.GetUInt16(System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Threading.Thread.VolatileRead(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.Threading.Volatile.Read(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.UInt16.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt16 System.UInt16.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt16 System.UInt16.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt16 System.UInt16.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt16 System.UInt16.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt16 System.UInt16.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt16 System.UInt16.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt16 System.UInt128.op_CheckedExplicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt16 System.UInt128.op_Explicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 Interop.Kernel32.GetEnvironmentVariable(System.String,System.Char,System.UInt32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.UInt32 Interop.Kernel32.GetEnvironmentVariable(System.String,System.Char,System.UInt32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.UInt32 System.BitConverter.SingleToUInt32Bits(System.Single) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.BitConverter.ToUInt32(System.Byte[],System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.BitConverter.ToUInt32(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.BitConverter.ToUInt32(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.UInt32 System.Buffers.Binary.BinaryPrimitives.ReadUInt32BigEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Buffers.Binary.BinaryPrimitives.ReadUInt32LittleEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Byte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Char) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.DateTime) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Double) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Int16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Object,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.Single) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.String,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.String,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Convert.ToUInt32(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Decimal.ToUInt32(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Decimal.op_Explicit(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Half.op_CheckedExplicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Half.op_Explicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.IO.BinaryReader.ReadUInt32() | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.IO.UnmanagedMemoryAccessor.ReadUInt32(System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Int128.op_CheckedExplicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Int128.op_Explicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Math.Clamp(System.UInt32,System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Math.Max(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Math.Min(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Numerics.BitOperations.Crc32C(System.UInt32,System.Byte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Numerics.BitOperations.Crc32C(System.UInt32,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Numerics.BitOperations.Crc32C(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Numerics.BitOperations.Crc32C(System.UInt32,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Numerics.BitOperations.RotateLeft(System.UInt32,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Numerics.BitOperations.RotateRight(System.UInt32,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Numerics.BitOperations.RoundUpToPowerOf2(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Reflection.Assembly.GetAssemblyCount() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.UInt32 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Runtime.Intrinsics.Vector64.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector64<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Runtime.Intrinsics.Vector64.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector64<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.UInt32 System.Runtime.Intrinsics.Vector128.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector128<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Runtime.Intrinsics.Vector128.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector128<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.UInt32 System.Runtime.Intrinsics.Vector256.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector256<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Runtime.Intrinsics.Vector256.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector256<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.UInt32 System.Runtime.Serialization.SerializationInfo.GetUInt32(System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Interlocked.Add(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Interlocked.And(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Interlocked.CompareExchange(System.UInt32,System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Interlocked.Decrement(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Interlocked.Exchange(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Interlocked.Increment(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Interlocked.Or(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Thread.VolatileRead(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.Threading.Volatile.Read(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.UInt32.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt32 System.UInt32.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt32 System.UInt32.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt32 System.UInt32.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt32 System.UInt32.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt32 System.UInt32.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt32 System.UInt32.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt32 System.UInt128.op_CheckedExplicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt32 System.UInt128.op_Explicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.BitConverter.DoubleToUInt64Bits(System.Double) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.BitConverter.ToUInt64(System.Byte[],System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.BitConverter.ToUInt64(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.BitConverter.ToUInt64(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.UInt64 System.Buffers.Binary.BinaryPrimitives.ReadUInt64BigEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Buffers.Binary.BinaryPrimitives.ReadUInt64LittleEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Byte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Char) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.DateTime) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Double) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Int16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Object,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.Single) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.String,System.IFormatProvider) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.String,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Convert.ToUInt64(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Decimal.ToUInt64(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Decimal.op_Explicit(System.Decimal) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Diagnostics.Tracing.EventPipeInternal.Enable(System.Char*,System.Diagnostics.Tracing.EventPipeSerializationFormat,System.UInt32,System.Diagnostics.Tracing.EventPipeInternal.EventPipeProviderConfigurationNative*,System.UInt32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.UInt64 System.Half.op_CheckedExplicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Half.op_Explicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.IO.BinaryReader.ReadUInt64() | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.IO.UnmanagedMemoryAccessor.ReadUInt64(System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Int128.op_CheckedExplicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Int128.op_Explicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Math.BigMul(System.UInt64,System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Math.Clamp(System.UInt64,System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Math.Max(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Math.Min(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Numerics.BitOperations.RotateLeft(System.UInt64,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Numerics.BitOperations.RotateRight(System.UInt64,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Numerics.BitOperations.RoundUpToPowerOf2(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Runtime.Intrinsics.Vector512.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector512<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Runtime.Intrinsics.Vector512.ExtractMostSignificantBits`1(System.Runtime.Intrinsics.Vector512<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.UInt64 System.Runtime.Serialization.SerializationInfo.GetUInt64(System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Interlocked.Add(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Interlocked.And(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Interlocked.CompareExchange(System.UInt64,System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Interlocked.Decrement(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Interlocked.Exchange(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Interlocked.Increment(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Interlocked.Or(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Interlocked.Read(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Thread.GetCurrentOSThreadId() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.UInt64 System.Threading.Thread.VolatileRead(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.Threading.Volatile.Read(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.UInt64.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt64 System.UInt64.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt64 System.UInt64.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt64 System.UInt64.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt64 System.UInt64.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt64 System.UInt64.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt64 System.UInt64.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt64 System.UInt128.op_CheckedExplicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt64 System.UInt128.op_Explicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Buffers.Binary.BinaryPrimitives.ReadUInt128BigEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Buffers.Binary.BinaryPrimitives.ReadUInt128LittleEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Half.op_CheckedExplicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Half.op_Explicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Int128.op_CheckedExplicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Int128.op_Explicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.UInt128.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt128 System.UInt128.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt128 System.UInt128.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt128 System.UInt128.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt128 System.UInt128.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt128 System.UInt128.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt128 System.UInt128.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UInt128 System.UInt128.op_CheckedExplicit(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.UInt128.op_Explicit(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.UInt128.op_Implicit(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.UInt128.op_Implicit(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.UInt128.op_Implicit(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UInt128 System.UInt128.op_Implicit(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.UIntPtr System.Buffers.Binary.BinaryPrimitives.ReadUIntPtrBigEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Buffers.Binary.BinaryPrimitives.ReadUIntPtrLittleEndian(System.ReadOnlySpan<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Half.op_CheckedExplicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Half.op_Explicit(System.Half) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Int128.op_CheckedExplicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Int128.op_Explicit(System.Int128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Math.Clamp(System.UIntPtr,System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Math.Max(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Math.Min(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Numerics.BitOperations.RotateLeft(System.UIntPtr,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Numerics.BitOperations.RotateRight(System.UIntPtr,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Numerics.BitOperations.RoundUpToPowerOf2(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Runtime.InteropServices.NFloat.op_CheckedExplicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Runtime.InteropServices.NFloat.op_Explicit(System.Runtime.InteropServices.NFloat) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Text.Latin1Utility.GetIndexOfFirstNonLatin1Char_Sse2(System.Char*,System.UIntPtr) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.UIntPtr System.Text.Latin1Utility.NarrowUtf16ToLatin1_Sse2(System.Char*,System.Byte*,System.UIntPtr) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.UIntPtr System.Threading.Interlocked.CompareExchange(System.UIntPtr,System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Threading.Interlocked.Exchange(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Threading.Thread.VolatileRead(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.Threading.Volatile.Read(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.UInt128.op_CheckedExplicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.UInt128.op_Explicit(System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.UIntPtr System.UIntPtr.CreateChecked`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UIntPtr System.UIntPtr.CreateSaturating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UIntPtr System.UIntPtr.CreateTruncating`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UIntPtr System.UIntPtr.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UIntPtr System.UIntPtr.Parse(System.String,System.Globalization.NumberStyles) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UIntPtr System.UIntPtr.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UIntPtr System.UIntPtr.Parse(System.String,System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.UnauthorizedAccessException | [NullableAttribute(...)] | 0 | 0 | -| System.UnauthorizedAccessException | [NullableContextAttribute(...)] | 0 | 2 | -| System.UnauthorizedAccessException | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.UnhandledExceptionEventArgs | [NullableAttribute(...)] | 0 | 0 | -| System.UnhandledExceptionEventArgs | [NullableAttribute(...)] | 0 | 1 | -| System.UnhandledExceptionEventArgs | [NullableContextAttribute(...)] | 0 | 1 | -| System.UnitySerializationHolder | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.ValueTuple | [NullableAttribute(...)] | 0 | 0 | -| System.ValueTuple | [NullableContextAttribute(...)] | 0 | 1 | -| System.ValueTuple | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,!7> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7,!8,!9>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7,!8>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!7>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!7,!8,!9>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!7,!8,!9>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!7,!8,!9>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18,!19,!20>>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18,!19>>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17,!18>>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16,!17>>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15,!16>>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14,!15>>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9,System.ValueTuple<!14>>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6,System.ValueTuple<!10,!11,!12,!13,!7,!8,!9>> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5,!6> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4,!5> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3,!4> | [NullableAttribute(...)] | 0 | [0,1,1,1,1,1] | -| System.ValueTuple<!0,!1,!2,!3> | [NullableAttribute(...)] | 0 | [0,1,1,1,1] | -| System.ValueTuple<!0,!1,!2> | [NullableAttribute(...)] | 0 | [0,1,1,1] | -| System.ValueTuple<!0,!1> | [NullableAttribute(...)] | 0 | [0,1,1] | -| System.ValueTuple<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| System.ValueTuple<!0> System.TupleExtensions.ToValueTuple`1(System.Tuple<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.ValueTuple<System.HexConverter.Casing,System.IntPtr> | [TupleElementNamesAttribute(...)] | 0 | [RosPtr,casing] | -| System.ValueTuple<System.Int32,System.Int32,System.String,System.String>[] | [TupleElementNamesAttribute(...)] | 0 | [Literal,ArgIndex,Alignment,Format] | -| System.ValueTuple<System.Int32,System.Int32> System.Console.GetCursorPosition() | [NullableContextAttribute(...)] | 0 | 0 | -| System.ValueTuple<System.Int32,System.Int32> System.Console.GetCursorPosition() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.ValueTuple<System.Int32,System.Int32> System.Console.GetCursorPosition() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.ValueTuple<System.Int32,System.Int32> System.Console.GetCursorPosition() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.ValueTuple<System.Int32,System.Int32> System.Console.GetCursorPosition() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.ValueTuple<System.Int32,System.Int32> System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UInt32,System.Int32,System.Int32) | [RequiresPreviewFeaturesAttribute(...)] | 0 | DivRem is in preview. | -| System.ValueTuple<System.Int64,System.Int64> System.Runtime.Intrinsics.X86.X86Base.X64.DivRem(System.UInt64,System.Int64,System.Int64) | [RequiresPreviewFeaturesAttribute(...)] | 0 | DivRem is in preview. | -| System.ValueTuple<System.IntPtr,System.IntPtr> System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UIntPtr,System.IntPtr,System.IntPtr) | [RequiresPreviewFeaturesAttribute(...)] | 0 | DivRem is in preview. | -| System.ValueTuple<System.Object,System.Object> System.Runtime.DependentHandle.TargetAndDependent | [NullableAttribute(...)] | 0 | [0,2,2] | -| System.ValueTuple<System.Object,System.Object> System.Runtime.DependentHandle.TargetAndDependent | [TupleElementNamesAttribute(...)] | 0 | [Target,Dependent] | -| System.ValueTuple<System.Runtime.Intrinsics.Vector64<System.Int16>,System.Runtime.Intrinsics.Vector64<System.Int16>> System.Runtime.Intrinsics.Vector64.Widen(System.Runtime.Intrinsics.Vector64<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector64<System.UInt16>,System.Runtime.Intrinsics.Vector64<System.UInt16>> System.Runtime.Intrinsics.Vector64.Widen(System.Runtime.Intrinsics.Vector64<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector64<System.UInt32>,System.Runtime.Intrinsics.Vector64<System.UInt32>> System.Runtime.Intrinsics.Vector64.Widen(System.Runtime.Intrinsics.Vector64<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector64<System.UInt64>,System.Runtime.Intrinsics.Vector64<System.UInt64>> System.Runtime.Intrinsics.Vector64.Widen(System.Runtime.Intrinsics.Vector64<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>> System.Guid.FormatGuidVector128Utf8(System.Guid,System.Boolean) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.ValueTuple<System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>> System.Guid.FormatGuidVector128Utf8(System.Guid,System.Boolean) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.ValueTuple<System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>> System.HexConverter.AsciiToHexVector128(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.ValueTuple<System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>> System.HexConverter.AsciiToHexVector128(System.Runtime.Intrinsics.Vector128<System.Byte>,System.Runtime.Intrinsics.Vector128<System.Byte>) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.ValueTuple<System.Runtime.Intrinsics.Vector128<System.Int16>,System.Runtime.Intrinsics.Vector128<System.Int16>> System.Runtime.Intrinsics.Vector128.Widen(System.Runtime.Intrinsics.Vector128<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector128<System.UInt16>,System.Runtime.Intrinsics.Vector128<System.UInt16>> System.Runtime.Intrinsics.Vector128.Widen(System.Runtime.Intrinsics.Vector128<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector128<System.UInt32>,System.Runtime.Intrinsics.Vector128<System.UInt32>> System.Runtime.Intrinsics.Vector128.Widen(System.Runtime.Intrinsics.Vector128<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector128<System.UInt64>,System.Runtime.Intrinsics.Vector128<System.UInt64>> System.Runtime.Intrinsics.Vector128.Widen(System.Runtime.Intrinsics.Vector128<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector256<System.Int16>,System.Runtime.Intrinsics.Vector256<System.Int16>> System.Runtime.Intrinsics.Vector256.Widen(System.Runtime.Intrinsics.Vector256<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector256<System.UInt16>,System.Runtime.Intrinsics.Vector256<System.UInt16>> System.Runtime.Intrinsics.Vector256.Widen(System.Runtime.Intrinsics.Vector256<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector256<System.UInt32>,System.Runtime.Intrinsics.Vector256<System.UInt32>> System.Runtime.Intrinsics.Vector256.Widen(System.Runtime.Intrinsics.Vector256<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector256<System.UInt64>,System.Runtime.Intrinsics.Vector256<System.UInt64>> System.Runtime.Intrinsics.Vector256.Widen(System.Runtime.Intrinsics.Vector256<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector512<System.Int16>,System.Runtime.Intrinsics.Vector512<System.Int16>> System.Runtime.Intrinsics.Vector512.Widen(System.Runtime.Intrinsics.Vector512<System.SByte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector512<System.UInt16>,System.Runtime.Intrinsics.Vector512<System.UInt16>> System.Runtime.Intrinsics.Vector512.Widen(System.Runtime.Intrinsics.Vector512<System.Byte>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector512<System.UInt32>,System.Runtime.Intrinsics.Vector512<System.UInt32>> System.Runtime.Intrinsics.Vector512.Widen(System.Runtime.Intrinsics.Vector512<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.Runtime.Intrinsics.Vector512<System.UInt64>,System.Runtime.Intrinsics.Vector512<System.UInt64>> System.Runtime.Intrinsics.Vector512.Widen(System.Runtime.Intrinsics.Vector512<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.SByte,System.SByte> System.Math.DivRem(System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.UInt16,System.UInt16> System.Math.DivRem(System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.UInt32,System.UInt32> System.Math.DivRem(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.UInt32,System.UInt32> System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UInt32,System.UInt32,System.UInt32) | [RequiresPreviewFeaturesAttribute(...)] | 0 | DivRem is in preview. | -| System.ValueTuple<System.UInt64,System.UInt64> System.Math.DivRem(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.UInt64,System.UInt64> System.Runtime.Intrinsics.X86.X86Base.X64.DivRem(System.UInt64,System.UInt64,System.UInt64) | [RequiresPreviewFeaturesAttribute(...)] | 0 | DivRem is in preview. | -| System.ValueTuple<System.UIntPtr,System.UIntPtr> System.Math.DivRem(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.ValueTuple<System.UIntPtr,System.UIntPtr> System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UIntPtr,System.UIntPtr,System.UIntPtr) | [RequiresPreviewFeaturesAttribute(...)] | 0 | DivRem is in preview. | -| System.ValueTuple`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple`1.Item1 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`2 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple`2.Item1 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`2.Item2 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`3 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple`3.Item1 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`3.Item2 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`3.Item3 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`4 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple`4.Item1 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`4.Item2 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`4.Item3 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`4.Item4 | [NullableAttribute(...)] | 0 | 1 | -| System.ValueTuple`5 | [NullableAttribute(...)] | 0 | 0 | -| System.ValueTuple`5 | [NullableContextAttribute(...)] | 0 | 1 | -| System.ValueTuple`5 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple`6 | [NullableAttribute(...)] | 0 | 0 | -| System.ValueTuple`6 | [NullableContextAttribute(...)] | 0 | 1 | -| System.ValueTuple`6 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple`7 | [NullableAttribute(...)] | 0 | 0 | -| System.ValueTuple`7 | [NullableContextAttribute(...)] | 0 | 1 | -| System.ValueTuple`7 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple`8 | [NullableAttribute(...)] | 0 | 0 | -| System.ValueTuple`8 | [NullableContextAttribute(...)] | 0 | 1 | -| System.ValueTuple`8 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.ValueTuple`8.Rest | [NullableAttribute(...)] | 0 | 0 | -| System.ValueType | [NullableAttribute(...)] | 0 | 0 | -| System.ValueType | [NullableContextAttribute(...)] | 0 | 2 | -| System.ValueType | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Version | [NotNullWhenAttribute(...)] | 0 | True | -| System.Version | [NullableAttribute(...)] | 0 | 2 | -| System.Version | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.Version System.Version.Parse(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void Internal.Console.Error.Write(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void Internal.Console.Write(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void Internal.Console.WriteLine(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.<LoadAssembly>g__LoadAssemblyLocal\|14_0(System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.<LoadAssembly>g__LoadAssemblyLocal\|14_0(System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.<LoadAssemblyBytes>g__LoadAssemblyBytesLocal\|16_0(System.ReadOnlySpan<System.Byte>,System.ReadOnlySpan<System.Byte>) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.<LoadAssemblyBytes>g__LoadAssemblyBytesLocal\|16_0(System.ReadOnlySpan<System.Byte>,System.ReadOnlySpan<System.Byte>) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyImpl(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Native hosting is not trim compatible and this warning will be seen if trimming is enabled. | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyImpl(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyImpl(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyImpl(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyImpl(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | maccatalyst | -| System.Void Internal.Runtime.InteropServices.ComponentActivator.LoadAssemblyImpl(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void Internal.Runtime.InteropServices.IsolatedComponentLoadContext..ctor(System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The trimmer might remove assemblies that are loaded by this class | -| System.Void Interop.Globalization.ChangeCase(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void Interop.Globalization.ChangeCase(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void Interop.Globalization.ChangeCaseInvariant(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void Interop.Globalization.ChangeCaseInvariant(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void Interop.Globalization.ChangeCaseTurkish(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void Interop.Globalization.ChangeCaseTurkish(System.Char*,System.Int32,System.Char*,System.Int32,System.Boolean) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void Interop.Globalization.CloseSortHandle(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | libSystem.Globalization.Native | -| System.Void Interop.Globalization.InitICUFunctions(System.IntPtr,System.IntPtr,System.String,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void Interop.Globalization.InitICUFunctions(System.IntPtr,System.IntPtr,System.String,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.AccessViolationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.AccessViolationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.AccessViolationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Action`1.Invoke(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`2.Invoke(!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`3.Invoke(!0,!1,!2) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`4..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`4.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`4.Invoke(!0,!1,!2,!3) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`5..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`5.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`5.Invoke(!0,!1,!2,!3,!4) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`6..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`6.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`6.Invoke(!0,!1,!2,!3,!4,!5) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`7..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`7.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`7.Invoke(!0,!1,!2,!3,!4,!5,!6) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`8..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`8.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`8.Invoke(!0,!1,!2,!3,!4,!5,!6,!7) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`9..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`9.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`9.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`10..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`10.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`10.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`11..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`11.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`11.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`12..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`12.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`12.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`13..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`13.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`13.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`14..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`14.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`14.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`15..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`15.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`15.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Action`16..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`16.EndInvoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Action`16.Invoke(!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.AggregateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.AggregateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.AggregateException..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AggregateException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.AggregateException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.AppDomain.AppendPrivatePath(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.AppendPrivatePath(System.String) | [ObsoleteAttribute(...)] | 0 | AppDomain.AppendPrivatePath has been deprecated and is not supported. | -| System.Void System.AppDomain.ClearPrivatePath() | [ObsoleteAttribute(...)] | 0 | AppDomain.ClearPrivatePath has been deprecated and is not supported. | -| System.Void System.AppDomain.ClearShadowCopyPath() | [ObsoleteAttribute(...)] | 0 | AppDomain.ClearShadowCopyPath has been deprecated and is not supported. | -| System.Void System.AppDomain.SetCachePath(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.SetCachePath(System.String) | [ObsoleteAttribute(...)] | 0 | AppDomain.SetCachePath has been deprecated and is not supported. | -| System.Void System.AppDomain.SetDynamicBase(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.SetDynamicBase(System.String) | [ObsoleteAttribute(...)] | 0 | AppDomain.SetDynamicBase has been deprecated and is not supported. | -| System.Void System.AppDomain.SetShadowCopyFiles() | [ObsoleteAttribute(...)] | 0 | AppDomain.SetShadowCopyFiles has been deprecated and is not supported. | -| System.Void System.AppDomain.SetShadowCopyPath(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.SetShadowCopyPath(System.String) | [ObsoleteAttribute(...)] | 0 | AppDomain.SetShadowCopyPath has been deprecated and is not supported. | -| System.Void System.AppDomain.Unload(System.AppDomain) | [ObsoleteAttribute(...)] | 0 | Creating and unloading AppDomains is not supported and throws an exception. | -| System.Void System.AppDomain.add_AssemblyLoad(System.AssemblyLoadEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.add_AssemblyResolve(System.ResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.add_DomainUnload(System.EventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.add_ProcessExit(System.EventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.add_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.add_ResourceResolve(System.ResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.add_TypeResolve(System.ResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.add_UnhandledException(System.UnhandledExceptionEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.remove_AssemblyLoad(System.AssemblyLoadEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.remove_AssemblyResolve(System.ResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.remove_DomainUnload(System.EventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.remove_ProcessExit(System.EventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.remove_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.remove_ResourceResolve(System.ResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.remove_TypeResolve(System.ResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomain.remove_UnhandledException(System.UnhandledExceptionEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.AppDomainUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.AppDomainUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.AppDomainUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ApplicationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ApplicationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ApplicationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ArgIterator..ctor(System.RuntimeArgumentHandle,System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.ArgumentException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ArgumentException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ArgumentException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ArgumentException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ArgumentException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ArgumentException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ArgumentNullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ArgumentNullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ArgumentNullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ArgumentNullException.ThrowIfNull(System.Void*,System.String) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.ArgumentNullException.ThrowIfNull(System.Void*,System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.ArgumentOutOfRangeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ArgumentOutOfRangeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ArgumentOutOfRangeException..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ArgumentOutOfRangeException..ctor(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ArgumentOutOfRangeException..ctor(System.String,System.Object,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ArgumentOutOfRangeException..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ArgumentOutOfRangeException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ArgumentOutOfRangeException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ArithmeticException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ArithmeticException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ArithmeticException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Array.Resize`1(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.SetValue(System.Object,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.SetValue(System.Object,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.SetValue(System.Object,System.Int32,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.SetValue(System.Object,System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.SetValue(System.Object,System.Int64,System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.SetValue(System.Object,System.Int64,System.Int64,System.Int64) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.Sort(System.Array,System.Array,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.Sort(System.Array,System.Array,System.Int32,System.Int32,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.Sort`2(!0[],!1[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.Sort`2(!0[],!1[],System.Collections.Generic.IComparer<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.Sort`2(!0[],!1[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Array.Sort`2(!0[],!1[],System.Int32,System.Int32,System.Collections.Generic.IComparer<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.AssemblyLoadEventHandler.Invoke(System.Object,System.AssemblyLoadEventArgs) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.AsyncCallback.Invoke(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.BadImageFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.BadImageFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.BadImageFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.BadImageFormatException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.BadImageFormatException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.BadImageFormatException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Buffer.MemoryCopy(System.Void*,System.Void*,System.Int64,System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffer.MemoryCopy(System.Void*,System.Void*,System.Int64,System.Int64) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Buffer.MemoryCopy(System.Void*,System.Void*,System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffer.MemoryCopy(System.Void*,System.Void*,System.UInt64,System.UInt64) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Buffer.__Memmove(System.Byte*,System.Byte*,System.UIntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Buffer.__ZeroMemory(System.Void*,System.UIntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Buffers.ArrayPoolEventSource.BufferAllocated(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferAllocatedReason) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Buffers.ArrayPoolEventSource.BufferAllocated(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferAllocatedReason) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Buffers.ArrayPoolEventSource.BufferDropped(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferDroppedReason) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Buffers.ArrayPoolEventSource.BufferDropped(System.Int32,System.Int32,System.Int32,System.Int32,System.Buffers.ArrayPoolEventSource.BufferDroppedReason) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.Buffers.ArrayPoolEventSource.BufferRented(System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Buffers.ArrayPoolEventSource.BufferRented(System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.ReadOnlySpan<System.UInt16>,System.Span<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.ReadOnlySpan<System.UInt32>,System.Span<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.ReadOnlySpan<System.UInt64>,System.Span<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.ReadOnlySpan<System.UInt128>,System.Span<System.UInt128>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(System.ReadOnlySpan<System.UIntPtr>,System.Span<System.UIntPtr>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUInt16BigEndian(System.Span<System.Byte>,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUInt16LittleEndian(System.Span<System.Byte>,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUInt32BigEndian(System.Span<System.Byte>,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUInt32LittleEndian(System.Span<System.Byte>,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUInt64BigEndian(System.Span<System.Byte>,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUInt64LittleEndian(System.Span<System.Byte>,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUInt128BigEndian(System.Span<System.Byte>,System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUInt128LittleEndian(System.Span<System.Byte>,System.UInt128) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUIntPtrBigEndian(System.Span<System.Byte>,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.Binary.BinaryPrimitives.WriteUIntPtrLittleEndian(System.Span<System.Byte>,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.MemoryHandle..ctor(System.Void*,System.Runtime.InteropServices.GCHandle,System.Buffers.IPinnable) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Buffers.ReadOnlySpanAction`2.Invoke(System.ReadOnlySpan<!0>,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Buffers.SpanAction`2.Invoke(System.Span<!0>,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Buffers.Text.Base64.Avx2Decode(System.Byte*,System.Byte*,System.Byte*,System.Int32,System.Int32,System.Byte*,System.Byte*) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Void System.Buffers.Text.Base64.Avx2Encode(System.Byte*,System.Byte*,System.Byte*,System.Int32,System.Int32,System.Byte*,System.Byte*) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Avx2 | -| System.Void System.Buffers.Text.Base64.Vector128Decode(System.Byte*,System.Byte*,System.Byte*,System.Int32,System.Int32,System.Byte*,System.Byte*) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Void System.Buffers.Text.Base64.Vector128Decode(System.Byte*,System.Byte*,System.Byte*,System.Int32,System.Int32,System.Byte*,System.Byte*) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Void System.Buffers.Text.Base64.Vector128Encode(System.Byte*,System.Byte*,System.Byte*,System.Int32,System.Int32,System.Byte*,System.Byte*) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Void System.Buffers.Text.Base64.Vector128Encode(System.Byte*,System.Byte*,System.Byte*,System.Int32,System.Int32,System.Byte*,System.Byte*) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Void System.CannotUnloadAppDomainException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.CannotUnloadAppDomainException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.CannotUnloadAppDomainException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.Write(System.Char[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.Write(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.Write(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.Write(System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.WriteLine(System.Char[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.WriteLine(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.WriteLine(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.WriteLine(System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.WriteLine(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.CodeDom.Compiler.IndentedTextWriter.WriteLineNoTabs(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.ArrayList.Insert(System.Int32,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.ArrayList.Remove(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.ArrayList.Sort(System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.ArrayList.Sort(System.Int32,System.Int32,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.ArrayList.set_Item(System.Int32,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Comparer.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Comparer.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.DictionaryEntry.Deconstruct(System.Object,System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.DictionaryEntry.set_Value(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Generic.Dictionary`2..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.Dictionary`2..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Generic.Dictionary`2.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.Dictionary`2.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Generic.Dictionary`2.KeyCollection..ctor(System.Collections.Generic.Dictionary<!0,!1>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.Dictionary`2.KeyCollection.CopyTo(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.Dictionary`2.OnDeserialization(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Generic.Dictionary`2.ValueCollection..ctor(System.Collections.Generic.Dictionary<!0,!1>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.Dictionary`2.ValueCollection.CopyTo(!1[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.EnumEqualityComparer`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.HashSet`1..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.HashSet`1..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Generic.HashSet`1.OnDeserialization(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Generic.KeyNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.KeyNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.KeyNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Generic.KeyValuePair`2.Deconstruct(!0,!1) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.NonRandomizedStringEqualityComparer..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.NonRandomizedStringEqualityComparer..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.NonRandomizedStringEqualityComparer..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Generic.NullableComparer`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Generic.NullableEqualityComparer`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Hashtable..ctor(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable..ctor(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use Hashtable(IDictionary, IEqualityComparer) instead. | -| System.Void System.Collections.Hashtable..ctor(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable..ctor(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use Hashtable(IDictionary, float, IEqualityComparer) instead. | -| System.Void System.Collections.Hashtable..ctor(System.Collections.IEqualityComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable..ctor(System.Collections.IHashCodeProvider,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable..ctor(System.Collections.IHashCodeProvider,System.Collections.IComparer) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use Hashtable(IEqualityComparer) instead. | -| System.Void System.Collections.Hashtable..ctor(System.Int32,System.Collections.IEqualityComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable..ctor(System.Int32,System.Collections.IHashCodeProvider,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable..ctor(System.Int32,System.Collections.IHashCodeProvider,System.Collections.IComparer) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use Hashtable(int, IEqualityComparer) instead. | -| System.Void System.Collections.Hashtable..ctor(System.Int32,System.Single,System.Collections.IEqualityComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable..ctor(System.Int32,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable..ctor(System.Int32,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use Hashtable(int, float, IEqualityComparer) instead. | -| System.Void System.Collections.Hashtable..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Hashtable..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Hashtable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Collections.Hashtable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Hashtable.OnDeserialization(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable.SyncHashtable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Collections.Hashtable.set_comparer(System.Collections.IComparer) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.Hashtable.set_hcp(System.Collections.IHashCodeProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection.CopyTo(!1[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ComAwareWeakReference.ComWeakRefToObject(System.IntPtr,System.Int64,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.ComponentModel.DefaultValueAttribute..ctor(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.ComponentModel.DefaultValueAttribute..ctor(System.Type,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ComponentModel.DefaultValueAttribute..ctor(System.Type,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Generic TypeConverters may require the generic types to be annotated. For example, NullableConverter requires the underlying type to be DynamicallyAccessedMembers All. | -| System.Void System.ComponentModel.DefaultValueAttribute..ctor(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.ComponentModel.DefaultValueAttribute..ctor(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.ComponentModel.DefaultValueAttribute..ctor(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.ComponentModel.Win32Exception..ctor(System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ComponentModel.Win32Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ComponentModel.Win32Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ComponentModel.Win32Exception..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ComponentModel.Win32Exception..ctor(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ComponentModel.Win32Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ComponentModel.Win32Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Console.Beep() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.Beep() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Console.Beep() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.Beep() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.Beep(System.Int32,System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.Clear() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.Clear() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.Clear() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.MoveBufferArea(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.MoveBufferArea(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Char,System.ConsoleColor,System.ConsoleColor) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.ResetColor() | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.ResetColor() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Console.ResetColor() | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.ResetColor() | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.SetBufferSize(System.Int32,System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.SetCursorPosition(System.Int32,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.SetCursorPosition(System.Int32,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Console.SetCursorPosition(System.Int32,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.SetCursorPosition(System.Int32,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.SetIn(System.IO.TextReader) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.SetIn(System.IO.TextReader) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Console.SetIn(System.IO.TextReader) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.SetIn(System.IO.TextReader) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.SetWindowPosition(System.Int32,System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.SetWindowSize(System.Int32,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.SetWindowSize(System.Int32,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Console.SetWindowSize(System.Int32,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.SetWindowSize(System.Int32,System.Int32) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.Write(System.Char[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.Write(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.Write(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.Write(System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.Write(System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.Write(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Console.Write(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Console.WriteLine(System.Char[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.WriteLine(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.WriteLine(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.WriteLine(System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.WriteLine(System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.WriteLine(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Console.WriteLine(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Console.add_CancelKeyPress(System.ConsoleCancelEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.remove_CancelKeyPress(System.ConsoleCancelEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Console.set_BufferHeight(System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.set_BufferWidth(System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.set_CursorSize(System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.set_CursorVisible(System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.set_CursorVisible(System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Console.set_CursorVisible(System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.set_CursorVisible(System.Boolean) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.set_OutputEncoding(System.Text.Encoding) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.set_OutputEncoding(System.Text.Encoding) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.set_OutputEncoding(System.Text.Encoding) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.set_Title(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| System.Void System.Console.set_Title(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Console.set_Title(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.Console.set_Title(System.String) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.Console.set_WindowLeft(System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Console.set_WindowTop(System.Int32) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.ConsoleCancelEventHandler.Invoke(System.Object,System.ConsoleCancelEventArgs) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ContextMarshalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ContextMarshalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ContextMarshalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.CultureAwareComparer.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DBNull.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.DBNull.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.DataMisalignedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.DataMisalignedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.DateOnly..ctor(System.Int32,System.Int32,System.Int32,System.Globalization.Calendar) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateOnly.Deconstruct(System.Int32,System.Int32,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.DateTime..ctor(System.Int32,System.Int32,System.Int32,System.Globalization.Calendar) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateTime..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateTime..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateTime..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar,System.DateTimeKind) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateTime..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateTime..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar,System.DateTimeKind) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateTime.Deconstruct(System.DateOnly,System.TimeOnly) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.DateTime.Deconstruct(System.Int32,System.Int32,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.DateTimeOffset..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateTimeOffset..ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Globalization.Calendar,System.TimeSpan) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DateTimeOffset.Deconstruct(System.DateOnly,System.TimeOnly,System.TimeSpan) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Decimal..ctor(System.Int32[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Decimal..ctor(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Decimal..ctor(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Delegate..ctor(System.Object,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The target method might be removed | -| System.Void System.Delegate.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Delegate.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute..ctor(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute..ctor(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes,System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute..ctor(System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute..ctor(System.String,System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.CodeAnalysis.ExperimentalAttribute.set_UrlFormat(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.set_Url(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.set_Url(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Diagnostics.CodeAnalysis.SuppressMessageAttribute..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Contracts.Contract.Assert(System.Boolean) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Assert(System.Boolean) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Contracts.Contract.Assert(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Assert(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Contracts.Contract.Assert(System.Boolean,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Diagnostics.Contracts.Contract.AssertMustUseRewriter(System.Diagnostics.Contracts.ContractFailureKind,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Contracts.Contract.AssertMustUseRewriter(System.Diagnostics.Contracts.ContractFailureKind,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.Diagnostics.Contracts.Contract.Assume(System.Boolean) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Assume(System.Boolean) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Contracts.Contract.Assume(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Assume(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Contracts.Contract.Assume(System.Boolean,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Diagnostics.Contracts.Contract.EndContractBlock() | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Ensures(System.Boolean) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Ensures(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Ensures(System.Boolean,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Diagnostics.Contracts.Contract.EnsuresOnThrow`1(System.Boolean) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.EnsuresOnThrow`1(System.Boolean) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Contracts.Contract.EnsuresOnThrow`1(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.EnsuresOnThrow`1(System.Boolean,System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Contracts.Contract.Invariant(System.Boolean) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Invariant(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Invariant(System.Boolean,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Diagnostics.Contracts.Contract.Requires(System.Boolean) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Requires(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | CONTRACTS_FULL | -| System.Void System.Diagnostics.Contracts.Contract.Requires(System.Boolean,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Diagnostics.Contracts.Contract.Requires`1(System.Boolean) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Contracts.Contract.Requires`1(System.Boolean,System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Contracts.ContractException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Diagnostics.Contracts.ContractException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Contracts.ContractException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Contracts.ContractException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Diagnostics.Debug.Assert(System.Boolean) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Assert(System.Boolean,System.Diagnostics.Debug.AssertInterpolatedStringHandler) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Assert(System.Boolean,System.Diagnostics.Debug.AssertInterpolatedStringHandler,System.Diagnostics.Debug.AssertInterpolatedStringHandler) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Assert(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Assert(System.Boolean,System.String,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Assert(System.Boolean,System.String,System.String,System.Object[]) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Assert(System.Boolean,System.String,System.String,System.Object[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.AssertInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Debug.AssertInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan<System.Char>,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Debug.AssertInterpolatedStringHandler.AppendFormatted`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.AssertInterpolatedStringHandler.AppendFormatted`1(!0,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.AssertInterpolatedStringHandler.AppendLiteral(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.Close() | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Fail(System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Fail(System.String,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Flush() | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Indent() | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Print(System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Print(System.String,System.Object[]) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Print(System.String,System.Object[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.Unindent() | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Write(System.Object) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Write(System.Object,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Write(System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.Write(System.String,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteIf(System.Boolean,System.Diagnostics.Debug.WriteIfInterpolatedStringHandler) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteIf(System.Boolean,System.Diagnostics.Debug.WriteIfInterpolatedStringHandler,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteIf(System.Boolean,System.Object) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteIf(System.Boolean,System.Object,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteIf(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteIf(System.Boolean,System.String,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteIfInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Debug.WriteIfInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan<System.Char>,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Debug.WriteIfInterpolatedStringHandler.AppendFormatted`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.WriteIfInterpolatedStringHandler.AppendFormatted`1(!0,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.WriteIfInterpolatedStringHandler.AppendLiteral(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.WriteLine(System.Object) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLine(System.Object,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLine(System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLine(System.String,System.Object[]) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLine(System.String,System.Object[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debug.WriteLine(System.String,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLineIf(System.Boolean,System.Diagnostics.Debug.WriteIfInterpolatedStringHandler) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLineIf(System.Boolean,System.Diagnostics.Debug.WriteIfInterpolatedStringHandler,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLineIf(System.Boolean,System.Object) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLineIf(System.Boolean,System.Object,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLineIf(System.Boolean,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Debug.WriteLineIf(System.Boolean,System.String,System.String) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.DebugProvider.FailCore(System.String,System.String,System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.DebugProvider.WriteCore(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Debugger.LogInternal(System.Int32,System.String,System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Diagnostics.Debugger.LogInternal(System.Int32,System.String,System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Diagnostics.DebuggerTypeProxyAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.DebuggerTypeProxyAttribute..ctor(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.DebuggerVisualizerAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.DebuggerVisualizerAttribute..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.DebuggerVisualizerAttribute..ctor(System.String,System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.DebuggerVisualizerAttribute..ctor(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.DebuggerVisualizerAttribute..ctor(System.Type,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.DebuggerVisualizerAttribute..ctor(System.Type,System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.StackTrace.ToString(System.Diagnostics.StackTrace.TraceFormat,System.Text.StringBuilder) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.StackTrace.ToString(System.Diagnostics.StackTrace.TraceFormat,System.Text.StringBuilder) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventCounter.WritePayload(System.Single,System.Int32) | [DynamicDependencyAttribute(...)] | 0 | 512 | -| System.Void System.Diagnostics.Tracing.EventCounter.WritePayload(System.Single,System.Int32) | [DynamicDependencyAttribute(...)] | 1 | System.Diagnostics.Tracing.CounterPayload | -| System.Void System.Diagnostics.Tracing.EventCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventPipeInternal.DeleteProvider(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.EventPipeInternal.Disable(System.UInt64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.EventPipeInternal.WriteEventData(System.IntPtr,System.Diagnostics.Tracing.EventProvider.EventData*,System.UInt32,System.Guid*,System.Guid*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.EventSource..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Tracing.EventSource..ctor(System.String,System.Diagnostics.Tracing.EventSourceSettings) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Tracing.EventSource..ctor(System.String,System.Diagnostics.Tracing.EventSourceSettings,System.String[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Tracing.EventSource.AssertValidString(System.Diagnostics.Tracing.EventSource.EventData*) | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Diagnostics.Tracing.EventSource.OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Tracing.EventSource.SendCommand(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventCommand,System.Collections.Generic.IDictionary<System.String,System.String>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Tracing.EventSource.Write(System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.Write(System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.Write(System.String,System.Diagnostics.Tracing.EventSourceOptions) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.Write(System.String,System.Diagnostics.Tracing.EventSourceOptions) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Byte[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Byte[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Diagnostics.Tracing.EventSource.EventSourcePrimitive[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Diagnostics.Tracing.EventSource.EventSourcePrimitive[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Diagnostics.Tracing.EventSource.EventSourcePrimitive[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Byte[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Byte[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Int64,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.Int64,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Int64,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.String,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32,System.String,System.String,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventCore(System.Int32,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventCore(System.Int32,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventCore(System.Int32,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventCore(System.Int32,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventCore(System.Int32,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventVarargs(System.Int32,System.Guid*,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventVarargs(System.Int32,System.Guid*,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventVarargs(System.Int32,System.Guid*,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityId(System.Int32,System.Guid,System.Object[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityId(System.Int32,System.Guid,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityId(System.Int32,System.Guid,System.Object[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(System.Int32,System.Guid*,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(System.Int32,System.Guid*,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(System.Int32,System.Guid*,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(System.Int32,System.Guid*,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(System.Int32,System.Guid*,System.Int32,System.Diagnostics.Tracing.EventSource.EventData*) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,!0) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,!0) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,!0) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,System.Diagnostics.Tracing.EventSourceOptions,!0) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,System.Diagnostics.Tracing.EventSourceOptions,!0) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,System.Diagnostics.Tracing.EventSourceOptions,!0) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,System.Diagnostics.Tracing.EventSourceOptions,System.Guid,System.Guid,!0) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,System.Diagnostics.Tracing.EventSourceOptions,System.Guid,System.Guid,!0) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.EventSource.Write`1(System.String,System.Diagnostics.Tracing.EventSourceOptions,System.Guid,System.Guid,!0) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2112:ReflectionToRequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.EventSourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Tracing.EventSourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Diagnostics.Tracing.EventSourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent(System.Int32,System.Int64,System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent(System.Int32,System.Int64,System.Int32,System.String) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent(System.Int32,System.Int64,System.Int32,System.String,System.Boolean,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent(System.Int32,System.Int64,System.Int32,System.String,System.Boolean,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.IncrementingEventCounter.WritePayload(System.Single,System.Int32) | [DynamicDependencyAttribute(...)] | 0 | 512 | -| System.Void System.Diagnostics.Tracing.IncrementingEventCounter.WritePayload(System.Single,System.Int32) | [DynamicDependencyAttribute(...)] | 1 | System.Diagnostics.Tracing.IncrementingCounterPayload | -| System.Void System.Diagnostics.Tracing.IncrementingEventCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.IncrementingEventCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.IncrementingPollingCounter.WritePayload(System.Single,System.Int32) | [DynamicDependencyAttribute(...)] | 0 | 512 | -| System.Void System.Diagnostics.Tracing.IncrementingPollingCounter.WritePayload(System.Single,System.Int32) | [DynamicDependencyAttribute(...)] | 1 | System.Diagnostics.Tracing.IncrementingCounterPayload | -| System.Void System.Diagnostics.Tracing.IncrementingPollingCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.IncrementingPollingCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogContentionLockCreated(System.IntPtr,System.IntPtr,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogContentionStart(System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionFlagsMap,System.UInt16,System.IntPtr,System.IntPtr,System.UInt64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogContentionStop(System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionFlagsMap,System.UInt16,System.Double) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolIODequeue(System.IntPtr,System.IntPtr,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolIOEnqueue(System.IntPtr,System.IntPtr,System.Boolean,System.UInt16) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolIOEnqueue(System.IntPtr,System.IntPtr,System.Boolean,System.UInt16) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolIOEnqueue(System.IntPtr,System.IntPtr,System.Boolean,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolIOPack(System.IntPtr,System.IntPtr,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolMinMaxThreads(System.UInt16,System.UInt16,System.UInt16,System.UInt16,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadAdjustmentAdjustment(System.Double,System.UInt32,System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadAdjustmentReasonMap,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadAdjustmentSample(System.Double,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadAdjustmentStats(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.UInt16,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadStart(System.UInt32,System.UInt32,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadStop(System.UInt32,System.UInt32,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkerThreadWait(System.UInt32,System.UInt32,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NativeRuntimeEventSource.LogThreadPoolWorkingThreadCount(System.UInt32,System.UInt16) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Diagnostics.Tracing.NullableTypeInfo..ctor(System.Type,System.Collections.Generic.List<System.Type>) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Void System.Diagnostics.Tracing.NullableTypeInfo.WriteData(System.Diagnostics.Tracing.PropertyValue) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.NullableTypeInfo.WriteData(System.Diagnostics.Tracing.PropertyValue) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2072:UnrecognizedReflectionPattern | -| System.Void System.Diagnostics.Tracing.PollingCounter.WritePayload(System.Single,System.Int32) | [DynamicDependencyAttribute(...)] | 0 | 512 | -| System.Void System.Diagnostics.Tracing.PollingCounter.WritePayload(System.Single,System.Int32) | [DynamicDependencyAttribute(...)] | 1 | System.Diagnostics.Tracing.CounterPayload | -| System.Void System.Diagnostics.Tracing.PollingCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Diagnostics.Tracing.PollingCounter.WritePayload(System.Single,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.Diagnostics.Tracing.TraceLoggingEventTypes..ctor(System.String,System.Diagnostics.Tracing.EventTags,System.Reflection.ParameterInfo[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Void System.Diagnostics.Tracing.TraceLoggingEventTypes..ctor(System.String,System.Diagnostics.Tracing.EventTags,System.Type[]) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Void System.Diagnostics.Tracing.TypeAnalysis..ctor(System.Type,System.Diagnostics.Tracing.EventDataAttribute,System.Collections.Generic.List<System.Type>) | [RequiresUnreferencedCodeAttribute(...)] | 0 | EventSource WriteEvent will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type | -| System.Void System.DivideByZeroException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.DivideByZeroException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DivideByZeroException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.DllNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.DllNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DllNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.DuplicateWaitObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.DuplicateWaitObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.DuplicateWaitObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.EntryPointNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.EntryPointNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.EntryPointNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Enum.AssertValidGenerics`2() | [ConditionalAttribute(...)] | 0 | DEBUG | -| System.Void System.Enum.GetEnumValuesAndNames(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack,Interop.BOOL) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Environment.FailFast(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Environment.FailFast(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Environment._Exit(System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.EventHandler.Invoke(System.Object,System.EventArgs) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.EventHandler`1.Invoke(System.Object,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Exception..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Exception.GetMessageFromNativeResources(System.Exception.ExceptionMessageKind,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.FieldAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.FieldAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.FieldAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.FormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.FormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.FormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Func`5..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`6..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`7..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`8..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`9..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`10..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`11..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`12..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`13..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`14..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`15..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`16..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Func`17..ctor(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.GC.KeepAlive(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.GC._AddMemoryPressure(System.UInt64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.GC._Collect(System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.GC._EnumerateConfigurationValues(System.Void*,delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void>) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.GC._RemoveMemoryPressure(System.UInt64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.GC._UnregisterFrozenSegment(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.GC._WaitForPendingFinalizers() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Globalization.CompareInfo.InitSort(System.Globalization.CultureInfo) | [MemberNotNullAttribute(...)] | 0 | _sortName | -| System.Void System.Globalization.CultureInfo.set_DefaultThreadCurrentCulture(System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Globalization.CultureInfo.set_DefaultThreadCurrentUICulture(System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Globalization.CultureNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Globalization.CultureNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Globalization.CultureNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Globalization.CultureNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Globalization.CultureNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Globalization.CultureNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Globalization.DateTimeFormatInfo.set_Calendar(System.Globalization.Calendar) | [MemberNotNullAttribute(...)] | 0 | calendar | -| System.Void System.Globalization.StringInfo.set_String(System.String) | [MemberNotNullAttribute(...)] | 0 | _str | -| System.Void System.Guid..ctor(System.Byte[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Guid..ctor(System.Int32,System.Int16,System.Int16,System.Byte[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Guid..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Guid..ctor(System.UInt32,System.UInt16,System.UInt16,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte,System.Byte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.HashCode.AddBytes(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.HexConverter.EncodeToUtf16_Vector128(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.HexConverter.Casing) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.Arm.AdvSimd.Arm64 | -| System.Void System.HexConverter.EncodeToUtf16_Vector128(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.HexConverter.Casing) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Ssse3 | -| System.Void System.IO.BinaryWriter.Write(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.BinaryWriter.Write(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.BinaryWriter.Write(System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.BinaryWriter.Write(System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.BinaryWriter.Write(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.BinaryWriter.Write(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.BufferedStream.EnsureBufferAllocated() | [MemberNotNullAttribute(...)] | 0 | _buffer | -| System.Void System.IO.BufferedStream.Write(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.DirectoryNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.DirectoryNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.DirectoryNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.EndOfStreamException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.EndOfStreamException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.EndOfStreamException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.Enumeration.FileSystemEnumerable`1..ctor(System.String,System.IO.Enumeration.FileSystemEnumerable<!0>.FindTransform,System.IO.EnumerationOptions) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.Enumeration.FileSystemEnumerator`1..ctor(System.String,System.IO.EnumerationOptions) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.File.Decrypt(System.String) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.IO.File.Encrypt(System.String) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.IO.File.SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.UnixFileMode) | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.IO.File.SetUnixFileMode(System.String,System.IO.UnixFileMode) | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.IO.FileInfo.Decrypt() | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.IO.FileInfo.Encrypt() | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.IO.FileLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.FileLoadException.GetFileLoadExceptionMessage(System.Int32,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.IO.FileLoadException.GetMessageForHR(System.Int32,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.IO.FileLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.FileNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.FileNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileNotFoundException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.FileStream..ctor(System.IntPtr,System.IO.FileAccess) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileStream..ctor(System.IntPtr,System.IO.FileAccess) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) instead. | -| System.Void System.IO.FileStream..ctor(System.IntPtr,System.IO.FileAccess,System.Boolean) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileStream..ctor(System.IntPtr,System.IO.FileAccess,System.Boolean) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead. | -| System.Void System.IO.FileStream..ctor(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileStream..ctor(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead. | -| System.Void System.IO.FileStream..ctor(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32,System.Boolean) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileStream..ctor(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32,System.Boolean) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead. | -| System.Void System.IO.FileStream.Lock(System.Int64,System.Int64) | [UnsupportedOSPlatformAttribute(...)] | 0 | freebsd | -| System.Void System.IO.FileStream.Lock(System.Int64,System.Int64) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.IO.FileStream.Lock(System.Int64,System.Int64) | [UnsupportedOSPlatformAttribute(...)] | 0 | macos | -| System.Void System.IO.FileStream.Lock(System.Int64,System.Int64) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.IO.FileStream.Unlock(System.Int64,System.Int64) | [UnsupportedOSPlatformAttribute(...)] | 0 | freebsd | -| System.Void System.IO.FileStream.Unlock(System.Int64,System.Int64) | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| System.Void System.IO.FileStream.Unlock(System.Int64,System.Int64) | [UnsupportedOSPlatformAttribute(...)] | 0 | macos | -| System.Void System.IO.FileStream.Unlock(System.Int64,System.Int64) | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| System.Void System.IO.FileStream.Write(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.FileStreamOptions.set_UnixCreateMode(System.Nullable<System.IO.UnixFileMode>) | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.IO.FileSystemInfo..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileSystemInfo..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.FileSystemInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.FileSystemInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.FileSystemInfo.set_UnixFileMode(System.IO.UnixFileMode) | [UnsupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.IO.IOException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.IOException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.IOException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.InvalidDataException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.MemoryStream.Write(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.PathTooLongException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.IO.PathTooLongException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.PathTooLongException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.IO.RandomAccess.FlushToDisk(Microsoft.Win32.SafeHandles.SafeFileHandle) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.RandomAccess.SetLength(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Int64) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.RandomAccess.Write(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList<System.ReadOnlyMemory<System.Byte>>,System.Int64) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.AllocateBuffer() | [MemberNotNullAttribute(...)] | 0 | _buffer | -| System.Void System.IO.Strategies.BufferedFileStreamStrategy.EnsureBufferAllocated() | [MemberNotNullAttribute(...)] | 0 | _buffer | -| System.Void System.IO.Stream.ObjectInvariant() | [ObsoleteAttribute(...)] | 0 | Do not call or override this method. | -| System.Void System.IO.Stream.ReadExactly(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.Stream.Write(System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.StreamWriter.Write(System.Char[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StreamWriter.Write(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.StreamWriter.Write(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StreamWriter.Write(System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StreamWriter.Write(System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StreamWriter.WriteLine(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.StreamWriter.WriteLine(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StreamWriter.WriteLine(System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StreamWriter.WriteLine(System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StringWriter..ctor(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StringWriter.Write(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.StringWriter.Write(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StringWriter.Write(System.Text.StringBuilder) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.StringWriter.WriteLine(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.StringWriter.WriteLine(System.Text.StringBuilder) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter..ctor(System.IFormatProvider) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.Write(System.Char[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.Write(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.Write(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.TextWriter.Write(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.Write(System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.Write(System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.Write(System.Text.StringBuilder) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.Write(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.TextWriter.Write(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.TextWriter.WriteLine(System.Char[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.WriteLine(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.WriteLine(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.IO.TextWriter.WriteLine(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.WriteLine(System.String,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.WriteLine(System.String,System.Object,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.WriteLine(System.Text.StringBuilder) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.IO.TextWriter.WriteLine(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.TextWriter.WriteLine(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.UnmanagedMemoryAccessor..ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.UnmanagedMemoryAccessor..ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.UnmanagedMemoryAccessor.Initialize(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.UnmanagedMemoryAccessor.Write(System.Int64,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.UnmanagedMemoryAccessor.Write(System.Int64,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.UnmanagedMemoryAccessor.Write(System.Int64,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.UnmanagedMemoryAccessor.Write(System.Int64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.UnmanagedMemoryStream..ctor(System.Byte*,System.Int64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.UnmanagedMemoryStream..ctor(System.Byte*,System.Int64,System.Int64,System.IO.FileAccess) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.UnmanagedMemoryStream..ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.UnmanagedMemoryStream..ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.UnmanagedMemoryStream.Initialize(System.Byte*,System.Int64,System.Int64,System.IO.FileAccess) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IO.UnmanagedMemoryStream.Initialize(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IO.UnmanagedMemoryStream.Write(System.Byte[],System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.IndexOutOfRangeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.InsufficientExecutionStackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.InsufficientMemoryException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Int128..ctor(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.IntPtr..ctor(System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.InvalidCastException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.InvalidCastException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.InvalidCastException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.InvalidOperationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.InvalidOperationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.InvalidOperationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.InvalidProgramException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.InvalidTimeZoneException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.InvalidTimeZoneException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.InvalidTimeZoneException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.MemberAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.MemberAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.MemberAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.MemoryExtensions.CopyTo`1(!0[],System.Memory<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MemoryExtensions.CopyTo`1(!0[],System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MemoryExtensions.Replace`1(System.ReadOnlySpan<!0>,System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.MemoryExtensions.Replace`1(System.Span<!0>,!0,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.MemoryExtensions.Reverse`1(System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MemoryExtensions.Sort`1(System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MemoryExtensions.Sort`1(System.Span<!0>,System.Comparison<!0>) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.MemoryExtensions.Sort`2(System.Span<!0>,System.Span<!1>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MemoryExtensions.Sort`2(System.Span<!0>,System.Span<!1>,System.Comparison<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MemoryExtensions.Sort`3(System.Span<!0>,System.Span<!1>,!2) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MethodAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.MethodAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.MethodAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.MissingFieldException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.MissingFieldException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.MissingFieldException..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MissingFieldException..ctor(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MissingFieldException..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MissingMemberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.MissingMemberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.MissingMemberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.MissingMemberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.MissingMemberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.MissingMemberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.MissingMethodException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.MissingMethodException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.MissingMethodException..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MissingMethodException..ctor(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.MissingMethodException..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ModuleHandle.GetModuleType(System.Runtime.CompilerServices.QCallModule,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.ModuleHandle.GetPEKind(System.Runtime.CompilerServices.QCallModule,System.Int32*,System.Int32*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.ModuleHandle.ResolveField(System.Runtime.CompilerServices.QCallModule,System.Int32,System.IntPtr*,System.Int32,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.ModuleHandle.ResolveType(System.Runtime.CompilerServices.QCallModule,System.Int32,System.IntPtr*,System.Int32,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.MulticastDelegate..ctor(System.Object,System.String) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The target method might be removed | -| System.Void System.MulticastDelegate.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.MulticastDelegate.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.MulticastNotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Net.WebUtility.HtmlDecode(System.String,System.IO.TextWriter) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Net.WebUtility.HtmlEncode(System.String,System.IO.TextWriter) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.NotFiniteNumberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.NotFiniteNumberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.NotFiniteNumberException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.NotFiniteNumberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.NotFiniteNumberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.NotFiniteNumberException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.NotImplementedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.NotImplementedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.NotImplementedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.NotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.NotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.NotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.NullReferenceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.NullReferenceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.NullReferenceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Numerics.Vector2.CopyTo(System.Single[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector2.CopyTo(System.Single[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector3.CopyTo(System.Single[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector3.CopyTo(System.Single[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector4.CopyTo(System.Single[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector4.CopyTo(System.Single[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector.StoreAlignedNonTemporal`1(System.Numerics.Vector<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Numerics.Vector.StoreAlignedNonTemporal`1(System.Numerics.Vector<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Numerics.Vector.StoreAligned`1(System.Numerics.Vector<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Numerics.Vector.StoreAligned`1(System.Numerics.Vector<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Numerics.Vector.StoreUnsafe`1(System.Numerics.Vector<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector.StoreUnsafe`1(System.Numerics.Vector<!0>,!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Numerics.Vector.StoreUnsafe`1(System.Numerics.Vector<!0>,!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector.Store`1(System.Numerics.Vector<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Numerics.Vector.Store`1(System.Numerics.Vector<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Numerics.Vector.Widen(System.Numerics.Vector<System.Byte>,System.Numerics.Vector<System.UInt16>,System.Numerics.Vector<System.UInt16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Numerics.Vector.Widen(System.Numerics.Vector<System.SByte>,System.Numerics.Vector<System.Int16>,System.Numerics.Vector<System.Int16>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Numerics.Vector.Widen(System.Numerics.Vector<System.UInt16>,System.Numerics.Vector<System.UInt32>,System.Numerics.Vector<System.UInt32>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Numerics.Vector.Widen(System.Numerics.Vector<System.UInt32>,System.Numerics.Vector<System.UInt64>,System.Numerics.Vector<System.UInt64>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Numerics.Vector`1..ctor(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector`1..ctor(!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector`1..ctor(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector`1.CopyTo(!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Numerics.Vector`1.CopyTo(!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ObjectDisposedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ObjectDisposedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ObjectDisposedException..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ObjectDisposedException..ctor(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ObjectDisposedException..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.ObjectDisposedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.ObjectDisposedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.OperatingSystem.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.OperatingSystem.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.OperationCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.OperationCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.OperationCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.OutOfMemoryException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.OutOfMemoryException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.OutOfMemoryException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.OverflowException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.OverflowException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.OverflowException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.PlatformNotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.PlatformNotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.PlatformNotSupportedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Random.CompatPrng.EnsureInitialized(System.Int32) | [MemberNotNullAttribute(...)] | 0 | _seedArray | -| System.Void System.Random.CompatPrng.Initialize(System.Int32) | [MemberNotNullAttribute(...)] | 0 | _seedArray | -| System.Void System.Random.GetItems`1(System.ReadOnlySpan<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Random.NextBytes(System.Span<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Random.Shuffle`1(System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.RankException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.RankException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.RankException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.ReadOnlySpan`1..ctor(System.Void*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.ReadOnlySpan`1..ctor(System.Void*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.AmbiguousMatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.Assembly.GetEntryAssemblyNative(System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Assembly.GetExecutingAssemblyNative(System.Runtime.CompilerServices.StackCrawlMarkHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Assembly.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.Assembly.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.Assembly.add_ModuleResolve(System.Reflection.ModuleResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Assembly.remove_ModuleResolve(System.Reflection.ModuleResolveEventHandler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.AssemblyAlgorithmIdAttribute..ctor(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Reflection.AssemblyFlagsAttribute..ctor(System.Int32) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use AssemblyFlagsAttribute(AssemblyNameFlags) instead. | -| System.Void System.Reflection.AssemblyFlagsAttribute..ctor(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Reflection.AssemblyFlagsAttribute..ctor(System.UInt32) | [ObsoleteAttribute(...)] | 0 | This constructor has been deprecated. Use AssemblyFlagsAttribute(AssemblyNameFlags) instead. | -| System.Void System.Reflection.AssemblyName..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.AssemblyName.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.AssemblyName.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.AssemblyName.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.AssemblyName.InitializeAssemblySpec(System.Reflection.NativeAssemblyNameParts*,System.Void*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.CustomAttribute.AddCustomAttributes(System.RuntimeType.ListBuilder<System.Object>,System.Reflection.RuntimeModule,System.Int32,System.RuntimeType,System.Boolean,System.RuntimeType.ListBuilder<System.Object>) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Reflection.CustomAttribute.AddCustomAttributes(System.RuntimeType.ListBuilder<System.Object>,System.Reflection.RuntimeModule,System.Int32,System.RuntimeType,System.Boolean,System.RuntimeType.ListBuilder<System.Object>) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:MethodParameterDoesntMeetThisParameterRequirements | -| System.Void System.Reflection.CustomAttributeFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.CustomAttributeFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.CustomAttributeFormatException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.Emit.AssemblyBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.ConstructorBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.DynamicILInfo.SetCode(System.Byte*,System.Int32,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Reflection.Emit.DynamicILInfo.SetCode(System.Byte*,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.DynamicILInfo.SetCode(System.Byte[],System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.DynamicILInfo.SetExceptions(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Reflection.Emit.DynamicILInfo.SetExceptions(System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.DynamicILInfo.SetExceptions(System.Byte[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.DynamicILInfo.SetLocalSignature(System.Byte*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Reflection.Emit.DynamicILInfo.SetLocalSignature(System.Byte*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.DynamicILInfo.SetLocalSignature(System.Byte[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.DynamicMethod..ctor(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Reflection.Module,System.Boolean) | [RequiresDynamicCodeAttribute(...)] | 0 | Creating a DynamicMethod requires dynamic code. | -| System.Void System.Reflection.Emit.DynamicMethod..ctor(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type,System.Boolean) | [RequiresDynamicCodeAttribute(...)] | 0 | Creating a DynamicMethod requires dynamic code. | -| System.Void System.Reflection.Emit.DynamicMethod..ctor(System.String,System.Type,System.Type[]) | [RequiresDynamicCodeAttribute(...)] | 0 | Creating a DynamicMethod requires dynamic code. | -| System.Void System.Reflection.Emit.DynamicMethod..ctor(System.String,System.Type,System.Type[],System.Boolean) | [RequiresDynamicCodeAttribute(...)] | 0 | Creating a DynamicMethod requires dynamic code. | -| System.Void System.Reflection.Emit.DynamicMethod..ctor(System.String,System.Type,System.Type[],System.Reflection.Module) | [RequiresDynamicCodeAttribute(...)] | 0 | Creating a DynamicMethod requires dynamic code. | -| System.Void System.Reflection.Emit.DynamicMethod..ctor(System.String,System.Type,System.Type[],System.Reflection.Module,System.Boolean) | [RequiresDynamicCodeAttribute(...)] | 0 | Creating a DynamicMethod requires dynamic code. | -| System.Void System.Reflection.Emit.DynamicMethod..ctor(System.String,System.Type,System.Type[],System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | Creating a DynamicMethod requires dynamic code. | -| System.Void System.Reflection.Emit.DynamicMethod..ctor(System.String,System.Type,System.Type[],System.Type,System.Boolean) | [RequiresDynamicCodeAttribute(...)] | 0 | Creating a DynamicMethod requires dynamic code. | -| System.Void System.Reflection.Emit.DynamicMethod.Init(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type,System.Reflection.Module,System.Boolean,System.Boolean) | [MemberNotNullAttribute(...)] | 0 | _module | -| System.Void System.Reflection.Emit.DynamicMethod.Init(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type,System.Reflection.Module,System.Boolean,System.Boolean) | [MemberNotNullAttribute(...)] | 0 | _name | -| System.Void System.Reflection.Emit.DynamicMethod.Init(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type,System.Reflection.Module,System.Boolean,System.Boolean) | [MemberNotNullAttribute(...)] | 0 | _parameterTypes | -| System.Void System.Reflection.Emit.DynamicMethod.Init(System.String,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type,System.Reflection.Module,System.Boolean,System.Boolean) | [MemberNotNullAttribute(...)] | 0 | _returnType | -| System.Void System.Reflection.Emit.EnumBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.EventBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.FieldBuilder.SetConstant(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.FieldBuilder.SetConstantCore(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.FieldBuilder.SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.Emit.FieldBuilder.SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.Emit.GenericTypeParameterBuilder.SetBaseTypeConstraint(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.GenericTypeParameterBuilder.SetBaseTypeConstraintCore(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.GenericTypeParameterBuilder.SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.Emit.GenericTypeParameterBuilder.SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.Emit.ILGenerator.BeginCatchBlock(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.ILGenerator.Emit(System.Reflection.Emit.OpCode,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Reflection.Emit.ILGenerator.EmitCalli(System.Reflection.Emit.OpCode,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.ILGenerator.EmitCalli(System.Reflection.Emit.OpCode,System.Runtime.InteropServices.CallingConvention,System.Type,System.Type[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.MethodBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.MethodBuilder.SetReturnType(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.MethodBuilder.SetSignature(System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.MethodBuilder.SetSignatureCore(System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.ModuleBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.ParameterBuilder.SetCustomAttribute(System.Reflection.ConstructorInfo,System.Byte[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.Emit.ParameterBuilder.SetCustomAttribute(System.Reflection.Emit.CustomAttributeBuilder) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.Emit.ParameterBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.PropertyBuilder.SetConstant(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.PropertyBuilder.SetConstantCore(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.PropertyBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.RuntimeAssemblyBuilder.CreateDynamicAssembly(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Reflection.NativeAssemblyNameParts*,System.Configuration.Assemblies.AssemblyHashAlgorithm,System.Reflection.Emit.AssemblyBuilderAccess,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeEnumBuilder..ctor(System.String,System.Type,System.Reflection.TypeAttributes,System.Reflection.Emit.RuntimeModuleBuilder) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Reflection.Emit.RuntimeEnumBuilder..ctor(System.String,System.Type,System.Reflection.TypeAttributes,System.Reflection.Emit.RuntimeModuleBuilder) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2064:UnrecognizedReflectionPattern | -| System.Void System.Reflection.Emit.RuntimeModuleBuilder.SetFieldRVAContent(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.Emit.RuntimeModuleBuilder.SetFieldRVAContent(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.Emit.RuntimeModuleBuilder.SetFieldRVAContent(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Byte[],System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.AddInterfaceImpl(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.DefineCustomAttribute(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.ReadOnlySpan<System.Byte>,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.DefineCustomAttribute(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.ReadOnlySpan<System.Byte>,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.DefineCustomAttribute(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.ReadOnlySpan<System.Byte>,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodImpl(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodSemantics(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Reflection.MethodSemanticsAttributes,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetClassLayout(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Reflection.Emit.PackingSize,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetConstantValue(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32,System.Void*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetFieldLayoutOffset(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetMethodIL(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Boolean,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32,System.Reflection.Emit.ExceptionHandler[],System.Int32,System.Int32[],System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetMethodIL(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Boolean,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32,System.Reflection.Emit.ExceptionHandler[],System.Int32,System.Int32[],System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetMethodIL(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Boolean,System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32,System.Reflection.Emit.ExceptionHandler[],System.Int32,System.Int32[],System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetMethodImpl(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Reflection.MethodImplAttributes) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetPInvokeData(System.Runtime.CompilerServices.QCallModule,System.String,System.String,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetPInvokeData(System.Runtime.CompilerServices.QCallModule,System.String,System.String,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.SetParentType(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.RuntimeTypeBuilder.TermCreateClass(System.Runtime.CompilerServices.QCallModule,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Emit.SignatureHelper.Init(System.Reflection.Module) | [MemberNotNullAttribute(...)] | 0 | m_signature | -| System.Void System.Reflection.Emit.SignatureHelper.Init(System.Reflection.Module,System.Reflection.MdSigCallingConvention) | [MemberNotNullAttribute(...)] | 0 | m_signature | -| System.Void System.Reflection.Emit.SignatureHelper.Init(System.Reflection.Module,System.Reflection.MdSigCallingConvention,System.Int32) | [MemberNotNullAttribute(...)] | 0 | m_signature | -| System.Void System.Reflection.Emit.TypeBuilder.SetCustomAttributeCore(System.Reflection.ConstructorInfo,System.ReadOnlySpan<System.Byte>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Reflection.Emit.TypeBuilder.SetParent(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.Emit.TypeBuilder.SetParentCore(System.Type) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.FieldInfo.SetValue(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.FieldInfo.SetValue(System.Object,System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Globalization.CultureInfo) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.FieldInfo.SetValueDirect(System.TypedReference,System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Reflection.InvalidFilterCriteriaException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.InvalidFilterCriteriaException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.InvalidFilterCriteriaException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.Metadata.MetadataUpdater.ApplyUpdate(System.Runtime.CompilerServices.QCallAssembly,System.Byte*,System.Int32,System.Byte*,System.Int32,System.Byte*,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler.ClearCache(System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler.ClearCache(System.Type[]) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.Reflection.Module.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.Module.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.ReflectionTypeLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.ReflectionTypeLoadException..ctor(System.Type[],System.Exception[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.ReflectionTypeLoadException..ctor(System.Type[],System.Exception[],System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Reflection.ReflectionTypeLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.ReflectionTypeLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.RuntimeAssembly.AddPublicNestedTypes(System.Type,System.Collections.Generic.List<System.Type>,System.Collections.Generic.List<System.Exception>) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types might be removed because recursive nested types can't currently be annotated for dynamic access. | -| System.Void System.Reflection.RuntimeAssembly.GetEntryPoint(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetExportedTypes(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetForwardedType(System.Runtime.CompilerServices.QCallAssembly,System.Reflection.MetadataToken,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetFullName(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetImageRuntimeVersion(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetLocale(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetLocation(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetModule(System.Runtime.CompilerServices.QCallAssembly,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.RuntimeAssembly.GetModule(System.Runtime.CompilerServices.QCallAssembly,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.RuntimeAssembly.GetModules(System.Runtime.CompilerServices.QCallAssembly,System.Boolean,System.Boolean,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.RuntimeAssembly.GetModules(System.Runtime.CompilerServices.QCallAssembly,System.Boolean,System.Boolean,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.RuntimeAssembly.GetModules(System.Runtime.CompilerServices.QCallAssembly,System.Boolean,System.Boolean,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.RuntimeAssembly.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.RuntimeAssembly.GetPublicKey(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetSimpleName(System.Runtime.CompilerServices.QCallAssembly,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.GetTypeCore(System.Runtime.CompilerServices.QCallAssembly,System.String,System.ReadOnlySpan<System.String>,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.RuntimeAssembly.GetTypeCore(System.Runtime.CompilerServices.QCallAssembly,System.String,System.ReadOnlySpan<System.String>,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.RuntimeAssembly.GetTypeCoreIgnoreCase(System.Runtime.CompilerServices.QCallAssembly,System.String,System.ReadOnlySpan<System.String>,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.RuntimeAssembly.GetTypeCoreIgnoreCase(System.Runtime.CompilerServices.QCallAssembly,System.String,System.ReadOnlySpan<System.String>,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.RuntimeAssembly.GetVersion(System.Runtime.CompilerServices.QCallAssembly,System.Int32,System.Int32,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.RuntimeAssembly.GetVersion(System.Runtime.CompilerServices.QCallAssembly,System.Int32,System.Int32,System.Int32,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.RuntimeAssembly.GetVersion(System.Runtime.CompilerServices.QCallAssembly,System.Int32,System.Int32,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeAssembly.InternalLoad(System.Reflection.NativeAssemblyNameParts*,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StackCrawlMarkHandle,System.Boolean,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Reflection.RuntimeAssembly.InternalLoad(System.Reflection.NativeAssemblyNameParts*,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StackCrawlMarkHandle,System.Boolean,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Reflection.RuntimeAssembly.InternalLoad(System.Reflection.NativeAssemblyNameParts*,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StackCrawlMarkHandle,System.Boolean,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeConstructorInfo.InvokeClassConstructor() | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Reflection.RuntimeConstructorInfo.InvokeClassConstructor() | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2059:RunClassConstructor | -| System.Void System.Reflection.RuntimeCustomAttributeData..ctor(System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.Reflection.ConstArray) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Reflection.RuntimeCustomAttributeData..ctor(System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.Reflection.ConstArray) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Reflection.RuntimeCustomAttributeData..ctor(System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.Reflection.ConstArray) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Void System.Reflection.RuntimeCustomAttributeData.Init(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Reflection.RuntimeCustomAttributeData.Init(System.Object) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2075:UnrecognizedReflectionPattern | -| System.Void System.Reflection.RuntimeModule.GetFullyQualifiedName(System.Runtime.CompilerServices.QCallModule,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.RuntimeModule.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.RuntimeModule.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.RuntimeModule.GetScopeName(System.Runtime.CompilerServices.QCallModule,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Reflection.StrongNameKeyPair..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.StrongNameKeyPair..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.TargetException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.TargetException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Reflection.TargetException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.TargetInvocationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Reflection.TargetParameterCountException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Resources.MissingManifestResourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Resources.MissingManifestResourceException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Resources.MissingSatelliteAssemblyException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Resources.MissingSatelliteAssemblyException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Resources.MissingSatelliteAssemblyException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Resources.ResourceManager.CommonAssemblyInit() | [MemberNotNullAttribute(...)] | 0 | _resourceGroveler | -| System.Void System.Resources.ResourceReader..ctor(System.IO.Stream) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Resources.ResourceReader..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Resources.ResourceReader.GetResourceData(System.String,System.String,System.Byte[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Resources.ResourceReader.ReadResources() | [MemberNotNullAttribute(...)] | 0 | _typeNamePositions | -| System.Void System.Resources.ResourceReader.ReadResources() | [MemberNotNullAttribute(...)] | 0 | _typeTable | -| System.Void System.Resources.ResourceReader._ReadResources() | [MemberNotNullAttribute(...)] | 0 | _typeNamePositions | -| System.Void System.Resources.ResourceReader._ReadResources() | [MemberNotNullAttribute(...)] | 0 | _typeTable | -| System.Void System.Runtime.AmbiguousImplementationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute..ctor(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.AsyncStateMachineAttribute..ctor(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.DecimalConstantAttribute..ctor(System.Byte,System.Byte,System.UInt32,System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.DefaultInterpolatedStringHandler..ctor(System.Int32,System.Int32,System.IFormatProvider,System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan<System.Char>,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.AppendFormatted`1(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.AppendFormatted`1(!0,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.AppendLiteral(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ICriticalNotifyCompletion.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.IndexerNameAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.IteratorStateMachineAttribute..ctor(System.Type) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.CleanupCode.Invoke(System.Object,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.CompileMethod(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(System.Runtime.CompilerServices.RuntimeHelpers.TryCode,System.Runtime.CompilerServices.RuntimeHelpers.CleanupCode,System.Object) | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.GetUninitializedObject(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegions() | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegionsNoOP() | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareContractedDelegate(System.Delegate) | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod(System.RuntimeMethodHandle,System.RuntimeTypeHandle[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod(System.RuntimeMethodHandleInternal,System.IntPtr*,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.ProbeForSufficientStack() | [ObsoleteAttribute(...)] | 0 | The Constrained Execution Region (CER) feature is not supported. | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(System.RuntimeTypeHandle) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Trimmer can't guarantee existence of class constructor | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.RunModuleConstructor(System.Runtime.CompilerServices.QCallModule) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.CompilerServices.RuntimeHelpers.TryCode.Invoke(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.CompilerServices.RuntimeWrappedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.CompilerServices.RuntimeWrappedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.RuntimeWrappedException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.CompilerServices.StrongBox`1..ctor(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.SwitchExpressionException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.CompilerServices.SwitchExpressionException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.SwitchExpressionException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.SwitchExpressionException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.CompilerServices.TaskAwaiter.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.TaskAwaiter.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.TaskAwaiter`1.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.TaskAwaiter`1.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte,System.Byte,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte,System.Byte,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.Unsafe.Copy`1(!0,System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.Copy`1(!0,System.Void*) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.Unsafe.Copy`1(System.Void*,!0) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.Copy`1(System.Void*,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte,System.Byte,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte,System.Byte,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.Unsafe.WriteUnaligned`1(System.Void*,!0) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.WriteUnaligned`1(System.Void*,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.Unsafe.Write`1(System.Void*,!0) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.CompilerServices.Unsafe.Write`1(System.Void*,!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Runtime.CompilerServices.ValueTaskAwaiter.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ValueTaskAwaiter.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ValueTaskAwaiter`1.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.ValueTaskAwaiter`1.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.OnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.UnsafeOnCompleted(System.Action) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.ControlledExecution.AbortThread(System.Threading.ThreadHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.ControlledExecution.ResetAbortThread() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.ControlledExecution.Run(System.Action,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.ControlledExecution.Run(System.Action,System.Threading.CancellationToken) | [ObsoleteAttribute(...)] | 0 | ControlledExecution.Run method may corrupt the process and should not be used in production code. | -| System.Void System.Runtime.InteropServices.COMException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.COMException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.COMException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.InteropServices.ComTypes.IBindCtx.EnumObjectParam(System.Runtime.InteropServices.ComTypes.IEnumString) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.ComTypes.IBindCtx.GetRunningObjectTable(System.Runtime.InteropServices.ComTypes.IRunningObjectTable) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.ComTypes.IConnectionPointContainer.FindConnectionPoint(System.Guid,System.Runtime.InteropServices.ComTypes.IConnectionPoint) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.ComTypes.IMoniker.Enum(System.Boolean,System.Runtime.InteropServices.ComTypes.IEnumMoniker) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.ComTypes.IMoniker.Reduce(System.Runtime.InteropServices.ComTypes.IBindCtx,System.Int32,System.Runtime.InteropServices.ComTypes.IMoniker,System.Runtime.InteropServices.ComTypes.IMoniker) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.ComTypes.IPersistFile.Save(System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation2(System.Int32,System.String,System.Int32,System.String) | [LCIDConversionAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetMops(System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.ComTypes.ITypeInfo.GetMops(System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation2(System.Int32,System.String,System.Int32,System.String) | [LCIDConversionAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal(System.IntPtr,System.IntPtr,System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal(System.IntPtr,System.IntPtr,System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal(System.IntPtr,System.IntPtr,System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.InteropServices.ComWrappers.RegisterForMarshalling(System.Runtime.InteropServices.ComWrappers) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Runtime.InteropServices.ComWrappers.SetGlobalInstanceRegisteredForMarshalling(System.Int64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.InteropServices.ComWrappers.SetGlobalInstanceRegisteredForTrackerSupport(System.Int64) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.InteropServices.CurrencyWrapper..ctor(System.Object) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.ExternalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.ExternalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.ExternalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.InteropServices.InvalidComObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.InvalidComObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.InvalidComObjectException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.InteropServices.InvalidOleVariantTypeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.InvalidOleVariantTypeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.InvalidOleVariantTypeException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.InteropServices.LibraryImportAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.ChangeWrapperHandleStrength(System.Object,System.Boolean) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Runtime.InteropServices.Marshal.DestroyStructure(System.IntPtr,System.Type) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.DestroyStructure(System.IntPtr,System.Type) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available. Use the DestroyStructure<T> overload instead. | -| System.Void System.Runtime.InteropServices.Marshal.DestroyStructure`1(System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.Marshal.DestroyStructure`1(System.IntPtr) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Void System.Runtime.InteropServices.Marshal.DestroyStructure`1(System.IntPtr) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Void System.Runtime.InteropServices.Marshal.GetNativeVariantForObject(System.Object,System.IntPtr) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.GetNativeVariantForObject(System.Object,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.Marshal.GetNativeVariantForObject(System.Object,System.IntPtr) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Runtime.InteropServices.Marshal.GetNativeVariantForObject`1(!0,System.IntPtr) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.GetNativeVariantForObject`1(!0,System.IntPtr) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.InteropServices.Marshal.GetNativeVariantForObject`1(!0,System.IntPtr) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Runtime.InteropServices.Marshal.InternalPrelink(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.InteropServices.Marshal.PrelinkAll(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Runtime.InteropServices.Marshal.PrelinkAll(System.Type) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2070:UnrecognizedReflectionPattern | -| System.Void System.Runtime.InteropServices.Marshal.PtrToStructure(System.IntPtr,System.Object) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.PtrToStructure(System.IntPtr,System.Object) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Void System.Runtime.InteropServices.Marshal.StructureToPtr(System.Object,System.IntPtr,System.Boolean) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.StructureToPtr(System.Object,System.IntPtr,System.Boolean) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available. Use the StructureToPtr<T> overload instead. | -| System.Void System.Runtime.InteropServices.Marshal.StructureToPtr`1(!0,System.IntPtr,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 0 | AotAnalysis | -| System.Void System.Runtime.InteropServices.Marshal.StructureToPtr`1(!0,System.IntPtr,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL3050:AotUnfriendlyApi | -| System.Void System.Runtime.InteropServices.Marshal.WriteByte(System.Object,System.Int32,System.Byte) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.WriteByte(System.Object,System.Int32,System.Byte) | [ObsoleteAttribute(...)] | 0 | WriteByte(Object, Int32, Byte) may be unavailable in future releases. | -| System.Void System.Runtime.InteropServices.Marshal.WriteByte(System.Object,System.Int32,System.Byte) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt16(System.Object,System.Int32,System.Char) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt16(System.Object,System.Int32,System.Char) | [ObsoleteAttribute(...)] | 0 | WriteInt16(Object, Int32, Char) may be unavailable in future releases. | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt16(System.Object,System.Int32,System.Char) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt16(System.Object,System.Int32,System.Int16) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt16(System.Object,System.Int32,System.Int16) | [ObsoleteAttribute(...)] | 0 | WriteInt16(Object, Int32, Int16) may be unavailable in future releases. | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt16(System.Object,System.Int32,System.Int16) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt32(System.Object,System.Int32,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt32(System.Object,System.Int32,System.Int32) | [ObsoleteAttribute(...)] | 0 | WriteInt32(Object, Int32, Int32) may be unavailable in future releases. | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt32(System.Object,System.Int32,System.Int32) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt64(System.Object,System.Int32,System.Int64) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt64(System.Object,System.Int32,System.Int64) | [ObsoleteAttribute(...)] | 0 | WriteInt64(Object, Int32, Int64) may be unavailable in future releases. | -| System.Void System.Runtime.InteropServices.Marshal.WriteInt64(System.Object,System.Int32,System.Int64) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Void System.Runtime.InteropServices.Marshal.WriteIntPtr(System.Object,System.Int32,System.IntPtr) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.Marshal.WriteIntPtr(System.Object,System.Int32,System.IntPtr) | [ObsoleteAttribute(...)] | 0 | WriteIntPtr(Object, Int32, IntPtr) may be unavailable in future releases. | -| System.Void System.Runtime.InteropServices.Marshal.WriteIntPtr(System.Object,System.Int32,System.IntPtr) | [RequiresDynamicCodeAttribute(...)] | 0 | Marshalling code for the object might not be available | -| System.Void System.Runtime.InteropServices.MarshalDirectiveException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.MarshalDirectiveException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.MarshalDirectiveException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.InteropServices.Marshalling.SafeHandleMarshaller`1.ManagedToUnmanagedIn.FromManaged(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.NativeLibrary.FreeLib(System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.InteropServices.NativeMemory.AlignedFree(System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.NativeMemory.Clear(System.Void*,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.NativeMemory.Copy(System.Void*,System.Void*,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.NativeMemory.Fill(System.Void*,System.UIntPtr,System.Byte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.NativeMemory.Free(System.Void*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SEHException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.SEHException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.SEHException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.InteropServices.SafeArrayRankMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.SafeArrayRankMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.SafeArrayRankMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.InteropServices.SafeArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.SafeArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.InteropServices.SafeArrayTypeMismatchException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.InteropServices.SafeBuffer.AcquirePointer(System.Byte*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SafeBuffer.Initialize(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SafeBuffer.Initialize(System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SafeBuffer.Initialize`1(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SafeBuffer.ReadArray`1(System.UInt64,!0[],System.Int32,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SafeBuffer.ReadSpan`1(System.UInt64,System.Span<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SafeBuffer.WriteArray`1(System.UInt64,!0[],System.Int32,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SafeBuffer.WriteSpan`1(System.UInt64,System.ReadOnlySpan<!0>) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.InteropServices.SafeBuffer.Write`1(System.UInt64,!0) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector64.CopyTo`1(System.Runtime.Intrinsics.Vector64<!0>,!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector64.CopyTo`1(System.Runtime.Intrinsics.Vector64<!0>,!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector64.CopyTo`1(System.Runtime.Intrinsics.Vector64<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector64.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector64.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector64.StoreAligned`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector64.StoreAligned`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector64.StoreUnsafe`1(System.Runtime.Intrinsics.Vector64<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector64.StoreUnsafe`1(System.Runtime.Intrinsics.Vector64<!0>,!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector64.StoreUnsafe`1(System.Runtime.Intrinsics.Vector64<!0>,!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector64.Store`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector64.Store`1(System.Runtime.Intrinsics.Vector64<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector128.CopyTo`1(System.Runtime.Intrinsics.Vector128<!0>,!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector128.CopyTo`1(System.Runtime.Intrinsics.Vector128<!0>,!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector128.CopyTo`1(System.Runtime.Intrinsics.Vector128<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector128.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector128.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector128.StoreAligned`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector128.StoreAligned`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector128.StoreUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector128.StoreUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector128.StoreUnsafe`1(System.Runtime.Intrinsics.Vector128<!0>,!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector128.Store`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector128.Store`1(System.Runtime.Intrinsics.Vector128<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector256.CopyTo`1(System.Runtime.Intrinsics.Vector256<!0>,!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector256.CopyTo`1(System.Runtime.Intrinsics.Vector256<!0>,!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector256.CopyTo`1(System.Runtime.Intrinsics.Vector256<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector256.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector256.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector256.StoreAligned`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector256.StoreAligned`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector256.StoreUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector256.StoreUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector256.StoreUnsafe`1(System.Runtime.Intrinsics.Vector256<!0>,!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector256.Store`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector256.Store`1(System.Runtime.Intrinsics.Vector256<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector512.CopyTo`1(System.Runtime.Intrinsics.Vector512<!0>,!0[]) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector512.CopyTo`1(System.Runtime.Intrinsics.Vector512<!0>,!0[],System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector512.CopyTo`1(System.Runtime.Intrinsics.Vector512<!0>,System.Span<!0>) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector512.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector512.StoreAlignedNonTemporal`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector512.StoreAligned`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector512.StoreAligned`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.Vector512.StoreUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector512.StoreUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,!0,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector512.StoreUnsafe`1(System.Runtime.Intrinsics.Vector512<!0>,!0,System.UIntPtr) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Intrinsics.Vector512.Store`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Intrinsics.Vector512.Store`1(System.Runtime.Intrinsics.Vector512<!0>,!0*) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Intrinsics.X86.X86Base.__cpuidex(System.Int32*,System.Int32,System.Int32) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.Loader.AssemblyLoadContext..ctor(System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Loader.AssemblyLoadContext.InternalSetProfileRoot(System.String) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Runtime.Loader.AssemblyLoadContext.InternalSetProfileRoot(System.String) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Runtime.Loader.AssemblyLoadContext.InternalStartProfile(System.String,System.IntPtr) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Runtime.Loader.AssemblyLoadContext.InternalStartProfile(System.String,System.IntPtr) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(System.IntPtr,System.String,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(System.IntPtr,System.String,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(System.IntPtr,System.String,System.String,System.Runtime.CompilerServices.ObjectHandleOnStack) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Void System.Runtime.Loader.AssemblyLoadContext.LoadFromStream(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.Loader.AssemblyLoadContext.LoadFromStream(System.IntPtr,System.IntPtr,System.Int32,System.IntPtr,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [RequiresUnreferencedCodeAttribute(...)] | 0 | Types and members the loaded assembly depends on might be removed | -| System.Void System.Runtime.Loader.AssemblyLoadContext.PrepareForAssemblyLoadContextRelease(System.IntPtr,System.IntPtr) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Runtime.Loader.AssemblyLoadContext.StartProfileOptimization(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.ProfileOptimization.SetProfileRoot(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.ProfileOptimization.StartProfile(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Void System.Runtime.Serialization.SafeSerializationEventArgs.AddSerializedState(System.Runtime.Serialization.ISafeSerializationData) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Serialization.SerializationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Serialization.SerializationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Serialization.SerializationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Runtime.Serialization.SerializationInfo..ctor(System.Type,System.Runtime.Serialization.IFormatterConverter) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Serialization.SerializationInfo..ctor(System.Type,System.Runtime.Serialization.IFormatterConverter) | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Void System.Runtime.Serialization.SerializationInfo..ctor(System.Type,System.Runtime.Serialization.IFormatterConverter,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Serialization.SerializationInfo..ctor(System.Type,System.Runtime.Serialization.IFormatterConverter,System.Boolean) | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Void System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Serialization.SerializationInfo.AddValue(System.String,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Runtime.Serialization.StreamingContext..ctor(System.Runtime.Serialization.StreamingContextStates) | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Void System.Runtime.Serialization.StreamingContext..ctor(System.Runtime.Serialization.StreamingContextStates,System.Object) | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| System.Void System.Runtime.Versioning.ObsoletedOSPlatformAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Versioning.ObsoletedOSPlatformAttribute..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Versioning.SupportedOSPlatformAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Versioning.SupportedOSPlatformGuardAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Versioning.TargetFrameworkAttribute.set_FrameworkDisplayName(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Runtime.Versioning.TargetPlatformAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Runtime.Versioning.UnsupportedOSPlatformGuardAttribute..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.RuntimeFieldHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.RuntimeFieldHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.RuntimeFieldHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.RuntimeMethodHandle.ConstructInstantiation(System.RuntimeMethodHandleInternal,System.TypeNameFormatFlags,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeMethodHandle.Destroy(System.RuntimeMethodHandleInternal) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeMethodHandle.GetMethodInstantiation(System.RuntimeMethodHandleInternal,System.Runtime.CompilerServices.ObjectHandleOnStack,Interop.BOOL) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeMethodHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.RuntimeMethodHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.RuntimeMethodHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.RuntimeMethodHandle.GetTypicalMethodDefinition(System.RuntimeMethodHandleInternal,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeMethodHandle.StripMethodInstantiation(System.RuntimeMethodHandleInternal,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.ConstructName(System.Runtime.CompilerServices.QCallTypeHandle,System.TypeNameFormatFlags,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.CreateInstanceForAnotherGenericParameter(System.Runtime.CompilerServices.QCallTypeHandle,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.GetActivationInfo(System.Runtime.CompilerServices.ObjectHandleOnStack,delegate* managed<Void*,Object>*,System.Void**,delegate* managed<Object,Void>*,Interop.BOOL*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.GetConstraints(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.GetGenericTypeDefinition(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.GetInstantiation(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack,Interop.BOOL) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.RuntimeTypeHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.RuntimeTypeHandle.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.RuntimeTypeHandle.Instantiate(System.Runtime.CompilerServices.QCallTypeHandle,System.IntPtr*,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.MakeArray(System.Runtime.CompilerServices.QCallTypeHandle,System.Int32,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.MakeByRef(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.MakePointer(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.MakeSZArray(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.ObjectHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.RegisterCollectibleTypeDependency(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.QCallAssembly) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.RuntimeTypeHandle.VerifyInterfaceIsImplemented(System.Runtime.CompilerServices.QCallTypeHandle,System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Security.Cryptography.CryptographicException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Security.Cryptography.CryptographicException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Security.Cryptography.CryptographicException..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Security.Cryptography.CryptographicException..ctor(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Security.PermissionSet.CopyTo(System.Array,System.Int32) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.PermissionSet.FromXml(System.Security.SecurityElement) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecureString..ctor(System.Char*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Security.SecurityElement..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityElement..ctor(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityElement.AddAttribute(System.String,System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityElement.AddChild(System.Security.SecurityElement) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityElement.set_Tag(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Security.SecurityException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.SecurityException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Security.VerificationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Security.VerificationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Security.VerificationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Signature.GetSignature(System.Void*,System.Int32,System.RuntimeFieldHandleInternal,System.IRuntimeMethodInfo,System.RuntimeType) | [MemberNotNullAttribute(...)] | 0 | m_arguments | -| System.Void System.Signature.GetSignature(System.Void*,System.Int32,System.RuntimeFieldHandleInternal,System.IRuntimeMethodInfo,System.RuntimeType) | [MemberNotNullAttribute(...)] | 0 | m_returnTypeORfieldType | -| System.Void System.Span`1..ctor(System.Void*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Span`1..ctor(System.Void*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.StackOverflowException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.StartupHookProvider.CallStartupHook(System.Char*) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.StartupHookProvider.CallStartupHook(System.Char*) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:RequiresUnreferencedCode | -| System.Void System.StartupHookProvider.CallStartupHook(System.StartupHookProvider.StartupHookNameOrPath) | [RequiresUnreferencedCodeAttribute(...)] | 0 | The StartupHookSupport feature switch has been enabled for this app which is being trimmed. Startup hook code is not observable by the trimmer and so required assemblies, types and members may be removed | -| System.Void System.String..ctor(System.Char*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.String..ctor(System.Char*) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.String..ctor(System.Char*,System.Int32,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.String..ctor(System.Char*,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.String..ctor(System.Char[]) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.String..ctor(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.String..ctor(System.SByte*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.String..ctor(System.SByte*) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.String..ctor(System.SByte*,System.Int32,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.String..ctor(System.SByte*,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.String..ctor(System.SByte*,System.Int32,System.Int32,System.Text.Encoding) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.String..ctor(System.SByte*,System.Int32,System.Int32,System.Text.Encoding) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.String.CopyTo(System.Span<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.SystemException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.SystemException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.SystemException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Text.Decoder.Convert(System.Byte*,System.Int32,System.Char*,System.Int32,System.Boolean,System.Int32,System.Int32,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Text.Decoder.Convert(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Int32,System.Boolean,System.Int32,System.Int32,System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Text.Decoder.set_Fallback(System.Text.DecoderFallback) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.DecoderFallbackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Text.Encoder.Convert(System.Char*,System.Int32,System.Byte*,System.Int32,System.Boolean,System.Int32,System.Int32,System.Boolean) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Text.Encoder.Convert(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32,System.Int32,System.Boolean) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Text.Encoder.set_Fallback(System.Text.EncoderFallback) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.EncoderFallbackException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Text.EncoderReplacementFallbackBuffer..ctor(System.Text.EncoderReplacementFallback) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Text.Encoding..ctor(System.Int32,System.Text.EncoderFallback,System.Text.DecoderFallback) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.Encoding.SetDefaultFallbacks() | [MemberNotNullAttribute(...)] | 0 | decoderFallback | -| System.Void System.Text.Encoding.SetDefaultFallbacks() | [MemberNotNullAttribute(...)] | 0 | encoderFallback | -| System.Void System.Text.Latin1Utility.WidenLatin1ToUtf16_Sse2(System.Byte*,System.Char*,System.UIntPtr) | [CompExactlyDependsOnAttribute(...)] | 0 | System.Runtime.Intrinsics.X86.Sse2 | -| System.Void System.Text.Rune..ctor(System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Text.StringBuilder..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.StringBuilder..ctor(System.String,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.StringBuilder..ctor(System.String,System.Int32,System.Int32,System.Int32) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.StringBuilder.AppendInterpolatedStringHandler.AppendFormatted(System.Object,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.StringBuilder.AppendInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan<System.Char>) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Text.StringBuilder.AppendInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan<System.Char>,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Text.StringBuilder.AppendInterpolatedStringHandler.AppendFormatted(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.StringBuilder.AppendInterpolatedStringHandler.AppendFormatted(System.String,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.StringBuilder.AppendInterpolatedStringHandler.AppendFormatted`1(!0,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.StringBuilder.AppendInterpolatedStringHandler.AppendFormatted`1(!0,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Text.StringBuilder.CopyTo(System.Int32,System.Span<System.Char>,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void System.Text.TranscodingStream.EnsurePreReadConditions() | [MemberNotNullAttribute(...)] | 0 | [_innerDecoder,_thisEncoder,_readBuffer] | -| System.Void System.Text.TranscodingStream.EnsurePreWriteConditions() | [MemberNotNullAttribute(...)] | 0 | [_thisDecoder,_innerEncoder] | -| System.Void System.Text.UTF7Encoding..ctor() | [ObsoleteAttribute(...)] | 0 | The UTF-7 encoding is insecure and should not be used. Consider using UTF-8 instead. | -| System.Void System.Text.UTF7Encoding..ctor(System.Boolean) | [ObsoleteAttribute(...)] | 0 | The UTF-7 encoding is insecure and should not be used. Consider using UTF-8 instead. | -| System.Void System.Text.UTF7Encoding.MakeTables() | [MemberNotNullAttribute(...)] | 0 | _base64Bytes | -| System.Void System.Text.UTF7Encoding.MakeTables() | [MemberNotNullAttribute(...)] | 0 | _base64Values | -| System.Void System.Text.UTF7Encoding.MakeTables() | [MemberNotNullAttribute(...)] | 0 | _directEncode | -| System.Void System.Threading.AbandonedMutexException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.AbandonedMutexException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.AbandonedMutexException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.CompressedStack.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.CompressedStack.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.ContextCallback.Invoke(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.EventWaitHandle..ctor(System.Boolean,System.Threading.EventResetMode,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.EventWaitHandle..ctor(System.Boolean,System.Threading.EventResetMode,System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.ExecutionContext.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.ExecutionContext.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.Interlocked._MemoryBarrierProcessWide() | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Threading.LockRecursionException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.LockRecursionException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.LockRecursionException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.ManualResetEventSlim.Wait() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.ManualResetEventSlim.Wait(System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.Mutex..ctor(System.Boolean,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Mutex..ctor(System.Boolean,System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Overlapped..ctor(System.Int32,System.Int32,System.Int32,System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Overlapped..ctor(System.Int32,System.Int32,System.Int32,System.IAsyncResult) | [ObsoleteAttribute(...)] | 0 | This constructor is not 64-bit compatible and has been deprecated. Use the constructor that accepts an IntPtr for the event handle instead. | -| System.Void System.Threading.Overlapped..ctor(System.Int32,System.Int32,System.IntPtr,System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Overlapped.Free(System.Threading.NativeOverlapped*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Overlapped.set_AsyncResult(System.IAsyncResult) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.ParameterizedThreadStart.Invoke(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.PeriodicTimer..ctor(System.TimeSpan,System.TimeProvider) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.PreAllocatedOverlapped..ctor(System.Threading.IOCompletionCallback,System.Object,System.Object) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.PreAllocatedOverlapped..ctor(System.Threading.IOCompletionCallback,System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Semaphore..ctor(System.Int32,System.Int32,System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Semaphore..ctor(System.Int32,System.Int32,System.String,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.SemaphoreFullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.SemaphoreFullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.SemaphoreFullException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.SemaphoreSlim.Wait() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.SemaphoreSlim.Wait(System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.SendOrPostCallback.Invoke(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.SynchronizationContext.SetSynchronizationContext(System.Threading.SynchronizationContext) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.SynchronizationLockException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.SynchronizationLockException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.SynchronizationLockException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action<System.Object>,System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.Task..ctor(System.Action<System.Object>,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.Task..ctor(System.Action<System.Object>,System.Object,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.Task..ctor(System.Action<System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.Task..ctor(System.Action<System.Object>,System.Object,System.Threading.Tasks.TaskCreationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[]) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Threading.CancellationToken) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.Tasks.TaskAsyncEnumerableExtensions.ManualResetEventWithAwaiterSupport.Wait`1(!0) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.Tasks.TaskCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.Tasks.TaskCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.Tasks.TaskCanceledException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.Tasks.TaskCompletionSource..ctor(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TaskCompletionSource..ctor(System.Object,System.Threading.Tasks.TaskCreationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TaskCompletionSource`1..ctor(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TaskCompletionSource`1..ctor(System.Object,System.Threading.Tasks.TaskCreationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TaskFactory..ctor(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TaskFactory..ctor(System.Threading.Tasks.TaskScheduler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TaskFactory`1..ctor(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TaskFactory`1..ctor(System.Threading.Tasks.TaskScheduler) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TaskSchedulerException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.Tasks.TaskSchedulerException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.Tasks.TaskSchedulerException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.Tasks.Task`1..ctor(System.Func<!0,System.Object>,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.Task`1..ctor(System.Func<!0,System.Object>,System.Object,System.Threading.CancellationToken) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.Task`1..ctor(System.Func<!0,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.Task`1..ctor(System.Func<!0,System.Object>,System.Object,System.Threading.Tasks.TaskCreationOptions) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Tasks.TplEventSource.AwaitTaskContinuationScheduled(System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Threading.Tasks.TplEventSource.AwaitTaskContinuationScheduled(System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Threading.Tasks.TplEventSource.TaskCompleted(System.Int32,System.Int32,System.Int32,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Threading.Tasks.TplEventSource.TaskCompleted(System.Int32,System.Int32,System.Int32,System.Boolean) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Threading.Tasks.TplEventSource.TaskScheduled(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Threading.Tasks.TplEventSource.TaskScheduled(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Threading.Tasks.TplEventSource.TaskWaitBegin(System.Int32,System.Int32,System.Int32,System.Threading.Tasks.TplEventSource.TaskWaitBehavior,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Threading.Tasks.TplEventSource.TaskWaitBegin(System.Int32,System.Int32,System.Int32,System.Threading.Tasks.TplEventSource.TaskWaitBehavior,System.Int32) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Threading.Tasks.TplEventSource.TraceOperationBegin(System.Int32,System.String,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Threading.Tasks.TplEventSource.TraceOperationBegin(System.Int32,System.String,System.Int64) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Threading.Tasks.TplEventSource.TraceSynchronousWorkEnd(System.Threading.Tasks.CausalitySynchronousWork) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Threading.Tasks.TplEventSource.TraceSynchronousWorkEnd(System.Threading.Tasks.CausalitySynchronousWork) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2026:UnrecognizedReflectionPattern | -| System.Void System.Threading.Thread.Abort() | [ObsoleteAttribute(...)] | 0 | Thread.Abort is not supported and throws PlatformNotSupportedException. | -| System.Void System.Threading.Thread.Abort(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Thread.Abort(System.Object) | [ObsoleteAttribute(...)] | 0 | Thread.Abort is not supported and throws PlatformNotSupportedException. | -| System.Void System.Threading.Thread.InformThreadNameChange(System.Threading.ThreadHandle,System.String,System.Int32) | [GeneratedCodeAttribute(...)] | 0 | Microsoft.Interop.LibraryImportGenerator | -| System.Void System.Threading.Thread.InformThreadNameChange(System.Threading.ThreadHandle,System.String,System.Int32) | [GeneratedCodeAttribute(...)] | 1 | 8.0.9.8001 | -| System.Void System.Threading.Thread.ResetAbort() | [ObsoleteAttribute(...)] | 0 | Thread.ResetAbort is not supported and throws PlatformNotSupportedException. | -| System.Void System.Threading.Thread.Resume() | [ObsoleteAttribute(...)] | 0 | Thread.Resume has been deprecated. Use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. | -| System.Void System.Threading.Thread.SetApartmentState(System.Threading.ApartmentState) | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| System.Void System.Threading.Thread.SetCompressedStack(System.Threading.CompressedStack) | [ObsoleteAttribute(...)] | 0 | Code Access Security is not supported or honored by the runtime. | -| System.Void System.Threading.Thread.Start() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.Thread.Start(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Thread.Start(System.Object) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.Thread.StartInternal(System.Threading.ThreadHandle,System.Int32,System.Int32,System.Char*) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.Threading.Thread.Suspend() | [ObsoleteAttribute(...)] | 0 | Thread.Suspend has been deprecated. Use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. | -| System.Void System.Threading.Thread.UnsafeStart() | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.Thread.UnsafeStart(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Thread.UnsafeStart(System.Object) | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| System.Void System.Threading.Thread.VolatileWrite(System.Object,System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Thread.VolatileWrite(System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Thread.VolatileWrite(System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Thread.VolatileWrite(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Thread.VolatileWrite(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Thread.VolatileWrite(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Thread.set_CurrentPrincipal(System.Security.Principal.IPrincipal) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Thread.set_Name(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.ThreadAbortException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.ThreadExceptionEventHandler.Invoke(System.Object,System.Threading.ThreadExceptionEventArgs) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.ThreadInterruptedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.ThreadInterruptedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.ThreadInterruptedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.ThreadPoolBoundHandle.FreeNativeOverlapped(System.Threading.NativeOverlapped*) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.ThreadStartException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.ThreadStateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.ThreadStateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.ThreadStateException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.Timer..ctor(System.Threading.TimerCallback,System.Object,System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Timer.TimerSetup(System.Threading.TimerCallback,System.Object,System.UInt32,System.UInt32,System.Boolean) | [MemberNotNullAttribute(...)] | 0 | _timer | -| System.Void System.Threading.TimerCallback.Invoke(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.Volatile.Write(System.SByte,System.SByte) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Volatile.Write(System.UInt16,System.UInt16) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Volatile.Write(System.UInt32,System.UInt32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Volatile.Write(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.Volatile.Write(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.Threading.WaitCallback.Invoke(System.Object) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.Threading.WaitHandleCannotBeOpenedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.Threading.WaitHandleCannotBeOpenedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Threading.WaitHandleCannotBeOpenedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.Threading.WaitOrTimerCallback.Invoke(System.Object,System.Boolean) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.TimeOnly.Deconstruct(System.Int32,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TimeOnly.Deconstruct(System.Int32,System.Int32,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TimeOnly.Deconstruct(System.Int32,System.Int32,System.Int32,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TimeOnly.Deconstruct(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TimeZoneNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TimeZoneNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TimeZoneNotFoundException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.TimeoutException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TimeoutException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TimeoutException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.TupleExtensions.Deconstruct`1(System.Tuple<!0>,!0) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`1(System.Tuple<!0>,!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`2(System.Tuple<!0,!1>,!0,!1) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`2(System.Tuple<!0,!1>,!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`3(System.Tuple<!0,!1,!2>,!0,!1,!2) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`3(System.Tuple<!0,!1,!2>,!0,!1,!2) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`4(System.Tuple<!0,!1,!2,!3>,!0,!1,!2,!3) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`4(System.Tuple<!0,!1,!2,!3>,!0,!1,!2,!3) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`5(System.Tuple<!0,!1,!2,!3,!4>,!0,!1,!2,!3,!4) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`5(System.Tuple<!0,!1,!2,!3,!4>,!0,!1,!2,!3,!4) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`6(System.Tuple<!0,!1,!2,!3,!4,!5>,!0,!1,!2,!3,!4,!5) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`6(System.Tuple<!0,!1,!2,!3,!4,!5>,!0,!1,!2,!3,!4,!5) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`7(System.Tuple<!0,!1,!2,!3,!4,!5,!6>,!0,!1,!2,!3,!4,!5,!6) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`7(System.Tuple<!0,!1,!2,!3,!4,!5,!6>,!0,!1,!2,!3,!4,!5,!6) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`8(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7>>,!0,!1,!2,!3,!4,!5,!6,!7) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`8(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7>>,!0,!1,!2,!3,!4,!5,!6,!7) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`9(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8>>,!0,!1,!2,!3,!4,!5,!6,!7,!8) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`9(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8>>,!0,!1,!2,!3,!4,!5,!6,!7,!8) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`10(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`10(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`11(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`11(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`12(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`12(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`13(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`13(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`14(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`14(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`15(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`15(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`16(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`16(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`17(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`17(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`18(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`18(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`19(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`19(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`20(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18,!19) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`20(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18,!19) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`21(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19,!20>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18,!19,!20) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TupleExtensions.Deconstruct`21(System.Tuple<!0,!1,!2,!3,!4,!5,!6,System.Tuple<!10,!11,!12,!13,!7,!8,!9,System.Tuple<!14,!15,!16,!17,!18,!19,!20>>>,!0,!1,!2,!3,!4,!5,!6,!7,!8,!9,!10,!11,!12,!13,!14,!15,!16,!17,!18,!19,!20) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Tuple`1..ctor(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Tuple`2..ctor(!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Type.GetEnumData(System.String[],System.Array) | [UnconditionalSuppressMessageAttribute(...)] | 0 | ReflectionAnalysis | -| System.Void System.Type.GetEnumData(System.String[],System.Array) | [UnconditionalSuppressMessageAttribute(...)] | 1 | IL2085:UnrecognizedReflectionPattern | -| System.Void System.TypeAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TypeAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TypeAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.TypeInitializationException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.TypeInitializationException..ctor(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.TypeInitializationException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TypeInitializationException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.TypeLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TypeLoadException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.TypeLoadException..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.TypeLoadException..ctor(System.String,System.Exception) | [NullableContextAttribute(...)] | 0 | 2 | -| System.Void System.TypeLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TypeLoadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.TypeLoadException.GetTypeLoadExceptionMessage(System.Int32,System.Runtime.CompilerServices.StringHandleOnStack) | [LibraryImportAttribute(...)] | 0 | QCall | -| System.Void System.TypeUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.TypeUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.TypeUnloadedException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.UInt128..ctor(System.UInt64,System.UInt64) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void System.UnauthorizedAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.UnauthorizedAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.UnauthorizedAccessException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.UnhandledExceptionEventHandler.Invoke(System.Object,System.UnhandledExceptionEventArgs) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.UnitySerializationHolder..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.UnitySerializationHolder.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ValueTuple`1..ctor(!0) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ValueTuple`2..ctor(!0,!1) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ValueTuple`3..ctor(!0,!1,!2) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.ValueTuple`4..ctor(!0,!1,!2,!3) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.Version..ctor(System.String) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.WeakReference..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.WeakReference..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.WeakReference..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.WeakReference.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.WeakReference.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [NullableContextAttribute(...)] | 0 | 1 | -| System.Void System.WeakReference.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void System.WeakReference`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [EditorBrowsableAttribute(...)] | 0 | 1 | -| System.Void System.WeakReference`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) | [ObsoleteAttribute(...)] | 0 | This API supports obsolete formatter-based serialization. It should not be called or extended by application code. | -| System.Void* System.IntPtr.ToPointer() | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.IntPtr.op_Explicit(System.IntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.CompilerServices.Unsafe.Add`1(System.Void*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.CompilerServices.Unsafe.Add`1(System.Void*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void* System.Runtime.CompilerServices.Unsafe.AsPointer`1(!0) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.CompilerServices.Unsafe.AsPointer`1(!0) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void* System.Runtime.CompilerServices.Unsafe.Subtract`1(System.Void*,System.Int32) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.CompilerServices.Unsafe.Subtract`1(System.Void*,System.Int32) | [NullableContextAttribute(...)] | 0 | 0 | -| System.Void* System.Runtime.InteropServices.NativeMemory.AlignedAlloc(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.InteropServices.NativeMemory.AlignedRealloc(System.Void*,System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.InteropServices.NativeMemory.Alloc(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.InteropServices.NativeMemory.Alloc(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.InteropServices.NativeMemory.AllocZeroed(System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.InteropServices.NativeMemory.AllocZeroed(System.UIntPtr,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.Void* System.Runtime.InteropServices.NativeMemory.Realloc(System.Void*,System.UIntPtr) | [CLSCompliantAttribute(...)] | 0 | False | -| System.WeakReference | [NullableAttribute(...)] | 0 | 0 | -| System.WeakReference | [NullableContextAttribute(...)] | 0 | 2 | -| System.WeakReference | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.WeakReference`1 | [NullableAttribute(...)] | 0 | 0 | -| System.WeakReference`1 | [NullableContextAttribute(...)] | 0 | 1 | -| System.WeakReference`1 | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| System.__Canon | [ClassInterfaceAttribute(...)] | 0 | 0 | -| System.__Canon | [ComVisibleAttribute(...)] | 0 | True | -| System.__DTString | [CompilerFeatureRequiredAttribute(...)] | 0 | RefStructs | -| System.__DTString | [ObsoleteAttribute(...)] | 0 | Types with embedded references are not supported in this version of your compiler. | -| System.__DTString | [ObsoleteAttribute(...)] | 1 | True | -| bool | [DoesNotReturnIfAttribute(...)] | 0 | False | -| bool | [DoesNotReturnIfAttribute(...)] | 0 | True | -| bool | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| bool System.Console.CapsLock | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| bool System.Console.NumberLock | [SupportedOSPlatformAttribute(...)] | 0 | windows | -| bool System.Console.TreatControlCAsInput | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| bool System.Console.TreatControlCAsInput | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| bool System.Console.TreatControlCAsInput | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| bool System.Console.TreatControlCAsInput | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| bool System.Reflection.Assembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | 0 | The Global Assembly Cache is not supported. | -| bool System.Reflection.FieldInfo.IsNotSerialized | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| bool System.Reflection.RuntimeAssembly.GlobalAssemblyCache | [ObsoleteAttribute(...)] | 0 | The Global Assembly Cache is not supported. | -| bool System.Reflection.SignatureType.IsSerializable | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| bool System.Threading.Tasks.Task.IsFaulted | [MemberNotNullWhenAttribute(...)] | 0 | True | -| bool System.Threading.Tasks.Task.IsFaulted | [MemberNotNullWhenAttribute(...)] | 1 | Exception | -| bool System.Type.IsSerializable | [ObsoleteAttribute(...)] | 0 | Formatter-based serialization is obsolete and should not be used. | -| bool.FalseString | [NullableAttribute(...)] | 0 | 1 | -| bool.TrueString | [NullableAttribute(...)] | 0 | 1 | -| byte | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| byte* System.IO.UnmanagedMemoryStream.PositionPointer | [CLSCompliantAttribute(...)] | 0 | False | -| byte[] | [NotNullWhenAttribute(...)] | 0 | True | -| byte[] | [NullableAttribute(...)] | 0 | 2 | -| char | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| char[] | [NullableAttribute(...)] | 0 | 2 | -| decimal | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| decimal.AdditiveIdentity | [DecimalConstantAttribute(...)] | 0 | 0 | -| decimal.AdditiveIdentity | [DecimalConstantAttribute(...)] | 1 | 0 | -| decimal.AdditiveIdentity | [DecimalConstantAttribute(...)] | 2 | 0 | -| decimal.AdditiveIdentity | [DecimalConstantAttribute(...)] | 3 | 0 | -| decimal.AdditiveIdentity | [DecimalConstantAttribute(...)] | 4 | 0 | -| decimal.MaxValue | [DecimalConstantAttribute(...)] | 0 | 0 | -| decimal.MaxValue | [DecimalConstantAttribute(...)] | 1 | 0 | -| decimal.MaxValue | [DecimalConstantAttribute(...)] | 2 | 4294967295 | -| decimal.MaxValue | [DecimalConstantAttribute(...)] | 3 | 4294967295 | -| decimal.MaxValue | [DecimalConstantAttribute(...)] | 4 | 4294967295 | -| decimal.MinValue | [DecimalConstantAttribute(...)] | 0 | 0 | -| decimal.MinValue | [DecimalConstantAttribute(...)] | 1 | 128 | -| decimal.MinValue | [DecimalConstantAttribute(...)] | 2 | 4294967295 | -| decimal.MinValue | [DecimalConstantAttribute(...)] | 3 | 4294967295 | -| decimal.MinValue | [DecimalConstantAttribute(...)] | 4 | 4294967295 | -| decimal.MinusOne | [DecimalConstantAttribute(...)] | 0 | 0 | -| decimal.MinusOne | [DecimalConstantAttribute(...)] | 1 | 128 | -| decimal.MinusOne | [DecimalConstantAttribute(...)] | 2 | 0 | -| decimal.MinusOne | [DecimalConstantAttribute(...)] | 3 | 0 | -| decimal.MinusOne | [DecimalConstantAttribute(...)] | 4 | 1 | -| decimal.MultiplicativeIdentity | [DecimalConstantAttribute(...)] | 0 | 0 | -| decimal.MultiplicativeIdentity | [DecimalConstantAttribute(...)] | 1 | 0 | -| decimal.MultiplicativeIdentity | [DecimalConstantAttribute(...)] | 2 | 0 | -| decimal.MultiplicativeIdentity | [DecimalConstantAttribute(...)] | 3 | 0 | -| decimal.MultiplicativeIdentity | [DecimalConstantAttribute(...)] | 4 | 1 | -| decimal.NegativeOne | [DecimalConstantAttribute(...)] | 0 | 0 | -| decimal.NegativeOne | [DecimalConstantAttribute(...)] | 1 | 128 | -| decimal.NegativeOne | [DecimalConstantAttribute(...)] | 2 | 0 | -| decimal.NegativeOne | [DecimalConstantAttribute(...)] | 3 | 0 | -| decimal.NegativeOne | [DecimalConstantAttribute(...)] | 4 | 1 | -| decimal.One | [DecimalConstantAttribute(...)] | 0 | 0 | -| decimal.One | [DecimalConstantAttribute(...)] | 1 | 0 | -| decimal.One | [DecimalConstantAttribute(...)] | 2 | 0 | -| decimal.One | [DecimalConstantAttribute(...)] | 3 | 0 | -| decimal.One | [DecimalConstantAttribute(...)] | 4 | 1 | -| decimal.Zero | [DecimalConstantAttribute(...)] | 0 | 0 | -| decimal.Zero | [DecimalConstantAttribute(...)] | 1 | 0 | -| decimal.Zero | [DecimalConstantAttribute(...)] | 2 | 0 | -| decimal.Zero | [DecimalConstantAttribute(...)] | 3 | 0 | -| decimal.Zero | [DecimalConstantAttribute(...)] | 4 | 0 | -| delegate* managed<Byte&,Void> System.Array.ArrayInitializeCache.GetElementConstructorEntrypoint(System.Runtime.CompilerServices.QCallTypeHandle) | [LibraryImportAttribute(...)] | 0 | QCall | -| double | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| float | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| int | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| int System.Console.CursorLeft | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| int System.Console.CursorLeft | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| int System.Console.CursorLeft | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| int System.Console.CursorLeft | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| int System.Console.CursorTop | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| int System.Console.CursorTop | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| int System.Console.CursorTop | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| int System.Console.CursorTop | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| int System.Console.LargestWindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| int System.Console.LargestWindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| int System.Console.LargestWindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| int System.Console.LargestWindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| int System.Console.LargestWindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| int System.Console.LargestWindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| int System.Console.LargestWindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| int System.Console.LargestWindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| int System.Console.WindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| int System.Console.WindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| int System.Console.WindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| int System.Console.WindowHeight | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| int System.Console.WindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | android | -| int System.Console.WindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | browser | -| int System.Console.WindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | ios | -| int System.Console.WindowWidth | [UnsupportedOSPlatformAttribute(...)] | 0 | tvos | -| int System.Runtime.CompilerServices.RuntimeHelpers.OffsetToStringData | [ObsoleteAttribute(...)] | 0 | OffsetToStringData has been deprecated. Use string.GetPinnableReference() instead. | -| int System.Threading.Overlapped.EventHandle | [ObsoleteAttribute(...)] | 0 | Overlapped.EventHandle is not 64-bit compatible and has been deprecated. Use EventHandleIntPtr instead. | -| int[] System.Globalization.GregorianCalendar.Eras | [NullableAttribute(...)] | 0 | 1 | -| int[] System.Globalization.HebrewCalendar.Eras | [NullableAttribute(...)] | 0 | 1 | -| int[] System.Globalization.HijriCalendar.Eras | [NullableAttribute(...)] | 0 | 1 | -| int[] System.Globalization.PersianCalendar.Eras | [NullableAttribute(...)] | 0 | 1 | -| int[] System.Globalization.StringInfo.Indexes | [NullableAttribute(...)] | 0 | 2 | -| long | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| object | [ClassInterfaceAttribute(...)] | 0 | 1 | -| object | [ComVisibleAttribute(...)] | 0 | True | -| object | [NotNullIfNotNullAttribute(...)] | 0 | address | -| object | [NotNullIfNotNullAttribute(...)] | 0 | syncLock | -| object | [NotNullIfNotNullAttribute(...)] | 0 | value | -| object | [NotNullWhenAttribute(...)] | 0 | True | -| object | [NullableAttribute(...)] | 0 | 0 | -| object | [NullableAttribute(...)] | 0 | 1 | -| object | [NullableAttribute(...)] | 0 | 2 | -| object | [NullableContextAttribute(...)] | 0 | 2 | -| object | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| object System.ArgumentOutOfRangeException.ActualValue | [NullableAttribute(...)] | 0 | 2 | -| object System.Array.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ArraySegment`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.CharEnumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.ArrayList.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.DictionaryEntry.Value | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.Dictionary`2.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.Dictionary`2.Enumerator.Key | [NullableAttribute(...)] | 0 | 1 | -| object System.Collections.Generic.Dictionary`2.Enumerator.Value | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.Dictionary`2.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.Dictionary`2.KeyCollection.SyncRoot | [NullableAttribute(...)] | 0 | 1 | -| object System.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.Dictionary`2.ValueCollection.SyncRoot | [NullableAttribute(...)] | 0 | 1 | -| object System.Collections.Generic.HashSet`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.List`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.List`1.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Generic.Queue`1.Enumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.Hashtable.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.IDictionary.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.IDictionaryEnumerator.Value | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.ListDictionaryInternal.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.ObjectModel.Collection`1.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.ObjectModel.ReadOnlyCollection`1.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.ObjectModel.ReadOnlyDictionary`2.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection.SyncRoot | [NullableAttribute(...)] | 0 | 1 | -| object System.Delegate.Target | [NullableAttribute(...)] | 0 | 2 | -| object System.IAsyncResult.AsyncState | [NullableAttribute(...)] | 0 | 2 | -| object System.IO.Enumeration.FileSystemEnumerator`1.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Reflection.CustomAttributeTypedArgument.Value | [NullableAttribute(...)] | 0 | 2 | -| object System.Reflection.ParameterInfo.DefaultValue | [NullableAttribute(...)] | 0 | 2 | -| object System.Reflection.ParameterInfo.RawDefaultValue | [NullableAttribute(...)] | 0 | 2 | -| object System.Runtime.CompilerServices.StrongBox`1.Value | [NullableAttribute(...)] | 0 | 2 | -| object System.Runtime.Serialization.SerializationEntry.Value | [NullableAttribute(...)] | 0 | 2 | -| object System.Runtime.Serialization.SerializationInfoEnumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Runtime.Serialization.SerializationInfoEnumerator.Value | [NullableAttribute(...)] | 0 | 2 | -| object System.Security.PermissionSet.SyncRoot | [NullableAttribute(...)] | 0 | 1 | -| object System.Text.StringRuneEnumerator.Current | [NullableAttribute(...)] | 0 | 2 | -| object System.Threading.Tasks.Task.AsyncState | [NullableAttribute(...)] | 0 | 2 | -| object System.Tuple`1.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Tuple`2.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Tuple`3.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Tuple`4.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Tuple`5.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Tuple`6.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Tuple`7.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.Tuple`8.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple`1.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple`2.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple`3.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple`4.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple`5.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple`6.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple`7.Item | [NullableAttribute(...)] | 0 | 2 | -| object System.ValueTuple`8.Item | [NullableAttribute(...)] | 0 | 2 | -| object[] | [NullableAttribute(...)] | 0 | 2 | -| object[] | [NullableAttribute(...)] | 0 | [1,2] | -| object[] | [NullableAttribute(...)] | 0 | [2,1] | -| object[] System.Collections.ArrayList.ArrayListDebugView.Items | [DebuggerBrowsableAttribute(...)] | 0 | 3 | -| object[] System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Arguments | [NullableAttribute(...)] | 0 | [1,2] | -| out !0 | [MaybeNullWhenAttribute(...)] | 0 | False | -| out !0 | [NotNullWhenAttribute(...)] | 0 | True | -| out !0 | [NullableAttribute(...)] | 0 | 1 | -| out !1 | [MaybeNullWhenAttribute(...)] | 0 | False | -| out !1 | [NotNullWhenAttribute(...)] | 0 | True | -| out Microsoft.Win32.SafeHandles.SafeFileHandle | [NotNullWhenAttribute(...)] | 0 | True | -| out System.ArraySegment<!0> | [NullableAttribute(...)] | 0 | [0,1] | -| out System.Exception | [NotNullWhenAttribute(...)] | 0 | True | -| out System.Globalization.CompareInfo | [NotNullWhenAttribute(...)] | 0 | True | -| out System.Runtime.InteropServices.ComTypes.IMoniker | [NullableAttribute(...)] | 0 | 2 | -| out System.RuntimeType | [NotNullWhenAttribute(...)] | 0 | True | -| out System.Threading.EventWaitHandle | [NotNullWhenAttribute(...)] | 0 | True | -| out System.Threading.EventWaitHandle | [NullableAttribute(...)] | 0 | 2 | -| out System.Threading.Mutex | [NotNullWhenAttribute(...)] | 0 | True | -| out System.Threading.Mutex | [NullableAttribute(...)] | 0 | 2 | -| out System.Threading.Semaphore | [NotNullWhenAttribute(...)] | 0 | True | -| out System.Threading.Semaphore | [NullableAttribute(...)] | 0 | 2 | -| out System.TimeZoneInfo | [NotNullWhenAttribute(...)] | 0 | True | -| out System.TimeZoneInfo | [NullableAttribute(...)] | 0 | 2 | -| out System.Version | [NotNullWhenAttribute(...)] | 0 | True | -| out System.Version | [NullableAttribute(...)] | 0 | 2 | -| out byte[] | [NotNullWhenAttribute(...)] | 0 | True | -| out long | [NotNullWhenAttribute(...)] | 0 | True | -| out object | [MaybeNullWhenAttribute(...)] | 0 | False | -| out object | [NotNullWhenAttribute(...)] | 0 | True | -| out object | [NullableAttribute(...)] | 0 | 2 | -| out object[] | [NullableAttribute(...)] | 0 | [1,2] | -| out string | [MaybeNullWhenAttribute(...)] | 0 | False | -| out string | [NotNullWhenAttribute(...)] | 0 | True | -| out string | [NullableAttribute(...)] | 0 | 2 | -| sbyte | [CLSCompliantAttribute(...)] | 0 | False | -| sbyte | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| short | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| string | [CallerArgumentExpressionAttribute(...)] | 0 | argument | -| string | [CallerArgumentExpressionAttribute(...)] | 0 | time | -| string | [CallerArgumentExpressionAttribute(...)] | 0 | value | -| string | [DefaultMemberAttribute(...)] | 0 | Chars | -| string | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| string | [NotNullWhenAttribute(...)] | 0 | False | -| string | [NotNullWhenAttribute(...)] | 0 | True | -| string | [NullableAttribute(...)] | 0 | 0 | -| string | [NullableAttribute(...)] | 0 | 1 | -| string | [NullableAttribute(...)] | 0 | 2 | -| string | [NullableContextAttribute(...)] | 0 | 1 | -| string | [StringSyntaxAttribute(...)] | 0 | CompositeFormat | -| string | [StringSyntaxAttribute(...)] | 0 | DateOnlyFormat | -| string | [StringSyntaxAttribute(...)] | 0 | DateTimeFormat | -| string | [StringSyntaxAttribute(...)] | 0 | EnumFormat | -| string | [StringSyntaxAttribute(...)] | 0 | GuidFormat | -| string | [StringSyntaxAttribute(...)] | 0 | NumericFormat | -| string | [StringSyntaxAttribute(...)] | 0 | TimeOnlyFormat | -| string | [StringSyntaxAttribute(...)] | 0 | TimeSpanFormat | -| string | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| string System.AppContext.TargetFrameworkName | [NullableAttribute(...)] | 0 | 2 | -| string System.AppDomain.DynamicDirectory | [NullableAttribute(...)] | 0 | 2 | -| string System.AppDomain.RelativeSearchPath | [NullableAttribute(...)] | 0 | 2 | -| string System.ApplicationId.Culture | [NullableAttribute(...)] | 0 | 2 | -| string System.ApplicationId.ProcessorArchitecture | [NullableAttribute(...)] | 0 | 2 | -| string System.ArgumentException.Message | [NullableAttribute(...)] | 0 | 1 | -| string System.BadImageFormatException.Message | [NullableAttribute(...)] | 0 | 1 | -| string System.Buffers.SearchValues`1.DebuggerDisplay | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.CodeAnalysis.ExperimentalAttribute.UrlFormat | [NullableAttribute(...)] | 0 | 2 | -| string System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.Url | [NullableAttribute(...)] | 0 | 2 | -| string System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Url | [NullableAttribute(...)] | 0 | 2 | -| string System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.Category | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.CodeAnalysis.SuppressMessageAttribute.CheckId | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.CheckId | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.Contracts.ContractException.Failure | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.Contracts.ContractOptionAttribute.Value | [NullableAttribute(...)] | 0 | 2 | -| string System.Diagnostics.DebuggerDisplayAttribute.Value | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.DebuggerTypeProxyAttribute.ProxyTypeName | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| string System.Diagnostics.DebuggerTypeProxyAttribute.ProxyTypeName | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.DebuggerVisualizerAttribute.VisualizerObjectSourceTypeName | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| string System.Diagnostics.DebuggerVisualizerAttribute.VisualizerTypeName | [DynamicallyAccessedMembersAttribute(...)] | 0 | -1 | -| string System.Diagnostics.DebuggerVisualizerAttribute.VisualizerTypeName | [NullableAttribute(...)] | 0 | 1 | -| string System.Diagnostics.Tracing.EventFieldAttribute.Name | [NullableAttribute(...)] | 0 | 2 | -| string System.Diagnostics.Tracing.EventSource.Name | [NullableAttribute(...)] | 0 | 1 | -| string System.Environment.ProcessPath | [NullableAttribute(...)] | 0 | 2 | -| string System.Exception.Message | [NullableAttribute(...)] | 0 | 1 | -| string System.FormattableString.Format | [StringSyntaxAttribute(...)] | 0 | CompositeFormat | -| string System.Globalization.CultureInfo.InteropName | [NullableAttribute(...)] | 0 | 2 | -| string System.Globalization.CultureNotFoundException.DefaultMessage | [NullableAttribute(...)] | 0 | 1 | -| string System.Globalization.CultureNotFoundException.Message | [NullableAttribute(...)] | 0 | 1 | -| string System.IO.FileInfo.DirectoryName | [NullableAttribute(...)] | 0 | 2 | -| string System.IO.FileLoadException.Message | [NullableAttribute(...)] | 0 | 1 | -| string System.IO.FileNotFoundException.Message | [NullableAttribute(...)] | 0 | 1 | -| string System.IO.FileSystemInfo.LinkTarget | [NullableAttribute(...)] | 0 | 2 | -| string System.Int128.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string System.MissingMemberException.Message | [NullableAttribute(...)] | 0 | 1 | -| string System.Numerics.Vector`1.DisplayString | [NullableAttribute(...)] | 0 | 1 | -| string System.Reflection.Assembly.CodeBase | [NullableAttribute(...)] | 0 | 2 | -| string System.Reflection.Assembly.CodeBase | [ObsoleteAttribute(...)] | 0 | Assembly.CodeBase and Assembly.EscapedCodeBase are only included for .NET Framework compatibility. Use Assembly.Location. | -| string System.Reflection.Assembly.CodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| string System.Reflection.Assembly.EscapedCodeBase | [ObsoleteAttribute(...)] | 0 | Assembly.CodeBase and Assembly.EscapedCodeBase are only included for .NET Framework compatibility. Use Assembly.Location. | -| string System.Reflection.Assembly.EscapedCodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| string System.Reflection.Assembly.FullName | [NullableAttribute(...)] | 0 | 2 | -| string System.Reflection.AssemblyMetadataAttribute.Value | [NullableAttribute(...)] | 0 | 2 | -| string System.Reflection.AssemblyName.CodeBase | [ObsoleteAttribute(...)] | 0 | AssemblyName.CodeBase and AssemblyName.EscapedCodeBase are obsolete. Using them for loading an assembly is not supported. | -| string System.Reflection.AssemblyName.EscapedCodeBase | [ObsoleteAttribute(...)] | 0 | AssemblyName.CodeBase and AssemblyName.EscapedCodeBase are obsolete. Using them for loading an assembly is not supported. | -| string System.Reflection.AssemblyName.EscapedCodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | The code will return an empty string for assemblies embedded in a single-file app | -| string System.Reflection.AssemblyName.FullName | [NullableAttribute(...)] | 0 | 1 | -| string System.Reflection.Emit.AssemblyBuilder.CodeBase | [NullableAttribute(...)] | 0 | 2 | -| string System.Reflection.Emit.AssemblyBuilder.CodeBase | [ObsoleteAttribute(...)] | 0 | Assembly.CodeBase and Assembly.EscapedCodeBase are only included for .NET Framework compatibility. Use Assembly.Location instead. | -| string System.Reflection.Emit.AssemblyBuilder.CodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| string System.Reflection.Emit.RuntimeModuleBuilder.FullyQualifiedName | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns <Unknown> for modules with no file path | -| string System.Reflection.Emit.RuntimeModuleBuilder.Name | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns <Unknown> for modules with no file path | -| string System.Reflection.Module.FullyQualifiedName | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns <Unknown> for modules with no file path | -| string System.Reflection.Module.Name | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns <Unknown> for modules with no file path | -| string System.Reflection.ParameterInfo.Name | [NullableAttribute(...)] | 0 | 2 | -| string System.Reflection.RuntimeAssembly.CodeBase | [ObsoleteAttribute(...)] | 0 | Assembly.CodeBase and Assembly.EscapedCodeBase are only included for .NET Framework compatibility. Use Assembly.Location. | -| string System.Reflection.RuntimeAssembly.CodeBase | [RequiresAssemblyFilesAttribute(...)] | 0 | This member throws an exception for assemblies embedded in a single-file app | -| string System.Reflection.RuntimeModule.FullyQualifiedName | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns <Unknown> for modules with no file path | -| string System.Reflection.RuntimeModule.Name | [RequiresAssemblyFilesAttribute(...)] | 0 | Returns <Unknown> for modules with no file path | -| string System.Reflection.TypeDelegator.AssemblyQualifiedName | [NullableAttribute(...)] | 0 | 2 | -| string System.Reflection.TypeDelegator.FullName | [NullableAttribute(...)] | 0 | 2 | -| string System.Reflection.TypeDelegator.Namespace | [NullableAttribute(...)] | 0 | 2 | -| string System.Runtime.CompilerServices.SwitchExpressionException.Message | [NullableAttribute(...)] | 0 | 1 | -| string System.Runtime.InteropServices.LibraryImportAttribute.LibraryName | [NullableAttribute(...)] | 0 | 1 | -| string System.Runtime.Loader.AssemblyLoadContext.Name | [NullableAttribute(...)] | 0 | 2 | -| string System.Runtime.Versioning.TargetFrameworkAttribute.FrameworkDisplayName | [NullableAttribute(...)] | 0 | 2 | -| string System.Runtime.Versioning.UnsupportedOSPlatformAttribute.Message | [NullableAttribute(...)] | 0 | 2 | -| string System.Security.SecurityElement.Tag | [NullableAttribute(...)] | 0 | 1 | -| string System.Text.Rune.DebuggerDisplay | [NullableAttribute(...)] | 0 | 1 | -| string System.Threading.Thread.Name | [NullableAttribute(...)] | 0 | 2 | -| string System.Type.AssemblyQualifiedName | [NullableAttribute(...)] | 0 | 2 | -| string System.Type.FullName | [NullableAttribute(...)] | 0 | 2 | -| string System.Type.Namespace | [NullableAttribute(...)] | 0 | 2 | -| string System.UInt128.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string byte.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string char.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string int.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string long.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string sbyte.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string short.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string uint.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string ulong.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string ushort.OverflowMessage | [NullableAttribute(...)] | 0 | 1 | -| string[] | [NotNullWhenAttribute(...)] | 0 | True | -| string[] | [NullableAttribute(...)] | 0 | 1 | -| string[] | [NullableAttribute(...)] | 0 | 2 | -| string[] | [NullableAttribute(...)] | 0 | [1,2] | -| string[] | [NullableAttribute(...)] | 0 | [2,1] | -| string[] | [StringSyntaxAttribute(...)] | 0 | DateOnlyFormat | -| string[] | [StringSyntaxAttribute(...)] | 0 | DateTimeFormat | -| string[] | [StringSyntaxAttribute(...)] | 0 | TimeOnlyFormat | -| string[] | [StringSyntaxAttribute(...)] | 0 | TimeSpanFormat | -| uint | [CLSCompliantAttribute(...)] | 0 | False | -| uint | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| uint System.Reflection.AssemblyAlgorithmIdAttribute.AlgorithmId | [CLSCompliantAttribute(...)] | 0 | False | -| uint System.Reflection.AssemblyFlagsAttribute.Flags | [CLSCompliantAttribute(...)] | 0 | False | -| uint System.Reflection.AssemblyFlagsAttribute.Flags | [ObsoleteAttribute(...)] | 0 | AssemblyFlagsAttribute.Flags has been deprecated. Use AssemblyFlags instead. | -| ulong | [CLSCompliantAttribute(...)] | 0 | False | -| ulong | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| ulong System.Runtime.InteropServices.SafeBuffer.ByteLength | [CLSCompliantAttribute(...)] | 0 | False | -| ushort | [CLSCompliantAttribute(...)] | 0 | False | -| ushort | [TypeForwardedFromAttribute(...)] | 0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| void* | [NullableAttribute(...)] | 0 | 0 | -| void* System.Buffers.MemoryHandle.Pointer | [CLSCompliantAttribute(...)] | 0 | False | diff --git a/csharp/ql/test/library-tests/cil/attributes/attribute.ql b/csharp/ql/test/library-tests/cil/attributes/attribute.ql deleted file mode 100644 index 76489b3c989..00000000000 --- a/csharp/ql/test/library-tests/cil/attributes/attribute.ql +++ /dev/null @@ -1,47 +0,0 @@ -import semmle.code.cil.Attribute -import semmle.code.cil.Declaration - -deprecated private predicate isOsSpecific(Declaration d) { - d.getFullyQualifiedName() - .matches("%" + - [ - "libobjc", "libproc", "libc", "Interop.OSReleaseFile", "Interop.Sys", - "System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal", - "System.Diagnostics.Tracing.XplatEventLogger", "System.Threading.AutoreleasePool", - "System.CLRConfig", "System.Diagnostics.Tracing.EventSource.<WriteEventString>", - "System.IO.FileSystem.<TryCloneFile>" - ] + "%") -} - -deprecated query predicate attrNoArg(string dec, string attr) { - exists(Declaration d, Attribute a | - not isOsSpecific(d) and - a.getDeclaration() = d and - not exists(a.getAnArgument()) - | - dec = d.toStringWithTypes() and - attr = a.toStringWithTypes() - ) -} - -deprecated query predicate attrArgNamed(string dec, string attr, string name, string value) { - exists(Declaration d, Attribute a | - a.getDeclaration() = d and - not isOsSpecific(d) and - a.getNamedArgument(name) = value - | - dec = d.toStringWithTypes() and - attr = a.toStringWithTypes() - ) -} - -deprecated query predicate attrArgPositional(string dec, string attr, int index, string value) { - exists(Declaration d, Attribute a | - a.getDeclaration() = d and - not isOsSpecific(d) and - a.getArgument(index) = value - | - dec = d.toStringWithTypes() and - attr = a.toStringWithTypes() - ) -} diff --git a/csharp/ql/test/library-tests/cil/attributes/options b/csharp/ql/test/library-tests/cil/attributes/options deleted file mode 100644 index 8511aa162b8..00000000000 --- a/csharp/ql/test/library-tests/cil/attributes/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil diff --git a/csharp/ql/test/library-tests/cil/consistency/Handles.expected b/csharp/ql/test/library-tests/cil/consistency/Handles.expected deleted file mode 100644 index d48a89c24a3..00000000000 --- a/csharp/ql/test/library-tests/cil/consistency/Handles.expected +++ /dev/null @@ -1,14 +0,0 @@ -tooManyHandles -tooManyMatchingHandles -missingCil -csharpLocationViolation -matchingObjectMethods -| Equals(object) | System.Boolean System.Object.Equals(System.Object) | -| Equals(object, object) | System.Boolean System.Object.Equals(System.Object,System.Object) | -| GetHashCode() | System.Int32 System.Object.GetHashCode() | -| GetType() | System.Type System.Object.GetType() | -| MemberwiseClone() | System.Object System.Object.MemberwiseClone() | -| Object() | System.Void System.Object..ctor() | -| ReferenceEquals(object, object) | System.Boolean System.Object.ReferenceEquals(System.Object,System.Object) | -| ToString() | System.String System.Object.ToString() | -| ~Object() | System.Void System.Object.Finalize() | diff --git a/csharp/ql/test/library-tests/cil/consistency/Handles.ql b/csharp/ql/test/library-tests/cil/consistency/Handles.ql deleted file mode 100644 index 73c17c713d7..00000000000 --- a/csharp/ql/test/library-tests/cil/consistency/Handles.ql +++ /dev/null @@ -1,68 +0,0 @@ -import csharp -import cil -import dotnet -import semmle.code.csharp.commons.QualifiedName - -deprecated class MetadataEntity extends DotNet::NamedElement, @metadata_entity { - int getHandle() { metadata_handle(this, _, result) } - - predicate hasHandle() { exists(this.getHandle()) } - - Assembly getAssembly() { metadata_handle(this, result, _) } -} - -deprecated query predicate tooManyHandles(string s) { - exists(MetadataEntity e, Assembly a, string qualifier, string name | - strictcount(int handle | metadata_handle(e, a, handle)) > 1 and - e.hasFullyQualifiedName(qualifier, name) and - s = getQualifiedName(qualifier, name) - ) -} - -deprecated private class UniqueMetadataEntity extends MetadataEntity { - UniqueMetadataEntity() { - // Tuple types such as `(,)` and `ValueTuple`2` share the same handle - not this instanceof TupleType and - not exists(string name | - this.hasFullyQualifiedName("System", name) and - name.matches("System.ValueTuple%") - ) - } -} - -deprecated query predicate tooManyMatchingHandles(string s) { - exists(UniqueMetadataEntity e, Assembly a, int handle, string qualifier, string name | - metadata_handle(e, a, handle) and - strictcount(UniqueMetadataEntity e2 | metadata_handle(e2, a, handle)) > 2 and - e.hasFullyQualifiedName(qualifier, name) and - s = getQualifiedName(qualifier, name) - ) -} - -deprecated query predicate missingCil(Element e) { - ( - e instanceof Callable - or - e instanceof Type - or - e instanceof Field - ) and - e.fromLibrary() and - e.(MetadataEntity).hasHandle() and - not exists(CIL::Element ce | ce.(MetadataEntity).matchesHandle(e)) -} - -deprecated query predicate csharpLocationViolation(Element e) { - e.fromLibrary() and - e.(MetadataEntity).hasHandle() and - not e.getALocation() = e.(MetadataEntity).getAssembly() -} - -deprecated query predicate matchingObjectMethods(string s1, string s2) { - exists(Callable m1, CIL::Method m2 | - m1.getDeclaringType().hasFullyQualifiedName("System", "Object") and - m1.(DotNet::Callable).matchesHandle(m2) and - s1 = m1.toStringWithTypes() and - s2 = m2.toStringWithTypes() - ) -} diff --git a/csharp/ql/test/library-tests/cil/consistency/Program.cs b/csharp/ql/test/library-tests/cil/consistency/Program.cs deleted file mode 100644 index e867fdc0718..00000000000 --- a/csharp/ql/test/library-tests/cil/consistency/Program.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -class Test -{ - static void Main(string[] args) - { - } -} diff --git a/csharp/ql/test/library-tests/cil/consistency/consistency.expected b/csharp/ql/test/library-tests/cil/consistency/consistency.expected deleted file mode 100644 index 8932c2ec713..00000000000 --- a/csharp/ql/test/library-tests/cil/consistency/consistency.expected +++ /dev/null @@ -1,17 +0,0 @@ -| Finalize | Overridden method from System.Object is not in a base type | -| System.Int32 System.Math.Sign(System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; ldc.i4.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; mul [push: 1, pop: 2]; ldc.i4.1 [push: 1, pop: 0]; sub [push: 1, pop: 2]; and [push: 1, pop: 2]; shr [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; ldarg.0 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | -| System.Int32 System.Runtime.InteropServices.Marshal.AddRef(System.IntPtr): calli, ldarg.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; call [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ldind.i [push: 1, pop: 1]; sizeof [push: 1, pop: 0]; add [push: 1, pop: 2]; ldind.i [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; calli [push: 1, pop: 2] | Expression is missing getType() | -| System.Int32 System.Runtime.InteropServices.Marshal.QueryInterface(System.IntPtr,System.Guid,System.IntPtr): calli, ldarg.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; call [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; stloc.1 [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; conv.u [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.2 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; ldloc.3 [push: 1, pop: 0]; conv.u [push: 1, pop: 1]; stloc.2 [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldind.i [push: 1, pop: 1]; ldind.i [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; calli [push: 1, pop: 4] | Expression is missing getType() | -| System.Int32 System.Runtime.InteropServices.Marshal.Release(System.IntPtr): calli, ldarg.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; call [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ldind.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; sizeof [push: 1, pop: 0]; mul [push: 1, pop: 2]; add [push: 1, pop: 2]; ldind.i [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; calli [push: 1, pop: 2] | Expression is missing getType() | -| System.Int32 System.Text.UnicodeEncoding.GetByteCount(System.Char*,System.Int32,System.Text.EncoderNLS): dup, ldarg.2 [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; shl [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; bge.s [push: 0, pop: 2]; ldstr [push: 1, pop: 0]; call [push: 1, pop: 0]; newobj [push: 1, pop: 2]; throw [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.1 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldarg.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; add [push: 1, pop: 2]; stloc.2 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brfalse [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; stloc.3 [push: 0, pop: 1]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; brfalse [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; call [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; call [push: 1, pop: 1]; call [push: 1, pop: 3]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; br [push: 0, pop: 0]; ldloc.s [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldsfld [push: 1, pop: 0]; xor [push: 1, pop: 2]; brfalse [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; ldc.i4.7 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue [push: 0, pop: 1]; ldloc.3 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldloc.2 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldc.i8 [push: 1, pop: 0]; xor [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldsfld [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; bne.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; blt.un [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; bge.un [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldind.u2 [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; blt [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt.s [push: 0, pop: 2]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.s [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloc.2 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.3 [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | -| System.Int32 System.Text.UnicodeEncoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32,System.Text.EncoderNLS): dup, ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.2 [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.3 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldarg.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brfalse [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; brfalse [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; call [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; call [push: 1, pop: 1]; call [push: 1, pop: 3]; newobj [push: 1, pop: 1]; throw [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; br [push: 0, pop: 0]; ldloc.1 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldsfld [push: 1, pop: 0]; xor [push: 1, pop: 2]; brfalse [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; ldc.i4.7 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; brtrue [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.1 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; shr [push: 1, pop: 2]; ldloc.s [push: 1, pop: 0]; ldarg.1 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; blt.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldarg.1 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldloc.3 [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; sub [push: 1, pop: 2]; ldc.i4.1 [push: 1, pop: 0]; div [push: 1, pop: 2]; conv.i8 [push: 1, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; shr [push: 1, pop: 2]; ldc.i4.2 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; mul [push: 1, pop: 2]; conv.i [push: 1, pop: 1]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldc.i8 [push: 1, pop: 0]; xor [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i8 [push: 1, pop: 0]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.u8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; conv.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; and [push: 1, pop: 2]; ldsfld [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldc.i8 [push: 1, pop: 0]; bne.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldind.i8 [push: 1, pop: 1]; call [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; add [push: 1, pop: 2]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; blt.un [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; bge.un [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldind.u2 [push: 1, pop: 1]; stloc.1 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; blt [push: 0, pop: 2]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt [push: 0, pop: 2]; ldloc.1 [push: 1, pop: 0]; ldc.i4 [push: 1, pop: 0]; bgt.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.1 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.1 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; br [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.3 [push: 1, pop: 0]; add [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; blt.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; mul [push: 1, pop: 2]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ceq [push: 1, pop: 2]; call [push: 0, pop: 3]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; ble.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; brtrue.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldarg.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; callvirt [push: 0, pop: 5]; ldarg.1 [push: 1, pop: 0]; stloc.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldloc.0 [push: 1, pop: 0]; ldloca.s [push: 1, pop: 0]; callvirt [push: 1, pop: 3]; pop [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; starg.s [push: 0, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; ldloc.3 [push: 1, pop: 0]; blt.un.s [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; pop [push: 0, pop: 1]; br.s [push: 0, pop: 0]; ldarg.1 [push: 1, pop: 0]; ldc.i4.2 [push: 1, pop: 0]; sub [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldarg.s [push: 1, pop: 0]; ldarg.3 [push: 1, pop: 0]; ldloc.s [push: 1, pop: 0]; ceq [push: 1, pop: 2]; call [push: 0, pop: 3]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; brfalse.s [push: 0, pop: 1]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; br.s [push: 0, pop: 0]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldarg.3 [push: 1, pop: 0]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; add [push: 1, pop: 2]; starg.s [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4.8 [push: 1, pop: 0]; shr [push: 1, pop: 2]; conv.u1 [push: 1, pop: 1]; stind.i1 [push: 0, pop: 2]; ldloc.s [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.s [push: 1, pop: 0]; callvirt [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | -| System.IntPtr System.IntPtr.CopySign(System.IntPtr,System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | -| System.IntPtr System.IntPtr.CopySign(System.IntPtr,System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; neg [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; blt.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; call [push: 0, pop: 0]; ldloc.0 [push: 1, pop: 0]; ret [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | -| System.IntPtr System.IntPtr.MaxMagnitude(System.IntPtr,System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | -| System.IntPtr System.IntPtr.MaxMagnitude(System.IntPtr,System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; neg [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ret [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.1 [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldloc.1 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | -| System.IntPtr System.IntPtr.MinMagnitude(System.IntPtr,System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | -| System.IntPtr System.IntPtr.MinMagnitude(System.IntPtr,System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldloc.0 [push: 1, pop: 0]; neg [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldarg.1 [push: 1, pop: 0]; ret [push: 0, pop: 1]; ldarg.1 [push: 1, pop: 0]; stloc.1 [push: 0, pop: 1]; ldloc.1 [push: 1, pop: 0]; ldc.i4.0 [push: 1, pop: 0]; conv.i [push: 1, pop: 1]; bge.s [push: 0, pop: 2]; ldloc.1 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | -| System.IntPtr System.IntPtr.op_UnaryNegation(System.IntPtr): neg, ldarg.0 [push: 1, pop: 0]; neg [push: 1, pop: 1] | Expression is missing getType() | -| System.String System.Exception.get_Source(): dup, ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldarg.0 [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; call [push: 1, pop: 1]; brtrue.s [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; ldarg.0 [push: 1, pop: 0]; call [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; callvirt [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldstr [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | -| System.String System.Threading.TimerQueueTimer.get_DisplayString(): dup, ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; callvirt [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; call [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldc.i4.s [push: 1, pop: 0]; newarr [push: 1, pop: 1]; dup [push: 2, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; stelem.ref [push: 0, pop: 3]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldc.i4.m1 [push: 1, pop: 0]; beq.s [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; conv.r.un [push: 1, pop: 1]; conv.r8 [push: 1, pop: 1]; call [push: 1, pop: 1]; box [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldstr [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | -| System.String System.Threading.TimerQueueTimer.get_DisplayString(): dup, ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; callvirt [push: 1, pop: 1]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; callvirt [push: 1, pop: 1]; stloc.0 [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; brfalse.s [push: 0, pop: 1]; ldloc.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; call [push: 1, pop: 2]; stloc.0 [push: 0, pop: 1]; ldc.i4.s [push: 1, pop: 0]; newarr [push: 1, pop: 1]; dup [push: 2, pop: 1]; ldc.i4.0 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; stelem.ref [push: 0, pop: 3]; dup [push: 2, pop: 1]; ldc.i4.1 [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldc.i4.m1 [push: 1, pop: 0]; beq.s [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; conv.r.un [push: 1, pop: 1]; conv.r8 [push: 1, pop: 1]; call [push: 1, pop: 1]; box [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldstr [push: 1, pop: 0]; dup [push: 2, pop: 1]; brtrue.s [push: 0, pop: 1]; pop [push: 0, pop: 1]; ldnull [push: 1, pop: 0]; br.s [push: 0, pop: 0]; callvirt [push: 1, pop: 1]; stelem.ref [push: 0, pop: 3]; dup [push: 2, pop: 1]; ldc.i4.2 [push: 1, pop: 0]; ldstr [push: 1, pop: 0]; stelem.ref [push: 0, pop: 3]; dup [push: 2, pop: 1]; ldc.i4.3 [push: 1, pop: 0]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; ldc.i4.m1 [push: 1, pop: 0]; beq.s [push: 0, pop: 2]; ldarg.0 [push: 1, pop: 0]; ldfld [push: 1, pop: 1]; conv.r.un [push: 1, pop: 1]; conv.r8 [push: 1, pop: 1]; call [push: 1, pop: 1]; box [push: 1, pop: 1]; br.s [push: 0, pop: 0]; ldstr [push: 1, pop: 0]; dup [push: 2, pop: 1] | Expression is missing getType() | diff --git a/csharp/ql/test/library-tests/cil/consistency/consistency.ql b/csharp/ql/test/library-tests/cil/consistency/consistency.ql deleted file mode 100644 index e7ece7c4e6e..00000000000 --- a/csharp/ql/test/library-tests/cil/consistency/consistency.ql +++ /dev/null @@ -1,6 +0,0 @@ -import cil -import semmle.code.cil.ConsistencyChecks - -deprecated query predicate consistencyViolation(ConsistencyViolation v, string message) { - message = v.getMessage() -} diff --git a/csharp/ql/test/library-tests/cil/consistency/options b/csharp/ql/test/library-tests/cil/consistency/options deleted file mode 100644 index 8511aa162b8..00000000000 --- a/csharp/ql/test/library-tests/cil/consistency/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil diff --git a/csharp/ql/test/library-tests/cil/enums/Program.cs b/csharp/ql/test/library-tests/cil/enums/Program.cs deleted file mode 100644 index e867fdc0718..00000000000 --- a/csharp/ql/test/library-tests/cil/enums/Program.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -class Test -{ - static void Main(string[] args) - { - } -} diff --git a/csharp/ql/test/library-tests/cil/enums/enums.expected b/csharp/ql/test/library-tests/cil/enums/enums.expected deleted file mode 100644 index 4b64efc04ab..00000000000 --- a/csharp/ql/test/library-tests/cil/enums/enums.expected +++ /dev/null @@ -1,290 +0,0 @@ -| Interop.Advapi32.ActivityControl | uint | -| Interop.BOOL | int | -| Interop.Error | int | -| Interop.Globalization.ResultCode | int | -| Interop.Globalization.TimeZoneDisplayNameType | int | -| Interop.PollEvents | short | -| Interop.Sys.AccessMode | int | -| Interop.Sys.ControlCharacterNames | int | -| Interop.Sys.FileAdvice | int | -| Interop.Sys.FileStatusFlags | int | -| Interop.Sys.LockOperations | int | -| Interop.Sys.NodeType | int | -| Interop.Sys.OpenFlags | int | -| Interop.Sys.SeekWhence | int | -| Interop.Sys.SysConfName | int | -| Interop.Sys.SysLogPriority | int | -| Interop.Sys.UnixFileSystemTypes | uint | -| Microsoft.Win32.SafeHandles.SafeFileHandle.NullableBool | int | -| Microsoft.Win32.SafeHandles.SafeFileHandle.ThreadPoolValueTaskSource.Operation | byte | -| System.AttributeTargets | int | -| System.Base64FormattingOptions | int | -| System.Buffers.ArrayPoolEventSource.BufferAllocatedReason | int | -| System.Buffers.ArrayPoolEventSource.BufferDroppedReason | int | -| System.Buffers.OperationStatus | int | -| System.Buffers.Text.Utf8Parser.ComponentParseResult | byte | -| System.Buffers.Text.Utf8Parser.ParseNumberOptions | int | -| System.Buffers.Utilities.MemoryPressure | int | -| System.Collections.Generic.InsertionBehavior | byte | -| System.ComponentModel.EditorBrowsableState | int | -| System.Configuration.Assemblies.AssemblyHashAlgorithm | int | -| System.Configuration.Assemblies.AssemblyVersionCompatibility | int | -| System.ConsoleColor | int | -| System.ConsoleKey | int | -| System.ConsoleModifiers | int | -| System.ConsoleSpecialKey | int | -| System.DTSubStringType | int | -| System.DateTimeKind | int | -| System.DateTimeParse.DS | int | -| System.DateTimeParse.DTT | int | -| System.DateTimeParse.TM | int | -| System.DayOfWeek | int | -| System.DefaultBinder.Primitives | int | -| System.DelegateBindingFlags | int | -| System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes | int | -| System.Diagnostics.Contracts.ContractFailureKind | int | -| System.Diagnostics.DebuggableAttribute.DebuggingModes | int | -| System.Diagnostics.DebuggerBrowsableState | int | -| System.Diagnostics.StackTrace.TraceFormat | int | -| System.Diagnostics.Tracing.ControllerCommand | int | -| System.Diagnostics.Tracing.EventActivityOptions | int | -| System.Diagnostics.Tracing.EventChannel | byte | -| System.Diagnostics.Tracing.EventChannelType | int | -| System.Diagnostics.Tracing.EventCommand | int | -| System.Diagnostics.Tracing.EventFieldFormat | int | -| System.Diagnostics.Tracing.EventFieldTags | int | -| System.Diagnostics.Tracing.EventKeywords | long | -| System.Diagnostics.Tracing.EventLevel | int | -| System.Diagnostics.Tracing.EventManifestOptions | int | -| System.Diagnostics.Tracing.EventOpcode | int | -| System.Diagnostics.Tracing.EventPipeSerializationFormat | int | -| System.Diagnostics.Tracing.EventProvider.WriteEventErrorCode | int | -| System.Diagnostics.Tracing.EventProviderType | int | -| System.Diagnostics.Tracing.EventSourceSettings | int | -| System.Diagnostics.Tracing.EventTags | int | -| System.Diagnostics.Tracing.EventTask | int | -| System.Diagnostics.Tracing.ManifestEnvelope.ManifestFormats | byte | -| System.Diagnostics.Tracing.NativeRuntimeEventSource.ContentionFlagsMap | byte | -| System.Diagnostics.Tracing.NativeRuntimeEventSource.ThreadAdjustmentReasonMap | uint | -| System.Diagnostics.Tracing.RuntimeEventSource.EventId | int | -| System.Diagnostics.Tracing.TraceLoggingDataType | int | -| System.Environment.SpecialFolder | int | -| System.Environment.SpecialFolderOption | int | -| System.EnvironmentVariableTarget | int | -| System.Exception.ExceptionMessageKind | int | -| System.ExceptionArgument | int | -| System.ExceptionResource | int | -| System.GC.EnableNoGCRegionCallbackStatus | int | -| System.GC.EndNoGCRegionStatus | int | -| System.GC.GCConfigurationType | int | -| System.GC.GC_ALLOC_FLAGS | int | -| System.GC.RefreshMemoryStatus | int | -| System.GC.StartNoGCRegionStatus | int | -| System.GCCollectionMode | int | -| System.GCKind | int | -| System.GCNotificationStatus | int | -| System.Globalization.CalendarAlgorithmType | int | -| System.Globalization.CalendarDataType | int | -| System.Globalization.CalendarId | ushort | -| System.Globalization.CalendarWeekRule | int | -| System.Globalization.CalendricalCalculationsHelper.CorrectionAlgorithm | int | -| System.Globalization.CompareOptions | int | -| System.Globalization.CultureData.LocaleGroupingData | uint | -| System.Globalization.CultureData.LocaleNumberData | uint | -| System.Globalization.CultureData.LocaleStringData | uint | -| System.Globalization.CultureTypes | int | -| System.Globalization.DateTimeFormatFlags | int | -| System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern | int | -| System.Globalization.DateTimeStyles | int | -| System.Globalization.DigitShapes | int | -| System.Globalization.FORMATFLAGS | int | -| System.Globalization.GregorianCalendarTypes | int | -| System.Globalization.HebrewNumber.HS | sbyte | -| System.Globalization.HebrewNumber.HebrewToken | short | -| System.Globalization.HebrewNumberParsingState | int | -| System.Globalization.IcuLocaleDataParts | int | -| System.Globalization.MonthNameStyles | int | -| System.Globalization.NumberStyles | int | -| System.Globalization.StrongBidiCategory | int | -| System.Globalization.TextInfo.Tristate | byte | -| System.Globalization.TimeSpanFormat.StandardFormat | int | -| System.Globalization.TimeSpanParse.TTT | byte | -| System.Globalization.TimeSpanParse.TimeSpanStandardStyles | byte | -| System.Globalization.TimeSpanStyles | int | -| System.Globalization.UnicodeCategory | int | -| System.Guid.GuidParseThrowStyle | byte | -| System.Guid.ParseFailure | int | -| System.HexConverter.Casing | uint | -| System.IO.FileAccess | int | -| System.IO.FileAttributes | int | -| System.IO.FileMode | int | -| System.IO.FileOptions | int | -| System.IO.FileShare | int | -| System.IO.HandleInheritability | int | -| System.IO.MatchCasing | int | -| System.IO.MatchType | int | -| System.IO.SearchOption | int | -| System.IO.SearchTarget | int | -| System.IO.SeekOrigin | int | -| System.IO.UnixFileMode | int | -| System.LazyState | int | -| System.LoaderOptimization | int | -| System.MidpointRounding | int | -| System.Number.NumberBufferKind | byte | -| System.Number.ParsingStatus | int | -| System.ParseFailureKind | int | -| System.ParseFlags | int | -| System.PlatformID | int | -| System.Reflection.AssemblyContentType | int | -| System.Reflection.AssemblyNameFlags | int | -| System.Reflection.AssemblyNameParser.AttributeKind | int | -| System.Reflection.AssemblyNameParser.Token | int | -| System.Reflection.Associates.Attributes | int | -| System.Reflection.BindingFlags | int | -| System.Reflection.CallingConventions | int | -| System.Reflection.CorElementType | byte | -| System.Reflection.CustomAttributeEncoding | int | -| System.Reflection.Emit.AssemblyBuilderAccess | int | -| System.Reflection.Emit.DynamicResolver.SecurityControlFlags | int | -| System.Reflection.Emit.FlowControl | int | -| System.Reflection.Emit.OpCodeType | int | -| System.Reflection.Emit.OpCodeValues | int | -| System.Reflection.Emit.OperandType | int | -| System.Reflection.Emit.PEFileKinds | int | -| System.Reflection.Emit.PackingSize | int | -| System.Reflection.Emit.ScopeAction | sbyte | -| System.Reflection.Emit.StackBehaviour | int | -| System.Reflection.Emit.TypeKind | int | -| System.Reflection.Emit.TypeNameBuilder.Format | int | -| System.Reflection.EventAttributes | int | -| System.Reflection.ExceptionHandlingClauseOptions | int | -| System.Reflection.FieldAttributes | int | -| System.Reflection.GenericParameterAttributes | int | -| System.Reflection.ImageFileMachine | int | -| System.Reflection.InvocationFlags | uint | -| System.Reflection.MdSigCallingConvention | byte | -| System.Reflection.MemberTypes | int | -| System.Reflection.MetadataTokenType | int | -| System.Reflection.MethodAttributes | int | -| System.Reflection.MethodBase.InvokerArgFlags | int | -| System.Reflection.MethodBase.InvokerStrategy | int | -| System.Reflection.MethodImplAttributes | int | -| System.Reflection.MethodSemanticsAttributes | int | -| System.Reflection.NullabilityInfoContext.NotAnnotatedStatus | int | -| System.Reflection.NullabilityState | int | -| System.Reflection.PInvokeAttributes | int | -| System.Reflection.ParameterAttributes | int | -| System.Reflection.PortableExecutableKinds | int | -| System.Reflection.ProcessorArchitecture | int | -| System.Reflection.PropertyAttributes | int | -| System.Reflection.ResourceAttributes | int | -| System.Reflection.ResourceLocation | int | -| System.Reflection.SignatureCallingConvention | byte | -| System.Reflection.TypeAttributes | int | -| System.Reflection.TypeNameParser.TokenType | int | -| System.Resources.ResourceTypeCode | int | -| System.Resources.UltimateResourceFallbackLocation | int | -| System.Runtime.CompilerServices.CastResult | int | -| System.Runtime.CompilerServices.CompilationRelaxations | int | -| System.Runtime.CompilerServices.LoadHint | int | -| System.Runtime.CompilerServices.MethodCodeType | int | -| System.Runtime.CompilerServices.MethodImplOptions | int | -| System.Runtime.CompilerServices.UnsafeAccessorKind | int | -| System.Runtime.ConstrainedExecution.Cer | int | -| System.Runtime.ConstrainedExecution.Consistency | int | -| System.Runtime.GCLargeObjectHeapCompactionMode | int | -| System.Runtime.GCLatencyMode | int | -| System.Runtime.GCSettings.SetLatencyModeStatus | int | -| System.Runtime.InteropServices.Architecture | int | -| System.Runtime.InteropServices.CallingConvention | int | -| System.Runtime.InteropServices.CharSet | int | -| System.Runtime.InteropServices.ClassInterfaceType | int | -| System.Runtime.InteropServices.ComInterfaceType | int | -| System.Runtime.InteropServices.ComMemberType | int | -| System.Runtime.InteropServices.ComTypes.CALLCONV | int | -| System.Runtime.InteropServices.ComTypes.DESCKIND | int | -| System.Runtime.InteropServices.ComTypes.FUNCFLAGS | short | -| System.Runtime.InteropServices.ComTypes.FUNCKIND | int | -| System.Runtime.InteropServices.ComTypes.IDLFLAG | short | -| System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS | int | -| System.Runtime.InteropServices.ComTypes.INVOKEKIND | int | -| System.Runtime.InteropServices.ComTypes.LIBFLAGS | short | -| System.Runtime.InteropServices.ComTypes.PARAMFLAG | short | -| System.Runtime.InteropServices.ComTypes.SYSKIND | int | -| System.Runtime.InteropServices.ComTypes.TYPEFLAGS | short | -| System.Runtime.InteropServices.ComTypes.TYPEKIND | int | -| System.Runtime.InteropServices.ComTypes.VARFLAGS | short | -| System.Runtime.InteropServices.ComTypes.VARKIND | int | -| System.Runtime.InteropServices.ComWrappersScenario | int | -| System.Runtime.InteropServices.CreateComInterfaceFlags | int | -| System.Runtime.InteropServices.CreateObjectFlags | int | -| System.Runtime.InteropServices.CustomQueryInterfaceMode | int | -| System.Runtime.InteropServices.CustomQueryInterfaceResult | int | -| System.Runtime.InteropServices.DllImportSearchPath | int | -| System.Runtime.InteropServices.GCHandleType | int | -| System.Runtime.InteropServices.LayoutKind | int | -| System.Runtime.InteropServices.Marshalling.MarshalMode | int | -| System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction | int | -| System.Runtime.InteropServices.PosixSignal | int | -| System.Runtime.InteropServices.StringMarshalling | int | -| System.Runtime.InteropServices.UnmanagedType | int | -| System.Runtime.InteropServices.VarEnum | int | -| System.Runtime.Intrinsics.X86.FloatComparisonMode | byte | -| System.Runtime.Loader.AssemblyLoadContext.InternalState | int | -| System.Runtime.Serialization.StreamingContextStates | int | -| System.Runtime.Versioning.ComponentGuaranteesOptions | int | -| System.Runtime.Versioning.ResourceScope | int | -| System.Runtime.Versioning.SxSRequirements | int | -| System.RuntimeType.CheckValueStatus | int | -| System.RuntimeType.MemberListType | int | -| System.RuntimeType.RuntimeTypeCache.CacheType | int | -| System.Security.PartialTrustVisibilityLevel | int | -| System.Security.Permissions.PermissionState | int | -| System.Security.Permissions.SecurityAction | int | -| System.Security.Permissions.SecurityPermissionFlag | int | -| System.Security.Principal.PrincipalPolicy | int | -| System.Security.Principal.TokenImpersonationLevel | int | -| System.Security.SecurityCriticalScope | int | -| System.Security.SecurityRuleSet | byte | -| System.StringComparison | int | -| System.StringSplitOptions | int | -| System.StubHelpers.AsAnyMarshaler.BackPropAction | int | -| System.TermInfo.WellKnownNumbers | int | -| System.TermInfo.WellKnownStrings | int | -| System.Text.NormalizationForm | int | -| System.Text.TrimType | int | -| System.Text.Unicode.GraphemeClusterBreakType | int | -| System.Threading.ApartmentState | int | -| System.Threading.EventResetMode | int | -| System.Threading.LazyThreadSafetyMode | int | -| System.Threading.LockRecursionPolicy | int | -| System.Threading.OpenExistingResult | int | -| System.Threading.PortableThreadPool.HillClimbing.StateOrTransition | int | -| System.Threading.PortableThreadPool.PendingBlockingAdjustment | byte | -| System.Threading.ReaderWriterLockSlim.EnterLockType | int | -| System.Threading.ReaderWriterLockSlim.EnterSpinLockReason | int | -| System.Threading.ReaderWriterLockSlim.WaiterStates | byte | -| System.Threading.StackCrawlMark | int | -| System.Threading.Tasks.AsyncCausalityStatus | int | -| System.Threading.Tasks.CausalityRelation | int | -| System.Threading.Tasks.CausalitySynchronousWork | int | -| System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ProcessingMode | byte | -| System.Threading.Tasks.ConfigureAwaitOptions | int | -| System.Threading.Tasks.InternalTaskOptions | int | -| System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags | int | -| System.Threading.Tasks.Sources.ValueTaskSourceStatus | int | -| System.Threading.Tasks.Task.TaskStateFlags | int | -| System.Threading.Tasks.TaskContinuationOptions | int | -| System.Threading.Tasks.TaskCreationOptions | int | -| System.Threading.Tasks.TaskStatus | int | -| System.Threading.Tasks.TplEventSource.TaskWaitBehavior | int | -| System.Threading.ThreadPriority | int | -| System.Threading.ThreadState | int | -| System.TimeZoneInfo.StringSerializer.State | int | -| System.TimeZoneInfo.TZVersion | byte | -| System.TimeZoneInfo.TimeZoneInfoResult | int | -| System.TimeZoneInfoOptions | int | -| System.TokenType | int | -| System.TypeCode | int | -| System.TypeNameFormatFlags | int | -| System.TypeNameKind | int | diff --git a/csharp/ql/test/library-tests/cil/enums/enums.ql b/csharp/ql/test/library-tests/cil/enums/enums.ql deleted file mode 100644 index 07a63dbc847..00000000000 --- a/csharp/ql/test/library-tests/cil/enums/enums.ql +++ /dev/null @@ -1,19 +0,0 @@ -import semmle.code.cil.Types -import semmle.code.csharp.commons.QualifiedName - -predicate osSpecific(string qualifier, string name) { - qualifier = "Interop.Sys" and - ( - name = "LockType" or // doesn't exist on osx - name = "NSSearchPathDirectory" // doesn't exist on linux. - ) -} - -deprecated query predicate enums(string qualifiedName, string type) { - exists(Enum e, string qualifier, string name | - e.hasFullyQualifiedName(qualifier, name) and - not osSpecific(qualifier, name) and - qualifiedName = getQualifiedName(qualifier, name) and - type = e.getUnderlyingType().toStringWithTypes() - ) -} diff --git a/csharp/ql/test/library-tests/cil/enums/options b/csharp/ql/test/library-tests/cil/enums/options deleted file mode 100644 index 8511aa162b8..00000000000 --- a/csharp/ql/test/library-tests/cil/enums/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil diff --git a/csharp/ql/test/library-tests/cil/functionPointers/Class1.cs_ b/csharp/ql/test/library-tests/cil/functionPointers/Class1.cs_ deleted file mode 100644 index bd0ddc30906..00000000000 --- a/csharp/ql/test/library-tests/cil/functionPointers/Class1.cs_ +++ /dev/null @@ -1,52 +0,0 @@ -using System; - -#nullable enable - -public class FnPointer -{ - public unsafe static class Program - { - static delegate*<int> pointer = &M0; - - public static int M0() - { - return 0; - } - - static void M1(delegate*<ref int, out object?, int> f) - { - int i = 42; - int j = f(ref i, out object? o); - } - - static void M2<T>(delegate* unmanaged[Stdcall/*, StdcallSuppressGCTransition*/]<ref int, out object?, T, void> f) where T : new() - { - int i = 42; - f(ref i, out object? o, new T()); - } - - static void M3(delegate* managed<ref int, out object?, in int, ref int> f) - { - int i = 42; - ref int j = ref f(ref i, out object? o, in i); - } - - static void M4<T>(delegate*<T, int> f) where T : new() - { - int j = f(new T()); - } - - static void M5(delegate*<B, A> f, delegate*<A, B> ff) - { - M5(ff, ff); // implicit conversion due to implicit reference conversion - } - - static void M6(delegate*<int*, void*> f, delegate*<void*, int*> ff) - { - M6(ff, ff); // implicit conversion due to implicit pointer conversion - } - - class A { } - class B : A { } - } -} \ No newline at end of file diff --git a/csharp/ql/test/library-tests/cil/functionPointers/Test.cs b/csharp/ql/test/library-tests/cil/functionPointers/Test.cs deleted file mode 100644 index 2dfba697682..00000000000 --- a/csharp/ql/test/library-tests/cil/functionPointers/Test.cs +++ /dev/null @@ -1,5 +0,0 @@ -using System; - -class Test -{ -} diff --git a/csharp/ql/test/library-tests/cil/functionPointers/fnptr.dll b/csharp/ql/test/library-tests/cil/functionPointers/fnptr.dll deleted file mode 100644 index c63b9dcc254503c4d1686d1bb40d3a702bedd6b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 zcmeHLYit}>6+U<N;q|(X*LISobsp<DPsd%a?Ich&X}$K^iQBC0WY_5nDW2V(-Ap_? zv&_sowNR;PLW=}QBoa|0MT#QmFaAVoe*`3uDu@aa5eOlHP$>ujLP7#nDhlwU;X8L` zACAN8C!*K6=bqO+_ndR@+&wp$7rsIPA_}74yGL{jBe!u0|20^Jc*BlwZJ@W?@ATgi zC+_s;&gxFQYFlMnt;7qeX<BYPuf^?}8Q0BtdM+EUSVb+-*%{sCo1UK{Iw1nIvTgpO z`f9(Xo$(HlgmG}f9(Up~jB)gFbfTEV70+*Gu>Z2H0)o#iK#QMeRsPo;eUe#de;Oj1 zV`QA@Lw_EVjkZYi5Qr_%%Qcw)0TL&Qw5UZuA8(-(uJ)1(`gkV*WHQ$K)(3krVLNsK zV(HsB5DrwvgVAr}@IGN{h6P3Tl@`(2)<*P}Hcm9rLP~Te=M{~8Qz%4d`-yHwiG<|- z_h6^8uZt*3gLxlO9{%!XnA^QMaP4In4Gun87X;SP@HsdL3y2REs5dF74K83>H*Jm{ zpfK|S)FXWbZ^vL%>Fl8%rF}onaCgTbK^~-sAxD}#`9qM4eK2t#vOmO3wh@%6!O?25 z(L?R~u^O!OCKZ`t>|Zx29ddHp{&rB&!9fZH_I2>F^ibp*=;%jb7z?k$i<STo2~IG? z@Mj|X^n~!U%6qhYFp*4*CC5e{2Z6jBfIr9dfzJ}9;e3_xtZVCL*<p>h;TmuKz(SU8 z0p}wyaBN{Fjq&@S|A5>LOc+)kG&hjq*#(8#`5XGX7$e>Upqv{%moQJ*D2aDt>_cZc zqLd@!tOGl~*GClQaXhbxpDAIwE8%r|Q|Y3+Pz%$0v=jXIMG<gOLLuRH39n0dn^?M_ z90-IdEf`kl4B#nZn;pt5;IRP1*NNeC62B#G0sjjz+$43r0Lb1TEHs%}5u<V17)Uj! zw_uYgC_;7{{-%Hj!HLl_m>EPEqE{iC_Ng#9G1>u(8R%`0R6nS#pt@)eg#*XM9@?gy z5Z$z@%!&Cpg!I~$%kWFk^9^c22(la03!q+YP%OLLpm^RjNnHW92-!_ZUBZe*P(Svm zHnN36ANo|3F5u4G$ga^P>ZB_oNJ*cH(G3xzCw!`x-V$vz?NM9aP;QHM%1X-fx}83? zhT>fIal-xyROr!$l<{`DjC0Wq7^X)6qqH9|Mk5kFE@4W-83|8H_`HNV;3oPsV3<}U zyad=spOg4i3BL(T^R$Z|#oq6w0%=NuI_L)?LA~@7z&`o_Z~#X<K?i6A(lI&$_yipT zoTMD!Gm@VLoTMdKn8fX(DQVdJu2PVkg5(s)p>s-6u6053FG&6c@GmJB!T*u+b--UJ z-;<EUPCBEEOBliVf0O!YHyxs<=tU~i%k(9>LcvweWox^R{NZ1tUBeu1VVuP_K(@r+ zcQ>NqaTCS?I?XDXBxOb@GfJ5;${eK3A<7)4BN?k$Gqfiuh1)$xrsg`XY8F+yNRzgv zy4sA%jDki}mAqCgYQ>a`dnI3UHJY?4Ro&3+W16YiP;C({n9G{2mvl96Xp{KSZcb`o z3yxZD;it8Htz2gPh6c^n3}Y=P<v3a;Z>;2Ww^cEx+GWk1M%|#Dx9p{+g&DJn*XK^d z=hK?)=+*;-GiJ%ME2;~jYOK@BYK5AuyDRgWUD2HfTbQ)Wl3uPMA!`=!k|mj^G(&w! zV$OQ+=51_9!EFlWYAr-PBUpq>fTmVGI9^6ISDJ!THPh8A*aYxhJ+B*ZzbTzq!9JEs zG;OG5%C0!BR!R6X5`Ogf4WW`*b?rpaFbM8(dFJa<Jt3(AN87NVl?=_}Oq=tT4qt7m z`Xj3@tFC2JqToR}$R+9q(z;qUEyvXhPMuZvYKDzj)vRVO>jiC{xPB%Za_?Lr2pn{% z*AvJAJCxB2w&hqQHz5xxwtU6W8#e2~C7RpqP$PHVnR93^e-5$M-K@{y4-R$T-7o%L zDP25q^*nuG>`mUIU|fhuAWk9#q`RBR4H6xZa4OIyB3*64NMvgtDUn!Y$H~~%_68Pf z3qYU*geTZep_riU6pV`P`0;D9H^D-TO$1`TjU5ZI2!4=S$@VrS(nlf!D-uS2_?g~& zcOLuY$<-SPvHH4y80zt~<{(jLHuKWR%22%J3K@#~XXxlC>J|JA#V2cqTeG#JrdD%p z)fkG;*Ybv5ct%^vSxcIEv{3j&eq^jvDilYH#p0onO(LhnvP*gumT;dG<YyxS;cX!$ z914X|ctkjfAx_`65NeJ{CkfF^UMwa+w&bQqiq~W!Ds^NMP_bdM=-Jv6=ONy+)#r4H zF3wh0q)T8C5fOfUzMYGQoU-{@TdmGo=G03Ct;(N5?yPN{cUZ4YUf_oXJ(8H6%4PlA zb*P@1WuyicHf(I%UTNK_8tTd{E;EV>3VC0KMCD;dnGUNXUPe*tLPZiN1ZA}n<OTN# zy12wY6*;9dWf<1^3=*$b4GoO;8S^Z%i3^+6PN2^JcWPKe{^$U72-G!bT+h|nK<jK2 z9ex}A&C~CY$jtM^7txI&bgn1;#)`e@d(q#8?A;a_tK9cYp;Os(_Wi@J^`%~!Oy9V> z>*80x^N!6nh8G-M=EJU9QJrP=+|qDSTOP(eRvng!8@BT2hGpJ{TTUjD?uirCVxF?c zQ=^9tlW*Pa_pKv>ROcTD-}~KffAzI*{O!io&HihLy-U_#luX>$>aQY?eP+_K(}s~z zb(1Pi!Ll_?-lU%N-foJo3-vyG|0^U{#<=r{R@ZvWp9nJc06y#S+wr+^qBrCTV-Dj7 z0Z&tw&HzrKzR%JOUfQ#uX8@<YS2uk-_-DNP**bS_-uRS9pbB1FEis$lJOWl#vSCNZ z+ew2>lS*W<7}X-r%0a4v>p-rO3q1>z*KP*?ie&_Ra-pSzUw(k4pGuu1;`aUyQl4`_ zL#WUMYD)`mm#SQ21re#BG-<vBdsS(f=%CcCdzprYgDRHSWR0dzt#gvNnMA{%)0ksp zR#SI`67Zwmd5tLaIRmcLHQ|fV;!)Fff{KvvTXP?-1Kb?YFH3EXriv<@JuA~$SR#s} zACb1_d_HH2ZP(*r%8U9zYj}B@$6O2R))2Sb;uT@Pnt4jfJgwEeKk{bWM4yy7N+B-} nVyIwe40s>MsaTt><{Zw~$8B8(;@<xmrH`(Ye9ZVi$iP1UX&*p| diff --git a/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.expected b/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.expected deleted file mode 100644 index deebe4d568a..00000000000 --- a/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.expected +++ /dev/null @@ -1,73 +0,0 @@ -fnptr -| delegate* managed<!0,Int32> | 1 | Int32 | 0 | -| delegate* managed<A,B> | 1 | B | 0 | -| delegate* managed<B,A> | 1 | A | 0 | -| delegate* managed<Byte&,Void> | 1 | void | 0 | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | 3 | Int32& | 0 | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32> | 2 | Int32 | 0 | -| delegate* managed<Int32*,Void*> | 1 | Void* | 0 | -| delegate* managed<Int32> | 0 | Int32 | 0 | -| delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void> | 3 | void | 0 | -| delegate* managed<Object,Void> | 1 | void | 0 | -| delegate* managed<Void*,Int32*> | 1 | Int32* | 0 | -| delegate* managed<Void*,Object> | 1 | Object | 0 | -| delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | 7 | void | 9 | -| delegate* unmanaged<Char*,IntPtr,Void> | 2 | void | 9 | -| delegate* unmanaged<Int32,PosixSignal,Int32> | 2 | Int32 | 9 | -| delegate* unmanaged<IntPtr,Guid*,IntPtr*,Int32> | 3 | Int32 | 9 | -| delegate* unmanaged<IntPtr,Int32> | 1 | Int32 | 9 | -| delegate* unmanaged<IntPtr,Void> | 1 | void | 9 | -| delegate* unmanaged<NoGCRegionCallbackFinalizerWorkItem*,Void> | 1 | void | 9 | -| delegate* unmanaged<Void*,Byte*,Void> | 2 | void | 9 | -| delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | 5 | void | 9 | -| delegate* unmanaged<Void> | 0 | void | 9 | -| delegate* unmanaged[StdCall]<Int32&,Object& modreq(OutAttribute),!0,Void> | 3 | void | 2 | -params -| delegate* managed<!0,Int32> | 0 | Parameter 0 of delegate* managed<!0,Int32> | !0 | -| delegate* managed<A,B> | 0 | Parameter 0 of delegate* managed<A,B> | A | -| delegate* managed<B,A> | 0 | Parameter 0 of delegate* managed<B,A> | B | -| delegate* managed<Byte&,Void> | 0 | Parameter 0 of delegate* managed<Byte&,Void> | Byte& | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | 0 | Parameter 0 of delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | Int32& | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | 1 | Parameter 1 of delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | Object& | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | 2 | Parameter 2 of delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | Int32& | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32> | 0 | Parameter 0 of delegate* managed<Int32&,Object& modreq(OutAttribute),Int32> | Int32& | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32> | 1 | Parameter 1 of delegate* managed<Int32&,Object& modreq(OutAttribute),Int32> | Object& | -| delegate* managed<Int32*,Void*> | 0 | Parameter 0 of delegate* managed<Int32*,Void*> | Int32* | -| delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void> | 0 | Parameter 0 of delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void> | IntPtr | -| delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void> | 1 | Parameter 1 of delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void> | Byte& | -| delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void> | 2 | Parameter 2 of delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void> | PortableTailCallFrame* | -| delegate* managed<Object,Void> | 0 | Parameter 0 of delegate* managed<Object,Void> | Object | -| delegate* managed<Void*,Int32*> | 0 | Parameter 0 of delegate* managed<Void*,Int32*> | Void* | -| delegate* managed<Void*,Object> | 0 | Parameter 0 of delegate* managed<Void*,Object> | Void* | -| delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | 0 | Parameter 0 of delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | Byte* | -| delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | 1 | Parameter 1 of delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | Int32 | -| delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | 2 | Parameter 2 of delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | Byte | -| delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | 3 | Parameter 3 of delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | Int64 | -| delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | 4 | Parameter 4 of delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | Int64 | -| delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | 5 | Parameter 5 of delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | EVENT_FILTER_DESCRIPTOR* | -| delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | 6 | Parameter 6 of delegate* unmanaged<Byte*,Int32,Byte,Int64,Int64,EVENT_FILTER_DESCRIPTOR*,Void*,Void> | Void* | -| delegate* unmanaged<Char*,IntPtr,Void> | 0 | Parameter 0 of delegate* unmanaged<Char*,IntPtr,Void> | Char* | -| delegate* unmanaged<Char*,IntPtr,Void> | 1 | Parameter 1 of delegate* unmanaged<Char*,IntPtr,Void> | IntPtr | -| delegate* unmanaged<Int32,PosixSignal,Int32> | 0 | Parameter 0 of delegate* unmanaged<Int32,PosixSignal,Int32> | Int32 | -| delegate* unmanaged<Int32,PosixSignal,Int32> | 1 | Parameter 1 of delegate* unmanaged<Int32,PosixSignal,Int32> | PosixSignal | -| delegate* unmanaged<IntPtr,Guid*,IntPtr*,Int32> | 0 | Parameter 0 of delegate* unmanaged<IntPtr,Guid*,IntPtr*,Int32> | IntPtr | -| delegate* unmanaged<IntPtr,Guid*,IntPtr*,Int32> | 1 | Parameter 1 of delegate* unmanaged<IntPtr,Guid*,IntPtr*,Int32> | Guid* | -| delegate* unmanaged<IntPtr,Guid*,IntPtr*,Int32> | 2 | Parameter 2 of delegate* unmanaged<IntPtr,Guid*,IntPtr*,Int32> | IntPtr* | -| delegate* unmanaged<IntPtr,Int32> | 0 | Parameter 0 of delegate* unmanaged<IntPtr,Int32> | IntPtr | -| delegate* unmanaged<IntPtr,Void> | 0 | Parameter 0 of delegate* unmanaged<IntPtr,Void> | IntPtr | -| delegate* unmanaged<NoGCRegionCallbackFinalizerWorkItem*,Void> | 0 | Parameter 0 of delegate* unmanaged<NoGCRegionCallbackFinalizerWorkItem*,Void> | NoGCRegionCallbackFinalizerWorkItem* | -| delegate* unmanaged<Void*,Byte*,Void> | 0 | Parameter 0 of delegate* unmanaged<Void*,Byte*,Void> | Void* | -| delegate* unmanaged<Void*,Byte*,Void> | 1 | Parameter 1 of delegate* unmanaged<Void*,Byte*,Void> | Byte* | -| delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | 0 | Parameter 0 of delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | Void* | -| delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | 1 | Parameter 1 of delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | Void* | -| delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | 2 | Parameter 2 of delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | Void* | -| delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | 3 | Parameter 3 of delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | GCConfigurationType | -| delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | 4 | Parameter 4 of delegate* unmanaged<Void*,Void*,Void*,GCConfigurationType,Int64,Void> | Int64 | -| delegate* unmanaged[StdCall]<Int32&,Object& modreq(OutAttribute),!0,Void> | 0 | Parameter 0 of delegate* unmanaged[StdCall]<Int32&,Object& modreq(OutAttribute),!0,Void> | Int32& | -| delegate* unmanaged[StdCall]<Int32&,Object& modreq(OutAttribute),!0,Void> | 1 | Parameter 1 of delegate* unmanaged[StdCall]<Int32&,Object& modreq(OutAttribute),!0,Void> | Object& | -| delegate* unmanaged[StdCall]<Int32&,Object& modreq(OutAttribute),!0,Void> | 2 | Parameter 2 of delegate* unmanaged[StdCall]<Int32&,Object& modreq(OutAttribute),!0,Void> | !0 | -modifiers -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | System.Runtime.InteropServices.InAttribute | modreq | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32& modreq(InAttribute),Int32&> | System.Runtime.InteropServices.OutAttribute | modreq | -| delegate* managed<Int32&,Object& modreq(OutAttribute),Int32> | System.Runtime.InteropServices.OutAttribute | modreq | -| delegate* unmanaged[StdCall]<Int32&,Object& modreq(OutAttribute),!0,Void> | System.Runtime.InteropServices.OutAttribute | modreq | diff --git a/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.ql b/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.ql deleted file mode 100644 index e6a9219bf6c..00000000000 --- a/csharp/ql/test/library-tests/cil/functionPointers/functionPointers.ql +++ /dev/null @@ -1,42 +0,0 @@ -import cil -import semmle.code.cil.Type -import semmle.code.csharp.commons.QualifiedName - -bindingset[kind] -deprecated private string getKind(int kind) { - if kind = 1 then result = "modreq" else result = "modopt" -} - -bindingset[t, e] -deprecated private string getAnnotatedType(Type t, Element e) { - cil_type_annotation(e, 32) and result = t.toString() + "&" - or - not cil_type_annotation(e, 32) and result = t.toString() -} - -deprecated query predicate fnptr( - string fnptr, int paramCount, string returnType, int callingConvention -) { - exists(FunctionPointerType fn | fnptr = fn.toString() | - paramCount = fn.getNumberOfParameters() and - returnType = getAnnotatedType(fn.getReturnType(), fn) and - callingConvention = fn.getCallingConvention() - ) -} - -deprecated query predicate params(string fnptr, int i, string param, string t) { - exists(FunctionPointerType fn, Parameter p | fnptr = fn.toString() and param = p.toString() | - fn.getParameter(i) = p and t = getAnnotatedType(p.getType(), p) - ) -} - -deprecated query predicate modifiers(string fnptr, string modifier, string sKind) { - exists(Type modType, int kind, FunctionPointerType fn, string qualifier, string name | - fnptr = fn.toString() - | - cil_custom_modifiers(fn, modType, kind) and - modType.hasFullyQualifiedName(qualifier, name) and - modifier = getQualifiedName(qualifier, name) and - sKind = getKind(kind) - ) -} diff --git a/csharp/ql/test/library-tests/cil/functionPointers/options b/csharp/ql/test/library-tests/cil/functionPointers/options deleted file mode 100644 index 8511aa162b8..00000000000 --- a/csharp/ql/test/library-tests/cil/functionPointers/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/Program.cs b/csharp/ql/test/library-tests/cil/init-only-prop/Program.cs deleted file mode 100644 index e867fdc0718..00000000000 --- a/csharp/ql/test/library-tests/cil/init-only-prop/Program.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -class Test -{ - static void Main(string[] args) - { - } -} diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/Test.cs_ b/csharp/ql/test/library-tests/cil/init-only-prop/Test.cs_ deleted file mode 100644 index d39b5a82926..00000000000 --- a/csharp/ql/test/library-tests/cil/init-only-prop/Test.cs_ +++ /dev/null @@ -1,13 +0,0 @@ -namespace System.Runtime.CompilerServices -{ - class IsExternalInit { } -} - -namespace cil_init_prop -{ - class SomeClass - { - public int Prop1 { get; set; } - public int Prop2 { get; init; } - } -} diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/cil-init-prop.dll b/csharp/ql/test/library-tests/cil/init-only-prop/cil-init-prop.dll deleted file mode 100644 index dceff38f4876df7970395ec4a9046e1e1b276225..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4608 zcmeHKU2GiH75-+tHjd*saUdv&pG=4<Sc-ArJ_}KWk%CCox_pq(Q=--M!gNJUcVY z%$isTun_-!;h_=|2#FxxDph$%B~(fuijXQKDg;I4u|lY&NT@B32ob(>XV%`eAp)Kd z;yU-c=kK0-&bfE?-W)#p99jV6*e_lLUgIcjNaLkpnd+_`f9%4A4e#uH&6s*;=j>@W zw!$c=L{8NzIldnxR#90|&9_|N${#IQ)u62GO`AG;GS|~%z?9K~+?!XNtFQJ?TyJeO z`hX5f+EVHG9*!3K5Ie9%(`FjC2qb>pmWh;0Yr*^zVk-Yu$BY#b+y8F>jtVgZ<fRa6 z+dR-oStspg*Xl0CTR?k*zMcF;18*nlY(joYjHuJOW^t3#%>w4_D2__xbZkQ;BvA>d zp$##5J5pXiL#>*pQhe#WIc9AL7^&0saktc!O=2_AipMSBY1Z5j;SXrnnGbPl?ibga zEe~sg0)~<bGGfmrNtY%WF;cjD#K=~Z_!sxtefD7AVE+LLpcNkRH0SPm1o%70KM7q( zBG<3PV)0yST9#eM3ivH)Nqg5_$0qX}UnT#s@FQMO<S32PjeEDfY-|wb3u6#hrul9r zD@TBOee7gpsMyLb^$=dlU#EeMrqE(tG#1P@T+nz9C(O<G4b9u|Z+vL9;YFi|+EI<r zc&*0AG`<VbzG_}ed=d+02LgKNz#oX>{YC+<Dr;@Q3ufNzU*UddE|6>CN(KhdgPoWp zPFphL$#w%bP<|rgHtJbU#%-g{gqv|Ya1*&G<+jf-k`_GF#7PA2F$BR4m|^DK#5P<- z>|l&D<`(p8JfLw{<D|xWH2zwnOKiguaT^>>TeuJJGx8Km_z*TWVn6Y693ozg`-!_y zA>M?Sh=Vv!ydAF-NAXwUue7{C9MXP<GZb(0nqJmuGJaq)YsE7`6uyPsBuZ~3og?O! z(|x8{*7kERa<tJ~LfO^yD=nvIYm&0h(*priR5CXm1z|tp6{;>9Sdk6j;NhTL^VFR< zsIBi@n424MN((&O<F4|`sd!+WxUdu_s%p>F{KTy)<W;d&si<fq3LcD|qNfUplPHV^ z)zI}+beHl~L_v8t;b&8<QI*aR)3ve&FRQBII9Ao7w>0Y}jWcGQh)Ip}=UzP+L<{Tf z$GQA*6~%7guUAg`r-G>JBvd-yw_1$`{wcRoWBg4{(%iIgMtROzO~vaMVOh(yQnFql z4jg}JRgo1_%M-WgdT!F7U39#fLUY~iENJdlU6Xg6iXX&@TZ(O6W0YKPuj{+XUS5o$ zUG}`pv_4}-o$^#kl4~{<ZcZl7$wb(tB#7#B8dj-`vgqylo)=WK=$2HR?KDH=Nh4bb zs%q48;uuGZXSgmV<FT`eins-nTr54v=zb=?=N!JwKmXPK$6xvV$xo5945Pipg3(H% zyIa^UO&(}Je`xN}?hiU{Guy<Vz0ERqbkcSY+W7+{_Zx7X{CdrrSKb>r;gP@}J6lqr zWITIX4y-}D%k+nHvw`jQk+Ip)AX39&_{*%mcPtLt{dCZE#mZ63yK(3_OGkL}u+_k( zrYiG(G0>WpADwjG&l`n*sa!MsaAifV+|)Whd+IG1ho|K$Kf^xHdw*VE6seh*U(QZ3 z-X^@=pc9KVS1x7>`NIDy|9I?;zigfQv#b90pJ)Gdi}>h07W1p<O`NI|FFI!yddq6D zmtS<)+muLeP(0JC^XT<eQest{Fk~&7t?aN|L}6lh;O70v7Q5z=Y%wM@_EGiq`wyOc z_k;HLAGqVH?828|2ZgqTTHopqgH$ue4as}nVaN4RjU^7HPjWWz;%>TGoBDd6KTCe( z6)^NBZU>f|15Mu^{Cw8Q#cqQA#1QaF{c0rtiMfw>90kk~$1p=`k}vHe<R^*a>8l%W z<o^3rdeh2RAuSybr3`P^^xc)QddL$EdUX)dkIVO=qE8>E_->Ncqi4-h>rfg~?;xRF zKrU_Pa}$i!U`z?ET*@oo;HgL3^r8N@4@J_zL3DBMDE(Ct>NS>_kwZ>t_az<EUhUWA z3VUf4(K@6yujkgI&T~eLl8zy4it$oD`uL-2ti*eqJ|cQq&99&Dp}v(aYi^~zR4CE5 zK4bM7BL4QZY?Ns!@9#Z)_ZXPs{ED6}*@t|^N%bl?P0!H3BvX2=qnTVPD{IyB6)vsP zcUd#7^E7=0jHAXnB@I!7yzKoq*SSx>h@0oGt<-9rfLnD<hgrv%IaayT9<#G}%9^XY ZI!9{!6KGcYf5wShe*(GuoWl36z}M1Sag_i7 diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.expected b/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.expected deleted file mode 100644 index ec6ec39982d..00000000000 --- a/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.expected +++ /dev/null @@ -1,104 +0,0 @@ -| AsROImpl | System.Runtime.InteropServices.InAttribute | modreq | -| AsRef | System.Runtime.InteropServices.InAttribute | modreq | -| EventWriteTransfer | System.Runtime.InteropServices.InAttribute | modreq | -| GetPinnableReference | System.Runtime.InteropServices.InAttribute | modreq | -| GetValueRefOrDefaultRef | System.Runtime.InteropServices.InAttribute | modreq | -| ThreadIDExecutingCallbacks | System.Runtime.CompilerServices.IsVolatile | modreq | -| Value | System.Runtime.CompilerServices.IsVolatile | modreq | -| _bufferedValuesIndex | System.Runtime.CompilerServices.IsVolatile | modreq | -| _canSeek | System.Runtime.CompilerServices.IsVolatile | modreq | -| _cancelCompleted | System.Runtime.CompilerServices.IsVolatile | modreq | -| _container | System.Runtime.CompilerServices.IsVolatile | modreq | -| _first | System.Runtime.CompilerServices.IsVolatile | modreq | -| _head | System.Runtime.CompilerServices.IsVolatile | modreq | -| _idsThatDoNotTrackAllValues | System.Runtime.CompilerServices.IsVolatile | modreq | -| _initialized | System.Runtime.CompilerServices.IsVolatile | modreq | -| _isWriterInProgress | System.Runtime.CompilerServices.IsVolatile | modreq | -| _kernelEvent | System.Runtime.CompilerServices.IsVolatile | modreq | -| _last | System.Runtime.CompilerServices.IsVolatile | modreq | -| _localTimeZone | System.Runtime.CompilerServices.IsVolatile | modreq | -| _next | System.Runtime.CompilerServices.IsVolatile | modreq | -| _oldKeepAlive | System.Runtime.CompilerServices.IsVolatile | modreq | -| _owner | System.Runtime.CompilerServices.IsVolatile | modreq | -| _previous | System.Runtime.CompilerServices.IsVolatile | modreq | -| _queues | System.Runtime.CompilerServices.IsVolatile | modreq | -| _saDurationFormats | System.Runtime.CompilerServices.IsVolatile | modreq | -| _saLongTimes | System.Runtime.CompilerServices.IsVolatile | modreq | -| _saShortTimes | System.Runtime.CompilerServices.IsVolatile | modreq | -| _slotArray | System.Runtime.CompilerServices.IsVolatile | modreq | -| _state | System.Runtime.CompilerServices.IsVolatile | modreq | -| _supportsRandomAccess | System.Runtime.CompilerServices.IsVolatile | modreq | -| _tail | System.Runtime.CompilerServices.IsVolatile | modreq | -| _timer | System.Runtime.CompilerServices.IsVolatile | modreq | -| _version | System.Runtime.CompilerServices.IsVolatile | modreq | -| _waCalendars | System.Runtime.CompilerServices.IsVolatile | modreq | -| currentTimeZone | System.Runtime.CompilerServices.IsVolatile | modreq | -| g_nameCache | System.Runtime.CompilerServices.IsVolatile | modreq | -| get_Current | System.Runtime.InteropServices.InAttribute | modreq | -| get_Item | System.Runtime.InteropServices.InAttribute | modreq | -| m_Dispatchers | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_Next | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_array | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_channelData | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_combinedState | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_completionCountdown | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_completionEvent | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_continuationObject | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_currentCount | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_etwProvider | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_eventData | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_eventObj | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_eventPipeProvider | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_exceptionalChildren | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_exceptionsHolder | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_faultExceptions | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_headIndex | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_internalCancellationRequested | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_isHandled | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_lock | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_mask | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_nameIsCached | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_rawManifest | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_stateFlags | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_tailIndex | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_taskSchedulerId | System.Runtime.CompilerServices.IsVolatile | modreq | -| m_waitHandle | System.Runtime.CompilerServices.IsVolatile | modreq | -| numRequestedWorkers | System.Runtime.CompilerServices.IsVolatile | modreq | -| property Current | System.Runtime.InteropServices.InAttribute | modreq | -| property Item | System.Runtime.InteropServices.InAttribute | modreq | -| s_DefaultThreadCurrentCulture | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_DefaultThreadCurrentUICulture | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_Invariant | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_allContexts | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_anonymouslyHostedDynamicMethodsModule | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_cachedCultures | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_cachedCulturesByLcid | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_cachedCulturesByName | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_cachedRegions | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_canceledTask | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_currentRegionInfo | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_defaultBinder | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_defaultFlowSuppressed | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_defaultInstance | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_emitAnsiColorCodes | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_encoding | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_indentSize | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_initialized | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_invariantInfo | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_jajpDTFI | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_japaneseEraInfo | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_osArchPlusOne | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_osVersion | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_privilegedProcess | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_processId | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_processPath | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_provider | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_providers | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_regionNames | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_systemPageSize | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_userDefaultCulture | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_userDefaultUICulture | System.Runtime.CompilerServices.IsVolatile | modreq | -| s_zhtwDTFI | System.Runtime.CompilerServices.IsVolatile | modreq | -| set_IsDerived | System.Runtime.CompilerServices.IsExternalInit | modreq | -| set_IsOptional | System.Runtime.CompilerServices.IsExternalInit | modreq | -| set_Prop2 | System.Runtime.CompilerServices.IsExternalInit | modreq | diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.ql b/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.ql deleted file mode 100644 index 3eeb5cf0697..00000000000 --- a/csharp/ql/test/library-tests/cil/init-only-prop/customModifiers.ql +++ /dev/null @@ -1,17 +0,0 @@ -import semmle.code.cil.Type -import semmle.code.csharp.commons.QualifiedName - -bindingset[kind] -deprecated private string getKind(int kind) { - if kind = 1 then result = "modreq" else result = "modopt" -} - -deprecated query predicate customModifiers(string receiver, string modifier, string kind) { - exists(Type modType, CustomModifierReceiver cmr, string qualifier, string name, int k | - receiver = cmr.toString() and - cil_custom_modifiers(cmr, modType, k) and - modType.hasFullyQualifiedName(qualifier, name) and - modifier = getQualifiedName(qualifier, name) and - kind = getKind(k) - ) -} diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/options b/csharp/ql/test/library-tests/cil/init-only-prop/options deleted file mode 100644 index 8511aa162b8..00000000000 --- a/csharp/ql/test/library-tests/cil/init-only-prop/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/setters.expected b/csharp/ql/test/library-tests/cil/init-only-prop/setters.expected deleted file mode 100644 index 49f58c1113d..00000000000 --- a/csharp/ql/test/library-tests/cil/init-only-prop/setters.expected +++ /dev/null @@ -1,2 +0,0 @@ -| cil-init-prop.dll:0:0:0:0 | set_Prop1 | set | -| cil-init-prop.dll:0:0:0:0 | set_Prop2 | init | diff --git a/csharp/ql/test/library-tests/cil/init-only-prop/setters.ql b/csharp/ql/test/library-tests/cil/init-only-prop/setters.ql deleted file mode 100644 index 06ab21392e3..00000000000 --- a/csharp/ql/test/library-tests/cil/init-only-prop/setters.ql +++ /dev/null @@ -1,11 +0,0 @@ -import semmle.code.cil.Method -import semmle.code.csharp.Location - -deprecated private string getType(Setter s) { - if s.isInitOnly() then result = "init" else result = "set" -} - -deprecated query predicate setters(Setter s, string type) { - s.getLocation().(Assembly).getName() = "cil-init-prop" and - type = getType(s) -} diff --git a/csharp/ql/test/library-tests/cil/pdbs/EmbeddedPdb.dll b/csharp/ql/test/library-tests/cil/pdbs/EmbeddedPdb.dll deleted file mode 100644 index 7a9e483ba2b8c4ce0317a64d9175eba8c758837e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4608 zcmeHKYj7J^6+SEZ6+2Pl+B8m^hOHIHvSZ6qB-d6`6WNyIh}f~P6a#UFcqOgnr7Nwv zyH2AF1v?!=^8nHZ#6Kvc5N0UpbTUIbxD3#c$3W7S{%L=-8QRbvold6&D5Vr8ZTRlh z!}5bNFwFEvIr2Sw&-0#h?%lh`gS(EAm553(u3smb#gl=b;}1tu5ZgZaGaEgz?73TK zg@Na8jZ7$pnAWv~E+xg7luBu)7?nkRG9@Z0F)$PslUiJMu2@mIKIb~rM>HT<>5VUJ z+Ld4J3e}5Mf{UmUoU$zUO$VMLh984y6`xzOaWh6vjc5u4_zbKx_Eo0J{^p)JlCc0Y z@H@mNexmzWAr`_I(Q@#vH4t?!lzkX25>*t*D?o26qMfF^&jkG^rUV(!H5WH14kFQ* zQ#bS&C?1<16Sh$-pd#=idZ#X{8Wg!`3_|9M=Z$9${6szZdH(q<@@K$evrs9iBGIu@ zB7rgg3#f4kR1Q1XSJUdsja1fLZ*i<-`8D^1KiwnbJhM3WdYvw($K`SR*g{wv_~$UR zf0@XE_yZXBu&FDlguyga<j&H!?+jBK6PBL6e`hd&=M<xvZI7x&K{J54&|hnzWsLZT z;Gr9{c`-Z4_&{W2!(jR52hn2!o3m3@F08PWk;(C9x-6`uR+yGijLr#V^d`s8a6Bq7 zP9w*Dj`wr^5M2eomE*@b=UemuICofBuK82K>LMT`0cGpv^N`4-)3kvaLB}|Cu<k`z z3drb1L|6@6Mr(j8sR?)$xjFW6+|6;2<IiyXd5$IEPmsdrcX6EIcpA8joK!^{fosSM zd^3fC?X(+sBPD@79B<~hm-Dxi0e+ZsMmdhr5peFLCxHz*OE*!;RJOWQfNIRxUglvP z-IAXY^{SF#xap2TEk3ErpQ65GRF22xcqksFq!H6}Rf*D|Y))u#>Yr5N-6jr6bkdY5 zAV((?2`Q?|bG%+HIieWKJYKh9$jPXhi6~~VYJsgwaXBgJcg}f<NP0pxx8h=x@79V1 zd7G_@Dv!vzp=hZ&tGuvRON}duNnJ9R6bED@rYq_BLd2a`RBkaWtI|F`GZy;}=_pgo zTrB9-(ivSzOe`r%rlnM7&SrQrWhzOTt%-G_imI4J(s0Hw<)kyG<jkds_p*3voN-m9 ztY+@v9G1sbImXf=XUx>}JU^gFiIirTO3cW!^1g#9Q`WU~Sl0I{F?o?VTNGI@$g?|+ zP;gkFJ{0{T7R(-{eLoq0e&+UT{in9y^6PuIeC-sKh=NdI6-g+?q`I1sHij(La-pK) zr~7x0tnpqs1cizUA$NPPW3Oeza^q)pDZN8W_3ewve48Q@x^}lAK(Cy?#khN_ijOIk za`tM0ZYXSnc=l0I+~jh15H$(3{x*+S?ufdht#OyPqt)Bl(b+2bI;7S(<GR}8?Qxd} z7dlpO<DSHiXi%WF&K-S`!ZB>gZABOE(%YPFglelT2m^|dR;A1i9NAiCB^D$i*Jf4X z-(6uagiDRqB4qCd4E9aR1M+9@>NdzijTpF0hr@yJ%fI>C)taDX+mXty<7YeUl`Pw$ z{GDmMsvk!f3<Y{-Q4FK<T|F8fi<7WUw59JFc6eU!P?hVn`vnTF7DsH`f|f&T>9vwo zPk&>&Tlmq}OV8V!O_!eC-d1+;)S2@=_pb3ysmHo6U47)cqNl#@k^K+rZ+9R3-R*yV z|KZb(5B7H)|HC`IuV32T_S(_!`^RUGxZG)ra_m&e)XcKOf1jRN*=#$ve3j2(_#!7u zTh5g1Jh%LZf1N(*3q5rIugV`gT<x&_W%K4p<G}YUA?LRR;g$P>*S<O0aOLs`U9Wnc zdTIUd`-e}w?|%2012qTM*xqX!-!)tB_~koqoWJMs(Y=m=)-T=k#PR8iFCF$ZJbCm7 zCmdTgwm)@prmNH4*3k6yfy?b3P3;X0?WJ`mzVln(p$iud?!S29E%(uuwFe&fasAuR z*M6n#)eWb8+UR@tys}aqeZ6_l^%gQ~?KgYu*2bEeDyu!*^<bTy&gA+Mc7|SNbCJy! zL%x5>O7`?>dO%eNB_);pP{=aBm6-H;1AHv#h!*?%cym|>LR5!#YJMHqB}jw|Xc3?3 zvEK1>exjD5{<+2K1$P8}!5-i~8pbS$PJ0LFAn?{~*G<1D`Qr!0omak3*aB+?tVdvX zQ!xZU2=FSA4nGR|Mj1X+G)@{<ThFZ`kV@bhkV|AjPXm>O(<MjYR6tB7v=s0YOL&^# zIxgg${dp<MYJh%*)uR{wlK9E6HnB<;>WgG)zJ3PTN?b3eLVk4VLSelCJQ(OFSsdwk zarVI~3TYfahC>)pIC0_IG-p2onGO$g`MJ?|xe9}@9_uSvg-ouSLOg0wR7<bp#A+&j zY=3Wn{Qzte+>&LUrVNibK@;$bmTeJFq(||>iL?o^xC!4pYKE6$KiM5(xh3ION5`12 zB3qNiJd|65?GTGOzuSyrmB%+{$r{bY-pOknf*%d}Orp+aQRe^39^XJ-<N0<AE4{GJ qo!q7ySr|O0C?d|F0{_kqX?%1bX8&h=>p%ME_M;2;|11A*EAUTvDzKUW diff --git a/csharp/ql/test/library-tests/cil/pdbs/FullPdb.dll b/csharp/ql/test/library-tests/cil/pdbs/FullPdb.dll deleted file mode 100644 index 6ce8636e4ef29d6d9512fe9cdae05365d5529ea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmeHKU2GIp6h5<Ux7!~I<*%TP4lN=-cHC_jC@8q?ZVN^FV|OVCP3Y|IbUQFRv(C&y zR~yAd1og!j;=92ZQ641GKuj=(_}~kMCtu~&2jaUS;CJrqbhllCiSfaxXM4}R=l7m- z?wxyYM~{C<bwpH;_V6Lm4fG5#fgg{~LEQHAw{7%w)9p<+q{Fv2rRH=;F4$JiR`YU3 zHBHNv)0%7-O<6bP#CTH9TUkw6v7&i%+4aN_(P62MzL@Gg?$36Yy5trqOcVkq=y5-L z7QKuXLnB%x#sM#GW|Y;4&Vc}*p^j$Gvnu~p`ZCEZKni}xc@QI-<3cQl8KPG3I=7%L zmpzV_z3_dN5a@$GfnIU7c^CcFMj#oDb1lb>kpP)!MzI|`14_ge!+;m68LbLph+eTZ z!-68mN;7Ees|~FRVnl;gq!?c0x&k=105#A>ndnjjk;Kfu0Bgblkq+$JsiV20Wk)F3 zc)Yo><5){$-GjjT2U2UO=U#Bd4r<!o71+9xli7}W29t*drShzt!<ncOR{Fwykv$wl z0~x?Sz-jlJM3{nNXx&NI*3F#58U@saOVfQMNiGJw<lP63j3m&%!!+9t8de%K1I(oZ z>jKoo#P3oct@m<fJIF+X2_ZmHMjrc(=u3&myzA~$C=euFVjQNQrIoZ5=0Q3}-$_CG zMd0rRo{*T+Dez8#Ex}LFui$qHd|7bbrwich4qO+L@W$Y|`L_zKod(2sLT3Kk^og_` z^n#$?-Eaq%9KS?ANlkPIakc{oX(MnmZ3A9K5rOvzJRtChz^@4Ws=zAnI?~1XHGxY4 zzYQEDg<9x&;5F0_{3IO(?#8xLXb0ti`viVL;JDzwOb+--!8svthCTr2G<^f?&@Fm` z>d$#KM)+lDN6)M3!zScWhPa_RPJ~_@wX#J++fTzq!<fjXDeq(~+tAZ=pr~gDT<nl^ z(bXuSrHi?onl`iwFK*?hbVpyp8*m&gpEgP<-K|z#WZP<1%d7V3ikFmX=QMX1C!TiJ zsuuV*!@8kOX||(VX2r@E#w~MJ&lPReeWW;{IT>3oEEOW|f^G<lNzG8_#mK4kJz=9Z z8Mjstw+ba&&&@qjlrN}esbVu(G+jNf@tl|^tsA;qB~6wbSIaA9C8eAuK1v!^Gp=Rp zs^PDUk~IwS^vj(xsm&T%hLa<OwS9g<S97N2xO&F%S^f+ormNXjA*tDC^o&*`_DZAK zi*j$>5fJtX)W_4OFkyKMmF~@7ee3)ihb~<DX#eF;_byPqEJ>j{nWP2`+S{3IV-yHB z)`voYQ0V&W(^DIxci#gu6beb=&?b6{Kh0EN{ZU&jj9KQ;d`1&1mYTDzvyKG4M)4)L zV&HF6Y7ndriB>PJhJ5RaEcb>ZyNR|*v^f&)-<gd>)t>CE7VU{fcZYlWwM=hMZ#vo= z&F<P6>5WEl;KOMIXC;0_qY`y0V?(LM-S}L2MfTx5-K9hjX4~3DVM2EbhFTiK&Rxq^ z@}fi*+FU08Ugk5U6CwBG9_+`FG?`2!Pux1Y?cn`|(QEsD+;a25wQ<fUzIQsSotefP zfD7$RCsi|>w&thHc~4vEQ`2Hie2!AUNBi%Bh4P)sS$)i7nMbwY-@TsXWZbe7hB2z@ zrgw;Gn)qZ``tTX}5U-e8FMlV8Zy2Ht-YcrgF>i3(yN}?r62Bde#jq9YnDU^t4ttZP zaN?f?9->K%M)1-a13dyf?7h0^X8msuyi=cNVDS2vJVKoQy!Wbs?{o=XRkGnn$J;=I zPm^ZJ5^9@;RSHrSTnBQMT<BS#Jou{KfKv%ExzN(V$AMMj>7dXFBX92)r8L(7Hx<_- z4u5(4G+4Ws#e=RYSwYNSLbj^VE34qn3_;7EF98n@Wkei>C2<Z@5wROIL0Qbq^{=*@ zf}IV^N?sA%q~XPe?-Z{=NmRxax+dZ<s-juyU%@Oq8?WbT*d2yVPFQfJ1uBUMb2Nt- z@txQ3WV(V)DpN0Fh!D;&yz9756+hmJWZ^dtzc%iEziLD=5$kw)4qg$C)vpm#TxkNQ zx+ayFz1mE`-a;Nl)YGlXbh#Z-RMc{*{_={})|2Z$fT$gjLmCm5knx|{A?$xH$lm`9 NpYwwK5C6Fe`~f&5G2#FK diff --git a/csharp/ql/test/library-tests/cil/pdbs/FullPdb.pdb b/csharp/ql/test/library-tests/cil/pdbs/FullPdb.pdb deleted file mode 100644 index 69e2f3db261820d8d7c257b3335d5d8004f3b314..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11776 zcmeHMO>9(E6h3blq|+Z@q#5dH<V6Dkit|%Utt6%?#fGL%3N$GS6VmCMnK*XnH1non zjEjj9-DwwYG#W9wAP^U%#)aCX8iR!;O<0j&SQsUQ215c1)A9S>4;dTUq_LIh%sn&b zefQ_wd(S!dz5C9+FP1U#IWw0o=-uJ&)>b_>(4)T)ibR^~g9io#<gxy;70Ckgpk^D? zwF*2iT~bub9_WzYYT5jnx4q$VRO{e6w%K98Mk$rNz*1=)u8OMJ0}q@3O=|wDdCLD~ z+sC1(c5blkn1<5hKcCul@b7nG7ham#F*Sdo-xXvXxty*Y-n+1<yjrE#hzB0_{PU$) zzWy^$a~9$nF;S_xga_38FX5aTsJcIVxbxzMS^va<O!t4~`SO>S`#$;e_bdL1PCMW5 z`TNKG=~@5OZjt+Sy;HXWEu|CZHpf1=m+Lj&dw$403pjn~qy3*6Q~s~N==$|~`;mPe zC%^lt2HaOQChCqQE>?|U%8(^JFh4gx$3Sk7Qr-LF$<&+iv3%~0lu<C_1Bub(aPF;m z&v-U_C^;PO&L&JV8Zt}~V}YpYh^8Sr22taIC?knhFh|(~CaHa;?T1Hyeey;`D?*L* z*wBrc!mPI3pq}zLBDQANZOd8S31;8l%)Hwdcj|c;ur38wR2d%N)7d7w{nX|UM<v}s z0_OBF2Ss`kMj@BaB(fp_S?6clGhiJ|;`|3ixB5cbLY8AaNsb!@s}0YZJ_GZ60#^aH z37`$JyiEpq4~8c17q9nH=go_guU+l^al6m+!})KAP%SYz0Nq8rxB;mPkFa<zlDyEG zd97Z1))Ne9?B_4!Cs+y6@YAi7NImehlSZ>5b=d%<es#e0z}s{4MU;sT`39$alY_K{ z^+6!|Dn1Q_4BC6~Yet*LQ6jP)_>^oz2_>oX7Wlv`cag?8wBI78Ni8<4>Xm!Cpf7xf zzG{T?o&Zu0msfRgj#FIi5mf&x;ep1L=tT8VaUKZBc59vH`l*#I@B!IXRvu}OkfIf* zzEbEvdVuTxV&uLX7OPj~Yu^K$<5Rw<756tt<A;rMCD{bCUIpu5#_QJiK_DprW{iM{ zXW9Z>?9<`$^I^A!STDDn>{*~2<2Xg)Y%N3f)>69mwntu!v~|gI--qtFvbrl=h8{$E zO_qT6;9Qz=bxr_CyC_a%tmlrrj4iIXdt+x9c4reiwaI4<V5i;MHHAxk|2Yav!mngT zM|wxoISG#@PNqx=n|UMrdMc4j<%hF5W5g~<XR;|Xyu3pJ?knh8hRY<rZx~`f17--! zu-w{v02zXl)MqE#4=Z-vh@N!tB$&^6A7;dT-rq*P2<HBMC-@BN_Tc&Anh*hVf5e>) vC&`^WPMWhn;$BG@H*!7UIDFS|&!nhwJg}v5R8g8J4=4{P4=4}(j~@63S3*nE diff --git a/csharp/ql/test/library-tests/cil/pdbs/InstructionLocations.expected b/csharp/ql/test/library-tests/cil/pdbs/InstructionLocations.expected deleted file mode 100644 index 96d8f519d48..00000000000 --- a/csharp/ql/test/library-tests/cil/pdbs/InstructionLocations.expected +++ /dev/null @@ -1,41 +0,0 @@ -| C:/dev/projects/Sandbox/EmbeddedPdb/Class1.cs:6:3:6:4 | 0: nop | -| C:/dev/projects/Sandbox/EmbeddedPdb/Class1.cs:7:4:7:13 | 1: ldc.i4.1 | -| C:/dev/projects/Sandbox/EmbeddedPdb/Class1.cs:7:4:7:13 | 2: stloc.0 L0 | -| C:/dev/projects/Sandbox/EmbeddedPdb/Class1.cs:7:4:7:13 | 3: br.s 4: | -| C:/dev/projects/Sandbox/EmbeddedPdb/Class1.cs:8:3:8:4 | 4: ldloc.0 | -| C:/dev/projects/Sandbox/EmbeddedPdb/Class1.cs:8:3:8:4 | 5: ret | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:6:3:6:4 | 0: nop | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:7:4:7:20 | 1: ldc.i4.1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:7:4:7:20 | 2: stloc.0 L0 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:9:8:18 | 3: ldc.i4.1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:9:8:18 | 4: stloc.1 L1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:9:8:18 | 5: br.s 14: | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:20:8:26 | 14: ldloc.1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:20:8:26 | 15: ldarg.1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:20:8:26 | 16: cgt | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:20:8:26 | 17: ldc.i4.0 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:20:8:26 | 18: ceq | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:20:8:26 | 19: stloc.2 L2 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:20:8:26 | 20: ldloc.2 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:20:8:26 | 21: brtrue.s 6: | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:28:8:31 | 10: ldloc.1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:28:8:31 | 11: ldc.i4.1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:28:8:31 | 12: add | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:8:28:8:31 | 13: stloc.1 L1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:9:5:9:18 | 6: ldloc.0 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:9:5:9:18 | 7: ldloc.1 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:9:5:9:18 | 8: mul | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:9:5:9:18 | 9: stloc.0 L0 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:10:4:10:19 | 22: ldloc.0 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:10:4:10:19 | 23: stloc.3 L3 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:10:4:10:19 | 24: br.s 25: | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:11:3:11:4 | 25: ldloc.3 | -| C:/dev/projects/Sandbox/PortablePdb/Class1.cs:11:3:11:4 | 26: ret | -| EmbeddedPdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 0: ldarg.0 | -| EmbeddedPdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 1: call System.Object..ctor | -| EmbeddedPdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 2: nop | -| EmbeddedPdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 3: ret | -| PortablePdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 0: ldarg.0 | -| PortablePdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 1: call System.Object..ctor | -| PortablePdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 2: nop | -| PortablePdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | 3: ret | diff --git a/csharp/ql/test/library-tests/cil/pdbs/InstructionLocations.ql b/csharp/ql/test/library-tests/cil/pdbs/InstructionLocations.ql deleted file mode 100644 index 32170537789..00000000000 --- a/csharp/ql/test/library-tests/cil/pdbs/InstructionLocations.ql +++ /dev/null @@ -1,17 +0,0 @@ -import cil - -// Used only because native PDBs are only supported on Windows. -// They are included as tests but disabled here. -deprecated predicate filterMethod(CIL::Method m) { - m.getDeclaringType().getNamespace().getName() = "EmbeddedPdb" or - m.getDeclaringType().getNamespace().getName() = "PortablePdb" -} - -deprecated query predicate instructionLocations(string loc, string extra) { - exists(CIL::Instruction instruction, CIL::Location location | - location = instruction.getLocation() and - filterMethod(instruction.getImplementation().getMethod()) and - loc = location.toString() and - extra = instruction.toStringExtra() - ) -} diff --git a/csharp/ql/test/library-tests/cil/pdbs/MethodLocations.expected b/csharp/ql/test/library-tests/cil/pdbs/MethodLocations.expected deleted file mode 100644 index 4a9747bb722..00000000000 --- a/csharp/ql/test/library-tests/cil/pdbs/MethodLocations.expected +++ /dev/null @@ -1,4 +0,0 @@ -| System.Int32 EmbeddedPdb.Class1.Method() | C:/dev/projects/Sandbox/EmbeddedPdb/Class1.cs:6:3:6:4 | true | -| System.Int32 EmbeddedPdb.Class1.Method() | EmbeddedPdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | false | -| System.Int32 PortablePdb.Class1.Factorial(System.Int32) | C:/dev/projects/Sandbox/PortablePdb/Class1.cs:6:3:6:4 | true | -| System.Int32 PortablePdb.Class1.Factorial(System.Int32) | PortablePdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | false | diff --git a/csharp/ql/test/library-tests/cil/pdbs/MethodLocations.ql b/csharp/ql/test/library-tests/cil/pdbs/MethodLocations.ql deleted file mode 100644 index a301741f0cf..00000000000 --- a/csharp/ql/test/library-tests/cil/pdbs/MethodLocations.ql +++ /dev/null @@ -1,19 +0,0 @@ -import cil - -// Used only because native PDBs are only supported on Windows. -// They are included as tests but disabled here. -deprecated predicate filterMethod(CIL::Method m) { - m.getDeclaringType().getNamespace().getName() = "EmbeddedPdb" or - m.getDeclaringType().getNamespace().getName() = "PortablePdb" -} - -deprecated query predicate methodLocations(string m, string loc, boolean primaryLocation) { - exists(CIL::Method method, CIL::Location location | - location = method.getALocation() and - exists(CIL::Location l | l = method.getALocation() | l.getFile().isPdbSourceFile()) and - (if location = method.getLocation() then primaryLocation = true else primaryLocation = false) and - filterMethod(method) and - m = method.toStringWithTypes() and - loc = location.toString() - ) -} diff --git a/csharp/ql/test/library-tests/cil/pdbs/PdbOnly.dll b/csharp/ql/test/library-tests/cil/pdbs/PdbOnly.dll deleted file mode 100644 index 49fd9b0be231b6e5f888395e5487a04696b59896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmeHJTWl0n82+a%ZK<VDid+O?pdgphaksk`P}FUAOR3Us?UsVLk<RR%ZU<&()|n}E z2_cXuhBxDz4<<&QNQ{9<A~9YPBZ&#&)kngU@x|z~2J82q+1YMe#Kaek`tP29&VRq0 zGw00kiFc@;h#D~F=7?_L$&irv(dZ(?ZCgHTqnpd`ZoQ=(xx00I+Vs?t>l9qQsOEIr zc6`+ksykz=rmd#Z8MWx-g|=cv%l3-v(E*|(N<IDXde4b4+I`xlKBh#7n!#xdxaW4_ zsbVBBh*rsYU6403Dr!U*L4eOtPm^!4D*xx76_QziUGSUcNrGsa8?hKBiCV$?c?Z#^ z#j;1yYLI@Y(hT}=NZ_gYV%Ep=ViS;x!L?TM#!P}rG^x3sn*$|tOJKqa)q+t231qLi z!g8R<xzZ#C`)b3efdo;14JoHt?kj+EtD|LPsYGusBT|_87oa1e5SIk|c3RicMU8v5 z)$LlzIq&JuywtB$Jae9B;#x$DMPktd90;+2KZjxG1*{A5KZwzp@m<p{c&w2}?OcB6 z(F{#v!pqt@cyuU*=Pc+}w(YkZ12hB7mBBT2w48}wlo+iI>S8;{<UnS!O<Zp{h(1tw z&b#VYdZ0AYw8Hplx}&V5Ct=!1$LJGq?n(TW#A$^&8zqiQY)gKU?t#Bm;twU~3S9<g zZ{0^S2roRx=HDueSY4l-kE+bSL{HF8&^bw6UVj^w3M#sd4BLSlX#;Qz?FL>&QHc*o z+$Zsn#IH#Fs>C|*<7CSD8xof#z69Jz8a+l`z#S9^-bfkXPRasz!A7H)#Lr2bl>C>; z0Y4)-uSuMvx4}70H-J6*5*0LD47y8Ih@p$TmLY6LHC0Gjy5~jd;INaQvBV2h^m2}C znFb9Df7;2@;Eb8?^RY3E8DCIJ7&C=}ZdhWTmvo8~re`kT^?9Bs8diDS^lMeCY*){V zqVAra_cE@#1>qmUVJ6NxwSv&*kZFkt;d-WH&s&AUq+?H+g&9}(A1Y1>FXx)2g+k<A zGA(H_CM<nc&b+0*M_sfg=Pwl`ol@B~3)2r36-&BZp0^pBv3;{BI40s4re*py(oEU& zMNz9LX_YeZF4Ab;NZVFf%Uc!&T9t=3CZ;Tr<B~|r`Hma%Q>I?99nUv&UdRgl4%xnN zol-`)XUv>fA`TiN+^RfSZKQ$C0rj+T3IW5Ef*oWJ9{=XT+?~Y7-+#B|-5b5vsX<kg z=6aQsWtg<LGug(duD(fWZvOOKc49;P{uL-RH!JcWCfdxe<9OZLW3FBraqNNFoRCX3 zKJ7YZJq3DA^6kZ$(^TmPjxfnur_k!^GN@l)Q`MeGbRW@fg|_dT+Gj-a@pyMs*Y)mr zPw)Qj{qbjF-J)kokL5%zX7oanoknps;zu;B&?aqUV7$5w_g0qTd7PiUS`=xvt*HuA zrdP7`@(8x<8n#la5>;w*hr+uSuOMwg%B@df;20Xqq%!ZF@A&rpuAAwrSLe(h(+@hh zqU5vLyf~A^z0SS%vKigZ8_sODQg_xdPG#k?gdDAuH#pG02u3USB$srG=PJ*ZLU^AB zl9NftO<C5kZrZ^iCWL%zSUR@@KIE6lQZIiOhi@RF_4q7Vm;t{GMA(c=_^ij@4#yMN zLp9$|t@UwmCvY#E1RkI<%!cr#H3E7F_)zfGMPD@h^jq!C8{QKy!kU5a2;Qf)kOHB= zt4=QbnD}lG@M+T&ZX$;5(rO%19b6A`oqXsypaQtwV8N+^oP21R;1?d^>9Ev^pzh!o zCxd%{`;7aMgufzw0@gmF1hB0}R+90{s8*MH6&2c#Ge)V#OTmLjIhjXkL7t<ON5nMz zTU3T|WP#lT>|9vR*A>Nm8>tRLoL0o)&iGQ-Mjlp8HVgf0h-Tr(>$w_sM_^Ns7F=lw z8E~fxG!1V!6PEB)x`qv{QV(*75>7GN1246Hf)&ZbZxMc7d?AEgBTC3z)0G&!BAjcu zx=eAWiT)_(pf{ticTmR+`svqHy4a5Jb;E10P=9epm-drw`jE9JYcP;u85RGT9n${i Sf{OPR*`4PF`yc*u9rzt=GAxV$ diff --git a/csharp/ql/test/library-tests/cil/pdbs/PdbOnly.pdb b/csharp/ql/test/library-tests/cil/pdbs/PdbOnly.pdb deleted file mode 100644 index 92f60f94a9d210cbedbb2118c6028731b0c3ea31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11776 zcmeHMOGuPa6uvV~>Nvh8V=~<gflzAmP*aIW$OniGCKHu5i1Wlro00javS=|7<gQ$_ zaUodlY8ASw1cML@+bC2}iztwcN~|C^Ii2r+$Rsi-M$O|MJ@@?g-ZS^{o&Vl@&i!qE zcPJ<XePLsxxv`?cXtTE%>r56)UQS7qoe`<Uf3}w%!^jiukpxdu0D<W!r*uZ3p1n)w z>8JhNb<eG;dhBC`GLy(>(Wr)GG@3yvr&LB@Gy4~C`=_$W|CrltlU4PxyQ)h?r6bph zW=AU~+sDVF{x9vniWEiEfn(`yNA<>{*lPZqBnWJ_{&6VA?*GVRIvZt@Opy;W4g%c% zallD~s#RA<!%WtKe%Q{Y+sD;+o;J6QEG^FKha054ZuCZ%-nXEiDrampyLIZbp*Y%o zuh2I1GuZ0BUelx81vI?Uwanf9Uj0TtH2dJg;>BBQ+3+YiB?$sq@;DWlB*W&z+#v#M z%WKPU<W8fV#v=}o_mX2E6g=;BhXse-8SuD*gN~CPS9_rUiledLDF{}RTVTw+K~<1d z2j~Y-b+4<!lc*rBL=QyhjmMQD6bX=&zPG3%G>)ak&bb%i1=V()dg#*?v1nE0x3Kg9 zVzfOr_T-#Hu2<dyFXcHU1_D@}CRVP;Xq5Z?*fW4^nu$8mwl;6LH|Sx<m`3xg;nU1S z=gZc|Wm@&4`;$G;v9TsrMN&gA1lolIfOi9=$z<wWk_Ku>O-+8I=cA|~QqiB%Cw2yl zSSofLLBCWN*+nv&WCpdYVR^KJXxI;_Od6Z~OoA07;j|?L5Yv@t%`31~E*WbdNnoz< zmKxcC68cF{iX`Z`{>!kib~&XU0tQwl?)})WRZQOC>Dj;z#*|xXEg);^%|G2|6fa0u z&W3cyD3#|A8(-F1MZaIia&P9cc~2fq_$;xJ7{0vteUK!`Knx#&v9HsjphUVIj=djN zY9MpipqxELa^ra~hn6NOv}Co%>uQ?o4_nxwho%)pSMd$yW<;STFEUS5P_5rfLoZu) zI596MLc+gPdfrBe%aqty?gq_CghnOOiXBMLN^Mffc;A1{&`iuH{DHpKfG^0*0p|s; zz|2C(ZSM6tJ>HP3Kj`k03Vi;4uVCKZr2ygzKwByUwx1-q_zdR`OqoM0#vUZ${)6~u zCkcnYmgZASM&b!#tn)Uqh_c?VQa(bA_#N^5YvM{;U)U26qajw?O$;N&8cj!e7*b0N kzY+Th`oURKK+Gv|5Lo}nn>a(_BjE^e1ULd5fq#I&Z^Z05+W-In diff --git a/csharp/ql/test/library-tests/cil/pdbs/Pdbs.cs b/csharp/ql/test/library-tests/cil/pdbs/Pdbs.cs deleted file mode 100644 index 8b137891791..00000000000 --- a/csharp/ql/test/library-tests/cil/pdbs/Pdbs.cs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/csharp/ql/test/library-tests/cil/pdbs/PortablePdb.dll b/csharp/ql/test/library-tests/cil/pdbs/PortablePdb.dll deleted file mode 100644 index a6da57ff582eae63ca0fca14a861ef9dd2d05088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmeHKU2GIp6h5<Ux7!v<%U?lJ2U?N8j=SAbS`pcHw}m2Y*X~jfH`3YNVLLFpv&_sw z*AN2_8Vp2z;N73Z5S}y!V=)>NgYratGx%aid?o}RH37eKXaD*mCi-Bap6xyN-t&LX zy>svF*wJ^Xj)>~f9zG<RL(dQr_|fPb*sV`}(Ms2vZf%^C4&K@rpV4hOZ<!fO&B`e? zmoptXsmWF$C+j&mG7*!rW?EC0FK_NDnT`$<9hB<m+gE#zmc8AfO>&FmC-Q;fb*Y~| zgI-1pp%Jx-vB!;@2_-S2bC`h6P)E~muqgjk`_hz2fN9vB;6aG!0vBQ-OcN~wZOdk& z4GVdXn#*qZWf33d`^yvbilfas=;s=NWHipT6gNf!WQ3<!ww1z6#1_JU7pfVp211Bl zu{6VkAjeA6Xl$z$tp-9wLp4(|yv%h4aBLoGpbIk5`wc`A6aNCN@_R%&&~K-X=8l%_ zK5ygE=EjaAEsb>#JZm3F%Y5B;z00>#)3!~XEh{*gZSXS`J1``bymAhwdlkPD^ale2 z97F>dz&BvD^K~M)p#5l_F~`z#8Ji_$Q5P;v=b;###ekQ*bKjxS2>MHyuV&pL!%Sk% z0Cj2K8V@z`<X0(3Yu%h#4?NMJLI_Zlk;mmm^s&TavFoHZkC(Cn_tH<&3K5-`67-$q zrJn`9A#hw`iY)Mez_y_8r~9C97Wj&wyiFHD+3WdQIN^=KzWLXN)=q<B9F>`Vo<5Sc zVSZN3-duMZnjF7GKS)h<8*#P+ducszGi?QKqkzBz0uKs2D)37Jzbvo{yoPi!J|%Eb z;Pb#<QmBQV1ztt{z>m{m;7)8ig|^cv;Gn>}1r7`Pi*yF`n4r8OaEjgm<s@APMkVMm zsz2w}7~z+o9X+pV88*@r<zd)RZ972EkD2L$p}jy+({j|Lp+(b4%GxQ@GV~<vE9mJ# z2fHL$a5Rc&$wDT>LRDJW%ueaHK94qN+gdhh6yv&6D_S92YFf*x*2$`sxN2oIX9TC7 zcE+q_lyydQLz~hpTQ_r6tuixg=8o%`f~7i3vLl+Evh@6XCgRTPhR~SQ40TqF?8UaD z7V4977Bj+TzG&&0nI&1-yqYUkbtVfrN6%{P6MmAqp*uC)SkZR0tWpwEN@?Q5q!Bgc zn3k>@wX36~4TD^rQm0I6#|<sT36jDZWqL$cGda_C^pssDmA#DS9L+NGG0i%yr?f?E zw>+9v;k#>(ps-&cK9M{Dho!yr<+<}WzrT5Z;xqldyB}ORa)9b(N%GanBsE~r-p<oj zMjmftz0c?I`96OwF}1$;&RZb*d_GAW-b7FGCmQ#xJ#4A@aWgkOo6^Lp#b+$@j4eT~ zQGC&D61CKBS85RC4vAJ)Rz?2isx0^T1G|W}O4Ow#)nI?Xzq7k9&^OTCo7Pg@{lS4i zcVOp0urC$d*`w~_!yg_3I5+Vl8k1;)GCmxy?8+UbmDz){wND8k)YjD%W<<C1hFToQ z4qnY#a)l!cX)cwxqouJZpD!B_as+o`1jo~4EE2nS`N@lOq1^|r@A)ymtn0U5IHT}$ ziL`b)f%gCx+fKyPTsmpaCTem|n8_0fu{O0-C6ABz-vJj&_bX@fA&+GqEr#+v>~fBU zO)Fv;W2&BW4>L^@pAB;#J`Ee<MYGt--=**kL$uC)Mb#MNjg5PE2|5e$+u=xvXh$8- zT-Z_9i@_95{A0kwG>OqDURvXrj{=XluP*wk{@w%k)MpP2Zok)^h|{0<TP^UNF2Slw z7VPMF8)&eZqvK=>u`Zz%2Ui8v245uyawcXjd{Tc2MkU1LKuQN4ht(oWGeX9Xyxm_f zCAkK;skk0t*vsOlLEC{B7dF-K^1^=+*{VXWBtjv)(xi&N2rSr?5^?0`#TkVM3ltT8 zImalaG2(Ub)#y)wW5Gf-zW{Djf29%p@w<U5<OtauEE+XYE$v5vHv>Oj-<8lm2;Gd( z<jnI_6cJ}=23GN{FQUnG6&qEi9>fwLoMU+BaowtR+!ad0ZWeYeyamctWS<=KM9BxQ z5XW3zBc5^P2{l=&M%CE+MXjT-V<Mjd>g?2H{zv*my`skR^%hooVV(Ph&LFa|MNYhG aMO5I=^pM6s2eSJ=!!=%@|KUGZf!_h-2}L9T diff --git a/csharp/ql/test/library-tests/cil/pdbs/PortablePdb.pdb b/csharp/ql/test/library-tests/cil/pdbs/PortablePdb.pdb deleted file mode 100644 index 4dc80964ea8aadb5af7692de3f90e41643b97ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmZ<?_HtrmU}OLR9v}{IaZ)HV)H47JFt9Py02v-YtQ?S%1QI&}#0@~KT*tuR0@Mc5 zqa0jPl$n=a3}i9{0L559VxhqdAwV|BAZ7PZPZuEF0_1mq_)a<bAj95Ik?Y>!VC}Wj z_GST(%I{A{<BXz!!VK=BObnbr8mOE>0En5O7{uoXVm=@Sv0)g<1gQaWfnYs^VrT&i z!1RJ>W*`PB(g%{}Kpl(>K47(sKp9vVD1g;4gJnVL#lb3IdLdSTNRW97Kz*R_VaQ}C zD9TSMO)dd(7#QA&N&JsnCE(lsJ>N6A*(BjdQlR}Y_RE43f*B6@FJ@Y}A}GG}=)`@l zTXrZ+EqofZmx0OIia8~<j00#&R%&udF?(=gUP@Aa1$RJxQAuJ_PAV|)Ih}J7i;E5Q zl8f167+E+3B~?Z4y*L)`KTY)1JC6$-v&D~^s5Y#%*9SU|k&T&=L4b(~7>Z0>K!-9h m@G@1hFfiBau>fPVkOSl!ewIWQ21cfO4n{6UWhN;xke>jMX;n%9 diff --git a/csharp/ql/test/library-tests/cil/pdbs/Stubs.expected b/csharp/ql/test/library-tests/cil/pdbs/Stubs.expected deleted file mode 100644 index e63ae56c0a6..00000000000 --- a/csharp/ql/test/library-tests/cil/pdbs/Stubs.expected +++ /dev/null @@ -1,2 +0,0 @@ -| EmbeddedPdb.dll:0:0:0:0 | EmbeddedPdb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | -| PdbOnly.dll:0:0:0:0 | PdbOnly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | diff --git a/csharp/ql/test/library-tests/cil/pdbs/Stubs.ql b/csharp/ql/test/library-tests/cil/pdbs/Stubs.ql deleted file mode 100644 index cfe897f1069..00000000000 --- a/csharp/ql/test/library-tests/cil/pdbs/Stubs.ql +++ /dev/null @@ -1,3 +0,0 @@ -import cil::CIL - -deprecated query predicate stubs(Assembly asm) { assemblyIsStub(asm) } diff --git a/csharp/ql/test/library-tests/cil/pdbs/options b/csharp/ql/test/library-tests/cil/pdbs/options deleted file mode 100644 index 0771fbd3771..00000000000 --- a/csharp/ql/test/library-tests/cil/pdbs/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil --pdb diff --git a/csharp/ql/test/library-tests/cil/regressions/ConstructedMethods.expected b/csharp/ql/test/library-tests/cil/regressions/ConstructedMethods.expected deleted file mode 100644 index bb7c7754e02..00000000000 --- a/csharp/ql/test/library-tests/cil/regressions/ConstructedMethods.expected +++ /dev/null @@ -1,2 +0,0 @@ -| Methods.dll:0:0:0:0 | F | Methods.dll:0:0:0:0 | F | Methods.dll:0:0:0:0 | !0 | -| Methods.dll:0:0:0:0 | F | Methods.dll:0:0:0:0 | F | Methods.dll:0:0:0:0 | !0 | diff --git a/csharp/ql/test/library-tests/cil/regressions/ConstructedMethods.ql b/csharp/ql/test/library-tests/cil/regressions/ConstructedMethods.ql deleted file mode 100644 index d472708bb5e..00000000000 --- a/csharp/ql/test/library-tests/cil/regressions/ConstructedMethods.ql +++ /dev/null @@ -1,9 +0,0 @@ -import cil::CIL - -deprecated query predicate constructedMethods( - UnboundGenericMethod f, ConstructedMethod fc, Type typeArgument -) { - fc.getUnboundMethod() = f and - f.hasFullyQualifiedName("Methods", "Class1", "F") and - typeArgument = fc.getTypeArgument(0) -} diff --git a/csharp/ql/test/library-tests/cil/regressions/Methods.cs b/csharp/ql/test/library-tests/cil/regressions/Methods.cs deleted file mode 100644 index 7d8ec90f84d..00000000000 --- a/csharp/ql/test/library-tests/cil/regressions/Methods.cs +++ /dev/null @@ -1,17 +0,0 @@ -/* - * A regression test for the CIL extractor - compiled into Methods.dll - * This tests the correct extraction of F<T>, and we should end up with - * 2 constructed methods of F<T>. - */ - -namespace Methods -{ - public class Class1 - { - public T F<T>(T t) { return new T[] { t }[0]; } - - public T G<T>(T t) { return F(t); } - - public T H<T>(T t) { return F(t); } - } -} diff --git a/csharp/ql/test/library-tests/cil/regressions/Methods.dll b/csharp/ql/test/library-tests/cil/regressions/Methods.dll deleted file mode 100644 index 1178f3e09c4a4c0c08baf63ea2b3d2c8487b2a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmeHJU2GIp6h3!%yZxcmHVXwL;6SNXDw8cmA_BT?w}m48p}U}H5oUL%+rinH&CIm4 zn3z5&i7^@tzLD^vF+89#fd`^7QR9<BGzOzSnD|Iy3>e=Gp?>GiOn2J?55D5rz2Cj( z=bn4cnLGE+(2MU<l!#(z^YcVk&@-hZ-XG?mZhGXiCc0dIZPOKT@Y<&Aq~R)M$1XZr zNy%%LWqV3aSDYzJF)SrLl2J-_L04C<Y}gXG9_=SOD57-f{L9~jtNl)!l@%gMR0m1i zm;U%DdIc?oM$|0F5kGDgaQu?yfRHmqDfI@M^1sptEQ>&M@H@hT6qe&cETt1fjgVbv zC(16>-H%uN@I#Y2@cTmsz3S;R9{OK6KLw3*4dTW~l0tMsbzCP8PR5qPfD>&%tD+R5 zR~_B7VaT!42{iWAgjPi<qTVW24li?EK^$9zYUqkWbPH<;7XAlHBxCe2=3#ydt$7>W z`u5i7hupV*z}V19@vTIOWQ10Rc9CcYRGoq9-nz|^juo6e=J#d}^ok%#&Ut!=npC@! z-Cesl=o&JCKfr0*Yeaici|ahjc#dHeUAAaOj$F#N!x>tI0dJAEeTN6r=(m8s%6zYB z=g>33h1j<`QdiH5{Uf@m)vpn=&`DpseGs2~JXlUf7xt{<G0|b+_i_4;&WSi}5RC0K zCmy2Dp^DQe?S>>KCV>};(U5pX;vW)sN&Hr5(iv|a_Rqg&w6mg1jz<-ipTVQ(1V0mS z32+g5Kj2n_i_*tFxAruzj5&h7hvy2`(`m%r0*uo-U;{l4Y^E-WyCn8V9F%xS;!%kj zFit9J(+y0}9^iU<3D`yjU?-gecGCsmZn^~Qqc4HaNqGji8ha`>7giAANji%Nx%MG# zMr0vHX^kA#1br>~2yO7yeWvERU9@M&E=-yFGc-W^@B(DX(mmJHtb*ngD6QwFibXAF z>OCH|O>WB5smFEoQqG*s8eX+Ht2ss88^D>TpR%1-mfH^)rhY_sT*J1OD+jF!+bL-t zl$v=@t3KPBFp5)-w5vGjvrA>el)^FH)Mn(!t?0vuM;)Y^_m(Tzfo9EC6k}7CXOwg) z_l%rj8eWw)GwXVKNeztDAY8muG^BfzcEME(rb)h4(5YkkgsJB_KT`9a?S%5Qp%pFL z^^Ck5&JI<fe?L9l$>`3sk=NbesbD=kI<O<Tlkglq^VrX~X4fR%>3Q#Or^(vXp-@Z_ zqAseCsKKD6h1sT9t=LGBjTCD@Uw8G@#Qe2wza6Sg3a}6ec@PtA<X0&hX?@<&%EPwR zKa<zXoI-Zeu}`@IcD3@&+bL+BI^3Vl1pDTRpd@>zx2s8bXj-+fFVcovHnrJdY!hn4 z{GehuF9g-d?S|tU@-CcY`1x|l1POY{V{eie8s$BI4DB}Vq}#P&_Ws+E0Q(r)QJm{X z{bOOlKwg6j9MM=No!R!2GPb?+*MU!N9@sm0=kj?@s_*IXf<8Ttdz`E5j%V;n<m{R8 zAmDL3cXC|DJ6`p|Al=YFEf;c>+26DM$(<DXR|EgZp?>S1Uv(#bZF&91M~SyC1osbz z^)-(b9xbQvp7J%v`)ns|nnRjlQOV8Qj;_m%$J+UJ_*k0ia)<v*?ot81J&4v4%`H~? zH!Zg0GCAAvx5Eo5qKj3B@x{mvNRLp4jsyE?45LAOX$^xP1P=ILUGzol<{f|M%GU{V z{Qg;tnD{QLaw}zNpnzA69QZMC*X!_U(FEC2zeUc<LaRaQLa&hrI~$x&pT-*DR3Ih~ zRtDt7yLh^RPy{6xemf|KF`?B#-UojrD$6xyk&y;Ym+ptqdo&4s0jm=|CGEpV)6lw< zm+O`n#kF*vzfL&s2<ADMS;?adcVu#*@j8u&i!0$tTMIFnRgo?BuOd1VKcWs)SkOVt zDasj~S(#>Kghk}R2dsjYlKw{mIaiJShw(AzSKwaj`1y=tK38T6HSnsUBU(I<>l{a1 wi|v<Ip;Cje&ONA+i(E>0S|+kkuu~RSt}=(~_ka@~EPumZ-}!*o;Q>wmU)i4aCIA2c diff --git a/csharp/ql/test/library-tests/cil/regressions/options b/csharp/ql/test/library-tests/cil/regressions/options deleted file mode 100644 index 8511aa162b8..00000000000 --- a/csharp/ql/test/library-tests/cil/regressions/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil diff --git a/csharp/ql/test/library-tests/cil/typeAnnotations/Program.cs b/csharp/ql/test/library-tests/cil/typeAnnotations/Program.cs deleted file mode 100644 index e867fdc0718..00000000000 --- a/csharp/ql/test/library-tests/cil/typeAnnotations/Program.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -class Test -{ - static void Main(string[] args) - { - } -} diff --git a/csharp/ql/test/library-tests/cil/typeAnnotations/options b/csharp/ql/test/library-tests/cil/typeAnnotations/options deleted file mode 100644 index 8511aa162b8..00000000000 --- a/csharp/ql/test/library-tests/cil/typeAnnotations/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil diff --git a/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.expected b/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.expected deleted file mode 100644 index c3216e25e99..00000000000 --- a/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.expected +++ /dev/null @@ -1,3942 +0,0 @@ -| <PrivateImplementationDetails>.InlineArrayElementRef | method | 32 | -| <PrivateImplementationDetails>.InlineArrayFirstElementRef | method | 32 | -| Local variable 0 of method System.Array.Clear | local | 32 | -| Local variable 0 of method System.Array.GetFlattenedIndex | local | 32 | -| Local variable 0 of method System.Buffer.Memmove | local | 32 | -| Local variable 0 of method System.Buffers.AnyByteSearchValues.IndexOfAnyScalar | local | 32 | -| Local variable 0 of method System.Buffers.AsciiByteSearchValues.IndexOfAnyScalar | local | 32 | -| Local variable 0 of method System.Buffers.AsciiCharSearchValues.IndexOfAnyScalar | local | 32 | -| Local variable 0 of method System.Buffers.Binary.BinaryPrimitives.ReverseEndianness | local | 32 | -| Local variable 0 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 0 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 0 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 0 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 0 of method System.Buffers.Latin1CharSearchValues.IndexOfAny | local | 32 | -| Local variable 0 of method System.Buffers.ProbabilisticMap.IndexOfAnyVectorized | local | 32 | -| Local variable 0 of method System.Collections.Generic.Dictionary.Contains | local | 32 | -| Local variable 0 of method System.Collections.Generic.Dictionary.Enumerator.MoveNext | local | 32 | -| Local variable 0 of method System.Collections.Generic.Dictionary.FindValue | local | 32 | -| Local variable 0 of method System.Collections.Generic.Dictionary.KeyCollection.Enumerator.MoveNext | local | 32 | -| Local variable 0 of method System.Collections.Generic.Dictionary.Remove | local | 32 | -| Local variable 0 of method System.Collections.Generic.Dictionary.TryGetValue | local | 32 | -| Local variable 0 of method System.Collections.Generic.Dictionary.ValueCollection.Enumerator.MoveNext | local | 32 | -| Local variable 0 of method System.Collections.Generic.Dictionary.get_Item | local | 32 | -| Local variable 0 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | -| Local variable 0 of method System.Collections.Generic.GenericArraySortHelper.SwapIfGreaterWithValues | local | 32 | -| Local variable 0 of method System.Collections.Generic.HashSet.Enumerator.MoveNext | local | 32 | -| Local variable 0 of method System.Convert.TryDecodeFromUtf16 | local | 32 | -| Local variable 0 of method System.Diagnostics.Tracing.ActivityTracker.NormalizeActivityName | local | 32 | -| Local variable 0 of method System.Diagnostics.Tracing.EventSource.AddEventDescriptor | local | 32 | -| Local variable 0 of method System.Diagnostics.Tracing.EventSource.WriteEventVarargs | local | 32 | -| Local variable 0 of method System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore | local | 32 | -| Local variable 0 of method System.Diagnostics.Tracing.EventSource.WriteToAllListeners | local | 32 | -| Local variable 0 of method System.Diagnostics.Tracing.EventWrittenEventArgs.get_OSThreadId | local | 32 | -| Local variable 0 of method System.Enum.CompareTo | local | 32 | -| Local variable 0 of method System.Enum.Equals | local | 32 | -| Local variable 0 of method System.Enum.GetHashCode | local | 32 | -| Local variable 0 of method System.Enum.GetValue | local | 32 | -| Local variable 0 of method System.Enum.HasFlag | local | 32 | -| Local variable 0 of method System.GC.ConfigCallback | local | 32 | -| Local variable 0 of method System.Globalization.Ordinal.IndexOfOrdinalIgnoreCase | local | 32 | -| Local variable 0 of method System.Guid.GetHashCode | local | 32 | -| Local variable 0 of method System.HashCode.AddBytes | local | 32 | -| Local variable 0 of method System.HexConverter.EncodeToUtf16_Vector128 | local | 32 | -| Local variable 0 of method System.Number.BigInteger.Add | local | 32 | -| Local variable 0 of method System.Number.BigInteger.Multiply | local | 32 | -| Local variable 0 of method System.Numerics.BitOperations.Crc32Fallback.Crc32C | local | 32 | -| Local variable 0 of method System.ReadOnlySpan.GetPinnableReference | local | 32 | -| Local variable 0 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.RemoveIndex | local | 32 | -| Local variable 0 of method System.Runtime.Intrinsics.Vector512.CopyTo | local | 32 | -| Local variable 0 of method System.Runtime.Intrinsics.Vector512.Create | local | 32 | -| Local variable 0 of method System.Runtime.Intrinsics.Vector512.TryCopyTo | local | 32 | -| Local variable 0 of method System.Span.GetPinnableReference | local | 32 | -| Local variable 0 of method System.Text.Ascii.IsValidCore | local | 32 | -| Local variable 0 of method System.Threading.CancellationTokenSource.Registrations.EnterLock | local | 32 | -| Local variable 0 of method System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction | local | 32 | -| Local variable 0 of method System.Threading.TimerQueue.LinkTimer | local | 32 | -| Local variable 1 of method Interop.Sys.GetControlCharacters | local | 32 | -| Local variable 1 of method System.Array.Fill | local | 32 | -| Local variable 1 of method System.Array.GetUpperBound | local | 32 | -| Local variable 1 of method System.Buffer.Memmove | local | 32 | -| Local variable 1 of method System.Buffers.AnyByteSearchValues.IndexOfAnyScalar | local | 32 | -| Local variable 1 of method System.Buffers.AsciiByteSearchValues.IndexOfAnyScalar | local | 32 | -| Local variable 1 of method System.Buffers.AsciiCharSearchValues.IndexOfAnyScalar | local | 32 | -| Local variable 1 of method System.Buffers.Binary.BinaryPrimitives.ReverseEndianness | local | 32 | -| Local variable 1 of method System.Buffers.Latin1CharSearchValues.IndexOfAny | local | 32 | -| Local variable 1 of method System.Buffers.ProbabilisticMap..ctor | local | 32 | -| Local variable 1 of method System.Buffers.ProbabilisticMap.IndexOfAnyVectorized | local | 32 | -| Local variable 1 of method System.Buffers.Text.Base64.DecodeFromUtf8 | local | 32 | -| Local variable 1 of method System.Buffers.Text.Base64.DecodeFromUtf8InPlace | local | 32 | -| Local variable 1 of method System.Buffers.Text.Base64.EncodeToUtf8 | local | 32 | -| Local variable 1 of method System.Buffers.Text.Base64.EncodeToUtf8InPlace | local | 32 | -| Local variable 1 of method System.Byte.TryReadBigEndian | local | 32 | -| Local variable 1 of method System.Byte.TryReadLittleEndian | local | 32 | -| Local variable 1 of method System.Char.TryReadBigEndian | local | 32 | -| Local variable 1 of method System.Char.TryReadLittleEndian | local | 32 | -| Local variable 1 of method System.Collections.Generic.Dictionary.FindValue | local | 32 | -| Local variable 1 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | -| Local variable 1 of method System.Collections.Generic.RandomizedStringEqualityComparer..ctor | local | 32 | -| Local variable 1 of method System.ConsolePal.Read | local | 32 | -| Local variable 1 of method System.ConsolePal.Write | local | 32 | -| Local variable 1 of method System.Convert.FromBase64CharArray | local | 32 | -| Local variable 1 of method System.Convert.FromBase64String | local | 32 | -| Local variable 1 of method System.Convert.TryDecodeFromUtf16 | local | 32 | -| Local variable 1 of method System.DateTimeFormat.TryFormatDateOnlyO | local | 32 | -| Local variable 1 of method System.DateTimeFormat.TryFormatTimeOnlyO | local | 32 | -| Local variable 1 of method System.DateTimeFormat.TryFormatTimeOnlyR | local | 32 | -| Local variable 1 of method System.Diagnostics.Debugger.LogInternal | local | 32 | -| Local variable 1 of method System.Diagnostics.Tracing.ActivityTracker.ActivityInfo.CreateActivityPathGuid | local | 32 | -| Local variable 1 of method System.Diagnostics.Tracing.EventSource.WriteEvent | local | 32 | -| Local variable 1 of method System.Diagnostics.Tracing.EventSource.WriteImpl | local | 32 | -| Local variable 1 of method System.Diagnostics.Tracing.EventSource.WriteMultiMerge | local | 32 | -| Local variable 1 of method System.Diagnostics.Tracing.FrameworkEventSource.WriteEvent | local | 32 | -| Local variable 1 of method System.Enum.CompareTo | local | 32 | -| Local variable 1 of method System.Enum.Equals | local | 32 | -| Local variable 1 of method System.Enum.HasFlag | local | 32 | -| Local variable 1 of method System.Enum.ToString | local | 32 | -| Local variable 1 of method System.Enum.TryFormat | local | 32 | -| Local variable 1 of method System.Globalization.CalendarData.<>c.<GetCalendarInfo>b__32_0 | local | 32 | -| Local variable 1 of method System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks | local | 32 | -| Local variable 1 of method System.Globalization.CharUnicodeInfo.GetNumericGraphemeTableOffsetNoBoundsChecks | local | 32 | -| Local variable 1 of method System.Globalization.CharUnicodeInfo.GetNumericValueNoBoundsCheck | local | 32 | -| Local variable 1 of method System.Globalization.CompareInfo.IcuCompareString | local | 32 | -| Local variable 1 of method System.Globalization.CompareInfo.IcuEndsWith | local | 32 | -| Local variable 1 of method System.Globalization.CompareInfo.IcuGetSortKeyLength | local | 32 | -| Local variable 1 of method System.Globalization.CompareInfo.IcuIndexOfCore | local | 32 | -| Local variable 1 of method System.Globalization.CompareInfo.IcuStartsWith | local | 32 | -| Local variable 1 of method System.Globalization.CompareInfo.IndexOfOrdinalHelper | local | 32 | -| Local variable 1 of method System.Globalization.CompareInfo.IndexOfOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 1 of method System.Globalization.IdnMapping.GetAscii | local | 32 | -| Local variable 1 of method System.Globalization.IdnMapping.GetUnicode | local | 32 | -| Local variable 1 of method System.Globalization.InvariantModeCasing.CompareStringIgnoreCase | local | 32 | -| Local variable 1 of method System.Globalization.InvariantModeCasing.IndexOfIgnoreCase | local | 32 | -| Local variable 1 of method System.Globalization.InvariantModeCasing.LastIndexOfIgnoreCase | local | 32 | -| Local variable 1 of method System.Globalization.OrdinalCasing.CompareStringIgnoreCase | local | 32 | -| Local variable 1 of method System.Globalization.OrdinalCasing.IndexOf | local | 32 | -| Local variable 1 of method System.Globalization.OrdinalCasing.LastIndexOf | local | 32 | -| Local variable 1 of method System.Guid.TryFormatX | local | 32 | -| Local variable 1 of method System.HashCode.AddBytes | local | 32 | -| Local variable 1 of method System.HexConverter.EncodeToUtf16_Vector128 | local | 32 | -| Local variable 1 of method System.IO.RandomAccess.ReadAtOffset | local | 32 | -| Local variable 1 of method System.IO.RandomAccess.WriteAtOffset | local | 32 | -| Local variable 1 of method System.MemoryExtensions.IndexOfAnyExcept | local | 32 | -| Local variable 1 of method System.MemoryExtensions.LastIndexOfAnyExcept | local | 32 | -| Local variable 1 of method System.Number.BigInteger.Add | local | 32 | -| Local variable 1 of method System.Number.BigInteger.Pow10 | local | 32 | -| Local variable 1 of method System.Number.MatchChars | local | 32 | -| Local variable 1 of method System.Number.TryStringToNumber | local | 32 | -| Local variable 1 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 1 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 1 of method System.Reflection.Emit.RuntimeModuleBuilder.SetFieldRVAContent | local | 32 | -| Local variable 1 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineCustomAttribute | local | 32 | -| Local variable 1 of method System.Reflection.Emit.RuntimeTypeBuilder.SetPInvokeData | local | 32 | -| Local variable 1 of method System.Reflection.Emit.ScopeTree.AddUsingNamespaceToCurrentScope | local | 32 | -| Local variable 1 of method System.Reflection.MetadataEnumResult.get_Item | local | 32 | -| Local variable 1 of method System.Reflection.RuntimeAssembly.GetModule | local | 32 | -| Local variable 1 of method System.Reflection.RuntimeAssembly.GetVersion | local | 32 | -| Local variable 1 of method System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | local | 32 | -| Local variable 1 of method System.Runtime.InteropServices.Marshal.QueryInterface | local | 32 | -| Local variable 1 of method System.Runtime.Loader.AssemblyLoadContext.InternalSetProfileRoot | local | 32 | -| Local variable 1 of method System.Runtime.Loader.AssemblyLoadContext.InternalStartProfile | local | 32 | -| Local variable 1 of method System.Runtime.Loader.AssemblyLoadContext.LoadFromPath | local | 32 | -| Local variable 1 of method System.SpanHelpers.Count | local | 32 | -| Local variable 1 of method System.SpanHelpers.CountValueType | local | 32 | -| Local variable 1 of method System.SpanHelpers.IndexOf | local | 32 | -| Local variable 1 of method System.SpanHelpers.IndexOfAnyExcept | local | 32 | -| Local variable 1 of method System.SpanHelpers.IndexOfAnyExceptInRange | local | 32 | -| Local variable 1 of method System.SpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 1 of method System.SpanHelpers.LastIndexOfAnyExcept | local | 32 | -| Local variable 1 of method System.SpanHelpers.LastIndexOfAnyExceptInRange | local | 32 | -| Local variable 1 of method System.SpanHelpers.LastIndexOfAnyInRange | local | 32 | -| Local variable 1 of method System.String.GetBytesFromEncoding | local | 32 | -| Local variable 1 of method System.String.GetNonRandomizedHashCode | local | 32 | -| Local variable 1 of method System.String.Trim | local | 32 | -| Local variable 1 of method System.String.TrimEnd | local | 32 | -| Local variable 1 of method System.String.TrimStart | local | 32 | -| Local variable 1 of method System.Text.ASCIIEncoding.GetByteCount | local | 32 | -| Local variable 1 of method System.Text.ASCIIEncoding.GetBytes | local | 32 | -| Local variable 1 of method System.Text.ASCIIEncoding.GetCharCount | local | 32 | -| Local variable 1 of method System.Text.ASCIIEncoding.GetChars | local | 32 | -| Local variable 1 of method System.Text.ASCIIEncoding.TryGetBytes | local | 32 | -| Local variable 1 of method System.Text.ASCIIEncoding.TryGetChars | local | 32 | -| Local variable 1 of method System.Text.Ascii.ChangeCase | local | 32 | -| Local variable 1 of method System.Text.Decoder.Convert | local | 32 | -| Local variable 1 of method System.Text.Decoder.GetCharCount | local | 32 | -| Local variable 1 of method System.Text.Decoder.GetChars | local | 32 | -| Local variable 1 of method System.Text.DecoderNLS.Convert | local | 32 | -| Local variable 1 of method System.Text.DecoderNLS.GetCharCount | local | 32 | -| Local variable 1 of method System.Text.Encoder.Convert | local | 32 | -| Local variable 1 of method System.Text.Encoder.GetByteCount | local | 32 | -| Local variable 1 of method System.Text.Encoder.GetBytes | local | 32 | -| Local variable 1 of method System.Text.EncoderNLS.Convert | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetByteCount | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetByteCountWithFallback | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetBytes | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetBytesWithFallback | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetCharCount | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetCharCountWithFallback | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetChars | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetCharsWithFallback | local | 32 | -| Local variable 1 of method System.Text.Encoding.GetString | local | 32 | -| Local variable 1 of method System.Text.Latin1Encoding.GetByteCount | local | 32 | -| Local variable 1 of method System.Text.Latin1Encoding.GetBytes | local | 32 | -| Local variable 1 of method System.Text.Latin1Encoding.GetChars | local | 32 | -| Local variable 1 of method System.Text.Latin1Encoding.TryGetBytes | local | 32 | -| Local variable 1 of method System.Text.Latin1Encoding.TryGetChars | local | 32 | -| Local variable 1 of method System.Text.UTF7Encoding.GetByteCount | local | 32 | -| Local variable 1 of method System.Text.UTF8Encoding.GetByteCount | local | 32 | -| Local variable 1 of method System.Text.UTF8Encoding.GetBytes | local | 32 | -| Local variable 1 of method System.Text.UTF8Encoding.GetCharCount | local | 32 | -| Local variable 1 of method System.Text.UTF8Encoding.GetChars | local | 32 | -| Local variable 1 of method System.Text.UTF8Encoding.TryGetBytes | local | 32 | -| Local variable 1 of method System.Text.UTF8Encoding.TryGetChars | local | 32 | -| Local variable 1 of method System.Text.UTF32Encoding.GetByteCount | local | 32 | -| Local variable 1 of method System.Text.Unicode.Utf8.FromUtf16 | local | 32 | -| Local variable 1 of method System.Text.Unicode.Utf8.ToUtf16 | local | 32 | -| Local variable 1 of method System.Text.Unicode.Utf8.ToUtf16PreservingReplacement | local | 32 | -| Local variable 1 of method System.Text.UnicodeEncoding.GetByteCount | local | 32 | -| Local variable 1 of method System.Threading.PortableThreadPool.HillClimbing.LogTransition | local | 32 | -| Local variable 1 of method System.Threading.Tasks.TplEventSource.TraceOperationBegin | local | 32 | -| Local variable 1 of method System.Threading.Thread.InformThreadNameChange | local | 32 | -| Local variable 1 of method System.Threading.WaitHandle.WaitMultipleIgnoringSyncContext | local | 32 | -| Local variable 1 of method System.TimeZoneInfo.<>c.<GetDisplayName>b__203_0 | local | 32 | -| Local variable 1 of method System.TimeZoneInfo.<>c.<GetDisplayName>b__203_1 | local | 32 | -| Local variable 1 of method System.UInt16.TryReadBigEndian | local | 32 | -| Local variable 1 of method System.UInt16.TryReadLittleEndian | local | 32 | -| Local variable 1 of method System.UInt32.TryReadBigEndian | local | 32 | -| Local variable 1 of method System.UInt32.TryReadLittleEndian | local | 32 | -| Local variable 1 of method System.UInt64.TryReadBigEndian | local | 32 | -| Local variable 1 of method System.UInt64.TryReadLittleEndian | local | 32 | -| Local variable 1 of method System.UInt128.TryReadBigEndian | local | 32 | -| Local variable 1 of method System.UInt128.TryReadLittleEndian | local | 32 | -| Local variable 1 of method System.UIntPtr.TryReadBigEndian | local | 32 | -| Local variable 1 of method System.UIntPtr.TryReadLittleEndian | local | 32 | -| Local variable 2 of method Interop.Globalization.GetCalendarInfo | local | 32 | -| Local variable 2 of method Interop.Globalization.GetCalendars | local | 32 | -| Local variable 2 of method Interop.Globalization.GetLocales | local | 32 | -| Local variable 2 of method Interop.Globalization.GetTimeZoneDisplayName | local | 32 | -| Local variable 2 of method Interop.Globalization.IanaIdToWindowsId | local | 32 | -| Local variable 2 of method Interop.Globalization.WindowsIdToIanaId | local | 32 | -| Local variable 2 of method Interop.Sys.GetCpuUtilization | local | 32 | -| Local variable 2 of method Interop.Sys.GetPwUidR | local | 32 | -| Local variable 2 of method System.Array.Clear | local | 32 | -| Local variable 2 of method System.Array.Copy | local | 32 | -| Local variable 2 of method System.Array.InternalGetValue | local | 32 | -| Local variable 2 of method System.Char.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.Char.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | -| Local variable 2 of method System.Collections.Generic.HashSet.CopyTo | local | 32 | -| Local variable 2 of method System.Collections.Generic.HashSet.IntersectWithHashSetWithSameComparer | local | 32 | -| Local variable 2 of method System.ComAwareWeakReference.ObjectToComWeakRef | local | 32 | -| Local variable 2 of method System.Convert.ToBase64CharsLargeNoLineBreaks | local | 32 | -| Local variable 2 of method System.DateTimeFormat.FormatCustomizedRoundripTimeZone | local | 32 | -| Local variable 2 of method System.Decimal.TryWriteSignificandBigEndian | local | 32 | -| Local variable 2 of method System.Decimal.TryWriteSignificandLittleEndian | local | 32 | -| Local variable 2 of method System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForNamedTypeV2 | local | 32 | -| Local variable 2 of method System.Diagnostics.Tracing.EventPipeInternal.CreateProvider | local | 32 | -| Local variable 2 of method System.Diagnostics.Tracing.EventPipeInternal.EventActivityIdControl | local | 32 | -| Local variable 2 of method System.Diagnostics.Tracing.EventPipeInternal.GetProvider | local | 32 | -| Local variable 2 of method System.Diagnostics.Tracing.EventSource.Write | local | 32 | -| Local variable 2 of method System.Enum.ToString | local | 32 | -| Local variable 2 of method System.Globalization.CompareInfo.EndsWithOrdinalHelper | local | 32 | -| Local variable 2 of method System.Globalization.CompareInfo.EndsWithOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 2 of method System.Globalization.CompareInfo.IcuCreateSortKey | local | 32 | -| Local variable 2 of method System.Globalization.CompareInfo.IcuGetSortKey | local | 32 | -| Local variable 2 of method System.Globalization.CompareInfo.StartsWithOrdinalHelper | local | 32 | -| Local variable 2 of method System.Globalization.CompareInfo.StartsWithOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 2 of method System.Globalization.InvariantModeCasing.CompareStringIgnoreCase | local | 32 | -| Local variable 2 of method System.Globalization.Normalization.IcuIsNormalized | local | 32 | -| Local variable 2 of method System.Globalization.Ordinal.CompareStringIgnoreCase | local | 32 | -| Local variable 2 of method System.Globalization.Ordinal.EqualsStringIgnoreCaseUtf8 | local | 32 | -| Local variable 2 of method System.Globalization.OrdinalCasing.CompareStringIgnoreCase | local | 32 | -| Local variable 2 of method System.Globalization.TextInfo.ChangeCaseCommon | local | 32 | -| Local variable 2 of method System.Globalization.TextInfo.ToLowerAsciiInvariant | local | 32 | -| Local variable 2 of method System.HashCode.AddBytes | local | 32 | -| Local variable 2 of method System.HexConverter.TryDecodeFromUtf16_Vector128 | local | 32 | -| Local variable 2 of method System.IO.Enumeration.FileSystemEnumerator.FindNextEntry | local | 32 | -| Local variable 2 of method System.IO.Path.TryJoin | local | 32 | -| Local variable 2 of method System.IO.PathInternal.EqualStartingCharacterCount | local | 32 | -| Local variable 2 of method System.IO.PinnedBufferMemoryStream..ctor | local | 32 | -| Local variable 2 of method System.Int16.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.Int16.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.Int32.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.Int32.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.Int64.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.Int64.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.Int128.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.Int128.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.Int128.TryWriteBigEndian | local | 32 | -| Local variable 2 of method System.Int128.TryWriteLittleEndian | local | 32 | -| Local variable 2 of method System.IntPtr.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.IntPtr.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.MemoryExtensions.IndexOfAnyExcept | local | 32 | -| Local variable 2 of method System.MemoryExtensions.LastIndexOfAnyExcept | local | 32 | -| Local variable 2 of method System.ModuleHandle.ResolveMethodHandleInternal | local | 32 | -| Local variable 2 of method System.Number.BigInteger.Multiply | local | 32 | -| Local variable 2 of method System.Number.TryInt32ToHexStr | local | 32 | -| Local variable 2 of method System.Number.TryInt64ToHexStr | local | 32 | -| Local variable 2 of method System.Number.TryNegativeInt32ToDecStr | local | 32 | -| Local variable 2 of method System.Number.TryNegativeInt64ToDecStr | local | 32 | -| Local variable 2 of method System.Number.TryUInt32ToBinaryStr | local | 32 | -| Local variable 2 of method System.Number.TryUInt32ToDecStr | local | 32 | -| Local variable 2 of method System.Number.TryUInt64ToBinaryStr | local | 32 | -| Local variable 2 of method System.Number.TryUInt64ToDecStr | local | 32 | -| Local variable 2 of method System.Object.MemberwiseClone | local | 32 | -| Local variable 2 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 2 of method System.Reflection.AssemblyName.ParseAsAssemblySpec | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeModuleBuilder.GetArrayMethodToken | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefFromSignature | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeModuleBuilder.GetStringConstant | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeModuleBuilder.GetTokenFromTypeSpec | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeModuleBuilder.GetTypeRef | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineEvent | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineField | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineGenericParam | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineMethod | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineMethodSpec | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineProperty | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineType | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.GetTokenFromSig | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.SetMethodIL | local | 32 | -| Local variable 2 of method System.Reflection.Emit.RuntimeTypeBuilder.SetParamInfo | local | 32 | -| Local variable 2 of method System.Reflection.RuntimeAssembly.GetManifestResourceInfo | local | 32 | -| Local variable 2 of method System.Reflection.RuntimeAssembly.GetResource | local | 32 | -| Local variable 2 of method System.SByte.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.SByte.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 2 of method System.SpanHelpers.LastIndexOfAnyInRangeUnsignedNumber | local | 32 | -| Local variable 2 of method System.SpanHelpers.LastIndexOfAnyValueType | local | 32 | -| Local variable 2 of method System.SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber | local | 32 | -| Local variable 2 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 2 of method System.String.CompareOrdinalHelper | local | 32 | -| Local variable 2 of method System.String.MakeSeparatorListVectorized | local | 32 | -| Local variable 2 of method System.StubHelpers.AnsiCharMarshaler.DoAnsiConversion | local | 32 | -| Local variable 2 of method System.Text.DecoderNLS.GetChars | local | 32 | -| Local variable 2 of method System.Text.EncoderNLS.GetByteCount | local | 32 | -| Local variable 2 of method System.Text.EncoderNLS.GetBytes | local | 32 | -| Local variable 2 of method System.Text.StringBuilder.Append | local | 32 | -| Local variable 2 of method System.Text.UTF7Encoding.GetBytes | local | 32 | -| Local variable 2 of method System.Text.UTF32Encoding.GetBytes | local | 32 | -| Local variable 2 of method System.Text.UnicodeEncoding.GetBytes | local | 32 | -| Local variable 2 of method System.UInt16.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.UInt16.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.UInt32.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.UInt32.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.UInt64.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.UInt64.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.UInt128.<op_Division>g__AddDivisor\|110_0 | local | 32 | -| Local variable 2 of method System.UInt128.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.UInt128.TryReadLittleEndian | local | 32 | -| Local variable 2 of method System.UInt128.TryWriteBigEndian | local | 32 | -| Local variable 2 of method System.UInt128.WriteLittleEndianUnsafe | local | 32 | -| Local variable 2 of method System.UIntPtr.TryReadBigEndian | local | 32 | -| Local variable 2 of method System.UIntPtr.TryReadLittleEndian | local | 32 | -| Local variable 3 of method Interop.Globalization.EnumCalendarInfo | local | 32 | -| Local variable 3 of method Interop.Globalization.GetJapaneseEraStartDate | local | 32 | -| Local variable 3 of method Interop.Globalization.GetLocaleInfoGroupingSizes | local | 32 | -| Local variable 3 of method Interop.Globalization.GetLocaleInfoInt | local | 32 | -| Local variable 3 of method Interop.Globalization.GetLocaleInfoString | local | 32 | -| Local variable 3 of method Interop.Globalization.GetLocaleName | local | 32 | -| Local variable 3 of method Interop.Globalization.IsPredefinedLocale | local | 32 | -| Local variable 3 of method Interop.Kernel32.GetEnvironmentVariable | local | 32 | -| Local variable 3 of method Interop.Sys.GetUnixVersion | local | 32 | -| Local variable 3 of method Interop.Sys.GetWindowSize | local | 32 | -| Local variable 3 of method Interop.Sys.LStat | local | 32 | -| Local variable 3 of method Interop.Sys.MkDir | local | 32 | -| Local variable 3 of method Interop.Sys.ReadLink | local | 32 | -| Local variable 3 of method Interop.Sys.Rename | local | 32 | -| Local variable 3 of method Interop.Sys.SetWindowSize | local | 32 | -| Local variable 3 of method Interop.Sys.Stat | local | 32 | -| Local variable 3 of method System.Array.Copy | local | 32 | -| Local variable 3 of method System.Array.CreateInstance | local | 32 | -| Local variable 3 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 3 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 3 of method System.Buffers.Text.Base64.DecodeFromUtf8 | local | 32 | -| Local variable 3 of method System.Buffers.Text.Base64.EncodeToUtf8 | local | 32 | -| Local variable 3 of method System.Collections.Generic.Dictionary.Remove | local | 32 | -| Local variable 3 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | -| Local variable 3 of method System.Collections.Generic.HashSet.RemoveWhere | local | 32 | -| Local variable 3 of method System.Convert.ToBase64CharsLargeNoLineBreaks | local | 32 | -| Local variable 3 of method System.Convert.TryToBase64Chars | local | 32 | -| Local variable 3 of method System.DateTimeFormat.TryFormatDateOnlyR | local | 32 | -| Local variable 3 of method System.Diagnostics.Debugger.LogInternal | local | 32 | -| Local variable 3 of method System.Diagnostics.Tracing.EventPipeInternal.Enable | local | 32 | -| Local variable 3 of method System.Diagnostics.Tracing.EventSource.Write | local | 32 | -| Local variable 3 of method System.Diagnostics.Tracing.EventSource.WriteEvent | local | 32 | -| Local variable 3 of method System.Globalization.CompareInfo.IcuCompareString | local | 32 | -| Local variable 3 of method System.Globalization.CompareInfo.IcuEndsWith | local | 32 | -| Local variable 3 of method System.Globalization.CompareInfo.IcuIndexOfCore | local | 32 | -| Local variable 3 of method System.Globalization.CompareInfo.IcuStartsWith | local | 32 | -| Local variable 3 of method System.Globalization.CompareInfo.IndexOfOrdinalHelper | local | 32 | -| Local variable 3 of method System.Globalization.CompareInfo.IndexOfOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 3 of method System.Globalization.InvariantModeCasing.IndexOfIgnoreCase | local | 32 | -| Local variable 3 of method System.Globalization.InvariantModeCasing.LastIndexOfIgnoreCase | local | 32 | -| Local variable 3 of method System.Globalization.Ordinal.CompareStringIgnoreCase | local | 32 | -| Local variable 3 of method System.Globalization.Ordinal.EqualsStringIgnoreCaseUtf8 | local | 32 | -| Local variable 3 of method System.Globalization.OrdinalCasing.IndexOf | local | 32 | -| Local variable 3 of method System.Globalization.OrdinalCasing.LastIndexOf | local | 32 | -| Local variable 3 of method System.HexConverter.TryDecodeFromUtf16_Vector128 | local | 32 | -| Local variable 3 of method System.Int16.TryReadBigEndian | local | 32 | -| Local variable 3 of method System.Int16.TryReadLittleEndian | local | 32 | -| Local variable 3 of method System.Int32.TryReadBigEndian | local | 32 | -| Local variable 3 of method System.Int32.TryReadLittleEndian | local | 32 | -| Local variable 3 of method System.Int64.TryReadBigEndian | local | 32 | -| Local variable 3 of method System.Int64.TryReadLittleEndian | local | 32 | -| Local variable 3 of method System.Int128.TryReadBigEndian | local | 32 | -| Local variable 3 of method System.Int128.TryReadLittleEndian | local | 32 | -| Local variable 3 of method System.IntPtr.TryReadBigEndian | local | 32 | -| Local variable 3 of method System.IntPtr.TryReadLittleEndian | local | 32 | -| Local variable 3 of method System.Memory.Pin | local | 32 | -| Local variable 3 of method System.ModuleHandle.ResolveMethodHandleInternal | local | 32 | -| Local variable 3 of method System.Number.BigInteger.Pow10 | local | 32 | -| Local variable 3 of method System.Number.FindSection | local | 32 | -| Local variable 3 of method System.Number.Int32ToHexStr | local | 32 | -| Local variable 3 of method System.Number.Int64ToHexStr | local | 32 | -| Local variable 3 of method System.Number.NegativeInt32ToDecStr | local | 32 | -| Local variable 3 of method System.Number.NegativeInt64ToDecStr | local | 32 | -| Local variable 3 of method System.Number.TryInt128ToHexStr | local | 32 | -| Local variable 3 of method System.Number.TryNegativeInt128ToDecStr | local | 32 | -| Local variable 3 of method System.Number.TryUInt32ToDecStr | local | 32 | -| Local variable 3 of method System.Number.TryUInt64ToDecStr | local | 32 | -| Local variable 3 of method System.Number.TryUInt128ToBinaryStr | local | 32 | -| Local variable 3 of method System.Number.TryUInt128ToDecStr | local | 32 | -| Local variable 3 of method System.Number.UInt32ToBinaryStr | local | 32 | -| Local variable 3 of method System.Number.UInt32ToDecStr | local | 32 | -| Local variable 3 of method System.Number.UInt32ToDecStr_NoSmallNumberCheck | local | 32 | -| Local variable 3 of method System.Number.UInt64ToBinaryStr | local | 32 | -| Local variable 3 of method System.Number.UInt64ToDecStr | local | 32 | -| Local variable 3 of method System.Number.UInt128ToDecStr | local | 32 | -| Local variable 3 of method System.Object.MemberwiseClone | local | 32 | -| Local variable 3 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 3 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 3 of method System.ReadOnlyMemory.Pin | local | 32 | -| Local variable 3 of method System.Reflection.CustomAttribute.AddCustomAttributes | local | 32 | -| Local variable 3 of method System.Reflection.Emit.RuntimeAssemblyBuilder.CreateDynamicAssembly | local | 32 | -| Local variable 3 of method System.Reflection.Emit.RuntimeTypeBuilder.SetPInvokeData | local | 32 | -| Local variable 3 of method System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata | local | 32 | -| Local variable 3 of method System.Reflection.RuntimeAssembly.GetVersion | local | 32 | -| Local variable 3 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | -| Local variable 3 of method System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | local | 32 | -| Local variable 3 of method System.Runtime.InteropServices.ComWrappers.TryGetComInstanceInternal | local | 32 | -| Local variable 3 of method System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal | local | 32 | -| Local variable 3 of method System.Runtime.InteropServices.Marshal.QueryInterface | local | 32 | -| Local variable 3 of method System.Runtime.InteropServices.NativeLibrary.GetSymbol | local | 32 | -| Local variable 3 of method System.Runtime.InteropServices.NativeLibrary.LoadFromPath | local | 32 | -| Local variable 3 of method System.Runtime.InteropServices.SafeBuffer.ReadSpan | local | 32 | -| Local variable 3 of method System.Runtime.InteropServices.SafeBuffer.WriteSpan | local | 32 | -| Local variable 3 of method System.Runtime.Loader.AssemblyLoadContext.InternalLoad | local | 32 | -| Local variable 3 of method System.Runtime.Loader.AssemblyLoadContext.LoadFromPath | local | 32 | -| Local variable 3 of method System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyResolveHandlerInvoked | local | 32 | -| Local variable 3 of method System.Runtime.Loader.AssemblyLoadContext.TraceResolvingHandlerInvoked | local | 32 | -| Local variable 3 of method System.Runtime.Loader.AssemblyLoadContext.TraceSatelliteSubdirectoryPathProbed | local | 32 | -| Local variable 3 of method System.RuntimeType.RuntimeTypeCache.MemberInfoCache.Populate | local | 32 | -| Local variable 3 of method System.SpanHelpers.CountValueType | local | 32 | -| Local variable 3 of method System.SpanHelpers.Fill | local | 32 | -| Local variable 3 of method System.SpanHelpers.LastIndexOf | local | 32 | -| Local variable 3 of method System.SpanHelpers.LastIndexOfAnyValueType | local | 32 | -| Local variable 3 of method System.SpanHelpers.NonPackedContainsValueType | local | 32 | -| Local variable 3 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 3 of method System.SpanHelpers.NonPackedIndexOfValueType | local | 32 | -| Local variable 3 of method System.SpanHelpers.Reverse | local | 32 | -| Local variable 3 of method System.String.CreateStringFromEncoding | local | 32 | -| Local variable 3 of method System.String.GetNonRandomizedHashCodeOrdinalIgnoreCase | local | 32 | -| Local variable 3 of method System.Text.ASCIIEncoding.GetBytes | local | 32 | -| Local variable 3 of method System.Text.ASCIIEncoding.GetChars | local | 32 | -| Local variable 3 of method System.Text.ASCIIEncoding.TryGetBytes | local | 32 | -| Local variable 3 of method System.Text.ASCIIEncoding.TryGetChars | local | 32 | -| Local variable 3 of method System.Text.Ascii.ChangeCase | local | 32 | -| Local variable 3 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 3 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 3 of method System.Text.Ascii.FromUtf16 | local | 32 | -| Local variable 3 of method System.Text.Ascii.ToUtf16 | local | 32 | -| Local variable 3 of method System.Text.Decoder.Convert | local | 32 | -| Local variable 3 of method System.Text.Decoder.GetChars | local | 32 | -| Local variable 3 of method System.Text.DecoderNLS.Convert | local | 32 | -| Local variable 3 of method System.Text.Encoder.Convert | local | 32 | -| Local variable 3 of method System.Text.Encoder.GetBytes | local | 32 | -| Local variable 3 of method System.Text.EncoderNLS.Convert | local | 32 | -| Local variable 3 of method System.Text.Encoding.GetBytes | local | 32 | -| Local variable 3 of method System.Text.Encoding.GetBytesWithFallback | local | 32 | -| Local variable 3 of method System.Text.Encoding.GetChars | local | 32 | -| Local variable 3 of method System.Text.Encoding.GetCharsWithFallback | local | 32 | -| Local variable 3 of method System.Text.Latin1Encoding.GetBytes | local | 32 | -| Local variable 3 of method System.Text.Latin1Encoding.GetChars | local | 32 | -| Local variable 3 of method System.Text.Latin1Encoding.TryGetBytes | local | 32 | -| Local variable 3 of method System.Text.Latin1Encoding.TryGetChars | local | 32 | -| Local variable 3 of method System.Text.UTF8Encoding.GetBytes | local | 32 | -| Local variable 3 of method System.Text.UTF8Encoding.GetChars | local | 32 | -| Local variable 3 of method System.Text.UTF8Encoding.TryGetBytes | local | 32 | -| Local variable 3 of method System.Text.UTF8Encoding.TryGetChars | local | 32 | -| Local variable 3 of method System.Text.Unicode.Utf8.FromUtf16 | local | 32 | -| Local variable 3 of method System.Text.Unicode.Utf8.ToUtf16 | local | 32 | -| Local variable 3 of method System.Text.Unicode.Utf8.ToUtf16PreservingReplacement | local | 32 | -| Local variable 3 of method System.Threading.Thread.StartCore | local | 32 | -| Local variable 3 of method System.UInt128.<op_Division>g__SubtractDivisor\|110_3 | local | 32 | -| Local variable 4 of method Interop.Globalization.GetCalendars | local | 32 | -| Local variable 4 of method Interop.Globalization.GetLocaleTimeFormat | local | 32 | -| Local variable 4 of method Interop.Globalization.GetTimeZoneDisplayName | local | 32 | -| Local variable 4 of method Interop.Kernel32.GetMessage | local | 32 | -| Local variable 4 of method Interop.Kernel32.SetEnvironmentVariable | local | 32 | -| Local variable 4 of method Interop.Sys.IsMemberOfGroup | local | 32 | -| Local variable 4 of method System.Array.Copy | local | 32 | -| Local variable 4 of method System.Buffers.ProbabilisticMap.IndexOfAnyVectorized | local | 32 | -| Local variable 4 of method System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | local | 32 | -| Local variable 4 of method System.Collections.Generic.Dictionary.CopyEntries | local | 32 | -| Local variable 4 of method System.Collections.Generic.Dictionary.TryInsert | local | 32 | -| Local variable 4 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | -| Local variable 4 of method System.Collections.Generic.HashSet.ConstructFrom | local | 32 | -| Local variable 4 of method System.Convert.ToBase64CharsLargeNoLineBreaks | local | 32 | -| Local variable 4 of method System.Convert.ToBase64String | local | 32 | -| Local variable 4 of method System.DateTimeFormat.FormatCustomizedTimeZone | local | 32 | -| Local variable 4 of method System.DateTimeFormat.FormatDigits | local | 32 | -| Local variable 4 of method System.Diagnostics.Tracing.DataCollector.AddNullTerminatedString | local | 32 | -| Local variable 4 of method System.Diagnostics.Tracing.EventSource.WriteEvent | local | 32 | -| Local variable 4 of method System.Enum.Format | local | 32 | -| Local variable 4 of method System.Globalization.CompareInfo.EndsWithOrdinalHelper | local | 32 | -| Local variable 4 of method System.Globalization.CompareInfo.EndsWithOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 4 of method System.Globalization.CompareInfo.IcuGetSortKey | local | 32 | -| Local variable 4 of method System.Globalization.CompareInfo.StartsWithOrdinalHelper | local | 32 | -| Local variable 4 of method System.Globalization.CompareInfo.StartsWithOrdinalIgnoreCaseHelper | local | 32 | -| Local variable 4 of method System.Globalization.IdnMapping.IcuGetUnicodeCore | local | 32 | -| Local variable 4 of method System.Globalization.Ordinal.IndexOfOrdinalIgnoreCase | local | 32 | -| Local variable 4 of method System.IO.PathInternal.EqualStartingCharacterCount | local | 32 | -| Local variable 4 of method System.MemoryExtensions.TrimUtf8 | local | 32 | -| Local variable 4 of method System.Number.BigInteger.AddDivisor | local | 32 | -| Local variable 4 of method System.Number.Int128ToHexStr | local | 32 | -| Local variable 4 of method System.Number.NegativeInt128ToDecStr | local | 32 | -| Local variable 4 of method System.Number.UInt128ToBinaryStr | local | 32 | -| Local variable 4 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 4 of method System.Reflection.AssemblyName.EscapeString | local | 32 | -| Local variable 4 of method System.Reflection.AssemblyName.ParseAsAssemblySpec | local | 32 | -| Local variable 4 of method System.Reflection.Emit.RuntimeModuleBuilder.GetArrayMethodToken | local | 32 | -| Local variable 4 of method System.Reflection.Emit.RuntimeModuleBuilder.GetMemberRefFromSignature | local | 32 | -| Local variable 4 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineField | local | 32 | -| Local variable 4 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineGenericParam | local | 32 | -| Local variable 4 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineMethod | local | 32 | -| Local variable 4 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineProperty | local | 32 | -| Local variable 4 of method System.Reflection.Emit.RuntimeTypeBuilder.DefineType | local | 32 | -| Local variable 4 of method System.Reflection.Emit.RuntimeTypeBuilder.SetMethodIL | local | 32 | -| Local variable 4 of method System.Reflection.RuntimeAssembly.GetResource | local | 32 | -| Local variable 4 of method System.Reflection.RuntimeAssembly.InternalLoad | local | 32 | -| Local variable 4 of method System.Runtime.InteropServices.NativeLibrary.LoadByName | local | 32 | -| Local variable 4 of method System.Runtime.Loader.AssemblyLoadContext.InternalLoad | local | 32 | -| Local variable 4 of method System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyLoadFromResolveHandlerInvoked | local | 32 | -| Local variable 4 of method System.SpanHelpers.IndexOf | local | 32 | -| Local variable 4 of method System.SpanHelpers.LastIndexOf | local | 32 | -| Local variable 4 of method System.SpanHelpers.NonPackedContainsValueType | local | 32 | -| Local variable 4 of method System.SpanHelpers.NonPackedIndexOfValueType | local | 32 | -| Local variable 4 of method System.SpanHelpers.Reverse | local | 32 | -| Local variable 4 of method System.String.CompareOrdinalHelper | local | 32 | -| Local variable 4 of method System.String.Replace | local | 32 | -| Local variable 4 of method System.TermInfo.ParameterizedStrings.FormatPrintF | local | 32 | -| Local variable 4 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 4 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 4 of method System.Text.DecoderNLS.GetChars | local | 32 | -| Local variable 4 of method System.Text.EncoderNLS.GetBytes | local | 32 | -| Local variable 4 of method System.Text.Latin1Encoding.GetString | local | 32 | -| Local variable 4 of method System.Text.UTF7Encoding.GetBytes | local | 32 | -| Local variable 4 of method System.Text.UTF7Encoding.GetChars | local | 32 | -| Local variable 4 of method System.Text.UTF8Encoding.UTF8EncodingSealed.GetBytesForSmallInput | local | 32 | -| Local variable 4 of method System.Text.UTF32Encoding.GetBytes | local | 32 | -| Local variable 4 of method System.Text.UTF32Encoding.GetChars | local | 32 | -| Local variable 4 of method System.Text.UnicodeEncoding.GetBytes | local | 32 | -| Local variable 4 of method System.Text.UnicodeEncoding.GetChars | local | 32 | -| Local variable 5 of method Interop.Globalization.GetJapaneseEraStartDate | local | 32 | -| Local variable 5 of method Interop.Globalization.GetLocaleInfoGroupingSizes | local | 32 | -| Local variable 5 of method Interop.Globalization.GetLocaleInfoInt | local | 32 | -| Local variable 5 of method Interop.Globalization.GetLocaleInfoString | local | 32 | -| Local variable 5 of method Interop.Kernel32.GetEnvironmentVariable | local | 32 | -| Local variable 5 of method Interop.Sys.FStat | local | 32 | -| Local variable 5 of method Interop.Sys.GetCwd | local | 32 | -| Local variable 5 of method Interop.Sys.GetUnixVersion | local | 32 | -| Local variable 5 of method Interop.Sys.GetUserNameFromPasswd | local | 32 | -| Local variable 5 of method Interop.Sys.LStat | local | 32 | -| Local variable 5 of method Interop.Sys.ReadLink | local | 32 | -| Local variable 5 of method Interop.Sys.Rename | local | 32 | -| Local variable 5 of method Interop.Sys.Stat | local | 32 | -| Local variable 5 of method System.Array.Clear | local | 32 | -| Local variable 5 of method System.Array.CopyImpl | local | 32 | -| Local variable 5 of method System.Array.CreateInstance | local | 32 | -| Local variable 5 of method System.Array.InternalGetValue | local | 32 | -| Local variable 5 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 5 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 5 of method System.Buffers.SharedArrayPool.Return | local | 32 | -| Local variable 5 of method System.Buffers.Text.Base64.DecodeFromUtf8InPlace | local | 32 | -| Local variable 5 of method System.Collections.Generic.Dictionary.CopyEntries | local | 32 | -| Local variable 5 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | -| Local variable 5 of method System.Collections.Generic.HashSet.Remove | local | 32 | -| Local variable 5 of method System.Collections.Generic.HashSet.Resize | local | 32 | -| Local variable 5 of method System.Convert.ToBase64CharArray | local | 32 | -| Local variable 5 of method System.Convert.ToBase64CharsLargeNoLineBreaks | local | 32 | -| Local variable 5 of method System.Convert.TryToBase64Chars | local | 32 | -| Local variable 5 of method System.Diagnostics.Tracing.EventPipeInternal.Enable | local | 32 | -| Local variable 5 of method System.Diagnostics.Tracing.EventSource.WriteEvent | local | 32 | -| Local variable 5 of method System.Globalization.TextInfo.ToLowerAsciiInvariant | local | 32 | -| Local variable 5 of method System.IO.PersistedFiles.GetHomeDirectory | local | 32 | -| Local variable 5 of method System.Number.BigInteger.SubtractDivisor | local | 32 | -| Local variable 5 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 5 of method System.Reflection.CustomAttribute.GetAttributeUsage | local | 32 | -| Local variable 5 of method System.Reflection.Emit.RuntimeAssemblyBuilder.CreateDynamicAssembly | local | 32 | -| Local variable 5 of method System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata | local | 32 | -| Local variable 5 of method System.Reflection.Metadata.MetadataUpdater.ApplyUpdate | local | 32 | -| Local variable 5 of method System.Reflection.RuntimeAssembly.GetVersion | local | 32 | -| Local variable 5 of method System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod | local | 32 | -| Local variable 5 of method System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | local | 32 | -| Local variable 5 of method System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyResolveHandlerInvoked | local | 32 | -| Local variable 5 of method System.Runtime.Loader.AssemblyLoadContext.TraceResolvingHandlerInvoked | local | 32 | -| Local variable 5 of method System.String.Replace | local | 32 | -| Local variable 5 of method System.Text.Ascii.ChangeCase | local | 32 | -| Local variable 5 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 5 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 5 of method System.Text.Ascii.FromUtf16 | local | 32 | -| Local variable 5 of method System.Text.Ascii.ToUtf16 | local | 32 | -| Local variable 5 of method System.Text.Encoding.GetBytes | local | 32 | -| Local variable 6 of method Interop.Kernel32.CreateEventEx | local | 32 | -| Local variable 6 of method Interop.Kernel32.CreateMutexEx | local | 32 | -| Local variable 6 of method Interop.Kernel32.CreateSemaphoreEx | local | 32 | -| Local variable 6 of method Interop.Kernel32.ReleaseSemaphore | local | 32 | -| Local variable 6 of method Interop.Kernel32.SetEnvironmentVariable | local | 32 | -| Local variable 6 of method System.Array.CopyImpl | local | 32 | -| Local variable 6 of method System.Array.Initialize | local | 32 | -| Local variable 6 of method System.Array.InternalGetValue | local | 32 | -| Local variable 6 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 6 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 6 of method System.Collections.Generic.Dictionary.Resize | local | 32 | -| Local variable 6 of method System.Collections.Generic.GenericArraySortHelper.PickPivotAndPartition | local | 32 | -| Local variable 6 of method System.Collections.Generic.HashSet.FindItemIndex | local | 32 | -| Local variable 6 of method System.Convert.ConvertToBase64Array | local | 32 | -| Local variable 6 of method System.Convert.ToBase64String | local | 32 | -| Local variable 6 of method System.Convert.TryDecodeFromUtf16 | local | 32 | -| Local variable 6 of method System.DateTimeFormat.FormatCustomizedTimeZone | local | 32 | -| Local variable 6 of method System.DateTimeFormat.FormatDigits | local | 32 | -| Local variable 6 of method System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty | local | 32 | -| Local variable 6 of method System.Globalization.IdnMapping.IcuGetAsciiCore | local | 32 | -| Local variable 6 of method System.Number.BigInteger.Pow10 | local | 32 | -| Local variable 6 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 6 of method System.Reflection.Emit.RuntimeTypeBuilder.SetConstantValue | local | 32 | -| Local variable 6 of method System.Reflection.Emit.RuntimeTypeBuilder.SetMethodIL | local | 32 | -| Local variable 6 of method System.Reflection.Metadata.MetadataUpdater.ApplyUpdate | local | 32 | -| Local variable 6 of method System.Reflection.RuntimeAssembly.InternalLoad | local | 32 | -| Local variable 6 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | -| Local variable 6 of method System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyLoadFromResolveHandlerInvoked | local | 32 | -| Local variable 6 of method System.SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber | local | 32 | -| Local variable 6 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 6 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 7 of method Interop.Globalization.GetJapaneseEraStartDate | local | 32 | -| Local variable 7 of method Interop.Globalization.GetLocaleInfoGroupingSizes | local | 32 | -| Local variable 7 of method Interop.Globalization.GetSortHandle | local | 32 | -| Local variable 7 of method Interop.Kernel32.OpenMutex | local | 32 | -| Local variable 7 of method System.Array.InternalGetValue | local | 32 | -| Local variable 7 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 7 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 7 of method System.Buffers.ProbabilisticMap.IndexOfAnyVectorized | local | 32 | -| Local variable 7 of method System.Buffers.Text.Base64.EncodeToUtf8InPlace | local | 32 | -| Local variable 7 of method System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | local | 32 | -| Local variable 7 of method System.Collections.Generic.Dictionary.Remove | local | 32 | -| Local variable 7 of method System.Collections.Generic.Dictionary.TryInsert | local | 32 | -| Local variable 7 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | -| Local variable 7 of method System.Collections.Generic.HashSet.Remove | local | 32 | -| Local variable 7 of method System.Collections.Generic.HashSet.Resize | local | 32 | -| Local variable 7 of method System.Convert.ToBase64CharArray | local | 32 | -| Local variable 7 of method System.Convert.ToBase64CharsLargeNoLineBreaks | local | 32 | -| Local variable 7 of method System.DateTimeFormat.TryFormatS | local | 32 | -| Local variable 7 of method System.DateTimeFormat.TryFormatu | local | 32 | -| Local variable 7 of method System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadata | local | 32 | -| Local variable 7 of method System.Globalization.CompareInfo.IcuGetHashCodeOfString | local | 32 | -| Local variable 7 of method System.Globalization.Normalization.IcuNormalize | local | 32 | -| Local variable 7 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 7 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 7 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 7 of method System.Reflection.Metadata.MetadataUpdater.ApplyUpdate | local | 32 | -| Local variable 7 of method System.Reflection.RuntimeAssembly.GetVersion | local | 32 | -| Local variable 7 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | -| Local variable 7 of method System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyResolveHandlerInvoked | local | 32 | -| Local variable 7 of method System.Runtime.Loader.AssemblyLoadContext.TraceResolvingHandlerInvoked | local | 32 | -| Local variable 7 of method System.RuntimeType.RuntimeTypeCache.MemberInfoCache.Populate | local | 32 | -| Local variable 7 of method System.SpanHelpers.NonPackedContainsValueType | local | 32 | -| Local variable 7 of method System.SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber | local | 32 | -| Local variable 7 of method System.SpanHelpers.NonPackedIndexOfValueType | local | 32 | -| Local variable 7 of method System.String.MakeSeparatorListAny | local | 32 | -| Local variable 7 of method System.StubHelpers.CSTRMarshaler.ConvertFixedToNative | local | 32 | -| Local variable 7 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 8 of method Interop.Sys.LStat | local | 32 | -| Local variable 8 of method Interop.Sys.Stat | local | 32 | -| Local variable 8 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 8 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 8 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 8 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 8 of method System.Collections.Generic.HashSet.Resize | local | 32 | -| Local variable 8 of method System.DateTimeFormat.TryFormatInvariantG | local | 32 | -| Local variable 8 of method System.Diagnostics.Tracing.EventSource.WriteEventString | local | 32 | -| Local variable 8 of method System.ModuleHandle.ResolveFieldHandle | local | 32 | -| Local variable 8 of method System.ModuleHandle.ResolveTypeHandle | local | 32 | -| Local variable 8 of method System.Number.BigInteger.Pow10 | local | 32 | -| Local variable 8 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 8 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 8 of method System.Reflection.Emit.RuntimeTypeBuilder.SetConstantValue | local | 32 | -| Local variable 8 of method System.Reflection.Emit.RuntimeTypeBuilder.SetMethodIL | local | 32 | -| Local variable 8 of method System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyLoadFromResolveHandlerInvoked | local | 32 | -| Local variable 8 of method System.SpanHelpers.CountValueType | local | 32 | -| Local variable 8 of method System.SpanHelpers.NonPackedContainsValueType | local | 32 | -| Local variable 8 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 8 of method System.SpanHelpers.NonPackedIndexOfValueType | local | 32 | -| Local variable 8 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 8 of method System.Text.Ascii.IsValidCore | local | 32 | -| Local variable 9 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 9 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 9 of method System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | local | 32 | -| Local variable 9 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | -| Local variable 9 of method System.Collections.Generic.HashSet.FindItemIndex | local | 32 | -| Local variable 9 of method System.Collections.Generic.HashSet.IntersectWithEnumerable | local | 32 | -| Local variable 9 of method System.Collections.Generic.HashSet.TrimExcess | local | 32 | -| Local variable 9 of method System.DateTimeFormat.TryFormatR | local | 32 | -| Local variable 9 of method System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty | local | 32 | -| Local variable 9 of method System.Diagnostics.Tracing.EventPipeInternal.Enable | local | 32 | -| Local variable 9 of method System.Globalization.CompareInfo.IcuGetHashCodeOfString | local | 32 | -| Local variable 9 of method System.Globalization.Normalization.IcuNormalize | local | 32 | -| Local variable 9 of method System.IO.Directory.CreateTempSubdirectoryCore | local | 32 | -| Local variable 9 of method System.IO.Path.GetTempFileName | local | 32 | -| Local variable 9 of method System.ModuleHandle.ResolveFieldHandle | local | 32 | -| Local variable 9 of method System.ModuleHandle.ResolveTypeHandle | local | 32 | -| Local variable 9 of method System.Runtime.Loader.AssemblyLoadContext.TraceAssemblyResolveHandlerInvoked | local | 32 | -| Local variable 9 of method System.Runtime.Loader.AssemblyLoadContext.TraceResolvingHandlerInvoked | local | 32 | -| Local variable 9 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 9 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 9 of method System.SpanHelpers.Reverse | local | 32 | -| Local variable 9 of method System.String.<GetNonRandomizedHashCodeOrdinalIgnoreCase>g__GetNonRandomizedHashCodeOrdinalIgnoreCaseSlow\|47_0 | local | 32 | -| Local variable 9 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 10 of method System.Buffers.ProbabilisticMap.IndexOfAnyVectorized | local | 32 | -| Local variable 10 of method System.Collections.Generic.HashSet.TrimExcess | local | 32 | -| Local variable 10 of method System.Convert.ToBase64CharsLargeNoLineBreaks | local | 32 | -| Local variable 10 of method System.DateTimeFormat.TryFormatO | local | 32 | -| Local variable 10 of method System.Number.BigInteger.Pow10 | local | 32 | -| Local variable 10 of method System.Number.FormatFixed | local | 32 | -| Local variable 10 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 10 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 10 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 10 of method System.SpanHelpers.Reverse | local | 32 | -| Local variable 10 of method System.String.JoinCore | local | 32 | -| Local variable 10 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 11 of method System.Buffers.Text.Base64.EncodeToUtf8 | local | 32 | -| Local variable 11 of method System.Collections.Generic.HashSet.AddIfNotPresent | local | 32 | -| Local variable 11 of method System.Globalization.CompareInfo.IcuGetHashCodeOfString | local | 32 | -| Local variable 11 of method System.IO.RandomAccess.ReadScatterAtOffset | local | 32 | -| Local variable 11 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 11 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 11 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | -| Local variable 11 of method System.Runtime.Loader.AssemblyLoadContext.TraceResolvingHandlerInvoked | local | 32 | -| Local variable 11 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 11 of method System.SpanHelpers.NonPackedContainsValueType | local | 32 | -| Local variable 11 of method System.SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber | local | 32 | -| Local variable 11 of method System.SpanHelpers.NonPackedIndexOfValueType | local | 32 | -| Local variable 11 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 12 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 12 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 12 of method System.Diagnostics.Tracing.EventSource.WriteMultiMerge | local | 32 | -| Local variable 12 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 12 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 12 of method System.Reflection.RuntimeAssembly.GetTypeCoreIgnoreCase | local | 32 | -| Local variable 12 of method System.SpanHelpers.NonPackedContainsValueType | local | 32 | -| Local variable 12 of method System.SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber | local | 32 | -| Local variable 12 of method System.SpanHelpers.NonPackedIndexOfValueType | local | 32 | -| Local variable 12 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 12 of method System.Text.Ascii.IsValidCore | local | 32 | -| Local variable 13 of method System.Buffers.ProbabilisticMap.IndexOfAnyVectorized | local | 32 | -| Local variable 13 of method System.Buffers.Text.Base64.DecodeFromUtf8 | local | 32 | -| Local variable 13 of method System.Globalization.TextInfo.ChangeCaseCommon | local | 32 | -| Local variable 13 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 13 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 13 of method System.SpanHelpers.CountValueType | local | 32 | -| Local variable 13 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 14 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 14 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 14 of method System.IO.RandomAccess.WriteGatherAtOffset | local | 32 | -| Local variable 14 of method System.Reflection.RuntimeAssembly.GetTypeCoreIgnoreCase | local | 32 | -| Local variable 14 of method System.Runtime.CompilerServices.ConditionalWeakTable.Container.Resize | local | 32 | -| Local variable 14 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 14 of method System.SpanHelpers.Reverse | local | 32 | -| Local variable 14 of method System.Text.Ascii.Equals | local | 32 | -| Local variable 14 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 15 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 15 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 15 of method System.Diagnostics.Tracing.EventSource.WriteImpl | local | 32 | -| Local variable 15 of method System.Globalization.TimeSpanFormat.TryFormatStandard | local | 32 | -| Local variable 15 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 15 of method System.SpanHelpers.Reverse | local | 32 | -| Local variable 15 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 16 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 16 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 16 of method System.SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber | local | 32 | -| Local variable 16 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 16 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 17 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | local | 32 | -| Local variable 17 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 17 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | local | 32 | -| Local variable 17 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 17 of method System.Reflection.RuntimeAssembly.GetTypeCore | local | 32 | -| Local variable 17 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 17 of method System.SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber | local | 32 | -| Local variable 17 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 17 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 18 of method System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 18 of method System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | local | 32 | -| Local variable 18 of method System.Diagnostics.Tracing.EventSource.WriteMultiMergeInner | local | 32 | -| Local variable 18 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 18 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 18 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 18 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 18 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 19 of method System.Number.NumberToStringFormat | local | 32 | -| Local variable 19 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 19 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 19 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 20 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 20 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 20 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 21 of method System.Diagnostics.Tracing.EventPipeMetadataGenerator.GenerateMetadata | local | 32 | -| Local variable 21 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 23 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 23 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 23 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 24 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 24 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 24 of method System.SpanHelpers.NonPackedIndexOfAnyValueType | local | 32 | -| Local variable 25 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 25 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 25 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 25 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 25 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 26 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 26 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 26 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 27 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 27 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 28 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 28 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 28 of method System.Text.Ascii.EqualsIgnoreCase | local | 32 | -| Local variable 29 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 29 of method System.SpanHelpers.IndexOfAnyValueType | local | 32 | -| Local variable 30 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 30 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 30 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 31 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 31 of method System.Number.NumberToStringFormat | local | 32 | -| Local variable 31 of method System.PackedSpanHelpers.Contains | local | 32 | -| Local variable 31 of method System.PackedSpanHelpers.IndexOf | local | 32 | -| Local variable 31 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 31 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 32 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 33 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 33 of method System.Diagnostics.Tracing.EventSource.CreateManifestAndDescriptors | local | 32 | -| Local variable 34 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 34 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 36 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 36 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 37 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 37 of method System.PackedSpanHelpers.IndexOfAnyInRange | local | 32 | -| Local variable 38 of method System.Diagnostics.Tracing.EventProvider.WriteEvent | local | 32 | -| Local variable 39 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Local variable 40 of method System.PackedSpanHelpers.IndexOfAny | local | 32 | -| Parameter 0 of <PrivateImplementationDetails>.InlineArrayElementRef | parameter | 32 | -| Parameter 0 of <PrivateImplementationDetails>.InlineArrayFirstElementRef | parameter | 32 | -| Parameter 0 of Interop.Sys.GetCpuUtilization | parameter | 32 | -| Parameter 0 of Interop.Sys.GetWindowSize | parameter | 32 | -| Parameter 0 of Interop.Sys.LStat | parameter | 32 | -| Parameter 0 of Interop.Sys.MkDir | parameter | 32 | -| Parameter 0 of Interop.Sys.ReadLink | parameter | 32 | -| Parameter 0 of Interop.Sys.Rename | parameter | 32 | -| Parameter 0 of Interop.Sys.SetWindowSize | parameter | 32 | -| Parameter 0 of Interop.Sys.Stat | parameter | 32 | -| Parameter 0 of System.Array.Resize | parameter | 32 | -| Parameter 0 of System.Buffer.BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 0 of System.Buffer.Memmove | parameter | 32 | -| Parameter 0 of System.Buffer._BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 0 of System.Buffer._Memmove | parameter | 32 | -| Parameter 0 of System.Buffer._ZeroMemory | parameter | 32 | -| Parameter 0 of System.Buffer.__BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeFirstIndex | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeFirstIndexOverlapped | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeLastIndex | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeLastIndexOverlapped | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.TryIndexOfAny | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.TryIndexOfAnyExcept | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.TryLastIndexOfAny | parameter | 32 | -| Parameter 0 of System.Buffers.IndexOfAnyAsciiSearcher.TryLastIndexOfAnyExcept | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.Contains | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.IndexOfAny | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.IndexOfAnyExcept | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.IndexOfAnySimpleLoop | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.IndexOfAnyVectorized | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.IsCharBitSet | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.LastIndexOfAny | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.LastIndexOfAnyExcept | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.LastIndexOfAnySimpleLoop | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.ProbabilisticIndexOfAny | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.ProbabilisticLastIndexOfAny | parameter | 32 | -| Parameter 0 of System.Buffers.ProbabilisticMap.SetCharBit | parameter | 32 | -| Parameter 0 of System.Buffers.Text.Base64.Avx2Decode | parameter | 32 | -| Parameter 0 of System.Buffers.Text.Base64.Avx2Encode | parameter | 32 | -| Parameter 0 of System.Buffers.Text.Base64.GetPaddingCount | parameter | 32 | -| Parameter 0 of System.Buffers.Text.Base64.Vector128Decode | parameter | 32 | -| Parameter 0 of System.Buffers.Text.Base64.Vector128Encode | parameter | 32 | -| Parameter 0 of System.Buffers.Text.FormattingHelpers.GetSymbolOrDefault | parameter | 32 | -| Parameter 0 of System.Buffers.Text.ParserHelpers.TryParseThrowFormatException | parameter | 32 | -| Parameter 0 of System.ByReference.Create | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper.GreaterThan | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper.LessThan | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper.Swap | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper.SwapIfGreater | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper<!0,!1>.GreaterThan | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper<!0,!1>.LessThan | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper<!0>.GreaterThan | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper<!0>.LessThan | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper<!0>.Swap | parameter | 32 | -| Parameter 0 of System.Collections.Generic.GenericArraySortHelper<!0>.SwapIfGreater | parameter | 32 | -| Parameter 0 of System.ComAwareWeakReference.EnsureComAwareReference | parameter | 32 | -| Parameter 0 of System.ComAwareWeakReference.SetComInfoInConstructor | parameter | 32 | -| Parameter 0 of System.ComAwareWeakReference.SetTarget | parameter | 32 | -| Parameter 0 of System.ConsolePal.GetWindowSize | parameter | 32 | -| Parameter 0 of System.ConsolePal.RefreshColors | parameter | 32 | -| Parameter 0 of System.ConsolePal.TryGetCachedCursorPosition | parameter | 32 | -| Parameter 0 of System.ConsolePal.TryGetCursorPosition | parameter | 32 | -| Parameter 0 of System.Convert.Decode | parameter | 32 | -| Parameter 0 of System.Convert.WriteThreeLowOrderBytes | parameter | 32 | -| Parameter 0 of System.DateTimeFormat.AppendChar | parameter | 32 | -| Parameter 0 of System.DateTimeFormat.AppendString | parameter | 32 | -| Parameter 0 of System.DateTimeFormat.FormatDigits | parameter | 32 | -| Parameter 0 of System.DateTimeFormat.FormatFraction | parameter | 32 | -| Parameter 0 of System.DateTimeFormat.PrepareFormatU | parameter | 32 | -| Parameter 0 of System.DateTimeParse.AdjustHour | parameter | 32 | -| Parameter 0 of System.DateTimeParse.AdjustTimeZoneToLocal | parameter | 32 | -| Parameter 0 of System.DateTimeParse.AdjustTimeZoneToUniversal | parameter | 32 | -| Parameter 0 of System.DateTimeParse.CheckDefaultDateTime | parameter | 32 | -| Parameter 0 of System.DateTimeParse.CheckNewValue | parameter | 32 | -| Parameter 0 of System.DateTimeParse.DateTimeOffsetTimeZonePostProcessing | parameter | 32 | -| Parameter 0 of System.DateTimeParse.DetermineTimeZoneAdjustments | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDateOfDSN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDateOfNDS | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDateOfNNDS | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDateTimeNow | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDateTimeParseException | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfMN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfMNN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfNM | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfNN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfNNN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfNNY | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfYM | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfYMN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfYN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDayOfYNN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetDefaultYear | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetHebrewDayOfNM | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetTimeOfN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetTimeOfNN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetTimeOfNNN | parameter | 32 | -| Parameter 0 of System.DateTimeParse.GetTimeZoneName | parameter | 32 | -| Parameter 0 of System.DateTimeParse.HandleTimeZone | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchAbbreviatedDayName | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchAbbreviatedMonthName | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchAbbreviatedTimeMark | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchDayName | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchEraName | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchHebrewDigits | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchMonthName | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchTimeMark | parameter | 32 | -| Parameter 0 of System.DateTimeParse.MatchWord | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseByFormat | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseDigits | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseFraction | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseFractionExact | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseISO8601 | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseJapaneseEraStart | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseSign | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseTimeZone | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ParseTimeZoneOffset | parameter | 32 | -| Parameter 0 of System.DateTimeParse.ProcessDateTimeSuffix | parameter | 32 | -| Parameter 0 of System.DateTimeParse.SetDateDMY | parameter | 32 | -| Parameter 0 of System.DateTimeParse.SetDateMDY | parameter | 32 | -| Parameter 0 of System.DateTimeParse.SetDateYDM | parameter | 32 | -| Parameter 0 of System.DateTimeParse.SetDateYMD | parameter | 32 | -| Parameter 0 of System.DateTimeParse.TryAdjustYear | parameter | 32 | -| Parameter 0 of System.DateTimeParse.VerifyValidPunctuation | parameter | 32 | -| Parameter 0 of System.Decimal.AsMutable | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.Add32To96 | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.DecAddSub | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.DecDivMod1E9 | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.Div96By32 | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.Div96By64 | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.Div96ByConst | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.Div128By96 | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.GetHashCode | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.IncreaseScale | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.IncreaseScale64 | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.InternalRound | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.OverflowUnscale | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.SearchScale | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.Unscale | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarCyFromDec | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarDecCmp | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarDecCmpSub | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarDecDiv | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarDecMod | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarDecModFull | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarDecMul | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarR4FromDec | parameter | 32 | -| Parameter 0 of System.Decimal.DecCalc.VarR8FromDec | parameter | 32 | -| Parameter 0 of System.Decimal.DecDivMod1E9 | parameter | 32 | -| Parameter 0 of System.Decimal.GetBytes | parameter | 32 | -| Parameter 0 of System.Decimal.Round | parameter | 32 | -| Parameter 0 of System.Decimal.Truncate | parameter | 32 | -| Parameter 0 of System.Diagnostics.Contracts.Contract.ValueAtReturn | parameter | 32 | -| Parameter 0 of System.Diagnostics.StackTrace.TryResolveStateMachineMethod | parameter | 32 | -| Parameter 0 of System.Diagnostics.Tracing.ActivityTracker.ActivityInfo.WriteNibble | parameter | 32 | -| Parameter 0 of System.Diagnostics.Tracing.EventPipePayloadDecoder.DecodePayload | parameter | 32 | -| Parameter 0 of System.Diagnostics.Tracing.EventProvider.EncodeObject | parameter | 32 | -| Parameter 0 of System.Diagnostics.Tracing.EventSource.AddEventDescriptor | parameter | 32 | -| Parameter 0 of System.Diagnostics.Tracing.EventSource.DebugCheckEvent | parameter | 32 | -| Parameter 0 of System.Diagnostics.Tracing.EventSource.RemoveFirstArgIfRelatedActivityId | parameter | 32 | -| Parameter 0 of System.Diagnostics.Tracing.EventSource.TrimEventDescriptors | parameter | 32 | -| Parameter 0 of System.Diagnostics.Tracing.ManifestBuilder.UpdateStringBuilder | parameter | 32 | -| Parameter 0 of System.Enum.FormatNumberAsHex | parameter | 32 | -| Parameter 0 of System.Enum.TryFormatNumberAsHex | parameter | 32 | -| Parameter 0 of System.Globalization.CultureData.GetDefaultLocaleName | parameter | 32 | -| Parameter 0 of System.Globalization.DateTimeFormatInfo.TryParseHebrewNumber | parameter | 32 | -| Parameter 0 of System.Globalization.GlobalizationMode.TryGetAppLocalIcuSwitchValue | parameter | 32 | -| Parameter 0 of System.Globalization.HebrewNumber.Append | parameter | 32 | -| Parameter 0 of System.Globalization.InvariantModeCasing.CompareStringIgnoreCase | parameter | 32 | -| Parameter 0 of System.Globalization.InvariantModeCasing.GetScalar | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.CompareStringIgnoreCase | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.CompareStringIgnoreCaseNonAscii | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.EqualsIgnoreCase | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.EqualsIgnoreCaseUtf8 | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.EqualsIgnoreCaseUtf8_Scalar | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.EqualsIgnoreCaseUtf8_Vector128 | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.EqualsIgnoreCase_Scalar | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.EqualsIgnoreCase_Vector128 | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.EqualsStringIgnoreCaseNonAsciiUtf8 | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.EqualsStringIgnoreCaseUtf8 | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.StartsWithIgnoreCaseUtf8 | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.StartsWithIgnoreCaseUtf8_Scalar | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.StartsWithIgnoreCaseUtf8_Vector128 | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.StartsWithStringIgnoreCaseNonAsciiUtf8 | parameter | 32 | -| Parameter 0 of System.Globalization.Ordinal.StartsWithStringIgnoreCaseUtf8 | parameter | 32 | -| Parameter 0 of System.Globalization.OrdinalCasing.CompareStringIgnoreCase | parameter | 32 | -| Parameter 0 of System.Globalization.TextInfo.AddNonLetter | parameter | 32 | -| Parameter 0 of System.Globalization.TimeSpanParse.ParseExactDigits | parameter | 32 | -| Parameter 0 of System.Globalization.TimeSpanParse.ParseExactLiteral | parameter | 32 | -| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminalState | parameter | 32 | -| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_D | parameter | 32 | -| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_DHMSF | parameter | 32 | -| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_HM | parameter | 32 | -| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_HMS_F_D | parameter | 32 | -| Parameter 0 of System.Globalization.TimeSpanParse.ProcessTerminal_HM_S_D | parameter | 32 | -| Parameter 0 of System.Guid.AsBytes | parameter | 32 | -| Parameter 0 of System.Guid.EqualsCore | parameter | 32 | -| Parameter 0 of System.HashCode.Initialize | parameter | 32 | -| Parameter 0 of System.IO.Enumeration.FileSystemEntry.Initialize | parameter | 32 | -| Parameter 0 of System.IO.Enumeration.FileSystemEnumerableFactory.NormalizeInputs | parameter | 32 | -| Parameter 0 of System.IO.FileSystem.<ResolveLinkTarget>g__GetLinkTargetFullPath\|46_0 | parameter | 32 | -| Parameter 0 of System.Marvin.Block | parameter | 32 | -| Parameter 0 of System.Marvin.ComputeHash32 | parameter | 32 | -| Parameter 0 of System.Marvin.ComputeHash32OrdinalIgnoreCase | parameter | 32 | -| Parameter 0 of System.Marvin.ComputeHash32OrdinalIgnoreCaseSlow | parameter | 32 | -| Parameter 0 of System.MemoryExtensions.SliceLongerSpanToMatchShorterLength | parameter | 32 | -| Parameter 0 of System.Nullable.GetValueRefOrDefaultRef | parameter | 32 | -| Parameter 0 of System.Number.<AppendUnknownChar>g__AppendNonAsciiBytes\|115_0 | parameter | 32 | -| Parameter 0 of System.Number.AccumulateDecimalDigitsIntoBigInteger | parameter | 32 | -| Parameter 0 of System.Number.AppendUnknownChar | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.Add | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.AddDivisor | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.Compare | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.CountSignificantBits | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.DivRem | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.HeuristicDivide | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.Multiply | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.SetUInt32 | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.SetUInt64 | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.SetValue | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.SetZero | parameter | 32 | -| Parameter 0 of System.Number.BigInteger.SubtractDivisor | parameter | 32 | -| Parameter 0 of System.Number.ConvertBigIntegerToFloatingPointBits | parameter | 32 | -| Parameter 0 of System.Number.DecimalToNumber | parameter | 32 | -| Parameter 0 of System.Number.FormatCurrency | parameter | 32 | -| Parameter 0 of System.Number.FormatDouble | parameter | 32 | -| Parameter 0 of System.Number.FormatExponent | parameter | 32 | -| Parameter 0 of System.Number.FormatFixed | parameter | 32 | -| Parameter 0 of System.Number.FormatGeneral | parameter | 32 | -| Parameter 0 of System.Number.FormatHalf | parameter | 32 | -| Parameter 0 of System.Number.FormatNumber | parameter | 32 | -| Parameter 0 of System.Number.FormatPercent | parameter | 32 | -| Parameter 0 of System.Number.FormatScientific | parameter | 32 | -| Parameter 0 of System.Number.FormatSingle | parameter | 32 | -| Parameter 0 of System.Number.Grisu3.TryDigitGenCounted | parameter | 32 | -| Parameter 0 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | -| Parameter 0 of System.Number.Grisu3.TryRunCounted | parameter | 32 | -| Parameter 0 of System.Number.Grisu3.TryRunShortest | parameter | 32 | -| Parameter 0 of System.Number.Int128DivMod1E19 | parameter | 32 | -| Parameter 0 of System.Number.NumberToFloat | parameter | 32 | -| Parameter 0 of System.Number.NumberToFloatingPointBits | parameter | 32 | -| Parameter 0 of System.Number.NumberToFloatingPointBitsSlow | parameter | 32 | -| Parameter 0 of System.Number.NumberToString | parameter | 32 | -| Parameter 0 of System.Number.NumberToStringFormat | parameter | 32 | -| Parameter 0 of System.Number.RoundNumber | parameter | 32 | -| Parameter 0 of System.Number.TryNumberBufferToBinaryInteger | parameter | 32 | -| Parameter 0 of System.Number.TryNumberToDecimal | parameter | 32 | -| Parameter 0 of System.Number.TryParseNumber | parameter | 32 | -| Parameter 0 of System.Numerics.BitOperations.Crc32Fallback.Crc32CCore | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix3x2.Impl.Invert | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix3x2.Impl.Lerp | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix3x2.Impl.op_Addition | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix3x2.Impl.op_Equality | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix3x2.Impl.op_Inequality | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix3x2.Impl.op_Multiply | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix3x2.Impl.op_Subtraction | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix3x2.Impl.op_UnaryNegation | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.<Invert>g__SoftwareFallback\|64_2 | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.<Invert>g__SseImpl\|64_0 | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateBillboard | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateConstrainedBillboard | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateFromAxisAngle | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateFromQuaternion | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateLookTo | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateLookToLeftHanded | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateReflection | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateScale | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateShadow | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateTranslation | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.CreateWorld | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.Decompose | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.Invert | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.Lerp | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.Transform | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.Transpose | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.op_Addition | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.op_Equality | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.op_Inequality | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.op_Multiply | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.op_Subtraction | parameter | 32 | -| Parameter 0 of System.Numerics.Matrix4x4.Impl.op_UnaryNegation | parameter | 32 | -| Parameter 0 of System.Numerics.Plane.<Equals>g__SoftwareFallback\|16_0 | parameter | 32 | -| Parameter 0 of System.Numerics.Quaternion.<Equals>g__SoftwareFallback\|44_0 | parameter | 32 | -| Parameter 0 of System.Numerics.Vector2.<Equals>g__SoftwareFallback\|59_0 | parameter | 32 | -| Parameter 0 of System.Numerics.Vector3.<Equals>g__SoftwareFallback\|60_0 | parameter | 32 | -| Parameter 0 of System.Numerics.Vector4.<Equals>g__SoftwareFallback\|66_0 | parameter | 32 | -| Parameter 0 of System.Numerics.Vector.<Equals>g__SoftwareFallback\|57_0 | parameter | 32 | -| Parameter 0 of System.Numerics.Vector.GetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Numerics.Vector.LoadUnsafe | parameter | 32 | -| Parameter 0 of System.Numerics.Vector.SetElementUnsafe | parameter | 32 | -| Parameter 0 of System.PackedSpanHelpers.ComputeFirstIndex | parameter | 32 | -| Parameter 0 of System.PackedSpanHelpers.ComputeFirstIndexOverlapped | parameter | 32 | -| Parameter 0 of System.PackedSpanHelpers.Contains | parameter | 32 | -| Parameter 0 of System.PackedSpanHelpers.IndexOf | parameter | 32 | -| Parameter 0 of System.PackedSpanHelpers.IndexOfAny | parameter | 32 | -| Parameter 0 of System.PackedSpanHelpers.IndexOfAnyExcept | parameter | 32 | -| Parameter 0 of System.PackedSpanHelpers.IndexOfAnyExceptInRange | parameter | 32 | -| Parameter 0 of System.PackedSpanHelpers.IndexOfAnyInRange | parameter | 32 | -| Parameter 0 of System.PasteArguments.AppendArgument | parameter | 32 | -| Parameter 0 of System.Reflection.Assembly.GetExecutingAssembly | parameter | 32 | -| Parameter 0 of System.Reflection.AssemblyNameFormatter.AppendQuoted | parameter | 32 | -| Parameter 0 of System.Reflection.CustomAttribute.AddCustomAttributes | parameter | 32 | -| Parameter 0 of System.Reflection.MethodBase.AppendParameters | parameter | 32 | -| Parameter 0 of System.Reflection.MethodInvokerCommon.DetermineStrategy_Obj4Args | parameter | 32 | -| Parameter 0 of System.Reflection.MethodInvokerCommon.DetermineStrategy_ObjSpanArgs | parameter | 32 | -| Parameter 0 of System.Reflection.MethodInvokerCommon.DetermineStrategy_RefArgs | parameter | 32 | -| Parameter 0 of System.Reflection.RuntimeMethodInfo.InternalGetCurrentMethod | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.GetStateMachineBox | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.AwaitOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.GetStateMachineBox | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<VoidTaskResult>.AwaitOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<VoidTaskResult>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.CastCache.Element | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.CastCache.HashShift | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.CastCache.KeyToBucket | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.CastCache.TableMask | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.StelemRef_Helper_NoCacheLookup | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.CastHelpers.WriteBarrier | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.ObjectHandleOnStack.Create | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.GetStateMachineBox | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<!0>.AwaitOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<!0>.GetStateMachineBox | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<VoidTaskResult>.AwaitOnCompleted | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.Add | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.AddByteOffset | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.AreSame | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.As | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.AsPointer | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.AsRef | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.ByteOffset | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.Copy | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.CopyBlock | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.InitBlock | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.IsAddressLessThan | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.IsNullRef | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.ReadUnaligned | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.SkipInit | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.Subtract | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.SubtractByteOffset | parameter | 32 | -| Parameter 0 of System.Runtime.CompilerServices.Unsafe.WriteUnaligned | parameter | 32 | -| Parameter 0 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImpl | parameter | 32 | -| Parameter 0 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | parameter | 32 | -| Parameter 0 of System.Runtime.InteropServices.MemoryMarshal.CreateReadOnlySpan | parameter | 32 | -| Parameter 0 of System.Runtime.InteropServices.MemoryMarshal.CreateSpan | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector64.<Equals>g__SoftwareFallback\|34_0 | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector64.GetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector64.LoadUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector64.SetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector128.GetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector128.LoadUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector128.SetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector128.SetLowerUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector128.SetUpperUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector256.GetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector256.LoadUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector256.SetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector256.SetLowerUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector256.SetUpperUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector512.GetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector512.LoadUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector512.SetElementUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector512.SetLowerUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Intrinsics.Vector512.SetUpperUnsafe | parameter | 32 | -| Parameter 0 of System.Runtime.Loader.AssemblyLoadContext.StartAssemblyLoad | parameter | 32 | -| Parameter 0 of System.Runtime.Loader.AssemblyLoadContext.StopAssemblyLoad | parameter | 32 | -| Parameter 0 of System.Runtime.MemoryFailPoint.CheckForAvailableMemory | parameter | 32 | -| Parameter 0 of System.RuntimeMethodHandle.GetCurrentMethod | parameter | 32 | -| Parameter 0 of System.RuntimeMethodHandle._GetCurrentMethod | parameter | 32 | -| Parameter 0 of System.RuntimeTypeHandle.GetNextIntroducedMethod | parameter | 32 | -| Parameter 0 of System.SpanHelpers.BinarySearch | parameter | 32 | -| Parameter 0 of System.SpanHelpers.ClearWithReferences | parameter | 32 | -| Parameter 0 of System.SpanHelpers.ClearWithoutReferences | parameter | 32 | -| Parameter 0 of System.SpanHelpers.CommonPrefixLength | parameter | 32 | -| Parameter 0 of System.SpanHelpers.ComputeFirstIndex | parameter | 32 | -| Parameter 0 of System.SpanHelpers.Contains | parameter | 32 | -| Parameter 0 of System.SpanHelpers.ContainsValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.Count | parameter | 32 | -| Parameter 0 of System.SpanHelpers.CountValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.Fill | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOf | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAny | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAnyChar | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAnyExcept | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAnyExceptInRange | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAnyExceptInRangeUnsignedNumber | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAnyExceptValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAnyInRange | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAnyInRangeUnsignedNumber | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfAnyValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfChar | parameter | 32 | -| Parameter 0 of System.SpanHelpers.IndexOfValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOf | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfAny | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfAnyExcept | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfAnyExceptInRange | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfAnyExceptInRangeUnsignedNumber | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfAnyExceptValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfAnyInRange | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfAnyInRangeUnsignedNumber | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfAnyValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LastIndexOfValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LoadNUInt | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LoadUInt | parameter | 32 | -| Parameter 0 of System.SpanHelpers.LoadUShort | parameter | 32 | -| Parameter 0 of System.SpanHelpers.NonPackedContainsValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.NonPackedIndexOfAnyInRangeUnsignedNumber | parameter | 32 | -| Parameter 0 of System.SpanHelpers.NonPackedIndexOfAnyValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.NonPackedIndexOfChar | parameter | 32 | -| Parameter 0 of System.SpanHelpers.NonPackedIndexOfValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.Replace | parameter | 32 | -| Parameter 0 of System.SpanHelpers.ReplaceValueType | parameter | 32 | -| Parameter 0 of System.SpanHelpers.Reverse | parameter | 32 | -| Parameter 0 of System.SpanHelpers.ReverseInner | parameter | 32 | -| Parameter 0 of System.SpanHelpers.SequenceCompareTo | parameter | 32 | -| Parameter 0 of System.SpanHelpers.SequenceEqual | parameter | 32 | -| Parameter 0 of System.StartupHookProvider.ParseStartupHook | parameter | 32 | -| Parameter 0 of System.StubHelpers.CleanupWorkListElement.AddToCleanupList | parameter | 32 | -| Parameter 0 of System.StubHelpers.StubHelpers.AddToCleanupList | parameter | 32 | -| Parameter 0 of System.StubHelpers.StubHelpers.DestroyCleanupList | parameter | 32 | -| Parameter 0 of System.StubHelpers.StubHelpers.KeepAliveViaCleanupList | parameter | 32 | -| Parameter 0 of System.Text.Ascii.Equals | parameter | 32 | -| Parameter 0 of System.Text.Ascii.EqualsIgnoreCase | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader.EqualAndAscii256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader.EqualAndAscii512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader.Load128 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader.Load256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader.Load512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!0>.EqualAndAscii256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!0>.EqualAndAscii512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!0>.Load128 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!0>.Load256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!0>.Load512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!1>.EqualAndAscii256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!1>.EqualAndAscii512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!1>.Load128 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!1>.Load256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<!0,!1>.Load512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<Byte,UInt16>.EqualAndAscii256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<Byte,UInt16>.EqualAndAscii512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<Byte,UInt16>.Load128 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<Byte,UInt16>.Load256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.ILoader<Byte,UInt16>.Load512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.IsValidCore | parameter | 32 | -| Parameter 0 of System.Text.Ascii.NarrowFourUtf16CharsToAsciiAndWriteToBuffer | parameter | 32 | -| Parameter 0 of System.Text.Ascii.NarrowTwoUtf16CharsToAsciiAndWriteToBuffer | parameter | 32 | -| Parameter 0 of System.Text.Ascii.PlainLoader.EqualAndAscii256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.PlainLoader.EqualAndAscii512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.PlainLoader.Load128 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.PlainLoader.Load256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.PlainLoader.Load512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.WidenFourAsciiBytesToUtf16AndWriteToBuffer | parameter | 32 | -| Parameter 0 of System.Text.Ascii.WideningLoader.EqualAndAscii256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.WideningLoader.EqualAndAscii512 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.WideningLoader.Load128 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.WideningLoader.Load256 | parameter | 32 | -| Parameter 0 of System.Text.Ascii.WideningLoader.Load512 | parameter | 32 | -| Parameter 0 of System.Text.Latin1Utility.NarrowFourUtf16CharsToLatin1AndWriteToBuffer | parameter | 32 | -| Parameter 0 of System.Text.Latin1Utility.NarrowTwoUtf16CharsToLatin1AndWriteToBuffer | parameter | 32 | -| Parameter 0 of System.Text.UTF8Encoding.UTF8EncodingSealed.ReadUtf8 | parameter | 32 | -| Parameter 0 of System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.<AppendEnum>g__GrowAndAppendFormatted\|21_0 | parameter | 32 | -| Parameter 0 of System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.<AppendSpanFormattable>g__GrowAndAppendFormatted\|20_0 | parameter | 32 | -| Parameter 0 of System.Text.Unicode.Utf8Utility.IsUtf8ContinuationByte | parameter | 32 | -| Parameter 0 of System.Text.Unicode.Utf8Utility.WriteFirstUtf16CharAsUtf8ThreeByteSequence | parameter | 32 | -| Parameter 0 of System.Text.Unicode.Utf8Utility.WriteTwoUtf16CharsAsTwoUtf8ThreeByteSequences | parameter | 32 | -| Parameter 0 of System.Threading.CancellationTokenSource.Registrations.<EnterLock>g__Contention\|13_0 | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.Add | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.And | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.CompareExchange | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.Decrement | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.Exchange | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.ExchangeAdd | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.Increment | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.Or | parameter | 32 | -| Parameter 0 of System.Threading.Interlocked.Read | parameter | 32 | -| Parameter 0 of System.Threading.LazyInitializer.EnsureInitialized | parameter | 32 | -| Parameter 0 of System.Threading.LazyInitializer.EnsureInitializedCore | parameter | 32 | -| Parameter 0 of System.Threading.LazyInitializer.EnsureLockInitialized | parameter | 32 | -| Parameter 0 of System.Threading.SpinLock.CompareExchange | parameter | 32 | -| Parameter 0 of System.Threading.Tasks.Task.AddExceptionsForCompletedTask | parameter | 32 | -| Parameter 0 of System.Threading.Thread.VolatileRead | parameter | 32 | -| Parameter 0 of System.Threading.Thread.VolatileWrite | parameter | 32 | -| Parameter 0 of System.Threading.ThreadLocal.GrowTable | parameter | 32 | -| Parameter 0 of System.Threading.ThreadLocal<!0>.GrowTable | parameter | 32 | -| Parameter 0 of System.Threading.ThreadPool.GetAvailableThreads | parameter | 32 | -| Parameter 0 of System.Threading.ThreadPool.GetMaxThreads | parameter | 32 | -| Parameter 0 of System.Threading.ThreadPool.GetMinThreads | parameter | 32 | -| Parameter 0 of System.Threading.Volatile.Read | parameter | 32 | -| Parameter 0 of System.Threading.Volatile.Write | parameter | 32 | -| Parameter 0 of System.TimeZoneInfo.AdjustmentRule.AdjustDaylightDeltaToExpectedRange | parameter | 32 | -| Parameter 0 of System.TimeZoneInfo.GetDirectoryEntryFullPath | parameter | 32 | -| Parameter 0 of System.TimeZoneInfo.TZif_GenerateAdjustmentRule | parameter | 32 | -| Parameter 0 of System.TimeZoneInfo.TZif_GenerateAdjustmentRules | parameter | 32 | -| Parameter 0 of System.TimeZoneInfo.TryGetLocalTzFile | parameter | 32 | -| Parameter 0 of delegate* managed<Byte&,Void> | parameter | 32 | -| Parameter 1 of Interop.Globalization.GetJapaneseEraStartDate | parameter | 32 | -| Parameter 1 of Interop.Globalization.GetSortHandle | parameter | 32 | -| Parameter 1 of Interop.Kernel32.GetEnvironmentVariable | parameter | 32 | -| Parameter 1 of Interop.Sys.FStat | parameter | 32 | -| Parameter 1 of Interop.Sys.GetPwUidR | parameter | 32 | -| Parameter 1 of Interop.Sys.GetUnixVersion | parameter | 32 | -| Parameter 1 of Interop.Sys.LStat | parameter | 32 | -| Parameter 1 of Interop.Sys.ReadLink | parameter | 32 | -| Parameter 1 of Interop.Sys.Rename | parameter | 32 | -| Parameter 1 of Interop.Sys.Stat | parameter | 32 | -| Parameter 1 of Interop.Sys.TryGetFileSystemType | parameter | 32 | -| Parameter 1 of Microsoft.Win32.SafeHandles.SafeFileHandle.TryGetCachedLength | parameter | 32 | -| Parameter 1 of System.AppContext.TryGetSwitch | parameter | 32 | -| Parameter 1 of System.Boolean.<TryParse>g__TryParseUncommon\|20_0 | parameter | 32 | -| Parameter 1 of System.Boolean.TryParse | parameter | 32 | -| Parameter 1 of System.Buffer.BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 1 of System.Buffer.Memmove | parameter | 32 | -| Parameter 1 of System.Buffer._BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 1 of System.Buffer._Memmove | parameter | 32 | -| Parameter 1 of System.Buffer.__BulkMoveWithWriteBarrier | parameter | 32 | -| Parameter 1 of System.Buffers.AnyByteSearchValues.IndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.AnyByteSearchValues.IndexOfAnyScalar | parameter | 32 | -| Parameter 1 of System.Buffers.AnyByteSearchValues.LastIndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.AnyByteSearchValues.LastIndexOfAnyScalar | parameter | 32 | -| Parameter 1 of System.Buffers.AsciiByteSearchValues.IndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.AsciiByteSearchValues.IndexOfAnyScalar | parameter | 32 | -| Parameter 1 of System.Buffers.AsciiByteSearchValues.LastIndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.AsciiByteSearchValues.LastIndexOfAnyScalar | parameter | 32 | -| Parameter 1 of System.Buffers.AsciiCharSearchValues.IndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.AsciiCharSearchValues.IndexOfAnyScalar | parameter | 32 | -| Parameter 1 of System.Buffers.AsciiCharSearchValues.LastIndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.AsciiCharSearchValues.LastIndexOfAnyScalar | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadDoubleBigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadDoubleLittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadHalfBigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadHalfLittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt16BigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt16LittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt32BigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt32LittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt64BigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt64LittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt128BigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadInt128LittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadIntPtrBigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadIntPtrLittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadSingleBigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadSingleLittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt16BigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt16LittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt32BigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt32LittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt64BigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt64LittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt128BigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUInt128LittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUIntPtrBigEndian | parameter | 32 | -| Parameter 1 of System.Buffers.Binary.BinaryPrimitives.TryReadUIntPtrLittleEndian | parameter | 32 | -| Parameter 1 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeBitmap | parameter | 32 | -| Parameter 1 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeBitmap256 | parameter | 32 | -| Parameter 1 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeFirstIndex | parameter | 32 | -| Parameter 1 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeFirstIndexOverlapped | parameter | 32 | -| Parameter 1 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeLastIndex | parameter | 32 | -| Parameter 1 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeLastIndexOverlapped | parameter | 32 | -| Parameter 1 of System.Buffers.Latin1CharSearchValues.IndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.Latin1CharSearchValues.LastIndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.MemoryManager.TryGetArray | parameter | 32 | -| Parameter 1 of System.Buffers.MemoryManager<!0>.TryGetArray | parameter | 32 | -| Parameter 1 of System.Buffers.ProbabilisticMap.IndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.ProbabilisticMap.IndexOfAnyVectorized | parameter | 32 | -| Parameter 1 of System.Buffers.ProbabilisticMap.LastIndexOfAny | parameter | 32 | -| Parameter 1 of System.Buffers.SearchValues.TryGetSingleRange | parameter | 32 | -| Parameter 1 of System.Buffers.SharedArrayPoolStatics.TryGetInt32EnvironmentVariable | parameter | 32 | -| Parameter 1 of System.Buffers.StandardFormat.ParseHelper | parameter | 32 | -| Parameter 1 of System.Buffers.StandardFormat.TryParse | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.Avx2Decode | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.Avx2Encode | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.Decode | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.DecodeFromUtf8InPlace | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.DecodeWithWhiteSpaceFromUtf8InPlace | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.Encode | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.EncodeAndPadOne | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.EncodeAndPadTwo | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.IsValid | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.Vector128Decode | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Base64.Vector128Encode | parameter | 32 | -| Parameter 1 of System.Buffers.Text.FormattingHelpers.CountDecimalTrailingZeros | parameter | 32 | -| Parameter 1 of System.Buffers.Text.ParserHelpers.TryParseThrowFormatException | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParse | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseByteD | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseByteN | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseByteX | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseDateTimeG | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetDefault | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetO | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseGuidCore | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseGuidN | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt16D | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt16N | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt32D | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt32N | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt64D | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseInt64N | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseNormalAsFloatingPoint | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseNumber | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseSByteD | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseSByteN | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanBigG | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanC | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanFraction | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanLittleG | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt16D | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt16N | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt16X | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt32D | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt32N | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt32X | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt64D | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt64N | parameter | 32 | -| Parameter 1 of System.Buffers.Text.Utf8Parser.TryParseUInt64X | parameter | 32 | -| Parameter 1 of System.ByReference..ctor | parameter | 32 | -| Parameter 1 of System.Byte.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Byte.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Byte.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Byte.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Byte.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Byte.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Byte.TryParse | parameter | 32 | -| Parameter 1 of System.Char.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Char.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Char.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Char.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Char.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Char.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Char.TryParse | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.SnapForObservation | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.TryDequeueSlow | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.TryPeek | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue.TryTake | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue<!0>.SnapForObservation | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue<!0>.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue<!0>.TryDequeueSlow | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue<!0>.TryPeek | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueue<Object>.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueueSegment.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueueSegment.TryPeek | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueueSegment<!0>.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.ConcurrentQueueSegment<!0>.TryPeek | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.IProducerConsumerCollection.TryTake | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.IProducerConsumerCollection<!0>.TryTake | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.IProducerConsumerQueue.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.IProducerConsumerQueue<!0>.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.IProducerConsumerQueue<Task>.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.MultiProducerMultiConsumerQueue.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.SingleProducerSingleConsumerQueue.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.SingleProducerSingleConsumerQueue.TryPeek | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.SingleProducerSingleConsumerQueue<!0>.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Concurrent.SingleProducerSingleConsumerQueue<!0>.TryPeek | parameter | 32 | -| Parameter 1 of System.Collections.DictionaryEntry.Deconstruct | parameter | 32 | -| Parameter 1 of System.Collections.Generic.EnumerableHelpers.ToArray | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper.GreaterThan | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper.LessThan | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper.Swap | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper.SwapIfGreater | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper<!0,!1>.GreaterThan | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper<!0,!1>.LessThan | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper<!0>.GreaterThan | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper<!0>.LessThan | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper<!0>.Swap | parameter | 32 | -| Parameter 1 of System.Collections.Generic.GenericArraySortHelper<!0>.SwapIfGreater | parameter | 32 | -| Parameter 1 of System.Collections.Generic.KeyValuePair.Deconstruct | parameter | 32 | -| Parameter 1 of System.Collections.Generic.KeyValuePair<String,ResourceSet>.Deconstruct | parameter | 32 | -| Parameter 1 of System.Collections.Generic.Queue.MoveNext | parameter | 32 | -| Parameter 1 of System.Collections.Generic.Queue.TryDequeue | parameter | 32 | -| Parameter 1 of System.Collections.Generic.Queue.TryPeek | parameter | 32 | -| Parameter 1 of System.Collections.Generic.Queue<!0>.MoveNext | parameter | 32 | -| Parameter 1 of System.Collections.Generic.Stack<ConsoleKeyInfo>.TryPop | parameter | 32 | -| Parameter 1 of System.ComAwareWeakReference.ObjectToComWeakRef | parameter | 32 | -| Parameter 1 of System.ConsolePal.<TryGetCursorPosition>g__BufferUntil\|82_1 | parameter | 32 | -| Parameter 1 of System.ConsolePal.GetWindowSize | parameter | 32 | -| Parameter 1 of System.ConsolePal.TryGetCachedCursorPosition | parameter | 32 | -| Parameter 1 of System.ConsolePal.TryGetCursorPosition | parameter | 32 | -| Parameter 1 of System.Convert.Decode | parameter | 32 | -| Parameter 1 of System.CultureAwareComparer.IsWellKnownCultureAwareComparerCore | parameter | 32 | -| Parameter 1 of System.DateOnly.Deconstruct | parameter | 32 | -| Parameter 1 of System.DateOnly.TryParse | parameter | 32 | -| Parameter 1 of System.DateTime.Deconstruct | parameter | 32 | -| Parameter 1 of System.DateTime.GetDate | parameter | 32 | -| Parameter 1 of System.DateTime.GetTime | parameter | 32 | -| Parameter 1 of System.DateTime.GetTimePrecise | parameter | 32 | -| Parameter 1 of System.DateTime.TryParse | parameter | 32 | -| Parameter 1 of System.DateTimeFormat.PrepareFormatU | parameter | 32 | -| Parameter 1 of System.DateTimeOffset.Deconstruct | parameter | 32 | -| Parameter 1 of System.DateTimeOffset.TryParse | parameter | 32 | -| Parameter 1 of System.DateTimeParse.AdjustTimeMark | parameter | 32 | -| Parameter 1 of System.DateTimeParse.CheckDefaultDateTime | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ExpandPredefinedFormat | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDateOfDSN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDateOfNDS | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDateOfNNDS | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDateTimeNow | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfMN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfMNN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfNM | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfNN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfNNN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfNNY | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfYM | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfYMN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfYN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDayOfYNN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetDefaultYear | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetHebrewDayOfNM | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetMonthDayOrder | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetTimeOfN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetTimeOfNN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetTimeOfNNN | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetYearMonthDayOrder | parameter | 32 | -| Parameter 1 of System.DateTimeParse.GetYearMonthOrder | parameter | 32 | -| Parameter 1 of System.DateTimeParse.HandleTimeZone | parameter | 32 | -| Parameter 1 of System.DateTimeParse.Lex | parameter | 32 | -| Parameter 1 of System.DateTimeParse.MatchHebrewDigits | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ParseByFormat | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ParseFraction | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ParseISO8601 | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ParseSign | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ParseTimeZone | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ProcessDateTimeSuffix | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ProcessHebrewTerminalState | parameter | 32 | -| Parameter 1 of System.DateTimeParse.ProcessTerminalState | parameter | 32 | -| Parameter 1 of System.DateTimeParse.TryParseFormatO | parameter | 32 | -| Parameter 1 of System.DateTimeParse.TryParseFormatR | parameter | 32 | -| Parameter 1 of System.Decimal..ctor | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.DecAddSub | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.Div96ByConst | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.Div128By96 | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.Unscale | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.VarDecCmp | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.VarDecCmpSub | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.VarDecDiv | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.VarDecFromR4 | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.VarDecFromR8 | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.VarDecMod | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.VarDecModFull | parameter | 32 | -| Parameter 1 of System.Decimal.DecCalc.VarDecMul | parameter | 32 | -| Parameter 1 of System.Decimal.TryConvertFrom | parameter | 32 | -| Parameter 1 of System.Decimal.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Decimal.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Decimal.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Decimal.TryConvertTo | parameter | 32 | -| Parameter 1 of System.Decimal.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Decimal.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Decimal.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Decimal.TryParse | parameter | 32 | -| Parameter 1 of System.DefaultBinder.ReorderArgumentArray | parameter | 32 | -| Parameter 1 of System.Diagnostics.Debug.Assert | parameter | 32 | -| Parameter 1 of System.Diagnostics.Debug.WriteIf | parameter | 32 | -| Parameter 1 of System.Diagnostics.Debug.WriteLineIf | parameter | 32 | -| Parameter 1 of System.Diagnostics.StackTrace.TryResolveStateMachineMethod | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.ActivityTracker.ActivityInfo.CreateActivityPathGuid | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventParameterInfo.GetMetadataLength | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventParameterInfo.GetMetadataLengthForTypeV2 | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventParameterInfo.GetMetadataLengthV2 | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventParameterInfo.GetTypeInfoFromType | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventPipeEventProvider.EventActivityIdControl | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventPipeEventProvider.EventWriteTransfer | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventPipeInternal.EventActivityIdControl | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventPipeInternal.EventPipeProviderConfigurationNative.MarshalToNative | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventProvider.EncodeObject | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventProvider.WriteEvent | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventProvider.WriteEventRaw | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventProviderImpl.EventWriteTransfer | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.EventSource.SetCurrentThreadActivityId | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.FieldMetadata.Encode | parameter | 32 | -| Parameter 1 of System.Diagnostics.Tracing.Statics.EncodeTags | parameter | 32 | -| Parameter 1 of System.Double.TryConvertFrom | parameter | 32 | -| Parameter 1 of System.Double.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Double.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Double.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Double.TryConvertTo | parameter | 32 | -| Parameter 1 of System.Double.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Double.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Double.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Double.TryParse | parameter | 32 | -| Parameter 1 of System.Enum.<ToString>g__HandleRareTypes\|55_0 | parameter | 32 | -| Parameter 1 of System.Enum.ToString | parameter | 32 | -| Parameter 1 of System.Enum.ToStringInlined | parameter | 32 | -| Parameter 1 of System.Enum.TryParse | parameter | 32 | -| Parameter 1 of System.Exception.<ToString>g__Write\|60_0 | parameter | 32 | -| Parameter 1 of System.Exception.GetHelpContext | parameter | 32 | -| Parameter 1 of System.Exception.GetStackTracesDeepCopy | parameter | 32 | -| Parameter 1 of System.Exception.RestoreDispatchState | parameter | 32 | -| Parameter 1 of System.Globalization.CalendarData.NormalizeDayOfWeek | parameter | 32 | -| Parameter 1 of System.Globalization.CultureData.GetLocaleName | parameter | 32 | -| Parameter 1 of System.Globalization.CultureData.IsValidCultureName | parameter | 32 | -| Parameter 1 of System.Globalization.CultureData.NormalizeCultureName | parameter | 32 | -| Parameter 1 of System.Globalization.DateTimeFormatInfo.TryParseHebrewNumber | parameter | 32 | -| Parameter 1 of System.Globalization.DateTimeFormatInfo.YearMonthAdjustment | parameter | 32 | -| Parameter 1 of System.Globalization.HebrewNumber.ParseByChar | parameter | 32 | -| Parameter 1 of System.Globalization.JapaneseCalendar.GetJapaneseEraStartDate | parameter | 32 | -| Parameter 1 of System.Globalization.Ordinal.EqualsIgnoreCase | parameter | 32 | -| Parameter 1 of System.Globalization.Ordinal.EqualsIgnoreCase_Scalar | parameter | 32 | -| Parameter 1 of System.Globalization.Ordinal.EqualsIgnoreCase_Vector128 | parameter | 32 | -| Parameter 1 of System.Globalization.TextInfo.AddNonLetter | parameter | 32 | -| Parameter 1 of System.Globalization.TextInfo.AddTitlecaseLetter | parameter | 32 | -| Parameter 1 of System.Globalization.TimeSpanParse.ParseExactLiteral | parameter | 32 | -| Parameter 1 of System.Globalization.TimeSpanParse.StringParser.ParseTime | parameter | 32 | -| Parameter 1 of System.Globalization.TimeSpanParse.TimeSpanRawInfo.ProcessToken | parameter | 32 | -| Parameter 1 of System.Globalization.TimeSpanParse.TryParseTimeSpanConstant | parameter | 32 | -| Parameter 1 of System.Globalization.UmAlQuraCalendar.ConvertGregorianToHijri | parameter | 32 | -| Parameter 1 of System.Guid.<TryParseExactD>g__TryCompatParsing\|33_0 | parameter | 32 | -| Parameter 1 of System.Guid.EqualsCore | parameter | 32 | -| Parameter 1 of System.Guid.TryParse | parameter | 32 | -| Parameter 1 of System.Guid.TryParseExactB | parameter | 32 | -| Parameter 1 of System.Guid.TryParseExactD | parameter | 32 | -| Parameter 1 of System.Guid.TryParseExactN | parameter | 32 | -| Parameter 1 of System.Guid.TryParseExactP | parameter | 32 | -| Parameter 1 of System.Guid.TryParseExactX | parameter | 32 | -| Parameter 1 of System.Guid.TryParseGuid | parameter | 32 | -| Parameter 1 of System.Guid.TryParseHex | parameter | 32 | -| Parameter 1 of System.Half.TryConvertFrom | parameter | 32 | -| Parameter 1 of System.Half.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Half.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Half.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Half.TryConvertTo | parameter | 32 | -| Parameter 1 of System.Half.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Half.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Half.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Half.TryParse | parameter | 32 | -| Parameter 1 of System.HashCode.Initialize | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.DelegateEnumerator.ShouldIncludeEntry | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.DelegateEnumerator.ShouldRecurseIntoEntry | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.DelegateEnumerator.TransformEntry | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindPredicate.BeginInvoke | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindPredicate.EndInvoke | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindPredicate.Invoke | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindTransform.BeginInvoke | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindTransform.EndInvoke | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable.FindTransform.Invoke | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable<!0>.FindPredicate.Invoke | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerable<!0>.FindTransform.Invoke | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.<DirectoryInfos>b__6_0 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.<FileInfos>b__5_0 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.<FileSystemInfos>b__7_0 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.<UserDirectories>b__3_0 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.<UserEntries>b__4_0 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c.<UserFiles>b__2_0 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass2_0.<UserFiles>b__1 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass3_0.<UserDirectories>b__1 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass4_0.<UserEntries>b__1 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass5_0.<FileInfos>b__1 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass6_0.<DirectoryInfos>b__1 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.<>c__DisplayClass7_0.<FileSystemInfos>b__1 | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerableFactory.NormalizeInputs | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator.ShouldIncludeEntry | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator.ShouldRecurseIntoEntry | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator.TransformEntry | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator<!0>.ShouldIncludeEntry | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator<!0>.ShouldRecurseIntoEntry | parameter | 32 | -| Parameter 1 of System.IO.Enumeration.FileSystemEnumerator<!0>.TransformEntry | parameter | 32 | -| Parameter 1 of System.IO.FileSystem.<>c.<RemoveDirectoryRecursive>b__20_0 | parameter | 32 | -| Parameter 1 of System.IO.FileSystem.DirectoryExists | parameter | 32 | -| Parameter 1 of System.IO.FileSystem.FileExists | parameter | 32 | -| Parameter 1 of System.IO.FileSystemInfo.Init | parameter | 32 | -| Parameter 1 of System.IO.KeyParser.<ParseFromSingleChar>g__ControlAndDigitPressed\|8_2 | parameter | 32 | -| Parameter 1 of System.IO.KeyParser.<ParseFromSingleChar>g__UppercaseCharacter\|8_0 | parameter | 32 | -| Parameter 1 of System.IO.MemoryStream.TryGetBuffer | parameter | 32 | -| Parameter 1 of System.IO.Path.ExistsCore | parameter | 32 | -| Parameter 1 of System.IO.StdInReader.ReadKey | parameter | 32 | -| Parameter 1 of System.IO.SyncTextReader.ReadKey | parameter | 32 | -| Parameter 1 of System.IO.UnmanagedMemoryStreamWrapper.TryGetBuffer | parameter | 32 | -| Parameter 1 of System.Int16.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Int16.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Int16.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Int16.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Int16.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Int16.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Int16.TryParse | parameter | 32 | -| Parameter 1 of System.Int32.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Int32.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Int32.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Int32.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Int32.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Int32.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Int32.TryParse | parameter | 32 | -| Parameter 1 of System.Int64.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Int64.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Int64.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Int64.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Int64.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Int64.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Int64.TryParse | parameter | 32 | -| Parameter 1 of System.Int128.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Int128.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Int128.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Int128.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Int128.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Int128.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Int128.TryParse | parameter | 32 | -| Parameter 1 of System.IntPtr.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.IntPtr.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.IntPtr.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.IntPtr.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.IntPtr.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.IntPtr.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.IntPtr.TryParse | parameter | 32 | -| Parameter 1 of System.LocalAppContextSwitches.GetCachedSwitchValue | parameter | 32 | -| Parameter 1 of System.LocalAppContextSwitches.GetCachedSwitchValueInternal | parameter | 32 | -| Parameter 1 of System.Marvin.Block | parameter | 32 | -| Parameter 1 of System.MemoryExtensions.SliceLongerSpanToMatchShorterLength | parameter | 32 | -| Parameter 1 of System.MemoryExtensions.TryWrite | parameter | 32 | -| Parameter 1 of System.ModuleHandle.GetPEKind | parameter | 32 | -| Parameter 1 of System.Net.WebUtility.ConvertSmpToUtf16 | parameter | 32 | -| Parameter 1 of System.Net.WebUtility.GetNextUnicodeScalarValueFromUtf16Surrogate | parameter | 32 | -| Parameter 1 of System.Net.WebUtility.HtmlDecode | parameter | 32 | -| Parameter 1 of System.Net.WebUtility.HtmlEncode | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.Add | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.Compare | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.DivRem | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.DivRem32 | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.HeuristicDivide | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.Multiply | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.Pow2 | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.Pow10 | parameter | 32 | -| Parameter 1 of System.Number.BigInteger.SetValue | parameter | 32 | -| Parameter 1 of System.Number.DecimalToNumber | parameter | 32 | -| Parameter 1 of System.Number.DiyFp.CreateAndGetBoundaries | parameter | 32 | -| Parameter 1 of System.Number.DiyFp.Multiply | parameter | 32 | -| Parameter 1 of System.Number.DiyFp.Subtract | parameter | 32 | -| Parameter 1 of System.Number.ExtractFractionAndBiasedExponent | parameter | 32 | -| Parameter 1 of System.Number.FormatCurrency | parameter | 32 | -| Parameter 1 of System.Number.FormatFixed | parameter | 32 | -| Parameter 1 of System.Number.FormatGeneral | parameter | 32 | -| Parameter 1 of System.Number.FormatNumber | parameter | 32 | -| Parameter 1 of System.Number.FormatPercent | parameter | 32 | -| Parameter 1 of System.Number.FormatScientific | parameter | 32 | -| Parameter 1 of System.Number.GetFloatingPointMaxDigitsAndPrecision | parameter | 32 | -| Parameter 1 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | -| Parameter 1 of System.Number.Grisu3.TryRunShortest | parameter | 32 | -| Parameter 1 of System.Number.Int32ToNumber | parameter | 32 | -| Parameter 1 of System.Number.Int64ToNumber | parameter | 32 | -| Parameter 1 of System.Number.Int128ToNumber | parameter | 32 | -| Parameter 1 of System.Number.NumberToString | parameter | 32 | -| Parameter 1 of System.Number.NumberToStringFormat | parameter | 32 | -| Parameter 1 of System.Number.ParseFormatSpecifier | parameter | 32 | -| Parameter 1 of System.Number.TryNumberBufferToBinaryInteger | parameter | 32 | -| Parameter 1 of System.Number.TryNumberToDecimal | parameter | 32 | -| Parameter 1 of System.Number.UInt32ToNumber | parameter | 32 | -| Parameter 1 of System.Number.UInt64ToNumber | parameter | 32 | -| Parameter 1 of System.Number.UInt128ToNumber | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Byte>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Byte>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Byte>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Byte>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Byte>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Byte>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Char>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Char>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Char>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Char>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Char>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Char>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Decimal>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Decimal>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Decimal>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Decimal>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Decimal>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Decimal>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Double>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Double>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Double>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Double>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Double>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Double>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Half>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Half>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Half>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Half>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Half>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Half>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int16>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int16>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int16>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int16>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int16>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int16>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int32>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int32>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int32>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int32>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int32>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int32>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int64>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int64>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int64>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int64>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int64>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int64>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int128>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int128>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int128>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int128>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int128>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Int128>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<IntPtr>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<IntPtr>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<IntPtr>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<IntPtr>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<IntPtr>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<IntPtr>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<NFloat>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<NFloat>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<NFloat>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<NFloat>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<NFloat>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<NFloat>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<SByte>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<SByte>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<SByte>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<SByte>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<SByte>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<SByte>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Single>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Single>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Single>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Single>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Single>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<Single>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt16>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt16>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt16>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt16>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt16>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt16>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt32>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt32>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt32>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt32>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt32>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt32>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt64>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt64>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt64>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt64>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt64>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt64>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt128>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt128>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt128>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt128>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt128>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UInt128>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UIntPtr>.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UIntPtr>.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UIntPtr>.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UIntPtr>.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UIntPtr>.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Numerics.INumberBase<UIntPtr>.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Impl.Equals | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Impl.Invert | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Impl.Lerp | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Impl.op_Addition | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Impl.op_Equality | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Impl.op_Inequality | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Impl.op_Multiply | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Impl.op_Subtraction | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix3x2.Invert | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Decompose | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.<Invert>g__SoftwareFallback\|64_2 | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.<Invert>g__SseImpl\|64_0 | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateBillboard | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateConstrainedBillboard | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateLookTo | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateLookToLeftHanded | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateRotationX | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateRotationY | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateRotationZ | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateScale | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateShadow | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.CreateWorld | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.Decompose | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.Equals | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.Init | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.Invert | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.Lerp | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.Transform | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.op_Addition | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.op_Equality | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.op_Inequality | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.op_Multiply | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Impl.op_Subtraction | parameter | 32 | -| Parameter 1 of System.Numerics.Matrix4x4.Invert | parameter | 32 | -| Parameter 1 of System.Numerics.Vector2.Transform | parameter | 32 | -| Parameter 1 of System.Numerics.Vector2.TransformNormal | parameter | 32 | -| Parameter 1 of System.Numerics.Vector3.TransformNormal | parameter | 32 | -| Parameter 1 of System.Numerics.Vector4.Transform | parameter | 32 | -| Parameter 1 of System.Numerics.Vector.StoreUnsafe | parameter | 32 | -| Parameter 1 of System.Numerics.Vector.Widen | parameter | 32 | -| Parameter 1 of System.OrdinalComparer.IsWellKnownOrdinalComparerCore | parameter | 32 | -| Parameter 1 of System.PackedSpanHelpers.ComputeFirstIndex | parameter | 32 | -| Parameter 1 of System.PackedSpanHelpers.ComputeFirstIndexOverlapped | parameter | 32 | -| Parameter 1 of System.ParseNumbers.EatWhiteSpace | parameter | 32 | -| Parameter 1 of System.ReadOnlyMemory.GetObjectStartLength | parameter | 32 | -| Parameter 1 of System.ReadOnlyMemory<!0>.GetObjectStartLength | parameter | 32 | -| Parameter 1 of System.ReadOnlyMemory<Char>.GetObjectStartLength | parameter | 32 | -| Parameter 1 of System.ReadOnlySpan..ctor | parameter | 32 | -| Parameter 1 of System.ReadOnlySpan<!0>..ctor | parameter | 32 | -| Parameter 1 of System.ReadOnlySpan<Byte>..ctor | parameter | 32 | -| Parameter 1 of System.ReadOnlySpan<Char>..ctor | parameter | 32 | -| Parameter 1 of System.ReadOnlySpan<Int32>..ctor | parameter | 32 | -| Parameter 1 of System.ReadOnlySpan<Object>..ctor | parameter | 32 | -| Parameter 1 of System.Reflection.AssemblyNameParser.GetNextToken | parameter | 32 | -| Parameter 1 of System.Reflection.AssemblyNameParser.RecordNewSeenOrThrow | parameter | 32 | -| Parameter 1 of System.Reflection.Binder.ReorderArgumentArray | parameter | 32 | -| Parameter 1 of System.Reflection.ConstructorInvoker.CheckArgument | parameter | 32 | -| Parameter 1 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | -| Parameter 1 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | -| Parameter 1 of System.Reflection.CustomAttribute.ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 1 of System.Reflection.CustomAttributeEncodedArgument.ParseAttributeArguments | parameter | 32 | -| Parameter 1 of System.Reflection.Emit.DynamicResolver.GetCodeInfo | parameter | 32 | -| Parameter 1 of System.Reflection.Emit.DynamicResolver.GetJitContext | parameter | 32 | -| Parameter 1 of System.Reflection.Emit.RuntimeMethodBuilder.GetLocalSignature | parameter | 32 | -| Parameter 1 of System.Reflection.Emit.RuntimeModuleBuilder.GetPEKind | parameter | 32 | -| Parameter 1 of System.Reflection.Emit.SignatureHelper.InternalGetSignature | parameter | 32 | -| Parameter 1 of System.Reflection.InvokeUtils.TryConvertPointer | parameter | 32 | -| Parameter 1 of System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata | parameter | 32 | -| Parameter 1 of System.Reflection.Metadata.AssemblyExtensions.TryGetRawMetadata | parameter | 32 | -| Parameter 1 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 1 of System.Reflection.MetadataImport.GetScopeProps | parameter | 32 | -| Parameter 1 of System.Reflection.MetadataImport._GetScopeProps | parameter | 32 | -| Parameter 1 of System.Reflection.MethodBaseInvoker.TryByRefFastPath | parameter | 32 | -| Parameter 1 of System.Reflection.MethodInvoker.CheckArgument | parameter | 32 | -| Parameter 1 of System.Reflection.MethodInvokerCommon.DetermineStrategy_Obj4Args | parameter | 32 | -| Parameter 1 of System.Reflection.MethodInvokerCommon.DetermineStrategy_ObjSpanArgs | parameter | 32 | -| Parameter 1 of System.Reflection.MethodInvokerCommon.DetermineStrategy_RefArgs | parameter | 32 | -| Parameter 1 of System.Reflection.MethodInvokerCommon.Initialize | parameter | 32 | -| Parameter 1 of System.Reflection.Module.GetPEKind | parameter | 32 | -| Parameter 1 of System.Reflection.RuntimeAssembly.GetVersion | parameter | 32 | -| Parameter 1 of System.Reflection.RuntimeAssembly.InternalLoad | parameter | 32 | -| Parameter 1 of System.Reflection.RuntimeCustomAttributeData.GetCombinedList | parameter | 32 | -| Parameter 1 of System.Reflection.RuntimeModule.GetPEKind | parameter | 32 | -| Parameter 1 of System.Reflection.TypeNameParser.AssemblyQualifiedTypeName.ResolveType | parameter | 32 | -| Parameter 1 of System.Reflection.TypeNameParser.GenericTypeName.ResolveType | parameter | 32 | -| Parameter 1 of System.Reflection.TypeNameParser.ModifierTypeName.ResolveType | parameter | 32 | -| Parameter 1 of System.Reflection.TypeNameParser.NamespaceTypeName.ResolveType | parameter | 32 | -| Parameter 1 of System.Reflection.TypeNameParser.NestedNamespaceTypeName.ResolveType | parameter | 32 | -| Parameter 1 of System.Reflection.TypeNameParser.TypeName.ResolveType | parameter | 32 | -| Parameter 1 of System.Resolver.GetCodeInfo | parameter | 32 | -| Parameter 1 of System.Resolver.GetJitContext | parameter | 32 | -| Parameter 1 of System.Resources.ManifestBasedResourceGroveler.GetNeutralResourcesLanguage | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.GetStateMachineBox | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetNotificationForWaitCompletion | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.GetStateMachineBox | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.SetException | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.SetNotificationForWaitCompletion | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Boolean>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Boolean>.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Byte[]>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Byte[]>.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<String>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<String>.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<String[]>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<String[]>.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<VoidTaskResult>.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<VoidTaskResult>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<VoidTaskResult>.SetException | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<VoidTaskResult>.SetNotificationForWaitCompletion | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder<Int32>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder<Int32>.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable..ctor | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter..ctor | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.GetStateMachineBox | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.SetException | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<!0>.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<!0>.GetStateMachineBox | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<!0>.SetException | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<Int32>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<Int32>.Start | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<VoidTaskResult>.AwaitOnCompleted | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<VoidTaskResult>.SetException | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.QCallAssembly..ctor | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.QCallModule..ctor | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.QCallTypeHandle..ctor | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.RuntimeHelpers.Box | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.StackCrawlMarkHandle..ctor | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.StringHandleOnStack..ctor | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.Unsafe.AreSame | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.Unsafe.ByteOffset | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.Unsafe.Copy | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.Unsafe.CopyBlock | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.Unsafe.IsAddressLessThan | parameter | 32 | -| Parameter 1 of System.Runtime.CompilerServices.ValueTaskAwaiter..ctor | parameter | 32 | -| Parameter 1 of System.Runtime.DependentHandle.InternalGetTargetAndDependent | parameter | 32 | -| Parameter 1 of System.Runtime.DependentHandle.UnsafeGetTargetAndDependent | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IBindCtx.EnumObjectParam | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IBindCtx.GetBindOptions | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IBindCtx.GetRunningObjectTable | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IBindCtx.SetBindOptions | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPoint.EnumConnections | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPoint.GetConnectionInterface | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPoint.GetConnectionPointContainer | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPointContainer.EnumConnectionPoints | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IConnectionPointContainer.FindConnectionPoint | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IEnumConnectionPoints.Clone | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IEnumConnections.Clone | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IEnumMoniker.Clone | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IEnumString.Clone | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.GetClassID | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.GetSizeMax | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.Hash | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.Inverse | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IMoniker.IsSystemMoniker | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IPersistFile.GetClassID | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IPersistFile.GetCurFile | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IRunningObjectTable.EnumRunning | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IStream.Clone | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.IStream.Stat | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetContainingTypeLib | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetCustData | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetTypeAttr | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetTypeComp | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetTypeFlags | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetTypeKind | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetContainingTypeLib | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetTypeAttr | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetTypeComp | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetCustData | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetLibAttr | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeComp | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeInfoOfGuid | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetLibAttr | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeComp | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeInfoOfGuid | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComWrappers.CallICustomQueryInterface | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImpl | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComWrappers.TryGetComInstance | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComWrappers.TryGetComInstanceInternal | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ComWrappers.TryGetObject | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ICustomQueryInterface.GetInterface | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.Marshal.QueryInterface | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.Marshalling.ArrayMarshaller.AllocateContainerForUnmanagedElements | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller.AllocateContainerForUnmanagedElements | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller.UnmanagedToManagedOut.AllocateContainerForUnmanagedElements | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.Marshalling.SpanMarshaller.AllocateContainerForUnmanagedElements | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryGetArray | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryGetMemoryManager | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryGetString | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryRead | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.TryWrite | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.MemoryMarshal.Write | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryConvertFrom | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryConvertTo | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NFloat.TryParse | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.NativeLibrary.TryLoad | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandle | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler.EndInvoke | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.SafeBuffer.AcquirePointer | parameter | 32 | -| Parameter 1 of System.Runtime.InteropServices.SafeHandle.DangerousAddRef | parameter | 32 | -| Parameter 1 of System.Runtime.Intrinsics.Vector64.StoreUnsafe | parameter | 32 | -| Parameter 1 of System.Runtime.Intrinsics.Vector128.StoreLowerUnsafe | parameter | 32 | -| Parameter 1 of System.Runtime.Intrinsics.Vector128.StoreUnsafe | parameter | 32 | -| Parameter 1 of System.Runtime.Intrinsics.Vector256.StoreUnsafe | parameter | 32 | -| Parameter 1 of System.Runtime.Intrinsics.Vector512.StoreUnsafe | parameter | 32 | -| Parameter 1 of System.Runtime.Loader.AssemblyLoadContext.StartAssemblyLoad | parameter | 32 | -| Parameter 1 of System.Runtime.MemoryFailPoint.CheckForAvailableMemory | parameter | 32 | -| Parameter 1 of System.Runtime.Serialization.SerializationInfo.ThrowIfDeserializationInProgress | parameter | 32 | -| Parameter 1 of System.RuntimeType.CheckValue | parameter | 32 | -| Parameter 1 of System.RuntimeType.FilterHelper | parameter | 32 | -| Parameter 1 of System.RuntimeType.GetGUID | parameter | 32 | -| Parameter 1 of System.RuntimeType.RuntimeTypeCache.ConstructName | parameter | 32 | -| Parameter 1 of System.RuntimeType.RuntimeTypeCache.GetMemberCache | parameter | 32 | -| Parameter 1 of System.RuntimeType.RuntimeTypeCache.GetMemberList | parameter | 32 | -| Parameter 1 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.AddSpecialInterface | parameter | 32 | -| Parameter 1 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.Insert | parameter | 32 | -| Parameter 1 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache<!0>.AddSpecialInterface | parameter | 32 | -| Parameter 1 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache<!0>.Insert | parameter | 32 | -| Parameter 1 of System.RuntimeType.SplitName | parameter | 32 | -| Parameter 1 of System.RuntimeType.TryChangeType | parameter | 32 | -| Parameter 1 of System.RuntimeType.TryChangeTypeSpecial | parameter | 32 | -| Parameter 1 of System.RuntimeType.TryGetByRefElementType | parameter | 32 | -| Parameter 1 of System.RuntimeTypeHandle.CopyRuntimeTypeHandles | parameter | 32 | -| Parameter 1 of System.RuntimeTypeHandle.GetActivationInfo | parameter | 32 | -| Parameter 1 of System.SByte.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.SByte.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.SByte.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.SByte.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.SByte.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.SByte.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.SByte.TryParse | parameter | 32 | -| Parameter 1 of System.Security.SecureString.AcquireSpan | parameter | 32 | -| Parameter 1 of System.Single.TryConvertFrom | parameter | 32 | -| Parameter 1 of System.Single.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.Single.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.Single.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.Single.TryConvertTo | parameter | 32 | -| Parameter 1 of System.Single.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.Single.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.Single.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.Single.TryParse | parameter | 32 | -| Parameter 1 of System.Span..ctor | parameter | 32 | -| Parameter 1 of System.Span<!0>..ctor | parameter | 32 | -| Parameter 1 of System.Span<!1>..ctor | parameter | 32 | -| Parameter 1 of System.Span<Boolean>..ctor | parameter | 32 | -| Parameter 1 of System.Span<Byte>..ctor | parameter | 32 | -| Parameter 1 of System.Span<Char>..ctor | parameter | 32 | -| Parameter 1 of System.Span<GuidResult>..ctor | parameter | 32 | -| Parameter 1 of System.Span<Int32>..ctor | parameter | 32 | -| Parameter 1 of System.Span<Object>..ctor | parameter | 32 | -| Parameter 1 of System.SpanHelpers.CommonPrefixLength | parameter | 32 | -| Parameter 1 of System.SpanHelpers.ComputeFirstIndex | parameter | 32 | -| Parameter 1 of System.SpanHelpers.Replace | parameter | 32 | -| Parameter 1 of System.SpanHelpers.ReplaceValueType | parameter | 32 | -| Parameter 1 of System.SpanHelpers.SequenceEqual | parameter | 32 | -| Parameter 1 of System.String.Create | parameter | 32 | -| Parameter 1 of System.String.MakeSeparatorListVectorized | parameter | 32 | -| Parameter 1 of System.String.TryGetTrailByte | parameter | 32 | -| Parameter 1 of System.StringComparer.IsWellKnownCultureAwareComparer | parameter | 32 | -| Parameter 1 of System.StringComparer.IsWellKnownCultureAwareComparerCore | parameter | 32 | -| Parameter 1 of System.StringComparer.IsWellKnownOrdinalComparer | parameter | 32 | -| Parameter 1 of System.StringComparer.IsWellKnownOrdinalComparerCore | parameter | 32 | -| Parameter 1 of System.StubHelpers.HandleMarshaler.ConvertSafeHandleToNative | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ClearNativeContents | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ConvertContentsToManaged | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ConvertContentsToNative | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ConvertSpaceToManaged | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdFixedArrayMarshaler.ConvertSpaceToNative | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ClearNative | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ClearNativeContents | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ConvertContentsToManaged | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ConvertContentsToNative | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ConvertSpaceToManaged | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdNativeArrayMarshaler.ConvertSpaceToNative | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdRefCustomMarshaler.ClearManaged | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdRefCustomMarshaler.ClearNative | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdRefCustomMarshaler.ConvertContentsToManaged | parameter | 32 | -| Parameter 1 of System.StubHelpers.MngdRefCustomMarshaler.ConvertContentsToNative | parameter | 32 | -| Parameter 1 of System.StubHelpers.StubHelpers.SafeHandleAddRef | parameter | 32 | -| Parameter 1 of System.TermInfo.DatabaseFactory.TryOpen | parameter | 32 | -| Parameter 1 of System.TermInfo.ParameterizedStrings.EvaluateInternal | parameter | 32 | -| Parameter 1 of System.TermInfo.ParameterizedStrings.GetDynamicOrStaticVariables | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ChangeCase | parameter | 32 | -| Parameter 1 of System.Text.Ascii.Equals | parameter | 32 | -| Parameter 1 of System.Text.Ascii.EqualsIgnoreCase | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ILoader.EqualAndAscii256 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ILoader.EqualAndAscii512 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ILoader<!0,!0>.EqualAndAscii256 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ILoader<!0,!0>.EqualAndAscii512 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ILoader<!0,!1>.EqualAndAscii256 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ILoader<!0,!1>.EqualAndAscii512 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ILoader<Byte,UInt16>.EqualAndAscii256 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ILoader<Byte,UInt16>.EqualAndAscii512 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.PlainLoader.EqualAndAscii256 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.PlainLoader.EqualAndAscii512 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ToLowerInPlace | parameter | 32 | -| Parameter 1 of System.Text.Ascii.ToUpperInPlace | parameter | 32 | -| Parameter 1 of System.Text.Ascii.WideningLoader.EqualAndAscii256 | parameter | 32 | -| Parameter 1 of System.Text.Ascii.WideningLoader.EqualAndAscii512 | parameter | 32 | -| Parameter 1 of System.Text.CompositeFormat.<TryParseLiterals>g__TryMoveNext\|12_0 | parameter | 32 | -| Parameter 1 of System.Text.Rune.DecodeFromUtf8 | parameter | 32 | -| Parameter 1 of System.Text.Rune.DecodeFromUtf16 | parameter | 32 | -| Parameter 1 of System.Text.Rune.DecodeLastFromUtf8 | parameter | 32 | -| Parameter 1 of System.Text.Rune.DecodeLastFromUtf16 | parameter | 32 | -| Parameter 1 of System.Text.Rune.TryCreate | parameter | 32 | -| Parameter 1 of System.Text.StringBuilder.<AppendFormatHelper>g__MoveNext\|116_0 | parameter | 32 | -| Parameter 1 of System.Text.StringBuilder.Append | parameter | 32 | -| Parameter 1 of System.Text.StringBuilder.AppendJoinCore | parameter | 32 | -| Parameter 1 of System.Text.StringBuilder.AppendLine | parameter | 32 | -| Parameter 1 of System.Text.StringBuilder.AppendWithExpansion | parameter | 32 | -| Parameter 1 of System.Text.StringBuilder.ChunkEnumerator.ManyChunkInfo.MoveNext | parameter | 32 | -| Parameter 1 of System.Text.StringBuilder.ReplaceInPlaceAtChunk | parameter | 32 | -| Parameter 1 of System.Text.Unicode.Utf8.TryWrite | parameter | 32 | -| Parameter 1 of System.Text.Unicode.Utf8Utility.GetIndexOfFirstInvalidUtf8Sequence | parameter | 32 | -| Parameter 1 of System.Text.UnicodeUtility.GetUtf16SurrogatesFromSupplementaryPlaneScalar | parameter | 32 | -| Parameter 1 of System.Text.ValueStringBuilder.<AppendFormatHelper>g__MoveNext\|0_0 | parameter | 32 | -| Parameter 1 of System.Threading.EventWaitHandle.OpenExistingWorker | parameter | 32 | -| Parameter 1 of System.Threading.EventWaitHandle.TryOpenExisting | parameter | 32 | -| Parameter 1 of System.Threading.LazyInitializer.EnsureInitialized | parameter | 32 | -| Parameter 1 of System.Threading.LazyInitializer.EnsureInitializedCore | parameter | 32 | -| Parameter 1 of System.Threading.Monitor.Enter | parameter | 32 | -| Parameter 1 of System.Threading.Monitor.ReliableEnter | parameter | 32 | -| Parameter 1 of System.Threading.Monitor.TryEnter | parameter | 32 | -| Parameter 1 of System.Threading.Mutex.OpenExistingWorker | parameter | 32 | -| Parameter 1 of System.Threading.Mutex.TryOpenExisting | parameter | 32 | -| Parameter 1 of System.Threading.PeriodicTimer.TryGetMilliseconds | parameter | 32 | -| Parameter 1 of System.Threading.PortableThreadPool.GetAvailableThreads | parameter | 32 | -| Parameter 1 of System.Threading.PortableThreadPool.GetMaxThreads | parameter | 32 | -| Parameter 1 of System.Threading.PortableThreadPool.GetMinThreads | parameter | 32 | -| Parameter 1 of System.Threading.PortableThreadPool.WorkerThread.WorkerDoWork | parameter | 32 | -| Parameter 1 of System.Threading.ReaderWriterLockSlim.LazyCreateEvent | parameter | 32 | -| Parameter 1 of System.Threading.Semaphore.OpenExistingWorker | parameter | 32 | -| Parameter 1 of System.Threading.Semaphore.TryOpenExisting | parameter | 32 | -| Parameter 1 of System.Threading.SpinLock.Enter | parameter | 32 | -| Parameter 1 of System.Threading.SpinLock.TryEnter | parameter | 32 | -| Parameter 1 of System.Threading.Tasks.Task.AddToList | parameter | 32 | -| Parameter 1 of System.Threading.Tasks.Task.CreationOptionsFromContinuationOptions | parameter | 32 | -| Parameter 1 of System.Threading.Tasks.Task.ExecuteWithThreadLocal | parameter | 32 | -| Parameter 1 of System.Threading.Tasks.Task.WhenAllPromise.<Invoke>g__HandleTask\|3_0 | parameter | 32 | -| Parameter 1 of System.Threading.ThreadPool.GetAvailableThreads | parameter | 32 | -| Parameter 1 of System.Threading.ThreadPool.GetMaxThreads | parameter | 32 | -| Parameter 1 of System.Threading.ThreadPool.GetMinThreads | parameter | 32 | -| Parameter 1 of System.Threading.ThreadPool.GetNextConfigUInt32Value | parameter | 32 | -| Parameter 1 of System.Threading.ThreadPoolWorkQueue.WorkStealingQueue.TrySteal | parameter | 32 | -| Parameter 1 of System.TimeOnly.Deconstruct | parameter | 32 | -| Parameter 1 of System.TimeOnly.TryParse | parameter | 32 | -| Parameter 1 of System.TimeSpan.TryParse | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.AdjustmentRule.AdjustDaylightDeltaToExpectedRange | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.GetAlternativeId | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.GetDateTimeNowUtcOffsetFromUtc | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.GetDaylightDisplayName | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.GetStandardDisplayName | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.NormalizeAdjustmentRuleOffset | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.StringSerializer.SerializeSubstitute | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.StringSerializer.SerializeTransitionTime | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParseJulianDay | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParseMDateRule | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixDate | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixDateTime | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixName | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixOffset | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixString | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParsePosixTime | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TryConvertIanaIdToWindowsId | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TryConvertWindowsIdToIanaId | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TryFindSystemTimeZoneById | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TryGetLocalTzFile | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TryGetTimeZone | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachine | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachineCore | parameter | 32 | -| Parameter 1 of System.TimeZoneInfo.TryLoadTzFile | parameter | 32 | -| Parameter 1 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 1 of System.Type.GetEnumData | parameter | 32 | -| Parameter 1 of System.UInt16.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.UInt16.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.UInt16.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.UInt16.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.UInt16.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.UInt16.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.UInt16.TryParse | parameter | 32 | -| Parameter 1 of System.UInt32.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.UInt32.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.UInt32.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.UInt32.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.UInt32.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.UInt32.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.UInt32.TryParse | parameter | 32 | -| Parameter 1 of System.UInt64.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.UInt64.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.UInt64.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.UInt64.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.UInt64.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.UInt64.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.UInt64.TryParse | parameter | 32 | -| Parameter 1 of System.UInt128.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.UInt128.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.UInt128.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.UInt128.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.UInt128.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.UInt128.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.UInt128.TryParse | parameter | 32 | -| Parameter 1 of System.UIntPtr.TryConvertFromChecked | parameter | 32 | -| Parameter 1 of System.UIntPtr.TryConvertFromSaturating | parameter | 32 | -| Parameter 1 of System.UIntPtr.TryConvertFromTruncating | parameter | 32 | -| Parameter 1 of System.UIntPtr.TryConvertToChecked | parameter | 32 | -| Parameter 1 of System.UIntPtr.TryConvertToSaturating | parameter | 32 | -| Parameter 1 of System.UIntPtr.TryConvertToTruncating | parameter | 32 | -| Parameter 1 of System.UIntPtr.TryParse | parameter | 32 | -| Parameter 1 of System.Version.TryParse | parameter | 32 | -| Parameter 1 of System.WeakReference.TryGetTarget | parameter | 32 | -| Parameter 1 of System.WeakReference<AssemblyLoadContext>.TryGetTarget | parameter | 32 | -| Parameter 1 of System.WeakReference<CounterGroup>.TryGetTarget | parameter | 32 | -| Parameter 1 of System.WeakReference<EventProvider>.TryGetTarget | parameter | 32 | -| Parameter 1 of System.WeakReference<EventSource>.TryGetTarget | parameter | 32 | -| Parameter 1 of System.__DTString.GetRegularToken | parameter | 32 | -| Parameter 1 of delegate* managed<IntPtr,Byte&,PortableTailCallFrame*,Void> | parameter | 32 | -| Parameter 2 of Interop.Globalization.GetJapaneseEraStartDate | parameter | 32 | -| Parameter 2 of Interop.Globalization.GetLocaleInfoGroupingSizes | parameter | 32 | -| Parameter 2 of Interop.Globalization.GetLocaleInfoInt | parameter | 32 | -| Parameter 2 of Interop.Kernel32.ReleaseSemaphore | parameter | 32 | -| Parameter 2 of Microsoft.Win32.SafeHandles.SafeFileHandle.FStatCheckIO | parameter | 32 | -| Parameter 2 of Microsoft.Win32.SafeHandles.SafeFileHandle.OpenReadOnly | parameter | 32 | -| Parameter 2 of System.Boolean.TryFormat | parameter | 32 | -| Parameter 2 of System.Boolean.TryParse | parameter | 32 | -| Parameter 2 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeBitmap | parameter | 32 | -| Parameter 2 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeBitmap256 | parameter | 32 | -| Parameter 2 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeFirstIndexOverlapped | parameter | 32 | -| Parameter 2 of System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized | parameter | 32 | -| Parameter 2 of System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorizedAnyByte | parameter | 32 | -| Parameter 2 of System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorized | parameter | 32 | -| Parameter 2 of System.Buffers.IndexOfAnyAsciiSearcher.LastIndexOfAnyVectorizedAnyByte | parameter | 32 | -| Parameter 2 of System.Buffers.IndexOfAnyAsciiSearcher.TryComputeBitmap | parameter | 32 | -| Parameter 2 of System.Buffers.ProbabilisticMap.ContainsMask16Chars | parameter | 32 | -| Parameter 2 of System.Buffers.ProbabilisticMap.ContainsMask32CharsAvx2 | parameter | 32 | -| Parameter 2 of System.Buffers.ProbabilisticMap.IndexOfAny | parameter | 32 | -| Parameter 2 of System.Buffers.ProbabilisticMap.IndexOfAnyExcept | parameter | 32 | -| Parameter 2 of System.Buffers.ProbabilisticMap.LastIndexOfAny | parameter | 32 | -| Parameter 2 of System.Buffers.ProbabilisticMap.LastIndexOfAnyExcept | parameter | 32 | -| Parameter 2 of System.Buffers.ProbabilisticMap.ProbabilisticIndexOfAny | parameter | 32 | -| Parameter 2 of System.Buffers.ProbabilisticMap.ProbabilisticLastIndexOfAny | parameter | 32 | -| Parameter 2 of System.Buffers.SearchValues.TryGetSingleRange | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Base64.<DecodeFromUtf8>g__InvalidDataFallback\|15_0 | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Base64.DecodeFromUtf8 | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Base64.DecodeWithWhiteSpaceBlockwise | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Base64.EncodeToUtf8 | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Base64.EncodeToUtf8InPlace | parameter | 32 | -| Parameter 2 of System.Buffers.Text.FormattingHelpers.TryFormat | parameter | 32 | -| Parameter 2 of System.Buffers.Text.ParserHelpers.TryParseThrowFormatException | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormat | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Formatter.TryFormatDateTimeL | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TimeSpanSplitter.ParseComponent | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParse | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseByteD | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseByteN | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseByteX | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseDateTimeG | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetDefault | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetO | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetR | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseGuidCore | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseGuidN | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt16D | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt16N | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt32D | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt32N | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt64D | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseInt64N | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseNormalAsFloatingPoint | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseNumber | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseSByteD | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseSByteN | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanBigG | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanC | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanFraction | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseTimeSpanLittleG | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt16D | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt16N | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt16X | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt32D | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt32N | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt32X | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt64D | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt64N | parameter | 32 | -| Parameter 2 of System.Buffers.Text.Utf8Parser.TryParseUInt64X | parameter | 32 | -| Parameter 2 of System.Byte.TryFormat | parameter | 32 | -| Parameter 2 of System.Byte.TryParse | parameter | 32 | -| Parameter 2 of System.Byte.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Byte.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Byte.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Byte.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Char.TryFormat | parameter | 32 | -| Parameter 2 of System.Char.TryParse | parameter | 32 | -| Parameter 2 of System.Char.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Char.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Char.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Char.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Collections.Concurrent.ConcurrentQueue.SnapForObservation | parameter | 32 | -| Parameter 2 of System.Collections.Concurrent.ConcurrentQueue<!0>.SnapForObservation | parameter | 32 | -| Parameter 2 of System.Collections.Concurrent.SingleProducerSingleConsumerQueue.EnqueueSlow | parameter | 32 | -| Parameter 2 of System.Collections.Concurrent.SingleProducerSingleConsumerQueue<!0>.EnqueueSlow | parameter | 32 | -| Parameter 2 of System.Collections.DictionaryEntry.Deconstruct | parameter | 32 | -| Parameter 2 of System.Collections.Generic.CollectionExtensions.Remove | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary.Remove | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<!0,!1>.CollectionsMarshalHelper.GetValueRefOrAddDefault | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Int32,Boolean>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Int32,ChannelInfo>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Int32,CultureInfo>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Int32,HashSet<Token>>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Int32,String>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Int32,Task>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<MemberInfo,NullabilityState>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Module,NotAnnotatedStatus>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Object,Object>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<ReadOnlyMemory<Char>,ConsoleKeyInfo>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,Assembly>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,Boolean>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,CultureData>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,CultureInfo>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,Int32>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,IntPtr>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,IsolatedComponentLoadContext>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,List<Int32>>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,List<RuntimePropertyInfo>>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,LocalDataStoreSlot>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,Object>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,ResourceLocator>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,ResourceSet>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,String>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,TimeZoneInfo>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<String,Type>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Type,AttributeUsageAttribute>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<Type,TraceLoggingTypeInfo>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<UInt64,Char>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.Dictionary<UInt64,String>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.HashSet.AddIfNotPresent | parameter | 32 | -| Parameter 2 of System.Collections.Generic.HashSet.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.HashSet<!0>.AddIfNotPresent | parameter | 32 | -| Parameter 2 of System.Collections.Generic.IDictionary.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.IDictionary<!0,!1>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.IDictionary<String,String>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.IReadOnlyDictionary.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.IReadOnlyDictionary<!0,!1>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Collections.Generic.KeyValuePair.Deconstruct | parameter | 32 | -| Parameter 2 of System.Collections.Generic.KeyValuePair<String,ResourceSet>.Deconstruct | parameter | 32 | -| Parameter 2 of System.Collections.Generic.ValueListBuilder.TryCopyTo | parameter | 32 | -| Parameter 2 of System.Collections.Generic.ValueListBuilder<!0>.TryCopyTo | parameter | 32 | -| Parameter 2 of System.Collections.ObjectModel.ReadOnlyDictionary.TryGetValue | parameter | 32 | -| Parameter 2 of System.ComponentModel.DefaultValueAttribute.ctor>g__TryConvertFromInvariantString\|2_0 | parameter | 32 | -| Parameter 2 of System.ConsolePal.<TryGetCursorPosition>g__BufferUntil\|82_1 | parameter | 32 | -| Parameter 2 of System.Convert.CopyToTempBufferWithoutWhiteSpace | parameter | 32 | -| Parameter 2 of System.Convert.TryDecodeFromUtf16 | parameter | 32 | -| Parameter 2 of System.Convert.TryFromBase64Chars | parameter | 32 | -| Parameter 2 of System.Convert.TryFromBase64String | parameter | 32 | -| Parameter 2 of System.Convert.TryToBase64Chars | parameter | 32 | -| Parameter 2 of System.CultureAwareComparer.IsWellKnownCultureAwareComparerCore | parameter | 32 | -| Parameter 2 of System.CurrentSystemTimeZone.GetUtcOffsetFromUniversalTime | parameter | 32 | -| Parameter 2 of System.DateOnly.Deconstruct | parameter | 32 | -| Parameter 2 of System.DateOnly.TryFormat | parameter | 32 | -| Parameter 2 of System.DateOnly.TryFormatCore | parameter | 32 | -| Parameter 2 of System.DateOnly.TryParse | parameter | 32 | -| Parameter 2 of System.DateOnly.TryParseExact | parameter | 32 | -| Parameter 2 of System.DateTime.Deconstruct | parameter | 32 | -| Parameter 2 of System.DateTime.GetDate | parameter | 32 | -| Parameter 2 of System.DateTime.GetTime | parameter | 32 | -| Parameter 2 of System.DateTime.GetTimePrecise | parameter | 32 | -| Parameter 2 of System.DateTime.TryAddTicks | parameter | 32 | -| Parameter 2 of System.DateTime.TryFormat | parameter | 32 | -| Parameter 2 of System.DateTime.TryParse | parameter | 32 | -| Parameter 2 of System.DateTimeFormat.FormatCustomizedRoundripTimeZone | parameter | 32 | -| Parameter 2 of System.DateTimeFormat.ParseQuoteString | parameter | 32 | -| Parameter 2 of System.DateTimeFormat.TryFormat | parameter | 32 | -| Parameter 2 of System.DateTimeFormat.TryFormatS | parameter | 32 | -| Parameter 2 of System.DateTimeOffset.Deconstruct | parameter | 32 | -| Parameter 2 of System.DateTimeOffset.TryFormat | parameter | 32 | -| Parameter 2 of System.DateTimeOffset.TryParse | parameter | 32 | -| Parameter 2 of System.DateTimeParse.ExpandPredefinedFormat | parameter | 32 | -| Parameter 2 of System.DateTimeParse.GetDayOfMN | parameter | 32 | -| Parameter 2 of System.DateTimeParse.GetDayOfNM | parameter | 32 | -| Parameter 2 of System.DateTimeParse.GetDayOfNN | parameter | 32 | -| Parameter 2 of System.DateTimeParse.Lex | parameter | 32 | -| Parameter 2 of System.DateTimeParse.MatchAbbreviatedDayName | parameter | 32 | -| Parameter 2 of System.DateTimeParse.MatchAbbreviatedMonthName | parameter | 32 | -| Parameter 2 of System.DateTimeParse.MatchAbbreviatedTimeMark | parameter | 32 | -| Parameter 2 of System.DateTimeParse.MatchDayName | parameter | 32 | -| Parameter 2 of System.DateTimeParse.MatchEraName | parameter | 32 | -| Parameter 2 of System.DateTimeParse.MatchMonthName | parameter | 32 | -| Parameter 2 of System.DateTimeParse.MatchTimeMark | parameter | 32 | -| Parameter 2 of System.DateTimeParse.ParseByFormat | parameter | 32 | -| Parameter 2 of System.DateTimeParse.ParseDigits | parameter | 32 | -| Parameter 2 of System.DateTimeParse.ParseFractionExact | parameter | 32 | -| Parameter 2 of System.DateTimeParse.ParseTimeZoneOffset | parameter | 32 | -| Parameter 2 of System.DateTimeParse.ProcessDateTimeSuffix | parameter | 32 | -| Parameter 2 of System.DateTimeParse.ProcessHebrewTerminalState | parameter | 32 | -| Parameter 2 of System.DateTimeParse.ProcessTerminalState | parameter | 32 | -| Parameter 2 of System.DateTimeParse.TryAdjustYear | parameter | 32 | -| Parameter 2 of System.DateTimeParse.TryParseQuoteString | parameter | 32 | -| Parameter 2 of System.Decimal.DecCalc.DivByConst | parameter | 32 | -| Parameter 2 of System.Decimal.DecCalc.UInt64x64To128 | parameter | 32 | -| Parameter 2 of System.Decimal.DecCalc.Unscale | parameter | 32 | -| Parameter 2 of System.Decimal.TryFormat | parameter | 32 | -| Parameter 2 of System.Decimal.TryGetBits | parameter | 32 | -| Parameter 2 of System.Decimal.TryParse | parameter | 32 | -| Parameter 2 of System.Decimal.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Decimal.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Decimal.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Decimal.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Diagnostics.Debug.Assert | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.ActivityTracker.ActivityInfo.CreateActivityPathGuid | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadata | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForProperty | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForTypeV2 | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataV2 | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventParameterInfo.GetMetadataLengthForNamedTypeV2 | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventPayload.TryGetValue | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventPipeMetadataGenerator.WriteToBuffer | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventProvider.EncodeObject | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventProviderImpl.MarshalFilterData | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventSource.Write | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteEventRaw | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteImpl | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteMultiMerge | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteMultiMergeInner | parameter | 32 | -| Parameter 2 of System.Diagnostics.Tracing.EventSource.WriteToAllListeners | parameter | 32 | -| Parameter 2 of System.Double.TryFormat | parameter | 32 | -| Parameter 2 of System.Double.TryParse | parameter | 32 | -| Parameter 2 of System.Double.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Double.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Double.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Double.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Enum.<ToString>g__HandleRareTypes\|56_0 | parameter | 32 | -| Parameter 2 of System.Enum.ToString | parameter | 32 | -| Parameter 2 of System.Enum.ToStringInlined | parameter | 32 | -| Parameter 2 of System.Enum.TryFormat | parameter | 32 | -| Parameter 2 of System.Enum.TryFormatNumberAsHex | parameter | 32 | -| Parameter 2 of System.Enum.TryFormatUnconstrained | parameter | 32 | -| Parameter 2 of System.Enum.TryParse | parameter | 32 | -| Parameter 2 of System.Exception.GetStackTracesDeepCopy | parameter | 32 | -| Parameter 2 of System.Globalization.CalendarData.CountOccurrences | parameter | 32 | -| Parameter 2 of System.Globalization.CalendarData.NormalizeDayOfWeek | parameter | 32 | -| Parameter 2 of System.Globalization.CharUnicodeInfo.GetUnicodeCategoryInternal | parameter | 32 | -| Parameter 2 of System.Globalization.CultureData.GetIndexOfNextTokenAfterSeconds | parameter | 32 | -| Parameter 2 of System.Globalization.CultureData.IsValidCultureName | parameter | 32 | -| Parameter 2 of System.Globalization.CultureData.NormalizeCultureName | parameter | 32 | -| Parameter 2 of System.Globalization.DateTimeFormatInfo.Tokenize | parameter | 32 | -| Parameter 2 of System.Globalization.DateTimeFormatInfo.TryParseHebrewNumber | parameter | 32 | -| Parameter 2 of System.Globalization.DateTimeFormatInfo.YearMonthAdjustment | parameter | 32 | -| Parameter 2 of System.Globalization.EastAsianLunisolarCalendar.TimeToLunar | parameter | 32 | -| Parameter 2 of System.Globalization.GlobalizationMode.TryGetStringValue | parameter | 32 | -| Parameter 2 of System.Globalization.InvariantModeCasing.CompareStringIgnoreCase | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.CompareStringIgnoreCase | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.CompareStringIgnoreCaseNonAscii | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.EqualsIgnoreCaseUtf8 | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.EqualsIgnoreCaseUtf8_Scalar | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.EqualsIgnoreCaseUtf8_Vector128 | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.EqualsStringIgnoreCaseNonAsciiUtf8 | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.EqualsStringIgnoreCaseUtf8 | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.StartsWithIgnoreCaseUtf8 | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.StartsWithIgnoreCaseUtf8_Scalar | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.StartsWithIgnoreCaseUtf8_Vector128 | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.StartsWithStringIgnoreCaseNonAsciiUtf8 | parameter | 32 | -| Parameter 2 of System.Globalization.Ordinal.StartsWithStringIgnoreCaseUtf8 | parameter | 32 | -| Parameter 2 of System.Globalization.OrdinalCasing.CompareStringIgnoreCase | parameter | 32 | -| Parameter 2 of System.Globalization.PersianCalendar.GetDate | parameter | 32 | -| Parameter 2 of System.Globalization.SurrogateCasing.ToLower | parameter | 32 | -| Parameter 2 of System.Globalization.SurrogateCasing.ToUpper | parameter | 32 | -| Parameter 2 of System.Globalization.TextInfo.AddTitlecaseLetter | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanFormat.TryFormat | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.ParseExactDigits | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminalState | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_D | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_DHMSF | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_HM | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_HMS_F_D | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.ProcessTerminal_HM_S_D | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.StringParser.ParseInt | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.StringParser.ParseTime | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.StringParser.TryParse | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.TimeSpanRawInfo.AddNum | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.TimeSpanRawInfo.AddSep | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.TimeSpanRawInfo.ProcessToken | parameter | 32 | -| Parameter 2 of System.Globalization.TimeSpanParse.TryParse | parameter | 32 | -| Parameter 2 of System.Globalization.UmAlQuraCalendar.ConvertGregorianToHijri | parameter | 32 | -| Parameter 2 of System.Guid.DecodeByte | parameter | 32 | -| Parameter 2 of System.Guid.TryFormat | parameter | 32 | -| Parameter 2 of System.Guid.TryFormatCore | parameter | 32 | -| Parameter 2 of System.Guid.TryFormatX | parameter | 32 | -| Parameter 2 of System.Guid.TryParse | parameter | 32 | -| Parameter 2 of System.Guid.TryParseExact | parameter | 32 | -| Parameter 2 of System.Guid.TryParseHex | parameter | 32 | -| Parameter 2 of System.Half.TryFormat | parameter | 32 | -| Parameter 2 of System.Half.TryParse | parameter | 32 | -| Parameter 2 of System.Half.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Half.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Half.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Half.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.HashCode.Initialize | parameter | 32 | -| Parameter 2 of System.HexConverter.TryDecodeFromUtf16 | parameter | 32 | -| Parameter 2 of System.IO.BufferedStream.WriteToBuffer | parameter | 32 | -| Parameter 2 of System.IO.KeyParser.<ParseFromSingleChar>g__ControlAndDigitPressed\|8_2 | parameter | 32 | -| Parameter 2 of System.IO.KeyParser.<ParseFromSingleChar>g__ControlAndLetterPressed\|8_1 | parameter | 32 | -| Parameter 2 of System.IO.KeyParser.TryParseTerminalInputSequence | parameter | 32 | -| Parameter 2 of System.IO.PathInternal.RemoveRelativeSegments | parameter | 32 | -| Parameter 2 of System.IO.PersistedFiles.TryGetHomeDirectoryFromPasswd | parameter | 32 | -| Parameter 2 of System.IO.StreamReader.ReadBuffer | parameter | 32 | -| Parameter 2 of System.IO.UnmanagedMemoryAccessor.Read | parameter | 32 | -| Parameter 2 of System.IO.UnmanagedMemoryAccessor.Write | parameter | 32 | -| Parameter 2 of System.IParsable.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Boolean>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Byte>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Char>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<DateOnly>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<DateTime>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<DateTimeOffset>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Decimal>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Double>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Guid>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Half>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Int16>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Int32>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Int64>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Int128>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<IntPtr>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<NFloat>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<SByte>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<Single>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<String>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<TimeOnly>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<TimeSpan>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<UInt16>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<UInt32>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<UInt64>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<UInt128>.TryParse | parameter | 32 | -| Parameter 2 of System.IParsable<UIntPtr>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanFormattable.TryFormat | parameter | 32 | -| Parameter 2 of System.ISpanParsable.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<!0>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Boolean>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Byte>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Char>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<DateOnly>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<DateTime>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<DateTimeOffset>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Decimal>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Double>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Guid>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Half>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Int16>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Int32>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Int64>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Int128>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<IntPtr>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<NFloat>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<SByte>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<Single>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<String>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<TimeOnly>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<TimeSpan>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<UInt16>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<UInt32>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<UInt64>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<UInt128>.TryParse | parameter | 32 | -| Parameter 2 of System.ISpanParsable<UIntPtr>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanFormattable.TryFormat | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<!0>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Byte>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Decimal>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Double>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Half>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Int16>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Int32>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Int64>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Int128>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<IntPtr>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<NFloat>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<SByte>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<Single>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<UInt16>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<UInt32>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<UInt64>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<UInt128>.TryParse | parameter | 32 | -| Parameter 2 of System.IUtf8SpanParsable<UIntPtr>.TryParse | parameter | 32 | -| Parameter 2 of System.Int16.TryFormat | parameter | 32 | -| Parameter 2 of System.Int16.TryParse | parameter | 32 | -| Parameter 2 of System.Int16.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Int16.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Int16.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Int16.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Int32.TryFormat | parameter | 32 | -| Parameter 2 of System.Int32.TryParse | parameter | 32 | -| Parameter 2 of System.Int32.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Int32.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Int32.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Int32.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Int64.TryFormat | parameter | 32 | -| Parameter 2 of System.Int64.TryParse | parameter | 32 | -| Parameter 2 of System.Int64.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Int64.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Int64.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Int64.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Int128.BigMul | parameter | 32 | -| Parameter 2 of System.Int128.TryFormat | parameter | 32 | -| Parameter 2 of System.Int128.TryParse | parameter | 32 | -| Parameter 2 of System.Int128.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Int128.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Int128.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Int128.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.IntPtr.TryFormat | parameter | 32 | -| Parameter 2 of System.IntPtr.TryParse | parameter | 32 | -| Parameter 2 of System.IntPtr.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.IntPtr.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.IntPtr.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.IntPtr.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Math.<BigMul>g__SoftwareFallback\|49_0 | parameter | 32 | -| Parameter 2 of System.Math.BigMul | parameter | 32 | -| Parameter 2 of System.Math.DivRem | parameter | 32 | -| Parameter 2 of System.MemoryExtensions.Overlaps | parameter | 32 | -| Parameter 2 of System.MemoryExtensions.TryWrite | parameter | 32 | -| Parameter 2 of System.ModuleHandle.GetPEKind | parameter | 32 | -| Parameter 2 of System.Net.WebUtility.ConvertSmpToUtf16 | parameter | 32 | -| Parameter 2 of System.Number.BigInteger.Add | parameter | 32 | -| Parameter 2 of System.Number.BigInteger.AddDivisor | parameter | 32 | -| Parameter 2 of System.Number.BigInteger.DivRem | parameter | 32 | -| Parameter 2 of System.Number.BigInteger.Multiply | parameter | 32 | -| Parameter 2 of System.Number.BigInteger.SubtractDivisor | parameter | 32 | -| Parameter 2 of System.Number.DiyFp.CreateAndGetBoundaries | parameter | 32 | -| Parameter 2 of System.Number.DiyFp.GetBoundaries | parameter | 32 | -| Parameter 2 of System.Number.Grisu3.BiggestPowerTen | parameter | 32 | -| Parameter 2 of System.Number.Grisu3.GetCachedPowerForBinaryExponentRange | parameter | 32 | -| Parameter 2 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | -| Parameter 2 of System.Number.Grisu3.TryRunDouble | parameter | 32 | -| Parameter 2 of System.Number.Grisu3.TryRunHalf | parameter | 32 | -| Parameter 2 of System.Number.Grisu3.TryRunShortest | parameter | 32 | -| Parameter 2 of System.Number.Grisu3.TryRunSingle | parameter | 32 | -| Parameter 2 of System.Number.TryCopyTo | parameter | 32 | -| Parameter 2 of System.Number.TryParseBinaryIntegerHexNumberStyle | parameter | 32 | -| Parameter 2 of System.Number.TryParseBinaryIntegerHexOrBinaryNumberStyle | parameter | 32 | -| Parameter 2 of System.Number.TryStringToNumber | parameter | 32 | -| Parameter 2 of System.Number.TryUInt32ToDecStr | parameter | 32 | -| Parameter 2 of System.Number.TryUInt64ToDecStr | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<!0>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<!0>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<!0>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<!0>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Byte>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Byte>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Byte>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Byte>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Char>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Char>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Char>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Char>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int16>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int16>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int16>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int16>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int32>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int32>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int32>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int32>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int64>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int64>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int64>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int64>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int128>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int128>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int128>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<Int128>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<IntPtr>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<IntPtr>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<IntPtr>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<IntPtr>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<SByte>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<SByte>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<SByte>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<SByte>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt16>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt16>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt16>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt16>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt32>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt32>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt32>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt32>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt64>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt64>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt64>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt64>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt128>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt128>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt128>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UInt128>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UIntPtr>.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UIntPtr>.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UIntPtr>.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IBinaryInteger<UIntPtr>.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<!0>.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<!0>.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<!0>.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<!0>.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Decimal>.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Decimal>.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Decimal>.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Decimal>.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Double>.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Double>.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Double>.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Double>.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Half>.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Half>.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Half>.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Half>.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<NFloat>.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<NFloat>.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<NFloat>.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<NFloat>.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Single>.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Single>.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Single>.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Numerics.IFloatingPoint<Single>.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Numerics.INumberBase.TryFormat | parameter | 32 | -| Parameter 2 of System.Numerics.INumberBase.TryParse | parameter | 32 | -| Parameter 2 of System.Numerics.Matrix4x4.Decompose | parameter | 32 | -| Parameter 2 of System.Numerics.Matrix4x4.Impl.CreateBillboard | parameter | 32 | -| Parameter 2 of System.Numerics.Matrix4x4.Impl.CreateConstrainedBillboard | parameter | 32 | -| Parameter 2 of System.Numerics.Matrix4x4.Impl.CreateLookTo | parameter | 32 | -| Parameter 2 of System.Numerics.Matrix4x4.Impl.CreateLookToLeftHanded | parameter | 32 | -| Parameter 2 of System.Numerics.Matrix4x4.Impl.CreateWorld | parameter | 32 | -| Parameter 2 of System.Numerics.Matrix4x4.Impl.Decompose | parameter | 32 | -| Parameter 2 of System.Numerics.Vector.Widen | parameter | 32 | -| Parameter 2 of System.PackedSpanHelpers.ComputeFirstIndexOverlapped | parameter | 32 | -| Parameter 2 of System.ParseNumbers.GrabInts | parameter | 32 | -| Parameter 2 of System.ParseNumbers.GrabLongs | parameter | 32 | -| Parameter 2 of System.ParseNumbers.IsDigit | parameter | 32 | -| Parameter 2 of System.ReadOnlyMemory.GetObjectStartLength | parameter | 32 | -| Parameter 2 of System.ReadOnlyMemory<!0>.GetObjectStartLength | parameter | 32 | -| Parameter 2 of System.ReadOnlyMemory<Char>.GetObjectStartLength | parameter | 32 | -| Parameter 2 of System.Reflection.AssemblyName.EscapeAsciiChar | parameter | 32 | -| Parameter 2 of System.Reflection.CustomAttribute.AttributeUsageCheck | parameter | 32 | -| Parameter 2 of System.Reflection.CustomAttribute.ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 2 of System.Reflection.CustomAttribute._ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 2 of System.Reflection.CustomAttributeEncodedArgument.ParseAttributeArguments | parameter | 32 | -| Parameter 2 of System.Reflection.Emit.DynamicResolver.GetCodeInfo | parameter | 32 | -| Parameter 2 of System.Reflection.Emit.DynamicResolver.ResolveToken | parameter | 32 | -| Parameter 2 of System.Reflection.Emit.RuntimeModuleBuilder.GetPEKind | parameter | 32 | -| Parameter 2 of System.Reflection.Metadata.AssemblyExtensions.InternalTryGetRawMetadata | parameter | 32 | -| Parameter 2 of System.Reflection.Metadata.AssemblyExtensions.TryGetRawMetadata | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.EnumCustomAttributes | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.EnumEvents | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.EnumFields | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.EnumNestedTypes | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.EnumParams | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.EnumProperties | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetClassLayout | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetCustomAttributeProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetDefaultValue | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetEventProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetFieldDefProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetGenericParamProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetPInvokeMap | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetParamDefProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport.GetPropertyProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetClassLayout | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetCustomAttributeProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetDefaultValue | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetFieldDefProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetFieldMarshal | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetGenericParamProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetMemberRefProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetPInvokeMap | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetParamDefProps | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetParentToken | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetSigOfFieldDef | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetSigOfMethodDef | parameter | 32 | -| Parameter 2 of System.Reflection.MetadataImport._GetSignatureFromToken | parameter | 32 | -| Parameter 2 of System.Reflection.MethodInvokerCommon.Initialize | parameter | 32 | -| Parameter 2 of System.Reflection.Module.GetPEKind | parameter | 32 | -| Parameter 2 of System.Reflection.NullabilityInfoContext.NullableAttributeStateParser.ParseNullableState | parameter | 32 | -| Parameter 2 of System.Reflection.NullabilityInfoContext.TryPopulateNullabilityInfo | parameter | 32 | -| Parameter 2 of System.Reflection.PseudoCustomAttribute.GetCustomAttributes | parameter | 32 | -| Parameter 2 of System.Reflection.RuntimeAssembly.GetResource | parameter | 32 | -| Parameter 2 of System.Reflection.RuntimeAssembly.GetVersion | parameter | 32 | -| Parameter 2 of System.Reflection.RuntimeModule.GetPEKind | parameter | 32 | -| Parameter 2 of System.Reflection.RuntimeParameterInfo.TryGetDefaultValueInternal | parameter | 32 | -| Parameter 2 of System.Resolver.GetCodeInfo | parameter | 32 | -| Parameter 2 of System.Resolver.ResolveToken | parameter | 32 | -| Parameter 2 of System.Resources.ResourceManager.AddResourceSet | parameter | 32 | -| Parameter 2 of System.Resources.ResourceReader.AllocateStringForNameIndex | parameter | 32 | -| Parameter 2 of System.Resources.ResourceReader.GetResourceData | parameter | 32 | -| Parameter 2 of System.Resources.ResourceReader.LoadObject | parameter | 32 | -| Parameter 2 of System.Resources.ResourceReader.LoadObjectV2 | parameter | 32 | -| Parameter 2 of System.Resources.ResourceReader._LoadObjectV2 | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Boolean>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Byte[]>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<String>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<String[]>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<VoidTaskResult>.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncTaskMethodBuilder<VoidTaskResult>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder<Int32>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable.Container.FindEntry | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable.Container.TryGetEntry | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable.Container.TryGetValueWorker | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable.TryGetValue | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable<!0,!1>.Container.FindEntry | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable<!0,!1>.Container.TryGetEntry | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable<!0,!1>.Container.TryGetValueWorker | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable<!0,!1>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable<Assembly,DllImportResolver>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ConditionalWeakTable<Object,SerializationInfo>.TryGetValue | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ICastable.IsInstanceOfInterface | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.ICastableHelpers.IsInstanceOfInterface | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<!0>.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<Int32>.AwaitUnsafeOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder<VoidTaskResult>.AwaitOnCompleted | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.RuntimeHelpers.DispatchTailCalls | parameter | 32 | -| Parameter 2 of System.Runtime.CompilerServices.RuntimeHelpers.GetSpanDataFrom | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.CollectionsMarshal.GetValueRefOrAddDefault | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IBindCtx.GetObjectParam | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IConnectionPoint.Advise | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IConnectionPointContainer.FindConnectionPoint | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IMoniker.CommonPrefixWith | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IMoniker.Enum | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IMoniker.RelativePathTo | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IRunningObjectTable.GetObject | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IRunningObjectTable.GetTimeOfLastChange | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.IRunningObjectTable.NoteChangeTime | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.CreateInstance | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetContainingTypeLib | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetCustData | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation2 | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetFuncCustData | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetFuncDesc | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetImplTypeCustData | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetImplTypeFlags | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetMops | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetRefTypeInfo | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetRefTypeOfImplType | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetVarCustData | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetVarDesc | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetVarIndexOfMemId | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.CreateInstance | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetContainingTypeLib | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetDocumentation | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetFuncDesc | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetImplTypeFlags | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetMops | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetRefTypeInfo | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetRefTypeOfImplType | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetVarDesc | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetCustData | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation2 | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetLibStatistics | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeInfo | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeInfoOfGuid | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetTypeInfoType | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeInfo | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeInfoOfGuid | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetTypeInfoType | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComWrappers.CallICustomQueryInterface | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImpl | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ComWrappers.GetIUnknownImplInternal | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.ICustomQueryInterface.GetInterface | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.Marshal.QueryInterface | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.MemoryMarshal.TryGetMemoryManager | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.MemoryMarshal.TryGetString | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.NFloat.TryFormat | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.NFloat.TryParse | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.NFloat.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.NFloat.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.NFloat.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.NFloat.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.Runtime.InteropServices.NativeLibrary.TryGetExport | parameter | 32 | -| Parameter 2 of System.Runtime.Serialization.SerializationInfo.GetElement | parameter | 32 | -| Parameter 2 of System.Runtime.Serialization.SerializationInfo.GetElementNoThrow | parameter | 32 | -| Parameter 2 of System.RuntimeType.FilterHelper | parameter | 32 | -| Parameter 2 of System.RuntimeType.SplitName | parameter | 32 | -| Parameter 2 of System.RuntimeType.TryChangeType | parameter | 32 | -| Parameter 2 of System.RuntimeTypeHandle.GetActivationInfo | parameter | 32 | -| Parameter 2 of System.SByte.TryFormat | parameter | 32 | -| Parameter 2 of System.SByte.TryParse | parameter | 32 | -| Parameter 2 of System.SByte.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.SByte.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.SByte.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.SByte.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Security.SecurityElement.GetUnescapeSequence | parameter | 32 | -| Parameter 2 of System.Single.TryFormat | parameter | 32 | -| Parameter 2 of System.Single.TryParse | parameter | 32 | -| Parameter 2 of System.Single.TryWriteExponentBigEndian | parameter | 32 | -| Parameter 2 of System.Single.TryWriteExponentLittleEndian | parameter | 32 | -| Parameter 2 of System.Single.TryWriteSignificandBigEndian | parameter | 32 | -| Parameter 2 of System.Single.TryWriteSignificandLittleEndian | parameter | 32 | -| Parameter 2 of System.SpanHelpers.IndexOf | parameter | 32 | -| Parameter 2 of System.SpanHelpers.IndexOfAny | parameter | 32 | -| Parameter 2 of System.SpanHelpers.LastIndexOf | parameter | 32 | -| Parameter 2 of System.SpanHelpers.LastIndexOfAny | parameter | 32 | -| Parameter 2 of System.SpanHelpers.SequenceCompareTo | parameter | 32 | -| Parameter 2 of System.String.Create | parameter | 32 | -| Parameter 2 of System.String.IndexOfNewlineChar | parameter | 32 | -| Parameter 2 of System.String.MakeSeparatorList | parameter | 32 | -| Parameter 2 of System.String.MakeSeparatorListAny | parameter | 32 | -| Parameter 2 of System.String.TryParse | parameter | 32 | -| Parameter 2 of System.StringComparer.IsWellKnownCultureAwareComparer | parameter | 32 | -| Parameter 2 of System.StringComparer.IsWellKnownCultureAwareComparerCore | parameter | 32 | -| Parameter 2 of System.StubHelpers.StubHelpers.FmtClassUpdateNativeInternal | parameter | 32 | -| Parameter 2 of System.TermInfo.ParameterizedStrings.GetDynamicOrStaticVariables | parameter | 32 | -| Parameter 2 of System.Text.ASCIIEncoding.DecodeFirstRune | parameter | 32 | -| Parameter 2 of System.Text.ASCIIEncoding.TryGetByteCount | parameter | 32 | -| Parameter 2 of System.Text.Ascii.ChangeCase | parameter | 32 | -| Parameter 2 of System.Text.Ascii.FromUtf16 | parameter | 32 | -| Parameter 2 of System.Text.Ascii.ToLower | parameter | 32 | -| Parameter 2 of System.Text.Ascii.ToUpper | parameter | 32 | -| Parameter 2 of System.Text.Ascii.ToUtf16 | parameter | 32 | -| Parameter 2 of System.Text.CompositeFormat.<TryParseLiterals>g__TryMoveNext\|12_0 | parameter | 32 | -| Parameter 2 of System.Text.CompositeFormat.TryParseLiterals | parameter | 32 | -| Parameter 2 of System.Text.DecoderFallbackBuffer.TryDrainRemainingDataForGetChars | parameter | 32 | -| Parameter 2 of System.Text.DecoderNLS.DrainLeftoverDataForGetCharCount | parameter | 32 | -| Parameter 2 of System.Text.EncoderFallbackBuffer.InternalFallback | parameter | 32 | -| Parameter 2 of System.Text.EncoderFallbackBuffer.InternalFallbackGetByteCount | parameter | 32 | -| Parameter 2 of System.Text.EncoderFallbackBuffer.TryDrainRemainingDataForGetBytes | parameter | 32 | -| Parameter 2 of System.Text.EncoderNLS.DrainLeftoverDataForGetByteCount | parameter | 32 | -| Parameter 2 of System.Text.Encoding.DecodeFirstRune | parameter | 32 | -| Parameter 2 of System.Text.Encoding.TryGetByteCount | parameter | 32 | -| Parameter 2 of System.Text.Latin1Encoding.DecodeFirstRune | parameter | 32 | -| Parameter 2 of System.Text.Latin1Encoding.TryGetByteCount | parameter | 32 | -| Parameter 2 of System.Text.Rune.DecodeFromUtf8 | parameter | 32 | -| Parameter 2 of System.Text.Rune.DecodeFromUtf16 | parameter | 32 | -| Parameter 2 of System.Text.Rune.DecodeLastFromUtf8 | parameter | 32 | -| Parameter 2 of System.Text.Rune.DecodeLastFromUtf16 | parameter | 32 | -| Parameter 2 of System.Text.Rune.TryCreate | parameter | 32 | -| Parameter 2 of System.Text.Rune.TryEncodeToUtf8 | parameter | 32 | -| Parameter 2 of System.Text.Rune.TryEncodeToUtf16 | parameter | 32 | -| Parameter 2 of System.Text.Rune.TryFormat | parameter | 32 | -| Parameter 2 of System.Text.Rune.TryGetRuneAt | parameter | 32 | -| Parameter 2 of System.Text.StringBuilder.Append | parameter | 32 | -| Parameter 2 of System.Text.StringBuilder.AppendLine | parameter | 32 | -| Parameter 2 of System.Text.StringBuilder.Insert | parameter | 32 | -| Parameter 2 of System.Text.StringBuilder.ReplaceInPlaceAtChunk | parameter | 32 | -| Parameter 2 of System.Text.UTF8Encoding.DecodeFirstRune | parameter | 32 | -| Parameter 2 of System.Text.UTF8Encoding.TryGetByteCount | parameter | 32 | -| Parameter 2 of System.Text.UTF8Encoding.UTF8EncodingSealed.ReadUtf8 | parameter | 32 | -| Parameter 2 of System.Text.Unicode.TextSegmentationUtility.DecodeFirstRune.Invoke | parameter | 32 | -| Parameter 2 of System.Text.Unicode.TextSegmentationUtility.DecodeFirstRune<!0>.Invoke | parameter | 32 | -| Parameter 2 of System.Text.Unicode.Utf8.FromUtf16 | parameter | 32 | -| Parameter 2 of System.Text.Unicode.Utf8.ToUtf16 | parameter | 32 | -| Parameter 2 of System.Text.Unicode.Utf8.ToUtf16PreservingReplacement | parameter | 32 | -| Parameter 2 of System.Text.Unicode.Utf8.TryWrite | parameter | 32 | -| Parameter 2 of System.Text.Unicode.Utf8Utility.GetPointerToFirstInvalidByte | parameter | 32 | -| Parameter 2 of System.Text.Unicode.Utf16Utility.GetPointerToFirstInvalidChar | parameter | 32 | -| Parameter 2 of System.Text.UnicodeUtility.GetUtf16SurrogatesFromSupplementaryPlaneScalar | parameter | 32 | -| Parameter 2 of System.Threading.AsyncLocalValueMap.EmptyAsyncLocalValueMap.TryGetValue | parameter | 32 | -| Parameter 2 of System.Threading.AsyncLocalValueMap.FourElementAsyncLocalValueMap.TryGetValue | parameter | 32 | -| Parameter 2 of System.Threading.AsyncLocalValueMap.MultiElementAsyncLocalValueMap.TryGetValue | parameter | 32 | -| Parameter 2 of System.Threading.AsyncLocalValueMap.OneElementAsyncLocalValueMap.TryGetValue | parameter | 32 | -| Parameter 2 of System.Threading.AsyncLocalValueMap.ThreeElementAsyncLocalValueMap.TryGetValue | parameter | 32 | -| Parameter 2 of System.Threading.AsyncLocalValueMap.TwoElementAsyncLocalValueMap.TryGetValue | parameter | 32 | -| Parameter 2 of System.Threading.ExecutionContext.RunForThreadPoolUnsafe | parameter | 32 | -| Parameter 2 of System.Threading.IAsyncLocalValueMap.TryGetValue | parameter | 32 | -| Parameter 2 of System.Threading.LazyInitializer.EnsureInitialized | parameter | 32 | -| Parameter 2 of System.Threading.LazyInitializer.EnsureInitializedCore | parameter | 32 | -| Parameter 2 of System.Threading.Monitor.ReliableEnterTimeout | parameter | 32 | -| Parameter 2 of System.Threading.Monitor.TryEnter | parameter | 32 | -| Parameter 2 of System.Threading.PortableThreadPool.GetAvailableThreads | parameter | 32 | -| Parameter 2 of System.Threading.PortableThreadPool.GetMaxThreads | parameter | 32 | -| Parameter 2 of System.Threading.PortableThreadPool.GetMinThreads | parameter | 32 | -| Parameter 2 of System.Threading.PortableThreadPool.PerformBlockingAdjustment | parameter | 32 | -| Parameter 2 of System.Threading.ReaderWriterLockSlim.WaitOnEvent | parameter | 32 | -| Parameter 2 of System.Threading.SpinLock.ContinueTryEnter | parameter | 32 | -| Parameter 2 of System.Threading.SpinLock.TryEnter | parameter | 32 | -| Parameter 2 of System.Threading.Tasks.Task.CreationOptionsFromContinuationOptions | parameter | 32 | -| Parameter 2 of System.Threading.ThreadPool.GetNextConfigUInt32Value | parameter | 32 | -| Parameter 2 of System.Threading.ThreadPoolWorkQueue.Dequeue | parameter | 32 | -| Parameter 2 of System.Threading.ThreadPoolWorkQueue.TryStartProcessingHighPriorityWorkItemsAndDequeue | parameter | 32 | -| Parameter 2 of System.TimeOnly.Add | parameter | 32 | -| Parameter 2 of System.TimeOnly.AddHours | parameter | 32 | -| Parameter 2 of System.TimeOnly.AddMinutes | parameter | 32 | -| Parameter 2 of System.TimeOnly.AddTicks | parameter | 32 | -| Parameter 2 of System.TimeOnly.Deconstruct | parameter | 32 | -| Parameter 2 of System.TimeOnly.TryFormat | parameter | 32 | -| Parameter 2 of System.TimeOnly.TryFormatCore | parameter | 32 | -| Parameter 2 of System.TimeOnly.TryParse | parameter | 32 | -| Parameter 2 of System.TimeOnly.TryParseExact | parameter | 32 | -| Parameter 2 of System.TimeSpan.TryFormat | parameter | 32 | -| Parameter 2 of System.TimeSpan.TryParse | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.ConvertUtcToTimeZone | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.GetAdjustmentRuleForAmbiguousOffsets | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.GetAdjustmentRuleForTime | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.GetFullValueForDisplayNameField | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.GetUtcOffsetFromUtc | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TZif_ParseJulianDay | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TZif_ParseMDateRule | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TZif_ParsePosixDateTime | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TryConvertIanaIdToWindowsId | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TryConvertWindowsIdToIanaId | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TryFindSystemTimeZoneById | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TryGetTimeZone | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachine | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachineCore | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TryGetTimeZoneUsingId | parameter | 32 | -| Parameter 2 of System.TimeZoneInfo.TryLoadTzFile | parameter | 32 | -| Parameter 2 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 2 of System.Type.GetEnumData | parameter | 32 | -| Parameter 2 of System.UInt16.TryFormat | parameter | 32 | -| Parameter 2 of System.UInt16.TryParse | parameter | 32 | -| Parameter 2 of System.UInt16.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.UInt16.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.UInt16.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.UInt16.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.UInt32.TryFormat | parameter | 32 | -| Parameter 2 of System.UInt32.TryParse | parameter | 32 | -| Parameter 2 of System.UInt32.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.UInt32.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.UInt32.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.UInt32.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.UInt64.TryFormat | parameter | 32 | -| Parameter 2 of System.UInt64.TryParse | parameter | 32 | -| Parameter 2 of System.UInt64.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.UInt64.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.UInt64.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.UInt64.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.UInt128.BigMul | parameter | 32 | -| Parameter 2 of System.UInt128.TryFormat | parameter | 32 | -| Parameter 2 of System.UInt128.TryParse | parameter | 32 | -| Parameter 2 of System.UInt128.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.UInt128.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.UInt128.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.UInt128.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.UIntPtr.TryFormat | parameter | 32 | -| Parameter 2 of System.UIntPtr.TryParse | parameter | 32 | -| Parameter 2 of System.UIntPtr.TryReadBigEndian | parameter | 32 | -| Parameter 2 of System.UIntPtr.TryReadLittleEndian | parameter | 32 | -| Parameter 2 of System.UIntPtr.TryWriteBigEndian | parameter | 32 | -| Parameter 2 of System.UIntPtr.TryWriteLittleEndian | parameter | 32 | -| Parameter 2 of System.Version.TryFormat | parameter | 32 | -| Parameter 2 of System.__DTString.GetRegularToken | parameter | 32 | -| Parameter 2 of System.__DTString.GetSeparatorToken | parameter | 32 | -| Parameter 2 of System.__DTString.MatchLongestWords | parameter | 32 | -| Parameter 3 of Interop.Globalization.GetJapaneseEraStartDate | parameter | 32 | -| Parameter 3 of Interop.Globalization.GetLocaleInfoGroupingSizes | parameter | 32 | -| Parameter 3 of Interop.Sys.GetControlCharacters | parameter | 32 | -| Parameter 3 of Interop.Sys.Poll | parameter | 32 | -| Parameter 3 of Interop.Sys.TryGetUserNameFromPasswd | parameter | 32 | -| Parameter 3 of Microsoft.Win32.SafeHandles.SafeFileHandle.FStatCheckIO | parameter | 32 | -| Parameter 3 of Microsoft.Win32.SafeHandles.SafeFileHandle.OpenReadOnly | parameter | 32 | -| Parameter 3 of System.Buffers.IndexOfAnyAsciiSearcher.ComputeBitmap256 | parameter | 32 | -| Parameter 3 of System.Buffers.IndexOfAnyAsciiSearcher.TryIndexOfAny | parameter | 32 | -| Parameter 3 of System.Buffers.IndexOfAnyAsciiSearcher.TryIndexOfAnyExcept | parameter | 32 | -| Parameter 3 of System.Buffers.IndexOfAnyAsciiSearcher.TryLastIndexOfAny | parameter | 32 | -| Parameter 3 of System.Buffers.IndexOfAnyAsciiSearcher.TryLastIndexOfAnyExcept | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Base64.<DecodeFromUtf8>g__InvalidDataFallback\|15_0 | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Base64.DecodeFromUtf8 | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Base64.DecodeWithWhiteSpaceBlockwise | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Base64.EncodeToUtf8 | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Utf8Formatter.TryFormat | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Utf8Parser.TimeSpanSplitter.ParseComponent | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Utf8Parser.TimeSpanSplitter.TrySplitTimeSpan | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Utf8Parser.TryParseDateTimeG | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetO | parameter | 32 | -| Parameter 3 of System.Buffers.Text.Utf8Parser.TryParseDateTimeOffsetR | parameter | 32 | -| Parameter 3 of System.Byte.TryParse | parameter | 32 | -| Parameter 3 of System.Char.TryParse | parameter | 32 | -| Parameter 3 of System.Collections.Concurrent.ConcurrentQueue.SnapForObservation | parameter | 32 | -| Parameter 3 of System.Collections.Concurrent.ConcurrentQueue<!0>.SnapForObservation | parameter | 32 | -| Parameter 3 of System.Collections.Hashtable.InitHash | parameter | 32 | -| Parameter 3 of System.ConsolePal.<TryGetCursorPosition>g__AppendToStdInReaderUntil\|82_2 | parameter | 32 | -| Parameter 3 of System.ConsolePal.<TryGetCursorPosition>g__BufferUntil\|82_1 | parameter | 32 | -| Parameter 3 of System.Convert.CopyToTempBufferWithoutWhiteSpace | parameter | 32 | -| Parameter 3 of System.Convert.TryDecodeFromUtf16 | parameter | 32 | -| Parameter 3 of System.DateOnly.Deconstruct | parameter | 32 | -| Parameter 3 of System.DateOnly.TryParse | parameter | 32 | -| Parameter 3 of System.DateOnly.TryParseInternal | parameter | 32 | -| Parameter 3 of System.DateTime.Deconstruct | parameter | 32 | -| Parameter 3 of System.DateTime.GetDate | parameter | 32 | -| Parameter 3 of System.DateTime.GetTime | parameter | 32 | -| Parameter 3 of System.DateTime.GetTimePrecise | parameter | 32 | -| Parameter 3 of System.DateTime.TryParse | parameter | 32 | -| Parameter 3 of System.DateTimeFormat.TryFormatInvariantG | parameter | 32 | -| Parameter 3 of System.DateTimeFormat.TryFormatO | parameter | 32 | -| Parameter 3 of System.DateTimeFormat.TryFormatR | parameter | 32 | -| Parameter 3 of System.DateTimeFormat.TryFormatu | parameter | 32 | -| Parameter 3 of System.DateTimeOffset.Deconstruct | parameter | 32 | -| Parameter 3 of System.DateTimeOffset.TryParse | parameter | 32 | -| Parameter 3 of System.DateTimeParse.CheckNewValue | parameter | 32 | -| Parameter 3 of System.DateTimeParse.ExpandPredefinedFormat | parameter | 32 | -| Parameter 3 of System.DateTimeParse.Lex | parameter | 32 | -| Parameter 3 of System.DateTimeParse.Parse | parameter | 32 | -| Parameter 3 of System.DateTimeParse.ParseDigits | parameter | 32 | -| Parameter 3 of System.DateTimeParse.ParseISO8601 | parameter | 32 | -| Parameter 3 of System.DateTimeParse.ProcessHebrewTerminalState | parameter | 32 | -| Parameter 3 of System.DateTimeParse.ProcessTerminalState | parameter | 32 | -| Parameter 3 of System.DateTimeParse.SetIfStartsWith | parameter | 32 | -| Parameter 3 of System.DateTimeParse.TryParse | parameter | 32 | -| Parameter 3 of System.DateTimeParse.TryParseQuoteString | parameter | 32 | -| Parameter 3 of System.Decimal.DecCalc.DivByConst | parameter | 32 | -| Parameter 3 of System.Decimal.TryParse | parameter | 32 | -| Parameter 3 of System.DefaultBinder.BindToMethod | parameter | 32 | -| Parameter 3 of System.Diagnostics.Tracing.EventParameterInfo.GenerateMetadataForNamedTypeV2 | parameter | 32 | -| Parameter 3 of System.Diagnostics.Tracing.EventProvider.EncodeObject | parameter | 32 | -| Parameter 3 of System.Diagnostics.Tracing.EventProviderImpl.MarshalFilterData | parameter | 32 | -| Parameter 3 of System.Diagnostics.Tracing.EventSource.UpdateDescriptor | parameter | 32 | -| Parameter 3 of System.Diagnostics.Tracing.EventSource.Write | parameter | 32 | -| Parameter 3 of System.Double.TryParse | parameter | 32 | -| Parameter 3 of System.Enum.GetSingleFlagsEnumNameForValue | parameter | 32 | -| Parameter 3 of System.Enum.TryFormatFlagNames | parameter | 32 | -| Parameter 3 of System.Enum.TryFormatPrimitiveDefault | parameter | 32 | -| Parameter 3 of System.Enum.TryFormatPrimitiveNonDefault | parameter | 32 | -| Parameter 3 of System.Enum.TryParse | parameter | 32 | -| Parameter 3 of System.Globalization.CalendarData.EnumCalendarInfo | parameter | 32 | -| Parameter 3 of System.Globalization.CalendarData.EnumDatePatterns | parameter | 32 | -| Parameter 3 of System.Globalization.CalendarData.EnumEraNames | parameter | 32 | -| Parameter 3 of System.Globalization.CalendarData.EnumMonthNames | parameter | 32 | -| Parameter 3 of System.Globalization.CalendarData.GetCalendarInfo | parameter | 32 | -| Parameter 3 of System.Globalization.DateTimeFormatInfo.Tokenize | parameter | 32 | -| Parameter 3 of System.Globalization.DateTimeFormatInfoScanner.ScanRepeatChar | parameter | 32 | -| Parameter 3 of System.Globalization.EastAsianLunisolarCalendar.TimeToLunar | parameter | 32 | -| Parameter 3 of System.Globalization.PersianCalendar.GetDate | parameter | 32 | -| Parameter 3 of System.Globalization.SurrogateCasing.ToLower | parameter | 32 | -| Parameter 3 of System.Globalization.SurrogateCasing.ToUpper | parameter | 32 | -| Parameter 3 of System.Globalization.TimeSpanFormat.FormatCustomized | parameter | 32 | -| Parameter 3 of System.Globalization.TimeSpanParse.ParseExactDigits | parameter | 32 | -| Parameter 3 of System.Globalization.TimeSpanParse.StringParser.ParseInt | parameter | 32 | -| Parameter 3 of System.Globalization.TimeSpanParse.TryParseByFormat | parameter | 32 | -| Parameter 3 of System.Globalization.TimeSpanParse.TryParseTimeSpan | parameter | 32 | -| Parameter 3 of System.Globalization.UmAlQuraCalendar.ConvertGregorianToHijri | parameter | 32 | -| Parameter 3 of System.Globalization.UmAlQuraCalendar.ConvertHijriToGregorian | parameter | 32 | -| Parameter 3 of System.Guid.TryWriteBytes | parameter | 32 | -| Parameter 3 of System.Half.TryParse | parameter | 32 | -| Parameter 3 of System.HashCode.Initialize | parameter | 32 | -| Parameter 3 of System.IO.BufferedStream.WriteToBuffer | parameter | 32 | -| Parameter 3 of System.IO.FileSystemInfo.Create | parameter | 32 | -| Parameter 3 of System.IO.KeyParser.<ParseFromSingleChar>g__ControlAndLetterPressed\|8_1 | parameter | 32 | -| Parameter 3 of System.IO.KeyParser.TryParseTerminalInputSequence | parameter | 32 | -| Parameter 3 of System.IO.Path.TryJoin | parameter | 32 | -| Parameter 3 of System.Int16.TryParse | parameter | 32 | -| Parameter 3 of System.Int32.TryParse | parameter | 32 | -| Parameter 3 of System.Int64.TryParse | parameter | 32 | -| Parameter 3 of System.Int128.TryParse | parameter | 32 | -| Parameter 3 of System.IntPtr.TryParse | parameter | 32 | -| Parameter 3 of System.MemoryExtensions.TryWrite | parameter | 32 | -| Parameter 3 of System.Number.AccumulateDecimalDigitsIntoBigInteger | parameter | 32 | -| Parameter 3 of System.Number.BigInteger.DivRem | parameter | 32 | -| Parameter 3 of System.Number.DiyFp.GetBoundaries | parameter | 32 | -| Parameter 3 of System.Number.Dragon4Double | parameter | 32 | -| Parameter 3 of System.Number.Dragon4Half | parameter | 32 | -| Parameter 3 of System.Number.Dragon4Single | parameter | 32 | -| Parameter 3 of System.Number.GetFloatingPointMaxDigitsAndPrecision | parameter | 32 | -| Parameter 3 of System.Number.Grisu3.TryDigitGenCounted | parameter | 32 | -| Parameter 3 of System.Number.Grisu3.TryRunCounted | parameter | 32 | -| Parameter 3 of System.Number.TryParseBinaryInteger | parameter | 32 | -| Parameter 3 of System.Number.TryParseBinaryIntegerNumber | parameter | 32 | -| Parameter 3 of System.Number.TryParseBinaryIntegerStyle | parameter | 32 | -| Parameter 3 of System.Number.TryParseDecimal | parameter | 32 | -| Parameter 3 of System.Number.TryParseFloat | parameter | 32 | -| Parameter 3 of System.Number.TryParseNumber | parameter | 32 | -| Parameter 3 of System.Number.TryUInt32ToBinaryStr | parameter | 32 | -| Parameter 3 of System.Number.TryUInt32ToDecStr | parameter | 32 | -| Parameter 3 of System.Number.TryUInt64ToBinaryStr | parameter | 32 | -| Parameter 3 of System.Number.TryUInt64ToDecStr | parameter | 32 | -| Parameter 3 of System.Number.TryUInt128ToBinaryStr | parameter | 32 | -| Parameter 3 of System.Number.TryUInt128ToDecStr | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<!0>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Byte>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Char>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Decimal>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Double>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Half>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Int16>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Int32>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Int64>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Int128>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<IntPtr>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<NFloat>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<SByte>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<Single>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<UInt16>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<UInt32>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<UInt64>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<UInt128>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.INumberBase<UIntPtr>.TryParse | parameter | 32 | -| Parameter 3 of System.Numerics.Matrix4x4.Decompose | parameter | 32 | -| Parameter 3 of System.Numerics.Matrix4x4.Impl.CreateBillboard | parameter | 32 | -| Parameter 3 of System.Numerics.Matrix4x4.Impl.CreateConstrainedBillboard | parameter | 32 | -| Parameter 3 of System.Numerics.Matrix4x4.Impl.CreateScale | parameter | 32 | -| Parameter 3 of System.Numerics.Matrix4x4.Impl.Decompose | parameter | 32 | -| Parameter 3 of System.ParseNumbers.StringToInt | parameter | 32 | -| Parameter 3 of System.ParseNumbers.StringToLong | parameter | 32 | -| Parameter 3 of System.Reflection.Binder.BindToMethod | parameter | 32 | -| Parameter 3 of System.Reflection.CustomAttribute.CreateCaObject | parameter | 32 | -| Parameter 3 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | -| Parameter 3 of System.Reflection.CustomAttribute.ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 3 of System.Reflection.CustomAttribute._GetPropertyOrFieldData | parameter | 32 | -| Parameter 3 of System.Reflection.CustomAttribute._ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 3 of System.Reflection.CustomAttributeEncodedArgument.ParseAttributeArguments | parameter | 32 | -| Parameter 3 of System.Reflection.Emit.DynamicResolver.GetCodeInfo | parameter | 32 | -| Parameter 3 of System.Reflection.Emit.DynamicResolver.ResolveToken | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.Enum | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetClassLayout | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetCustomAttributeProps | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetDefaultValue | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetEventProps | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetFieldOffset | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetPInvokeMap | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetParamDefProps | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport.GetPropertyProps | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._Enum | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetClassLayout | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetCustomAttributeProps | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetDefaultValue | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetEventProps | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetFieldOffset | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetParamDefProps | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetPropertyProps | parameter | 32 | -| Parameter 3 of System.Reflection.MetadataImport._GetUserString | parameter | 32 | -| Parameter 3 of System.Reflection.MethodInvokerCommon.Initialize | parameter | 32 | -| Parameter 3 of System.Reflection.RuntimeAssembly.GetVersion | parameter | 32 | -| Parameter 3 of System.Reflection.RuntimeCustomAttributeData..ctor | parameter | 32 | -| Parameter 3 of System.Reflection.RuntimeParameterInfo.GetParameters | parameter | 32 | -| Parameter 3 of System.Resolver.GetCodeInfo | parameter | 32 | -| Parameter 3 of System.Resolver.ResolveToken | parameter | 32 | -| Parameter 3 of System.Resources.ResourceReader.GetResourceData | parameter | 32 | -| Parameter 3 of System.Resources.RuntimeResourceSet.ReadValue | parameter | 32 | -| Parameter 3 of System.Runtime.CompilerServices.ConditionalWeakTable.Container.TryGetEntry | parameter | 32 | -| Parameter 3 of System.Runtime.CompilerServices.ConditionalWeakTable<!0,!1>.Container.TryGetEntry | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.BindToObject | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.BindToStorage | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.ComposeWith | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.GetDisplayName | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.GetTimeOfLastChange | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.IMoniker.Reduce | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeComp.BindType | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.AddressOfMember | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.CreateInstance | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation2 | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetFuncCustData | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetFuncIndexOfMemId | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetImplTypeCustData | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetParamCustData | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetVarCustData | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo.AddressOfMember | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo.CreateInstance | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetDocumentation | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation2 | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComWrappers.ComputeVtables | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.MemoryMarshal.TryGetMemoryManager | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.MemoryMarshal.TryGetString | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.NFloat.TryParse | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.NativeLibrary.TryLoad | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler.BeginInvoke | parameter | 32 | -| Parameter 3 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler.Invoke | parameter | 32 | -| Parameter 3 of System.RuntimeType.FilterHelper | parameter | 32 | -| Parameter 3 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateLiteralFields | parameter | 32 | -| Parameter 3 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateRtFields | parameter | 32 | -| Parameter 3 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache<!0>.PopulateLiteralFields | parameter | 32 | -| Parameter 3 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache<!0>.PopulateRtFields | parameter | 32 | -| Parameter 3 of System.RuntimeTypeHandle.GetActivationInfo | parameter | 32 | -| Parameter 3 of System.SByte.TryParse | parameter | 32 | -| Parameter 3 of System.Single.TryParse | parameter | 32 | -| Parameter 3 of System.String.MakeSeparatorListAny | parameter | 32 | -| Parameter 3 of System.String.TryGetSpan | parameter | 32 | -| Parameter 3 of System.StubHelpers.AnsiCharMarshaler.DoAnsiConversion | parameter | 32 | -| Parameter 3 of System.StubHelpers.VBByValStrMarshaler.ConvertToNative | parameter | 32 | -| Parameter 3 of System.TermInfo.ParameterizedStrings.GetDynamicOrStaticVariables | parameter | 32 | -| Parameter 3 of System.Text.ASCIIEncoding.DecodeFirstRune | parameter | 32 | -| Parameter 3 of System.Text.ASCIIEncoding.EncodeRune | parameter | 32 | -| Parameter 3 of System.Text.ASCIIEncoding.TryGetBytes | parameter | 32 | -| Parameter 3 of System.Text.ASCIIEncoding.TryGetChars | parameter | 32 | -| Parameter 3 of System.Text.CompositeFormat.TryParseLiterals | parameter | 32 | -| Parameter 3 of System.Text.DecoderFallbackBuffer.InternalFallback | parameter | 32 | -| Parameter 3 of System.Text.DecoderNLS.DrainLeftoverDataForGetChars | parameter | 32 | -| Parameter 3 of System.Text.EncoderFallbackBuffer.TryInternalFallbackGetBytes | parameter | 32 | -| Parameter 3 of System.Text.EncoderNLS.TryDrainLeftoverDataForGetBytes | parameter | 32 | -| Parameter 3 of System.Text.Encoding.DecodeFirstRune | parameter | 32 | -| Parameter 3 of System.Text.Encoding.EncodeRune | parameter | 32 | -| Parameter 3 of System.Text.Encoding.TryGetBytes | parameter | 32 | -| Parameter 3 of System.Text.Encoding.TryGetChars | parameter | 32 | -| Parameter 3 of System.Text.Latin1Encoding.DecodeFirstRune | parameter | 32 | -| Parameter 3 of System.Text.Latin1Encoding.EncodeRune | parameter | 32 | -| Parameter 3 of System.Text.Latin1Encoding.TryGetBytes | parameter | 32 | -| Parameter 3 of System.Text.Latin1Encoding.TryGetChars | parameter | 32 | -| Parameter 3 of System.Text.StringBuilder.MakeRoom | parameter | 32 | -| Parameter 3 of System.Text.StringBuilder.Remove | parameter | 32 | -| Parameter 3 of System.Text.StringBuilder.ReplaceInPlaceAtChunk | parameter | 32 | -| Parameter 3 of System.Text.UTF8Encoding.DecodeFirstRune | parameter | 32 | -| Parameter 3 of System.Text.UTF8Encoding.EncodeRune | parameter | 32 | -| Parameter 3 of System.Text.UTF8Encoding.TryGetBytes | parameter | 32 | -| Parameter 3 of System.Text.UTF8Encoding.TryGetChars | parameter | 32 | -| Parameter 3 of System.Text.UTF8Encoding.UTF8EncodingSealed.TryGetBytes | parameter | 32 | -| Parameter 3 of System.Text.Unicode.TextSegmentationUtility.DecodeFirstRune.Invoke | parameter | 32 | -| Parameter 3 of System.Text.Unicode.TextSegmentationUtility.DecodeFirstRune<!0>.Invoke | parameter | 32 | -| Parameter 3 of System.Text.Unicode.Utf8.FromUtf16 | parameter | 32 | -| Parameter 3 of System.Text.Unicode.Utf8.ToUtf16 | parameter | 32 | -| Parameter 3 of System.Text.Unicode.Utf8.ToUtf16PreservingReplacement | parameter | 32 | -| Parameter 3 of System.Text.Unicode.Utf8.TryWrite | parameter | 32 | -| Parameter 3 of System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.<AppendEnum>g__GrowAndAppendFormatted\|21_0 | parameter | 32 | -| Parameter 3 of System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler.<AppendSpanFormattable>g__GrowAndAppendFormatted\|20_0 | parameter | 32 | -| Parameter 3 of System.Text.Unicode.Utf8Utility.GetPointerToFirstInvalidByte | parameter | 32 | -| Parameter 3 of System.Text.Unicode.Utf16Utility.GetPointerToFirstInvalidChar | parameter | 32 | -| Parameter 3 of System.Threading.Mutex..ctor | parameter | 32 | -| Parameter 3 of System.Threading.Mutex.CreateMutexCore | parameter | 32 | -| Parameter 3 of System.Threading.SpinLock.CompareExchange | parameter | 32 | -| Parameter 3 of System.Threading.SpinLock.ContinueTryEnterWithThreadTracking | parameter | 32 | -| Parameter 3 of System.Threading.Tasks.AwaitTaskContinuation.RunCallback | parameter | 32 | -| Parameter 3 of System.Threading.Tasks.Task.AtomicStateUpdate | parameter | 32 | -| Parameter 3 of System.Threading.ThreadPool.GetNextConfigUInt32Value | parameter | 32 | -| Parameter 3 of System.TimeOnly.Deconstruct | parameter | 32 | -| Parameter 3 of System.TimeOnly.TryParse | parameter | 32 | -| Parameter 3 of System.TimeOnly.TryParseInternal | parameter | 32 | -| Parameter 3 of System.TimeSpan.TryParseExact | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.GetAdjustmentRuleForTime | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.GetDisplayName | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.GetUtcOffsetFromUtc | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TZif_ParseMDateRule | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TZif_ParsePosixDateTime | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TryConvertWindowsIdToIanaId | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TryGetEndOfDstIfYearStartWithDst | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TryGetStartOfDstIfYearEndWithDst | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TryGetTimeZone | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TryGetTimeZoneFromLocalMachine | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.TryGetTimeZoneUsingId | parameter | 32 | -| Parameter 3 of System.TimeZoneInfo.ValidateTimeZoneInfo | parameter | 32 | -| Parameter 3 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 3 of System.UInt16.TryParse | parameter | 32 | -| Parameter 3 of System.UInt32.TryParse | parameter | 32 | -| Parameter 3 of System.UInt64.TryParse | parameter | 32 | -| Parameter 3 of System.UInt128.TryParse | parameter | 32 | -| Parameter 3 of System.UIntPtr.TryParse | parameter | 32 | -| Parameter 3 of System.Version.TryFormat | parameter | 32 | -| Parameter 3 of System.Version.TryFormatCore | parameter | 32 | -| Parameter 3 of System.Version.TryParseComponent | parameter | 32 | -| Parameter 3 of System.__DTString.GetSeparatorToken | parameter | 32 | -| Parameter 3 of System.__DTString.MatchSpecifiedWords | parameter | 32 | -| Parameter 4 of Interop.CallStringMethod | parameter | 32 | -| Parameter 4 of Microsoft.Win32.SafeHandles.SafeFileHandle.Open | parameter | 32 | -| Parameter 4 of System.Buffers.Text.Utf8Parser.TryCreateDateTimeOffset | parameter | 32 | -| Parameter 4 of System.Buffers.Text.Utf8Parser.TryParseAsSpecialFloatingPoint | parameter | 32 | -| Parameter 4 of System.Buffers.Text.Utf8Parser.TryParseNumber | parameter | 32 | -| Parameter 4 of System.Collections.Concurrent.ConcurrentQueue.SnapForObservation | parameter | 32 | -| Parameter 4 of System.Collections.Concurrent.ConcurrentQueue<!0>.SnapForObservation | parameter | 32 | -| Parameter 4 of System.Collections.Concurrent.SingleProducerSingleConsumerQueue.TryDequeueSlow | parameter | 32 | -| Parameter 4 of System.Collections.Concurrent.SingleProducerSingleConsumerQueue<!0>.TryDequeueSlow | parameter | 32 | -| Parameter 4 of System.Collections.Hashtable.InitHash | parameter | 32 | -| Parameter 4 of System.ConsolePal.<TryGetCursorPosition>g__AppendToStdInReaderUntil\|82_2 | parameter | 32 | -| Parameter 4 of System.ConsolePal.<TryGetCursorPosition>g__ReadRowOrCol\|82_3 | parameter | 32 | -| Parameter 4 of System.DateOnly.TryParseExact | parameter | 32 | -| Parameter 4 of System.DateOnly.TryParseExactInternal | parameter | 32 | -| Parameter 4 of System.DateTime.GetTime | parameter | 32 | -| Parameter 4 of System.DateTime.GetTimePrecise | parameter | 32 | -| Parameter 4 of System.DateTime.TryParseExact | parameter | 32 | -| Parameter 4 of System.DateTimeFormat.FormatCustomized | parameter | 32 | -| Parameter 4 of System.DateTimeFormat.FormatCustomizedTimeZone | parameter | 32 | -| Parameter 4 of System.DateTimeFormat.TryFormatDateOnlyO | parameter | 32 | -| Parameter 4 of System.DateTimeFormat.TryFormatTimeOnlyR | parameter | 32 | -| Parameter 4 of System.DateTimeOffset.TryParseExact | parameter | 32 | -| Parameter 4 of System.DateTimeParse.DoStrictParse | parameter | 32 | -| Parameter 4 of System.DateTimeParse.Lex | parameter | 32 | -| Parameter 4 of System.DateTimeParse.ParseByFormat | parameter | 32 | -| Parameter 4 of System.DateTimeParse.ParseExact | parameter | 32 | -| Parameter 4 of System.DateTimeParse.ParseExactMultiple | parameter | 32 | -| Parameter 4 of System.DateTimeParse.SetIfStartsWith | parameter | 32 | -| Parameter 4 of System.DateTimeParse.TryParse | parameter | 32 | -| Parameter 4 of System.DateTimeParse.TryParseExact | parameter | 32 | -| Parameter 4 of System.DateTimeParse.TryParseExactMultiple | parameter | 32 | -| Parameter 4 of System.Diagnostics.Debug.AssertInterpolatedStringHandler..ctor | parameter | 32 | -| Parameter 4 of System.Diagnostics.Debug.WriteIfInterpolatedStringHandler..ctor | parameter | 32 | -| Parameter 4 of System.Diagnostics.Tracing.ActivityTracker.OnStart | parameter | 32 | -| Parameter 4 of System.Diagnostics.Tracing.ActivityTracker.OnStop | parameter | 32 | -| Parameter 4 of System.Diagnostics.Tracing.EventSource.UpdateDescriptor | parameter | 32 | -| Parameter 4 of System.Diagnostics.Tracing.EventSource.Write | parameter | 32 | -| Parameter 4 of System.Enum.<TryParse>g__TryParseRareTypes\|41_0 | parameter | 32 | -| Parameter 4 of System.Enum.TryFormatFlagNames | parameter | 32 | -| Parameter 4 of System.Enum.TryParse | parameter | 32 | -| Parameter 4 of System.Enum.TryParseByName | parameter | 32 | -| Parameter 4 of System.Enum.TryParseByValueOrName | parameter | 32 | -| Parameter 4 of System.Enum.TryParseRareTypeByValueOrName | parameter | 32 | -| Parameter 4 of System.Globalization.CalendarData.EnumMonthNames | parameter | 32 | -| Parameter 4 of System.Globalization.CompareInfo.IndexOf | parameter | 32 | -| Parameter 4 of System.Globalization.CompareInfo.IsPrefix | parameter | 32 | -| Parameter 4 of System.Globalization.CompareInfo.IsSuffix | parameter | 32 | -| Parameter 4 of System.Globalization.CompareInfo.LastIndexOf | parameter | 32 | -| Parameter 4 of System.Globalization.DateTimeFormatInfo.Tokenize | parameter | 32 | -| Parameter 4 of System.Globalization.EastAsianLunisolarCalendar.GregorianToLunar | parameter | 32 | -| Parameter 4 of System.Globalization.EastAsianLunisolarCalendar.LunarToGregorian | parameter | 32 | -| Parameter 4 of System.Globalization.EastAsianLunisolarCalendar.TimeToLunar | parameter | 32 | -| Parameter 4 of System.Globalization.PersianCalendar.GetDate | parameter | 32 | -| Parameter 4 of System.Globalization.TimeSpanFormat.TryFormatStandard | parameter | 32 | -| Parameter 4 of System.Globalization.TimeSpanParse.ParseExactDigits | parameter | 32 | -| Parameter 4 of System.Globalization.TimeSpanParse.TryParseExact | parameter | 32 | -| Parameter 4 of System.Globalization.TimeSpanParse.TryParseExactMultiple | parameter | 32 | -| Parameter 4 of System.Globalization.TimeSpanParse.TryParseExactMultipleTimeSpan | parameter | 32 | -| Parameter 4 of System.Globalization.TimeSpanParse.TryParseExactTimeSpan | parameter | 32 | -| Parameter 4 of System.Globalization.UmAlQuraCalendar.ConvertHijriToGregorian | parameter | 32 | -| Parameter 4 of System.IO.BufferedStream.ReadFromBuffer | parameter | 32 | -| Parameter 4 of System.IO.KeyParser.Parse | parameter | 32 | -| Parameter 4 of System.IO.Path.TryJoin | parameter | 32 | -| Parameter 4 of System.MemoryExtensions.TryWriteInterpolatedStringHandler..ctor | parameter | 32 | -| Parameter 4 of System.Number.<TryFormatInt64>g__TryFormatInt64Slow\|46_0 | parameter | 32 | -| Parameter 4 of System.Number.<TryFormatInt128>g__TryFormatInt128Slow\|50_0 | parameter | 32 | -| Parameter 4 of System.Number.<TryFormatUInt32>g__TryFormatUInt32Slow\|44_0 | parameter | 32 | -| Parameter 4 of System.Number.<TryFormatUInt64>g__TryFormatUInt64Slow\|48_0 | parameter | 32 | -| Parameter 4 of System.Number.<TryFormatUInt128>g__TryFormatUInt128Slow\|52_0 | parameter | 32 | -| Parameter 4 of System.Number.Grisu3.TryDigitGenCounted | parameter | 32 | -| Parameter 4 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | -| Parameter 4 of System.Number.Grisu3.TryRunCounted | parameter | 32 | -| Parameter 4 of System.Number.Grisu3.TryRunShortest | parameter | 32 | -| Parameter 4 of System.Number.TryFormatDecimal | parameter | 32 | -| Parameter 4 of System.Number.TryFormatDouble | parameter | 32 | -| Parameter 4 of System.Number.TryFormatHalf | parameter | 32 | -| Parameter 4 of System.Number.TryFormatInt64 | parameter | 32 | -| Parameter 4 of System.Number.TryFormatInt128 | parameter | 32 | -| Parameter 4 of System.Number.TryFormatSingle | parameter | 32 | -| Parameter 4 of System.Number.TryFormatUInt32 | parameter | 32 | -| Parameter 4 of System.Number.TryFormatUInt64 | parameter | 32 | -| Parameter 4 of System.Number.TryFormatUInt128 | parameter | 32 | -| Parameter 4 of System.Number.TryInt32ToHexStr | parameter | 32 | -| Parameter 4 of System.Number.TryInt64ToHexStr | parameter | 32 | -| Parameter 4 of System.Number.TryInt128ToHexStr | parameter | 32 | -| Parameter 4 of System.Number.TryNegativeInt32ToDecStr | parameter | 32 | -| Parameter 4 of System.Number.TryNegativeInt64ToDecStr | parameter | 32 | -| Parameter 4 of System.Number.TryNegativeInt128ToDecStr | parameter | 32 | -| Parameter 4 of System.Numerics.Matrix4x4.Impl.CreateConstrainedBillboard | parameter | 32 | -| Parameter 4 of System.Reflection.AssemblyName.EscapeString | parameter | 32 | -| Parameter 4 of System.Reflection.Associates.AssignAssociates | parameter | 32 | -| Parameter 4 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | -| Parameter 4 of System.Reflection.CustomAttribute._GetPropertyOrFieldData | parameter | 32 | -| Parameter 4 of System.Reflection.CustomAttribute._ParseAttributeUsageAttribute | parameter | 32 | -| Parameter 4 of System.Reflection.Emit.DynamicResolver.ResolveToken | parameter | 32 | -| Parameter 4 of System.Reflection.MetadataImport.GetDefaultValue | parameter | 32 | -| Parameter 4 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 4 of System.Reflection.MetadataImport.GetPInvokeMap | parameter | 32 | -| Parameter 4 of System.Reflection.MetadataImport.GetPropertyProps | parameter | 32 | -| Parameter 4 of System.Reflection.MetadataImport._GetDefaultValue | parameter | 32 | -| Parameter 4 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 4 of System.Reflection.MetadataImport._GetPropertyProps | parameter | 32 | -| Parameter 4 of System.Reflection.NullabilityInfoContext.GetNullabilityInfo | parameter | 32 | -| Parameter 4 of System.Reflection.RuntimeAssembly.GetVersion | parameter | 32 | -| Parameter 4 of System.Reflection.RuntimeEventInfo..ctor | parameter | 32 | -| Parameter 4 of System.Reflection.RuntimePropertyInfo..ctor | parameter | 32 | -| Parameter 4 of System.Resolver.ResolveToken | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.IMoniker.BindToObject | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.IMoniker.BindToStorage | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.IMoniker.ParseDisplayName | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.IMoniker.Reduce | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeComp.Bind | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeComp.BindType | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation2 | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetNames | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetParamCustData | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.Invoke | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetDocumentation | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetNames | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeInfo.Invoke | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation2 | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComWrappers.CallComputeVtables | parameter | 32 | -| Parameter 4 of System.Runtime.InteropServices.ComWrappers.TryGetOrCreateComInterfaceForObjectInternal | parameter | 32 | -| Parameter 4 of System.RuntimeFieldHandle.GetValue | parameter | 32 | -| Parameter 4 of System.RuntimeType.FilterHelper | parameter | 32 | -| Parameter 4 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateEvents | parameter | 32 | -| Parameter 4 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache<!0>.PopulateEvents | parameter | 32 | -| Parameter 4 of System.RuntimeTypeHandle.GetActivationInfo | parameter | 32 | -| Parameter 4 of System.TermInfo.ParameterizedStrings.EvaluateInternal | parameter | 32 | -| Parameter 4 of System.Text.ASCIIEncoding.GetByteCountFast | parameter | 32 | -| Parameter 4 of System.Text.ASCIIEncoding.GetCharCountFast | parameter | 32 | -| Parameter 4 of System.Text.Decoder.Convert | parameter | 32 | -| Parameter 4 of System.Text.DecoderFallbackBuffer.TryInternalFallbackGetChars | parameter | 32 | -| Parameter 4 of System.Text.Encoder.Convert | parameter | 32 | -| Parameter 4 of System.Text.EncoderFallbackBuffer.TryInternalFallbackGetBytes | parameter | 32 | -| Parameter 4 of System.Text.EncoderNLS.TryDrainLeftoverDataForGetBytes | parameter | 32 | -| Parameter 4 of System.Text.Encoding.GetByteCountFast | parameter | 32 | -| Parameter 4 of System.Text.Encoding.GetCharCountFast | parameter | 32 | -| Parameter 4 of System.Text.Latin1Encoding.GetByteCountFast | parameter | 32 | -| Parameter 4 of System.Text.Latin1Encoding.GetCharCountFast | parameter | 32 | -| Parameter 4 of System.Text.StringBuilder.MakeRoom | parameter | 32 | -| Parameter 4 of System.Text.StringBuilder.Remove | parameter | 32 | -| Parameter 4 of System.Text.UTF8Encoding.GetByteCountFast | parameter | 32 | -| Parameter 4 of System.Text.UTF8Encoding.GetCharCountFast | parameter | 32 | -| Parameter 4 of System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler..ctor | parameter | 32 | -| Parameter 4 of System.Text.Unicode.Utf8Utility.TranscodeToUtf8 | parameter | 32 | -| Parameter 4 of System.Text.Unicode.Utf8Utility.TranscodeToUtf16 | parameter | 32 | -| Parameter 4 of System.Threading.EventWaitHandle..ctor | parameter | 32 | -| Parameter 4 of System.Threading.EventWaitHandle.CreateEventCore | parameter | 32 | -| Parameter 4 of System.Threading.Semaphore..ctor | parameter | 32 | -| Parameter 4 of System.Threading.Semaphore.CreateSemaphoreCore | parameter | 32 | -| Parameter 4 of System.TimeOnly.Deconstruct | parameter | 32 | -| Parameter 4 of System.TimeOnly.TryParseExact | parameter | 32 | -| Parameter 4 of System.TimeOnly.TryParseExactInternal | parameter | 32 | -| Parameter 4 of System.TimeSpan.TryParseExact | parameter | 32 | -| Parameter 4 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | -| Parameter 4 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | -| Parameter 4 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 5 of System.Buffers.Text.Utf8Parser.TryParseAsSpecialFloatingPoint | parameter | 32 | -| Parameter 5 of System.DateTimeFormat.TryFormatDateOnlyR | parameter | 32 | -| Parameter 5 of System.DateTimeFormat.TryFormatTimeOnlyO | parameter | 32 | -| Parameter 5 of System.DateTimeParse.Lex | parameter | 32 | -| Parameter 5 of System.DateTimeParse.TryParseExact | parameter | 32 | -| Parameter 5 of System.DateTimeParse.TryParseExactMultiple | parameter | 32 | -| Parameter 5 of System.Diagnostics.Tracing.ActivityTracker.OnStart | parameter | 32 | -| Parameter 5 of System.Diagnostics.Tracing.EventSource.Write | parameter | 32 | -| Parameter 5 of System.Enum.TryFindFlagsNames | parameter | 32 | -| Parameter 5 of System.Globalization.EastAsianLunisolarCalendar.GregorianToLunar | parameter | 32 | -| Parameter 5 of System.Globalization.EastAsianLunisolarCalendar.LunarToGregorian | parameter | 32 | -| Parameter 5 of System.Globalization.UmAlQuraCalendar.ConvertHijriToGregorian | parameter | 32 | -| Parameter 5 of System.MemoryExtensions.TryWriteInterpolatedStringHandler..ctor | parameter | 32 | -| Parameter 5 of System.Number.<TryFormatInt32>g__TryFormatInt32Slow\|42_0 | parameter | 32 | -| Parameter 5 of System.Number.Grisu3.TryDigitGenShortest | parameter | 32 | -| Parameter 5 of System.Number.Grisu3.TryRoundWeedCounted | parameter | 32 | -| Parameter 5 of System.Number.Grisu3.TryRunShortest | parameter | 32 | -| Parameter 5 of System.Number.TryFormatInt32 | parameter | 32 | -| Parameter 5 of System.Reflection.AssemblyName.EnsureDestinationSize | parameter | 32 | -| Parameter 5 of System.Reflection.Associates.AssignAssociates | parameter | 32 | -| Parameter 5 of System.Reflection.CustomAttribute.CreateCaObject | parameter | 32 | -| Parameter 5 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | -| Parameter 5 of System.Reflection.CustomAttribute._GetPropertyOrFieldData | parameter | 32 | -| Parameter 5 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 5 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComTypes.IMoniker.ParseDisplayName | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeComp.Bind | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.GetDocumentation | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeInfo.GetDocumentation | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeLib2.FindName | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeLib2.GetDocumentation | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeLib.FindName | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation | parameter | 32 | -| Parameter 5 of System.Runtime.InteropServices.ComWrappers.TryGetOrCreateObjectForComInstanceInternal | parameter | 32 | -| Parameter 5 of System.RuntimeType.FilterHelper | parameter | 32 | -| Parameter 5 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateRtFields | parameter | 32 | -| Parameter 5 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache<!0>.PopulateRtFields | parameter | 32 | -| Parameter 5 of System.TermInfo.ParameterizedStrings.EvaluateInternal | parameter | 32 | -| Parameter 5 of System.Text.ASCIIEncoding.GetBytesFast | parameter | 32 | -| Parameter 5 of System.Text.ASCIIEncoding.GetCharsFast | parameter | 32 | -| Parameter 5 of System.Text.Decoder.Convert | parameter | 32 | -| Parameter 5 of System.Text.Encoder.Convert | parameter | 32 | -| Parameter 5 of System.Text.Encoding.GetBytesFast | parameter | 32 | -| Parameter 5 of System.Text.Encoding.GetCharsFast | parameter | 32 | -| Parameter 5 of System.Text.Latin1Encoding.GetBytesFast | parameter | 32 | -| Parameter 5 of System.Text.Latin1Encoding.GetCharsFast | parameter | 32 | -| Parameter 5 of System.Text.UTF8Encoding.GetBytesFast | parameter | 32 | -| Parameter 5 of System.Text.UTF8Encoding.GetCharsFast | parameter | 32 | -| Parameter 5 of System.Text.Unicode.Utf8.TryWriteInterpolatedStringHandler..ctor | parameter | 32 | -| Parameter 5 of System.Text.Unicode.Utf8Utility.TranscodeToUtf8 | parameter | 32 | -| Parameter 5 of System.Text.Unicode.Utf8Utility.TranscodeToUtf16 | parameter | 32 | -| Parameter 5 of System.TimeOnly.Deconstruct | parameter | 32 | -| Parameter 5 of System.TimeZoneInfo.GetIsDaylightSavingsFromUtc | parameter | 32 | -| Parameter 5 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | -| Parameter 5 of System.TimeZoneInfo.TZif_ParseRaw | parameter | 32 | -| Parameter 5 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 6 of System.Buffers.Text.Utf8Parser.TryCreateTimeSpan | parameter | 32 | -| Parameter 6 of System.Enum.TryFindFlagsNames | parameter | 32 | -| Parameter 6 of System.Globalization.EastAsianLunisolarCalendar.GregorianToLunar | parameter | 32 | -| Parameter 6 of System.Globalization.EastAsianLunisolarCalendar.LunarToGregorian | parameter | 32 | -| Parameter 6 of System.Globalization.TimeSpanParse.TryTimeToTicks | parameter | 32 | -| Parameter 6 of System.Reflection.Associates.AssignAssociates | parameter | 32 | -| Parameter 6 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | -| Parameter 6 of System.Reflection.CustomAttribute.GetPropertyOrFieldData | parameter | 32 | -| Parameter 6 of System.Reflection.CustomAttribute._GetPropertyOrFieldData | parameter | 32 | -| Parameter 6 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 6 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 6 of System.Runtime.InteropServices.ComTypes.ITypeComp.Bind | parameter | 32 | -| Parameter 6 of System.RuntimeFieldHandle.SetValue | parameter | 32 | -| Parameter 6 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache.PopulateProperties | parameter | 32 | -| Parameter 6 of System.RuntimeType.RuntimeTypeCache.MemberInfoCache<!0>.PopulateProperties | parameter | 32 | -| Parameter 6 of System.Text.Decoder.Convert | parameter | 32 | -| Parameter 6 of System.Text.DecoderNLS.Convert | parameter | 32 | -| Parameter 6 of System.Text.Encoder.Convert | parameter | 32 | -| Parameter 6 of System.Text.EncoderNLS.Convert | parameter | 32 | -| Parameter 6 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | -| Parameter 6 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 7 of Microsoft.Win32.SafeHandles.SafeFileHandle.Init | parameter | 32 | -| Parameter 7 of Microsoft.Win32.SafeHandles.SafeFileHandle.Open | parameter | 32 | -| Parameter 7 of System.Buffers.Text.Utf8Parser.TryCreateDateTimeOffsetInterpretingDataAsLocalTime | parameter | 32 | -| Parameter 7 of System.DateTime.TryCreate | parameter | 32 | -| Parameter 7 of System.DefaultBinder.BindToMethod | parameter | 32 | -| Parameter 7 of System.Number.Dragon4 | parameter | 32 | -| Parameter 7 of System.Reflection.Associates.AssignAssociates | parameter | 32 | -| Parameter 7 of System.Reflection.Binder.BindToMethod | parameter | 32 | -| Parameter 7 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | -| Parameter 7 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 7 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 7 of System.Runtime.InteropServices.ComTypes.ITypeInfo2.Invoke | parameter | 32 | -| Parameter 7 of System.Runtime.InteropServices.ComTypes.ITypeInfo.Invoke | parameter | 32 | -| Parameter 7 of System.Text.Decoder.Convert | parameter | 32 | -| Parameter 7 of System.Text.DecoderNLS.Convert | parameter | 32 | -| Parameter 7 of System.Text.Encoder.Convert | parameter | 32 | -| Parameter 7 of System.Text.EncoderNLS.Convert | parameter | 32 | -| Parameter 7 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | -| Parameter 7 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 8 of Microsoft.Win32.SafeHandles.SafeFileHandle.Init | parameter | 32 | -| Parameter 8 of Microsoft.Win32.SafeHandles.SafeFileHandle.Open | parameter | 32 | -| Parameter 8 of System.Activator.CreateInstanceInternal | parameter | 32 | -| Parameter 8 of System.Buffers.Text.Utf8Parser.TryCreateDateTime | parameter | 32 | -| Parameter 8 of System.Reflection.Associates.AssignAssociates | parameter | 32 | -| Parameter 8 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | -| Parameter 8 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 8 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 8 of System.Text.Decoder.Convert | parameter | 32 | -| Parameter 8 of System.Text.DecoderNLS.Convert | parameter | 32 | -| Parameter 8 of System.Text.Encoder.Convert | parameter | 32 | -| Parameter 8 of System.Text.EncoderNLS.Convert | parameter | 32 | -| Parameter 8 of System.TimeZoneInfo.TZif_ParsePosixFormat | parameter | 32 | -| Parameter 8 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 9 of System.Globalization.Calendar.TryToDateTime | parameter | 32 | -| Parameter 9 of System.Globalization.GregorianCalendar.TryToDateTime | parameter | 32 | -| Parameter 9 of System.Reflection.Associates.AssignAssociates | parameter | 32 | -| Parameter 9 of System.Reflection.CustomAttribute.FilterCustomAttributeRecord | parameter | 32 | -| Parameter 9 of System.Reflection.MetadataImport.GetMarshalAs | parameter | 32 | -| Parameter 9 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 9 of System.Text.Decoder.Convert | parameter | 32 | -| Parameter 9 of System.Text.DecoderNLS.Convert | parameter | 32 | -| Parameter 9 of System.Text.Encoder.Convert | parameter | 32 | -| Parameter 9 of System.Text.EncoderNLS.Convert | parameter | 32 | -| Parameter 9 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 10 of Microsoft.Win32.SafeHandles.SafeFileHandle.Open | parameter | 32 | -| Parameter 10 of System.Buffers.Text.Utf8Parser.TryCreateDateTimeOffset | parameter | 32 | -| Parameter 10 of System.Diagnostics.StackFrameHelper.GetSourceLineInfoDelegate.Invoke | parameter | 32 | -| Parameter 10 of System.Reflection.Associates.AssignAssociates | parameter | 32 | -| Parameter 10 of System.Reflection.MetadataImport._GetMarshalAs | parameter | 32 | -| Parameter 10 of System.Text.Decoder.Convert | parameter | 32 | -| Parameter 10 of System.Text.DecoderNLS.Convert | parameter | 32 | -| Parameter 10 of System.Text.Encoder.Convert | parameter | 32 | -| Parameter 10 of System.Text.EncoderNLS.Convert | parameter | 32 | -| Parameter 10 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 11 of System.Diagnostics.StackFrameHelper.GetSourceLineInfoDelegate.Invoke | parameter | 32 | -| Parameter 11 of System.Reflection.Associates.AssignAssociates | parameter | 32 | -| Parameter 11 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 12 of System.Diagnostics.StackFrameHelper.GetSourceLineInfoDelegate.Invoke | parameter | 32 | -| Parameter 12 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 13 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 14 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 15 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 16 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 17 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 18 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 19 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 20 of System.TupleExtensions.Deconstruct | parameter | 32 | -| Parameter 21 of System.TupleExtensions.Deconstruct | parameter | 32 | -| System.Collections.Generic.Dictionary.CollectionsMarshalHelper.GetValueRefOrAddDefault | method | 32 | -| System.Collections.Generic.Dictionary.FindValue | method | 32 | -| System.Collections.Generic.Dictionary.GetBucket | method | 32 | -| System.Collections.Generic.Dictionary<!0,!1>.CollectionsMarshalHelper.GetValueRefOrAddDefault | method | 32 | -| System.Collections.Generic.Dictionary<!0,!1>.FindValue | method | 32 | -| System.Collections.Generic.Dictionary<!0,!1>.GetBucket | method | 32 | -| System.Collections.Generic.HashSet.GetBucketRef | method | 32 | -| System.Collections.Generic.HashSet<!0>.GetBucketRef | method | 32 | -| System.Collections.Generic.ValueListBuilder.Item | property | 32 | -| System.Collections.Generic.ValueListBuilder.get_Item | method | 32 | -| System.Collections.Generic.ValueListBuilder<!0>.get_Item | method | 32 | -| System.Collections.Generic.ValueListBuilder<Int32>.get_Item | method | 32 | -| System.Decimal.AsMutable | method | 32 | -| System.Diagnostics.Tracing.EventWrittenEventArgs.Metadata | property | 32 | -| System.Diagnostics.Tracing.EventWrittenEventArgs.get_Metadata | method | 32 | -| System.Nullable.GetValueRefOrDefaultRef | method | 32 | -| System.Numerics.Matrix3x2.AsImpl | method | 32 | -| System.Numerics.Matrix3x2.AsROImpl | method | 32 | -| System.Numerics.Matrix3x2.Impl.AsM3x2 | method | 32 | -| System.Numerics.Matrix4x4.AsImpl | method | 32 | -| System.Numerics.Matrix4x4.AsROImpl | method | 32 | -| System.Numerics.Matrix4x4.Impl.AsM4x4 | method | 32 | -| System.ReadOnlySpan.Enumerator.Current | property | 32 | -| System.ReadOnlySpan.Enumerator.get_Current | method | 32 | -| System.ReadOnlySpan.GetPinnableReference | method | 32 | -| System.ReadOnlySpan.Item | property | 32 | -| System.ReadOnlySpan.get_Item | method | 32 | -| System.ReadOnlySpan<!0>.get_Item | method | 32 | -| System.ReadOnlySpan<!1>.get_Item | method | 32 | -| System.ReadOnlySpan<Boolean>.get_Item | method | 32 | -| System.ReadOnlySpan<Byte>.GetPinnableReference | method | 32 | -| System.ReadOnlySpan<Byte>.get_Item | method | 32 | -| System.ReadOnlySpan<Char>.get_Item | method | 32 | -| System.ReadOnlySpan<Double>.get_Item | method | 32 | -| System.ReadOnlySpan<Int16>.get_Item | method | 32 | -| System.ReadOnlySpan<Int32>.get_Item | method | 32 | -| System.ReadOnlySpan<Int128>.get_Item | method | 32 | -| System.ReadOnlySpan<IntPtr>.GetPinnableReference | method | 32 | -| System.ReadOnlySpan<IntPtr>.get_Item | method | 32 | -| System.ReadOnlySpan<KeyValuePair<!0,!1>>.get_Item | method | 32 | -| System.ReadOnlySpan<Object>.get_Item | method | 32 | -| System.ReadOnlySpan<SafeWaitHandle>.get_Item | method | 32 | -| System.ReadOnlySpan<Single>.get_Item | method | 32 | -| System.ReadOnlySpan<String>.get_Item | method | 32 | -| System.ReadOnlySpan<Task>.get_Item | method | 32 | -| System.ReadOnlySpan<UInt16>.get_Item | method | 32 | -| System.ReadOnlySpan<UInt32>.get_Item | method | 32 | -| System.ReadOnlySpan<UInt64>.get_Item | method | 32 | -| System.ReadOnlySpan<WaitHandle>.get_Item | method | 32 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AsyncStateMachineBox.Context | property | 32 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AsyncStateMachineBox.get_Context | method | 32 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.AsyncStateMachineBox<!0>.get_Context | method | 32 | -| System.Runtime.CompilerServices.AsyncTaskMethodBuilder<!0>.AsyncStateMachineBox<IAsyncStateMachine>.get_Context | method | 32 | -| System.Runtime.CompilerServices.CastCache.Element | method | 32 | -| System.Runtime.CompilerServices.CastCache.HashShift | method | 32 | -| System.Runtime.CompilerServices.CastCache.TableData | method | 32 | -| System.Runtime.CompilerServices.CastCache.TableMask | method | 32 | -| System.Runtime.CompilerServices.CastHelpers.LdelemaRef | method | 32 | -| System.Runtime.CompilerServices.CastHelpers.ThrowArrayMismatchException | method | 32 | -| System.Runtime.CompilerServices.CastHelpers.Unbox | method | 32 | -| System.Runtime.CompilerServices.CastHelpers.Unbox_Helper | method | 32 | -| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.StateMachineBox.PerCoreCacheSlot | property | 32 | -| System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder.StateMachineBox.get_PerCoreCacheSlot | method | 32 | -| System.Runtime.CompilerServices.RuntimeHelpers.GetMultiDimensionalArrayBounds | method | 32 | -| System.Runtime.CompilerServices.RuntimeHelpers.GetRawData | method | 32 | -| System.Runtime.CompilerServices.Unsafe.Add | method | 32 | -| System.Runtime.CompilerServices.Unsafe.AddByteOffset | method | 32 | -| System.Runtime.CompilerServices.Unsafe.As | method | 32 | -| System.Runtime.CompilerServices.Unsafe.AsRef | method | 32 | -| System.Runtime.CompilerServices.Unsafe.NullRef | method | 32 | -| System.Runtime.CompilerServices.Unsafe.Subtract | method | 32 | -| System.Runtime.CompilerServices.Unsafe.SubtractByteOffset | method | 32 | -| System.Runtime.CompilerServices.Unsafe.Unbox | method | 32 | -| System.Runtime.InteropServices.CollectionsMarshal.GetValueRefOrAddDefault | method | 32 | -| System.Runtime.InteropServices.CollectionsMarshal.GetValueRefOrNullRef | method | 32 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller<!0,!1>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller<Byte,Byte>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller<CalendarId,CalendarId>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller<Char,Char>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller<ExceptionHandler,ExceptionHandler>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ArrayMarshaller<Int32,Int32>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.PointerArrayMarshaller<!0,!1>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller<!0,!1>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller<Byte,Byte>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller<String,IntPtr>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.SpanMarshaller<!0,!1>.ManagedToUnmanagedIn.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference | method | 32 | -| System.Runtime.InteropServices.MemoryMarshal.AsRef | method | 32 | -| System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference | method | 32 | -| System.Runtime.InteropServices.MemoryMarshal.GetNonNullPinnableReference | method | 32 | -| System.Runtime.InteropServices.MemoryMarshal.GetReference | method | 32 | -| System.Span.Enumerator.Current | property | 32 | -| System.Span.Enumerator.get_Current | method | 32 | -| System.Span.GetPinnableReference | method | 32 | -| System.Span.Item | property | 32 | -| System.Span.get_Item | method | 32 | -| System.Span<!0>.get_Item | method | 32 | -| System.Span<!1>.get_Item | method | 32 | -| System.Span<Boolean>.get_Item | method | 32 | -| System.Span<Byte>.GetPinnableReference | method | 32 | -| System.Span<Byte>.get_Item | method | 32 | -| System.Span<Char>.GetPinnableReference | method | 32 | -| System.Span<Char>.get_Item | method | 32 | -| System.Span<EventPipeProviderConfigurationNative>.GetPinnableReference | method | 32 | -| System.Span<EventPipeProviderConfigurationNative>.get_Item | method | 32 | -| System.Span<IOVector>.get_Item | method | 32 | -| System.Span<Int32>.get_Item | method | 32 | -| System.Span<Int128>.get_Item | method | 32 | -| System.Span<IntPtr>.get_Item | method | 32 | -| System.Span<Object>.get_Item | method | 32 | -| System.Span<Range>.get_Item | method | 32 | -| System.Span<SafeWaitHandle>.get_Item | method | 32 | -| System.Span<UInt16>.get_Item | method | 32 | -| System.Span<UInt32>.GetPinnableReference | method | 32 | -| System.Span<UInt32>.get_Item | method | 32 | -| System.String.GetPinnableReference | method | 32 | -| System.String.GetRawStringData | method | 32 | -| System.String.GetRawStringDataAsUInt16 | method | 32 | -| System.Text.ValueStringBuilder.GetPinnableReference | method | 32 | -| System.Text.ValueStringBuilder.Item | property | 32 | -| System.Text.ValueStringBuilder.get_Item | method | 32 | -| System.Threading.Overlapped.GCHandleCountRef | method | 32 | -| System.Threading.Overlapped.GCHandleRef | method | 32 | -| Value | other | 32 | -| _arg0 | other | 32 | -| _reference | other | 32 | -| _value | other | 32 | diff --git a/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.ql b/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.ql deleted file mode 100644 index d5f2ee7f7c3..00000000000 --- a/csharp/ql/test/library-tests/cil/typeAnnotations/typeAnnotations.ql +++ /dev/null @@ -1,94 +0,0 @@ -import cil -import semmle.code.csharp.commons.QualifiedName -import semmle.code.cil.Type - -deprecated private string elementType(Element e, string toString) { - exists(string namespace, string type, string name | - toString = getQualifiedName(namespace, type, name) - | - e.(Method).hasFullyQualifiedName(namespace, type, name) and result = "method" - or - e.(Property).hasFullyQualifiedName(namespace, type, name) and result = "property" - ) - or - e = - any(Parameter p | - exists(string qualifier, string name | - p.getDeclaringElement().hasFullyQualifiedName(qualifier, name) - | - toString = "Parameter " + p.getIndex() + " of " + getQualifiedName(qualifier, name) - ) - ) and - result = "parameter" - or - e = - any(LocalVariable v | - exists(string namespace, string type, string name | - v.getImplementation().getMethod().hasFullyQualifiedName(namespace, type, name) - | - toString = - "Local variable " + v.getIndex() + " of method " + getQualifiedName(namespace, type, name) - ) - ) and - result = "local" - or - exists(string qualifier, string name | - e.(FunctionPointerType).hasFullyQualifiedName(qualifier, name) - | - toString = getQualifiedName(qualifier, name) - ) and - result = "fnptr" - or - not e instanceof Method and - not e instanceof Property and - not e instanceof Parameter and - not e instanceof LocalVariable and - not e instanceof FunctionPointerType and - result = "other" and - toString = e.toString() -} - -deprecated private predicate exclude(string s) { - s in [ - "Parameter 0 of Interop.libobjc.NSOperatingSystemVersion_objc_msgSend_stret", - "Parameter 1 of Interop.procfs.TryParseStatusFile", - "Parameter 1 of Interop.procfs.TryReadFile", - "Parameter 1 of Interop.procfs.TryReadStatusFile", - "Parameter 1 of System.CLRConfig.GetBoolValue", - "Parameter 1 of System.CLRConfig.GetConfigBoolValue", - "Parameter 1 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandleInternal", - "Parameter 2 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandleInternal", - "Parameter 2 of Interop.OSReleaseFile.<GetPrettyName>g__TryGetFieldValue|1_0", - "Parameter 2 of System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.InvokeUnhandledExceptionPropagation", - "Parameter 3 of System.IO.FileSystem.<TryCloneFile>g__TryCloneFile|5_0", - "Parameter 3 of System.IO.FileSystem.TryCloneFile", - "Parameter 6 of Microsoft.Win32.SafeHandles.SafeFileHandle.OpenNoFollowSymlink", - "Local variable 1 of method Interop.libobjc.NSOperatingSystemVersion_objc_msgSend_stret", - "Local variable 1 of method System.Diagnostics.Tracing.XplatEventLogger.LogEventSource", - "Local variable 2 of method System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandleInternal", - "Local variable 3 of method System.Diagnostics.Tracing.XplatEventLogger.LogEventSource", - "Local variable 4 of method System.CLRConfig.GetConfigBoolValue", - "Local variable 4 of method System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandleInternal", - "Local variable 5 of method Interop.OSReleaseFile.<GetPrettyName>g__TryGetFieldValue|1_0", - "Local variable 5 of method System.Diagnostics.Tracing.XplatEventLogger.LogEventSource", - "Local variable 13 of method Interop.procfs.TryParseStatusFile", - "Parameter 0 of System.Diagnostics.Tracing.XplatEventLogger.AppendByteArrayAsHexString", - "Parameter 1 of System.Diagnostics.Tracing.XplatEventLogger.MinimalJsonserializer" - ] -} - -deprecated query predicate typeAnnotation(string toString, string type, int i) { - exists(Element e | - cil_type_annotation(e, i) and - type = elementType(e, toString) and - not exclude(toString) and - ( - not e instanceof Parameter - or - not exists(Type t | - t = e.(Parameter).getDeclaringElement().(Method).getDeclaringType() and - t.hasFullyQualifiedName("System", "Environment") - ) // There are OS specific methods in this class - ) - ) -} diff --git a/csharp/ql/test/library-tests/controlflow/guards/options b/csharp/ql/test/library-tests/controlflow/guards/options index 85a6cc13696..1548e4eedaf 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/options +++ b/csharp/ql/test/library-tests/controlflow/guards/options @@ -1,3 +1,2 @@ -semmle-extractor-options: --cil semmle-extractor-options: ${testdir}/../../../resources/stubs/Microsoft.VisualStudio.TestTools.UnitTesting.cs semmle-extractor-options: /r:System.Collections.Specialized.dll /r:System.Collections.dll /r:System.Linq.dll diff --git a/csharp/ql/test/library-tests/csharp11/PrintAst.expected b/csharp/ql/test/library-tests/csharp11/PrintAst.expected index 47f5e135395..4716334aca0 100644 --- a/csharp/ql/test/library-tests/csharp11/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp11/PrintAst.expected @@ -1448,12 +1448,3 @@ StructDefault.cs: # 11| 0: [AssignExpr] ... = ... # 11| 0: [FieldAccess] access to field Y # 11| 1: [IntLiteral] 1 -cil/class1.cs: -# 4| [Class] Class1 -# 6| 5: [Method] Main -# 6| -1: [TypeMention] Void -#-----| 2: (Parameters) -# 6| 0: [Parameter] args -# 6| -1: [TypeMention] String[] -# 6| 1: [TypeMention] string -# 6| 4: [BlockStmt] {...} diff --git a/csharp/ql/test/library-tests/csharp11/cil/Assembly.cs_ b/csharp/ql/test/library-tests/csharp11/cil/Assembly.cs_ deleted file mode 100644 index 3511e152a5e..00000000000 --- a/csharp/ql/test/library-tests/csharp11/cil/Assembly.cs_ +++ /dev/null @@ -1,16 +0,0 @@ -using System; - -namespace Assembly -{ - public class MyAssemblyGeneric1Attribute<T> : Attribute { } - public class MyAssemblyGeneric2Attribute<T, U> : Attribute { } - - public class TestAssemblyGenericAttribute - { - [MyAssemblyGeneric1Attribute<object>()] - public void M1() { } - - [MyAssemblyGeneric2<int, string>()] - public void M2() { } - } -} diff --git a/csharp/ql/test/library-tests/csharp11/cil/Struct.cs_ b/csharp/ql/test/library-tests/csharp11/cil/Struct.cs_ deleted file mode 100644 index 1ea483764f7..00000000000 --- a/csharp/ql/test/library-tests/csharp11/cil/Struct.cs_ +++ /dev/null @@ -1,14 +0,0 @@ -namespace structassembly; - -public class MyEmptyClass { } - -public ref struct RefStruct -{ - public int MyInt; - public ref byte MyByte; - public ref object MyObject; - internal ref MyEmptyClass MyEmptyClass; - public ref readonly byte MyReadonlyByte; - public readonly ref object MyReadonlyObject; - public readonly ref readonly string MyReadonlyString; -} \ No newline at end of file diff --git a/csharp/ql/test/library-tests/csharp11/cil/assembly.dll b/csharp/ql/test/library-tests/csharp11/cil/assembly.dll deleted file mode 100644 index 790a657a8d871b79ad55d2fa28a0c983beb46220..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 zcmeHKU2Ggz6+W}x-K?G1wbLXGP1;W4Buzsz>z@Rgl%~7(+O28q81Fiv0V$rHy}O=f zc4nEGO}uIWH)(kTg-Sdi@kGi4Di1*lqEtd^`FR1_C;EWkp;Azh0D&q%NLAYKojX4} zwo5=f(q8+XIo~<wo_o%@_s-m%J$r?Eh$xMI>lV?=cycR9dV8`8^}v0v4AAx7*Y~`v zoP2#xW!d!9mg_WJy{Q_yZ9BeN6{_2|Rnt~Wr^;&6sR^yWzi(gYdVY%Nq|!sj&uG7n zW_yeFs+*M&qAieQ1L?ho@Kn(Y=tP5(PX%$afa8~K6%=xAJ+$;ZoAQ768A2AJ{qg~# zQ_K{Ic5@-tx1}JAUmYZ>tk>NRt3<hkJ_r1G0&Bil@qzdCfj}p74dVuqO(j~=T+cOt zWNZa6oag|0q7@Lm<_gP!A(xDn(An2k^h7HVO(dXXZy|qf99xPq^fMK4BXEU<|3llG zI(P?BA04WOOzN($4#D029X;RrBAliVorn}Y8!%#CqsMxr55*p12Hx=xh;;=+6Xj1& zC}G5$|Aiykh&DblK6;E3$dCoP1-^#AM6|*_nJ@dUX*WE!cm{in%R0PRrd9B~U4|c9 zoGIaX1$YH<4^LQ56_^{sRL*RpTrUrLR~e@rLA{WtTywZbT!Eimc*0&r$2Dag(TP-0 z-z<Gyc|Mh;o07gpZt4#D4$QOkKJA12hH@74tfY5IdPLIiOZo?5?bnDs45pp{{f(sG zCFcJq`MW`R#z`iK0`n?^^bGwZbu>nA!UH4DYmk0{SdM~6azGu4dQe3LbxG4Z(4`R{ zqx~V;B+)sbB6K-AK-W{Fp!dP{04<~*qIs2P|H@7aaVhj<j2;GZV^jdT6eHHX5F?KK z+c9D<FRek>0|Ytiei)*?61}p<vX?AWe+V>79|P^92S5jDRMKOT7A2jL^fQt^DX9*c zr4HzJoHXXQNoq>^tfcp2M_P(Tn`xRfx)W~~jdqa@I!qTqKTbaY9jBjyK1^?bPSS5d zpOEr0=r|7Uk}^r3qqm{!12rUXguFq2qRUcpSxPQLzg4*^C0C{7DkR608?+aGZopd| z<vR~Qs^Wp}qCJ#e#qv_Jy^H1Fln@-G`50}Xlae36lSd8E9OKzhn(Y)lPc*Am=P_Xm z*EB|pK2BD(?TaO7$2J;_bq&VoQ?pL3ZHW_jw=Pn-<N2bgEwpXlYznFf&tK;}9!gWq zs;JdOtt**ynk~~3u8c$Xld9Ng(bF3uMpP2jcB7$Jt%Pi@ZCPt2Q4AH+Pa0Nqw;}v# zeCfnR$35Tm8re@Hn$yDdOvm1+oU!YU+tht1b?e_+O*(enY_wfz*LAWW>Sety{LTVu z=XK>l38e9Yu=EwlCG=5b^De4x_}zg~(wL9GOI<}Yf<5bYr>h7TNy>e*YFehB&`xxG zLDQDrShuEHm?_@8q=)-Pt65fPMxi<$CF+(ixJINIzT-ynlBqXr$Ma3Yi$q~OTC@ww z!o6S`!VA|J6Jn<UMwxPO9?hDD>v&Gx$GDm(VktVF=~0|!u*M#psy>A{D5^#ryF3(h z^Y^d)<LU3M7JlTu^xn^Rb?&CLswlZ0m6Qyap&^C?l0BB$zICUvJG*`B?o@6dckR)0 zUmkk1?|4u4o=hr>{~ViU*z}%EP6;m%_wu{1lG<^`)mw9pJ+)$p7T2V*>^c`c1$LX{ zNq$73o!Z<~Wzum)vDJDoEaoE@KB<ks!N9h7ua-=&W$B$cY~37>P+`%J>7pgU=S!iC zJRSIQ!v82fsQ3%y65xx;lO9m$x%2#mtEBpimgQWWZCk$CvT%A+y)*VQ-Uv8}Y<6<n ze`UrWtN-LJBR^H3XvlsuKcm+7-d}!4%IrM*c@AC0{YFh#@Sr=<??-<Tx)&2Vh=Qvk zGhtgOm&%0`edTZVUzxk~)`N$K&;R|O>?6PE;b`ZZrm?IG%NA8(<<H<XkjKlgX^F!I z_EY`~R^ITIb+^TwkJnk=GOMocb`CS}@=?9>PW7q0EO*`(J{BX^Xsue6%8wVvj(&o| zFy5F5!$7K^fBK!=wYQ(GzwqZv-{}2Yc$MSG`=je}m`3suUHJmpIc%4bWzFiQO-;|h z-VyRdO6{%vq;4ol($`1)|5XL}R!6jxXmxE`{01Vz`QIRCJO1tP*#gn4eCWdVYU&8M z(^RH&pi{H}ZU%RuIp7)4>EKrv{W$&C_k)`V&%iBsJ{kbrCxiQQ2<4*$s=%vGF8tu` zMFKu;s*@x2`{bw!v^u07^g8*lbAW<&Ev+I}1u^-sG9hn#fTx=XMM2il-w~>E4QPyd zA)kc5Cbi@o9b}{f3F%(PoF4cl>@D0DxgD2dqG(Iddbp$U+^sdSebCqud<c{{zS9`% zVstm3QQRI!;?8sR!=5YROIsVUS&0bO&!JHbdj6F}bP#V}ysR+}UueiU%NBCrNE@^a zk3=f^gq-74DCY{Yb(9~Ypc=QEE2!f<d^m`pje7WrC<#6`)^SAM=+}-}Uy*J-h#r!) iE3WgTV)v}AVs{MJ@<Y_HnEabrJ^mre`J+_h3j7NhQP$f4 diff --git a/csharp/ql/test/library-tests/csharp11/cil/class1.cs b/csharp/ql/test/library-tests/csharp11/cil/class1.cs deleted file mode 100644 index 141d836fd9e..00000000000 --- a/csharp/ql/test/library-tests/csharp11/cil/class1.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System; -using Assembly; - -public class Class1 -{ - public static void Main(string[] args) { } -} \ No newline at end of file diff --git a/csharp/ql/test/library-tests/csharp11/cil/genericAttribute.expected b/csharp/ql/test/library-tests/csharp11/cil/genericAttribute.expected deleted file mode 100644 index 2ff7cf5d931..00000000000 --- a/csharp/ql/test/library-tests/csharp11/cil/genericAttribute.expected +++ /dev/null @@ -1,2 +0,0 @@ -| assembly.dll:0:0:0:0 | [MyAssemblyGeneric1Attribute<Object>(...)] | MyAssemblyGeneric1Attribute<Object> | 1 | (Object) | -| assembly.dll:0:0:0:0 | [MyAssemblyGeneric2Attribute<Int32,String>(...)] | MyAssemblyGeneric2Attribute<Int32,String> | 2 | (Int32,String) | diff --git a/csharp/ql/test/library-tests/csharp11/cil/genericAttribute.ql b/csharp/ql/test/library-tests/csharp11/cil/genericAttribute.ql deleted file mode 100644 index d386bb8ce0e..00000000000 --- a/csharp/ql/test/library-tests/csharp11/cil/genericAttribute.ql +++ /dev/null @@ -1,14 +0,0 @@ -import semmle.code.cil.CIL - -deprecated private string getTypeArguments(GenericAttribute a) { - result = "(" + concat(Type t | t = a.getATypeArgument() | t.getName(), ",") + ")" -} - -deprecated query predicate genericAttribute( - GenericAttribute a, string name, int numArgs, string args -) { - a.getFile().getStem() = "assembly" and - name = a.getType().getName() and - numArgs = a.getNumberOfTypeArguments() and - args = getTypeArguments(a) -} diff --git a/csharp/ql/test/library-tests/csharp11/cil/options b/csharp/ql/test/library-tests/csharp11/cil/options deleted file mode 100644 index 8511aa162b8..00000000000 --- a/csharp/ql/test/library-tests/csharp11/cil/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --cil diff --git a/csharp/ql/test/library-tests/csharp11/cil/refField.expected b/csharp/ql/test/library-tests/csharp11/cil/refField.expected deleted file mode 100644 index fbd3f405454..00000000000 --- a/csharp/ql/test/library-tests/csharp11/cil/refField.expected +++ /dev/null @@ -1,6 +0,0 @@ -| file://:0:0:0:0 | MyByte | Byte | -| file://:0:0:0:0 | MyEmptyClass | MyEmptyClass | -| file://:0:0:0:0 | MyObject | Object | -| file://:0:0:0:0 | MyReadonlyByte | Byte | -| file://:0:0:0:0 | MyReadonlyObject | Object | -| file://:0:0:0:0 | MyReadonlyString | String | diff --git a/csharp/ql/test/library-tests/csharp11/cil/refField.ql b/csharp/ql/test/library-tests/csharp11/cil/refField.ql deleted file mode 100644 index 3474beb4913..00000000000 --- a/csharp/ql/test/library-tests/csharp11/cil/refField.ql +++ /dev/null @@ -1,5 +0,0 @@ -import cil - -deprecated query predicate cilfields(CIL::Field f, string type) { - f.isRef() and type = f.getType().toString() and f.getDeclaringType().getName() = "RefStruct" -} diff --git a/csharp/ql/test/library-tests/csharp11/cil/structassembly.dll b/csharp/ql/test/library-tests/csharp11/cil/structassembly.dll deleted file mode 100644 index 364ae8b144200483fb4c87f81e1756168d75e733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 zcmeHLYit}>6+Scji0u%^j*D?g0~0$<Tc@41aRNz5Qm<d_wqD!W-Mna}cy{;hdYajp z&CINmr7gG(0rCUX@~0pHLgW_$sS&C~d8z$@go>zSQB^{KAW{J#p$a4(KOiD}=g#bU z?1Z!+{#5F9?l<Rk&pr3tJ9o||`>|&zMnrM+>(_~1#FN{ PA()ZHKaUN^na`RdLW zmDyK!7M4s;tGiCsHELSPux-cJib8W6wr1Me)O=p6Ic1@5+0wNubiFW5G^@nuj-mc< zwr0CZgW6_ggy=nxBm?O$hVj(U$I*#;B&`N<vw-85Z3PH9w-_y6WK;gP_6%7Tp?wB^ z=b0EMI?0LH*cO8@p16mouu*p_UL)#==sUna7~yqaocF<B?E*k2*BZtRPBx8bQFlGJ z1Wv{_4uTijjUH*^h+cPv<-m|rMvLg|Ya4o`jT22oSV?}L^NPl?sg$5^X+*0CTw&q= z&<54Jdx^SexEK=Z`##qXcX#&3zWgMd#)prz6tNq4#Jo<A{fH04Bh~?rG?9O3LJ1?| zbuRDKNA$6gvC#t@Xo4(Y9Akz)K~%@{QKs|0YuZ(hEq;o##OWJ4mZw$Fd@P0@IF^~h z^D6j1Bfg;t%PE5AhH#V<w-I$R^ABZ=cp)J1piSt!b$mQI%{$Op$DOF82G1m|C|A@Z zU6=S(`ii=hR^c{DZ_<9qf3I8wW+Wyh4oUo)#2*oBj}v?7Q<s6gF~+mRxKGlTr1qDA zMAElQ`e$-R9iup&AR3uFrH6*-O?4k+kb?U*Mlr{$?V;~t+&<9A6SyVG#gJPC*^0+z zV`*rT)Ct`oa7V#yqTTcxbr?9N>cA(}QCQ5x7<Z_9frGLAco*ZbL!fs-vYYlmvYT>h znie#U@6!X%VMPj^YID=z+&1?RxTo73>%P$DcpYDFbL^#)o<sh7fl0a@*hTjMduUYR z0f}je8Hq<Fo|0$)lhg#hmo7>AS>Sg160nE9Atk27rzGBmbNM?(r_HoLI`z>h;C4C> z9HOUyd*~(L7`+DkDE%5ZNq+=BEaiFNBt1fZ2X+BVk}idGiT+6!q~wB>T!4O1xhy4@ zrQ|Xs8RZQcq&jdLEd$TM&l}{?6QCcb*A+#%07+V6e5G|3C~UKMNBAta+D`aww?kQ{ z+_1zE$~Qe<)bw1#_RX50<A&7`g=SsQbgd}LWl>K1c+H9pU(lpetDBZ^XN2K5T#*xJ z8>V|Rg9n5yT*Hs5+Fp)%Mpd*q%6JpaoT$v2XClHWQEXJJM$wAM<{Fl@UXu1aQ7c-_ zg6T&M=Zl_W2|qHlV7OJ`&)~x)&N=RxwaHr^X0WQ`!u3qYzEPR6D~?+;d?*d;KUz&X zcEzkVu<CVAu(Z5U5q>j=WP5AQgH%f6oUn}Zl8WeCkuA8`rjoxlu$2bP$Df%sMaIhs zqdae0%{5ue3(scQ5k<J$Qtq2Y(=z>tHrt$NV!N~07^CdKqhx0+qq^a==wUi=3rDPj zYneRXMdU`fNqX6`!qF6tYC97ZOO!Zoq?dfhZONxhqiQ>zZ<f54D2!Wgoy5Fwm(7y! zC^#{Q1IHR{D@z=+M_IGvI-XPUF|I7q*v6)3Lfo9L)&1tAg&3)wwBWF?cE0!+!ip>` z6!4zPwLz7!{S6BZ-ms5<{^)nIkNjoorDw1G-2CDXwoqJCl#ZB2N&-Z0FSFf}Jdn^- zrCaT|a{uX1_P*YAFqYhrP?PxA5li+Y(C>&Rd$tXL=;lEQ9<(FTp@b#K2l$RGsQo8g zqdw=@)8|W~&Z#Ucxz0IHf!!wgg*dFxfIc@}m~>o`uGjAk_u%mINAwXm=)SG}dQ6#K z-7=bUcw0Jnga(T~g}T@8Cq9u1C1l!BnP8Ste6aBs$R&d>GEco*p--LRFK$8IlC~`8 zT()8PX5A7HbY|=&;hMN9*lZRb<hNnQpS`y-OUO?k5bdNwIlj?6?VRZ^X}B}wy{5UM zB3xnP_-KYJG%jepM!oL12#0H0pDW(w;9Ag}iq>=*u2u@~Kpn2PD%90J3@Ag8?9Du3 z*al7?{46Qi1&;R_^i|ZEs}TbZt`Ge#^hMNai?YB26E<1ewirBf`KkOLmaN0ua<4u7 z!jB(+fBxd|Ec-|u^AKdJW|o!=VcDW6tkenIb17VpHA~!A!l6%{wNfQ-$#CmT`NH#4 zmRWQSw|O5kUTXdBrkvtqDY>~RTlhEt8}xd;T%`Pi=@0GuFohv)|7#c$FZ-33v%kIc z{LB4+`^mj~o)61VUdby=YfRnPTIFh>IgNulWm#Fnw5jHmaB79TLZtTkop7=-JvVxM zR}#qpS9wGOL@N;?Ncp1B$W7#I$G;s;juTzuLmakisPhQ5Yo1O6rzr<2gI`*6;4{FP z;8z#@F#e~11vLquQf|TX{(wP!DeLf%3m#mrEAVQN3qL06egU60RmhPByX2?>v<9Re z^alB`bHD}dO8im8svssGRwm@tn|RtUZAP%};BPM#IR|uvwqoog{MD!~=V)R@1~?(z zd(vwIwV4m8hd%*b5pgu7enyUOMLq?s2V0J#zAnzU@-u?#U1`UC9DZDQT3hER>dcXL zCs_8uo-^f3TN}|?k;rc~pH5}i@-Hl+yK%GPB8HEu^uU>@V{N>GDlNe~$@h0o&Nm;* zIm<j>Yu(HR8GF0)26<nAKL^nS`TcM5K7!vL3hMOe_>Eax%Nfyrncwt=9n^60)@OQc Z4CnhD*0kXN41RU+9TxYy;r?GT@NbvzL398B From f59aaf1d755088c4e2893930fde84d743c95253a Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Thu, 7 Mar 2024 19:45:05 +0100 Subject: [PATCH 089/309] C#: Add change note. --- csharp/ql/lib/change-notes/2024-03-07-remove-cil-extractor.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2024-03-07-remove-cil-extractor.md diff --git a/csharp/ql/lib/change-notes/2024-03-07-remove-cil-extractor.md b/csharp/ql/lib/change-notes/2024-03-07-remove-cil-extractor.md new file mode 100644 index 00000000000..36be2372b4e --- /dev/null +++ b/csharp/ql/lib/change-notes/2024-03-07-remove-cil-extractor.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* The CIL extractor has been deleted and the corresponding extractor option `cil` has been removed. It is no longer possible to do CIL extraction. From eb62c033aabf238e95333333e20216379656a426 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Tue, 12 Mar 2024 11:12:46 +0100 Subject: [PATCH 090/309] C#: Remove the cil extractor option. --- csharp/extractor/Semmle.Util/CommandLineOptions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/extractor/Semmle.Util/CommandLineOptions.cs b/csharp/extractor/Semmle.Util/CommandLineOptions.cs index 8dfd4ea5479..f2cf332e07f 100644 --- a/csharp/extractor/Semmle.Util/CommandLineOptions.cs +++ b/csharp/extractor/Semmle.Util/CommandLineOptions.cs @@ -40,7 +40,7 @@ namespace Semmle.Util public static class OptionsExtensions { - private static readonly string[] ExtractorOptions = new[] { "trap_compression", "cil" }; + private static readonly string[] ExtractorOptions = ["trap_compression"]; private static List<string> GetExtractorOptions() { var extractorOptions = new List<string>(); From 0e0b73a5e67c3f07530e40715358a471cfcc5ba5 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 12 Mar 2024 11:22:04 +0100 Subject: [PATCH 091/309] Address review comment --- shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 2b43cbdd474..6fbeb35bded 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1334,8 +1334,10 @@ module MakeImpl<InputSig Lang> { bindingset[c, t, tail] additional Ap apCons(Content c, Typ t, Ap tail) { result = Param::apCons(c, t, tail) and - Config::accessPathLimit() > 0 and - if tail instanceof ApNil then any() else Config::accessPathLimit() > 1 + exists(int limit | + limit = Config::accessPathLimit() and + if tail instanceof ApNil then limit > 0 else limit > 1 + ) } pragma[nomagic] From 95a5ec7f27520aa050f6ad470add684d111f0d94 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Tue, 12 Mar 2024 13:22:11 +0100 Subject: [PATCH 092/309] add test that the new `Object.groupBy` method has a type --- .../TypeScript/Types/printAst.expected | 103 ++++++++++++++++-- .../TypeScript/Types/tests.expected | 25 +++++ .../library-tests/TypeScript/Types/tst.ts | 4 + 3 files changed, 124 insertions(+), 8 deletions(-) diff --git a/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected b/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected index 90fa2b8dcda..081636baa06 100644 --- a/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected +++ b/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected @@ -125,6 +125,8 @@ nodes | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | +| file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | +| file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | @@ -1760,8 +1762,8 @@ nodes | tst.ts:483:46:483:50 | [LocalTypeAccess] Pair3 | semmle.label | [LocalTypeAccess] Pair3 | | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3<string> | semmle.label | [GenericTypeExpr] Pair3<string> | | tst.ts:483:52:483:57 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | -| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | semmle.label | [NamespaceDeclaration] module ... ow"); } | -| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | semmle.order | 90 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | semmle.label | [NamespaceDeclaration] module ... }); } | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | semmle.order | 90 | | tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.label | [VarDecl] TS54 | | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.label | [FunctionDeclStmt] functio ... 0]; } | | tst.ts:487:12:487:28 | [VarDecl] createStreetLight | semmle.label | [VarDecl] createStreetLight | @@ -1788,6 +1790,33 @@ nodes | tst.ts:491:29:491:36 | [Literal] "yellow" | semmle.label | [Literal] "yellow" | | tst.ts:491:39:491:45 | [Literal] "green" | semmle.label | [Literal] "green" | | tst.ts:491:49:491:56 | [Literal] "yellow" | semmle.label | [Literal] "yellow" | +| tst.ts:493:3:495:5 | [DeclStmt] const myObj = ... | semmle.label | [DeclStmt] const myObj = ... | +| tst.ts:493:9:493:13 | [VarDecl] myObj | semmle.label | [VarDecl] myObj | +| tst.ts:493:9:495:4 | [VariableDeclarator] myObj = ... "; }) | semmle.label | [VariableDeclarator] myObj = ... "; }) | +| tst.ts:493:17:493:22 | [VarRef] Object | semmle.label | [VarRef] Object | +| tst.ts:493:17:493:30 | [DotExpr] Object.groupBy | semmle.label | [DotExpr] Object.groupBy | +| tst.ts:493:17:495:4 | [MethodCallExpr] Object. ... "; }) | semmle.label | [MethodCallExpr] Object. ... "; }) | +| tst.ts:493:24:493:30 | [Label] groupBy | semmle.label | [Label] groupBy | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | semmle.label | [ArrayExpr] [0, 1, 2, 3, 4, 5] | +| tst.ts:493:33:493:33 | [Literal] 0 | semmle.label | [Literal] 0 | +| tst.ts:493:36:493:36 | [Literal] 1 | semmle.label | [Literal] 1 | +| tst.ts:493:39:493:39 | [Literal] 2 | semmle.label | [Literal] 2 | +| tst.ts:493:42:493:42 | [Literal] 3 | semmle.label | [Literal] 3 | +| tst.ts:493:45:493:45 | [Literal] 4 | semmle.label | [Literal] 4 | +| tst.ts:493:48:493:48 | [Literal] 5 | semmle.label | [Literal] 5 | +| tst.ts:493:52:495:3 | [ArrowFunctionExpr] (num, i ... d"; } | semmle.label | [ArrowFunctionExpr] (num, i ... d"; } | +| tst.ts:493:53:493:55 | [SimpleParameter] num | semmle.label | [SimpleParameter] num | +| tst.ts:493:58:493:62 | [SimpleParameter] index | semmle.label | [SimpleParameter] index | +| tst.ts:493:68:495:3 | [BlockStmt] { r ... d"; } | semmle.label | [BlockStmt] { r ... d"; } | +| tst.ts:494:5:494:41 | [ReturnStmt] return ... "odd"; | semmle.label | [ReturnStmt] return ... "odd"; | +| tst.ts:494:12:494:14 | [VarRef] num | semmle.label | [VarRef] num | +| tst.ts:494:12:494:18 | [BinaryExpr] num % 2 | semmle.label | [BinaryExpr] num % 2 | +| tst.ts:494:12:494:24 | [BinaryExpr] num % 2 === 0 | semmle.label | [BinaryExpr] num % 2 === 0 | +| tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | semmle.label | [ConditionalExpr] num % 2 ... : "odd" | +| tst.ts:494:18:494:18 | [Literal] 2 | semmle.label | [Literal] 2 | +| tst.ts:494:24:494:24 | [Literal] 0 | semmle.label | [Literal] 0 | +| tst.ts:494:28:494:33 | [Literal] "even" | semmle.label | [Literal] "even" | +| tst.ts:494:36:494:40 | [Literal] "odd" | semmle.label | [Literal] "odd" | | tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.label | [ExportDeclaration] export ... 'b'; } | | tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 91 | | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | [FunctionDeclStmt] functio ... 'b'; } | @@ -2251,6 +2280,10 @@ edges | file://:0:0:0:0 | (Arguments) | tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | semmle.order | 0 | | file://:0:0:0:0 | (Arguments) | tst.ts:491:49:491:56 | [Literal] "yellow" | semmle.label | 1 | | file://:0:0:0:0 | (Arguments) | tst.ts:491:49:491:56 | [Literal] "yellow" | semmle.order | 1 | +| file://:0:0:0:0 | (Arguments) | tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | semmle.label | 0 | +| file://:0:0:0:0 | (Arguments) | tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | semmle.order | 0 | +| file://:0:0:0:0 | (Arguments) | tst.ts:493:52:495:3 | [ArrowFunctionExpr] (num, i ... d"; } | semmle.label | 1 | +| file://:0:0:0:0 | (Arguments) | tst.ts:493:52:495:3 | [ArrowFunctionExpr] (num, i ... d"; } | semmle.order | 1 | | file://:0:0:0:0 | (Parameters) | tst.ts:14:17:14:17 | [SimpleParameter] x | semmle.label | 0 | | file://:0:0:0:0 | (Parameters) | tst.ts:14:17:14:17 | [SimpleParameter] x | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | tst.ts:14:28:14:28 | [SimpleParameter] y | semmle.label | 1 | @@ -2353,6 +2386,10 @@ edges | file://:0:0:0:0 | (Parameters) | tst.ts:487:48:487:53 | [SimpleParameter] colors | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | tst.ts:487:61:487:72 | [SimpleParameter] defaultColor | semmle.label | 1 | | file://:0:0:0:0 | (Parameters) | tst.ts:487:61:487:72 | [SimpleParameter] defaultColor | semmle.order | 1 | +| file://:0:0:0:0 | (Parameters) | tst.ts:493:53:493:55 | [SimpleParameter] num | semmle.label | 0 | +| file://:0:0:0:0 | (Parameters) | tst.ts:493:53:493:55 | [SimpleParameter] num | semmle.order | 0 | +| file://:0:0:0:0 | (Parameters) | tst.ts:493:58:493:62 | [SimpleParameter] index | semmle.label | 1 | +| file://:0:0:0:0 | (Parameters) | tst.ts:493:58:493:62 | [SimpleParameter] index | semmle.order | 1 | | file://:0:0:0:0 | (Parameters) | type_alias.ts:14:10:14:17 | [SimpleParameter] property | semmle.label | 0 | | file://:0:0:0:0 | (Parameters) | type_alias.ts:14:10:14:17 | [SimpleParameter] property | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | type_alias.ts:21:19:21:21 | [SimpleParameter] key | semmle.label | 0 | @@ -5223,12 +5260,14 @@ edges | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3<string> | tst.ts:483:46:483:50 | [LocalTypeAccess] Pair3 | semmle.order | 1 | | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3<string> | tst.ts:483:52:483:57 | [KeywordTypeExpr] string | semmle.label | 2 | | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3<string> | tst.ts:483:52:483:57 | [KeywordTypeExpr] string | semmle.order | 2 | -| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.label | 1 | -| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.order | 1 | -| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.label | 2 | -| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.order | 2 | -| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | semmle.label | 3 | -| tst.ts:486:1:492:1 | [NamespaceDeclaration] module ... ow"); } | tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | semmle.order | 3 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.label | 1 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.order | 1 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.label | 2 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.order | 2 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | semmle.label | 3 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | tst.ts:491:3:491:58 | [ExprStmt] createS ... llow"); | semmle.order | 3 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | tst.ts:493:3:495:5 | [DeclStmt] const myObj = ... | semmle.label | 4 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | tst.ts:493:3:495:5 | [DeclStmt] const myObj = ... | semmle.order | 4 | | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | file://:0:0:0:0 | (Parameters) | semmle.label | 1 | | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | file://:0:0:0:0 | (Parameters) | semmle.order | 1 | | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | file://:0:0:0:0 | (TypeParameters) | semmle.label | 2 | @@ -5271,6 +5310,54 @@ edges | tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:29:491:36 | [Literal] "yellow" | semmle.order | 2 | | tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:39:491:45 | [Literal] "green" | semmle.label | 3 | | tst.ts:491:21:491:46 | [ArrayExpr] ["red", ... green"] | tst.ts:491:39:491:45 | [Literal] "green" | semmle.order | 3 | +| tst.ts:493:3:495:5 | [DeclStmt] const myObj = ... | tst.ts:493:9:495:4 | [VariableDeclarator] myObj = ... "; }) | semmle.label | 1 | +| tst.ts:493:3:495:5 | [DeclStmt] const myObj = ... | tst.ts:493:9:495:4 | [VariableDeclarator] myObj = ... "; }) | semmle.order | 1 | +| tst.ts:493:9:495:4 | [VariableDeclarator] myObj = ... "; }) | tst.ts:493:9:493:13 | [VarDecl] myObj | semmle.label | 1 | +| tst.ts:493:9:495:4 | [VariableDeclarator] myObj = ... "; }) | tst.ts:493:9:493:13 | [VarDecl] myObj | semmle.order | 1 | +| tst.ts:493:9:495:4 | [VariableDeclarator] myObj = ... "; }) | tst.ts:493:17:495:4 | [MethodCallExpr] Object. ... "; }) | semmle.label | 2 | +| tst.ts:493:9:495:4 | [VariableDeclarator] myObj = ... "; }) | tst.ts:493:17:495:4 | [MethodCallExpr] Object. ... "; }) | semmle.order | 2 | +| tst.ts:493:17:493:30 | [DotExpr] Object.groupBy | tst.ts:493:17:493:22 | [VarRef] Object | semmle.label | 1 | +| tst.ts:493:17:493:30 | [DotExpr] Object.groupBy | tst.ts:493:17:493:22 | [VarRef] Object | semmle.order | 1 | +| tst.ts:493:17:493:30 | [DotExpr] Object.groupBy | tst.ts:493:24:493:30 | [Label] groupBy | semmle.label | 2 | +| tst.ts:493:17:493:30 | [DotExpr] Object.groupBy | tst.ts:493:24:493:30 | [Label] groupBy | semmle.order | 2 | +| tst.ts:493:17:495:4 | [MethodCallExpr] Object. ... "; }) | file://:0:0:0:0 | (Arguments) | semmle.label | 1 | +| tst.ts:493:17:495:4 | [MethodCallExpr] Object. ... "; }) | file://:0:0:0:0 | (Arguments) | semmle.order | 1 | +| tst.ts:493:17:495:4 | [MethodCallExpr] Object. ... "; }) | tst.ts:493:17:493:30 | [DotExpr] Object.groupBy | semmle.label | 0 | +| tst.ts:493:17:495:4 | [MethodCallExpr] Object. ... "; }) | tst.ts:493:17:493:30 | [DotExpr] Object.groupBy | semmle.order | 0 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:33:493:33 | [Literal] 0 | semmle.label | 1 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:33:493:33 | [Literal] 0 | semmle.order | 1 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:36:493:36 | [Literal] 1 | semmle.label | 2 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:36:493:36 | [Literal] 1 | semmle.order | 2 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:39:493:39 | [Literal] 2 | semmle.label | 3 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:39:493:39 | [Literal] 2 | semmle.order | 3 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:42:493:42 | [Literal] 3 | semmle.label | 4 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:42:493:42 | [Literal] 3 | semmle.order | 4 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:45:493:45 | [Literal] 4 | semmle.label | 5 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:45:493:45 | [Literal] 4 | semmle.order | 5 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:48:493:48 | [Literal] 5 | semmle.label | 6 | +| tst.ts:493:32:493:49 | [ArrayExpr] [0, 1, 2, 3, 4, 5] | tst.ts:493:48:493:48 | [Literal] 5 | semmle.order | 6 | +| tst.ts:493:52:495:3 | [ArrowFunctionExpr] (num, i ... d"; } | file://:0:0:0:0 | (Parameters) | semmle.label | 1 | +| tst.ts:493:52:495:3 | [ArrowFunctionExpr] (num, i ... d"; } | file://:0:0:0:0 | (Parameters) | semmle.order | 1 | +| tst.ts:493:52:495:3 | [ArrowFunctionExpr] (num, i ... d"; } | tst.ts:493:68:495:3 | [BlockStmt] { r ... d"; } | semmle.label | 5 | +| tst.ts:493:52:495:3 | [ArrowFunctionExpr] (num, i ... d"; } | tst.ts:493:68:495:3 | [BlockStmt] { r ... d"; } | semmle.order | 5 | +| tst.ts:493:68:495:3 | [BlockStmt] { r ... d"; } | tst.ts:494:5:494:41 | [ReturnStmt] return ... "odd"; | semmle.label | 1 | +| tst.ts:493:68:495:3 | [BlockStmt] { r ... d"; } | tst.ts:494:5:494:41 | [ReturnStmt] return ... "odd"; | semmle.order | 1 | +| tst.ts:494:5:494:41 | [ReturnStmt] return ... "odd"; | tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | semmle.label | 1 | +| tst.ts:494:5:494:41 | [ReturnStmt] return ... "odd"; | tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | semmle.order | 1 | +| tst.ts:494:12:494:18 | [BinaryExpr] num % 2 | tst.ts:494:12:494:14 | [VarRef] num | semmle.label | 1 | +| tst.ts:494:12:494:18 | [BinaryExpr] num % 2 | tst.ts:494:12:494:14 | [VarRef] num | semmle.order | 1 | +| tst.ts:494:12:494:18 | [BinaryExpr] num % 2 | tst.ts:494:18:494:18 | [Literal] 2 | semmle.label | 2 | +| tst.ts:494:12:494:18 | [BinaryExpr] num % 2 | tst.ts:494:18:494:18 | [Literal] 2 | semmle.order | 2 | +| tst.ts:494:12:494:24 | [BinaryExpr] num % 2 === 0 | tst.ts:494:12:494:18 | [BinaryExpr] num % 2 | semmle.label | 1 | +| tst.ts:494:12:494:24 | [BinaryExpr] num % 2 === 0 | tst.ts:494:12:494:18 | [BinaryExpr] num % 2 | semmle.order | 1 | +| tst.ts:494:12:494:24 | [BinaryExpr] num % 2 === 0 | tst.ts:494:24:494:24 | [Literal] 0 | semmle.label | 2 | +| tst.ts:494:12:494:24 | [BinaryExpr] num % 2 === 0 | tst.ts:494:24:494:24 | [Literal] 0 | semmle.order | 2 | +| tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | tst.ts:494:12:494:24 | [BinaryExpr] num % 2 === 0 | semmle.label | 1 | +| tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | tst.ts:494:12:494:24 | [BinaryExpr] num % 2 === 0 | semmle.order | 1 | +| tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | tst.ts:494:28:494:33 | [Literal] "even" | semmle.label | 2 | +| tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | tst.ts:494:28:494:33 | [Literal] "even" | semmle.order | 2 | +| tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | tst.ts:494:36:494:40 | [Literal] "odd" | semmle.label | 3 | +| tst.ts:494:12:494:40 | [ConditionalExpr] num % 2 ... : "odd" | tst.ts:494:36:494:40 | [Literal] "odd" | semmle.order | 3 | | tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | 1 | | tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.order | 1 | | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | tstModuleCJS.cts:1:17:1:28 | [VarDecl] tstModuleCJS | semmle.label | 0 | diff --git a/javascript/ql/test/library-tests/TypeScript/Types/tests.expected b/javascript/ql/test/library-tests/TypeScript/Types/tests.expected index 49a1f1e000f..daa1571d73c 100644 --- a/javascript/ql/test/library-tests/TypeScript/Types/tests.expected +++ b/javascript/ql/test/library-tests/TypeScript/Types/tests.expected @@ -669,6 +669,29 @@ getExprType | tst.ts:491:29:491:36 | "yellow" | "yellow" | | tst.ts:491:39:491:45 | "green" | "green" | | tst.ts:491:49:491:56 | "yellow" | "yellow" | +| tst.ts:493:9:493:13 | myObj | Partial<Record<"even" \| "odd", number[]>> | +| tst.ts:493:17:493:22 | Object | ObjectConstructor | +| tst.ts:493:17:493:30 | Object.groupBy | <K extends PropertyKey, T>(items: Iterable<T>, ... | +| tst.ts:493:17:495:4 | Object. ... ";\\n }) | Partial<Record<"even" \| "odd", number[]>> | +| tst.ts:493:24:493:30 | groupBy | <K extends PropertyKey, T>(items: Iterable<T>, ... | +| tst.ts:493:32:493:49 | [0, 1, 2, 3, 4, 5] | Iterable<number> | +| tst.ts:493:33:493:33 | 0 | 0 | +| tst.ts:493:36:493:36 | 1 | 1 | +| tst.ts:493:39:493:39 | 2 | 2 | +| tst.ts:493:42:493:42 | 3 | 3 | +| tst.ts:493:45:493:45 | 4 | 4 | +| tst.ts:493:48:493:48 | 5 | 5 | +| tst.ts:493:52:495:3 | (num, i ... d";\\n } | (num: number, index: number) => "even" \| "odd" | +| tst.ts:493:53:493:55 | num | number | +| tst.ts:493:58:493:62 | index | number | +| tst.ts:494:12:494:14 | num | number | +| tst.ts:494:12:494:18 | num % 2 | number | +| tst.ts:494:12:494:24 | num % 2 === 0 | boolean | +| tst.ts:494:12:494:40 | num % 2 ... : "odd" | "even" \| "odd" | +| tst.ts:494:18:494:18 | 2 | 2 | +| tst.ts:494:24:494:24 | 0 | 0 | +| tst.ts:494:28:494:33 | "even" | "even" | +| tst.ts:494:36:494:40 | "odd" | "odd" | | tstModuleCJS.cts:1:17:1:28 | tstModuleCJS | () => "a" \| "b" | | tstModuleCJS.cts:2:12:2:15 | Math | Math | | tstModuleCJS.cts:2:12:2:22 | Math.random | () => number | @@ -1374,6 +1397,7 @@ unionIndex | "boolean" | 3 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | | "c" | 2 | "a" \| "b" \| "c" | | "circle" | 0 | "circle" \| "square" | +| "even" | 0 | "even" \| "odd" | | "function" | 7 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | | "green" | 1 | "red" \| "green" \| "blue" | | "green" | 1 | "red" \| "green" \| "yellow" | @@ -1381,6 +1405,7 @@ unionIndex | "number" | 1 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | | "number" | 1 | keyof TypeMap | | "object" | 6 | "string" \| "number" \| "bigint" \| "boolean" \| "s... | +| "odd" | 1 | "even" \| "odd" | | "red" | 0 | "red" \| "green" \| "blue" | | "red" | 0 | "red" \| "green" \| "yellow" | | "square" | 1 | "circle" \| "square" | diff --git a/javascript/ql/test/library-tests/TypeScript/Types/tst.ts b/javascript/ql/test/library-tests/TypeScript/Types/tst.ts index 08d5e610ff5..cef97f9e4fa 100644 --- a/javascript/ql/test/library-tests/TypeScript/Types/tst.ts +++ b/javascript/ql/test/library-tests/TypeScript/Types/tst.ts @@ -489,4 +489,8 @@ module TS54 { } createStreetLight(["red", "yellow", "green"], "yellow"); + + const myObj = Object.groupBy([0, 1, 2, 3, 4, 5], (num, index) => { + return num % 2 === 0 ? "even": "odd"; + }); } \ No newline at end of file From d7790faeceeee0f9f43f1f2cc837ece38afcc592 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 12 Mar 2024 11:51:32 +0100 Subject: [PATCH 093/309] Address review comments --- .../codeql/dataflow/internal/DataFlowImpl.qll | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 6fbeb35bded..e075af108d1 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -480,7 +480,9 @@ module MakeImpl<InputSig Lang> { /** * Holds if field flow should be used for the given configuration. */ - private predicate useFieldFlow() { Config::fieldFlowBranchLimit() >= 1 } + private predicate useFieldFlow() { + Config::fieldFlowBranchLimit() >= 1 and Config::accessPathLimit() > 0 + } private predicate hasSourceCallCtx() { exists(FlowFeature feature | feature = Config::getAFeature() | @@ -1331,15 +1333,6 @@ module MakeImpl<InputSig Lang> { fwdFlow1(_, _, _, _, _, _, t0, t, ap, _) and t0 != t } - bindingset[c, t, tail] - additional Ap apCons(Content c, Typ t, Ap tail) { - result = Param::apCons(c, t, tail) and - exists(int limit | - limit = Config::accessPathLimit() and - if tail instanceof ApNil then limit > 0 else limit > 1 - ) - } - pragma[nomagic] private predicate fwdFlow0( NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, TypOption argT, @@ -2534,7 +2527,10 @@ module MakeImpl<InputSig Lang> { bindingset[c, t, tail] Ap apCons(Content c, Typ t, Ap tail) { - result = true and exists(c) and exists(t) and exists(tail) + result = true and + exists(c) and + exists(t) and + if tail = true then Config::accessPathLimit() > 1 else any() } class ApHeadContent = Unit; @@ -3201,10 +3197,7 @@ module MakeImpl<InputSig Lang> { Typ getTyp(DataFlowType t) { result = t } bindingset[c, t, tail] - Ap apCons(Content c, Typ t, Ap tail) { - result.isCons(c, t, tail) and - Config::accessPathLimit() > tail.len() - } + Ap apCons(Content c, Typ t, Ap tail) { result.isCons(c, t, tail) } class ApHeadContent = Content; @@ -4641,7 +4634,7 @@ module MakeImpl<InputSig Lang> { private newtype TPartialAccessPath = TPartialNil() or - TPartialCons(Content c, int len) { len in [1 .. accessPathLimit()] } + TPartialCons(Content c, int len) { len in [1 .. Config::accessPathLimit()] } /** * Conceptually a list of `Content`s, but only the first From 6be0ed1dc391cf4428f633f154ba58f8112eee30 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Tue, 12 Mar 2024 13:42:58 +0100 Subject: [PATCH 094/309] narrow the version specifier used for TypeScript --- javascript/extractor/lib/typescript/package-lock.json | 2 +- javascript/extractor/lib/typescript/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/extractor/lib/typescript/package-lock.json b/javascript/extractor/lib/typescript/package-lock.json index 604db5f3e37..e03fbf0c6a6 100644 --- a/javascript/extractor/lib/typescript/package-lock.json +++ b/javascript/extractor/lib/typescript/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "typescript-parser-wrapper", "dependencies": { - "typescript": "5.4" + "typescript": "5.4.2" }, "devDependencies": { "@types/node": "18.15.3" diff --git a/javascript/extractor/lib/typescript/package.json b/javascript/extractor/lib/typescript/package.json index 8f6a1549a60..d8b228fc402 100644 --- a/javascript/extractor/lib/typescript/package.json +++ b/javascript/extractor/lib/typescript/package.json @@ -2,7 +2,7 @@ "name": "typescript-parser-wrapper", "private": true, "dependencies": { - "typescript": "5.4" + "typescript": "5.4.2" }, "scripts": { "build": "tsc --project tsconfig.json", From 695e728ed5584641492df4e5c2ee8da511286b46 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Mon, 11 Mar 2024 11:59:31 +0100 Subject: [PATCH 095/309] Ruby: Lower access path limit to 1 for `OrmTracking` --- ruby/ql/lib/codeql/ruby/security/XSS.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/security/XSS.qll b/ruby/ql/lib/codeql/ruby/security/XSS.qll index a212369d4e6..e5cf48bd0ef 100644 --- a/ruby/ql/lib/codeql/ruby/security/XSS.qll +++ b/ruby/ql/lib/codeql/ruby/security/XSS.qll @@ -299,6 +299,8 @@ private module OrmTracking { } predicate isBarrierIn(DataFlow::Node node) { node instanceof DataFlow::SelfParameterNode } + + int accessPathLimit() { result = 1 } } import DataFlow::Global<Config> From c2aa334465cc621211405490050ea803eb8f2b82 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Mon, 11 Mar 2024 19:00:46 +0000 Subject: [PATCH 096/309] Java: Accept test changes --- .../java/buildless-erroneous/diagnostics.expected | 14 ++++++++++++++ .../java/buildless-gradle/diagnostics.expected | 14 ++++++++++++++ .../diagnostics.expected | 14 ++++++++++++++ .../java/buildless-maven/diagnostics.expected | 14 ++++++++++++++ .../diagnostics.expected | 14 ++++++++++++++ .../java/buildless/diagnostics.expected | 14 ++++++++++++++ 6 files changed, 84 insertions(+) diff --git a/java/ql/integration-tests/all-platforms/java/buildless-erroneous/diagnostics.expected b/java/ql/integration-tests/all-platforms/java/buildless-erroneous/diagnostics.expected index 2118edbe296..03978511bb7 100644 --- a/java/ql/integration-tests/all-platforms/java/buildless-erroneous/diagnostics.expected +++ b/java/ql/integration-tests/all-platforms/java/buildless-erroneous/diagnostics.expected @@ -12,6 +12,20 @@ "telemetry": true } } +{ + "markdownMessage": "Java buildless extraction has completed.", + "severity": "unknown", + "source": { + "extractorName": "java", + "id": "java/autobuilder/buildless/complete", + "name": "Java buildless extraction completed" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": false, + "telemetry": true + } +} { "markdownMessage": "Java buildless mode used the system default JDK.", "severity": "unknown", diff --git a/java/ql/integration-tests/all-platforms/java/buildless-gradle/diagnostics.expected b/java/ql/integration-tests/all-platforms/java/buildless-gradle/diagnostics.expected index 7f297a41139..5d8a00c5578 100644 --- a/java/ql/integration-tests/all-platforms/java/buildless-gradle/diagnostics.expected +++ b/java/ql/integration-tests/all-platforms/java/buildless-gradle/diagnostics.expected @@ -1,3 +1,17 @@ +{ + "markdownMessage": "Java buildless extraction has completed.", + "severity": "unknown", + "source": { + "extractorName": "java", + "id": "java/autobuilder/buildless/complete", + "name": "Java buildless extraction completed" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": false, + "telemetry": true + } +} { "markdownMessage": "Java buildless mode used build tool Gradle to pick a JDK version and/or to recommend external dependencies.", "severity": "unknown", diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven-multimodule/diagnostics.expected b/java/ql/integration-tests/all-platforms/java/buildless-maven-multimodule/diagnostics.expected index dcc7c1377b6..77e259ae537 100644 --- a/java/ql/integration-tests/all-platforms/java/buildless-maven-multimodule/diagnostics.expected +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven-multimodule/diagnostics.expected @@ -1,3 +1,17 @@ +{ + "markdownMessage": "Java buildless extraction has completed.", + "severity": "unknown", + "source": { + "extractorName": "java", + "id": "java/autobuilder/buildless/complete", + "name": "Java buildless extraction completed" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": false, + "telemetry": true + } +} { "markdownMessage": "Java buildless mode used build tool Maven to pick a JDK version and/or to recommend external dependencies.", "severity": "unknown", diff --git a/java/ql/integration-tests/all-platforms/java/buildless-maven/diagnostics.expected b/java/ql/integration-tests/all-platforms/java/buildless-maven/diagnostics.expected index d99f38541ca..0228a1165a9 100644 --- a/java/ql/integration-tests/all-platforms/java/buildless-maven/diagnostics.expected +++ b/java/ql/integration-tests/all-platforms/java/buildless-maven/diagnostics.expected @@ -1,3 +1,17 @@ +{ + "markdownMessage": "Java buildless extraction has completed.", + "severity": "unknown", + "source": { + "extractorName": "java", + "id": "java/autobuilder/buildless/complete", + "name": "Java buildless extraction completed" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": false, + "telemetry": true + } +} { "markdownMessage": "Java buildless mode used build tool Maven to pick a JDK version and/or to recommend external dependencies.", "severity": "unknown", diff --git a/java/ql/integration-tests/all-platforms/java/buildless-sibling-projects/diagnostics.expected b/java/ql/integration-tests/all-platforms/java/buildless-sibling-projects/diagnostics.expected index b8e399f746a..c150b2135f3 100644 --- a/java/ql/integration-tests/all-platforms/java/buildless-sibling-projects/diagnostics.expected +++ b/java/ql/integration-tests/all-platforms/java/buildless-sibling-projects/diagnostics.expected @@ -1,3 +1,17 @@ +{ + "markdownMessage": "Java buildless extraction has completed.", + "severity": "unknown", + "source": { + "extractorName": "java", + "id": "java/autobuilder/buildless/complete", + "name": "Java buildless extraction completed" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": false, + "telemetry": true + } +} { "markdownMessage": "Java buildless mode dropped the following dependencies because a sibling project depends on a higher version:\n\n* `junit/junit-4.11`", "severity": "unknown", diff --git a/java/ql/integration-tests/all-platforms/java/buildless/diagnostics.expected b/java/ql/integration-tests/all-platforms/java/buildless/diagnostics.expected index 2118edbe296..03978511bb7 100644 --- a/java/ql/integration-tests/all-platforms/java/buildless/diagnostics.expected +++ b/java/ql/integration-tests/all-platforms/java/buildless/diagnostics.expected @@ -12,6 +12,20 @@ "telemetry": true } } +{ + "markdownMessage": "Java buildless extraction has completed.", + "severity": "unknown", + "source": { + "extractorName": "java", + "id": "java/autobuilder/buildless/complete", + "name": "Java buildless extraction completed" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": false, + "telemetry": true + } +} { "markdownMessage": "Java buildless mode used the system default JDK.", "severity": "unknown", From 52f71e4553784fa425b2cb07e90b726960cdf186 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Tue, 12 Mar 2024 15:07:29 +0100 Subject: [PATCH 097/309] small fixes based on review --- .../semmle/code/java/security/RequestForgery.qll | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/RequestForgery.qll b/java/ql/lib/semmle/code/java/security/RequestForgery.qll index e083977c74f..9ab593f0d6f 100644 --- a/java/ql/lib/semmle/code/java/security/RequestForgery.qll +++ b/java/ql/lib/semmle/code/java/security/RequestForgery.qll @@ -103,7 +103,7 @@ private predicate isContainsUrlSanitizer(Guard guard, Expr e, boolean branch) { * This `contains` method is usually called on a list, but the sanitizer matches any call to a method * called `contains`, so other methods with the same name will also be considered sanitizers. */ -class ContainsUrlSanitizer extends RequestForgerySanitizer { +private class ContainsUrlSanitizer extends RequestForgerySanitizer { ContainsUrlSanitizer() { this = DataFlow::BarrierGuard<isContainsUrlSanitizer/3>::getABarrierNode() } @@ -115,11 +115,7 @@ class ContainsUrlSanitizer extends RequestForgerySanitizer { private predicate isRelativeUrlSanitizer(Guard guard, Expr e, boolean branch) { guard = any(MethodCall call | - exists(Method method | - call.getMethod() = method and - method.getName() = "isAbsolute" and - method.getDeclaringType().hasQualifiedName("java.net", "URI") - ) and + call.getMethod().hasQualifiedName("java.net", "URI", "isAbsolute") and e = call.getQualifier() and branch = false ) @@ -128,7 +124,7 @@ private predicate isRelativeUrlSanitizer(Guard guard, Expr e, boolean branch) { /** * A check that the URL is relative, and therefore safe for URL redirects. */ -class RelativeUrlSanitizer extends RequestForgerySanitizer { +private class RelativeUrlSanitizer extends RequestForgerySanitizer { RelativeUrlSanitizer() { this = DataFlow::BarrierGuard<isRelativeUrlSanitizer/3>::getABarrierNode() } @@ -145,8 +141,7 @@ private predicate isHostComparisonSanitizer(Guard guard, Expr e, boolean branch) branch = true and exists(MethodCall hostCall | hostCall = [equalsCall.getQualifier(), equalsCall.getArgument(0)] and - hostCall.getMethod().getName() = "getHost" and - hostCall.getMethod().getDeclaringType().hasQualifiedName("java.net", "URI") and + hostCall.getMethod().hasQualifiedName("java.net", "URI", "getHost") and e = hostCall.getQualifier() ) ) @@ -155,7 +150,7 @@ private predicate isHostComparisonSanitizer(Guard guard, Expr e, boolean branch) /** * A comparison on the `Host` property of a url, that is a sanitizer for URL redirects. */ -class HostComparisonSanitizer extends RequestForgerySanitizer { +private class HostComparisonSanitizer extends RequestForgerySanitizer { HostComparisonSanitizer() { this = DataFlow::BarrierGuard<isHostComparisonSanitizer/3>::getABarrierNode() } From 74876ff49beb5103d6f5c6974457a00afb15a2e7 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Tue, 12 Mar 2024 15:07:36 +0100 Subject: [PATCH 098/309] add change-note --- java/ql/lib/change-notes/2024-03-12-request-sanitizers.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2024-03-12-request-sanitizers.md diff --git a/java/ql/lib/change-notes/2024-03-12-request-sanitizers.md b/java/ql/lib/change-notes/2024-03-12-request-sanitizers.md new file mode 100644 index 00000000000..cc30b339320 --- /dev/null +++ b/java/ql/lib/change-notes/2024-03-12-request-sanitizers.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added sanitizers for relative URLs, `List.contains()`, and checking the host on an URI to the `java/ssrf` query. \ No newline at end of file From b07b0762f271355b2b315f7b77743756cad4bc90 Mon Sep 17 00:00:00 2001 From: Tamas Vajk <tamasvajk@github.com> Date: Tue, 12 Mar 2024 15:07:48 +0100 Subject: [PATCH 099/309] Adjust based on code review feedback --- .../DependencyManager.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 143ed49f440..f4ae77c3d33 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -927,7 +927,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var multipleVersions = notYetDownloadedPackages .GroupBy(p => p.Name) .Where(g => g.Count() > 1) - .Select(g => g.Key); + .Select(g => g.Key) + .ToList(); foreach (var package in multipleVersions) { From 179a7d500e75d3c37d61d4425087100ea62e1c24 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 12 Mar 2024 14:14:27 +0000 Subject: [PATCH 100/309] C++: Handle 'wchar_t' types that may be defined as unsigned short in C. This brings back SAMATE results. --- cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index 461df854c75..de397c31201 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -49,7 +49,9 @@ predicate cannotContainString(Type t) { not unspecified instanceof WideCharType and not unspecified instanceof Char8Type and not unspecified instanceof Char16Type and - not unspecified instanceof Char32Type + not unspecified instanceof Char32Type and + // C often defines `wchar_t` as `unsigned short` + unspecified = any(ShortType short | not short.isUnsigned()) | unspecified instanceof ArithmeticType or unspecified instanceof BuiltInType From 6a563c161e5e3cd677ef8e810f1fe2bf6df16573 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 12 Mar 2024 14:15:44 +0000 Subject: [PATCH 101/309] C++: Simplify the definition of 'isNonConst'. On ImageMagick I get the same exact sources before and after. --- .../Likely Bugs/Format/NonConstantFormat.ql | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index de397c31201..1a28f494fa6 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -109,35 +109,28 @@ predicate isNonConst(DataFlow::Node node) { // i.e., functions that with unknown bodies and are not known to define the output through its input // are considered as possible non-const sources // The function's output must also not be const to be considered a non-const source - ( + exists(Function func, CallInstruction call | + not func.hasDefinition() and + func = call.getStaticCallTarget() + | // Case 1: It's a known dataflow or taintflow function with flow to the return value - exists(Function func, CallInstruction call | - call.getUnconvertedResultExpression() = node.asIndirectExpr() and - func = call.getStaticCallTarget() and - not exists(FunctionOutput output | - dataFlowOrTaintFlowFunction(func, output) and - output.isReturnValueDeref() and - node = callOutput(call, output) - ) + call.getUnconvertedResultExpression() = node.asIndirectExpr() and + not exists(FunctionOutput output | + dataFlowOrTaintFlowFunction(func, output) and + output.isReturnValueDeref(_) and + node = callOutput(call, output) ) or - // Case 1: It's a known dataflow or taintflow function with flow to an output parameter - exists(Function func, int i, CallInstruction call | + // Case 2: It's a known dataflow or taintflow function with flow to an output parameter + exists(int i | call.getPositionalArgumentOperand(i).getDef().getUnconvertedResultExpression() = node.asDefiningArgument() and - func = call.getStaticCallTarget() and not exists(FunctionOutput output | dataFlowOrTaintFlowFunction(func, output) and - output.isParameterDeref(i) and + output.isParameterDeref(i, _) and node = callOutput(call, output) ) ) - ) and - not exists(Call c | - c.getTarget().hasDefinition() and - if node instanceof DataFlow::DefinitionByReferenceNode - then c.getAnArgument() = node.asDefiningArgument() - else c = node.asIndirectExpr() ) } From 51f57407071cc09cbbc6707722a15bfc5f9828df Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 12 Mar 2024 14:16:46 +0000 Subject: [PATCH 102/309] C++: Exclude functions that aren't declared inside the source root. This fixes performance on ImageMagick. --- cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index 1a28f494fa6..3e9576de175 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -63,6 +63,14 @@ predicate dataFlowOrTaintFlowFunction(Function func, FunctionOutput output) { func.(TaintFunction).hasTaintFlow(_, output) } +/** Holds if `func` is declared inside the source root. */ +predicate isInsideSourceRoot(Function func) { + exists(File f | + f = func.getFile() and + exists(f.getRelativePath()) + ) +} + /** * Holds if `node` is a non-constant source of data flow for non-const format string detection. * This is defined as either: @@ -111,7 +119,8 @@ predicate isNonConst(DataFlow::Node node) { // The function's output must also not be const to be considered a non-const source exists(Function func, CallInstruction call | not func.hasDefinition() and - func = call.getStaticCallTarget() + func = call.getStaticCallTarget() and + isInsideSourceRoot(func) | // Case 1: It's a known dataflow or taintflow function with flow to the return value call.getUnconvertedResultExpression() = node.asIndirectExpr() and From b53ae77c56fd1460559c023150c07ca87208f53a Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen <erik-krogh@github.com> Date: Tue, 12 Mar 2024 15:22:17 +0100 Subject: [PATCH 103/309] expand change-note Co-authored-by: Tony Torralba <atorralba@users.noreply.github.com> --- java/ql/lib/change-notes/2024-03-12-request-sanitizers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/change-notes/2024-03-12-request-sanitizers.md b/java/ql/lib/change-notes/2024-03-12-request-sanitizers.md index cc30b339320..08229d6d7d0 100644 --- a/java/ql/lib/change-notes/2024-03-12-request-sanitizers.md +++ b/java/ql/lib/change-notes/2024-03-12-request-sanitizers.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Added sanitizers for relative URLs, `List.contains()`, and checking the host on an URI to the `java/ssrf` query. \ No newline at end of file +* Added sanitizers for relative URLs, `List.contains()`, and checking the host of a URI to the `java/ssrf` and `java/unvalidated-url-redirection` queries. \ No newline at end of file From 35aae0a98108d8b5fbd30be5664180157eb51425 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Tue, 12 Mar 2024 15:22:57 +0100 Subject: [PATCH 104/309] move changenote to src/ --- .../ql/{lib => src}/change-notes/2024-03-12-request-sanitizers.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename java/ql/{lib => src}/change-notes/2024-03-12-request-sanitizers.md (100%) diff --git a/java/ql/lib/change-notes/2024-03-12-request-sanitizers.md b/java/ql/src/change-notes/2024-03-12-request-sanitizers.md similarity index 100% rename from java/ql/lib/change-notes/2024-03-12-request-sanitizers.md rename to java/ql/src/change-notes/2024-03-12-request-sanitizers.md From f6138230471e2f04fc2309f6f6fc3cd285230fb4 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Tue, 12 Mar 2024 15:25:27 +0100 Subject: [PATCH 105/309] add explicit QLDoc that any method named "contains" is matched --- java/ql/lib/semmle/code/java/security/RequestForgery.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/security/RequestForgery.qll b/java/ql/lib/semmle/code/java/security/RequestForgery.qll index 9ab593f0d6f..a4e824c1cfe 100644 --- a/java/ql/lib/semmle/code/java/security/RequestForgery.qll +++ b/java/ql/lib/semmle/code/java/security/RequestForgery.qll @@ -86,7 +86,9 @@ private class HostnameSantizer extends RequestForgerySanitizer { } /** - * An argument to a call to `List.contains()` that is a sanitizer for URL redirects. + * An argument to a call to a `.contains()` method that is a sanitizer for URL redirects. + * + * Matches any method call where the method is named `contains`. */ private predicate isContainsUrlSanitizer(Guard guard, Expr e, boolean branch) { guard = From ab6e2f9364f6b3de360ad3d5e7b2438d5db313c4 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 12 Mar 2024 15:00:15 +0000 Subject: [PATCH 106/309] C++: Accept test regression. --- .../Format/NonConstantFormat/NonConstantFormat.expected | 4 ---- .../Likely Bugs/Format/NonConstantFormat/nested.cpp | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected index c3c94158da8..7cdf2ada53a 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected @@ -7,7 +7,6 @@ edges | nested.cpp:34:37:34:39 | *fmt | nested.cpp:35:19:35:21 | *fmt | provenance | | | nested.cpp:35:19:35:21 | *fmt | nested.cpp:27:32:27:34 | *fmt | provenance | | | nested.cpp:42:24:42:34 | *call to ext_fmt_str | nested.cpp:34:37:34:39 | *fmt | provenance | | -| nested.cpp:86:19:86:46 | *call to __builtin_alloca | nested.cpp:87:18:87:20 | *fmt | provenance | | | test.cpp:46:27:46:30 | **argv | test.cpp:130:20:130:26 | *access to array | provenance | | | test.cpp:167:31:167:34 | *data | test.cpp:170:12:170:14 | *res | provenance | | | test.cpp:193:32:193:34 | *str | test.cpp:195:31:195:33 | *str | provenance | | @@ -35,8 +34,6 @@ nodes | nested.cpp:35:19:35:21 | *fmt | semmle.label | *fmt | | nested.cpp:42:24:42:34 | *call to ext_fmt_str | semmle.label | *call to ext_fmt_str | | nested.cpp:79:32:79:38 | *call to get_fmt | semmle.label | *call to get_fmt | -| nested.cpp:86:19:86:46 | *call to __builtin_alloca | semmle.label | *call to __builtin_alloca | -| nested.cpp:87:18:87:20 | *fmt | semmle.label | *fmt | | test.cpp:46:27:46:30 | **argv | semmle.label | **argv | | test.cpp:130:20:130:26 | *access to array | semmle.label | *access to array | | test.cpp:167:31:167:34 | *data | semmle.label | *data | @@ -68,7 +65,6 @@ subpaths | NonConstantFormat.c:45:9:45:48 | *call to gettext | NonConstantFormat.c:45:11:45:47 | *call to any_random_function | NonConstantFormat.c:45:9:45:48 | *call to gettext | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | NonConstantFormat.c:45:2:45:7 | call to printf | printf | | nested.cpp:21:23:21:26 | *fmt0 | nested.cpp:42:24:42:34 | *call to ext_fmt_str | nested.cpp:21:23:21:26 | *fmt0 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:21:5:21:12 | call to snprintf | snprintf | | nested.cpp:79:32:79:38 | *call to get_fmt | nested.cpp:79:32:79:38 | *call to get_fmt | nested.cpp:79:32:79:38 | *call to get_fmt | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:79:5:79:14 | call to diagnostic | diagnostic | -| nested.cpp:87:18:87:20 | *fmt | nested.cpp:86:19:86:46 | *call to __builtin_alloca | nested.cpp:87:18:87:20 | *fmt | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:87:7:87:16 | call to diagnostic | diagnostic | | test.cpp:130:20:130:26 | *access to array | test.cpp:46:27:46:30 | **argv | test.cpp:130:20:130:26 | *access to array | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:130:2:130:10 | call to sprintf | sprintf | | test.cpp:170:12:170:14 | *res | test.cpp:167:31:167:34 | *data | test.cpp:170:12:170:14 | *res | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:170:5:170:10 | call to printf | printf | | test.cpp:195:31:195:33 | *str | test.cpp:193:32:193:34 | *str | test.cpp:195:31:195:33 | *str | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:195:3:195:18 | call to StringCchPrintfW | StringCchPrintfW | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/nested.cpp b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/nested.cpp index 1c3d2513da5..40a88ee7fc0 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/nested.cpp +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/nested.cpp @@ -84,7 +84,7 @@ namespace ns { class blab { void out1(void) { char *fmt = (char *)__builtin_alloca(10); - diagnostic(fmt); // BAD + diagnostic(fmt); // BAD [NOT DETECTED] } }; } From 0e94aa0eb51a6a474d8d4923f09965449d87a95b Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Tue, 12 Mar 2024 16:42:37 +0000 Subject: [PATCH 107/309] Kotlin 2: Accept more changes in the exprs test --- .../library-tests/exprs/exprs.expected | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index d23114e0758..aa19916593a 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -1414,29 +1414,29 @@ | exprs.kt:157:8:157:8 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | | exprs.kt:157:8:157:21 | ...instanceof... | exprs.kt:156:1:163:1 | typeTests | InstanceOfExpr | | exprs.kt:157:8:157:21 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | -| exprs.kt:158:13:158:14 | x1 | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | +| exprs.kt:158:9:158:29 | x1 | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | | exprs.kt:158:29:158:29 | <implicit cast> | exprs.kt:156:1:163:1 | typeTests | ImplicitCastExpr | | exprs.kt:158:29:158:29 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | | exprs.kt:158:29:158:29 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | -| exprs.kt:160:9:160:10 | y1 | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | +| exprs.kt:160:5:160:60 | y1 | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | | exprs.kt:160:25:160:60 | true | exprs.kt:156:1:163:1 | typeTests | BooleanLiteral | | exprs.kt:160:25:160:60 | when ... | exprs.kt:156:1:163:1 | typeTests | WhenExpr | | exprs.kt:160:29:160:29 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | | exprs.kt:160:29:160:42 | ...instanceof... | exprs.kt:156:1:163:1 | typeTests | InstanceOfExpr | | exprs.kt:160:29:160:42 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | | exprs.kt:160:45:160:49 | <Stmt> | exprs.kt:156:1:163:1 | typeTests | StmtExpr | -| exprs.kt:160:45:160:49 | <implicit cast> | exprs.kt:156:1:163:1 | typeTests | ImplicitCastExpr | -| exprs.kt:160:45:160:49 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | +| exprs.kt:160:47:160:47 | <implicit cast> | exprs.kt:156:1:163:1 | typeTests | ImplicitCastExpr | +| exprs.kt:160:47:160:47 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | | exprs.kt:160:47:160:47 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | | exprs.kt:160:58:160:58 | y | exprs.kt:156:1:163:1 | typeTests | VarAccess | -| exprs.kt:161:9:161:9 | q | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | +| exprs.kt:161:5:161:13 | q | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | | exprs.kt:161:13:161:13 | 1 | exprs.kt:156:1:163:1 | typeTests | IntegerLiteral | | exprs.kt:162:5:162:48 | true | exprs.kt:156:1:163:1 | typeTests | BooleanLiteral | | exprs.kt:162:5:162:48 | when ... | exprs.kt:156:1:163:1 | typeTests | WhenExpr | | exprs.kt:162:9:162:9 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | | exprs.kt:162:9:162:22 | ...instanceof... | exprs.kt:156:1:163:1 | typeTests | InstanceOfExpr | | exprs.kt:162:9:162:22 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | -| exprs.kt:162:27:162:27 | q | exprs.kt:156:1:163:1 | typeTests | VarAccess | +| exprs.kt:162:27:162:31 | q | exprs.kt:156:1:163:1 | typeTests | VarAccess | | exprs.kt:162:27:162:31 | ...=... | exprs.kt:156:1:163:1 | typeTests | AssignExpr | | exprs.kt:162:31:162:31 | 2 | exprs.kt:156:1:163:1 | typeTests | IntegerLiteral | | exprs.kt:162:42:162:42 | q | exprs.kt:156:1:163:1 | typeTests | VarAccess | @@ -1444,23 +1444,23 @@ | exprs.kt:162:46:162:46 | 3 | exprs.kt:156:1:163:1 | typeTests | IntegerLiteral | | exprs.kt:165:1:172:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess | | exprs.kt:165:9:165:18 | Polygon | file://:0:0:0:0 | <none> | TypeAccess | -| exprs.kt:166:9:166:9 | r | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | +| exprs.kt:166:5:166:25 | r | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | | exprs.kt:166:13:166:13 | p | exprs.kt:165:1:172:1 | foo | VarAccess | | exprs.kt:166:13:166:25 | getBounds(...) | exprs.kt:165:1:172:1 | foo | MethodCall | | exprs.kt:167:5:171:5 | when ... | exprs.kt:165:1:172:1 | foo | WhenExpr | | exprs.kt:167:8:167:8 | r | exprs.kt:165:1:172:1 | foo | VarAccess | | exprs.kt:167:8:167:16 | ... (value not-equals) ... | exprs.kt:165:1:172:1 | foo | ValueNEExpr | | exprs.kt:167:13:167:16 | null | exprs.kt:165:1:172:1 | foo | NullLiteral | -| exprs.kt:168:13:168:14 | r2 | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | +| exprs.kt:168:9:168:29 | r2 | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | | exprs.kt:168:29:168:29 | <implicit not null> | exprs.kt:165:1:172:1 | foo | ImplicitNotNullExpr | | exprs.kt:168:29:168:29 | Rectangle | exprs.kt:165:1:172:1 | foo | TypeAccess | | exprs.kt:168:29:168:29 | r | exprs.kt:165:1:172:1 | foo | VarAccess | -| exprs.kt:169:13:169:18 | height | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | +| exprs.kt:169:9:169:30 | height | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | | exprs.kt:169:22:169:23 | r2 | exprs.kt:165:1:172:1 | foo | VarAccess | | exprs.kt:169:25:169:30 | r2.height | exprs.kt:165:1:172:1 | foo | VarAccess | | exprs.kt:170:9:170:10 | r2 | exprs.kt:165:1:172:1 | foo | VarAccess | -| exprs.kt:170:9:170:17 | r2.height | exprs.kt:165:1:172:1 | foo | VarAccess | -| exprs.kt:170:9:170:21 | ...=... | exprs.kt:165:1:172:1 | foo | AssignExpr | +| exprs.kt:170:12:170:21 | r2.height | exprs.kt:165:1:172:1 | foo | VarAccess | +| exprs.kt:170:12:170:21 | ...=... | exprs.kt:165:1:172:1 | foo | AssignExpr | | exprs.kt:170:21:170:21 | 3 | exprs.kt:165:1:172:1 | foo | IntegerLiteral | | exprs.kt:174:1:176:1 | 0 | exprs.kt:174:1:176:1 | Direction | IntegerLiteral | | exprs.kt:174:1:176:1 | Direction | exprs.kt:174:1:176:1 | Direction | TypeAccess | @@ -1471,7 +1471,7 @@ | exprs.kt:174:1:176:1 | Enum<Direction> | exprs.kt:174:1:176:1 | Direction | TypeAccess | | exprs.kt:174:1:176:1 | EnumEntries<Direction> | file://:0:0:0:0 | <none> | TypeAccess | | exprs.kt:174:1:176:1 | String | file://:0:0:0:0 | <none> | TypeAccess | -| exprs.kt:174:1:176:1 | new Enum(...) | exprs.kt:174:1:176:1 | Direction | ClassInstanceExpr | +| exprs.kt:174:1:176:1 | new Enum<Direction>(...) | exprs.kt:174:1:176:1 | Direction | ClassInstanceExpr | | exprs.kt:174:1:176:1 | null | exprs.kt:174:1:176:1 | Direction | NullLiteral | | exprs.kt:175:5:175:10 | ...=... | exprs.kt:0:0:0:0 | <clinit> | KtInitializerAssignExpr | | exprs.kt:175:5:175:10 | Direction | exprs.kt:0:0:0:0 | <clinit> | TypeAccess | From cff2cdb9e4c9d1ac8569da1a0aa153bdc13001eb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 00:15:53 +0000 Subject: [PATCH 108/309] Add changed framework coverage reports --- .../library-coverage/coverage.csv | 88 +++++++++---------- .../library-coverage/coverage.rst | 4 +- .../library-coverage/coverage.csv | 2 +- .../library-coverage/coverage.rst | 4 +- 4 files changed, 49 insertions(+), 49 deletions(-) diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv index 8bb3b01441a..6da4acdabe6 100644 --- a/csharp/documentation/library-coverage/coverage.csv +++ b/csharp/documentation/library-coverage/coverage.csv @@ -1,44 +1,44 @@ -package,sink,source,summary,sink:code-injection,sink:encryption-decryptor,sink:encryption-encryptor,sink:encryption-keyprop,sink:encryption-symmetrickey,sink:file-content-store,sink:html-injection,sink:js-injection,sink:log-injection,sink:sql-injection,source:commandargs,source:environment,source:file,source:file-write,source:local,source:remote,summary:taint,summary:value -Amazon.Lambda.APIGatewayEvents,,6,,,,,,,,,,,,,,,,,6,, -Amazon.Lambda.Core,10,,,,,,,,,,,10,,,,,,,,, -Dapper,55,,,,,,,,,,,,55,,,,,,,, -ILCompiler,,,81,,,,,,,,,,,,,,,,,81, -ILLink.RoslynAnalyzer,,,63,,,,,,,,,,,,,,,,,63, -ILLink.Shared,,,32,,,,,,,,,,,,,,,,,29,3 -ILLink.Tasks,,,5,,,,,,,,,,,,,,,,,5, -Internal.IL,,,69,,,,,,,,,,,,,,,,,67,2 -Internal.Pgo,,,9,,,,,,,,,,,,,,,,,8,1 -Internal.TypeSystem,,,367,,,,,,,,,,,,,,,,,331,36 -JsonToItemsTaskFactory,,,7,,,,,,,,,,,,,,,,,7, -Microsoft.Android.Build,,,14,,,,,,,,,,,,,,,,,14, -Microsoft.Apple.Build,,,7,,,,,,,,,,,,,,,,,7, -Microsoft.ApplicationBlocks.Data,28,,,,,,,,,,,,28,,,,,,,, -Microsoft.CSharp,,,24,,,,,,,,,,,,,,,,,24, -Microsoft.Diagnostics.Tools.Pgo,,,13,,,,,,,,,,,,,,,,,13, -Microsoft.EntityFrameworkCore,6,,12,,,,,,,,,,6,,,,,,,,12 -Microsoft.Extensions.Caching.Distributed,,,15,,,,,,,,,,,,,,,,,15, -Microsoft.Extensions.Caching.Memory,,,38,,,,,,,,,,,,,,,,,37,1 -Microsoft.Extensions.Configuration,,2,89,,,,,,,,,,,,2,,,,,86,3 -Microsoft.Extensions.DependencyInjection,,,120,,,,,,,,,,,,,,,,,120, -Microsoft.Extensions.DependencyModel,,,12,,,,,,,,,,,,,,,,,12, -Microsoft.Extensions.Diagnostics.Metrics,,,13,,,,,,,,,,,,,,,,,13, -Microsoft.Extensions.FileProviders,,,15,,,,,,,,,,,,,,,,,15, -Microsoft.Extensions.FileSystemGlobbing,,,16,,,,,,,,,,,,,,,,,14,2 -Microsoft.Extensions.Hosting,,,23,,,,,,,,,,,,,,,,,22,1 -Microsoft.Extensions.Http,,,10,,,,,,,,,,,,,,,,,10, -Microsoft.Extensions.Logging,,,60,,,,,,,,,,,,,,,,,59,1 -Microsoft.Extensions.Options,,,8,,,,,,,,,,,,,,,,,8, -Microsoft.Extensions.Primitives,,,64,,,,,,,,,,,,,,,,,64, -Microsoft.Interop,,,78,,,,,,,,,,,,,,,,,78, -Microsoft.NET.Build.Tasks,,,1,,,,,,,,,,,,,,,,,1, -Microsoft.NET.WebAssembly.Webcil,,,7,,,,,,,,,,,,,,,,,7, -Microsoft.VisualBasic,,,10,,,,,,,,,,,,,,,,,5,5 -Microsoft.WebAssembly.Build.Tasks,,,3,,,,,,,,,,,,,,,,,3, -Microsoft.Win32.SafeHandles,,,4,,,,,,,,,,,,,,,,,4, -Mono.Linker,,,163,,,,,,,,,,,,,,,,,163, -MySql.Data.MySqlClient,48,,,,,,,,,,,,48,,,,,,,, -Newtonsoft.Json,,,91,,,,,,,,,,,,,,,,,73,18 -ServiceStack,194,,7,27,,,,,75,,,,92,,,,,,,7, -SourceGenerators,,,4,,,,,,,,,,,,,,,,,4, -System,67,30,11864,,8,8,9,,,4,5,,33,2,3,1,17,3,4,9898,1966 -Windows.Security.Cryptography.Core,1,,,,,,,1,,,,,,,,,,,,, +package,sink,source,summary,sink:code-injection,sink:encryption-decryptor,sink:encryption-encryptor,sink:encryption-keyprop,sink:encryption-symmetrickey,sink:file-content-store,sink:html-injection,sink:js-injection,sink:log-injection,sink:sql-injection,source:commandargs,source:environment,source:file,source:file-write,source:local,source:remote,source:windows-registry,summary:taint,summary:value +Amazon.Lambda.APIGatewayEvents,,6,,,,,,,,,,,,,,,,,6,,, +Amazon.Lambda.Core,10,,,,,,,,,,,10,,,,,,,,,, +Dapper,55,,,,,,,,,,,,55,,,,,,,,, +ILCompiler,,,81,,,,,,,,,,,,,,,,,,81, +ILLink.RoslynAnalyzer,,,63,,,,,,,,,,,,,,,,,,63, +ILLink.Shared,,,32,,,,,,,,,,,,,,,,,,29,3 +ILLink.Tasks,,,5,,,,,,,,,,,,,,,,,,5, +Internal.IL,,,69,,,,,,,,,,,,,,,,,,67,2 +Internal.Pgo,,,9,,,,,,,,,,,,,,,,,,8,1 +Internal.TypeSystem,,,367,,,,,,,,,,,,,,,,,,331,36 +JsonToItemsTaskFactory,,,7,,,,,,,,,,,,,,,,,,7, +Microsoft.Android.Build,,,14,,,,,,,,,,,,,,,,,,14, +Microsoft.Apple.Build,,,7,,,,,,,,,,,,,,,,,,7, +Microsoft.ApplicationBlocks.Data,28,,,,,,,,,,,,28,,,,,,,,, +Microsoft.CSharp,,,24,,,,,,,,,,,,,,,,,,24, +Microsoft.Diagnostics.Tools.Pgo,,,13,,,,,,,,,,,,,,,,,,13, +Microsoft.EntityFrameworkCore,6,,12,,,,,,,,,,6,,,,,,,,,12 +Microsoft.Extensions.Caching.Distributed,,,15,,,,,,,,,,,,,,,,,,15, +Microsoft.Extensions.Caching.Memory,,,38,,,,,,,,,,,,,,,,,,37,1 +Microsoft.Extensions.Configuration,,2,89,,,,,,,,,,,,2,,,,,,86,3 +Microsoft.Extensions.DependencyInjection,,,120,,,,,,,,,,,,,,,,,,120, +Microsoft.Extensions.DependencyModel,,,12,,,,,,,,,,,,,,,,,,12, +Microsoft.Extensions.Diagnostics.Metrics,,,13,,,,,,,,,,,,,,,,,,13, +Microsoft.Extensions.FileProviders,,,15,,,,,,,,,,,,,,,,,,15, +Microsoft.Extensions.FileSystemGlobbing,,,16,,,,,,,,,,,,,,,,,,14,2 +Microsoft.Extensions.Hosting,,,23,,,,,,,,,,,,,,,,,,22,1 +Microsoft.Extensions.Http,,,10,,,,,,,,,,,,,,,,,,10, +Microsoft.Extensions.Logging,,,60,,,,,,,,,,,,,,,,,,59,1 +Microsoft.Extensions.Options,,,8,,,,,,,,,,,,,,,,,,8, +Microsoft.Extensions.Primitives,,,64,,,,,,,,,,,,,,,,,,64, +Microsoft.Interop,,,78,,,,,,,,,,,,,,,,,,78, +Microsoft.NET.Build.Tasks,,,1,,,,,,,,,,,,,,,,,,1, +Microsoft.NET.WebAssembly.Webcil,,,7,,,,,,,,,,,,,,,,,,7, +Microsoft.VisualBasic,,,10,,,,,,,,,,,,,,,,,,5,5 +Microsoft.WebAssembly.Build.Tasks,,,3,,,,,,,,,,,,,,,,,,3, +Microsoft.Win32,,4,4,,,,,,,,,,,,,,,,,4,4, +Mono.Linker,,,163,,,,,,,,,,,,,,,,,,163, +MySql.Data.MySqlClient,48,,,,,,,,,,,,48,,,,,,,,, +Newtonsoft.Json,,,91,,,,,,,,,,,,,,,,,,73,18 +ServiceStack,194,,7,27,,,,,75,,,,92,,,,,,,,7, +SourceGenerators,,,4,,,,,,,,,,,,,,,,,,4, +System,67,30,11864,,8,8,9,,,4,5,,33,2,3,1,17,3,4,,9898,1966 +Windows.Security.Cryptography.Core,1,,,,,,,1,,,,,,,,,,,,,, diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst index bdee069e89a..0b11da25d91 100644 --- a/csharp/documentation/library-coverage/coverage.rst +++ b/csharp/documentation/library-coverage/coverage.rst @@ -9,6 +9,6 @@ C# framework & library support Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE-079` :sub:`Cross-site scripting` `ServiceStack <https://servicestack.net/>`_,"``ServiceStack.*``, ``ServiceStack``",,7,194, System,"``System.*``, ``System``",30,11864,67,9 - Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``JsonToItemsTaskFactory``, ``Microsoft.Android.Build``, ``Microsoft.Apple.Build``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.CSharp``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.NET.WebAssembly.Webcil``, ``Microsoft.VisualBasic``, ``Microsoft.WebAssembly.Build.Tasks``, ``Microsoft.Win32.SafeHandles``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",8,1547,148, - Totals,,38,13418,409,9 + Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``JsonToItemsTaskFactory``, ``Microsoft.Android.Build``, ``Microsoft.Apple.Build``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.CSharp``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.NET.WebAssembly.Webcil``, ``Microsoft.VisualBasic``, ``Microsoft.WebAssembly.Build.Tasks``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",12,1547,148, + Totals,,42,13418,409,9 diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index 751024f5321..a86fdd321be 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -4,7 +4,7 @@ android.app,77,,103,,,,,,,,,,11,,,,,7,,,,,,,42,,,17,,,,,,,,,,,,,,,,,,,,,,18,85 android.content,24,31,154,,,,,,,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,8,,,,,,4,27,,,,,63,91 android.database,59,,41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,,,41, android.net,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,15 -android.os,,2,122,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,41,81 +android.os,1,2,122,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,2,,,,,,41,81 android.support.v4.app,11,,,,,,,,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, android.util,6,16,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,16,, android.webkit,3,2,,,,,,,,,,,,,,2,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 903890f7ba2..432d9c2db67 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -7,7 +7,7 @@ Java framework & library support :widths: auto Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE‑022` :sub:`Path injection`,`CWE‑079` :sub:`Cross-site scripting`,`CWE‑089` :sub:`SQL injection`,`CWE‑090` :sub:`LDAP injection`,`CWE‑094` :sub:`Code injection`,`CWE‑918` :sub:`Request Forgery` - Android,``android.*``,52,481,180,,3,67,,, + Android,``android.*``,52,481,181,1,3,67,,, Android extensions,``androidx.*``,5,183,60,,,,,, `Apache Commons Collections <https://commons.apache.org/proper/commons-collections/>`_,"``org.apache.commons.collections``, ``org.apache.commons.collections4``",,1600,,,,,,, `Apache Commons IO <https://commons.apache.org/proper/commons-io/>`_,``org.apache.commons.io``,,562,118,99,,,,,15 @@ -23,5 +23,5 @@ Java framework & library support Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 `Spring <https://spring.io/>`_,``org.springframework.*``,38,481,118,5,,28,14,,35 Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.mongodb``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",131,10518,893,125,6,22,18,,209 - Totals,,308,18953,2558,337,16,128,33,1,409 + Totals,,308,18953,2559,338,16,128,33,1,409 From 013ed7adb3f6d3a2db42da4c093bc67c599c2241 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Wed, 13 Mar 2024 09:51:35 +0100 Subject: [PATCH 109/309] Java: update the url-redirection in the same style as the C# qhelp --- .../src/Security/CWE/CWE-601/UrlRedirect.java | 14 ------ .../Security/CWE/CWE-601/UrlRedirect.qhelp | 46 ++++++++++++++++--- .../CWE/CWE-601/examples/UrlRedirect.java | 6 +++ .../CWE/CWE-601/examples/UrlRedirectGood.java | 16 +++++++ .../examples/UrlRedirectGoodDomain.java | 18 ++++++++ 5 files changed, 79 insertions(+), 21 deletions(-) delete mode 100644 java/ql/src/Security/CWE/CWE-601/UrlRedirect.java create mode 100644 java/ql/src/Security/CWE/CWE-601/examples/UrlRedirect.java create mode 100644 java/ql/src/Security/CWE/CWE-601/examples/UrlRedirectGood.java create mode 100644 java/ql/src/Security/CWE/CWE-601/examples/UrlRedirectGoodDomain.java diff --git a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.java b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.java deleted file mode 100644 index dd915d9eca4..00000000000 --- a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.java +++ /dev/null @@ -1,14 +0,0 @@ -public class UrlRedirect extends HttpServlet { - private static final String VALID_REDIRECT = "http://cwe.mitre.org/data/definitions/601.html"; - - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - // BAD: a request parameter is incorporated without validation into a URL redirect - response.sendRedirect(request.getParameter("target")); - - // GOOD: the request parameter is validated against a known fixed string - if (VALID_REDIRECT.equals(request.getParameter("target"))) { - response.sendRedirect(VALID_REDIRECT); - } - } -} diff --git a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp index 1fdd2be75ac..eddca4f62f6 100644 --- a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp +++ b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp @@ -16,21 +16,53 @@ controlled by the attacker.</p> <p>To guard against untrusted URL redirection, it is advisable to avoid putting user input directly into a redirect URL. Instead, maintain a list of authorized redirects on the server; then choose from that list based on the user input provided.</p> - +<p> +If this is not possible, then the user input should be validated in some other way, +for example, by verifying that the target URL is on the same host as the current page. +</p> </recommendation> -<example> -<p>The following example shows an HTTP request parameter being used directly in a URL redirect -without validating the input, which facilitates phishing attacks. -It also shows how to remedy the problem by validating the user input against a known fixed string. + +<example> +<p> +The following example shows an HTTP request parameter being used directly in a URL redirect +without validating the input, which facilitates phishing attacks: </p> -<sample src="UrlRedirect.java" /> +<sample src="examples/UrlRedirect.java"/> + +<p> +One way to remedy the problem is to validate the user input against a known fixed string +before doing the redirection: +</p> + +<sample src="examples/UrlRedirectGood.java"/> + +<p> +Alternatively, we can check that the target URL does not redirect to a different host +by checking that the URL is either relative or on a known good host: +</p> + +<sample src="examples/UrlRedirectGoodDomain.java"/> + +<p> +Note that as written, the above code will allow redirects to URLs on <code>example.com</code>, +which is harmless but perhaps not intended. You can substitute your own domain (if known) for +<code>example.com</code> to prevent this. +</p> </example> + <references> - +<li> +OWASP: +<a href="https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html">XSS +Unvalidated Redirects and Forwards Cheat Sheet</a>. +</li> +<li> +Microsoft Docs: <a href="https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/preventing-open-redirection-attacks">Preventing Open Redirection Attacks (C#)</a>. +</li> </references> </qhelp> diff --git a/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirect.java b/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirect.java new file mode 100644 index 00000000000..78281dc93c3 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirect.java @@ -0,0 +1,6 @@ +public class UrlRedirect extends HttpServlet { + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // BAD: a request parameter is incorporated without validation into a URL redirect + response.sendRedirect(request.getParameter("target")); + } +} \ No newline at end of file diff --git a/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirectGood.java b/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirectGood.java new file mode 100644 index 00000000000..4a44a22a375 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirectGood.java @@ -0,0 +1,16 @@ +public class UrlRedirect extends HttpServlet { + private static final List<String> VALID_REDIRECTS = Arrays.asList( + "http://cwe.mitre.org/data/definitions/601.html", + "http://cwe.mitre.org/data/definitions/79.html" + ); + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // GOOD: the request parameter is validated against a known list of strings + String target = request.getParameter("target"); + if (VALID_REDIRECTS.contains(target)) { + response.sendRedirect(target); + } else { + response.sendRedirect("/error.html"); + } + } +} \ No newline at end of file diff --git a/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirectGoodDomain.java b/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirectGoodDomain.java new file mode 100644 index 00000000000..e9010f30816 --- /dev/null +++ b/java/ql/src/Security/CWE/CWE-601/examples/UrlRedirectGoodDomain.java @@ -0,0 +1,18 @@ +public class UrlRedirect extends HttpServlet { + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + try { + String urlString = request.getParameter("page"); + URI url = new URI(urlString); + + if (!url.isAbsolute()) { + response.sendRedirect(url.toString()); // GOOD: The redirect is to a relative URL + } + + if ("example.org".equals(url.getHost())) { + response.sendRedirect(url.toString()); // GOOD: The redirect is to a known host + } + } catch (URISyntaxException e) { + // handle exception + } + } +} \ No newline at end of file From 3ef1ab49ea5ecab585cc0cde42b472b36a231ad1 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Wed, 13 Mar 2024 12:00:02 +0100 Subject: [PATCH 110/309] C++: Add IR tests for the destruction of temporaries --- .../library-tests/ir/ir/PrintAST.expected | 368 +++++++++++++ .../library-tests/ir/ir/aliased_ir.expected | 493 ++++++++++++++++++ .../ir/ir/destructors_for_temps.cpp | 56 ++ .../ir/ir/operand_locations.expected | 438 ++++++++++++++++ .../test/library-tests/ir/ir/raw_ir.expected | 414 +++++++++++++++ 5 files changed, 1769 insertions(+) create mode 100644 cpp/ql/test/library-tests/ir/ir/destructors_for_temps.cpp diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 24501a4bcae..624954838d6 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -1728,6 +1728,374 @@ complex.c: # 144| Type = [LongDoubleType] long double # 144| ValueCategory = prvalue # 145| getStmt(72): [ReturnStmt] return ... +destructors_for_temps.cpp: +# 1| [CopyAssignmentOperator] ClassWithDestructor2& ClassWithDestructor2::operator=(ClassWithDestructor2 const&) +# 1| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const ClassWithDestructor2 & +# 1| [CopyConstructor] void ClassWithDestructor2::ClassWithDestructor2(ClassWithDestructor2 const&) +# 1| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const ClassWithDestructor2 & +# 3| [Constructor] void ClassWithDestructor2::ClassWithDestructor2() +# 3| <params>: +# 4| [Destructor] void ClassWithDestructor2::~ClassWithDestructor2() +# 4| <params>: +# 6| [MemberFunction] char ClassWithDestructor2::get_x() +# 6| <params>: +# 9| [CopyAssignmentOperator] ClassWithConstructor& ClassWithConstructor::operator=(ClassWithConstructor const&) +# 9| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const ClassWithConstructor & +# 9| [MoveAssignmentOperator] ClassWithConstructor& ClassWithConstructor::operator=(ClassWithConstructor&&) +# 9| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] ClassWithConstructor && +# 9| [CopyConstructor] void ClassWithConstructor::ClassWithConstructor(ClassWithConstructor const&) +# 9| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const ClassWithConstructor & +# 9| [MoveConstructor] void ClassWithConstructor::ClassWithConstructor(ClassWithConstructor&&) +# 9| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] ClassWithConstructor && +# 9| <initializations>: +# 9| getEntryPoint(): [BlockStmt] { ... } +# 9| getStmt(0): [ReturnStmt] return ... +# 11| [Constructor] void ClassWithConstructor::ClassWithConstructor(char, char) +# 11| <params>: +# 11| getParameter(0): [Parameter] x +# 11| Type = [PlainCharType] char +# 11| getParameter(1): [Parameter] y +# 11| Type = [PlainCharType] char +# 14| [TopLevelFunction] char temp_test() +# 14| <params>: +# 14| getEntryPoint(): [BlockStmt] { ... } +# 15| getStmt(0): [DeclStmt] declaration +# 15| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 15| Type = [PlainCharType] char +# 15| getVariable().getInitializer(): [Initializer] initializer for x +# 15| getExpr(): [FunctionCall] call to get_x +# 15| Type = [PlainCharType] char +# 15| ValueCategory = prvalue +# 15| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 +# 15| Type = [VoidType] void +# 15| ValueCategory = prvalue +# 15| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 15| Type = [Class] ClassWithDestructor2 +# 15| ValueCategory = prvalue(load) +# 16| getStmt(1): [DeclStmt] declaration +# 16| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 16| Type = [Class] ClassWithConstructor +# 16| getVariable().getInitializer(): [Initializer] initializer for y +# 16| getExpr(): [ConstructorCall] call to ClassWithConstructor +# 16| Type = [VoidType] void +# 16| ValueCategory = prvalue +# 16| getArgument(0): [CharLiteral] 97 +# 16| Type = [PlainCharType] char +# 16| Value = [CharLiteral] 97 +# 16| ValueCategory = prvalue +# 16| getArgument(1): [FunctionCall] call to get_x +# 16| Type = [PlainCharType] char +# 16| ValueCategory = prvalue +# 16| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 +# 16| Type = [VoidType] void +# 16| ValueCategory = prvalue +# 16| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 16| Type = [Class] ClassWithDestructor2 +# 16| ValueCategory = prvalue(load) +# 17| getStmt(2): [ReturnStmt] return ... +# 17| getExpr(): [FunctionCall] call to get_x +# 17| Type = [PlainCharType] char +# 17| ValueCategory = prvalue +# 17| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 +# 17| Type = [VoidType] void +# 17| ValueCategory = prvalue +# 17| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 17| Type = [Class] ClassWithDestructor2 +# 17| ValueCategory = prvalue(load) +# 21| [TopLevelFunction] char temp_test2() +# 21| <params>: +# 21| getEntryPoint(): [BlockStmt] { ... } +# 22| getStmt(0): [ExprStmt] ExprStmt +# 22| getExpr(): [NewExpr] new +# 22| Type = [PointerType] ClassWithDestructor2 * +# 22| ValueCategory = prvalue +# 22| getInitializer(): [ConstructorCall] call to ClassWithDestructor2 +# 22| Type = [VoidType] void +# 22| ValueCategory = prvalue +# 23| getStmt(1): [ReturnStmt] return ... +# 23| getExpr(): [AddExpr] ... + ... +# 23| Type = [IntType] int +# 23| ValueCategory = prvalue +# 23| getLeftOperand(): [FunctionCall] call to get_x +# 23| Type = [PlainCharType] char +# 23| ValueCategory = prvalue +# 23| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 +# 23| Type = [VoidType] void +# 23| ValueCategory = prvalue +# 23| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 23| Type = [Class] ClassWithDestructor2 +# 23| ValueCategory = prvalue(load) +# 23| getRightOperand(): [FunctionCall] call to get_x +# 23| Type = [PlainCharType] char +# 23| ValueCategory = prvalue +# 23| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 +# 23| Type = [VoidType] void +# 23| ValueCategory = prvalue +# 23| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 23| Type = [Class] ClassWithDestructor2 +# 23| ValueCategory = prvalue(load) +# 23| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... +# 23| Conversion = [IntegralConversion] integral conversion +# 23| Type = [IntType] int +# 23| ValueCategory = prvalue +# 23| getRightOperand().getFullyConverted(): [CStyleCast] (int)... +# 23| Conversion = [IntegralConversion] integral conversion +# 23| Type = [IntType] int +# 23| ValueCategory = prvalue +# 23| getExpr().getFullyConverted(): [CStyleCast] (char)... +# 23| Conversion = [IntegralConversion] integral conversion +# 23| Type = [PlainCharType] char +# 23| ValueCategory = prvalue +# 27| [FunctionTemplateInstantiation,TopLevelFunction] ClassWithDestructor2 returnValue<ClassWithDestructor2>() +# 27| <params>: +# 27| [TemplateFunction,TopLevelFunction] T returnValue<T>() +# 27| <params>: +# 29| [TopLevelFunction] void temp_test3() +# 29| <params>: +# 29| getEntryPoint(): [BlockStmt] { ... } +# 30| getStmt(0): [DeclStmt] declaration +# 30| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rs +# 30| Type = [LValueReferenceType] const ClassWithDestructor2 & +# 30| getVariable().getInitializer(): [Initializer] initializer for rs +# 30| getExpr(): [FunctionCall] call to returnValue +# 30| Type = [Class] ClassWithDestructor2 +# 30| ValueCategory = prvalue +# 30| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 30| Type = [LValueReferenceType] const ClassWithDestructor2 & +# 30| ValueCategory = prvalue +# 30| getExpr(): [CStyleCast] (const ClassWithDestructor2)... +# 30| Conversion = [GlvalueConversion] glvalue conversion +# 30| Type = [SpecifiedType] const ClassWithDestructor2 +# 30| ValueCategory = lvalue +# 30| getExpr(): [TemporaryObjectExpr] temporary object +# 30| Type = [Class] ClassWithDestructor2 +# 30| ValueCategory = lvalue +# 31| getStmt(1): [ReturnStmt] return ... +# 33| [TopLevelFunction] void temp_test4() +# 33| <params>: +# 33| getEntryPoint(): [BlockStmt] { ... } +# 34| getStmt(0): [DeclStmt] declaration +# 34| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 34| Type = [Class] ClassWithDestructor2 +# 34| getVariable().getInitializer(): [Initializer] initializer for c +# 34| getExpr(): [ConstructorCall] call to ClassWithDestructor2 +# 34| Type = [VoidType] void +# 34| ValueCategory = prvalue +# 35| getStmt(1): [DeclStmt] declaration +# 35| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rs2 +# 35| Type = [LValueReferenceType] const ClassWithDestructor2 & +# 35| getVariable().getInitializer(): [Initializer] initializer for rs2 +# 35| getExpr(): [FunctionCall] call to returnValue +# 35| Type = [Class] ClassWithDestructor2 +# 35| ValueCategory = prvalue +# 35| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 35| Type = [LValueReferenceType] const ClassWithDestructor2 & +# 35| ValueCategory = prvalue +# 35| getExpr(): [CStyleCast] (const ClassWithDestructor2)... +# 35| Conversion = [GlvalueConversion] glvalue conversion +# 35| Type = [SpecifiedType] const ClassWithDestructor2 +# 35| ValueCategory = lvalue +# 35| getExpr(): [TemporaryObjectExpr] temporary object +# 35| Type = [Class] ClassWithDestructor2 +# 35| ValueCategory = lvalue +# 36| getStmt(2): [ReturnStmt] return ... +# 36| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 36| Type = [VoidType] void +# 36| ValueCategory = prvalue +# 36| getQualifier(): [VariableAccess] c +# 36| Type = [Class] ClassWithDestructor2 +# 36| ValueCategory = lvalue +# 38| [TopLevelFunction] void temp_test5(bool) +# 38| <params>: +# 38| getParameter(0): [Parameter] b +# 38| Type = [BoolType] bool +# 38| getEntryPoint(): [BlockStmt] { ... } +# 39| getStmt(0): [ExprStmt] ExprStmt +# 39| getExpr(): [ConditionalExpr] ... ? ... : ... +# 39| Type = [Class] ClassWithDestructor2 +# 39| ValueCategory = prvalue +# 39| getCondition(): [VariableAccess] b +# 39| Type = [BoolType] bool +# 39| ValueCategory = prvalue(load) +# 39| getThen(): [ConstructorCall] call to ClassWithDestructor2 +# 39| Type = [VoidType] void +# 39| ValueCategory = prvalue +# 39| getElse(): [ConstructorCall] call to ClassWithDestructor2 +# 39| Type = [VoidType] void +# 39| ValueCategory = prvalue +# 39| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 39| Type = [Class] ClassWithDestructor2 +# 39| ValueCategory = prvalue(load) +# 39| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 39| Type = [Class] ClassWithDestructor2 +# 39| ValueCategory = prvalue(load) +# 39| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 39| Type = [Class] ClassWithDestructor2 +# 39| ValueCategory = prvalue +# 40| getStmt(1): [ReturnStmt] return ... +# 42| [TopLevelFunction] void temp_test6(bool) +# 42| <params>: +# 42| getParameter(0): [Parameter] b +# 42| Type = [BoolType] bool +# 42| getEntryPoint(): [BlockStmt] { ... } +# 43| getStmt(0): [DeclStmt] declaration +# 43| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 43| Type = [Class] ClassWithDestructor2 +# 43| getVariable().getInitializer(): [Initializer] initializer for c +# 43| getExpr(): [ConstructorCall] call to ClassWithDestructor2 +# 43| Type = [VoidType] void +# 43| ValueCategory = prvalue +# 44| getStmt(1): [IfStmt] if (...) ... +# 44| getCondition(): [VariableAccess] b +# 44| Type = [BoolType] bool +# 44| ValueCategory = prvalue(load) +# 44| getThen(): [BlockStmt] { ... } +# 45| getStmt(0): [ExprStmt] ExprStmt +# 45| getExpr(): [ThrowExpr] throw ... +# 45| Type = [Class] ClassWithConstructor +# 45| ValueCategory = prvalue +# 45| getExpr(): [ConstructorCall] call to ClassWithConstructor +# 45| Type = [VoidType] void +# 45| ValueCategory = prvalue +# 45| getArgument(0): [CharLiteral] 120 +# 45| Type = [PlainCharType] char +# 45| Value = [CharLiteral] 120 +# 45| ValueCategory = prvalue +# 45| getArgument(1): [FunctionCall] call to get_x +# 45| Type = [PlainCharType] char +# 45| ValueCategory = prvalue +# 45| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 +# 45| Type = [VoidType] void +# 45| ValueCategory = prvalue +# 45| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 45| Type = [Class] ClassWithDestructor2 +# 45| ValueCategory = prvalue(load) +# 47| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 47| Type = [VoidType] void +# 47| ValueCategory = prvalue +# 47| getQualifier(): [VariableAccess] c +# 47| Type = [Class] ClassWithDestructor2 +# 47| ValueCategory = lvalue +# 47| getStmt(2): [ReturnStmt] return ... +# 47| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 47| Type = [VoidType] void +# 47| ValueCategory = prvalue +# 47| getQualifier(): [VariableAccess] c +# 47| Type = [Class] ClassWithDestructor2 +# 47| ValueCategory = lvalue +# 49| [TopLevelFunction] void temp_test7(bool) +# 49| <params>: +# 49| getParameter(0): [Parameter] b +# 49| Type = [BoolType] bool +# 49| getEntryPoint(): [BlockStmt] { ... } +# 50| getStmt(0): [DeclStmt] declaration +# 50| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 50| Type = [Class] ClassWithDestructor2 +# 50| getVariable().getInitializer(): [Initializer] initializer for c +# 50| getExpr(): [ConstructorCall] call to ClassWithDestructor2 +# 50| Type = [VoidType] void +# 50| ValueCategory = prvalue +# 51| getStmt(1): [ExprStmt] ExprStmt +# 51| getExpr(): [ConditionalExpr] ... ? ... : ... +# 51| Type = [Class] ClassWithDestructor2 +# 51| ValueCategory = prvalue(load) +# 51| getCondition(): [VariableAccess] b +# 51| Type = [BoolType] bool +# 51| ValueCategory = prvalue(load) +# 51| getThen(): [ThrowExpr] throw ... +# 51| Type = [Class] ClassWithConstructor +# 51| ValueCategory = prvalue +# 51| getExpr(): [ConstructorCall] call to ClassWithConstructor +# 51| Type = [VoidType] void +# 51| ValueCategory = prvalue +# 51| getArgument(0): [CharLiteral] 120 +# 51| Type = [PlainCharType] char +# 51| Value = [CharLiteral] 120 +# 51| ValueCategory = prvalue +# 51| getArgument(1): [FunctionCall] call to get_x +# 51| Type = [PlainCharType] char +# 51| ValueCategory = prvalue +# 51| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 +# 51| Type = [VoidType] void +# 51| ValueCategory = prvalue +# 51| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 51| Type = [Class] ClassWithDestructor2 +# 51| ValueCategory = prvalue(load) +# 52| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 52| Type = [VoidType] void +# 52| ValueCategory = prvalue +# 52| getQualifier(): [VariableAccess] c +# 52| Type = [Class] ClassWithDestructor2 +# 52| ValueCategory = lvalue +# 51| getElse(): [ConstructorCall] call to ClassWithDestructor2 +# 51| Type = [VoidType] void +# 51| ValueCategory = prvalue +# 51| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 51| Type = [Class] ClassWithDestructor2 +# 51| ValueCategory = prvalue(load) +# 51| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 51| Type = [Class] ClassWithDestructor2 +# 51| ValueCategory = prvalue +# 52| getStmt(2): [ReturnStmt] return ... +# 52| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 52| Type = [VoidType] void +# 52| ValueCategory = prvalue +# 52| getQualifier(): [VariableAccess] c +# 52| Type = [Class] ClassWithDestructor2 +# 52| ValueCategory = lvalue +# 54| [TopLevelFunction] void temp_test8(bool) +# 54| <params>: +# 54| getParameter(0): [Parameter] b +# 54| Type = [BoolType] bool +# 54| getEntryPoint(): [BlockStmt] { ... } +# 55| getStmt(0): [ExprStmt] ExprStmt +# 55| getExpr(): [ConditionalExpr] ... ? ... : ... +# 55| Type = [Class] ClassWithDestructor2 +# 55| ValueCategory = prvalue(load) +# 55| getCondition(): [VariableAccess] b +# 55| Type = [BoolType] bool +# 55| ValueCategory = prvalue(load) +# 55| getThen(): [ThrowExpr] throw ... +# 55| Type = [Class] ClassWithConstructor +# 55| ValueCategory = prvalue +# 55| getExpr(): [ConstructorCall] call to ClassWithConstructor +# 55| Type = [VoidType] void +# 55| ValueCategory = prvalue +# 55| getArgument(0): [CharLiteral] 120 +# 55| Type = [PlainCharType] char +# 55| Value = [CharLiteral] 120 +# 55| ValueCategory = prvalue +# 55| getArgument(1): [FunctionCall] call to get_x +# 55| Type = [PlainCharType] char +# 55| ValueCategory = prvalue +# 55| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 +# 55| Type = [VoidType] void +# 55| ValueCategory = prvalue +# 55| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 55| Type = [Class] ClassWithDestructor2 +# 55| ValueCategory = prvalue(load) +# 55| getElse(): [ConstructorCall] call to ClassWithDestructor2 +# 55| Type = [VoidType] void +# 55| ValueCategory = prvalue +# 55| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 55| Type = [Class] ClassWithDestructor2 +# 55| ValueCategory = prvalue(load) +# 55| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 55| Type = [Class] ClassWithDestructor2 +# 55| ValueCategory = prvalue +# 56| getStmt(1): [ReturnStmt] return ... ir.c: # 5| [TopLevelFunction] int getX(MyCoords*) # 5| <params>: 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 510a271b7ac..fe75f86cfc5 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -738,6 +738,499 @@ complex.c: # 58| v58_6(void) = AliasedUse : m58_3 # 58| v58_7(void) = ExitFunction : +destructors_for_temps.cpp: +# 9| void ClassWithConstructor::ClassWithConstructor(ClassWithConstructor&&) +# 9| Block 0 +# 9| v9_1(void) = EnterFunction : +# 9| m9_2(unknown) = AliasedDefinition : +# 9| m9_3(unknown) = InitializeNonLocal : +# 9| m9_4(unknown) = Chi : total:m9_2, partial:m9_3 +# 9| r9_5(glval<unknown>) = VariableAddress[#this] : +# 9| m9_6(glval<ClassWithConstructor>) = InitializeParameter[#this] : &:r9_5 +# 9| r9_7(glval<ClassWithConstructor>) = Load[#this] : &:r9_5, m9_6 +# 9| m9_8(ClassWithConstructor) = InitializeIndirection[#this] : &:r9_7 +#-----| r0_1(glval<ClassWithConstructor &&>) = VariableAddress[(unnamed parameter 0)] : +#-----| m0_2(ClassWithConstructor &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(ClassWithConstructor &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 +#-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 9| v9_9(void) = NoOp : +# 9| v9_10(void) = ReturnIndirection[#this] : &:r9_7, m9_8 +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 +# 9| v9_11(void) = ReturnVoid : +# 9| v9_12(void) = AliasedUse : m9_3 +# 9| v9_13(void) = ExitFunction : + +# 14| char temp_test() +# 14| Block 0 +# 14| v14_1(void) = EnterFunction : +# 14| m14_2(unknown) = AliasedDefinition : +# 14| m14_3(unknown) = InitializeNonLocal : +# 14| m14_4(unknown) = Chi : total:m14_2, partial:m14_3 +# 15| r15_1(glval<char>) = VariableAddress[x] : +# 15| r15_2(glval<ClassWithDestructor2>) = VariableAddress[#temp15:14] : +# 15| m15_3(ClassWithDestructor2) = Uninitialized[#temp15:14] : &:r15_2 +# 15| r15_4(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 15| v15_5(void) = Call[ClassWithDestructor2] : func:r15_4, this:r15_2 +# 15| m15_6(unknown) = ^CallSideEffect : ~m14_4 +# 15| m15_7(unknown) = Chi : total:m14_4, partial:m15_6 +# 15| m15_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r15_2 +# 15| m15_9(ClassWithDestructor2) = Chi : total:m15_3, partial:m15_8 +# 15| r15_10(glval<unknown>) = FunctionAddress[get_x] : +# 15| r15_11(char) = Call[get_x] : func:r15_10, this:r15_2 +# 15| m15_12(unknown) = ^CallSideEffect : ~m15_7 +# 15| m15_13(unknown) = Chi : total:m15_7, partial:m15_12 +# 15| v15_14(void) = ^IndirectReadSideEffect[-1] : &:r15_2, m15_9 +# 15| m15_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r15_2 +# 15| m15_16(ClassWithDestructor2) = Chi : total:m15_9, partial:m15_15 +# 15| m15_17(char) = Store[x] : &:r15_1, r15_11 +# 16| r16_1(glval<ClassWithConstructor>) = VariableAddress[y] : +# 16| m16_2(ClassWithConstructor) = Uninitialized[y] : &:r16_1 +# 16| r16_3(glval<unknown>) = FunctionAddress[ClassWithConstructor] : +# 16| r16_4(char) = Constant[97] : +# 16| r16_5(glval<ClassWithDestructor2>) = VariableAddress[#temp16:33] : +# 16| m16_6(ClassWithDestructor2) = Uninitialized[#temp16:33] : &:r16_5 +# 16| r16_7(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 16| v16_8(void) = Call[ClassWithDestructor2] : func:r16_7, this:r16_5 +# 16| m16_9(unknown) = ^CallSideEffect : ~m15_13 +# 16| m16_10(unknown) = Chi : total:m15_13, partial:m16_9 +# 16| m16_11(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r16_5 +# 16| m16_12(ClassWithDestructor2) = Chi : total:m16_6, partial:m16_11 +# 16| r16_13(glval<unknown>) = FunctionAddress[get_x] : +# 16| r16_14(char) = Call[get_x] : func:r16_13, this:r16_5 +# 16| m16_15(unknown) = ^CallSideEffect : ~m16_10 +# 16| m16_16(unknown) = Chi : total:m16_10, partial:m16_15 +# 16| v16_17(void) = ^IndirectReadSideEffect[-1] : &:r16_5, m16_12 +# 16| m16_18(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r16_5 +# 16| m16_19(ClassWithDestructor2) = Chi : total:m16_12, partial:m16_18 +# 16| v16_20(void) = Call[ClassWithConstructor] : func:r16_3, this:r16_1, 0:r16_4, 1:r16_14 +# 16| m16_21(unknown) = ^CallSideEffect : ~m16_16 +# 16| m16_22(unknown) = Chi : total:m16_16, partial:m16_21 +# 16| m16_23(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r16_1 +# 16| m16_24(ClassWithConstructor) = Chi : total:m16_2, partial:m16_23 +# 17| r17_1(glval<char>) = VariableAddress[#return] : +# 17| r17_2(glval<ClassWithDestructor2>) = VariableAddress[#temp17:12] : +# 17| m17_3(ClassWithDestructor2) = Uninitialized[#temp17:12] : &:r17_2 +# 17| r17_4(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 17| v17_5(void) = Call[ClassWithDestructor2] : func:r17_4, this:r17_2 +# 17| m17_6(unknown) = ^CallSideEffect : ~m16_22 +# 17| m17_7(unknown) = Chi : total:m16_22, partial:m17_6 +# 17| m17_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r17_2 +# 17| m17_9(ClassWithDestructor2) = Chi : total:m17_3, partial:m17_8 +# 17| r17_10(glval<unknown>) = FunctionAddress[get_x] : +# 17| r17_11(char) = Call[get_x] : func:r17_10, this:r17_2 +# 17| m17_12(unknown) = ^CallSideEffect : ~m17_7 +# 17| m17_13(unknown) = Chi : total:m17_7, partial:m17_12 +# 17| v17_14(void) = ^IndirectReadSideEffect[-1] : &:r17_2, m17_9 +# 17| m17_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r17_2 +# 17| m17_16(ClassWithDestructor2) = Chi : total:m17_9, partial:m17_15 +# 17| m17_17(char) = Store[#return] : &:r17_1, r17_11 +# 14| r14_5(glval<char>) = VariableAddress[#return] : +# 14| v14_6(void) = ReturnValue : &:r14_5, m17_17 +# 14| v14_7(void) = AliasedUse : ~m17_13 +# 14| v14_8(void) = ExitFunction : + +# 21| char temp_test2() +# 21| Block 0 +# 21| v21_1(void) = EnterFunction : +# 21| m21_2(unknown) = AliasedDefinition : +# 21| m21_3(unknown) = InitializeNonLocal : +# 21| m21_4(unknown) = Chi : total:m21_2, partial:m21_3 +# 22| r22_1(glval<unknown>) = FunctionAddress[operator new] : +# 22| r22_2(unsigned long) = Constant[1] : +# 22| r22_3(void *) = Call[operator new] : func:r22_1, 0:r22_2 +# 22| m22_4(unknown) = ^CallSideEffect : ~m21_4 +# 22| m22_5(unknown) = Chi : total:m21_4, partial:m22_4 +# 22| m22_6(unknown) = ^InitializeDynamicAllocation : &:r22_3 +# 22| r22_7(ClassWithDestructor2 *) = Convert : r22_3 +# 22| r22_8(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 22| v22_9(void) = Call[ClassWithDestructor2] : func:r22_8, this:r22_7 +# 22| m22_10(unknown) = ^CallSideEffect : ~m22_5 +# 22| m22_11(unknown) = Chi : total:m22_5, partial:m22_10 +# 22| m22_12(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r22_7 +# 22| m22_13(unknown) = Chi : total:m22_6, partial:m22_12 +# 23| r23_1(glval<char>) = VariableAddress[#return] : +# 23| r23_2(glval<ClassWithDestructor2>) = VariableAddress[#temp23:12] : +# 23| m23_3(ClassWithDestructor2) = Uninitialized[#temp23:12] : &:r23_2 +# 23| r23_4(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 23| v23_5(void) = Call[ClassWithDestructor2] : func:r23_4, this:r23_2 +# 23| m23_6(unknown) = ^CallSideEffect : ~m22_11 +# 23| m23_7(unknown) = Chi : total:m22_11, partial:m23_6 +# 23| m23_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r23_2 +# 23| m23_9(ClassWithDestructor2) = Chi : total:m23_3, partial:m23_8 +# 23| r23_10(glval<unknown>) = FunctionAddress[get_x] : +# 23| r23_11(char) = Call[get_x] : func:r23_10, this:r23_2 +# 23| m23_12(unknown) = ^CallSideEffect : ~m23_7 +# 23| m23_13(unknown) = Chi : total:m23_7, partial:m23_12 +# 23| v23_14(void) = ^IndirectReadSideEffect[-1] : &:r23_2, m23_9 +# 23| m23_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r23_2 +# 23| m23_16(ClassWithDestructor2) = Chi : total:m23_9, partial:m23_15 +# 23| r23_17(int) = Convert : r23_11 +# 23| r23_18(glval<ClassWithDestructor2>) = VariableAddress[#temp23:45] : +# 23| m23_19(ClassWithDestructor2) = Uninitialized[#temp23:45] : &:r23_18 +# 23| r23_20(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 23| v23_21(void) = Call[ClassWithDestructor2] : func:r23_20, this:r23_18 +# 23| m23_22(unknown) = ^CallSideEffect : ~m23_13 +# 23| m23_23(unknown) = Chi : total:m23_13, partial:m23_22 +# 23| m23_24(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r23_18 +# 23| m23_25(ClassWithDestructor2) = Chi : total:m23_19, partial:m23_24 +# 23| r23_26(glval<unknown>) = FunctionAddress[get_x] : +# 23| r23_27(char) = Call[get_x] : func:r23_26, this:r23_18 +# 23| m23_28(unknown) = ^CallSideEffect : ~m23_23 +# 23| m23_29(unknown) = Chi : total:m23_23, partial:m23_28 +# 23| v23_30(void) = ^IndirectReadSideEffect[-1] : &:r23_18, m23_25 +# 23| m23_31(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r23_18 +# 23| m23_32(ClassWithDestructor2) = Chi : total:m23_25, partial:m23_31 +# 23| r23_33(int) = Convert : r23_27 +# 23| r23_34(int) = Add : r23_17, r23_33 +# 23| r23_35(char) = Convert : r23_34 +# 23| m23_36(char) = Store[#return] : &:r23_1, r23_35 +# 21| r21_5(glval<char>) = VariableAddress[#return] : +# 21| v21_6(void) = ReturnValue : &:r21_5, m23_36 +# 21| v21_7(void) = AliasedUse : ~m23_29 +# 21| v21_8(void) = ExitFunction : + +# 29| void temp_test3() +# 29| Block 0 +# 29| v29_1(void) = EnterFunction : +# 29| m29_2(unknown) = AliasedDefinition : +# 29| m29_3(unknown) = InitializeNonLocal : +# 29| m29_4(unknown) = Chi : total:m29_2, partial:m29_3 +# 30| r30_1(glval<ClassWithDestructor2 &>) = VariableAddress[rs] : +# 30| r30_2(glval<ClassWithDestructor2>) = VariableAddress[#temp30:38] : +# 30| r30_3(glval<unknown>) = FunctionAddress[returnValue] : +# 30| r30_4(ClassWithDestructor2) = Call[returnValue] : func:r30_3 +# 30| m30_5(unknown) = ^CallSideEffect : ~m29_4 +# 30| m30_6(unknown) = Chi : total:m29_4, partial:m30_5 +# 30| m30_7(ClassWithDestructor2) = Store[#temp30:38] : &:r30_2, r30_4 +# 30| r30_8(glval<ClassWithDestructor2>) = Convert : r30_2 +# 30| r30_9(ClassWithDestructor2 &) = CopyValue : r30_8 +# 30| m30_10(ClassWithDestructor2 &) = Store[rs] : &:r30_1, r30_9 +# 31| v31_1(void) = NoOp : +# 29| v29_5(void) = ReturnVoid : +# 29| v29_6(void) = AliasedUse : ~m30_6 +# 29| v29_7(void) = ExitFunction : + +# 33| void temp_test4() +# 33| Block 0 +# 33| v33_1(void) = EnterFunction : +# 33| m33_2(unknown) = AliasedDefinition : +# 33| m33_3(unknown) = InitializeNonLocal : +# 33| m33_4(unknown) = Chi : total:m33_2, partial:m33_3 +# 34| r34_1(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 34| m34_2(ClassWithDestructor2) = Uninitialized[c] : &:r34_1 +# 34| r34_3(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 34| v34_4(void) = Call[ClassWithDestructor2] : func:r34_3, this:r34_1 +# 34| m34_5(unknown) = ^CallSideEffect : ~m33_4 +# 34| m34_6(unknown) = Chi : total:m33_4, partial:m34_5 +# 34| m34_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r34_1 +# 34| m34_8(ClassWithDestructor2) = Chi : total:m34_2, partial:m34_7 +# 35| r35_1(glval<ClassWithDestructor2 &>) = VariableAddress[rs2] : +# 35| r35_2(glval<ClassWithDestructor2>) = VariableAddress[#temp35:39] : +# 35| r35_3(glval<unknown>) = FunctionAddress[returnValue] : +# 35| r35_4(ClassWithDestructor2) = Call[returnValue] : func:r35_3 +# 35| m35_5(unknown) = ^CallSideEffect : ~m34_6 +# 35| m35_6(unknown) = Chi : total:m34_6, partial:m35_5 +# 35| m35_7(ClassWithDestructor2) = Store[#temp35:39] : &:r35_2, r35_4 +# 35| r35_8(glval<ClassWithDestructor2>) = Convert : r35_2 +# 35| r35_9(ClassWithDestructor2 &) = CopyValue : r35_8 +# 35| m35_10(ClassWithDestructor2 &) = Store[rs2] : &:r35_1, r35_9 +# 36| v36_1(void) = NoOp : +# 36| r36_2(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 36| r36_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] : +# 36| v36_4(void) = Call[~ClassWithDestructor2] : func:r36_3, this:r36_2 +# 36| m36_5(unknown) = ^CallSideEffect : ~m35_6 +# 36| m36_6(unknown) = Chi : total:m35_6, partial:m36_5 +# 36| v36_7(void) = ^IndirectReadSideEffect[-1] : &:r36_2, m34_8 +# 36| m36_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r36_2 +# 36| m36_9(ClassWithDestructor2) = Chi : total:m34_8, partial:m36_8 +# 33| v33_5(void) = ReturnVoid : +# 33| v33_6(void) = AliasedUse : ~m36_6 +# 33| v33_7(void) = ExitFunction : + +# 38| void temp_test5(bool) +# 38| Block 0 +# 38| v38_1(void) = EnterFunction : +# 38| m38_2(unknown) = AliasedDefinition : +# 38| m38_3(unknown) = InitializeNonLocal : +# 38| m38_4(unknown) = Chi : total:m38_2, partial:m38_3 +# 38| r38_5(glval<bool>) = VariableAddress[b] : +# 38| m38_6(bool) = InitializeParameter[b] : &:r38_5 +# 39| r39_1(glval<ClassWithDestructor2>) = VariableAddress[#temp39:3] : +# 39| r39_2(glval<bool>) = VariableAddress[b] : +# 39| r39_3(bool) = Load[b] : &:r39_2, m38_6 +# 39| v39_4(void) = ConditionalBranch : r39_3 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 39| Block 1 +# 39| m39_5(unknown) = Phi : from 2:~m39_15, from 3:~m39_26 +# 39| m39_6(ClassWithDestructor2) = Phi : from 2:m39_20, from 3:m39_31 +# 39| r39_7(glval<ClassWithDestructor2>) = VariableAddress[#temp39:3] : +# 39| r39_8(ClassWithDestructor2) = Load[#temp39:3] : &:r39_7, m39_6 +# 39| m39_9(ClassWithDestructor2) = Store[#temp39:3] : &:r39_1, r39_8 +# 40| v40_1(void) = NoOp : +# 38| v38_7(void) = ReturnVoid : +# 38| v38_8(void) = AliasedUse : ~m39_5 +# 38| v38_9(void) = ExitFunction : + +# 39| Block 2 +# 39| r39_10(glval<ClassWithDestructor2>) = VariableAddress[#temp39:7] : +# 39| m39_11(ClassWithDestructor2) = Uninitialized[#temp39:7] : &:r39_10 +# 39| r39_12(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 39| v39_13(void) = Call[ClassWithDestructor2] : func:r39_12, this:r39_10 +# 39| m39_14(unknown) = ^CallSideEffect : ~m38_4 +# 39| m39_15(unknown) = Chi : total:m38_4, partial:m39_14 +# 39| m39_16(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r39_10 +# 39| m39_17(ClassWithDestructor2) = Chi : total:m39_11, partial:m39_16 +# 39| r39_18(ClassWithDestructor2) = Load[#temp39:7] : &:r39_10, m39_17 +# 39| r39_19(glval<ClassWithDestructor2>) = VariableAddress[#temp39:3] : +# 39| m39_20(ClassWithDestructor2) = Store[#temp39:3] : &:r39_19, r39_18 +#-----| Goto -> Block 1 + +# 39| Block 3 +# 39| r39_21(glval<ClassWithDestructor2>) = VariableAddress[#temp39:32] : +# 39| m39_22(ClassWithDestructor2) = Uninitialized[#temp39:32] : &:r39_21 +# 39| r39_23(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 39| v39_24(void) = Call[ClassWithDestructor2] : func:r39_23, this:r39_21 +# 39| m39_25(unknown) = ^CallSideEffect : ~m38_4 +# 39| m39_26(unknown) = Chi : total:m38_4, partial:m39_25 +# 39| m39_27(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r39_21 +# 39| m39_28(ClassWithDestructor2) = Chi : total:m39_22, partial:m39_27 +# 39| r39_29(ClassWithDestructor2) = Load[#temp39:32] : &:r39_21, m39_28 +# 39| r39_30(glval<ClassWithDestructor2>) = VariableAddress[#temp39:3] : +# 39| m39_31(ClassWithDestructor2) = Store[#temp39:3] : &:r39_30, r39_29 +#-----| Goto -> Block 1 + +# 42| void temp_test6(bool) +# 42| Block 0 +# 42| v42_1(void) = EnterFunction : +# 42| m42_2(unknown) = AliasedDefinition : +# 42| m42_3(unknown) = InitializeNonLocal : +# 42| m42_4(unknown) = Chi : total:m42_2, partial:m42_3 +# 42| r42_5(glval<bool>) = VariableAddress[b] : +# 42| m42_6(bool) = InitializeParameter[b] : &:r42_5 +# 43| r43_1(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 43| m43_2(ClassWithDestructor2) = Uninitialized[c] : &:r43_1 +# 43| r43_3(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 43| v43_4(void) = Call[ClassWithDestructor2] : func:r43_3, this:r43_1 +# 43| m43_5(unknown) = ^CallSideEffect : ~m42_4 +# 43| m43_6(unknown) = Chi : total:m42_4, partial:m43_5 +# 43| m43_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r43_1 +# 43| m43_8(ClassWithDestructor2) = Chi : total:m43_2, partial:m43_7 +# 44| r44_1(glval<bool>) = VariableAddress[b] : +# 44| r44_2(bool) = Load[b] : &:r44_1, m42_6 +# 44| v44_3(void) = ConditionalBranch : r44_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 42| Block 1 +# 42| m42_7(unknown) = Phi : from 2:~m45_22, from 4:~m47_6 +# 42| v42_8(void) = AliasedUse : ~m42_7 +# 42| v42_9(void) = ExitFunction : + +# 42| Block 2 +# 42| v42_10(void) = Unwind : +#-----| Goto -> Block 1 + +# 45| Block 3 +# 45| r45_1(glval<ClassWithConstructor>) = VariableAddress[#throw45:7] : +# 45| m45_2(ClassWithConstructor) = Uninitialized[#throw45:7] : &:r45_1 +# 45| r45_3(glval<unknown>) = FunctionAddress[ClassWithConstructor] : +# 45| r45_4(char) = Constant[120] : +# 45| r45_5(glval<ClassWithDestructor2>) = VariableAddress[#temp45:39] : +# 45| m45_6(ClassWithDestructor2) = Uninitialized[#temp45:39] : &:r45_5 +# 45| r45_7(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 45| v45_8(void) = Call[ClassWithDestructor2] : func:r45_7, this:r45_5 +# 45| m45_9(unknown) = ^CallSideEffect : ~m43_6 +# 45| m45_10(unknown) = Chi : total:m43_6, partial:m45_9 +# 45| m45_11(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r45_5 +# 45| m45_12(ClassWithDestructor2) = Chi : total:m45_6, partial:m45_11 +# 45| r45_13(glval<unknown>) = FunctionAddress[get_x] : +# 45| r45_14(char) = Call[get_x] : func:r45_13, this:r45_5 +# 45| m45_15(unknown) = ^CallSideEffect : ~m45_10 +# 45| m45_16(unknown) = Chi : total:m45_10, partial:m45_15 +# 45| v45_17(void) = ^IndirectReadSideEffect[-1] : &:r45_5, m45_12 +# 45| m45_18(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r45_5 +# 45| m45_19(ClassWithDestructor2) = Chi : total:m45_12, partial:m45_18 +# 45| v45_20(void) = Call[ClassWithConstructor] : func:r45_3, this:r45_1, 0:r45_4, 1:r45_14 +# 45| m45_21(unknown) = ^CallSideEffect : ~m45_16 +# 45| m45_22(unknown) = Chi : total:m45_16, partial:m45_21 +# 45| m45_23(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r45_1 +# 45| m45_24(ClassWithConstructor) = Chi : total:m45_2, partial:m45_23 +# 45| v45_25(void) = ThrowValue : &:r45_1, m45_24 +#-----| Exception -> Block 2 + +# 47| Block 4 +# 47| v47_1(void) = NoOp : +# 47| r47_2(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 47| r47_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] : +# 47| v47_4(void) = Call[~ClassWithDestructor2] : func:r47_3, this:r47_2 +# 47| m47_5(unknown) = ^CallSideEffect : ~m43_6 +# 47| m47_6(unknown) = Chi : total:m43_6, partial:m47_5 +# 47| v47_7(void) = ^IndirectReadSideEffect[-1] : &:r47_2, m43_8 +# 47| m47_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r47_2 +# 47| m47_9(ClassWithDestructor2) = Chi : total:m43_8, partial:m47_8 +# 42| v42_11(void) = ReturnVoid : +#-----| Goto -> Block 1 + +# 49| void temp_test7(bool) +# 49| Block 0 +# 49| v49_1(void) = EnterFunction : +# 49| m49_2(unknown) = AliasedDefinition : +# 49| m49_3(unknown) = InitializeNonLocal : +# 49| m49_4(unknown) = Chi : total:m49_2, partial:m49_3 +# 49| r49_5(glval<bool>) = VariableAddress[b] : +# 49| m49_6(bool) = InitializeParameter[b] : &:r49_5 +# 50| r50_1(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 50| m50_2(ClassWithDestructor2) = Uninitialized[c] : &:r50_1 +# 50| r50_3(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 50| v50_4(void) = Call[ClassWithDestructor2] : func:r50_3, this:r50_1 +# 50| m50_5(unknown) = ^CallSideEffect : ~m49_4 +# 50| m50_6(unknown) = Chi : total:m49_4, partial:m50_5 +# 50| m50_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r50_1 +# 50| m50_8(ClassWithDestructor2) = Chi : total:m50_2, partial:m50_7 +# 51| r51_1(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] : +# 51| r51_2(glval<bool>) = VariableAddress[b] : +# 51| r51_3(bool) = Load[b] : &:r51_2, m49_6 +# 51| v51_4(void) = ConditionalBranch : r51_3 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 49| Block 1 +# 49| m49_7(unknown) = Phi : from 2:~m51_26, from 4:~m52_6 +# 49| v49_8(void) = AliasedUse : ~m49_7 +# 49| v49_9(void) = ExitFunction : + +# 49| Block 2 +# 49| v49_10(void) = Unwind : +#-----| Goto -> Block 1 + +# 51| Block 3 +# 51| r51_5(glval<ClassWithConstructor>) = VariableAddress[#throw51:9] : +# 51| m51_6(ClassWithConstructor) = Uninitialized[#throw51:9] : &:r51_5 +# 51| r51_7(glval<unknown>) = FunctionAddress[ClassWithConstructor] : +# 51| r51_8(char) = Constant[120] : +# 51| r51_9(glval<ClassWithDestructor2>) = VariableAddress[#temp51:41] : +# 51| m51_10(ClassWithDestructor2) = Uninitialized[#temp51:41] : &:r51_9 +# 51| r51_11(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 51| v51_12(void) = Call[ClassWithDestructor2] : func:r51_11, this:r51_9 +# 51| m51_13(unknown) = ^CallSideEffect : ~m50_6 +# 51| m51_14(unknown) = Chi : total:m50_6, partial:m51_13 +# 51| m51_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_9 +# 51| m51_16(ClassWithDestructor2) = Chi : total:m51_10, partial:m51_15 +# 51| r51_17(glval<unknown>) = FunctionAddress[get_x] : +# 51| r51_18(char) = Call[get_x] : func:r51_17, this:r51_9 +# 51| m51_19(unknown) = ^CallSideEffect : ~m51_14 +# 51| m51_20(unknown) = Chi : total:m51_14, partial:m51_19 +# 51| v51_21(void) = ^IndirectReadSideEffect[-1] : &:r51_9, m51_16 +# 51| m51_22(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_9 +# 51| m51_23(ClassWithDestructor2) = Chi : total:m51_16, partial:m51_22 +# 51| v51_24(void) = Call[ClassWithConstructor] : func:r51_7, this:r51_5, 0:r51_8, 1:r51_18 +# 51| m51_25(unknown) = ^CallSideEffect : ~m51_20 +# 51| m51_26(unknown) = Chi : total:m51_20, partial:m51_25 +# 51| m51_27(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r51_5 +# 51| m51_28(ClassWithConstructor) = Chi : total:m51_6, partial:m51_27 +# 51| v51_29(void) = ThrowValue : &:r51_5, m51_28 +#-----| Exception -> Block 2 + +# 51| Block 4 +# 51| r51_30(glval<ClassWithDestructor2>) = VariableAddress[#temp51:75] : +# 51| m51_31(ClassWithDestructor2) = Uninitialized[#temp51:75] : &:r51_30 +# 51| r51_32(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 51| v51_33(void) = Call[ClassWithDestructor2] : func:r51_32, this:r51_30 +# 51| m51_34(unknown) = ^CallSideEffect : ~m50_6 +# 51| m51_35(unknown) = Chi : total:m50_6, partial:m51_34 +# 51| m51_36(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_30 +# 51| m51_37(ClassWithDestructor2) = Chi : total:m51_31, partial:m51_36 +# 51| r51_38(ClassWithDestructor2) = Load[#temp51:75] : &:r51_30, m51_37 +# 51| r51_39(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] : +# 51| m51_40(ClassWithDestructor2) = Store[#temp51:5] : &:r51_39, r51_38 +# 51| r51_41(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] : +# 51| r51_42(ClassWithDestructor2) = Load[#temp51:5] : &:r51_41, m51_40 +# 51| m51_43(ClassWithDestructor2) = Store[#temp51:5] : &:r51_1, r51_42 +# 52| v52_1(void) = NoOp : +# 52| r52_2(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 52| r52_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] : +# 52| v52_4(void) = Call[~ClassWithDestructor2] : func:r52_3, this:r52_2 +# 52| m52_5(unknown) = ^CallSideEffect : ~m51_35 +# 52| m52_6(unknown) = Chi : total:m51_35, partial:m52_5 +# 52| v52_7(void) = ^IndirectReadSideEffect[-1] : &:r52_2, m50_8 +# 52| m52_8(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r52_2 +# 52| m52_9(ClassWithDestructor2) = Chi : total:m50_8, partial:m52_8 +# 49| v49_11(void) = ReturnVoid : +#-----| Goto -> Block 1 + +# 54| void temp_test8(bool) +# 54| Block 0 +# 54| v54_1(void) = EnterFunction : +# 54| m54_2(unknown) = AliasedDefinition : +# 54| m54_3(unknown) = InitializeNonLocal : +# 54| m54_4(unknown) = Chi : total:m54_2, partial:m54_3 +# 54| r54_5(glval<bool>) = VariableAddress[b] : +# 54| m54_6(bool) = InitializeParameter[b] : &:r54_5 +# 55| r55_1(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] : +# 55| r55_2(glval<bool>) = VariableAddress[b] : +# 55| r55_3(bool) = Load[b] : &:r55_2, m54_6 +# 55| v55_4(void) = ConditionalBranch : r55_3 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 54| Block 1 +# 54| m54_7(unknown) = Phi : from 2:~m55_26, from 4:~m55_35 +# 54| v54_8(void) = AliasedUse : ~m54_7 +# 54| v54_9(void) = ExitFunction : + +# 54| Block 2 +# 54| v54_10(void) = Unwind : +#-----| Goto -> Block 1 + +# 55| Block 3 +# 55| r55_5(glval<ClassWithConstructor>) = VariableAddress[#throw55:9] : +# 55| m55_6(ClassWithConstructor) = Uninitialized[#throw55:9] : &:r55_5 +# 55| r55_7(glval<unknown>) = FunctionAddress[ClassWithConstructor] : +# 55| r55_8(char) = Constant[120] : +# 55| r55_9(glval<ClassWithDestructor2>) = VariableAddress[#temp55:41] : +# 55| m55_10(ClassWithDestructor2) = Uninitialized[#temp55:41] : &:r55_9 +# 55| r55_11(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 55| v55_12(void) = Call[ClassWithDestructor2] : func:r55_11, this:r55_9 +# 55| m55_13(unknown) = ^CallSideEffect : ~m54_4 +# 55| m55_14(unknown) = Chi : total:m54_4, partial:m55_13 +# 55| m55_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_9 +# 55| m55_16(ClassWithDestructor2) = Chi : total:m55_10, partial:m55_15 +# 55| r55_17(glval<unknown>) = FunctionAddress[get_x] : +# 55| r55_18(char) = Call[get_x] : func:r55_17, this:r55_9 +# 55| m55_19(unknown) = ^CallSideEffect : ~m55_14 +# 55| m55_20(unknown) = Chi : total:m55_14, partial:m55_19 +# 55| v55_21(void) = ^IndirectReadSideEffect[-1] : &:r55_9, m55_16 +# 55| m55_22(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_9 +# 55| m55_23(ClassWithDestructor2) = Chi : total:m55_16, partial:m55_22 +# 55| v55_24(void) = Call[ClassWithConstructor] : func:r55_7, this:r55_5, 0:r55_8, 1:r55_18 +# 55| m55_25(unknown) = ^CallSideEffect : ~m55_20 +# 55| m55_26(unknown) = Chi : total:m55_20, partial:m55_25 +# 55| m55_27(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r55_5 +# 55| m55_28(ClassWithConstructor) = Chi : total:m55_6, partial:m55_27 +# 55| v55_29(void) = ThrowValue : &:r55_5, m55_28 +#-----| Exception -> Block 2 + +# 55| Block 4 +# 55| r55_30(glval<ClassWithDestructor2>) = VariableAddress[#temp55:75] : +# 55| m55_31(ClassWithDestructor2) = Uninitialized[#temp55:75] : &:r55_30 +# 55| r55_32(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 55| v55_33(void) = Call[ClassWithDestructor2] : func:r55_32, this:r55_30 +# 55| m55_34(unknown) = ^CallSideEffect : ~m54_4 +# 55| m55_35(unknown) = Chi : total:m54_4, partial:m55_34 +# 55| m55_36(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_30 +# 55| m55_37(ClassWithDestructor2) = Chi : total:m55_31, partial:m55_36 +# 55| r55_38(ClassWithDestructor2) = Load[#temp55:75] : &:r55_30, m55_37 +# 55| r55_39(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] : +# 55| m55_40(ClassWithDestructor2) = Store[#temp55:5] : &:r55_39, r55_38 +# 55| r55_41(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] : +# 55| r55_42(ClassWithDestructor2) = Load[#temp55:5] : &:r55_41, m55_40 +# 55| m55_43(ClassWithDestructor2) = Store[#temp55:5] : &:r55_1, r55_42 +# 56| v56_1(void) = NoOp : +# 54| v54_11(void) = ReturnVoid : +#-----| Goto -> Block 1 + ir.c: # 7| void MyCoordsTest(int) # 7| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/destructors_for_temps.cpp b/cpp/ql/test/library-tests/ir/ir/destructors_for_temps.cpp new file mode 100644 index 00000000000..572c81ac111 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/destructors_for_temps.cpp @@ -0,0 +1,56 @@ +class ClassWithDestructor2 { +public: + ClassWithDestructor2(); + ~ClassWithDestructor2(); + + char get_x(); +}; + +class ClassWithConstructor { +public: + ClassWithConstructor(char x, char y); +}; + +char temp_test() { + char x = ClassWithDestructor2().get_x(); + ClassWithConstructor y('a', ClassWithDestructor2().get_x()); + return ClassWithDestructor2().get_x(); +} + + +char temp_test2() { + new ClassWithDestructor2(); + return ClassWithDestructor2().get_x() + ClassWithDestructor2().get_x(); +} + +template<typename T> +T returnValue(); + +void temp_test3() { + const ClassWithDestructor2& rs = returnValue<ClassWithDestructor2>(); +} + +void temp_test4() { + ClassWithDestructor2 c; + const ClassWithDestructor2& rs2 = returnValue<ClassWithDestructor2>(); +} + +void temp_test5(bool b) { + b ? ClassWithDestructor2() : ClassWithDestructor2(); +} + +void temp_test6(bool b) { + ClassWithDestructor2 c; + if (b) { + throw ClassWithConstructor('x', ClassWithDestructor2().get_x()); + } +} + +void temp_test7(bool b) { + ClassWithDestructor2 c; + b ? throw ClassWithConstructor('x', ClassWithDestructor2().get_x()) : ClassWithDestructor2(); +} + +void temp_test8(bool b) { + b ? throw ClassWithConstructor('x', ClassWithDestructor2().get_x()) : ClassWithDestructor2(); +} diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index 6d9a76dc068..7f606978b58 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -652,6 +652,440 @@ | complex.c:144:8:144:10 | Load | m133_5 | | complex.c:144:8:144:10 | StoreValue | r144_3 | | complex.c:144:8:144:10 | Unary | r144_2 | +| destructors_for_temps.cpp:9:7:9:7 | Address | &:r9_5 | +| destructors_for_temps.cpp:9:7:9:7 | Address | &:r9_5 | +| destructors_for_temps.cpp:9:7:9:7 | Address | &:r9_7 | +| destructors_for_temps.cpp:9:7:9:7 | Address | &:r9_7 | +| destructors_for_temps.cpp:9:7:9:7 | ChiPartial | partial:m9_3 | +| destructors_for_temps.cpp:9:7:9:7 | ChiTotal | total:m9_2 | +| destructors_for_temps.cpp:9:7:9:7 | Load | m9_6 | +| destructors_for_temps.cpp:9:7:9:7 | SideEffect | m9_3 | +| destructors_for_temps.cpp:9:7:9:7 | SideEffect | m9_8 | +| destructors_for_temps.cpp:14:6:14:14 | Address | &:r14_5 | +| destructors_for_temps.cpp:14:6:14:14 | ChiPartial | partial:m14_3 | +| destructors_for_temps.cpp:14:6:14:14 | ChiTotal | total:m14_2 | +| destructors_for_temps.cpp:14:6:14:14 | Load | m17_17 | +| destructors_for_temps.cpp:14:6:14:14 | SideEffect | ~m17_13 | +| destructors_for_temps.cpp:15:10:15:10 | Address | &:r15_1 | +| destructors_for_temps.cpp:15:14:15:35 | Address | &:r15_2 | +| destructors_for_temps.cpp:15:14:15:35 | Address | &:r15_2 | +| destructors_for_temps.cpp:15:14:15:35 | Address | &:r15_2 | +| destructors_for_temps.cpp:15:14:15:35 | Address | &:r15_2 | +| destructors_for_temps.cpp:15:14:15:35 | Arg(this) | this:r15_2 | +| destructors_for_temps.cpp:15:14:15:35 | Arg(this) | this:r15_2 | +| destructors_for_temps.cpp:15:14:15:35 | CallTarget | func:r15_4 | +| destructors_for_temps.cpp:15:14:15:35 | ChiPartial | partial:m15_6 | +| destructors_for_temps.cpp:15:14:15:35 | ChiPartial | partial:m15_8 | +| destructors_for_temps.cpp:15:14:15:35 | ChiPartial | partial:m15_15 | +| destructors_for_temps.cpp:15:14:15:35 | ChiTotal | total:m14_4 | +| destructors_for_temps.cpp:15:14:15:35 | ChiTotal | total:m15_3 | +| destructors_for_temps.cpp:15:14:15:35 | ChiTotal | total:m15_9 | +| destructors_for_temps.cpp:15:14:15:35 | SideEffect | m15_9 | +| destructors_for_temps.cpp:15:14:15:35 | SideEffect | ~m14_4 | +| destructors_for_temps.cpp:15:37:15:41 | CallTarget | func:r15_10 | +| destructors_for_temps.cpp:15:37:15:41 | ChiPartial | partial:m15_12 | +| destructors_for_temps.cpp:15:37:15:41 | ChiTotal | total:m15_7 | +| destructors_for_temps.cpp:15:37:15:41 | SideEffect | ~m15_7 | +| destructors_for_temps.cpp:15:37:15:41 | StoreValue | r15_11 | +| destructors_for_temps.cpp:16:26:16:26 | Address | &:r16_1 | +| destructors_for_temps.cpp:16:26:16:26 | Address | &:r16_1 | +| destructors_for_temps.cpp:16:26:16:26 | Arg(this) | this:r16_1 | +| destructors_for_temps.cpp:16:28:16:30 | Arg(0) | 0:r16_4 | +| destructors_for_temps.cpp:16:28:16:63 | CallTarget | func:r16_3 | +| destructors_for_temps.cpp:16:28:16:63 | ChiPartial | partial:m16_21 | +| destructors_for_temps.cpp:16:28:16:63 | ChiPartial | partial:m16_23 | +| destructors_for_temps.cpp:16:28:16:63 | ChiTotal | total:m16_2 | +| destructors_for_temps.cpp:16:28:16:63 | ChiTotal | total:m16_16 | +| destructors_for_temps.cpp:16:28:16:63 | SideEffect | ~m16_16 | +| destructors_for_temps.cpp:16:33:16:54 | Address | &:r16_5 | +| destructors_for_temps.cpp:16:33:16:54 | Address | &:r16_5 | +| destructors_for_temps.cpp:16:33:16:54 | Address | &:r16_5 | +| destructors_for_temps.cpp:16:33:16:54 | Address | &:r16_5 | +| destructors_for_temps.cpp:16:33:16:54 | Arg(this) | this:r16_5 | +| destructors_for_temps.cpp:16:33:16:54 | Arg(this) | this:r16_5 | +| destructors_for_temps.cpp:16:33:16:54 | CallTarget | func:r16_7 | +| destructors_for_temps.cpp:16:33:16:54 | ChiPartial | partial:m16_9 | +| destructors_for_temps.cpp:16:33:16:54 | ChiPartial | partial:m16_11 | +| destructors_for_temps.cpp:16:33:16:54 | ChiPartial | partial:m16_18 | +| destructors_for_temps.cpp:16:33:16:54 | ChiTotal | total:m15_13 | +| destructors_for_temps.cpp:16:33:16:54 | ChiTotal | total:m16_6 | +| destructors_for_temps.cpp:16:33:16:54 | ChiTotal | total:m16_12 | +| destructors_for_temps.cpp:16:33:16:54 | SideEffect | m16_12 | +| destructors_for_temps.cpp:16:33:16:54 | SideEffect | ~m15_13 | +| destructors_for_temps.cpp:16:56:16:60 | Arg(1) | 1:r16_14 | +| destructors_for_temps.cpp:16:56:16:60 | CallTarget | func:r16_13 | +| destructors_for_temps.cpp:16:56:16:60 | ChiPartial | partial:m16_15 | +| destructors_for_temps.cpp:16:56:16:60 | ChiTotal | total:m16_10 | +| destructors_for_temps.cpp:16:56:16:60 | SideEffect | ~m16_10 | +| destructors_for_temps.cpp:17:5:17:42 | Address | &:r17_1 | +| destructors_for_temps.cpp:17:12:17:33 | Address | &:r17_2 | +| destructors_for_temps.cpp:17:12:17:33 | Address | &:r17_2 | +| destructors_for_temps.cpp:17:12:17:33 | Address | &:r17_2 | +| destructors_for_temps.cpp:17:12:17:33 | Address | &:r17_2 | +| destructors_for_temps.cpp:17:12:17:33 | Arg(this) | this:r17_2 | +| destructors_for_temps.cpp:17:12:17:33 | Arg(this) | this:r17_2 | +| destructors_for_temps.cpp:17:12:17:33 | CallTarget | func:r17_4 | +| destructors_for_temps.cpp:17:12:17:33 | ChiPartial | partial:m17_6 | +| destructors_for_temps.cpp:17:12:17:33 | ChiPartial | partial:m17_8 | +| destructors_for_temps.cpp:17:12:17:33 | ChiPartial | partial:m17_15 | +| destructors_for_temps.cpp:17:12:17:33 | ChiTotal | total:m16_22 | +| destructors_for_temps.cpp:17:12:17:33 | ChiTotal | total:m17_3 | +| destructors_for_temps.cpp:17:12:17:33 | ChiTotal | total:m17_9 | +| destructors_for_temps.cpp:17:12:17:33 | SideEffect | m17_9 | +| destructors_for_temps.cpp:17:12:17:33 | SideEffect | ~m16_22 | +| destructors_for_temps.cpp:17:35:17:39 | CallTarget | func:r17_10 | +| destructors_for_temps.cpp:17:35:17:39 | ChiPartial | partial:m17_12 | +| destructors_for_temps.cpp:17:35:17:39 | ChiTotal | total:m17_7 | +| destructors_for_temps.cpp:17:35:17:39 | SideEffect | ~m17_7 | +| destructors_for_temps.cpp:17:35:17:39 | StoreValue | r17_11 | +| destructors_for_temps.cpp:21:6:21:15 | Address | &:r21_5 | +| destructors_for_temps.cpp:21:6:21:15 | ChiPartial | partial:m21_3 | +| destructors_for_temps.cpp:21:6:21:15 | ChiTotal | total:m21_2 | +| destructors_for_temps.cpp:21:6:21:15 | Load | m23_36 | +| destructors_for_temps.cpp:21:6:21:15 | SideEffect | ~m23_29 | +| destructors_for_temps.cpp:22:5:22:30 | Address | &:r22_3 | +| destructors_for_temps.cpp:22:5:22:30 | Address | &:r22_7 | +| destructors_for_temps.cpp:22:5:22:30 | Arg(0) | 0:r22_2 | +| destructors_for_temps.cpp:22:5:22:30 | Arg(this) | this:r22_7 | +| destructors_for_temps.cpp:22:5:22:30 | CallTarget | func:r22_1 | +| destructors_for_temps.cpp:22:5:22:30 | CallTarget | func:r22_8 | +| destructors_for_temps.cpp:22:5:22:30 | ChiPartial | partial:m22_4 | +| destructors_for_temps.cpp:22:5:22:30 | ChiPartial | partial:m22_10 | +| destructors_for_temps.cpp:22:5:22:30 | ChiPartial | partial:m22_12 | +| destructors_for_temps.cpp:22:5:22:30 | ChiTotal | total:m21_4 | +| destructors_for_temps.cpp:22:5:22:30 | ChiTotal | total:m22_5 | +| destructors_for_temps.cpp:22:5:22:30 | ChiTotal | total:m22_6 | +| destructors_for_temps.cpp:22:5:22:30 | SideEffect | ~m21_4 | +| destructors_for_temps.cpp:22:5:22:30 | SideEffect | ~m22_5 | +| destructors_for_temps.cpp:22:5:22:30 | Unary | r22_3 | +| destructors_for_temps.cpp:23:5:23:75 | Address | &:r23_1 | +| destructors_for_temps.cpp:23:12:23:33 | Address | &:r23_2 | +| destructors_for_temps.cpp:23:12:23:33 | Address | &:r23_2 | +| destructors_for_temps.cpp:23:12:23:33 | Address | &:r23_2 | +| destructors_for_temps.cpp:23:12:23:33 | Address | &:r23_2 | +| destructors_for_temps.cpp:23:12:23:33 | Arg(this) | this:r23_2 | +| destructors_for_temps.cpp:23:12:23:33 | Arg(this) | this:r23_2 | +| destructors_for_temps.cpp:23:12:23:33 | CallTarget | func:r23_4 | +| destructors_for_temps.cpp:23:12:23:33 | ChiPartial | partial:m23_6 | +| destructors_for_temps.cpp:23:12:23:33 | ChiPartial | partial:m23_8 | +| destructors_for_temps.cpp:23:12:23:33 | ChiPartial | partial:m23_15 | +| destructors_for_temps.cpp:23:12:23:33 | ChiTotal | total:m22_11 | +| destructors_for_temps.cpp:23:12:23:33 | ChiTotal | total:m23_3 | +| destructors_for_temps.cpp:23:12:23:33 | ChiTotal | total:m23_9 | +| destructors_for_temps.cpp:23:12:23:33 | SideEffect | m23_9 | +| destructors_for_temps.cpp:23:12:23:33 | SideEffect | ~m22_11 | +| destructors_for_temps.cpp:23:12:23:41 | Left | r23_17 | +| destructors_for_temps.cpp:23:12:23:74 | StoreValue | r23_35 | +| destructors_for_temps.cpp:23:12:23:74 | Unary | r23_34 | +| destructors_for_temps.cpp:23:35:23:39 | CallTarget | func:r23_10 | +| destructors_for_temps.cpp:23:35:23:39 | ChiPartial | partial:m23_12 | +| destructors_for_temps.cpp:23:35:23:39 | ChiTotal | total:m23_7 | +| destructors_for_temps.cpp:23:35:23:39 | SideEffect | ~m23_7 | +| destructors_for_temps.cpp:23:35:23:39 | Unary | r23_11 | +| destructors_for_temps.cpp:23:45:23:66 | Address | &:r23_18 | +| destructors_for_temps.cpp:23:45:23:66 | Address | &:r23_18 | +| destructors_for_temps.cpp:23:45:23:66 | Address | &:r23_18 | +| destructors_for_temps.cpp:23:45:23:66 | Address | &:r23_18 | +| destructors_for_temps.cpp:23:45:23:66 | Arg(this) | this:r23_18 | +| destructors_for_temps.cpp:23:45:23:66 | Arg(this) | this:r23_18 | +| destructors_for_temps.cpp:23:45:23:66 | CallTarget | func:r23_20 | +| destructors_for_temps.cpp:23:45:23:66 | ChiPartial | partial:m23_22 | +| destructors_for_temps.cpp:23:45:23:66 | ChiPartial | partial:m23_24 | +| destructors_for_temps.cpp:23:45:23:66 | ChiPartial | partial:m23_31 | +| destructors_for_temps.cpp:23:45:23:66 | ChiTotal | total:m23_13 | +| destructors_for_temps.cpp:23:45:23:66 | ChiTotal | total:m23_19 | +| destructors_for_temps.cpp:23:45:23:66 | ChiTotal | total:m23_25 | +| destructors_for_temps.cpp:23:45:23:66 | SideEffect | m23_25 | +| destructors_for_temps.cpp:23:45:23:66 | SideEffect | ~m23_13 | +| destructors_for_temps.cpp:23:45:23:74 | Right | r23_33 | +| destructors_for_temps.cpp:23:68:23:72 | CallTarget | func:r23_26 | +| destructors_for_temps.cpp:23:68:23:72 | ChiPartial | partial:m23_28 | +| destructors_for_temps.cpp:23:68:23:72 | ChiTotal | total:m23_23 | +| destructors_for_temps.cpp:23:68:23:72 | SideEffect | ~m23_23 | +| destructors_for_temps.cpp:23:68:23:72 | Unary | r23_27 | +| destructors_for_temps.cpp:29:6:29:15 | ChiPartial | partial:m29_3 | +| destructors_for_temps.cpp:29:6:29:15 | ChiTotal | total:m29_2 | +| destructors_for_temps.cpp:29:6:29:15 | SideEffect | ~m30_6 | +| destructors_for_temps.cpp:30:33:30:34 | Address | &:r30_1 | +| destructors_for_temps.cpp:30:38:30:70 | CallTarget | func:r30_3 | +| destructors_for_temps.cpp:30:38:30:70 | ChiPartial | partial:m30_5 | +| destructors_for_temps.cpp:30:38:30:70 | ChiTotal | total:m29_4 | +| destructors_for_temps.cpp:30:38:30:70 | SideEffect | ~m29_4 | +| destructors_for_temps.cpp:30:38:30:70 | StoreValue | r30_4 | +| destructors_for_temps.cpp:30:38:30:72 | Address | &:r30_2 | +| destructors_for_temps.cpp:30:38:30:72 | StoreValue | r30_9 | +| destructors_for_temps.cpp:30:38:30:72 | Unary | r30_2 | +| destructors_for_temps.cpp:30:38:30:72 | Unary | r30_8 | +| destructors_for_temps.cpp:33:6:33:15 | ChiPartial | partial:m33_3 | +| destructors_for_temps.cpp:33:6:33:15 | ChiTotal | total:m33_2 | +| destructors_for_temps.cpp:33:6:33:15 | SideEffect | ~m36_6 | +| destructors_for_temps.cpp:34:26:34:26 | Address | &:r34_1 | +| destructors_for_temps.cpp:34:26:34:26 | Address | &:r34_1 | +| destructors_for_temps.cpp:34:26:34:26 | Arg(this) | this:r34_1 | +| destructors_for_temps.cpp:34:26:34:26 | CallTarget | func:r34_3 | +| destructors_for_temps.cpp:34:26:34:26 | ChiPartial | partial:m34_5 | +| destructors_for_temps.cpp:34:26:34:26 | ChiPartial | partial:m34_7 | +| destructors_for_temps.cpp:34:26:34:26 | ChiTotal | total:m33_4 | +| destructors_for_temps.cpp:34:26:34:26 | ChiTotal | total:m34_2 | +| destructors_for_temps.cpp:34:26:34:26 | SideEffect | ~m33_4 | +| destructors_for_temps.cpp:35:33:35:35 | Address | &:r35_1 | +| destructors_for_temps.cpp:35:39:35:71 | CallTarget | func:r35_3 | +| destructors_for_temps.cpp:35:39:35:71 | ChiPartial | partial:m35_5 | +| destructors_for_temps.cpp:35:39:35:71 | ChiTotal | total:m34_6 | +| destructors_for_temps.cpp:35:39:35:71 | SideEffect | ~m34_6 | +| destructors_for_temps.cpp:35:39:35:71 | StoreValue | r35_4 | +| destructors_for_temps.cpp:35:39:35:73 | Address | &:r35_2 | +| destructors_for_temps.cpp:35:39:35:73 | StoreValue | r35_9 | +| destructors_for_temps.cpp:35:39:35:73 | Unary | r35_2 | +| destructors_for_temps.cpp:35:39:35:73 | Unary | r35_8 | +| destructors_for_temps.cpp:36:1:36:1 | Address | &:r36_2 | +| destructors_for_temps.cpp:36:1:36:1 | Address | &:r36_2 | +| destructors_for_temps.cpp:36:1:36:1 | Arg(this) | this:r36_2 | +| destructors_for_temps.cpp:36:1:36:1 | CallTarget | func:r36_3 | +| destructors_for_temps.cpp:36:1:36:1 | ChiPartial | partial:m36_5 | +| destructors_for_temps.cpp:36:1:36:1 | ChiPartial | partial:m36_8 | +| destructors_for_temps.cpp:36:1:36:1 | ChiTotal | total:m34_8 | +| destructors_for_temps.cpp:36:1:36:1 | ChiTotal | total:m35_6 | +| destructors_for_temps.cpp:36:1:36:1 | SideEffect | m34_8 | +| destructors_for_temps.cpp:36:1:36:1 | SideEffect | ~m35_6 | +| destructors_for_temps.cpp:38:6:38:15 | ChiPartial | partial:m38_3 | +| destructors_for_temps.cpp:38:6:38:15 | ChiTotal | total:m38_2 | +| destructors_for_temps.cpp:38:6:38:15 | SideEffect | ~m39_5 | +| destructors_for_temps.cpp:38:22:38:22 | Address | &:r38_5 | +| destructors_for_temps.cpp:39:3:39:3 | Address | &:r39_2 | +| destructors_for_temps.cpp:39:3:39:3 | Address | &:r39_7 | +| destructors_for_temps.cpp:39:3:39:3 | Address | &:r39_19 | +| destructors_for_temps.cpp:39:3:39:3 | Address | &:r39_30 | +| destructors_for_temps.cpp:39:3:39:3 | Condition | r39_3 | +| destructors_for_temps.cpp:39:3:39:3 | Load | m38_6 | +| destructors_for_temps.cpp:39:3:39:3 | Load | m39_6 | +| destructors_for_temps.cpp:39:3:39:3 | Phi | from 2:m39_20 | +| destructors_for_temps.cpp:39:3:39:3 | Phi | from 2:~m39_15 | +| destructors_for_temps.cpp:39:3:39:3 | Phi | from 3:m39_31 | +| destructors_for_temps.cpp:39:3:39:3 | Phi | from 3:~m39_26 | +| destructors_for_temps.cpp:39:3:39:3 | StoreValue | r39_8 | +| destructors_for_temps.cpp:39:3:39:53 | Address | &:r39_1 | +| destructors_for_temps.cpp:39:7:39:28 | Address | &:r39_10 | +| destructors_for_temps.cpp:39:7:39:28 | Address | &:r39_10 | +| destructors_for_temps.cpp:39:7:39:28 | Address | &:r39_10 | +| destructors_for_temps.cpp:39:7:39:28 | Arg(this) | this:r39_10 | +| destructors_for_temps.cpp:39:7:39:28 | CallTarget | func:r39_12 | +| destructors_for_temps.cpp:39:7:39:28 | ChiPartial | partial:m39_14 | +| destructors_for_temps.cpp:39:7:39:28 | ChiPartial | partial:m39_16 | +| destructors_for_temps.cpp:39:7:39:28 | ChiTotal | total:m38_4 | +| destructors_for_temps.cpp:39:7:39:28 | ChiTotal | total:m39_11 | +| destructors_for_temps.cpp:39:7:39:28 | Load | m39_17 | +| destructors_for_temps.cpp:39:7:39:28 | SideEffect | ~m38_4 | +| destructors_for_temps.cpp:39:7:39:28 | StoreValue | r39_18 | +| destructors_for_temps.cpp:39:32:39:53 | Address | &:r39_21 | +| destructors_for_temps.cpp:39:32:39:53 | Address | &:r39_21 | +| destructors_for_temps.cpp:39:32:39:53 | Address | &:r39_21 | +| destructors_for_temps.cpp:39:32:39:53 | Arg(this) | this:r39_21 | +| destructors_for_temps.cpp:39:32:39:53 | CallTarget | func:r39_23 | +| destructors_for_temps.cpp:39:32:39:53 | ChiPartial | partial:m39_25 | +| destructors_for_temps.cpp:39:32:39:53 | ChiPartial | partial:m39_27 | +| destructors_for_temps.cpp:39:32:39:53 | ChiTotal | total:m38_4 | +| destructors_for_temps.cpp:39:32:39:53 | ChiTotal | total:m39_22 | +| destructors_for_temps.cpp:39:32:39:53 | Load | m39_28 | +| destructors_for_temps.cpp:39:32:39:53 | SideEffect | ~m38_4 | +| destructors_for_temps.cpp:39:32:39:53 | StoreValue | r39_29 | +| destructors_for_temps.cpp:42:6:42:15 | ChiPartial | partial:m42_3 | +| destructors_for_temps.cpp:42:6:42:15 | ChiTotal | total:m42_2 | +| destructors_for_temps.cpp:42:6:42:15 | Phi | from 2:~m45_22 | +| destructors_for_temps.cpp:42:6:42:15 | Phi | from 4:~m47_6 | +| destructors_for_temps.cpp:42:6:42:15 | SideEffect | ~m42_7 | +| destructors_for_temps.cpp:42:22:42:22 | Address | &:r42_5 | +| destructors_for_temps.cpp:43:26:43:26 | Address | &:r43_1 | +| destructors_for_temps.cpp:43:26:43:26 | Address | &:r43_1 | +| destructors_for_temps.cpp:43:26:43:26 | Arg(this) | this:r43_1 | +| destructors_for_temps.cpp:43:26:43:26 | CallTarget | func:r43_3 | +| destructors_for_temps.cpp:43:26:43:26 | ChiPartial | partial:m43_5 | +| destructors_for_temps.cpp:43:26:43:26 | ChiPartial | partial:m43_7 | +| destructors_for_temps.cpp:43:26:43:26 | ChiTotal | total:m42_4 | +| destructors_for_temps.cpp:43:26:43:26 | ChiTotal | total:m43_2 | +| destructors_for_temps.cpp:43:26:43:26 | SideEffect | ~m42_4 | +| destructors_for_temps.cpp:44:9:44:9 | Address | &:r44_1 | +| destructors_for_temps.cpp:44:9:44:9 | Condition | r44_2 | +| destructors_for_temps.cpp:44:9:44:9 | Load | m42_6 | +| destructors_for_temps.cpp:45:7:45:69 | Address | &:r45_1 | +| destructors_for_temps.cpp:45:7:45:69 | Address | &:r45_1 | +| destructors_for_temps.cpp:45:7:45:69 | Address | &:r45_1 | +| destructors_for_temps.cpp:45:7:45:69 | Arg(this) | this:r45_1 | +| destructors_for_temps.cpp:45:7:45:69 | CallTarget | func:r45_3 | +| destructors_for_temps.cpp:45:7:45:69 | ChiPartial | partial:m45_21 | +| destructors_for_temps.cpp:45:7:45:69 | ChiPartial | partial:m45_23 | +| destructors_for_temps.cpp:45:7:45:69 | ChiTotal | total:m45_2 | +| destructors_for_temps.cpp:45:7:45:69 | ChiTotal | total:m45_16 | +| destructors_for_temps.cpp:45:7:45:69 | Load | m45_24 | +| destructors_for_temps.cpp:45:7:45:69 | SideEffect | ~m45_16 | +| destructors_for_temps.cpp:45:34:45:36 | Arg(0) | 0:r45_4 | +| destructors_for_temps.cpp:45:39:45:60 | Address | &:r45_5 | +| destructors_for_temps.cpp:45:39:45:60 | Address | &:r45_5 | +| destructors_for_temps.cpp:45:39:45:60 | Address | &:r45_5 | +| destructors_for_temps.cpp:45:39:45:60 | Address | &:r45_5 | +| destructors_for_temps.cpp:45:39:45:60 | Arg(this) | this:r45_5 | +| destructors_for_temps.cpp:45:39:45:60 | Arg(this) | this:r45_5 | +| destructors_for_temps.cpp:45:39:45:60 | CallTarget | func:r45_7 | +| destructors_for_temps.cpp:45:39:45:60 | ChiPartial | partial:m45_9 | +| destructors_for_temps.cpp:45:39:45:60 | ChiPartial | partial:m45_11 | +| destructors_for_temps.cpp:45:39:45:60 | ChiPartial | partial:m45_18 | +| destructors_for_temps.cpp:45:39:45:60 | ChiTotal | total:m43_6 | +| destructors_for_temps.cpp:45:39:45:60 | ChiTotal | total:m45_6 | +| destructors_for_temps.cpp:45:39:45:60 | ChiTotal | total:m45_12 | +| destructors_for_temps.cpp:45:39:45:60 | SideEffect | m45_12 | +| destructors_for_temps.cpp:45:39:45:60 | SideEffect | ~m43_6 | +| destructors_for_temps.cpp:45:62:45:66 | Arg(1) | 1:r45_14 | +| destructors_for_temps.cpp:45:62:45:66 | CallTarget | func:r45_13 | +| destructors_for_temps.cpp:45:62:45:66 | ChiPartial | partial:m45_15 | +| destructors_for_temps.cpp:45:62:45:66 | ChiTotal | total:m45_10 | +| destructors_for_temps.cpp:45:62:45:66 | SideEffect | ~m45_10 | +| destructors_for_temps.cpp:47:1:47:1 | Address | &:r47_2 | +| destructors_for_temps.cpp:47:1:47:1 | Address | &:r47_2 | +| destructors_for_temps.cpp:47:1:47:1 | Arg(this) | this:r47_2 | +| destructors_for_temps.cpp:47:1:47:1 | CallTarget | func:r47_3 | +| destructors_for_temps.cpp:47:1:47:1 | ChiPartial | partial:m47_5 | +| destructors_for_temps.cpp:47:1:47:1 | ChiPartial | partial:m47_8 | +| destructors_for_temps.cpp:47:1:47:1 | ChiTotal | total:m43_6 | +| destructors_for_temps.cpp:47:1:47:1 | ChiTotal | total:m43_8 | +| destructors_for_temps.cpp:47:1:47:1 | SideEffect | m43_8 | +| destructors_for_temps.cpp:47:1:47:1 | SideEffect | ~m43_6 | +| destructors_for_temps.cpp:49:6:49:15 | ChiPartial | partial:m49_3 | +| destructors_for_temps.cpp:49:6:49:15 | ChiTotal | total:m49_2 | +| destructors_for_temps.cpp:49:6:49:15 | Phi | from 2:~m51_26 | +| destructors_for_temps.cpp:49:6:49:15 | Phi | from 4:~m52_6 | +| destructors_for_temps.cpp:49:6:49:15 | SideEffect | ~m49_7 | +| destructors_for_temps.cpp:49:22:49:22 | Address | &:r49_5 | +| destructors_for_temps.cpp:50:26:50:26 | Address | &:r50_1 | +| destructors_for_temps.cpp:50:26:50:26 | Address | &:r50_1 | +| destructors_for_temps.cpp:50:26:50:26 | Arg(this) | this:r50_1 | +| destructors_for_temps.cpp:50:26:50:26 | CallTarget | func:r50_3 | +| destructors_for_temps.cpp:50:26:50:26 | ChiPartial | partial:m50_5 | +| destructors_for_temps.cpp:50:26:50:26 | ChiPartial | partial:m50_7 | +| destructors_for_temps.cpp:50:26:50:26 | ChiTotal | total:m49_4 | +| destructors_for_temps.cpp:50:26:50:26 | ChiTotal | total:m50_2 | +| destructors_for_temps.cpp:50:26:50:26 | SideEffect | ~m49_4 | +| destructors_for_temps.cpp:51:5:51:5 | Address | &:r51_2 | +| destructors_for_temps.cpp:51:5:51:5 | Address | &:r51_39 | +| destructors_for_temps.cpp:51:5:51:5 | Address | &:r51_41 | +| destructors_for_temps.cpp:51:5:51:5 | Condition | r51_3 | +| destructors_for_temps.cpp:51:5:51:5 | Load | m49_6 | +| destructors_for_temps.cpp:51:5:51:5 | Load | m51_40 | +| destructors_for_temps.cpp:51:5:51:5 | StoreValue | r51_42 | +| destructors_for_temps.cpp:51:5:51:96 | Address | &:r51_1 | +| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_5 | +| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_5 | +| destructors_for_temps.cpp:51:9:51:71 | Address | &:r51_5 | +| destructors_for_temps.cpp:51:9:51:71 | Arg(this) | this:r51_5 | +| destructors_for_temps.cpp:51:9:51:71 | CallTarget | func:r51_7 | +| destructors_for_temps.cpp:51:9:51:71 | ChiPartial | partial:m51_25 | +| destructors_for_temps.cpp:51:9:51:71 | ChiPartial | partial:m51_27 | +| destructors_for_temps.cpp:51:9:51:71 | ChiTotal | total:m51_6 | +| destructors_for_temps.cpp:51:9:51:71 | ChiTotal | total:m51_20 | +| destructors_for_temps.cpp:51:9:51:71 | Load | m51_28 | +| destructors_for_temps.cpp:51:9:51:71 | SideEffect | ~m51_20 | +| destructors_for_temps.cpp:51:36:51:38 | Arg(0) | 0:r51_8 | +| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_9 | +| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_9 | +| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_9 | +| destructors_for_temps.cpp:51:41:51:62 | Address | &:r51_9 | +| destructors_for_temps.cpp:51:41:51:62 | Arg(this) | this:r51_9 | +| destructors_for_temps.cpp:51:41:51:62 | Arg(this) | this:r51_9 | +| destructors_for_temps.cpp:51:41:51:62 | CallTarget | func:r51_11 | +| destructors_for_temps.cpp:51:41:51:62 | ChiPartial | partial:m51_13 | +| destructors_for_temps.cpp:51:41:51:62 | ChiPartial | partial:m51_15 | +| destructors_for_temps.cpp:51:41:51:62 | ChiPartial | partial:m51_22 | +| destructors_for_temps.cpp:51:41:51:62 | ChiTotal | total:m50_6 | +| destructors_for_temps.cpp:51:41:51:62 | ChiTotal | total:m51_10 | +| destructors_for_temps.cpp:51:41:51:62 | ChiTotal | total:m51_16 | +| destructors_for_temps.cpp:51:41:51:62 | SideEffect | m51_16 | +| destructors_for_temps.cpp:51:41:51:62 | SideEffect | ~m50_6 | +| destructors_for_temps.cpp:51:64:51:68 | Arg(1) | 1:r51_18 | +| destructors_for_temps.cpp:51:64:51:68 | CallTarget | func:r51_17 | +| destructors_for_temps.cpp:51:64:51:68 | ChiPartial | partial:m51_19 | +| destructors_for_temps.cpp:51:64:51:68 | ChiTotal | total:m51_14 | +| destructors_for_temps.cpp:51:64:51:68 | SideEffect | ~m51_14 | +| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_30 | +| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_30 | +| destructors_for_temps.cpp:51:75:51:96 | Address | &:r51_30 | +| destructors_for_temps.cpp:51:75:51:96 | Arg(this) | this:r51_30 | +| destructors_for_temps.cpp:51:75:51:96 | CallTarget | func:r51_32 | +| destructors_for_temps.cpp:51:75:51:96 | ChiPartial | partial:m51_34 | +| destructors_for_temps.cpp:51:75:51:96 | ChiPartial | partial:m51_36 | +| destructors_for_temps.cpp:51:75:51:96 | ChiTotal | total:m50_6 | +| destructors_for_temps.cpp:51:75:51:96 | ChiTotal | total:m51_31 | +| destructors_for_temps.cpp:51:75:51:96 | Load | m51_37 | +| destructors_for_temps.cpp:51:75:51:96 | SideEffect | ~m50_6 | +| destructors_for_temps.cpp:51:75:51:96 | StoreValue | r51_38 | +| destructors_for_temps.cpp:52:1:52:1 | Address | &:r52_2 | +| destructors_for_temps.cpp:52:1:52:1 | Address | &:r52_2 | +| destructors_for_temps.cpp:52:1:52:1 | Arg(this) | this:r52_2 | +| destructors_for_temps.cpp:52:1:52:1 | CallTarget | func:r52_3 | +| destructors_for_temps.cpp:52:1:52:1 | ChiPartial | partial:m52_5 | +| destructors_for_temps.cpp:52:1:52:1 | ChiPartial | partial:m52_8 | +| destructors_for_temps.cpp:52:1:52:1 | ChiTotal | total:m50_8 | +| destructors_for_temps.cpp:52:1:52:1 | ChiTotal | total:m51_35 | +| destructors_for_temps.cpp:52:1:52:1 | SideEffect | m50_8 | +| destructors_for_temps.cpp:52:1:52:1 | SideEffect | ~m51_35 | +| destructors_for_temps.cpp:54:6:54:15 | ChiPartial | partial:m54_3 | +| destructors_for_temps.cpp:54:6:54:15 | ChiTotal | total:m54_2 | +| destructors_for_temps.cpp:54:6:54:15 | Phi | from 2:~m55_26 | +| destructors_for_temps.cpp:54:6:54:15 | Phi | from 4:~m55_35 | +| destructors_for_temps.cpp:54:6:54:15 | SideEffect | ~m54_7 | +| destructors_for_temps.cpp:54:22:54:22 | Address | &:r54_5 | +| destructors_for_temps.cpp:55:5:55:5 | Address | &:r55_2 | +| destructors_for_temps.cpp:55:5:55:5 | Address | &:r55_39 | +| destructors_for_temps.cpp:55:5:55:5 | Address | &:r55_41 | +| destructors_for_temps.cpp:55:5:55:5 | Condition | r55_3 | +| destructors_for_temps.cpp:55:5:55:5 | Load | m54_6 | +| destructors_for_temps.cpp:55:5:55:5 | Load | m55_40 | +| destructors_for_temps.cpp:55:5:55:5 | StoreValue | r55_42 | +| destructors_for_temps.cpp:55:5:55:96 | Address | &:r55_1 | +| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_5 | +| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_5 | +| destructors_for_temps.cpp:55:9:55:71 | Address | &:r55_5 | +| destructors_for_temps.cpp:55:9:55:71 | Arg(this) | this:r55_5 | +| destructors_for_temps.cpp:55:9:55:71 | CallTarget | func:r55_7 | +| destructors_for_temps.cpp:55:9:55:71 | ChiPartial | partial:m55_25 | +| destructors_for_temps.cpp:55:9:55:71 | ChiPartial | partial:m55_27 | +| destructors_for_temps.cpp:55:9:55:71 | ChiTotal | total:m55_6 | +| destructors_for_temps.cpp:55:9:55:71 | ChiTotal | total:m55_20 | +| destructors_for_temps.cpp:55:9:55:71 | Load | m55_28 | +| destructors_for_temps.cpp:55:9:55:71 | SideEffect | ~m55_20 | +| destructors_for_temps.cpp:55:36:55:38 | Arg(0) | 0:r55_8 | +| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_9 | +| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_9 | +| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_9 | +| destructors_for_temps.cpp:55:41:55:62 | Address | &:r55_9 | +| destructors_for_temps.cpp:55:41:55:62 | Arg(this) | this:r55_9 | +| destructors_for_temps.cpp:55:41:55:62 | Arg(this) | this:r55_9 | +| destructors_for_temps.cpp:55:41:55:62 | CallTarget | func:r55_11 | +| destructors_for_temps.cpp:55:41:55:62 | ChiPartial | partial:m55_13 | +| destructors_for_temps.cpp:55:41:55:62 | ChiPartial | partial:m55_15 | +| destructors_for_temps.cpp:55:41:55:62 | ChiPartial | partial:m55_22 | +| destructors_for_temps.cpp:55:41:55:62 | ChiTotal | total:m54_4 | +| destructors_for_temps.cpp:55:41:55:62 | ChiTotal | total:m55_10 | +| destructors_for_temps.cpp:55:41:55:62 | ChiTotal | total:m55_16 | +| destructors_for_temps.cpp:55:41:55:62 | SideEffect | m55_16 | +| destructors_for_temps.cpp:55:41:55:62 | SideEffect | ~m54_4 | +| destructors_for_temps.cpp:55:64:55:68 | Arg(1) | 1:r55_18 | +| destructors_for_temps.cpp:55:64:55:68 | CallTarget | func:r55_17 | +| destructors_for_temps.cpp:55:64:55:68 | ChiPartial | partial:m55_19 | +| destructors_for_temps.cpp:55:64:55:68 | ChiTotal | total:m55_14 | +| destructors_for_temps.cpp:55:64:55:68 | SideEffect | ~m55_14 | +| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_30 | +| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_30 | +| destructors_for_temps.cpp:55:75:55:96 | Address | &:r55_30 | +| destructors_for_temps.cpp:55:75:55:96 | Arg(this) | this:r55_30 | +| destructors_for_temps.cpp:55:75:55:96 | CallTarget | func:r55_32 | +| destructors_for_temps.cpp:55:75:55:96 | ChiPartial | partial:m55_34 | +| destructors_for_temps.cpp:55:75:55:96 | ChiPartial | partial:m55_36 | +| destructors_for_temps.cpp:55:75:55:96 | ChiTotal | total:m54_4 | +| destructors_for_temps.cpp:55:75:55:96 | ChiTotal | total:m55_31 | +| destructors_for_temps.cpp:55:75:55:96 | Load | m55_37 | +| destructors_for_temps.cpp:55:75:55:96 | SideEffect | ~m54_4 | +| destructors_for_temps.cpp:55:75:55:96 | StoreValue | r55_38 | +| file://:0:0:0:0 | Address | &:r0_1 | +| file://:0:0:0:0 | Address | &:r0_1 | | file://:0:0:0:0 | Address | &:r0_1 | | file://:0:0:0:0 | Address | &:r0_1 | | file://:0:0:0:0 | Address | &:r0_1 | @@ -726,6 +1160,8 @@ | file://:0:0:0:0 | Address | &:r0_3 | | file://:0:0:0:0 | Address | &:r0_3 | | file://:0:0:0:0 | Address | &:r0_3 | +| file://:0:0:0:0 | Address | &:r0_3 | +| file://:0:0:0:0 | Address | &:r0_3 | | file://:0:0:0:0 | Address | &:r0_4 | | file://:0:0:0:0 | Address | &:r0_4 | | file://:0:0:0:0 | Address | &:r0_5 | @@ -861,6 +1297,7 @@ | file://:0:0:0:0 | Load | m0_2 | | file://:0:0:0:0 | Load | m0_2 | | file://:0:0:0:0 | Load | m0_2 | +| file://:0:0:0:0 | Load | m0_2 | | file://:0:0:0:0 | Load | m0_5 | | file://:0:0:0:0 | Load | m0_8 | | file://:0:0:0:0 | Load | m0_11 | @@ -900,6 +1337,7 @@ | file://:0:0:0:0 | SideEffect | m0_4 | | file://:0:0:0:0 | SideEffect | m0_4 | | file://:0:0:0:0 | SideEffect | m0_4 | +| file://:0:0:0:0 | SideEffect | m0_4 | | file://:0:0:0:0 | SideEffect | m0_14 | | file://:0:0:0:0 | SideEffect | m1080_23 | | file://:0:0:0:0 | SideEffect | m1080_23 | 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 02bd6400025..671a9f6a0d3 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -724,6 +724,420 @@ complex.c: # 58| v58_5(void) = AliasedUse : ~m? # 58| v58_6(void) = ExitFunction : +destructors_for_temps.cpp: +# 9| void ClassWithConstructor::ClassWithConstructor(ClassWithConstructor&&) +# 9| Block 0 +# 9| v9_1(void) = EnterFunction : +# 9| mu9_2(unknown) = AliasedDefinition : +# 9| mu9_3(unknown) = InitializeNonLocal : +# 9| r9_4(glval<unknown>) = VariableAddress[#this] : +# 9| mu9_5(glval<ClassWithConstructor>) = InitializeParameter[#this] : &:r9_4 +# 9| r9_6(glval<ClassWithConstructor>) = Load[#this] : &:r9_4, ~m? +# 9| mu9_7(ClassWithConstructor) = InitializeIndirection[#this] : &:r9_6 +#-----| r0_1(glval<ClassWithConstructor &&>) = VariableAddress[(unnamed parameter 0)] : +#-----| mu0_2(ClassWithConstructor &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 +#-----| r0_3(ClassWithConstructor &&) = Load[(unnamed parameter 0)] : &:r0_1, ~m? +#-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 +# 9| v9_8(void) = NoOp : +# 9| v9_9(void) = ReturnIndirection[#this] : &:r9_6, ~m? +#-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? +# 9| v9_10(void) = ReturnVoid : +# 9| v9_11(void) = AliasedUse : ~m? +# 9| v9_12(void) = ExitFunction : + +# 14| char temp_test() +# 14| Block 0 +# 14| v14_1(void) = EnterFunction : +# 14| mu14_2(unknown) = AliasedDefinition : +# 14| mu14_3(unknown) = InitializeNonLocal : +# 15| r15_1(glval<char>) = VariableAddress[x] : +# 15| r15_2(glval<ClassWithDestructor2>) = VariableAddress[#temp15:14] : +# 15| mu15_3(ClassWithDestructor2) = Uninitialized[#temp15:14] : &:r15_2 +# 15| r15_4(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 15| v15_5(void) = Call[ClassWithDestructor2] : func:r15_4, this:r15_2 +# 15| mu15_6(unknown) = ^CallSideEffect : ~m? +# 15| mu15_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r15_2 +# 15| r15_8(glval<unknown>) = FunctionAddress[get_x] : +# 15| r15_9(char) = Call[get_x] : func:r15_8, this:r15_2 +# 15| mu15_10(unknown) = ^CallSideEffect : ~m? +# 15| v15_11(void) = ^IndirectReadSideEffect[-1] : &:r15_2, ~m? +# 15| mu15_12(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r15_2 +# 15| mu15_13(char) = Store[x] : &:r15_1, r15_9 +# 16| r16_1(glval<ClassWithConstructor>) = VariableAddress[y] : +# 16| mu16_2(ClassWithConstructor) = Uninitialized[y] : &:r16_1 +# 16| r16_3(glval<unknown>) = FunctionAddress[ClassWithConstructor] : +# 16| r16_4(char) = Constant[97] : +# 16| r16_5(glval<ClassWithDestructor2>) = VariableAddress[#temp16:33] : +# 16| mu16_6(ClassWithDestructor2) = Uninitialized[#temp16:33] : &:r16_5 +# 16| r16_7(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 16| v16_8(void) = Call[ClassWithDestructor2] : func:r16_7, this:r16_5 +# 16| mu16_9(unknown) = ^CallSideEffect : ~m? +# 16| mu16_10(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r16_5 +# 16| r16_11(glval<unknown>) = FunctionAddress[get_x] : +# 16| r16_12(char) = Call[get_x] : func:r16_11, this:r16_5 +# 16| mu16_13(unknown) = ^CallSideEffect : ~m? +# 16| v16_14(void) = ^IndirectReadSideEffect[-1] : &:r16_5, ~m? +# 16| mu16_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r16_5 +# 16| v16_16(void) = Call[ClassWithConstructor] : func:r16_3, this:r16_1, 0:r16_4, 1:r16_12 +# 16| mu16_17(unknown) = ^CallSideEffect : ~m? +# 16| mu16_18(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r16_1 +# 17| r17_1(glval<char>) = VariableAddress[#return] : +# 17| r17_2(glval<ClassWithDestructor2>) = VariableAddress[#temp17:12] : +# 17| mu17_3(ClassWithDestructor2) = Uninitialized[#temp17:12] : &:r17_2 +# 17| r17_4(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 17| v17_5(void) = Call[ClassWithDestructor2] : func:r17_4, this:r17_2 +# 17| mu17_6(unknown) = ^CallSideEffect : ~m? +# 17| mu17_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r17_2 +# 17| r17_8(glval<unknown>) = FunctionAddress[get_x] : +# 17| r17_9(char) = Call[get_x] : func:r17_8, this:r17_2 +# 17| mu17_10(unknown) = ^CallSideEffect : ~m? +# 17| v17_11(void) = ^IndirectReadSideEffect[-1] : &:r17_2, ~m? +# 17| mu17_12(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r17_2 +# 17| mu17_13(char) = Store[#return] : &:r17_1, r17_9 +# 14| r14_4(glval<char>) = VariableAddress[#return] : +# 14| v14_5(void) = ReturnValue : &:r14_4, ~m? +# 14| v14_6(void) = AliasedUse : ~m? +# 14| v14_7(void) = ExitFunction : + +# 21| char temp_test2() +# 21| Block 0 +# 21| v21_1(void) = EnterFunction : +# 21| mu21_2(unknown) = AliasedDefinition : +# 21| mu21_3(unknown) = InitializeNonLocal : +# 22| r22_1(glval<unknown>) = FunctionAddress[operator new] : +# 22| r22_2(unsigned long) = Constant[1] : +# 22| r22_3(void *) = Call[operator new] : func:r22_1, 0:r22_2 +# 22| mu22_4(unknown) = ^CallSideEffect : ~m? +# 22| mu22_5(unknown) = ^InitializeDynamicAllocation : &:r22_3 +# 22| r22_6(ClassWithDestructor2 *) = Convert : r22_3 +# 22| r22_7(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 22| v22_8(void) = Call[ClassWithDestructor2] : func:r22_7, this:r22_6 +# 22| mu22_9(unknown) = ^CallSideEffect : ~m? +# 22| mu22_10(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r22_6 +# 23| r23_1(glval<char>) = VariableAddress[#return] : +# 23| r23_2(glval<ClassWithDestructor2>) = VariableAddress[#temp23:12] : +# 23| mu23_3(ClassWithDestructor2) = Uninitialized[#temp23:12] : &:r23_2 +# 23| r23_4(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 23| v23_5(void) = Call[ClassWithDestructor2] : func:r23_4, this:r23_2 +# 23| mu23_6(unknown) = ^CallSideEffect : ~m? +# 23| mu23_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r23_2 +# 23| r23_8(glval<unknown>) = FunctionAddress[get_x] : +# 23| r23_9(char) = Call[get_x] : func:r23_8, this:r23_2 +# 23| mu23_10(unknown) = ^CallSideEffect : ~m? +# 23| v23_11(void) = ^IndirectReadSideEffect[-1] : &:r23_2, ~m? +# 23| mu23_12(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r23_2 +# 23| r23_13(int) = Convert : r23_9 +# 23| r23_14(glval<ClassWithDestructor2>) = VariableAddress[#temp23:45] : +# 23| mu23_15(ClassWithDestructor2) = Uninitialized[#temp23:45] : &:r23_14 +# 23| r23_16(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 23| v23_17(void) = Call[ClassWithDestructor2] : func:r23_16, this:r23_14 +# 23| mu23_18(unknown) = ^CallSideEffect : ~m? +# 23| mu23_19(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r23_14 +# 23| r23_20(glval<unknown>) = FunctionAddress[get_x] : +# 23| r23_21(char) = Call[get_x] : func:r23_20, this:r23_14 +# 23| mu23_22(unknown) = ^CallSideEffect : ~m? +# 23| v23_23(void) = ^IndirectReadSideEffect[-1] : &:r23_14, ~m? +# 23| mu23_24(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r23_14 +# 23| r23_25(int) = Convert : r23_21 +# 23| r23_26(int) = Add : r23_13, r23_25 +# 23| r23_27(char) = Convert : r23_26 +# 23| mu23_28(char) = Store[#return] : &:r23_1, r23_27 +# 21| r21_4(glval<char>) = VariableAddress[#return] : +# 21| v21_5(void) = ReturnValue : &:r21_4, ~m? +# 21| v21_6(void) = AliasedUse : ~m? +# 21| v21_7(void) = ExitFunction : + +# 29| void temp_test3() +# 29| Block 0 +# 29| v29_1(void) = EnterFunction : +# 29| mu29_2(unknown) = AliasedDefinition : +# 29| mu29_3(unknown) = InitializeNonLocal : +# 30| r30_1(glval<ClassWithDestructor2 &>) = VariableAddress[rs] : +# 30| r30_2(glval<ClassWithDestructor2>) = VariableAddress[#temp30:38] : +# 30| r30_3(glval<unknown>) = FunctionAddress[returnValue] : +# 30| r30_4(ClassWithDestructor2) = Call[returnValue] : func:r30_3 +# 30| mu30_5(unknown) = ^CallSideEffect : ~m? +# 30| mu30_6(ClassWithDestructor2) = Store[#temp30:38] : &:r30_2, r30_4 +# 30| r30_7(glval<ClassWithDestructor2>) = Convert : r30_2 +# 30| r30_8(ClassWithDestructor2 &) = CopyValue : r30_7 +# 30| mu30_9(ClassWithDestructor2 &) = Store[rs] : &:r30_1, r30_8 +# 31| v31_1(void) = NoOp : +# 29| v29_4(void) = ReturnVoid : +# 29| v29_5(void) = AliasedUse : ~m? +# 29| v29_6(void) = ExitFunction : + +# 33| void temp_test4() +# 33| Block 0 +# 33| v33_1(void) = EnterFunction : +# 33| mu33_2(unknown) = AliasedDefinition : +# 33| mu33_3(unknown) = InitializeNonLocal : +# 34| r34_1(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 34| mu34_2(ClassWithDestructor2) = Uninitialized[c] : &:r34_1 +# 34| r34_3(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 34| v34_4(void) = Call[ClassWithDestructor2] : func:r34_3, this:r34_1 +# 34| mu34_5(unknown) = ^CallSideEffect : ~m? +# 34| mu34_6(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r34_1 +# 35| r35_1(glval<ClassWithDestructor2 &>) = VariableAddress[rs2] : +# 35| r35_2(glval<ClassWithDestructor2>) = VariableAddress[#temp35:39] : +# 35| r35_3(glval<unknown>) = FunctionAddress[returnValue] : +# 35| r35_4(ClassWithDestructor2) = Call[returnValue] : func:r35_3 +# 35| mu35_5(unknown) = ^CallSideEffect : ~m? +# 35| mu35_6(ClassWithDestructor2) = Store[#temp35:39] : &:r35_2, r35_4 +# 35| r35_7(glval<ClassWithDestructor2>) = Convert : r35_2 +# 35| r35_8(ClassWithDestructor2 &) = CopyValue : r35_7 +# 35| mu35_9(ClassWithDestructor2 &) = Store[rs2] : &:r35_1, r35_8 +# 36| v36_1(void) = NoOp : +# 36| r36_2(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 36| r36_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] : +# 36| v36_4(void) = Call[~ClassWithDestructor2] : func:r36_3, this:r36_2 +# 36| mu36_5(unknown) = ^CallSideEffect : ~m? +# 36| v36_6(void) = ^IndirectReadSideEffect[-1] : &:r36_2, ~m? +# 36| mu36_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r36_2 +# 33| v33_4(void) = ReturnVoid : +# 33| v33_5(void) = AliasedUse : ~m? +# 33| v33_6(void) = ExitFunction : + +# 38| void temp_test5(bool) +# 38| Block 0 +# 38| v38_1(void) = EnterFunction : +# 38| mu38_2(unknown) = AliasedDefinition : +# 38| mu38_3(unknown) = InitializeNonLocal : +# 38| r38_4(glval<bool>) = VariableAddress[b] : +# 38| mu38_5(bool) = InitializeParameter[b] : &:r38_4 +# 39| r39_1(glval<ClassWithDestructor2>) = VariableAddress[#temp39:3] : +# 39| r39_2(glval<bool>) = VariableAddress[b] : +# 39| r39_3(bool) = Load[b] : &:r39_2, ~m? +# 39| v39_4(void) = ConditionalBranch : r39_3 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 39| Block 1 +# 39| r39_5(glval<ClassWithDestructor2>) = VariableAddress[#temp39:3] : +# 39| r39_6(ClassWithDestructor2) = Load[#temp39:3] : &:r39_5, ~m? +# 39| mu39_7(ClassWithDestructor2) = Store[#temp39:3] : &:r39_1, r39_6 +# 40| v40_1(void) = NoOp : +# 38| v38_6(void) = ReturnVoid : +# 38| v38_7(void) = AliasedUse : ~m? +# 38| v38_8(void) = ExitFunction : + +# 39| Block 2 +# 39| r39_8(glval<ClassWithDestructor2>) = VariableAddress[#temp39:7] : +# 39| mu39_9(ClassWithDestructor2) = Uninitialized[#temp39:7] : &:r39_8 +# 39| r39_10(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 39| v39_11(void) = Call[ClassWithDestructor2] : func:r39_10, this:r39_8 +# 39| mu39_12(unknown) = ^CallSideEffect : ~m? +# 39| mu39_13(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r39_8 +# 39| r39_14(ClassWithDestructor2) = Load[#temp39:7] : &:r39_8, ~m? +# 39| r39_15(glval<ClassWithDestructor2>) = VariableAddress[#temp39:3] : +# 39| mu39_16(ClassWithDestructor2) = Store[#temp39:3] : &:r39_15, r39_14 +#-----| Goto -> Block 1 + +# 39| Block 3 +# 39| r39_17(glval<ClassWithDestructor2>) = VariableAddress[#temp39:32] : +# 39| mu39_18(ClassWithDestructor2) = Uninitialized[#temp39:32] : &:r39_17 +# 39| r39_19(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 39| v39_20(void) = Call[ClassWithDestructor2] : func:r39_19, this:r39_17 +# 39| mu39_21(unknown) = ^CallSideEffect : ~m? +# 39| mu39_22(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r39_17 +# 39| r39_23(ClassWithDestructor2) = Load[#temp39:32] : &:r39_17, ~m? +# 39| r39_24(glval<ClassWithDestructor2>) = VariableAddress[#temp39:3] : +# 39| mu39_25(ClassWithDestructor2) = Store[#temp39:3] : &:r39_24, r39_23 +#-----| Goto -> Block 1 + +# 42| void temp_test6(bool) +# 42| Block 0 +# 42| v42_1(void) = EnterFunction : +# 42| mu42_2(unknown) = AliasedDefinition : +# 42| mu42_3(unknown) = InitializeNonLocal : +# 42| r42_4(glval<bool>) = VariableAddress[b] : +# 42| mu42_5(bool) = InitializeParameter[b] : &:r42_4 +# 43| r43_1(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 43| mu43_2(ClassWithDestructor2) = Uninitialized[c] : &:r43_1 +# 43| r43_3(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 43| v43_4(void) = Call[ClassWithDestructor2] : func:r43_3, this:r43_1 +# 43| mu43_5(unknown) = ^CallSideEffect : ~m? +# 43| mu43_6(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r43_1 +# 44| r44_1(glval<bool>) = VariableAddress[b] : +# 44| r44_2(bool) = Load[b] : &:r44_1, ~m? +# 44| v44_3(void) = ConditionalBranch : r44_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 42| Block 1 +# 42| v42_6(void) = AliasedUse : ~m? +# 42| v42_7(void) = ExitFunction : + +# 42| Block 2 +# 42| v42_8(void) = Unwind : +#-----| Goto -> Block 1 + +# 45| Block 3 +# 45| r45_1(glval<ClassWithConstructor>) = VariableAddress[#throw45:7] : +# 45| mu45_2(ClassWithConstructor) = Uninitialized[#throw45:7] : &:r45_1 +# 45| r45_3(glval<unknown>) = FunctionAddress[ClassWithConstructor] : +# 45| r45_4(char) = Constant[120] : +# 45| r45_5(glval<ClassWithDestructor2>) = VariableAddress[#temp45:39] : +# 45| mu45_6(ClassWithDestructor2) = Uninitialized[#temp45:39] : &:r45_5 +# 45| r45_7(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 45| v45_8(void) = Call[ClassWithDestructor2] : func:r45_7, this:r45_5 +# 45| mu45_9(unknown) = ^CallSideEffect : ~m? +# 45| mu45_10(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r45_5 +# 45| r45_11(glval<unknown>) = FunctionAddress[get_x] : +# 45| r45_12(char) = Call[get_x] : func:r45_11, this:r45_5 +# 45| mu45_13(unknown) = ^CallSideEffect : ~m? +# 45| v45_14(void) = ^IndirectReadSideEffect[-1] : &:r45_5, ~m? +# 45| mu45_15(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r45_5 +# 45| v45_16(void) = Call[ClassWithConstructor] : func:r45_3, this:r45_1, 0:r45_4, 1:r45_12 +# 45| mu45_17(unknown) = ^CallSideEffect : ~m? +# 45| mu45_18(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r45_1 +# 45| v45_19(void) = ThrowValue : &:r45_1, ~m? +#-----| Exception -> Block 2 + +# 47| Block 4 +# 47| v47_1(void) = NoOp : +# 47| r47_2(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 47| r47_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] : +# 47| v47_4(void) = Call[~ClassWithDestructor2] : func:r47_3, this:r47_2 +# 47| mu47_5(unknown) = ^CallSideEffect : ~m? +# 47| v47_6(void) = ^IndirectReadSideEffect[-1] : &:r47_2, ~m? +# 47| mu47_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r47_2 +# 42| v42_9(void) = ReturnVoid : +#-----| Goto -> Block 1 + +# 49| void temp_test7(bool) +# 49| Block 0 +# 49| v49_1(void) = EnterFunction : +# 49| mu49_2(unknown) = AliasedDefinition : +# 49| mu49_3(unknown) = InitializeNonLocal : +# 49| r49_4(glval<bool>) = VariableAddress[b] : +# 49| mu49_5(bool) = InitializeParameter[b] : &:r49_4 +# 50| r50_1(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 50| mu50_2(ClassWithDestructor2) = Uninitialized[c] : &:r50_1 +# 50| r50_3(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 50| v50_4(void) = Call[ClassWithDestructor2] : func:r50_3, this:r50_1 +# 50| mu50_5(unknown) = ^CallSideEffect : ~m? +# 50| mu50_6(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r50_1 +# 51| r51_1(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] : +# 51| r51_2(glval<bool>) = VariableAddress[b] : +# 51| r51_3(bool) = Load[b] : &:r51_2, ~m? +# 51| v51_4(void) = ConditionalBranch : r51_3 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 49| Block 1 +# 49| v49_6(void) = AliasedUse : ~m? +# 49| v49_7(void) = ExitFunction : + +# 49| Block 2 +# 49| v49_8(void) = Unwind : +#-----| Goto -> Block 1 + +# 51| Block 3 +# 51| r51_5(glval<ClassWithConstructor>) = VariableAddress[#throw51:9] : +# 51| mu51_6(ClassWithConstructor) = Uninitialized[#throw51:9] : &:r51_5 +# 51| r51_7(glval<unknown>) = FunctionAddress[ClassWithConstructor] : +# 51| r51_8(char) = Constant[120] : +# 51| r51_9(glval<ClassWithDestructor2>) = VariableAddress[#temp51:41] : +# 51| mu51_10(ClassWithDestructor2) = Uninitialized[#temp51:41] : &:r51_9 +# 51| r51_11(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 51| v51_12(void) = Call[ClassWithDestructor2] : func:r51_11, this:r51_9 +# 51| mu51_13(unknown) = ^CallSideEffect : ~m? +# 51| mu51_14(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_9 +# 51| r51_15(glval<unknown>) = FunctionAddress[get_x] : +# 51| r51_16(char) = Call[get_x] : func:r51_15, this:r51_9 +# 51| mu51_17(unknown) = ^CallSideEffect : ~m? +# 51| v51_18(void) = ^IndirectReadSideEffect[-1] : &:r51_9, ~m? +# 51| mu51_19(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_9 +# 51| v51_20(void) = Call[ClassWithConstructor] : func:r51_7, this:r51_5, 0:r51_8, 1:r51_16 +# 51| mu51_21(unknown) = ^CallSideEffect : ~m? +# 51| mu51_22(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r51_5 +# 51| v51_23(void) = ThrowValue : &:r51_5, ~m? +#-----| Exception -> Block 2 + +# 51| Block 4 +# 51| r51_24(glval<ClassWithDestructor2>) = VariableAddress[#temp51:75] : +# 51| mu51_25(ClassWithDestructor2) = Uninitialized[#temp51:75] : &:r51_24 +# 51| r51_26(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 51| v51_27(void) = Call[ClassWithDestructor2] : func:r51_26, this:r51_24 +# 51| mu51_28(unknown) = ^CallSideEffect : ~m? +# 51| mu51_29(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r51_24 +# 51| r51_30(ClassWithDestructor2) = Load[#temp51:75] : &:r51_24, ~m? +# 51| r51_31(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] : +# 51| mu51_32(ClassWithDestructor2) = Store[#temp51:5] : &:r51_31, r51_30 +# 51| r51_33(glval<ClassWithDestructor2>) = VariableAddress[#temp51:5] : +# 51| r51_34(ClassWithDestructor2) = Load[#temp51:5] : &:r51_33, ~m? +# 51| mu51_35(ClassWithDestructor2) = Store[#temp51:5] : &:r51_1, r51_34 +# 52| v52_1(void) = NoOp : +# 52| r52_2(glval<ClassWithDestructor2>) = VariableAddress[c] : +# 52| r52_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor2] : +# 52| v52_4(void) = Call[~ClassWithDestructor2] : func:r52_3, this:r52_2 +# 52| mu52_5(unknown) = ^CallSideEffect : ~m? +# 52| v52_6(void) = ^IndirectReadSideEffect[-1] : &:r52_2, ~m? +# 52| mu52_7(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r52_2 +# 49| v49_9(void) = ReturnVoid : +#-----| Goto -> Block 1 + +# 54| void temp_test8(bool) +# 54| Block 0 +# 54| v54_1(void) = EnterFunction : +# 54| mu54_2(unknown) = AliasedDefinition : +# 54| mu54_3(unknown) = InitializeNonLocal : +# 54| r54_4(glval<bool>) = VariableAddress[b] : +# 54| mu54_5(bool) = InitializeParameter[b] : &:r54_4 +# 55| r55_1(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] : +# 55| r55_2(glval<bool>) = VariableAddress[b] : +# 55| r55_3(bool) = Load[b] : &:r55_2, ~m? +# 55| v55_4(void) = ConditionalBranch : r55_3 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 54| Block 1 +# 54| v54_6(void) = AliasedUse : ~m? +# 54| v54_7(void) = ExitFunction : + +# 54| Block 2 +# 54| v54_8(void) = Unwind : +#-----| Goto -> Block 1 + +# 55| Block 3 +# 55| r55_5(glval<ClassWithConstructor>) = VariableAddress[#throw55:9] : +# 55| mu55_6(ClassWithConstructor) = Uninitialized[#throw55:9] : &:r55_5 +# 55| r55_7(glval<unknown>) = FunctionAddress[ClassWithConstructor] : +# 55| r55_8(char) = Constant[120] : +# 55| r55_9(glval<ClassWithDestructor2>) = VariableAddress[#temp55:41] : +# 55| mu55_10(ClassWithDestructor2) = Uninitialized[#temp55:41] : &:r55_9 +# 55| r55_11(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 55| v55_12(void) = Call[ClassWithDestructor2] : func:r55_11, this:r55_9 +# 55| mu55_13(unknown) = ^CallSideEffect : ~m? +# 55| mu55_14(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_9 +# 55| r55_15(glval<unknown>) = FunctionAddress[get_x] : +# 55| r55_16(char) = Call[get_x] : func:r55_15, this:r55_9 +# 55| mu55_17(unknown) = ^CallSideEffect : ~m? +# 55| v55_18(void) = ^IndirectReadSideEffect[-1] : &:r55_9, ~m? +# 55| mu55_19(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_9 +# 55| v55_20(void) = Call[ClassWithConstructor] : func:r55_7, this:r55_5, 0:r55_8, 1:r55_16 +# 55| mu55_21(unknown) = ^CallSideEffect : ~m? +# 55| mu55_22(ClassWithConstructor) = ^IndirectMayWriteSideEffect[-1] : &:r55_5 +# 55| v55_23(void) = ThrowValue : &:r55_5, ~m? +#-----| Exception -> Block 2 + +# 55| Block 4 +# 55| r55_24(glval<ClassWithDestructor2>) = VariableAddress[#temp55:75] : +# 55| mu55_25(ClassWithDestructor2) = Uninitialized[#temp55:75] : &:r55_24 +# 55| r55_26(glval<unknown>) = FunctionAddress[ClassWithDestructor2] : +# 55| v55_27(void) = Call[ClassWithDestructor2] : func:r55_26, this:r55_24 +# 55| mu55_28(unknown) = ^CallSideEffect : ~m? +# 55| mu55_29(ClassWithDestructor2) = ^IndirectMayWriteSideEffect[-1] : &:r55_24 +# 55| r55_30(ClassWithDestructor2) = Load[#temp55:75] : &:r55_24, ~m? +# 55| r55_31(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] : +# 55| mu55_32(ClassWithDestructor2) = Store[#temp55:5] : &:r55_31, r55_30 +# 55| r55_33(glval<ClassWithDestructor2>) = VariableAddress[#temp55:5] : +# 55| r55_34(ClassWithDestructor2) = Load[#temp55:5] : &:r55_33, ~m? +# 55| mu55_35(ClassWithDestructor2) = Store[#temp55:5] : &:r55_1, r55_34 +# 56| v56_1(void) = NoOp : +# 54| v54_9(void) = ReturnVoid : +#-----| Goto -> Block 1 + ir.c: # 7| void MyCoordsTest(int) # 7| Block 0 From 129286aa1c0fb67bd38704dca3ce24bda3c7ac18 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Wed, 13 Mar 2024 12:03:00 +0100 Subject: [PATCH 111/309] allow more flow through .filter() --- .../ql/lib/semmle/javascript/Arrays.qll | 5 ++- .../ReflectedXss/ReflectedXss.expected | 42 +++++++++++++++++++ .../CWE-079/ReflectedXss/ReflectedXss.js | 14 +++++++ .../ReflectedXssWithCustomSanitizer.expected | 2 + 4 files changed, 61 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Arrays.qll b/javascript/ql/lib/semmle/javascript/Arrays.qll index 64ed34ae631..cd982855a15 100644 --- a/javascript/ql/lib/semmle/javascript/Arrays.qll +++ b/javascript/ql/lib/semmle/javascript/Arrays.qll @@ -36,7 +36,8 @@ module ArrayTaintTracking { succ = call ) or - // `array.filter(x => x)` and `array.filter(x => !!x)` keeps the taint + // `array.filter(x => x)` and `array.filter(x => !<something>)` keeps the taint + // the latter is assumed to filter away only specific values, thus keeping the taint call.(DataFlow::MethodCallNode).getMethodName() = "filter" and pred = call.getReceiver() and succ = call and @@ -47,7 +48,7 @@ module ArrayTaintTracking { | param = ret or - param = DataFlow::exprNode(ret.asExpr().(LogNotExpr).getOperand().(LogNotExpr).getOperand()) + ret.asExpr() instanceof LogNotExpr ) or // `array.reduce` with tainted value in callback diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected index 3c625dccdd3..ddee07dbadc 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected @@ -84,6 +84,26 @@ nodes | ReflectedXss.js:110:16:110:30 | request.query.p | | ReflectedXss.js:110:16:110:30 | request.query.p | | ReflectedXss.js:110:16:110:30 | request.query.p | +| ReflectedXss.js:114:11:114:41 | queryKeys | +| ReflectedXss.js:114:13:114:27 | keys: queryKeys | +| ReflectedXss.js:114:13:114:27 | keys: queryKeys | +| ReflectedXss.js:116:11:116:45 | keys | +| ReflectedXss.js:116:18:116:26 | queryKeys | +| ReflectedXss.js:116:18:116:45 | queryKe ... s?.keys | +| ReflectedXss.js:116:31:116:45 | paramKeys?.keys | +| ReflectedXss.js:116:31:116:45 | paramKeys?.keys | +| ReflectedXss.js:118:11:118:61 | keyArray | +| ReflectedXss.js:118:22:118:61 | typeof ... : keys | +| ReflectedXss.js:118:49:118:54 | [keys] | +| ReflectedXss.js:118:50:118:53 | keys | +| ReflectedXss.js:118:58:118:61 | keys | +| ReflectedXss.js:119:11:119:72 | invalidKeys | +| ReflectedXss.js:119:25:119:32 | keyArray | +| ReflectedXss.js:119:25:119:72 | keyArra ... s(key)) | +| ReflectedXss.js:122:30:122:73 | `${inva ... telist` | +| ReflectedXss.js:122:30:122:73 | `${inva ... telist` | +| ReflectedXss.js:122:33:122:43 | invalidKeys | +| ReflectedXss.js:122:33:122:54 | invalid ... n(', ') | | ReflectedXssContentTypes.js:10:14:10:36 | "FOO: " ... rams.id | | ReflectedXssContentTypes.js:10:14:10:36 | "FOO: " ... rams.id | | ReflectedXssContentTypes.js:10:24:10:36 | req.params.id | @@ -307,6 +327,26 @@ edges | ReflectedXss.js:103:76:103:83 | req.body | ReflectedXss.js:103:12:103:84 | markdow ... q.body) | | ReflectedXss.js:103:76:103:83 | req.body | ReflectedXss.js:103:12:103:84 | markdow ... q.body) | | ReflectedXss.js:110:16:110:30 | request.query.p | ReflectedXss.js:110:16:110:30 | request.query.p | +| ReflectedXss.js:114:11:114:41 | queryKeys | ReflectedXss.js:116:18:116:26 | queryKeys | +| ReflectedXss.js:114:13:114:27 | keys: queryKeys | ReflectedXss.js:114:11:114:41 | queryKeys | +| ReflectedXss.js:114:13:114:27 | keys: queryKeys | ReflectedXss.js:114:11:114:41 | queryKeys | +| ReflectedXss.js:116:11:116:45 | keys | ReflectedXss.js:118:50:118:53 | keys | +| ReflectedXss.js:116:11:116:45 | keys | ReflectedXss.js:118:58:118:61 | keys | +| ReflectedXss.js:116:18:116:26 | queryKeys | ReflectedXss.js:116:18:116:45 | queryKe ... s?.keys | +| ReflectedXss.js:116:18:116:45 | queryKe ... s?.keys | ReflectedXss.js:116:11:116:45 | keys | +| ReflectedXss.js:116:31:116:45 | paramKeys?.keys | ReflectedXss.js:116:18:116:45 | queryKe ... s?.keys | +| ReflectedXss.js:116:31:116:45 | paramKeys?.keys | ReflectedXss.js:116:18:116:45 | queryKe ... s?.keys | +| ReflectedXss.js:118:11:118:61 | keyArray | ReflectedXss.js:119:25:119:32 | keyArray | +| ReflectedXss.js:118:22:118:61 | typeof ... : keys | ReflectedXss.js:118:11:118:61 | keyArray | +| ReflectedXss.js:118:49:118:54 | [keys] | ReflectedXss.js:118:22:118:61 | typeof ... : keys | +| ReflectedXss.js:118:50:118:53 | keys | ReflectedXss.js:118:49:118:54 | [keys] | +| ReflectedXss.js:118:58:118:61 | keys | ReflectedXss.js:118:22:118:61 | typeof ... : keys | +| ReflectedXss.js:119:11:119:72 | invalidKeys | ReflectedXss.js:122:33:122:43 | invalidKeys | +| ReflectedXss.js:119:25:119:32 | keyArray | ReflectedXss.js:119:25:119:72 | keyArra ... s(key)) | +| ReflectedXss.js:119:25:119:72 | keyArra ... s(key)) | ReflectedXss.js:119:11:119:72 | invalidKeys | +| ReflectedXss.js:122:33:122:43 | invalidKeys | ReflectedXss.js:122:33:122:54 | invalid ... n(', ') | +| ReflectedXss.js:122:33:122:54 | invalid ... n(', ') | ReflectedXss.js:122:30:122:73 | `${inva ... telist` | +| ReflectedXss.js:122:33:122:54 | invalid ... n(', ') | ReflectedXss.js:122:30:122:73 | `${inva ... telist` | | ReflectedXssContentTypes.js:10:24:10:36 | req.params.id | ReflectedXssContentTypes.js:10:14:10:36 | "FOO: " ... rams.id | | ReflectedXssContentTypes.js:10:24:10:36 | req.params.id | ReflectedXssContentTypes.js:10:14:10:36 | "FOO: " ... rams.id | | ReflectedXssContentTypes.js:10:24:10:36 | req.params.id | ReflectedXssContentTypes.js:10:14:10:36 | "FOO: " ... rams.id | @@ -461,6 +501,8 @@ edges | ReflectedXss.js:100:12:100:39 | markdow ... q.body) | ReflectedXss.js:100:31:100:38 | req.body | ReflectedXss.js:100:12:100:39 | markdow ... q.body) | Cross-site scripting vulnerability due to a $@. | ReflectedXss.js:100:31:100:38 | req.body | user-provided value | | ReflectedXss.js:103:12:103:84 | markdow ... q.body) | ReflectedXss.js:103:76:103:83 | req.body | ReflectedXss.js:103:12:103:84 | markdow ... q.body) | Cross-site scripting vulnerability due to a $@. | ReflectedXss.js:103:76:103:83 | req.body | user-provided value | | ReflectedXss.js:110:16:110:30 | request.query.p | ReflectedXss.js:110:16:110:30 | request.query.p | ReflectedXss.js:110:16:110:30 | request.query.p | Cross-site scripting vulnerability due to a $@. | ReflectedXss.js:110:16:110:30 | request.query.p | user-provided value | +| ReflectedXss.js:122:30:122:73 | `${inva ... telist` | ReflectedXss.js:114:13:114:27 | keys: queryKeys | ReflectedXss.js:122:30:122:73 | `${inva ... telist` | Cross-site scripting vulnerability due to a $@. | ReflectedXss.js:114:13:114:27 | keys: queryKeys | user-provided value | +| ReflectedXss.js:122:30:122:73 | `${inva ... telist` | ReflectedXss.js:116:31:116:45 | paramKeys?.keys | ReflectedXss.js:122:30:122:73 | `${inva ... telist` | Cross-site scripting vulnerability due to a $@. | ReflectedXss.js:116:31:116:45 | paramKeys?.keys | user-provided value | | ReflectedXssContentTypes.js:10:14:10:36 | "FOO: " ... rams.id | ReflectedXssContentTypes.js:10:24:10:36 | req.params.id | ReflectedXssContentTypes.js:10:14:10:36 | "FOO: " ... rams.id | Cross-site scripting vulnerability due to a $@. | ReflectedXssContentTypes.js:10:24:10:36 | req.params.id | user-provided value | | ReflectedXssContentTypes.js:20:14:20:36 | "FOO: " ... rams.id | ReflectedXssContentTypes.js:20:24:20:36 | req.params.id | ReflectedXssContentTypes.js:20:14:20:36 | "FOO: " ... rams.id | Cross-site scripting vulnerability due to a $@. | ReflectedXssContentTypes.js:20:24:20:36 | req.params.id | user-provided value | | ReflectedXssContentTypes.js:39:13:39:35 | "FOO: " ... rams.id | ReflectedXssContentTypes.js:39:23:39:35 | req.params.id | ReflectedXssContentTypes.js:39:13:39:35 | "FOO: " ... rams.id | Cross-site scripting vulnerability due to a $@. | ReflectedXssContentTypes.js:39:23:39:35 | req.params.id | user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.js b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.js index 2b7c2057f0f..fc2e1abb888 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.js +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.js @@ -109,3 +109,17 @@ hapi.route({ handler: function (request){ return request.query.p; // NOT OK }}); + +app.get("invalid/keys/:id", async (req, res) => { + const { keys: queryKeys } = req.query; + const paramKeys = req.params; + const keys = queryKeys || paramKeys?.keys; + + const keyArray = typeof keys === 'string' ? [keys] : keys; + const invalidKeys = keyArray.filter(key => !whitelist.includes(key)); + + if (invalidKeys.length) { + res.status(400).send(`${invalidKeys.join(', ')} not in whitelist`); + return; + } +}); \ No newline at end of file diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected index e73591619df..a367f07307a 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected @@ -19,6 +19,8 @@ | ReflectedXss.js:100:12:100:39 | markdow ... q.body) | Cross-site scripting vulnerability due to $@. | ReflectedXss.js:100:31:100:38 | req.body | user-provided value | | ReflectedXss.js:103:12:103:84 | markdow ... q.body) | Cross-site scripting vulnerability due to $@. | ReflectedXss.js:103:76:103:83 | req.body | user-provided value | | ReflectedXss.js:110:16:110:30 | request.query.p | Cross-site scripting vulnerability due to $@. | ReflectedXss.js:110:16:110:30 | request.query.p | user-provided value | +| ReflectedXss.js:122:30:122:73 | `${inva ... telist` | Cross-site scripting vulnerability due to $@. | ReflectedXss.js:114:13:114:27 | keys: queryKeys | user-provided value | +| ReflectedXss.js:122:30:122:73 | `${inva ... telist` | Cross-site scripting vulnerability due to $@. | ReflectedXss.js:116:31:116:45 | paramKeys?.keys | user-provided value | | ReflectedXssContentTypes.js:10:14:10:36 | "FOO: " ... rams.id | Cross-site scripting vulnerability due to $@. | ReflectedXssContentTypes.js:10:24:10:36 | req.params.id | user-provided value | | ReflectedXssContentTypes.js:20:14:20:36 | "FOO: " ... rams.id | Cross-site scripting vulnerability due to $@. | ReflectedXssContentTypes.js:20:24:20:36 | req.params.id | user-provided value | | ReflectedXssContentTypes.js:39:13:39:35 | "FOO: " ... rams.id | Cross-site scripting vulnerability due to $@. | ReflectedXssContentTypes.js:39:23:39:35 | req.params.id | user-provided value | From bcd36b1994ba35cfca2807af4e566368bdfba9fb Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 13 Mar 2024 11:39:15 +0000 Subject: [PATCH 112/309] C++: Recognize glib allocations and deallocations. --- .../semmle/code/cpp/models/implementations/Allocation.qll | 8 ++++++-- .../code/cpp/models/implementations/Deallocation.qll | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/Allocation.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/Allocation.qll index 305a0c25732..4b61a193652 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/Allocation.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/Allocation.qll @@ -36,7 +36,9 @@ private class MallocAllocationFunction extends AllocationFunction { "CRYPTO_malloc", // CRYPTO_malloc(size_t num, const char *file, int line) "CRYPTO_zalloc", // CRYPTO_zalloc(size_t num, const char *file, int line) "CRYPTO_secure_malloc", // CRYPTO_secure_malloc(size_t num, const char *file, int line) - "CRYPTO_secure_zalloc" // CRYPTO_secure_zalloc(size_t num, const char *file, int line) + "CRYPTO_secure_zalloc", // CRYPTO_secure_zalloc(size_t num, const char *file, int line) + "g_malloc", // g_malloc (n_bytes); + "g_try_malloc" // g_try_malloc(n_bytes); ]) and sizeArg = 0 or @@ -139,7 +141,9 @@ private class ReallocAllocationFunction extends AllocationFunction, TaintFunctio // --- Windows COM allocation "CoTaskMemRealloc", // CoTaskMemRealloc(ptr, size) // --- OpenSSL memory allocation - "CRYPTO_realloc" // CRYPTO_realloc(void *addr, size_t num, const char *file, int line) + "CRYPTO_realloc", // CRYPTO_realloc(void *addr, size_t num, const char *file, int line) + "g_realloc", // g_realloc(mem, n_bytes); + "g_try_realloc" // g_try_realloc(mem, n_bytes); ]) and sizeArg = 1 and reallocArg = 0 diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/Deallocation.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/Deallocation.qll index 1162c09b0b6..e50530142aa 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/Deallocation.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/Deallocation.qll @@ -20,8 +20,10 @@ private class StandardDeallocationFunction extends DeallocationFunction { freedArg = 0 or this.hasGlobalName([ - // --- OpenSSL memory allocation - "CRYPTO_free", "CRYPTO_secure_free" + // --- OpenSSL memory deallocation + "CRYPTO_free", "CRYPTO_secure_free", + // --- glib memory deallocation + "g_free" ]) and freedArg = 0 or From 3ea39a25536e750dd7601f55850dc3137e43f12c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 13 Mar 2024 11:39:34 +0000 Subject: [PATCH 113/309] C++: Add some query tests. --- .../query-tests/Critical/MemoryFreed/DoubleFree.expected | 4 ++++ .../Critical/MemoryFreed/MemoryFreed.expected | 2 ++ .../test/query-tests/Critical/MemoryFreed/test_free.cpp | 7 +++++++ .../Security/CWE/CWE-193/InvalidPointerDeref.expected | 9 +++++++++ cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp | 9 +++++++++ 5 files changed, 31 insertions(+) diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected index b9ac7f0a2d5..bd886810284 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected @@ -11,6 +11,7 @@ edges | test_free.cpp:128:10:128:11 | pointer to free output argument | test_free.cpp:129:10:129:11 | * ... | provenance | | | test_free.cpp:152:27:152:27 | pointer to free output argument | test_free.cpp:154:10:154:10 | a | provenance | | | test_free.cpp:207:10:207:10 | pointer to free output argument | test_free.cpp:209:10:209:10 | a | provenance | | +| test_free.cpp:301:12:301:14 | pointer to g_free output argument | test_free.cpp:302:12:302:14 | buf | provenance | | nodes | test_free.cpp:11:10:11:10 | pointer to free output argument | semmle.label | pointer to free output argument | | test_free.cpp:14:10:14:10 | a | semmle.label | a | @@ -36,6 +37,8 @@ nodes | test_free.cpp:154:10:154:10 | a | semmle.label | a | | test_free.cpp:207:10:207:10 | pointer to free output argument | semmle.label | pointer to free output argument | | test_free.cpp:209:10:209:10 | a | semmle.label | a | +| test_free.cpp:301:12:301:14 | pointer to g_free output argument | semmle.label | pointer to g_free output argument | +| test_free.cpp:302:12:302:14 | buf | semmle.label | buf | subpaths #select | test_free.cpp:14:10:14:10 | a | test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:14:10:14:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | @@ -50,3 +53,4 @@ subpaths | test_free.cpp:129:10:129:11 | * ... | test_free.cpp:128:10:128:11 | pointer to free output argument | test_free.cpp:129:10:129:11 | * ... | Memory pointed to by '* ...' may already have been freed by $@. | test_free.cpp:128:5:128:8 | call to free | call to free | | test_free.cpp:154:10:154:10 | a | test_free.cpp:152:27:152:27 | pointer to free output argument | test_free.cpp:154:10:154:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:152:22:152:25 | call to free | call to free | | test_free.cpp:209:10:209:10 | a | test_free.cpp:207:10:207:10 | pointer to free output argument | test_free.cpp:209:10:209:10 | a | Memory pointed to by 'a' may already have been freed by $@. | test_free.cpp:207:5:207:8 | call to free | call to free | +| test_free.cpp:302:12:302:14 | buf | test_free.cpp:301:12:301:14 | pointer to g_free output argument | test_free.cpp:302:12:302:14 | buf | Memory pointed to by 'buf' may already have been freed by $@. | test_free.cpp:301:5:301:10 | call to g_free | call to g_free | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected index 14b04cc5c2d..2e5f59ae0d2 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected @@ -102,6 +102,8 @@ | test_free.cpp:282:10:282:12 | buf | | test_free.cpp:288:8:288:10 | buf | | test_free.cpp:293:8:293:10 | buf | +| test_free.cpp:301:12:301:14 | buf | +| test_free.cpp:302:12:302:14 | buf | | virtual.cpp:18:10:18:10 | a | | virtual.cpp:19:10:19:10 | c | | virtual.cpp:38:10:38:10 | b | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp b/cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp index 24c0fcd922c..8bffcad2856 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/test_free.cpp @@ -293,4 +293,11 @@ void test_free_struct4(char* buf, MyStruct s) { free(buf); s.buf = buf; char c = s.buf[0]; // BAD +} + +void g_free (void*); + +void test_g_free(char* buf) { + g_free(buf); + g_free(buf); // BAD } \ No newline at end of file diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected index 43e865d894b..b6a9e097127 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected @@ -101,6 +101,10 @@ edges | test.cpp:857:16:857:29 | ... + ... | test.cpp:857:16:857:29 | ... + ... | provenance | | | test.cpp:857:16:857:29 | ... + ... | test.cpp:860:5:860:11 | ... = ... | provenance | | | test.cpp:857:16:857:29 | ... + ... | test.cpp:860:5:860:11 | ... = ... | provenance | | +| test.cpp:868:15:868:35 | call to g_malloc | test.cpp:869:15:869:22 | ... + ... | provenance | | +| test.cpp:869:15:869:22 | ... + ... | test.cpp:869:15:869:22 | ... + ... | provenance | | +| test.cpp:869:15:869:22 | ... + ... | test.cpp:870:14:870:15 | * ... | provenance | | +| test.cpp:869:15:869:22 | ... + ... | test.cpp:870:14:870:15 | * ... | provenance | | nodes | test.cpp:4:15:4:33 | call to malloc | semmle.label | call to malloc | | test.cpp:5:15:5:22 | ... + ... | semmle.label | ... + ... | @@ -198,6 +202,10 @@ nodes | test.cpp:857:16:857:29 | ... + ... | semmle.label | ... + ... | | test.cpp:857:16:857:29 | ... + ... | semmle.label | ... + ... | | test.cpp:860:5:860:11 | ... = ... | semmle.label | ... = ... | +| test.cpp:868:15:868:35 | call to g_malloc | semmle.label | call to g_malloc | +| test.cpp:869:15:869:22 | ... + ... | semmle.label | ... + ... | +| test.cpp:869:15:869:22 | ... + ... | semmle.label | ... + ... | +| test.cpp:870:14:870:15 | * ... | semmle.label | * ... | subpaths #select | test.cpp:6:14:6:15 | * ... | test.cpp:4:15:4:33 | call to malloc | test.cpp:6:14:6:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:4:15:4:33 | call to malloc | call to malloc | test.cpp:5:19:5:22 | size | size | @@ -231,3 +239,4 @@ subpaths | test.cpp:842:3:842:20 | ... = ... | test.cpp:841:18:841:35 | call to malloc | test.cpp:842:3:842:20 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:841:18:841:35 | call to malloc | call to malloc | test.cpp:842:11:842:15 | index | index | | test.cpp:849:5:849:22 | ... = ... | test.cpp:848:20:848:37 | call to malloc | test.cpp:849:5:849:22 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:848:20:848:37 | call to malloc | call to malloc | test.cpp:849:13:849:17 | index | index | | test.cpp:860:5:860:11 | ... = ... | test.cpp:856:12:856:35 | call to malloc | test.cpp:860:5:860:11 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:856:12:856:35 | call to malloc | call to malloc | test.cpp:857:21:857:28 | ... + ... | ... + ... | +| test.cpp:870:14:870:15 | * ... | test.cpp:868:15:868:35 | call to g_malloc | test.cpp:870:14:870:15 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:868:15:868:35 | call to g_malloc | call to g_malloc | test.cpp:869:19:869:22 | size | size | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp index cb9caeaae1b..db1017e233f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/test.cpp @@ -859,4 +859,13 @@ void test_regression(size_t size) { if(p <= chend) { *p = 42; // $ deref=L857->L860 // BAD } +} + + +void* g_malloc(size_t size); + +void test17(int size) { + char* p = (char*)g_malloc(size); + char* q = p + size; // $ alloc=L868 + char a = *q; // $ deref=L869->L870 // BAD } \ No newline at end of file From 465c3c18e37d9c9387b58f2c437967a480f89700 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 13 Mar 2024 11:49:26 +0000 Subject: [PATCH 114/309] C++: Add change note. --- cpp/ql/src/change-notes/2024-03-13-glib-alloc-and-dealloc.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2024-03-13-glib-alloc-and-dealloc.md diff --git a/cpp/ql/src/change-notes/2024-03-13-glib-alloc-and-dealloc.md b/cpp/ql/src/change-notes/2024-03-13-glib-alloc-and-dealloc.md new file mode 100644 index 00000000000..bc9082285d4 --- /dev/null +++ b/cpp/ql/src/change-notes/2024-03-13-glib-alloc-and-dealloc.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added models for `GLib` allocation and deallocation functions. From 16cef92106caebbbfed72734df00cf64391063ef Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 12 Mar 2024 11:08:18 +0100 Subject: [PATCH 115/309] JS: Add `DataFlow::Node.getLocation` --- config/identical-files.json | 3 +- javascript/ql/lib/semmle/javascript/AST.qll | 16 +- javascript/ql/lib/semmle/javascript/CFG.qll | 4 +- .../ql/lib/semmle/javascript/Comments.qll | 2 - .../ql/lib/semmle/javascript/Errors.qll | 2 - javascript/ql/lib/semmle/javascript/Files.qll | 3 +- javascript/ql/lib/semmle/javascript/HTML.qll | 8 - javascript/ql/lib/semmle/javascript/JSDoc.qll | 4 - javascript/ql/lib/semmle/javascript/JSON.qll | 12 +- javascript/ql/lib/semmle/javascript/Lines.qll | 2 - .../ql/lib/semmle/javascript/Locations.qll | 53 +++--- .../ql/lib/semmle/javascript/Regexp.qll | 2 - .../semmle/javascript/RestrictedLocations.qll | 2 +- .../ql/lib/semmle/javascript/Tokens.qll | 2 - .../ql/lib/semmle/javascript/Variables.qll | 4 +- javascript/ql/lib/semmle/javascript/XML.qll | 8 +- javascript/ql/lib/semmle/javascript/YAML.qll | 8 +- .../semmle/javascript/dataflow/DataFlow.qll | 8 + .../javascript/frameworks/Templating.qll | 9 +- .../javascript/internal/CachedStages.qll | 2 + .../semmle/javascript/internal/Locations.qll | 171 ++++++++++++++++++ .../internal/InlineExpectationsTestImpl.qll | 7 +- 22 files changed, 235 insertions(+), 97 deletions(-) create mode 100644 javascript/ql/lib/semmle/javascript/internal/Locations.qll diff --git a/config/identical-files.json b/config/identical-files.json index ce0e3a67f35..017fdd11481 100644 --- a/config/identical-files.json +++ b/config/identical-files.json @@ -255,7 +255,6 @@ "cpp/ql/lib/semmle/code/cpp/XML.qll", "csharp/ql/lib/semmle/code/csharp/XML.qll", "java/ql/lib/semmle/code/xml/XML.qll", - "javascript/ql/lib/semmle/javascript/XML.qll", "python/ql/lib/semmle/python/xml/XML.qll" ], "DuplicationProblems.inc.qhelp": [ @@ -372,4 +371,4 @@ "python/ql/test/experimental/dataflow/model-summaries/InlineTaintTest.ext.yml", "python/ql/test/experimental/dataflow/model-summaries/NormalDataflowTest.ext.yml" ] -} +} \ No newline at end of file diff --git a/javascript/ql/lib/semmle/javascript/AST.qll b/javascript/ql/lib/semmle/javascript/AST.qll index e4a1cf944c4..412f2036280 100644 --- a/javascript/ql/lib/semmle/javascript/AST.qll +++ b/javascript/ql/lib/semmle/javascript/AST.qll @@ -23,31 +23,27 @@ private import semmle.javascript.internal.CachedStages * ``` */ class AstNode extends @ast_node, NodeInStmtContainer { - override Location getLocation() { hasLocation(this, result) } - override File getFile() { result = this.getLocation().getFile() // Specialized for performance reasons } /** Gets the first token belonging to this element. */ Token getFirstToken() { - exists(Location l1, Location l2 | + exists(DbLocation l1, DbLocation l2, string filepath, int startline, int startcolumn | l1 = this.getLocation() and l2 = result.getLocation() and - l1.getFile() = l2.getFile() and - l1.getStartLine() = l2.getStartLine() and - l1.getStartColumn() = l2.getStartColumn() + l1.hasLocationInfo(filepath, startline, startcolumn, _, _) and + l2.hasLocationInfo(filepath, startline, startcolumn, _, _) ) } /** Gets the last token belonging to this element. */ Token getLastToken() { - exists(Location l1, Location l2 | + exists(DbLocation l1, DbLocation l2, string filepath, int endline, int endcolumn | l1 = this.getLocation() and l2 = result.getLocation() and - l1.getFile() = l2.getFile() and - l1.getEndLine() = l2.getEndLine() and - l1.getEndColumn() = l2.getEndColumn() + l1.hasLocationInfo(filepath, _, _, endline, endcolumn) and + l2.hasLocationInfo(filepath, _, _, endline, endcolumn) ) and // exclude empty EOF token not result instanceof EOFToken diff --git a/javascript/ql/lib/semmle/javascript/CFG.qll b/javascript/ql/lib/semmle/javascript/CFG.qll index 81bbef4c6d2..95e1e9aef72 100644 --- a/javascript/ql/lib/semmle/javascript/CFG.qll +++ b/javascript/ql/lib/semmle/javascript/CFG.qll @@ -356,9 +356,7 @@ class ControlFlowNode extends @cfg_node, Locatable, NodeInStmtContainer { * A synthetic CFG node that does not correspond to a statement or expression; * examples include guard nodes and entry/exit nodes. */ -class SyntheticControlFlowNode extends @synthetic_cfg_node, ControlFlowNode { - override Location getLocation() { hasLocation(this, result) } -} +class SyntheticControlFlowNode extends @synthetic_cfg_node, ControlFlowNode { } /** A synthetic CFG node marking the entry point of a function or toplevel script. */ class ControlFlowEntryNode extends SyntheticControlFlowNode, @entry_node { diff --git a/javascript/ql/lib/semmle/javascript/Comments.qll b/javascript/ql/lib/semmle/javascript/Comments.qll index 4888aae0b6d..889843728a2 100644 --- a/javascript/ql/lib/semmle/javascript/Comments.qll +++ b/javascript/ql/lib/semmle/javascript/Comments.qll @@ -15,8 +15,6 @@ import javascript * </pre> */ class Comment extends @comment, Locatable { - override Location getLocation() { hasLocation(this, result) } - /** Gets the toplevel element this comment belongs to. */ TopLevel getTopLevel() { comments(this, _, result, _, _) } diff --git a/javascript/ql/lib/semmle/javascript/Errors.qll b/javascript/ql/lib/semmle/javascript/Errors.qll index 72996502997..6a5d73566a4 100644 --- a/javascript/ql/lib/semmle/javascript/Errors.qll +++ b/javascript/ql/lib/semmle/javascript/Errors.qll @@ -4,8 +4,6 @@ import javascript /** An error encountered during extraction. */ abstract class Error extends Locatable { - override Location getLocation() { hasLocation(this, result) } - /** Gets the message associated with this error. */ abstract string getMessage(); diff --git a/javascript/ql/lib/semmle/javascript/Files.qll b/javascript/ql/lib/semmle/javascript/Files.qll index b384febb9a1..88513f087ae 100644 --- a/javascript/ql/lib/semmle/javascript/Files.qll +++ b/javascript/ql/lib/semmle/javascript/Files.qll @@ -3,6 +3,7 @@ import javascript private import NodeModuleResolutionImpl private import codeql.util.FileSystem +private import internal.Locations private module FsInput implements InputSig { abstract class ContainerBase extends @container { @@ -83,7 +84,7 @@ class File extends Container, Impl::File { * * Note that files have special locations starting and ending at line zero, column zero. */ - Location getLocation() { hasLocation(this, result) } + DbLocation getLocation() { result = getLocatableLocation(this) } /** Gets the number of lines in this file. */ int getNumberOfLines() { result = sum(int loc | numlines(this, loc, _, _) | loc) } diff --git a/javascript/ql/lib/semmle/javascript/HTML.qll b/javascript/ql/lib/semmle/javascript/HTML.qll index 5ba02cba7cb..01ce54cef52 100644 --- a/javascript/ql/lib/semmle/javascript/HTML.qll +++ b/javascript/ql/lib/semmle/javascript/HTML.qll @@ -43,8 +43,6 @@ module HTML { class Element extends Locatable, @xmlelement { Element() { exists(FileContainingHtml f | xmlElements(this, _, _, _, f)) } - override Location getLocation() { xmllocations(this, result) } - /** * Gets the name of this HTML element. * @@ -122,8 +120,6 @@ module HTML { class Attribute extends Locatable, @xmlattribute { Attribute() { exists(FileContainingHtml f | xmlAttrs(this, _, _, _, _, f)) } - override Location getLocation() { xmllocations(this, result) } - /** * Gets the inline script of this attribute, if any. */ @@ -326,8 +322,6 @@ module HTML { * Holds if this text node is inside a `CDATA` tag. */ predicate isCData() { xmlChars(this, _, _, _, 1, _) } - - override Location getLocation() { xmllocations(this, result) } } /** @@ -349,7 +343,5 @@ module HTML { string getText() { result = this.toString().regexpCapture("(?s)<!--(.*)-->", 1) } override string toString() { xmlComments(this, result, _, _) } - - override Location getLocation() { xmllocations(this, result) } } } diff --git a/javascript/ql/lib/semmle/javascript/JSDoc.qll b/javascript/ql/lib/semmle/javascript/JSDoc.qll index 44ec09f34e4..6e1ea5caecb 100644 --- a/javascript/ql/lib/semmle/javascript/JSDoc.qll +++ b/javascript/ql/lib/semmle/javascript/JSDoc.qll @@ -18,8 +18,6 @@ private import semmle.javascript.internal.CachedStages * </pre> */ class JSDoc extends @jsdoc, Locatable { - override Location getLocation() { hasLocation(this, result) } - /** Gets the description text of this JSDoc comment. */ string getDescription() { jsdoc(this, result, _) } @@ -75,8 +73,6 @@ abstract class Documentable extends AstNode { * ``` */ class JSDocTypeExprParent extends @jsdoc_type_expr_parent, Locatable { - override Location getLocation() { hasLocation(this, result) } - /** Gets the JSDoc comment to which this element belongs. */ JSDoc getJSDocComment() { none() } } diff --git a/javascript/ql/lib/semmle/javascript/JSON.qll b/javascript/ql/lib/semmle/javascript/JSON.qll index 1e56fc00657..714228e52b6 100644 --- a/javascript/ql/lib/semmle/javascript/JSON.qll +++ b/javascript/ql/lib/semmle/javascript/JSON.qll @@ -3,6 +3,7 @@ */ import javascript +private import semmle.javascript.internal.Locations /** * A JSON-encoded value, which may be a primitive value, an array or an object. @@ -20,8 +21,6 @@ import javascript * ``` */ class JsonValue extends @json_value, Locatable { - override Location getLocation() { json_locations(this, result) } - /** Gets the parent value to which this value belongs, if any. */ JsonValue getParent() { json(this, _, result, _, _) } @@ -34,12 +33,7 @@ class JsonValue extends @json_value, Locatable { override string toString() { json(this, _, _, _, result) } /** Gets the JSON file containing this value. */ - File getJsonFile() { - exists(Location loc | - json_locations(this, loc) and - result = loc.getFile() - ) - } + File getJsonFile() { result = getLocatableLocation(this).getFile() } /** If this is an object, gets the value of property `name`. */ JsonValue getPropValue(string name) { json_properties(this, name, result) } @@ -172,7 +166,5 @@ class JsonObject extends @json_object, JsonValue { * An error reported by the JSON parser. */ class JsonParseError extends @json_parse_error, Error { - override Location getLocation() { json_locations(this, result) } - override string getMessage() { json_errors(this, result) } } diff --git a/javascript/ql/lib/semmle/javascript/Lines.qll b/javascript/ql/lib/semmle/javascript/Lines.qll index 08a013e52e8..1db9187008a 100644 --- a/javascript/ql/lib/semmle/javascript/Lines.qll +++ b/javascript/ql/lib/semmle/javascript/Lines.qll @@ -14,8 +14,6 @@ import javascript * extracted with the `--extract-program-text` flag. */ class Line extends @line, Locatable { - override Location getLocation() { hasLocation(this, result) } - /** Gets the toplevel element this line belongs to. */ TopLevel getTopLevel() { lines(this, result, _, _) } diff --git a/javascript/ql/lib/semmle/javascript/Locations.qll b/javascript/ql/lib/semmle/javascript/Locations.qll index c0748f7b3e7..ce323dfc14d 100644 --- a/javascript/ql/lib/semmle/javascript/Locations.qll +++ b/javascript/ql/lib/semmle/javascript/Locations.qll @@ -1,38 +1,41 @@ /** Provides classes for working with locations and program elements that have locations. */ import javascript +private import internal.Locations /** * A location as given by a file, a start line, a start column, * an end line, and an end column. * + * This class is restricted to locations created by the extractor. + * * For more information about locations see [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ -class Location extends @location { +class DbLocation extends TDbLocation { /** Gets the file for this location. */ - File getFile() { locations_default(this, result, _, _, _, _) } + File getFile() { dbLocationInfo(this, result, _, _, _, _) } /** Gets the 1-based line number (inclusive) where this location starts. */ - int getStartLine() { locations_default(this, _, result, _, _, _) } + int getStartLine() { dbLocationInfo(this, _, result, _, _, _) } /** Gets the 1-based column number (inclusive) where this location starts. */ - int getStartColumn() { locations_default(this, _, _, result, _, _) } + int getStartColumn() { dbLocationInfo(this, _, _, result, _, _) } /** Gets the 1-based line number (inclusive) where this location ends. */ - int getEndLine() { locations_default(this, _, _, _, result, _) } + int getEndLine() { dbLocationInfo(this, _, _, _, result, _) } /** Gets the 1-based column number (inclusive) where this location ends. */ - int getEndColumn() { locations_default(this, _, _, _, _, result) } + int getEndColumn() { dbLocationInfo(this, _, _, _, _, result) } /** Gets the number of lines covered by this location. */ int getNumLines() { result = this.getEndLine() - this.getStartLine() + 1 } /** Holds if this location starts before location `that`. */ pragma[inline] - predicate startsBefore(Location that) { + predicate startsBefore(DbLocation that) { exists(File f, int sl1, int sc1, int sl2, int sc2 | - locations_default(this, f, sl1, sc1, _, _) and - locations_default(that, f, sl2, sc2, _, _) + dbLocationInfo(this, f, sl1, sc1, _, _) and + dbLocationInfo(that, f, sl2, sc2, _, _) | sl1 < sl2 or @@ -42,10 +45,10 @@ class Location extends @location { /** Holds if this location ends after location `that`. */ pragma[inline] - predicate endsAfter(Location that) { + predicate endsAfter(DbLocation that) { exists(File f, int el1, int ec1, int el2, int ec2 | - locations_default(this, f, _, _, el1, ec1) and - locations_default(that, f, _, _, el2, ec2) + dbLocationInfo(this, f, _, _, el1, ec1) and + dbLocationInfo(that, f, _, _, el2, ec2) | el1 > el2 or @@ -57,10 +60,10 @@ class Location extends @location { * Holds if this location contains location `that`, meaning that it starts * before and ends after it. */ - predicate contains(Location that) { this.startsBefore(that) and this.endsAfter(that) } + predicate contains(DbLocation that) { this.startsBefore(that) and this.endsAfter(that) } /** Holds if this location is empty. */ - predicate isEmpty() { exists(int l, int c | locations_default(this, _, l, c, l, c - 1)) } + predicate isEmpty() { exists(int l, int c | dbLocationInfo(this, _, l, c, l, c - 1)) } /** Gets a textual representation of this element. */ string toString() { result = this.getFile().getBaseName() + ":" + this.getStartLine().toString() } @@ -76,22 +79,21 @@ class Location extends @location { string filepath, int startline, int startcolumn, int endline, int endcolumn ) { exists(File f | - locations_default(this, f, startline, startcolumn, endline, endcolumn) and + dbLocationInfo(this, f, startline, startcolumn, endline, endcolumn) and filepath = f.getAbsolutePath() ) } } +final class Location = LocationImpl; + /** A program element with a location. */ class Locatable extends @locatable { /** Gets the file this program element comes from. */ File getFile() { result = this.getLocation().getFile() } /** Gets this element's location. */ - Location getLocation() { - // overridden by subclasses - none() - } + final DbLocation getLocation() { result = getLocatableLocation(this) } /** * Gets the line on which this element starts. @@ -142,16 +144,3 @@ class Locatable extends @locatable { */ string getAPrimaryQlClass() { result = "???" } } - -/** - * A `File`, considered as a `Locatable`. - * - * For reasons of backwards compatibility, @file is a subtype of @locatable. This class exists to - * provide an override of `Locatable.getLocation()` for @files, since it would otherwise default - * to `none()`, which is unhelpful. - */ -private class FileLocatable extends File, Locatable { - override Location getLocation() { result = File.super.getLocation() } - - override string toString() { result = File.super.toString() } -} diff --git a/javascript/ql/lib/semmle/javascript/Regexp.qll b/javascript/ql/lib/semmle/javascript/Regexp.qll index 3266f1527a2..3c190af4476 100644 --- a/javascript/ql/lib/semmle/javascript/Regexp.qll +++ b/javascript/ql/lib/semmle/javascript/Regexp.qll @@ -43,8 +43,6 @@ class RegExpParent extends Locatable, @regexpparent { } * ``` */ class RegExpTerm extends Locatable, @regexpterm { - override Location getLocation() { hasLocation(this, result) } - /** Gets the `i`th child term of this term. */ RegExpTerm getChild(int i) { regexpterm(result, _, this, i, _) } diff --git a/javascript/ql/lib/semmle/javascript/RestrictedLocations.qll b/javascript/ql/lib/semmle/javascript/RestrictedLocations.qll index 47ee41a4235..05bcd8b3ddd 100644 --- a/javascript/ql/lib/semmle/javascript/RestrictedLocations.qll +++ b/javascript/ql/lib/semmle/javascript/RestrictedLocations.qll @@ -26,7 +26,7 @@ class FirstLineOf extends Locatable { then endcolumn = xc else endcolumn = - max(int c | any(Location l).hasLocationInfo(filepath, startline, _, startline, c)) + max(int c | any(DbLocation l).hasLocationInfo(filepath, startline, _, startline, c)) ) } } diff --git a/javascript/ql/lib/semmle/javascript/Tokens.qll b/javascript/ql/lib/semmle/javascript/Tokens.qll index 52659f444c4..c6a9b05a3d1 100644 --- a/javascript/ql/lib/semmle/javascript/Tokens.qll +++ b/javascript/ql/lib/semmle/javascript/Tokens.qll @@ -17,8 +17,6 @@ import javascript * ``` */ class Token extends Locatable, @token { - override Location getLocation() { hasLocation(this, result) } - /** Gets the toplevel syntactic structure to which this token belongs. */ TopLevel getTopLevel() { tokeninfo(this, _, result, _, _) } diff --git a/javascript/ql/lib/semmle/javascript/Variables.qll b/javascript/ql/lib/semmle/javascript/Variables.qll index 00b463f8a9b..1eeb735124b 100644 --- a/javascript/ql/lib/semmle/javascript/Variables.qll +++ b/javascript/ql/lib/semmle/javascript/Variables.qll @@ -329,9 +329,9 @@ class LocalVariable extends Variable { * If the variable has one or more declarations, the location of the first declaration is used. * If the variable has no declaration, the entry point of its declaring container is used. */ - Location getLocation() { + DbLocation getLocation() { result = - min(Location loc | + min(DbLocation loc | loc = this.getADeclaration().getLocation() | loc order by loc.getStartLine(), loc.getStartColumn() diff --git a/javascript/ql/lib/semmle/javascript/XML.qll b/javascript/ql/lib/semmle/javascript/XML.qll index 65bdd7b7cc1..1a27c9a1ef3 100644 --- a/javascript/ql/lib/semmle/javascript/XML.qll +++ b/javascript/ql/lib/semmle/javascript/XML.qll @@ -3,6 +3,7 @@ */ import semmle.files.FileSystem +private import semmle.javascript.internal.Locations private class TXmlLocatable = @xmldtd or @xmlelement or @xmlattribute or @xmlnamespace or @xmlcomment or @xmlcharacters; @@ -10,7 +11,7 @@ private class TXmlLocatable = /** An XML element that has a location. */ class XmlLocatable extends @xmllocatable, TXmlLocatable { /** Gets the source location for this element. */ - Location getLocation() { xmllocations(this, result) } + DbLocation getLocation() { result = getLocatableLocation(this) } /** * Holds if this element is at the specified location. @@ -22,10 +23,7 @@ class XmlLocatable extends @xmllocatable, TXmlLocatable { predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { - exists(File f, Location l | l = this.getLocation() | - locations_default(l, f, startline, startcolumn, endline, endcolumn) and - filepath = f.getAbsolutePath() - ) + this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) } /** Gets a textual representation of this element. */ diff --git a/javascript/ql/lib/semmle/javascript/YAML.qll b/javascript/ql/lib/semmle/javascript/YAML.qll index 38bca777900..1ab562b9524 100644 --- a/javascript/ql/lib/semmle/javascript/YAML.qll +++ b/javascript/ql/lib/semmle/javascript/YAML.qll @@ -9,9 +9,9 @@ import javascript private import codeql.yaml.Yaml as LibYaml private module YamlSig implements LibYaml::InputSig { - class LocatableBase extends @yaml_locatable, Locatable { - override Location getLocation() { yaml_locations(this, result) } - } + class Location = DbLocation; + + class LocatableBase extends @yaml_locatable, Locatable { } import javascript @@ -52,8 +52,6 @@ import LibYaml::Make<YamlSig> private class MyYmlNode extends Locatable instanceof YamlNode { override string getAPrimaryQlClass() { result = YamlNode.super.getAPrimaryQlClass() } - override Location getLocation() { result = YamlNode.super.getLocation() } - override string toString() { result = YamlNode.super.toString() } } diff --git a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll index c098c60816e..6d091a720af 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll @@ -152,6 +152,14 @@ module DataFlow { none() } + /** Gets the location of this node. */ + Location getLocation() { + exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | + this.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + result.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + ) + } + /** Gets the file this data flow node comes from. */ File getFile() { none() } // overridden in subclasses diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll index 097003c5ab8..a7286c7a199 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll @@ -36,8 +36,6 @@ module Templating { /** A placeholder tag for a templating engine. */ class TemplatePlaceholderTag extends @template_placeholder_tag, Locatable { - override Location getLocation() { hasLocation(this, result) } - override string toString() { template_placeholder_tag_info(this, _, result) } /** Gets the full text of the template tag, including delimiters. */ @@ -107,7 +105,12 @@ module Templating { * Gets the innermost JavaScript expression containing this template tag, if any. */ pragma[nomagic] - Expr getEnclosingExpr() { expr_contains_template_tag_location(result, this.getLocation()) } + Expr getEnclosingExpr() { + exists(@location loc | + hasLocation(this, loc) and + expr_contains_template_tag_location(result, loc) + ) + } } /** diff --git a/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll b/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll index 459b83f2b99..09d52e89ee0 100644 --- a/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll +++ b/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll @@ -138,6 +138,8 @@ module Stages { or any(DataFlow::Node node).hasLocationInfo(_, _, _, _, _) or + exists(any(DataFlow::Node node).getLocation()) + or exists(any(DataFlow::Node node).toString()) or exists(any(AccessPath a).getAnInstanceIn(_)) diff --git a/javascript/ql/lib/semmle/javascript/internal/Locations.qll b/javascript/ql/lib/semmle/javascript/internal/Locations.qll new file mode 100644 index 00000000000..4a21f4a6b98 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/internal/Locations.qll @@ -0,0 +1,171 @@ +/** Provides classes for working with locations and program elements that have locations. */ + +import javascript + +// Should _not_ be cached, as that would require the data flow stage to be evaluated +// in order to evaluate the AST stage. Ideally, we would cache each injector separately, +// but that's not possible. Instead, we cache all predicates that need the injectors +// to be tuple numbered. +newtype TLocation = + TDbLocation(@location loc) or + TSynthLocation(string filepath, int startline, int startcolumn, int endline, int endcolumn) { + any(DataFlow::Node n).hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + // avoid overlap with existing DB locations + not exists(File f | + locations_default(_, f, startline, startcolumn, endline, endcolumn) and + f.getAbsolutePath() = filepath + ) + } + +/** + * A location as given by a file, a start line, a start column, + * an end line, and an end column. + * + * For more information about locations see [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +abstract class LocationImpl extends TLocation { + /** Gets the file for this location. */ + abstract File getFile(); + + /** Gets the 1-based line number (inclusive) where this location starts. */ + abstract int getStartLine(); + + /** Gets the 1-based column number (inclusive) where this location starts. */ + abstract int getStartColumn(); + + /** Gets the 1-based line number (inclusive) where this location ends. */ + abstract int getEndLine(); + + /** Gets the 1-based column number (inclusive) where this location ends. */ + abstract int getEndColumn(); + + /** Gets the number of lines covered by this location. */ + int getNumLines() { result = this.getEndLine() - this.getStartLine() + 1 } + + /** Holds if this location starts before location `that`. */ + pragma[inline] + predicate startsBefore(Location that) { + exists(string f, int sl1, int sc1, int sl2, int sc2 | + this.hasLocationInfo(f, sl1, sc1, _, _) and + that.hasLocationInfo(f, sl2, sc2, _, _) + | + sl1 < sl2 + or + sl1 = sl2 and sc1 < sc2 + ) + } + + /** Holds if this location ends after location `that`. */ + pragma[inline] + predicate endsAfter(Location that) { + exists(string f, int el1, int ec1, int el2, int ec2 | + this.hasLocationInfo(f, _, _, el1, ec1) and + that.hasLocationInfo(f, _, _, el2, ec2) + | + el1 > el2 + or + el1 = el2 and ec1 > ec2 + ) + } + + /** + * Holds if this location contains location `that`, meaning that it starts + * before and ends after it. + */ + predicate contains(Location that) { this.startsBefore(that) and this.endsAfter(that) } + + /** Holds if this location is empty. */ + predicate isEmpty() { exists(int l, int c | this.hasLocationInfo(_, l, c, l, c - 1)) } + + /** Gets a textual representation of this element. */ + string toString() { result = this.getFile().getBaseName() + ":" + this.getStartLine().toString() } + + /** + * Holds if this element is at the specified location. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `filepath`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ + abstract predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ); +} + +class DbLocationImpl extends LocationImpl instanceof DbLocation { + override File getFile() { result = DbLocation.super.getFile() } + + override int getStartLine() { result = DbLocation.super.getStartLine() } + + override int getStartColumn() { result = DbLocation.super.getStartColumn() } + + override int getEndLine() { result = DbLocation.super.getEndLine() } + + override int getEndColumn() { result = DbLocation.super.getEndColumn() } + + override predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + DbLocation.super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + } +} + +class SynthLocationImpl extends LocationImpl, TSynthLocation { + override File getFile() { synthLocationInfo(this, result.getAbsolutePath(), _, _, _, _) } + + override int getStartLine() { synthLocationInfo(this, _, result, _, _, _) } + + override int getStartColumn() { synthLocationInfo(this, _, _, result, _, _) } + + override int getEndLine() { synthLocationInfo(this, _, _, _, result, _) } + + override int getEndColumn() { synthLocationInfo(this, _, _, _, _, result) } + + override predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + synthLocationInfo(this, filepath, startline, startcolumn, endline, endcolumn) + } +} + +cached +private module Cached { + cached + DbLocation getLocatableLocation(@locatable l) { + exists(@location loc | + hasLocation(l, loc) or + xmllocations(l, loc) or + json_locations(l, loc) or + yaml_locations(l, loc) + | + result = TDbLocation(loc) + ) + } + + cached + predicate dbLocationInfo( + DbLocation l, File f, int startline, int startcolumn, int endline, int endcolumn + ) { + exists(@location loc | + l = TDbLocation(loc) and + locations_default(loc, f, startline, startcolumn, endline, endcolumn) + ) + } +} + +import Cached + +cached +private module CachedInDataFlowStage { + private import semmle.javascript.internal.CachedStages + + cached + predicate synthLocationInfo( + SynthLocationImpl l, string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + Stages::DataFlowStage::ref() and + l = TSynthLocation(filepath, startline, startcolumn, endline, endcolumn) + } +} + +private import CachedInDataFlowStage diff --git a/javascript/ql/test/testUtilities/internal/InlineExpectationsTestImpl.qll b/javascript/ql/test/testUtilities/internal/InlineExpectationsTestImpl.qll index d1de2866b10..9e92f70af69 100644 --- a/javascript/ql/test/testUtilities/internal/InlineExpectationsTestImpl.qll +++ b/javascript/ql/test/testUtilities/internal/InlineExpectationsTestImpl.qll @@ -4,8 +4,13 @@ private import codeql.util.test.InlineExpectationsTest module Impl implements InlineExpectationsTestSig { private import javascript - class ExpectationComment extends LineComment { + final private class LineCommentFinal = LineComment; + + class ExpectationComment extends LineCommentFinal { string getContents() { result = this.getText() } + + /** Gets this element's location. */ + Location getLocation() { result = super.getLocation() } } class Location = JS::Location; From 8d5eab401d2ed411380f0c28d252b5c5333c57e5 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Wed, 13 Mar 2024 13:28:27 +0100 Subject: [PATCH 116/309] C++: Introduce re-use expressions in the database scheme --- .../exprs.ql | 13 + .../old.dbscheme | 2250 +++++ .../semmlecode.cpp.dbscheme | 2244 +++++ .../upgrade.properties | 4 + cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll | 20 + cpp/ql/lib/semmlecode.cpp.dbscheme | 6 + cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 8360 +++++++++-------- .../old.dbscheme | 2244 +++++ .../semmlecode.cpp.dbscheme | 2250 +++++ .../upgrade.properties | 2 + 10 files changed, 13274 insertions(+), 4119 deletions(-) create mode 100644 cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/exprs.ql create mode 100644 cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/old.dbscheme create mode 100644 cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/upgrade.properties diff --git a/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/exprs.ql b/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/exprs.ql new file mode 100644 index 00000000000..366c074e5da --- /dev/null +++ b/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/exprs.ql @@ -0,0 +1,13 @@ +class Expr extends @expr { + string toString() { none() } +} + +class Location extends @location_expr { + string toString() { none() } +} + +from Expr expr, int kind, int kind_new, Location loc +where + exprs(expr, kind, loc) and + if kind = 363 then kind_new = 1 else kind_new = kind +select expr, kind_new, loc diff --git a/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/old.dbscheme b/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/old.dbscheme new file mode 100644 index 00000000000..aa7ff0ab32c --- /dev/null +++ b/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/old.dbscheme @@ -0,0 +1,2250 @@ + +/** + * 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 +) + +/* + 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 +; + +@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 + ; + +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/aa7ff0ab32cd4674f6ab731d32fea64116997b05/semmlecode.cpp.dbscheme b/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..298438feb14 --- /dev/null +++ b/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/semmlecode.cpp.dbscheme @@ -0,0 +1,2244 @@ + +/** + * 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 +); + +/* + 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 +; + +@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 + ; + +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/aa7ff0ab32cd4674f6ab731d32fea64116997b05/upgrade.properties b/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/upgrade.properties new file mode 100644 index 00000000000..b2f465d1ba5 --- /dev/null +++ b/cpp/downgrades/aa7ff0ab32cd4674f6ab731d32fea64116997b05/upgrade.properties @@ -0,0 +1,4 @@ +description: Introduce re-use expressions +compatibility: partial +expr_reuse.rel: delete +exprs.rel: run exprs.qlo diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll index b87805d1967..42e441668f2 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll @@ -1322,3 +1322,23 @@ class CoYieldExpr extends UnaryOperation, @co_yield { override int getPrecedence() { result = 2 } } + +/** + * An expression representing the re-use of another expression. + * + * In some specific cases an expression may be referred to outside its + * original context. A re-use expression wraps any such reference. A + * re-use expression can for example occur as the qualifier of an implicit + * destructor called on a temporary object, where the original use of the + * expression is in the definition of the temporary. + */ +class ReuseExpr extends Expr, @reuseexpr { + override string getAPrimaryQlClass() { result = "ReuseExpr" } + + override string toString() { result = "reuse of " + this.getReusedExpr().toString() } + + /** + * Gets the expression that is being re-used. + */ + Expr getReusedExpr() { expr_reuse(underlyingElement(this), unresolveElement(result)) } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 298438feb14..aa7ff0ab32c 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1513,6 +1513,11 @@ exprs( int location: @location_expr ref ); +expr_reuse( + int reuse: @expr ref, + int original: @expr ref +) + /* case @value.category of 1 = prval @@ -1741,6 +1746,7 @@ case @expr.kind of | 360 = @isunsigned | 361 = @isvoid | 362 = @isvolatile +| 363 = @reuseexpr ; @var_args_expr = @vastartexpr diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index 0ac63edd1ab..8d4a841aaf8 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,7 +2,7 @@ <typesizes> <e> <k>@compilation</k> - <v>9695</v> + <v>9657</v> </e> <e> <k>@externalDataElement</k> @@ -18,71 +18,71 @@ </e> <e> <k>@location_default</k> - <v>29753112</v> + <v>29786456</v> </e> <e> <k>@location_stmt</k> - <v>3814280</v> - </e> - <e> - <k>@diagnostic</k> - <v>5192</v> - </e> - <e> - <k>@file</k> - <v>122996</v> - </e> - <e> - <k>@folder</k> - <v>15374</v> + <v>3820105</v> </e> <e> <k>@location_expr</k> - <v>13168606</v> + <v>13188716</v> + </e> + <e> + <k>@diagnostic</k> + <v>5013</v> + </e> + <e> + <k>@file</k> + <v>123134</v> + </e> + <e> + <k>@folder</k> + <v>16324</v> </e> <e> <k>@macro_expansion</k> - <v>33099938</v> + <v>32971750</v> </e> <e> <k>@other_macro_reference</k> - <v>857250</v> + <v>858211</v> </e> <e> <k>@function</k> - <v>4640799</v> + <v>4646000</v> </e> <e> <k>@fun_decl</k> - <v>5004199</v> + <v>5009807</v> </e> <e> <k>@var_decl</k> - <v>8413633</v> + <v>8423062</v> </e> <e> <k>@type_decl</k> - <v>3238449</v> + <v>3242079</v> </e> <e> <k>@namespace_decl</k> - <v>311526</v> + <v>311530</v> </e> <e> <k>@using</k> - <v>368990</v> + <v>369403</v> </e> <e> <k>@static_assert</k> - <v>134653</v> + <v>134655</v> </e> <e> <k>@parameter</k> - <v>6568681</v> + <v>6576042</v> </e> <e> <k>@membervariable</k> - <v>1053150</v> + <v>1054758</v> </e> <e> <k>@globalvariable</k> @@ -90,259 +90,259 @@ </e> <e> <k>@localvariable</k> - <v>577491</v> + <v>576906</v> </e> <e> <k>@enumconstant</k> - <v>241316</v> + <v>241684</v> </e> <e> <k>@errortype</k> - <v>465</v> + <v>466</v> </e> <e> <k>@unknowntype</k> - <v>465</v> + <v>466</v> </e> <e> <k>@void</k> - <v>465</v> + <v>466</v> </e> <e> <k>@boolean</k> - <v>465</v> + <v>466</v> </e> <e> <k>@char</k> - <v>465</v> + <v>466</v> </e> <e> <k>@unsigned_char</k> - <v>465</v> + <v>466</v> </e> <e> <k>@signed_char</k> - <v>465</v> + <v>466</v> </e> <e> <k>@short</k> - <v>465</v> + <v>466</v> </e> <e> <k>@unsigned_short</k> - <v>465</v> + <v>466</v> </e> <e> <k>@signed_short</k> - <v>465</v> + <v>466</v> </e> <e> <k>@int</k> - <v>465</v> + <v>466</v> </e> <e> <k>@unsigned_int</k> - <v>465</v> + <v>466</v> </e> <e> <k>@signed_int</k> - <v>465</v> + <v>466</v> </e> <e> <k>@long</k> - <v>465</v> + <v>466</v> </e> <e> <k>@unsigned_long</k> - <v>465</v> + <v>466</v> </e> <e> <k>@signed_long</k> - <v>465</v> + <v>466</v> </e> <e> <k>@long_long</k> - <v>465</v> + <v>466</v> </e> <e> <k>@unsigned_long_long</k> - <v>465</v> + <v>466</v> </e> <e> <k>@signed_long_long</k> - <v>465</v> + <v>466</v> </e> <e> <k>@float</k> - <v>465</v> + <v>466</v> </e> <e> <k>@double</k> - <v>465</v> + <v>466</v> </e> <e> <k>@long_double</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_float</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_double</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_long_double</k> - <v>465</v> + <v>466</v> </e> <e> <k>@imaginary_float</k> - <v>465</v> + <v>466</v> </e> <e> <k>@imaginary_double</k> - <v>465</v> + <v>466</v> </e> <e> <k>@imaginary_long_double</k> - <v>465</v> + <v>466</v> </e> <e> <k>@wchar_t</k> - <v>465</v> + <v>466</v> </e> <e> <k>@decltype_nullptr</k> - <v>465</v> + <v>466</v> </e> <e> <k>@int128</k> - <v>465</v> + <v>466</v> </e> <e> <k>@unsigned_int128</k> - <v>465</v> + <v>466</v> </e> <e> <k>@signed_int128</k> - <v>465</v> + <v>466</v> </e> <e> <k>@float128</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_float128</k> - <v>465</v> + <v>466</v> </e> <e> <k>@decimal32</k> - <v>465</v> + <v>466</v> </e> <e> <k>@decimal64</k> - <v>465</v> + <v>466</v> </e> <e> <k>@decimal128</k> - <v>465</v> + <v>466</v> </e> <e> <k>@char16_t</k> - <v>465</v> + <v>466</v> </e> <e> <k>@char32_t</k> - <v>465</v> + <v>466</v> </e> <e> <k>@std_float32</k> - <v>465</v> + <v>466</v> </e> <e> <k>@float32x</k> - <v>465</v> + <v>466</v> </e> <e> <k>@std_float64</k> - <v>465</v> + <v>466</v> </e> <e> <k>@float64x</k> - <v>465</v> + <v>466</v> </e> <e> <k>@std_float128</k> - <v>465</v> + <v>466</v> </e> <e> <k>@char8_t</k> - <v>465</v> + <v>466</v> </e> <e> <k>@float16</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_float16</k> - <v>465</v> + <v>466</v> </e> <e> <k>@fp16</k> - <v>465</v> + <v>466</v> </e> <e> <k>@std_bfloat16</k> - <v>465</v> + <v>466</v> </e> <e> <k>@std_float16</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_std_float32</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_float32x</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_std_float64</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_float64x</k> - <v>465</v> + <v>466</v> </e> <e> <k>@complex_std_float128</k> - <v>465</v> + <v>466</v> </e> <e> <k>@pointer</k> - <v>566996</v> + <v>567632</v> </e> <e> <k>@type_with_specifiers</k> - <v>1010530</v> + <v>1010263</v> </e> <e> <k>@array</k> - <v>109951</v> + <v>110074</v> </e> <e> <k>@routineptr</k> - <v>633361</v> + <v>624659</v> </e> <e> <k>@reference</k> - <v>1727994</v> + <v>1721148</v> </e> <e> <k>@gnu_vector</k> - <v>696</v> + <v>693</v> </e> <e> <k>@routinereference</k> @@ -350,7 +350,7 @@ </e> <e> <k>@rvalue_reference</k> - <v>627137</v> + <v>620692</v> </e> <e> <k>@block</k> @@ -358,43 +358,43 @@ </e> <e> <k>@decltype</k> - <v>27022</v> + <v>27052</v> </e> <e> <k>@usertype</k> - <v>5224568</v> + <v>5229957</v> </e> <e> <k>@mangledname</k> - <v>6441025</v> + <v>6448244</v> </e> <e> <k>@type_mention</k> - <v>4023226</v> + <v>4029370</v> </e> <e> <k>@routinetype</k> - <v>545338</v> + <v>538161</v> </e> <e> <k>@ptrtomember</k> - <v>37737</v> + <v>37779</v> </e> <e> <k>@specifier</k> - <v>24692</v> + <v>24720</v> </e> <e> <k>@gnuattribute</k> - <v>684868</v> + <v>685636</v> </e> <e> <k>@stdattribute</k> - <v>491954</v> + <v>487895</v> </e> <e> <k>@declspec</k> - <v>243213</v> + <v>243123</v> </e> <e> <k>@msattribute</k> @@ -402,15 +402,15 @@ </e> <e> <k>@alignas</k> - <v>9783</v> + <v>9794</v> </e> <e> <k>@attribute_arg_token</k> - <v>39135</v> + <v>39179</v> </e> <e> <k>@attribute_arg_constant_expr</k> - <v>369922</v> + <v>370336</v> </e> <e> <k>@attribute_arg_empty</k> @@ -422,7 +422,7 @@ </e> <e> <k>@attribute_arg_type</k> - <v>465</v> + <v>466</v> </e> <e> <k>@attribute_arg_expr</k> @@ -430,35 +430,35 @@ </e> <e> <k>@derivation</k> - <v>395209</v> + <v>391086</v> </e> <e> <k>@frienddecl</k> - <v>713754</v> + <v>706182</v> </e> <e> <k>@comment</k> - <v>8751514</v> + <v>8686670</v> </e> <e> <k>@namespace</k> - <v>12113</v> + <v>12126</v> </e> <e> <k>@specialnamequalifyingelement</k> - <v>465</v> + <v>466</v> </e> <e> <k>@namequalifier</k> - <v>1570954</v> + <v>1516804</v> </e> <e> <k>@value</k> - <v>10760930</v> + <v>10777325</v> </e> <e> <k>@initialiser</k> - <v>1710236</v> + <v>1710241</v> </e> <e> <k>@address_of</k> @@ -466,15 +466,15 @@ </e> <e> <k>@indirect</k> - <v>292216</v> + <v>292663</v> </e> <e> <k>@array_to_pointer</k> - <v>1428793</v> + <v>1430922</v> </e> <e> <k>@parexpr</k> - <v>3582350</v> + <v>3587688</v> </e> <e> <k>@arithnegexpr</k> @@ -482,115 +482,115 @@ </e> <e> <k>@unaryplusexpr</k> - <v>2912</v> + <v>2916</v> </e> <e> <k>@complementexpr</k> - <v>27796</v> + <v>27839</v> </e> <e> <k>@notexpr</k> - <v>276021</v> + <v>276441</v> </e> <e> <k>@postincrexpr</k> - <v>61954</v> + <v>62049</v> </e> <e> <k>@postdecrexpr</k> - <v>41975</v> + <v>42038</v> </e> <e> <k>@preincrexpr</k> - <v>70470</v> + <v>70577</v> </e> <e> <k>@predecrexpr</k> - <v>26169</v> + <v>26209</v> </e> <e> <k>@conditionalexpr</k> - <v>656298</v> + <v>657276</v> </e> <e> <k>@addexpr</k> - <v>397812</v> + <v>398417</v> </e> <e> <k>@subexpr</k> - <v>340271</v> + <v>340778</v> </e> <e> <k>@mulexpr</k> - <v>305908</v> + <v>306374</v> </e> <e> <k>@divexpr</k> - <v>132972</v> + <v>133174</v> </e> <e> <k>@remexpr</k> - <v>15790</v> + <v>15622</v> </e> <e> <k>@paddexpr</k> - <v>86535</v> + <v>86667</v> </e> <e> <k>@psubexpr</k> - <v>49827</v> + <v>49903</v> </e> <e> <k>@pdiffexpr</k> - <v>35355</v> + <v>35197</v> </e> <e> <k>@lshiftexpr</k> - <v>565475</v> + <v>566336</v> </e> <e> <k>@rshiftexpr</k> - <v>140634</v> + <v>140848</v> </e> <e> <k>@andexpr</k> - <v>488341</v> + <v>489084</v> </e> <e> <k>@orexpr</k> - <v>145252</v> + <v>145473</v> </e> <e> <k>@xorexpr</k> - <v>54095</v> + <v>54178</v> </e> <e> <k>@eqexpr</k> - <v>469960</v> + <v>470677</v> </e> <e> <k>@neexpr</k> - <v>301236</v> + <v>301684</v> </e> <e> <k>@gtexpr</k> - <v>103895</v> + <v>104011</v> </e> <e> <k>@ltexpr</k> - <v>101565</v> + <v>101679</v> </e> <e> <k>@geexpr</k> - <v>59162</v> + <v>59252</v> </e> <e> <k>@leexpr</k> - <v>212214</v> + <v>212539</v> </e> <e> <k>@assignexpr</k> - <v>935582</v> + <v>937011</v> </e> <e> <k>@assignaddexpr</k> @@ -598,23 +598,23 @@ </e> <e> <k>@assignsubexpr</k> - <v>11183</v> + <v>11200</v> </e> <e> <k>@assignmulexpr</k> - <v>8246</v> + <v>8214</v> </e> <e> <k>@assigndivexpr</k> - <v>4986</v> + <v>4994</v> </e> <e> <k>@assignremexpr</k> - <v>417</v> + <v>414</v> </e> <e> <k>@assignlshiftexpr</k> - <v>2712</v> + <v>2716</v> </e> <e> <k>@assignrshiftexpr</k> @@ -622,43 +622,43 @@ </e> <e> <k>@assignandexpr</k> - <v>4819</v> + <v>4826</v> </e> <e> <k>@assignorexpr</k> - <v>23678</v> + <v>23654</v> </e> <e> <k>@assignxorexpr</k> - <v>21812</v> + <v>21845</v> </e> <e> <k>@assignpaddexpr</k> - <v>13608</v> + <v>13629</v> </e> <e> <k>@assignpsubexpr</k> - <v>1151</v> + <v>1152</v> </e> <e> <k>@andlogicalexpr</k> - <v>249586</v> + <v>249967</v> </e> <e> <k>@orlogicalexpr</k> - <v>864846</v> + <v>866161</v> </e> <e> <k>@commaexpr</k> - <v>123692</v> + <v>122776</v> </e> <e> <k>@subscriptexpr</k> - <v>365254</v> + <v>364887</v> </e> <e> <k>@callexpr</k> - <v>301901</v> + <v>316232</v> </e> <e> <k>@vastartexpr</k> @@ -666,51 +666,51 @@ </e> <e> <k>@vaargexpr</k> - <v>950</v> + <v>952</v> </e> <e> <k>@vaendexpr</k> - <v>2795</v> + <v>2798</v> </e> <e> <k>@vacopyexpr</k> - <v>140</v> + <v>139</v> </e> <e> <k>@varaccess</k> - <v>6020283</v> + <v>6029477</v> </e> <e> <k>@runtime_sizeof</k> - <v>295403</v> + <v>295853</v> </e> <e> <k>@runtime_alignof</k> - <v>49726</v> + <v>49198</v> </e> <e> <k>@expr_stmt</k> - <v>94249</v> + <v>94392</v> </e> <e> <k>@routineexpr</k> - <v>2925479</v> + <v>3151079</v> </e> <e> <k>@type_operand</k> - <v>1127108</v> + <v>1128821</v> </e> <e> <k>@offsetofexpr</k> - <v>19963</v> + <v>19994</v> </e> <e> <k>@typescompexpr</k> - <v>562954</v> + <v>563810</v> </e> <e> <k>@literal</k> - <v>4406828</v> + <v>4406917</v> </e> <e> <k>@aggregateliteral</k> @@ -718,31 +718,31 @@ </e> <e> <k>@c_style_cast</k> - <v>4210119</v> + <v>4210103</v> </e> <e> <k>@temp_init</k> - <v>825128</v> + <v>796653</v> </e> <e> <k>@errorexpr</k> - <v>46737</v> + <v>46241</v> </e> <e> <k>@reference_to</k> - <v>1587202</v> + <v>1570260</v> </e> <e> <k>@ref_indirect</k> - <v>1932263</v> + <v>1906893</v> </e> <e> <k>@vacuous_destructor_call</k> - <v>8123</v> + <v>8037</v> </e> <e> <k>@assume</k> - <v>3230</v> + <v>3231</v> </e> <e> <k>@conjugation</k> @@ -794,35 +794,35 @@ </e> <e> <k>@thisaccess</k> - <v>1117234</v> + <v>1117586</v> </e> <e> <k>@new_expr</k> - <v>47510</v> + <v>47006</v> </e> <e> <k>@delete_expr</k> - <v>11710</v> + <v>11621</v> </e> <e> <k>@throw_expr</k> - <v>21143</v> + <v>21061</v> </e> <e> <k>@condition_decl</k> - <v>42306</v> + <v>40853</v> </e> <e> <k>@braced_init_list</k> - <v>1105</v> + <v>1067</v> </e> <e> <k>@type_id</k> - <v>36362</v> + <v>35977</v> </e> <e> <k>@sizeof_pack</k> - <v>5590</v> + <v>5597</v> </e> <e> <k>@hasassignexpr</k> @@ -878,19 +878,19 @@ </e> <e> <k>@isconvtoexpr</k> - <v>208</v> + <v>207</v> </e> <e> <k>@isemptyexpr</k> - <v>1477</v> + <v>1461</v> </e> <e> <k>@isenumexpr</k> - <v>521</v> + <v>517</v> </e> <e> <k>@ispodexpr</k> - <v>617</v> + <v>615</v> </e> <e> <k>@ispolyexpr</k> @@ -906,7 +906,7 @@ </e> <e> <k>@hastrivialdestructor</k> - <v>465</v> + <v>466</v> </e> <e> <k>@uuidof</k> @@ -914,7 +914,7 @@ </e> <e> <k>@delete_array_expr</k> - <v>1370</v> + <v>1365</v> </e> <e> <k>@new_array_expr</k> @@ -926,55 +926,55 @@ </e> <e> <k>@ctordirectinit</k> - <v>112605</v> + <v>111410</v> </e> <e> <k>@ctorvirtualinit</k> - <v>6347</v> + <v>6322</v> </e> <e> <k>@ctorfieldinit</k> - <v>200453</v> + <v>198326</v> </e> <e> <k>@ctordelegatinginit</k> - <v>3340</v> + <v>3305</v> </e> <e> <k>@dtordirectdestruct</k> - <v>41638</v> + <v>41231</v> </e> <e> <k>@dtorvirtualdestruct</k> - <v>4114</v> + <v>4070</v> </e> <e> <k>@dtorfielddestruct</k> - <v>41567</v> + <v>41126</v> </e> <e> <k>@static_cast</k> - <v>215292</v> + <v>214451</v> </e> <e> <k>@reinterpret_cast</k> - <v>30975</v> + <v>30745</v> </e> <e> <k>@const_cast</k> - <v>35251</v> + <v>34990</v> </e> <e> <k>@dynamic_cast</k> - <v>1011</v> + <v>1007</v> </e> <e> <k>@lambdaexpr</k> - <v>21431</v> + <v>21455</v> </e> <e> <k>@param_ref</k> - <v>244956</v> + <v>236428</v> </e> <e> <k>@noopexpr</k> @@ -982,7 +982,7 @@ </e> <e> <k>@istriviallyconstructibleexpr</k> - <v>1355</v> + <v>1345</v> </e> <e> <k>@isdestructibleexpr</k> @@ -994,7 +994,7 @@ </e> <e> <k>@istriviallydestructibleexpr</k> - <v>834</v> + <v>828</v> </e> <e> <k>@istriviallyassignableexpr</k> @@ -1002,11 +1002,11 @@ </e> <e> <k>@isnothrowassignableexpr</k> - <v>4171</v> + <v>4140</v> </e> <e> <k>@istrivialexpr</k> - <v>931</v> + <v>932</v> </e> <e> <k>@isstandardlayoutexpr</k> @@ -1014,7 +1014,7 @@ </e> <e> <k>@istriviallycopyableexpr</k> - <v>3727</v> + <v>3731</v> </e> <e> <k>@isliteraltypeexpr</k> @@ -1034,11 +1034,11 @@ </e> <e> <k>@isconstructibleexpr</k> - <v>465</v> + <v>466</v> </e> <e> <k>@isnothrowconstructibleexpr</k> - <v>14392</v> + <v>14285</v> </e> <e> <k>@hasfinalizerexpr</k> @@ -1074,11 +1074,11 @@ </e> <e> <k>@isfinalexpr</k> - <v>1688</v> + <v>1670</v> </e> <e> <k>@noexceptexpr</k> - <v>25664</v> + <v>24725</v> </e> <e> <k>@builtinshufflevector</k> @@ -1086,11 +1086,11 @@ </e> <e> <k>@builtinchooseexpr</k> - <v>9051</v> + <v>9065</v> </e> <e> <k>@builtinaddressof</k> - <v>13258</v> + <v>13117</v> </e> <e> <k>@vec_fill</k> @@ -1134,7 +1134,7 @@ </e> <e> <k>@builtinshuffle</k> - <v>1909</v> + <v>1902</v> </e> <e> <k>@blockassignexpr</k> @@ -1248,77 +1248,81 @@ <k>@isvolatile</k> <v>2</v> </e> + <e> + <k>@reuseexpr</k> + <v>331632</v> + </e> <e> <k>@lambdacapture</k> - <v>27953</v> + <v>27985</v> </e> <e> <k>@stmt_expr</k> - <v>1483845</v> + <v>1486111</v> </e> <e> <k>@stmt_if</k> - <v>724849</v> + <v>725956</v> </e> <e> <k>@stmt_while</k> - <v>29345</v> + <v>29152</v> </e> <e> <k>@stmt_goto</k> - <v>110529</v> + <v>110697</v> </e> <e> <k>@stmt_label</k> - <v>53064</v> + <v>53145</v> </e> <e> <k>@stmt_return</k> - <v>1283546</v> + <v>1284984</v> </e> <e> <k>@stmt_block</k> - <v>1422383</v> + <v>1423977</v> </e> <e> <k>@stmt_end_test_while</k> - <v>148655</v> + <v>148882</v> </e> <e> <k>@stmt_for</k> - <v>61466</v> + <v>61560</v> </e> <e> <k>@stmt_switch_case</k> - <v>209046</v> + <v>201865</v> </e> <e> <k>@stmt_switch</k> - <v>20756</v> + <v>20788</v> </e> <e> <k>@stmt_asm</k> - <v>109821</v> + <v>109989</v> </e> <e> <k>@stmt_decl</k> - <v>591603</v> + <v>589211</v> </e> <e> <k>@stmt_empty</k> - <v>192088</v> + <v>191899</v> </e> <e> <k>@stmt_continue</k> - <v>22529</v> + <v>22563</v> </e> <e> <k>@stmt_break</k> - <v>103194</v> + <v>103183</v> </e> <e> <k>@stmt_try_block</k> - <v>46788</v> + <v>45181</v> </e> <e> <k>@stmt_microsoft_try</k> @@ -1334,19 +1338,19 @@ </e> <e> <k>@stmt_assigned_goto</k> - <v>9062</v> + <v>9076</v> </e> <e> <k>@stmt_range_based_for</k> - <v>8386</v> + <v>8395</v> </e> <e> <k>@stmt_handler</k> - <v>65128</v> + <v>62891</v> </e> <e> <k>@stmt_constexpr_if</k> - <v>52355</v> + <v>52071</v> </e> <e> <k>@stmt_co_return</k> @@ -1354,55 +1358,55 @@ </e> <e> <k>@ppd_if</k> - <v>665766</v> + <v>666512</v> </e> <e> <k>@ppd_ifdef</k> - <v>262765</v> + <v>263060</v> </e> <e> <k>@ppd_ifndef</k> - <v>266027</v> + <v>266325</v> </e> <e> <k>@ppd_elif</k> - <v>25158</v> + <v>25186</v> </e> <e> <k>@ppd_else</k> - <v>208721</v> + <v>208955</v> </e> <e> <k>@ppd_endif</k> - <v>1194559</v> + <v>1195898</v> </e> <e> <k>@ppd_plain_include</k> - <v>310753</v> + <v>311101</v> </e> <e> <k>@ppd_define</k> - <v>2426503</v> + <v>2408524</v> </e> <e> <k>@ppd_undef</k> - <v>258106</v> + <v>258396</v> </e> <e> <k>@ppd_include_next</k> - <v>1863</v> + <v>1865</v> </e> <e> <k>@ppd_line</k> - <v>27580</v> + <v>27551</v> </e> <e> <k>@ppd_error</k> - <v>104</v> + <v>103</v> </e> <e> <k>@ppd_pragma</k> - <v>314133</v> + <v>311805</v> </e> <e> <k>@ppd_objc_import</k> @@ -1414,7 +1418,7 @@ </e> <e> <k>@link_target</k> - <v>848</v> + <v>819</v> </e> <e> <k>@xmldtd</k> @@ -1444,11 +1448,11 @@ <stats> <relation> <name>compilations</name> - <cardinality>9695</cardinality> + <cardinality>9657</cardinality> <columnsizes> <e> <k>id</k> - <v>9695</v> + <v>9657</v> </e> <e> <k>cwd</k> @@ -1466,7 +1470,7 @@ <b> <a>1</a> <b>2</b> - <v>9695</v> + <v>9657</v> </b> </bs> </hist> @@ -1492,19 +1496,19 @@ </relation> <relation> <name>compilation_args</name> - <cardinality>651597</cardinality> + <cardinality>652589</cardinality> <columnsizes> <e> <k>id</k> - <v>5506</v> + <v>5514</v> </e> <e> <k>num</k> - <v>708</v> + <v>709</v> </e> <e> <k>arg</k> - <v>34410</v> + <v>34463</v> </e> </columnsizes> <dependencies> @@ -1523,12 +1527,12 @@ <b> <a>71</a> <b>102</b> - <v>274</v> + <v>275</v> </b> <b> <a>126</a> <b>127</b> - <v>3862</v> + <v>3868</v> </b> <b> <a>127</a> @@ -1538,7 +1542,7 @@ <b> <a>131</a> <b>132</b> - <v>813</v> + <v>815</v> </b> <b> <a>134</a> @@ -1564,12 +1568,12 @@ <b> <a>57</a> <b>106</b> - <v>290</v> + <v>291</v> </b> <b> <a>106</a> <b>107</b> - <v>3825</v> + <v>3831</v> </b> <b> <a>107</a> @@ -1579,7 +1583,7 @@ <b> <a>109</a> <b>110</b> - <v>813</v> + <v>815</v> </b> <b> <a>111</a> @@ -1625,12 +1629,12 @@ <b> <a>970</a> <b>989</b> - <v>36</v> + <v>37</v> </b> <b> <a>999</a> <b>1000</b> - <v>73</v> + <v>74</v> </b> <b> <a>1001</a> @@ -1742,12 +1746,12 @@ <b> <a>1</a> <b>2</b> - <v>32350</v> + <v>32399</v> </b> <b> <a>2</a> <b>1043</b> - <v>2060</v> + <v>2063</v> </b> </bs> </hist> @@ -1763,12 +1767,12 @@ <b> <a>1</a> <b>2</b> - <v>33206</v> + <v>33256</v> </b> <b> <a>2</a> <b>56</b> - <v>1204</v> + <v>1206</v> </b> </bs> </hist> @@ -1778,19 +1782,19 @@ </relation> <relation> <name>compilation_compiling_files</name> - <cardinality>11529</cardinality> + <cardinality>11546</cardinality> <columnsizes> <e> <k>id</k> - <v>1994</v> + <v>1997</v> </e> <e> <k>num</k> - <v>3311</v> + <v>3316</v> </e> <e> <k>file</k> - <v>10013</v> + <v>10028</v> </e> </columnsizes> <dependencies> @@ -1804,7 +1808,7 @@ <b> <a>1</a> <b>2</b> - <v>997</v> + <v>998</v> </b> <b> <a>2</a> @@ -1855,7 +1859,7 @@ <b> <a>1</a> <b>2</b> - <v>997</v> + <v>998</v> </b> <b> <a>2</a> @@ -1906,12 +1910,12 @@ <b> <a>1</a> <b>2</b> - <v>1755</v> + <v>1757</v> </b> <b> <a>2</a> <b>3</b> - <v>718</v> + <v>719</v> </b> <b> <a>3</a> @@ -1942,12 +1946,12 @@ <b> <a>1</a> <b>2</b> - <v>1755</v> + <v>1757</v> </b> <b> <a>2</a> <b>3</b> - <v>718</v> + <v>719</v> </b> <b> <a>3</a> @@ -1978,12 +1982,12 @@ <b> <a>1</a> <b>2</b> - <v>9015</v> + <v>9029</v> </b> <b> <a>2</a> <b>4</b> - <v>837</v> + <v>839</v> </b> <b> <a>4</a> @@ -2004,12 +2008,12 @@ <b> <a>1</a> <b>2</b> - <v>9175</v> + <v>9189</v> </b> <b> <a>2</a> <b>4</b> - <v>797</v> + <v>799</v> </b> <b> <a>4</a> @@ -2024,15 +2028,15 @@ </relation> <relation> <name>compilation_time</name> - <cardinality>46116</cardinality> + <cardinality>46187</cardinality> <columnsizes> <e> <k>id</k> - <v>1994</v> + <v>1997</v> </e> <e> <k>num</k> - <v>3311</v> + <v>3316</v> </e> <e> <k>kind</k> @@ -2040,7 +2044,7 @@ </e> <e> <k>seconds</k> - <v>9933</v> + <v>9828</v> </e> </columnsizes> <dependencies> @@ -2054,7 +2058,7 @@ <b> <a>1</a> <b>2</b> - <v>997</v> + <v>998</v> </b> <b> <a>2</a> @@ -2105,7 +2109,7 @@ <b> <a>4</a> <b>5</b> - <v>1994</v> + <v>1997</v> </b> </bs> </hist> @@ -2121,51 +2125,46 @@ <b> <a>3</a> <b>4</b> - <v>359</v> + <v>719</v> </b> <b> <a>4</a> <b>5</b> - <v>638</v> + <v>279</v> </b> <b> - <a>6</a> + <a>5</a> <b>8</b> <v>159</v> </b> <b> - <a>8</a> + <a>9</a> <b>10</b> - <v>79</v> + <v>159</v> </b> <b> <a>10</a> - <b>11</b> - <v>119</v> - </b> - <b> - <a>11</a> - <b>13</b> + <b>12</b> <v>159</v> </b> <b> - <a>14</a> - <b>17</b> + <a>12</a> + <b>16</b> <v>119</v> </b> <b> - <a>17</a> - <b>19</b> - <v>119</v> - </b> - <b> - <a>20</a> - <b>41</b> + <a>16</a> + <b>18</b> <v>159</v> </b> <b> - <a>52</a> - <b>102</b> + <a>19</a> + <b>43</b> + <v>159</v> + </b> + <b> + <a>57</a> + <b>92</b> <v>79</v> </b> </bs> @@ -2182,12 +2181,12 @@ <b> <a>1</a> <b>2</b> - <v>1755</v> + <v>1757</v> </b> <b> <a>2</a> <b>3</b> - <v>718</v> + <v>719</v> </b> <b> <a>3</a> @@ -2218,7 +2217,7 @@ <b> <a>4</a> <b>5</b> - <v>3311</v> + <v>3316</v> </b> </bs> </hist> @@ -2234,12 +2233,12 @@ <b> <a>3</a> <b>4</b> - <v>837</v> + <v>1478</v> </b> <b> <a>4</a> <b>5</b> - <v>917</v> + <v>279</v> </b> <b> <a>5</a> @@ -2249,33 +2248,28 @@ <b> <a>6</a> <b>7</b> - <v>199</v> + <v>439</v> </b> <b> <a>7</a> <b>8</b> - <v>319</v> + <v>119</v> </b> <b> <a>8</a> <b>9</b> - <v>79</v> + <v>199</v> </b> <b> <a>9</a> - <b>11</b> + <b>23</b> <v>279</v> </b> <b> - <a>11</a> - <b>29</b> + <a>24</a> + <b>90</b> <v>279</v> </b> - <b> - <a>32</a> - <b>93</b> - <v>159</v> - </b> </bs> </hist> </val> @@ -2335,8 +2329,8 @@ <v>39</v> </b> <b> - <a>156</a> - <b>157</b> + <a>146</a> + <b>147</b> <v>39</v> </b> </bs> @@ -2353,27 +2347,27 @@ <b> <a>1</a> <b>2</b> - <v>4946</v> + <v>4834</v> </b> <b> <a>2</a> <b>3</b> - <v>2473</v> + <v>2557</v> </b> <b> <a>3</a> <b>4</b> - <v>1436</v> + <v>1238</v> </b> <b> <a>4</a> <b>5</b> - <v>757</v> + <v>719</v> </b> <b> <a>5</a> <b>46</b> - <v>319</v> + <v>479</v> </b> </bs> </hist> @@ -2389,32 +2383,32 @@ <b> <a>1</a> <b>2</b> - <v>4667</v> + <v>4474</v> </b> <b> <a>2</a> <b>3</b> - <v>1914</v> + <v>2197</v> </b> <b> <a>3</a> <b>4</b> - <v>1476</v> + <v>1318</v> </b> <b> <a>4</a> <b>5</b> - <v>997</v> + <v>679</v> </b> <b> <a>5</a> - <b>10</b> - <v>757</v> + <b>7</b> + <v>799</v> </b> <b> - <a>43</a> - <b>75</b> - <v>119</v> + <a>7</a> + <b>76</b> + <v>359</v> </b> </bs> </hist> @@ -2430,12 +2424,12 @@ <b> <a>1</a> <b>2</b> - <v>7938</v> + <v>8110</v> </b> <b> <a>2</a> <b>3</b> - <v>1994</v> + <v>1718</v> </b> </bs> </hist> @@ -2445,15 +2439,15 @@ </relation> <relation> <name>diagnostic_for</name> - <cardinality>5665</cardinality> + <cardinality>5471</cardinality> <columnsizes> <e> <k>diagnostic</k> - <v>5192</v> + <v>5013</v> </e> <e> <k>compilation</k> - <v>848</v> + <v>819</v> </e> <e> <k>file_number</k> @@ -2461,7 +2455,7 @@ </e> <e> <k>file_number_diagnostic_number</k> - <v>414</v> + <v>400</v> </e> </columnsizes> <dependencies> @@ -2475,12 +2469,12 @@ <b> <a>1</a> <b>2</b> - <v>5034</v> + <v>4861</v> </b> <b> <a>2</a> <b>7</b> - <v>157</v> + <v>152</v> </b> </bs> </hist> @@ -2496,7 +2490,7 @@ <b> <a>1</a> <b>2</b> - <v>5192</v> + <v>5013</v> </b> </bs> </hist> @@ -2512,7 +2506,7 @@ <b> <a>1</a> <b>2</b> - <v>5192</v> + <v>5013</v> </b> </bs> </hist> @@ -2528,27 +2522,27 @@ <b> <a>5</a> <b>6</b> - <v>631</v> + <v>610</v> </b> <b> <a>7</a> <b>8</b> - <v>78</v> + <v>76</v> </b> <b> <a>9</a> <b>12</b> - <v>59</v> + <v>57</v> </b> <b> <a>13</a> <b>16</b> - <v>39</v> + <v>38</v> </b> <b> <a>21</a> <b>22</b> - <v>39</v> + <v>38</v> </b> </bs> </hist> @@ -2564,7 +2558,7 @@ <b> <a>1</a> <b>2</b> - <v>848</v> + <v>819</v> </b> </bs> </hist> @@ -2580,27 +2574,27 @@ <b> <a>5</a> <b>6</b> - <v>631</v> + <v>610</v> </b> <b> <a>7</a> <b>8</b> - <v>78</v> + <v>76</v> </b> <b> <a>9</a> <b>12</b> - <v>59</v> + <v>57</v> </b> <b> <a>13</a> <b>16</b> - <v>39</v> + <v>38</v> </b> <b> <a>21</a> <b>22</b> - <v>39</v> + <v>38</v> </b> </bs> </hist> @@ -2664,37 +2658,37 @@ <b> <a>2</a> <b>3</b> - <v>118</v> + <v>114</v> </b> <b> <a>3</a> <b>4</b> - <v>39</v> + <v>38</v> </b> <b> <a>4</a> <b>5</b> - <v>39</v> + <v>38</v> </b> <b> <a>5</a> <b>6</b> - <v>39</v> + <v>38</v> </b> <b> <a>7</a> <b>8</b> - <v>39</v> + <v>38</v> </b> <b> <a>11</a> <b>12</b> - <v>39</v> + <v>38</v> </b> <b> <a>37</a> <b>38</b> - <v>78</v> + <v>76</v> </b> <b> <a>43</a> @@ -2715,37 +2709,37 @@ <b> <a>2</a> <b>3</b> - <v>118</v> + <v>114</v> </b> <b> <a>3</a> <b>4</b> - <v>39</v> + <v>38</v> </b> <b> <a>4</a> <b>5</b> - <v>39</v> + <v>38</v> </b> <b> <a>5</a> <b>6</b> - <v>39</v> + <v>38</v> </b> <b> <a>7</a> <b>8</b> - <v>39</v> + <v>38</v> </b> <b> <a>11</a> <b>12</b> - <v>39</v> + <v>38</v> </b> <b> <a>43</a> <b>44</b> - <v>98</v> + <v>95</v> </b> </bs> </hist> @@ -2761,7 +2755,7 @@ <b> <a>1</a> <b>2</b> - <v>414</v> + <v>400</v> </b> </bs> </hist> @@ -2771,19 +2765,19 @@ </relation> <relation> <name>compilation_finished</name> - <cardinality>9695</cardinality> + <cardinality>9657</cardinality> <columnsizes> <e> <k>id</k> - <v>9695</v> + <v>9657</v> </e> <e> <k>cpu_seconds</k> - <v>7190</v> + <v>7330</v> </e> <e> <k>elapsed_seconds</k> - <v>146</v> + <v>145</v> </e> </columnsizes> <dependencies> @@ -2797,7 +2791,7 @@ <b> <a>1</a> <b>2</b> - <v>9695</v> + <v>9657</v> </b> </bs> </hist> @@ -2813,7 +2807,7 @@ <b> <a>1</a> <b>2</b> - <v>9695</v> + <v>9657</v> </b> </bs> </hist> @@ -2829,17 +2823,17 @@ <b> <a>1</a> <b>2</b> - <v>5864</v> + <v>6054</v> </b> <b> <a>2</a> <b>3</b> - <v>831</v> + <v>850</v> </b> <b> <a>3</a> - <b>17</b> - <v>494</v> + <b>20</b> + <v>425</v> </b> </bs> </hist> @@ -2855,12 +2849,12 @@ <b> <a>1</a> <b>2</b> - <v>6561</v> + <v>6692</v> </b> <b> <a>2</a> <b>3</b> - <v>629</v> + <v>637</v> </b> </bs> </hist> @@ -2876,26 +2870,21 @@ <b> <a>1</a> <b>2</b> - <v>22</v> + <v>11</v> </b> <b> <a>2</a> <b>3</b> - <v>11</v> + <v>33</v> </b> <b> - <a>3</a> - <b>4</b> + <a>7</a> + <b>8</b> <v>22</v> </b> <b> - <a>6</a> - <b>7</b> - <v>11</v> - </b> - <b> - <a>10</a> - <b>11</b> + <a>11</a> + <b>12</b> <v>11</v> </b> <b> @@ -2904,28 +2893,28 @@ <v>11</v> </b> <b> - <a>46</a> - <b>47</b> + <a>52</a> + <b>53</b> <v>11</v> </b> <b> - <a>159</a> - <b>160</b> + <a>161</a> + <b>162</b> <v>11</v> </b> <b> - <a>165</a> - <b>166</b> + <a>163</a> + <b>164</b> <v>11</v> </b> <b> - <a>204</a> - <b>205</b> + <a>184</a> + <b>185</b> <v>11</v> </b> <b> - <a>251</a> - <b>252</b> + <a>259</a> + <b>260</b> <v>11</v> </b> </bs> @@ -2942,26 +2931,21 @@ <b> <a>1</a> <b>2</b> - <v>22</v> + <v>11</v> </b> <b> <a>2</a> <b>3</b> - <v>11</v> + <v>33</v> </b> <b> - <a>3</a> - <b>4</b> + <a>7</a> + <b>8</b> <v>22</v> </b> <b> - <a>6</a> - <b>7</b> - <v>11</v> - </b> - <b> - <a>10</a> - <b>11</b> + <a>11</a> + <b>12</b> <v>11</v> </b> <b> @@ -2970,13 +2954,13 @@ <v>11</v> </b> <b> - <a>44</a> - <b>45</b> + <a>52</a> + <b>53</b> <v>11</v> </b> <b> - <a>116</a> - <b>117</b> + <a>115</a> + <b>116</b> <v>11</v> </b> <b> @@ -2985,13 +2969,13 @@ <v>11</v> </b> <b> - <a>148</a> - <b>149</b> + <a>140</a> + <b>141</b> <v>11</v> </b> <b> - <a>231</a> - <b>232</b> + <a>242</a> + <b>243</b> <v>11</v> </b> </bs> @@ -3218,11 +3202,11 @@ </relation> <relation> <name>sourceLocationPrefix</name> - <cardinality>465</cardinality> + <cardinality>466</cardinality> <columnsizes> <e> <k>prefix</k> - <v>465</v> + <v>466</v> </e> </columnsizes> <dependencies/> @@ -4716,15 +4700,15 @@ </relation> <relation> <name>extractor_version</name> - <cardinality>465</cardinality> + <cardinality>466</cardinality> <columnsizes> <e> <k>codeql_version</k> - <v>465</v> + <v>466</v> </e> <e> <k>frontend_version</k> - <v>465</v> + <v>466</v> </e> </columnsizes> <dependencies> @@ -4738,7 +4722,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -4754,7 +4738,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -4764,31 +4748,31 @@ </relation> <relation> <name>locations_default</name> - <cardinality>29753112</cardinality> + <cardinality>29786456</cardinality> <columnsizes> <e> <k>id</k> - <v>29753112</v> + <v>29786456</v> </e> <e> <k>container</k> - <v>122996</v> + <v>123134</v> </e> <e> <k>startLine</k> - <v>2090945</v> + <v>2093288</v> </e> <e> <k>startColumn</k> - <v>36805</v> + <v>36847</v> </e> <e> <k>endLine</k> - <v>2095138</v> + <v>2097486</v> </e> <e> <k>endColumn</k> - <v>47987</v> + <v>48041</v> </e> </columnsizes> <dependencies> @@ -4802,7 +4786,7 @@ <b> <a>1</a> <b>2</b> - <v>29753112</v> + <v>29786456</v> </b> </bs> </hist> @@ -4818,7 +4802,7 @@ <b> <a>1</a> <b>2</b> - <v>29753112</v> + <v>29786456</v> </b> </bs> </hist> @@ -4834,7 +4818,7 @@ <b> <a>1</a> <b>2</b> - <v>29753112</v> + <v>29786456</v> </b> </bs> </hist> @@ -4850,7 +4834,7 @@ <b> <a>1</a> <b>2</b> - <v>29753112</v> + <v>29786456</v> </b> </bs> </hist> @@ -4866,7 +4850,7 @@ <b> <a>1</a> <b>2</b> - <v>29753112</v> + <v>29786456</v> </b> </bs> </hist> @@ -4882,67 +4866,67 @@ <b> <a>1</a> <b>11</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>11</a> <b>18</b> - <v>10249</v> + <v>10261</v> </b> <b> <a>18</a> <b>30</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>30</a> <b>42</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>43</a> <b>61</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>61</a> <b>79</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>80</a> <b>106</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>109</a> <b>149</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>149</a> <b>199</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>206</a> <b>292</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>305</a> <b>469</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>482</a> <b>850</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>939</a> <b>2380</b> - <v>8386</v> + <v>8395</v> </b> </bs> </hist> @@ -4958,72 +4942,72 @@ <b> <a>1</a> <b>8</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>8</a> <b>13</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>13</a> <b>20</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>20</a> <b>32</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>32</a> <b>43</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>44</a> <b>61</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>62</a> <b>72</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>73</a> <b>93</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>97</a> <b>128</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>128</a> <b>180</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>180</a> <b>267</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>277</a> <b>414</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>439</a> <b>1465</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>1557</a> <b>1569</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -5039,67 +5023,67 @@ <b> <a>1</a> <b>4</b> - <v>8852</v> + <v>8861</v> </b> <b> <a>4</a> <b>5</b> - <v>7920</v> + <v>7929</v> </b> <b> <a>5</a> <b>6</b> - <v>7454</v> + <v>7462</v> </b> <b> <a>6</a> <b>8</b> - <v>11181</v> + <v>11194</v> </b> <b> <a>8</a> <b>10</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>10</a> <b>15</b> - <v>10715</v> + <v>10727</v> </b> <b> <a>15</a> <b>23</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>23</a> <b>28</b> - <v>11181</v> + <v>11194</v> </b> <b> <a>28</a> <b>34</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>34</a> <b>44</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>44</a> <b>55</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>55</a> <b>66</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>66</a> <b>77</b> - <v>8386</v> + <v>8395</v> </b> </bs> </hist> @@ -5115,72 +5099,72 @@ <b> <a>1</a> <b>8</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>8</a> <b>13</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>13</a> <b>20</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>20</a> <b>32</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>32</a> <b>43</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>43</a> <b>60</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>61</a> <b>71</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>72</a> <b>93</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>94</a> <b>127</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>128</a> <b>179</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>180</a> <b>268</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>278</a> <b>413</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>437</a> <b>1465</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>1554</a> <b>1566</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -5196,67 +5180,67 @@ <b> <a>1</a> <b>9</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>9</a> <b>13</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>13</a> <b>18</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>18</a> <b>26</b> - <v>10249</v> + <v>10261</v> </b> <b> <a>27</a> <b>33</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>33</a> <b>39</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>39</a> <b>47</b> - <v>10249</v> + <v>10261</v> </b> <b> <a>47</a> <b>54</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>54</a> <b>60</b> - <v>10249</v> + <v>10261</v> </b> <b> <a>60</a> <b>66</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>66</a> <b>74</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>74</a> <b>78</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>78</a> <b>90</b> - <v>6988</v> + <v>6996</v> </b> </bs> </hist> @@ -5272,52 +5256,52 @@ <b> <a>1</a> <b>2</b> - <v>580507</v> + <v>581158</v> </b> <b> <a>2</a> <b>3</b> - <v>314480</v> + <v>314832</v> </b> <b> <a>3</a> <b>4</b> - <v>194744</v> + <v>194963</v> </b> <b> <a>4</a> <b>6</b> - <v>162132</v> + <v>162313</v> </b> <b> <a>6</a> <b>10</b> - <v>183097</v> + <v>183302</v> </b> <b> <a>10</a> <b>16</b> - <v>161666</v> + <v>161847</v> </b> <b> <a>16</a> <b>25</b> - <v>168188</v> + <v>168377</v> </b> <b> <a>25</a> <b>45</b> - <v>157007</v> + <v>157183</v> </b> <b> <a>45</a> <b>160</b> - <v>157473</v> + <v>157649</v> </b> <b> <a>160</a> <b>265</b> - <v>11647</v> + <v>11660</v> </b> </bs> </hist> @@ -5333,42 +5317,42 @@ <b> <a>1</a> <b>2</b> - <v>869363</v> + <v>870338</v> </b> <b> <a>2</a> <b>3</b> - <v>273015</v> + <v>273321</v> </b> <b> <a>3</a> <b>5</b> - <v>193347</v> + <v>193563</v> </b> <b> <a>5</a> <b>8</b> - <v>173313</v> + <v>173507</v> </b> <b> <a>8</a> <b>13</b> - <v>187756</v> + <v>187966</v> </b> <b> <a>13</a> <b>20</b> - <v>160734</v> + <v>160914</v> </b> <b> <a>20</a> <b>51</b> - <v>159336</v> + <v>159515</v> </b> <b> <a>51</a> <b>265</b> - <v>74077</v> + <v>74160</v> </b> </bs> </hist> @@ -5384,47 +5368,47 @@ <b> <a>1</a> <b>2</b> - <v>610790</v> + <v>611475</v> </b> <b> <a>2</a> <b>3</b> - <v>312616</v> + <v>312967</v> </b> <b> <a>3</a> <b>4</b> - <v>198006</v> + <v>198228</v> </b> <b> <a>4</a> <b>6</b> - <v>182631</v> + <v>182836</v> </b> <b> <a>6</a> <b>9</b> - <v>172847</v> + <v>173041</v> </b> <b> <a>9</a> <b>13</b> - <v>163063</v> + <v>163246</v> </b> <b> <a>13</a> <b>19</b> - <v>173779</v> + <v>173974</v> </b> <b> <a>19</a> <b>29</b> - <v>164927</v> + <v>165112</v> </b> <b> <a>29</a> <b>52</b> - <v>112281</v> + <v>112407</v> </b> </bs> </hist> @@ -5440,22 +5424,22 @@ <b> <a>1</a> <b>2</b> - <v>1528607</v> + <v>1530321</v> </b> <b> <a>2</a> <b>3</b> - <v>348025</v> + <v>348415</v> </b> <b> <a>3</a> <b>5</b> - <v>161666</v> + <v>161847</v> </b> <b> <a>5</a> <b>16</b> - <v>52646</v> + <v>52705</v> </b> </bs> </hist> @@ -5471,47 +5455,47 @@ <b> <a>1</a> <b>2</b> - <v>585166</v> + <v>585822</v> </b> <b> <a>2</a> <b>3</b> - <v>315878</v> + <v>316232</v> </b> <b> <a>3</a> <b>4</b> - <v>197540</v> + <v>197761</v> </b> <b> <a>4</a> <b>6</b> - <v>168188</v> + <v>168377</v> </b> <b> <a>6</a> <b>10</b> - <v>191483</v> + <v>191698</v> </b> <b> <a>10</a> <b>15</b> - <v>165393</v> + <v>165578</v> </b> <b> <a>15</a> <b>22</b> - <v>167722</v> + <v>167910</v> </b> <b> <a>22</a> <b>34</b> - <v>163995</v> + <v>164179</v> </b> <b> <a>34</a> <b>66</b> - <v>135576</v> + <v>135727</v> </b> </bs> </hist> @@ -5527,72 +5511,72 @@ <b> <a>1</a> <b>31</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>42</a> <b>85</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>86</a> <b>128</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>129</a> <b>229</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>247</a> <b>286</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>291</a> <b>360</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>373</a> <b>457</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>475</a> <b>565</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>566</a> <b>620</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>623</a> <b>689</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>696</a> <b>807</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>820</a> <b>1563</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>1638</a> <b>5632</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>15295</a> <b>15296</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -5608,67 +5592,67 @@ <b> <a>1</a> <b>18</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>23</a> <b>35</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>38</a> <b>43</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>44</a> <b>61</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>65</a> <b>73</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>73</a> <b>84</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>84</a> <b>96</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>96</a> <b>101</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>101</a> <b>105</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>107</a> <b>112</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>112</a> <b>126</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>137</a> <b>170</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>195</a> <b>265</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -5684,72 +5668,72 @@ <b> <a>1</a> <b>19</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>30</a> <b>72</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>83</a> <b>122</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>122</a> <b>205</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>214</a> <b>261</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>265</a> <b>322</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>322</a> <b>379</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>404</a> <b>430</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>453</a> <b>474</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>478</a> <b>505</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>511</a> <b>583</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>585</a> <b>836</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>1104</a> <b>2196</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>2387</a> <b>2388</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -5765,72 +5749,72 @@ <b> <a>1</a> <b>19</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>30</a> <b>72</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>83</a> <b>122</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>122</a> <b>205</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>214</a> <b>261</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>265</a> <b>322</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>322</a> <b>380</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>404</a> <b>430</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>453</a> <b>474</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>477</a> <b>504</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>514</a> <b>582</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>585</a> <b>835</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>1109</a> <b>2203</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>2382</a> <b>2383</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -5846,67 +5830,67 @@ <b> <a>1</a> <b>7</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>7</a> <b>11</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>11</a> <b>16</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>16</a> <b>22</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>22</a> <b>24</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>24</a> <b>28</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>29</a> <b>34</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>34</a> <b>41</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>41</a> <b>46</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>47</a> <b>49</b> - <v>1863</v> + <v>1865</v> </b> <b> <a>49</a> <b>54</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>54</a> <b>74</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>75</a> <b>86</b> - <v>1863</v> + <v>1865</v> </b> </bs> </hist> @@ -5922,52 +5906,52 @@ <b> <a>1</a> <b>2</b> - <v>590757</v> + <v>591419</v> </b> <b> <a>2</a> <b>3</b> - <v>306560</v> + <v>306903</v> </b> <b> <a>3</a> <b>4</b> - <v>198006</v> + <v>198228</v> </b> <b> <a>4</a> <b>6</b> - <v>159336</v> + <v>159515</v> </b> <b> <a>6</a> <b>10</b> - <v>182631</v> + <v>182836</v> </b> <b> <a>10</a> <b>16</b> - <v>160268</v> + <v>160448</v> </b> <b> <a>16</a> <b>25</b> - <v>170518</v> + <v>170709</v> </b> <b> <a>25</a> <b>45</b> - <v>157939</v> + <v>158116</v> </b> <b> <a>45</a> <b>160</b> - <v>157939</v> + <v>158116</v> </b> <b> <a>160</a> <b>265</b> - <v>11181</v> + <v>11194</v> </b> </bs> </hist> @@ -5983,47 +5967,47 @@ <b> <a>1</a> <b>2</b> - <v>884738</v> + <v>885729</v> </b> <b> <a>2</a> <b>3</b> - <v>259504</v> + <v>259795</v> </b> <b> <a>3</a> <b>4</b> - <v>124860</v> + <v>125000</v> </b> <b> <a>4</a> <b>6</b> - <v>140700</v> + <v>140858</v> </b> <b> <a>6</a> <b>10</b> - <v>184495</v> + <v>184701</v> </b> <b> <a>10</a> <b>15</b> - <v>168188</v> + <v>168377</v> </b> <b> <a>15</a> <b>26</b> - <v>163063</v> + <v>163246</v> </b> <b> <a>26</a> <b>120</b> - <v>157939</v> + <v>158116</v> </b> <b> <a>121</a> <b>265</b> - <v>11647</v> + <v>11660</v> </b> </bs> </hist> @@ -6039,22 +6023,22 @@ <b> <a>1</a> <b>2</b> - <v>1526278</v> + <v>1527988</v> </b> <b> <a>2</a> <b>3</b> - <v>341036</v> + <v>341418</v> </b> <b> <a>3</a> <b>5</b> - <v>170518</v> + <v>170709</v> </b> <b> <a>5</a> <b>10</b> - <v>57305</v> + <v>57369</v> </b> </bs> </hist> @@ -6070,47 +6054,47 @@ <b> <a>1</a> <b>2</b> - <v>621972</v> + <v>622669</v> </b> <b> <a>2</a> <b>3</b> - <v>302833</v> + <v>303172</v> </b> <b> <a>3</a> <b>4</b> - <v>201267</v> + <v>201493</v> </b> <b> <a>4</a> <b>6</b> - <v>183563</v> + <v>183769</v> </b> <b> <a>6</a> <b>9</b> - <v>169586</v> + <v>169776</v> </b> <b> <a>9</a> <b>13</b> - <v>166325</v> + <v>166511</v> </b> <b> <a>13</a> <b>19</b> - <v>174711</v> + <v>174907</v> </b> <b> <a>19</a> <b>29</b> - <v>160734</v> + <v>160914</v> </b> <b> <a>29</a> <b>52</b> - <v>114144</v> + <v>114272</v> </b> </bs> </hist> @@ -6126,52 +6110,52 @@ <b> <a>1</a> <b>2</b> - <v>597279</v> + <v>597949</v> </b> <b> <a>2</a> <b>3</b> - <v>306560</v> + <v>306903</v> </b> <b> <a>3</a> <b>4</b> - <v>196142</v> + <v>196362</v> </b> <b> <a>4</a> <b>6</b> - <v>169120</v> + <v>169310</v> </b> <b> <a>6</a> <b>9</b> - <v>154677</v> + <v>154851</v> </b> <b> <a>9</a> <b>14</b> - <v>168188</v> + <v>168377</v> </b> <b> <a>14</a> <b>21</b> - <v>178438</v> + <v>178638</v> </b> <b> <a>21</a> <b>32</b> - <v>163063</v> + <v>163246</v> </b> <b> <a>32</a> <b>60</b> - <v>157939</v> + <v>158116</v> </b> <b> <a>60</a> <b>65</b> - <v>3727</v> + <v>3731</v> </b> </bs> </hist> @@ -6187,67 +6171,67 @@ <b> <a>1</a> <b>2</b> - <v>5124</v> + <v>5130</v> </b> <b> <a>2</a> <b>8</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>9</a> <b>186</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>193</a> <b>288</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>294</a> <b>495</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>503</a> <b>555</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>561</a> <b>634</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>640</a> <b>758</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>758</a> <b>869</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>876</a> <b>1074</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>1075</a> <b>1281</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>1289</a> <b>1590</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>1685</a> <b>2418</b> - <v>1863</v> + <v>1865</v> </b> </bs> </hist> @@ -6263,67 +6247,67 @@ <b> <a>1</a> <b>2</b> - <v>5590</v> + <v>5597</v> </b> <b> <a>2</a> <b>5</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>5</a> <b>65</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>70</a> <b>100</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>100</a> <b>111</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>112</a> <b>122</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>122</a> <b>134</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>139</a> <b>152</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>152</a> <b>160</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>160</a> <b>171</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>171</a> <b>175</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>176</a> <b>192</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>207</a> <b>265</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -6339,67 +6323,67 @@ <b> <a>1</a> <b>2</b> - <v>5590</v> + <v>5597</v> </b> <b> <a>2</a> <b>8</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>9</a> <b>105</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>155</a> <b>241</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>253</a> <b>336</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>340</a> <b>426</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>434</a> <b>488</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>489</a> <b>572</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>573</a> <b>623</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>628</a> <b>696</b> - <v>4193</v> + <v>4197</v> </b> <b> <a>701</a> <b>819</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>837</a> <b>1095</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>1172</a> <b>1174</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -6415,67 +6399,67 @@ <b> <a>1</a> <b>2</b> - <v>6056</v> + <v>6063</v> </b> <b> <a>2</a> <b>4</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>4</a> <b>8</b> - <v>4193</v> + <v>4197</v> </b> <b> <a>8</a> <b>15</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>15</a> <b>23</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>23</a> <b>29</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>29</a> <b>35</b> - <v>4193</v> + <v>4197</v> </b> <b> <a>35</a> <b>39</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>39</a> <b>42</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>42</a> <b>44</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>44</a> <b>46</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>46</a> <b>49</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>49</a> <b>53</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -6491,67 +6475,67 @@ <b> <a>1</a> <b>2</b> - <v>5590</v> + <v>5597</v> </b> <b> <a>2</a> <b>8</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>9</a> <b>156</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>159</a> <b>240</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>251</a> <b>335</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>342</a> <b>430</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>432</a> <b>490</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>490</a> <b>573</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>574</a> <b>622</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>628</a> <b>698</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>700</a> <b>812</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>812</a> <b>987</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>1096</a> <b>1180</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -6561,31 +6545,31 @@ </relation> <relation> <name>locations_stmt</name> - <cardinality>3814280</cardinality> + <cardinality>3820105</cardinality> <columnsizes> <e> <k>id</k> - <v>3814280</v> + <v>3820105</v> </e> <e> <k>container</k> - <v>3083</v> + <v>3088</v> </e> <e> <k>startLine</k> - <v>199878</v> + <v>200183</v> </e> <e> <k>startColumn</k> - <v>1870</v> + <v>1873</v> </e> <e> <k>endLine</k> - <v>194143</v> + <v>194439</v> </e> <e> <k>endColumn</k> - <v>2364</v> + <v>2367</v> </e> </columnsizes> <dependencies> @@ -6599,7 +6583,7 @@ <b> <a>1</a> <b>2</b> - <v>3814280</v> + <v>3820105</v> </b> </bs> </hist> @@ -6615,7 +6599,7 @@ <b> <a>1</a> <b>2</b> - <v>3814280</v> + <v>3820105</v> </b> </bs> </hist> @@ -6631,7 +6615,7 @@ <b> <a>1</a> <b>2</b> - <v>3814280</v> + <v>3820105</v> </b> </bs> </hist> @@ -6647,7 +6631,7 @@ <b> <a>1</a> <b>2</b> - <v>3814280</v> + <v>3820105</v> </b> </bs> </hist> @@ -6663,7 +6647,7 @@ <b> <a>1</a> <b>2</b> - <v>3814280</v> + <v>3820105</v> </b> </bs> </hist> @@ -6679,62 +6663,62 @@ <b> <a>1</a> <b>13</b> - <v>246</v> + <v>247</v> </b> <b> <a>16</a> <b>48</b> - <v>246</v> + <v>247</v> </b> <b> <a>61</a> <b>175</b> - <v>246</v> + <v>247</v> </b> <b> <a>176</a> <b>417</b> - <v>246</v> + <v>247</v> </b> <b> <a>436</a> <b>608</b> - <v>246</v> + <v>247</v> </b> <b> <a>621</a> <b>797</b> - <v>246</v> + <v>247</v> </b> <b> <a>848</a> <b>1139</b> - <v>246</v> + <v>247</v> </b> <b> <a>1158</a> <b>1417</b> - <v>246</v> + <v>247</v> </b> <b> <a>1453</a> <b>1715</b> - <v>246</v> + <v>247</v> </b> <b> <a>1771</a> <b>2252</b> - <v>246</v> + <v>247</v> </b> <b> <a>2282</a> <b>2669</b> - <v>246</v> + <v>247</v> </b> <b> <a>2736</a> <b>3751</b> - <v>246</v> + <v>247</v> </b> <b> <a>3768</a> @@ -6755,17 +6739,17 @@ <b> <a>1</a> <b>13</b> - <v>246</v> + <v>247</v> </b> <b> <a>16</a> <b>47</b> - <v>246</v> + <v>247</v> </b> <b> <a>48</a> <b>161</b> - <v>246</v> + <v>247</v> </b> <b> <a>169</a> @@ -6775,42 +6759,42 @@ <b> <a>393</a> <b>586</b> - <v>246</v> + <v>247</v> </b> <b> <a>602</a> <b>783</b> - <v>246</v> + <v>247</v> </b> <b> <a>845</a> <b>1120</b> - <v>246</v> + <v>247</v> </b> <b> <a>1131</a> <b>1390</b> - <v>246</v> + <v>247</v> </b> <b> <a>1394</a> <b>1692</b> - <v>246</v> + <v>247</v> </b> <b> <a>1726</a> <b>2208</b> - <v>246</v> + <v>247</v> </b> <b> <a>2225</a> <b>2680</b> - <v>246</v> + <v>247</v> </b> <b> <a>2777</a> <b>3643</b> - <v>246</v> + <v>247</v> </b> <b> <a>3885</a> @@ -6846,7 +6830,7 @@ <b> <a>9</a> <b>11</b> - <v>246</v> + <v>247</v> </b> <b> <a>11</a> @@ -6861,7 +6845,7 @@ <b> <a>14</a> <b>16</b> - <v>246</v> + <v>247</v> </b> <b> <a>16</a> @@ -6881,22 +6865,22 @@ <b> <a>21</a> <b>23</b> - <v>246</v> + <v>247</v> </b> <b> <a>23</a> <b>29</b> - <v>246</v> + <v>247</v> </b> <b> <a>29</a> <b>43</b> - <v>246</v> + <v>247</v> </b> <b> <a>48</a> <b>60</b> - <v>143</v> + <v>144</v> </b> </bs> </hist> @@ -6912,62 +6896,62 @@ <b> <a>1</a> <b>11</b> - <v>246</v> + <v>247</v> </b> <b> <a>12</a> <b>34</b> - <v>246</v> + <v>247</v> </b> <b> <a>43</a> <b>132</b> - <v>246</v> + <v>247</v> </b> <b> <a>134</a> <b>282</b> - <v>246</v> + <v>247</v> </b> <b> <a>294</a> <b>452</b> - <v>246</v> + <v>247</v> </b> <b> <a>459</a> <b>601</b> - <v>246</v> + <v>247</v> </b> <b> <a>609</a> <b>831</b> - <v>246</v> + <v>247</v> </b> <b> <a>838</a> <b>1062</b> - <v>246</v> + <v>247</v> </b> <b> <a>1071</a> <b>1265</b> - <v>246</v> + <v>247</v> </b> <b> <a>1323</a> <b>1679</b> - <v>246</v> + <v>247</v> </b> <b> <a>1688</a> <b>2006</b> - <v>246</v> + <v>247</v> </b> <b> <a>2044</a> <b>2758</b> - <v>246</v> + <v>247</v> </b> <b> <a>2776</a> @@ -6988,22 +6972,22 @@ <b> <a>1</a> <b>8</b> - <v>246</v> + <v>247</v> </b> <b> <a>8</a> <b>21</b> - <v>246</v> + <v>247</v> </b> <b> <a>22</a> <b>45</b> - <v>246</v> + <v>247</v> </b> <b> <a>45</a> <b>56</b> - <v>246</v> + <v>247</v> </b> <b> <a>56</a> @@ -7013,12 +6997,12 @@ <b> <a>63</a> <b>67</b> - <v>246</v> + <v>247</v> </b> <b> <a>67</a> <b>69</b> - <v>246</v> + <v>247</v> </b> <b> <a>69</a> @@ -7028,22 +7012,22 @@ <b> <a>71</a> <b>72</b> - <v>246</v> + <v>247</v> </b> <b> <a>72</a> <b>74</b> - <v>246</v> + <v>247</v> </b> <b> <a>74</a> <b>76</b> - <v>246</v> + <v>247</v> </b> <b> <a>76</a> <b>80</b> - <v>246</v> + <v>247</v> </b> <b> <a>81</a> @@ -7064,67 +7048,67 @@ <b> <a>1</a> <b>2</b> - <v>21544</v> + <v>21576</v> </b> <b> <a>2</a> <b>3</b> - <v>15294</v> + <v>15317</v> </b> <b> <a>3</a> <b>4</b> - <v>12478</v> + <v>12497</v> </b> <b> <a>4</a> <b>6</b> - <v>14451</v> + <v>14473</v> </b> <b> <a>6</a> <b>8</b> - <v>12519</v> + <v>12538</v> </b> <b> <a>8</a> <b>11</b> - <v>16713</v> + <v>16738</v> </b> <b> <a>11</a> <b>16</b> - <v>17268</v> + <v>17294</v> </b> <b> <a>16</a> <b>22</b> - <v>15356</v> + <v>15379</v> </b> <b> <a>22</a> <b>29</b> - <v>16980</v> + <v>17006</v> </b> <b> <a>29</a> <b>37</b> - <v>17370</v> + <v>17397</v> </b> <b> <a>37</a> <b>45</b> - <v>15089</v> + <v>15112</v> </b> <b> <a>45</a> <b>56</b> - <v>16178</v> + <v>16203</v> </b> <b> <a>56</a> <b>73</b> - <v>8634</v> + <v>8647</v> </b> </bs> </hist> @@ -7140,67 +7124,67 @@ <b> <a>1</a> <b>2</b> - <v>22304</v> + <v>22338</v> </b> <b> <a>2</a> <b>3</b> - <v>15726</v> + <v>15750</v> </b> <b> <a>3</a> <b>4</b> - <v>12683</v> + <v>12703</v> </b> <b> <a>4</a> <b>6</b> - <v>14390</v> + <v>14412</v> </b> <b> <a>6</a> <b>8</b> - <v>12724</v> + <v>12744</v> </b> <b> <a>8</a> <b>11</b> - <v>17576</v> + <v>17603</v> </b> <b> <a>11</a> <b>16</b> - <v>16363</v> + <v>16388</v> </b> <b> <a>16</a> <b>22</b> - <v>16219</v> + <v>16244</v> </b> <b> <a>22</a> <b>29</b> - <v>16959</v> + <v>16985</v> </b> <b> <a>29</a> <b>36</b> - <v>15993</v> + <v>16017</v> </b> <b> <a>36</a> <b>44</b> - <v>16322</v> + <v>16347</v> </b> <b> <a>44</a> <b>54</b> - <v>15644</v> + <v>15667</v> </b> <b> <a>54</a> <b>69</b> - <v>6968</v> + <v>6979</v> </b> </bs> </hist> @@ -7216,57 +7200,57 @@ <b> <a>1</a> <b>2</b> - <v>26827</v> + <v>26868</v> </b> <b> <a>2</a> <b>3</b> - <v>20845</v> + <v>20876</v> </b> <b> <a>3</a> <b>4</b> - <v>16815</v> + <v>16841</v> </b> <b> <a>4</a> <b>5</b> - <v>16075</v> + <v>16100</v> </b> <b> <a>5</a> <b>6</b> - <v>17432</v> + <v>17459</v> </b> <b> <a>6</a> <b>7</b> - <v>19858</v> + <v>19888</v> </b> <b> <a>7</a> <b>8</b> - <v>22756</v> + <v>22791</v> </b> <b> <a>8</a> <b>9</b> - <v>20392</v> + <v>20423</v> </b> <b> <a>9</a> <b>10</b> - <v>15006</v> + <v>15029</v> </b> <b> <a>10</a> <b>12</b> - <v>16651</v> + <v>16676</v> </b> <b> <a>12</a> <b>18</b> - <v>7215</v> + <v>7226</v> </b> </bs> </hist> @@ -7282,67 +7266,67 @@ <b> <a>1</a> <b>2</b> - <v>34597</v> + <v>34650</v> </b> <b> <a>2</a> <b>3</b> - <v>25799</v> + <v>25838</v> </b> <b> <a>3</a> <b>4</b> - <v>18439</v> + <v>18468</v> </b> <b> <a>4</a> <b>5</b> - <v>16219</v> + <v>16244</v> </b> <b> <a>5</a> <b>6</b> - <v>12786</v> + <v>12806</v> </b> <b> <a>6</a> <b>7</b> - <v>12026</v> + <v>12044</v> </b> <b> <a>7</a> <b>8</b> - <v>10175</v> + <v>10191</v> </b> <b> <a>8</a> <b>9</b> - <v>10977</v> + <v>10994</v> </b> <b> <a>9</a> <b>10</b> - <v>10730</v> + <v>10747</v> </b> <b> <a>10</a> <b>11</b> - <v>10525</v> + <v>10541</v> </b> <b> <a>11</a> <b>12</b> - <v>10175</v> + <v>10191</v> </b> <b> <a>12</a> <b>14</b> - <v>15787</v> + <v>15812</v> </b> <b> <a>14</a> <b>24</b> - <v>11635</v> + <v>11653</v> </b> </bs> </hist> @@ -7358,67 +7342,67 @@ <b> <a>1</a> <b>2</b> - <v>22140</v> + <v>22174</v> </b> <b> <a>2</a> <b>3</b> - <v>16199</v> + <v>16223</v> </b> <b> <a>3</a> <b>4</b> - <v>12951</v> + <v>12970</v> </b> <b> <a>4</a> <b>6</b> - <v>16075</v> + <v>16100</v> </b> <b> <a>6</a> <b>8</b> - <v>14698</v> + <v>14720</v> </b> <b> <a>8</a> <b>10</b> - <v>13197</v> + <v>13217</v> </b> <b> <a>10</a> <b>14</b> - <v>18295</v> + <v>18323</v> </b> <b> <a>14</a> <b>18</b> - <v>17021</v> + <v>17047</v> </b> <b> <a>18</a> <b>22</b> - <v>17576</v> + <v>17603</v> </b> <b> <a>22</a> <b>26</b> - <v>18501</v> + <v>18529</v> </b> <b> <a>26</a> <b>30</b> - <v>16384</v> + <v>16409</v> </b> <b> <a>30</a> <b>36</b> - <v>15232</v> + <v>15256</v> </b> <b> <a>36</a> <b>42</b> - <v>1603</v> + <v>1605</v> </b> </bs> </hist> @@ -7439,7 +7423,7 @@ <b> <a>2</a> <b>3</b> - <v>143</v> + <v>144</v> </b> <b> <a>3</a> @@ -7449,7 +7433,7 @@ <b> <a>7</a> <b>12</b> - <v>143</v> + <v>144</v> </b> <b> <a>12</a> @@ -7459,37 +7443,37 @@ <b> <a>21</a> <b>53</b> - <v>143</v> + <v>144</v> </b> <b> <a>54</a> <b>74</b> - <v>143</v> + <v>144</v> </b> <b> <a>78</a> <b>92</b> - <v>143</v> + <v>144</v> </b> <b> <a>92</a> <b>134</b> - <v>143</v> + <v>144</v> </b> <b> <a>134</a> <b>228</b> - <v>143</v> + <v>144</v> </b> <b> <a>228</a> <b>2062</b> - <v>143</v> + <v>144</v> </b> <b> <a>3245</a> <b>40863</b> - <v>143</v> + <v>144</v> </b> <b> <a>53257</a> @@ -7510,7 +7494,7 @@ <b> <a>1</a> <b>2</b> - <v>287</v> + <v>288</v> </b> <b> <a>2</a> @@ -7530,42 +7514,42 @@ <b> <a>8</a> <b>13</b> - <v>143</v> + <v>144</v> </b> <b> <a>13</a> <b>18</b> - <v>143</v> + <v>144</v> </b> <b> <a>18</a> <b>22</b> - <v>143</v> + <v>144</v> </b> <b> <a>22</a> <b>24</b> - <v>143</v> + <v>144</v> </b> <b> <a>24</a> <b>29</b> - <v>143</v> + <v>144</v> </b> <b> <a>33</a> <b>42</b> - <v>143</v> + <v>144</v> </b> <b> <a>47</a> <b>109</b> - <v>143</v> + <v>144</v> </b> <b> <a>116</a> <b>150</b> - <v>143</v> + <v>144</v> </b> </bs> </hist> @@ -7586,7 +7570,7 @@ <b> <a>2</a> <b>3</b> - <v>143</v> + <v>144</v> </b> <b> <a>3</a> @@ -7596,7 +7580,7 @@ <b> <a>7</a> <b>12</b> - <v>143</v> + <v>144</v> </b> <b> <a>12</a> @@ -7606,37 +7590,37 @@ <b> <a>21</a> <b>53</b> - <v>143</v> + <v>144</v> </b> <b> <a>54</a> <b>74</b> - <v>143</v> + <v>144</v> </b> <b> <a>77</a> <b>88</b> - <v>143</v> + <v>144</v> </b> <b> <a>90</a> <b>131</b> - <v>143</v> + <v>144</v> </b> <b> <a>134</a> <b>224</b> - <v>143</v> + <v>144</v> </b> <b> <a>226</a> <b>1699</b> - <v>143</v> + <v>144</v> </b> <b> <a>2430</a> <b>7900</b> - <v>143</v> + <v>144</v> </b> <b> <a>8302</a> @@ -7662,7 +7646,7 @@ <b> <a>2</a> <b>3</b> - <v>143</v> + <v>144</v> </b> <b> <a>3</a> @@ -7672,7 +7656,7 @@ <b> <a>7</a> <b>12</b> - <v>143</v> + <v>144</v> </b> <b> <a>12</a> @@ -7682,37 +7666,37 @@ <b> <a>21</a> <b>53</b> - <v>143</v> + <v>144</v> </b> <b> <a>54</a> <b>74</b> - <v>143</v> + <v>144</v> </b> <b> <a>77</a> <b>88</b> - <v>143</v> + <v>144</v> </b> <b> <a>90</a> <b>130</b> - <v>143</v> + <v>144</v> </b> <b> <a>134</a> <b>221</b> - <v>143</v> + <v>144</v> </b> <b> <a>226</a> <b>1414</b> - <v>143</v> + <v>144</v> </b> <b> <a>2290</a> <b>7741</b> - <v>143</v> + <v>144</v> </b> <b> <a>8096</a> @@ -7733,12 +7717,12 @@ <b> <a>1</a> <b>2</b> - <v>287</v> + <v>288</v> </b> <b> <a>2</a> <b>3</b> - <v>143</v> + <v>144</v> </b> <b> <a>3</a> @@ -7758,7 +7742,7 @@ <b> <a>8</a> <b>11</b> - <v>143</v> + <v>144</v> </b> <b> <a>11</a> @@ -7768,27 +7752,27 @@ <b> <a>15</a> <b>19</b> - <v>143</v> + <v>144</v> </b> <b> <a>19</a> <b>26</b> - <v>143</v> + <v>144</v> </b> <b> <a>28</a> <b>35</b> - <v>143</v> + <v>144</v> </b> <b> <a>41</a> <b>69</b> - <v>143</v> + <v>144</v> </b> <b> <a>70</a> <b>104</b> - <v>143</v> + <v>144</v> </b> </bs> </hist> @@ -7804,67 +7788,67 @@ <b> <a>1</a> <b>2</b> - <v>17412</v> + <v>17438</v> </b> <b> <a>2</a> <b>3</b> - <v>14410</v> + <v>14432</v> </b> <b> <a>3</a> <b>4</b> - <v>11491</v> + <v>11509</v> </b> <b> <a>4</a> <b>6</b> - <v>15602</v> + <v>15626</v> </b> <b> <a>6</a> <b>8</b> - <v>12498</v> + <v>12517</v> </b> <b> <a>8</a> <b>11</b> - <v>15459</v> + <v>15482</v> </b> <b> <a>11</a> <b>15</b> - <v>14636</v> + <v>14659</v> </b> <b> <a>15</a> <b>21</b> - <v>16096</v> + <v>16120</v> </b> <b> <a>21</a> <b>27</b> - <v>15417</v> + <v>15441</v> </b> <b> <a>27</a> <b>34</b> - <v>14945</v> + <v>14967</v> </b> <b> <a>34</a> <b>42</b> - <v>15746</v> + <v>15770</v> </b> <b> <a>42</a> <b>52</b> - <v>16014</v> + <v>16038</v> </b> <b> <a>52</a> <b>130</b> - <v>14410</v> + <v>14432</v> </b> </bs> </hist> @@ -7880,62 +7864,62 @@ <b> <a>1</a> <b>2</b> - <v>24956</v> + <v>24994</v> </b> <b> <a>2</a> <b>3</b> - <v>16137</v> + <v>16162</v> </b> <b> <a>3</a> <b>4</b> - <v>12766</v> + <v>12785</v> </b> <b> <a>4</a> <b>6</b> - <v>15664</v> + <v>15688</v> </b> <b> <a>6</a> <b>8</b> - <v>15006</v> + <v>15029</v> </b> <b> <a>8</a> <b>11</b> - <v>15890</v> + <v>15915</v> </b> <b> <a>11</a> <b>16</b> - <v>17453</v> + <v>17479</v> </b> <b> <a>16</a> <b>20</b> - <v>14595</v> + <v>14617</v> </b> <b> <a>20</a> <b>26</b> - <v>17165</v> + <v>17191</v> </b> <b> <a>26</a> <b>32</b> - <v>16260</v> + <v>16285</v> </b> <b> <a>32</a> <b>39</b> - <v>14862</v> + <v>14885</v> </b> <b> <a>39</a> <b>59</b> - <v>13382</v> + <v>13403</v> </b> </bs> </hist> @@ -7951,62 +7935,62 @@ <b> <a>1</a> <b>2</b> - <v>32480</v> + <v>32530</v> </b> <b> <a>2</a> <b>3</b> - <v>23764</v> + <v>23800</v> </b> <b> <a>3</a> <b>4</b> - <v>18460</v> + <v>18488</v> </b> <b> <a>4</a> <b>5</b> - <v>15150</v> + <v>15173</v> </b> <b> <a>5</a> <b>6</b> - <v>13876</v> + <v>13897</v> </b> <b> <a>6</a> <b>7</b> - <v>11676</v> + <v>11694</v> </b> <b> <a>7</a> <b>8</b> - <v>11738</v> + <v>11756</v> </b> <b> <a>8</a> <b>9</b> - <v>10915</v> + <v>10932</v> </b> <b> <a>9</a> <b>10</b> - <v>10175</v> + <v>10191</v> </b> <b> <a>10</a> <b>12</b> - <v>17967</v> + <v>17994</v> </b> <b> <a>12</a> <b>15</b> - <v>17720</v> + <v>17747</v> </b> <b> <a>15</a> <b>100</b> - <v>10216</v> + <v>10232</v> </b> </bs> </hist> @@ -8022,57 +8006,57 @@ <b> <a>1</a> <b>2</b> - <v>24956</v> + <v>24994</v> </b> <b> <a>2</a> <b>3</b> - <v>20392</v> + <v>20423</v> </b> <b> <a>3</a> <b>4</b> - <v>16836</v> + <v>16862</v> </b> <b> <a>4</a> <b>5</b> - <v>17802</v> + <v>17829</v> </b> <b> <a>5</a> <b>6</b> - <v>18583</v> + <v>18612</v> </b> <b> <a>6</a> <b>7</b> - <v>20433</v> + <v>20465</v> </b> <b> <a>7</a> <b>8</b> - <v>22427</v> + <v>22462</v> </b> <b> <a>8</a> <b>9</b> - <v>18748</v> + <v>18776</v> </b> <b> <a>9</a> <b>10</b> - <v>12930</v> + <v>12950</v> </b> <b> <a>10</a> <b>12</b> - <v>15027</v> + <v>15050</v> </b> <b> <a>12</a> <b>18</b> - <v>6002</v> + <v>6011</v> </b> </bs> </hist> @@ -8088,67 +8072,67 @@ <b> <a>1</a> <b>2</b> - <v>24709</v> + <v>24747</v> </b> <b> <a>2</a> <b>3</b> - <v>16630</v> + <v>16656</v> </b> <b> <a>3</a> <b>4</b> - <v>12539</v> + <v>12559</v> </b> <b> <a>4</a> <b>6</b> - <v>17823</v> + <v>17850</v> </b> <b> <a>6</a> <b>8</b> - <v>15335</v> + <v>15359</v> </b> <b> <a>8</a> <b>10</b> - <v>12827</v> + <v>12847</v> </b> <b> <a>10</a> <b>13</b> - <v>14410</v> + <v>14432</v> </b> <b> <a>13</a> <b>16</b> - <v>15027</v> + <v>15050</v> </b> <b> <a>16</a> <b>19</b> - <v>14657</v> + <v>14679</v> </b> <b> <a>19</a> <b>22</b> - <v>14040</v> + <v>14062</v> </b> <b> <a>22</a> <b>26</b> - <v>17124</v> + <v>17150</v> </b> <b> <a>26</a> <b>31</b> - <v>15335</v> + <v>15359</v> </b> <b> <a>31</a> <b>39</b> - <v>3679</v> + <v>3685</v> </b> </bs> </hist> @@ -8543,31 +8527,31 @@ </relation> <relation> <name>locations_expr</name> - <cardinality>13168606</cardinality> + <cardinality>13188716</cardinality> <columnsizes> <e> <k>id</k> - <v>13168606</v> + <v>13188716</v> </e> <e> <k>container</k> - <v>4645</v> + <v>4653</v> </e> <e> <k>startLine</k> - <v>191943</v> + <v>192236</v> </e> <e> <k>startColumn</k> - <v>2466</v> + <v>2470</v> </e> <e> <k>endLine</k> - <v>191922</v> + <v>192215</v> </e> <e> <k>endColumn</k> - <v>2795</v> + <v>2800</v> </e> </columnsizes> <dependencies> @@ -8581,7 +8565,7 @@ <b> <a>1</a> <b>2</b> - <v>13168606</v> + <v>13188716</v> </b> </bs> </hist> @@ -8597,7 +8581,7 @@ <b> <a>1</a> <b>2</b> - <v>13168606</v> + <v>13188716</v> </b> </bs> </hist> @@ -8613,7 +8597,7 @@ <b> <a>1</a> <b>2</b> - <v>13168606</v> + <v>13188716</v> </b> </bs> </hist> @@ -8629,7 +8613,7 @@ <b> <a>1</a> <b>2</b> - <v>13168606</v> + <v>13188716</v> </b> </bs> </hist> @@ -8645,7 +8629,7 @@ <b> <a>1</a> <b>2</b> - <v>13168606</v> + <v>13188716</v> </b> </bs> </hist> @@ -8666,7 +8650,7 @@ <b> <a>2</a> <b>6</b> - <v>328</v> + <v>329</v> </b> <b> <a>6</a> @@ -8681,47 +8665,47 @@ <b> <a>27</a> <b>96</b> - <v>349</v> + <v>350</v> </b> <b> <a>100</a> <b>514</b> - <v>349</v> + <v>350</v> </b> <b> <a>525</a> <b>1401</b> - <v>349</v> + <v>350</v> </b> <b> <a>1526</a> <b>2343</b> - <v>349</v> + <v>350</v> </b> <b> <a>2404</a> <b>3615</b> - <v>349</v> + <v>350</v> </b> <b> <a>3668</a> <b>5162</b> - <v>349</v> + <v>350</v> </b> <b> <a>5341</a> <b>7345</b> - <v>349</v> + <v>350</v> </b> <b> <a>7399</a> <b>9307</b> - <v>349</v> + <v>350</v> </b> <b> <a>9382</a> <b>16759</b> - <v>349</v> + <v>350</v> </b> <b> <a>18811</a> @@ -8742,7 +8726,7 @@ <b> <a>1</a> <b>2</b> - <v>493</v> + <v>494</v> </b> <b> <a>2</a> @@ -8757,47 +8741,47 @@ <b> <a>10</a> <b>20</b> - <v>349</v> + <v>350</v> </b> <b> <a>20</a> <b>51</b> - <v>349</v> + <v>350</v> </b> <b> <a>65</a> <b>151</b> - <v>349</v> + <v>350</v> </b> <b> <a>161</a> <b>360</b> - <v>349</v> + <v>350</v> </b> <b> <a>361</a> <b>577</b> - <v>349</v> + <v>350</v> </b> <b> <a>590</a> <b>923</b> - <v>349</v> + <v>350</v> </b> <b> <a>928</a> <b>1265</b> - <v>349</v> + <v>350</v> </b> <b> <a>1268</a> <b>1742</b> - <v>349</v> + <v>350</v> </b> <b> <a>1781</a> <b>2320</b> - <v>349</v> + <v>350</v> </b> <b> <a>2491</a> @@ -8818,32 +8802,32 @@ <b> <a>1</a> <b>2</b> - <v>493</v> + <v>494</v> </b> <b> <a>2</a> <b>4</b> - <v>349</v> + <v>350</v> </b> <b> <a>4</a> <b>7</b> - <v>390</v> + <v>391</v> </b> <b> <a>7</a> <b>16</b> - <v>349</v> + <v>350</v> </b> <b> <a>16</a> <b>37</b> - <v>349</v> + <v>350</v> </b> <b> <a>37</a> <b>59</b> - <v>390</v> + <v>391</v> </b> <b> <a>59</a> @@ -8904,7 +8888,7 @@ <b> <a>1</a> <b>2</b> - <v>493</v> + <v>494</v> </b> <b> <a>2</a> @@ -8919,47 +8903,47 @@ <b> <a>10</a> <b>20</b> - <v>349</v> + <v>350</v> </b> <b> <a>20</a> <b>51</b> - <v>349</v> + <v>350</v> </b> <b> <a>65</a> <b>151</b> - <v>349</v> + <v>350</v> </b> <b> <a>162</a> <b>360</b> - <v>349</v> + <v>350</v> </b> <b> <a>361</a> <b>578</b> - <v>349</v> + <v>350</v> </b> <b> <a>591</a> <b>926</b> - <v>349</v> + <v>350</v> </b> <b> <a>930</a> <b>1266</b> - <v>349</v> + <v>350</v> </b> <b> <a>1272</a> <b>1742</b> - <v>349</v> + <v>350</v> </b> <b> <a>1785</a> <b>2324</b> - <v>349</v> + <v>350</v> </b> <b> <a>2500</a> @@ -8985,7 +8969,7 @@ <b> <a>2</a> <b>4</b> - <v>328</v> + <v>329</v> </b> <b> <a>4</a> @@ -8995,22 +8979,22 @@ <b> <a>7</a> <b>15</b> - <v>349</v> + <v>350</v> </b> <b> <a>15</a> <b>36</b> - <v>349</v> + <v>350</v> </b> <b> <a>36</a> <b>61</b> - <v>349</v> + <v>350</v> </b> <b> <a>61</a> <b>70</b> - <v>349</v> + <v>350</v> </b> <b> <a>70</a> @@ -9020,7 +9004,7 @@ <b> <a>73</a> <b>75</b> - <v>328</v> + <v>329</v> </b> <b> <a>75</a> @@ -9035,12 +9019,12 @@ <b> <a>77</a> <b>79</b> - <v>349</v> + <v>350</v> </b> <b> <a>79</a> <b>84</b> - <v>349</v> + <v>350</v> </b> <b> <a>84</a> @@ -9061,67 +9045,67 @@ <b> <a>1</a> <b>5</b> - <v>16116</v> + <v>16141</v> </b> <b> <a>5</a> <b>9</b> - <v>16486</v> + <v>16512</v> </b> <b> <a>9</a> <b>15</b> - <v>16034</v> + <v>16059</v> </b> <b> <a>15</a> <b>23</b> - <v>15109</v> + <v>15132</v> </b> <b> <a>23</a> <b>32</b> - <v>15150</v> + <v>15173</v> </b> <b> <a>32</a> <b>44</b> - <v>15006</v> + <v>15029</v> </b> <b> <a>44</a> <b>60</b> - <v>14760</v> + <v>14782</v> </b> <b> <a>60</a> <b>80</b> - <v>14821</v> + <v>14844</v> </b> <b> <a>80</a> <b>103</b> - <v>14636</v> + <v>14659</v> </b> <b> <a>103</a> <b>130</b> - <v>14780</v> + <v>14803</v> </b> <b> <a>130</a> <b>159</b> - <v>14534</v> + <v>14556</v> </b> <b> <a>159</a> <b>194</b> - <v>14616</v> + <v>14638</v> </b> <b> <a>194</a> <b>302</b> - <v>9888</v> + <v>9903</v> </b> </bs> </hist> @@ -9137,62 +9121,62 @@ <b> <a>1</a> <b>2</b> - <v>23517</v> + <v>23553</v> </b> <b> <a>2</a> <b>3</b> - <v>15623</v> + <v>15647</v> </b> <b> <a>3</a> <b>4</b> - <v>11347</v> + <v>11364</v> </b> <b> <a>4</a> <b>6</b> - <v>16363</v> + <v>16388</v> </b> <b> <a>6</a> <b>8</b> - <v>13629</v> + <v>13650</v> </b> <b> <a>8</a> <b>11</b> - <v>16445</v> + <v>16470</v> </b> <b> <a>11</a> <b>16</b> - <v>17350</v> + <v>17376</v> </b> <b> <a>16</a> <b>21</b> - <v>16445</v> + <v>16470</v> </b> <b> <a>21</a> <b>28</b> - <v>16651</v> + <v>16676</v> </b> <b> <a>28</a> <b>35</b> - <v>15808</v> + <v>15832</v> </b> <b> <a>35</a> <b>43</b> - <v>15849</v> + <v>15873</v> </b> <b> <a>43</a> <b>60</b> - <v>12909</v> + <v>12929</v> </b> </bs> </hist> @@ -9208,62 +9192,62 @@ <b> <a>1</a> <b>4</b> - <v>15973</v> + <v>15997</v> </b> <b> <a>4</a> <b>7</b> - <v>17535</v> + <v>17562</v> </b> <b> <a>7</a> <b>11</b> - <v>16692</v> + <v>16718</v> </b> <b> <a>11</a> <b>16</b> - <v>17412</v> + <v>17438</v> </b> <b> <a>16</a> <b>21</b> - <v>17514</v> + <v>17541</v> </b> <b> <a>21</a> <b>26</b> - <v>15068</v> + <v>15091</v> </b> <b> <a>26</a> <b>31</b> - <v>16178</v> + <v>16203</v> </b> <b> <a>31</a> <b>36</b> - <v>17720</v> + <v>17747</v> </b> <b> <a>36</a> <b>40</b> - <v>15705</v> + <v>15729</v> </b> <b> <a>40</a> <b>44</b> - <v>16301</v> + <v>16326</v> </b> <b> <a>44</a> <b>49</b> - <v>16898</v> + <v>16923</v> </b> <b> <a>49</a> <b>63</b> - <v>8942</v> + <v>8956</v> </b> </bs> </hist> @@ -9279,27 +9263,27 @@ <b> <a>1</a> <b>2</b> - <v>101964</v> + <v>102119</v> </b> <b> <a>2</a> <b>3</b> - <v>44629</v> + <v>44698</v> </b> <b> <a>3</a> <b>4</b> - <v>27649</v> + <v>27691</v> </b> <b> <a>4</a> <b>6</b> - <v>14575</v> + <v>14597</v> </b> <b> <a>6</a> <b>23</b> - <v>3124</v> + <v>3129</v> </b> </bs> </hist> @@ -9315,62 +9299,62 @@ <b> <a>1</a> <b>4</b> - <v>16959</v> + <v>16985</v> </b> <b> <a>4</a> <b>7</b> - <v>16651</v> + <v>16676</v> </b> <b> <a>7</a> <b>11</b> - <v>16425</v> + <v>16450</v> </b> <b> <a>11</a> <b>16</b> - <v>16219</v> + <v>16244</v> </b> <b> <a>16</a> <b>21</b> - <v>16445</v> + <v>16470</v> </b> <b> <a>21</a> <b>27</b> - <v>16774</v> + <v>16800</v> </b> <b> <a>27</a> <b>33</b> - <v>16445</v> + <v>16470</v> </b> <b> <a>33</a> <b>38</b> - <v>14472</v> + <v>14494</v> </b> <b> <a>38</a> <b>43</b> - <v>15541</v> + <v>15565</v> </b> <b> <a>43</a> <b>47</b> - <v>14698</v> + <v>14720</v> </b> <b> <a>47</a> <b>52</b> - <v>16774</v> + <v>16800</v> </b> <b> <a>52</a> <b>65</b> - <v>14451</v> + <v>14473</v> </b> <b> <a>65</a> @@ -9467,7 +9451,7 @@ <b> <a>1</a> <b>2</b> - <v>328</v> + <v>329</v> </b> <b> <a>2</a> @@ -9477,7 +9461,7 @@ <b> <a>3</a> <b>4</b> - <v>143</v> + <v>144</v> </b> <b> <a>4</a> @@ -9517,7 +9501,7 @@ <b> <a>142</a> <b>144</b> - <v>143</v> + <v>144</v> </b> <b> <a>144</a> @@ -9700,7 +9684,7 @@ <b> <a>1</a> <b>2</b> - <v>328</v> + <v>329</v> </b> <b> <a>2</a> @@ -9776,67 +9760,67 @@ <b> <a>1</a> <b>5</b> - <v>16137</v> + <v>16162</v> </b> <b> <a>5</a> <b>9</b> - <v>16486</v> + <v>16512</v> </b> <b> <a>9</a> <b>15</b> - <v>15808</v> + <v>15832</v> </b> <b> <a>15</a> <b>23</b> - <v>15089</v> + <v>15112</v> </b> <b> <a>23</a> <b>32</b> - <v>15644</v> + <v>15667</v> </b> <b> <a>32</a> <b>44</b> - <v>14739</v> + <v>14762</v> </b> <b> <a>44</a> <b>60</b> - <v>14492</v> + <v>14515</v> </b> <b> <a>60</a> <b>80</b> - <v>15253</v> + <v>15276</v> </b> <b> <a>80</a> <b>103</b> - <v>14534</v> + <v>14556</v> </b> <b> <a>103</a> <b>130</b> - <v>14760</v> + <v>14782</v> </b> <b> <a>130</a> <b>160</b> - <v>14883</v> + <v>14906</v> </b> <b> <a>160</a> <b>195</b> - <v>14554</v> + <v>14576</v> </b> <b> <a>195</a> <b>299</b> - <v>9538</v> + <v>9553</v> </b> </bs> </hist> @@ -9852,67 +9836,67 @@ <b> <a>1</a> <b>2</b> - <v>23517</v> + <v>23553</v> </b> <b> <a>2</a> <b>3</b> - <v>15561</v> + <v>15585</v> </b> <b> <a>3</a> <b>4</b> - <v>11347</v> + <v>11364</v> </b> <b> <a>4</a> <b>6</b> - <v>16055</v> + <v>16079</v> </b> <b> <a>6</a> <b>8</b> - <v>13485</v> + <v>13506</v> </b> <b> <a>8</a> <b>11</b> - <v>16507</v> + <v>16532</v> </b> <b> <a>11</a> <b>15</b> - <v>14431</v> + <v>14453</v> </b> <b> <a>15</a> <b>20</b> - <v>16774</v> + <v>16800</v> </b> <b> <a>20</a> <b>26</b> - <v>14986</v> + <v>15009</v> </b> <b> <a>26</a> <b>33</b> - <v>16055</v> + <v>16079</v> </b> <b> <a>33</a> <b>40</b> - <v>14636</v> + <v>14659</v> </b> <b> <a>40</a> <b>49</b> - <v>14595</v> + <v>14617</v> </b> <b> <a>49</a> <b>60</b> - <v>3967</v> + <v>3973</v> </b> </bs> </hist> @@ -9928,27 +9912,27 @@ <b> <a>1</a> <b>2</b> - <v>95488</v> + <v>95634</v> </b> <b> <a>2</a> <b>3</b> - <v>50015</v> + <v>50092</v> </b> <b> <a>3</a> <b>4</b> - <v>29376</v> + <v>29421</v> </b> <b> <a>4</a> <b>6</b> - <v>15602</v> + <v>15626</v> </b> <b> <a>6</a> <b>11</b> - <v>1439</v> + <v>1441</v> </b> </bs> </hist> @@ -9964,62 +9948,62 @@ <b> <a>1</a> <b>4</b> - <v>15829</v> + <v>15853</v> </b> <b> <a>4</a> <b>7</b> - <v>17453</v> + <v>17479</v> </b> <b> <a>7</a> <b>11</b> - <v>16486</v> + <v>16512</v> </b> <b> <a>11</a> <b>16</b> - <v>17350</v> + <v>17376</v> </b> <b> <a>16</a> <b>21</b> - <v>17309</v> + <v>17335</v> </b> <b> <a>21</a> <b>26</b> - <v>15150</v> + <v>15173</v> </b> <b> <a>26</a> <b>31</b> - <v>16301</v> + <v>16326</v> </b> <b> <a>31</a> <b>36</b> - <v>17679</v> + <v>17706</v> </b> <b> <a>36</a> <b>40</b> - <v>15294</v> + <v>15317</v> </b> <b> <a>40</a> <b>44</b> - <v>16445</v> + <v>16470</v> </b> <b> <a>44</a> <b>49</b> - <v>16980</v> + <v>17006</v> </b> <b> <a>49</a> <b>63</b> - <v>9641</v> + <v>9656</v> </b> </bs> </hist> @@ -10035,62 +10019,62 @@ <b> <a>1</a> <b>4</b> - <v>17185</v> + <v>17212</v> </b> <b> <a>4</a> <b>7</b> - <v>16795</v> + <v>16820</v> </b> <b> <a>7</a> <b>11</b> - <v>16425</v> + <v>16450</v> </b> <b> <a>11</a> <b>16</b> - <v>16877</v> + <v>16903</v> </b> <b> <a>16</a> <b>21</b> - <v>16014</v> + <v>16038</v> </b> <b> <a>21</a> <b>26</b> - <v>14513</v> + <v>14535</v> </b> <b> <a>26</a> <b>32</b> - <v>16158</v> + <v>16182</v> </b> <b> <a>32</a> <b>38</b> - <v>17494</v> + <v>17520</v> </b> <b> <a>38</a> <b>43</b> - <v>16137</v> + <v>16162</v> </b> <b> <a>43</a> <b>47</b> - <v>14472</v> + <v>14494</v> </b> <b> <a>47</a> <b>52</b> - <v>16569</v> + <v>16594</v> </b> <b> <a>52</a> <b>69</b> - <v>13280</v> + <v>13300</v> </b> </bs> </hist> @@ -10121,7 +10105,7 @@ <b> <a>10</a> <b>16</b> - <v>246</v> + <v>247</v> </b> <b> <a>16</a> @@ -10182,7 +10166,7 @@ <b> <a>1</a> <b>2</b> - <v>328</v> + <v>329</v> </b> <b> <a>2</a> @@ -10222,12 +10206,12 @@ <b> <a>137</a> <b>142</b> - <v>246</v> + <v>247</v> </b> <b> <a>142</a> <b>147</b> - <v>143</v> + <v>144</v> </b> <b> <a>147</a> @@ -10237,7 +10221,7 @@ <b> <a>148</a> <b>151</b> - <v>246</v> + <v>247</v> </b> <b> <a>151</a> @@ -10268,7 +10252,7 @@ <b> <a>4</a> <b>8</b> - <v>246</v> + <v>247</v> </b> <b> <a>8</a> @@ -10344,17 +10328,17 @@ <b> <a>4</a> <b>9</b> - <v>246</v> + <v>247</v> </b> <b> <a>9</a> <b>14</b> - <v>246</v> + <v>247</v> </b> <b> <a>14</a> <b>22</b> - <v>246</v> + <v>247</v> </b> <b> <a>23</a> @@ -10415,7 +10399,7 @@ <b> <a>4</a> <b>8</b> - <v>246</v> + <v>247</v> </b> <b> <a>8</a> @@ -10475,23 +10459,23 @@ </relation> <relation> <name>numlines</name> - <cardinality>1380918</cardinality> + <cardinality>1382466</cardinality> <columnsizes> <e> <k>element_id</k> - <v>1373930</v> + <v>1375469</v> </e> <e> <k>num_lines</k> - <v>101565</v> + <v>101679</v> </e> <e> <k>num_code</k> - <v>84793</v> + <v>84888</v> </e> <e> <k>num_comment</k> - <v>59634</v> + <v>59701</v> </e> </columnsizes> <dependencies> @@ -10505,12 +10489,12 @@ <b> <a>1</a> <b>2</b> - <v>1366941</v> + <v>1368473</v> </b> <b> <a>2</a> <b>3</b> - <v>6988</v> + <v>6996</v> </b> </bs> </hist> @@ -10526,12 +10510,12 @@ <b> <a>1</a> <b>2</b> - <v>1367873</v> + <v>1369406</v> </b> <b> <a>2</a> <b>3</b> - <v>6056</v> + <v>6063</v> </b> </bs> </hist> @@ -10547,7 +10531,7 @@ <b> <a>1</a> <b>2</b> - <v>1373930</v> + <v>1375469</v> </b> </bs> </hist> @@ -10563,27 +10547,27 @@ <b> <a>1</a> <b>2</b> - <v>68020</v> + <v>68097</v> </b> <b> <a>2</a> <b>3</b> - <v>12113</v> + <v>12126</v> </b> <b> <a>3</a> <b>4</b> - <v>7454</v> + <v>7462</v> </b> <b> <a>4</a> <b>21</b> - <v>7920</v> + <v>7929</v> </b> <b> <a>29</a> <b>921</b> - <v>6056</v> + <v>6063</v> </b> </bs> </hist> @@ -10599,27 +10583,27 @@ <b> <a>1</a> <b>2</b> - <v>70350</v> + <v>70429</v> </b> <b> <a>2</a> <b>3</b> - <v>12113</v> + <v>12126</v> </b> <b> <a>3</a> <b>4</b> - <v>8386</v> + <v>8395</v> </b> <b> <a>4</a> <b>6</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>6</a> <b>7</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -10635,22 +10619,22 @@ <b> <a>1</a> <b>2</b> - <v>69418</v> + <v>69496</v> </b> <b> <a>2</a> <b>3</b> - <v>14908</v> + <v>14925</v> </b> <b> <a>3</a> <b>4</b> - <v>10715</v> + <v>10727</v> </b> <b> <a>4</a> <b>7</b> - <v>6522</v> + <v>6529</v> </b> </bs> </hist> @@ -10666,27 +10650,27 @@ <b> <a>1</a> <b>2</b> - <v>52646</v> + <v>52705</v> </b> <b> <a>2</a> <b>3</b> - <v>14442</v> + <v>14458</v> </b> <b> <a>3</a> <b>5</b> - <v>6522</v> + <v>6529</v> </b> <b> <a>5</a> <b>42</b> - <v>6522</v> + <v>6529</v> </b> <b> <a>44</a> <b>922</b> - <v>4658</v> + <v>4664</v> </b> </bs> </hist> @@ -10702,27 +10686,27 @@ <b> <a>1</a> <b>2</b> - <v>52646</v> + <v>52705</v> </b> <b> <a>2</a> <b>3</b> - <v>16772</v> + <v>16791</v> </b> <b> <a>3</a> <b>5</b> - <v>6056</v> + <v>6063</v> </b> <b> <a>5</a> <b>8</b> - <v>6522</v> + <v>6529</v> </b> <b> <a>8</a> <b>12</b> - <v>2795</v> + <v>2798</v> </b> </bs> </hist> @@ -10738,27 +10722,27 @@ <b> <a>1</a> <b>2</b> - <v>53112</v> + <v>53171</v> </b> <b> <a>2</a> <b>3</b> - <v>15840</v> + <v>15858</v> </b> <b> <a>3</a> <b>5</b> - <v>7454</v> + <v>7462</v> </b> <b> <a>5</a> <b>7</b> - <v>5124</v> + <v>5130</v> </b> <b> <a>7</a> <b>10</b> - <v>3261</v> + <v>3264</v> </b> </bs> </hist> @@ -10774,32 +10758,32 @@ <b> <a>1</a> <b>2</b> - <v>34476</v> + <v>34515</v> </b> <b> <a>2</a> <b>3</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>3</a> <b>4</b> - <v>4193</v> + <v>4197</v> </b> <b> <a>4</a> <b>6</b> - <v>4658</v> + <v>4664</v> </b> <b> <a>6</a> <b>11</b> - <v>5124</v> + <v>5130</v> </b> <b> <a>17</a> <b>2596</b> - <v>1863</v> + <v>1865</v> </b> </bs> </hist> @@ -10815,32 +10799,32 @@ <b> <a>1</a> <b>2</b> - <v>34476</v> + <v>34515</v> </b> <b> <a>2</a> <b>3</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>3</a> <b>4</b> - <v>4193</v> + <v>4197</v> </b> <b> <a>4</a> <b>6</b> - <v>4658</v> + <v>4664</v> </b> <b> <a>6</a> <b>8</b> - <v>4658</v> + <v>4664</v> </b> <b> <a>10</a> <b>38</b> - <v>2329</v> + <v>2332</v> </b> </bs> </hist> @@ -10856,32 +10840,32 @@ <b> <a>1</a> <b>2</b> - <v>34476</v> + <v>34515</v> </b> <b> <a>2</a> <b>3</b> - <v>9317</v> + <v>9328</v> </b> <b> <a>3</a> <b>4</b> - <v>4193</v> + <v>4197</v> </b> <b> <a>4</a> <b>6</b> - <v>4658</v> + <v>4664</v> </b> <b> <a>6</a> <b>10</b> - <v>4658</v> + <v>4664</v> </b> <b> <a>10</a> <b>37</b> - <v>2329</v> + <v>2332</v> </b> </bs> </hist> @@ -10891,11 +10875,11 @@ </relation> <relation> <name>diagnostics</name> - <cardinality>5192</cardinality> + <cardinality>5013</cardinality> <columnsizes> <e> <k>id</k> - <v>5192</v> + <v>5013</v> </e> <e> <k>severity</k> @@ -10903,19 +10887,19 @@ </e> <e> <k>error_tag</k> - <v>39</v> + <v>38</v> </e> <e> <k>error_message</k> - <v>414</v> + <v>400</v> </e> <e> <k>full_error_message</k> - <v>4362</v> + <v>4213</v> </e> <e> <k>location</k> - <v>177</v> + <v>171</v> </e> </columnsizes> <dependencies> @@ -10929,7 +10913,7 @@ <b> <a>1</a> <b>2</b> - <v>5192</v> + <v>5013</v> </b> </bs> </hist> @@ -10945,7 +10929,7 @@ <b> <a>1</a> <b>2</b> - <v>5192</v> + <v>5013</v> </b> </bs> </hist> @@ -10961,7 +10945,7 @@ <b> <a>1</a> <b>2</b> - <v>5192</v> + <v>5013</v> </b> </bs> </hist> @@ -10977,7 +10961,7 @@ <b> <a>1</a> <b>2</b> - <v>5192</v> + <v>5013</v> </b> </bs> </hist> @@ -10993,7 +10977,7 @@ <b> <a>1</a> <b>2</b> - <v>5192</v> + <v>5013</v> </b> </bs> </hist> @@ -11110,7 +11094,7 @@ <b> <a>1</a> <b>2</b> - <v>39</v> + <v>38</v> </b> </bs> </hist> @@ -11189,17 +11173,17 @@ <b> <a>1</a> <b>2</b> - <v>118</v> + <v>114</v> </b> <b> <a>2</a> <b>3</b> - <v>157</v> + <v>152</v> </b> <b> <a>3</a> <b>4</b> - <v>78</v> + <v>76</v> </b> <b> <a>43</a> @@ -11209,7 +11193,7 @@ <b> <a>93</a> <b>94</b> - <v>39</v> + <v>38</v> </b> </bs> </hist> @@ -11225,7 +11209,7 @@ <b> <a>1</a> <b>2</b> - <v>414</v> + <v>400</v> </b> </bs> </hist> @@ -11241,7 +11225,7 @@ <b> <a>1</a> <b>2</b> - <v>414</v> + <v>400</v> </b> </bs> </hist> @@ -11257,22 +11241,22 @@ <b> <a>1</a> <b>2</b> - <v>138</v> + <v>133</v> </b> <b> <a>2</a> <b>3</b> - <v>157</v> + <v>152</v> </b> <b> <a>3</a> <b>4</b> - <v>78</v> + <v>76</v> </b> <b> <a>93</a> <b>94</b> - <v>39</v> + <v>38</v> </b> </bs> </hist> @@ -11288,22 +11272,22 @@ <b> <a>1</a> <b>2</b> - <v>177</v> + <v>171</v> </b> <b> <a>2</a> <b>3</b> - <v>118</v> + <v>114</v> </b> <b> <a>3</a> <b>4</b> - <v>78</v> + <v>76</v> </b> <b> <a>4</a> <b>5</b> - <v>39</v> + <v>38</v> </b> </bs> </hist> @@ -11319,7 +11303,7 @@ <b> <a>1</a> <b>2</b> - <v>4343</v> + <v>4194</v> </b> <b> <a>43</a> @@ -11340,7 +11324,7 @@ <b> <a>1</a> <b>2</b> - <v>4362</v> + <v>4213</v> </b> </bs> </hist> @@ -11356,7 +11340,7 @@ <b> <a>1</a> <b>2</b> - <v>4362</v> + <v>4213</v> </b> </bs> </hist> @@ -11372,7 +11356,7 @@ <b> <a>1</a> <b>2</b> - <v>4362</v> + <v>4213</v> </b> </bs> </hist> @@ -11388,7 +11372,7 @@ <b> <a>1</a> <b>2</b> - <v>4362</v> + <v>4213</v> </b> </bs> </hist> @@ -11404,17 +11388,17 @@ <b> <a>6</a> <b>7</b> - <v>39</v> + <v>38</v> </b> <b> <a>22</a> <b>23</b> - <v>39</v> + <v>38</v> </b> <b> <a>41</a> <b>42</b> - <v>78</v> + <v>76</v> </b> <b> <a>43</a> @@ -11435,7 +11419,7 @@ <b> <a>1</a> <b>2</b> - <v>177</v> + <v>171</v> </b> </bs> </hist> @@ -11451,7 +11435,7 @@ <b> <a>1</a> <b>2</b> - <v>177</v> + <v>171</v> </b> </bs> </hist> @@ -11472,17 +11456,17 @@ <b> <a>3</a> <b>4</b> - <v>39</v> + <v>38</v> </b> <b> <a>5</a> <b>6</b> - <v>39</v> + <v>38</v> </b> <b> <a>6</a> <b>7</b> - <v>78</v> + <v>76</v> </b> </bs> </hist> @@ -11503,17 +11487,17 @@ <b> <a>6</a> <b>7</b> - <v>39</v> + <v>38</v> </b> <b> <a>22</a> <b>23</b> - <v>39</v> + <v>38</v> </b> <b> <a>41</a> <b>42</b> - <v>78</v> + <v>76</v> </b> </bs> </hist> @@ -11523,15 +11507,15 @@ </relation> <relation> <name>files</name> - <cardinality>122996</cardinality> + <cardinality>123134</cardinality> <columnsizes> <e> <k>id</k> - <v>122996</v> + <v>123134</v> </e> <e> <k>name</k> - <v>122996</v> + <v>123134</v> </e> </columnsizes> <dependencies> @@ -11545,7 +11529,7 @@ <b> <a>1</a> <b>2</b> - <v>122996</v> + <v>123134</v> </b> </bs> </hist> @@ -11561,7 +11545,7 @@ <b> <a>1</a> <b>2</b> - <v>122996</v> + <v>123134</v> </b> </bs> </hist> @@ -11571,15 +11555,15 @@ </relation> <relation> <name>folders</name> - <cardinality>15374</cardinality> + <cardinality>16324</cardinality> <columnsizes> <e> <k>id</k> - <v>15374</v> + <v>16324</v> </e> <e> <k>name</k> - <v>15374</v> + <v>16324</v> </e> </columnsizes> <dependencies> @@ -11593,7 +11577,7 @@ <b> <a>1</a> <b>2</b> - <v>15374</v> + <v>16324</v> </b> </bs> </hist> @@ -11609,7 +11593,7 @@ <b> <a>1</a> <b>2</b> - <v>15374</v> + <v>16324</v> </b> </bs> </hist> @@ -11619,15 +11603,15 @@ </relation> <relation> <name>containerparent</name> - <cardinality>137439</cardinality> + <cardinality>138526</cardinality> <columnsizes> <e> <k>parent</k> - <v>15374</v> + <v>16324</v> </e> <e> <k>child</k> - <v>137439</v> + <v>138526</v> </e> </columnsizes> <dependencies> @@ -11641,32 +11625,32 @@ <b> <a>1</a> <b>2</b> - <v>6522</v> + <v>7462</v> </b> <b> <a>2</a> <b>3</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>3</a> - <b>5</b> - <v>1397</v> + <b>4</b> + <v>1399</v> </b> <b> - <a>5</a> + <a>4</a> <b>12</b> - <v>1397</v> + <v>1399</v> </b> <b> <a>23</a> <b>28</b> - <v>1397</v> + <v>1399</v> </b> <b> <a>40</a> <b>67</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -11682,7 +11666,7 @@ <b> <a>1</a> <b>2</b> - <v>137439</v> + <v>138526</v> </b> </bs> </hist> @@ -11692,11 +11676,11 @@ </relation> <relation> <name>fileannotations</name> - <cardinality>5104924</cardinality> + <cardinality>5084962</cardinality> <columnsizes> <e> <k>id</k> - <v>4875</v> + <v>4856</v> </e> <e> <k>kind</k> @@ -11704,11 +11688,11 @@ </e> <e> <k>name</k> - <v>54511</v> + <v>54298</v> </e> <e> <k>value</k> - <v>45826</v> + <v>45647</v> </e> </columnsizes> <dependencies> @@ -11722,12 +11706,12 @@ <b> <a>1</a> <b>2</b> - <v>168</v> + <v>167</v> </b> <b> <a>2</a> <b>3</b> - <v>4707</v> + <v>4688</v> </b> </bs> </hist> @@ -11743,42 +11727,42 @@ <b> <a>1</a> <b>102</b> - <v>381</v> + <v>380</v> </b> <b> <a>102</a> <b>225</b> - <v>370</v> + <v>369</v> </b> <b> <a>227</a> <b>299</b> - <v>370</v> + <v>369</v> </b> <b> <a>301</a> <b>452</b> - <v>393</v> + <v>391</v> </b> <b> <a>452</a> <b>555</b> - <v>370</v> + <v>369</v> </b> <b> <a>559</a> <b>626</b> - <v>370</v> + <v>369</v> </b> <b> <a>626</a> <b>716</b> - <v>370</v> + <v>369</v> </b> <b> <a>729</a> <b>904</b> - <v>370</v> + <v>369</v> </b> <b> <a>904</a> @@ -11788,12 +11772,12 @@ <b> <a>936</a> <b>937</b> - <v>1415</v> + <v>1410</v> </b> <b> <a>1083</a> <b>2036</b> - <v>370</v> + <v>369</v> </b> <b> <a>2293</a> @@ -11814,52 +11798,52 @@ <b> <a>1</a> <b>114</b> - <v>381</v> + <v>380</v> </b> <b> <a>114</a> <b>275</b> - <v>370</v> + <v>369</v> </b> <b> <a>275</a> <b>363</b> - <v>370</v> + <v>369</v> </b> <b> <a>393</a> <b>638</b> - <v>370</v> + <v>369</v> </b> <b> <a>643</a> <b>744</b> - <v>370</v> + <v>369</v> </b> <b> <a>751</a> <b>955</b> - <v>370</v> + <v>369</v> </b> <b> <a>955</a> <b>1087</b> - <v>370</v> + <v>369</v> </b> <b> <a>1088</a> <b>1501</b> - <v>247</v> + <v>246</v> </b> <b> <a>1501</a> <b>1502</b> - <v>1415</v> + <v>1410</v> </b> <b> <a>1504</a> <b>1874</b> - <v>370</v> + <v>369</v> </b> <b> <a>1972</a> @@ -11943,62 +11927,62 @@ <b> <a>1</a> <b>2</b> - <v>8819</v> + <v>8784</v> </b> <b> <a>2</a> <b>3</b> - <v>6190</v> + <v>6166</v> </b> <b> <a>3</a> <b>5</b> - <v>4156</v> + <v>4140</v> </b> <b> <a>5</a> <b>9</b> - <v>4246</v> + <v>4230</v> </b> <b> <a>9</a> <b>14</b> - <v>3965</v> + <v>3950</v> </b> <b> <a>14</a> <b>18</b> - <v>4156</v> + <v>4140</v> </b> <b> <a>18</a> <b>20</b> - <v>4696</v> + <v>4677</v> </b> <b> <a>20</a> <b>34</b> - <v>4201</v> + <v>4185</v> </b> <b> <a>34</a> <b>128</b> - <v>4482</v> + <v>4465</v> </b> <b> <a>128</a> <b>229</b> - <v>4100</v> + <v>4084</v> </b> <b> <a>229</a> <b>387</b> - <v>4224</v> + <v>4207</v> </b> <b> <a>387</a> <b>434</b> - <v>1269</v> + <v>1264</v> </b> </bs> </hist> @@ -12014,7 +11998,7 @@ <b> <a>1</a> <b>2</b> - <v>54511</v> + <v>54298</v> </b> </bs> </hist> @@ -12030,62 +12014,62 @@ <b> <a>1</a> <b>2</b> - <v>8830</v> + <v>8796</v> </b> <b> <a>2</a> <b>3</b> - <v>8021</v> + <v>7990</v> </b> <b> <a>3</a> <b>4</b> - <v>2550</v> + <v>2540</v> </b> <b> <a>4</a> <b>6</b> - <v>4493</v> + <v>4476</v> </b> <b> <a>6</a> <b>9</b> - <v>4111</v> + <v>4095</v> </b> <b> <a>9</a> <b>14</b> - <v>4190</v> + <v>4174</v> </b> <b> <a>14</a> <b>17</b> - <v>4111</v> + <v>4095</v> </b> <b> <a>17</a> <b>22</b> - <v>4572</v> + <v>4554</v> </b> <b> <a>22</a> <b>41</b> - <v>4190</v> + <v>4174</v> </b> <b> <a>41</a> <b>82</b> - <v>4145</v> + <v>4129</v> </b> <b> <a>82</a> <b>157</b> - <v>4089</v> + <v>4073</v> </b> <b> <a>158</a> <b>1895</b> - <v>1202</v> + <v>1197</v> </b> </bs> </hist> @@ -12101,67 +12085,67 @@ <b> <a>1</a> <b>2</b> - <v>7122</v> + <v>7095</v> </b> <b> <a>2</a> <b>5</b> - <v>2224</v> + <v>2215</v> </b> <b> <a>5</a> <b>8</b> - <v>3314</v> + <v>3301</v> </b> <b> <a>8</a> <b>15</b> - <v>3516</v> + <v>3502</v> </b> <b> <a>15</a> <b>17</b> - <v>2527</v> + <v>2517</v> </b> <b> <a>17</a> <b>19</b> - <v>4123</v> + <v>4107</v> </b> <b> <a>19</a> <b>34</b> - <v>3314</v> + <v>3301</v> </b> <b> <a>34</a> <b>189</b> - <v>3606</v> + <v>3592</v> </b> <b> <a>189</a> <b>201</b> - <v>3595</v> + <v>3581</v> </b> <b> <a>201</a> <b>266</b> - <v>3538</v> + <v>3525</v> </b> <b> <a>266</a> <b>321</b> - <v>3662</v> + <v>3648</v> </b> <b> <a>322</a> <b>399</b> - <v>3932</v> + <v>3916</v> </b> <b> <a>399</a> <b>435</b> - <v>1348</v> + <v>1342</v> </b> </bs> </hist> @@ -12177,7 +12161,7 @@ <b> <a>1</a> <b>2</b> - <v>45815</v> + <v>45636</v> </b> <b> <a>2</a> @@ -12198,67 +12182,67 @@ <b> <a>1</a> <b>2</b> - <v>7145</v> + <v>7117</v> </b> <b> <a>2</a> <b>5</b> - <v>2572</v> + <v>2562</v> </b> <b> <a>5</a> <b>8</b> - <v>3494</v> + <v>3480</v> </b> <b> <a>8</a> <b>15</b> - <v>3538</v> + <v>3525</v> </b> <b> <a>15</a> <b>17</b> - <v>2819</v> + <v>2808</v> </b> <b> <a>17</a> <b>19</b> - <v>3572</v> + <v>3558</v> </b> <b> <a>19</a> <b>29</b> - <v>3494</v> + <v>3480</v> </b> <b> <a>29</a> <b>39</b> - <v>3651</v> + <v>3637</v> </b> <b> <a>39</a> <b>48</b> - <v>3595</v> + <v>3581</v> </b> <b> <a>48</a> <b>74</b> - <v>3550</v> + <v>3536</v> </b> <b> <a>74</a> <b>102</b> - <v>3437</v> + <v>3424</v> </b> <b> <a>102</a> <b>119</b> - <v>3583</v> + <v>3569</v> </b> <b> <a>119</a> <b>146</b> - <v>1370</v> + <v>1365</v> </b> </bs> </hist> @@ -12268,15 +12252,15 @@ </relation> <relation> <name>inmacroexpansion</name> - <cardinality>109622207</cardinality> + <cardinality>109785545</cardinality> <columnsizes> <e> <k>id</k> - <v>18001590</v> + <v>18028412</v> </e> <e> <k>inv</k> - <v>2696311</v> + <v>2700329</v> </e> </columnsizes> <dependencies> @@ -12290,37 +12274,37 @@ <b> <a>1</a> <b>3</b> - <v>1579695</v> + <v>1582049</v> </b> <b> <a>3</a> <b>5</b> - <v>1076257</v> + <v>1077861</v> </b> <b> <a>5</a> <b>6</b> - <v>1183189</v> + <v>1184952</v> </b> <b> <a>6</a> <b>7</b> - <v>4813034</v> + <v>4820205</v> </b> <b> <a>7</a> <b>8</b> - <v>6376831</v> + <v>6386332</v> </b> <b> <a>8</a> <b>9</b> - <v>2601529</v> + <v>2605405</v> </b> <b> <a>9</a> <b>21</b> - <v>371052</v> + <v>371604</v> </b> </bs> </hist> @@ -12336,57 +12320,57 @@ <b> <a>1</a> <b>2</b> - <v>377884</v> + <v>378447</v> </b> <b> <a>2</a> <b>3</b> - <v>543330</v> + <v>544135</v> </b> <b> <a>3</a> <b>4</b> - <v>351012</v> + <v>351535</v> </b> <b> <a>4</a> <b>7</b> - <v>200372</v> + <v>200670</v> </b> <b> <a>7</a> <b>8</b> - <v>206856</v> + <v>207164</v> </b> <b> <a>8</a> <b>9</b> - <v>241543</v> + <v>241902</v> </b> <b> <a>9</a> <b>10</b> - <v>2207</v> + <v>2210</v> </b> <b> <a>10</a> <b>11</b> - <v>325021</v> + <v>325505</v> </b> <b> <a>11</a> <b>337</b> - <v>224525</v> + <v>224864</v> </b> <b> <a>339</a> <b>423</b> - <v>206058</v> + <v>206365</v> </b> <b> <a>423</a> <b>7616</b> - <v>17499</v> + <v>17525</v> </b> </bs> </hist> @@ -12396,15 +12380,15 @@ </relation> <relation> <name>affectedbymacroexpansion</name> - <cardinality>35638060</cardinality> + <cardinality>35691161</cardinality> <columnsizes> <e> <k>id</k> - <v>5149370</v> + <v>5157043</v> </e> <e> <k>inv</k> - <v>2780793</v> + <v>2784936</v> </e> </columnsizes> <dependencies> @@ -12418,37 +12402,37 @@ <b> <a>1</a> <b>2</b> - <v>2811908</v> + <v>2816098</v> </b> <b> <a>2</a> <b>3</b> - <v>559328</v> + <v>560161</v> </b> <b> <a>3</a> <b>4</b> - <v>264527</v> + <v>264922</v> </b> <b> <a>4</a> <b>5</b> - <v>564985</v> + <v>565827</v> </b> <b> <a>5</a> <b>12</b> - <v>391343</v> + <v>391926</v> </b> <b> <a>12</a> <b>50</b> - <v>406819</v> + <v>407425</v> </b> <b> <a>50</a> <b>9900</b> - <v>150457</v> + <v>150681</v> </b> </bs> </hist> @@ -12464,67 +12448,67 @@ <b> <a>1</a> <b>4</b> - <v>228789</v> + <v>229130</v> </b> <b> <a>4</a> <b>7</b> - <v>231457</v> + <v>231802</v> </b> <b> <a>7</a> <b>9</b> - <v>220163</v> + <v>220491</v> </b> <b> <a>9</a> <b>12</b> - <v>250729</v> + <v>251102</v> </b> <b> <a>12</a> <b>13</b> - <v>333500</v> + <v>333997</v> </b> <b> <a>13</a> <b>14</b> - <v>165351</v> + <v>165598</v> </b> <b> <a>14</a> <b>15</b> - <v>298417</v> + <v>298861</v> </b> <b> <a>15</a> <b>16</b> - <v>121669</v> + <v>121850</v> </b> <b> <a>16</a> <b>17</b> - <v>276213</v> + <v>276624</v> </b> <b> <a>17</a> <b>18</b> - <v>146730</v> + <v>146949</v> </b> <b> <a>18</a> <b>20</b> - <v>251774</v> + <v>252149</v> </b> <b> <a>20</a> <b>25</b> - <v>208680</v> + <v>208991</v> </b> <b> <a>25</a> <b>109</b> - <v>47316</v> + <v>47386</v> </b> </bs> </hist> @@ -12534,19 +12518,19 @@ </relation> <relation> <name>macroinvocations</name> - <cardinality>33332083</cardinality> + <cardinality>33202987</cardinality> <columnsizes> <e> <k>id</k> - <v>33332083</v> + <v>33202987</v> </e> <e> <k>macro_id</k> - <v>79104</v> + <v>78795</v> </e> <e> <k>location</k> - <v>756755</v> + <v>753796</v> </e> <e> <k>kind</k> @@ -12564,7 +12548,7 @@ <b> <a>1</a> <b>2</b> - <v>33332083</v> + <v>33202987</v> </b> </bs> </hist> @@ -12580,7 +12564,7 @@ <b> <a>1</a> <b>2</b> - <v>33332083</v> + <v>33202987</v> </b> </bs> </hist> @@ -12596,7 +12580,7 @@ <b> <a>1</a> <b>2</b> - <v>33332083</v> + <v>33202987</v> </b> </bs> </hist> @@ -12612,57 +12596,57 @@ <b> <a>1</a> <b>2</b> - <v>16178</v> + <v>16114</v> </b> <b> <a>2</a> <b>3</b> - <v>16492</v> + <v>16428</v> </b> <b> <a>3</a> <b>4</b> - <v>3100</v> + <v>3088</v> </b> <b> <a>4</a> <b>5</b> - <v>5246</v> + <v>5226</v> </b> <b> <a>5</a> <b>8</b> - <v>5662</v> + <v>5640</v> </b> <b> <a>8</a> <b>13</b> - <v>6078</v> + <v>6054</v> </b> <b> <a>13</a> <b>26</b> - <v>6156</v> + <v>6121</v> </b> <b> <a>26</a> <b>61</b> - <v>6033</v> + <v>6009</v> </b> <b> <a>61</a> - <b>200</b> - <v>5954</v> + <b>199</b> + <v>5919</v> </b> <b> - <a>200</a> + <a>199</a> <b>1697</b> - <v>5965</v> + <v>5964</v> </b> <b> <a>1716</a> <b>168807</b> - <v>2235</v> + <v>2226</v> </b> </bs> </hist> @@ -12678,37 +12662,37 @@ <b> <a>1</a> <b>2</b> - <v>42265</v> + <v>42100</v> </b> <b> <a>2</a> <b>3</b> - <v>10347</v> + <v>10306</v> </b> <b> <a>3</a> <b>4</b> - <v>5134</v> + <v>5114</v> </b> <b> <a>4</a> <b>6</b> - <v>6808</v> + <v>6781</v> </b> <b> <a>6</a> <b>13</b> - <v>6448</v> + <v>6423</v> </b> <b> <a>13</a> <b>66</b> - <v>5976</v> + <v>5953</v> </b> <b> <a>66</a> <b>3614</b> - <v>2123</v> + <v>2115</v> </b> </bs> </hist> @@ -12724,12 +12708,12 @@ <b> <a>1</a> <b>2</b> - <v>73397</v> + <v>73110</v> </b> <b> <a>2</a> <b>3</b> - <v>5707</v> + <v>5684</v> </b> </bs> </hist> @@ -12745,42 +12729,37 @@ <b> <a>1</a> <b>2</b> - <v>279881</v> + <v>278787</v> </b> <b> <a>2</a> <b>3</b> - <v>168814</v> + <v>168154</v> </b> <b> <a>3</a> <b>4</b> - <v>70419</v> + <v>70144</v> </b> <b> <a>4</a> <b>5</b> - <v>60005</v> + <v>59770</v> </b> <b> <a>5</a> - <b>8</b> - <v>53679</v> + <b>9</b> + <v>69786</v> </b> <b> - <a>8</a> - <b>17</b> - <v>62544</v> + <a>9</a> + <b>21</b> + <v>58595</v> </b> <b> - <a>17</a> - <b>525</b> - <v>56769</v> - </b> - <b> - <a>534</a> + <a>21</a> <b>244764</b> - <v>4639</v> + <v>48557</v> </b> </bs> </hist> @@ -12796,12 +12775,12 @@ <b> <a>1</a> <b>2</b> - <v>710804</v> + <v>708025</v> </b> <b> <a>2</a> <b>350</b> - <v>45950</v> + <v>45770</v> </b> </bs> </hist> @@ -12817,7 +12796,7 @@ <b> <a>1</a> <b>2</b> - <v>756755</v> + <v>753796</v> </b> </bs> </hist> @@ -12836,8 +12815,8 @@ <v>11</v> </b> <b> - <a>2946191</a> - <b>2946192</b> + <a>2946302</a> + <b>2946303</b> <v>11</v> </b> </bs> @@ -12890,15 +12869,15 @@ </relation> <relation> <name>macroparent</name> - <cardinality>29807887</cardinality> + <cardinality>29691721</cardinality> <columnsizes> <e> <k>id</k> - <v>29807887</v> + <v>29691721</v> </e> <e> <k>parent_id</k> - <v>23175993</v> + <v>23085760</v> </e> </columnsizes> <dependencies> @@ -12912,7 +12891,7 @@ <b> <a>1</a> <b>2</b> - <v>29807887</v> + <v>29691721</v> </b> </bs> </hist> @@ -12928,17 +12907,17 @@ <b> <a>1</a> <b>2</b> - <v>17907074</v> + <v>17837443</v> </b> <b> <a>2</a> <b>3</b> - <v>4438249</v> + <v>4420895</v> </b> <b> <a>3</a> <b>88</b> - <v>830669</v> + <v>827421</v> </b> </bs> </hist> @@ -12948,15 +12927,15 @@ </relation> <relation> <name>macrolocationbind</name> - <cardinality>4037867</cardinality> + <cardinality>4044034</cardinality> <columnsizes> <e> <k>id</k> - <v>2826997</v> + <v>2831314</v> </e> <e> <k>location</k> - <v>2018105</v> + <v>2021186</v> </e> </columnsizes> <dependencies> @@ -12970,22 +12949,22 @@ <b> <a>1</a> <b>2</b> - <v>2226651</v> + <v>2230051</v> </b> <b> <a>2</a> <b>3</b> - <v>340625</v> + <v>341145</v> </b> <b> <a>3</a> <b>7</b> - <v>230187</v> + <v>230539</v> </b> <b> <a>7</a> <b>57</b> - <v>29533</v> + <v>29578</v> </b> </bs> </hist> @@ -13001,22 +12980,22 @@ <b> <a>1</a> <b>2</b> - <v>1608661</v> + <v>1611118</v> </b> <b> <a>2</a> <b>3</b> - <v>177421</v> + <v>177692</v> </b> <b> <a>3</a> <b>8</b> - <v>156639</v> + <v>156878</v> </b> <b> <a>8</a> <b>723</b> - <v>75382</v> + <v>75497</v> </b> </bs> </hist> @@ -13026,19 +13005,19 @@ </relation> <relation> <name>macro_argument_unexpanded</name> - <cardinality>84144991</cardinality> + <cardinality>83818746</cardinality> <columnsizes> <e> <k>invocation</k> - <v>26089756</v> + <v>25989002</v> </e> <e> <k>argument_index</k> - <v>741</v> + <v>738</v> </e> <e> <k>text</k> - <v>316788</v> + <v>315549</v> </e> </columnsizes> <dependencies> @@ -13052,22 +13031,22 @@ <b> <a>1</a> <b>2</b> - <v>7397659</v> + <v>7368800</v> </b> <b> <a>2</a> <b>3</b> - <v>10622885</v> + <v>10582220</v> </b> <b> <a>3</a> <b>4</b> - <v>6109677</v> + <v>6086111</v> </b> <b> <a>4</a> <b>67</b> - <v>1959533</v> + <v>1951870</v> </b> </bs> </hist> @@ -13083,22 +13062,22 @@ <b> <a>1</a> <b>2</b> - <v>7467484</v> + <v>7438351</v> </b> <b> <a>2</a> <b>3</b> - <v>10768736</v> + <v>10727500</v> </b> <b> <a>3</a> <b>4</b> - <v>5944143</v> + <v>5921224</v> </b> <b> <a>4</a> <b>67</b> - <v>1909392</v> + <v>1901925</v> </b> </bs> </hist> @@ -13114,16 +13093,16 @@ <b> <a>41230</a> <b>41231</b> - <v>651</v> + <v>649</v> </b> <b> <a>41432</a> <b>174417</b> - <v>56</v> + <v>55</v> </b> <b> - <a>718232</a> - <b>2322223</b> + <a>718261</a> + <b>2322336</b> <v>33</v> </b> </bs> @@ -13140,12 +13119,12 @@ <b> <a>2</a> <b>3</b> - <v>651</v> + <v>649</v> </b> <b> <a>13</a> <b>995</b> - <v>56</v> + <v>55</v> </b> <b> <a>6559</a> @@ -13166,57 +13145,57 @@ <b> <a>1</a> <b>2</b> - <v>34906</v> + <v>34770</v> </b> <b> <a>2</a> <b>3</b> - <v>60971</v> + <v>60732</v> </b> <b> <a>3</a> <b>4</b> - <v>17661</v> + <v>17592</v> </b> <b> <a>4</a> <b>5</b> - <v>44849</v> + <v>44674</v> </b> <b> <a>5</a> <b>7</b> - <v>23885</v> + <v>23713</v> </b> <b> <a>7</a> <b>12</b> - <v>18402</v> + <v>18364</v> </b> <b> <a>12</a> <b>16</b> - <v>21503</v> + <v>21430</v> </b> <b> <a>16</a> <b>23</b> - <v>24851</v> + <v>24765</v> </b> <b> <a>23</a> <b>42</b> - <v>24199</v> + <v>24116</v> </b> <b> <a>42</a> <b>129</b> - <v>23963</v> + <v>23870</v> </b> <b> <a>129</a> <b>522417</b> - <v>21593</v> + <v>21520</v> </b> </bs> </hist> @@ -13232,17 +13211,17 @@ <b> <a>1</a> <b>2</b> - <v>229100</v> + <v>228204</v> </b> <b> <a>2</a> <b>3</b> - <v>77452</v> + <v>77150</v> </b> <b> <a>3</a> <b>9</b> - <v>10234</v> + <v>10194</v> </b> </bs> </hist> @@ -13252,19 +13231,19 @@ </relation> <relation> <name>macro_argument_expanded</name> - <cardinality>84144991</cardinality> + <cardinality>83818746</cardinality> <columnsizes> <e> <k>invocation</k> - <v>26089756</v> + <v>25989002</v> </e> <e> <k>argument_index</k> - <v>741</v> + <v>738</v> </e> <e> <k>text</k> - <v>191980</v> + <v>191229</v> </e> </columnsizes> <dependencies> @@ -13278,22 +13257,22 @@ <b> <a>1</a> <b>2</b> - <v>7397659</v> + <v>7368800</v> </b> <b> <a>2</a> <b>3</b> - <v>10622885</v> + <v>10582220</v> </b> <b> <a>3</a> <b>4</b> - <v>6109677</v> + <v>6086111</v> </b> <b> <a>4</a> <b>67</b> - <v>1959533</v> + <v>1951870</v> </b> </bs> </hist> @@ -13309,22 +13288,22 @@ <b> <a>1</a> <b>2</b> - <v>10638704</v> + <v>10597171</v> </b> <b> <a>2</a> <b>3</b> - <v>9157482</v> + <v>9122547</v> </b> <b> <a>3</a> <b>4</b> - <v>5183073</v> + <v>5163131</v> </b> <b> <a>4</a> <b>9</b> - <v>1110494</v> + <v>1106152</v> </b> </bs> </hist> @@ -13340,16 +13319,16 @@ <b> <a>41230</a> <b>41231</b> - <v>651</v> + <v>649</v> </b> <b> <a>41432</a> <b>174417</b> - <v>56</v> + <v>55</v> </b> <b> - <a>718232</a> - <b>2322223</b> + <a>718261</a> + <b>2322336</b> <v>33</v> </b> </bs> @@ -13366,12 +13345,12 @@ <b> <a>1</a> <b>2</b> - <v>640</v> + <v>637</v> </b> <b> <a>2</a> <b>76</b> - <v>56</v> + <v>55</v> </b> <b> <a>870</a> @@ -13392,62 +13371,62 @@ <b> <a>1</a> <b>2</b> - <v>20694</v> + <v>20613</v> </b> <b> <a>2</a> <b>3</b> - <v>37131</v> + <v>36985</v> </b> <b> <a>3</a> <b>4</b> - <v>9021</v> + <v>8986</v> </b> <b> <a>4</a> <b>5</b> - <v>16301</v> + <v>16237</v> </b> <b> <a>5</a> <b>6</b> - <v>2471</v> + <v>2394</v> </b> <b> <a>6</a> <b>7</b> - <v>22750</v> + <v>22650</v> </b> <b> <a>7</a> <b>9</b> - <v>14695</v> + <v>14671</v> </b> <b> <a>9</a> <b>14</b> - <v>11976</v> + <v>11940</v> </b> <b> <a>14</a> <b>19</b> - <v>14504</v> + <v>14425</v> </b> <b> <a>19</a> - <b>49</b> - <v>15739</v> + <b>48</b> + <v>14346</v> </b> <b> - <a>49</a> - <b>169</b> - <v>14414</v> + <a>48</a> + <b>151</b> + <v>14357</v> </b> <b> - <a>169</a> + <a>152</a> <b>1060462</b> - <v>12279</v> + <v>13619</v> </b> </bs> </hist> @@ -13463,17 +13442,17 @@ <b> <a>1</a> <b>2</b> - <v>97158</v> + <v>96778</v> </b> <b> <a>2</a> <b>3</b> - <v>80486</v> + <v>80171</v> </b> <b> <a>3</a> <b>66</b> - <v>14335</v> + <v>14279</v> </b> </bs> </hist> @@ -13483,19 +13462,19 @@ </relation> <relation> <name>functions</name> - <cardinality>4640799</cardinality> + <cardinality>4646000</cardinality> <columnsizes> <e> <k>id</k> - <v>4640799</v> + <v>4646000</v> </e> <e> <k>name</k> - <v>1915302</v> + <v>1916982</v> </e> <e> <k>kind</k> - <v>3261</v> + <v>3264</v> </e> </columnsizes> <dependencies> @@ -13509,7 +13488,7 @@ <b> <a>1</a> <b>2</b> - <v>4640799</v> + <v>4646000</v> </b> </bs> </hist> @@ -13525,7 +13504,7 @@ <b> <a>1</a> <b>2</b> - <v>4640799</v> + <v>4646000</v> </b> </bs> </hist> @@ -13541,22 +13520,22 @@ <b> <a>1</a> <b>2</b> - <v>1502983</v> + <v>1504201</v> </b> <b> <a>2</a> <b>3</b> - <v>151882</v> + <v>152052</v> </b> <b> <a>3</a> <b>5</b> - <v>150018</v> + <v>150186</v> </b> <b> <a>5</a> <b>1676</b> - <v>110417</v> + <v>110541</v> </b> </bs> </hist> @@ -13572,12 +13551,12 @@ <b> <a>1</a> <b>2</b> - <v>1914836</v> + <v>1916516</v> </b> <b> <a>2</a> <b>3</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -13593,37 +13572,37 @@ <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>64</a> <b>65</b> - <v>465</v> + <v>466</v> </b> <b> <a>173</a> <b>174</b> - <v>465</v> + <v>466</v> </b> <b> <a>195</a> <b>196</b> - <v>465</v> + <v>466</v> </b> <b> <a>1354</a> <b>1355</b> - <v>465</v> + <v>466</v> </b> <b> <a>2382</a> <b>2383</b> - <v>465</v> + <v>466</v> </b> <b> <a>5789</a> <b>5790</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -13639,37 +13618,37 @@ <b> <a>2</a> <b>3</b> - <v>465</v> + <v>466</v> </b> <b> <a>33</a> <b>34</b> - <v>465</v> + <v>466</v> </b> <b> - <a>39</a> - <b>40</b> - <v>465</v> + <a>38</a> + <b>39</b> + <v>466</v> </b> <b> <a>94</a> <b>95</b> - <v>465</v> + <v>466</v> </b> <b> <a>195</a> <b>196</b> - <v>465</v> + <v>466</v> </b> <b> <a>245</a> <b>246</b> - <v>465</v> + <v>466</v> </b> <b> <a>3504</a> <b>3505</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -13679,15 +13658,15 @@ </relation> <relation> <name>function_entry_point</name> - <cardinality>1155424</cardinality> + <cardinality>1156719</cardinality> <columnsizes> <e> <k>id</k> - <v>1145640</v> + <v>1146924</v> </e> <e> <k>entry_point</k> - <v>1155424</v> + <v>1156719</v> </e> </columnsizes> <dependencies> @@ -13701,12 +13680,12 @@ <b> <a>1</a> <b>2</b> - <v>1135856</v> + <v>1137129</v> </b> <b> <a>2</a> <b>3</b> - <v>9783</v> + <v>9794</v> </b> </bs> </hist> @@ -13722,7 +13701,7 @@ <b> <a>1</a> <b>2</b> - <v>1155424</v> + <v>1156719</v> </b> </bs> </hist> @@ -13732,15 +13711,15 @@ </relation> <relation> <name>function_return_type</name> - <cardinality>4645924</cardinality> + <cardinality>4651131</cardinality> <columnsizes> <e> <k>id</k> - <v>4640799</v> + <v>4646000</v> </e> <e> <k>return_type</k> - <v>986303</v> + <v>987409</v> </e> </columnsizes> <dependencies> @@ -13754,12 +13733,12 @@ <b> <a>1</a> <b>2</b> - <v>4635674</v> + <v>4640870</v> </b> <b> <a>2</a> <b>3</b> - <v>5124</v> + <v>5130</v> </b> </bs> </hist> @@ -13775,22 +13754,22 @@ <b> <a>1</a> <b>2</b> - <v>509691</v> + <v>510262</v> </b> <b> <a>2</a> <b>3</b> - <v>375512</v> + <v>375933</v> </b> <b> <a>3</a> <b>10</b> - <v>75009</v> + <v>75093</v> </b> <b> <a>10</a> <b>2516</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -13808,7 +13787,7 @@ </e> <e> <k>traits</k> - <v>2</v> + <v>1</v> </e> <e> <k>handle</k> @@ -13876,9 +13855,9 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> - <v>2</v> + <a>2</a> + <b>3</b> + <v>1</v> </b> </bs> </hist> @@ -13892,9 +13871,9 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> - <v>2</v> + <a>2</a> + <b>3</b> + <v>1</v> </b> </bs> </hist> @@ -13908,9 +13887,9 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> - <v>2</v> + <a>2</a> + <b>3</b> + <v>1</v> </b> </bs> </hist> @@ -14112,59 +14091,59 @@ </relation> <relation> <name>purefunctions</name> - <cardinality>100915</cardinality> + <cardinality>100917</cardinality> <columnsizes> <e> <k>id</k> - <v>100915</v> + <v>100917</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>function_deleted</name> - <cardinality>137439</cardinality> + <cardinality>137593</cardinality> <columnsizes> <e> <k>id</k> - <v>137439</v> + <v>137593</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>function_defaulted</name> - <cardinality>73611</cardinality> + <cardinality>73694</cardinality> <columnsizes> <e> <k>id</k> - <v>73611</v> + <v>73694</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>function_prototyped</name> - <cardinality>4549018</cardinality> + <cardinality>4554116</cardinality> <columnsizes> <e> <k>id</k> - <v>4549018</v> + <v>4554116</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>member_function_this_type</name> - <cardinality>551738</cardinality> + <cardinality>546094</cardinality> <columnsizes> <e> <k>id</k> - <v>551738</v> + <v>546094</v> </e> <e> <k>this_type</k> - <v>189340</v> + <v>187436</v> </e> </columnsizes> <dependencies> @@ -14178,7 +14157,7 @@ <b> <a>1</a> <b>2</b> - <v>551738</v> + <v>546094</v> </b> </bs> </hist> @@ -14194,32 +14173,32 @@ <b> <a>1</a> <b>2</b> - <v>68329</v> + <v>67674</v> </b> <b> <a>2</a> <b>3</b> - <v>45365</v> + <v>44849</v> </b> <b> <a>3</a> <b>4</b> - <v>30454</v> + <v>30201</v> </b> <b> <a>4</a> <b>5</b> - <v>15508</v> + <v>15344</v> </b> <b> <a>5</a> <b>7</b> - <v>15543</v> + <v>15379</v> </b> <b> <a>7</a> <b>66</b> - <v>14137</v> + <v>13987</v> </b> </bs> </hist> @@ -14229,27 +14208,27 @@ </relation> <relation> <name>fun_decls</name> - <cardinality>5009324</cardinality> + <cardinality>5014938</cardinality> <columnsizes> <e> <k>id</k> - <v>5004199</v> + <v>5009807</v> </e> <e> <k>function</k> - <v>4497303</v> + <v>4502343</v> </e> <e> <k>type_id</k> - <v>984906</v> + <v>986009</v> </e> <e> <k>name</k> - <v>1817930</v> + <v>1819500</v> </e> <e> <k>location</k> - <v>3414558</v> + <v>3418385</v> </e> </columnsizes> <dependencies> @@ -14263,7 +14242,7 @@ <b> <a>1</a> <b>2</b> - <v>5004199</v> + <v>5009807</v> </b> </bs> </hist> @@ -14279,12 +14258,12 @@ <b> <a>1</a> <b>2</b> - <v>4999074</v> + <v>5004676</v> </b> <b> <a>2</a> <b>3</b> - <v>5124</v> + <v>5130</v> </b> </bs> </hist> @@ -14300,7 +14279,7 @@ <b> <a>1</a> <b>2</b> - <v>5004199</v> + <v>5009807</v> </b> </bs> </hist> @@ -14316,7 +14295,7 @@ <b> <a>1</a> <b>2</b> - <v>5004199</v> + <v>5009807</v> </b> </bs> </hist> @@ -14332,17 +14311,17 @@ <b> <a>1</a> <b>2</b> - <v>4069144</v> + <v>4073704</v> </b> <b> <a>2</a> <b>3</b> - <v>355479</v> + <v>355877</v> </b> <b> <a>3</a> <b>7</b> - <v>72679</v> + <v>72761</v> </b> </bs> </hist> @@ -14358,12 +14337,12 @@ <b> <a>1</a> <b>2</b> - <v>4457702</v> + <v>4462697</v> </b> <b> <a>2</a> <b>3</b> - <v>39601</v> + <v>39645</v> </b> </bs> </hist> @@ -14379,7 +14358,7 @@ <b> <a>1</a> <b>2</b> - <v>4497303</v> + <v>4502343</v> </b> </bs> </hist> @@ -14395,17 +14374,17 @@ <b> <a>1</a> <b>2</b> - <v>4125517</v> + <v>4130141</v> </b> <b> <a>2</a> <b>4</b> - <v>370853</v> + <v>371269</v> </b> <b> <a>5</a> <b>6</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -14421,22 +14400,22 @@ <b> <a>1</a> <b>2</b> - <v>435147</v> + <v>435635</v> </b> <b> <a>2</a> <b>3</b> - <v>437943</v> + <v>438433</v> </b> <b> <a>3</a> <b>8</b> - <v>75009</v> + <v>75093</v> </b> <b> <a>8</a> <b>2761</b> - <v>36805</v> + <v>36847</v> </b> </bs> </hist> @@ -14452,22 +14431,22 @@ <b> <a>1</a> <b>2</b> - <v>519009</v> + <v>519590</v> </b> <b> <a>2</a> <b>3</b> - <v>367126</v> + <v>367538</v> </b> <b> <a>3</a> <b>11</b> - <v>75475</v> + <v>75559</v> </b> <b> <a>11</a> <b>2477</b> - <v>23294</v> + <v>23320</v> </b> </bs> </hist> @@ -14483,17 +14462,17 @@ <b> <a>1</a> <b>2</b> - <v>857716</v> + <v>858677</v> </b> <b> <a>2</a> <b>5</b> - <v>89452</v> + <v>89552</v> </b> <b> <a>5</a> <b>823</b> - <v>37737</v> + <v>37779</v> </b> </bs> </hist> @@ -14509,22 +14488,22 @@ <b> <a>1</a> <b>2</b> - <v>753821</v> + <v>754666</v> </b> <b> <a>2</a> <b>3</b> - <v>131382</v> + <v>131530</v> </b> <b> <a>3</a> <b>10</b> - <v>74543</v> + <v>74627</v> </b> <b> <a>10</a> <b>2030</b> - <v>25158</v> + <v>25186</v> </b> </bs> </hist> @@ -14540,27 +14519,27 @@ <b> <a>1</a> <b>2</b> - <v>1233695</v> + <v>1234611</v> </b> <b> <a>2</a> <b>3</b> - <v>266493</v> + <v>266791</v> </b> <b> <a>3</a> <b>4</b> - <v>80600</v> + <v>80690</v> </b> <b> <a>4</a> <b>6</b> - <v>136507</v> + <v>136660</v> </b> <b> <a>6</a> <b>1710</b> - <v>100633</v> + <v>100746</v> </b> </bs> </hist> @@ -14576,22 +14555,22 @@ <b> <a>1</a> <b>2</b> - <v>1412599</v> + <v>1413716</v> </b> <b> <a>2</a> <b>3</b> - <v>150950</v> + <v>151119</v> </b> <b> <a>3</a> <b>5</b> - <v>143962</v> + <v>144123</v> </b> <b> <a>5</a> <b>1660</b> - <v>110417</v> + <v>110541</v> </b> </bs> </hist> @@ -14607,17 +14586,17 @@ <b> <a>1</a> <b>2</b> - <v>1600356</v> + <v>1601216</v> </b> <b> <a>2</a> <b>4</b> - <v>134178</v> + <v>134795</v> </b> <b> <a>4</a> <b>930</b> - <v>83395</v> + <v>83489</v> </b> </bs> </hist> @@ -14633,27 +14612,27 @@ <b> <a>1</a> <b>2</b> - <v>1254660</v> + <v>1255600</v> </b> <b> <a>2</a> <b>3</b> - <v>293515</v> + <v>293377</v> </b> <b> <a>3</a> <b>4</b> - <v>79202</v> + <v>79757</v> </b> <b> <a>4</a> <b>8</b> - <v>137439</v> + <v>137593</v> </b> <b> <a>8</a> <b>653</b> - <v>53112</v> + <v>53171</v> </b> </bs> </hist> @@ -14669,17 +14648,17 @@ <b> <a>1</a> <b>2</b> - <v>2958911</v> + <v>2962227</v> </b> <b> <a>2</a> <b>4</b> - <v>295844</v> + <v>296176</v> </b> <b> <a>4</a> <b>55</b> - <v>159802</v> + <v>159981</v> </b> </bs> </hist> @@ -14695,17 +14674,17 @@ <b> <a>1</a> <b>2</b> - <v>3026000</v> + <v>3029392</v> </b> <b> <a>2</a> <b>6</b> - <v>262299</v> + <v>262593</v> </b> <b> <a>6</a> <b>55</b> - <v>126258</v> + <v>126399</v> </b> </bs> </hist> @@ -14721,12 +14700,12 @@ <b> <a>1</a> <b>2</b> - <v>3204905</v> + <v>3208496</v> </b> <b> <a>2</a> <b>25</b> - <v>209653</v> + <v>209888</v> </b> </bs> </hist> @@ -14742,12 +14721,12 @@ <b> <a>1</a> <b>2</b> - <v>3242642</v> + <v>3246276</v> </b> <b> <a>2</a> <b>13</b> - <v>171915</v> + <v>172108</v> </b> </bs> </hist> @@ -14757,22 +14736,22 @@ </relation> <relation> <name>fun_def</name> - <cardinality>1933006</cardinality> + <cardinality>1935172</cardinality> <columnsizes> <e> <k>id</k> - <v>1933006</v> + <v>1935172</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>fun_specialized</name> - <cardinality>26090</cardinality> + <cardinality>26119</cardinality> <columnsizes> <e> <k>id</k> - <v>26090</v> + <v>26119</v> </e> </columnsizes> <dependencies/> @@ -14790,15 +14769,15 @@ </relation> <relation> <name>fun_decl_specifiers</name> - <cardinality>2900674</cardinality> + <cardinality>2903925</cardinality> <columnsizes> <e> <k>id</k> - <v>1686081</v> + <v>1687970</v> </e> <e> <k>name</k> - <v>2795</v> + <v>2798</v> </e> </columnsizes> <dependencies> @@ -14812,17 +14791,17 @@ <b> <a>1</a> <b>2</b> - <v>490123</v> + <v>490672</v> </b> <b> <a>2</a> <b>3</b> - <v>1177321</v> + <v>1178641</v> </b> <b> <a>3</a> <b>4</b> - <v>18635</v> + <v>18656</v> </b> </bs> </hist> @@ -14838,32 +14817,32 @@ <b> <a>50</a> <b>51</b> - <v>465</v> + <v>466</v> </b> <b> <a>203</a> <b>204</b> - <v>465</v> + <v>466</v> </b> <b> <a>209</a> <b>210</b> - <v>465</v> + <v>466</v> </b> <b> <a>639</a> <b>640</b> - <v>465</v> + <v>466</v> </b> <b> <a>2561</a> <b>2562</b> - <v>465</v> + <v>466</v> </b> <b> <a>2564</a> <b>2565</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -14994,26 +14973,26 @@ </relation> <relation> <name>fun_decl_empty_throws</name> - <cardinality>1931608</cardinality> + <cardinality>1933773</cardinality> <columnsizes> <e> <k>fun_decl</k> - <v>1931608</v> + <v>1933773</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>fun_decl_noexcept</name> - <cardinality>61011</cardinality> + <cardinality>60559</cardinality> <columnsizes> <e> <k>fun_decl</k> - <v>61011</v> + <v>60559</v> </e> <e> <k>constant</k> - <v>60907</v> + <v>60456</v> </e> </columnsizes> <dependencies> @@ -15027,7 +15006,7 @@ <b> <a>1</a> <b>2</b> - <v>61011</v> + <v>60559</v> </b> </bs> </hist> @@ -15043,12 +15022,12 @@ <b> <a>1</a> <b>2</b> - <v>60803</v> + <v>60352</v> </b> <b> <a>2</a> <b>3</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -15058,22 +15037,22 @@ </relation> <relation> <name>fun_decl_empty_noexcept</name> - <cardinality>868897</cardinality> + <cardinality>869871</cardinality> <columnsizes> <e> <k>fun_decl</k> - <v>868897</v> + <v>869871</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>fun_decl_typedef_type</name> - <cardinality>2870</cardinality> + <cardinality>2867</cardinality> <columnsizes> <e> <k>fun_decl</k> - <v>2870</v> + <v>2867</v> </e> <e> <k>typedeftype_id</k> @@ -15091,7 +15070,7 @@ <b> <a>1</a> <b>2</b> - <v>2870</v> + <v>2867</v> </b> </bs> </hist> @@ -15167,19 +15146,19 @@ </relation> <relation> <name>param_decl_bind</name> - <cardinality>7371421</cardinality> + <cardinality>7379682</cardinality> <columnsizes> <e> <k>id</k> - <v>7371421</v> + <v>7379682</v> </e> <e> <k>index</k> - <v>7920</v> + <v>7929</v> </e> <e> <k>fun_decl</k> - <v>4218231</v> + <v>4222958</v> </e> </columnsizes> <dependencies> @@ -15193,7 +15172,7 @@ <b> <a>1</a> <b>2</b> - <v>7371421</v> + <v>7379682</v> </b> </bs> </hist> @@ -15209,7 +15188,7 @@ <b> <a>1</a> <b>2</b> - <v>7371421</v> + <v>7379682</v> </b> </bs> </hist> @@ -15225,72 +15204,72 @@ <b> <a>2</a> <b>3</b> - <v>931</v> + <v>932</v> </b> <b> <a>5</a> <b>6</b> - <v>465</v> + <v>466</v> </b> <b> <a>7</a> <b>8</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>931</v> + <v>932</v> </b> <b> <a>11</a> <b>12</b> - <v>465</v> + <v>466</v> </b> <b> <a>12</a> <b>13</b> - <v>931</v> + <v>932</v> </b> <b> <a>13</a> <b>14</b> - <v>465</v> + <v>466</v> </b> <b> <a>25</a> <b>26</b> - <v>465</v> + <v>466</v> </b> <b> <a>78</a> <b>79</b> - <v>465</v> + <v>466</v> </b> <b> <a>245</a> <b>246</b> - <v>465</v> + <v>466</v> </b> <b> <a>636</a> <b>637</b> - <v>465</v> + <v>466</v> </b> <b> <a>1713</a> <b>1714</b> - <v>465</v> + <v>466</v> </b> <b> <a>3987</a> <b>3988</b> - <v>465</v> + <v>466</v> </b> <b> <a>9054</a> <b>9055</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -15306,72 +15285,72 @@ <b> <a>2</a> <b>3</b> - <v>931</v> + <v>932</v> </b> <b> <a>5</a> <b>6</b> - <v>465</v> + <v>466</v> </b> <b> <a>7</a> <b>8</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>931</v> + <v>932</v> </b> <b> <a>11</a> <b>12</b> - <v>465</v> + <v>466</v> </b> <b> <a>12</a> <b>13</b> - <v>931</v> + <v>932</v> </b> <b> <a>13</a> <b>14</b> - <v>465</v> + <v>466</v> </b> <b> <a>25</a> <b>26</b> - <v>465</v> + <v>466</v> </b> <b> <a>78</a> <b>79</b> - <v>465</v> + <v>466</v> </b> <b> <a>245</a> <b>246</b> - <v>465</v> + <v>466</v> </b> <b> <a>636</a> <b>637</b> - <v>465</v> + <v>466</v> </b> <b> <a>1713</a> <b>1714</b> - <v>465</v> + <v>466</v> </b> <b> <a>3987</a> <b>3988</b> - <v>465</v> + <v>466</v> </b> <b> <a>9054</a> <b>9055</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -15387,22 +15366,22 @@ <b> <a>1</a> <b>2</b> - <v>2360699</v> + <v>2363345</v> </b> <b> <a>2</a> <b>3</b> - <v>1059449</v> + <v>1060637</v> </b> <b> <a>3</a> <b>4</b> - <v>501771</v> + <v>502333</v> </b> <b> <a>4</a> <b>18</b> - <v>296310</v> + <v>296642</v> </b> </bs> </hist> @@ -15418,22 +15397,22 @@ <b> <a>1</a> <b>2</b> - <v>2360699</v> + <v>2363345</v> </b> <b> <a>2</a> <b>3</b> - <v>1059449</v> + <v>1060637</v> </b> <b> <a>3</a> <b>4</b> - <v>501771</v> + <v>502333</v> </b> <b> <a>4</a> <b>18</b> - <v>296310</v> + <v>296642</v> </b> </bs> </hist> @@ -15443,27 +15422,27 @@ </relation> <relation> <name>var_decls</name> - <cardinality>8484449</cardinality> + <cardinality>8493958</cardinality> <columnsizes> <e> <k>id</k> - <v>8413633</v> + <v>8423062</v> </e> <e> <k>variable</k> - <v>7403568</v> + <v>7411865</v> </e> <e> <k>type_id</k> - <v>2381665</v> + <v>2384334</v> </e> <e> <k>name</k> - <v>666232</v> + <v>666979</v> </e> <e> <k>location</k> - <v>5300975</v> + <v>5306916</v> </e> </columnsizes> <dependencies> @@ -15477,7 +15456,7 @@ <b> <a>1</a> <b>2</b> - <v>8413633</v> + <v>8423062</v> </b> </bs> </hist> @@ -15493,12 +15472,12 @@ <b> <a>1</a> <b>2</b> - <v>8345612</v> + <v>8354965</v> </b> <b> <a>2</a> <b>3</b> - <v>68020</v> + <v>68097</v> </b> </bs> </hist> @@ -15514,7 +15493,7 @@ <b> <a>1</a> <b>2</b> - <v>8413633</v> + <v>8423062</v> </b> </bs> </hist> @@ -15530,12 +15509,12 @@ <b> <a>1</a> <b>2</b> - <v>8410838</v> + <v>8420264</v> </b> <b> <a>2</a> <b>3</b> - <v>2795</v> + <v>2798</v> </b> </bs> </hist> @@ -15551,17 +15530,17 @@ <b> <a>1</a> <b>2</b> - <v>6553306</v> + <v>6560651</v> </b> <b> <a>2</a> <b>3</b> - <v>696981</v> + <v>697762</v> </b> <b> <a>3</a> <b>7</b> - <v>153280</v> + <v>153451</v> </b> </bs> </hist> @@ -15577,12 +15556,12 @@ <b> <a>1</a> <b>2</b> - <v>7232584</v> + <v>7240690</v> </b> <b> <a>2</a> <b>4</b> - <v>170984</v> + <v>171175</v> </b> </bs> </hist> @@ -15598,12 +15577,12 @@ <b> <a>1</a> <b>2</b> - <v>7288492</v> + <v>7296660</v> </b> <b> <a>2</a> <b>3</b> - <v>115076</v> + <v>115205</v> </b> </bs> </hist> @@ -15619,12 +15598,12 @@ <b> <a>1</a> <b>2</b> - <v>6859401</v> + <v>6867088</v> </b> <b> <a>2</a> <b>4</b> - <v>544167</v> + <v>544777</v> </b> </bs> </hist> @@ -15640,27 +15619,27 @@ <b> <a>1</a> <b>2</b> - <v>1467575</v> + <v>1469220</v> </b> <b> <a>2</a> <b>3</b> - <v>508759</v> + <v>509329</v> </b> <b> <a>3</a> <b>4</b> - <v>97838</v> + <v>97948</v> </b> <b> <a>4</a> <b>7</b> - <v>186824</v> + <v>187034</v> </b> <b> <a>7</a> <b>762</b> - <v>120667</v> + <v>120802</v> </b> </bs> </hist> @@ -15676,22 +15655,22 @@ <b> <a>1</a> <b>2</b> - <v>1600822</v> + <v>1602616</v> </b> <b> <a>2</a> <b>3</b> - <v>484066</v> + <v>484609</v> </b> <b> <a>3</a> <b>7</b> - <v>186358</v> + <v>186567</v> </b> <b> <a>7</a> <b>724</b> - <v>110417</v> + <v>110541</v> </b> </bs> </hist> @@ -15707,17 +15686,17 @@ <b> <a>1</a> <b>2</b> - <v>1875235</v> + <v>1877336</v> </b> <b> <a>2</a> <b>3</b> - <v>384365</v> + <v>384795</v> </b> <b> <a>3</a> <b>128</b> - <v>122065</v> + <v>122201</v> </b> </bs> </hist> @@ -15733,22 +15712,22 @@ <b> <a>1</a> <b>2</b> - <v>1703319</v> + <v>1705228</v> </b> <b> <a>2</a> <b>3</b> - <v>401137</v> + <v>401586</v> </b> <b> <a>3</a> <b>8</b> - <v>188222</v> + <v>188433</v> </b> <b> <a>8</a> <b>592</b> - <v>88986</v> + <v>89086</v> </b> </bs> </hist> @@ -15764,37 +15743,37 @@ <b> <a>1</a> <b>2</b> - <v>340570</v> + <v>340952</v> </b> <b> <a>2</a> <b>3</b> - <v>86656</v> + <v>86753</v> </b> <b> <a>3</a> <b>4</b> - <v>48453</v> + <v>48507</v> </b> <b> <a>4</a> <b>6</b> - <v>51714</v> + <v>51772</v> </b> <b> <a>6</a> <b>12</b> - <v>52180</v> + <v>52238</v> </b> <b> <a>12</a> <b>33</b> - <v>50316</v> + <v>50373</v> </b> <b> <a>34</a> <b>3223</b> - <v>36339</v> + <v>36380</v> </b> </bs> </hist> @@ -15810,37 +15789,37 @@ <b> <a>1</a> <b>2</b> - <v>368058</v> + <v>368471</v> </b> <b> <a>2</a> <b>3</b> - <v>77804</v> + <v>77891</v> </b> <b> <a>3</a> <b>4</b> - <v>45192</v> + <v>45242</v> </b> <b> <a>4</a> <b>6</b> - <v>49385</v> + <v>49440</v> </b> <b> <a>6</a> <b>14</b> - <v>53112</v> + <v>53171</v> </b> <b> <a>14</a> <b>56</b> - <v>50782</v> + <v>50839</v> </b> <b> <a>56</a> <b>3140</b> - <v>21897</v> + <v>21921</v> </b> </bs> </hist> @@ -15856,27 +15835,27 @@ <b> <a>1</a> <b>2</b> - <v>456113</v> + <v>456624</v> </b> <b> <a>2</a> <b>3</b> - <v>93645</v> + <v>93750</v> </b> <b> <a>3</a> <b>5</b> - <v>46589</v> + <v>46641</v> </b> <b> <a>5</a> <b>19</b> - <v>50782</v> + <v>50839</v> </b> <b> <a>19</a> <b>1927</b> - <v>19101</v> + <v>19123</v> </b> </bs> </hist> @@ -15892,32 +15871,32 @@ <b> <a>1</a> <b>2</b> - <v>378308</v> + <v>378732</v> </b> <b> <a>2</a> <b>3</b> - <v>90384</v> + <v>90485</v> </b> <b> <a>3</a> <b>5</b> - <v>59634</v> + <v>59701</v> </b> <b> <a>5</a> <b>9</b> - <v>51248</v> + <v>51306</v> </b> <b> <a>9</a> <b>21</b> - <v>50316</v> + <v>50373</v> </b> <b> <a>21</a> <b>1010</b> - <v>36339</v> + <v>36380</v> </b> </bs> </hist> @@ -15933,17 +15912,17 @@ <b> <a>1</a> <b>2</b> - <v>4487053</v> + <v>4492082</v> </b> <b> <a>2</a> <b>3</b> - <v>530656</v> + <v>531251</v> </b> <b> <a>3</a> <b>1735</b> - <v>283265</v> + <v>283582</v> </b> </bs> </hist> @@ -15959,17 +15938,17 @@ <b> <a>1</a> <b>2</b> - <v>4875611</v> + <v>4881075</v> </b> <b> <a>2</a> <b>17</b> - <v>414648</v> + <v>415112</v> </b> <b> <a>17</a> <b>1731</b> - <v>10715</v> + <v>10727</v> </b> </bs> </hist> @@ -15985,12 +15964,12 @@ <b> <a>1</a> <b>2</b> - <v>4951553</v> + <v>4957102</v> </b> <b> <a>2</a> <b>1513</b> - <v>349422</v> + <v>349814</v> </b> </bs> </hist> @@ -16006,12 +15985,12 @@ <b> <a>1</a> <b>2</b> - <v>5291657</v> + <v>5297588</v> </b> <b> <a>2</a> <b>6</b> - <v>9317</v> + <v>9328</v> </b> </bs> </hist> @@ -16021,26 +16000,26 @@ </relation> <relation> <name>var_def</name> - <cardinality>4020225</cardinality> + <cardinality>4024730</cardinality> <columnsizes> <e> <k>id</k> - <v>4020225</v> + <v>4024730</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>var_decl_specifiers</name> - <cardinality>310287</cardinality> + <cardinality>310635</cardinality> <columnsizes> <e> <k>id</k> - <v>310287</v> + <v>310635</v> </e> <e> <k>name</k> - <v>1397</v> + <v>1399</v> </e> </columnsizes> <dependencies> @@ -16054,7 +16033,7 @@ <b> <a>1</a> <b>2</b> - <v>310287</v> + <v>310635</v> </b> </bs> </hist> @@ -16070,17 +16049,17 @@ <b> <a>15</a> <b>16</b> - <v>465</v> + <v>466</v> </b> <b> <a>66</a> <b>67</b> - <v>465</v> + <v>466</v> </b> <b> <a>585</a> <b>586</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -16101,19 +16080,19 @@ </relation> <relation> <name>type_decls</name> - <cardinality>3238449</cardinality> + <cardinality>3242079</cardinality> <columnsizes> <e> <k>id</k> - <v>3238449</v> + <v>3242079</v> </e> <e> <k>type_id</k> - <v>3188133</v> + <v>3191705</v> </e> <e> <k>location</k> - <v>3159713</v> + <v>3163254</v> </e> </columnsizes> <dependencies> @@ -16127,7 +16106,7 @@ <b> <a>1</a> <b>2</b> - <v>3238449</v> + <v>3242079</v> </b> </bs> </hist> @@ -16143,7 +16122,7 @@ <b> <a>1</a> <b>2</b> - <v>3238449</v> + <v>3242079</v> </b> </bs> </hist> @@ -16159,12 +16138,12 @@ <b> <a>1</a> <b>2</b> - <v>3146668</v> + <v>3150194</v> </b> <b> <a>2</a> <b>5</b> - <v>41464</v> + <v>41511</v> </b> </bs> </hist> @@ -16180,12 +16159,12 @@ <b> <a>1</a> <b>2</b> - <v>3146668</v> + <v>3150194</v> </b> <b> <a>2</a> <b>5</b> - <v>41464</v> + <v>41511</v> </b> </bs> </hist> @@ -16201,12 +16180,12 @@ <b> <a>1</a> <b>2</b> - <v>3119646</v> + <v>3123142</v> </b> <b> <a>2</a> <b>20</b> - <v>40067</v> + <v>40112</v> </b> </bs> </hist> @@ -16222,12 +16201,12 @@ <b> <a>1</a> <b>2</b> - <v>3119646</v> + <v>3123142</v> </b> <b> <a>2</a> <b>20</b> - <v>40067</v> + <v>40112</v> </b> </bs> </hist> @@ -16237,33 +16216,33 @@ </relation> <relation> <name>type_def</name> - <cardinality>2621602</cardinality> + <cardinality>2624540</cardinality> <columnsizes> <e> <k>id</k> - <v>2621602</v> + <v>2624540</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>type_decl_top</name> - <cardinality>742173</cardinality> + <cardinality>743005</cardinality> <columnsizes> <e> <k>type_decl</k> - <v>742173</v> + <v>743005</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>namespace_decls</name> - <cardinality>311526</cardinality> + <cardinality>311530</cardinality> <columnsizes> <e> <k>id</k> - <v>311526</v> + <v>311530</v> </e> <e> <k>namespace_id</k> @@ -16271,11 +16250,11 @@ </e> <e> <k>location</k> - <v>311526</v> + <v>311530</v> </e> <e> <k>bodylocation</k> - <v>311526</v> + <v>311530</v> </e> </columnsizes> <dependencies> @@ -16289,7 +16268,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16305,7 +16284,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16321,7 +16300,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16535,7 +16514,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16551,7 +16530,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16567,7 +16546,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16583,7 +16562,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16599,7 +16578,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16615,7 +16594,7 @@ <b> <a>1</a> <b>2</b> - <v>311526</v> + <v>311530</v> </b> </bs> </hist> @@ -16625,19 +16604,19 @@ </relation> <relation> <name>usings</name> - <cardinality>368990</cardinality> + <cardinality>369403</cardinality> <columnsizes> <e> <k>id</k> - <v>368990</v> + <v>369403</v> </e> <e> <k>element_id</k> - <v>314946</v> + <v>315299</v> </e> <e> <k>location</k> - <v>247391</v> + <v>247668</v> </e> </columnsizes> <dependencies> @@ -16651,7 +16630,7 @@ <b> <a>1</a> <b>2</b> - <v>368990</v> + <v>369403</v> </b> </bs> </hist> @@ -16667,7 +16646,7 @@ <b> <a>1</a> <b>2</b> - <v>368990</v> + <v>369403</v> </b> </bs> </hist> @@ -16683,17 +16662,17 @@ <b> <a>1</a> <b>2</b> - <v>262765</v> + <v>263060</v> </b> <b> <a>2</a> <b>3</b> - <v>50782</v> + <v>50839</v> </b> <b> <a>3</a> <b>5</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -16709,17 +16688,17 @@ <b> <a>1</a> <b>2</b> - <v>262765</v> + <v>263060</v> </b> <b> <a>2</a> <b>3</b> - <v>50782</v> + <v>50839</v> </b> <b> <a>3</a> <b>5</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -16735,22 +16714,22 @@ <b> <a>1</a> <b>2</b> - <v>202199</v> + <v>202425</v> </b> <b> <a>2</a> <b>4</b> - <v>10715</v> + <v>10727</v> </b> <b> <a>4</a> <b>5</b> - <v>31215</v> + <v>31250</v> </b> <b> <a>5</a> <b>11</b> - <v>3261</v> + <v>3264</v> </b> </bs> </hist> @@ -16766,22 +16745,22 @@ <b> <a>1</a> <b>2</b> - <v>202199</v> + <v>202425</v> </b> <b> <a>2</a> <b>4</b> - <v>10715</v> + <v>10727</v> </b> <b> <a>4</a> <b>5</b> - <v>31215</v> + <v>31250</v> </b> <b> <a>5</a> <b>11</b> - <v>3261</v> + <v>3264</v> </b> </bs> </hist> @@ -16791,15 +16770,15 @@ </relation> <relation> <name>using_container</name> - <cardinality>464571</cardinality> + <cardinality>462754</cardinality> <columnsizes> <e> <k>parent</k> - <v>10998</v> + <v>10955</v> </e> <e> <k>child</k> - <v>294577</v> + <v>293425</v> </e> </columnsizes> <dependencies> @@ -16813,42 +16792,42 @@ <b> <a>1</a> <b>2</b> - <v>3280</v> + <v>3267</v> </b> <b> <a>2</a> <b>4</b> - <v>932</v> + <v>928</v> </b> <b> <a>4</a> <b>6</b> - <v>415</v> + <v>414</v> </b> <b> <a>6</a> <b>7</b> - <v>2482</v> + <v>2473</v> </b> <b> <a>7</a> <b>17</b> - <v>898</v> + <v>895</v> </b> <b> <a>19</a> <b>143</b> - <v>763</v> + <v>760</v> </b> <b> <a>178</a> <b>179</b> - <v>1292</v> + <v>1286</v> </b> <b> <a>179</a> <b>183</b> - <v>853</v> + <v>850</v> </b> <b> <a>201</a> @@ -16869,22 +16848,22 @@ <b> <a>1</a> <b>2</b> - <v>217270</v> + <v>216420</v> </b> <b> <a>2</a> <b>3</b> - <v>51477</v> + <v>51276</v> </b> <b> <a>3</a> <b>11</b> - <v>23705</v> + <v>23612</v> </b> <b> <a>13</a> <b>41</b> - <v>2123</v> + <v>2115</v> </b> </bs> </hist> @@ -16894,15 +16873,15 @@ </relation> <relation> <name>static_asserts</name> - <cardinality>134653</cardinality> + <cardinality>134655</cardinality> <columnsizes> <e> <k>id</k> - <v>134653</v> + <v>134655</v> </e> <e> <k>condition</k> - <v>134653</v> + <v>134655</v> </e> <e> <k>message</k> @@ -16928,7 +16907,7 @@ <b> <a>1</a> <b>2</b> - <v>134653</v> + <v>134655</v> </b> </bs> </hist> @@ -16944,7 +16923,7 @@ <b> <a>1</a> <b>2</b> - <v>134653</v> + <v>134655</v> </b> </bs> </hist> @@ -16960,7 +16939,7 @@ <b> <a>1</a> <b>2</b> - <v>134653</v> + <v>134655</v> </b> </bs> </hist> @@ -16976,7 +16955,7 @@ <b> <a>1</a> <b>2</b> - <v>134653</v> + <v>134655</v> </b> </bs> </hist> @@ -16992,7 +16971,7 @@ <b> <a>1</a> <b>2</b> - <v>134653</v> + <v>134655</v> </b> </bs> </hist> @@ -17008,7 +16987,7 @@ <b> <a>1</a> <b>2</b> - <v>134653</v> + <v>134655</v> </b> </bs> </hist> @@ -17024,7 +17003,7 @@ <b> <a>1</a> <b>2</b> - <v>134653</v> + <v>134655</v> </b> </bs> </hist> @@ -17040,7 +17019,7 @@ <b> <a>1</a> <b>2</b> - <v>134653</v> + <v>134655</v> </b> </bs> </hist> @@ -17502,23 +17481,23 @@ </relation> <relation> <name>params</name> - <cardinality>6732211</cardinality> + <cardinality>6739755</cardinality> <columnsizes> <e> <k>id</k> - <v>6568681</v> + <v>6576042</v> </e> <e> <k>function</k> - <v>3875331</v> + <v>3879674</v> </e> <e> <k>index</k> - <v>7920</v> + <v>7929</v> </e> <e> <k>type_id</k> - <v>2186454</v> + <v>2188904</v> </e> </columnsizes> <dependencies> @@ -17532,7 +17511,7 @@ <b> <a>1</a> <b>2</b> - <v>6568681</v> + <v>6576042</v> </b> </bs> </hist> @@ -17548,7 +17527,7 @@ <b> <a>1</a> <b>2</b> - <v>6568681</v> + <v>6576042</v> </b> </bs> </hist> @@ -17564,12 +17543,12 @@ <b> <a>1</a> <b>2</b> - <v>6445218</v> + <v>6452441</v> </b> <b> <a>2</a> <b>4</b> - <v>123462</v> + <v>123601</v> </b> </bs> </hist> @@ -17585,22 +17564,22 @@ <b> <a>1</a> <b>2</b> - <v>2254475</v> + <v>2257002</v> </b> <b> <a>2</a> <b>3</b> - <v>950895</v> + <v>951961</v> </b> <b> <a>3</a> <b>4</b> - <v>429091</v> + <v>429571</v> </b> <b> <a>4</a> <b>18</b> - <v>240868</v> + <v>241138</v> </b> </bs> </hist> @@ -17616,22 +17595,22 @@ <b> <a>1</a> <b>2</b> - <v>2254475</v> + <v>2257002</v> </b> <b> <a>2</a> <b>3</b> - <v>950895</v> + <v>951961</v> </b> <b> <a>3</a> <b>4</b> - <v>429091</v> + <v>429571</v> </b> <b> <a>4</a> <b>18</b> - <v>240868</v> + <v>241138</v> </b> </bs> </hist> @@ -17647,22 +17626,22 @@ <b> <a>1</a> <b>2</b> - <v>2552183</v> + <v>2555043</v> </b> <b> <a>2</a> <b>3</b> - <v>825103</v> + <v>826028</v> </b> <b> <a>3</a> <b>4</b> - <v>345695</v> + <v>346082</v> </b> <b> <a>4</a> <b>12</b> - <v>152348</v> + <v>152519</v> </b> </bs> </hist> @@ -17678,72 +17657,72 @@ <b> <a>2</a> <b>3</b> - <v>931</v> + <v>932</v> </b> <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>8</a> <b>9</b> - <v>931</v> + <v>932</v> </b> <b> <a>9</a> <b>10</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>931</v> + <v>932</v> </b> <b> <a>11</a> <b>12</b> - <v>465</v> + <v>466</v> </b> <b> <a>19</a> <b>20</b> - <v>465</v> + <v>466</v> </b> <b> <a>64</a> <b>65</b> - <v>465</v> + <v>466</v> </b> <b> <a>194</a> <b>195</b> - <v>465</v> + <v>466</v> </b> <b> <a>517</a> <b>518</b> - <v>465</v> + <v>466</v> </b> <b> <a>1438</a> <b>1439</b> - <v>465</v> + <v>466</v> </b> <b> <a>3479</a> <b>3480</b> - <v>465</v> + <v>466</v> </b> <b> <a>8318</a> <b>8319</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -17759,72 +17738,72 @@ <b> <a>2</a> <b>3</b> - <v>931</v> + <v>932</v> </b> <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>8</a> <b>9</b> - <v>931</v> + <v>932</v> </b> <b> <a>9</a> <b>10</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>931</v> + <v>932</v> </b> <b> <a>11</a> <b>12</b> - <v>465</v> + <v>466</v> </b> <b> <a>19</a> <b>20</b> - <v>465</v> + <v>466</v> </b> <b> <a>64</a> <b>65</b> - <v>465</v> + <v>466</v> </b> <b> <a>194</a> <b>195</b> - <v>465</v> + <v>466</v> </b> <b> <a>517</a> <b>518</b> - <v>465</v> + <v>466</v> </b> <b> <a>1438</a> <b>1439</b> - <v>465</v> + <v>466</v> </b> <b> <a>3479</a> <b>3480</b> - <v>465</v> + <v>466</v> </b> <b> <a>8318</a> <b>8319</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -17840,67 +17819,67 @@ <b> <a>1</a> <b>2</b> - <v>931</v> + <v>932</v> </b> <b> <a>3</a> <b>4</b> - <v>465</v> + <v>466</v> </b> <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>5</a> <b>6</b> - <v>465</v> + <v>466</v> </b> <b> <a>6</a> <b>7</b> - <v>1397</v> + <v>1399</v> </b> <b> <a>7</a> <b>8</b> - <v>931</v> + <v>932</v> </b> <b> <a>11</a> <b>12</b> - <v>465</v> + <v>466</v> </b> <b> <a>42</a> <b>43</b> - <v>465</v> + <v>466</v> </b> <b> <a>106</a> <b>107</b> - <v>465</v> + <v>466</v> </b> <b> <a>228</a> <b>229</b> - <v>465</v> + <v>466</v> </b> <b> <a>582</a> <b>583</b> - <v>465</v> + <v>466</v> </b> <b> <a>1271</a> <b>1272</b> - <v>465</v> + <v>466</v> </b> <b> <a>3609</a> <b>3610</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -17916,22 +17895,22 @@ <b> <a>1</a> <b>2</b> - <v>1486677</v> + <v>1488343</v> </b> <b> <a>2</a> <b>3</b> - <v>439806</v> + <v>440299</v> </b> <b> <a>3</a> <b>8</b> - <v>170052</v> + <v>170242</v> </b> <b> <a>8</a> <b>518</b> - <v>89918</v> + <v>90018</v> </b> </bs> </hist> @@ -17947,22 +17926,22 @@ <b> <a>1</a> <b>2</b> - <v>1706114</v> + <v>1708026</v> </b> <b> <a>2</a> <b>3</b> - <v>247857</v> + <v>248134</v> </b> <b> <a>3</a> <b>9</b> - <v>168188</v> + <v>168377</v> </b> <b> <a>9</a> <b>502</b> - <v>64293</v> + <v>64365</v> </b> </bs> </hist> @@ -17978,17 +17957,17 @@ <b> <a>1</a> <b>2</b> - <v>1759692</v> + <v>1761664</v> </b> <b> <a>2</a> <b>3</b> - <v>348025</v> + <v>348415</v> </b> <b> <a>3</a> <b>13</b> - <v>78736</v> + <v>78824</v> </b> </bs> </hist> @@ -17998,15 +17977,15 @@ </relation> <relation> <name>overrides</name> - <cardinality>125996</cardinality> + <cardinality>125866</cardinality> <columnsizes> <e> <k>new</k> - <v>123017</v> + <v>122890</v> </e> <e> <k>old</k> - <v>9763</v> + <v>9753</v> </e> </columnsizes> <dependencies> @@ -18020,12 +17999,12 @@ <b> <a>1</a> <b>2</b> - <v>120046</v> + <v>119922</v> </b> <b> <a>2</a> <b>4</b> - <v>2970</v> + <v>2967</v> </b> </bs> </hist> @@ -18041,17 +18020,17 @@ <b> <a>1</a> <b>2</b> - <v>4297</v> + <v>4293</v> </b> <b> <a>2</a> <b>3</b> - <v>2102</v> + <v>2100</v> </b> <b> <a>3</a> <b>4</b> - <v>926</v> + <v>925</v> </b> <b> <a>4</a> @@ -18061,17 +18040,17 @@ <b> <a>5</a> <b>7</b> - <v>851</v> + <v>850</v> </b> <b> <a>7</a> <b>23</b> - <v>763</v> + <v>762</v> </b> <b> <a>25</a> <b>1464</b> - <v>363</v> + <v>362</v> </b> </bs> </hist> @@ -18081,19 +18060,19 @@ </relation> <relation> <name>membervariables</name> - <cardinality>1054945</cardinality> + <cardinality>1056556</cardinality> <columnsizes> <e> <k>id</k> - <v>1053150</v> + <v>1054758</v> </e> <e> <k>type_id</k> - <v>327246</v> + <v>327746</v> </e> <e> <k>name</k> - <v>450956</v> + <v>451645</v> </e> </columnsizes> <dependencies> @@ -18107,12 +18086,12 @@ <b> <a>1</a> <b>2</b> - <v>1051434</v> + <v>1053040</v> </b> <b> <a>2</a> <b>4</b> - <v>1715</v> + <v>1718</v> </b> </bs> </hist> @@ -18128,7 +18107,7 @@ <b> <a>1</a> <b>2</b> - <v>1053150</v> + <v>1054758</v> </b> </bs> </hist> @@ -18144,22 +18123,22 @@ <b> <a>1</a> <b>2</b> - <v>242672</v> + <v>243043</v> </b> <b> <a>2</a> <b>3</b> - <v>51821</v> + <v>51900</v> </b> <b> <a>3</a> <b>10</b> - <v>25491</v> + <v>25530</v> </b> <b> <a>10</a> <b>4152</b> - <v>7260</v> + <v>7271</v> </b> </bs> </hist> @@ -18175,22 +18154,22 @@ <b> <a>1</a> <b>2</b> - <v>254879</v> + <v>255269</v> </b> <b> <a>2</a> <b>3</b> - <v>46396</v> + <v>46467</v> </b> <b> <a>3</a> <b>40</b> - <v>24574</v> + <v>24611</v> </b> <b> <a>41</a> <b>2031</b> - <v>1396</v> + <v>1398</v> </b> </bs> </hist> @@ -18206,22 +18185,22 @@ <b> <a>1</a> <b>2</b> - <v>294893</v> + <v>295343</v> </b> <b> <a>2</a> <b>3</b> - <v>86409</v> + <v>86541</v> </b> <b> <a>3</a> <b>5</b> - <v>41130</v> + <v>41193</v> </b> <b> <a>5</a> <b>646</b> - <v>28523</v> + <v>28567</v> </b> </bs> </hist> @@ -18237,17 +18216,17 @@ <b> <a>1</a> <b>2</b> - <v>367300</v> + <v>367860</v> </b> <b> <a>2</a> <b>3</b> - <v>51662</v> + <v>51741</v> </b> <b> <a>3</a> <b>650</b> - <v>31994</v> + <v>32043</v> </b> </bs> </hist> @@ -18428,19 +18407,19 @@ </relation> <relation> <name>localvariables</name> - <cardinality>577491</cardinality> + <cardinality>576906</cardinality> <columnsizes> <e> <k>id</k> - <v>577491</v> + <v>576906</v> </e> <e> <k>type_id</k> - <v>37631</v> + <v>37597</v> </e> <e> <k>name</k> - <v>90743</v> + <v>90649</v> </e> </columnsizes> <dependencies> @@ -18454,7 +18433,7 @@ <b> <a>1</a> <b>2</b> - <v>577491</v> + <v>576906</v> </b> </bs> </hist> @@ -18470,7 +18449,7 @@ <b> <a>1</a> <b>2</b> - <v>577491</v> + <v>576906</v> </b> </bs> </hist> @@ -18486,32 +18465,32 @@ <b> <a>1</a> <b>2</b> - <v>21054</v> + <v>21032</v> </b> <b> <a>2</a> <b>3</b> - <v>5378</v> + <v>5368</v> </b> <b> <a>3</a> <b>4</b> - <v>2461</v> + <v>2467</v> </b> <b> <a>4</a> <b>7</b> - <v>3383</v> + <v>3380</v> </b> <b> <a>7</a> <b>18</b> - <v>2858</v> + <v>2851</v> </b> <b> <a>18</a> - <b>15847</b> - <v>2495</v> + <b>15849</b> + <v>2496</v> </b> </bs> </hist> @@ -18527,27 +18506,27 @@ <b> <a>1</a> <b>2</b> - <v>26803</v> + <v>26772</v> </b> <b> <a>2</a> <b>3</b> - <v>4573</v> + <v>4572</v> </b> <b> <a>3</a> <b>5</b> - <v>2920</v> + <v>2921</v> </b> <b> <a>5</a> <b>31</b> - <v>2824</v> + <v>2821</v> </b> <b> <a>31</a> <b>3455</b> - <v>509</v> + <v>508</v> </b> </bs> </hist> @@ -18563,27 +18542,27 @@ <b> <a>1</a> <b>2</b> - <v>57154</v> + <v>57095</v> </b> <b> <a>2</a> <b>3</b> - <v>14315</v> + <v>14301</v> </b> <b> <a>3</a> <b>5</b> - <v>8328</v> + <v>8319</v> </b> <b> <a>5</a> <b>15</b> - <v>6997</v> + <v>6990</v> </b> <b> <a>15</a> - <b>5176</b> - <v>3947</v> + <b>5178</b> + <v>3943</v> </b> </bs> </hist> @@ -18599,17 +18578,17 @@ <b> <a>1</a> <b>2</b> - <v>76656</v> + <v>76577</v> </b> <b> <a>2</a> <b>3</b> - <v>7427</v> + <v>7419</v> </b> <b> <a>3</a> <b>1486</b> - <v>6659</v> + <v>6652</v> </b> </bs> </hist> @@ -18619,15 +18598,15 @@ </relation> <relation> <name>autoderivation</name> - <cardinality>148931</cardinality> + <cardinality>148035</cardinality> <columnsizes> <e> <k>var</k> - <v>148931</v> + <v>148035</v> </e> <e> <k>derivation_type</k> - <v>521</v> + <v>517</v> </e> </columnsizes> <dependencies> @@ -18641,7 +18620,7 @@ <b> <a>1</a> <b>2</b> - <v>148931</v> + <v>148035</v> </b> </bs> </hist> @@ -18657,27 +18636,27 @@ <b> <a>33</a> <b>34</b> - <v>104</v> + <v>103</v> </b> <b> - <a>90</a> - <b>91</b> - <v>104</v> + <a>91</a> + <b>92</b> + <v>103</v> </b> <b> - <a>353</a> - <b>354</b> - <v>104</v> + <a>354</a> + <b>355</b> + <v>103</v> </b> <b> <a>392</a> <b>393</b> - <v>104</v> + <v>103</v> </b> <b> <a>560</a> <b>561</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -18687,15 +18666,15 @@ </relation> <relation> <name>orphaned_variables</name> - <cardinality>37769</cardinality> + <cardinality>37368</cardinality> <columnsizes> <e> <k>var</k> - <v>37769</v> + <v>37368</v> </e> <e> <k>function</k> - <v>33197</v> + <v>32845</v> </e> </columnsizes> <dependencies> @@ -18709,7 +18688,7 @@ <b> <a>1</a> <b>2</b> - <v>37769</v> + <v>37368</v> </b> </bs> </hist> @@ -18725,12 +18704,12 @@ <b> <a>1</a> <b>2</b> - <v>31123</v> + <v>30792</v> </b> <b> <a>2</a> <b>47</b> - <v>2074</v> + <v>2052</v> </b> </bs> </hist> @@ -18740,19 +18719,19 @@ </relation> <relation> <name>enumconstants</name> - <cardinality>241316</cardinality> + <cardinality>241684</cardinality> <columnsizes> <e> <k>id</k> - <v>241316</v> + <v>241684</v> </e> <e> <k>parent</k> - <v>28484</v> + <v>28527</v> </e> <e> <k>index</k> - <v>10212</v> + <v>10228</v> </e> <e> <k>type_id</k> @@ -18760,11 +18739,11 @@ </e> <e> <k>name</k> - <v>241036</v> + <v>241405</v> </e> <e> <k>location</k> - <v>221249</v> + <v>221587</v> </e> </columnsizes> <dependencies> @@ -18778,7 +18757,7 @@ <b> <a>1</a> <b>2</b> - <v>241316</v> + <v>241684</v> </b> </bs> </hist> @@ -18794,7 +18773,7 @@ <b> <a>1</a> <b>2</b> - <v>241316</v> + <v>241684</v> </b> </bs> </hist> @@ -18810,7 +18789,7 @@ <b> <a>1</a> <b>2</b> - <v>241316</v> + <v>241684</v> </b> </bs> </hist> @@ -18826,7 +18805,7 @@ <b> <a>1</a> <b>2</b> - <v>241316</v> + <v>241684</v> </b> </bs> </hist> @@ -18842,7 +18821,7 @@ <b> <a>1</a> <b>2</b> - <v>241316</v> + <v>241684</v> </b> </bs> </hist> @@ -18858,52 +18837,52 @@ <b> <a>1</a> <b>2</b> - <v>997</v> + <v>998</v> </b> <b> <a>2</a> <b>3</b> - <v>4029</v> + <v>4035</v> </b> <b> <a>3</a> <b>4</b> - <v>5784</v> + <v>5793</v> </b> <b> <a>4</a> <b>5</b> - <v>3909</v> + <v>3915</v> </b> <b> <a>5</a> <b>6</b> - <v>3071</v> + <v>3076</v> </b> <b> <a>6</a> <b>7</b> - <v>1835</v> + <v>1837</v> </b> <b> <a>7</a> <b>8</b> - <v>1476</v> + <v>1478</v> </b> <b> <a>8</a> <b>11</b> - <v>2593</v> + <v>2597</v> </b> <b> <a>11</a> <b>17</b> - <v>2353</v> + <v>2357</v> </b> <b> <a>17</a> <b>84</b> - <v>2154</v> + <v>2157</v> </b> <b> <a>94</a> @@ -18924,52 +18903,52 @@ <b> <a>1</a> <b>2</b> - <v>997</v> + <v>998</v> </b> <b> <a>2</a> <b>3</b> - <v>4029</v> + <v>4035</v> </b> <b> <a>3</a> <b>4</b> - <v>5784</v> + <v>5793</v> </b> <b> <a>4</a> <b>5</b> - <v>3909</v> + <v>3915</v> </b> <b> <a>5</a> <b>6</b> - <v>3071</v> + <v>3076</v> </b> <b> <a>6</a> <b>7</b> - <v>1835</v> + <v>1837</v> </b> <b> <a>7</a> <b>8</b> - <v>1476</v> + <v>1478</v> </b> <b> <a>8</a> <b>11</b> - <v>2593</v> + <v>2597</v> </b> <b> <a>11</a> <b>17</b> - <v>2353</v> + <v>2357</v> </b> <b> <a>17</a> <b>84</b> - <v>2154</v> + <v>2157</v> </b> <b> <a>94</a> @@ -18990,7 +18969,7 @@ <b> <a>1</a> <b>2</b> - <v>28484</v> + <v>28527</v> </b> </bs> </hist> @@ -19006,52 +18985,52 @@ <b> <a>1</a> <b>2</b> - <v>997</v> + <v>998</v> </b> <b> <a>2</a> <b>3</b> - <v>4029</v> + <v>4035</v> </b> <b> <a>3</a> <b>4</b> - <v>5784</v> + <v>5793</v> </b> <b> <a>4</a> <b>5</b> - <v>3909</v> + <v>3915</v> </b> <b> <a>5</a> <b>6</b> - <v>3071</v> + <v>3076</v> </b> <b> <a>6</a> <b>7</b> - <v>1835</v> + <v>1837</v> </b> <b> <a>7</a> <b>8</b> - <v>1476</v> + <v>1478</v> </b> <b> <a>8</a> <b>11</b> - <v>2593</v> + <v>2597</v> </b> <b> <a>11</a> <b>17</b> - <v>2353</v> + <v>2357</v> </b> <b> <a>17</a> <b>84</b> - <v>2154</v> + <v>2157</v> </b> <b> <a>94</a> @@ -19072,52 +19051,52 @@ <b> <a>1</a> <b>2</b> - <v>1436</v> + <v>1438</v> </b> <b> <a>2</a> <b>3</b> - <v>4188</v> + <v>4195</v> </b> <b> <a>3</a> <b>4</b> - <v>5824</v> + <v>5833</v> </b> <b> <a>4</a> <b>5</b> - <v>3869</v> + <v>3875</v> </b> <b> <a>5</a> <b>6</b> - <v>3071</v> + <v>3076</v> </b> <b> <a>6</a> <b>7</b> - <v>1795</v> + <v>1797</v> </b> <b> <a>7</a> <b>8</b> - <v>1396</v> + <v>1398</v> </b> <b> <a>8</a> <b>11</b> - <v>2513</v> + <v>2517</v> </b> <b> <a>11</a> <b>17</b> - <v>2234</v> + <v>2237</v> </b> <b> <a>17</a> <b>257</b> - <v>2154</v> + <v>2157</v> </b> </bs> </hist> @@ -19133,47 +19112,47 @@ <b> <a>1</a> <b>2</b> - <v>2034</v> + <v>2037</v> </b> <b> <a>2</a> <b>3</b> - <v>1635</v> + <v>1638</v> </b> <b> <a>3</a> <b>4</b> - <v>1755</v> + <v>1757</v> </b> <b> <a>4</a> <b>5</b> - <v>877</v> + <v>878</v> </b> <b> <a>5</a> <b>9</b> - <v>797</v> + <v>799</v> </b> <b> <a>9</a> <b>12</b> - <v>837</v> + <v>839</v> </b> <b> <a>12</a> <b>20</b> - <v>877</v> + <v>878</v> </b> <b> <a>20</a> <b>69</b> - <v>797</v> + <v>799</v> </b> <b> <a>77</a> <b>715</b> - <v>598</v> + <v>599</v> </b> </bs> </hist> @@ -19189,47 +19168,47 @@ <b> <a>1</a> <b>2</b> - <v>2034</v> + <v>2037</v> </b> <b> <a>2</a> <b>3</b> - <v>1635</v> + <v>1638</v> </b> <b> <a>3</a> <b>4</b> - <v>1755</v> + <v>1757</v> </b> <b> <a>4</a> <b>5</b> - <v>877</v> + <v>878</v> </b> <b> <a>5</a> <b>9</b> - <v>797</v> + <v>799</v> </b> <b> <a>9</a> <b>12</b> - <v>837</v> + <v>839</v> </b> <b> <a>12</a> <b>20</b> - <v>877</v> + <v>878</v> </b> <b> <a>20</a> <b>69</b> - <v>797</v> + <v>799</v> </b> <b> <a>77</a> <b>715</b> - <v>598</v> + <v>599</v> </b> </bs> </hist> @@ -19245,7 +19224,7 @@ <b> <a>1</a> <b>2</b> - <v>10212</v> + <v>10228</v> </b> </bs> </hist> @@ -19261,47 +19240,47 @@ <b> <a>1</a> <b>2</b> - <v>2034</v> + <v>2037</v> </b> <b> <a>2</a> <b>3</b> - <v>1635</v> + <v>1638</v> </b> <b> <a>3</a> <b>4</b> - <v>1755</v> + <v>1757</v> </b> <b> <a>4</a> <b>5</b> - <v>877</v> + <v>878</v> </b> <b> <a>5</a> <b>9</b> - <v>797</v> + <v>799</v> </b> <b> <a>9</a> <b>12</b> - <v>837</v> + <v>839</v> </b> <b> <a>12</a> <b>20</b> - <v>877</v> + <v>878</v> </b> <b> <a>20</a> <b>69</b> - <v>797</v> + <v>799</v> </b> <b> <a>77</a> <b>712</b> - <v>598</v> + <v>599</v> </b> </bs> </hist> @@ -19317,47 +19296,47 @@ <b> <a>1</a> <b>2</b> - <v>2034</v> + <v>2037</v> </b> <b> <a>2</a> <b>3</b> - <v>1635</v> + <v>1638</v> </b> <b> <a>3</a> <b>4</b> - <v>1755</v> + <v>1757</v> </b> <b> <a>4</a> <b>5</b> - <v>877</v> + <v>878</v> </b> <b> <a>5</a> <b>9</b> - <v>797</v> + <v>799</v> </b> <b> <a>9</a> <b>12</b> - <v>837</v> + <v>839</v> </b> <b> <a>12</a> <b>20</b> - <v>877</v> + <v>878</v> </b> <b> <a>20</a> <b>69</b> - <v>797</v> + <v>799</v> </b> <b> <a>77</a> <b>715</b> - <v>598</v> + <v>599</v> </b> </bs> </hist> @@ -19453,7 +19432,7 @@ <b> <a>1</a> <b>2</b> - <v>240757</v> + <v>241125</v> </b> <b> <a>2</a> @@ -19474,7 +19453,7 @@ <b> <a>1</a> <b>2</b> - <v>240757</v> + <v>241125</v> </b> <b> <a>2</a> @@ -19495,7 +19474,7 @@ <b> <a>1</a> <b>2</b> - <v>241036</v> + <v>241405</v> </b> </bs> </hist> @@ -19511,7 +19490,7 @@ <b> <a>1</a> <b>2</b> - <v>241036</v> + <v>241405</v> </b> </bs> </hist> @@ -19527,7 +19506,7 @@ <b> <a>1</a> <b>2</b> - <v>240757</v> + <v>241125</v> </b> <b> <a>2</a> @@ -19548,12 +19527,12 @@ <b> <a>1</a> <b>2</b> - <v>220491</v> + <v>220828</v> </b> <b> <a>2</a> <b>205</b> - <v>757</v> + <v>759</v> </b> </bs> </hist> @@ -19569,7 +19548,7 @@ <b> <a>1</a> <b>2</b> - <v>221249</v> + <v>221587</v> </b> </bs> </hist> @@ -19585,12 +19564,12 @@ <b> <a>1</a> <b>2</b> - <v>220491</v> + <v>220828</v> </b> <b> <a>2</a> <b>205</b> - <v>757</v> + <v>759</v> </b> </bs> </hist> @@ -19606,7 +19585,7 @@ <b> <a>1</a> <b>2</b> - <v>221249</v> + <v>221587</v> </b> </bs> </hist> @@ -19622,12 +19601,12 @@ <b> <a>1</a> <b>2</b> - <v>220491</v> + <v>220828</v> </b> <b> <a>2</a> <b>205</b> - <v>757</v> + <v>759</v> </b> </bs> </hist> @@ -19637,31 +19616,31 @@ </relation> <relation> <name>builtintypes</name> - <cardinality>26090</cardinality> + <cardinality>26119</cardinality> <columnsizes> <e> <k>id</k> - <v>26090</v> + <v>26119</v> </e> <e> <k>name</k> - <v>26090</v> + <v>26119</v> </e> <e> <k>kind</k> - <v>26090</v> + <v>26119</v> </e> <e> <k>size</k> - <v>3261</v> + <v>3264</v> </e> <e> <k>sign</k> - <v>1397</v> + <v>1399</v> </e> <e> <k>alignment</k> - <v>2329</v> + <v>2332</v> </e> </columnsizes> <dependencies> @@ -19675,7 +19654,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19691,7 +19670,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19707,7 +19686,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19723,7 +19702,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19739,7 +19718,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19755,7 +19734,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19771,7 +19750,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19787,7 +19766,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19803,7 +19782,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19819,7 +19798,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19835,7 +19814,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19851,7 +19830,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19867,7 +19846,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19883,7 +19862,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19899,7 +19878,7 @@ <b> <a>1</a> <b>2</b> - <v>26090</v> + <v>26119</v> </b> </bs> </hist> @@ -19915,37 +19894,37 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>7</a> <b>8</b> - <v>465</v> + <v>466</v> </b> <b> <a>8</a> <b>9</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>465</v> + <v>466</v> </b> <b> <a>12</a> <b>13</b> - <v>465</v> + <v>466</v> </b> <b> <a>14</a> <b>15</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -19961,37 +19940,37 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>7</a> <b>8</b> - <v>465</v> + <v>466</v> </b> <b> <a>8</a> <b>9</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>465</v> + <v>466</v> </b> <b> <a>12</a> <b>13</b> - <v>465</v> + <v>466</v> </b> <b> <a>14</a> <b>15</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20007,37 +19986,37 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>7</a> <b>8</b> - <v>465</v> + <v>466</v> </b> <b> <a>8</a> <b>9</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>465</v> + <v>466</v> </b> <b> <a>12</a> <b>13</b> - <v>465</v> + <v>466</v> </b> <b> <a>14</a> <b>15</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20053,12 +20032,12 @@ <b> <a>1</a> <b>2</b> - <v>931</v> + <v>932</v> </b> <b> <a>3</a> <b>4</b> - <v>2329</v> + <v>2332</v> </b> </bs> </hist> @@ -20074,12 +20053,12 @@ <b> <a>1</a> <b>2</b> - <v>1863</v> + <v>1865</v> </b> <b> <a>2</a> <b>3</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -20095,17 +20074,17 @@ <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>12</a> <b>13</b> - <v>465</v> + <v>466</v> </b> <b> <a>38</a> <b>39</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20121,17 +20100,17 @@ <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>12</a> <b>13</b> - <v>465</v> + <v>466</v> </b> <b> <a>38</a> <b>39</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20147,17 +20126,17 @@ <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>12</a> <b>13</b> - <v>465</v> + <v>466</v> </b> <b> <a>38</a> <b>39</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20173,12 +20152,12 @@ <b> <a>5</a> <b>6</b> - <v>931</v> + <v>932</v> </b> <b> <a>7</a> <b>8</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20194,7 +20173,7 @@ <b> <a>5</a> <b>6</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -20210,27 +20189,27 @@ <b> <a>8</a> <b>9</b> - <v>465</v> + <v>466</v> </b> <b> <a>9</a> <b>10</b> - <v>465</v> + <v>466</v> </b> <b> <a>11</a> <b>12</b> - <v>465</v> + <v>466</v> </b> <b> <a>13</a> <b>14</b> - <v>465</v> + <v>466</v> </b> <b> <a>15</a> <b>16</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20246,27 +20225,27 @@ <b> <a>8</a> <b>9</b> - <v>465</v> + <v>466</v> </b> <b> <a>9</a> <b>10</b> - <v>465</v> + <v>466</v> </b> <b> <a>11</a> <b>12</b> - <v>465</v> + <v>466</v> </b> <b> <a>13</a> <b>14</b> - <v>465</v> + <v>466</v> </b> <b> <a>15</a> <b>16</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20282,27 +20261,27 @@ <b> <a>8</a> <b>9</b> - <v>465</v> + <v>466</v> </b> <b> <a>9</a> <b>10</b> - <v>465</v> + <v>466</v> </b> <b> <a>11</a> <b>12</b> - <v>465</v> + <v>466</v> </b> <b> <a>13</a> <b>14</b> - <v>465</v> + <v>466</v> </b> <b> <a>15</a> <b>16</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20318,7 +20297,7 @@ <b> <a>2</a> <b>3</b> - <v>2329</v> + <v>2332</v> </b> </bs> </hist> @@ -20334,7 +20313,7 @@ <b> <a>3</a> <b>4</b> - <v>2329</v> + <v>2332</v> </b> </bs> </hist> @@ -20344,23 +20323,23 @@ </relation> <relation> <name>derivedtypes</name> - <cardinality>4332841</cardinality> + <cardinality>4330701</cardinality> <columnsizes> <e> <k>id</k> - <v>4332841</v> + <v>4330701</v> </e> <e> <k>name</k> - <v>2158500</v> + <v>2160919</v> </e> <e> <k>kind</k> - <v>2795</v> + <v>2798</v> </e> <e> <k>type_id</k> - <v>2673316</v> + <v>2670715</v> </e> </columnsizes> <dependencies> @@ -20374,7 +20353,7 @@ <b> <a>1</a> <b>2</b> - <v>4332841</v> + <v>4330701</v> </b> </bs> </hist> @@ -20390,7 +20369,7 @@ <b> <a>1</a> <b>2</b> - <v>4332841</v> + <v>4330701</v> </b> </bs> </hist> @@ -20406,7 +20385,7 @@ <b> <a>1</a> <b>2</b> - <v>4332841</v> + <v>4330701</v> </b> </bs> </hist> @@ -20422,17 +20401,17 @@ <b> <a>1</a> <b>2</b> - <v>1897132</v> + <v>1899258</v> </b> <b> <a>2</a> <b>5</b> - <v>164461</v> + <v>164645</v> </b> <b> <a>5</a> - <b>1165</b> - <v>96906</v> + <b>1153</b> + <v>97015</v> </b> </bs> </hist> @@ -20448,12 +20427,12 @@ <b> <a>1</a> <b>2</b> - <v>2157568</v> + <v>2159986</v> </b> <b> <a>2</a> <b>3</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -20469,17 +20448,17 @@ <b> <a>1</a> <b>2</b> - <v>1897132</v> + <v>1899258</v> </b> <b> <a>2</a> <b>5</b> - <v>164461</v> + <v>164645</v> </b> <b> <a>5</a> - <b>1147</b> - <v>96906</v> + <b>1135</b> + <v>97015</v> </b> </bs> </hist> @@ -20495,32 +20474,32 @@ <b> <a>236</a> <b>237</b> - <v>465</v> + <v>466</v> </b> <b> <a>1077</a> <b>1078</b> - <v>465</v> + <v>466</v> </b> <b> - <a>1146</a> - <b>1147</b> - <v>465</v> + <a>1134</a> + <b>1135</b> + <v>466</v> </b> <b> <a>1217</a> <b>1218</b> - <v>465</v> + <v>466</v> </b> <b> - <a>2169</a> - <b>2170</b> - <v>465</v> + <a>2166</a> + <b>2167</b> + <v>466</v> </b> <b> <a>3455</a> <b>3456</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20536,32 +20515,32 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> <b> <a>201</a> <b>202</b> - <v>465</v> + <v>466</v> </b> <b> <a>606</a> <b>607</b> - <v>465</v> + <v>466</v> </b> <b> <a>760</a> <b>761</b> - <v>465</v> + <v>466</v> </b> <b> <a>1128</a> <b>1129</b> - <v>465</v> + <v>466</v> </b> <b> <a>1939</a> <b>1940</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20577,32 +20556,32 @@ <b> <a>84</a> <b>85</b> - <v>465</v> + <v>466</v> </b> <b> <a>1077</a> <b>1078</b> - <v>465</v> + <v>466</v> </b> <b> - <a>1146</a> - <b>1147</b> - <v>465</v> + <a>1134</a> + <b>1135</b> + <v>466</v> </b> <b> <a>1217</a> <b>1218</b> - <v>465</v> + <v>466</v> </b> <b> - <a>2124</a> - <b>2125</b> - <v>465</v> + <a>2121</a> + <b>2122</b> + <v>466</v> </b> <b> <a>3455</a> <b>3456</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20618,22 +20597,22 @@ <b> <a>1</a> <b>2</b> - <v>1653468</v> + <v>1651123</v> </b> <b> <a>2</a> <b>3</b> - <v>560939</v> + <v>560169</v> </b> <b> <a>3</a> <b>4</b> - <v>353615</v> + <v>354012</v> </b> <b> <a>4</a> <b>72</b> - <v>105292</v> + <v>105410</v> </b> </bs> </hist> @@ -20649,22 +20628,22 @@ <b> <a>1</a> <b>2</b> - <v>1664649</v> + <v>1662317</v> </b> <b> <a>2</a> <b>3</b> - <v>553485</v> + <v>552706</v> </b> <b> <a>3</a> <b>4</b> - <v>350820</v> + <v>351213</v> </b> <b> <a>4</a> <b>72</b> - <v>104360</v> + <v>104477</v> </b> </bs> </hist> @@ -20680,22 +20659,22 @@ <b> <a>1</a> <b>2</b> - <v>1657661</v> + <v>1655321</v> </b> <b> <a>2</a> <b>3</b> - <v>564667</v> + <v>563900</v> </b> <b> <a>3</a> <b>4</b> - <v>352684</v> + <v>353079</v> </b> <b> <a>4</a> <b>6</b> - <v>98304</v> + <v>98414</v> </b> </bs> </hist> @@ -20705,19 +20684,19 @@ </relation> <relation> <name>pointerishsize</name> - <cardinality>3212359</cardinality> + <cardinality>3210362</cardinality> <columnsizes> <e> <k>id</k> - <v>3212359</v> + <v>3210362</v> </e> <e> <k>size</k> - <v>465</v> + <v>466</v> </e> <e> <k>alignment</k> - <v>465</v> + <v>466</v> </e> </columnsizes> <dependencies> @@ -20731,7 +20710,7 @@ <b> <a>1</a> <b>2</b> - <v>3212359</v> + <v>3210362</v> </b> </bs> </hist> @@ -20747,7 +20726,7 @@ <b> <a>1</a> <b>2</b> - <v>3212359</v> + <v>3210362</v> </b> </bs> </hist> @@ -20761,9 +20740,9 @@ <budget>12</budget> <bs> <b> - <a>6895</a> - <b>6896</b> - <v>465</v> + <a>6883</a> + <b>6884</b> + <v>466</v> </b> </bs> </hist> @@ -20779,7 +20758,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20793,9 +20772,9 @@ <budget>12</budget> <bs> <b> - <a>6895</a> - <b>6896</b> - <v>465</v> + <a>6883</a> + <b>6884</b> + <v>466</v> </b> </bs> </hist> @@ -20811,7 +20790,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20821,23 +20800,23 @@ </relation> <relation> <name>arraysizes</name> - <cardinality>88054</cardinality> + <cardinality>88153</cardinality> <columnsizes> <e> <k>id</k> - <v>88054</v> + <v>88153</v> </e> <e> <k>num_elements</k> - <v>31680</v> + <v>31716</v> </e> <e> <k>bytesize</k> - <v>33078</v> + <v>33115</v> </e> <e> <k>alignment</k> - <v>1863</v> + <v>1865</v> </e> </columnsizes> <dependencies> @@ -20851,7 +20830,7 @@ <b> <a>1</a> <b>2</b> - <v>88054</v> + <v>88153</v> </b> </bs> </hist> @@ -20867,7 +20846,7 @@ <b> <a>1</a> <b>2</b> - <v>88054</v> + <v>88153</v> </b> </bs> </hist> @@ -20883,7 +20862,7 @@ <b> <a>1</a> <b>2</b> - <v>88054</v> + <v>88153</v> </b> </bs> </hist> @@ -20899,27 +20878,27 @@ <b> <a>1</a> <b>2</b> - <v>1863</v> + <v>1865</v> </b> <b> <a>2</a> <b>3</b> - <v>23760</v> + <v>23787</v> </b> <b> <a>3</a> <b>5</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>5</a> <b>13</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>13</a> <b>14</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -20935,17 +20914,17 @@ <b> <a>1</a> <b>2</b> - <v>26556</v> + <v>26585</v> </b> <b> <a>2</a> <b>3</b> - <v>2329</v> + <v>2332</v> </b> <b> <a>3</a> <b>7</b> - <v>2795</v> + <v>2798</v> </b> </bs> </hist> @@ -20961,17 +20940,17 @@ <b> <a>1</a> <b>2</b> - <v>26556</v> + <v>26585</v> </b> <b> <a>2</a> <b>3</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>3</a> <b>5</b> - <v>2329</v> + <v>2332</v> </b> </bs> </hist> @@ -20987,27 +20966,27 @@ <b> <a>1</a> <b>2</b> - <v>1863</v> + <v>1865</v> </b> <b> <a>2</a> <b>3</b> - <v>23760</v> + <v>23787</v> </b> <b> <a>3</a> <b>4</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>4</a> <b>6</b> - <v>2329</v> + <v>2332</v> </b> <b> <a>7</a> <b>16</b> - <v>1863</v> + <v>1865</v> </b> </bs> </hist> @@ -21023,17 +21002,17 @@ <b> <a>1</a> <b>2</b> - <v>27487</v> + <v>27518</v> </b> <b> <a>2</a> <b>3</b> - <v>3727</v> + <v>3731</v> </b> <b> <a>3</a> <b>5</b> - <v>1863</v> + <v>1865</v> </b> </bs> </hist> @@ -21049,17 +21028,17 @@ <b> <a>1</a> <b>2</b> - <v>27487</v> + <v>27518</v> </b> <b> <a>2</a> <b>3</b> - <v>4658</v> + <v>4664</v> </b> <b> <a>4</a> <b>5</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -21075,22 +21054,22 @@ <b> <a>5</a> <b>6</b> - <v>465</v> + <v>466</v> </b> <b> <a>16</a> <b>17</b> - <v>465</v> + <v>466</v> </b> <b> <a>31</a> <b>32</b> - <v>465</v> + <v>466</v> </b> <b> <a>137</a> <b>138</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -21106,17 +21085,17 @@ <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>7</a> <b>8</b> - <v>931</v> + <v>932</v> </b> <b> <a>68</a> <b>69</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -21132,22 +21111,22 @@ <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>7</a> <b>8</b> - <v>465</v> + <v>466</v> </b> <b> <a>8</a> <b>9</b> - <v>465</v> + <v>466</v> </b> <b> <a>68</a> <b>69</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -21157,15 +21136,15 @@ </relation> <relation> <name>typedefbase</name> - <cardinality>1679336</cardinality> + <cardinality>1672769</cardinality> <columnsizes> <e> <k>id</k> - <v>1679336</v> + <v>1672769</v> </e> <e> <k>type_id</k> - <v>790504</v> + <v>787413</v> </e> </columnsizes> <dependencies> @@ -21179,7 +21158,7 @@ <b> <a>1</a> <b>2</b> - <v>1679336</v> + <v>1672769</v> </b> </bs> </hist> @@ -21195,22 +21174,22 @@ <b> <a>1</a> <b>2</b> - <v>615196</v> + <v>612790</v> </b> <b> <a>2</a> <b>3</b> - <v>82913</v> + <v>82588</v> </b> <b> <a>3</a> <b>6</b> - <v>61746</v> + <v>61505</v> </b> <b> <a>6</a> <b>5437</b> - <v>30648</v> + <v>30528</v> </b> </bs> </hist> @@ -21220,19 +21199,19 @@ </relation> <relation> <name>decltypes</name> - <cardinality>172128</cardinality> + <cardinality>166216</cardinality> <columnsizes> <e> <k>id</k> - <v>17293</v> + <v>16699</v> </e> <e> <k>expr</k> - <v>172128</v> + <v>166216</v> </e> <e> <k>base_type</k> - <v>10324</v> + <v>9970</v> </e> <e> <k>parentheses_would_change_meaning</k> @@ -21250,37 +21229,37 @@ <b> <a>1</a> <b>2</b> - <v>5271</v> + <v>5090</v> </b> <b> <a>2</a> <b>3</b> - <v>6416</v> + <v>6195</v> </b> <b> <a>3</a> <b>5</b> - <v>1145</v> + <v>1105</v> </b> <b> <a>5</a> <b>12</b> - <v>1342</v> + <v>1296</v> </b> <b> <a>12</a> <b>18</b> - <v>1401</v> + <v>1353</v> </b> <b> <a>18</a> <b>46</b> - <v>1302</v> + <v>1258</v> </b> <b> <a>51</a> <b>740</b> - <v>414</v> + <v>400</v> </b> </bs> </hist> @@ -21296,7 +21275,7 @@ <b> <a>1</a> <b>2</b> - <v>17293</v> + <v>16699</v> </b> </bs> </hist> @@ -21312,7 +21291,7 @@ <b> <a>1</a> <b>2</b> - <v>17293</v> + <v>16699</v> </b> </bs> </hist> @@ -21328,7 +21307,7 @@ <b> <a>1</a> <b>2</b> - <v>172128</v> + <v>166216</v> </b> </bs> </hist> @@ -21344,7 +21323,7 @@ <b> <a>1</a> <b>2</b> - <v>172128</v> + <v>166216</v> </b> </bs> </hist> @@ -21360,7 +21339,7 @@ <b> <a>1</a> <b>2</b> - <v>172128</v> + <v>166216</v> </b> </bs> </hist> @@ -21376,17 +21355,17 @@ <b> <a>1</a> <b>2</b> - <v>7501</v> + <v>7244</v> </b> <b> <a>2</a> <b>3</b> - <v>2349</v> + <v>2268</v> </b> <b> <a>4</a> <b>149</b> - <v>473</v> + <v>457</v> </b> </bs> </hist> @@ -21402,37 +21381,37 @@ <b> <a>1</a> <b>2</b> - <v>750</v> + <v>724</v> </b> <b> <a>2</a> <b>3</b> - <v>6356</v> + <v>6138</v> </b> <b> <a>3</a> <b>4</b> - <v>355</v> + <v>343</v> </b> <b> <a>4</a> <b>5</b> - <v>1006</v> + <v>972</v> </b> <b> <a>5</a> <b>7</b> - <v>789</v> + <v>762</v> </b> <b> <a>7</a> <b>32</b> - <v>829</v> + <v>800</v> </b> <b> <a>32</a> <b>3888</b> - <v>236</v> + <v>228</v> </b> </bs> </hist> @@ -21448,7 +21427,7 @@ <b> <a>1</a> <b>2</b> - <v>10324</v> + <v>9970</v> </b> </bs> </hist> @@ -21506,19 +21485,19 @@ </relation> <relation> <name>usertypes</name> - <cardinality>5224568</cardinality> + <cardinality>5229957</cardinality> <columnsizes> <e> <k>id</k> - <v>5224568</v> + <v>5229957</v> </e> <e> <k>name</k> - <v>1349703</v> + <v>1351216</v> </e> <e> <k>kind</k> - <v>5124</v> + <v>5130</v> </e> </columnsizes> <dependencies> @@ -21532,7 +21511,7 @@ <b> <a>1</a> <b>2</b> - <v>5224568</v> + <v>5229957</v> </b> </bs> </hist> @@ -21548,7 +21527,7 @@ <b> <a>1</a> <b>2</b> - <v>5224568</v> + <v>5229957</v> </b> </bs> </hist> @@ -21564,27 +21543,27 @@ <b> <a>1</a> <b>2</b> - <v>981644</v> + <v>982745</v> </b> <b> <a>2</a> <b>3</b> - <v>153280</v> + <v>153451</v> </b> <b> <a>3</a> <b>7</b> - <v>104360</v> + <v>104477</v> </b> <b> <a>7</a> <b>61</b> - <v>101565</v> + <v>101679</v> </b> <b> <a>65</a> <b>874</b> - <v>8852</v> + <v>8861</v> </b> </bs> </hist> @@ -21600,17 +21579,17 @@ <b> <a>1</a> <b>2</b> - <v>1209468</v> + <v>1210823</v> </b> <b> <a>2</a> <b>3</b> - <v>124860</v> + <v>125000</v> </b> <b> <a>3</a> <b>7</b> - <v>15374</v> + <v>15391</v> </b> </bs> </hist> @@ -21626,57 +21605,57 @@ <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>465</v> + <v>466</v> </b> <b> <a>26</a> <b>27</b> - <v>465</v> + <v>466</v> </b> <b> <a>124</a> <b>125</b> - <v>465</v> + <v>466</v> </b> <b> <a>135</a> <b>136</b> - <v>465</v> + <v>466</v> </b> <b> <a>663</a> <b>664</b> - <v>465</v> + <v>466</v> </b> <b> <a>853</a> <b>854</b> - <v>465</v> + <v>466</v> </b> <b> - <a>959</a> - <b>960</b> - <v>465</v> + <a>958</a> + <b>959</b> + <v>466</v> </b> <b> <a>1752</a> <b>1753</b> - <v>465</v> + <v>466</v> </b> <b> <a>1842</a> <b>1843</b> - <v>465</v> + <v>466</v> </b> <b> <a>4844</a> <b>4845</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -21692,57 +21671,57 @@ <b> <a>5</a> <b>6</b> - <v>465</v> + <v>466</v> </b> <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>14</a> <b>15</b> - <v>465</v> + <v>466</v> </b> <b> <a>30</a> <b>31</b> - <v>465</v> + <v>466</v> </b> <b> <a>43</a> <b>44</b> - <v>465</v> + <v>466</v> </b> <b> <a>125</a> <b>126</b> - <v>465</v> + <v>466</v> </b> <b> <a>267</a> <b>268</b> - <v>465</v> + <v>466</v> </b> <b> <a>371</a> <b>372</b> - <v>465</v> + <v>466</v> </b> <b> <a>438</a> <b>439</b> - <v>465</v> + <v>466</v> </b> <b> <a>739</a> <b>740</b> - <v>465</v> + <v>466</v> </b> <b> <a>1200</a> <b>1201</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -21752,19 +21731,19 @@ </relation> <relation> <name>usertypesize</name> - <cardinality>1704251</cardinality> + <cardinality>1705694</cardinality> <columnsizes> <e> <k>id</k> - <v>1704251</v> + <v>1705694</v> </e> <e> <k>size</k> - <v>13511</v> + <v>13526</v> </e> <e> <k>alignment</k> - <v>2329</v> + <v>2332</v> </e> </columnsizes> <dependencies> @@ -21778,7 +21757,7 @@ <b> <a>1</a> <b>2</b> - <v>1704251</v> + <v>1705694</v> </b> </bs> </hist> @@ -21794,7 +21773,7 @@ <b> <a>1</a> <b>2</b> - <v>1704251</v> + <v>1705694</v> </b> </bs> </hist> @@ -21810,47 +21789,47 @@ <b> <a>1</a> <b>2</b> - <v>3261</v> + <v>3264</v> </b> <b> <a>2</a> <b>3</b> - <v>4193</v> + <v>4197</v> </b> <b> <a>3</a> <b>4</b> - <v>465</v> + <v>466</v> </b> <b> <a>4</a> <b>5</b> - <v>931</v> + <v>932</v> </b> <b> <a>6</a> <b>8</b> - <v>931</v> + <v>932</v> </b> <b> <a>9</a> <b>15</b> - <v>931</v> + <v>932</v> </b> <b> <a>37</a> <b>84</b> - <v>931</v> + <v>932</v> </b> <b> <a>92</a> <b>163</b> - <v>931</v> + <v>932</v> </b> <b> <a>740</a> - <b>2473</b> - <v>931</v> + <b>2472</b> + <v>932</v> </b> </bs> </hist> @@ -21866,17 +21845,17 @@ <b> <a>1</a> <b>2</b> - <v>10249</v> + <v>10261</v> </b> <b> <a>2</a> <b>3</b> - <v>2795</v> + <v>2798</v> </b> <b> <a>3</a> <b>4</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -21892,27 +21871,27 @@ <b> <a>2</a> <b>3</b> - <v>465</v> + <v>466</v> </b> <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>184</a> <b>185</b> - <v>465</v> + <v>466</v> </b> <b> <a>254</a> <b>255</b> - <v>465</v> + <v>466</v> </b> <b> - <a>3212</a> - <b>3213</b> - <v>465</v> + <a>3211</a> + <b>3212</b> + <v>466</v> </b> </bs> </hist> @@ -21928,27 +21907,27 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> <b> <a>2</a> <b>3</b> - <v>465</v> + <v>466</v> </b> <b> <a>3</a> <b>4</b> - <v>465</v> + <v>466</v> </b> <b> <a>9</a> <b>10</b> - <v>465</v> + <v>466</v> </b> <b> <a>22</a> <b>23</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -21958,22 +21937,22 @@ </relation> <relation> <name>usertype_final</name> - <cardinality>9490</cardinality> + <cardinality>9420</cardinality> <columnsizes> <e> <k>id</k> - <v>9490</v> + <v>9420</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>usertype_uuid</name> - <cardinality>36638</cardinality> + <cardinality>36639</cardinality> <columnsizes> <e> <k>id</k> - <v>36638</v> + <v>36639</v> </e> <e> <k>uuid</k> @@ -21991,7 +21970,7 @@ <b> <a>1</a> <b>2</b> - <v>36638</v> + <v>36639</v> </b> </bs> </hist> @@ -22007,7 +21986,7 @@ <b> <a>1</a> <b>2</b> - <v>35889</v> + <v>35890</v> </b> <b> <a>2</a> @@ -22022,19 +22001,19 @@ </relation> <relation> <name>mangled_name</name> - <cardinality>9467492</cardinality> + <cardinality>9477636</cardinality> <columnsizes> <e> <k>id</k> - <v>9467492</v> + <v>9477636</v> </e> <e> <k>mangled_name</k> - <v>6441025</v> + <v>6448244</v> </e> <e> <k>is_complete</k> - <v>465</v> + <v>466</v> </e> </columnsizes> <dependencies> @@ -22048,7 +22027,7 @@ <b> <a>1</a> <b>2</b> - <v>9467492</v> + <v>9477636</v> </b> </bs> </hist> @@ -22064,7 +22043,7 @@ <b> <a>1</a> <b>2</b> - <v>9467492</v> + <v>9477636</v> </b> </bs> </hist> @@ -22080,12 +22059,12 @@ <b> <a>1</a> <b>2</b> - <v>6160555</v> + <v>6167459</v> </b> <b> <a>2</a> <b>874</b> - <v>280469</v> + <v>280784</v> </b> </bs> </hist> @@ -22101,7 +22080,7 @@ <b> <a>1</a> <b>2</b> - <v>6441025</v> + <v>6448244</v> </b> </bs> </hist> @@ -22115,9 +22094,9 @@ <budget>12</budget> <bs> <b> - <a>20321</a> - <b>20322</b> - <v>465</v> + <a>20320</a> + <b>20321</b> + <v>466</v> </b> </bs> </hist> @@ -22133,7 +22112,7 @@ <b> <a>13825</a> <b>13826</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -22143,59 +22122,59 @@ </relation> <relation> <name>is_pod_class</name> - <cardinality>532834</cardinality> + <cardinality>530716</cardinality> <columnsizes> <e> <k>id</k> - <v>532834</v> + <v>530716</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>is_standard_layout_class</name> - <cardinality>1252796</cardinality> + <cardinality>1253734</cardinality> <columnsizes> <e> <k>id</k> - <v>1252796</v> + <v>1253734</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>is_complete</name> - <cardinality>1643684</cardinality> + <cardinality>1645060</cardinality> <columnsizes> <e> <k>id</k> - <v>1643684</v> + <v>1645060</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>is_class_template</name> - <cardinality>397410</cardinality> + <cardinality>397855</cardinality> <columnsizes> <e> <k>id</k> - <v>397410</v> + <v>397855</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>class_instantiation</name> - <cardinality>1087869</cardinality> + <cardinality>1088622</cardinality> <columnsizes> <e> <k>to</k> - <v>1087869</v> + <v>1088622</v> </e> <e> <k>from</k> - <v>168188</v> + <v>168377</v> </e> </columnsizes> <dependencies> @@ -22209,7 +22188,7 @@ <b> <a>1</a> <b>2</b> - <v>1087869</v> + <v>1088622</v> </b> </bs> </hist> @@ -22225,47 +22204,47 @@ <b> <a>1</a> <b>2</b> - <v>59634</v> + <v>59701</v> </b> <b> <a>2</a> <b>3</b> - <v>29351</v> + <v>29384</v> </b> <b> <a>3</a> <b>4</b> - <v>15840</v> + <v>15858</v> </b> <b> <a>4</a> <b>5</b> - <v>13045</v> + <v>13059</v> </b> <b> <a>5</a> <b>6</b> - <v>9783</v> + <v>9794</v> </b> <b> <a>6</a> <b>10</b> - <v>12579</v> + <v>12593</v> </b> <b> <a>10</a> <b>16</b> - <v>13045</v> + <v>13059</v> </b> <b> <a>16</a> <b>70</b> - <v>13511</v> + <v>13526</v> </b> <b> <a>70</a> <b>84</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -22275,19 +22254,19 @@ </relation> <relation> <name>class_template_argument</name> - <cardinality>2870306</cardinality> + <cardinality>2859038</cardinality> <columnsizes> <e> <k>type_id</k> - <v>1310002</v> + <v>1304835</v> </e> <e> <k>index</k> - <v>1258</v> + <v>1253</v> </e> <e> <k>arg_type</k> - <v>836511</v> + <v>833229</v> </e> </columnsizes> <dependencies> @@ -22301,27 +22280,27 @@ <b> <a>1</a> <b>2</b> - <v>538743</v> + <v>536592</v> </b> <b> <a>2</a> <b>3</b> - <v>397645</v> + <v>396090</v> </b> <b> <a>3</a> <b>4</b> - <v>230325</v> + <v>229424</v> </b> <b> <a>4</a> <b>7</b> - <v>119796</v> + <v>119328</v> </b> <b> <a>7</a> <b>113</b> - <v>23492</v> + <v>23400</v> </b> </bs> </hist> @@ -22337,22 +22316,22 @@ <b> <a>1</a> <b>2</b> - <v>565268</v> + <v>563013</v> </b> <b> <a>2</a> <b>3</b> - <v>408835</v> + <v>407236</v> </b> <b> <a>3</a> <b>4</b> - <v>243705</v> + <v>242752</v> </b> <b> <a>4</a> <b>113</b> - <v>92192</v> + <v>91832</v> </b> </bs> </hist> @@ -22373,31 +22352,31 @@ <b> <a>2</a> <b>3</b> - <v>797</v> + <v>794</v> </b> <b> <a>3</a> <b>26</b> - <v>101</v> + <v>100</v> </b> <b> <a>29</a> <b>64</b> - <v>101</v> + <v>100</v> </b> <b> <a>69</a> <b>411</b> - <v>101</v> + <v>100</v> </b> <b> <a>592</a> <b>8901</b> - <v>101</v> + <v>100</v> </b> <b> <a>13095</a> - <b>114270</b> + <b>114267</b> <v>44</v> </b> </bs> @@ -22419,31 +22398,31 @@ <b> <a>2</a> <b>3</b> - <v>797</v> + <v>794</v> </b> <b> <a>3</a> <b>14</b> - <v>112</v> + <v>111</v> </b> <b> <a>14</a> <b>26</b> - <v>101</v> + <v>100</v> </b> <b> <a>28</a> <b>145</b> - <v>101</v> + <v>100</v> </b> <b> <a>195</a> <b>3469</b> - <v>101</v> + <v>100</v> </b> <b> <a>10524</a> - <b>39739</b> + <b>39738</b> <v>33</v> </b> </bs> @@ -22460,27 +22439,27 @@ <b> <a>1</a> <b>2</b> - <v>520779</v> + <v>518731</v> </b> <b> <a>2</a> <b>3</b> - <v>173600</v> + <v>172921</v> </b> <b> <a>3</a> <b>4</b> - <v>51084</v> + <v>50884</v> </b> <b> <a>4</a> <b>10</b> - <v>63768</v> + <v>63519</v> </b> <b> <a>10</a> <b>10265</b> - <v>27278</v> + <v>27171</v> </b> </bs> </hist> @@ -22496,17 +22475,17 @@ <b> <a>1</a> <b>2</b> - <v>737319</v> + <v>734424</v> </b> <b> <a>2</a> <b>3</b> - <v>80946</v> + <v>80630</v> </b> <b> <a>3</a> <b>22</b> - <v>18245</v> + <v>18174</v> </b> </bs> </hist> @@ -22516,19 +22495,19 @@ </relation> <relation> <name>class_template_argument_value</name> - <cardinality>494316</cardinality> + <cardinality>494870</cardinality> <columnsizes> <e> <k>type_id</k> - <v>304230</v> + <v>304571</v> </e> <e> <k>index</k> - <v>1863</v> + <v>1865</v> </e> <e> <k>arg_value</k> - <v>494316</v> + <v>494870</v> </e> </columnsizes> <dependencies> @@ -22542,17 +22521,17 @@ <b> <a>1</a> <b>2</b> - <v>249254</v> + <v>249534</v> </b> <b> <a>2</a> <b>3</b> - <v>53112</v> + <v>53171</v> </b> <b> <a>3</a> <b>4</b> - <v>1863</v> + <v>1865</v> </b> </bs> </hist> @@ -22568,22 +22547,22 @@ <b> <a>1</a> <b>2</b> - <v>189154</v> + <v>189366</v> </b> <b> <a>2</a> <b>3</b> - <v>81066</v> + <v>81156</v> </b> <b> <a>3</a> <b>4</b> - <v>12113</v> + <v>12126</v> </b> <b> <a>4</a> <b>9</b> - <v>21897</v> + <v>21921</v> </b> </bs> </hist> @@ -22599,22 +22578,22 @@ <b> <a>18</a> <b>19</b> - <v>465</v> + <v>466</v> </b> <b> <a>92</a> <b>93</b> - <v>465</v> + <v>466</v> </b> <b> <a>293</a> <b>294</b> - <v>465</v> + <v>466</v> </b> <b> <a>372</a> <b>373</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -22630,22 +22609,22 @@ <b> <a>19</a> <b>20</b> - <v>465</v> + <v>466</v> </b> <b> <a>124</a> <b>125</b> - <v>465</v> + <v>466</v> </b> <b> <a>409</a> <b>410</b> - <v>465</v> + <v>466</v> </b> <b> <a>509</a> <b>510</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -22661,7 +22640,7 @@ <b> <a>1</a> <b>2</b> - <v>494316</v> + <v>494870</v> </b> </bs> </hist> @@ -22677,7 +22656,7 @@ <b> <a>1</a> <b>2</b> - <v>494316</v> + <v>494870</v> </b> </bs> </hist> @@ -22687,15 +22666,15 @@ </relation> <relation> <name>is_proxy_class_for</name> - <cardinality>62896</cardinality> + <cardinality>62966</cardinality> <columnsizes> <e> <k>id</k> - <v>62896</v> + <v>62966</v> </e> <e> <k>templ_param_id</k> - <v>62896</v> + <v>62966</v> </e> </columnsizes> <dependencies> @@ -22709,7 +22688,7 @@ <b> <a>1</a> <b>2</b> - <v>62896</v> + <v>62966</v> </b> </bs> </hist> @@ -22725,7 +22704,7 @@ <b> <a>1</a> <b>2</b> - <v>62896</v> + <v>62966</v> </b> </bs> </hist> @@ -22735,19 +22714,19 @@ </relation> <relation> <name>type_mentions</name> - <cardinality>4023226</cardinality> + <cardinality>4029370</cardinality> <columnsizes> <e> <k>id</k> - <v>4023226</v> + <v>4029370</v> </e> <e> <k>type_id</k> - <v>197911</v> + <v>198214</v> </e> <e> <k>location</k> - <v>3989755</v> + <v>3995848</v> </e> <e> <k>kind</k> @@ -22765,7 +22744,7 @@ <b> <a>1</a> <b>2</b> - <v>4023226</v> + <v>4029370</v> </b> </bs> </hist> @@ -22781,7 +22760,7 @@ <b> <a>1</a> <b>2</b> - <v>4023226</v> + <v>4029370</v> </b> </bs> </hist> @@ -22797,7 +22776,7 @@ <b> <a>1</a> <b>2</b> - <v>4023226</v> + <v>4029370</v> </b> </bs> </hist> @@ -22813,42 +22792,42 @@ <b> <a>1</a> <b>2</b> - <v>97459</v> + <v>97608</v> </b> <b> <a>2</a> <b>3</b> - <v>21702</v> + <v>21735</v> </b> <b> <a>3</a> <b>4</b> - <v>8218</v> + <v>8230</v> </b> <b> <a>4</a> <b>5</b> - <v>10771</v> + <v>10787</v> </b> <b> <a>5</a> <b>7</b> - <v>14361</v> + <v>14383</v> </b> <b> <a>7</a> <b>12</b> - <v>15837</v> + <v>15861</v> </b> <b> <a>12</a> <b>27</b> - <v>15159</v> + <v>15182</v> </b> <b> <a>27</a> <b>8555</b> - <v>14401</v> + <v>14423</v> </b> </bs> </hist> @@ -22864,42 +22843,42 @@ <b> <a>1</a> <b>2</b> - <v>97459</v> + <v>97608</v> </b> <b> <a>2</a> <b>3</b> - <v>21702</v> + <v>21735</v> </b> <b> <a>3</a> <b>4</b> - <v>8218</v> + <v>8230</v> </b> <b> <a>4</a> <b>5</b> - <v>10771</v> + <v>10787</v> </b> <b> <a>5</a> <b>7</b> - <v>14361</v> + <v>14383</v> </b> <b> <a>7</a> <b>12</b> - <v>15837</v> + <v>15861</v> </b> <b> <a>12</a> <b>27</b> - <v>15159</v> + <v>15182</v> </b> <b> <a>27</a> <b>8555</b> - <v>14401</v> + <v>14423</v> </b> </bs> </hist> @@ -22915,7 +22894,7 @@ <b> <a>1</a> <b>2</b> - <v>197911</v> + <v>198214</v> </b> </bs> </hist> @@ -22931,12 +22910,12 @@ <b> <a>1</a> <b>2</b> - <v>3956284</v> + <v>3962326</v> </b> <b> <a>2</a> <b>3</b> - <v>33470</v> + <v>33521</v> </b> </bs> </hist> @@ -22952,12 +22931,12 @@ <b> <a>1</a> <b>2</b> - <v>3956284</v> + <v>3962326</v> </b> <b> <a>2</a> <b>3</b> - <v>33470</v> + <v>33521</v> </b> </bs> </hist> @@ -22973,7 +22952,7 @@ <b> <a>1</a> <b>2</b> - <v>3989755</v> + <v>3995848</v> </b> </bs> </hist> @@ -23031,26 +23010,26 @@ </relation> <relation> <name>is_function_template</name> - <cardinality>1400020</cardinality> + <cardinality>1401589</cardinality> <columnsizes> <e> <k>id</k> - <v>1400020</v> + <v>1401589</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>function_instantiation</name> - <cardinality>904114</cardinality> + <cardinality>894870</cardinality> <columnsizes> <e> <k>to</k> - <v>904114</v> + <v>894870</v> </e> <e> <k>from</k> - <v>145768</v> + <v>144256</v> </e> </columnsizes> <dependencies> @@ -23064,7 +23043,7 @@ <b> <a>1</a> <b>2</b> - <v>904114</v> + <v>894870</v> </b> </bs> </hist> @@ -23080,27 +23059,27 @@ <b> <a>1</a> <b>2</b> - <v>101070</v> + <v>100033</v> </b> <b> <a>2</a> <b>3</b> - <v>14383</v> + <v>14230</v> </b> <b> <a>3</a> <b>6</b> - <v>11992</v> + <v>11864</v> </b> <b> <a>6</a> <b>21</b> - <v>12027</v> + <v>11899</v> </b> <b> <a>22</a> - <b>869</b> - <v>6294</v> + <b>870</b> + <v>6228</v> </b> </bs> </hist> @@ -23110,19 +23089,19 @@ </relation> <relation> <name>function_template_argument</name> - <cardinality>2335210</cardinality> + <cardinality>2310645</cardinality> <columnsizes> <e> <k>function_id</k> - <v>1333998</v> + <v>1319951</v> </e> <e> <k>index</k> - <v>562</v> + <v>556</v> </e> <e> <k>arg_type</k> - <v>304055</v> + <v>300865</v> </e> </columnsizes> <dependencies> @@ -23136,22 +23115,22 @@ <b> <a>1</a> <b>2</b> - <v>680767</v> + <v>673580</v> </b> <b> <a>2</a> <b>3</b> - <v>394154</v> + <v>390007</v> </b> <b> <a>3</a> <b>4</b> - <v>188531</v> + <v>186566</v> </b> <b> <a>4</a> <b>15</b> - <v>70545</v> + <v>69797</v> </b> </bs> </hist> @@ -23167,22 +23146,22 @@ <b> <a>1</a> <b>2</b> - <v>698351</v> + <v>690977</v> </b> <b> <a>2</a> <b>3</b> - <v>404036</v> + <v>399784</v> </b> <b> <a>3</a> <b>4</b> - <v>168415</v> + <v>166664</v> </b> <b> <a>4</a> <b>9</b> - <v>63195</v> + <v>62525</v> </b> </bs> </hist> @@ -23198,57 +23177,57 @@ <b> <a>1</a> <b>2</b> - <v>211</v> + <v>208</v> </b> <b> <a>7</a> <b>8</b> - <v>35</v> + <v>34</v> </b> <b> <a>35</a> <b>36</b> - <v>35</v> + <v>34</v> </b> <b> <a>108</a> <b>109</b> - <v>35</v> + <v>34</v> </b> <b> <a>164</a> <b>165</b> - <v>35</v> + <v>34</v> </b> <b> <a>294</a> <b>295</b> - <v>35</v> + <v>34</v> </b> <b> <a>849</a> <b>850</b> - <v>35</v> + <v>34</v> </b> <b> - <a>3293</a> - <b>3294</b> - <v>35</v> + <a>3294</a> + <b>3295</b> + <v>34</v> </b> <b> - <a>8740</a> - <b>8741</b> - <v>35</v> + <a>8741</a> + <b>8742</b> + <v>34</v> </b> <b> - <a>17935</a> - <b>17936</b> - <v>35</v> + <a>17936</a> + <b>17937</b> + <v>34</v> </b> <b> - <a>34972</a> - <b>34973</b> - <v>35</v> + <a>34975</a> + <b>34976</b> + <v>34</v> </b> </bs> </hist> @@ -23264,57 +23243,57 @@ <b> <a>1</a> <b>2</b> - <v>211</v> + <v>208</v> </b> <b> <a>3</a> <b>4</b> - <v>35</v> + <v>34</v> </b> <b> <a>11</a> <b>12</b> - <v>35</v> + <v>34</v> </b> <b> <a>22</a> <b>23</b> - <v>35</v> + <v>34</v> </b> <b> <a>30</a> <b>31</b> - <v>35</v> + <v>34</v> </b> <b> <a>61</a> <b>62</b> - <v>35</v> + <v>34</v> </b> <b> <a>134</a> <b>135</b> - <v>35</v> + <v>34</v> </b> <b> <a>453</a> <b>454</b> - <v>35</v> + <v>34</v> </b> <b> <a>1126</a> <b>1127</b> - <v>35</v> + <v>34</v> </b> <b> <a>2397</a> <b>2398</b> - <v>35</v> + <v>34</v> </b> <b> - <a>5837</a> - <b>5838</b> - <v>35</v> + <a>5838</a> + <b>5839</b> + <v>34</v> </b> </bs> </hist> @@ -23330,32 +23309,32 @@ <b> <a>1</a> <b>2</b> - <v>186245</v> + <v>184304</v> </b> <b> <a>2</a> <b>3</b> - <v>44521</v> + <v>44049</v> </b> <b> <a>3</a> <b>5</b> - <v>23421</v> + <v>23172</v> </b> <b> <a>5</a> <b>16</b> - <v>23456</v> + <v>23207</v> </b> <b> <a>16</a> <b>107</b> - <v>22964</v> + <v>22720</v> </b> <b> <a>108</a> <b>957</b> - <v>3446</v> + <v>3409</v> </b> </bs> </hist> @@ -23371,17 +23350,17 @@ <b> <a>1</a> <b>2</b> - <v>273987</v> + <v>271116</v> </b> <b> <a>2</a> <b>4</b> - <v>25953</v> + <v>25678</v> </b> <b> <a>4</a> <b>17</b> - <v>4114</v> + <v>4070</v> </b> </bs> </hist> @@ -23391,19 +23370,19 @@ </relation> <relation> <name>function_template_argument_value</name> - <cardinality>362328</cardinality> + <cardinality>358553</cardinality> <columnsizes> <e> <k>function_id</k> - <v>194509</v> + <v>192516</v> </e> <e> <k>index</k> - <v>562</v> + <v>556</v> </e> <e> <k>arg_value</k> - <v>359690</v> + <v>355944</v> </e> </columnsizes> <dependencies> @@ -23417,12 +23396,12 @@ <b> <a>1</a> <b>2</b> - <v>185155</v> + <v>183260</v> </b> <b> <a>2</a> <b>8</b> - <v>9354</v> + <v>9255</v> </b> </bs> </hist> @@ -23438,17 +23417,17 @@ <b> <a>1</a> <b>2</b> - <v>177735</v> + <v>175919</v> </b> <b> <a>2</a> <b>31</b> - <v>15262</v> + <v>15100</v> </b> <b> <a>32</a> <b>97</b> - <v>1512</v> + <v>1496</v> </b> </bs> </hist> @@ -23464,52 +23443,52 @@ <b> <a>1</a> <b>2</b> - <v>211</v> + <v>208</v> </b> <b> <a>2</a> <b>3</b> - <v>70</v> + <v>69</v> </b> <b> <a>11</a> <b>12</b> - <v>35</v> + <v>34</v> </b> <b> <a>26</a> <b>27</b> - <v>35</v> + <v>34</v> </b> <b> <a>94</a> <b>95</b> - <v>35</v> + <v>34</v> </b> <b> <a>314</a> <b>315</b> - <v>35</v> + <v>34</v> </b> <b> <a>844</a> <b>845</b> - <v>35</v> + <v>34</v> </b> <b> - <a>992</a> - <b>993</b> - <v>35</v> + <a>994</a> + <b>995</b> + <v>34</v> </b> <b> <a>1187</a> <b>1188</b> - <v>35</v> + <v>34</v> </b> <b> <a>2397</a> <b>2398</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -23525,52 +23504,52 @@ <b> <a>1</a> <b>2</b> - <v>211</v> + <v>208</v> </b> <b> <a>2</a> <b>3</b> - <v>70</v> + <v>69</v> </b> <b> <a>60</a> <b>61</b> - <v>35</v> + <v>34</v> </b> <b> <a>80</a> <b>81</b> - <v>35</v> + <v>34</v> </b> <b> <a>141</a> <b>142</b> - <v>35</v> + <v>34</v> </b> <b> <a>533</a> <b>534</b> - <v>35</v> + <v>34</v> </b> <b> - <a>1610</a> - <b>1611</b> - <v>35</v> + <a>1612</a> + <b>1613</b> + <v>34</v> </b> <b> <a>1821</a> <b>1822</b> - <v>35</v> + <v>34</v> </b> <b> <a>2202</a> <b>2203</b> - <v>35</v> + <v>34</v> </b> <b> <a>3771</a> <b>3772</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -23586,12 +23565,12 @@ <b> <a>1</a> <b>2</b> - <v>357052</v> + <v>353334</v> </b> <b> <a>2</a> <b>3</b> - <v>2637</v> + <v>2609</v> </b> </bs> </hist> @@ -23607,7 +23586,7 @@ <b> <a>1</a> <b>2</b> - <v>359690</v> + <v>355944</v> </b> </bs> </hist> @@ -23617,26 +23596,26 @@ </relation> <relation> <name>is_variable_template</name> - <cardinality>47349</cardinality> + <cardinality>46998</cardinality> <columnsizes> <e> <k>id</k> - <v>47349</v> + <v>46998</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>variable_instantiation</name> - <cardinality>172502</cardinality> + <cardinality>171327</cardinality> <columnsizes> <e> <k>to</k> - <v>172502</v> + <v>171327</v> </e> <e> <k>from</k> - <v>25864</v> + <v>25673</v> </e> </columnsizes> <dependencies> @@ -23650,7 +23629,7 @@ <b> <a>1</a> <b>2</b> - <v>172502</v> + <v>171327</v> </b> </bs> </hist> @@ -23666,42 +23645,42 @@ <b> <a>1</a> <b>2</b> - <v>13871</v> + <v>13768</v> </b> <b> <a>2</a> <b>3</b> - <v>2607</v> + <v>2588</v> </b> <b> <a>3</a> <b>4</b> - <v>1251</v> + <v>1242</v> </b> <b> <a>4</a> <b>6</b> - <v>1877</v> + <v>1863</v> </b> <b> <a>6</a> <b>8</b> - <v>1355</v> + <v>1345</v> </b> <b> <a>8</a> <b>12</b> - <v>2190</v> + <v>2173</v> </b> <b> <a>12</a> <b>38</b> - <v>1981</v> + <v>1966</v> </b> <b> <a>46</a> - <b>277</b> - <v>730</v> + <b>278</b> + <v>724</v> </b> </bs> </hist> @@ -23711,19 +23690,19 @@ </relation> <relation> <name>variable_template_argument</name> - <cardinality>310587</cardinality> + <cardinality>308493</cardinality> <columnsizes> <e> <k>variable_id</k> - <v>163324</v> + <v>162217</v> </e> <e> <k>index</k> - <v>1772</v> + <v>1759</v> </e> <e> <k>arg_type</k> - <v>171146</v> + <v>170085</v> </e> </columnsizes> <dependencies> @@ -23737,22 +23716,22 @@ <b> <a>1</a> <b>2</b> - <v>83643</v> + <v>83023</v> </b> <b> <a>2</a> <b>3</b> - <v>50791</v> + <v>50518</v> </b> <b> <a>3</a> <b>4</b> - <v>18772</v> + <v>18633</v> </b> <b> <a>4</a> <b>17</b> - <v>10116</v> + <v>10041</v> </b> </bs> </hist> @@ -23768,22 +23747,22 @@ <b> <a>1</a> <b>2</b> - <v>88336</v> + <v>87682</v> </b> <b> <a>2</a> <b>3</b> - <v>52042</v> + <v>51760</v> </b> <b> <a>3</a> <b>4</b> - <v>13662</v> + <v>13561</v> </b> <b> <a>4</a> <b>17</b> - <v>9282</v> + <v>9213</v> </b> </bs> </hist> @@ -23799,47 +23778,47 @@ <b> <a>9</a> <b>10</b> - <v>104</v> + <v>103</v> </b> <b> <a>19</a> <b>20</b> - <v>625</v> + <v>621</v> </b> <b> <a>26</a> <b>27</b> - <v>417</v> + <v>414</v> </b> <b> <a>47</a> <b>48</b> - <v>104</v> + <v>103</v> </b> <b> <a>93</a> <b>94</b> - <v>104</v> + <v>103</v> </b> <b> <a>185</a> <b>186</b> - <v>104</v> + <v>103</v> </b> <b> - <a>547</a> - <b>548</b> - <v>104</v> + <a>548</a> + <b>549</b> + <v>103</v> </b> <b> - <a>626</a> - <b>627</b> - <v>104</v> + <a>627</a> + <b>628</b> + <v>103</v> </b> <b> <a>1253</a> <b>1254</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -23855,52 +23834,52 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>103</v> </b> <b> <a>10</a> <b>11</b> - <v>417</v> + <v>414</v> </b> <b> <a>11</a> <b>12</b> - <v>208</v> + <v>207</v> </b> <b> <a>12</a> <b>13</b> - <v>417</v> + <v>414</v> </b> <b> <a>29</a> <b>30</b> - <v>104</v> + <v>103</v> </b> <b> <a>48</a> <b>49</b> - <v>104</v> + <v>103</v> </b> <b> <a>130</a> <b>131</b> - <v>104</v> + <v>103</v> </b> <b> - <a>375</a> - <b>376</b> - <v>104</v> + <a>376</a> + <b>377</b> + <v>103</v> </b> <b> - <a>402</a> - <b>403</b> - <v>104</v> + <a>403</a> + <b>404</b> + <v>103</v> </b> <b> <a>743</a> <b>744</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -23916,22 +23895,22 @@ <b> <a>1</a> <b>2</b> - <v>137668</v> + <v>136855</v> </b> <b> <a>2</a> <b>3</b> - <v>19502</v> + <v>19358</v> </b> <b> <a>3</a> <b>24</b> - <v>12932</v> + <v>12836</v> </b> <b> <a>24</a> <b>110</b> - <v>1042</v> + <v>1035</v> </b> </bs> </hist> @@ -23947,17 +23926,17 @@ <b> <a>1</a> <b>2</b> - <v>154146</v> + <v>153211</v> </b> <b> <a>2</a> <b>3</b> - <v>14914</v> + <v>14803</v> </b> <b> <a>3</a> <b>6</b> - <v>2085</v> + <v>2070</v> </b> </bs> </hist> @@ -23967,19 +23946,19 @@ </relation> <relation> <name>variable_template_argument_value</name> - <cardinality>11889</cardinality> + <cardinality>11801</cardinality> <columnsizes> <e> <k>variable_id</k> - <v>7822</v> + <v>7764</v> </e> <e> <k>index</k> - <v>417</v> + <v>414</v> </e> <e> <k>arg_value</k> - <v>11889</v> + <v>11801</v> </e> </columnsizes> <dependencies> @@ -23993,12 +23972,12 @@ <b> <a>1</a> <b>2</b> - <v>7404</v> + <v>7350</v> </b> <b> <a>2</a> <b>3</b> - <v>417</v> + <v>414</v> </b> </bs> </hist> @@ -24014,17 +23993,17 @@ <b> <a>1</a> <b>2</b> - <v>4380</v> + <v>4347</v> </b> <b> <a>2</a> <b>3</b> - <v>3128</v> + <v>3105</v> </b> <b> <a>4</a> <b>5</b> - <v>312</v> + <v>310</v> </b> </bs> </hist> @@ -24040,22 +24019,22 @@ <b> <a>4</a> <b>5</b> - <v>104</v> + <v>103</v> </b> <b> <a>19</a> <b>20</b> - <v>104</v> + <v>103</v> </b> <b> <a>26</a> <b>27</b> - <v>104</v> + <v>103</v> </b> <b> <a>30</a> <b>31</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -24071,22 +24050,22 @@ <b> <a>7</a> <b>8</b> - <v>104</v> + <v>103</v> </b> <b> <a>28</a> <b>29</b> - <v>104</v> + <v>103</v> </b> <b> <a>38</a> <b>39</b> - <v>104</v> + <v>103</v> </b> <b> <a>41</a> <b>42</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -24102,7 +24081,7 @@ <b> <a>1</a> <b>2</b> - <v>11889</v> + <v>11801</v> </b> </bs> </hist> @@ -24118,7 +24097,7 @@ <b> <a>1</a> <b>2</b> - <v>11889</v> + <v>11801</v> </b> </bs> </hist> @@ -24128,15 +24107,15 @@ </relation> <relation> <name>routinetypes</name> - <cardinality>545338</cardinality> + <cardinality>538161</cardinality> <columnsizes> <e> <k>id</k> - <v>545338</v> + <v>538161</v> </e> <e> <k>return_type</k> - <v>284819</v> + <v>280406</v> </e> </columnsizes> <dependencies> @@ -24150,7 +24129,7 @@ <b> <a>1</a> <b>2</b> - <v>545338</v> + <v>538161</v> </b> </bs> </hist> @@ -24166,17 +24145,17 @@ <b> <a>1</a> <b>2</b> - <v>248175</v> + <v>244220</v> </b> <b> <a>2</a> <b>3</b> - <v>21276</v> + <v>20946</v> </b> <b> <a>3</a> - <b>3594</b> - <v>15368</v> + <b>3595</b> + <v>15239</v> </b> </bs> </hist> @@ -24186,19 +24165,19 @@ </relation> <relation> <name>routinetypeargs</name> - <cardinality>982110</cardinality> + <cardinality>982278</cardinality> <columnsizes> <e> <k>routine</k> - <v>423034</v> + <v>423042</v> </e> <e> <k>index</k> - <v>7920</v> + <v>7929</v> </e> <e> <k>type_id</k> - <v>226425</v> + <v>226679</v> </e> </columnsizes> <dependencies> @@ -24212,27 +24191,27 @@ <b> <a>1</a> <b>2</b> - <v>152348</v> + <v>152519</v> </b> <b> <a>2</a> <b>3</b> - <v>134178</v> + <v>133862</v> </b> <b> <a>3</a> <b>4</b> - <v>63361</v> + <v>63432</v> </b> <b> <a>4</a> <b>5</b> - <v>45657</v> + <v>45709</v> </b> <b> <a>5</a> <b>18</b> - <v>27487</v> + <v>27518</v> </b> </bs> </hist> @@ -24248,27 +24227,27 @@ <b> <a>1</a> <b>2</b> - <v>182165</v> + <v>182369</v> </b> <b> <a>2</a> <b>3</b> - <v>133712</v> + <v>133395</v> </b> <b> <a>3</a> <b>4</b> - <v>58703</v> + <v>58768</v> </b> <b> <a>4</a> <b>5</b> - <v>33544</v> + <v>33582</v> </b> <b> <a>5</a> <b>11</b> - <v>14908</v> + <v>14925</v> </b> </bs> </hist> @@ -24284,67 +24263,67 @@ <b> <a>2</a> <b>3</b> - <v>931</v> + <v>932</v> </b> <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> <b> <a>8</a> <b>9</b> - <v>931</v> + <v>932</v> </b> <b> <a>9</a> <b>10</b> - <v>465</v> + <v>466</v> </b> <b> <a>10</a> <b>11</b> - <v>1397</v> + <v>1399</v> </b> <b> <a>13</a> <b>14</b> - <v>465</v> + <v>466</v> </b> <b> <a>28</a> <b>29</b> - <v>465</v> + <v>466</v> </b> <b> <a>59</a> <b>60</b> - <v>465</v> + <v>466</v> </b> <b> <a>157</a> <b>158</b> - <v>465</v> + <v>466</v> </b> <b> <a>293</a> <b>294</b> - <v>465</v> + <v>466</v> </b> <b> - <a>581</a> - <b>582</b> - <v>465</v> + <a>580</a> + <b>581</b> + <v>466</v> </b> <b> - <a>908</a> - <b>909</b> - <v>465</v> + <a>907</a> + <b>908</b> + <v>466</v> </b> </bs> </hist> @@ -24360,57 +24339,57 @@ <b> <a>1</a> <b>2</b> - <v>931</v> + <v>932</v> </b> <b> <a>3</a> <b>4</b> - <v>931</v> + <v>932</v> </b> <b> <a>4</a> <b>5</b> - <v>1397</v> + <v>1399</v> </b> <b> <a>5</a> <b>6</b> - <v>931</v> + <v>932</v> </b> <b> <a>6</a> <b>7</b> - <v>931</v> + <v>932</v> </b> <b> <a>10</a> <b>11</b> - <v>465</v> + <v>466</v> </b> <b> <a>14</a> <b>15</b> - <v>465</v> + <v>466</v> </b> <b> <a>47</a> <b>48</b> - <v>465</v> + <v>466</v> </b> <b> <a>90</a> <b>91</b> - <v>465</v> + <v>466</v> </b> <b> <a>176</a> <b>177</b> - <v>465</v> + <v>466</v> </b> <b> <a>347</a> <b>348</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -24426,27 +24405,27 @@ <b> <a>1</a> <b>2</b> - <v>146291</v> + <v>146455</v> </b> <b> <a>2</a> <b>3</b> - <v>30749</v> + <v>30783</v> </b> <b> <a>3</a> <b>5</b> - <v>16772</v> + <v>16791</v> </b> <b> <a>5</a> <b>12</b> - <v>18169</v> + <v>18190</v> </b> <b> <a>12</a> - <b>111</b> - <v>14442</v> + <b>110</b> + <v>14458</v> </b> </bs> </hist> @@ -24462,22 +24441,22 @@ <b> <a>1</a> <b>2</b> - <v>172381</v> + <v>172575</v> </b> <b> <a>2</a> <b>3</b> - <v>30749</v> + <v>30783</v> </b> <b> <a>3</a> <b>6</b> - <v>18635</v> + <v>18656</v> </b> <b> <a>6</a> <b>14</b> - <v>4658</v> + <v>4664</v> </b> </bs> </hist> @@ -24487,19 +24466,19 @@ </relation> <relation> <name>ptrtomembers</name> - <cardinality>37737</cardinality> + <cardinality>37779</cardinality> <columnsizes> <e> <k>id</k> - <v>37737</v> + <v>37779</v> </e> <e> <k>type_id</k> - <v>37737</v> + <v>37779</v> </e> <e> <k>class_id</k> - <v>15374</v> + <v>15391</v> </e> </columnsizes> <dependencies> @@ -24513,7 +24492,7 @@ <b> <a>1</a> <b>2</b> - <v>37737</v> + <v>37779</v> </b> </bs> </hist> @@ -24529,7 +24508,7 @@ <b> <a>1</a> <b>2</b> - <v>37737</v> + <v>37779</v> </b> </bs> </hist> @@ -24545,7 +24524,7 @@ <b> <a>1</a> <b>2</b> - <v>37737</v> + <v>37779</v> </b> </bs> </hist> @@ -24561,7 +24540,7 @@ <b> <a>1</a> <b>2</b> - <v>37737</v> + <v>37779</v> </b> </bs> </hist> @@ -24577,17 +24556,17 @@ <b> <a>1</a> <b>2</b> - <v>13511</v> + <v>13526</v> </b> <b> <a>8</a> <b>9</b> - <v>1397</v> + <v>1399</v> </b> <b> <a>28</a> <b>29</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -24603,17 +24582,17 @@ <b> <a>1</a> <b>2</b> - <v>13511</v> + <v>13526</v> </b> <b> <a>8</a> <b>9</b> - <v>1397</v> + <v>1399</v> </b> <b> <a>28</a> <b>29</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -24623,15 +24602,15 @@ </relation> <relation> <name>specifiers</name> - <cardinality>24692</cardinality> + <cardinality>24720</cardinality> <columnsizes> <e> <k>id</k> - <v>24692</v> + <v>24720</v> </e> <e> <k>str</k> - <v>24692</v> + <v>24720</v> </e> </columnsizes> <dependencies> @@ -24645,7 +24624,7 @@ <b> <a>1</a> <b>2</b> - <v>24692</v> + <v>24720</v> </b> </bs> </hist> @@ -24661,7 +24640,7 @@ <b> <a>1</a> <b>2</b> - <v>24692</v> + <v>24720</v> </b> </bs> </hist> @@ -24671,15 +24650,15 @@ </relation> <relation> <name>typespecifiers</name> - <cardinality>1291000</cardinality> + <cardinality>1291048</cardinality> <columnsizes> <e> <k>type_id</k> - <v>1272830</v> + <v>1272857</v> </e> <e> <k>spec_id</k> - <v>3727</v> + <v>3731</v> </e> </columnsizes> <dependencies> @@ -24693,12 +24672,12 @@ <b> <a>1</a> <b>2</b> - <v>1254660</v> + <v>1254667</v> </b> <b> <a>2</a> <b>3</b> - <v>18169</v> + <v>18190</v> </b> </bs> </hist> @@ -24714,42 +24693,42 @@ <b> <a>8</a> <b>9</b> - <v>465</v> + <v>466</v> </b> <b> <a>36</a> <b>37</b> - <v>465</v> + <v>466</v> </b> <b> <a>51</a> <b>52</b> - <v>465</v> + <v>466</v> </b> <b> <a>86</a> <b>87</b> - <v>465</v> + <v>466</v> </b> <b> <a>105</a> <b>106</b> - <v>465</v> + <v>466</v> </b> <b> <a>219</a> <b>220</b> - <v>465</v> + <v>466</v> </b> <b> <a>221</a> <b>222</b> - <v>465</v> + <v>466</v> </b> <b> - <a>2045</a> - <b>2046</b> - <v>465</v> + <a>2042</a> + <b>2043</b> + <v>466</v> </b> </bs> </hist> @@ -24759,15 +24738,15 @@ </relation> <relation> <name>funspecifiers</name> - <cardinality>12739754</cardinality> + <cardinality>12607036</cardinality> <columnsizes> <e> <k>func_id</k> - <v>3895228</v> + <v>3854601</v> </e> <e> <k>spec_id</k> - <v>703</v> + <v>695</v> </e> </columnsizes> <dependencies> @@ -24781,27 +24760,27 @@ <b> <a>1</a> <b>2</b> - <v>314078</v> + <v>310746</v> </b> <b> <a>2</a> <b>3</b> - <v>545865</v> + <v>540214</v> </b> <b> <a>3</a> <b>4</b> - <v>1145748</v> + <v>1133732</v> </b> <b> <a>4</a> <b>5</b> - <v>1641079</v> + <v>1624017</v> </b> <b> <a>5</a> <b>8</b> - <v>248456</v> + <v>245890</v> </b> </bs> </hist> @@ -24817,97 +24796,97 @@ <b> <a>13</a> <b>14</b> - <v>70</v> + <v>69</v> </b> <b> <a>98</a> <b>99</b> - <v>35</v> + <v>34</v> </b> <b> <a>202</a> <b>203</b> - <v>35</v> + <v>34</v> </b> <b> <a>296</a> <b>297</b> - <v>35</v> + <v>34</v> </b> <b> <a>304</a> <b>305</b> - <v>35</v> + <v>34</v> </b> <b> <a>572</a> <b>573</b> - <v>35</v> + <v>34</v> </b> <b> <a>709</a> <b>710</b> - <v>35</v> + <v>34</v> </b> <b> <a>1599</a> <b>1600</b> - <v>35</v> + <v>34</v> </b> <b> <a>1646</a> <b>1647</b> - <v>35</v> + <v>34</v> </b> <b> <a>3782</a> <b>3783</b> - <v>35</v> + <v>34</v> </b> <b> <a>3923</a> <b>3924</b> - <v>35</v> + <v>34</v> </b> <b> <a>5095</a> <b>5096</b> - <v>35</v> + <v>34</v> </b> <b> - <a>6822</a> - <b>6823</b> - <v>35</v> + <a>6823</a> + <b>6824</b> + <v>34</v> </b> <b> - <a>9687</a> - <b>9688</b> - <v>35</v> + <a>9692</a> + <b>9693</b> + <v>34</v> </b> <b> - <a>12226</a> - <b>12227</b> - <v>35</v> + <a>12228</a> + <b>12229</b> + <v>34</v> </b> <b> - <a>50649</a> - <b>50650</b> - <v>35</v> + <a>50664</a> + <b>50665</b> + <v>34</v> </b> <b> - <a>77765</a> - <b>77766</b> - <v>35</v> + <a>77775</a> + <b>77776</b> + <v>34</v> </b> <b> - <a>89259</a> - <b>89260</b> - <v>35</v> + <a>89276</a> + <b>89277</b> + <v>34</v> </b> <b> - <a>97602</a> - <b>97603</b> - <v>35</v> + <a>97622</a> + <b>97623</b> + <v>34</v> </b> </bs> </hist> @@ -24917,15 +24896,15 @@ </relation> <relation> <name>varspecifiers</name> - <cardinality>2241430</cardinality> + <cardinality>2243942</cardinality> <columnsizes> <e> <k>var_id</k> - <v>1222513</v> + <v>1223883</v> </e> <e> <k>spec_id</k> - <v>3727</v> + <v>3731</v> </e> </columnsizes> <dependencies> @@ -24939,22 +24918,22 @@ <b> <a>1</a> <b>2</b> - <v>728662</v> + <v>729479</v> </b> <b> <a>2</a> <b>3</b> - <v>202199</v> + <v>202425</v> </b> <b> <a>3</a> <b>4</b> - <v>58237</v> + <v>58302</v> </b> <b> <a>4</a> <b>5</b> - <v>233414</v> + <v>233675</v> </b> </bs> </hist> @@ -24970,42 +24949,42 @@ <b> <a>112</a> <b>113</b> - <v>465</v> + <v>466</v> </b> <b> <a>315</a> <b>316</b> - <v>465</v> + <v>466</v> </b> <b> <a>416</a> <b>417</b> - <v>465</v> + <v>466</v> </b> <b> <a>514</a> <b>515</b> - <v>465</v> + <v>466</v> </b> <b> <a>646</a> <b>647</b> - <v>465</v> + <v>466</v> </b> <b> <a>686</a> <b>687</b> - <v>465</v> + <v>466</v> </b> <b> <a>700</a> <b>701</b> - <v>465</v> + <v>466</v> </b> <b> <a>1422</a> <b>1423</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25015,27 +24994,27 @@ </relation> <relation> <name>attributes</name> - <cardinality>735689</cardinality> + <cardinality>729824</cardinality> <columnsizes> <e> <k>id</k> - <v>735689</v> + <v>729824</v> </e> <e> <k>kind</k> - <v>312</v> + <v>310</v> </e> <e> <k>name</k> - <v>1668</v> + <v>1656</v> </e> <e> <k>name_space</k> - <v>208</v> + <v>207</v> </e> <e> <k>location</k> - <v>483193</v> + <v>479613</v> </e> </columnsizes> <dependencies> @@ -25049,7 +25028,7 @@ <b> <a>1</a> <b>2</b> - <v>735689</v> + <v>729824</v> </b> </bs> </hist> @@ -25065,7 +25044,7 @@ <b> <a>1</a> <b>2</b> - <v>735689</v> + <v>729824</v> </b> </bs> </hist> @@ -25081,7 +25060,7 @@ <b> <a>1</a> <b>2</b> - <v>735689</v> + <v>729824</v> </b> </bs> </hist> @@ -25097,7 +25076,7 @@ <b> <a>1</a> <b>2</b> - <v>735689</v> + <v>729824</v> </b> </bs> </hist> @@ -25113,17 +25092,17 @@ <b> <a>5</a> <b>6</b> - <v>104</v> + <v>103</v> </b> <b> <a>2332</a> <b>2333</b> - <v>104</v> + <v>103</v> </b> <b> - <a>4717</a> - <b>4718</b> - <v>104</v> + <a>4713</a> + <b>4714</b> + <v>103</v> </b> </bs> </hist> @@ -25139,17 +25118,17 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>103</v> </b> <b> <a>6</a> <b>7</b> - <v>104</v> + <v>103</v> </b> <b> <a>11</a> <b>12</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25165,12 +25144,12 @@ <b> <a>1</a> <b>2</b> - <v>208</v> + <v>207</v> </b> <b> <a>2</a> <b>3</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25186,17 +25165,17 @@ <b> <a>2</a> <b>3</b> - <v>104</v> + <v>103</v> </b> <b> <a>2057</a> <b>2058</b> - <v>104</v> + <v>103</v> </b> <b> <a>2574</a> <b>2575</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25212,72 +25191,72 @@ <b> <a>1</a> <b>2</b> - <v>208</v> + <v>310</v> </b> <b> <a>2</a> <b>3</b> - <v>104</v> + <v>103</v> </b> <b> <a>4</a> <b>5</b> - <v>104</v> + <v>103</v> </b> <b> <a>5</a> <b>6</b> - <v>208</v> + <v>103</v> </b> <b> <a>11</a> <b>12</b> - <v>104</v> + <v>103</v> </b> <b> <a>14</a> <b>15</b> - <v>104</v> + <v>103</v> </b> <b> <a>16</a> <b>17</b> - <v>104</v> + <v>103</v> </b> <b> <a>18</a> <b>19</b> - <v>104</v> + <v>103</v> </b> <b> <a>24</a> <b>25</b> - <v>104</v> + <v>103</v> </b> <b> <a>86</a> <b>87</b> - <v>104</v> + <v>103</v> </b> <b> <a>115</a> <b>116</b> - <v>104</v> + <v>103</v> </b> <b> <a>1048</a> <b>1049</b> - <v>104</v> + <v>103</v> </b> <b> <a>1760</a> <b>1761</b> - <v>104</v> + <v>103</v> </b> <b> <a>3944</a> <b>3945</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25293,12 +25272,12 @@ <b> <a>1</a> <b>2</b> - <v>1460</v> + <v>1449</v> </b> <b> <a>2</a> <b>3</b> - <v>208</v> + <v>207</v> </b> </bs> </hist> @@ -25314,7 +25293,7 @@ <b> <a>1</a> <b>2</b> - <v>1668</v> + <v>1656</v> </b> </bs> </hist> @@ -25330,67 +25309,67 @@ <b> <a>1</a> <b>2</b> - <v>312</v> + <v>310</v> </b> <b> <a>2</a> <b>3</b> - <v>208</v> + <v>207</v> </b> <b> <a>4</a> <b>5</b> - <v>104</v> + <v>103</v> </b> <b> <a>6</a> <b>7</b> - <v>104</v> + <v>103</v> </b> <b> <a>8</a> <b>9</b> - <v>104</v> + <v>103</v> </b> <b> <a>9</a> <b>10</b> - <v>104</v> + <v>103</v> </b> <b> <a>14</a> <b>15</b> - <v>104</v> + <v>103</v> </b> <b> <a>18</a> <b>19</b> - <v>104</v> + <v>103</v> </b> <b> <a>59</a> <b>60</b> - <v>104</v> + <v>103</v> </b> <b> <a>72</a> <b>73</b> - <v>104</v> + <v>103</v> </b> <b> <a>333</a> <b>334</b> - <v>104</v> + <v>103</v> </b> <b> <a>1756</a> <b>1757</b> - <v>104</v> + <v>103</v> </b> <b> <a>2388</a> <b>2389</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25404,14 +25383,14 @@ <budget>12</budget> <bs> <b> - <a>23</a> - <b>24</b> - <v>104</v> + <a>19</a> + <b>20</b> + <v>103</v> </b> <b> <a>7031</a> <b>7032</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25427,12 +25406,12 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>103</v> </b> <b> <a>3</a> <b>4</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25448,12 +25427,12 @@ <b> <a>2</a> <b>3</b> - <v>104</v> + <v>103</v> </b> <b> <a>14</a> <b>15</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25469,12 +25448,12 @@ <b> <a>9</a> <b>10</b> - <v>104</v> + <v>103</v> </b> <b> <a>4624</a> <b>4625</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -25490,17 +25469,17 @@ <b> <a>1</a> <b>2</b> - <v>425623</v> + <v>422573</v> </b> <b> <a>2</a> <b>3</b> - <v>36607</v> + <v>36335</v> </b> <b> <a>3</a> <b>201</b> - <v>20963</v> + <v>20704</v> </b> </bs> </hist> @@ -25516,7 +25495,7 @@ <b> <a>1</a> <b>2</b> - <v>483193</v> + <v>479613</v> </b> </bs> </hist> @@ -25532,12 +25511,12 @@ <b> <a>1</a> <b>2</b> - <v>478917</v> + <v>475369</v> </b> <b> <a>2</a> <b>3</b> - <v>4276</v> + <v>4244</v> </b> </bs> </hist> @@ -25553,7 +25532,7 @@ <b> <a>1</a> <b>2</b> - <v>483193</v> + <v>479613</v> </b> </bs> </hist> @@ -25563,27 +25542,27 @@ </relation> <relation> <name>attribute_args</name> - <cardinality>409523</cardinality> + <cardinality>409982</cardinality> <columnsizes> <e> <k>id</k> - <v>409523</v> + <v>409982</v> </e> <e> <k>kind</k> - <v>1397</v> + <v>1399</v> </e> <e> <k>attribute</k> - <v>297708</v> + <v>298041</v> </e> <e> <k>index</k> - <v>1397</v> + <v>1399</v> </e> <e> <k>location</k> - <v>327059</v> + <v>327426</v> </e> </columnsizes> <dependencies> @@ -25597,7 +25576,7 @@ <b> <a>1</a> <b>2</b> - <v>409523</v> + <v>409982</v> </b> </bs> </hist> @@ -25613,7 +25592,7 @@ <b> <a>1</a> <b>2</b> - <v>409523</v> + <v>409982</v> </b> </bs> </hist> @@ -25629,7 +25608,7 @@ <b> <a>1</a> <b>2</b> - <v>409523</v> + <v>409982</v> </b> </bs> </hist> @@ -25645,7 +25624,7 @@ <b> <a>1</a> <b>2</b> - <v>409523</v> + <v>409982</v> </b> </bs> </hist> @@ -25661,17 +25640,17 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> <b> <a>84</a> <b>85</b> - <v>465</v> + <v>466</v> </b> <b> <a>794</a> <b>795</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25687,17 +25666,17 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> <b> <a>84</a> <b>85</b> - <v>465</v> + <v>466</v> </b> <b> <a>606</a> <b>607</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25713,12 +25692,12 @@ <b> <a>1</a> <b>2</b> - <v>931</v> + <v>932</v> </b> <b> <a>3</a> <b>4</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25734,17 +25713,17 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> <b> <a>54</a> <b>55</b> - <v>465</v> + <v>466</v> </b> <b> <a>674</a> <b>675</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25760,17 +25739,17 @@ <b> <a>1</a> <b>2</b> - <v>215710</v> + <v>215952</v> </b> <b> <a>2</a> <b>3</b> - <v>52180</v> + <v>52238</v> </b> <b> <a>3</a> <b>4</b> - <v>29817</v> + <v>29850</v> </b> </bs> </hist> @@ -25786,12 +25765,12 @@ <b> <a>1</a> <b>2</b> - <v>273481</v> + <v>273788</v> </b> <b> <a>2</a> <b>3</b> - <v>24226</v> + <v>24253</v> </b> </bs> </hist> @@ -25807,17 +25786,17 @@ <b> <a>1</a> <b>2</b> - <v>215710</v> + <v>215952</v> </b> <b> <a>2</a> <b>3</b> - <v>52180</v> + <v>52238</v> </b> <b> <a>3</a> <b>4</b> - <v>29817</v> + <v>29850</v> </b> </bs> </hist> @@ -25833,17 +25812,17 @@ <b> <a>1</a> <b>2</b> - <v>215710</v> + <v>215952</v> </b> <b> <a>2</a> <b>3</b> - <v>52180</v> + <v>52238</v> </b> <b> <a>3</a> <b>4</b> - <v>29817</v> + <v>29850</v> </b> </bs> </hist> @@ -25859,17 +25838,17 @@ <b> <a>64</a> <b>65</b> - <v>465</v> + <v>466</v> </b> <b> <a>176</a> <b>177</b> - <v>465</v> + <v>466</v> </b> <b> <a>639</a> <b>640</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25885,12 +25864,12 @@ <b> <a>1</a> <b>2</b> - <v>931</v> + <v>932</v> </b> <b> <a>3</a> <b>4</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25906,17 +25885,17 @@ <b> <a>64</a> <b>65</b> - <v>465</v> + <v>466</v> </b> <b> <a>176</a> <b>177</b> - <v>465</v> + <v>466</v> </b> <b> <a>639</a> <b>640</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25932,17 +25911,17 @@ <b> <a>34</a> <b>35</b> - <v>465</v> + <v>466</v> </b> <b> <a>140</a> <b>141</b> - <v>465</v> + <v>466</v> </b> <b> <a>528</a> <b>529</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25958,22 +25937,22 @@ <b> <a>1</a> <b>2</b> - <v>278606</v> + <v>278918</v> </b> <b> <a>2</a> <b>3</b> - <v>23294</v> + <v>23320</v> </b> <b> <a>3</a> <b>9</b> - <v>24692</v> + <v>24720</v> </b> <b> <a>17</a> <b>18</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -25989,12 +25968,12 @@ <b> <a>1</a> <b>2</b> - <v>314480</v> + <v>314832</v> </b> <b> <a>2</a> <b>3</b> - <v>12579</v> + <v>12593</v> </b> </bs> </hist> @@ -26010,22 +25989,22 @@ <b> <a>1</a> <b>2</b> - <v>278606</v> + <v>278918</v> </b> <b> <a>2</a> <b>3</b> - <v>23294</v> + <v>23320</v> </b> <b> <a>3</a> <b>9</b> - <v>24692</v> + <v>24720</v> </b> <b> <a>17</a> <b>18</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -26041,7 +26020,7 @@ <b> <a>1</a> <b>2</b> - <v>327059</v> + <v>327426</v> </b> </bs> </hist> @@ -26051,15 +26030,15 @@ </relation> <relation> <name>attribute_arg_value</name> - <cardinality>39135</cardinality> + <cardinality>39179</cardinality> <columnsizes> <e> <k>arg</k> - <v>39135</v> + <v>39179</v> </e> <e> <k>value</k> - <v>15840</v> + <v>15858</v> </e> </columnsizes> <dependencies> @@ -26073,7 +26052,7 @@ <b> <a>1</a> <b>2</b> - <v>39135</v> + <v>39179</v> </b> </bs> </hist> @@ -26089,12 +26068,12 @@ <b> <a>1</a> <b>2</b> - <v>14442</v> + <v>14458</v> </b> <b> <a>2</a> <b>34</b> - <v>1397</v> + <v>1399</v> </b> </bs> </hist> @@ -26104,15 +26083,15 @@ </relation> <relation> <name>attribute_arg_type</name> - <cardinality>465</cardinality> + <cardinality>466</cardinality> <columnsizes> <e> <k>arg</k> - <v>465</v> + <v>466</v> </e> <e> <k>type_id</k> - <v>465</v> + <v>466</v> </e> </columnsizes> <dependencies> @@ -26126,7 +26105,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -26142,7 +26121,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -26152,15 +26131,15 @@ </relation> <relation> <name>attribute_arg_constant</name> - <cardinality>369922</cardinality> + <cardinality>370336</cardinality> <columnsizes> <e> <k>arg</k> - <v>369922</v> + <v>370336</v> </e> <e> <k>constant</k> - <v>369922</v> + <v>370336</v> </e> </columnsizes> <dependencies> @@ -26174,7 +26153,7 @@ <b> <a>1</a> <b>2</b> - <v>369922</v> + <v>370336</v> </b> </bs> </hist> @@ -26190,7 +26169,7 @@ <b> <a>1</a> <b>2</b> - <v>369922</v> + <v>370336</v> </b> </bs> </hist> @@ -26301,15 +26280,15 @@ </relation> <relation> <name>typeattributes</name> - <cardinality>84999</cardinality> + <cardinality>84369</cardinality> <columnsizes> <e> <k>type_id</k> - <v>62159</v> + <v>61698</v> </e> <e> <k>spec_id</k> - <v>84999</v> + <v>84369</v> </e> </columnsizes> <dependencies> @@ -26323,17 +26302,17 @@ <b> <a>1</a> <b>2</b> - <v>56214</v> + <v>55797</v> </b> <b> <a>2</a> <b>4</b> - <v>4276</v> + <v>4244</v> </b> <b> <a>12</a> <b>13</b> - <v>1668</v> + <v>1656</v> </b> </bs> </hist> @@ -26349,7 +26328,7 @@ <b> <a>1</a> <b>2</b> - <v>84999</v> + <v>84369</v> </b> </bs> </hist> @@ -26359,15 +26338,15 @@ </relation> <relation> <name>funcattributes</name> - <cardinality>650858</cardinality> + <cardinality>651587</cardinality> <columnsizes> <e> <k>func_id</k> - <v>442602</v> + <v>443098</v> </e> <e> <k>spec_id</k> - <v>650858</v> + <v>651587</v> </e> </columnsizes> <dependencies> @@ -26381,22 +26360,22 @@ <b> <a>1</a> <b>2</b> - <v>334048</v> + <v>334422</v> </b> <b> <a>2</a> <b>3</b> - <v>65225</v> + <v>65298</v> </b> <b> <a>3</a> <b>6</b> - <v>34942</v> + <v>34981</v> </b> <b> <a>6</a> <b>9</b> - <v>8386</v> + <v>8395</v> </b> </bs> </hist> @@ -26412,7 +26391,7 @@ <b> <a>1</a> <b>2</b> - <v>650858</v> + <v>651587</v> </b> </bs> </hist> @@ -26480,15 +26459,15 @@ </relation> <relation> <name>stmtattributes</name> - <cardinality>977</cardinality> + <cardinality>973</cardinality> <columnsizes> <e> <k>stmt_id</k> - <v>977</v> + <v>973</v> </e> <e> <k>spec_id</k> - <v>977</v> + <v>973</v> </e> </columnsizes> <dependencies> @@ -26502,7 +26481,7 @@ <b> <a>1</a> <b>2</b> - <v>977</v> + <v>973</v> </b> </bs> </hist> @@ -26518,7 +26497,7 @@ <b> <a>1</a> <b>2</b> - <v>977</v> + <v>973</v> </b> </bs> </hist> @@ -26528,15 +26507,15 @@ </relation> <relation> <name>unspecifiedtype</name> - <cardinality>10144906</cardinality> + <cardinality>10144615</cardinality> <columnsizes> <e> <k>type_id</k> - <v>10144906</v> + <v>10144615</v> </e> <e> <k>unspecified_type_id</k> - <v>6818402</v> + <v>6817181</v> </e> </columnsizes> <dependencies> @@ -26550,7 +26529,7 @@ <b> <a>1</a> <b>2</b> - <v>10144906</v> + <v>10144615</v> </b> </bs> </hist> @@ -26566,17 +26545,17 @@ <b> <a>1</a> <b>2</b> - <v>4585358</v> + <v>4584433</v> </b> <b> <a>2</a> <b>3</b> - <v>1995902</v> + <v>1995340</v> </b> <b> <a>3</a> <b>145</b> - <v>237141</v> + <v>237407</v> </b> </bs> </hist> @@ -26586,19 +26565,19 @@ </relation> <relation> <name>member</name> - <cardinality>4997440</cardinality> + <cardinality>4945084</cardinality> <columnsizes> <e> <k>parent</k> - <v>646092</v> + <v>639377</v> </e> <e> <k>index</k> - <v>8791</v> + <v>8698</v> </e> <e> <k>child</k> - <v>4952285</v> + <v>4900409</v> </e> </columnsizes> <dependencies> @@ -26612,42 +26591,42 @@ <b> <a>1</a> <b>3</b> - <v>19271</v> + <v>19067</v> </b> <b> <a>3</a> <b>4</b> - <v>348050</v> + <v>344496</v> </b> <b> <a>4</a> <b>5</b> - <v>38226</v> + <v>37786</v> </b> <b> <a>5</a> <b>7</b> - <v>53032</v> + <v>52504</v> </b> <b> <a>7</a> <b>10</b> - <v>52750</v> + <v>52191</v> </b> <b> <a>10</a> <b>15</b> - <v>50148</v> + <v>49581</v> </b> <b> <a>15</a> <b>24</b> - <v>49445</v> + <v>48955</v> </b> <b> <a>24</a> <b>251</b> - <v>35167</v> + <v>34794</v> </b> </bs> </hist> @@ -26663,42 +26642,42 @@ <b> <a>1</a> <b>3</b> - <v>19271</v> + <v>19067</v> </b> <b> <a>3</a> <b>4</b> - <v>347979</v> + <v>344427</v> </b> <b> <a>4</a> <b>5</b> - <v>38261</v> + <v>37821</v> </b> <b> <a>5</a> <b>7</b> - <v>53137</v> + <v>52608</v> </b> <b> <a>7</a> <b>10</b> - <v>53102</v> + <v>52539</v> </b> <b> <a>10</a> <b>15</b> - <v>49761</v> + <v>49198</v> </b> <b> <a>15</a> <b>24</b> - <v>49515</v> + <v>49024</v> </b> <b> <a>24</a> <b>255</b> - <v>35061</v> + <v>34689</v> </b> </bs> </hist> @@ -26714,62 +26693,62 @@ <b> <a>1</a> <b>2</b> - <v>1406</v> + <v>1391</v> </b> <b> <a>2</a> <b>3</b> - <v>808</v> + <v>800</v> </b> <b> <a>3</a> <b>4</b> - <v>949</v> + <v>939</v> </b> <b> <a>5</a> <b>22</b> - <v>668</v> + <v>661</v> </b> <b> <a>22</a> <b>42</b> - <v>668</v> + <v>661</v> </b> <b> <a>42</a> <b>56</b> - <v>668</v> + <v>661</v> </b> <b> <a>56</a> <b>100</b> - <v>668</v> + <v>661</v> </b> <b> <a>104</a> <b>164</b> - <v>668</v> + <v>661</v> </b> <b> <a>181</a> <b>299</b> - <v>668</v> + <v>661</v> </b> <b> <a>300</a> <b>727</b> - <v>668</v> + <v>661</v> </b> <b> <a>845</a> <b>4002</b> - <v>668</v> + <v>661</v> </b> <b> <a>4606</a> - <b>18041</b> - <v>281</v> + <b>18045</b> + <v>278</v> </b> </bs> </hist> @@ -26785,62 +26764,62 @@ <b> <a>1</a> <b>2</b> - <v>808</v> + <v>800</v> </b> <b> <a>2</a> <b>3</b> - <v>879</v> + <v>869</v> </b> <b> <a>3</a> <b>4</b> - <v>1160</v> + <v>1148</v> </b> <b> <a>4</a> <b>15</b> - <v>668</v> + <v>661</v> </b> <b> <a>16</a> <b>35</b> - <v>738</v> + <v>730</v> </b> <b> <a>36</a> <b>55</b> - <v>668</v> + <v>661</v> </b> <b> <a>57</a> <b>93</b> - <v>738</v> + <v>730</v> </b> <b> <a>97</a> <b>135</b> - <v>668</v> + <v>661</v> </b> <b> <a>140</a> <b>256</b> - <v>668</v> + <v>661</v> </b> <b> <a>268</a> <b>612</b> - <v>668</v> + <v>661</v> </b> <b> <a>619</a> <b>2611</b> - <v>668</v> + <v>661</v> </b> <b> <a>2770</a> - <b>18053</b> - <v>457</v> + <b>18057</b> + <v>452</v> </b> </bs> </hist> @@ -26856,7 +26835,7 @@ <b> <a>1</a> <b>2</b> - <v>4952285</v> + <v>4900409</v> </b> </bs> </hist> @@ -26872,12 +26851,12 @@ <b> <a>1</a> <b>2</b> - <v>4908502</v> + <v>4857090</v> </b> <b> <a>2</a> <b>8</b> - <v>43783</v> + <v>43318</v> </b> </bs> </hist> @@ -26887,15 +26866,15 @@ </relation> <relation> <name>enclosingfunction</name> - <cardinality>118347</cardinality> + <cardinality>117884</cardinality> <columnsizes> <e> <k>child</k> - <v>118347</v> + <v>117884</v> </e> <e> <k>parent</k> - <v>67599</v> + <v>67335</v> </e> </columnsizes> <dependencies> @@ -26909,7 +26888,7 @@ <b> <a>1</a> <b>2</b> - <v>118347</v> + <v>117884</v> </b> </bs> </hist> @@ -26925,22 +26904,22 @@ <b> <a>1</a> <b>2</b> - <v>35726</v> + <v>35587</v> </b> <b> <a>2</a> <b>3</b> - <v>20975</v> + <v>20893</v> </b> <b> <a>3</a> <b>4</b> - <v>5931</v> + <v>5908</v> </b> <b> <a>4</a> <b>45</b> - <v>4965</v> + <v>4946</v> </b> </bs> </hist> @@ -26950,27 +26929,27 @@ </relation> <relation> <name>derivations</name> - <cardinality>395209</cardinality> + <cardinality>391086</cardinality> <columnsizes> <e> <k>derivation</k> - <v>395209</v> + <v>391086</v> </e> <e> <k>sub</k> - <v>374742</v> + <v>370836</v> </e> <e> <k>index</k> - <v>211</v> + <v>208</v> </e> <e> <k>super</k> - <v>204673</v> + <v>202501</v> </e> <e> <k>location</k> - <v>38086</v> + <v>37682</v> </e> </columnsizes> <dependencies> @@ -26984,7 +26963,7 @@ <b> <a>1</a> <b>2</b> - <v>395209</v> + <v>391086</v> </b> </bs> </hist> @@ -27000,7 +26979,7 @@ <b> <a>1</a> <b>2</b> - <v>395209</v> + <v>391086</v> </b> </bs> </hist> @@ -27016,7 +26995,7 @@ <b> <a>1</a> <b>2</b> - <v>395209</v> + <v>391086</v> </b> </bs> </hist> @@ -27032,7 +27011,7 @@ <b> <a>1</a> <b>2</b> - <v>395209</v> + <v>391086</v> </b> </bs> </hist> @@ -27048,12 +27027,12 @@ <b> <a>1</a> <b>2</b> - <v>359620</v> + <v>355874</v> </b> <b> <a>2</a> <b>7</b> - <v>15121</v> + <v>14961</v> </b> </bs> </hist> @@ -27069,12 +27048,12 @@ <b> <a>1</a> <b>2</b> - <v>359620</v> + <v>355874</v> </b> <b> <a>2</a> <b>7</b> - <v>15121</v> + <v>14961</v> </b> </bs> </hist> @@ -27090,12 +27069,12 @@ <b> <a>1</a> <b>2</b> - <v>359620</v> + <v>355874</v> </b> <b> <a>2</a> <b>7</b> - <v>15121</v> + <v>14961</v> </b> </bs> </hist> @@ -27111,12 +27090,12 @@ <b> <a>1</a> <b>2</b> - <v>359620</v> + <v>355874</v> </b> <b> <a>2</a> <b>7</b> - <v>15121</v> + <v>14961</v> </b> </bs> </hist> @@ -27132,22 +27111,22 @@ <b> <a>25</a> <b>26</b> - <v>105</v> + <v>104</v> </b> <b> <a>77</a> <b>78</b> - <v>35</v> + <v>34</v> </b> <b> <a>430</a> <b>431</b> - <v>35</v> + <v>34</v> </b> <b> - <a>10656</a> - <b>10657</b> - <v>35</v> + <a>10658</a> + <b>10659</b> + <v>34</v> </b> </bs> </hist> @@ -27163,22 +27142,22 @@ <b> <a>25</a> <b>26</b> - <v>105</v> + <v>104</v> </b> <b> <a>77</a> <b>78</b> - <v>35</v> + <v>34</v> </b> <b> <a>430</a> <b>431</b> - <v>35</v> + <v>34</v> </b> <b> - <a>10656</a> - <b>10657</b> - <v>35</v> + <a>10658</a> + <b>10659</b> + <v>34</v> </b> </bs> </hist> @@ -27194,27 +27173,27 @@ <b> <a>23</a> <b>24</b> - <v>35</v> + <v>34</v> </b> <b> <a>25</a> <b>26</b> - <v>70</v> + <v>69</v> </b> <b> <a>35</a> <b>36</b> - <v>35</v> + <v>34</v> </b> <b> <a>261</a> <b>262</b> - <v>35</v> + <v>34</v> </b> <b> <a>5465</a> <b>5466</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -27230,22 +27209,22 @@ <b> <a>1</a> <b>2</b> - <v>105</v> + <v>104</v> </b> <b> <a>9</a> <b>10</b> - <v>35</v> + <v>34</v> </b> <b> <a>66</a> <b>67</b> - <v>35</v> + <v>34</v> </b> <b> <a>1005</a> <b>1006</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -27261,12 +27240,12 @@ <b> <a>1</a> <b>2</b> - <v>197217</v> + <v>195125</v> </b> <b> <a>2</a> - <b>1518</b> - <v>7455</v> + <b>1519</b> + <v>7376</v> </b> </bs> </hist> @@ -27282,12 +27261,12 @@ <b> <a>1</a> <b>2</b> - <v>197217</v> + <v>195125</v> </b> <b> <a>2</a> - <b>1518</b> - <v>7455</v> + <b>1519</b> + <v>7376</v> </b> </bs> </hist> @@ -27303,12 +27282,12 @@ <b> <a>1</a> <b>2</b> - <v>204216</v> + <v>202049</v> </b> <b> <a>2</a> <b>4</b> - <v>457</v> + <v>452</v> </b> </bs> </hist> @@ -27324,12 +27303,12 @@ <b> <a>1</a> <b>2</b> - <v>200980</v> + <v>198848</v> </b> <b> <a>2</a> <b>108</b> - <v>3692</v> + <v>3653</v> </b> </bs> </hist> @@ -27345,27 +27324,27 @@ <b> <a>1</a> <b>2</b> - <v>28309</v> + <v>28009</v> </b> <b> <a>2</a> <b>5</b> - <v>3235</v> + <v>3201</v> </b> <b> <a>5</a> <b>15</b> - <v>2918</v> + <v>2887</v> </b> <b> <a>15</a> <b>134</b> - <v>2883</v> + <v>2853</v> </b> <b> <a>136</a> <b>476</b> - <v>738</v> + <v>730</v> </b> </bs> </hist> @@ -27381,27 +27360,27 @@ <b> <a>1</a> <b>2</b> - <v>28309</v> + <v>28009</v> </b> <b> <a>2</a> <b>5</b> - <v>3235</v> + <v>3201</v> </b> <b> <a>5</a> <b>15</b> - <v>2918</v> + <v>2887</v> </b> <b> <a>15</a> <b>134</b> - <v>2883</v> + <v>2853</v> </b> <b> <a>136</a> <b>476</b> - <v>738</v> + <v>730</v> </b> </bs> </hist> @@ -27417,7 +27396,7 @@ <b> <a>1</a> <b>2</b> - <v>38086</v> + <v>37682</v> </b> </bs> </hist> @@ -27433,22 +27412,22 @@ <b> <a>1</a> <b>2</b> - <v>30700</v> + <v>30375</v> </b> <b> <a>2</a> <b>5</b> - <v>3376</v> + <v>3340</v> </b> <b> <a>5</a> <b>45</b> - <v>2883</v> + <v>2853</v> </b> <b> <a>54</a> <b>415</b> - <v>1125</v> + <v>1113</v> </b> </bs> </hist> @@ -27458,15 +27437,15 @@ </relation> <relation> <name>derspecifiers</name> - <cardinality>397108</cardinality> + <cardinality>392965</cardinality> <columnsizes> <e> <k>der_id</k> - <v>394822</v> + <v>390703</v> </e> <e> <k>spec_id</k> - <v>140</v> + <v>139</v> </e> </columnsizes> <dependencies> @@ -27480,12 +27459,12 @@ <b> <a>1</a> <b>2</b> - <v>392536</v> + <v>388441</v> </b> <b> <a>2</a> <b>3</b> - <v>2285</v> + <v>2261</v> </b> </bs> </hist> @@ -27501,22 +27480,22 @@ <b> <a>65</a> <b>66</b> - <v>35</v> + <v>34</v> </b> <b> <a>93</a> <b>94</b> - <v>35</v> + <v>34</v> </b> <b> <a>1127</a> <b>1128</b> - <v>35</v> + <v>34</v> </b> <b> - <a>10007</a> - <b>10008</b> - <v>35</v> + <a>10009</a> + <b>10010</b> + <v>34</v> </b> </bs> </hist> @@ -27526,15 +27505,15 @@ </relation> <relation> <name>direct_base_offsets</name> - <cardinality>365985</cardinality> + <cardinality>362172</cardinality> <columnsizes> <e> <k>der_id</k> - <v>365985</v> + <v>362172</v> </e> <e> <k>offset</k> - <v>351</v> + <v>347</v> </e> </columnsizes> <dependencies> @@ -27548,7 +27527,7 @@ <b> <a>1</a> <b>2</b> - <v>365985</v> + <v>362172</v> </b> </bs> </hist> @@ -27564,32 +27543,32 @@ <b> <a>1</a> <b>2</b> - <v>35</v> + <v>34</v> </b> <b> <a>2</a> <b>3</b> - <v>105</v> + <v>104</v> </b> <b> <a>3</a> <b>4</b> - <v>70</v> + <v>69</v> </b> <b> <a>4</a> <b>5</b> - <v>70</v> + <v>69</v> </b> <b> <a>85</a> <b>86</b> - <v>35</v> + <v>34</v> </b> <b> - <a>10301</a> - <b>10302</b> - <v>35</v> + <a>10303</a> + <b>10304</b> + <v>34</v> </b> </bs> </hist> @@ -27599,19 +27578,19 @@ </relation> <relation> <name>virtual_base_offsets</name> - <cardinality>6471</cardinality> + <cardinality>6445</cardinality> <columnsizes> <e> <k>sub</k> - <v>3572</v> + <v>3558</v> </e> <e> <k>super</k> - <v>494</v> + <v>492</v> </e> <e> <k>offset</k> - <v>247</v> + <v>246</v> </e> </columnsizes> <dependencies> @@ -27625,17 +27604,17 @@ <b> <a>1</a> <b>2</b> - <v>2808</v> + <v>2797</v> </b> <b> <a>2</a> <b>4</b> - <v>314</v> + <v>313</v> </b> <b> <a>4</a> <b>7</b> - <v>258</v> + <v>257</v> </b> <b> <a>7</a> @@ -27656,17 +27635,17 @@ <b> <a>1</a> <b>2</b> - <v>3010</v> + <v>2999</v> </b> <b> <a>2</a> <b>4</b> - <v>303</v> + <v>302</v> </b> <b> <a>4</a> <b>8</b> - <v>258</v> + <v>257</v> </b> </bs> </hist> @@ -27692,7 +27671,7 @@ <b> <a>3</a> <b>4</b> - <v>56</v> + <v>55</v> </b> <b> <a>4</a> @@ -27743,7 +27722,7 @@ <b> <a>1</a> <b>2</b> - <v>280</v> + <v>279</v> </b> <b> <a>2</a> @@ -27890,23 +27869,23 @@ </relation> <relation> <name>frienddecls</name> - <cardinality>713754</cardinality> + <cardinality>706182</cardinality> <columnsizes> <e> <k>id</k> - <v>713754</v> + <v>706182</v> </e> <e> <k>type_id</k> - <v>42306</v> + <v>41857</v> </e> <e> <k>decl_id</k> - <v>70053</v> + <v>69309</v> </e> <e> <k>location</k> - <v>6330</v> + <v>6262</v> </e> </columnsizes> <dependencies> @@ -27920,7 +27899,7 @@ <b> <a>1</a> <b>2</b> - <v>713754</v> + <v>706182</v> </b> </bs> </hist> @@ -27936,7 +27915,7 @@ <b> <a>1</a> <b>2</b> - <v>713754</v> + <v>706182</v> </b> </bs> </hist> @@ -27952,7 +27931,7 @@ <b> <a>1</a> <b>2</b> - <v>713754</v> + <v>706182</v> </b> </bs> </hist> @@ -27968,47 +27947,47 @@ <b> <a>1</a> <b>2</b> - <v>6189</v> + <v>6123</v> </b> <b> <a>2</a> <b>3</b> - <v>13187</v> + <v>13047</v> </b> <b> <a>3</a> <b>6</b> - <v>2954</v> + <v>2922</v> </b> <b> <a>6</a> <b>10</b> - <v>3200</v> + <v>3166</v> </b> <b> <a>10</a> <b>17</b> - <v>3270</v> + <v>3235</v> </b> <b> <a>17</a> <b>24</b> - <v>3340</v> + <v>3305</v> </b> <b> <a>25</a> <b>36</b> - <v>3305</v> + <v>3270</v> </b> <b> <a>37</a> <b>55</b> - <v>3235</v> + <v>3201</v> </b> <b> <a>55</a> <b>103</b> - <v>3622</v> + <v>3583</v> </b> </bs> </hist> @@ -28024,47 +28003,47 @@ <b> <a>1</a> <b>2</b> - <v>6189</v> + <v>6123</v> </b> <b> <a>2</a> <b>3</b> - <v>13187</v> + <v>13047</v> </b> <b> <a>3</a> <b>6</b> - <v>2954</v> + <v>2922</v> </b> <b> <a>6</a> <b>10</b> - <v>3200</v> + <v>3166</v> </b> <b> <a>10</a> <b>17</b> - <v>3270</v> + <v>3235</v> </b> <b> <a>17</a> <b>24</b> - <v>3340</v> + <v>3305</v> </b> <b> <a>25</a> <b>36</b> - <v>3305</v> + <v>3270</v> </b> <b> <a>37</a> <b>55</b> - <v>3235</v> + <v>3201</v> </b> <b> <a>55</a> <b>103</b> - <v>3622</v> + <v>3583</v> </b> </bs> </hist> @@ -28080,12 +28059,12 @@ <b> <a>1</a> <b>2</b> - <v>40864</v> + <v>40430</v> </b> <b> <a>2</a> <b>13</b> - <v>1441</v> + <v>1426</v> </b> </bs> </hist> @@ -28101,37 +28080,37 @@ <b> <a>1</a> <b>2</b> - <v>40407</v> + <v>39978</v> </b> <b> <a>2</a> <b>3</b> - <v>5872</v> + <v>5810</v> </b> <b> <a>3</a> <b>8</b> - <v>6013</v> + <v>5949</v> </b> <b> <a>8</a> <b>15</b> - <v>5415</v> + <v>5358</v> </b> <b> <a>15</a> <b>32</b> - <v>5275</v> + <v>5219</v> </b> <b> <a>32</a> <b>71</b> - <v>5275</v> + <v>5219</v> </b> <b> <a>72</a> <b>160</b> - <v>1793</v> + <v>1774</v> </b> </bs> </hist> @@ -28147,37 +28126,37 @@ <b> <a>1</a> <b>2</b> - <v>40407</v> + <v>39978</v> </b> <b> <a>2</a> <b>3</b> - <v>5872</v> + <v>5810</v> </b> <b> <a>3</a> <b>8</b> - <v>6013</v> + <v>5949</v> </b> <b> <a>8</a> <b>15</b> - <v>5415</v> + <v>5358</v> </b> <b> <a>15</a> <b>32</b> - <v>5275</v> + <v>5219</v> </b> <b> <a>32</a> <b>71</b> - <v>5275</v> + <v>5219</v> </b> <b> <a>72</a> <b>160</b> - <v>1793</v> + <v>1774</v> </b> </bs> </hist> @@ -28193,12 +28172,12 @@ <b> <a>1</a> <b>2</b> - <v>69384</v> + <v>68648</v> </b> <b> <a>2</a> <b>5</b> - <v>668</v> + <v>661</v> </b> </bs> </hist> @@ -28214,12 +28193,12 @@ <b> <a>1</a> <b>2</b> - <v>5943</v> + <v>5880</v> </b> <b> <a>2</a> <b>20106</b> - <v>386</v> + <v>382</v> </b> </bs> </hist> @@ -28235,12 +28214,12 @@ <b> <a>1</a> <b>2</b> - <v>6189</v> + <v>6123</v> </b> <b> <a>2</a> <b>1105</b> - <v>140</v> + <v>139</v> </b> </bs> </hist> @@ -28256,12 +28235,12 @@ <b> <a>1</a> <b>2</b> - <v>5978</v> + <v>5915</v> </b> <b> <a>2</a> <b>1837</b> - <v>351</v> + <v>347</v> </b> </bs> </hist> @@ -28271,19 +28250,19 @@ </relation> <relation> <name>comments</name> - <cardinality>8751514</cardinality> + <cardinality>8686670</cardinality> <columnsizes> <e> <k>id</k> - <v>8751514</v> + <v>8686670</v> </e> <e> <k>contents</k> - <v>3332400</v> + <v>3307709</v> </e> <e> <k>location</k> - <v>8751514</v> + <v>8686670</v> </e> </columnsizes> <dependencies> @@ -28297,7 +28276,7 @@ <b> <a>1</a> <b>2</b> - <v>8751514</v> + <v>8686670</v> </b> </bs> </hist> @@ -28313,7 +28292,7 @@ <b> <a>1</a> <b>2</b> - <v>8751514</v> + <v>8686670</v> </b> </bs> </hist> @@ -28329,17 +28308,17 @@ <b> <a>1</a> <b>2</b> - <v>3048408</v> + <v>3025820</v> </b> <b> <a>2</a> <b>7</b> - <v>250514</v> + <v>248657</v> </b> <b> <a>7</a> <b>32784</b> - <v>33478</v> + <v>33230</v> </b> </bs> </hist> @@ -28355,17 +28334,17 @@ <b> <a>1</a> <b>2</b> - <v>3048408</v> + <v>3025820</v> </b> <b> <a>2</a> <b>7</b> - <v>250514</v> + <v>248657</v> </b> <b> <a>7</a> <b>32784</b> - <v>33478</v> + <v>33230</v> </b> </bs> </hist> @@ -28381,7 +28360,7 @@ <b> <a>1</a> <b>2</b> - <v>8751514</v> + <v>8686670</v> </b> </bs> </hist> @@ -28397,7 +28376,7 @@ <b> <a>1</a> <b>2</b> - <v>8751514</v> + <v>8686670</v> </b> </bs> </hist> @@ -28407,15 +28386,15 @@ </relation> <relation> <name>commentbinding</name> - <cardinality>3084703</cardinality> + <cardinality>3088160</cardinality> <columnsizes> <e> <k>id</k> - <v>2440368</v> + <v>2443103</v> </e> <e> <k>element</k> - <v>3008296</v> + <v>3011668</v> </e> </columnsizes> <dependencies> @@ -28429,12 +28408,12 @@ <b> <a>1</a> <b>2</b> - <v>2363495</v> + <v>2366144</v> </b> <b> <a>2</a> <b>97</b> - <v>76873</v> + <v>76959</v> </b> </bs> </hist> @@ -28450,12 +28429,12 @@ <b> <a>1</a> <b>2</b> - <v>2931889</v> + <v>2935175</v> </b> <b> <a>2</a> <b>3</b> - <v>76407</v> + <v>76492</v> </b> </bs> </hist> @@ -28465,15 +28444,15 @@ </relation> <relation> <name>exprconv</name> - <cardinality>7022968</cardinality> + <cardinality>7033432</cardinality> <columnsizes> <e> <k>converted</k> - <v>7022968</v> + <v>7033432</v> </e> <e> <k>conversion</k> - <v>7022968</v> + <v>7033432</v> </e> </columnsizes> <dependencies> @@ -28487,7 +28466,7 @@ <b> <a>1</a> <b>2</b> - <v>7022968</v> + <v>7033432</v> </b> </bs> </hist> @@ -28503,7 +28482,7 @@ <b> <a>1</a> <b>2</b> - <v>7022968</v> + <v>7033432</v> </b> </bs> </hist> @@ -28513,30 +28492,30 @@ </relation> <relation> <name>compgenerated</name> - <cardinality>9150058</cardinality> + <cardinality>9265823</cardinality> <columnsizes> <e> <k>id</k> - <v>9150058</v> + <v>9265823</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>synthetic_destructor_call</name> - <cardinality>143878</cardinality> + <cardinality>471159</cardinality> <columnsizes> <e> <k>element</k> - <v>111422</v> + <v>286813</v> </e> <e> <k>i</k> - <v>335</v> + <v>381</v> </e> <e> <k>destructor_call</k> - <v>143878</v> + <v>471159</v> </e> </columnsizes> <dependencies> @@ -28550,17 +28529,27 @@ <b> <a>1</a> <b>2</b> - <v>91779</v> + <v>190103</v> </b> <b> <a>2</a> <b>3</b> - <v>12950</v> + <v>50404</v> </b> <b> <a>3</a> - <b>18</b> - <v>6692</v> + <b>4</b> + <v>21503</v> + </b> + <b> + <a>4</a> + <b>7</b> + <v>23238</v> + </b> + <b> + <a>7</a> + <b>20</b> + <v>1563</v> </b> </bs> </hist> @@ -28576,17 +28565,27 @@ <b> <a>1</a> <b>2</b> - <v>91779</v> + <v>189912</v> </b> <b> <a>2</a> <b>3</b> - <v>12950</v> + <v>50537</v> </b> <b> <a>3</a> - <b>18</b> - <v>6692</v> + <b>4</b> + <v>21503</v> + </b> + <b> + <a>4</a> + <b>7</b> + <v>23295</v> + </b> + <b> + <a>7</a> + <b>20</b> + <v>1563</v> </b> </bs> </hist> @@ -28599,15 +28598,10 @@ <hist> <budget>12</budget> <bs> - <b> - <a>1</a> - <b>2</b> - <v>19</v> - </b> <b> <a>2</a> <b>3</b> - <v>59</v> + <v>19</v> </b> <b> <a>3</a> @@ -28617,21 +28611,46 @@ <b> <a>4</a> <b>5</b> - <v>59</v> + <v>19</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>19</v> </b> <b> <a>6</a> <b>7</b> <v>19</v> </b> + <b> + <a>7</a> + <b>8</b> + <v>19</v> + </b> + <b> + <a>10</a> + <b>11</b> + <v>19</v> + </b> <b> <a>11</a> <b>12</b> <v>19</v> </b> <b> - <a>20</a> - <b>21</b> + <a>16</a> + <b>17</b> + <v>19</v> + </b> + <b> + <a>18</a> + <b>19</b> + <v>19</v> + </b> + <b> + <a>26</a> + <b>27</b> <v>19</v> </b> <b> @@ -28640,28 +28659,43 @@ <v>19</v> </b> <b> - <a>65</a> - <b>66</b> + <a>37</a> + <b>38</b> <v>19</v> </b> <b> - <a>152</a> - <b>153</b> + <a>82</a> + <b>83</b> <v>19</v> </b> <b> - <a>339</a> - <b>340</b> + <a>193</a> + <b>194</b> <v>19</v> </b> <b> - <a>995</a> - <b>996</b> + <a>422</a> + <b>423</b> <v>19</v> </b> <b> - <a>5644</a> - <b>5645</b> + <a>1301</a> + <b>1302</b> + <v>19</v> + </b> + <b> + <a>2429</a> + <b>2430</b> + <v>19</v> + </b> + <b> + <a>5068</a> + <b>5069</b> + <v>19</v> + </b> + <b> + <a>15013</a> + <b>15014</b> <v>19</v> </b> </bs> @@ -28675,15 +28709,10 @@ <hist> <budget>12</budget> <bs> - <b> - <a>1</a> - <b>2</b> - <v>19</v> - </b> <b> <a>2</a> <b>3</b> - <v>59</v> + <v>19</v> </b> <b> <a>3</a> @@ -28693,21 +28722,46 @@ <b> <a>4</a> <b>5</b> - <v>59</v> + <v>19</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>19</v> </b> <b> <a>6</a> <b>7</b> <v>19</v> </b> + <b> + <a>7</a> + <b>8</b> + <v>19</v> + </b> + <b> + <a>10</a> + <b>11</b> + <v>19</v> + </b> <b> <a>11</a> <b>12</b> <v>19</v> </b> <b> - <a>20</a> - <b>21</b> + <a>16</a> + <b>17</b> + <v>19</v> + </b> + <b> + <a>18</a> + <b>19</b> + <v>19</v> + </b> + <b> + <a>26</a> + <b>27</b> <v>19</v> </b> <b> @@ -28716,28 +28770,43 @@ <v>19</v> </b> <b> - <a>65</a> - <b>66</b> + <a>37</a> + <b>38</b> <v>19</v> </b> <b> - <a>152</a> - <b>153</b> + <a>82</a> + <b>83</b> <v>19</v> </b> <b> - <a>339</a> - <b>340</b> + <a>193</a> + <b>194</b> <v>19</v> </b> <b> - <a>995</a> - <b>996</b> + <a>422</a> + <b>423</b> <v>19</v> </b> <b> - <a>5644</a> - <b>5645</b> + <a>1301</a> + <b>1302</b> + <v>19</v> + </b> + <b> + <a>2429</a> + <b>2430</b> + <v>19</v> + </b> + <b> + <a>5071</a> + <b>5072</b> + <v>19</v> + </b> + <b> + <a>15038</a> + <b>15039</b> <v>19</v> </b> </bs> @@ -28754,7 +28823,7 @@ <b> <a>1</a> <b>2</b> - <v>143878</v> + <v>471159</v> </b> </bs> </hist> @@ -28770,7 +28839,7 @@ <b> <a>1</a> <b>2</b> - <v>143878</v> + <v>471159</v> </b> </bs> </hist> @@ -28780,15 +28849,15 @@ </relation> <relation> <name>namespaces</name> - <cardinality>12113</cardinality> + <cardinality>12126</cardinality> <columnsizes> <e> <k>id</k> - <v>12113</v> + <v>12126</v> </e> <e> <k>name</k> - <v>9783</v> + <v>9794</v> </e> </columnsizes> <dependencies> @@ -28802,7 +28871,7 @@ <b> <a>1</a> <b>2</b> - <v>12113</v> + <v>12126</v> </b> </bs> </hist> @@ -28818,17 +28887,17 @@ <b> <a>1</a> <b>2</b> - <v>8386</v> + <v>8395</v> </b> <b> <a>2</a> <b>3</b> - <v>465</v> + <v>466</v> </b> <b> <a>3</a> <b>4</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -28838,26 +28907,26 @@ </relation> <relation> <name>namespace_inline</name> - <cardinality>1397</cardinality> + <cardinality>1399</cardinality> <columnsizes> <e> <k>id</k> - <v>1397</v> + <v>1399</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>namespacembrs</name> - <cardinality>2383528</cardinality> + <cardinality>2385733</cardinality> <columnsizes> <e> <k>parentid</k> - <v>10249</v> + <v>10261</v> </e> <e> <k>memberid</k> - <v>2383528</v> + <v>2385733</v> </e> </columnsizes> <dependencies> @@ -28871,52 +28940,52 @@ <b> <a>1</a> <b>2</b> - <v>1863</v> + <v>1865</v> </b> <b> <a>2</a> <b>4</b> - <v>931</v> + <v>932</v> </b> <b> <a>4</a> <b>5</b> - <v>931</v> + <v>932</v> </b> <b> <a>5</a> <b>7</b> - <v>931</v> + <v>932</v> </b> <b> <a>7</a> <b>8</b> - <v>931</v> + <v>932</v> </b> <b> <a>8</a> <b>12</b> - <v>931</v> + <v>932</v> </b> <b> <a>17</a> <b>30</b> - <v>931</v> + <v>932</v> </b> <b> <a>43</a> <b>47</b> - <v>931</v> + <v>932</v> </b> <b> <a>52</a> <b>143</b> - <v>931</v> + <v>932</v> </b> <b> <a>258</a> - <b>4469</b> - <v>931</v> + <b>4468</b> + <v>932</v> </b> </bs> </hist> @@ -28932,7 +29001,7 @@ <b> <a>1</a> <b>2</b> - <v>2383528</v> + <v>2385733</v> </b> </bs> </hist> @@ -28942,19 +29011,19 @@ </relation> <relation> <name>exprparents</name> - <cardinality>14185678</cardinality> + <cardinality>14207341</cardinality> <columnsizes> <e> <k>expr_id</k> - <v>14185678</v> + <v>14207341</v> </e> <e> <k>child_index</k> - <v>14636</v> + <v>14659</v> </e> <e> <k>parent_id</k> - <v>9439823</v> + <v>9454239</v> </e> </columnsizes> <dependencies> @@ -28968,7 +29037,7 @@ <b> <a>1</a> <b>2</b> - <v>14185678</v> + <v>14207341</v> </b> </bs> </hist> @@ -28984,7 +29053,7 @@ <b> <a>1</a> <b>2</b> - <v>14185678</v> + <v>14207341</v> </b> </bs> </hist> @@ -29000,12 +29069,12 @@ <b> <a>1</a> <b>2</b> - <v>2816</v> + <v>2820</v> </b> <b> <a>2</a> <b>3</b> - <v>1110</v> + <v>1111</v> </b> <b> <a>3</a> @@ -29015,22 +29084,22 @@ <b> <a>4</a> <b>5</b> - <v>6557</v> + <v>6567</v> </b> <b> <a>5</a> <b>8</b> - <v>1212</v> + <v>1214</v> </b> <b> <a>8</a> <b>11</b> - <v>1192</v> + <v>1194</v> </b> <b> <a>11</a> <b>53</b> - <v>1110</v> + <v>1111</v> </b> <b> <a>56</a> @@ -29051,12 +29120,12 @@ <b> <a>1</a> <b>2</b> - <v>2816</v> + <v>2820</v> </b> <b> <a>2</a> <b>3</b> - <v>1110</v> + <v>1111</v> </b> <b> <a>3</a> @@ -29066,22 +29135,22 @@ <b> <a>4</a> <b>5</b> - <v>6557</v> + <v>6567</v> </b> <b> <a>5</a> <b>8</b> - <v>1212</v> + <v>1214</v> </b> <b> <a>8</a> <b>11</b> - <v>1192</v> + <v>1194</v> </b> <b> <a>11</a> <b>53</b> - <v>1110</v> + <v>1111</v> </b> <b> <a>56</a> @@ -29102,17 +29171,17 @@ <b> <a>1</a> <b>2</b> - <v>5401426</v> + <v>5409675</v> </b> <b> <a>2</a> <b>3</b> - <v>3701154</v> + <v>3706806</v> </b> <b> <a>3</a> <b>712</b> - <v>337242</v> + <v>337757</v> </b> </bs> </hist> @@ -29128,17 +29197,17 @@ <b> <a>1</a> <b>2</b> - <v>5401426</v> + <v>5409675</v> </b> <b> <a>2</a> <b>3</b> - <v>3701154</v> + <v>3706806</v> </b> <b> <a>3</a> <b>712</b> - <v>337242</v> + <v>337757</v> </b> </bs> </hist> @@ -29148,22 +29217,22 @@ </relation> <relation> <name>expr_isload</name> - <cardinality>5203642</cardinality> + <cardinality>5170780</cardinality> <columnsizes> <e> <k>expr_id</k> - <v>5203642</v> + <v>5170780</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>conversionkinds</name> - <cardinality>4221347</cardinality> + <cardinality>4221331</cardinality> <columnsizes> <e> <k>expr_id</k> - <v>4221347</v> + <v>4221331</v> </e> <e> <k>kind</k> @@ -29181,7 +29250,7 @@ <b> <a>1</a> <b>2</b> - <v>4221347</v> + <v>4221331</v> </b> </bs> </hist> @@ -29205,8 +29274,8 @@ <v>1</v> </b> <b> - <a>13929</a> - <b>13930</b> + <a>13928</a> + <b>13929</b> <v>1</v> </b> <b> @@ -29220,8 +29289,8 @@ <v>1</v> </b> <b> - <a>4131269</a> - <b>4131270</b> + <a>4131254</a> + <b>4131255</b> <v>1</v> </b> </bs> @@ -29232,15 +29301,15 @@ </relation> <relation> <name>iscall</name> - <cardinality>2958862</cardinality> + <cardinality>3183297</cardinality> <columnsizes> <e> <k>caller</k> - <v>2958862</v> + <v>3183297</v> </e> <e> <k>kind</k> - <v>59</v> + <v>57</v> </e> </columnsizes> <dependencies> @@ -29254,7 +29323,7 @@ <b> <a>1</a> <b>2</b> - <v>2958862</v> + <v>3183297</v> </b> </bs> </hist> @@ -29278,8 +29347,8 @@ <v>19</v> </b> <b> - <a>146089</a> - <b>146090</b> + <a>163193</a> + <b>163194</b> <v>19</v> </b> </bs> @@ -29290,15 +29359,15 @@ </relation> <relation> <name>numtemplatearguments</name> - <cardinality>397495</cardinality> + <cardinality>393347</cardinality> <columnsizes> <e> <k>expr_id</k> - <v>397495</v> + <v>393347</v> </e> <e> <k>num</k> - <v>316</v> + <v>313</v> </e> </columnsizes> <dependencies> @@ -29312,7 +29381,7 @@ <b> <a>1</a> <b>2</b> - <v>397495</v> + <v>393347</v> </b> </bs> </hist> @@ -29328,37 +29397,37 @@ <b> <a>1</a> <b>2</b> - <v>105</v> + <v>104</v> </b> <b> <a>4</a> <b>5</b> - <v>35</v> + <v>34</v> </b> <b> <a>20</a> <b>21</b> - <v>35</v> + <v>34</v> </b> <b> <a>101</a> <b>102</b> - <v>35</v> + <v>34</v> </b> <b> <a>229</a> <b>230</b> - <v>35</v> + <v>34</v> </b> <b> <a>248</a> <b>249</b> - <v>35</v> + <v>34</v> </b> <b> - <a>10698</a> - <b>10699</b> - <v>35</v> + <a>10700</a> + <b>10701</b> + <v>34</v> </b> </bs> </hist> @@ -29368,15 +29437,15 @@ </relation> <relation> <name>specialnamequalifyingelements</name> - <cardinality>465</cardinality> + <cardinality>466</cardinality> <columnsizes> <e> <k>id</k> - <v>465</v> + <v>466</v> </e> <e> <k>name</k> - <v>465</v> + <v>466</v> </e> </columnsizes> <dependencies> @@ -29390,7 +29459,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -29406,7 +29475,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -29416,23 +29485,23 @@ </relation> <relation> <name>namequalifiers</name> - <cardinality>1570954</cardinality> + <cardinality>1516804</cardinality> <columnsizes> <e> <k>id</k> - <v>1570954</v> + <v>1516804</v> </e> <e> <k>qualifiableelement</k> - <v>1570954</v> + <v>1516804</v> </e> <e> <k>qualifyingelement</k> - <v>101314</v> + <v>97777</v> </e> <e> <k>location</k> - <v>316244</v> + <v>305343</v> </e> </columnsizes> <dependencies> @@ -29446,7 +29515,7 @@ <b> <a>1</a> <b>2</b> - <v>1570954</v> + <v>1516804</v> </b> </bs> </hist> @@ -29462,7 +29531,7 @@ <b> <a>1</a> <b>2</b> - <v>1570954</v> + <v>1516804</v> </b> </bs> </hist> @@ -29478,7 +29547,7 @@ <b> <a>1</a> <b>2</b> - <v>1570954</v> + <v>1516804</v> </b> </bs> </hist> @@ -29494,7 +29563,7 @@ <b> <a>1</a> <b>2</b> - <v>1570954</v> + <v>1516804</v> </b> </bs> </hist> @@ -29510,7 +29579,7 @@ <b> <a>1</a> <b>2</b> - <v>1570954</v> + <v>1516804</v> </b> </bs> </hist> @@ -29526,7 +29595,7 @@ <b> <a>1</a> <b>2</b> - <v>1570954</v> + <v>1516804</v> </b> </bs> </hist> @@ -29542,27 +29611,27 @@ <b> <a>1</a> <b>2</b> - <v>60745</v> + <v>58601</v> </b> <b> <a>2</a> <b>3</b> - <v>23255</v> + <v>22457</v> </b> <b> <a>3</a> <b>5</b> - <v>9239</v> + <v>8921</v> </b> <b> <a>5</a> <b>92</b> - <v>7640</v> + <v>7377</v> </b> <b> <a>96</a> - <b>21576</b> - <v>434</v> + <b>21572</b> + <v>419</v> </b> </bs> </hist> @@ -29578,27 +29647,27 @@ <b> <a>1</a> <b>2</b> - <v>60745</v> + <v>58601</v> </b> <b> <a>2</a> <b>3</b> - <v>23255</v> + <v>22457</v> </b> <b> <a>3</a> <b>5</b> - <v>9239</v> + <v>8921</v> </b> <b> <a>5</a> <b>92</b> - <v>7640</v> + <v>7377</v> </b> <b> <a>96</a> - <b>21576</b> - <v>434</v> + <b>21572</b> + <v>419</v> </b> </bs> </hist> @@ -29614,22 +29683,22 @@ <b> <a>1</a> <b>2</b> - <v>66371</v> + <v>64035</v> </b> <b> <a>2</a> <b>3</b> - <v>21439</v> + <v>20703</v> </b> <b> <a>3</a> <b>5</b> - <v>8686</v> + <v>8388</v> </b> <b> <a>5</a> <b>7095</b> - <v>4817</v> + <v>4651</v> </b> </bs> </hist> @@ -29645,32 +29714,32 @@ <b> <a>1</a> <b>2</b> - <v>104631</v> + <v>101018</v> </b> <b> <a>2</a> <b>3</b> - <v>29415</v> + <v>28385</v> </b> <b> <a>3</a> <b>4</b> - <v>46373</v> + <v>44780</v> </b> <b> <a>4</a> <b>6</b> - <v>14826</v> + <v>14316</v> </b> <b> <a>6</a> <b>7</b> - <v>98788</v> + <v>95394</v> </b> <b> <a>7</a> <b>790</b> - <v>22209</v> + <v>21446</v> </b> </bs> </hist> @@ -29686,32 +29755,32 @@ <b> <a>1</a> <b>2</b> - <v>104631</v> + <v>101018</v> </b> <b> <a>2</a> <b>3</b> - <v>29415</v> + <v>28385</v> </b> <b> <a>3</a> <b>4</b> - <v>46373</v> + <v>44780</v> </b> <b> <a>4</a> <b>6</b> - <v>14826</v> + <v>14316</v> </b> <b> <a>6</a> <b>7</b> - <v>98788</v> + <v>95394</v> </b> <b> <a>7</a> <b>790</b> - <v>22209</v> + <v>21446</v> </b> </bs> </hist> @@ -29727,22 +29796,22 @@ <b> <a>1</a> <b>2</b> - <v>142575</v> + <v>137659</v> </b> <b> <a>2</a> <b>3</b> - <v>57804</v> + <v>55799</v> </b> <b> <a>3</a> <b>4</b> - <v>106309</v> + <v>102658</v> </b> <b> <a>4</a> <b>143</b> - <v>9555</v> + <v>9226</v> </b> </bs> </hist> @@ -29752,15 +29821,15 @@ </relation> <relation> <name>varbind</name> - <cardinality>6020283</cardinality> + <cardinality>6029477</cardinality> <columnsizes> <e> <k>expr</k> - <v>6020283</v> + <v>6029477</v> </e> <e> <k>var</k> - <v>767403</v> + <v>768575</v> </e> </columnsizes> <dependencies> @@ -29774,7 +29843,7 @@ <b> <a>1</a> <b>2</b> - <v>6020283</v> + <v>6029477</v> </b> </bs> </hist> @@ -29790,52 +29859,52 @@ <b> <a>1</a> <b>2</b> - <v>126036</v> + <v>126229</v> </b> <b> <a>2</a> <b>3</b> - <v>137672</v> + <v>137882</v> </b> <b> <a>3</a> <b>4</b> - <v>106137</v> + <v>106299</v> </b> <b> <a>4</a> <b>5</b> - <v>85086</v> + <v>85216</v> </b> <b> <a>5</a> <b>6</b> - <v>61199</v> + <v>61292</v> </b> <b> <a>6</a> <b>7</b> - <v>48042</v> + <v>48115</v> </b> <b> <a>7</a> <b>9</b> - <v>59533</v> + <v>59624</v> </b> <b> <a>9</a> <b>13</b> - <v>59184</v> + <v>59274</v> </b> <b> <a>13</a> <b>28</b> - <v>58793</v> + <v>58883</v> </b> <b> <a>28</a> <b>5137</b> - <v>25717</v> + <v>25756</v> </b> </bs> </hist> @@ -29845,15 +29914,15 @@ </relation> <relation> <name>funbind</name> - <cardinality>2962929</cardinality> + <cardinality>3187262</cardinality> <columnsizes> <e> <k>expr</k> - <v>2959178</v> + <v>3183583</v> </e> <e> <k>fun</k> - <v>532278</v> + <v>512661</v> </e> </columnsizes> <dependencies> @@ -29867,12 +29936,12 @@ <b> <a>1</a> <b>2</b> - <v>2955427</v> + <v>3179903</v> </b> <b> <a>2</a> <b>3</b> - <v>3750</v> + <v>3679</v> </b> </bs> </hist> @@ -29888,32 +29957,32 @@ <b> <a>1</a> <b>2</b> - <v>328780</v> + <v>316152</v> </b> <b> <a>2</a> <b>3</b> - <v>81948</v> + <v>78084</v> </b> <b> <a>3</a> <b>4</b> - <v>31784</v> + <v>31455</v> </b> <b> <a>4</a> <b>7</b> - <v>47913</v> + <v>46210</v> </b> <b> <a>7</a> - <b>158</b> - <v>39937</v> + <b>133</b> + <v>38451</v> </b> <b> - <a>159</a> - <b>4943</b> - <v>1914</v> + <a>133</a> + <b>4992</b> + <v>2306</v> </b> </bs> </hist> @@ -29923,19 +29992,19 @@ </relation> <relation> <name>expr_allocator</name> - <cardinality>46455</cardinality> + <cardinality>45963</cardinality> <columnsizes> <e> <k>expr</k> - <v>46455</v> + <v>45963</v> </e> <e> <k>func</k> - <v>105</v> + <v>104</v> </e> <e> <k>form</k> - <v>35</v> + <v>34</v> </e> </columnsizes> <dependencies> @@ -29949,7 +30018,7 @@ <b> <a>1</a> <b>2</b> - <v>46455</v> + <v>45963</v> </b> </bs> </hist> @@ -29965,7 +30034,7 @@ <b> <a>1</a> <b>2</b> - <v>46455</v> + <v>45963</v> </b> </bs> </hist> @@ -29981,17 +30050,17 @@ <b> <a>1</a> <b>2</b> - <v>35</v> + <v>34</v> </b> <b> <a>585</a> <b>586</b> - <v>35</v> + <v>34</v> </b> <b> <a>735</a> <b>736</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -30007,7 +30076,7 @@ <b> <a>1</a> <b>2</b> - <v>105</v> + <v>104</v> </b> </bs> </hist> @@ -30023,7 +30092,7 @@ <b> <a>1321</a> <b>1322</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -30039,7 +30108,7 @@ <b> <a>3</a> <b>4</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -30049,19 +30118,19 @@ </relation> <relation> <name>expr_deallocator</name> - <cardinality>55212</cardinality> + <cardinality>54626</cardinality> <columnsizes> <e> <k>expr</k> - <v>55212</v> + <v>54626</v> </e> <e> <k>func</k> - <v>105</v> + <v>104</v> </e> <e> <k>form</k> - <v>70</v> + <v>69</v> </e> </columnsizes> <dependencies> @@ -30075,7 +30144,7 @@ <b> <a>1</a> <b>2</b> - <v>55212</v> + <v>54626</v> </b> </bs> </hist> @@ -30091,7 +30160,7 @@ <b> <a>1</a> <b>2</b> - <v>55212</v> + <v>54626</v> </b> </bs> </hist> @@ -30107,17 +30176,17 @@ <b> <a>1</a> <b>2</b> - <v>35</v> + <v>34</v> </b> <b> <a>722</a> <b>723</b> - <v>35</v> + <v>34</v> </b> <b> <a>847</a> <b>848</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -30133,7 +30202,7 @@ <b> <a>1</a> <b>2</b> - <v>105</v> + <v>104</v> </b> </bs> </hist> @@ -30149,12 +30218,12 @@ <b> <a>722</a> <b>723</b> - <v>35</v> + <v>34</v> </b> <b> <a>848</a> <b>849</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -30170,12 +30239,12 @@ <b> <a>1</a> <b>2</b> - <v>35</v> + <v>34</v> </b> <b> <a>2</a> <b>3</b> - <v>35</v> + <v>34</v> </b> </bs> </hist> @@ -30185,26 +30254,26 @@ </relation> <relation> <name>expr_cond_two_operand</name> - <cardinality>480</cardinality> + <cardinality>481</cardinality> <columnsizes> <e> <k>cond</k> - <v>480</v> + <v>481</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>expr_cond_guard</name> - <cardinality>656298</cardinality> + <cardinality>657276</cardinality> <columnsizes> <e> <k>cond</k> - <v>656298</v> + <v>657276</v> </e> <e> <k>guard</k> - <v>656298</v> + <v>657276</v> </e> </columnsizes> <dependencies> @@ -30218,7 +30287,7 @@ <b> <a>1</a> <b>2</b> - <v>656298</v> + <v>657276</v> </b> </bs> </hist> @@ -30234,7 +30303,7 @@ <b> <a>1</a> <b>2</b> - <v>656298</v> + <v>657276</v> </b> </bs> </hist> @@ -30244,15 +30313,15 @@ </relation> <relation> <name>expr_cond_true</name> - <cardinality>656295</cardinality> + <cardinality>657273</cardinality> <columnsizes> <e> <k>cond</k> - <v>656295</v> + <v>657273</v> </e> <e> <k>true</k> - <v>656295</v> + <v>657273</v> </e> </columnsizes> <dependencies> @@ -30266,7 +30335,7 @@ <b> <a>1</a> <b>2</b> - <v>656295</v> + <v>657273</v> </b> </bs> </hist> @@ -30282,7 +30351,7 @@ <b> <a>1</a> <b>2</b> - <v>656295</v> + <v>657273</v> </b> </bs> </hist> @@ -30292,15 +30361,15 @@ </relation> <relation> <name>expr_cond_false</name> - <cardinality>656298</cardinality> + <cardinality>657276</cardinality> <columnsizes> <e> <k>cond</k> - <v>656298</v> + <v>657276</v> </e> <e> <k>false</k> - <v>656298</v> + <v>657276</v> </e> </columnsizes> <dependencies> @@ -30314,7 +30383,7 @@ <b> <a>1</a> <b>2</b> - <v>656298</v> + <v>657276</v> </b> </bs> </hist> @@ -30330,7 +30399,7 @@ <b> <a>1</a> <b>2</b> - <v>656298</v> + <v>657276</v> </b> </bs> </hist> @@ -30340,15 +30409,15 @@ </relation> <relation> <name>values</name> - <cardinality>10760930</cardinality> + <cardinality>10777325</cardinality> <columnsizes> <e> <k>id</k> - <v>10760930</v> + <v>10777325</v> </e> <e> <k>str</k> - <v>87934</v> + <v>88068</v> </e> </columnsizes> <dependencies> @@ -30362,7 +30431,7 @@ <b> <a>1</a> <b>2</b> - <v>10760930</v> + <v>10777325</v> </b> </bs> </hist> @@ -30378,27 +30447,27 @@ <b> <a>1</a> <b>2</b> - <v>59458</v> + <v>59548</v> </b> <b> <a>2</a> <b>3</b> - <v>12391</v> + <v>12410</v> </b> <b> <a>3</a> <b>6</b> - <v>6906</v> + <v>6916</v> </b> <b> <a>6</a> <b>56</b> - <v>6621</v> + <v>6631</v> </b> <b> <a>57</a> - <b>452015</b> - <v>2557</v> + <b>452017</b> + <v>2561</v> </b> </bs> </hist> @@ -30471,15 +30540,15 @@ </relation> <relation> <name>valuebind</name> - <cardinality>11194506</cardinality> + <cardinality>11211571</cardinality> <columnsizes> <e> <k>val</k> - <v>10760930</v> + <v>10777325</v> </e> <e> <k>expr</k> - <v>11194506</v> + <v>11211571</v> </e> </columnsizes> <dependencies> @@ -30493,12 +30562,12 @@ <b> <a>1</a> <b>2</b> - <v>10349865</v> + <v>10365623</v> </b> <b> <a>2</a> <b>7</b> - <v>411064</v> + <v>411701</v> </b> </bs> </hist> @@ -30514,7 +30583,7 @@ <b> <a>1</a> <b>2</b> - <v>11194506</v> + <v>11211571</v> </b> </bs> </hist> @@ -30524,15 +30593,15 @@ </relation> <relation> <name>fieldoffsets</name> - <cardinality>1053150</cardinality> + <cardinality>1054758</cardinality> <columnsizes> <e> <k>id</k> - <v>1053150</v> + <v>1054758</v> </e> <e> <k>byteoffset</k> - <v>22659</v> + <v>22694</v> </e> <e> <k>bitoffset</k> @@ -30550,7 +30619,7 @@ <b> <a>1</a> <b>2</b> - <v>1053150</v> + <v>1054758</v> </b> </bs> </hist> @@ -30566,7 +30635,7 @@ <b> <a>1</a> <b>2</b> - <v>1053150</v> + <v>1054758</v> </b> </bs> </hist> @@ -30582,37 +30651,37 @@ <b> <a>1</a> <b>2</b> - <v>13005</v> + <v>13025</v> </b> <b> <a>2</a> <b>3</b> - <v>1715</v> + <v>1718</v> </b> <b> <a>3</a> <b>5</b> - <v>1795</v> + <v>1797</v> </b> <b> <a>5</a> <b>12</b> - <v>1914</v> + <v>1917</v> </b> <b> <a>12</a> <b>35</b> - <v>1715</v> + <v>1718</v> </b> <b> <a>35</a> <b>205</b> - <v>1715</v> + <v>1718</v> </b> <b> <a>244</a> <b>5638</b> - <v>797</v> + <v>799</v> </b> </bs> </hist> @@ -30628,12 +30697,12 @@ <b> <a>1</a> <b>2</b> - <v>21981</v> + <v>22014</v> </b> <b> <a>2</a> <b>9</b> - <v>678</v> + <v>679</v> </b> </bs> </hist> @@ -30725,19 +30794,19 @@ </relation> <relation> <name>bitfield</name> - <cardinality>20858</cardinality> + <cardinality>20704</cardinality> <columnsizes> <e> <k>id</k> - <v>20858</v> + <v>20704</v> </e> <e> <k>bits</k> - <v>2607</v> + <v>2588</v> </e> <e> <k>declared_bits</k> - <v>2607</v> + <v>2588</v> </e> </columnsizes> <dependencies> @@ -30751,7 +30820,7 @@ <b> <a>1</a> <b>2</b> - <v>20858</v> + <v>20704</v> </b> </bs> </hist> @@ -30767,7 +30836,7 @@ <b> <a>1</a> <b>2</b> - <v>20858</v> + <v>20704</v> </b> </bs> </hist> @@ -30783,42 +30852,42 @@ <b> <a>1</a> <b>2</b> - <v>730</v> + <v>724</v> </b> <b> <a>2</a> <b>3</b> - <v>625</v> + <v>621</v> </b> <b> <a>3</a> <b>4</b> - <v>208</v> + <v>207</v> </b> <b> <a>4</a> <b>5</b> - <v>208</v> + <v>207</v> </b> <b> <a>5</a> <b>6</b> - <v>208</v> + <v>207</v> </b> <b> <a>6</a> <b>8</b> - <v>208</v> + <v>207</v> </b> <b> <a>8</a> <b>11</b> - <v>208</v> + <v>207</v> </b> <b> <a>12</a> <b>115</b> - <v>208</v> + <v>207</v> </b> </bs> </hist> @@ -30834,7 +30903,7 @@ <b> <a>1</a> <b>2</b> - <v>2607</v> + <v>2588</v> </b> </bs> </hist> @@ -30850,42 +30919,42 @@ <b> <a>1</a> <b>2</b> - <v>730</v> + <v>724</v> </b> <b> <a>2</a> <b>3</b> - <v>625</v> + <v>621</v> </b> <b> <a>3</a> <b>4</b> - <v>208</v> + <v>207</v> </b> <b> <a>4</a> <b>5</b> - <v>208</v> + <v>207</v> </b> <b> <a>5</a> <b>6</b> - <v>208</v> + <v>207</v> </b> <b> <a>6</a> <b>8</b> - <v>208</v> + <v>207</v> </b> <b> <a>8</a> <b>11</b> - <v>208</v> + <v>207</v> </b> <b> <a>12</a> <b>115</b> - <v>208</v> + <v>207</v> </b> </bs> </hist> @@ -30901,7 +30970,7 @@ <b> <a>1</a> <b>2</b> - <v>2607</v> + <v>2588</v> </b> </bs> </hist> @@ -30911,23 +30980,23 @@ </relation> <relation> <name>initialisers</name> - <cardinality>1710236</cardinality> + <cardinality>1710241</cardinality> <columnsizes> <e> <k>init</k> - <v>1710236</v> + <v>1710241</v> </e> <e> <k>var</k> - <v>719575</v> + <v>719566</v> </e> <e> <k>expr</k> - <v>1710236</v> + <v>1710241</v> </e> <e> <k>location</k> - <v>394516</v> + <v>394521</v> </e> </columnsizes> <dependencies> @@ -30941,7 +31010,7 @@ <b> <a>1</a> <b>2</b> - <v>1710236</v> + <v>1710241</v> </b> </bs> </hist> @@ -30957,7 +31026,7 @@ <b> <a>1</a> <b>2</b> - <v>1710236</v> + <v>1710241</v> </b> </bs> </hist> @@ -30973,7 +31042,7 @@ <b> <a>1</a> <b>2</b> - <v>1710236</v> + <v>1710241</v> </b> </bs> </hist> @@ -30989,7 +31058,7 @@ <b> <a>1</a> <b>2</b> - <v>633831</v> + <v>633820</v> </b> <b> <a>2</a> @@ -30999,7 +31068,7 @@ <b> <a>16</a> <b>25</b> - <v>57021</v> + <v>57022</v> </b> </bs> </hist> @@ -31015,7 +31084,7 @@ <b> <a>1</a> <b>2</b> - <v>633831</v> + <v>633820</v> </b> <b> <a>2</a> @@ -31025,7 +31094,7 @@ <b> <a>16</a> <b>25</b> - <v>57021</v> + <v>57022</v> </b> </bs> </hist> @@ -31041,7 +31110,7 @@ <b> <a>1</a> <b>2</b> - <v>719569</v> + <v>719560</v> </b> <b> <a>2</a> @@ -31062,7 +31131,7 @@ <b> <a>1</a> <b>2</b> - <v>1710236</v> + <v>1710241</v> </b> </bs> </hist> @@ -31078,7 +31147,7 @@ <b> <a>1</a> <b>2</b> - <v>1710236</v> + <v>1710241</v> </b> </bs> </hist> @@ -31094,7 +31163,7 @@ <b> <a>1</a> <b>2</b> - <v>1710236</v> + <v>1710241</v> </b> </bs> </hist> @@ -31110,7 +31179,7 @@ <b> <a>1</a> <b>2</b> - <v>321600</v> + <v>321604</v> </b> <b> <a>2</a> @@ -31120,7 +31189,7 @@ <b> <a>3</a> <b>15</b> - <v>30976</v> + <v>30977</v> </b> <b> <a>15</a> @@ -31141,17 +31210,17 @@ <b> <a>1</a> <b>2</b> - <v>344483</v> + <v>344488</v> </b> <b> <a>2</a> <b>4</b> - <v>36086</v> + <v>36106</v> </b> <b> <a>4</a> <b>12073</b> - <v>13945</v> + <v>13927</v> </b> </bs> </hist> @@ -31167,7 +31236,7 @@ <b> <a>1</a> <b>2</b> - <v>321600</v> + <v>321604</v> </b> <b> <a>2</a> @@ -31177,7 +31246,7 @@ <b> <a>3</a> <b>15</b> - <v>30976</v> + <v>30977</v> </b> <b> <a>15</a> @@ -31192,26 +31261,26 @@ </relation> <relation> <name>braced_initialisers</name> - <cardinality>41639</cardinality> + <cardinality>41701</cardinality> <columnsizes> <e> <k>init</k> - <v>41639</v> + <v>41701</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>expr_ancestor</name> - <cardinality>148162</cardinality> + <cardinality>475296</cardinality> <columnsizes> <e> <k>exp</k> - <v>148162</v> + <v>475296</v> </e> <e> <k>ancestor</k> - <v>92668</v> + <v>269541</v> </e> </columnsizes> <dependencies> @@ -31225,7 +31294,7 @@ <b> <a>1</a> <b>2</b> - <v>148162</v> + <v>475296</v> </b> </bs> </hist> @@ -31241,22 +31310,27 @@ <b> <a>1</a> <b>2</b> - <v>65069</v> + <v>165739</v> </b> <b> <a>2</a> <b>3</b> - <v>18359</v> + <v>54712</v> </b> <b> <a>3</a> + <b>4</b> + <v>22152</v> + </b> + <b> + <a>4</a> <b>6</b> - <v>7422</v> + <v>22132</v> </b> <b> <a>6</a> <b>26</b> - <v>1816</v> + <v>4804</v> </b> </bs> </hist> @@ -31266,19 +31340,19 @@ </relation> <relation> <name>exprs</name> - <cardinality>18360534</cardinality> + <cardinality>18388573</cardinality> <columnsizes> <e> <k>id</k> - <v>18360534</v> + <v>18388573</v> </e> <e> <k>kind</k> - <v>1163</v> + <v>1165</v> </e> <e> <k>location</k> - <v>8475665</v> + <v>8488587</v> </e> </columnsizes> <dependencies> @@ -31292,7 +31366,7 @@ <b> <a>1</a> <b>2</b> - <v>18360534</v> + <v>18388573</v> </b> </bs> </hist> @@ -31308,7 +31382,7 @@ <b> <a>1</a> <b>2</b> - <v>18360534</v> + <v>18388573</v> </b> </bs> </hist> @@ -31383,7 +31457,7 @@ </b> <b> <a>63119</a> - <b>136808</b> + <b>136815</b> <v>88</v> </b> <b> @@ -31486,22 +31560,22 @@ <b> <a>1</a> <b>2</b> - <v>7134774</v> + <v>7145568</v> </b> <b> <a>2</a> <b>3</b> - <v>661975</v> + <v>663069</v> </b> <b> <a>3</a> <b>18</b> - <v>637171</v> + <v>638140</v> </b> <b> <a>18</a> <b>71656</b> - <v>41744</v> + <v>41808</v> </b> </bs> </hist> @@ -31517,17 +31591,65 @@ <b> <a>1</a> <b>2</b> - <v>7240687</v> + <v>7251643</v> </b> <b> <a>2</a> <b>3</b> - <v>617251</v> + <v>618277</v> </b> <b> <a>3</a> <b>32</b> - <v>617727</v> + <v>618666</v> + </b> + </bs> + </hist> + </val> + </dep> + </dependencies> + </relation> + <relation> + <name>expr_reuse</name> + <cardinality>331632</cardinality> + <columnsizes> + <e> + <k>reuse</k> + <v>331632</v> + </e> + <e> + <k>original</k> + <v>331632</v> + </e> + </columnsizes> + <dependencies> + <dep> + <src>reuse</src> + <trg>original</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>331632</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>original</src> + <trg>reuse</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>331632</v> </b> </bs> </hist> @@ -31537,15 +31659,15 @@ </relation> <relation> <name>expr_types</name> - <cardinality>18487847</cardinality> + <cardinality>18461112</cardinality> <columnsizes> <e> <k>id</k> - <v>18356624</v> + <v>18330447</v> </e> <e> <k>typeid</k> - <v>1243492</v> + <v>1237209</v> </e> <e> <k>value_category</k> @@ -31563,12 +31685,12 @@ <b> <a>1</a> <b>2</b> - <v>18225401</v> + <v>18199782</v> </b> <b> <a>2</a> <b>3</b> - <v>131222</v> + <v>130664</v> </b> </bs> </hist> @@ -31584,7 +31706,7 @@ <b> <a>1</a> <b>2</b> - <v>18356624</v> + <v>18330447</v> </b> </bs> </hist> @@ -31600,42 +31722,42 @@ <b> <a>1</a> <b>2</b> - <v>450100</v> + <v>448184</v> </b> <b> <a>2</a> <b>3</b> - <v>258108</v> + <v>256965</v> </b> <b> <a>3</a> <b>4</b> - <v>103214</v> + <v>102788</v> </b> <b> <a>4</a> <b>5</b> - <v>84643</v> + <v>84133</v> </b> <b> <a>5</a> <b>8</b> - <v>111056</v> + <v>110196</v> </b> <b> <a>8</a> <b>14</b> - <v>99102</v> + <v>98435</v> </b> <b> <a>14</a> <b>42</b> - <v>94046</v> + <v>93511</v> </b> <b> <a>42</a> - <b>125383</b> - <v>43220</v> + <b>125366</b> + <v>42995</v> </b> </bs> </hist> @@ -31651,17 +31773,17 @@ <b> <a>1</a> <b>2</b> - <v>1074947</v> + <v>1069468</v> </b> <b> <a>2</a> <b>3</b> - <v>158085</v> + <v>157321</v> </b> <b> <a>3</a> <b>4</b> - <v>10459</v> + <v>10418</v> </b> </bs> </hist> @@ -31675,18 +31797,18 @@ <budget>12</budget> <bs> <b> - <a>14895</a> - <b>14896</b> + <a>14892</a> + <b>14893</b> <v>11</v> </b> <b> - <a>372954</a> - <b>372955</b> + <a>372687</a> + <b>372688</b> <v>11</v> </b> <b> - <a>1246055</a> - <b>1246056</b> + <a>1250400</a> + <b>1250401</b> <v>11</v> </b> </bs> @@ -31706,13 +31828,13 @@ <v>11</v> </b> <b> - <a>30879</a> - <b>30880</b> + <a>30862</a> + <b>30863</b> <v>11</v> </b> <b> - <a>93014</a> - <b>93015</b> + <a>92891</a> + <b>92892</b> <v>11</v> </b> </bs> @@ -31723,15 +31845,15 @@ </relation> <relation> <name>new_allocated_type</name> - <cardinality>47510</cardinality> + <cardinality>47006</cardinality> <columnsizes> <e> <k>expr</k> - <v>47510</v> + <v>47006</v> </e> <e> <k>type_id</k> - <v>28098</v> + <v>27800</v> </e> </columnsizes> <dependencies> @@ -31745,7 +31867,7 @@ <b> <a>1</a> <b>2</b> - <v>47510</v> + <v>47006</v> </b> </bs> </hist> @@ -31761,17 +31883,17 @@ <b> <a>1</a> <b>2</b> - <v>11745</v> + <v>11621</v> </b> <b> <a>2</a> <b>3</b> - <v>14875</v> + <v>14717</v> </b> <b> <a>3</a> <b>19</b> - <v>1477</v> + <v>1461</v> </b> </bs> </hist> @@ -32866,15 +32988,15 @@ </relation> <relation> <name>condition_decl_bind</name> - <cardinality>42306</cardinality> + <cardinality>40853</cardinality> <columnsizes> <e> <k>expr</k> - <v>42306</v> + <v>40853</v> </e> <e> <k>decl</k> - <v>42306</v> + <v>40853</v> </e> </columnsizes> <dependencies> @@ -32888,7 +33010,7 @@ <b> <a>1</a> <b>2</b> - <v>42306</v> + <v>40853</v> </b> </bs> </hist> @@ -32904,7 +33026,7 @@ <b> <a>1</a> <b>2</b> - <v>42306</v> + <v>40853</v> </b> </bs> </hist> @@ -32914,15 +33036,15 @@ </relation> <relation> <name>typeid_bind</name> - <cardinality>36362</cardinality> + <cardinality>35977</cardinality> <columnsizes> <e> <k>expr</k> - <v>36362</v> + <v>35977</v> </e> <e> <k>type_id</k> - <v>16352</v> + <v>16179</v> </e> </columnsizes> <dependencies> @@ -32936,7 +33058,7 @@ <b> <a>1</a> <b>2</b> - <v>36362</v> + <v>35977</v> </b> </bs> </hist> @@ -32952,12 +33074,12 @@ <b> <a>1</a> <b>2</b> - <v>15930</v> + <v>15761</v> </b> <b> <a>3</a> <b>328</b> - <v>422</v> + <v>417</v> </b> </bs> </hist> @@ -32975,7 +33097,7 @@ </e> <e> <k>type_id</k> - <v>20096</v> + <v>20097</v> </e> </columnsizes> <dependencies> @@ -33005,7 +33127,7 @@ <b> <a>1</a> <b>2</b> - <v>19931</v> + <v>19932</v> </b> <b> <a>2</a> @@ -33020,15 +33142,15 @@ </relation> <relation> <name>sizeof_bind</name> - <cardinality>198892</cardinality> + <cardinality>199195</cardinality> <columnsizes> <e> <k>expr</k> - <v>198892</v> + <v>199195</v> </e> <e> <k>type_id</k> - <v>8169</v> + <v>8181</v> </e> </columnsizes> <dependencies> @@ -33042,7 +33164,7 @@ <b> <a>1</a> <b>2</b> - <v>198892</v> + <v>199195</v> </b> </bs> </hist> @@ -33058,22 +33180,22 @@ <b> <a>1</a> <b>2</b> - <v>2689</v> + <v>2693</v> </b> <b> <a>2</a> <b>3</b> - <v>2330</v> + <v>2333</v> </b> <b> <a>3</a> <b>4</b> - <v>776</v> + <v>777</v> </b> <b> <a>4</a> <b>5</b> - <v>739</v> + <v>740</v> </b> <b> <a>5</a> @@ -33083,12 +33205,12 @@ <b> <a>6</a> <b>9</b> - <v>713</v> + <v>714</v> </b> <b> <a>9</a> <b>133</b> - <v>649</v> + <v>650</v> </b> <b> <a>164</a> @@ -33151,19 +33273,19 @@ </relation> <relation> <name>lambdas</name> - <cardinality>21431</cardinality> + <cardinality>21455</cardinality> <columnsizes> <e> <k>expr</k> - <v>21431</v> + <v>21455</v> </e> <e> <k>default_capture</k> - <v>465</v> + <v>466</v> </e> <e> <k>has_explicit_return_type</k> - <v>465</v> + <v>466</v> </e> </columnsizes> <dependencies> @@ -33177,7 +33299,7 @@ <b> <a>1</a> <b>2</b> - <v>21431</v> + <v>21455</v> </b> </bs> </hist> @@ -33193,7 +33315,7 @@ <b> <a>1</a> <b>2</b> - <v>21431</v> + <v>21455</v> </b> </bs> </hist> @@ -33209,7 +33331,7 @@ <b> <a>46</a> <b>47</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33225,7 +33347,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33241,7 +33363,7 @@ <b> <a>46</a> <b>47</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33257,7 +33379,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33267,35 +33389,35 @@ </relation> <relation> <name>lambda_capture</name> - <cardinality>27953</cardinality> + <cardinality>27985</cardinality> <columnsizes> <e> <k>id</k> - <v>27953</v> + <v>27985</v> </e> <e> <k>lambda</k> - <v>20499</v> + <v>20522</v> </e> <e> <k>index</k> - <v>931</v> + <v>932</v> </e> <e> <k>field</k> - <v>27953</v> + <v>27985</v> </e> <e> <k>captured_by_reference</k> - <v>465</v> + <v>466</v> </e> <e> <k>is_implicit</k> - <v>465</v> + <v>466</v> </e> <e> <k>location</k> - <v>2795</v> + <v>2798</v> </e> </columnsizes> <dependencies> @@ -33309,7 +33431,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33325,7 +33447,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33341,7 +33463,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33357,7 +33479,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33373,7 +33495,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33389,7 +33511,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33405,12 +33527,12 @@ <b> <a>1</a> <b>2</b> - <v>13045</v> + <v>13059</v> </b> <b> <a>2</a> <b>3</b> - <v>7454</v> + <v>7462</v> </b> </bs> </hist> @@ -33426,12 +33548,12 @@ <b> <a>1</a> <b>2</b> - <v>13045</v> + <v>13059</v> </b> <b> <a>2</a> <b>3</b> - <v>7454</v> + <v>7462</v> </b> </bs> </hist> @@ -33447,12 +33569,12 @@ <b> <a>1</a> <b>2</b> - <v>13045</v> + <v>13059</v> </b> <b> <a>2</a> <b>3</b> - <v>7454</v> + <v>7462</v> </b> </bs> </hist> @@ -33468,7 +33590,7 @@ <b> <a>1</a> <b>2</b> - <v>20499</v> + <v>20522</v> </b> </bs> </hist> @@ -33484,7 +33606,7 @@ <b> <a>1</a> <b>2</b> - <v>20499</v> + <v>20522</v> </b> </bs> </hist> @@ -33500,12 +33622,12 @@ <b> <a>1</a> <b>2</b> - <v>13045</v> + <v>13059</v> </b> <b> <a>2</a> <b>3</b> - <v>7454</v> + <v>7462</v> </b> </bs> </hist> @@ -33521,12 +33643,12 @@ <b> <a>16</a> <b>17</b> - <v>465</v> + <v>466</v> </b> <b> <a>44</a> <b>45</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33542,12 +33664,12 @@ <b> <a>16</a> <b>17</b> - <v>465</v> + <v>466</v> </b> <b> <a>44</a> <b>45</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33563,12 +33685,12 @@ <b> <a>16</a> <b>17</b> - <v>465</v> + <v>466</v> </b> <b> <a>44</a> <b>45</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33584,7 +33706,7 @@ <b> <a>1</a> <b>2</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -33600,7 +33722,7 @@ <b> <a>1</a> <b>2</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -33616,12 +33738,12 @@ <b> <a>2</a> <b>3</b> - <v>465</v> + <v>466</v> </b> <b> <a>4</a> <b>5</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33637,7 +33759,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33653,7 +33775,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33669,7 +33791,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33685,7 +33807,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33701,7 +33823,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33717,7 +33839,7 @@ <b> <a>1</a> <b>2</b> - <v>27953</v> + <v>27985</v> </b> </bs> </hist> @@ -33733,7 +33855,7 @@ <b> <a>60</a> <b>61</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33749,7 +33871,7 @@ <b> <a>44</a> <b>45</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33765,7 +33887,7 @@ <b> <a>2</a> <b>3</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33781,7 +33903,7 @@ <b> <a>60</a> <b>61</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33797,7 +33919,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33813,7 +33935,7 @@ <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33829,7 +33951,7 @@ <b> <a>60</a> <b>61</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33845,7 +33967,7 @@ <b> <a>44</a> <b>45</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33861,7 +33983,7 @@ <b> <a>2</a> <b>3</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33877,7 +33999,7 @@ <b> <a>60</a> <b>61</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33893,7 +34015,7 @@ <b> <a>1</a> <b>2</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33909,7 +34031,7 @@ <b> <a>6</a> <b>7</b> - <v>465</v> + <v>466</v> </b> </bs> </hist> @@ -33925,12 +34047,12 @@ <b> <a>8</a> <b>9</b> - <v>1863</v> + <v>1865</v> </b> <b> <a>14</a> <b>15</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -33946,12 +34068,12 @@ <b> <a>8</a> <b>9</b> - <v>1863</v> + <v>1865</v> </b> <b> <a>14</a> <b>15</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -33967,7 +34089,7 @@ <b> <a>1</a> <b>2</b> - <v>2795</v> + <v>2798</v> </b> </bs> </hist> @@ -33983,12 +34105,12 @@ <b> <a>8</a> <b>9</b> - <v>1863</v> + <v>1865</v> </b> <b> <a>14</a> <b>15</b> - <v>931</v> + <v>932</v> </b> </bs> </hist> @@ -34004,7 +34126,7 @@ <b> <a>1</a> <b>2</b> - <v>2795</v> + <v>2798</v> </b> </bs> </hist> @@ -34020,7 +34142,7 @@ <b> <a>1</a> <b>2</b> - <v>2795</v> + <v>2798</v> </b> </bs> </hist> @@ -34146,19 +34268,19 @@ </relation> <relation> <name>stmts</name> - <cardinality>4648694</cardinality> + <cardinality>4619943</cardinality> <columnsizes> <e> <k>id</k> - <v>4648694</v> + <v>4619943</v> </e> <e> <k>kind</k> - <v>1981</v> + <v>1966</v> </e> <e> <k>location</k> - <v>2286749</v> + <v>2269598</v> </e> </columnsizes> <dependencies> @@ -34172,7 +34294,7 @@ <b> <a>1</a> <b>2</b> - <v>4648694</v> + <v>4619943</v> </b> </bs> </hist> @@ -34188,7 +34310,7 @@ <b> <a>1</a> <b>2</b> - <v>4648694</v> + <v>4619943</v> </b> </bs> </hist> @@ -34204,97 +34326,97 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>103</v> </b> <b> <a>18</a> <b>19</b> - <v>104</v> + <v>103</v> </b> <b> <a>22</a> <b>23</b> - <v>104</v> + <v>103</v> </b> <b> <a>46</a> <b>47</b> - <v>104</v> + <v>103</v> </b> <b> <a>75</a> <b>76</b> - <v>104</v> + <v>103</v> </b> <b> <a>83</a> <b>84</b> - <v>104</v> + <v>103</v> </b> <b> <a>102</a> <b>103</b> - <v>104</v> + <v>103</v> </b> <b> <a>154</a> <b>155</b> - <v>104</v> + <v>103</v> </b> <b> <a>242</a> <b>243</b> - <v>104</v> + <v>103</v> </b> <b> <a>284</a> <b>285</b> - <v>104</v> + <v>103</v> </b> <b> <a>383</a> <b>384</b> - <v>104</v> + <v>103</v> </b> <b> <a>418</a> <b>419</b> - <v>104</v> + <v>103</v> </b> <b> - <a>502</a> - <b>503</b> - <v>104</v> + <a>503</a> + <b>504</b> + <v>103</v> </b> <b> - <a>1325</a> - <b>1326</b> - <v>104</v> + <a>1326</a> + <b>1327</b> + <v>103</v> </b> <b> - <a>2630</a> - <b>2631</b> - <v>104</v> + <a>2635</a> + <b>2636</b> + <v>103</v> </b> <b> - <a>4613</a> - <b>4614</b> - <v>104</v> + <a>4621</a> + <b>4622</b> + <v>103</v> </b> <b> - <a>8794</a> - <b>8795</b> - <v>104</v> + <a>8803</a> + <b>8804</b> + <v>103</v> </b> <b> - <a>11560</a> - <b>11561</b> - <v>104</v> + <a>11577</a> + <b>11578</b> + <v>103</v> </b> <b> - <a>13321</a> - <b>13322</b> - <v>104</v> + <a>13335</a> + <b>13336</b> + <v>103</v> </b> </bs> </hist> @@ -34310,97 +34432,97 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>103</v> </b> <b> <a>8</a> <b>9</b> - <v>104</v> + <v>103</v> </b> <b> <a>18</a> <b>19</b> - <v>104</v> + <v>103</v> </b> <b> <a>45</a> <b>46</b> - <v>104</v> + <v>103</v> </b> <b> <a>50</a> <b>51</b> - <v>104</v> + <v>103</v> </b> <b> <a>56</a> <b>57</b> - <v>104</v> + <v>103</v> </b> <b> <a>74</a> <b>75</b> - <v>104</v> + <v>103</v> </b> <b> <a>89</a> <b>90</b> - <v>104</v> + <v>103</v> </b> <b> <a>101</a> <b>102</b> - <v>104</v> + <v>103</v> </b> <b> <a>128</a> <b>129</b> - <v>104</v> + <v>103</v> </b> <b> <a>209</a> <b>210</b> - <v>104</v> + <v>103</v> </b> <b> <a>252</a> <b>253</b> - <v>104</v> + <v>103</v> </b> <b> <a>368</a> <b>369</b> - <v>104</v> + <v>103</v> </b> <b> <a>642</a> <b>643</b> - <v>104</v> + <v>103</v> </b> <b> <a>1743</a> <b>1744</b> - <v>104</v> + <v>103</v> </b> <b> <a>2190</a> <b>2191</b> - <v>104</v> + <v>103</v> </b> <b> - <a>4229</a> - <b>4230</b> - <v>104</v> + <a>4228</a> + <b>4229</b> + <v>103</v> </b> <b> <a>6071</a> <b>6072</b> - <v>104</v> + <v>103</v> </b> <b> - <a>6568</a> - <b>6569</b> - <v>104</v> + <a>6567</a> + <b>6568</b> + <v>103</v> </b> </bs> </hist> @@ -34416,22 +34538,22 @@ <b> <a>1</a> <b>2</b> - <v>1893352</v> + <v>1879323</v> </b> <b> <a>2</a> <b>4</b> - <v>175318</v> + <v>174019</v> </b> <b> <a>4</a> <b>12</b> - <v>175631</v> + <v>174122</v> </b> <b> <a>12</a> <b>687</b> - <v>42447</v> + <v>42133</v> </b> </bs> </hist> @@ -34447,12 +34569,12 @@ <b> <a>1</a> <b>2</b> - <v>2229596</v> + <v>2212869</v> </b> <b> <a>2</a> <b>8</b> - <v>57153</v> + <v>56729</v> </b> </bs> </hist> @@ -34558,15 +34680,15 @@ </relation> <relation> <name>if_initialization</name> - <cardinality>312</cardinality> + <cardinality>310</cardinality> <columnsizes> <e> <k>if_stmt</k> - <v>312</v> + <v>310</v> </e> <e> <k>init_id</k> - <v>312</v> + <v>310</v> </e> </columnsizes> <dependencies> @@ -34580,7 +34702,7 @@ <b> <a>1</a> <b>2</b> - <v>312</v> + <v>310</v> </b> </bs> </hist> @@ -34596,7 +34718,7 @@ <b> <a>1</a> <b>2</b> - <v>312</v> + <v>310</v> </b> </bs> </hist> @@ -34606,15 +34728,15 @@ </relation> <relation> <name>if_then</name> - <cardinality>724849</cardinality> + <cardinality>725956</cardinality> <columnsizes> <e> <k>if_stmt</k> - <v>724849</v> + <v>725956</v> </e> <e> <k>then_id</k> - <v>724849</v> + <v>725956</v> </e> </columnsizes> <dependencies> @@ -34628,7 +34750,7 @@ <b> <a>1</a> <b>2</b> - <v>724849</v> + <v>725956</v> </b> </bs> </hist> @@ -34644,7 +34766,7 @@ <b> <a>1</a> <b>2</b> - <v>724849</v> + <v>725956</v> </b> </bs> </hist> @@ -34654,15 +34776,15 @@ </relation> <relation> <name>if_else</name> - <cardinality>184398</cardinality> + <cardinality>184680</cardinality> <columnsizes> <e> <k>if_stmt</k> - <v>184398</v> + <v>184680</v> </e> <e> <k>else_id</k> - <v>184398</v> + <v>184680</v> </e> </columnsizes> <dependencies> @@ -34676,7 +34798,7 @@ <b> <a>1</a> <b>2</b> - <v>184398</v> + <v>184680</v> </b> </bs> </hist> @@ -34692,7 +34814,7 @@ <b> <a>1</a> <b>2</b> - <v>184398</v> + <v>184680</v> </b> </bs> </hist> @@ -34750,15 +34872,15 @@ </relation> <relation> <name>constexpr_if_then</name> - <cardinality>52355</cardinality> + <cardinality>52071</cardinality> <columnsizes> <e> <k>constexpr_if_stmt</k> - <v>52355</v> + <v>52071</v> </e> <e> <k>then_id</k> - <v>52355</v> + <v>52071</v> </e> </columnsizes> <dependencies> @@ -34772,7 +34894,7 @@ <b> <a>1</a> <b>2</b> - <v>52355</v> + <v>52071</v> </b> </bs> </hist> @@ -34788,7 +34910,7 @@ <b> <a>1</a> <b>2</b> - <v>52355</v> + <v>52071</v> </b> </bs> </hist> @@ -34798,15 +34920,15 @@ </relation> <relation> <name>constexpr_if_else</name> - <cardinality>30766</cardinality> + <cardinality>30538</cardinality> <columnsizes> <e> <k>constexpr_if_stmt</k> - <v>30766</v> + <v>30538</v> </e> <e> <k>else_id</k> - <v>30766</v> + <v>30538</v> </e> </columnsizes> <dependencies> @@ -34820,7 +34942,7 @@ <b> <a>1</a> <b>2</b> - <v>30766</v> + <v>30538</v> </b> </bs> </hist> @@ -34836,7 +34958,7 @@ <b> <a>1</a> <b>2</b> - <v>30766</v> + <v>30538</v> </b> </bs> </hist> @@ -34846,15 +34968,15 @@ </relation> <relation> <name>while_body</name> - <cardinality>29345</cardinality> + <cardinality>29152</cardinality> <columnsizes> <e> <k>while_stmt</k> - <v>29345</v> + <v>29152</v> </e> <e> <k>body_id</k> - <v>29345</v> + <v>29152</v> </e> </columnsizes> <dependencies> @@ -34868,7 +34990,7 @@ <b> <a>1</a> <b>2</b> - <v>29345</v> + <v>29152</v> </b> </bs> </hist> @@ -34884,7 +35006,7 @@ <b> <a>1</a> <b>2</b> - <v>29345</v> + <v>29152</v> </b> </bs> </hist> @@ -34894,15 +35016,15 @@ </relation> <relation> <name>do_body</name> - <cardinality>148655</cardinality> + <cardinality>148882</cardinality> <columnsizes> <e> <k>do_stmt</k> - <v>148655</v> + <v>148882</v> </e> <e> <k>body_id</k> - <v>148655</v> + <v>148882</v> </e> </columnsizes> <dependencies> @@ -34916,7 +35038,7 @@ <b> <a>1</a> <b>2</b> - <v>148655</v> + <v>148882</v> </b> </bs> </hist> @@ -34932,7 +35054,7 @@ <b> <a>1</a> <b>2</b> - <v>148655</v> + <v>148882</v> </b> </bs> </hist> @@ -34942,15 +35064,15 @@ </relation> <relation> <name>switch_initialization</name> - <cardinality>4</cardinality> + <cardinality>5</cardinality> <columnsizes> <e> <k>switch_stmt</k> - <v>4</v> + <v>5</v> </e> <e> <k>init_id</k> - <v>4</v> + <v>5</v> </e> </columnsizes> <dependencies> @@ -34964,7 +35086,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -34980,7 +35102,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -34990,19 +35112,19 @@ </relation> <relation> <name>switch_case</name> - <cardinality>209046</cardinality> + <cardinality>201865</cardinality> <columnsizes> <e> <k>switch_stmt</k> - <v>11193</v> + <v>10809</v> </e> <e> <k>index</k> - <v>4856</v> + <v>4689</v> </e> <e> <k>case_id</k> - <v>209046</v> + <v>201865</v> </e> </columnsizes> <dependencies> @@ -35016,57 +35138,57 @@ <b> <a>2</a> <b>3</b> - <v>59</v> + <v>57</v> </b> <b> <a>3</a> <b>4</b> - <v>2487</v> + <v>2402</v> </b> <b> <a>4</a> <b>5</b> - <v>1816</v> + <v>1753</v> </b> <b> <a>5</a> <b>6</b> - <v>1085</v> + <v>1048</v> </b> <b> <a>6</a> <b>8</b> - <v>1026</v> + <v>991</v> </b> <b> <a>8</a> <b>9</b> - <v>552</v> + <v>533</v> </b> <b> <a>9</a> <b>10</b> - <v>1066</v> + <v>1029</v> </b> <b> <a>10</a> <b>12</b> - <v>1026</v> + <v>991</v> </b> <b> <a>12</a> <b>25</b> - <v>868</v> + <v>838</v> </b> <b> <a>30</a> <b>152</b> - <v>848</v> + <v>819</v> </b> <b> <a>181</a> <b>247</b> - <v>355</v> + <v>343</v> </b> </bs> </hist> @@ -35082,57 +35204,57 @@ <b> <a>2</a> <b>3</b> - <v>59</v> + <v>57</v> </b> <b> <a>3</a> <b>4</b> - <v>2487</v> + <v>2402</v> </b> <b> <a>4</a> <b>5</b> - <v>1816</v> + <v>1753</v> </b> <b> <a>5</a> <b>6</b> - <v>1085</v> + <v>1048</v> </b> <b> <a>6</a> <b>8</b> - <v>1026</v> + <v>991</v> </b> <b> <a>8</a> <b>9</b> - <v>552</v> + <v>533</v> </b> <b> <a>9</a> <b>10</b> - <v>1066</v> + <v>1029</v> </b> <b> <a>10</a> <b>12</b> - <v>1026</v> + <v>991</v> </b> <b> <a>12</a> <b>25</b> - <v>868</v> + <v>838</v> </b> <b> <a>30</a> <b>152</b> - <v>848</v> + <v>819</v> </b> <b> <a>181</a> <b>247</b> - <v>355</v> + <v>343</v> </b> </bs> </hist> @@ -35148,32 +35270,32 @@ <b> <a>14</a> <b>15</b> - <v>1283</v> + <v>1239</v> </b> <b> <a>18</a> <b>19</b> - <v>592</v> + <v>571</v> </b> <b> <a>32</a> <b>33</b> - <v>2092</v> + <v>2020</v> </b> <b> <a>33</a> <b>62</b> - <v>414</v> + <v>400</v> </b> <b> <a>66</a> <b>292</b> - <v>375</v> + <v>362</v> </b> <b> <a>346</a> <b>568</b> - <v>98</v> + <v>95</v> </b> </bs> </hist> @@ -35189,32 +35311,32 @@ <b> <a>14</a> <b>15</b> - <v>1283</v> + <v>1239</v> </b> <b> <a>18</a> <b>19</b> - <v>592</v> + <v>571</v> </b> <b> <a>32</a> <b>33</b> - <v>2092</v> + <v>2020</v> </b> <b> <a>33</a> <b>62</b> - <v>414</v> + <v>400</v> </b> <b> <a>66</a> <b>292</b> - <v>375</v> + <v>362</v> </b> <b> <a>346</a> <b>568</b> - <v>98</v> + <v>95</v> </b> </bs> </hist> @@ -35230,7 +35352,7 @@ <b> <a>1</a> <b>2</b> - <v>209046</v> + <v>201865</v> </b> </bs> </hist> @@ -35246,7 +35368,7 @@ <b> <a>1</a> <b>2</b> - <v>209046</v> + <v>201865</v> </b> </bs> </hist> @@ -35256,15 +35378,15 @@ </relation> <relation> <name>switch_body</name> - <cardinality>20756</cardinality> + <cardinality>20788</cardinality> <columnsizes> <e> <k>switch_stmt</k> - <v>20756</v> + <v>20788</v> </e> <e> <k>body_id</k> - <v>20756</v> + <v>20788</v> </e> </columnsizes> <dependencies> @@ -35278,7 +35400,7 @@ <b> <a>1</a> <b>2</b> - <v>20756</v> + <v>20788</v> </b> </bs> </hist> @@ -35294,7 +35416,7 @@ <b> <a>1</a> <b>2</b> - <v>20756</v> + <v>20788</v> </b> </bs> </hist> @@ -35304,15 +35426,15 @@ </relation> <relation> <name>for_initialization</name> - <cardinality>53325</cardinality> + <cardinality>53407</cardinality> <columnsizes> <e> <k>for_stmt</k> - <v>53325</v> + <v>53407</v> </e> <e> <k>init_id</k> - <v>53325</v> + <v>53407</v> </e> </columnsizes> <dependencies> @@ -35326,7 +35448,7 @@ <b> <a>1</a> <b>2</b> - <v>53325</v> + <v>53407</v> </b> </bs> </hist> @@ -35342,7 +35464,7 @@ <b> <a>1</a> <b>2</b> - <v>53325</v> + <v>53407</v> </b> </bs> </hist> @@ -35352,15 +35474,15 @@ </relation> <relation> <name>for_condition</name> - <cardinality>55586</cardinality> + <cardinality>55671</cardinality> <columnsizes> <e> <k>for_stmt</k> - <v>55586</v> + <v>55671</v> </e> <e> <k>condition_id</k> - <v>55586</v> + <v>55671</v> </e> </columnsizes> <dependencies> @@ -35374,7 +35496,7 @@ <b> <a>1</a> <b>2</b> - <v>55586</v> + <v>55671</v> </b> </bs> </hist> @@ -35390,7 +35512,7 @@ <b> <a>1</a> <b>2</b> - <v>55586</v> + <v>55671</v> </b> </bs> </hist> @@ -35400,15 +35522,15 @@ </relation> <relation> <name>for_update</name> - <cardinality>53428</cardinality> + <cardinality>53509</cardinality> <columnsizes> <e> <k>for_stmt</k> - <v>53428</v> + <v>53509</v> </e> <e> <k>update_id</k> - <v>53428</v> + <v>53509</v> </e> </columnsizes> <dependencies> @@ -35422,7 +35544,7 @@ <b> <a>1</a> <b>2</b> - <v>53428</v> + <v>53509</v> </b> </bs> </hist> @@ -35438,7 +35560,7 @@ <b> <a>1</a> <b>2</b> - <v>53428</v> + <v>53509</v> </b> </bs> </hist> @@ -35448,15 +35570,15 @@ </relation> <relation> <name>for_body</name> - <cardinality>61466</cardinality> + <cardinality>61560</cardinality> <columnsizes> <e> <k>for_stmt</k> - <v>61466</v> + <v>61560</v> </e> <e> <k>body_id</k> - <v>61466</v> + <v>61560</v> </e> </columnsizes> <dependencies> @@ -35470,7 +35592,7 @@ <b> <a>1</a> <b>2</b> - <v>61466</v> + <v>61560</v> </b> </bs> </hist> @@ -35486,7 +35608,7 @@ <b> <a>1</a> <b>2</b> - <v>61466</v> + <v>61560</v> </b> </bs> </hist> @@ -35496,11 +35618,11 @@ </relation> <relation> <name>stmtparents</name> - <cardinality>4054126</cardinality> + <cardinality>4054468</cardinality> <columnsizes> <e> <k>id</k> - <v>4054126</v> + <v>4054468</v> </e> <e> <k>index</k> @@ -35508,7 +35630,7 @@ </e> <e> <k>parent</k> - <v>1721123</v> + <v>1721248</v> </e> </columnsizes> <dependencies> @@ -35522,7 +35644,7 @@ <b> <a>1</a> <b>2</b> - <v>4054126</v> + <v>4054468</v> </b> </bs> </hist> @@ -35538,7 +35660,7 @@ <b> <a>1</a> <b>2</b> - <v>4054126</v> + <v>4054468</v> </b> </bs> </hist> @@ -35598,7 +35720,7 @@ </b> <b> <a>77</a> - <b>195121</b> + <b>195132</b> <v>704</v> </b> </bs> @@ -35659,7 +35781,7 @@ </b> <b> <a>77</a> - <b>195121</b> + <b>195132</b> <v>704</v> </b> </bs> @@ -35676,27 +35798,27 @@ <b> <a>1</a> <b>2</b> - <v>989099</v> + <v>989113</v> </b> <b> <a>2</a> <b>3</b> - <v>372496</v> + <v>372551</v> </b> <b> <a>3</a> <b>4</b> - <v>105695</v> + <v>105697</v> </b> <b> <a>4</a> <b>6</b> - <v>111192</v> + <v>111251</v> </b> <b> <a>6</a> <b>17</b> - <v>130356</v> + <v>130351</v> </b> <b> <a>17</a> @@ -35717,27 +35839,27 @@ <b> <a>1</a> <b>2</b> - <v>989099</v> + <v>989113</v> </b> <b> <a>2</a> <b>3</b> - <v>372496</v> + <v>372551</v> </b> <b> <a>3</a> <b>4</b> - <v>105695</v> + <v>105697</v> </b> <b> <a>4</a> <b>6</b> - <v>111192</v> + <v>111251</v> </b> <b> <a>6</a> <b>17</b> - <v>130356</v> + <v>130351</v> </b> <b> <a>17</a> @@ -35752,22 +35874,22 @@ </relation> <relation> <name>ishandler</name> - <cardinality>65128</cardinality> + <cardinality>62891</cardinality> <columnsizes> <e> <k>block</k> - <v>65128</v> + <v>62891</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>stmt_decl_bind</name> - <cardinality>581396</cardinality> + <cardinality>580807</cardinality> <columnsizes> <e> <k>stmt</k> - <v>541537</v> + <v>540988</v> </e> <e> <k>num</k> @@ -35775,7 +35897,7 @@ </e> <e> <k>decl</k> - <v>581292</v> + <v>580703</v> </e> </columnsizes> <dependencies> @@ -35789,12 +35911,12 @@ <b> <a>1</a> <b>2</b> - <v>520808</v> + <v>520281</v> </b> <b> <a>2</a> <b>19</b> - <v>20728</v> + <v>20707</v> </b> </bs> </hist> @@ -35810,12 +35932,12 @@ <b> <a>1</a> <b>2</b> - <v>520808</v> + <v>520281</v> </b> <b> <a>2</a> <b>19</b> - <v>20728</v> + <v>20707</v> </b> </bs> </hist> @@ -35904,8 +36026,8 @@ <v>4</v> </b> <b> - <a>129788</a> - <b>129789</b> + <a>129790</a> + <b>129791</b> <v>4</v> </b> </bs> @@ -35995,8 +36117,8 @@ <v>4</v> </b> <b> - <a>129763</a> - <b>129764</b> + <a>129765</a> + <b>129766</b> <v>4</v> </b> </bs> @@ -36013,7 +36135,7 @@ <b> <a>1</a> <b>2</b> - <v>581255</v> + <v>580665</v> </b> <b> <a>2</a> @@ -36034,7 +36156,7 @@ <b> <a>1</a> <b>2</b> - <v>581292</v> + <v>580703</v> </b> </bs> </hist> @@ -36044,11 +36166,11 @@ </relation> <relation> <name>stmt_decl_entry_bind</name> - <cardinality>524221</cardinality> + <cardinality>523682</cardinality> <columnsizes> <e> <k>stmt</k> - <v>484662</v> + <v>484163</v> </e> <e> <k>num</k> @@ -36056,7 +36178,7 @@ </e> <e> <k>decl_entry</k> - <v>524163</v> + <v>523624</v> </e> </columnsizes> <dependencies> @@ -36070,12 +36192,12 @@ <b> <a>1</a> <b>2</b> - <v>464196</v> + <v>463719</v> </b> <b> <a>2</a> <b>19</b> - <v>20465</v> + <v>20444</v> </b> </bs> </hist> @@ -36091,12 +36213,12 @@ <b> <a>1</a> <b>2</b> - <v>464196</v> + <v>463719</v> </b> <b> <a>2</a> <b>19</b> - <v>20465</v> + <v>20444</v> </b> </bs> </hist> @@ -36294,7 +36416,7 @@ <b> <a>1</a> <b>2</b> - <v>524142</v> + <v>523603</v> </b> <b> <a>3</a> @@ -36315,7 +36437,7 @@ <b> <a>1</a> <b>2</b> - <v>524163</v> + <v>523624</v> </b> </bs> </hist> @@ -36325,15 +36447,15 @@ </relation> <relation> <name>blockscope</name> - <cardinality>1413997</cardinality> + <cardinality>1415581</cardinality> <columnsizes> <e> <k>block</k> - <v>1413997</v> + <v>1415581</v> </e> <e> <k>enclosing</k> - <v>1298920</v> + <v>1300376</v> </e> </columnsizes> <dependencies> @@ -36347,7 +36469,7 @@ <b> <a>1</a> <b>2</b> - <v>1413997</v> + <v>1415581</v> </b> </bs> </hist> @@ -36363,12 +36485,12 @@ <b> <a>1</a> <b>2</b> - <v>1233695</v> + <v>1235077</v> </b> <b> <a>2</a> <b>13</b> - <v>65225</v> + <v>65298</v> </b> </bs> </hist> @@ -36378,19 +36500,19 @@ </relation> <relation> <name>jumpinfo</name> - <cardinality>254083</cardinality> + <cardinality>254471</cardinality> <columnsizes> <e> <k>id</k> - <v>254083</v> + <v>254471</v> </e> <e> <k>str</k> - <v>21159</v> + <v>21192</v> </e> <e> <k>target</k> - <v>53064</v> + <v>53145</v> </e> </columnsizes> <dependencies> @@ -36404,7 +36526,7 @@ <b> <a>1</a> <b>2</b> - <v>254083</v> + <v>254471</v> </b> </bs> </hist> @@ -36420,7 +36542,7 @@ <b> <a>1</a> <b>2</b> - <v>254083</v> + <v>254471</v> </b> </bs> </hist> @@ -36436,37 +36558,37 @@ <b> <a>2</a> <b>3</b> - <v>9879</v> + <v>9894</v> </b> <b> <a>3</a> <b>4</b> - <v>4247</v> + <v>4254</v> </b> <b> <a>4</a> <b>5</b> - <v>1566</v> + <v>1568</v> </b> <b> <a>5</a> <b>6</b> - <v>1340</v> + <v>1342</v> </b> <b> <a>6</a> <b>10</b> - <v>1700</v> + <v>1702</v> </b> <b> <a>10</a> <b>22</b> - <v>1621</v> + <v>1623</v> </b> <b> <a>22</a> <b>13723</b> - <v>804</v> + <v>805</v> </b> </bs> </hist> @@ -36482,17 +36604,17 @@ <b> <a>1</a> <b>2</b> - <v>16723</v> + <v>16748</v> </b> <b> <a>2</a> <b>3</b> - <v>2632</v> + <v>2636</v> </b> <b> <a>3</a> <b>10</b> - <v>1688</v> + <v>1690</v> </b> <b> <a>10</a> @@ -36518,27 +36640,27 @@ <b> <a>2</a> <b>3</b> - <v>26437</v> + <v>26478</v> </b> <b> <a>3</a> <b>4</b> - <v>12901</v> + <v>12921</v> </b> <b> <a>4</a> <b>5</b> - <v>5344</v> + <v>5352</v> </b> <b> <a>5</a> <b>8</b> - <v>4692</v> + <v>4699</v> </b> <b> <a>8</a> <b>2124</b> - <v>3662</v> + <v>3668</v> </b> </bs> </hist> @@ -36554,7 +36676,7 @@ <b> <a>1</a> <b>2</b> - <v>53064</v> + <v>53145</v> </b> </bs> </hist> @@ -36564,19 +36686,19 @@ </relation> <relation> <name>preprocdirects</name> - <cardinality>4421959</cardinality> + <cardinality>4389195</cardinality> <columnsizes> <e> <k>id</k> - <v>4421959</v> + <v>4389195</v> </e> <e> <k>kind</k> - <v>1147</v> + <v>1138</v> </e> <e> <k>location</k> - <v>4419352</v> + <v>4386607</v> </e> </columnsizes> <dependencies> @@ -36590,7 +36712,7 @@ <b> <a>1</a> <b>2</b> - <v>4421959</v> + <v>4389195</v> </b> </bs> </hist> @@ -36606,7 +36728,7 @@ <b> <a>1</a> <b>2</b> - <v>4421959</v> + <v>4389195</v> </b> </bs> </hist> @@ -36622,57 +36744,57 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>103</v> </b> <b> <a>122</a> <b>123</b> - <v>104</v> + <v>103</v> </b> <b> <a>694</a> <b>695</b> - <v>104</v> + <v>103</v> </b> <b> <a>799</a> <b>800</b> - <v>104</v> + <v>103</v> </b> <b> <a>932</a> <b>933</b> - <v>104</v> + <v>103</v> </b> <b> <a>1689</a> <b>1690</b> - <v>104</v> + <v>103</v> </b> <b> <a>1792</a> <b>1793</b> - <v>104</v> + <v>103</v> </b> <b> <a>3012</a> <b>3013</b> - <v>104</v> + <v>103</v> </b> <b> <a>3802</a> <b>3803</b> - <v>104</v> + <v>103</v> </b> <b> <a>6290</a> <b>6291</b> - <v>104</v> + <v>103</v> </b> <b> <a>23266</a> <b>23267</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -36688,57 +36810,57 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>103</v> </b> <b> <a>122</a> <b>123</b> - <v>104</v> + <v>103</v> </b> <b> <a>694</a> <b>695</b> - <v>104</v> + <v>103</v> </b> <b> <a>799</a> <b>800</b> - <v>104</v> + <v>103</v> </b> <b> <a>932</a> <b>933</b> - <v>104</v> + <v>103</v> </b> <b> <a>1689</a> <b>1690</b> - <v>104</v> + <v>103</v> </b> <b> <a>1792</a> <b>1793</b> - <v>104</v> + <v>103</v> </b> <b> <a>3012</a> <b>3013</b> - <v>104</v> + <v>103</v> </b> <b> <a>3802</a> <b>3803</b> - <v>104</v> + <v>103</v> </b> <b> <a>6290</a> <b>6291</b> - <v>104</v> + <v>103</v> </b> <b> <a>23241</a> <b>23242</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -36754,12 +36876,12 @@ <b> <a>1</a> <b>2</b> - <v>4419247</v> + <v>4386503</v> </b> <b> <a>26</a> <b>27</b> - <v>104</v> + <v>103</v> </b> </bs> </hist> @@ -36775,7 +36897,7 @@ <b> <a>1</a> <b>2</b> - <v>4419352</v> + <v>4386607</v> </b> </bs> </hist> @@ -36785,15 +36907,15 @@ </relation> <relation> <name>preprocpair</name> - <cardinality>1428440</cardinality> + <cardinality>1430040</cardinality> <columnsizes> <e> <k>begin</k> - <v>1194559</v> + <v>1195898</v> </e> <e> <k>elseelifend</k> - <v>1428440</v> + <v>1430040</v> </e> </columnsizes> <dependencies> @@ -36807,17 +36929,17 @@ <b> <a>1</a> <b>2</b> - <v>976520</v> + <v>977614</v> </b> <b> <a>2</a> <b>3</b> - <v>207790</v> + <v>208022</v> </b> <b> <a>3</a> <b>11</b> - <v>10249</v> + <v>10261</v> </b> </bs> </hist> @@ -36833,7 +36955,7 @@ <b> <a>1</a> <b>2</b> - <v>1428440</v> + <v>1430040</v> </b> </bs> </hist> @@ -36843,41 +36965,41 @@ </relation> <relation> <name>preproctrue</name> - <cardinality>765468</cardinality> + <cardinality>766326</cardinality> <columnsizes> <e> <k>branch</k> - <v>765468</v> + <v>766326</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>preprocfalse</name> - <cardinality>330786</cardinality> + <cardinality>331157</cardinality> <columnsizes> <e> <k>branch</k> - <v>330786</v> + <v>331157</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>preproctext</name> - <cardinality>3565497</cardinality> + <cardinality>3539079</cardinality> <columnsizes> <e> <k>id</k> - <v>3565497</v> + <v>3539079</v> </e> <e> <k>head</k> - <v>2583987</v> + <v>2564841</v> </e> <e> <k>body</k> - <v>1510176</v> + <v>1498986</v> </e> </columnsizes> <dependencies> @@ -36891,7 +37013,7 @@ <b> <a>1</a> <b>2</b> - <v>3565497</v> + <v>3539079</v> </b> </bs> </hist> @@ -36907,7 +37029,7 @@ <b> <a>1</a> <b>2</b> - <v>3565497</v> + <v>3539079</v> </b> </bs> </hist> @@ -36923,12 +37045,12 @@ <b> <a>1</a> <b>2</b> - <v>2437036</v> + <v>2418979</v> </b> <b> <a>2</a> <b>740</b> - <v>146950</v> + <v>145861</v> </b> </bs> </hist> @@ -36944,12 +37066,12 @@ <b> <a>1</a> <b>2</b> - <v>2521827</v> + <v>2503142</v> </b> <b> <a>2</a> <b>5</b> - <v>62159</v> + <v>61698</v> </b> </bs> </hist> @@ -36965,17 +37087,17 @@ <b> <a>1</a> <b>2</b> - <v>1367085</v> + <v>1356955</v> </b> <b> <a>2</a> <b>6</b> - <v>113263</v> + <v>112424</v> </b> <b> <a>6</a> <b>11630</b> - <v>29828</v> + <v>29607</v> </b> </bs> </hist> @@ -36991,17 +37113,17 @@ <b> <a>1</a> <b>2</b> - <v>1370109</v> + <v>1359957</v> </b> <b> <a>2</a> <b>7</b> - <v>113576</v> + <v>112734</v> </b> <b> <a>7</a> <b>2980</b> - <v>26490</v> + <v>26294</v> </b> </bs> </hist> @@ -37011,15 +37133,15 @@ </relation> <relation> <name>includes</name> - <cardinality>312616</cardinality> + <cardinality>312967</cardinality> <columnsizes> <e> <k>id</k> - <v>312616</v> + <v>312967</v> </e> <e> <k>included</k> - <v>116940</v> + <v>117071</v> </e> </columnsizes> <dependencies> @@ -37033,7 +37155,7 @@ <b> <a>1</a> <b>2</b> - <v>312616</v> + <v>312967</v> </b> </bs> </hist> @@ -37049,32 +37171,32 @@ <b> <a>1</a> <b>2</b> - <v>61032</v> + <v>61100</v> </b> <b> <a>2</a> <b>3</b> - <v>21897</v> + <v>21921</v> </b> <b> <a>3</a> <b>4</b> - <v>12579</v> + <v>12593</v> </b> <b> <a>4</a> <b>6</b> - <v>10249</v> + <v>10261</v> </b> <b> <a>6</a> <b>14</b> - <v>8852</v> + <v>8861</v> </b> <b> <a>14</a> <b>47</b> - <v>2329</v> + <v>2332</v> </b> </bs> </hist> @@ -37084,15 +37206,15 @@ </relation> <relation> <name>link_targets</name> - <cardinality>848</cardinality> + <cardinality>819</cardinality> <columnsizes> <e> <k>id</k> - <v>848</v> + <v>819</v> </e> <e> <k>binary</k> - <v>848</v> + <v>819</v> </e> </columnsizes> <dependencies> @@ -37106,7 +37228,7 @@ <b> <a>1</a> <b>2</b> - <v>848</v> + <v>819</v> </b> </bs> </hist> @@ -37122,7 +37244,7 @@ <b> <a>1</a> <b>2</b> - <v>848</v> + <v>819</v> </b> </bs> </hist> @@ -37132,15 +37254,15 @@ </relation> <relation> <name>link_parent</name> - <cardinality>39286447</cardinality> + <cardinality>38877182</cardinality> <columnsizes> <e> <k>element</k> - <v>4979610</v> + <v>4927618</v> </e> <e> <k>link_target</k> - <v>351</v> + <v>347</v> </e> </columnsizes> <dependencies> @@ -37154,17 +37276,17 @@ <b> <a>1</a> <b>2</b> - <v>671377</v> + <v>664255</v> </b> <b> <a>2</a> <b>9</b> - <v>26129</v> + <v>25852</v> </b> <b> <a>9</a> <b>10</b> - <v>4282103</v> + <v>4237510</v> </b> </bs> </hist> @@ -37180,52 +37302,52 @@ <b> <a>3</a> <b>4</b> - <v>35</v> + <v>34</v> </b> <b> - <a>121946</a> - <b>121947</b> - <v>35</v> + <a>121970</a> + <b>121971</b> + <v>34</v> </b> <b> - <a>122058</a> - <b>122059</b> - <v>35</v> + <a>122082</a> + <b>122083</b> + <v>34</v> </b> <b> - <a>122157</a> - <b>122158</b> - <v>35</v> + <a>122181</a> + <b>122182</b> + <v>34</v> </b> <b> - <a>122188</a> - <b>122189</b> - <v>35</v> + <a>122212</a> + <b>122213</b> + <v>34</v> </b> <b> - <a>122200</a> - <b>122201</b> - <v>35</v> + <a>122224</a> + <b>122225</b> + <v>34</v> </b> <b> - <a>122217</a> - <b>122218</b> - <v>35</v> + <a>122241</a> + <b>122242</b> + <v>34</v> </b> <b> - <a>124217</a> - <b>124218</b> - <v>35</v> + <a>124241</a> + <b>124242</b> + <v>34</v> </b> <b> - <a>128871</a> - <b>128872</b> - <v>35</v> + <a>128895</a> + <b>128896</b> + <v>34</v> </b> <b> - <a>131275</a> - <b>131276</b> - <v>35</v> + <a>131299</a> + <b>131300</b> + <v>34</v> </b> </bs> </hist> diff --git a/cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/old.dbscheme b/cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/old.dbscheme new file mode 100644 index 00000000000..298438feb14 --- /dev/null +++ b/cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/old.dbscheme @@ -0,0 +1,2244 @@ + +/** + * 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 +); + +/* + 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 +; + +@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 + ; + +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/298438feb146335af824002589cd6d4e96e5dbf9/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..aa7ff0ab32c --- /dev/null +++ b/cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/semmlecode.cpp.dbscheme @@ -0,0 +1,2250 @@ + +/** + * 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 +) + +/* + 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 +; + +@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 + ; + +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/298438feb146335af824002589cd6d4e96e5dbf9/upgrade.properties b/cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/upgrade.properties new file mode 100644 index 00000000000..f300f2c1771 --- /dev/null +++ b/cpp/ql/lib/upgrades/298438feb146335af824002589cd6d4e96e5dbf9/upgrade.properties @@ -0,0 +1,2 @@ +description: Introduce re-use expressions +compatibility: backwards From 560b355e0c2496929a0f26bbf5cdeb4b95cb7452 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Wed, 13 Mar 2024 14:26:30 +0100 Subject: [PATCH 117/309] C#: Remove hard-coded local sources from the uncontrolled-format-string query. --- .../src/Security Features/CWE-134/UncontrolledFormatString.ql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/csharp/ql/src/Security Features/CWE-134/UncontrolledFormatString.ql b/csharp/ql/src/Security Features/CWE-134/UncontrolledFormatString.ql index 657fdd0e183..7eec0bb90c6 100644 --- a/csharp/ql/src/Security Features/CWE-134/UncontrolledFormatString.ql +++ b/csharp/ql/src/Security Features/CWE-134/UncontrolledFormatString.ql @@ -17,9 +17,7 @@ import semmle.code.csharp.frameworks.Format import FormatString::PathGraph module FormatStringConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - source instanceof ThreatModelFlowSource or source instanceof LocalFlowSource - } + predicate isSource(DataFlow::Node source) { source instanceof ThreatModelFlowSource } predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(FormatCall call | call.hasInsertions()).getFormatExpr() From e4a4c1816632a2dc1e5b99054076470d90b48464 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Mon, 11 Mar 2024 09:21:33 +0100 Subject: [PATCH 118/309] Go: Implement new data flow interface --- go/ql/lib/semmle/go/DiagnosticsReporting.qll | 3 +- go/ql/lib/semmle/go/Files.qll | 2 - go/ql/lib/semmle/go/HTML.qll | 8 - go/ql/lib/semmle/go/Locations.qll | 21 ++- go/ql/lib/semmle/go/dataflow/DataFlow.qll | 2 +- .../lib/semmle/go/dataflow/TaintTracking.qll | 3 +- .../go/dataflow/internal/DataFlowImpl.qll | 3 +- .../dataflow/internal/DataFlowImplCommon.qll | 3 +- .../internal/DataFlowImplConsistency.qll | 5 +- .../internal/DataFlowImplSpecific.qll | 3 +- .../go/dataflow/internal/DataFlowNodes.qll | 8 + .../go/dataflow/internal/DataFlowPrivate.qll | 2 - .../go/dataflow/internal/FlowSummaryImpl.qll | 8 +- .../internal/TaintTrackingImplSpecific.qll | 3 +- go/ql/lib/semmle/go/internal/Locations.qll | 143 ++++++++++++++++++ .../Security/CWE-338/InsecureRandomness.ql | 2 +- go/ql/test/TestUtilities/InlineFlowTest.qll | 4 +- .../internal/InlineExpectationsTestImpl.qll | 7 +- .../diagnostics/Diagnostics.ql | 8 +- 19 files changed, 200 insertions(+), 38 deletions(-) create mode 100644 go/ql/lib/semmle/go/internal/Locations.qll diff --git a/go/ql/lib/semmle/go/DiagnosticsReporting.qll b/go/ql/lib/semmle/go/DiagnosticsReporting.qll index 653e3ad7c5e..e05fe0e7a58 100644 --- a/go/ql/lib/semmle/go/DiagnosticsReporting.qll +++ b/go/ql/lib/semmle/go/DiagnosticsReporting.qll @@ -1,6 +1,7 @@ /** Provides classes for working with errors and warnings recorded during extraction. */ import go +private import semmle.go.internal.Locations /** Gets the SARIF severity level that indicates an error. */ private int getErrorSeverity() { result = 2 } @@ -29,7 +30,7 @@ private class Diagnostic extends @diagnostic { * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ predicate hasLocationInfo(string path, int sl, int sc, int el, int ec) { - exists(Location l | diagnostics(this, _, _, _, _, l) | l.hasLocationInfo(path, sl, sc, el, ec)) + getDiagnosticLocation(this).hasLocationInfo(path, sl, sc, el, ec) } string toString() { result = this.getMessage() } diff --git a/go/ql/lib/semmle/go/Files.qll b/go/ql/lib/semmle/go/Files.qll index 87e3fd3169d..cda168482ca 100644 --- a/go/ql/lib/semmle/go/Files.qll +++ b/go/ql/lib/semmle/go/Files.qll @@ -50,8 +50,6 @@ class Folder extends Container, Impl::Folder { class ExtractedOrExternalFile extends Container, Impl::File, Documentable, ExprParent, GoModExprParent, DeclParent, ScopeNode { - override Location getLocation() { has_location(this, result) } - /** Gets the number of lines in this file. */ int getNumberOfLines() { numlines(this, result, _, _) } diff --git a/go/ql/lib/semmle/go/HTML.qll b/go/ql/lib/semmle/go/HTML.qll index c68155fd01c..2f0e411a88d 100644 --- a/go/ql/lib/semmle/go/HTML.qll +++ b/go/ql/lib/semmle/go/HTML.qll @@ -15,8 +15,6 @@ module HTML { class Element extends Locatable, @xmlelement { Element() { exists(HtmlFile f | xmlElements(this, _, _, _, f)) } - override Location getLocation() { xmllocations(this, result) } - /** * Gets the name of this HTML element. * @@ -97,8 +95,6 @@ module HTML { class Attribute extends Locatable, @xmlattribute { Attribute() { xmlAttrs(this, _, _, _, _, any(HtmlFile f)) } - override Location getLocation() { xmllocations(this, result) } - /** * Gets the element to which this attribute belongs. */ @@ -180,8 +176,6 @@ module HTML { * Holds if this text node is inside a `CDATA` tag. */ predicate isCData() { xmlChars(this, _, _, _, 1, _) } - - override Location getLocation() { xmllocations(this, result) } } /** @@ -203,7 +197,5 @@ module HTML { string getText() { result = this.toString().regexpCapture("(?s)<!--(.*)-->", 1) } override string toString() { xmlComments(this, result, _, _) } - - override Location getLocation() { xmllocations(this, result) } } } diff --git a/go/ql/lib/semmle/go/Locations.qll b/go/ql/lib/semmle/go/Locations.qll index acd5f94430b..d5ab0858f21 100644 --- a/go/ql/lib/semmle/go/Locations.qll +++ b/go/ql/lib/semmle/go/Locations.qll @@ -1,28 +1,31 @@ /** Provides classes for working with locations and program elements that have locations. */ import go +private import internal.Locations /** * A location as given by a file, a start line, a start column, * an end line, and an end column. * + * This class is restricted to locations created by the extractor. + * * For more information about locations see [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ -class Location extends @location { +class DbLocation extends TDbLocation { /** Gets the file for this location. */ - File getFile() { locations_default(this, result, _, _, _, _) } + File getFile() { dbLocationInfo(this, result, _, _, _, _) } /** Gets the 1-based line number (inclusive) where this location starts. */ - int getStartLine() { locations_default(this, _, result, _, _, _) } + int getStartLine() { dbLocationInfo(this, _, result, _, _, _) } /** Gets the 1-based column number (inclusive) where this location starts. */ - int getStartColumn() { locations_default(this, _, _, result, _, _) } + int getStartColumn() { dbLocationInfo(this, _, _, result, _, _) } /** Gets the 1-based line number (inclusive) where this location ends. */ - int getEndLine() { locations_default(this, _, _, _, result, _) } + int getEndLine() { dbLocationInfo(this, _, _, _, result, _) } /** Gets the 1-based column number (inclusive) where this location ends. */ - int getEndColumn() { locations_default(this, _, _, _, _, result) } + int getEndColumn() { dbLocationInfo(this, _, _, _, _, result) } /** Gets the number of lines covered by this location. */ int getNumLines() { result = this.getEndLine() - this.getStartLine() + 1 } @@ -46,19 +49,21 @@ class Location extends @location { string filepath, int startline, int startcolumn, int endline, int endcolumn ) { exists(File f | - locations_default(this, f, startline, startcolumn, endline, endcolumn) and + dbLocationInfo(this, f, startline, startcolumn, endline, endcolumn) and filepath = f.getAbsolutePath() ) } } +final class Location = LocationImpl; + /** A program element with a location. */ class Locatable extends @locatable { /** Gets the file this program element comes from. */ File getFile() { result = this.getLocation().getFile() } /** Gets this element's location. */ - Location getLocation() { has_location(this, result) } + final DbLocation getLocation() { result = getLocatableLocation(this) } /** Gets the number of lines covered by this element. */ int getNumLines() { result = this.getLocation().getNumLines() } diff --git a/go/ql/lib/semmle/go/dataflow/DataFlow.qll b/go/ql/lib/semmle/go/dataflow/DataFlow.qll index 4a5290255a4..9363bc93abd 100644 --- a/go/ql/lib/semmle/go/dataflow/DataFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/DataFlow.qll @@ -24,7 +24,7 @@ import go module DataFlow { private import semmle.go.dataflow.internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake<GoDataFlow> + import DataFlowMake<Location, GoDataFlow> import semmle.go.dataflow.internal.DataFlowImpl1 import Properties } diff --git a/go/ql/lib/semmle/go/dataflow/TaintTracking.qll b/go/ql/lib/semmle/go/dataflow/TaintTracking.qll index 2c028a0e34a..d762e925ab5 100644 --- a/go/ql/lib/semmle/go/dataflow/TaintTracking.qll +++ b/go/ql/lib/semmle/go/dataflow/TaintTracking.qll @@ -13,7 +13,8 @@ module TaintTracking { import semmle.go.dataflow.internal.tainttracking1.TaintTrackingParameter::Public private import semmle.go.dataflow.internal.DataFlowImplSpecific private import semmle.go.dataflow.internal.TaintTrackingImplSpecific + private import semmle.go.Locations private import codeql.dataflow.TaintTracking - import TaintFlowMake<GoDataFlow, GoTaintTracking> + import TaintFlowMake<Location, GoDataFlow, GoTaintTracking> import semmle.go.dataflow.internal.tainttracking1.TaintTrackingImpl } diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll index b95eab3eb01..c9761d21702 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll @@ -1,3 +1,4 @@ private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl -import MakeImpl<GoDataFlow> +private import semmle.go.Locations +import MakeImpl<Location, GoDataFlow> diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll index 8f8f7b0a36c..6df86bde023 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll @@ -1,3 +1,4 @@ private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImplCommon -import MakeImplCommon<GoDataFlow> +private import semmle.go.Locations +import MakeImplCommon<Location, GoDataFlow> diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll index 6397b79716b..58b84985841 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplConsistency.qll @@ -7,7 +7,8 @@ private import go private import DataFlowImplSpecific private import TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency +private import semmle.go.dataflow.internal.DataFlowNodes -private module Input implements InputSig<GoDataFlow> { } +private module Input implements InputSig<Location, GoDataFlow> { } -module Consistency = MakeConsistency<GoDataFlow, GoTaintTracking, Input>; +module Consistency = MakeConsistency<Location, GoDataFlow, GoTaintTracking, Input>; diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll index 555b09660e8..c680778ce4d 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImplSpecific.qll @@ -3,6 +3,7 @@ */ private import codeql.dataflow.DataFlow +private import semmle.go.Locations module Private { import DataFlowPrivate @@ -13,7 +14,7 @@ module Public { import DataFlowUtil } -module GoDataFlow implements InputSig { +module GoDataFlow implements InputSig<Location> { import Private import Public diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll index 9034e454278..6b230bc728f 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll @@ -157,6 +157,14 @@ module Public { endcolumn = 0 } + /** Gets the location of this node. */ + Location getLocation() { + exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | + this.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + result.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + ) + } + /** Gets the file in which this node appears. */ File getFile() { this.hasLocationInfo(result.getAbsolutePath(), _, _, _, _) } diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index e17f4cd9cd2..f750214010f 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -251,8 +251,6 @@ class DataFlowType extends TDataFlowType { string toString() { result = "" } } -class DataFlowLocation = Location; - private newtype TDataFlowCallable = TCallable(Callable c) or TFileScope(File f) or diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index cbf33afff25..fb09daa48ff 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -15,7 +15,7 @@ private module FlowSummaries { private import semmle.go.dataflow.FlowSummary as F } -module Input implements InputSig<DataFlowImplSpecific::GoDataFlow> { +module Input implements InputSig<Location, DataFlowImplSpecific::GoDataFlow> { class SummarizedCallableBase = Callable; ArgumentPosition callbackSelfParameterPosition() { result = -1 } @@ -83,7 +83,7 @@ module Input implements InputSig<DataFlowImplSpecific::GoDataFlow> { } } -private import Make<DataFlowImplSpecific::GoDataFlow, Input> as Impl +private import Make<Location, DataFlowImplSpecific::GoDataFlow, Input> as Impl private module StepsInput implements Impl::Private::StepsInputSig { DataFlowCall getACall(Public::SummarizedCallable sc) { @@ -95,7 +95,7 @@ private module StepsInput implements Impl::Private::StepsInputSig { } module SourceSinkInterpretationInput implements - Impl::Private::External::SourceSinkInterpretationInputSig<Location> + Impl::Private::External::SourceSinkInterpretationInputSig { class Element = SourceOrSinkElement; @@ -264,7 +264,7 @@ module Private { module External { import Impl::Private::External - import Impl::Private::External::SourceSinkInterpretation<Location, SourceSinkInterpretationInput> + import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput> } /** diff --git a/go/ql/lib/semmle/go/dataflow/internal/TaintTrackingImplSpecific.qll b/go/ql/lib/semmle/go/dataflow/internal/TaintTrackingImplSpecific.qll index f52499df232..b9795bb14d3 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/TaintTrackingImplSpecific.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/TaintTrackingImplSpecific.qll @@ -4,7 +4,8 @@ private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific +private import semmle.go.Locations -module GoTaintTracking implements InputSig<GoDataFlow> { +module GoTaintTracking implements InputSig<Location, GoDataFlow> { import TaintTrackingUtil } diff --git a/go/ql/lib/semmle/go/internal/Locations.qll b/go/ql/lib/semmle/go/internal/Locations.qll new file mode 100644 index 00000000000..498ac9d1170 --- /dev/null +++ b/go/ql/lib/semmle/go/internal/Locations.qll @@ -0,0 +1,143 @@ +/** Provides classes for working with locations and program elements that have locations. */ + +import go + +// Should _not_ be cached, as that would require the data flow stage to be evaluated +// in order to evaluate the AST stage. Ideally, we would cache each injector separately, +// but that's not possible. Instead, we cache all predicates that need the injectors +// to be tuple numbered. +newtype TLocation = + TDbLocation(@location loc) or + TSynthLocation(string filepath, int startline, int startcolumn, int endline, int endcolumn) { + any(DataFlow::Node n).hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + // avoid overlap with existing DB locations + not exists(File f | + locations_default(_, f, startline, startcolumn, endline, endcolumn) and + f.getAbsolutePath() = filepath + ) + } + +/** + * A location as given by a file, a start line, a start column, + * an end line, and an end column. + * + * For more information about locations see [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +abstract class LocationImpl extends TLocation { + /** Gets the file for this location. */ + abstract File getFile(); + + /** Gets the 1-based line number (inclusive) where this location starts. */ + abstract int getStartLine(); + + /** Gets the 1-based column number (inclusive) where this location starts. */ + abstract int getStartColumn(); + + /** Gets the 1-based line number (inclusive) where this location ends. */ + abstract int getEndLine(); + + /** Gets the 1-based column number (inclusive) where this location ends. */ + abstract int getEndColumn(); + + /** Gets the number of lines covered by this location. */ + int getNumLines() { result = this.getEndLine() - this.getStartLine() + 1 } + + /** Gets a textual representation of this element. */ + string toString() { + exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | + this.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + result = filepath + "@" + startline + ":" + startcolumn + ":" + endline + ":" + endcolumn + ) + } + + /** + * Holds if this element is at the specified location. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `filepath`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ + abstract predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ); +} + +class DbLocationImpl extends LocationImpl instanceof DbLocation { + private @location loc; + + DbLocationImpl() { this = TDbLocation(loc) } + + override File getFile() { result = DbLocation.super.getFile() } + + override int getStartLine() { result = DbLocation.super.getStartLine() } + + override int getStartColumn() { result = DbLocation.super.getStartColumn() } + + override int getEndLine() { result = DbLocation.super.getEndLine() } + + override int getEndColumn() { result = DbLocation.super.getEndColumn() } + + override predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + DbLocation.super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + } +} + +class SynthLocationImpl extends LocationImpl, TSynthLocation { + override File getFile() { synthLocationInfo(this, result.getAbsolutePath(), _, _, _, _) } + + override int getStartLine() { synthLocationInfo(this, _, result, _, _, _) } + + override int getStartColumn() { synthLocationInfo(this, _, _, result, _, _) } + + override int getEndLine() { synthLocationInfo(this, _, _, _, result, _) } + + override int getEndColumn() { synthLocationInfo(this, _, _, _, _, result) } + + override predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + synthLocationInfo(this, filepath, startline, startcolumn, endline, endcolumn) + } +} + +cached +private module Cached { + cached + DbLocation getLocatableLocation(@locatable l) { + exists(@location loc | + has_location(l, loc) or + xmllocations(l, loc) + | + result = TDbLocation(loc) + ) + } + + cached + DbLocation getDiagnosticLocation(@diagnostic d) { + exists(@location loc | + diagnostics(d, _, _, _, _, loc) and + result = TDbLocation(loc) + ) + } + + cached + predicate dbLocationInfo( + DbLocation l, File f, int startline, int startcolumn, int endline, int endcolumn + ) { + exists(@location loc | + l = TDbLocation(loc) and + locations_default(loc, f, startline, startcolumn, endline, endcolumn) + ) + } +} + +import Cached + +cached +private predicate synthLocationInfo( + SynthLocationImpl l, string filepath, int startline, int startcolumn, int endline, int endcolumn +) { + l = TSynthLocation(filepath, startline, startcolumn, endline, endcolumn) +} diff --git a/go/ql/src/Security/CWE-338/InsecureRandomness.ql b/go/ql/src/Security/CWE-338/InsecureRandomness.ql index cc6bc42be71..a66641cf1ce 100644 --- a/go/ql/src/Security/CWE-338/InsecureRandomness.ql +++ b/go/ql/src/Security/CWE-338/InsecureRandomness.ql @@ -25,7 +25,7 @@ where min(InsecureRandomness::Flow::PathNode sink2, int line | InsecureRandomness::Flow::flowPath(_, sink2) and sink2.getNode().getRoot() = sink.getNode().getRoot() and - sink2.hasLocationInfo(_, line, _, _, _) + line = sink2.getLocation().getStartLine() | sink2 order by line ) diff --git a/go/ql/test/TestUtilities/InlineFlowTest.qll b/go/ql/test/TestUtilities/InlineFlowTest.qll index 3ec43911b76..b761fed993e 100644 --- a/go/ql/test/TestUtilities/InlineFlowTest.qll +++ b/go/ql/test/TestUtilities/InlineFlowTest.qll @@ -9,7 +9,7 @@ private import semmle.go.dataflow.internal.DataFlowImplSpecific private import semmle.go.dataflow.internal.TaintTrackingImplSpecific private import internal.InlineExpectationsTestImpl -private module FlowTestImpl implements InputSig<GoDataFlow> { +private module FlowTestImpl implements InputSig<Location, GoDataFlow> { predicate defaultSource(DataFlow::Node source) { exists(Function fn | fn.hasQualifiedName(_, ["source", "taint"]) | source = fn.getACall().getResult() @@ -26,4 +26,4 @@ private module FlowTestImpl implements InputSig<GoDataFlow> { } } -import InlineFlowTestMake<GoDataFlow, GoTaintTracking, Impl, FlowTestImpl> +import InlineFlowTestMake<Location, GoDataFlow, GoTaintTracking, Impl, FlowTestImpl> diff --git a/go/ql/test/TestUtilities/internal/InlineExpectationsTestImpl.qll b/go/ql/test/TestUtilities/internal/InlineExpectationsTestImpl.qll index a544aed8fee..1d185440772 100644 --- a/go/ql/test/TestUtilities/internal/InlineExpectationsTestImpl.qll +++ b/go/ql/test/TestUtilities/internal/InlineExpectationsTestImpl.qll @@ -2,13 +2,18 @@ private import go as G private import codeql.util.test.InlineExpectationsTest module Impl implements InlineExpectationsTestSig { + final private class CommentFinal = G::Comment; + /** * A class representing line comments in the Go style, including the * preceding comment marker (`//`). */ - class ExpectationComment extends G::Comment { + class ExpectationComment extends CommentFinal { /** Returns the contents of the given comment, _without_ the preceding comment marker (`//`). */ string getContents() { result = this.getText() } + + /** Gets this element's location. */ + G::Location getLocation() { result = super.getLocation() } } class Location = G::Location; diff --git a/go/ql/test/extractor-tests/diagnostics/Diagnostics.ql b/go/ql/test/extractor-tests/diagnostics/Diagnostics.ql index ed6d8ac043d..324709175e5 100644 --- a/go/ql/test/extractor-tests/diagnostics/Diagnostics.ql +++ b/go/ql/test/extractor-tests/diagnostics/Diagnostics.ql @@ -1,4 +1,5 @@ import go +private import semmle.go.internal.Locations bindingset[path] string baseName(string path) { result = path.regexpCapture(".*(/|\\\\)([^/\\\\]+)(/|\\\\)?$", 2) } @@ -30,7 +31,12 @@ class Diagnostic extends @diagnostic { diagnostic_for(this, c, fileNum, idx) } - Location getLocation() { diagnostics(this, _, _, _, _, result) } + DbLocation getLocation() { + exists(@location loc | + diagnostics(this, _, _, _, _, loc) and + result = TDbLocation(loc) + ) + } // string getTag() { // diagnostics(this, _, result, _, _, _) From 02ae2d15207df8d6c977f0791d1c4fd14bf487df Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Mon, 11 Mar 2024 13:19:21 +0100 Subject: [PATCH 119/309] Java: Implement new data flow interface --- java/ql/lib/semmle/code/java/dataflow/DataFlow.qll | 2 +- java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll | 2 +- .../semmle/code/java/dataflow/internal/DataFlowImpl.qll | 3 ++- .../code/java/dataflow/internal/DataFlowImplCommon.qll | 3 ++- .../java/dataflow/internal/DataFlowImplConsistency.qll | 4 ++-- .../code/java/dataflow/internal/DataFlowImplSpecific.qll | 3 ++- .../semmle/code/java/dataflow/internal/DataFlowNodes.qll | 2 +- .../code/java/dataflow/internal/FlowSummaryImpl.qll | 8 ++++---- .../java/dataflow/internal/TaintTrackingImplSpecific.qll | 3 ++- java/ql/test-kotlin1/TestUtilities/InlineFlowTest.qll | 4 ++-- java/ql/test/TestUtilities/InlineFlowTest.qll | 4 ++-- 11 files changed, 21 insertions(+), 17 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/DataFlow.qll b/java/ql/lib/semmle/code/java/dataflow/DataFlow.qll index 0f87cb7010c..66a7a847c33 100644 --- a/java/ql/lib/semmle/code/java/dataflow/DataFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/DataFlow.qll @@ -8,6 +8,6 @@ import java module DataFlow { private import semmle.code.java.dataflow.internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake<JavaDataFlow> + import DataFlowMake<Location, JavaDataFlow> import semmle.code.java.dataflow.internal.DataFlowImpl1 } diff --git a/java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll b/java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll index ad7b88381a8..ed13837a312 100644 --- a/java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll +++ b/java/ql/lib/semmle/code/java/dataflow/TaintTracking.qll @@ -12,6 +12,6 @@ module TaintTracking { private import semmle.code.java.dataflow.internal.DataFlowImplSpecific private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific private import codeql.dataflow.TaintTracking - import TaintFlowMake<JavaDataFlow, JavaTaintTracking> + import TaintFlowMake<Location, JavaDataFlow, JavaTaintTracking> import semmle.code.java.dataflow.internal.tainttracking1.TaintTrackingImpl } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index 30746706e31..689e58daab8 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -1,3 +1,4 @@ private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl -import MakeImpl<JavaDataFlow> +private import semmle.code.Location +import MakeImpl<Location, JavaDataFlow> diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll index 2118572f779..00f388dfdf3 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll @@ -1,3 +1,4 @@ private import DataFlowImplSpecific +private import semmle.code.Location private import codeql.dataflow.internal.DataFlowImplCommon -import MakeImplCommon<JavaDataFlow> +import MakeImplCommon<Location, JavaDataFlow> diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll index 1dfa24fffac..0272af417ac 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll @@ -8,10 +8,10 @@ private import DataFlowImplSpecific private import TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency -private module Input implements InputSig<JavaDataFlow> { +private module Input implements InputSig<Location, JavaDataFlow> { predicate argHasPostUpdateExclude(JavaDataFlow::ArgumentNode n) { n.getType() instanceof ImmutableType or n instanceof Public::ImplicitVarargsArray } } -module Consistency = MakeConsistency<JavaDataFlow, JavaTaintTracking, Input>; +module Consistency = MakeConsistency<Location, JavaDataFlow, JavaTaintTracking, Input>; diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplSpecific.qll index e269b56e3aa..84cdf19ed51 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplSpecific.qll @@ -2,6 +2,7 @@ * Provides Java-specific definitions for use in the data flow library. */ +private import semmle.code.Location private import codeql.dataflow.DataFlow module Private { @@ -13,7 +14,7 @@ module Public { import DataFlowUtil } -module JavaDataFlow implements InputSig { +module JavaDataFlow implements InputSig<Location> { import Private import Public diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll index 8bcbf0635a3..bf867d21d3c 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll @@ -163,7 +163,7 @@ module Public { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index d5364567d88..0960497dd8c 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -26,7 +26,7 @@ private string positionToString(int pos) { if pos = -1 then result = "this" else result = pos.toString() } -module Input implements InputSig<DataFlowImplSpecific::JavaDataFlow> { +module Input implements InputSig<Location, DataFlowImplSpecific::JavaDataFlow> { class SummarizedCallableBase = FlowSummary::SummarizedCallableBase; ArgumentPosition callbackSelfParameterPosition() { result = -1 } @@ -85,7 +85,7 @@ module Input implements InputSig<DataFlowImplSpecific::JavaDataFlow> { } } -private import Make<DataFlowImplSpecific::JavaDataFlow, Input> as Impl +private import Make<Location, DataFlowImplSpecific::JavaDataFlow, Input> as Impl private module TypesInput implements Impl::Private::TypesInputSig { DataFlowType getSyntheticGlobalType(Impl::Private::SyntheticGlobal sg) { @@ -186,7 +186,7 @@ private predicate correspondingKotlinParameterDefaultsArgSpec( } module SourceSinkInterpretationInput implements - Impl::Private::External::SourceSinkInterpretationInputSig<Location> + Impl::Private::External::SourceSinkInterpretationInputSig { private import java as J @@ -294,7 +294,7 @@ module Private { module External { import Impl::Private::External - import Impl::Private::External::SourceSinkInterpretation<Location, SourceSinkInterpretationInput> + import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput> /** * Holds if an external flow summary exists for `c` with input specification diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingImplSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingImplSpecific.qll index ba30b102a20..0f756200abe 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingImplSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/TaintTrackingImplSpecific.qll @@ -4,7 +4,8 @@ private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific +private import semmle.code.Location -module JavaTaintTracking implements InputSig<JavaDataFlow> { +module JavaTaintTracking implements InputSig<Location, JavaDataFlow> { import TaintTrackingUtil } diff --git a/java/ql/test-kotlin1/TestUtilities/InlineFlowTest.qll b/java/ql/test-kotlin1/TestUtilities/InlineFlowTest.qll index d815f302638..500e4783614 100644 --- a/java/ql/test-kotlin1/TestUtilities/InlineFlowTest.qll +++ b/java/ql/test-kotlin1/TestUtilities/InlineFlowTest.qll @@ -10,7 +10,7 @@ private import semmle.code.java.dataflow.internal.DataFlowImplSpecific private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific private import internal.InlineExpectationsTestImpl -private module FlowTestImpl implements InputSig<JavaDataFlow> { +private module FlowTestImpl implements InputSig<Location, JavaDataFlow> { predicate defaultSource(DataFlow::Node source) { source.asExpr().(MethodCall).getMethod().getName() = ["source", "taint"] } @@ -30,4 +30,4 @@ private module FlowTestImpl implements InputSig<JavaDataFlow> { } } -import InlineFlowTestMake<JavaDataFlow, JavaTaintTracking, Impl, FlowTestImpl> +import InlineFlowTestMake<Location, JavaDataFlow, JavaTaintTracking, Impl, FlowTestImpl> diff --git a/java/ql/test/TestUtilities/InlineFlowTest.qll b/java/ql/test/TestUtilities/InlineFlowTest.qll index d815f302638..500e4783614 100644 --- a/java/ql/test/TestUtilities/InlineFlowTest.qll +++ b/java/ql/test/TestUtilities/InlineFlowTest.qll @@ -10,7 +10,7 @@ private import semmle.code.java.dataflow.internal.DataFlowImplSpecific private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific private import internal.InlineExpectationsTestImpl -private module FlowTestImpl implements InputSig<JavaDataFlow> { +private module FlowTestImpl implements InputSig<Location, JavaDataFlow> { predicate defaultSource(DataFlow::Node source) { source.asExpr().(MethodCall).getMethod().getName() = ["source", "taint"] } @@ -30,4 +30,4 @@ private module FlowTestImpl implements InputSig<JavaDataFlow> { } } -import InlineFlowTestMake<JavaDataFlow, JavaTaintTracking, Impl, FlowTestImpl> +import InlineFlowTestMake<Location, JavaDataFlow, JavaTaintTracking, Impl, FlowTestImpl> From 6c0ed28e6b6485e6201fdd39013679dc230fefe0 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Mon, 11 Mar 2024 13:26:01 +0100 Subject: [PATCH 120/309] Python: Implement new data flow interface --- python/ql/consistency-queries/DataFlowConsistency.ql | 8 ++++++-- python/ql/lib/semmle/python/ApiGraphs.qll | 5 ++++- python/ql/lib/semmle/python/dataflow/new/DataFlow.qll | 2 +- .../ql/lib/semmle/python/dataflow/new/TaintTracking.qll | 2 +- .../python/dataflow/new/internal/DataFlowDispatch.qll | 2 +- .../semmle/python/dataflow/new/internal/DataFlowImpl.qll | 3 ++- .../python/dataflow/new/internal/DataFlowImplCommon.qll | 3 ++- .../python/dataflow/new/internal/DataFlowImplSpecific.qll | 2 +- .../python/dataflow/new/internal/DataFlowPublic.qll | 4 ++-- .../python/dataflow/new/internal/FlowSummaryImpl.qll | 4 ++-- .../dataflow/new/internal/TaintTrackingImplSpecific.qll | 3 ++- python/ql/lib/semmle/python/internal/CachedStages.qll | 2 +- 12 files changed, 25 insertions(+), 15 deletions(-) diff --git a/python/ql/consistency-queries/DataFlowConsistency.ql b/python/ql/consistency-queries/DataFlowConsistency.ql index f0a0d0356ca..759db3d19a9 100644 --- a/python/ql/consistency-queries/DataFlowConsistency.ql +++ b/python/ql/consistency-queries/DataFlowConsistency.ql @@ -10,12 +10,16 @@ private import semmle.python.dataflow.new.internal.DataFlowDispatch private import semmle.python.dataflow.new.internal.TaintTrackingImplSpecific private import codeql.dataflow.internal.DataFlowImplConsistency -private module Input implements InputSig<PythonDataFlow> { +private module Input implements InputSig<Location, PythonDataFlow> { private import Private private import Public predicate postWithInFlowExclude(Node n) { n instanceof FlowSummaryNode } + predicate uniqueNodeLocationExclude(Node n) { n instanceof FlowSummaryNode } + + predicate missingLocationExclude(Node n) { n instanceof FlowSummaryNode } + predicate argHasPostUpdateExclude(ArgumentNode n) { // TODO: Implement post-updates for *args, see tests added in https://github.com/github/codeql/pull/14936 exists(ArgumentPosition apos | n.argumentOf(_, apos) and apos.isStarArgs(_)) @@ -132,4 +136,4 @@ private module Input implements InputSig<PythonDataFlow> { } } -import MakeConsistency<PythonDataFlow, PythonTaintTracking, Input> +import MakeConsistency<Location, PythonDataFlow, PythonTaintTracking, Input> diff --git a/python/ql/lib/semmle/python/ApiGraphs.qll b/python/ql/lib/semmle/python/ApiGraphs.qll index 18202ebb524..6f27c829e32 100644 --- a/python/ql/lib/semmle/python/ApiGraphs.qll +++ b/python/ql/lib/semmle/python/ApiGraphs.qll @@ -328,6 +328,9 @@ module API { */ DataFlow::Node getInducingNode() { this = Impl::MkUse(result) or this = Impl::MkDef(result) } + /** Gets the location of this node */ + PY::Location getLocation() { result = this.getInducingNode().getLocation() } + /** * Holds if this element is at the specified location. * The location spans column `startcolumn` of line `startline` to @@ -335,7 +338,7 @@ module API { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { this.getInducingNode().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) diff --git a/python/ql/lib/semmle/python/dataflow/new/DataFlow.qll b/python/ql/lib/semmle/python/dataflow/new/DataFlow.qll index 75725a42a9e..17cc0a0ee85 100644 --- a/python/ql/lib/semmle/python/dataflow/new/DataFlow.qll +++ b/python/ql/lib/semmle/python/dataflow/new/DataFlow.qll @@ -24,6 +24,6 @@ private import python module DataFlow { private import internal.DataFlowImplSpecific private import codeql.dataflow.DataFlow - import DataFlowMake<PythonDataFlow> + import DataFlowMake<Location, PythonDataFlow> import internal.DataFlowImpl1 } diff --git a/python/ql/lib/semmle/python/dataflow/new/TaintTracking.qll b/python/ql/lib/semmle/python/dataflow/new/TaintTracking.qll index aa80e7c7148..e085ba45dd0 100644 --- a/python/ql/lib/semmle/python/dataflow/new/TaintTracking.qll +++ b/python/ql/lib/semmle/python/dataflow/new/TaintTracking.qll @@ -19,6 +19,6 @@ module TaintTracking { private import semmle.python.dataflow.new.internal.DataFlowImplSpecific private import semmle.python.dataflow.new.internal.TaintTrackingImplSpecific private import codeql.dataflow.TaintTracking - import TaintFlowMake<PythonDataFlow, PythonTaintTracking> + import TaintFlowMake<Location, PythonDataFlow, PythonTaintTracking> import internal.tainttracking1.TaintTrackingImpl } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDispatch.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDispatch.qll index 87a278e0f6b..5abb5e31edb 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDispatch.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowDispatch.qll @@ -1595,7 +1595,7 @@ class FlowSummaryNode extends Node, TFlowSummaryNode { override string toString() { result = this.getSummaryNode().toString() } // Hack to return "empty location" - override predicate hasLocationInfo( + deprecated override predicate hasLocationInfo( string file, int startline, int startcolumn, int endline, int endcolumn ) { file = "" and diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index 92f0f17ce82..9789857adcb 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -1,3 +1,4 @@ private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImpl -import MakeImpl<PythonDataFlow> +private import semmle.python.Files +import MakeImpl<Location, PythonDataFlow> diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplCommon.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplCommon.qll index 41c9c4ec1be..cd7c3992330 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplCommon.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplCommon.qll @@ -1,3 +1,4 @@ private import DataFlowImplSpecific private import codeql.dataflow.internal.DataFlowImplCommon -import MakeImplCommon<PythonDataFlow> +private import semmle.python.Files +import MakeImplCommon<Location, PythonDataFlow> diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplSpecific.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplSpecific.qll index cffdefe41ba..2d18c789732 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplSpecific.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplSpecific.qll @@ -15,7 +15,7 @@ module Public { import DataFlowUtil } -module PythonDataFlow implements InputSig { +module PythonDataFlow implements InputSig<Python::Location> { import Private import Public diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll index 73c87992c48..16a9572db6a 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPublic.qll @@ -148,6 +148,7 @@ class Node extends TNode { DataFlowCallable getEnclosingCallable() { result = getCallableScope(this.getScope()) } /** Gets the location of this node */ + cached Location getLocation() { none() } /** @@ -157,8 +158,7 @@ class Node extends TNode { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - cached - predicate hasLocationInfo( + deprecated predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { Stages::DataFlow::ref() and diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll index 4a55d38edb6..5e45a961b5b 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll @@ -9,7 +9,7 @@ private import DataFlowImplSpecific as DataFlowImplSpecific private import DataFlowImplSpecific::Private private import DataFlowImplSpecific::Public -module Input implements InputSig<DataFlowImplSpecific::PythonDataFlow> { +module Input implements InputSig<Location, DataFlowImplSpecific::PythonDataFlow> { class SummarizedCallableBase = string; ArgumentPosition callbackSelfParameterPosition() { result.isLambdaSelf() } @@ -83,7 +83,7 @@ module Input implements InputSig<DataFlowImplSpecific::PythonDataFlow> { } } -private import Make<DataFlowImplSpecific::PythonDataFlow, Input> as Impl +private import Make<Location, DataFlowImplSpecific::PythonDataFlow, Input> as Impl private module StepsInput implements Impl::Private::StepsInputSig { DataFlowCall getACall(Public::SummarizedCallable sc) { diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingImplSpecific.qll b/python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingImplSpecific.qll index 6f65d234344..798c1d5116f 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingImplSpecific.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/TaintTrackingImplSpecific.qll @@ -4,7 +4,8 @@ private import codeql.dataflow.TaintTracking private import DataFlowImplSpecific +private import semmle.python.Files -module PythonTaintTracking implements InputSig<PythonDataFlow> { +module PythonTaintTracking implements InputSig<Location, PythonDataFlow> { import TaintTrackingPrivate } diff --git a/python/ql/lib/semmle/python/internal/CachedStages.qll b/python/ql/lib/semmle/python/internal/CachedStages.qll index da32b4c071e..687cabeceae 100644 --- a/python/ql/lib/semmle/python/internal/CachedStages.qll +++ b/python/ql/lib/semmle/python/internal/CachedStages.qll @@ -194,7 +194,7 @@ module Stages { or exists(any(DataFlowPublic::Node node).toString()) or - any(DataFlowPublic::Node node).hasLocationInfo(_, _, _, _, _) + exists(any(DataFlowPublic::Node node).getLocation()) or DataFlowDispatch::resolveCall(_, _, _) or From 039bea1625b4c05e6b0bb91305e3041855a5fa78 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Wed, 13 Mar 2024 16:59:38 +0100 Subject: [PATCH 121/309] Java: Add more neutral JDK models This is similar to https://github.com/github/codeql/pull/15766, in the sense that it adds neutral models to prevent the model generator from generating summaries for them. These models were spotted while evaluating https://github.com/github/codeql/pull/14919. --- java/ql/lib/ext/java.beans.model.yml | 9 +++++++++ java/ql/lib/ext/java.io.model.yml | 3 +++ java/ql/lib/ext/java.net.model.yml | 7 +++++++ java/ql/lib/ext/java.util.logging.yml | 8 ++++++++ java/ql/lib/ext/java.util.model.yml | 4 ++++ java/ql/lib/ext/java.util.prefs.model.yml | 2 ++ java/ql/lib/ext/java.util.regex.model.yml | 5 +++++ java/ql/lib/ext/javax.crypto.model.yml | 2 ++ java/ql/lib/ext/javax.crypto.spec.model.yml | 5 +++++ 9 files changed, 45 insertions(+) create mode 100644 java/ql/lib/ext/java.util.logging.yml diff --git a/java/ql/lib/ext/java.beans.model.yml b/java/ql/lib/ext/java.beans.model.yml index b9d06ea5694..53e8522643a 100644 --- a/java/ql/lib/ext/java.beans.model.yml +++ b/java/ql/lib/ext/java.beans.model.yml @@ -4,3 +4,12 @@ extensions: extensible: summaryModel data: - ["java.beans", "XMLDecoder", False, "XMLDecoder", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - addsTo: + pack: codeql/java-all + extensible: neutralModel + data: + # summary neutrals + - ["java.beans", "PropertyEditor", "getAsText", "()", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.beans", "PropertyEditor", "getValue", "()", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.beans", "PropertyEditor", "setAsText", "()", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.beans", "PropertyEditor", "setValue", "()", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs diff --git a/java/ql/lib/ext/java.io.model.yml b/java/ql/lib/ext/java.io.model.yml index ef0f4dbb0a6..bcf0494da8f 100644 --- a/java/ql/lib/ext/java.io.model.yml +++ b/java/ql/lib/ext/java.io.model.yml @@ -116,9 +116,12 @@ extensions: - ["java.io", "File", "isFile", "()", "summary", "manual"] - ["java.io", "File", "length", "()", "summary", "manual"] - ["java.io", "File", "isDirectory", "()", "summary", "manual"] + - ["java.io", "File", "listFiles", "", "summary", "manual"] - ["java.io", "File", "mkdirs", "()", "summary", "manual"] - ["java.io", "FileInputStream", "FileInputStream", "(File)", "summary", "manual"] + - ["java.io", "FileInputStream", "FileInputStream", "(String)", "summary", "manual"] - ["java.io", "InputStream", "close", "()", "summary", "manual"] + - ["java.io", "ObjectInput", "readObject", "()", "summary", "manual"] - ["java.io", "OutputStream", "flush", "()", "summary", "manual"] # The below APIs have numeric flow and are currently being stored as neutral models. # These may be changed to summary models with kinds "value-numeric" and "taint-numeric" (or similar) in the future. diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index afdf3320b08..5eb501d19d9 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -61,3 +61,10 @@ extensions: - ["java.net", "URL", False, "toURI", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.net", "URL", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.net", "URLDecoder", False, "decode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - addsTo: + pack: codeql/java-all + extensible: neutralModel + data: + # summary neutrals + - ["java.net", "Socket", "getOutputStream", "()", "summary", "manual"] + - ["java.net", "Socket", "connect", "(SocketAddress,int)", "summary", "manual"] diff --git a/java/ql/lib/ext/java.util.logging.yml b/java/ql/lib/ext/java.util.logging.yml new file mode 100644 index 00000000000..d2620776d9a --- /dev/null +++ b/java/ql/lib/ext/java.util.logging.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: neutralModel + data: + # summary neutrals + - ["java.util.logging", "LogRecord", "getResourceBundle", "()", "summary", "manual"] + - ["java.util.logging", "LogRecord", "setParameters", "", "summary", "manual"] diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index bd6e58918aa..87675d49f96 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -107,6 +107,8 @@ extensions: - ["java.util", "Collections", False, "unmodifiableSortedMap", "(SortedMap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Collections", False, "unmodifiableSortedMap", "(SortedMap)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["java.util", "Collections", False, "unmodifiableSortedSet", "(SortedSet)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "ConcurrentHashMap", False, "ConcurrentHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "ConcurrentHashMap", False, "ConcurrentHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["java.util", "Deque", True, "addFirst", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["java.util", "Deque", True, "addLast", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["java.util", "Deque", True, "descendingIterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] @@ -428,6 +430,7 @@ extensions: - ["java.util", "Collections", "emptySet", "()", "summary", "manual"] - ["java.util", "Collections", "sort", "", "summary", "manual"] - ["java.util", "Enumeration", "hasMoreElements", "()", "summary", "manual"] + - ["java.util", "EnumSet", "copyOf", "(EnumSet)", "summary", "manual"] - ["java.util", "HashMap", "containsKey", "(Object)", "summary", "manual"] - ["java.util", "HashMap", "HashMap", "(int)", "summary", "manual"] - ["java.util", "HashMap", "size", "()", "summary", "manual"] @@ -454,6 +457,7 @@ extensions: - ["java.util", "Optional", "isEmpty", "()", "summary", "manual"] - ["java.util", "Optional", "isPresent", "()", "summary", "manual"] - ["java.util", "Random", "nextInt", "(int)", "summary", "manual"] + - ["java.util", "ResourceBundle", "getBundle", "", "summary", "manual"] - ["java.util", "Set", "contains", "(Object)", "summary", "manual"] - ["java.util", "Set", "isEmpty", "()", "summary", "manual"] - ["java.util", "Set", "size", "()", "summary", "manual"] diff --git a/java/ql/lib/ext/java.util.prefs.model.yml b/java/ql/lib/ext/java.util.prefs.model.yml index a2a7c16bc5d..cb299746343 100644 --- a/java/ql/lib/ext/java.util.prefs.model.yml +++ b/java/ql/lib/ext/java.util.prefs.model.yml @@ -3,6 +3,8 @@ extensions: pack: codeql/java-all extensible: neutralModel data: + # summary neutrals + - ["java.util.prefs", "Preferences", "get", "(String,String)", "summary", "manual"] # sink neutrals - ["java.util.prefs", "AbstractPreferences", "nodeExists", "", "sink", "hq-manual"] - ["java.util.prefs", "Preferences", "nodeExists", "", "sink", "hq-manual"] diff --git a/java/ql/lib/ext/java.util.regex.model.yml b/java/ql/lib/ext/java.util.regex.model.yml index 0a71a96b5f9..02519c64af1 100644 --- a/java/ql/lib/ext/java.util.regex.model.yml +++ b/java/ql/lib/ext/java.util.regex.model.yml @@ -30,4 +30,9 @@ extensions: pack: codeql/java-all extensible: neutralModel data: + - ["java.util.regex", "Matcher", "appendReplacement", "(StringBuffer,String)", "summary", "manual"] + - ["java.util.regex", "Matcher", "appendTail", "(StringBuffer)", "summary", "manual"] - ["java.util.regex", "Matcher", "find", "()", "summary", "manual"] + - ["java.util.regex", "Matcher", "pattern", "()", "summary", "manual"] + - ["java.util.regex", "Pattern", "compile", "(String,int)", "summary", "manual"] + - ["java.util.regex", "Pattern", "pattern", "()", "summary", "manual"] diff --git a/java/ql/lib/ext/javax.crypto.model.yml b/java/ql/lib/ext/javax.crypto.model.yml index 9c909320344..40db2df856f 100644 --- a/java/ql/lib/ext/javax.crypto.model.yml +++ b/java/ql/lib/ext/javax.crypto.model.yml @@ -24,3 +24,5 @@ extensions: - ["javax.crypto", "Cipher", "update", "", "summary", "manual"] - ["javax.crypto", "Cipher", "updateAAD", "", "summary", "manual"] - ["javax.crypto", "Cipher", "wrap", "", "summary", "manual"] + - ["javax.crypto", "Mac", "init", "(Key)", "summary", "manual"] + - ["javax.crypto", "Mac", "doFinal", "()", "summary", "manual"] diff --git a/java/ql/lib/ext/javax.crypto.spec.model.yml b/java/ql/lib/ext/javax.crypto.spec.model.yml index 0f879c1f900..759197d52e7 100644 --- a/java/ql/lib/ext/javax.crypto.spec.model.yml +++ b/java/ql/lib/ext/javax.crypto.spec.model.yml @@ -26,3 +26,8 @@ extensions: - ["javax.crypto.spec", "PBEParameterSpec", False, "PBEParameterSpec", "", "", "Argument[0]", "encryption-salt", "manual"] - ["javax.crypto.spec", "SecretKeySpec", False, "SecretKeySpec", "(byte[],String)", "", "Argument[0]", "credentials-key", "hq-generated"] - ["javax.crypto.spec", "SecretKeySpec", False, "SecretKeySpec", "(byte[],int,int,String)", "", "Argument[0]", "credentials-key", "hq-generated"] + - addsTo: + pack: codeql/java-all + extensible: neutralModel + data: + - ["javax.crypto.spec", "SecretKeySpec", "SecretKeySpec", "(byte[],String)", "summary", "manual"] From 54fa8181da3527974a8ca0ce6572dbb23783dba8 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Wed, 13 Mar 2024 20:03:01 +0100 Subject: [PATCH 122/309] Address review comment --- javascript/ql/lib/semmle/javascript/SSA.qll | 8 ++ .../semmle/javascript/dataflow/DataFlow.qll | 122 ++++-------------- .../javascript/internal/CachedStages.qll | 2 - .../semmle/javascript/internal/Locations.qll | 2 +- 4 files changed, 32 insertions(+), 102 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/SSA.qll b/javascript/ql/lib/semmle/javascript/SSA.qll index a505cf5ff48..2de42193743 100644 --- a/javascript/ql/lib/semmle/javascript/SSA.qll +++ b/javascript/ql/lib/semmle/javascript/SSA.qll @@ -488,6 +488,14 @@ class SsaDefinition extends TSsaDefinition { string filepath, int startline, int startcolumn, int endline, int endcolumn ); + /** Gets the location of this element. */ + final Location getLocation() { + exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | + this.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + result.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + ) + } + /** Gets the function or toplevel to which this definition belongs. */ StmtContainer getContainer() { result = this.getBasicBlock().getContainer() } } diff --git a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll index 6d091a720af..79fede61b8f 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll @@ -145,20 +145,15 @@ module DataFlow { * For more information, see * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). */ - cached - predicate hasLocationInfo( + final predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { - none() + this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) } /** Gets the location of this node. */ - Location getLocation() { - exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | - this.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and - result.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - ) - } + cached + Location getLocation() { none() } /** Gets the file this data flow node comes from. */ File getFile() { none() } // overridden in subclasses @@ -300,11 +295,9 @@ module DataFlow { override BasicBlock getBasicBlock() { astNode = result.getANode() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { + override Location getLocation() { Stages::DataFlowStage::ref() and - astNode.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + result = astNode.getLocation() } override File getFile() { result = astNode.getFile() } @@ -325,11 +318,7 @@ module DataFlow { override BasicBlock getBasicBlock() { result = ssa.getBasicBlock() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - ssa.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = ssa.getLocation() } override string toString() { result = ssa.getSourceVariable().getName() } @@ -348,13 +337,7 @@ module DataFlow { override BasicBlock getBasicBlock() { result = prop.(ControlFlowNode).getBasicBlock() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - prop.(Locatable) - .getLocation() - .hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = prop.(Locatable).getLocation() } override string toString() { result = prop.(AstNode).toString() } @@ -375,11 +358,7 @@ module DataFlow { override BasicBlock getBasicBlock() { result = rest.getBasicBlock() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - rest.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = rest.getLocation() } override string toString() { result = "..." + rest.toString() } @@ -400,11 +379,7 @@ module DataFlow { override BasicBlock getBasicBlock() { result = elt.getBasicBlock() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - elt.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = elt.getLocation() } override string toString() { result = elt.toString() } @@ -429,11 +404,7 @@ module DataFlow { override BasicBlock getBasicBlock() { result = elt.getBasicBlock() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - elt.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = elt.getLocation() } override string toString() { result = elt.toString() } @@ -453,11 +424,7 @@ module DataFlow { override BasicBlock getBasicBlock() { result = call.getBasicBlock() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - call.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = call.getLocation() } override string toString() { result = "reflective call" } @@ -474,11 +441,7 @@ module DataFlow { override BasicBlock getBasicBlock() { result = imprt.getBasicBlock() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - imprt.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = imprt.getLocation() } override string toString() { result = imprt.toString() } @@ -968,11 +931,7 @@ module DataFlow { override string toString() { result = attr.toString() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - attr.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = attr.getLocation() } /** Gets the attribute corresponding to this data flow node. */ HTML::Attribute getAttribute() { result = attr } @@ -990,11 +949,7 @@ module DataFlow { override string toString() { result = attr.toString() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - attr.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = attr.getLocation() } /** Gets the attribute corresponding to this data flow node. */ XmlAttribute getAttribute() { result = attr } @@ -1012,11 +967,7 @@ module DataFlow { override string toString() { result = "exceptional return of " + function.describe() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - function.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = function.getLocation() } override BasicBlock getBasicBlock() { result = function.getExit().getBasicBlock() } @@ -1038,11 +989,7 @@ module DataFlow { override string toString() { result = "return of " + function.describe() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - function.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = function.getLocation() } override BasicBlock getBasicBlock() { result = function.getExit().getBasicBlock() } @@ -1064,11 +1011,7 @@ module DataFlow { override string toString() { result = "'arguments' object of " + function.describe() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - function.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = function.getLocation() } override BasicBlock getBasicBlock() { result = function.getEntry().getBasicBlock() } @@ -1090,11 +1033,7 @@ module DataFlow { override string toString() { result = "exceptional return of " + invoke.toString() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - invoke.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = invoke.getLocation() } override BasicBlock getBasicBlock() { result = invoke.getBasicBlock() } @@ -1366,15 +1305,10 @@ module DataFlow { exists(StmtContainer container | this = TThisNode(container) | result = container.getEntry()) } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { + override Location getLocation() { // Use the function entry as the location exists(StmtContainer container | this = TThisNode(container) | - container - .getEntry() - .getLocation() - .hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) + result = container.getEntry().getLocation() ) } @@ -1393,11 +1327,7 @@ module DataFlow { override BasicBlock getBasicBlock() { result = variable.getDeclaringContainer().getStartBB() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - variable.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = variable.getLocation() } override string toString() { result = variable.getName() } } @@ -1409,13 +1339,7 @@ module DataFlow { override BasicBlock getBasicBlock() { none() } - override predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getTag() - .getLocation() - .hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } + override Location getLocation() { result = this.getTag().getLocation() } override string toString() { result = this.getTag().toString() } } diff --git a/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll b/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll index 09d52e89ee0..39da790b6b9 100644 --- a/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll +++ b/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll @@ -136,8 +136,6 @@ module Stages { or exists(DataFlow::ssaDefinitionNode(_)) or - any(DataFlow::Node node).hasLocationInfo(_, _, _, _, _) - or exists(any(DataFlow::Node node).getLocation()) or exists(any(DataFlow::Node node).toString()) diff --git a/javascript/ql/lib/semmle/javascript/internal/Locations.qll b/javascript/ql/lib/semmle/javascript/internal/Locations.qll index 4a21f4a6b98..d1dc8d403f7 100644 --- a/javascript/ql/lib/semmle/javascript/internal/Locations.qll +++ b/javascript/ql/lib/semmle/javascript/internal/Locations.qll @@ -9,7 +9,7 @@ import javascript newtype TLocation = TDbLocation(@location loc) or TSynthLocation(string filepath, int startline, int startcolumn, int endline, int endcolumn) { - any(DataFlow::Node n).hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + any(SsaDefinition def).hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and // avoid overlap with existing DB locations not exists(File f | locations_default(_, f, startline, startcolumn, endline, endcolumn) and From 866a3934d4af805ba4a8b50245c3420fe579c10c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Wed, 13 Mar 2024 20:17:00 +0100 Subject: [PATCH 123/309] C++: suppress destructors with reuse expressions until proper support is added --- .../raw/internal/TranslatedElement.qll | 5 +++++ .../raw/internal/TranslatedStmt.qll | 20 ++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll index a9d4b6e1095..81c704edb8b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll @@ -99,6 +99,11 @@ private predicate ignoreExprAndDescendants(Expr expr) { or // suppress destructors of temporary variables until proper support is added for them. exists(Expr parent | parent.getAnImplicitDestructorCall() = expr) + or + exists(Stmt parent | + parent.getAnImplicitDestructorCall() = expr and + expr.(DestructorCall).getQualifier() instanceof ReuseExpr + ) } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll index d8ec66a2ee7..247b15ed4c4 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll @@ -248,9 +248,19 @@ abstract class TranslatedStmt extends TranslatedElement, TTranslatedStmt { final override TranslatedElement getChild(int id) { result = this.getChildInternal(id) or - exists(int destructorIndex | + exists(int destructorIndex, int tempDestructorCount | result.(TranslatedExpr).getExpr() = stmt.getImplicitDestructorCall(destructorIndex) and - id = this.getFirstDestructorCallIndex() + destructorIndex + id = this.getFirstDestructorCallIndex() + destructorIndex - tempDestructorCount and + // suppress destructors of temporary variables until proper support is added for them. + tempDestructorCount = + count(DestructorCall call, int tempIndex | + stmt.getImplicitDestructorCall(tempIndex) = call and + tempIndex < destructorIndex and + call.getQualifier() instanceof ReuseExpr + | + call + ) and + not stmt.getImplicitDestructorCall(destructorIndex).getQualifier() instanceof ReuseExpr ) } @@ -261,7 +271,11 @@ abstract class TranslatedStmt extends TranslatedElement, TTranslatedStmt { } final override predicate hasAnImplicitDestructorCall() { - exists(stmt.getAnImplicitDestructorCall()) + exists(stmt.getAnImplicitDestructorCall()) and + // suppress destructors of temporary variables until proper support is added for them. + exists(Expr expr | stmt.getAnImplicitDestructorCall().getQualifier() = expr | + not expr instanceof ReuseExpr + ) } final override string toString() { result = stmt.toString() } From ef8368cfc4a7201187e8e677fa940347b424287d Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Wed, 13 Mar 2024 22:37:13 +0100 Subject: [PATCH 124/309] fix typo --- csharp/ql/src/Security Features/CWE-601/UrlRedirect.qhelp | 2 +- java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/csharp/ql/src/Security Features/CWE-601/UrlRedirect.qhelp b/csharp/ql/src/Security Features/CWE-601/UrlRedirect.qhelp index c9a1b692b81..80873b1bc1c 100644 --- a/csharp/ql/src/Security Features/CWE-601/UrlRedirect.qhelp +++ b/csharp/ql/src/Security Features/CWE-601/UrlRedirect.qhelp @@ -57,7 +57,7 @@ which is harmless but perhaps not intended. You can substitute your own domain ( <li> OWASP: -<a href="https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html">XSS +<a href="https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html"> Unvalidated Redirects and Forwards Cheat Sheet</a>. </li> <li> diff --git a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp index eddca4f62f6..4325ccf5430 100644 --- a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp +++ b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.qhelp @@ -57,7 +57,7 @@ which is harmless but perhaps not intended. You can substitute your own domain ( <li> OWASP: -<a href="https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html">XSS +<a href="https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html"> Unvalidated Redirects and Forwards Cheat Sheet</a>. </li> <li> From 61597f5ac79b2a38285a2299fc0d5439d6257ae0 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 13 Mar 2024 22:37:03 +0000 Subject: [PATCH 125/309] C++: This commit does two things: 1. It fixes a logic error in the cannotContainString predicate. 2. It reverts the changes to the `isSource` predicate that required the external function to be within the source root. The change to `isSource` was meant to fix the a performance problem that occurred because of the logic error in the cannotContainString predicate. However, now that the logic error is fixed this is no longer necessary :tada: --- .../Likely Bugs/Format/NonConstantFormat.ql | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql index 3e9576de175..62c3c98e197 100644 --- a/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql +++ b/cpp/ql/src/Likely Bugs/Format/NonConstantFormat.ql @@ -37,6 +37,11 @@ class UncalledFunction extends Function { } } +/** The `unsigned short` type. */ +class UnsignedShort extends ShortType { + UnsignedShort() { this.isUnsigned() } +} + /** * Holds if `t` cannot refer to a string. That is, it's a built-in * or arithmetic type that is not a "`char` like" type. @@ -51,7 +56,7 @@ predicate cannotContainString(Type t) { not unspecified instanceof Char16Type and not unspecified instanceof Char32Type and // C often defines `wchar_t` as `unsigned short` - unspecified = any(ShortType short | not short.isUnsigned()) + not unspecified instanceof UnsignedShort | unspecified instanceof ArithmeticType or unspecified instanceof BuiltInType @@ -63,14 +68,6 @@ predicate dataFlowOrTaintFlowFunction(Function func, FunctionOutput output) { func.(TaintFunction).hasTaintFlow(_, output) } -/** Holds if `func` is declared inside the source root. */ -predicate isInsideSourceRoot(Function func) { - exists(File f | - f = func.getFile() and - exists(f.getRelativePath()) - ) -} - /** * Holds if `node` is a non-constant source of data flow for non-const format string detection. * This is defined as either: @@ -119,8 +116,7 @@ predicate isNonConst(DataFlow::Node node) { // The function's output must also not be const to be considered a non-const source exists(Function func, CallInstruction call | not func.hasDefinition() and - func = call.getStaticCallTarget() and - isInsideSourceRoot(func) + func = call.getStaticCallTarget() | // Case 1: It's a known dataflow or taintflow function with flow to the return value call.getUnconvertedResultExpression() = node.asIndirectExpr() and From d1c253b5193db7f758792660319fd6ef17d10fa7 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 13 Mar 2024 22:41:32 +0000 Subject: [PATCH 126/309] C++: Accept test changes. --- .../Format/NonConstantFormat/NonConstantFormat.expected | 4 ++++ .../Likely Bugs/Format/NonConstantFormat/nested.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected index 7cdf2ada53a..c3c94158da8 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/NonConstantFormat.expected @@ -7,6 +7,7 @@ edges | nested.cpp:34:37:34:39 | *fmt | nested.cpp:35:19:35:21 | *fmt | provenance | | | nested.cpp:35:19:35:21 | *fmt | nested.cpp:27:32:27:34 | *fmt | provenance | | | nested.cpp:42:24:42:34 | *call to ext_fmt_str | nested.cpp:34:37:34:39 | *fmt | provenance | | +| nested.cpp:86:19:86:46 | *call to __builtin_alloca | nested.cpp:87:18:87:20 | *fmt | provenance | | | test.cpp:46:27:46:30 | **argv | test.cpp:130:20:130:26 | *access to array | provenance | | | test.cpp:167:31:167:34 | *data | test.cpp:170:12:170:14 | *res | provenance | | | test.cpp:193:32:193:34 | *str | test.cpp:195:31:195:33 | *str | provenance | | @@ -34,6 +35,8 @@ nodes | nested.cpp:35:19:35:21 | *fmt | semmle.label | *fmt | | nested.cpp:42:24:42:34 | *call to ext_fmt_str | semmle.label | *call to ext_fmt_str | | nested.cpp:79:32:79:38 | *call to get_fmt | semmle.label | *call to get_fmt | +| nested.cpp:86:19:86:46 | *call to __builtin_alloca | semmle.label | *call to __builtin_alloca | +| nested.cpp:87:18:87:20 | *fmt | semmle.label | *fmt | | test.cpp:46:27:46:30 | **argv | semmle.label | **argv | | test.cpp:130:20:130:26 | *access to array | semmle.label | *access to array | | test.cpp:167:31:167:34 | *data | semmle.label | *data | @@ -65,6 +68,7 @@ subpaths | NonConstantFormat.c:45:9:45:48 | *call to gettext | NonConstantFormat.c:45:11:45:47 | *call to any_random_function | NonConstantFormat.c:45:9:45:48 | *call to gettext | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | NonConstantFormat.c:45:2:45:7 | call to printf | printf | | nested.cpp:21:23:21:26 | *fmt0 | nested.cpp:42:24:42:34 | *call to ext_fmt_str | nested.cpp:21:23:21:26 | *fmt0 | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:21:5:21:12 | call to snprintf | snprintf | | nested.cpp:79:32:79:38 | *call to get_fmt | nested.cpp:79:32:79:38 | *call to get_fmt | nested.cpp:79:32:79:38 | *call to get_fmt | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:79:5:79:14 | call to diagnostic | diagnostic | +| nested.cpp:87:18:87:20 | *fmt | nested.cpp:86:19:86:46 | *call to __builtin_alloca | nested.cpp:87:18:87:20 | *fmt | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | nested.cpp:87:7:87:16 | call to diagnostic | diagnostic | | test.cpp:130:20:130:26 | *access to array | test.cpp:46:27:46:30 | **argv | test.cpp:130:20:130:26 | *access to array | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:130:2:130:10 | call to sprintf | sprintf | | test.cpp:170:12:170:14 | *res | test.cpp:167:31:167:34 | *data | test.cpp:170:12:170:14 | *res | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:170:5:170:10 | call to printf | printf | | test.cpp:195:31:195:33 | *str | test.cpp:193:32:193:34 | *str | test.cpp:195:31:195:33 | *str | The format string argument to $@ has a source which cannot be verified to originate from a string literal. | test.cpp:195:3:195:18 | call to StringCchPrintfW | StringCchPrintfW | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/nested.cpp b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/nested.cpp index 40a88ee7fc0..1c3d2513da5 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/nested.cpp +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/NonConstantFormat/nested.cpp @@ -84,7 +84,7 @@ namespace ns { class blab { void out1(void) { char *fmt = (char *)__builtin_alloca(10); - diagnostic(fmt); // BAD [NOT DETECTED] + diagnostic(fmt); // BAD } }; } From a839c929792d101a94d0f066bf28a23fa99b573c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 13 Mar 2024 22:57:38 +0000 Subject: [PATCH 127/309] C++: Fix mapping issue between dataflow nodes and expressions when the expression is a prvalue. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index b411790596e..6d24664331f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1331,6 +1331,7 @@ private import GetConvertedResultExpression /** Holds if `node` is an `OperandNode` that should map `node.asExpr()` to `e`. */ predicate exprNodeShouldBeOperand(OperandNode node, Expr e, int n) { + not exprNodeShouldBeIndirectOperand(_, e, n) and exists(Instruction def | unique( | | getAUse(def)) = node.getOperand() and e = getConvertedResultExpression(def, n) @@ -1347,6 +1348,22 @@ private predicate indirectExprNodeShouldBeIndirectOperand( ) } +/** Holds if `node` should be an `IndirectOperand` that maps `node.asExpr()` to `e`. */ +private predicate exprNodeShouldBeIndirectOperand(IndirectOperand node, Expr e, int n) { + exists(ArgumentOperand operand | + // When an argument (qualifier or position) is a PR value and the + // parameter (qualifier or positional) is a (const) reference, IR + // construction introduces a temporary `IRVariable`. The `VariableAddress` + // instruction has the argument as it's `getConvertedResultExpression` + // result. However, the instruction actually represents the _address_ of + // the argument. So to fix this mismatch, we have the indirection of the + // `VariableAddressInstruction` map to the expression. + node.hasOperandAndIndirectionIndex(operand, 1) and + e = getConvertedResultExpression(operand.getDef(), n) and + operand.getDef().(VariableAddressInstruction).getIRVariable() instanceof IRTempVariable + ) +} + private predicate exprNodeShouldBeIndirectOutNode(IndirectArgumentOutNode node, Expr e, int n) { exists(CallInstruction call | call.getStaticCallTarget() instanceof Constructor and @@ -1359,6 +1376,7 @@ private predicate exprNodeShouldBeIndirectOutNode(IndirectArgumentOutNode node, predicate exprNodeShouldBeInstruction(Node node, Expr e, int n) { not exprNodeShouldBeOperand(_, e, n) and not exprNodeShouldBeIndirectOutNode(_, e, n) and + not exprNodeShouldBeIndirectOperand(_, e, n) and e = getConvertedResultExpression(node.asInstruction(), n) } @@ -1391,7 +1409,8 @@ abstract private class ExprNodeBase extends Node { private predicate exprNodeShouldBe(Expr e, int n) { exprNodeShouldBeInstruction(_, e, n) or exprNodeShouldBeOperand(_, e, n) or - exprNodeShouldBeIndirectOutNode(_, e, n) + exprNodeShouldBeIndirectOutNode(_, e, n) or + exprNodeShouldBeIndirectOperand(_, e, n) } private class InstructionExprNode extends ExprNodeBase, InstructionNode { @@ -1533,6 +1552,12 @@ private class IndirectArgumentOutExprNode extends ExprNodeBase, IndirectArgument final override Expr getConvertedExpr(int n) { exprNodeShouldBeIndirectOutNode(this, result, n) } } +private class IndirectTemporaryExpr extends ExprNodeBase instanceof IndirectOperand { + IndirectTemporaryExpr() { exprNodeShouldBeIndirectOperand(this, _, _) } + + final override Expr getConvertedExpr(int n) { exprNodeShouldBeIndirectOperand(this, result, n) } +} + /** * An expression, viewed as a node in a data flow graph. */ From b5f349bd2c5a982a5ce6973f716598f4160d5e36 Mon Sep 17 00:00:00 2001 From: Tamas Vajk <tamasvajk@github.com> Date: Thu, 14 Mar 2024 08:37:22 +0100 Subject: [PATCH 128/309] C#: Handle namespace resolution error more gracefully --- .../Entities/NamespaceDeclaration.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/NamespaceDeclaration.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/NamespaceDeclaration.cs index f90bf5355e3..12684c304a4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/NamespaceDeclaration.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/NamespaceDeclaration.cs @@ -27,7 +27,12 @@ namespace Semmle.Extraction.CSharp.Entities public override void Populate(TextWriter trapFile) { - var @namespace = (INamespaceSymbol)Context.GetModel(node).GetSymbolInfo(node.Name).Symbol!; + var @namespace = (INamespaceSymbol?)Context.GetModel(node).GetSymbolInfo(node.Name).Symbol; + if (@namespace is null) + { + throw new InternalError(node, "Namespace symbol not found"); + } + var ns = Namespace.Create(Context, @namespace); trapFile.namespace_declarations(this, ns); trapFile.namespace_declaration_location(this, Context.CreateLocation(node.Name.GetLocation())); From 36f6a6fb10cb0bdb04cc807675675f5257f0a554 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Thu, 14 Mar 2024 08:46:43 +0100 Subject: [PATCH 129/309] Model more EnumSet methods as neutrals --- java/ql/lib/ext/java.util.model.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index 87675d49f96..0cc520f28f8 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -430,7 +430,14 @@ extensions: - ["java.util", "Collections", "emptySet", "()", "summary", "manual"] - ["java.util", "Collections", "sort", "", "summary", "manual"] - ["java.util", "Enumeration", "hasMoreElements", "()", "summary", "manual"] + - ["java.util", "EnumSet", "allOf", "(Class)", "summary", "manual"] + - ["java.util", "EnumSet", "clone", "()", "summary", "manual"] + - ["java.util", "EnumSet", "complementOf", "(EnumSet)", "summary", "manual"] + - ["java.util", "EnumSet", "copyOf", "(Collection)", "summary", "manual"] - ["java.util", "EnumSet", "copyOf", "(EnumSet)", "summary", "manual"] + - ["java.util", "EnumSet", "noneOf", "(Class)", "summary", "manual"] + - ["java.util", "EnumSet", "of", "", "summary", "manual"] + - ["java.util", "EnumSet", "range", "(Object,Object)", "summary", "manual"] - ["java.util", "HashMap", "containsKey", "(Object)", "summary", "manual"] - ["java.util", "HashMap", "HashMap", "(int)", "summary", "manual"] - ["java.util", "HashMap", "size", "()", "summary", "manual"] From 5b88b8a3ed2d3b5a96d41f2fd0f8e20b74628c56 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Thu, 14 Mar 2024 08:47:40 +0100 Subject: [PATCH 130/309] A few more neutrals --- java/ql/lib/ext/java.nio.file.model.yml | 1 + java/ql/lib/ext/java.util.prefs.model.yml | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 39a83291fc0..c04ae453ba3 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -91,6 +91,7 @@ extensions: data: # summary neutrals - ["java.nio.file", "Files", "exists", "(Path,LinkOption[])", "summary", "manual"] + - ["java.nio.file", "Files", "newInputStream", "(Path,LinkOption[])", "summary", "manual"] # sink neutrals - ["java.nio.file", "Files", "getLastModifiedTime", "", "sink", "hq-manual"] - ["java.nio.file", "Files", "getOwner", "", "sink", "hq-manual"] diff --git a/java/ql/lib/ext/java.util.prefs.model.yml b/java/ql/lib/ext/java.util.prefs.model.yml index cb299746343..8d33596bcfc 100644 --- a/java/ql/lib/ext/java.util.prefs.model.yml +++ b/java/ql/lib/ext/java.util.prefs.model.yml @@ -4,7 +4,20 @@ extensions: extensible: neutralModel data: # summary neutrals - - ["java.util.prefs", "Preferences", "get", "(String,String)", "summary", "manual"] + - ["java.util.prefs", "Preferences", "get", "(String,String)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getBoolean", "(String,boolean)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getByteArray", "(String,byte[])", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getDouble", "(String,double)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getFloat", "(String,float)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getInt", "(String,int)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getLong", "(String,int)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "put", "(String,String)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putBoolean", "(String,boolean)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putByteArray", "(String,byte[])", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putDouble", "(String,double)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putFloat", "(String,float)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putInt", "(String,int)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putLong", "(String,int)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs # sink neutrals - ["java.util.prefs", "AbstractPreferences", "nodeExists", "", "sink", "hq-manual"] - ["java.util.prefs", "Preferences", "nodeExists", "", "sink", "hq-manual"] From eecab9122a7524371635e822781117048465c219 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Thu, 14 Mar 2024 08:55:47 +0100 Subject: [PATCH 131/309] Recognize the model generator involvement in the models' provenances --- java/ql/lib/ext/java.beans.model.yml | 8 +++--- java/ql/lib/ext/java.io.model.yml | 7 +++--- java/ql/lib/ext/java.net.model.yml | 4 +-- java/ql/lib/ext/java.nio.file.model.yml | 2 +- java/ql/lib/ext/java.util.logging.yml | 4 +-- java/ql/lib/ext/java.util.model.yml | 22 ++++++++-------- java/ql/lib/ext/java.util.prefs.model.yml | 28 ++++++++++----------- java/ql/lib/ext/java.util.regex.model.yml | 10 ++++---- java/ql/lib/ext/javax.crypto.model.yml | 4 +-- java/ql/lib/ext/javax.crypto.spec.model.yml | 2 +- 10 files changed, 45 insertions(+), 46 deletions(-) diff --git a/java/ql/lib/ext/java.beans.model.yml b/java/ql/lib/ext/java.beans.model.yml index 53e8522643a..30667ec6961 100644 --- a/java/ql/lib/ext/java.beans.model.yml +++ b/java/ql/lib/ext/java.beans.model.yml @@ -9,7 +9,7 @@ extensions: extensible: neutralModel data: # summary neutrals - - ["java.beans", "PropertyEditor", "getAsText", "()", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.beans", "PropertyEditor", "getValue", "()", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.beans", "PropertyEditor", "setAsText", "()", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.beans", "PropertyEditor", "setValue", "()", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.beans", "PropertyEditor", "getAsText", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.beans", "PropertyEditor", "getValue", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.beans", "PropertyEditor", "setAsText", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.beans", "PropertyEditor", "setValue", "()", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs diff --git a/java/ql/lib/ext/java.io.model.yml b/java/ql/lib/ext/java.io.model.yml index bcf0494da8f..3824c588662 100644 --- a/java/ql/lib/ext/java.io.model.yml +++ b/java/ql/lib/ext/java.io.model.yml @@ -80,7 +80,6 @@ extensions: - ["java.io", "File", True, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "getParentFile", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "getPath", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - - ["java.io", "File", True, "listFiles", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "toPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "toURI", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] @@ -116,12 +115,12 @@ extensions: - ["java.io", "File", "isFile", "()", "summary", "manual"] - ["java.io", "File", "length", "()", "summary", "manual"] - ["java.io", "File", "isDirectory", "()", "summary", "manual"] - - ["java.io", "File", "listFiles", "", "summary", "manual"] + - ["java.io", "File", "listFiles", "", "summary", "df-manual"] - ["java.io", "File", "mkdirs", "()", "summary", "manual"] - ["java.io", "FileInputStream", "FileInputStream", "(File)", "summary", "manual"] - - ["java.io", "FileInputStream", "FileInputStream", "(String)", "summary", "manual"] + - ["java.io", "FileInputStream", "FileInputStream", "(String)", "summary", "df-manual"] - ["java.io", "InputStream", "close", "()", "summary", "manual"] - - ["java.io", "ObjectInput", "readObject", "()", "summary", "manual"] + - ["java.io", "ObjectInput", "readObject", "()", "summary", "df-manual"] # this is a deserialization sink modeled in regular CodeQL - ["java.io", "OutputStream", "flush", "()", "summary", "manual"] # The below APIs have numeric flow and are currently being stored as neutral models. # These may be changed to summary models with kinds "value-numeric" and "taint-numeric" (or similar) in the future. diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index 5eb501d19d9..19044ec7a40 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -66,5 +66,5 @@ extensions: extensible: neutralModel data: # summary neutrals - - ["java.net", "Socket", "getOutputStream", "()", "summary", "manual"] - - ["java.net", "Socket", "connect", "(SocketAddress,int)", "summary", "manual"] + - ["java.net", "Socket", "getOutputStream", "()", "summary", "df-manual"] + - ["java.net", "Socket", "connect", "(SocketAddress,int)", "summary", "df-manual"] diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index c04ae453ba3..fc0648c85aa 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -91,7 +91,7 @@ extensions: data: # summary neutrals - ["java.nio.file", "Files", "exists", "(Path,LinkOption[])", "summary", "manual"] - - ["java.nio.file", "Files", "newInputStream", "(Path,LinkOption[])", "summary", "manual"] + - ["java.nio.file", "Files", "newInputStream", "(Path,LinkOption[])", "summary", "df-manual"] # sink neutrals - ["java.nio.file", "Files", "getLastModifiedTime", "", "sink", "hq-manual"] - ["java.nio.file", "Files", "getOwner", "", "sink", "hq-manual"] diff --git a/java/ql/lib/ext/java.util.logging.yml b/java/ql/lib/ext/java.util.logging.yml index d2620776d9a..c4bf4e77300 100644 --- a/java/ql/lib/ext/java.util.logging.yml +++ b/java/ql/lib/ext/java.util.logging.yml @@ -4,5 +4,5 @@ extensions: extensible: neutralModel data: # summary neutrals - - ["java.util.logging", "LogRecord", "getResourceBundle", "()", "summary", "manual"] - - ["java.util.logging", "LogRecord", "setParameters", "", "summary", "manual"] + - ["java.util.logging", "LogRecord", "getResourceBundle", "()", "summary", "df-manual"] + - ["java.util.logging", "LogRecord", "setParameters", "", "summary", "df-manual"] diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index 0cc520f28f8..7ab6780b8f8 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -107,8 +107,8 @@ extensions: - ["java.util", "Collections", False, "unmodifiableSortedMap", "(SortedMap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Collections", False, "unmodifiableSortedMap", "(SortedMap)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["java.util", "Collections", False, "unmodifiableSortedSet", "(SortedSet)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "ConcurrentHashMap", False, "ConcurrentHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] - - ["java.util", "ConcurrentHashMap", False, "ConcurrentHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "ConcurrentHashMap", False, "ConcurrentHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "df-manual"] + - ["java.util", "ConcurrentHashMap", False, "ConcurrentHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "df-manual"] - ["java.util", "Deque", True, "addFirst", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["java.util", "Deque", True, "addLast", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["java.util", "Deque", True, "descendingIterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] @@ -430,14 +430,14 @@ extensions: - ["java.util", "Collections", "emptySet", "()", "summary", "manual"] - ["java.util", "Collections", "sort", "", "summary", "manual"] - ["java.util", "Enumeration", "hasMoreElements", "()", "summary", "manual"] - - ["java.util", "EnumSet", "allOf", "(Class)", "summary", "manual"] - - ["java.util", "EnumSet", "clone", "()", "summary", "manual"] - - ["java.util", "EnumSet", "complementOf", "(EnumSet)", "summary", "manual"] - - ["java.util", "EnumSet", "copyOf", "(Collection)", "summary", "manual"] - - ["java.util", "EnumSet", "copyOf", "(EnumSet)", "summary", "manual"] - - ["java.util", "EnumSet", "noneOf", "(Class)", "summary", "manual"] - - ["java.util", "EnumSet", "of", "", "summary", "manual"] - - ["java.util", "EnumSet", "range", "(Object,Object)", "summary", "manual"] + - ["java.util", "EnumSet", "allOf", "(Class)", "summary", "df-manual"] + - ["java.util", "EnumSet", "clone", "()", "summary", "df-manual"] + - ["java.util", "EnumSet", "complementOf", "(EnumSet)", "summary", "df-manual"] + - ["java.util", "EnumSet", "copyOf", "(Collection)", "summary", "df-manual"] + - ["java.util", "EnumSet", "copyOf", "(EnumSet)", "summary", "df-manual"] + - ["java.util", "EnumSet", "noneOf", "(Class)", "summary", "df-manual"] + - ["java.util", "EnumSet", "of", "", "summary", "df-manual"] + - ["java.util", "EnumSet", "range", "(Object,Object)", "summary", "df-manual"] - ["java.util", "HashMap", "containsKey", "(Object)", "summary", "manual"] - ["java.util", "HashMap", "HashMap", "(int)", "summary", "manual"] - ["java.util", "HashMap", "size", "()", "summary", "manual"] @@ -464,7 +464,7 @@ extensions: - ["java.util", "Optional", "isEmpty", "()", "summary", "manual"] - ["java.util", "Optional", "isPresent", "()", "summary", "manual"] - ["java.util", "Random", "nextInt", "(int)", "summary", "manual"] - - ["java.util", "ResourceBundle", "getBundle", "", "summary", "manual"] + - ["java.util", "ResourceBundle", "getBundle", "", "summary", "df-manual"] - ["java.util", "Set", "contains", "(Object)", "summary", "manual"] - ["java.util", "Set", "isEmpty", "()", "summary", "manual"] - ["java.util", "Set", "size", "()", "summary", "manual"] diff --git a/java/ql/lib/ext/java.util.prefs.model.yml b/java/ql/lib/ext/java.util.prefs.model.yml index 8d33596bcfc..11289e0782b 100644 --- a/java/ql/lib/ext/java.util.prefs.model.yml +++ b/java/ql/lib/ext/java.util.prefs.model.yml @@ -4,20 +4,20 @@ extensions: extensible: neutralModel data: # summary neutrals - - ["java.util.prefs", "Preferences", "get", "(String,String)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "getBoolean", "(String,boolean)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "getByteArray", "(String,byte[])", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "getDouble", "(String,double)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "getFloat", "(String,float)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "getInt", "(String,int)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "getLong", "(String,int)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "put", "(String,String)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "putBoolean", "(String,boolean)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "putByteArray", "(String,byte[])", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "putDouble", "(String,double)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "putFloat", "(String,float)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "putInt", "(String,int)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs - - ["java.util.prefs", "Preferences", "putLong", "(String,int)", "summary", "manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "get", "(String,String)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getBoolean", "(String,boolean)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getByteArray", "(String,byte[])", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getDouble", "(String,double)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getFloat", "(String,float)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getInt", "(String,int)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "getLong", "(String,int)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "put", "(String,String)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putBoolean", "(String,boolean)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putByteArray", "(String,byte[])", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putDouble", "(String,double)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putFloat", "(String,float)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putInt", "(String,int)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs + - ["java.util.prefs", "Preferences", "putLong", "(String,int)", "summary", "df-manual"] # needs to be modeled by regular CodeQL matching the get and set keys to reduce FPs # sink neutrals - ["java.util.prefs", "AbstractPreferences", "nodeExists", "", "sink", "hq-manual"] - ["java.util.prefs", "Preferences", "nodeExists", "", "sink", "hq-manual"] diff --git a/java/ql/lib/ext/java.util.regex.model.yml b/java/ql/lib/ext/java.util.regex.model.yml index 02519c64af1..4f0776e59bd 100644 --- a/java/ql/lib/ext/java.util.regex.model.yml +++ b/java/ql/lib/ext/java.util.regex.model.yml @@ -30,9 +30,9 @@ extensions: pack: codeql/java-all extensible: neutralModel data: - - ["java.util.regex", "Matcher", "appendReplacement", "(StringBuffer,String)", "summary", "manual"] - - ["java.util.regex", "Matcher", "appendTail", "(StringBuffer)", "summary", "manual"] + - ["java.util.regex", "Matcher", "appendReplacement", "(StringBuffer,String)", "summary", "df-manual"] + - ["java.util.regex", "Matcher", "appendTail", "(StringBuffer)", "summary", "df-manual"] - ["java.util.regex", "Matcher", "find", "()", "summary", "manual"] - - ["java.util.regex", "Matcher", "pattern", "()", "summary", "manual"] - - ["java.util.regex", "Pattern", "compile", "(String,int)", "summary", "manual"] - - ["java.util.regex", "Pattern", "pattern", "()", "summary", "manual"] + - ["java.util.regex", "Matcher", "pattern", "()", "summary", "df-manual"] + - ["java.util.regex", "Pattern", "compile", "(String,int)", "summary", "df-manual"] + - ["java.util.regex", "Pattern", "pattern", "()", "summary", "df-manual"] diff --git a/java/ql/lib/ext/javax.crypto.model.yml b/java/ql/lib/ext/javax.crypto.model.yml index 40db2df856f..53b54f1a22d 100644 --- a/java/ql/lib/ext/javax.crypto.model.yml +++ b/java/ql/lib/ext/javax.crypto.model.yml @@ -24,5 +24,5 @@ extensions: - ["javax.crypto", "Cipher", "update", "", "summary", "manual"] - ["javax.crypto", "Cipher", "updateAAD", "", "summary", "manual"] - ["javax.crypto", "Cipher", "wrap", "", "summary", "manual"] - - ["javax.crypto", "Mac", "init", "(Key)", "summary", "manual"] - - ["javax.crypto", "Mac", "doFinal", "()", "summary", "manual"] + - ["javax.crypto", "Mac", "init", "(Key)", "summary", "df-manual"] + - ["javax.crypto", "Mac", "doFinal", "()", "summary", "df-manual"] diff --git a/java/ql/lib/ext/javax.crypto.spec.model.yml b/java/ql/lib/ext/javax.crypto.spec.model.yml index 759197d52e7..2a88b6275fd 100644 --- a/java/ql/lib/ext/javax.crypto.spec.model.yml +++ b/java/ql/lib/ext/javax.crypto.spec.model.yml @@ -30,4 +30,4 @@ extensions: pack: codeql/java-all extensible: neutralModel data: - - ["javax.crypto.spec", "SecretKeySpec", "SecretKeySpec", "(byte[],String)", "summary", "manual"] + - ["javax.crypto.spec", "SecretKeySpec", "SecretKeySpec", "(byte[],String)", "summary", "df-manual"] From 9d44045e6f2601e46270deb36a82363bbcba63a7 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Thu, 14 Mar 2024 09:41:34 +0100 Subject: [PATCH 132/309] Adjust test expectations --- java/ql/test/ext/TestModels/Test.java | 3 --- .../TopJdkApisTest/TopJdkApis/java/io/File.java | 2 +- .../TopJdkApisTest/TopJdkApisTest.expected | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/java/ql/test/ext/TestModels/Test.java b/java/ql/test/ext/TestModels/Test.java index 6bbc7a07879..f54007ada9e 100644 --- a/java/ql/test/ext/TestModels/Test.java +++ b/java/ql/test/ext/TestModels/Test.java @@ -110,9 +110,6 @@ public class Test { File f2 = (File)source(); sink(f2.getPath()); // $hasTaintFlow - File f3 = (File)source(); - sink(f3.listFiles()); // $hasTaintFlow - StringWriter sw = (StringWriter)source(); sink(sw.toString()); // $hasTaintFlow diff --git a/java/ql/test/query-tests/Metrics/GeneratedVsManualCoverage/TopJdkApisTest/TopJdkApis/java/io/File.java b/java/ql/test/query-tests/Metrics/GeneratedVsManualCoverage/TopJdkApisTest/TopJdkApis/java/io/File.java index 878aa9d3086..54a16d3c22d 100644 --- a/java/ql/test/query-tests/Metrics/GeneratedVsManualCoverage/TopJdkApisTest/TopJdkApis/java/io/File.java +++ b/java/ql/test/query-tests/Metrics/GeneratedVsManualCoverage/TopJdkApisTest/TopJdkApis/java/io/File.java @@ -16,7 +16,6 @@ public class File implements Serializable public File(File p0, String p1){} // manual summary public File(String p0){} // manual summary public File(String p0, String p1){} // manual summary - public File[] listFiles(){ return null; } // manual summary public Path toPath(){ return null; } // manual summary public String getAbsolutePath(){ return null; } // manual summary public String getName(){ return null; } // manual summary @@ -26,6 +25,7 @@ public class File implements Serializable public boolean exists(){ return false; } // manual neutral public boolean isDirectory(){ return false; } // manual neutral public boolean isFile(){ return false; } // manual neutral + public File[] listFiles(){ return null; } // manual neutral public boolean mkdirs(){ return false; } // manual neutral public long length(){ return 0; } // manual neutral } diff --git a/java/ql/test/query-tests/Metrics/GeneratedVsManualCoverage/TopJdkApisTest/TopJdkApisTest.expected b/java/ql/test/query-tests/Metrics/GeneratedVsManualCoverage/TopJdkApisTest/TopJdkApisTest.expected index df21c086b2f..64748f77765 100644 --- a/java/ql/test/query-tests/Metrics/GeneratedVsManualCoverage/TopJdkApisTest/TopJdkApisTest.expected +++ b/java/ql/test/query-tests/Metrics/GeneratedVsManualCoverage/TopJdkApisTest/TopJdkApisTest.expected @@ -1,5 +1,5 @@ | java.awt | 0 | 0 | 2 | 1 | 3 | 0.6666666666666666 | 0.0 | 0.6666666666666666 | 0.0 | NaN | 0.3333333333333333 | -| java.io | 0 | 0 | 21 | 15 | 36 | 0.5833333333333334 | 0.0 | 0.5833333333333334 | 0.0 | NaN | 0.4166666666666667 | +| java.io | 0 | 0 | 20 | 16 | 36 | 0.5555555555555556 | 0.0 | 0.5555555555555556 | 0.0 | NaN | 0.4444444444444444 | | java.lang | 0 | 0 | 57 | 88 | 145 | 0.3931034482758621 | 0.0 | 0.3931034482758621 | 0.0 | NaN | 0.6068965517241379 | | java.lang.invoke | 0 | 0 | 0 | 1 | 1 | 0.0 | 0.0 | 0.0 | NaN | NaN | 1.0 | | java.lang.reflect | 0 | 0 | 0 | 4 | 4 | 0.0 | 0.0 | 0.0 | NaN | NaN | 1.0 | From d8c0ab8e1f2a8c2d7bd35025f99fee8329d3cd54 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Thu, 14 Mar 2024 10:11:39 +0100 Subject: [PATCH 133/309] Go: Consider more strings as hardcoded credentials --- go/ql/lib/semmle/go/security/HardcodedCredentials.qll | 6 +----- go/ql/src/Security/CWE-798/HardcodedCredentials.ql | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/go/ql/lib/semmle/go/security/HardcodedCredentials.qll b/go/ql/lib/semmle/go/security/HardcodedCredentials.qll index 84c426ac317..0be50fc2306 100644 --- a/go/ql/lib/semmle/go/security/HardcodedCredentials.qll +++ b/go/ql/lib/semmle/go/security/HardcodedCredentials.qll @@ -37,11 +37,7 @@ module HardcodedCredentials { /** A hardcoded string literal as a source for hardcoded credentials. */ private class HardcodedStringSource extends Source { - HardcodedStringSource() { - exists(StringLit val | this.asExpr() = val | - not PasswordHeuristics::isDummyPassword(val.getStringValue()) - ) - } + HardcodedStringSource() { this.asExpr() instanceof StringLit } } /** A use of a credential. */ diff --git a/go/ql/src/Security/CWE-798/HardcodedCredentials.ql b/go/ql/src/Security/CWE-798/HardcodedCredentials.ql index c0c623b50b9..6dd422413f7 100644 --- a/go/ql/src/Security/CWE-798/HardcodedCredentials.ql +++ b/go/ql/src/Security/CWE-798/HardcodedCredentials.ql @@ -60,6 +60,6 @@ where message = "Hard-coded private key." or HardcodedCredentials::Flow::flow(source, sink) and - type = SensitiveExpr::password() and - message = "Hard-coded credential." + type = SensitiveExpr::secret() and + message = "Hard-coded $@." select sink, message, source, type.toString() From c375497fa531c375fb8b9a1606390d504fc09d24 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Thu, 14 Mar 2024 09:16:04 +0000 Subject: [PATCH 134/309] Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll --- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 6d24664331f..db92731e3b1 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1354,7 +1354,7 @@ private predicate exprNodeShouldBeIndirectOperand(IndirectOperand node, Expr e, // When an argument (qualifier or position) is a PR value and the // parameter (qualifier or positional) is a (const) reference, IR // construction introduces a temporary `IRVariable`. The `VariableAddress` - // instruction has the argument as it's `getConvertedResultExpression` + // instruction has the argument as its `getConvertedResultExpression` // result. However, the instruction actually represents the _address_ of // the argument. So to fix this mismatch, we have the indirection of the // `VariableAddressInstruction` map to the expression. From a24432baccc03cc29ed31e840768c534aa34b6af Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Thu, 14 Mar 2024 09:23:33 +0000 Subject: [PATCH 135/309] Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll --- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index db92731e3b1..a3459c3ed10 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1351,7 +1351,7 @@ private predicate indirectExprNodeShouldBeIndirectOperand( /** Holds if `node` should be an `IndirectOperand` that maps `node.asExpr()` to `e`. */ private predicate exprNodeShouldBeIndirectOperand(IndirectOperand node, Expr e, int n) { exists(ArgumentOperand operand | - // When an argument (qualifier or position) is a PR value and the + // When an argument (qualifier or positional) is a prvalue and the // parameter (qualifier or positional) is a (const) reference, IR // construction introduces a temporary `IRVariable`. The `VariableAddress` // instruction has the argument as its `getConvertedResultExpression` From 87b2dcc89245de8dbfae1c4d948ef55e02254cbc Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Thu, 14 Mar 2024 10:25:04 +0100 Subject: [PATCH 136/309] Adjust test expectations --- .../CWE-798/HardcodedCredentials.expected | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/go/ql/test/query-tests/Security/CWE-798/HardcodedCredentials.expected b/go/ql/test/query-tests/Security/CWE-798/HardcodedCredentials.expected index 8eb49a5cc80..0526c0ba604 100644 --- a/go/ql/test/query-tests/Security/CWE-798/HardcodedCredentials.expected +++ b/go/ql/test/query-tests/Security/CWE-798/HardcodedCredentials.expected @@ -1,28 +1,28 @@ | AlertSuppressionExample.go:11:14:11:40 | "horsebatterystaplecorrect" | Hard-coded $@. | AlertSuppressionExample.go:11:14:11:40 | "horsebatterystaplecorrect" | password | | HardcodedCredentials.go:10:13:10:28 | "s3cretp4ssword" | Hard-coded $@. | HardcodedCredentials.go:10:13:10:28 | "s3cretp4ssword" | password | -| HardcodedKeysBad.go:19:28:19:39 | mySigningKey | Hard-coded credential. | HardcodedKeysBad.go:11:25:11:37 | "AllYourBase" | password | -| jwt.go:42:28:42:39 | mySigningKey | Hard-coded credential. | jwt.go:33:25:33:30 | "key1" | password | -| jwt.go:49:16:49:29 | type conversion | Hard-coded credential. | jwt.go:49:23:49:28 | "key2" | password | -| jwt.go:68:44:68:46 | key | Hard-coded credential. | jwt.go:67:16:67:21 | `key3` | password | -| jwt.go:73:66:73:68 | key | Hard-coded credential. | jwt.go:72:16:72:21 | "key4" | password | -| jwt.go:81:15:81:18 | key2 | Hard-coded credential. | jwt.go:76:17:76:22 | "key5" | password | -| jwt.go:91:41:91:43 | key | Hard-coded credential. | jwt.go:87:16:87:21 | "key6" | password | -| jwt.go:98:66:98:69 | key2 | Hard-coded credential. | jwt.go:96:17:96:22 | "key7" | password | -| jwt.go:109:30:109:32 | key | Hard-coded credential. | jwt.go:104:16:104:21 | "key8" | password | -| jwt.go:114:16:114:24 | sharedKey | Hard-coded credential. | jwt.go:113:22:113:27 | "key9" | password | -| jwt.go:120:16:120:30 | sharedKeyglobal | Hard-coded credential. | jwt.go:117:30:117:36 | "key10" | password | -| jwt.go:126:20:126:34 | type conversion | Hard-coded credential. | jwt.go:126:27:126:33 | "key11" | password | -| jwt.go:143:39:143:41 | key | Hard-coded credential. | jwt.go:141:16:141:22 | "key12" | password | -| jwt.go:152:11:152:13 | key | Hard-coded credential. | jwt.go:148:16:148:22 | "key13" | password | -| jwt.go:160:34:160:36 | key | Hard-coded credential. | jwt.go:159:16:159:22 | "key14" | password | -| jwt.go:166:32:166:34 | key | Hard-coded credential. | jwt.go:165:16:165:22 | "key15" | password | -| jwt.go:172:41:172:43 | key | Hard-coded credential. | jwt.go:171:16:171:22 | "key16" | password | -| jwt.go:178:51:178:53 | key | Hard-coded credential. | jwt.go:177:16:177:22 | "key17" | password | -| jwt.go:184:42:184:44 | key | Hard-coded credential. | jwt.go:183:16:183:22 | "key18" | password | -| jwt.go:192:33:192:35 | key | Hard-coded credential. | jwt.go:189:16:189:22 | "key19" | password | +| HardcodedKeysBad.go:19:28:19:39 | mySigningKey | Hard-coded $@. | HardcodedKeysBad.go:11:25:11:37 | "AllYourBase" | secret | +| jwt.go:42:28:42:39 | mySigningKey | Hard-coded $@. | jwt.go:33:25:33:30 | "key1" | secret | +| jwt.go:49:16:49:29 | type conversion | Hard-coded $@. | jwt.go:49:23:49:28 | "key2" | secret | +| jwt.go:68:44:68:46 | key | Hard-coded $@. | jwt.go:67:16:67:21 | `key3` | secret | +| jwt.go:73:66:73:68 | key | Hard-coded $@. | jwt.go:72:16:72:21 | "key4" | secret | +| jwt.go:81:15:81:18 | key2 | Hard-coded $@. | jwt.go:76:17:76:22 | "key5" | secret | +| jwt.go:91:41:91:43 | key | Hard-coded $@. | jwt.go:87:16:87:21 | "key6" | secret | +| jwt.go:98:66:98:69 | key2 | Hard-coded $@. | jwt.go:96:17:96:22 | "key7" | secret | +| jwt.go:109:30:109:32 | key | Hard-coded $@. | jwt.go:104:16:104:21 | "key8" | secret | +| jwt.go:114:16:114:24 | sharedKey | Hard-coded $@. | jwt.go:113:22:113:27 | "key9" | secret | +| jwt.go:120:16:120:30 | sharedKeyglobal | Hard-coded $@. | jwt.go:117:30:117:36 | "key10" | secret | +| jwt.go:126:20:126:34 | type conversion | Hard-coded $@. | jwt.go:126:27:126:33 | "key11" | secret | +| jwt.go:143:39:143:41 | key | Hard-coded $@. | jwt.go:141:16:141:22 | "key12" | secret | +| jwt.go:152:11:152:13 | key | Hard-coded $@. | jwt.go:148:16:148:22 | "key13" | secret | +| jwt.go:160:34:160:36 | key | Hard-coded $@. | jwt.go:159:16:159:22 | "key14" | secret | +| jwt.go:166:32:166:34 | key | Hard-coded $@. | jwt.go:165:16:165:22 | "key15" | secret | +| jwt.go:172:41:172:43 | key | Hard-coded $@. | jwt.go:171:16:171:22 | "key16" | secret | +| jwt.go:178:51:178:53 | key | Hard-coded $@. | jwt.go:177:16:177:22 | "key17" | secret | +| jwt.go:184:42:184:44 | key | Hard-coded $@. | jwt.go:183:16:183:22 | "key18" | secret | +| jwt.go:192:33:192:35 | key | Hard-coded $@. | jwt.go:189:16:189:22 | "key19" | secret | | main.go:6:14:6:23 | "p4ssw0rd" | Hard-coded $@. | main.go:6:14:6:23 | "p4ssw0rd" | password | | main.go:12:1:26:30 | `-----BEGIN RSA PRIVATE KEY-----\nMIICXQIBAAKBgQC/tzdtXKXcX6F3v3hR6+uYyZpIeXhhLflJkY2eILLQfAnwKlT5\nxIHW5QZcHQV9sCyZ8qSdPGif7PwgMbButMbByiZhCSugUFb6vjVqoktmslYF4LKH\niDgvmlwuJW0TvynxBLzDCwrRP+gpRT8wuAortWAx/03POTw7Mzi2cIPNsQIDAQAB\nAoGAMHCrqY9CPTdQhgAz94cDpTwzJmLCvtMt7J/BR5X9eF4O6MbZZ652HAUMIVQX\n4hUUf+VmIHB2AwqO/ddwO9ijaz04BslOSy/iYevHGlH65q4587NSlFWjvILMIQCM\nGBjfzJIxlLHVhjc2cFnyAE5YWjF/OMnJN0OhP9pxmCP/iM0CQQDxmQndQLdnV7+6\n8SvBHE8bg1LE8/BzTt68U3aWwiBjrHMFgzr//7Za4VF7h4ilFgmbh0F3sYz+C8iO\n0JrBRPeLAkEAyyTwnv/pgqTS/wuxIHUxRBpbdk3YvILAthNrGQg5uzA7eSeFu7Mv\nGtEkXsaqCDbdehgarFfNN8PB6OMRIbsXMwJBAOjhH8UJ0L/osYO9XPO0GfznRS1c\nBnbfm4vk1/bSAO6TF/xEVubU0i4f6q8sIecfqvskEVMS7lkjeptPMR0DIakCQE+7\nuQH/Wizf+r0GXshplyOu4LVHisk63N7aMlAJ7XbuUHmWLKRmiReSfR8CBNzig/2X\nFmkMsUyw9hwte5zsrQcCQQCrOkZvzUj9j1HKG+32EJ2E4kisJZmAgF9GI+z6oxpi\nExped5tp8EWytCjRwKhOcc0068SgaqhKvyyUWpbx32VQ\n-----END RSA PRIVATE KEY-----` | Hard-coded private key. | main.go:12:1:26:30 | `-----BEGIN RSA PRIVATE KEY-----\nMIICXQIBAAKBgQC/tzdtXKXcX6F3v3hR6+uYyZpIeXhhLflJkY2eILLQfAnwKlT5\nxIHW5QZcHQV9sCyZ8qSdPGif7PwgMbButMbByiZhCSugUFb6vjVqoktmslYF4LKH\niDgvmlwuJW0TvynxBLzDCwrRP+gpRT8wuAortWAx/03POTw7Mzi2cIPNsQIDAQAB\nAoGAMHCrqY9CPTdQhgAz94cDpTwzJmLCvtMt7J/BR5X9eF4O6MbZZ652HAUMIVQX\n4hUUf+VmIHB2AwqO/ddwO9ijaz04BslOSy/iYevHGlH65q4587NSlFWjvILMIQCM\nGBjfzJIxlLHVhjc2cFnyAE5YWjF/OMnJN0OhP9pxmCP/iM0CQQDxmQndQLdnV7+6\n8SvBHE8bg1LE8/BzTt68U3aWwiBjrHMFgzr//7Za4VF7h4ilFgmbh0F3sYz+C8iO\n0JrBRPeLAkEAyyTwnv/pgqTS/wuxIHUxRBpbdk3YvILAthNrGQg5uzA7eSeFu7Mv\nGtEkXsaqCDbdehgarFfNN8PB6OMRIbsXMwJBAOjhH8UJ0L/osYO9XPO0GfznRS1c\nBnbfm4vk1/bSAO6TF/xEVubU0i4f6q8sIecfqvskEVMS7lkjeptPMR0DIakCQE+7\nuQH/Wizf+r0GXshplyOu4LVHisk63N7aMlAJ7XbuUHmWLKRmiReSfR8CBNzig/2X\nFmkMsUyw9hwte5zsrQcCQQCrOkZvzUj9j1HKG+32EJ2E4kisJZmAgF9GI+z6oxpi\nExped5tp8EWytCjRwKhOcc0068SgaqhKvyyUWpbx32VQ\n-----END RSA PRIVATE KEY-----` | certificate | | main.go:44:14:44:19 | "p4ss" | Hard-coded $@. | main.go:44:14:44:19 | "p4ss" | password | | main.go:48:13:48:15 | tmp | Hard-coded $@. | main.go:44:14:44:19 | "p4ss" | password | | main.go:50:15:50:21 | "p4ss2" | Hard-coded $@. | main.go:50:15:50:21 | "p4ss2" | password | -| sanitizer.go:18:44:18:46 | key | Hard-coded credential. | sanitizer.go:17:16:17:25 | `some_key` | password | +| sanitizer.go:18:44:18:46 | key | Hard-coded $@. | sanitizer.go:17:16:17:25 | `some_key` | secret | From 20691e409cc0cff6472f03f846a533b12881db97 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Thu, 14 Mar 2024 11:56:43 +0100 Subject: [PATCH 137/309] Add change note --- .../2024-03-14-hardcoded-credentials-more-sources.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 go/ql/src/change-notes/2024-03-14-hardcoded-credentials-more-sources.md diff --git a/go/ql/src/change-notes/2024-03-14-hardcoded-credentials-more-sources.md b/go/ql/src/change-notes/2024-03-14-hardcoded-credentials-more-sources.md new file mode 100644 index 00000000000..ad6f712958e --- /dev/null +++ b/go/ql/src/change-notes/2024-03-14-hardcoded-credentials-more-sources.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `go/hardcoded-credentials` no longer discards string literals based on "weak password" heuristics. From 5b734c76b651241e0776faf1ffa46e8a01a125c1 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <owen-mc@github.com> Date: Tue, 5 Mar 2024 15:50:16 +0000 Subject: [PATCH 138/309] Add manual neutral models for java.util.Locale and its subclasses --- java/ql/lib/ext/java.util.model.yml | 55 +++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index 7ab6780b8f8..8f621df591e 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -451,7 +451,62 @@ extensions: - ["java.util", "List", "of", "()", "summary", "manual"] - ["java.util", "List", "sort", "(Comparator)", "summary", "manual"] - ["java.util", "List", "size", "()", "summary", "manual"] + - ["java.util", "Locale$Builder", "addUnicodeLocaleAttribute", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "build", "()", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "clear", "()", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "clearExtensions", "()", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "removeUnicodeLocaleAttribute", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setExtension", "(char,String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setLanguage", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setLanguageTag", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setLocale", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setLocale", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setRegion", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setScript", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setUnicodeLocaleKeyword", "(String,String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setVariant", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$Builder", "setVariant", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$LanguageRange", "LanguageRange", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$LanguageRange", "LanguageRange", "(String,double)", "summary", "df-manual"] + - ["java.util", "Locale$LanguageRange", "getRange", "()", "summary", "df-manual"] + - ["java.util", "Locale$LanguageRange", "mapEquivalents", "(List,Map)", "summary", "df-manual"] + - ["java.util", "Locale$LanguageRange", "mapEquivalents", "(List,Map)", "summary", "df-manual"] + - ["java.util", "Locale$LanguageRange", "parse", "(String)", "summary", "df-manual"] + - ["java.util", "Locale$LanguageRange", "parse", "(String,Map)", "summary", "df-manual"] + - ["java.util", "Locale$LanguageRange", "parse", "(String,Map)", "summary", "df-manual"] + - ["java.util", "Locale", "Locale", "(String)", "summary", "df-manual"] + - ["java.util", "Locale", "Locale", "(String,String)", "summary", "df-manual"] + - ["java.util", "Locale", "Locale", "(String,String)", "summary", "df-manual"] + - ["java.util", "Locale", "Locale", "(String,String,String)", "summary", "df-manual"] + - ["java.util", "Locale", "Locale", "(String,String,String)", "summary", "df-manual"] + - ["java.util", "Locale", "Locale", "(String,String,String)", "summary", "df-manual"] + - ["java.util", "Locale", "filterTags", "(List,Collection)", "summary", "df-manual"] + - ["java.util", "Locale", "filterTags", "(List,Collection,Locale$FilteringMode)", "summary", "df-manual"] - ["java.util", "Locale", "forLanguageTag", "(String)", "summary", "manual"] + - ["java.util", "Locale", "getCountry", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayCountry", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayCountry", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayCountry", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayLanguage", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayLanguage", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayLanguage", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayName", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayName", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayName", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayScript", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayScript", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayScript", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayVariant", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayVariant", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getDisplayVariant", "(Locale)", "summary", "df-manual"] + - ["java.util", "Locale", "getExtensionKeys", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getISO3Language", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getLanguage", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getScript", "()", "summary", "df-manual"] + - ["java.util", "Locale", "getVariant", "()", "summary", "df-manual"] + - ["java.util", "Locale", "lookupTag", "(List,Collection)", "summary", "df-manual"] + - ["java.util", "Locale", "stripExtensions", "()", "summary", "df-manual"] + - ["java.util", "Locale", "toLanguageTag", "()", "summary", "df-manual"] - ["java.util", "Map", "containsKey", "(Object)", "summary", "manual"] - ["java.util", "Map", "isEmpty", "()", "summary", "manual"] - ["java.util", "Map", "size", "()", "summary", "manual"] From 2bd08838d47309e6dbae9db9000cf39ec94587d2 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <owen-mc@github.com> Date: Wed, 6 Mar 2024 14:31:00 +0000 Subject: [PATCH 139/309] Add manual neutral models for java.lang.ClassLoader --- java/ql/lib/ext/java.lang.model.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/java/ql/lib/ext/java.lang.model.yml b/java/ql/lib/ext/java.lang.model.yml index 0569b4c209c..fff3a90dcb3 100644 --- a/java/ql/lib/ext/java.lang.model.yml +++ b/java/ql/lib/ext/java.lang.model.yml @@ -185,8 +185,19 @@ extensions: - ["java.lang", "Class", "isAssignableFrom", "(Class)", "summary", "manual"] - ["java.lang", "Class", "isInstance", "(Object)", "summary", "manual"] - ["java.lang", "Class", "toString", "()", "summary", "manual"] + - ["java.lang", "ClassLoader", "findResource", "(String)", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "getDefinedPackage", "(String)", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "getDefinedPackage", "(String)", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "getName", "()", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "getParent", "()", "summary", "df-manual"] - ["java.lang", "ClassLoader", "getResource", "(String)", "summary", "manual"] - ["java.lang", "ClassLoader", "getResourceAsStream", "(String)", "summary", "manual"] + - ["java.lang", "ClassLoader", "getSystemResource", "(String)", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "getUnnamedModule", "()", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "loadClass", "(String)", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "loadClass", "(String,boolean)", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "setClassAssertionStatus", "(String,boolean)", "summary", "df-manual"] + - ["java.lang", "ClassLoader", "setPackageAssertionStatus", "(String,boolean)", "summary", "df-manual"] - ["java.lang", "Enum", "Enum", "(String,int)", "summary", "manual"] - ["java.lang", "Enum", "equals", "(Object)", "summary", "manual"] - ["java.lang", "Enum", "hashCode", "()", "summary", "manual"] From 7fdea27d331d7aae758aa0d6b2291cd043ae28b1 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Thu, 14 Mar 2024 11:46:15 +0000 Subject: [PATCH 140/309] C++: Rename 'IndirectTemporaryExpr' to 'IndirectOperandExprNode'. --- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index a3459c3ed10..046e37ae6be 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1552,8 +1552,8 @@ private class IndirectArgumentOutExprNode extends ExprNodeBase, IndirectArgument final override Expr getConvertedExpr(int n) { exprNodeShouldBeIndirectOutNode(this, result, n) } } -private class IndirectTemporaryExpr extends ExprNodeBase instanceof IndirectOperand { - IndirectTemporaryExpr() { exprNodeShouldBeIndirectOperand(this, _, _) } +private class IndirectOperandExprNode extends ExprNodeBase instanceof IndirectOperand { + IndirectOperandExprNode() { exprNodeShouldBeIndirectOperand(this, _, _) } final override Expr getConvertedExpr(int n) { exprNodeShouldBeIndirectOperand(this, result, n) } } From 8c31b612ca01c004e3bbfab2881b2d2bb60ebd88 Mon Sep 17 00:00:00 2001 From: Joe Farebrother <joefarebrother@github.com> Date: Wed, 13 Mar 2024 15:48:21 +0000 Subject: [PATCH 141/309] Model UploadedFile `original_filename` and `read` --- .../ruby/frameworks/ActionController.qll | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll index be1df5066e1..c6d6014f8da 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll @@ -8,6 +8,7 @@ private import codeql.ruby.controlflow.CfgNodes private import codeql.ruby.DataFlow private import codeql.ruby.dataflow.RemoteFlowSources private import codeql.ruby.ApiGraphs +private import codeql.ruby.typetracking.TypeTracking private import codeql.ruby.frameworks.ActionDispatch private import codeql.ruby.frameworks.ActionView private import codeql.ruby.frameworks.Rails @@ -505,6 +506,27 @@ private module ParamsSummaries { ] } + /** Gets a field of an instance of `ActionController::Parameters` */ + private DataFlow::LocalSourceNode paramsField() { + result = + [ + paramsInstance(), + paramsInstance().getAMethodCall(methodReturnsTaintFromSelf()).getAnElementRead*() + ] + } + + private DataFlow::LocalSourceNode paramsFieldType(TypeTracker t) { + t.start() and + result = paramsField() + or + exists(TypeTracker t2 | result = paramsFieldType(t2).track(t2, t)) + } + + /** Gets a node with a type that can be a field of `ActionController::Parameters */ + private DataFlow::LocalSourceNode paramsFieldType() { + paramsFieldType(TypeTracker::end()).flowsTo(result) + } + /** * A flow summary for methods on `ActionController::Parameters` which * propagate taint from receiver to return value. @@ -569,6 +591,44 @@ private module ParamsSummaries { preservesValue = false } } + + /** Flow summaries for `ActiveDispatch::Http::UploadedFile`, which can be an field of `ActionController::Parameters`. */ + module UploadedFileSummaries { + /** Flow summary for `ActiveDispatch::Http::UploadedFile.original_filename` */ + private class UploadedFileOriginalFilenameSummary extends SummarizedCallable { + UploadedFileOriginalFilenameSummary() { + this = "ActionDispatch::Http::UploadedFile::original_filename" + } + + override MethodCall getACall() { + result = paramsFieldType().getAMethodCall("original_filename").asExpr().getExpr() and + result.getNumberOfArguments() = 0 + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + input = "Argument[self]" and output = "ReturnValue" and preservesValue = false + } + } + + /** + * Flow summary for `ActiveDispatch::Http::UploadedFile.original_filename`, + * which propagates taint from the receiver to the return value or to the second (buffer) argument + */ + private class UploadedFileReadSummary extends SummarizedCallable { + UploadedFileReadSummary() { this = "ActionDispatch::Http::UploadedFile::read" } + + override MethodCall getACall() { + result = paramsFieldType().getAMethodCall("read").asExpr().getExpr() and + result.getNumberOfArguments() in [0 .. 2] + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + input = "Argument[self]" and + output = ["ReturnValue", "Argument[1]"] and + preservesValue = false + } + } + } } /** From 5333c759192212565762a33680bf9e843daac11c Mon Sep 17 00:00:00 2001 From: Joe Farebrother <joefarebrother@github.com> Date: Thu, 14 Mar 2024 14:44:20 +0000 Subject: [PATCH 142/309] Model additional string attributes --- .../codeql/ruby/frameworks/ActionController.qll | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll index c6d6014f8da..0c49b1f074f 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll @@ -594,14 +594,18 @@ private module ParamsSummaries { /** Flow summaries for `ActiveDispatch::Http::UploadedFile`, which can be an field of `ActionController::Parameters`. */ module UploadedFileSummaries { - /** Flow summary for `ActiveDispatch::Http::UploadedFile.original_filename` */ - private class UploadedFileOriginalFilenameSummary extends SummarizedCallable { - UploadedFileOriginalFilenameSummary() { - this = "ActionDispatch::Http::UploadedFile::original_filename" + /** Flow summary for various string attributes of `UploadedFile`, including `original_filename`, `content_type`, and `headers`. */ + private class UploadedFileStringAttributeSummary extends SummarizedCallable { + UploadedFileStringAttributeSummary() { + this = "ActionDispatch::Http::UploadedFile::[original_filename,content_type,headers]" } override MethodCall getACall() { - result = paramsFieldType().getAMethodCall("original_filename").asExpr().getExpr() and + result = + paramsFieldType() + .getAMethodCall(["original_filename", "content_type", "headers"]) + .asExpr() + .getExpr() and result.getNumberOfArguments() = 0 } From 3e61be1b6a1a20db3ffb6624c57fc558ce830715 Mon Sep 17 00:00:00 2001 From: Joe Farebrother <joefarebrother@github.com> Date: Thu, 14 Mar 2024 14:46:46 +0000 Subject: [PATCH 143/309] Add test cases --- .../dataflow/local/TaintStep.expected | 3 ++ .../ActionController.expected | 25 ++++++++++++ .../action_controller/params-flow.expected | 40 +++++++++++++++++++ .../action_controller/params_flow.rb | 29 ++++++++++++++ 4 files changed, 97 insertions(+) diff --git a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected index f640ff6551a..e73f2e3cb10 100644 --- a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected @@ -2835,6 +2835,9 @@ | file://:0:0:0:0 | [summary param] self in ActionController::Parameters#merge | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionController::Parameters#merge | | file://:0:0:0:0 | [summary param] self in ActionController::Parameters#merge! | file://:0:0:0:0 | [summary] to write: Argument[self] in ActionController::Parameters#merge! | | file://:0:0:0:0 | [summary param] self in ActionController::Parameters#merge! | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionController::Parameters#merge! | +| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile::[original_filename,content_type,headers] | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionDispatch::Http::UploadedFile::[original_filename,content_type,headers] | +| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile::read | file://:0:0:0:0 | [summary] to write: Argument[1] in ActionDispatch::Http::UploadedFile::read | +| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile::read | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionDispatch::Http::UploadedFile::read | | file://:0:0:0:0 | [summary param] self in ActiveSupportStringTransform | file://:0:0:0:0 | [summary] to write: ReturnValue in ActiveSupportStringTransform | | file://:0:0:0:0 | [summary param] self in [] | file://:0:0:0:0 | [summary] to write: ReturnValue in [] | | file://:0:0:0:0 | [summary param] self in \| | file://:0:0:0:0 | [summary] read: Argument[self].Element[any] in \| | diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/ActionController.expected b/ruby/ql/test/library-tests/frameworks/action_controller/ActionController.expected index 9276cc0b350..7e5b5d6d001 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/ActionController.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/ActionController.expected @@ -14,6 +14,7 @@ actionControllerControllerClasses | input_access.rb:1:1:58:3 | UsersController | | params_flow.rb:1:1:162:3 | MyController | | params_flow.rb:170:1:178:3 | Subclass | +| params_flow.rb:180:1:205:5 | UploadedFileTests | actionControllerActionMethods | app/controllers/comments_controller.rb:17:3:51:5 | index | | app/controllers/comments_controller.rb:53:3:54:5 | create | @@ -86,6 +87,12 @@ actionControllerActionMethods | params_flow.rb:152:3:159:5 | m33 | | params_flow.rb:165:3:167:5 | m34 | | params_flow.rb:171:3:173:5 | m35 | +| params_flow.rb:181:3:183:5 | m36 | +| params_flow.rb:185:3:187:5 | m37 | +| params_flow.rb:189:3:191:5 | m38 | +| params_flow.rb:193:3:195:5 | m39 | +| params_flow.rb:197:3:201:5 | m40 | +| params_flow.rb:203:3:205:5 | m41 | paramsCalls | app/controllers/comments_controller.rb:80:36:80:41 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | @@ -146,6 +153,12 @@ paramsCalls | params_flow.rb:166:10:166:15 | call to params | | params_flow.rb:172:10:172:15 | call to params | | params_flow.rb:176:10:176:15 | call to params | +| params_flow.rb:182:10:182:15 | call to params | +| params_flow.rb:186:10:186:15 | call to params | +| params_flow.rb:190:10:190:15 | call to params | +| params_flow.rb:194:10:194:15 | call to params | +| params_flow.rb:199:5:199:10 | call to params | +| params_flow.rb:204:10:204:15 | call to params | paramsSources | app/controllers/comments_controller.rb:80:36:80:41 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | @@ -206,6 +219,12 @@ paramsSources | params_flow.rb:166:10:166:15 | call to params | | params_flow.rb:172:10:172:15 | call to params | | params_flow.rb:176:10:176:15 | call to params | +| params_flow.rb:182:10:182:15 | call to params | +| params_flow.rb:186:10:186:15 | call to params | +| params_flow.rb:190:10:190:15 | call to params | +| params_flow.rb:194:10:194:15 | call to params | +| params_flow.rb:199:5:199:10 | call to params | +| params_flow.rb:204:10:204:15 | call to params | httpInputAccesses | app/controllers/application_controller.rb:11:53:11:64 | call to path | ActionDispatch::Request#path | | app/controllers/comments_controller.rb:18:5:18:18 | call to params | ActionDispatch::Request#params | @@ -324,6 +343,12 @@ httpInputAccesses | params_flow.rb:166:10:166:15 | call to params | ActionController::Metal#params | | params_flow.rb:172:10:172:15 | call to params | ActionController::Metal#params | | params_flow.rb:176:10:176:15 | call to params | ActionController::Metal#params | +| params_flow.rb:182:10:182:15 | call to params | ActionController::Metal#params | +| params_flow.rb:186:10:186:15 | call to params | ActionController::Metal#params | +| params_flow.rb:190:10:190:15 | call to params | ActionController::Metal#params | +| params_flow.rb:194:10:194:15 | call to params | ActionController::Metal#params | +| params_flow.rb:199:5:199:10 | call to params | ActionController::Metal#params | +| params_flow.rb:204:10:204:15 | call to params | ActionController::Metal#params | cookiesCalls | app/controllers/foo/bars_controller.rb:10:27:10:33 | call to cookies | cookiesSources diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected index 69946539384..698d3b23ccb 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected @@ -101,6 +101,21 @@ edges | params_flow.rb:166:10:166:15 | call to params | params_flow.rb:166:10:166:19 | ...[...] | provenance | | | params_flow.rb:172:10:172:15 | call to params | params_flow.rb:172:10:172:19 | ...[...] | provenance | | | params_flow.rb:176:10:176:15 | call to params | params_flow.rb:176:10:176:19 | ...[...] | provenance | | +| params_flow.rb:182:10:182:15 | call to params | params_flow.rb:182:10:182:22 | ...[...] | provenance | | +| params_flow.rb:182:10:182:22 | ...[...] | params_flow.rb:182:10:182:40 | call to original_filename | provenance | | +| params_flow.rb:186:10:186:15 | call to params | params_flow.rb:186:10:186:30 | call to require | provenance | | +| params_flow.rb:186:10:186:30 | call to require | params_flow.rb:186:10:186:43 | call to content_type | provenance | | +| params_flow.rb:190:10:190:15 | call to params | params_flow.rb:190:10:190:29 | call to permit | provenance | | +| params_flow.rb:190:10:190:29 | call to permit | params_flow.rb:190:10:190:36 | ...[...] | provenance | | +| params_flow.rb:190:10:190:36 | ...[...] | params_flow.rb:190:10:190:44 | call to headers | provenance | | +| params_flow.rb:194:10:194:15 | call to params | params_flow.rb:194:10:194:19 | ...[...] | provenance | | +| params_flow.rb:194:10:194:19 | ...[...] | params_flow.rb:194:10:194:31 | call to to_unsafe_h | provenance | | +| params_flow.rb:194:10:194:31 | call to to_unsafe_h | params_flow.rb:194:10:194:35 | ...[...] | provenance | | +| params_flow.rb:194:10:194:35 | ...[...] | params_flow.rb:194:10:194:42 | ...[...] | provenance | | +| params_flow.rb:194:10:194:42 | ...[...] | params_flow.rb:194:10:194:47 | call to read | provenance | | +| params_flow.rb:198:5:198:10 | call to params | params_flow.rb:198:5:198:17 | ...[...] | provenance | | +| params_flow.rb:198:5:198:17 | ...[...] | params_flow.rb:198:28:198:28 | [post] a | provenance | | +| params_flow.rb:198:28:198:28 | [post] a | params_flow.rb:199:10:199:10 | a | provenance | | nodes | filter_flow.rb:14:5:14:8 | [post] self [@foo] | semmle.label | [post] self [@foo] | | filter_flow.rb:14:12:14:17 | call to params | semmle.label | call to params | @@ -244,6 +259,26 @@ nodes | params_flow.rb:172:10:172:19 | ...[...] | semmle.label | ...[...] | | params_flow.rb:176:10:176:15 | call to params | semmle.label | call to params | | params_flow.rb:176:10:176:19 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:182:10:182:15 | call to params | semmle.label | call to params | +| params_flow.rb:182:10:182:22 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:182:10:182:40 | call to original_filename | semmle.label | call to original_filename | +| params_flow.rb:186:10:186:15 | call to params | semmle.label | call to params | +| params_flow.rb:186:10:186:30 | call to require | semmle.label | call to require | +| params_flow.rb:186:10:186:43 | call to content_type | semmle.label | call to content_type | +| params_flow.rb:190:10:190:15 | call to params | semmle.label | call to params | +| params_flow.rb:190:10:190:29 | call to permit | semmle.label | call to permit | +| params_flow.rb:190:10:190:36 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:190:10:190:44 | call to headers | semmle.label | call to headers | +| params_flow.rb:194:10:194:15 | call to params | semmle.label | call to params | +| params_flow.rb:194:10:194:19 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:194:10:194:31 | call to to_unsafe_h | semmle.label | call to to_unsafe_h | +| params_flow.rb:194:10:194:35 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:194:10:194:42 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:194:10:194:47 | call to read | semmle.label | call to read | +| params_flow.rb:198:5:198:10 | call to params | semmle.label | call to params | +| params_flow.rb:198:5:198:17 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:198:28:198:28 | [post] a | semmle.label | [post] a | +| params_flow.rb:199:10:199:10 | a | semmle.label | a | subpaths #select | filter_flow.rb:21:10:21:13 | @foo | filter_flow.rb:14:12:14:17 | call to params | filter_flow.rb:21:10:21:13 | @foo | $@ | filter_flow.rb:14:12:14:17 | call to params | call to params | @@ -298,3 +333,8 @@ subpaths | params_flow.rb:166:10:166:19 | ...[...] | params_flow.rb:166:10:166:15 | call to params | params_flow.rb:166:10:166:19 | ...[...] | $@ | params_flow.rb:166:10:166:15 | call to params | call to params | | params_flow.rb:172:10:172:19 | ...[...] | params_flow.rb:172:10:172:15 | call to params | params_flow.rb:172:10:172:19 | ...[...] | $@ | params_flow.rb:172:10:172:15 | call to params | call to params | | params_flow.rb:176:10:176:19 | ...[...] | params_flow.rb:176:10:176:15 | call to params | params_flow.rb:176:10:176:19 | ...[...] | $@ | params_flow.rb:176:10:176:15 | call to params | call to params | +| params_flow.rb:182:10:182:40 | call to original_filename | params_flow.rb:182:10:182:15 | call to params | params_flow.rb:182:10:182:40 | call to original_filename | $@ | params_flow.rb:182:10:182:15 | call to params | call to params | +| params_flow.rb:186:10:186:43 | call to content_type | params_flow.rb:186:10:186:15 | call to params | params_flow.rb:186:10:186:43 | call to content_type | $@ | params_flow.rb:186:10:186:15 | call to params | call to params | +| params_flow.rb:190:10:190:44 | call to headers | params_flow.rb:190:10:190:15 | call to params | params_flow.rb:190:10:190:44 | call to headers | $@ | params_flow.rb:190:10:190:15 | call to params | call to params | +| params_flow.rb:194:10:194:47 | call to read | params_flow.rb:194:10:194:15 | call to params | params_flow.rb:194:10:194:47 | call to read | $@ | params_flow.rb:194:10:194:15 | call to params | call to params | +| params_flow.rb:199:10:199:10 | a | params_flow.rb:198:5:198:10 | call to params | params_flow.rb:199:10:199:10 | a | $@ | params_flow.rb:198:5:198:10 | call to params | call to params | diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params_flow.rb b/ruby/ql/test/library-tests/frameworks/action_controller/params_flow.rb index 65aba8fabf2..018d8b58af0 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params_flow.rb +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params_flow.rb @@ -176,3 +176,32 @@ class Subclass < MyController sink params[:x] # $hasTaintFlow end end + +class UploadedFileTests < MyController + def m36 + sink params[:file].original_filename # $hasTaintFlow + end + + def m37 + sink params.require(:file).content_type # $hasTaintFlow + end + + def m38 + sink params.permit(:file)[:file].headers # $hasTaintFlow + end + + def m39 + sink params[:a].to_unsafe_h[:b][:file].read # $hasTaintFlow + end + + def m40(a) + params[:file].read(nil,a) + sink a # $ hasTaintFlow + end + + def m41 + a = "" + params[:file].read(nil,a) + sink a # $ MISSING:hasTaintFlow + end +end \ No newline at end of file From b4ed77343b77cdc16aea4e04af294883ebbefdb7 Mon Sep 17 00:00:00 2001 From: Joe Farebrother <joefarebrother@github.com> Date: Thu, 14 Mar 2024 15:44:53 +0000 Subject: [PATCH 144/309] Add change note + fix qldoc --- .../2024-03-14-actiondispatch-uploadedfile.md | 4 ++++ ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll | 8 ++++---- .../test/library-tests/dataflow/local/TaintStep.expected | 6 +++--- 3 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 ruby/ql/lib/change-notes/2024-03-14-actiondispatch-uploadedfile.md diff --git a/ruby/ql/lib/change-notes/2024-03-14-actiondispatch-uploadedfile.md b/ruby/ql/lib/change-notes/2024-03-14-actiondispatch-uploadedfile.md new file mode 100644 index 00000000000..a02ca0d00a2 --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-03-14-actiondispatch-uploadedfile.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Modeled instances of `ActionDispatch::Http::UploadedFile` that can be obtained from element reads of `ActionController::Parameters`, with calls to `original_filename`, `content_type`, and `read` now propagating taint from their receiver. \ No newline at end of file diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll index 0c49b1f074f..7578ba52bb1 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll @@ -597,7 +597,7 @@ private module ParamsSummaries { /** Flow summary for various string attributes of `UploadedFile`, including `original_filename`, `content_type`, and `headers`. */ private class UploadedFileStringAttributeSummary extends SummarizedCallable { UploadedFileStringAttributeSummary() { - this = "ActionDispatch::Http::UploadedFile::[original_filename,content_type,headers]" + this = "ActionDispatch::Http::UploadedFile#[original_filename,content_type,headers]" } override MethodCall getACall() { @@ -615,11 +615,11 @@ private module ParamsSummaries { } /** - * Flow summary for `ActiveDispatch::Http::UploadedFile.original_filename`, - * which propagates taint from the receiver to the return value or to the second (buffer) argument + * Flow summary for `ActiveDispatch::Http::UploadedFile#read`, + * which propagates taint from the receiver to the return value or to the second (out string) argument */ private class UploadedFileReadSummary extends SummarizedCallable { - UploadedFileReadSummary() { this = "ActionDispatch::Http::UploadedFile::read" } + UploadedFileReadSummary() { this = "ActionDispatch::Http::UploadedFile#read" } override MethodCall getACall() { result = paramsFieldType().getAMethodCall("read").asExpr().getExpr() and diff --git a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected index e73f2e3cb10..44f879946ab 100644 --- a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected @@ -2835,9 +2835,9 @@ | file://:0:0:0:0 | [summary param] self in ActionController::Parameters#merge | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionController::Parameters#merge | | file://:0:0:0:0 | [summary param] self in ActionController::Parameters#merge! | file://:0:0:0:0 | [summary] to write: Argument[self] in ActionController::Parameters#merge! | | file://:0:0:0:0 | [summary param] self in ActionController::Parameters#merge! | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionController::Parameters#merge! | -| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile::[original_filename,content_type,headers] | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionDispatch::Http::UploadedFile::[original_filename,content_type,headers] | -| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile::read | file://:0:0:0:0 | [summary] to write: Argument[1] in ActionDispatch::Http::UploadedFile::read | -| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile::read | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionDispatch::Http::UploadedFile::read | +| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile#[original_filename,content_type,headers] | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionDispatch::Http::UploadedFile#[original_filename,content_type,headers] | +| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile#read | file://:0:0:0:0 | [summary] to write: Argument[1] in ActionDispatch::Http::UploadedFile#read | +| file://:0:0:0:0 | [summary param] self in ActionDispatch::Http::UploadedFile#read | file://:0:0:0:0 | [summary] to write: ReturnValue in ActionDispatch::Http::UploadedFile#read | | file://:0:0:0:0 | [summary param] self in ActiveSupportStringTransform | file://:0:0:0:0 | [summary] to write: ReturnValue in ActiveSupportStringTransform | | file://:0:0:0:0 | [summary param] self in [] | file://:0:0:0:0 | [summary] to write: ReturnValue in [] | | file://:0:0:0:0 | [summary param] self in \| | file://:0:0:0:0 | [summary] read: Argument[self].Element[any] in \| | From f464f1b94ef8a3326a51689729c020636ac688e2 Mon Sep 17 00:00:00 2001 From: Joe Farebrother <joefarebrother@github.com> Date: Thu, 14 Mar 2024 16:36:26 +0000 Subject: [PATCH 145/309] Accept test output + fix qldoc typo --- .../ruby/frameworks/ActionController.qll | 2 +- .../ActionController.expected | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll index 7578ba52bb1..19dcb82cfd6 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll @@ -522,7 +522,7 @@ private module ParamsSummaries { exists(TypeTracker t2 | result = paramsFieldType(t2).track(t2, t)) } - /** Gets a node with a type that can be a field of `ActionController::Parameters */ + /** Gets a node with a type that can be a field of `ActionController::Parameters` */ private DataFlow::LocalSourceNode paramsFieldType() { paramsFieldType(TypeTracker::end()).flowsTo(result) } diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/ActionController.expected b/ruby/ql/test/library-tests/frameworks/action_controller/ActionController.expected index 7e5b5d6d001..9af92b159cd 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/ActionController.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/ActionController.expected @@ -14,7 +14,7 @@ actionControllerControllerClasses | input_access.rb:1:1:58:3 | UsersController | | params_flow.rb:1:1:162:3 | MyController | | params_flow.rb:170:1:178:3 | Subclass | -| params_flow.rb:180:1:205:5 | UploadedFileTests | +| params_flow.rb:180:1:207:3 | UploadedFileTests | actionControllerActionMethods | app/controllers/comments_controller.rb:17:3:51:5 | index | | app/controllers/comments_controller.rb:53:3:54:5 | create | @@ -91,8 +91,8 @@ actionControllerActionMethods | params_flow.rb:185:3:187:5 | m37 | | params_flow.rb:189:3:191:5 | m38 | | params_flow.rb:193:3:195:5 | m39 | -| params_flow.rb:197:3:201:5 | m40 | -| params_flow.rb:203:3:205:5 | m41 | +| params_flow.rb:197:3:200:5 | m40 | +| params_flow.rb:202:3:206:5 | m41 | paramsCalls | app/controllers/comments_controller.rb:80:36:80:41 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | @@ -157,8 +157,8 @@ paramsCalls | params_flow.rb:186:10:186:15 | call to params | | params_flow.rb:190:10:190:15 | call to params | | params_flow.rb:194:10:194:15 | call to params | -| params_flow.rb:199:5:199:10 | call to params | -| params_flow.rb:204:10:204:15 | call to params | +| params_flow.rb:198:5:198:10 | call to params | +| params_flow.rb:204:5:204:10 | call to params | paramsSources | app/controllers/comments_controller.rb:80:36:80:41 | call to params | | app/controllers/foo/bars_controller.rb:13:21:13:26 | call to params | @@ -223,8 +223,8 @@ paramsSources | params_flow.rb:186:10:186:15 | call to params | | params_flow.rb:190:10:190:15 | call to params | | params_flow.rb:194:10:194:15 | call to params | -| params_flow.rb:199:5:199:10 | call to params | -| params_flow.rb:204:10:204:15 | call to params | +| params_flow.rb:198:5:198:10 | call to params | +| params_flow.rb:204:5:204:10 | call to params | httpInputAccesses | app/controllers/application_controller.rb:11:53:11:64 | call to path | ActionDispatch::Request#path | | app/controllers/comments_controller.rb:18:5:18:18 | call to params | ActionDispatch::Request#params | @@ -347,8 +347,8 @@ httpInputAccesses | params_flow.rb:186:10:186:15 | call to params | ActionController::Metal#params | | params_flow.rb:190:10:190:15 | call to params | ActionController::Metal#params | | params_flow.rb:194:10:194:15 | call to params | ActionController::Metal#params | -| params_flow.rb:199:5:199:10 | call to params | ActionController::Metal#params | -| params_flow.rb:204:10:204:15 | call to params | ActionController::Metal#params | +| params_flow.rb:198:5:198:10 | call to params | ActionController::Metal#params | +| params_flow.rb:204:5:204:10 | call to params | ActionController::Metal#params | cookiesCalls | app/controllers/foo/bars_controller.rb:10:27:10:33 | call to cookies | cookiesSources From 7f05743212a50d28d68683cb4a413acfa73391d2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 00:16:16 +0000 Subject: [PATCH 146/309] Add changed framework coverage reports --- java/documentation/library-coverage/coverage.csv | 4 ++-- java/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index a86fdd321be..ad4f7bdd07f 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -76,13 +76,13 @@ jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,94,55 jakarta.xml.bind.attachment,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, java.awt,1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,3 java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -java.io,51,1,46,,,,,,,,,22,,,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,1,,44,2 +java.io,51,1,45,,,,,,,,,22,,,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,1,,43,2 java.lang,38,3,101,,13,,,,,,1,,,,,,,,,,,,8,,,,11,,,4,,,1,,,,,,,,,,,,,,3,,,58,43 java.net,22,3,24,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,,,,,,,3,24, java.nio,44,,38,,,,,,,,,5,,,,,,,,,,,,,,,38,,,,,,,,,1,,,,,,,,,,,,,,38, java.security,21,,,,,11,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, java.sql,15,1,2,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,9,,,,,,,,1,,,,2, -java.util,47,2,522,,,,,,,,,1,,,,,,,,,,,34,,,,2,,,,5,2,,1,2,,,,,,,,,,,,2,,,46,476 +java.util,47,2,524,,,,,,,,,1,,,,,,,,,,,34,,,,2,,,,5,2,,1,2,,,,,,,,,,,,2,,,46,478 javafx.scene.web,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,, javax.activation,2,,7,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,7, javax.crypto,19,,4,,,12,3,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 432d9c2db67..a37dc0a71ef 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -18,10 +18,10 @@ Java framework & library support `Google Guava <https://guava.dev/>`_,``com.google.common.*``,,730,43,9,,,,, JBoss Logging,``org.jboss.logging``,,,324,,,,,, `JSON-java <https://github.com/stleary/JSON-java>`_,``org.json``,,236,,,,,,, - Java Standard Library,``java.*``,10,737,239,80,,9,,,25 + Java Standard Library,``java.*``,10,738,239,80,,9,,,25 Java extensions,"``javax.*``, ``jakarta.*``",67,688,80,5,4,2,1,1,4 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 `Spring <https://spring.io/>`_,``org.springframework.*``,38,481,118,5,,28,14,,35 Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.mongodb``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",131,10518,893,125,6,22,18,,209 - Totals,,308,18953,2559,338,16,128,33,1,409 + Totals,,308,18954,2559,338,16,128,33,1,409 From 71cf94865097d55838ce8291b0b044cbfc2018c8 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Thu, 14 Mar 2024 22:23:54 -0400 Subject: [PATCH 147/309] Classes extending `SourceNode` for local and stored source models Queries such as `cs/sql-injection` cast their source to a `SourceNode` in order to describe them. For example: ```ql import semmle.code.csharp.security.dataflow.flowsources.FlowSources string getSourceType(DataFlow::Node source) { result = source.(SourceNode).getSourceType() } ``` Models as data source models are not included in `SourceNode` by default, they must be wrapped with a class extending `SourceNode`. This adds such classes, which wrap the `sourceNode(DataFlow::Node,string)` predicate and assigns a `getSourceType`. --- .../code/csharp/security/dataflow/flowsources/Local.qll | 8 ++++++++ .../code/csharp/security/dataflow/flowsources/Stored.qll | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Local.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Local.qll index 7ad656e11d3..6261d41f404 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Local.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Local.qll @@ -40,6 +40,10 @@ abstract class EnvironmentVariableSource extends LocalFlowSource { override string getSourceType() { result = "environment variable" } } +private class ExternalEnvironmentVariableSource extends EnvironmentVariableSource { + ExternalEnvironmentVariableSource() { sourceNode(this, "environment") } +} + /** * A dataflow source that represents the access of a command line argument. */ @@ -49,6 +53,10 @@ abstract class CommandLineArgumentSource extends LocalFlowSource { override string getSourceType() { result = "command line argument" } } +private class ExternalCommandLineArgumentSource extends CommandLineArgumentSource { + ExternalCommandLineArgumentSource() { sourceNode(this, "command-line") } +} + /** * A data flow source that represents the parameters of the `Main` method of a program. */ diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Stored.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Stored.qll index 2d2ecd0bccb..5516da547e6 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Stored.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsources/Stored.qll @@ -73,6 +73,10 @@ deprecated class ORMMappedProperty extends DataFlow::Node { } } +private class ExternalDatabaseInputSource extends DatabaseInputSource { + ExternalDatabaseInputSource() { sourceNode(this, "database") } +} + /** A file stream source is considered a stored flow source. */ class FileStreamStoredFlowSource extends StoredFlowSource { FileStreamStoredFlowSource() { sourceNode(this, "file") } From e7b00a7b42976a08b2b4d0daf985a150a7341fd4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Fri, 15 Mar 2024 10:14:47 +0100 Subject: [PATCH 148/309] Ruby: Add post-update argument nodes for string constants --- .../codeql/ruby/dataflow/internal/DataFlowPrivate.qll | 6 +++++- .../library-tests/dataflow/global/instance_variables.rb | 2 +- .../library-tests/dataflow/local/DataflowStep.expected | 9 +++++++++ .../test/library-tests/dataflow/local/TaintStep.expected | 9 +++++++++ .../frameworks/action_controller/params-flow.expected | 8 ++++++++ .../frameworks/action_controller/params_flow.rb | 2 +- 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index a7ef050f1c8..3b97ebcf4c8 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -322,7 +322,11 @@ private class Argument extends CfgNodes::ExprCfgNode { /** Holds if `n` is not a constant expression. */ predicate isNonConstantExpr(CfgNodes::ExprCfgNode n) { - not exists(n.getConstantValue()) and + not exists(ConstantValue cv | + cv = n.getConstantValue() and + // strings are mutable in Ruby + not cv.isString(_) + ) and not n.getExpr() instanceof ConstantAccess } diff --git a/ruby/ql/test/library-tests/dataflow/global/instance_variables.rb b/ruby/ql/test/library-tests/dataflow/global/instance_variables.rb index e1687bfed2c..9943b3cb579 100644 --- a/ruby/ql/test/library-tests/dataflow/global/instance_variables.rb +++ b/ruby/ql/test/library-tests/dataflow/global/instance_variables.rb @@ -70,7 +70,7 @@ foo3 = Foo.new foo3.set_field(taint(22)) sink(foo3.field) # $ hasValueFlow=22 -foo4 = "hello" +foo4 = 4 foo4.other = taint(23) sink(foo4.other) # no field flow for constants diff --git a/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected b/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected index 307ffc01611..1f773f7d1a4 100644 --- a/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected @@ -2676,6 +2676,7 @@ | local_dataflow.rb:131:7:131:8 | "" | local_dataflow.rb:131:3:131:8 | ... = ... | | local_dataflow.rb:132:6:132:11 | [post] self | local_dataflow.rb:133:8:133:13 | self | | local_dataflow.rb:132:6:132:11 | self | local_dataflow.rb:133:8:133:13 | self | +| local_dataflow.rb:132:10:132:10 | [post] x | local_dataflow.rb:133:12:133:12 | x | | local_dataflow.rb:132:10:132:10 | x | local_dataflow.rb:133:12:133:12 | x | | local_dataflow.rb:132:12:148:10 | then ... | local_dataflow.rb:132:3:149:5 | if ... | | local_dataflow.rb:133:5:139:7 | SSA phi read(self) | local_dataflow.rb:141:9:141:14 | self | @@ -2686,17 +2687,20 @@ | local_dataflow.rb:133:8:133:13 | self | local_dataflow.rb:133:18:133:23 | self | | local_dataflow.rb:133:8:133:23 | SSA phi read(self) | local_dataflow.rb:134:7:134:12 | self | | local_dataflow.rb:133:8:133:23 | SSA phi read(x) | local_dataflow.rb:134:11:134:11 | x | +| local_dataflow.rb:133:12:133:12 | [post] x | local_dataflow.rb:133:22:133:22 | x | | local_dataflow.rb:133:12:133:12 | x | local_dataflow.rb:133:22:133:22 | x | | local_dataflow.rb:133:18:133:23 | [post] self | local_dataflow.rb:136:7:136:12 | self | | local_dataflow.rb:133:18:133:23 | call to use | local_dataflow.rb:133:8:133:23 | [false] ... \|\| ... | | local_dataflow.rb:133:18:133:23 | call to use | local_dataflow.rb:133:8:133:23 | [true] ... \|\| ... | | local_dataflow.rb:133:18:133:23 | self | local_dataflow.rb:136:7:136:12 | self | +| local_dataflow.rb:133:22:133:22 | [post] x | local_dataflow.rb:136:11:136:11 | x | | local_dataflow.rb:133:22:133:22 | x | local_dataflow.rb:136:11:136:11 | x | | local_dataflow.rb:133:24:134:12 | then ... | local_dataflow.rb:133:5:139:7 | if ... | | local_dataflow.rb:134:7:134:12 | call to use | local_dataflow.rb:133:24:134:12 | then ... | | local_dataflow.rb:135:5:138:9 | else ... | local_dataflow.rb:133:5:139:7 | if ... | | local_dataflow.rb:136:7:136:12 | [post] self | local_dataflow.rb:137:10:137:15 | self | | local_dataflow.rb:136:7:136:12 | self | local_dataflow.rb:137:10:137:15 | self | +| local_dataflow.rb:136:11:136:11 | [post] x | local_dataflow.rb:137:14:137:14 | x | | local_dataflow.rb:136:11:136:11 | x | local_dataflow.rb:137:14:137:14 | x | | local_dataflow.rb:137:7:138:9 | SSA phi read(self) | local_dataflow.rb:133:5:139:7 | SSA phi read(self) | | local_dataflow.rb:137:7:138:9 | SSA phi read(x) | local_dataflow.rb:133:5:139:7 | SSA phi read(x) | @@ -2705,6 +2709,7 @@ | local_dataflow.rb:137:10:137:15 | self | local_dataflow.rb:137:21:137:26 | self | | local_dataflow.rb:137:10:137:26 | SSA phi read(self) | local_dataflow.rb:137:7:138:9 | SSA phi read(self) | | local_dataflow.rb:137:10:137:26 | SSA phi read(x) | local_dataflow.rb:137:7:138:9 | SSA phi read(x) | +| local_dataflow.rb:137:14:137:14 | [post] x | local_dataflow.rb:137:25:137:25 | x | | local_dataflow.rb:137:14:137:14 | x | local_dataflow.rb:137:25:137:25 | x | | local_dataflow.rb:137:20:137:26 | [false] ! ... | local_dataflow.rb:137:10:137:26 | [false] ... && ... | | local_dataflow.rb:137:20:137:26 | [true] ! ... | local_dataflow.rb:137:10:137:26 | [true] ... && ... | @@ -2717,6 +2722,7 @@ | local_dataflow.rb:141:8:141:37 | SSA phi read(x) | local_dataflow.rb:141:5:145:7 | SSA phi read(x) | | local_dataflow.rb:141:9:141:14 | [post] self | local_dataflow.rb:141:20:141:25 | self | | local_dataflow.rb:141:9:141:14 | self | local_dataflow.rb:141:20:141:25 | self | +| local_dataflow.rb:141:13:141:13 | [post] x | local_dataflow.rb:141:24:141:24 | x | | local_dataflow.rb:141:13:141:13 | x | local_dataflow.rb:141:24:141:24 | x | | local_dataflow.rb:141:19:141:37 | [false] ( ... ) | local_dataflow.rb:141:8:141:37 | [false] ... \|\| ... | | local_dataflow.rb:141:19:141:37 | [true] ( ... ) | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | @@ -2726,6 +2732,7 @@ | local_dataflow.rb:141:20:141:36 | SSA phi read(x) | local_dataflow.rb:143:15:143:15 | x | | local_dataflow.rb:141:20:141:36 | [false] ... && ... | local_dataflow.rb:141:19:141:37 | [false] ( ... ) | | local_dataflow.rb:141:20:141:36 | [true] ... && ... | local_dataflow.rb:141:19:141:37 | [true] ( ... ) | +| local_dataflow.rb:141:24:141:24 | [post] x | local_dataflow.rb:141:35:141:35 | x | | local_dataflow.rb:141:24:141:24 | x | local_dataflow.rb:141:35:141:35 | x | | local_dataflow.rb:141:30:141:36 | [false] ! ... | local_dataflow.rb:141:20:141:36 | [false] ... && ... | | local_dataflow.rb:141:30:141:36 | [true] ! ... | local_dataflow.rb:141:20:141:36 | [true] ... && ... | @@ -2740,6 +2747,7 @@ | local_dataflow.rb:143:11:143:16 | self | local_dataflow.rb:143:21:143:26 | self | | local_dataflow.rb:143:11:143:26 | SSA phi read(self) | local_dataflow.rb:144:11:144:16 | self | | local_dataflow.rb:143:11:143:26 | SSA phi read(x) | local_dataflow.rb:144:15:144:15 | x | +| local_dataflow.rb:143:15:143:15 | [post] x | local_dataflow.rb:143:25:143:25 | x | | local_dataflow.rb:143:15:143:15 | x | local_dataflow.rb:143:25:143:25 | x | | local_dataflow.rb:143:21:143:26 | call to use | local_dataflow.rb:143:11:143:26 | [false] ... \|\| ... | | local_dataflow.rb:143:21:143:26 | call to use | local_dataflow.rb:143:11:143:26 | [true] ... \|\| ... | @@ -2747,5 +2755,6 @@ | local_dataflow.rb:144:11:144:16 | call to use | local_dataflow.rb:143:27:144:16 | then ... | | local_dataflow.rb:147:5:147:10 | [post] self | local_dataflow.rb:148:5:148:10 | self | | local_dataflow.rb:147:5:147:10 | self | local_dataflow.rb:148:5:148:10 | self | +| local_dataflow.rb:147:9:147:9 | [post] x | local_dataflow.rb:148:9:148:9 | x | | local_dataflow.rb:147:9:147:9 | x | local_dataflow.rb:148:9:148:9 | x | | local_dataflow.rb:148:5:148:10 | call to use | local_dataflow.rb:132:12:148:10 | then ... | diff --git a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected index 44f879946ab..a462aebeba9 100644 --- a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected @@ -3167,6 +3167,7 @@ | local_dataflow.rb:131:7:131:8 | "" | local_dataflow.rb:131:3:131:8 | ... = ... | | local_dataflow.rb:132:6:132:11 | [post] self | local_dataflow.rb:133:8:133:13 | self | | local_dataflow.rb:132:6:132:11 | self | local_dataflow.rb:133:8:133:13 | self | +| local_dataflow.rb:132:10:132:10 | [post] x | local_dataflow.rb:133:12:133:12 | x | | local_dataflow.rb:132:10:132:10 | x | local_dataflow.rb:133:12:133:12 | x | | local_dataflow.rb:132:12:148:10 | then ... | local_dataflow.rb:132:3:149:5 | if ... | | local_dataflow.rb:133:5:139:7 | SSA phi read(self) | local_dataflow.rb:141:9:141:14 | self | @@ -3177,17 +3178,20 @@ | local_dataflow.rb:133:8:133:13 | self | local_dataflow.rb:133:18:133:23 | self | | local_dataflow.rb:133:8:133:23 | SSA phi read(self) | local_dataflow.rb:134:7:134:12 | self | | local_dataflow.rb:133:8:133:23 | SSA phi read(x) | local_dataflow.rb:134:11:134:11 | x | +| local_dataflow.rb:133:12:133:12 | [post] x | local_dataflow.rb:133:22:133:22 | x | | local_dataflow.rb:133:12:133:12 | x | local_dataflow.rb:133:22:133:22 | x | | local_dataflow.rb:133:18:133:23 | [post] self | local_dataflow.rb:136:7:136:12 | self | | local_dataflow.rb:133:18:133:23 | call to use | local_dataflow.rb:133:8:133:23 | [false] ... \|\| ... | | local_dataflow.rb:133:18:133:23 | call to use | local_dataflow.rb:133:8:133:23 | [true] ... \|\| ... | | local_dataflow.rb:133:18:133:23 | self | local_dataflow.rb:136:7:136:12 | self | +| local_dataflow.rb:133:22:133:22 | [post] x | local_dataflow.rb:136:11:136:11 | x | | local_dataflow.rb:133:22:133:22 | x | local_dataflow.rb:136:11:136:11 | x | | local_dataflow.rb:133:24:134:12 | then ... | local_dataflow.rb:133:5:139:7 | if ... | | local_dataflow.rb:134:7:134:12 | call to use | local_dataflow.rb:133:24:134:12 | then ... | | local_dataflow.rb:135:5:138:9 | else ... | local_dataflow.rb:133:5:139:7 | if ... | | local_dataflow.rb:136:7:136:12 | [post] self | local_dataflow.rb:137:10:137:15 | self | | local_dataflow.rb:136:7:136:12 | self | local_dataflow.rb:137:10:137:15 | self | +| local_dataflow.rb:136:11:136:11 | [post] x | local_dataflow.rb:137:14:137:14 | x | | local_dataflow.rb:136:11:136:11 | x | local_dataflow.rb:137:14:137:14 | x | | local_dataflow.rb:137:7:138:9 | SSA phi read(self) | local_dataflow.rb:133:5:139:7 | SSA phi read(self) | | local_dataflow.rb:137:7:138:9 | SSA phi read(x) | local_dataflow.rb:133:5:139:7 | SSA phi read(x) | @@ -3196,6 +3200,7 @@ | local_dataflow.rb:137:10:137:15 | self | local_dataflow.rb:137:21:137:26 | self | | local_dataflow.rb:137:10:137:26 | SSA phi read(self) | local_dataflow.rb:137:7:138:9 | SSA phi read(self) | | local_dataflow.rb:137:10:137:26 | SSA phi read(x) | local_dataflow.rb:137:7:138:9 | SSA phi read(x) | +| local_dataflow.rb:137:14:137:14 | [post] x | local_dataflow.rb:137:25:137:25 | x | | local_dataflow.rb:137:14:137:14 | x | local_dataflow.rb:137:25:137:25 | x | | local_dataflow.rb:137:20:137:26 | [false] ! ... | local_dataflow.rb:137:10:137:26 | [false] ... && ... | | local_dataflow.rb:137:20:137:26 | [true] ! ... | local_dataflow.rb:137:10:137:26 | [true] ... && ... | @@ -3212,6 +3217,7 @@ | local_dataflow.rb:141:9:141:14 | call to use | local_dataflow.rb:141:8:141:14 | [false] ! ... | | local_dataflow.rb:141:9:141:14 | call to use | local_dataflow.rb:141:8:141:14 | [true] ! ... | | local_dataflow.rb:141:9:141:14 | self | local_dataflow.rb:141:20:141:25 | self | +| local_dataflow.rb:141:13:141:13 | [post] x | local_dataflow.rb:141:24:141:24 | x | | local_dataflow.rb:141:13:141:13 | x | local_dataflow.rb:141:24:141:24 | x | | local_dataflow.rb:141:19:141:37 | [false] ( ... ) | local_dataflow.rb:141:8:141:37 | [false] ... \|\| ... | | local_dataflow.rb:141:19:141:37 | [true] ( ... ) | local_dataflow.rb:141:8:141:37 | [true] ... \|\| ... | @@ -3221,6 +3227,7 @@ | local_dataflow.rb:141:20:141:36 | SSA phi read(x) | local_dataflow.rb:143:15:143:15 | x | | local_dataflow.rb:141:20:141:36 | [false] ... && ... | local_dataflow.rb:141:19:141:37 | [false] ( ... ) | | local_dataflow.rb:141:20:141:36 | [true] ... && ... | local_dataflow.rb:141:19:141:37 | [true] ( ... ) | +| local_dataflow.rb:141:24:141:24 | [post] x | local_dataflow.rb:141:35:141:35 | x | | local_dataflow.rb:141:24:141:24 | x | local_dataflow.rb:141:35:141:35 | x | | local_dataflow.rb:141:30:141:36 | [false] ! ... | local_dataflow.rb:141:20:141:36 | [false] ... && ... | | local_dataflow.rb:141:30:141:36 | [true] ! ... | local_dataflow.rb:141:20:141:36 | [true] ... && ... | @@ -3237,6 +3244,7 @@ | local_dataflow.rb:143:11:143:16 | self | local_dataflow.rb:143:21:143:26 | self | | local_dataflow.rb:143:11:143:26 | SSA phi read(self) | local_dataflow.rb:144:11:144:16 | self | | local_dataflow.rb:143:11:143:26 | SSA phi read(x) | local_dataflow.rb:144:15:144:15 | x | +| local_dataflow.rb:143:15:143:15 | [post] x | local_dataflow.rb:143:25:143:25 | x | | local_dataflow.rb:143:15:143:15 | x | local_dataflow.rb:143:25:143:25 | x | | local_dataflow.rb:143:21:143:26 | call to use | local_dataflow.rb:143:11:143:26 | [false] ... \|\| ... | | local_dataflow.rb:143:21:143:26 | call to use | local_dataflow.rb:143:11:143:26 | [true] ... \|\| ... | @@ -3244,5 +3252,6 @@ | local_dataflow.rb:144:11:144:16 | call to use | local_dataflow.rb:143:27:144:16 | then ... | | local_dataflow.rb:147:5:147:10 | [post] self | local_dataflow.rb:148:5:148:10 | self | | local_dataflow.rb:147:5:147:10 | self | local_dataflow.rb:148:5:148:10 | self | +| local_dataflow.rb:147:9:147:9 | [post] x | local_dataflow.rb:148:9:148:9 | x | | local_dataflow.rb:147:9:147:9 | x | local_dataflow.rb:148:9:148:9 | x | | local_dataflow.rb:148:5:148:10 | call to use | local_dataflow.rb:132:12:148:10 | then ... | diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected index 698d3b23ccb..51eb4d1d95c 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected @@ -116,6 +116,9 @@ edges | params_flow.rb:198:5:198:10 | call to params | params_flow.rb:198:5:198:17 | ...[...] | provenance | | | params_flow.rb:198:5:198:17 | ...[...] | params_flow.rb:198:28:198:28 | [post] a | provenance | | | params_flow.rb:198:28:198:28 | [post] a | params_flow.rb:199:10:199:10 | a | provenance | | +| params_flow.rb:204:5:204:10 | call to params | params_flow.rb:204:5:204:17 | ...[...] | provenance | | +| params_flow.rb:204:5:204:17 | ...[...] | params_flow.rb:204:28:204:28 | [post] a | provenance | | +| params_flow.rb:204:28:204:28 | [post] a | params_flow.rb:205:10:205:10 | a | provenance | | nodes | filter_flow.rb:14:5:14:8 | [post] self [@foo] | semmle.label | [post] self [@foo] | | filter_flow.rb:14:12:14:17 | call to params | semmle.label | call to params | @@ -279,6 +282,10 @@ nodes | params_flow.rb:198:5:198:17 | ...[...] | semmle.label | ...[...] | | params_flow.rb:198:28:198:28 | [post] a | semmle.label | [post] a | | params_flow.rb:199:10:199:10 | a | semmle.label | a | +| params_flow.rb:204:5:204:10 | call to params | semmle.label | call to params | +| params_flow.rb:204:5:204:17 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:204:28:204:28 | [post] a | semmle.label | [post] a | +| params_flow.rb:205:10:205:10 | a | semmle.label | a | subpaths #select | filter_flow.rb:21:10:21:13 | @foo | filter_flow.rb:14:12:14:17 | call to params | filter_flow.rb:21:10:21:13 | @foo | $@ | filter_flow.rb:14:12:14:17 | call to params | call to params | @@ -338,3 +345,4 @@ subpaths | params_flow.rb:190:10:190:44 | call to headers | params_flow.rb:190:10:190:15 | call to params | params_flow.rb:190:10:190:44 | call to headers | $@ | params_flow.rb:190:10:190:15 | call to params | call to params | | params_flow.rb:194:10:194:47 | call to read | params_flow.rb:194:10:194:15 | call to params | params_flow.rb:194:10:194:47 | call to read | $@ | params_flow.rb:194:10:194:15 | call to params | call to params | | params_flow.rb:199:10:199:10 | a | params_flow.rb:198:5:198:10 | call to params | params_flow.rb:199:10:199:10 | a | $@ | params_flow.rb:198:5:198:10 | call to params | call to params | +| params_flow.rb:205:10:205:10 | a | params_flow.rb:204:5:204:10 | call to params | params_flow.rb:205:10:205:10 | a | $@ | params_flow.rb:204:5:204:10 | call to params | call to params | diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params_flow.rb b/ruby/ql/test/library-tests/frameworks/action_controller/params_flow.rb index 018d8b58af0..ece3b551556 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params_flow.rb +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params_flow.rb @@ -202,6 +202,6 @@ class UploadedFileTests < MyController def m41 a = "" params[:file].read(nil,a) - sink a # $ MISSING:hasTaintFlow + sink a # $ hasTaintFlow end end \ No newline at end of file From 80649786c3c92fd5db3986ccf21201b916eb6ec1 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Fri, 15 Mar 2024 11:06:15 +0100 Subject: [PATCH 149/309] QL4QL: Remove `MissingOverride` query --- ql/ql/src/queries/style/MissingOverride.ql | 20 ---------- .../MissingOverride/MissingOverride.expected | 2 - .../MissingOverride/MissingOverride.qlref | 1 - .../queries/style/MissingOverride/Test.qll | 37 ------------------- 4 files changed, 60 deletions(-) delete mode 100644 ql/ql/src/queries/style/MissingOverride.ql delete mode 100644 ql/ql/test/queries/style/MissingOverride/MissingOverride.expected delete mode 100644 ql/ql/test/queries/style/MissingOverride/MissingOverride.qlref delete mode 100644 ql/ql/test/queries/style/MissingOverride/Test.qll diff --git a/ql/ql/src/queries/style/MissingOverride.ql b/ql/ql/src/queries/style/MissingOverride.ql deleted file mode 100644 index 833b1ba198b..00000000000 --- a/ql/ql/src/queries/style/MissingOverride.ql +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @name Missing override annotation - * @description Predicates that override another predicate should have an `override` annotation. - * @kind problem - * @problem.severity warning - * @precision very-high - * @id ql/missing-override - * @tags maintainability - */ - -import ql - -string getQualifiedName(ClassPredicate p) { - result = p.getDeclaringType().getName() + "." + p.getName() -} - -from ClassPredicate pred, ClassPredicate sup -where pred.overrides(sup) and not pred.isOverride() -select pred, getQualifiedName(pred) + " overrides $@ but does not have an override annotation.", - sup, getQualifiedName(sup) diff --git a/ql/ql/test/queries/style/MissingOverride/MissingOverride.expected b/ql/ql/test/queries/style/MissingOverride/MissingOverride.expected deleted file mode 100644 index d64a6ed1544..00000000000 --- a/ql/ql/test/queries/style/MissingOverride/MissingOverride.expected +++ /dev/null @@ -1,2 +0,0 @@ -| Test.qll:12:13:12:16 | ClassPredicate test | Wrong.test overrides $@ but does not have an override annotation. | Test.qll:4:13:4:16 | ClassPredicate test | Super.test | -| Test.qll:18:13:18:16 | ClassPredicate test | Wrong2.test overrides $@ but does not have an override annotation. | Test.qll:4:13:4:16 | ClassPredicate test | Super.test | diff --git a/ql/ql/test/queries/style/MissingOverride/MissingOverride.qlref b/ql/ql/test/queries/style/MissingOverride/MissingOverride.qlref deleted file mode 100644 index 3a83310f4a2..00000000000 --- a/ql/ql/test/queries/style/MissingOverride/MissingOverride.qlref +++ /dev/null @@ -1 +0,0 @@ -queries/style/MissingOverride.ql \ No newline at end of file diff --git a/ql/ql/test/queries/style/MissingOverride/Test.qll b/ql/ql/test/queries/style/MissingOverride/Test.qll deleted file mode 100644 index 82d5199bf9e..00000000000 --- a/ql/ql/test/queries/style/MissingOverride/Test.qll +++ /dev/null @@ -1,37 +0,0 @@ -import ql - -class Super extends AstNode { - predicate test(int i) { i = [1 .. 5] } -} - -class Correct extends Super { - override predicate test(int i) { i = 3 } -} - -class Wrong extends Super { - predicate test(int i) { i = 2 } -} - -class Mid extends Super { } - -class Wrong2 extends Mid { - predicate test(int i) { i = 2 } -} - -final class SuperFinal = Super; - -class Correct2 extends SuperFinal { - predicate test(int i) { i = 4 } -} - -class Correct3 extends AstNode instanceof SuperFinal { - predicate test(int i) { i = 4 } -} - -final class Super2 extends AstNode { - predicate test(int i) { i = [1 .. 5] } -} - -class Correct4 extends Super2 { - predicate test(int i) { i = 3 } -} From 8e52483bebdc1916ceda98d18ace0654346cdd35 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <owen-mc@github.com> Date: Thu, 14 Mar 2024 21:29:59 +0000 Subject: [PATCH 150/309] Add df-manual models in manually modeled classes --- java/ql/lib/ext/java.io.model.yml | 2 ++ java/ql/lib/ext/java.lang.model.yml | 17 +++++++++-------- java/ql/lib/ext/java.util.model.yml | 12 ++++++++++++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/java/ql/lib/ext/java.io.model.yml b/java/ql/lib/ext/java.io.model.yml index 3824c588662..e8a14a13e51 100644 --- a/java/ql/lib/ext/java.io.model.yml +++ b/java/ql/lib/ext/java.io.model.yml @@ -78,11 +78,13 @@ extensions: - ["java.io", "File", True, "getCanonicalFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "getCanonicalPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "getParent", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"] - ["java.io", "File", True, "getParentFile", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "getPath", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "toPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "File", True, "toURI", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "toURL", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"] - ["java.io", "FilterOutputStream", True, "FilterOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["java.io", "InputStream", True, "read", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.io", "InputStream", True, "read", "(byte[])", "", "Argument[this]", "Argument[0]", "taint", "manual"] diff --git a/java/ql/lib/ext/java.lang.model.yml b/java/ql/lib/ext/java.lang.model.yml index fff3a90dcb3..92f0a7a0805 100644 --- a/java/ql/lib/ext/java.lang.model.yml +++ b/java/ql/lib/ext/java.lang.model.yml @@ -114,6 +114,7 @@ extensions: - ["java.lang", "String", False, "indent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "intern", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "lines", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "df-generated"] - ["java.lang", "String", False, "repeat", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "replace", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "replace", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] @@ -239,14 +240,14 @@ extensions: - ["java.lang", "Thread", "interrupt", "()", "summary", "manual"] - ["java.lang", "Thread", "sleep", "(long)", "summary", "manual"] - ["java.lang", "Thread", "start", "()", "summary", "manual"] - - ["java.lang", "Throwable", "addSuppressed", "(Throwable)", "summary", "manual"] - - ["java.lang", "Throwable", "fillInStackTrace", "()", "summary", "manual"] - - ["java.lang", "Throwable", "getStackTrace", "()", "summary", "manual"] - - ["java.lang", "Throwable", "getSuppressed", "()", "summary", "manual"] - - ["java.lang", "Throwable", "printStackTrace", "()", "summary", "manual"] - - ["java.lang", "Throwable", "printStackTrace", "(PrintStream)", "summary", "manual"] - - ["java.lang", "Throwable", "printStackTrace", "(PrintWriter)", "summary", "manual"] - - ["java.lang", "Throwable", "setStackTrace", "(StackTraceElement[])", "summary", "manual"] + - ["java.lang", "Throwable", "addSuppressed", "(Throwable)", "summary", "df-manual"] + - ["java.lang", "Throwable", "fillInStackTrace", "()", "summary", "df-manual"] + - ["java.lang", "Throwable", "getStackTrace", "()", "summary", "df-manual"] + - ["java.lang", "Throwable", "getSuppressed", "()", "summary", "df-manual"] + - ["java.lang", "Throwable", "printStackTrace", "()", "summary", "df-manual"] + - ["java.lang", "Throwable", "printStackTrace", "(PrintStream)", "summary", "df-manual"] + - ["java.lang", "Throwable", "printStackTrace", "(PrintWriter)", "summary", "df-manual"] + - ["java.lang", "Throwable", "setStackTrace", "(StackTraceElement[])", "summary", "df-manual"] # The below APIs have numeric flow and are currently being stored as neutral models. # These may be changed to summary models with kinds "value-numeric" and "taint-numeric" (or similar) in the future. - ["java.lang", "Double", "doubleToLongBits", "(double)", "summary", "manual"] # taint-numeric diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index 8f621df591e..be4665d4cd7 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -58,6 +58,7 @@ extensions: - ["java.util", "Collection", True, "toArray", "", "", "Argument[this].Element", "Argument[0].ArrayElement", "value", "manual"] - ["java.util", "Collection", True, "toArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] - ["java.util", "Collections", False, "addAll", "(Collection,Object[])", "", "Argument[1].ArrayElement", "Argument[0].Element", "value", "manual"] + - ["java.util", "Collections", False, "asLifoQueue", "(Deque)", "", "Argument[0].Element", "ReturnValue.Element", "value", "df-manual"] - ["java.util", "Collections", False, "checkedCollection", "(Collection,Class)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["java.util", "Collections", False, "checkedList", "(List,Class)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["java.util", "Collections", False, "checkedMap", "(Map,Class,Class)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] @@ -65,6 +66,7 @@ extensions: - ["java.util", "Collections", False, "checkedNavigableMap", "(NavigableMap,Class,Class)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Collections", False, "checkedNavigableMap", "(NavigableMap,Class,Class)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["java.util", "Collections", False, "checkedNavigableSet", "(NavigableSet,Class)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Collections", False, "checkedQueue", "(Queue,Class)", "", "Argument[0].Element", "ReturnValue.Element", "value", "df-manual"] - ["java.util", "Collections", False, "checkedSet", "(Set,Class)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["java.util", "Collections", False, "checkedSortedMap", "(SortedMap,Class,Class)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Collections", False, "checkedSortedMap", "(SortedMap,Class,Class)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] @@ -309,6 +311,9 @@ extensions: - ["java.util", "Queue", True, "poll", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["java.util", "Queue", True, "remove", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["java.util", "ResourceBundle", True, "getString", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Scanner", True, "findAll", "(Pattern)", "", "Argument[this]", "ReturnValue.Element", "taint", "df-manual"] + - ["java.util", "Scanner", True, "findAll", "(String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"] + - ["java.util", "Scanner", True, "match", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"] - ["java.util", "Scanner", True, "Scanner", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["java.util", "Scanner", True, "findInLine", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.util", "Scanner", True, "findWithinHorizon", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] @@ -428,6 +433,8 @@ extensions: - ["java.util", "Collections", "emptyList", "()", "summary", "manual"] - ["java.util", "Collections", "emptyMap", "()", "summary", "manual"] - ["java.util", "Collections", "emptySet", "()", "summary", "manual"] + - ["java.util", "Collections", "newSetFromMap", "", "summary", "df-manual"] + - ["java.util", "Collections", "reverseOrder", "", "summary", "df-manual"] - ["java.util", "Collections", "sort", "", "summary", "manual"] - ["java.util", "Enumeration", "hasMoreElements", "()", "summary", "manual"] - ["java.util", "EnumSet", "allOf", "(Class)", "summary", "df-manual"] @@ -520,6 +527,11 @@ extensions: - ["java.util", "Optional", "isPresent", "()", "summary", "manual"] - ["java.util", "Random", "nextInt", "(int)", "summary", "manual"] - ["java.util", "ResourceBundle", "getBundle", "", "summary", "df-manual"] + - ["java.util", "Scanner", "delimiter", "()", "summary", "df-generated"] + - ["java.util", "Scanner", "hasNext", "(Pattern)", "summary", "df-generated"] + - ["java.util", "Scanner", "hasNext", "(String)", "summary", "df-generated"] + - ["java.util", "Scanner", "ioException", "()", "summary", "df-generated"] + - ["java.util", "Scanner", "locale", "()", "summary", "df-generated"] - ["java.util", "Set", "contains", "(Object)", "summary", "manual"] - ["java.util", "Set", "isEmpty", "()", "summary", "manual"] - ["java.util", "Set", "size", "()", "summary", "manual"] From d3e0a90ae512fafa8dec022db9651ea8f84cbb07 Mon Sep 17 00:00:00 2001 From: Max Schaefer <max-schaefer@github.com> Date: Fri, 15 Mar 2024 11:19:32 +0000 Subject: [PATCH 151/309] Go: Mention raw string iterals in QHelp for `go/incomplete-hostname-regexp`. --- .../CWE-020/IncompleteHostnameRegexp.qhelp | 4 ++++ .../CWE-020/IncompleteHostnameRegexpGood2.go | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 go/ql/src/Security/CWE-020/IncompleteHostnameRegexpGood2.go diff --git a/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.qhelp b/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.qhelp index cf4655dbae5..21368fca81b 100644 --- a/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.qhelp +++ b/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.qhelp @@ -41,6 +41,10 @@ domain such as <code>wwwXexample.com</code>. Address this vulnerability by escaping <code>.</code> appropriately: </p> <sample src="IncompleteHostnameRegexpGood.go"/> +<p> +You may also want to consider using raw string literals to avoid having to escape backslashes: +</p> +<sample src="IncompleteHostnameRegexpGood2.go"/> </example> <references> diff --git a/go/ql/src/Security/CWE-020/IncompleteHostnameRegexpGood2.go b/go/ql/src/Security/CWE-020/IncompleteHostnameRegexpGood2.go new file mode 100644 index 00000000000..7c5df3f6742 --- /dev/null +++ b/go/ql/src/Security/CWE-020/IncompleteHostnameRegexpGood2.go @@ -0,0 +1,16 @@ +package main + +import ( + "errors" + "net/http" + "regexp" +) + +func checkRedirectGood(req *http.Request, via []*http.Request) error { + // GOOD: the host of `req.URL` must be `example.com`, `www.example.com` or `beta.example.com` + re := `^((www|beta)\.)?example\.com/` + if matched, _ := regexp.MatchString(re, req.URL.Host); matched { + return nil + } + return errors.New("Invalid redirect") +} From a51fe4a00e51fe166fae564971de2414f2a61100 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 12:10:48 +0000 Subject: [PATCH 152/309] C++: Make the vector and iterator classes in 'ir.cpp' more realistic. This matches the one we use for dataflow tests. --- .../library-tests/ir/ir/PrintAST.expected | 16615 ++++++++-------- .../library-tests/ir/ir/aliased_ir.expected | 14377 ++++++------- cpp/ql/test/library-tests/ir/ir/ir.cpp | 105 +- .../ir/ir/operand_locations.expected | 12886 ++++++------ .../ir/ir/raw_consistency.expected | 2 +- .../test/library-tests/ir/ir/raw_ir.expected | 13033 ++++++------ 6 files changed, 28750 insertions(+), 28268 deletions(-) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 624954838d6..3b369651304 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -9750,2301 +9750,2419 @@ ir.cpp: # 1054| getRightOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) # 1054| Type = [IntType] int # 1054| ValueCategory = prvalue(load) -# 1059| [CopyAssignmentOperator] vector<ClassWithDestructor>& vector<ClassWithDestructor>::operator=(vector<ClassWithDestructor> const&) -# 1059| <params>: +# 1078| [CopyAssignmentOperator] std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&>& std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&>::operator=(std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&> const&) +# 1078| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> & +# 1078| [CopyAssignmentOperator] std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>& std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>::operator=(std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&> const&) +# 1078| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> & +# 1078| [CopyAssignmentOperator] std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>& std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::operator=(std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&> const&) +# 1078| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> & +# 1081| [Constructor] void std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::iterator() +# 1081| <params>: +# 1082| [Constructor] void std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::iterator(std::iterator<Category, type, std::ptrdiff_t, type*, type&> const&) +# 1082| <params>: +# 1082| getParameter(0): [Parameter] other +# 1082| Type = [LValueReferenceType] const iterator<Category, type, ptrdiff_t, type *, type &> & +# 1082| [CopyConstructor] void std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&>::iterator(std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&> const&) +# 1082| <params>: +# 1082| getParameter(0): [Parameter] other +# 1082| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> & +# 1082| [CopyConstructor] void std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>::iterator(std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&> const&) +# 1082| <params>: +# 1082| getParameter(0): [Parameter] other +# 1082| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> & +# 1082| [CopyConstructor] void std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::iterator(std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&> const&) +# 1082| <params>: +# 1082| getParameter(0): [Parameter] other +# 1082| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> & +# 1084| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type>& std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator++() +# 1084| <params>: +# 1084| [MemberFunction] std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&>& std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&>::operator++() +# 1084| <params>: +# 1084| [MemberFunction] std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>& std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>::operator++() +# 1084| <params>: +# 1084| [MemberFunction] std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>& std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::operator++() +# 1084| <params>: +# 1085| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type> std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator++(int) +# 1085| <params>: +# 1085| getParameter(0): [Parameter] (unnamed parameter 0) +# 1085| Type = [IntType] int +# 1086| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type>& std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator--() +# 1086| <params>: +# 1087| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type> std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator--(int) +# 1087| <params>: +# 1087| getParameter(0): [Parameter] (unnamed parameter 0) +# 1087| Type = [IntType] int +# 1088| [ConstMemberFunction] bool std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator==(std::iterator<Category, value_type, difference_type, pointer_type, reference_type>) const +# 1088| <params>: +# 1088| getParameter(0): [Parameter] other +# 1088| Type = [TemplateClass] iterator<Category, value_type, difference_type, pointer_type, reference_type> +# 1089| [ConstMemberFunction] bool std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator!=(std::iterator<Category, value_type, difference_type, pointer_type, reference_type>) const +# 1089| <params>: +# 1089| getParameter(0): [Parameter] other +# 1089| Type = [TemplateClass] iterator<Category, value_type, difference_type, pointer_type, reference_type> +# 1089| [ConstMemberFunction] bool std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&>::operator!=(std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&>) const +# 1089| <params>: +# 1089| getParameter(0): [Parameter] other +# 1089| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +# 1089| [ConstMemberFunction] bool std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>::operator!=(std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>) const +# 1089| <params>: +# 1089| getParameter(0): [Parameter] other +# 1089| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> +# 1089| [ConstMemberFunction] bool std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::operator!=(std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>) const +# 1089| <params>: +# 1089| getParameter(0): [Parameter] other +# 1089| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +# 1090| [ConstMemberFunction] ClassWithDestructor& std::iterator<std::random_access_iterator_tag, ClassWithDestructor, std::ptrdiff_t, ClassWithDestructor*, ClassWithDestructor&>::operator*() const +# 1090| <params>: +# 1090| [ConstMemberFunction] String& std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>::operator*() const +# 1090| <params>: +# 1090| [ConstMemberFunction] int& std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::operator*() const +# 1090| <params>: +# 1090| [ConstMemberFunction] reference_type std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator*() const +# 1090| <params>: +# 1091| [ConstMemberFunction] pointer_type std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator->() const +# 1091| <params>: +# 1092| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type> std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator+(int) +# 1092| <params>: +# 1092| getParameter(0): [Parameter] (unnamed parameter 0) +# 1092| Type = [IntType] int +# 1093| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type> std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator-(int) +# 1093| <params>: +# 1093| getParameter(0): [Parameter] (unnamed parameter 0) +# 1093| Type = [IntType] int +# 1094| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type>& std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator+=(int) +# 1094| <params>: +# 1094| getParameter(0): [Parameter] (unnamed parameter 0) +# 1094| Type = [IntType] int +# 1095| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type>& std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator-=(int) +# 1095| <params>: +# 1095| getParameter(0): [Parameter] (unnamed parameter 0) +# 1095| Type = [IntType] int +# 1096| [MemberFunction] int std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator-(std::iterator<Category, value_type, difference_type, pointer_type, reference_type>) +# 1096| <params>: +# 1096| getParameter(0): [Parameter] (unnamed parameter 0) +# 1096| Type = [TemplateClass] iterator<Category, value_type, difference_type, pointer_type, reference_type> +# 1097| [MemberFunction] reference_type std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator[](int) +# 1097| <params>: +# 1097| getParameter(0): [Parameter] (unnamed parameter 0) +# 1097| Type = [IntType] int +# 1100| [CopyAssignmentOperator] std::input_iterator_tag& std::input_iterator_tag::operator=(std::input_iterator_tag const&) +# 1100| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const input_iterator_tag & +# 1100| [MoveAssignmentOperator] std::input_iterator_tag& std::input_iterator_tag::operator=(std::input_iterator_tag&&) +# 1100| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] input_iterator_tag && +# 1101| [CopyAssignmentOperator] std::forward_iterator_tag& std::forward_iterator_tag::operator=(std::forward_iterator_tag const&) +# 1101| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const forward_iterator_tag & +# 1101| [MoveAssignmentOperator] std::forward_iterator_tag& std::forward_iterator_tag::operator=(std::forward_iterator_tag&&) +# 1101| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] forward_iterator_tag && +# 1101| [Constructor] void std::forward_iterator_tag::forward_iterator_tag() +# 1101| <params>: +# 1102| [CopyAssignmentOperator] std::bidirectional_iterator_tag& std::bidirectional_iterator_tag::operator=(std::bidirectional_iterator_tag const&) +# 1102| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const bidirectional_iterator_tag & +# 1102| [MoveAssignmentOperator] std::bidirectional_iterator_tag& std::bidirectional_iterator_tag::operator=(std::bidirectional_iterator_tag&&) +# 1102| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] bidirectional_iterator_tag && +# 1102| [Constructor] void std::bidirectional_iterator_tag::bidirectional_iterator_tag() +# 1102| <params>: +# 1103| [CopyAssignmentOperator] std::random_access_iterator_tag& std::random_access_iterator_tag::operator=(std::random_access_iterator_tag const&) +# 1103| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const random_access_iterator_tag & +# 1103| [MoveAssignmentOperator] std::random_access_iterator_tag& std::random_access_iterator_tag::operator=(std::random_access_iterator_tag&&) +# 1103| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] random_access_iterator_tag && +# 1103| [Constructor] void std::random_access_iterator_tag::random_access_iterator_tag() +# 1103| <params>: +# 1105| [CopyAssignmentOperator] std::output_iterator_tag& std::output_iterator_tag::operator=(std::output_iterator_tag const&) +# 1105| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const output_iterator_tag & +# 1105| [MoveAssignmentOperator] std::output_iterator_tag& std::output_iterator_tag::operator=(std::output_iterator_tag&&) +# 1105| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] output_iterator_tag && +# 1108| [CopyAssignmentOperator] std::vector<ClassWithDestructor>& std::vector<ClassWithDestructor>::operator=(std::vector<ClassWithDestructor> const&) +# 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const vector<ClassWithDestructor> & -# 1059| [CopyAssignmentOperator] vector<String>& vector<String>::operator=(vector<String> const&) -# 1059| <params>: +# 1108| [CopyAssignmentOperator] std::vector<String>& std::vector<String>::operator=(std::vector<String> const&) +# 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const vector<String> & -# 1059| [CopyAssignmentOperator] vector<int>& vector<int>::operator=(vector<int> const&) -# 1059| <params>: +# 1108| [CopyAssignmentOperator] std::vector<int>& std::vector<int>::operator=(std::vector<int> const&) +# 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const vector<int> & -# 1059| [CopyConstructor] void vector<ClassWithDestructor>::vector(vector<ClassWithDestructor> const&) -# 1059| <params>: +# 1108| [CopyConstructor] void std::vector<ClassWithDestructor>::vector(std::vector<ClassWithDestructor> const&) +# 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const vector<ClassWithDestructor> & -# 1059| [CopyConstructor] void vector<String>::vector(vector<String> const&) -# 1059| <params>: +# 1108| [CopyConstructor] void std::vector<String>::vector(std::vector<String> const&) +# 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const vector<String> & -# 1059| [CopyConstructor] void vector<int>::vector(vector<int> const&) -# 1059| <params>: +# 1108| [CopyConstructor] void std::vector<int>::vector(std::vector<int> const&) +# 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const vector<int> & -# 1060| [CopyAssignmentOperator] vector<ClassWithDestructor>::iterator& vector<ClassWithDestructor>::iterator::operator=(vector<ClassWithDestructor>::iterator const public&) -# 1060| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const iterator & -# 1060| [MoveAssignmentOperator] vector<ClassWithDestructor>::iterator& vector<ClassWithDestructor>::iterator::operator=(vector<ClassWithDestructor>::iterator&&) -# 1060| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] iterator && -# 1060| [CopyAssignmentOperator] vector<String>::iterator& vector<String>::iterator::operator=(vector<String>::iterator const public&) -# 1060| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const iterator & -# 1060| [MoveAssignmentOperator] vector<String>::iterator& vector<String>::iterator::operator=(vector<String>::iterator&&) -# 1060| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] iterator && -# 1060| [CopyAssignmentOperator] vector<int>::iterator& vector<int>::iterator::operator=(vector<int>::iterator const public&) -# 1060| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const iterator & -# 1060| [MoveAssignmentOperator] vector<int>::iterator& vector<int>::iterator::operator=(vector<int>::iterator&&) -# 1060| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] iterator && -# 1062| [MemberFunction] vector<ClassWithDestructor>::iterator& vector<ClassWithDestructor>::iterator::operator++() -# 1062| <params>: -# 1062| [MemberFunction] vector<String>::iterator& vector<String>::iterator::operator++() -# 1062| <params>: -# 1062| [MemberFunction] vector<T>::iterator& vector<T>::iterator::operator++() -# 1062| <params>: -# 1062| [MemberFunction] vector<int>::iterator& vector<int>::iterator::operator++() -# 1062| <params>: -# 1063| [ConstMemberFunction] ClassWithDestructor& vector<ClassWithDestructor>::iterator::operator*() const -# 1063| <params>: -# 1063| [ConstMemberFunction] String& vector<String>::iterator::operator*() const -# 1063| <params>: -# 1063| [ConstMemberFunction] T& vector<T>::iterator::operator*() const -# 1063| <params>: -# 1063| [ConstMemberFunction] int& vector<int>::iterator::operator*() const -# 1063| <params>: -# 1065| [ConstMemberFunction] bool vector<ClassWithDestructor>::iterator::operator!=(vector<ClassWithDestructor>::iterator) const -# 1065| <params>: -# 1065| getParameter(0): [Parameter] right -# 1065| Type = [NestedStruct] iterator -# 1065| [ConstMemberFunction] bool vector<String>::iterator::operator!=(vector<String>::iterator) const -# 1065| <params>: -# 1065| getParameter(0): [Parameter] right -# 1065| Type = [NestedStruct] iterator -# 1065| [ConstMemberFunction] bool vector<T>::iterator::operator!=(vector<T>::iterator) const -# 1065| <params>: -# 1065| getParameter(0): [Parameter] right -# 1065| Type = [NestedClass,TemplateClass] iterator -# 1065| [ConstMemberFunction] bool vector<int>::iterator::operator!=(vector<int>::iterator) const -# 1065| <params>: -# 1065| getParameter(0): [Parameter] right -# 1065| Type = [NestedStruct] iterator -# 1068| [Constructor] void vector<ClassWithDestructor>::vector(ClassWithDestructor) -# 1068| <params>: -# 1068| getParameter(0): [Parameter] (unnamed parameter 0) -# 1068| Type = [Class] ClassWithDestructor -# 1068| [Constructor] void vector<String>::vector(String) -# 1068| <params>: -# 1068| getParameter(0): [Parameter] (unnamed parameter 0) -# 1068| Type = [Struct] String -# 1068| [Constructor] void vector<T>::vector(T) -# 1068| <params>: -# 1068| getParameter(0): [Parameter] (unnamed parameter 0) -# 1068| Type = [TemplateParameter] T -# 1068| [Constructor] void vector<int>::vector(int) -# 1068| <params>: -# 1068| getParameter(0): [Parameter] (unnamed parameter 0) -# 1068| Type = [IntType] int -# 1069| [Destructor] void vector<ClassWithDestructor>::~vector() -# 1069| <params>: -# 1069| [Destructor] void vector<T>::~vector() -# 1069| <params>: -# 1069| [Destructor] void vector<int>::~vector() -# 1069| <params>: -# 1070| [ConstMemberFunction] vector<ClassWithDestructor>::iterator vector<ClassWithDestructor>::begin() const -# 1070| <params>: -# 1070| [ConstMemberFunction] vector<String>::iterator vector<String>::begin() const -# 1070| <params>: -# 1070| [ConstMemberFunction] vector<T>::iterator vector<T>::begin() const -# 1070| <params>: -# 1070| [ConstMemberFunction] vector<int>::iterator vector<int>::begin() const -# 1070| <params>: -# 1071| [ConstMemberFunction] vector<ClassWithDestructor>::iterator vector<ClassWithDestructor>::end() const -# 1071| <params>: -# 1071| [ConstMemberFunction] vector<String>::iterator vector<String>::end() const -# 1071| <params>: -# 1071| [ConstMemberFunction] vector<T>::iterator vector<T>::end() const -# 1071| <params>: -# 1071| [ConstMemberFunction] vector<int>::iterator vector<int>::end() const -# 1071| <params>: -# 1075| [Operator,TemplateFunction,TopLevelFunction] bool operator==<T>(iterator, iterator) -# 1075| <params>: -# 1075| getParameter(0): [Parameter] left -# 1075| Type = [TemplateParameter] iterator -# 1075| getParameter(1): [Parameter] right -# 1075| Type = [TemplateParameter] iterator -# 1077| [Operator,TemplateFunction,TopLevelFunction] bool operator!=<T>(iterator, iterator) -# 1077| <params>: -# 1077| getParameter(0): [Parameter] left -# 1077| Type = [TemplateParameter] iterator -# 1077| getParameter(1): [Parameter] right -# 1077| Type = [TemplateParameter] iterator -# 1079| [TopLevelFunction] void RangeBasedFor(vector<int> const&) -# 1079| <params>: -# 1079| getParameter(0): [Parameter] v -# 1079| Type = [LValueReferenceType] const vector<int> & -# 1079| getEntryPoint(): [BlockStmt] { ... } -# 1080| getStmt(0): [RangeBasedForStmt] for(...:...) ... -# 1080| getChild(1): [DeclStmt] declaration -# 1080| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 1080| Type = [LValueReferenceType] const vector<int> & -#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 1080| getExpr(): [VariableAccess] v -# 1080| Type = [LValueReferenceType] const vector<int> & -# 1080| ValueCategory = prvalue(load) -# 1080| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1080| Type = [LValueReferenceType] const vector<int> & -# 1080| ValueCategory = prvalue -# 1080| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1080| Type = [SpecifiedType] const vector<int> -# 1080| ValueCategory = lvalue -# 1080| getBeginEndDeclaration(): [DeclStmt] declaration -# 1080| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 1080| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 1080| getExpr(): [FunctionCall] call to begin -# 1080| Type = [NestedStruct] iterator -# 1080| ValueCategory = prvalue -# 1080| getQualifier(): [VariableAccess] (__range) -# 1080| Type = [LValueReferenceType] const vector<int> & -# 1080| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [SpecifiedType] const vector<int> -#-----| ValueCategory = lvalue -# 1080| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 1080| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 1080| getExpr(): [FunctionCall] call to end -# 1080| Type = [NestedStruct] iterator -# 1080| ValueCategory = prvalue -# 1080| getQualifier(): [VariableAccess] (__range) -# 1080| Type = [LValueReferenceType] const vector<int> & -# 1080| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [SpecifiedType] const vector<int> -#-----| ValueCategory = lvalue -# 1080| getCondition(): [FunctionCall] call to operator!= -# 1080| Type = [BoolType] bool -# 1080| ValueCategory = prvalue -# 1080| getQualifier(): [VariableAccess] (__begin) -# 1080| Type = [NestedStruct] iterator -# 1080| ValueCategory = lvalue -# 1080| getArgument(0): [VariableAccess] (__end) -# 1080| Type = [NestedStruct] iterator -# 1080| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 1080| getUpdate(): [FunctionCall] call to operator++ -# 1080| Type = [LValueReferenceType] iterator & -# 1080| ValueCategory = prvalue -# 1080| getQualifier(): [VariableAccess] (__begin) -# 1080| Type = [NestedStruct] iterator -# 1080| ValueCategory = lvalue -# 1080| getChild(5): [DeclStmt] declaration -# 1080| getDeclarationEntry(0): [VariableDeclarationEntry] definition of e -# 1080| Type = [IntType] int -# 1080| getVariable().getInitializer(): [Initializer] initializer for e -# 1080| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 1080| Type = [LValueReferenceType] int & -# 1080| ValueCategory = prvalue -# 1080| getQualifier(): [VariableAccess] (__begin) -# 1080| Type = [NestedStruct] iterator -# 1080| ValueCategory = lvalue -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 1080| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1080| Type = [IntType] int -# 1080| ValueCategory = prvalue(load) -# 1080| getStmt(): [BlockStmt] { ... } -# 1081| getStmt(0): [IfStmt] if (...) ... -# 1081| getCondition(): [GTExpr] ... > ... -# 1081| Type = [BoolType] bool -# 1081| ValueCategory = prvalue -# 1081| getGreaterOperand(): [VariableAccess] e -# 1081| Type = [IntType] int -# 1081| ValueCategory = prvalue(load) -# 1081| getLesserOperand(): [Literal] 0 -# 1081| Type = [IntType] int -# 1081| Value = [Literal] 0 -# 1081| ValueCategory = prvalue -# 1081| getThen(): [BlockStmt] { ... } -# 1082| getStmt(0): [ContinueStmt] continue; -# 1080| getStmt(1): [LabelStmt] label ...: -# 1080| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1080| Type = [NestedStruct] iterator -# 1080| ValueCategory = lvalue -# 1086| getStmt(1): [RangeBasedForStmt] for(...:...) ... -# 1086| getChild(1): [DeclStmt] declaration -# 1086| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 1086| Type = [LValueReferenceType] const vector<int> & -#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 1086| getExpr(): [VariableAccess] v -# 1086| Type = [LValueReferenceType] const vector<int> & -# 1086| ValueCategory = prvalue(load) -# 1086| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1086| Type = [LValueReferenceType] const vector<int> & -# 1086| ValueCategory = prvalue -# 1086| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1086| Type = [SpecifiedType] const vector<int> -# 1086| ValueCategory = lvalue -# 1086| getBeginEndDeclaration(): [DeclStmt] declaration -# 1086| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 1086| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 1086| getExpr(): [FunctionCall] call to begin -# 1086| Type = [NestedStruct] iterator -# 1086| ValueCategory = prvalue -# 1086| getQualifier(): [VariableAccess] (__range) -# 1086| Type = [LValueReferenceType] const vector<int> & -# 1086| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [SpecifiedType] const vector<int> -#-----| ValueCategory = lvalue -# 1086| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 1086| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 1086| getExpr(): [FunctionCall] call to end -# 1086| Type = [NestedStruct] iterator -# 1086| ValueCategory = prvalue -# 1086| getQualifier(): [VariableAccess] (__range) -# 1086| Type = [LValueReferenceType] const vector<int> & -# 1086| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [SpecifiedType] const vector<int> -#-----| ValueCategory = lvalue -# 1086| getCondition(): [FunctionCall] call to operator!= -# 1086| Type = [BoolType] bool -# 1086| ValueCategory = prvalue -# 1086| getQualifier(): [VariableAccess] (__begin) -# 1086| Type = [NestedStruct] iterator -# 1086| ValueCategory = lvalue -# 1086| getArgument(0): [VariableAccess] (__end) -# 1086| Type = [NestedStruct] iterator -# 1086| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 1086| getUpdate(): [FunctionCall] call to operator++ -# 1086| Type = [LValueReferenceType] iterator & -# 1086| ValueCategory = prvalue -# 1086| getQualifier(): [VariableAccess] (__begin) -# 1086| Type = [NestedStruct] iterator -# 1086| ValueCategory = lvalue -# 1086| getChild(5): [DeclStmt] declaration -# 1086| getDeclarationEntry(0): [VariableDeclarationEntry] definition of e -# 1086| Type = [LValueReferenceType] const int & -# 1086| getVariable().getInitializer(): [Initializer] initializer for e -# 1086| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 1086| Type = [LValueReferenceType] int & -# 1086| ValueCategory = prvalue -# 1086| getQualifier(): [VariableAccess] (__begin) -# 1086| Type = [NestedStruct] iterator -# 1086| ValueCategory = lvalue -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 1086| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1086| Type = [LValueReferenceType] const int & -# 1086| ValueCategory = prvalue -# 1086| getExpr(): [CStyleCast] (const int)... -# 1086| Conversion = [GlvalueConversion] glvalue conversion -# 1086| Type = [SpecifiedType] const int -# 1086| ValueCategory = lvalue -# 1086| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1086| Type = [IntType] int -# 1086| ValueCategory = lvalue -# 1086| getStmt(): [BlockStmt] { ... } -# 1087| getStmt(0): [IfStmt] if (...) ... -# 1087| getCondition(): [LTExpr] ... < ... -# 1087| Type = [BoolType] bool -# 1087| ValueCategory = prvalue -# 1087| getLesserOperand(): [VariableAccess] e -# 1087| Type = [LValueReferenceType] const int & -# 1087| ValueCategory = prvalue(load) -# 1087| getGreaterOperand(): [Literal] 5 -# 1087| Type = [IntType] int -# 1087| Value = [Literal] 5 -# 1087| ValueCategory = prvalue -# 1087| getLesserOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1087| Type = [IntType] int -# 1087| ValueCategory = prvalue(load) -# 1087| getThen(): [BlockStmt] { ... } -# 1088| getStmt(0): [BreakStmt] break; -# 1086| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1086| Type = [NestedStruct] iterator -# 1086| ValueCategory = lvalue -# 1090| getStmt(2): [LabelStmt] label ...: -# 1091| getStmt(3): [ReturnStmt] return ... -# 1110| [TopLevelFunction] int AsmStmt(int) +# 1109| [Constructor] void std::vector<ClassWithDestructor>::vector(ClassWithDestructor) +# 1109| <params>: +# 1109| getParameter(0): [Parameter] (unnamed parameter 0) +# 1109| Type = [Class] ClassWithDestructor +# 1109| [Constructor] void std::vector<String>::vector(String) +# 1109| <params>: +# 1109| getParameter(0): [Parameter] (unnamed parameter 0) +# 1109| Type = [Struct] String +# 1109| [Constructor] void std::vector<T>::vector(T) +# 1109| <params>: +# 1109| getParameter(0): [Parameter] (unnamed parameter 0) +# 1109| Type = [TemplateParameter] T +# 1109| [Constructor] void std::vector<int>::vector(int) +# 1109| <params>: +# 1109| getParameter(0): [Parameter] (unnamed parameter 0) +# 1109| Type = [IntType] int +# 1110| [Destructor] void std::vector<ClassWithDestructor>::~vector() # 1110| <params>: -# 1110| getParameter(0): [Parameter] x -# 1110| Type = [IntType] int -# 1110| getEntryPoint(): [BlockStmt] { ... } -# 1111| getStmt(0): [AsmStmt] asm statement -# 1112| getStmt(1): [ReturnStmt] return ... -# 1112| getExpr(): [VariableAccess] x -# 1112| Type = [IntType] int -# 1112| ValueCategory = prvalue(load) -# 1115| [TopLevelFunction] void AsmStmtWithOutputs(unsigned int&, unsigned int, unsigned int&, unsigned int) +# 1110| [Destructor] void std::vector<T>::~vector() +# 1110| <params>: +# 1110| [Destructor] void std::vector<int>::~vector() +# 1110| <params>: +# 1115| [ConstMemberFunction] std::vector<ClassWithDestructor>::iterator std::vector<ClassWithDestructor>::begin() const # 1115| <params>: -# 1115| getParameter(0): [Parameter] a -# 1115| Type = [LValueReferenceType] unsigned int & -# 1115| getParameter(1): [Parameter] b -# 1115| Type = [IntType] unsigned int -# 1115| getParameter(2): [Parameter] c -# 1115| Type = [LValueReferenceType] unsigned int & -# 1115| getParameter(3): [Parameter] d -# 1115| Type = [IntType] unsigned int -# 1116| getEntryPoint(): [BlockStmt] { ... } -# 1117| getStmt(0): [AsmStmt] asm statement -# 1120| getChild(0): [VariableAccess] a -# 1120| Type = [LValueReferenceType] unsigned int & -# 1120| ValueCategory = prvalue(load) -# 1120| getChild(1): [VariableAccess] b -# 1120| Type = [IntType] unsigned int -# 1120| ValueCategory = lvalue -# 1120| getChild(2): [VariableAccess] c -# 1120| Type = [LValueReferenceType] unsigned int & -# 1120| ValueCategory = prvalue(load) -# 1120| getChild(3): [VariableAccess] d -# 1120| Type = [IntType] unsigned int -# 1120| ValueCategory = prvalue(load) -# 1120| getChild(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1120| Type = [IntType] unsigned int -# 1120| ValueCategory = lvalue -# 1120| getChild(2).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1120| Type = [IntType] unsigned int -# 1120| ValueCategory = prvalue(load) -# 1122| getStmt(1): [ReturnStmt] return ... -# 1124| [TopLevelFunction] void ExternDeclarations() -# 1124| <params>: -# 1125| getEntryPoint(): [BlockStmt] { ... } -# 1126| getStmt(0): [DeclStmt] declaration -# 1126| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g -# 1126| Type = [IntType] int -# 1127| getStmt(1): [DeclStmt] declaration -# 1127| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1127| Type = [IntType] int -# 1128| getStmt(2): [DeclStmt] declaration -# 1128| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1128| Type = [IntType] int -# 1128| getDeclarationEntry(1): [FunctionDeclarationEntry] declaration of f -# 1128| Type = [IntType] int -# 1129| getStmt(3): [DeclStmt] declaration -# 1129| getDeclarationEntry(0): [FunctionDeclarationEntry] declaration of z -# 1129| Type = [IntType] int -# 1129| getDeclarationEntry(1): [FunctionDeclarationEntry] declaration of w -# 1129| Type = [IntType] int -# 1129| getDeclarationEntry(2): [VariableDeclarationEntry] definition of h -# 1129| Type = [IntType] int -# 1130| getStmt(4): [DeclStmt] declaration -# 1130| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of d -# 1130| Type = [CTypedefType,LocalTypedefType] d -# 1131| getStmt(5): [ReturnStmt] return ... -# 1128| [TopLevelFunction] int f(float) -# 1128| <params>: -# 1128| getParameter(0): [Parameter] (unnamed parameter 0) -# 1128| Type = [FloatType] float -# 1129| [TopLevelFunction] int z(float) -# 1129| <params>: -# 1129| getParameter(0): [Parameter] (unnamed parameter 0) -# 1129| Type = [FloatType] float -# 1129| [TopLevelFunction] int w(float) -# 1129| <params>: -# 1129| getParameter(0): [Parameter] (unnamed parameter 0) -# 1129| Type = [FloatType] float -# 1139| [TopLevelFunction] void ExternDeclarationsInMacro() -# 1139| <params>: -# 1140| getEntryPoint(): [BlockStmt] { ... } -# 1141| getStmt(0): [DeclStmt] declaration -# 1141| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g -# 1141| Type = [IntType] int -# 1141| getStmt(1): [ForStmt] for(...;...;...) ... -# 1141| getInitialization(): [DeclStmt] declaration -# 1141| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1141| Type = [IntType] int -# 1141| getVariable().getInitializer(): [Initializer] initializer for i -# 1141| getExpr(): [Literal] 0 -# 1141| Type = [IntType] int -# 1141| Value = [Literal] 0 -# 1141| ValueCategory = prvalue -# 1141| getCondition(): [LTExpr] ... < ... -# 1141| Type = [BoolType] bool -# 1141| ValueCategory = prvalue -# 1141| getLesserOperand(): [VariableAccess] i -# 1141| Type = [IntType] int -# 1141| ValueCategory = prvalue(load) -# 1141| getGreaterOperand(): [Literal] 10 -# 1141| Type = [IntType] int -# 1141| Value = [Literal] 10 -# 1141| ValueCategory = prvalue -# 1141| getUpdate(): [PrefixIncrExpr] ++ ... -# 1141| Type = [IntType] int -# 1141| ValueCategory = lvalue -# 1141| getOperand(): [VariableAccess] i -# 1141| Type = [IntType] int -# 1141| ValueCategory = lvalue -# 1141| getStmt(): [BlockStmt] { ... } -# 1141| getStmt(0): [DeclStmt] declaration -# 1141| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g -# 1141| Type = [IntType] int -# 1141| getStmt(2): [EmptyStmt] ; -# 1142| getStmt(3): [ReturnStmt] return ... -# 1144| [TopLevelFunction] void TryCatchNoCatchAny(bool) -# 1144| <params>: -# 1144| getParameter(0): [Parameter] b -# 1144| Type = [BoolType] bool -# 1144| getEntryPoint(): [BlockStmt] { ... } -# 1145| getStmt(0): [TryStmt] try { ... } -# 1145| getStmt(): [BlockStmt] { ... } -# 1146| getStmt(0): [DeclStmt] declaration -# 1146| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1146| Type = [IntType] int -# 1146| getVariable().getInitializer(): [Initializer] initializer for x -# 1146| getExpr(): [Literal] 5 -# 1146| Type = [IntType] int -# 1146| Value = [Literal] 5 -# 1146| ValueCategory = prvalue -# 1147| getStmt(1): [IfStmt] if (...) ... -# 1147| getCondition(): [VariableAccess] b -# 1147| Type = [BoolType] bool -# 1147| ValueCategory = prvalue(load) -# 1147| getThen(): [BlockStmt] { ... } -# 1148| getStmt(0): [ExprStmt] ExprStmt -# 1148| getExpr(): [ThrowExpr] throw ... -# 1148| Type = [PointerType] const char * -# 1148| ValueCategory = prvalue -# 1148| getExpr(): string literal -# 1148| Type = [ArrayType] const char[15] -# 1148| Value = [StringLiteral] "string literal" -# 1148| ValueCategory = lvalue -# 1148| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1148| Type = [PointerType] const char * -# 1148| ValueCategory = prvalue -# 1150| getElse(): [IfStmt] if (...) ... -# 1150| getCondition(): [LTExpr] ... < ... -# 1150| Type = [BoolType] bool -# 1150| ValueCategory = prvalue -# 1150| getLesserOperand(): [VariableAccess] x -# 1150| Type = [IntType] int -# 1150| ValueCategory = prvalue(load) -# 1150| getGreaterOperand(): [Literal] 2 -# 1150| Type = [IntType] int -# 1150| Value = [Literal] 2 -# 1150| ValueCategory = prvalue -# 1150| getThen(): [BlockStmt] { ... } -# 1151| getStmt(0): [ExprStmt] ExprStmt -# 1151| getExpr(): [AssignExpr] ... = ... -# 1151| Type = [IntType] int -# 1151| ValueCategory = lvalue -# 1151| getLValue(): [VariableAccess] x -# 1151| Type = [IntType] int -# 1151| ValueCategory = lvalue -# 1151| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1151| Type = [IntType] int -# 1151| ValueCategory = prvalue -# 1151| getCondition(): [VariableAccess] b -# 1151| Type = [BoolType] bool -# 1151| ValueCategory = prvalue(load) -# 1151| getThen(): [Literal] 7 -# 1151| Type = [IntType] int -# 1151| Value = [Literal] 7 -# 1151| ValueCategory = prvalue -# 1151| getElse(): [ThrowExpr] throw ... -# 1151| Type = [Struct] String -# 1151| ValueCategory = prvalue -# 1151| getExpr(): [ConstructorCall] call to String -# 1151| Type = [VoidType] void -# 1151| ValueCategory = prvalue -# 1151| getArgument(0): String object -# 1151| Type = [ArrayType] const char[14] -# 1151| Value = [StringLiteral] "String object" -# 1151| ValueCategory = lvalue -# 1151| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1151| Type = [PointerType] const char * -# 1151| ValueCategory = prvalue -# 1153| getStmt(2): [ExprStmt] ExprStmt -# 1153| getExpr(): [AssignExpr] ... = ... -# 1153| Type = [IntType] int -# 1153| ValueCategory = lvalue -# 1153| getLValue(): [VariableAccess] x -# 1153| Type = [IntType] int -# 1153| ValueCategory = lvalue -# 1153| getRValue(): [Literal] 7 -# 1153| Type = [IntType] int -# 1153| Value = [Literal] 7 -# 1153| ValueCategory = prvalue -# 1155| getChild(1): [Handler] <handler> -# 1155| getBlock(): [CatchBlock] { ... } -# 1156| getStmt(0): [ExprStmt] ExprStmt -# 1156| getExpr(): [ThrowExpr] throw ... -# 1156| Type = [Struct] String -# 1156| ValueCategory = prvalue -# 1156| getExpr(): [ConstructorCall] call to String -# 1156| Type = [VoidType] void -# 1156| ValueCategory = prvalue -# 1156| getArgument(0): [VariableAccess] s -# 1156| Type = [PointerType] const char * -# 1156| ValueCategory = prvalue(load) -# 1158| getChild(2): [Handler] <handler> -# 1158| getBlock(): [CatchBlock] { ... } -# 1160| getStmt(1): [ReturnStmt] return ... -# 1164| [TopLevelFunction] void VectorTypes(int) -# 1164| <params>: -# 1164| getParameter(0): [Parameter] i -# 1164| Type = [IntType] int -# 1164| getEntryPoint(): [BlockStmt] { ... } -# 1165| getStmt(0): [DeclStmt] declaration -# 1165| getDeclarationEntry(0): [VariableDeclarationEntry] definition of vi4 -# 1165| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1165| getVariable().getInitializer(): [Initializer] initializer for vi4 -# 1165| getExpr(): [VectorAggregateLiteral] {...} -# 1165| Type = [GNUVectorType] __attribute((vector_size(16UL))) int -# 1165| ValueCategory = prvalue -# 1165| getAnElementExpr(0): [Literal] 0 -# 1165| Type = [IntType] int -# 1165| Value = [Literal] 0 -# 1165| ValueCategory = prvalue -# 1165| getAnElementExpr(1): [Literal] 1 -# 1165| Type = [IntType] int -# 1165| Value = [Literal] 1 -# 1165| ValueCategory = prvalue -# 1165| getAnElementExpr(2): [Literal] 2 -# 1165| Type = [IntType] int -# 1165| Value = [Literal] 2 -# 1165| ValueCategory = prvalue -# 1165| getAnElementExpr(3): [Literal] 3 -# 1165| Type = [IntType] int -# 1165| Value = [Literal] 3 -# 1165| ValueCategory = prvalue -# 1166| getStmt(1): [DeclStmt] declaration -# 1166| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1166| Type = [IntType] int -# 1166| getVariable().getInitializer(): [Initializer] initializer for x -# 1166| getExpr(): [ArrayExpr] access to array -# 1166| Type = [IntType] int -# 1166| ValueCategory = prvalue(load) -# 1166| getArrayBase(): [VariableAccess] vi4 -# 1166| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1166| ValueCategory = lvalue -# 1166| getArrayOffset(): [VariableAccess] i -# 1166| Type = [IntType] int -# 1166| ValueCategory = prvalue(load) -# 1167| getStmt(2): [ExprStmt] ExprStmt -# 1167| getExpr(): [AssignExpr] ... = ... -# 1167| Type = [IntType] int +# 1115| [ConstMemberFunction] std::vector<String>::iterator std::vector<String>::begin() const +# 1115| <params>: +# 1115| [ConstMemberFunction] std::vector<T>::iterator std::vector<T>::begin() const +# 1115| <params>: +# 1115| [ConstMemberFunction] std::vector<int>::iterator std::vector<int>::begin() const +# 1115| <params>: +# 1116| [ConstMemberFunction] std::vector<ClassWithDestructor>::iterator std::vector<ClassWithDestructor>::end() const +# 1116| <params>: +# 1116| [ConstMemberFunction] std::vector<String>::iterator std::vector<String>::end() const +# 1116| <params>: +# 1116| [ConstMemberFunction] std::vector<T>::iterator std::vector<T>::end() const +# 1116| <params>: +# 1116| [ConstMemberFunction] std::vector<int>::iterator std::vector<int>::end() const +# 1116| <params>: +# 1120| [Operator,TemplateFunction,TopLevelFunction] bool std::operator==<T>(iterator, iterator) +# 1120| <params>: +# 1120| getParameter(0): [Parameter] left +# 1120| Type = [TemplateParameter] iterator +# 1120| getParameter(1): [Parameter] right +# 1120| Type = [TemplateParameter] iterator +# 1122| [Operator,TemplateFunction,TopLevelFunction] bool std::operator!=<T>(iterator, iterator) +# 1122| <params>: +# 1122| getParameter(0): [Parameter] left +# 1122| Type = [TemplateParameter] iterator +# 1122| getParameter(1): [Parameter] right +# 1122| Type = [TemplateParameter] iterator +# 1126| [TopLevelFunction] void RangeBasedFor(std::vector<int> const&) +# 1126| <params>: +# 1126| getParameter(0): [Parameter] v +# 1126| Type = [LValueReferenceType] const vector<int> & +# 1126| getEntryPoint(): [BlockStmt] { ... } +# 1127| getStmt(0): [RangeBasedForStmt] for(...:...) ... +# 1127| getChild(1): [DeclStmt] declaration +# 1127| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 1127| Type = [LValueReferenceType] const vector<int> & +#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) +# 1127| getExpr(): [VariableAccess] v +# 1127| Type = [LValueReferenceType] const vector<int> & +# 1127| ValueCategory = prvalue(load) +# 1127| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1127| Type = [LValueReferenceType] const vector<int> & +# 1127| ValueCategory = prvalue +# 1127| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1127| Type = [SpecifiedType] const vector<int> +# 1127| ValueCategory = lvalue +# 1127| getBeginEndDeclaration(): [DeclStmt] declaration +# 1127| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 1127| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) +# 1127| getExpr(): [FunctionCall] call to begin +# 1127| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1127| ValueCategory = prvalue +# 1127| getQualifier(): [VariableAccess] (__range) +# 1127| Type = [LValueReferenceType] const vector<int> & +# 1127| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [SpecifiedType] const vector<int> +#-----| ValueCategory = lvalue +# 1127| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 1127| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) +# 1127| getExpr(): [FunctionCall] call to end +# 1127| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1127| ValueCategory = prvalue +# 1127| getQualifier(): [VariableAccess] (__range) +# 1127| Type = [LValueReferenceType] const vector<int> & +# 1127| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [SpecifiedType] const vector<int> +#-----| ValueCategory = lvalue +# 1127| getCondition(): [FunctionCall] call to operator!= +# 1127| Type = [BoolType] bool +# 1127| ValueCategory = prvalue +# 1127| getQualifier(): [VariableAccess] (__begin) +# 1127| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1127| ValueCategory = lvalue +# 1127| getArgument(0): [ConstructorCall] call to iterator +# 1127| Type = [VoidType] void +# 1127| ValueCategory = prvalue +# 1127| getArgument(0): [VariableAccess] (__end) +# 1127| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1127| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> & +#-----| ValueCategory = prvalue +#-----| getExpr(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +# 1127| getUpdate(): [FunctionCall] call to operator++ +# 1127| Type = [LValueReferenceType] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> & +# 1127| ValueCategory = prvalue +# 1127| getQualifier(): [VariableAccess] (__begin) +# 1127| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1127| ValueCategory = lvalue +# 1127| getChild(5): [DeclStmt] declaration +# 1127| getDeclarationEntry(0): [VariableDeclarationEntry] definition of e +# 1127| Type = [IntType] int +# 1127| getVariable().getInitializer(): [Initializer] initializer for e +# 1127| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 1127| Type = [LValueReferenceType] int & +# 1127| ValueCategory = prvalue +# 1127| getQualifier(): [VariableAccess] (__begin) +# 1127| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1127| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +# 1127| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1127| Type = [IntType] int +# 1127| ValueCategory = prvalue(load) +# 1127| getStmt(): [BlockStmt] { ... } +# 1128| getStmt(0): [IfStmt] if (...) ... +# 1128| getCondition(): [GTExpr] ... > ... +# 1128| Type = [BoolType] bool +# 1128| ValueCategory = prvalue +# 1128| getGreaterOperand(): [VariableAccess] e +# 1128| Type = [IntType] int +# 1128| ValueCategory = prvalue(load) +# 1128| getLesserOperand(): [Literal] 0 +# 1128| Type = [IntType] int +# 1128| Value = [Literal] 0 +# 1128| ValueCategory = prvalue +# 1128| getThen(): [BlockStmt] { ... } +# 1129| getStmt(0): [ContinueStmt] continue; +# 1127| getStmt(1): [LabelStmt] label ...: +# 1127| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1127| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +# 1127| ValueCategory = lvalue +# 1133| getStmt(1): [RangeBasedForStmt] for(...:...) ... +# 1133| getChild(1): [DeclStmt] declaration +# 1133| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 1133| Type = [LValueReferenceType] const vector<int> & +#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) +# 1133| getExpr(): [VariableAccess] v +# 1133| Type = [LValueReferenceType] const vector<int> & +# 1133| ValueCategory = prvalue(load) +# 1133| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1133| Type = [LValueReferenceType] const vector<int> & +# 1133| ValueCategory = prvalue +# 1133| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1133| Type = [SpecifiedType] const vector<int> +# 1133| ValueCategory = lvalue +# 1133| getBeginEndDeclaration(): [DeclStmt] declaration +# 1133| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 1133| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) +# 1133| getExpr(): [FunctionCall] call to begin +# 1133| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1133| ValueCategory = prvalue +# 1133| getQualifier(): [VariableAccess] (__range) +# 1133| Type = [LValueReferenceType] const vector<int> & +# 1133| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [SpecifiedType] const vector<int> +#-----| ValueCategory = lvalue +# 1133| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 1133| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) +# 1133| getExpr(): [FunctionCall] call to end +# 1133| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1133| ValueCategory = prvalue +# 1133| getQualifier(): [VariableAccess] (__range) +# 1133| Type = [LValueReferenceType] const vector<int> & +# 1133| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [SpecifiedType] const vector<int> +#-----| ValueCategory = lvalue +# 1133| getCondition(): [FunctionCall] call to operator!= +# 1133| Type = [BoolType] bool +# 1133| ValueCategory = prvalue +# 1133| getQualifier(): [VariableAccess] (__begin) +# 1133| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1133| ValueCategory = lvalue +# 1133| getArgument(0): [ConstructorCall] call to iterator +# 1133| Type = [VoidType] void +# 1133| ValueCategory = prvalue +# 1133| getArgument(0): [VariableAccess] (__end) +# 1133| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1133| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> & +#-----| ValueCategory = prvalue +#-----| getExpr(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +# 1133| getUpdate(): [FunctionCall] call to operator++ +# 1133| Type = [LValueReferenceType] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> & +# 1133| ValueCategory = prvalue +# 1133| getQualifier(): [VariableAccess] (__begin) +# 1133| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1133| ValueCategory = lvalue +# 1133| getChild(5): [DeclStmt] declaration +# 1133| getDeclarationEntry(0): [VariableDeclarationEntry] definition of e +# 1133| Type = [LValueReferenceType] const int & +# 1133| getVariable().getInitializer(): [Initializer] initializer for e +# 1133| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 1133| Type = [LValueReferenceType] int & +# 1133| ValueCategory = prvalue +# 1133| getQualifier(): [VariableAccess] (__begin) +# 1133| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 1133| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +# 1133| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1133| Type = [LValueReferenceType] const int & +# 1133| ValueCategory = prvalue +# 1133| getExpr(): [CStyleCast] (const int)... +# 1133| Conversion = [GlvalueConversion] glvalue conversion +# 1133| Type = [SpecifiedType] const int +# 1133| ValueCategory = lvalue +# 1133| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1133| Type = [IntType] int +# 1133| ValueCategory = lvalue +# 1133| getStmt(): [BlockStmt] { ... } +# 1134| getStmt(0): [IfStmt] if (...) ... +# 1134| getCondition(): [LTExpr] ... < ... +# 1134| Type = [BoolType] bool +# 1134| ValueCategory = prvalue +# 1134| getLesserOperand(): [VariableAccess] e +# 1134| Type = [LValueReferenceType] const int & +# 1134| ValueCategory = prvalue(load) +# 1134| getGreaterOperand(): [Literal] 5 +# 1134| Type = [IntType] int +# 1134| Value = [Literal] 5 +# 1134| ValueCategory = prvalue +# 1134| getLesserOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1134| Type = [IntType] int +# 1134| ValueCategory = prvalue(load) +# 1134| getThen(): [BlockStmt] { ... } +# 1135| getStmt(0): [BreakStmt] break; +# 1133| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1133| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +# 1133| ValueCategory = lvalue +# 1137| getStmt(2): [LabelStmt] label ...: +# 1138| getStmt(3): [ReturnStmt] return ... +# 1157| [TopLevelFunction] int AsmStmt(int) +# 1157| <params>: +# 1157| getParameter(0): [Parameter] x +# 1157| Type = [IntType] int +# 1157| getEntryPoint(): [BlockStmt] { ... } +# 1158| getStmt(0): [AsmStmt] asm statement +# 1159| getStmt(1): [ReturnStmt] return ... +# 1159| getExpr(): [VariableAccess] x +# 1159| Type = [IntType] int +# 1159| ValueCategory = prvalue(load) +# 1162| [TopLevelFunction] void AsmStmtWithOutputs(unsigned int&, unsigned int, unsigned int&, unsigned int) +# 1162| <params>: +# 1162| getParameter(0): [Parameter] a +# 1162| Type = [LValueReferenceType] unsigned int & +# 1162| getParameter(1): [Parameter] b +# 1162| Type = [IntType] unsigned int +# 1162| getParameter(2): [Parameter] c +# 1162| Type = [LValueReferenceType] unsigned int & +# 1162| getParameter(3): [Parameter] d +# 1162| Type = [IntType] unsigned int +# 1163| getEntryPoint(): [BlockStmt] { ... } +# 1164| getStmt(0): [AsmStmt] asm statement +# 1167| getChild(0): [VariableAccess] a +# 1167| Type = [LValueReferenceType] unsigned int & +# 1167| ValueCategory = prvalue(load) +# 1167| getChild(1): [VariableAccess] b +# 1167| Type = [IntType] unsigned int # 1167| ValueCategory = lvalue -# 1167| getLValue(): [ArrayExpr] access to array -# 1167| Type = [IntType] int -# 1167| ValueCategory = lvalue -# 1167| getArrayBase(): [VariableAccess] vi4 -# 1167| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1167| ValueCategory = lvalue -# 1167| getArrayOffset(): [VariableAccess] i -# 1167| Type = [IntType] int -# 1167| ValueCategory = prvalue(load) -# 1167| getRValue(): [VariableAccess] x -# 1167| Type = [IntType] int -# 1167| ValueCategory = prvalue(load) -# 1168| getStmt(3): [DeclStmt] declaration -# 1168| getDeclarationEntry(0): [VariableDeclarationEntry] definition of vi4_shuffle -# 1168| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1168| getVariable().getInitializer(): [Initializer] initializer for vi4_shuffle -# 1168| getExpr(): [BuiltInOperationBuiltInShuffleVector] __builtin_shufflevector -# 1168| Type = [GNUVectorType] __attribute((vector_size(16))) int -# 1168| ValueCategory = prvalue -# 1168| getChild(0): [VariableAccess] vi4 -# 1168| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1168| ValueCategory = prvalue(load) -# 1168| getChild(1): [VariableAccess] vi4 -# 1168| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1168| ValueCategory = prvalue(load) -# 1168| getChild(2): [AddExpr] ... + ... -# 1168| Type = [IntType] int -# 1168| Value = [AddExpr] 3 -# 1168| ValueCategory = prvalue -# 1168| getLeftOperand(): [Literal] 3 -# 1168| Type = [IntType] int -# 1168| Value = [Literal] 3 -# 1168| ValueCategory = prvalue -# 1168| getRightOperand(): [Literal] 0 -# 1168| Type = [IntType] int -# 1168| Value = [Literal] 0 -# 1168| ValueCategory = prvalue -# 1168| getChild(3): [Literal] 2 -# 1168| Type = [IntType] int -# 1168| Value = [Literal] 2 -# 1168| ValueCategory = prvalue -# 1168| getChild(4): [Literal] 1 -# 1168| Type = [IntType] int -# 1168| Value = [Literal] 1 -# 1168| ValueCategory = prvalue -# 1168| getChild(5): [Literal] 0 -# 1168| Type = [IntType] int -# 1168| Value = [Literal] 0 -# 1168| ValueCategory = prvalue -# 1169| getStmt(4): [ExprStmt] ExprStmt -# 1169| getExpr(): [AssignExpr] ... = ... -# 1169| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1169| ValueCategory = lvalue -# 1169| getLValue(): [VariableAccess] vi4 -# 1169| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1169| ValueCategory = lvalue -# 1169| getRValue(): [AddExpr] ... + ... -# 1169| Type = [GNUVectorType] __attribute((vector_size(16UL))) int -# 1169| ValueCategory = prvalue -# 1169| getLeftOperand(): [VariableAccess] vi4 -# 1169| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1169| ValueCategory = prvalue(load) -# 1169| getRightOperand(): [VariableAccess] vi4_shuffle -# 1169| Type = [SpecifiedType] __attribute((vector_size(16UL))) int -# 1169| ValueCategory = prvalue(load) -# 1170| getStmt(5): [ReturnStmt] return ... -# 1172| [TopLevelFunction] void* memcpy(void*, void*, int) -# 1172| <params>: -# 1172| getParameter(0): [Parameter] dst -# 1172| Type = [VoidPointerType] void * -# 1172| getParameter(1): [Parameter] src -# 1172| Type = [VoidPointerType] void * -# 1172| getParameter(2): [Parameter] size -# 1172| Type = [IntType] int -# 1174| [TopLevelFunction] int ModeledCallTarget(int) -# 1174| <params>: -# 1174| getParameter(0): [Parameter] x -# 1174| Type = [IntType] int -# 1174| getEntryPoint(): [BlockStmt] { ... } -# 1175| getStmt(0): [DeclStmt] declaration +# 1167| getChild(2): [VariableAccess] c +# 1167| Type = [LValueReferenceType] unsigned int & +# 1167| ValueCategory = prvalue(load) +# 1167| getChild(3): [VariableAccess] d +# 1167| Type = [IntType] unsigned int +# 1167| ValueCategory = prvalue(load) +# 1167| getChild(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1167| Type = [IntType] unsigned int +# 1167| ValueCategory = lvalue +# 1167| getChild(2).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1167| Type = [IntType] unsigned int +# 1167| ValueCategory = prvalue(load) +# 1169| getStmt(1): [ReturnStmt] return ... +# 1171| [TopLevelFunction] void ExternDeclarations() +# 1171| <params>: +# 1172| getEntryPoint(): [BlockStmt] { ... } +# 1173| getStmt(0): [DeclStmt] declaration +# 1173| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g +# 1173| Type = [IntType] int +# 1174| getStmt(1): [DeclStmt] declaration +# 1174| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1174| Type = [IntType] int +# 1175| getStmt(2): [DeclStmt] declaration # 1175| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y # 1175| Type = [IntType] int -# 1176| getStmt(1): [ExprStmt] ExprStmt -# 1176| getExpr(): [FunctionCall] call to memcpy -# 1176| Type = [VoidPointerType] void * -# 1176| ValueCategory = prvalue -# 1176| getArgument(0): [AddressOfExpr] & ... -# 1176| Type = [IntPointerType] int * -# 1176| ValueCategory = prvalue -# 1176| getOperand(): [VariableAccess] y -# 1176| Type = [IntType] int -# 1176| ValueCategory = lvalue -# 1176| getArgument(1): [AddressOfExpr] & ... -# 1176| Type = [IntPointerType] int * -# 1176| ValueCategory = prvalue -# 1176| getOperand(): [VariableAccess] x -# 1176| Type = [IntType] int -# 1176| ValueCategory = lvalue -# 1176| getArgument(2): [SizeofTypeOperator] sizeof(int) -# 1176| Type = [LongType] unsigned long -# 1176| Value = [SizeofTypeOperator] 4 -# 1176| ValueCategory = prvalue -# 1176| getArgument(0).getFullyConverted(): [CStyleCast] (void *)... -# 1176| Conversion = [PointerConversion] pointer conversion -# 1176| Type = [VoidPointerType] void * -# 1176| ValueCategory = prvalue -# 1176| getArgument(1).getFullyConverted(): [CStyleCast] (void *)... -# 1176| Conversion = [PointerConversion] pointer conversion -# 1176| Type = [VoidPointerType] void * -# 1176| ValueCategory = prvalue -# 1176| getArgument(2).getFullyConverted(): [CStyleCast] (int)... -# 1176| Conversion = [IntegralConversion] integral conversion -# 1176| Type = [IntType] int -# 1176| Value = [CStyleCast] 4 -# 1176| ValueCategory = prvalue -# 1177| getStmt(2): [ReturnStmt] return ... -# 1177| getExpr(): [VariableAccess] y -# 1177| Type = [IntType] int -# 1177| ValueCategory = prvalue(load) -# 1180| [TopLevelFunction] String ReturnObjectImpl() -# 1180| <params>: -# 1180| getEntryPoint(): [BlockStmt] { ... } -# 1181| getStmt(0): [ReturnStmt] return ... -# 1181| getExpr(): [ConstructorCall] call to String -# 1181| Type = [VoidType] void -# 1181| ValueCategory = prvalue -# 1181| getArgument(0): foo -# 1181| Type = [ArrayType] const char[4] -# 1181| Value = [StringLiteral] "foo" -# 1181| ValueCategory = lvalue -# 1181| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1181| Type = [PointerType] const char * -# 1181| ValueCategory = prvalue -# 1184| [TopLevelFunction] void switch1Case(int) -# 1184| <params>: -# 1184| getParameter(0): [Parameter] x -# 1184| Type = [IntType] int -# 1184| getEntryPoint(): [BlockStmt] { ... } -# 1185| getStmt(0): [DeclStmt] declaration -# 1185| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1185| Type = [IntType] int -# 1185| getVariable().getInitializer(): [Initializer] initializer for y -# 1185| getExpr(): [Literal] 0 -# 1185| Type = [IntType] int -# 1185| Value = [Literal] 0 -# 1185| ValueCategory = prvalue -# 1186| getStmt(1): [SwitchStmt] switch (...) ... -# 1186| getExpr(): [VariableAccess] x -# 1186| Type = [IntType] int -# 1186| ValueCategory = prvalue(load) -# 1186| getStmt(): [BlockStmt] { ... } -# 1187| getStmt(0): [SwitchCase] case ...: -# 1187| getExpr(): [Literal] 1 -# 1187| Type = [IntType] int -# 1187| Value = [Literal] 1 -# 1187| ValueCategory = prvalue -# 1188| getStmt(1): [ExprStmt] ExprStmt -# 1188| getExpr(): [AssignExpr] ... = ... -# 1188| Type = [IntType] int -# 1188| ValueCategory = lvalue -# 1188| getLValue(): [VariableAccess] y +# 1175| getDeclarationEntry(1): [FunctionDeclarationEntry] declaration of f +# 1175| Type = [IntType] int +# 1176| getStmt(3): [DeclStmt] declaration +# 1176| getDeclarationEntry(0): [FunctionDeclarationEntry] declaration of z +# 1176| Type = [IntType] int +# 1176| getDeclarationEntry(1): [FunctionDeclarationEntry] declaration of w +# 1176| Type = [IntType] int +# 1176| getDeclarationEntry(2): [VariableDeclarationEntry] definition of h +# 1176| Type = [IntType] int +# 1177| getStmt(4): [DeclStmt] declaration +# 1177| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of d +# 1177| Type = [CTypedefType,LocalTypedefType] d +# 1178| getStmt(5): [ReturnStmt] return ... +# 1175| [TopLevelFunction] int f(float) +# 1175| <params>: +# 1175| getParameter(0): [Parameter] (unnamed parameter 0) +# 1175| Type = [FloatType] float +# 1176| [TopLevelFunction] int z(float) +# 1176| <params>: +# 1176| getParameter(0): [Parameter] (unnamed parameter 0) +# 1176| Type = [FloatType] float +# 1176| [TopLevelFunction] int w(float) +# 1176| <params>: +# 1176| getParameter(0): [Parameter] (unnamed parameter 0) +# 1176| Type = [FloatType] float +# 1186| [TopLevelFunction] void ExternDeclarationsInMacro() +# 1186| <params>: +# 1187| getEntryPoint(): [BlockStmt] { ... } +# 1188| getStmt(0): [DeclStmt] declaration +# 1188| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g +# 1188| Type = [IntType] int +# 1188| getStmt(1): [ForStmt] for(...;...;...) ... +# 1188| getInitialization(): [DeclStmt] declaration +# 1188| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1188| Type = [IntType] int +# 1188| getVariable().getInitializer(): [Initializer] initializer for i +# 1188| getExpr(): [Literal] 0 # 1188| Type = [IntType] int -# 1188| ValueCategory = lvalue -# 1188| getRValue(): [Literal] 2 -# 1188| Type = [IntType] int -# 1188| Value = [Literal] 2 +# 1188| Value = [Literal] 0 # 1188| ValueCategory = prvalue -# 1190| getStmt(2): [DeclStmt] declaration -# 1190| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1190| Type = [IntType] int -# 1190| getVariable().getInitializer(): [Initializer] initializer for z -# 1190| getExpr(): [VariableAccess] y -# 1190| Type = [IntType] int -# 1190| ValueCategory = prvalue(load) -# 1191| getStmt(3): [ReturnStmt] return ... -# 1193| [TopLevelFunction] void switch2Case_fallthrough(int) -# 1193| <params>: -# 1193| getParameter(0): [Parameter] x -# 1193| Type = [IntType] int -# 1193| getEntryPoint(): [BlockStmt] { ... } -# 1194| getStmt(0): [DeclStmt] declaration -# 1194| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1194| Type = [IntType] int -# 1194| getVariable().getInitializer(): [Initializer] initializer for y -# 1194| getExpr(): [Literal] 0 -# 1194| Type = [IntType] int -# 1194| Value = [Literal] 0 -# 1194| ValueCategory = prvalue -# 1195| getStmt(1): [SwitchStmt] switch (...) ... -# 1195| getExpr(): [VariableAccess] x -# 1195| Type = [IntType] int -# 1195| ValueCategory = prvalue(load) -# 1195| getStmt(): [BlockStmt] { ... } -# 1196| getStmt(0): [SwitchCase] case ...: -# 1196| getExpr(): [Literal] 1 -# 1196| Type = [IntType] int -# 1196| Value = [Literal] 1 -# 1196| ValueCategory = prvalue -# 1197| getStmt(1): [ExprStmt] ExprStmt -# 1197| getExpr(): [AssignExpr] ... = ... -# 1197| Type = [IntType] int -# 1197| ValueCategory = lvalue -# 1197| getLValue(): [VariableAccess] y -# 1197| Type = [IntType] int -# 1197| ValueCategory = lvalue -# 1197| getRValue(): [Literal] 2 -# 1197| Type = [IntType] int -# 1197| Value = [Literal] 2 +# 1188| getCondition(): [LTExpr] ... < ... +# 1188| Type = [BoolType] bool +# 1188| ValueCategory = prvalue +# 1188| getLesserOperand(): [VariableAccess] i +# 1188| Type = [IntType] int +# 1188| ValueCategory = prvalue(load) +# 1188| getGreaterOperand(): [Literal] 10 +# 1188| Type = [IntType] int +# 1188| Value = [Literal] 10 +# 1188| ValueCategory = prvalue +# 1188| getUpdate(): [PrefixIncrExpr] ++ ... +# 1188| Type = [IntType] int +# 1188| ValueCategory = lvalue +# 1188| getOperand(): [VariableAccess] i +# 1188| Type = [IntType] int +# 1188| ValueCategory = lvalue +# 1188| getStmt(): [BlockStmt] { ... } +# 1188| getStmt(0): [DeclStmt] declaration +# 1188| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of g +# 1188| Type = [IntType] int +# 1188| getStmt(2): [EmptyStmt] ; +# 1189| getStmt(3): [ReturnStmt] return ... +# 1191| [TopLevelFunction] void TryCatchNoCatchAny(bool) +# 1191| <params>: +# 1191| getParameter(0): [Parameter] b +# 1191| Type = [BoolType] bool +# 1191| getEntryPoint(): [BlockStmt] { ... } +# 1192| getStmt(0): [TryStmt] try { ... } +# 1192| getStmt(): [BlockStmt] { ... } +# 1193| getStmt(0): [DeclStmt] declaration +# 1193| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1193| Type = [IntType] int +# 1193| getVariable().getInitializer(): [Initializer] initializer for x +# 1193| getExpr(): [Literal] 5 +# 1193| Type = [IntType] int +# 1193| Value = [Literal] 5 +# 1193| ValueCategory = prvalue +# 1194| getStmt(1): [IfStmt] if (...) ... +# 1194| getCondition(): [VariableAccess] b +# 1194| Type = [BoolType] bool +# 1194| ValueCategory = prvalue(load) +# 1194| getThen(): [BlockStmt] { ... } +# 1195| getStmt(0): [ExprStmt] ExprStmt +# 1195| getExpr(): [ThrowExpr] throw ... +# 1195| Type = [PointerType] const char * +# 1195| ValueCategory = prvalue +# 1195| getExpr(): string literal +# 1195| Type = [ArrayType] const char[15] +# 1195| Value = [StringLiteral] "string literal" +# 1195| ValueCategory = lvalue +# 1195| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1195| Type = [PointerType] const char * +# 1195| ValueCategory = prvalue +# 1197| getElse(): [IfStmt] if (...) ... +# 1197| getCondition(): [LTExpr] ... < ... +# 1197| Type = [BoolType] bool # 1197| ValueCategory = prvalue -# 1198| getStmt(2): [SwitchCase] case ...: -# 1198| getExpr(): [Literal] 2 -# 1198| Type = [IntType] int -# 1198| Value = [Literal] 2 -# 1198| ValueCategory = prvalue -# 1199| getStmt(3): [ExprStmt] ExprStmt -# 1199| getExpr(): [AssignExpr] ... = ... -# 1199| Type = [IntType] int -# 1199| ValueCategory = lvalue -# 1199| getLValue(): [VariableAccess] y -# 1199| Type = [IntType] int -# 1199| ValueCategory = lvalue -# 1199| getRValue(): [Literal] 3 -# 1199| Type = [IntType] int -# 1199| Value = [Literal] 3 -# 1199| ValueCategory = prvalue -# 1201| getStmt(2): [DeclStmt] declaration -# 1201| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1201| Type = [IntType] int -# 1201| getVariable().getInitializer(): [Initializer] initializer for z -# 1201| getExpr(): [VariableAccess] y -# 1201| Type = [IntType] int -# 1201| ValueCategory = prvalue(load) -# 1202| getStmt(3): [ReturnStmt] return ... -# 1204| [TopLevelFunction] void switch2Case(int) -# 1204| <params>: -# 1204| getParameter(0): [Parameter] x -# 1204| Type = [IntType] int -# 1204| getEntryPoint(): [BlockStmt] { ... } -# 1205| getStmt(0): [DeclStmt] declaration -# 1205| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1205| Type = [IntType] int -# 1205| getVariable().getInitializer(): [Initializer] initializer for y -# 1205| getExpr(): [Literal] 0 -# 1205| Type = [IntType] int -# 1205| Value = [Literal] 0 -# 1205| ValueCategory = prvalue -# 1206| getStmt(1): [SwitchStmt] switch (...) ... -# 1206| getExpr(): [VariableAccess] x -# 1206| Type = [IntType] int -# 1206| ValueCategory = prvalue(load) -# 1206| getStmt(): [BlockStmt] { ... } -# 1207| getStmt(0): [SwitchCase] case ...: -# 1207| getExpr(): [Literal] 1 -# 1207| Type = [IntType] int -# 1207| Value = [Literal] 1 -# 1207| ValueCategory = prvalue -# 1208| getStmt(1): [ExprStmt] ExprStmt -# 1208| getExpr(): [AssignExpr] ... = ... -# 1208| Type = [IntType] int -# 1208| ValueCategory = lvalue -# 1208| getLValue(): [VariableAccess] y -# 1208| Type = [IntType] int -# 1208| ValueCategory = lvalue -# 1208| getRValue(): [Literal] 2 -# 1208| Type = [IntType] int -# 1208| Value = [Literal] 2 -# 1208| ValueCategory = prvalue -# 1209| getStmt(2): [BreakStmt] break; -# 1210| getStmt(3): [SwitchCase] case ...: -# 1210| getExpr(): [Literal] 2 -# 1210| Type = [IntType] int -# 1210| Value = [Literal] 2 -# 1210| ValueCategory = prvalue -# 1211| getStmt(4): [ExprStmt] ExprStmt -# 1211| getExpr(): [AssignExpr] ... = ... -# 1211| Type = [IntType] int -# 1211| ValueCategory = lvalue -# 1211| getLValue(): [VariableAccess] y -# 1211| Type = [IntType] int -# 1211| ValueCategory = lvalue -# 1211| getRValue(): [Literal] 3 -# 1211| Type = [IntType] int -# 1211| Value = [Literal] 3 -# 1211| ValueCategory = prvalue -# 1212| getStmt(2): [LabelStmt] label ...: -# 1213| getStmt(3): [DeclStmt] declaration -# 1213| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1197| getLesserOperand(): [VariableAccess] x +# 1197| Type = [IntType] int +# 1197| ValueCategory = prvalue(load) +# 1197| getGreaterOperand(): [Literal] 2 +# 1197| Type = [IntType] int +# 1197| Value = [Literal] 2 +# 1197| ValueCategory = prvalue +# 1197| getThen(): [BlockStmt] { ... } +# 1198| getStmt(0): [ExprStmt] ExprStmt +# 1198| getExpr(): [AssignExpr] ... = ... +# 1198| Type = [IntType] int +# 1198| ValueCategory = lvalue +# 1198| getLValue(): [VariableAccess] x +# 1198| Type = [IntType] int +# 1198| ValueCategory = lvalue +# 1198| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1198| Type = [IntType] int +# 1198| ValueCategory = prvalue +# 1198| getCondition(): [VariableAccess] b +# 1198| Type = [BoolType] bool +# 1198| ValueCategory = prvalue(load) +# 1198| getThen(): [Literal] 7 +# 1198| Type = [IntType] int +# 1198| Value = [Literal] 7 +# 1198| ValueCategory = prvalue +# 1198| getElse(): [ThrowExpr] throw ... +# 1198| Type = [Struct] String +# 1198| ValueCategory = prvalue +# 1198| getExpr(): [ConstructorCall] call to String +# 1198| Type = [VoidType] void +# 1198| ValueCategory = prvalue +# 1198| getArgument(0): String object +# 1198| Type = [ArrayType] const char[14] +# 1198| Value = [StringLiteral] "String object" +# 1198| ValueCategory = lvalue +# 1198| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1198| Type = [PointerType] const char * +# 1198| ValueCategory = prvalue +# 1200| getStmt(2): [ExprStmt] ExprStmt +# 1200| getExpr(): [AssignExpr] ... = ... +# 1200| Type = [IntType] int +# 1200| ValueCategory = lvalue +# 1200| getLValue(): [VariableAccess] x +# 1200| Type = [IntType] int +# 1200| ValueCategory = lvalue +# 1200| getRValue(): [Literal] 7 +# 1200| Type = [IntType] int +# 1200| Value = [Literal] 7 +# 1200| ValueCategory = prvalue +# 1202| getChild(1): [Handler] <handler> +# 1202| getBlock(): [CatchBlock] { ... } +# 1203| getStmt(0): [ExprStmt] ExprStmt +# 1203| getExpr(): [ThrowExpr] throw ... +# 1203| Type = [Struct] String +# 1203| ValueCategory = prvalue +# 1203| getExpr(): [ConstructorCall] call to String +# 1203| Type = [VoidType] void +# 1203| ValueCategory = prvalue +# 1203| getArgument(0): [VariableAccess] s +# 1203| Type = [PointerType] const char * +# 1203| ValueCategory = prvalue(load) +# 1205| getChild(2): [Handler] <handler> +# 1205| getBlock(): [CatchBlock] { ... } +# 1207| getStmt(1): [ReturnStmt] return ... +# 1211| [TopLevelFunction] void VectorTypes(int) +# 1211| <params>: +# 1211| getParameter(0): [Parameter] i +# 1211| Type = [IntType] int +# 1211| getEntryPoint(): [BlockStmt] { ... } +# 1212| getStmt(0): [DeclStmt] declaration +# 1212| getDeclarationEntry(0): [VariableDeclarationEntry] definition of vi4 +# 1212| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1212| getVariable().getInitializer(): [Initializer] initializer for vi4 +# 1212| getExpr(): [VectorAggregateLiteral] {...} +# 1212| Type = [GNUVectorType] __attribute((vector_size(16UL))) int +# 1212| ValueCategory = prvalue +# 1212| getAnElementExpr(0): [Literal] 0 +# 1212| Type = [IntType] int +# 1212| Value = [Literal] 0 +# 1212| ValueCategory = prvalue +# 1212| getAnElementExpr(1): [Literal] 1 +# 1212| Type = [IntType] int +# 1212| Value = [Literal] 1 +# 1212| ValueCategory = prvalue +# 1212| getAnElementExpr(2): [Literal] 2 +# 1212| Type = [IntType] int +# 1212| Value = [Literal] 2 +# 1212| ValueCategory = prvalue +# 1212| getAnElementExpr(3): [Literal] 3 +# 1212| Type = [IntType] int +# 1212| Value = [Literal] 3 +# 1212| ValueCategory = prvalue +# 1213| getStmt(1): [DeclStmt] declaration +# 1213| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x # 1213| Type = [IntType] int -# 1213| getVariable().getInitializer(): [Initializer] initializer for z -# 1213| getExpr(): [VariableAccess] y +# 1213| getVariable().getInitializer(): [Initializer] initializer for x +# 1213| getExpr(): [ArrayExpr] access to array # 1213| Type = [IntType] int # 1213| ValueCategory = prvalue(load) -# 1214| getStmt(4): [ReturnStmt] return ... -# 1216| [TopLevelFunction] void switch2Case_default(int) -# 1216| <params>: -# 1216| getParameter(0): [Parameter] x -# 1216| Type = [IntType] int -# 1216| getEntryPoint(): [BlockStmt] { ... } -# 1217| getStmt(0): [DeclStmt] declaration -# 1217| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1217| Type = [IntType] int -# 1217| getVariable().getInitializer(): [Initializer] initializer for y -# 1217| getExpr(): [Literal] 0 -# 1217| Type = [IntType] int -# 1217| Value = [Literal] 0 -# 1217| ValueCategory = prvalue -# 1218| getStmt(1): [SwitchStmt] switch (...) ... -# 1218| getExpr(): [VariableAccess] x -# 1218| Type = [IntType] int -# 1218| ValueCategory = prvalue(load) -# 1218| getStmt(): [BlockStmt] { ... } -# 1219| getStmt(0): [SwitchCase] case ...: -# 1219| getExpr(): [Literal] 1 -# 1219| Type = [IntType] int -# 1219| Value = [Literal] 1 -# 1219| ValueCategory = prvalue -# 1220| getStmt(1): [ExprStmt] ExprStmt -# 1220| getExpr(): [AssignExpr] ... = ... -# 1220| Type = [IntType] int -# 1220| ValueCategory = lvalue -# 1220| getLValue(): [VariableAccess] y -# 1220| Type = [IntType] int -# 1220| ValueCategory = lvalue -# 1220| getRValue(): [Literal] 2 -# 1220| Type = [IntType] int -# 1220| Value = [Literal] 2 -# 1220| ValueCategory = prvalue -# 1221| getStmt(2): [BreakStmt] break; -# 1223| getStmt(3): [SwitchCase] case ...: -# 1223| getExpr(): [Literal] 2 +# 1213| getArrayBase(): [VariableAccess] vi4 +# 1213| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1213| ValueCategory = lvalue +# 1213| getArrayOffset(): [VariableAccess] i +# 1213| Type = [IntType] int +# 1213| ValueCategory = prvalue(load) +# 1214| getStmt(2): [ExprStmt] ExprStmt +# 1214| getExpr(): [AssignExpr] ... = ... +# 1214| Type = [IntType] int +# 1214| ValueCategory = lvalue +# 1214| getLValue(): [ArrayExpr] access to array +# 1214| Type = [IntType] int +# 1214| ValueCategory = lvalue +# 1214| getArrayBase(): [VariableAccess] vi4 +# 1214| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1214| ValueCategory = lvalue +# 1214| getArrayOffset(): [VariableAccess] i +# 1214| Type = [IntType] int +# 1214| ValueCategory = prvalue(load) +# 1214| getRValue(): [VariableAccess] x +# 1214| Type = [IntType] int +# 1214| ValueCategory = prvalue(load) +# 1215| getStmt(3): [DeclStmt] declaration +# 1215| getDeclarationEntry(0): [VariableDeclarationEntry] definition of vi4_shuffle +# 1215| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1215| getVariable().getInitializer(): [Initializer] initializer for vi4_shuffle +# 1215| getExpr(): [BuiltInOperationBuiltInShuffleVector] __builtin_shufflevector +# 1215| Type = [GNUVectorType] __attribute((vector_size(16))) int +# 1215| ValueCategory = prvalue +# 1215| getChild(0): [VariableAccess] vi4 +# 1215| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1215| ValueCategory = prvalue(load) +# 1215| getChild(1): [VariableAccess] vi4 +# 1215| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1215| ValueCategory = prvalue(load) +# 1215| getChild(2): [AddExpr] ... + ... +# 1215| Type = [IntType] int +# 1215| Value = [AddExpr] 3 +# 1215| ValueCategory = prvalue +# 1215| getLeftOperand(): [Literal] 3 +# 1215| Type = [IntType] int +# 1215| Value = [Literal] 3 +# 1215| ValueCategory = prvalue +# 1215| getRightOperand(): [Literal] 0 +# 1215| Type = [IntType] int +# 1215| Value = [Literal] 0 +# 1215| ValueCategory = prvalue +# 1215| getChild(3): [Literal] 2 +# 1215| Type = [IntType] int +# 1215| Value = [Literal] 2 +# 1215| ValueCategory = prvalue +# 1215| getChild(4): [Literal] 1 +# 1215| Type = [IntType] int +# 1215| Value = [Literal] 1 +# 1215| ValueCategory = prvalue +# 1215| getChild(5): [Literal] 0 +# 1215| Type = [IntType] int +# 1215| Value = [Literal] 0 +# 1215| ValueCategory = prvalue +# 1216| getStmt(4): [ExprStmt] ExprStmt +# 1216| getExpr(): [AssignExpr] ... = ... +# 1216| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1216| ValueCategory = lvalue +# 1216| getLValue(): [VariableAccess] vi4 +# 1216| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1216| ValueCategory = lvalue +# 1216| getRValue(): [AddExpr] ... + ... +# 1216| Type = [GNUVectorType] __attribute((vector_size(16UL))) int +# 1216| ValueCategory = prvalue +# 1216| getLeftOperand(): [VariableAccess] vi4 +# 1216| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1216| ValueCategory = prvalue(load) +# 1216| getRightOperand(): [VariableAccess] vi4_shuffle +# 1216| Type = [SpecifiedType] __attribute((vector_size(16UL))) int +# 1216| ValueCategory = prvalue(load) +# 1217| getStmt(5): [ReturnStmt] return ... +# 1219| [TopLevelFunction] void* memcpy(void*, void*, int) +# 1219| <params>: +# 1219| getParameter(0): [Parameter] dst +# 1219| Type = [VoidPointerType] void * +# 1219| getParameter(1): [Parameter] src +# 1219| Type = [VoidPointerType] void * +# 1219| getParameter(2): [Parameter] size +# 1219| Type = [IntType] int +# 1221| [TopLevelFunction] int ModeledCallTarget(int) +# 1221| <params>: +# 1221| getParameter(0): [Parameter] x +# 1221| Type = [IntType] int +# 1221| getEntryPoint(): [BlockStmt] { ... } +# 1222| getStmt(0): [DeclStmt] declaration +# 1222| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1222| Type = [IntType] int +# 1223| getStmt(1): [ExprStmt] ExprStmt +# 1223| getExpr(): [FunctionCall] call to memcpy +# 1223| Type = [VoidPointerType] void * +# 1223| ValueCategory = prvalue +# 1223| getArgument(0): [AddressOfExpr] & ... +# 1223| Type = [IntPointerType] int * +# 1223| ValueCategory = prvalue +# 1223| getOperand(): [VariableAccess] y # 1223| Type = [IntType] int -# 1223| Value = [Literal] 2 -# 1223| ValueCategory = prvalue -# 1224| getStmt(4): [ExprStmt] ExprStmt -# 1224| getExpr(): [AssignExpr] ... = ... -# 1224| Type = [IntType] int -# 1224| ValueCategory = lvalue -# 1224| getLValue(): [VariableAccess] y -# 1224| Type = [IntType] int -# 1224| ValueCategory = lvalue -# 1224| getRValue(): [Literal] 3 -# 1224| Type = [IntType] int -# 1224| Value = [Literal] 3 -# 1224| ValueCategory = prvalue -# 1225| getStmt(5): [BreakStmt] break; -# 1227| getStmt(6): [SwitchCase] default: -# 1228| getStmt(7): [ExprStmt] ExprStmt -# 1228| getExpr(): [AssignExpr] ... = ... -# 1228| Type = [IntType] int -# 1228| ValueCategory = lvalue -# 1228| getLValue(): [VariableAccess] y -# 1228| Type = [IntType] int -# 1228| ValueCategory = lvalue -# 1228| getRValue(): [Literal] 4 -# 1228| Type = [IntType] int -# 1228| Value = [Literal] 4 -# 1228| ValueCategory = prvalue -# 1229| getStmt(2): [LabelStmt] label ...: -# 1230| getStmt(3): [DeclStmt] declaration -# 1230| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1230| Type = [IntType] int -# 1230| getVariable().getInitializer(): [Initializer] initializer for z -# 1230| getExpr(): [VariableAccess] y -# 1230| Type = [IntType] int -# 1230| ValueCategory = prvalue(load) -# 1231| getStmt(4): [ReturnStmt] return ... -# 1233| [TopLevelFunction] int staticLocalInit(int) -# 1233| <params>: -# 1233| getParameter(0): [Parameter] x -# 1233| Type = [IntType] int -# 1233| getEntryPoint(): [BlockStmt] { ... } -# 1234| getStmt(0): [DeclStmt] declaration -# 1234| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 1234| Type = [IntType] int -# 1234| getVariable().getInitializer(): [Initializer] initializer for a -# 1234| getExpr(): [Literal] 0 +# 1223| ValueCategory = lvalue +# 1223| getArgument(1): [AddressOfExpr] & ... +# 1223| Type = [IntPointerType] int * +# 1223| ValueCategory = prvalue +# 1223| getOperand(): [VariableAccess] x +# 1223| Type = [IntType] int +# 1223| ValueCategory = lvalue +# 1223| getArgument(2): [SizeofTypeOperator] sizeof(int) +# 1223| Type = [LongType] unsigned long +# 1223| Value = [SizeofTypeOperator] 4 +# 1223| ValueCategory = prvalue +# 1223| getArgument(0).getFullyConverted(): [CStyleCast] (void *)... +# 1223| Conversion = [PointerConversion] pointer conversion +# 1223| Type = [VoidPointerType] void * +# 1223| ValueCategory = prvalue +# 1223| getArgument(1).getFullyConverted(): [CStyleCast] (void *)... +# 1223| Conversion = [PointerConversion] pointer conversion +# 1223| Type = [VoidPointerType] void * +# 1223| ValueCategory = prvalue +# 1223| getArgument(2).getFullyConverted(): [CStyleCast] (int)... +# 1223| Conversion = [IntegralConversion] integral conversion +# 1223| Type = [IntType] int +# 1223| Value = [CStyleCast] 4 +# 1223| ValueCategory = prvalue +# 1224| getStmt(2): [ReturnStmt] return ... +# 1224| getExpr(): [VariableAccess] y +# 1224| Type = [IntType] int +# 1224| ValueCategory = prvalue(load) +# 1227| [TopLevelFunction] String ReturnObjectImpl() +# 1227| <params>: +# 1227| getEntryPoint(): [BlockStmt] { ... } +# 1228| getStmt(0): [ReturnStmt] return ... +# 1228| getExpr(): [ConstructorCall] call to String +# 1228| Type = [VoidType] void +# 1228| ValueCategory = prvalue +# 1228| getArgument(0): foo +# 1228| Type = [ArrayType] const char[4] +# 1228| Value = [StringLiteral] "foo" +# 1228| ValueCategory = lvalue +# 1228| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1228| Type = [PointerType] const char * +# 1228| ValueCategory = prvalue +# 1231| [TopLevelFunction] void switch1Case(int) +# 1231| <params>: +# 1231| getParameter(0): [Parameter] x +# 1231| Type = [IntType] int +# 1231| getEntryPoint(): [BlockStmt] { ... } +# 1232| getStmt(0): [DeclStmt] declaration +# 1232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1232| Type = [IntType] int +# 1232| getVariable().getInitializer(): [Initializer] initializer for y +# 1232| getExpr(): [Literal] 0 +# 1232| Type = [IntType] int +# 1232| Value = [Literal] 0 +# 1232| ValueCategory = prvalue +# 1233| getStmt(1): [SwitchStmt] switch (...) ... +# 1233| getExpr(): [VariableAccess] x +# 1233| Type = [IntType] int +# 1233| ValueCategory = prvalue(load) +# 1233| getStmt(): [BlockStmt] { ... } +# 1234| getStmt(0): [SwitchCase] case ...: +# 1234| getExpr(): [Literal] 1 # 1234| Type = [IntType] int -# 1234| Value = [Literal] 0 +# 1234| Value = [Literal] 1 # 1234| ValueCategory = prvalue -# 1235| getStmt(1): [DeclStmt] declaration -# 1235| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1235| Type = [IntType] int -# 1235| getVariable().getInitializer(): [Initializer] initializer for b -# 1235| getExpr(): [SizeofExprOperator] sizeof(<expr>) -# 1235| Type = [LongType] unsigned long -# 1235| Value = [SizeofExprOperator] 4 -# 1235| ValueCategory = prvalue -# 1235| getExprOperand(): [VariableAccess] x -# 1235| Type = [IntType] int -# 1235| ValueCategory = lvalue -# 1235| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) -# 1235| Type = [IntType] int -# 1235| ValueCategory = lvalue -# 1235| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 1235| Conversion = [IntegralConversion] integral conversion +# 1235| getStmt(1): [ExprStmt] ExprStmt +# 1235| getExpr(): [AssignExpr] ... = ... # 1235| Type = [IntType] int -# 1235| Value = [CStyleCast] 4 -# 1235| ValueCategory = prvalue -# 1236| getStmt(2): [DeclStmt] declaration -# 1236| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1236| Type = [IntType] int -# 1236| getVariable().getInitializer(): [Initializer] initializer for c -# 1236| getExpr(): [VariableAccess] x -# 1236| Type = [IntType] int -# 1236| ValueCategory = prvalue(load) -# 1237| getStmt(3): [DeclStmt] declaration -# 1237| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1235| ValueCategory = lvalue +# 1235| getLValue(): [VariableAccess] y +# 1235| Type = [IntType] int +# 1235| ValueCategory = lvalue +# 1235| getRValue(): [Literal] 2 +# 1235| Type = [IntType] int +# 1235| Value = [Literal] 2 +# 1235| ValueCategory = prvalue +# 1237| getStmt(2): [DeclStmt] declaration +# 1237| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z # 1237| Type = [IntType] int -# 1239| getStmt(4): [ReturnStmt] return ... -# 1239| getExpr(): [AddExpr] ... + ... -# 1239| Type = [IntType] int -# 1239| ValueCategory = prvalue -# 1239| getLeftOperand(): [AddExpr] ... + ... -# 1239| Type = [IntType] int -# 1239| ValueCategory = prvalue -# 1239| getLeftOperand(): [AddExpr] ... + ... -# 1239| Type = [IntType] int -# 1239| ValueCategory = prvalue -# 1239| getLeftOperand(): [VariableAccess] a -# 1239| Type = [IntType] int -# 1239| ValueCategory = prvalue(load) -# 1239| getRightOperand(): [VariableAccess] b -# 1239| Type = [IntType] int -# 1239| ValueCategory = prvalue(load) -# 1239| getRightOperand(): [VariableAccess] c -# 1239| Type = [IntType] int -# 1239| ValueCategory = prvalue(load) -# 1239| getRightOperand(): [VariableAccess] d -# 1239| Type = [IntType] int -# 1239| ValueCategory = prvalue(load) -# 1242| [TopLevelFunction] void staticLocalWithConstructor(char const*) -# 1242| <params>: -# 1242| getParameter(0): [Parameter] dynamic -# 1242| Type = [PointerType] const char * -# 1242| getEntryPoint(): [BlockStmt] { ... } -# 1243| getStmt(0): [DeclStmt] declaration -# 1243| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 1243| Type = [Struct] String +# 1237| getVariable().getInitializer(): [Initializer] initializer for z +# 1237| getExpr(): [VariableAccess] y +# 1237| Type = [IntType] int +# 1237| ValueCategory = prvalue(load) +# 1238| getStmt(3): [ReturnStmt] return ... +# 1240| [TopLevelFunction] void switch2Case_fallthrough(int) +# 1240| <params>: +# 1240| getParameter(0): [Parameter] x +# 1240| Type = [IntType] int +# 1240| getEntryPoint(): [BlockStmt] { ... } +# 1241| getStmt(0): [DeclStmt] declaration +# 1241| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1241| Type = [IntType] int +# 1241| getVariable().getInitializer(): [Initializer] initializer for y +# 1241| getExpr(): [Literal] 0 +# 1241| Type = [IntType] int +# 1241| Value = [Literal] 0 +# 1241| ValueCategory = prvalue +# 1242| getStmt(1): [SwitchStmt] switch (...) ... +# 1242| getExpr(): [VariableAccess] x +# 1242| Type = [IntType] int +# 1242| ValueCategory = prvalue(load) +# 1242| getStmt(): [BlockStmt] { ... } +# 1243| getStmt(0): [SwitchCase] case ...: +# 1243| getExpr(): [Literal] 1 +# 1243| Type = [IntType] int +# 1243| Value = [Literal] 1 +# 1243| ValueCategory = prvalue +# 1244| getStmt(1): [ExprStmt] ExprStmt +# 1244| getExpr(): [AssignExpr] ... = ... +# 1244| Type = [IntType] int +# 1244| ValueCategory = lvalue +# 1244| getLValue(): [VariableAccess] y +# 1244| Type = [IntType] int +# 1244| ValueCategory = lvalue +# 1244| getRValue(): [Literal] 2 +# 1244| Type = [IntType] int +# 1244| Value = [Literal] 2 +# 1244| ValueCategory = prvalue +# 1245| getStmt(2): [SwitchCase] case ...: +# 1245| getExpr(): [Literal] 2 +# 1245| Type = [IntType] int +# 1245| Value = [Literal] 2 +# 1245| ValueCategory = prvalue +# 1246| getStmt(3): [ExprStmt] ExprStmt +# 1246| getExpr(): [AssignExpr] ... = ... +# 1246| Type = [IntType] int +# 1246| ValueCategory = lvalue +# 1246| getLValue(): [VariableAccess] y +# 1246| Type = [IntType] int +# 1246| ValueCategory = lvalue +# 1246| getRValue(): [Literal] 3 +# 1246| Type = [IntType] int +# 1246| Value = [Literal] 3 +# 1246| ValueCategory = prvalue +# 1248| getStmt(2): [DeclStmt] declaration +# 1248| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1248| Type = [IntType] int +# 1248| getVariable().getInitializer(): [Initializer] initializer for z +# 1248| getExpr(): [VariableAccess] y +# 1248| Type = [IntType] int +# 1248| ValueCategory = prvalue(load) +# 1249| getStmt(3): [ReturnStmt] return ... +# 1251| [TopLevelFunction] void switch2Case(int) +# 1251| <params>: +# 1251| getParameter(0): [Parameter] x +# 1251| Type = [IntType] int +# 1251| getEntryPoint(): [BlockStmt] { ... } +# 1252| getStmt(0): [DeclStmt] declaration +# 1252| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1252| Type = [IntType] int +# 1252| getVariable().getInitializer(): [Initializer] initializer for y +# 1252| getExpr(): [Literal] 0 +# 1252| Type = [IntType] int +# 1252| Value = [Literal] 0 +# 1252| ValueCategory = prvalue +# 1253| getStmt(1): [SwitchStmt] switch (...) ... +# 1253| getExpr(): [VariableAccess] x +# 1253| Type = [IntType] int +# 1253| ValueCategory = prvalue(load) +# 1253| getStmt(): [BlockStmt] { ... } +# 1254| getStmt(0): [SwitchCase] case ...: +# 1254| getExpr(): [Literal] 1 +# 1254| Type = [IntType] int +# 1254| Value = [Literal] 1 +# 1254| ValueCategory = prvalue +# 1255| getStmt(1): [ExprStmt] ExprStmt +# 1255| getExpr(): [AssignExpr] ... = ... +# 1255| Type = [IntType] int +# 1255| ValueCategory = lvalue +# 1255| getLValue(): [VariableAccess] y +# 1255| Type = [IntType] int +# 1255| ValueCategory = lvalue +# 1255| getRValue(): [Literal] 2 +# 1255| Type = [IntType] int +# 1255| Value = [Literal] 2 +# 1255| ValueCategory = prvalue +# 1256| getStmt(2): [BreakStmt] break; +# 1257| getStmt(3): [SwitchCase] case ...: +# 1257| getExpr(): [Literal] 2 +# 1257| Type = [IntType] int +# 1257| Value = [Literal] 2 +# 1257| ValueCategory = prvalue +# 1258| getStmt(4): [ExprStmt] ExprStmt +# 1258| getExpr(): [AssignExpr] ... = ... +# 1258| Type = [IntType] int +# 1258| ValueCategory = lvalue +# 1258| getLValue(): [VariableAccess] y +# 1258| Type = [IntType] int +# 1258| ValueCategory = lvalue +# 1258| getRValue(): [Literal] 3 +# 1258| Type = [IntType] int +# 1258| Value = [Literal] 3 +# 1258| ValueCategory = prvalue +# 1259| getStmt(2): [LabelStmt] label ...: +# 1260| getStmt(3): [DeclStmt] declaration +# 1260| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1260| Type = [IntType] int +# 1260| getVariable().getInitializer(): [Initializer] initializer for z +# 1260| getExpr(): [VariableAccess] y +# 1260| Type = [IntType] int +# 1260| ValueCategory = prvalue(load) +# 1261| getStmt(4): [ReturnStmt] return ... +# 1263| [TopLevelFunction] void switch2Case_default(int) +# 1263| <params>: +# 1263| getParameter(0): [Parameter] x +# 1263| Type = [IntType] int +# 1263| getEntryPoint(): [BlockStmt] { ... } +# 1264| getStmt(0): [DeclStmt] declaration +# 1264| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1264| Type = [IntType] int +# 1264| getVariable().getInitializer(): [Initializer] initializer for y +# 1264| getExpr(): [Literal] 0 +# 1264| Type = [IntType] int +# 1264| Value = [Literal] 0 +# 1264| ValueCategory = prvalue +# 1265| getStmt(1): [SwitchStmt] switch (...) ... +# 1265| getExpr(): [VariableAccess] x +# 1265| Type = [IntType] int +# 1265| ValueCategory = prvalue(load) +# 1265| getStmt(): [BlockStmt] { ... } +# 1266| getStmt(0): [SwitchCase] case ...: +# 1266| getExpr(): [Literal] 1 +# 1266| Type = [IntType] int +# 1266| Value = [Literal] 1 +# 1266| ValueCategory = prvalue +# 1267| getStmt(1): [ExprStmt] ExprStmt +# 1267| getExpr(): [AssignExpr] ... = ... +# 1267| Type = [IntType] int +# 1267| ValueCategory = lvalue +# 1267| getLValue(): [VariableAccess] y +# 1267| Type = [IntType] int +# 1267| ValueCategory = lvalue +# 1267| getRValue(): [Literal] 2 +# 1267| Type = [IntType] int +# 1267| Value = [Literal] 2 +# 1267| ValueCategory = prvalue +# 1268| getStmt(2): [BreakStmt] break; +# 1270| getStmt(3): [SwitchCase] case ...: +# 1270| getExpr(): [Literal] 2 +# 1270| Type = [IntType] int +# 1270| Value = [Literal] 2 +# 1270| ValueCategory = prvalue +# 1271| getStmt(4): [ExprStmt] ExprStmt +# 1271| getExpr(): [AssignExpr] ... = ... +# 1271| Type = [IntType] int +# 1271| ValueCategory = lvalue +# 1271| getLValue(): [VariableAccess] y +# 1271| Type = [IntType] int +# 1271| ValueCategory = lvalue +# 1271| getRValue(): [Literal] 3 +# 1271| Type = [IntType] int +# 1271| Value = [Literal] 3 +# 1271| ValueCategory = prvalue +# 1272| getStmt(5): [BreakStmt] break; +# 1274| getStmt(6): [SwitchCase] default: +# 1275| getStmt(7): [ExprStmt] ExprStmt +# 1275| getExpr(): [AssignExpr] ... = ... +# 1275| Type = [IntType] int +# 1275| ValueCategory = lvalue +# 1275| getLValue(): [VariableAccess] y +# 1275| Type = [IntType] int +# 1275| ValueCategory = lvalue +# 1275| getRValue(): [Literal] 4 +# 1275| Type = [IntType] int +# 1275| Value = [Literal] 4 +# 1275| ValueCategory = prvalue +# 1276| getStmt(2): [LabelStmt] label ...: +# 1277| getStmt(3): [DeclStmt] declaration +# 1277| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1277| Type = [IntType] int +# 1277| getVariable().getInitializer(): [Initializer] initializer for z +# 1277| getExpr(): [VariableAccess] y +# 1277| Type = [IntType] int +# 1277| ValueCategory = prvalue(load) +# 1278| getStmt(4): [ReturnStmt] return ... +# 1280| [TopLevelFunction] int staticLocalInit(int) +# 1280| <params>: +# 1280| getParameter(0): [Parameter] x +# 1280| Type = [IntType] int +# 1280| getEntryPoint(): [BlockStmt] { ... } +# 1281| getStmt(0): [DeclStmt] declaration +# 1281| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 1281| Type = [IntType] int +# 1281| getVariable().getInitializer(): [Initializer] initializer for a +# 1281| getExpr(): [Literal] 0 +# 1281| Type = [IntType] int +# 1281| Value = [Literal] 0 +# 1281| ValueCategory = prvalue +# 1282| getStmt(1): [DeclStmt] declaration +# 1282| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1282| Type = [IntType] int +# 1282| getVariable().getInitializer(): [Initializer] initializer for b +# 1282| getExpr(): [SizeofExprOperator] sizeof(<expr>) +# 1282| Type = [LongType] unsigned long +# 1282| Value = [SizeofExprOperator] 4 +# 1282| ValueCategory = prvalue +# 1282| getExprOperand(): [VariableAccess] x +# 1282| Type = [IntType] int +# 1282| ValueCategory = lvalue +# 1282| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 1282| Type = [IntType] int +# 1282| ValueCategory = lvalue +# 1282| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 1282| Conversion = [IntegralConversion] integral conversion +# 1282| Type = [IntType] int +# 1282| Value = [CStyleCast] 4 +# 1282| ValueCategory = prvalue +# 1283| getStmt(2): [DeclStmt] declaration +# 1283| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1283| Type = [IntType] int +# 1283| getVariable().getInitializer(): [Initializer] initializer for c +# 1283| getExpr(): [VariableAccess] x +# 1283| Type = [IntType] int +# 1283| ValueCategory = prvalue(load) +# 1284| getStmt(3): [DeclStmt] declaration +# 1284| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1284| Type = [IntType] int +# 1286| getStmt(4): [ReturnStmt] return ... +# 1286| getExpr(): [AddExpr] ... + ... +# 1286| Type = [IntType] int +# 1286| ValueCategory = prvalue +# 1286| getLeftOperand(): [AddExpr] ... + ... +# 1286| Type = [IntType] int +# 1286| ValueCategory = prvalue +# 1286| getLeftOperand(): [AddExpr] ... + ... +# 1286| Type = [IntType] int +# 1286| ValueCategory = prvalue +# 1286| getLeftOperand(): [VariableAccess] a +# 1286| Type = [IntType] int +# 1286| ValueCategory = prvalue(load) +# 1286| getRightOperand(): [VariableAccess] b +# 1286| Type = [IntType] int +# 1286| ValueCategory = prvalue(load) +# 1286| getRightOperand(): [VariableAccess] c +# 1286| Type = [IntType] int +# 1286| ValueCategory = prvalue(load) +# 1286| getRightOperand(): [VariableAccess] d +# 1286| Type = [IntType] int +# 1286| ValueCategory = prvalue(load) +# 1289| [TopLevelFunction] void staticLocalWithConstructor(char const*) +# 1289| <params>: +# 1289| getParameter(0): [Parameter] dynamic +# 1289| Type = [PointerType] const char * +# 1289| getEntryPoint(): [BlockStmt] { ... } +# 1290| getStmt(0): [DeclStmt] declaration +# 1290| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 1290| Type = [Struct] String #-----| getVariable().getInitializer(): [Initializer] initializer for a #-----| getExpr(): [ConstructorCall] call to String #-----| Type = [VoidType] void #-----| ValueCategory = prvalue -# 1244| getStmt(1): [DeclStmt] declaration -# 1244| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1244| Type = [Struct] String -# 1244| getVariable().getInitializer(): [Initializer] initializer for b -# 1244| getExpr(): [ConstructorCall] call to String -# 1244| Type = [VoidType] void -# 1244| ValueCategory = prvalue -# 1244| getArgument(0): static -# 1244| Type = [ArrayType] const char[7] -# 1244| Value = [StringLiteral] "static" -# 1244| ValueCategory = lvalue -# 1244| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1244| Type = [PointerType] const char * -# 1244| ValueCategory = prvalue -# 1245| getStmt(2): [DeclStmt] declaration -# 1245| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1245| Type = [Struct] String -# 1245| getVariable().getInitializer(): [Initializer] initializer for c -# 1245| getExpr(): [ConstructorCall] call to String -# 1245| Type = [VoidType] void -# 1245| ValueCategory = prvalue -# 1245| getArgument(0): [VariableAccess] dynamic -# 1245| Type = [PointerType] const char * -# 1245| ValueCategory = prvalue(load) -# 1246| getStmt(3): [ReturnStmt] return ... -# 1250| [TopLevelFunction] char* strcpy(char*, char const*) -# 1250| <params>: -# 1250| getParameter(0): [Parameter] destination -# 1250| Type = [CharPointerType] char * -# 1250| getParameter(1): [Parameter] source -# 1250| Type = [PointerType] const char * -# 1251| [TopLevelFunction] char* strcat(char*, char const*) -# 1251| <params>: -# 1251| getParameter(0): [Parameter] destination -# 1251| Type = [CharPointerType] char * -# 1251| getParameter(1): [Parameter] source -# 1251| Type = [PointerType] const char * -# 1253| [TopLevelFunction] void test_strings(char*, char*) -# 1253| <params>: -# 1253| getParameter(0): [Parameter] s1 -# 1253| Type = [CharPointerType] char * -# 1253| getParameter(1): [Parameter] s2 -# 1253| Type = [CharPointerType] char * -# 1253| getEntryPoint(): [BlockStmt] { ... } -# 1254| getStmt(0): [DeclStmt] declaration -# 1254| getDeclarationEntry(0): [VariableDeclarationEntry] definition of buffer -# 1254| Type = [ArrayType] char[1024] -# 1254| getVariable().getInitializer(): [Initializer] initializer for buffer -# 1254| getExpr(): [ArrayAggregateLiteral] {...} -# 1254| Type = [ArrayType] char[1024] -# 1254| ValueCategory = prvalue -# 1254| getAnElementExpr(0): [Literal] 0 -# 1254| Type = [IntType] int -# 1254| Value = [Literal] 0 -# 1254| ValueCategory = prvalue -# 1254| getAnElementExpr(0).getFullyConverted(): [CStyleCast] (char)... -# 1254| Conversion = [IntegralConversion] integral conversion -# 1254| Type = [PlainCharType] char -# 1254| Value = [CStyleCast] 0 -# 1254| ValueCategory = prvalue -# 1256| getStmt(1): [ExprStmt] ExprStmt -# 1256| getExpr(): [FunctionCall] call to strcpy -# 1256| Type = [CharPointerType] char * -# 1256| ValueCategory = prvalue -# 1256| getArgument(0): [VariableAccess] buffer -# 1256| Type = [ArrayType] char[1024] -# 1256| ValueCategory = lvalue -# 1256| getArgument(1): [VariableAccess] s1 -# 1256| Type = [CharPointerType] char * -# 1256| ValueCategory = prvalue(load) -# 1256| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1256| Type = [CharPointerType] char * -# 1256| ValueCategory = prvalue -# 1256| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)... -# 1256| Conversion = [PointerConversion] pointer conversion -# 1256| Type = [PointerType] const char * -# 1256| ValueCategory = prvalue -# 1257| getStmt(2): [ExprStmt] ExprStmt -# 1257| getExpr(): [FunctionCall] call to strcat -# 1257| Type = [CharPointerType] char * -# 1257| ValueCategory = prvalue -# 1257| getArgument(0): [VariableAccess] buffer -# 1257| Type = [ArrayType] char[1024] -# 1257| ValueCategory = lvalue -# 1257| getArgument(1): [VariableAccess] s2 -# 1257| Type = [CharPointerType] char * -# 1257| ValueCategory = prvalue(load) -# 1257| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1257| Type = [CharPointerType] char * -# 1257| ValueCategory = prvalue -# 1257| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)... -# 1257| Conversion = [PointerConversion] pointer conversion -# 1257| Type = [PointerType] const char * -# 1257| ValueCategory = prvalue -# 1258| getStmt(3): [ReturnStmt] return ... -# 1260| [CopyAssignmentOperator] A& A::operator=(A const&) -# 1260| <params>: +# 1291| getStmt(1): [DeclStmt] declaration +# 1291| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1291| Type = [Struct] String +# 1291| getVariable().getInitializer(): [Initializer] initializer for b +# 1291| getExpr(): [ConstructorCall] call to String +# 1291| Type = [VoidType] void +# 1291| ValueCategory = prvalue +# 1291| getArgument(0): static +# 1291| Type = [ArrayType] const char[7] +# 1291| Value = [StringLiteral] "static" +# 1291| ValueCategory = lvalue +# 1291| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1291| Type = [PointerType] const char * +# 1291| ValueCategory = prvalue +# 1292| getStmt(2): [DeclStmt] declaration +# 1292| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1292| Type = [Struct] String +# 1292| getVariable().getInitializer(): [Initializer] initializer for c +# 1292| getExpr(): [ConstructorCall] call to String +# 1292| Type = [VoidType] void +# 1292| ValueCategory = prvalue +# 1292| getArgument(0): [VariableAccess] dynamic +# 1292| Type = [PointerType] const char * +# 1292| ValueCategory = prvalue(load) +# 1293| getStmt(3): [ReturnStmt] return ... +# 1297| [TopLevelFunction] char* strcpy(char*, char const*) +# 1297| <params>: +# 1297| getParameter(0): [Parameter] destination +# 1297| Type = [CharPointerType] char * +# 1297| getParameter(1): [Parameter] source +# 1297| Type = [PointerType] const char * +# 1298| [TopLevelFunction] char* strcat(char*, char const*) +# 1298| <params>: +# 1298| getParameter(0): [Parameter] destination +# 1298| Type = [CharPointerType] char * +# 1298| getParameter(1): [Parameter] source +# 1298| Type = [PointerType] const char * +# 1300| [TopLevelFunction] void test_strings(char*, char*) +# 1300| <params>: +# 1300| getParameter(0): [Parameter] s1 +# 1300| Type = [CharPointerType] char * +# 1300| getParameter(1): [Parameter] s2 +# 1300| Type = [CharPointerType] char * +# 1300| getEntryPoint(): [BlockStmt] { ... } +# 1301| getStmt(0): [DeclStmt] declaration +# 1301| getDeclarationEntry(0): [VariableDeclarationEntry] definition of buffer +# 1301| Type = [ArrayType] char[1024] +# 1301| getVariable().getInitializer(): [Initializer] initializer for buffer +# 1301| getExpr(): [ArrayAggregateLiteral] {...} +# 1301| Type = [ArrayType] char[1024] +# 1301| ValueCategory = prvalue +# 1301| getAnElementExpr(0): [Literal] 0 +# 1301| Type = [IntType] int +# 1301| Value = [Literal] 0 +# 1301| ValueCategory = prvalue +# 1301| getAnElementExpr(0).getFullyConverted(): [CStyleCast] (char)... +# 1301| Conversion = [IntegralConversion] integral conversion +# 1301| Type = [PlainCharType] char +# 1301| Value = [CStyleCast] 0 +# 1301| ValueCategory = prvalue +# 1303| getStmt(1): [ExprStmt] ExprStmt +# 1303| getExpr(): [FunctionCall] call to strcpy +# 1303| Type = [CharPointerType] char * +# 1303| ValueCategory = prvalue +# 1303| getArgument(0): [VariableAccess] buffer +# 1303| Type = [ArrayType] char[1024] +# 1303| ValueCategory = lvalue +# 1303| getArgument(1): [VariableAccess] s1 +# 1303| Type = [CharPointerType] char * +# 1303| ValueCategory = prvalue(load) +# 1303| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1303| Type = [CharPointerType] char * +# 1303| ValueCategory = prvalue +# 1303| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)... +# 1303| Conversion = [PointerConversion] pointer conversion +# 1303| Type = [PointerType] const char * +# 1303| ValueCategory = prvalue +# 1304| getStmt(2): [ExprStmt] ExprStmt +# 1304| getExpr(): [FunctionCall] call to strcat +# 1304| Type = [CharPointerType] char * +# 1304| ValueCategory = prvalue +# 1304| getArgument(0): [VariableAccess] buffer +# 1304| Type = [ArrayType] char[1024] +# 1304| ValueCategory = lvalue +# 1304| getArgument(1): [VariableAccess] s2 +# 1304| Type = [CharPointerType] char * +# 1304| ValueCategory = prvalue(load) +# 1304| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1304| Type = [CharPointerType] char * +# 1304| ValueCategory = prvalue +# 1304| getArgument(1).getFullyConverted(): [CStyleCast] (const char *)... +# 1304| Conversion = [PointerConversion] pointer conversion +# 1304| Type = [PointerType] const char * +# 1304| ValueCategory = prvalue +# 1305| getStmt(3): [ReturnStmt] return ... +# 1307| [CopyAssignmentOperator] A& A::operator=(A const&) +# 1307| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const A & -# 1260| [MoveAssignmentOperator] A& A::operator=(A&&) -# 1260| <params>: +# 1307| [MoveAssignmentOperator] A& A::operator=(A&&) +# 1307| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] A && -# 1263| [MemberFunction] void A::static_member(A*, int) -# 1263| <params>: -# 1263| getParameter(0): [Parameter] a -# 1263| Type = [PointerType] A * -# 1263| getParameter(1): [Parameter] x -# 1263| Type = [IntType] int -# 1263| getEntryPoint(): [BlockStmt] { ... } -# 1264| getStmt(0): [ExprStmt] ExprStmt -# 1264| getExpr(): [AssignExpr] ... = ... -# 1264| Type = [IntType] int -# 1264| ValueCategory = lvalue -# 1264| getLValue(): [PointerFieldAccess] member -# 1264| Type = [IntType] int -# 1264| ValueCategory = lvalue -# 1264| getQualifier(): [VariableAccess] a -# 1264| Type = [PointerType] A * -# 1264| ValueCategory = prvalue(load) -# 1264| getRValue(): [VariableAccess] x -# 1264| Type = [IntType] int -# 1264| ValueCategory = prvalue(load) -# 1265| getStmt(1): [ReturnStmt] return ... -# 1267| [MemberFunction] void A::static_member_without_def() -# 1267| <params>: -# 1270| [TopLevelFunction] A* getAnInstanceOfA() -# 1270| <params>: -# 1272| [TopLevelFunction] void test_static_member_functions(int, A*) -# 1272| <params>: -# 1272| getParameter(0): [Parameter] int_arg -# 1272| Type = [IntType] int -# 1272| getParameter(1): [Parameter] a_arg -# 1272| Type = [PointerType] A * -# 1272| getEntryPoint(): [BlockStmt] { ... } -# 1273| getStmt(0): [DeclStmt] declaration -# 1273| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1273| Type = [Class] C -# 1273| getVariable().getInitializer(): [Initializer] initializer for c -# 1273| getExpr(): [ConstructorCall] call to C -# 1273| Type = [VoidType] void -# 1273| ValueCategory = prvalue -# 1274| getStmt(1): [ExprStmt] ExprStmt -# 1274| getExpr(): [FunctionCall] call to StaticMemberFunction -# 1274| Type = [IntType] int -# 1274| ValueCategory = prvalue -# 1274| getQualifier(): [VariableAccess] c -# 1274| Type = [Class] C -# 1274| ValueCategory = lvalue -# 1274| getArgument(0): [Literal] 10 -# 1274| Type = [IntType] int -# 1274| Value = [Literal] 10 -# 1274| ValueCategory = prvalue -# 1275| getStmt(2): [ExprStmt] ExprStmt -# 1275| getExpr(): [FunctionCall] call to StaticMemberFunction -# 1275| Type = [IntType] int -# 1275| ValueCategory = prvalue -# 1275| getArgument(0): [Literal] 10 -# 1275| Type = [IntType] int -# 1275| Value = [Literal] 10 -# 1275| ValueCategory = prvalue -# 1277| getStmt(3): [DeclStmt] declaration -# 1277| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 1277| Type = [Struct] A -# 1278| getStmt(4): [ExprStmt] ExprStmt -# 1278| getExpr(): [FunctionCall] call to static_member -# 1278| Type = [VoidType] void -# 1278| ValueCategory = prvalue -# 1278| getQualifier(): [VariableAccess] a -# 1278| Type = [Struct] A -# 1278| ValueCategory = lvalue -# 1278| getArgument(0): [AddressOfExpr] & ... -# 1278| Type = [PointerType] A * -# 1278| ValueCategory = prvalue -# 1278| getOperand(): [VariableAccess] a -# 1278| Type = [Struct] A -# 1278| ValueCategory = lvalue -# 1278| getArgument(1): [VariableAccess] int_arg -# 1278| Type = [IntType] int -# 1278| ValueCategory = prvalue(load) -# 1279| getStmt(5): [ExprStmt] ExprStmt -# 1279| getExpr(): [FunctionCall] call to static_member -# 1279| Type = [VoidType] void -# 1279| ValueCategory = prvalue -# 1279| getArgument(0): [AddressOfExpr] & ... -# 1279| Type = [PointerType] A * -# 1279| ValueCategory = prvalue -# 1279| getOperand(): [VariableAccess] a -# 1279| Type = [Struct] A -# 1279| ValueCategory = lvalue -# 1279| getArgument(1): [VariableAccess] int_arg -# 1279| Type = [IntType] int -# 1279| ValueCategory = prvalue(load) -# 1281| getStmt(6): [ExprStmt] ExprStmt -# 1281| getExpr(): [FunctionCall] call to static_member -# 1281| Type = [VoidType] void -# 1281| ValueCategory = prvalue -# 1281| getQualifier(): [AddressOfExpr] & ... -# 1281| Type = [PointerType] A * -# 1281| ValueCategory = prvalue -# 1281| getOperand(): [VariableAccess] a -# 1281| Type = [Struct] A -# 1281| ValueCategory = lvalue -# 1281| getArgument(0): [VariableAccess] a_arg -# 1281| Type = [PointerType] A * -# 1281| ValueCategory = prvalue(load) -# 1281| getArgument(1): [AddExpr] ... + ... -# 1281| Type = [IntType] int -# 1281| ValueCategory = prvalue -# 1281| getLeftOperand(): [VariableAccess] int_arg -# 1281| Type = [IntType] int -# 1281| ValueCategory = prvalue(load) -# 1281| getRightOperand(): [Literal] 2 -# 1281| Type = [IntType] int -# 1281| Value = [Literal] 2 -# 1281| ValueCategory = prvalue -# 1281| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) -# 1281| Type = [PointerType] A * -# 1281| ValueCategory = prvalue -# 1282| getStmt(7): [ExprStmt] ExprStmt -# 1282| getExpr(): [FunctionCall] call to static_member -# 1282| Type = [VoidType] void -# 1282| ValueCategory = prvalue -# 1282| getQualifier(): [PointerDereferenceExpr] * ... -# 1282| Type = [Struct] A -# 1282| ValueCategory = lvalue -# 1282| getOperand(): [VariableAccess] a_arg -# 1282| Type = [PointerType] A * -# 1282| ValueCategory = prvalue(load) -# 1282| getArgument(0): [AddressOfExpr] & ... -# 1282| Type = [PointerType] A * -# 1282| ValueCategory = prvalue -# 1282| getOperand(): [VariableAccess] a -# 1282| Type = [Struct] A -# 1282| ValueCategory = lvalue -# 1282| getArgument(1): [Literal] 99 -# 1282| Type = [IntType] int -# 1282| Value = [Literal] 99 -# 1282| ValueCategory = prvalue -# 1282| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) -# 1282| Type = [Struct] A -# 1282| ValueCategory = lvalue -# 1283| getStmt(8): [ExprStmt] ExprStmt -# 1283| getExpr(): [FunctionCall] call to static_member -# 1283| Type = [VoidType] void -# 1283| ValueCategory = prvalue -# 1283| getQualifier(): [VariableAccess] a_arg -# 1283| Type = [PointerType] A * -# 1283| ValueCategory = prvalue(load) -# 1283| getArgument(0): [VariableAccess] a_arg -# 1283| Type = [PointerType] A * -# 1283| ValueCategory = prvalue(load) -# 1283| getArgument(1): [UnaryMinusExpr] - ... -# 1283| Type = [IntType] int -# 1283| Value = [UnaryMinusExpr] -1 -# 1283| ValueCategory = prvalue -# 1283| getOperand(): [Literal] 1 -# 1283| Type = [IntType] int -# 1283| Value = [Literal] 1 -# 1283| ValueCategory = prvalue -# 1285| getStmt(9): [ExprStmt] ExprStmt -# 1285| getExpr(): [FunctionCall] call to static_member_without_def -# 1285| Type = [VoidType] void -# 1285| ValueCategory = prvalue -# 1285| getQualifier(): [VariableAccess] a -# 1285| Type = [Struct] A -# 1285| ValueCategory = lvalue -# 1286| getStmt(10): [ExprStmt] ExprStmt -# 1286| getExpr(): [FunctionCall] call to static_member_without_def -# 1286| Type = [VoidType] void -# 1286| ValueCategory = prvalue -# 1288| getStmt(11): [ExprStmt] ExprStmt -# 1288| getExpr(): [FunctionCall] call to static_member_without_def -# 1288| Type = [VoidType] void -# 1288| ValueCategory = prvalue -# 1288| getQualifier(): [FunctionCall] call to getAnInstanceOfA -# 1288| Type = [PointerType] A * -# 1288| ValueCategory = prvalue -# 1289| getStmt(12): [ReturnStmt] return ... -# 1289| getImplicitDestructorCall(0): [DestructorCall] call to ~C -# 1289| Type = [VoidType] void -# 1289| ValueCategory = prvalue -# 1289| getQualifier(): [VariableAccess] c -# 1289| Type = [Class] C -# 1289| ValueCategory = lvalue -# 1291| [TopLevelFunction] int missingReturnValue(bool, int) -# 1291| <params>: -# 1291| getParameter(0): [Parameter] b -# 1291| Type = [BoolType] bool -# 1291| getParameter(1): [Parameter] x -# 1291| Type = [IntType] int -# 1291| getEntryPoint(): [BlockStmt] { ... } -# 1292| getStmt(0): [IfStmt] if (...) ... -# 1292| getCondition(): [VariableAccess] b -# 1292| Type = [BoolType] bool -# 1292| ValueCategory = prvalue(load) -# 1292| getThen(): [BlockStmt] { ... } -# 1293| getStmt(0): [ReturnStmt] return ... -# 1293| getExpr(): [VariableAccess] x -# 1293| Type = [IntType] int -# 1293| ValueCategory = prvalue(load) -# 1295| getStmt(1): [ReturnStmt] return ... -# 1297| [TopLevelFunction] void returnVoid(int, int) -# 1297| <params>: -# 1297| getParameter(0): [Parameter] x -# 1297| Type = [IntType] int -# 1297| getParameter(1): [Parameter] y -# 1297| Type = [IntType] int -# 1297| getEntryPoint(): [BlockStmt] { ... } -# 1298| getStmt(0): [ReturnStmt] return ... -# 1298| getExpr(): [FunctionCall] call to IntegerOps -# 1298| Type = [VoidType] void -# 1298| ValueCategory = prvalue -# 1298| getArgument(0): [VariableAccess] x -# 1298| Type = [IntType] int -# 1298| ValueCategory = prvalue(load) -# 1298| getArgument(1): [VariableAccess] y -# 1298| Type = [IntType] int -# 1298| ValueCategory = prvalue(load) -# 1301| [TopLevelFunction] void gccBinaryConditional(bool, int, long) -# 1301| <params>: -# 1301| getParameter(0): [Parameter] b -# 1301| Type = [BoolType] bool -# 1301| getParameter(1): [Parameter] x -# 1301| Type = [IntType] int -# 1301| getParameter(2): [Parameter] y -# 1301| Type = [LongType] long -# 1301| getEntryPoint(): [BlockStmt] { ... } -# 1302| getStmt(0): [DeclStmt] declaration -# 1302| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1302| Type = [IntType] int -# 1302| getVariable().getInitializer(): [Initializer] initializer for z -# 1302| getExpr(): [VariableAccess] x -# 1302| Type = [IntType] int -# 1302| ValueCategory = prvalue(load) -# 1303| getStmt(1): [ExprStmt] ExprStmt -# 1303| getExpr(): [AssignExpr] ... = ... -# 1303| Type = [IntType] int -# 1303| ValueCategory = lvalue -# 1303| getLValue(): [VariableAccess] z -# 1303| Type = [IntType] int -# 1303| ValueCategory = lvalue -# 1303| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1303| Type = [IntType] int -# 1303| ValueCategory = prvalue(load) -# 1303| getCondition(): [VariableAccess] b -# 1303| Type = [BoolType] bool -# 1303| ValueCategory = prvalue(load) -# 1303| getElse(): [VariableAccess] x -# 1303| Type = [IntType] int -# 1303| ValueCategory = prvalue(load) -# 1304| getStmt(2): [ExprStmt] ExprStmt -# 1304| getExpr(): [AssignExpr] ... = ... -# 1304| Type = [IntType] int -# 1304| ValueCategory = lvalue -# 1304| getLValue(): [VariableAccess] z -# 1304| Type = [IntType] int -# 1304| ValueCategory = lvalue -# 1304| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1304| Type = [LongType] long -# 1304| ValueCategory = prvalue(load) -# 1304| getCondition(): [VariableAccess] b -# 1304| Type = [BoolType] bool -# 1304| ValueCategory = prvalue(load) -# 1304| getElse(): [VariableAccess] y -# 1304| Type = [LongType] long -# 1304| ValueCategory = prvalue(load) -# 1304| getRValue().getFullyConverted(): [CStyleCast] (int)... -# 1304| Conversion = [IntegralConversion] integral conversion -# 1304| Type = [IntType] int -# 1304| ValueCategory = prvalue -# 1305| getStmt(3): [ExprStmt] ExprStmt -# 1305| getExpr(): [AssignExpr] ... = ... -# 1305| Type = [IntType] int -# 1305| ValueCategory = lvalue -# 1305| getLValue(): [VariableAccess] z -# 1305| Type = [IntType] int -# 1305| ValueCategory = lvalue -# 1305| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1305| Type = [IntType] int -# 1305| ValueCategory = prvalue(load) -# 1305| getCondition(): [VariableAccess] x -# 1305| Type = [IntType] int -# 1305| ValueCategory = prvalue(load) -# 1305| getElse(): [VariableAccess] x -# 1305| Type = [IntType] int -# 1305| ValueCategory = prvalue(load) -# 1305| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1305| Conversion = [BoolConversion] conversion to bool -# 1305| Type = [BoolType] bool -# 1305| ValueCategory = prvalue -# 1306| getStmt(4): [ExprStmt] ExprStmt -# 1306| getExpr(): [AssignExpr] ... = ... -# 1306| Type = [IntType] int -# 1306| ValueCategory = lvalue -# 1306| getLValue(): [VariableAccess] z -# 1306| Type = [IntType] int -# 1306| ValueCategory = lvalue -# 1306| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1306| Type = [LongType] long -# 1306| ValueCategory = prvalue(load) -# 1306| getCondition(): [VariableAccess] x -# 1306| Type = [IntType] int -# 1306| ValueCategory = prvalue(load) -# 1306| getElse(): [VariableAccess] y -# 1306| Type = [LongType] long -# 1306| ValueCategory = prvalue(load) -# 1306| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1306| Conversion = [BoolConversion] conversion to bool -# 1306| Type = [BoolType] bool -# 1306| ValueCategory = prvalue -# 1306| getRValue().getFullyConverted(): [CStyleCast] (int)... -# 1306| Conversion = [IntegralConversion] integral conversion -# 1306| Type = [IntType] int -# 1306| ValueCategory = prvalue -# 1307| getStmt(5): [ExprStmt] ExprStmt -# 1307| getExpr(): [AssignExpr] ... = ... -# 1307| Type = [IntType] int -# 1307| ValueCategory = lvalue -# 1307| getLValue(): [VariableAccess] z -# 1307| Type = [IntType] int -# 1307| ValueCategory = lvalue -# 1307| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1307| Type = [LongType] long -# 1307| ValueCategory = prvalue(load) -# 1307| getCondition(): [VariableAccess] y -# 1307| Type = [LongType] long -# 1307| ValueCategory = prvalue(load) -# 1307| getElse(): [VariableAccess] x -# 1307| Type = [IntType] int -# 1307| ValueCategory = prvalue(load) -# 1307| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1307| Conversion = [BoolConversion] conversion to bool -# 1307| Type = [BoolType] bool -# 1307| ValueCategory = prvalue -# 1307| getElse().getFullyConverted(): [CStyleCast] (long)... -# 1307| Conversion = [IntegralConversion] integral conversion -# 1307| Type = [LongType] long -# 1307| ValueCategory = prvalue -# 1307| getRValue().getFullyConverted(): [CStyleCast] (int)... -# 1307| Conversion = [IntegralConversion] integral conversion -# 1307| Type = [IntType] int -# 1307| ValueCategory = prvalue -# 1308| getStmt(6): [ExprStmt] ExprStmt -# 1308| getExpr(): [AssignExpr] ... = ... -# 1308| Type = [IntType] int -# 1308| ValueCategory = lvalue -# 1308| getLValue(): [VariableAccess] z -# 1308| Type = [IntType] int -# 1308| ValueCategory = lvalue -# 1308| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1308| Type = [LongType] long -# 1308| ValueCategory = prvalue(load) -# 1308| getCondition(): [VariableAccess] y -# 1308| Type = [LongType] long -# 1308| ValueCategory = prvalue(load) -# 1308| getElse(): [VariableAccess] y -# 1308| Type = [LongType] long -# 1308| ValueCategory = prvalue(load) -# 1308| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1308| Conversion = [BoolConversion] conversion to bool -# 1308| Type = [BoolType] bool -# 1308| ValueCategory = prvalue -# 1308| getRValue().getFullyConverted(): [CStyleCast] (int)... -# 1308| Conversion = [IntegralConversion] integral conversion -# 1308| Type = [IntType] int -# 1308| ValueCategory = prvalue -# 1310| getStmt(7): [ExprStmt] ExprStmt -# 1310| getExpr(): [AssignExpr] ... = ... -# 1310| Type = [IntType] int -# 1310| ValueCategory = lvalue -# 1310| getLValue(): [VariableAccess] z -# 1310| Type = [IntType] int -# 1310| ValueCategory = lvalue -# 1310| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1310| Type = [IntType] int -# 1310| ValueCategory = prvalue(load) -# 1310| getCondition(): [LogicalOrExpr] ... || ... -# 1310| Type = [BoolType] bool -# 1310| ValueCategory = prvalue -# 1310| getLeftOperand(): [LogicalAndExpr] ... && ... -# 1310| Type = [BoolType] bool -# 1310| ValueCategory = prvalue -# 1310| getLeftOperand(): [VariableAccess] x -# 1310| Type = [IntType] int -# 1310| ValueCategory = prvalue(load) -# 1310| getRightOperand(): [VariableAccess] b -# 1310| Type = [BoolType] bool -# 1310| ValueCategory = prvalue(load) -# 1310| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... -# 1310| Conversion = [BoolConversion] conversion to bool -# 1310| Type = [BoolType] bool -# 1310| ValueCategory = prvalue -# 1310| getRightOperand(): [VariableAccess] y -# 1310| Type = [LongType] long -# 1310| ValueCategory = prvalue(load) -# 1310| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... -# 1310| Conversion = [BoolConversion] conversion to bool -# 1310| Type = [BoolType] bool -# 1310| ValueCategory = prvalue -# 1310| getElse(): [VariableAccess] x -# 1310| Type = [IntType] int -# 1310| ValueCategory = prvalue(load) -# 1310| getCondition().getFullyConverted(): [ParenthesisExpr] (...) -# 1310| Type = [BoolType] bool -# 1310| ValueCategory = prvalue -# 1311| getStmt(8): [ReturnStmt] return ... -# 1313| [TopLevelFunction] bool predicateA() -# 1313| <params>: -# 1314| [TopLevelFunction] bool predicateB() +# 1310| [MemberFunction] void A::static_member(A*, int) +# 1310| <params>: +# 1310| getParameter(0): [Parameter] a +# 1310| Type = [PointerType] A * +# 1310| getParameter(1): [Parameter] x +# 1310| Type = [IntType] int +# 1310| getEntryPoint(): [BlockStmt] { ... } +# 1311| getStmt(0): [ExprStmt] ExprStmt +# 1311| getExpr(): [AssignExpr] ... = ... +# 1311| Type = [IntType] int +# 1311| ValueCategory = lvalue +# 1311| getLValue(): [PointerFieldAccess] member +# 1311| Type = [IntType] int +# 1311| ValueCategory = lvalue +# 1311| getQualifier(): [VariableAccess] a +# 1311| Type = [PointerType] A * +# 1311| ValueCategory = prvalue(load) +# 1311| getRValue(): [VariableAccess] x +# 1311| Type = [IntType] int +# 1311| ValueCategory = prvalue(load) +# 1312| getStmt(1): [ReturnStmt] return ... +# 1314| [MemberFunction] void A::static_member_without_def() # 1314| <params>: -# 1316| [TopLevelFunction] int shortCircuitConditional(int, int) -# 1316| <params>: -# 1316| getParameter(0): [Parameter] x -# 1316| Type = [IntType] int -# 1316| getParameter(1): [Parameter] y -# 1316| Type = [IntType] int -# 1316| getEntryPoint(): [BlockStmt] { ... } -# 1317| getStmt(0): [ReturnStmt] return ... -# 1317| getExpr(): [ConditionalExpr] ... ? ... : ... -# 1317| Type = [IntType] int -# 1317| ValueCategory = prvalue(load) -# 1317| getCondition(): [LogicalAndExpr] ... && ... -# 1317| Type = [BoolType] bool -# 1317| ValueCategory = prvalue -# 1317| getLeftOperand(): [FunctionCall] call to predicateA -# 1317| Type = [BoolType] bool -# 1317| ValueCategory = prvalue -# 1317| getRightOperand(): [FunctionCall] call to predicateB -# 1317| Type = [BoolType] bool -# 1317| ValueCategory = prvalue -# 1317| getThen(): [VariableAccess] x -# 1317| Type = [IntType] int -# 1317| ValueCategory = prvalue(load) -# 1317| getElse(): [VariableAccess] y -# 1317| Type = [IntType] int -# 1317| ValueCategory = prvalue(load) -# 1320| [Operator,TopLevelFunction] void* operator new(size_t, void*) -# 1320| <params>: -# 1320| getParameter(0): [Parameter] (unnamed parameter 0) -# 1320| Type = [CTypedefType,Size_t] size_t -# 1320| getParameter(1): [Parameter] (unnamed parameter 1) -# 1320| Type = [VoidPointerType] void * -# 1322| [TopLevelFunction] void f(int*) -# 1322| <params>: -# 1322| getParameter(0): [Parameter] p -# 1322| Type = [IntPointerType] int * -# 1323| getEntryPoint(): [BlockStmt] { ... } -# 1324| getStmt(0): [ExprStmt] ExprStmt -# 1324| getExpr(): [NewExpr] new -# 1324| Type = [IntPointerType] int * -# 1324| ValueCategory = prvalue -# 1324| getAllocatorCall(): [FunctionCall] call to operator new -# 1324| Type = [VoidPointerType] void * -# 1324| ValueCategory = prvalue -# 1324| getArgument(0): [ErrorExpr] <error expr> -# 1324| Type = [LongType] unsigned long -# 1324| ValueCategory = prvalue -# 1324| getArgument(1): [VariableAccess] p -# 1324| Type = [IntPointerType] int * -# 1324| ValueCategory = prvalue(load) -# 1324| getArgument(1).getFullyConverted(): [CStyleCast] (void *)... -# 1324| Conversion = [PointerConversion] pointer conversion -# 1324| Type = [VoidPointerType] void * -# 1324| ValueCategory = prvalue -# 1325| getStmt(1): [ReturnStmt] return ... -# 1328| [FunctionTemplateInstantiation,TopLevelFunction] Point defaultConstruct<Point>() -# 1328| <params>: -# 1328| getEntryPoint(): [BlockStmt] { ... } -# 1329| getStmt(0): [ReturnStmt] return ... -# 1329| getExpr(): [Literal] 0 -# 1329| Type = [Struct] Point -# 1329| Value = [Literal] 0 -# 1329| ValueCategory = prvalue -# 1328| [FunctionTemplateInstantiation,TopLevelFunction] String defaultConstruct<String>() -# 1328| <params>: -# 1328| getEntryPoint(): [BlockStmt] { ... } -# 1329| getStmt(0): [ReturnStmt] return ... -# 1329| getExpr(): [ConstructorCall] call to String +# 1317| [TopLevelFunction] A* getAnInstanceOfA() +# 1317| <params>: +# 1319| [TopLevelFunction] void test_static_member_functions(int, A*) +# 1319| <params>: +# 1319| getParameter(0): [Parameter] int_arg +# 1319| Type = [IntType] int +# 1319| getParameter(1): [Parameter] a_arg +# 1319| Type = [PointerType] A * +# 1319| getEntryPoint(): [BlockStmt] { ... } +# 1320| getStmt(0): [DeclStmt] declaration +# 1320| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1320| Type = [Class] C +# 1320| getVariable().getInitializer(): [Initializer] initializer for c +# 1320| getExpr(): [ConstructorCall] call to C +# 1320| Type = [VoidType] void +# 1320| ValueCategory = prvalue +# 1321| getStmt(1): [ExprStmt] ExprStmt +# 1321| getExpr(): [FunctionCall] call to StaticMemberFunction +# 1321| Type = [IntType] int +# 1321| ValueCategory = prvalue +# 1321| getQualifier(): [VariableAccess] c +# 1321| Type = [Class] C +# 1321| ValueCategory = lvalue +# 1321| getArgument(0): [Literal] 10 +# 1321| Type = [IntType] int +# 1321| Value = [Literal] 10 +# 1321| ValueCategory = prvalue +# 1322| getStmt(2): [ExprStmt] ExprStmt +# 1322| getExpr(): [FunctionCall] call to StaticMemberFunction +# 1322| Type = [IntType] int +# 1322| ValueCategory = prvalue +# 1322| getArgument(0): [Literal] 10 +# 1322| Type = [IntType] int +# 1322| Value = [Literal] 10 +# 1322| ValueCategory = prvalue +# 1324| getStmt(3): [DeclStmt] declaration +# 1324| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 1324| Type = [Struct] A +# 1325| getStmt(4): [ExprStmt] ExprStmt +# 1325| getExpr(): [FunctionCall] call to static_member +# 1325| Type = [VoidType] void +# 1325| ValueCategory = prvalue +# 1325| getQualifier(): [VariableAccess] a +# 1325| Type = [Struct] A +# 1325| ValueCategory = lvalue +# 1325| getArgument(0): [AddressOfExpr] & ... +# 1325| Type = [PointerType] A * +# 1325| ValueCategory = prvalue +# 1325| getOperand(): [VariableAccess] a +# 1325| Type = [Struct] A +# 1325| ValueCategory = lvalue +# 1325| getArgument(1): [VariableAccess] int_arg +# 1325| Type = [IntType] int +# 1325| ValueCategory = prvalue(load) +# 1326| getStmt(5): [ExprStmt] ExprStmt +# 1326| getExpr(): [FunctionCall] call to static_member +# 1326| Type = [VoidType] void +# 1326| ValueCategory = prvalue +# 1326| getArgument(0): [AddressOfExpr] & ... +# 1326| Type = [PointerType] A * +# 1326| ValueCategory = prvalue +# 1326| getOperand(): [VariableAccess] a +# 1326| Type = [Struct] A +# 1326| ValueCategory = lvalue +# 1326| getArgument(1): [VariableAccess] int_arg +# 1326| Type = [IntType] int +# 1326| ValueCategory = prvalue(load) +# 1328| getStmt(6): [ExprStmt] ExprStmt +# 1328| getExpr(): [FunctionCall] call to static_member +# 1328| Type = [VoidType] void +# 1328| ValueCategory = prvalue +# 1328| getQualifier(): [AddressOfExpr] & ... +# 1328| Type = [PointerType] A * +# 1328| ValueCategory = prvalue +# 1328| getOperand(): [VariableAccess] a +# 1328| Type = [Struct] A +# 1328| ValueCategory = lvalue +# 1328| getArgument(0): [VariableAccess] a_arg +# 1328| Type = [PointerType] A * +# 1328| ValueCategory = prvalue(load) +# 1328| getArgument(1): [AddExpr] ... + ... +# 1328| Type = [IntType] int +# 1328| ValueCategory = prvalue +# 1328| getLeftOperand(): [VariableAccess] int_arg +# 1328| Type = [IntType] int +# 1328| ValueCategory = prvalue(load) +# 1328| getRightOperand(): [Literal] 2 +# 1328| Type = [IntType] int +# 1328| Value = [Literal] 2 +# 1328| ValueCategory = prvalue +# 1328| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) +# 1328| Type = [PointerType] A * +# 1328| ValueCategory = prvalue +# 1329| getStmt(7): [ExprStmt] ExprStmt +# 1329| getExpr(): [FunctionCall] call to static_member # 1329| Type = [VoidType] void # 1329| ValueCategory = prvalue -# 1328| [TemplateFunction,TopLevelFunction] T defaultConstruct<T>() -# 1328| <params>: -# 1328| getEntryPoint(): [BlockStmt] { ... } -# 1329| getStmt(0): [ReturnStmt] return ... -# 1329| getExpr(): [Literal] 0 -# 1329| Type = [TemplateParameter] T -# 1329| Value = [Literal] 0 -# 1329| ValueCategory = prvalue -# 1329| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1329| Type = [TemplateParameter] T -# 1329| ValueCategory = prvalue(load) -# 1328| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor defaultConstruct<copy_constructor>() -# 1328| <params>: -# 1328| getEntryPoint(): [BlockStmt] { ... } -# 1329| getStmt(0): [ReturnStmt] return ... -# 1329| getExpr(): [ConstructorCall] call to copy_constructor -# 1329| Type = [VoidType] void -# 1329| ValueCategory = prvalue -# 1328| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only defaultConstruct<destructor_only>() -# 1328| <params>: -# 1328| getEntryPoint(): [BlockStmt] { ... } -# 1329| getStmt(0): [ReturnStmt] return ... -# 1329| getExpr(): [Literal] 0 -# 1329| Type = [Class] destructor_only -# 1329| Value = [Literal] 0 -# 1329| ValueCategory = prvalue -# 1332| [CopyAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only const&) -# 1332| <params>: +# 1329| getQualifier(): [PointerDereferenceExpr] * ... +# 1329| Type = [Struct] A +# 1329| ValueCategory = lvalue +# 1329| getOperand(): [VariableAccess] a_arg +# 1329| Type = [PointerType] A * +# 1329| ValueCategory = prvalue(load) +# 1329| getArgument(0): [AddressOfExpr] & ... +# 1329| Type = [PointerType] A * +# 1329| ValueCategory = prvalue +# 1329| getOperand(): [VariableAccess] a +# 1329| Type = [Struct] A +# 1329| ValueCategory = lvalue +# 1329| getArgument(1): [Literal] 99 +# 1329| Type = [IntType] int +# 1329| Value = [Literal] 99 +# 1329| ValueCategory = prvalue +# 1329| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) +# 1329| Type = [Struct] A +# 1329| ValueCategory = lvalue +# 1330| getStmt(8): [ExprStmt] ExprStmt +# 1330| getExpr(): [FunctionCall] call to static_member +# 1330| Type = [VoidType] void +# 1330| ValueCategory = prvalue +# 1330| getQualifier(): [VariableAccess] a_arg +# 1330| Type = [PointerType] A * +# 1330| ValueCategory = prvalue(load) +# 1330| getArgument(0): [VariableAccess] a_arg +# 1330| Type = [PointerType] A * +# 1330| ValueCategory = prvalue(load) +# 1330| getArgument(1): [UnaryMinusExpr] - ... +# 1330| Type = [IntType] int +# 1330| Value = [UnaryMinusExpr] -1 +# 1330| ValueCategory = prvalue +# 1330| getOperand(): [Literal] 1 +# 1330| Type = [IntType] int +# 1330| Value = [Literal] 1 +# 1330| ValueCategory = prvalue +# 1332| getStmt(9): [ExprStmt] ExprStmt +# 1332| getExpr(): [FunctionCall] call to static_member_without_def +# 1332| Type = [VoidType] void +# 1332| ValueCategory = prvalue +# 1332| getQualifier(): [VariableAccess] a +# 1332| Type = [Struct] A +# 1332| ValueCategory = lvalue +# 1333| getStmt(10): [ExprStmt] ExprStmt +# 1333| getExpr(): [FunctionCall] call to static_member_without_def +# 1333| Type = [VoidType] void +# 1333| ValueCategory = prvalue +# 1335| getStmt(11): [ExprStmt] ExprStmt +# 1335| getExpr(): [FunctionCall] call to static_member_without_def +# 1335| Type = [VoidType] void +# 1335| ValueCategory = prvalue +# 1335| getQualifier(): [FunctionCall] call to getAnInstanceOfA +# 1335| Type = [PointerType] A * +# 1335| ValueCategory = prvalue +# 1336| getStmt(12): [ReturnStmt] return ... +# 1336| getImplicitDestructorCall(0): [DestructorCall] call to ~C +# 1336| Type = [VoidType] void +# 1336| ValueCategory = prvalue +# 1336| getQualifier(): [VariableAccess] c +# 1336| Type = [Class] C +# 1336| ValueCategory = lvalue +# 1338| [TopLevelFunction] int missingReturnValue(bool, int) +# 1338| <params>: +# 1338| getParameter(0): [Parameter] b +# 1338| Type = [BoolType] bool +# 1338| getParameter(1): [Parameter] x +# 1338| Type = [IntType] int +# 1338| getEntryPoint(): [BlockStmt] { ... } +# 1339| getStmt(0): [IfStmt] if (...) ... +# 1339| getCondition(): [VariableAccess] b +# 1339| Type = [BoolType] bool +# 1339| ValueCategory = prvalue(load) +# 1339| getThen(): [BlockStmt] { ... } +# 1340| getStmt(0): [ReturnStmt] return ... +# 1340| getExpr(): [VariableAccess] x +# 1340| Type = [IntType] int +# 1340| ValueCategory = prvalue(load) +# 1342| getStmt(1): [ReturnStmt] return ... +# 1344| [TopLevelFunction] void returnVoid(int, int) +# 1344| <params>: +# 1344| getParameter(0): [Parameter] x +# 1344| Type = [IntType] int +# 1344| getParameter(1): [Parameter] y +# 1344| Type = [IntType] int +# 1344| getEntryPoint(): [BlockStmt] { ... } +# 1345| getStmt(0): [ReturnStmt] return ... +# 1345| getExpr(): [FunctionCall] call to IntegerOps +# 1345| Type = [VoidType] void +# 1345| ValueCategory = prvalue +# 1345| getArgument(0): [VariableAccess] x +# 1345| Type = [IntType] int +# 1345| ValueCategory = prvalue(load) +# 1345| getArgument(1): [VariableAccess] y +# 1345| Type = [IntType] int +# 1345| ValueCategory = prvalue(load) +# 1348| [TopLevelFunction] void gccBinaryConditional(bool, int, long) +# 1348| <params>: +# 1348| getParameter(0): [Parameter] b +# 1348| Type = [BoolType] bool +# 1348| getParameter(1): [Parameter] x +# 1348| Type = [IntType] int +# 1348| getParameter(2): [Parameter] y +# 1348| Type = [LongType] long +# 1348| getEntryPoint(): [BlockStmt] { ... } +# 1349| getStmt(0): [DeclStmt] declaration +# 1349| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1349| Type = [IntType] int +# 1349| getVariable().getInitializer(): [Initializer] initializer for z +# 1349| getExpr(): [VariableAccess] x +# 1349| Type = [IntType] int +# 1349| ValueCategory = prvalue(load) +# 1350| getStmt(1): [ExprStmt] ExprStmt +# 1350| getExpr(): [AssignExpr] ... = ... +# 1350| Type = [IntType] int +# 1350| ValueCategory = lvalue +# 1350| getLValue(): [VariableAccess] z +# 1350| Type = [IntType] int +# 1350| ValueCategory = lvalue +# 1350| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1350| Type = [IntType] int +# 1350| ValueCategory = prvalue(load) +# 1350| getCondition(): [VariableAccess] b +# 1350| Type = [BoolType] bool +# 1350| ValueCategory = prvalue(load) +# 1350| getElse(): [VariableAccess] x +# 1350| Type = [IntType] int +# 1350| ValueCategory = prvalue(load) +# 1351| getStmt(2): [ExprStmt] ExprStmt +# 1351| getExpr(): [AssignExpr] ... = ... +# 1351| Type = [IntType] int +# 1351| ValueCategory = lvalue +# 1351| getLValue(): [VariableAccess] z +# 1351| Type = [IntType] int +# 1351| ValueCategory = lvalue +# 1351| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1351| Type = [LongType] long +# 1351| ValueCategory = prvalue(load) +# 1351| getCondition(): [VariableAccess] b +# 1351| Type = [BoolType] bool +# 1351| ValueCategory = prvalue(load) +# 1351| getElse(): [VariableAccess] y +# 1351| Type = [LongType] long +# 1351| ValueCategory = prvalue(load) +# 1351| getRValue().getFullyConverted(): [CStyleCast] (int)... +# 1351| Conversion = [IntegralConversion] integral conversion +# 1351| Type = [IntType] int +# 1351| ValueCategory = prvalue +# 1352| getStmt(3): [ExprStmt] ExprStmt +# 1352| getExpr(): [AssignExpr] ... = ... +# 1352| Type = [IntType] int +# 1352| ValueCategory = lvalue +# 1352| getLValue(): [VariableAccess] z +# 1352| Type = [IntType] int +# 1352| ValueCategory = lvalue +# 1352| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1352| Type = [IntType] int +# 1352| ValueCategory = prvalue(load) +# 1352| getCondition(): [VariableAccess] x +# 1352| Type = [IntType] int +# 1352| ValueCategory = prvalue(load) +# 1352| getElse(): [VariableAccess] x +# 1352| Type = [IntType] int +# 1352| ValueCategory = prvalue(load) +# 1352| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1352| Conversion = [BoolConversion] conversion to bool +# 1352| Type = [BoolType] bool +# 1352| ValueCategory = prvalue +# 1353| getStmt(4): [ExprStmt] ExprStmt +# 1353| getExpr(): [AssignExpr] ... = ... +# 1353| Type = [IntType] int +# 1353| ValueCategory = lvalue +# 1353| getLValue(): [VariableAccess] z +# 1353| Type = [IntType] int +# 1353| ValueCategory = lvalue +# 1353| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1353| Type = [LongType] long +# 1353| ValueCategory = prvalue(load) +# 1353| getCondition(): [VariableAccess] x +# 1353| Type = [IntType] int +# 1353| ValueCategory = prvalue(load) +# 1353| getElse(): [VariableAccess] y +# 1353| Type = [LongType] long +# 1353| ValueCategory = prvalue(load) +# 1353| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1353| Conversion = [BoolConversion] conversion to bool +# 1353| Type = [BoolType] bool +# 1353| ValueCategory = prvalue +# 1353| getRValue().getFullyConverted(): [CStyleCast] (int)... +# 1353| Conversion = [IntegralConversion] integral conversion +# 1353| Type = [IntType] int +# 1353| ValueCategory = prvalue +# 1354| getStmt(5): [ExprStmt] ExprStmt +# 1354| getExpr(): [AssignExpr] ... = ... +# 1354| Type = [IntType] int +# 1354| ValueCategory = lvalue +# 1354| getLValue(): [VariableAccess] z +# 1354| Type = [IntType] int +# 1354| ValueCategory = lvalue +# 1354| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1354| Type = [LongType] long +# 1354| ValueCategory = prvalue(load) +# 1354| getCondition(): [VariableAccess] y +# 1354| Type = [LongType] long +# 1354| ValueCategory = prvalue(load) +# 1354| getElse(): [VariableAccess] x +# 1354| Type = [IntType] int +# 1354| ValueCategory = prvalue(load) +# 1354| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1354| Conversion = [BoolConversion] conversion to bool +# 1354| Type = [BoolType] bool +# 1354| ValueCategory = prvalue +# 1354| getElse().getFullyConverted(): [CStyleCast] (long)... +# 1354| Conversion = [IntegralConversion] integral conversion +# 1354| Type = [LongType] long +# 1354| ValueCategory = prvalue +# 1354| getRValue().getFullyConverted(): [CStyleCast] (int)... +# 1354| Conversion = [IntegralConversion] integral conversion +# 1354| Type = [IntType] int +# 1354| ValueCategory = prvalue +# 1355| getStmt(6): [ExprStmt] ExprStmt +# 1355| getExpr(): [AssignExpr] ... = ... +# 1355| Type = [IntType] int +# 1355| ValueCategory = lvalue +# 1355| getLValue(): [VariableAccess] z +# 1355| Type = [IntType] int +# 1355| ValueCategory = lvalue +# 1355| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1355| Type = [LongType] long +# 1355| ValueCategory = prvalue(load) +# 1355| getCondition(): [VariableAccess] y +# 1355| Type = [LongType] long +# 1355| ValueCategory = prvalue(load) +# 1355| getElse(): [VariableAccess] y +# 1355| Type = [LongType] long +# 1355| ValueCategory = prvalue(load) +# 1355| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1355| Conversion = [BoolConversion] conversion to bool +# 1355| Type = [BoolType] bool +# 1355| ValueCategory = prvalue +# 1355| getRValue().getFullyConverted(): [CStyleCast] (int)... +# 1355| Conversion = [IntegralConversion] integral conversion +# 1355| Type = [IntType] int +# 1355| ValueCategory = prvalue +# 1357| getStmt(7): [ExprStmt] ExprStmt +# 1357| getExpr(): [AssignExpr] ... = ... +# 1357| Type = [IntType] int +# 1357| ValueCategory = lvalue +# 1357| getLValue(): [VariableAccess] z +# 1357| Type = [IntType] int +# 1357| ValueCategory = lvalue +# 1357| getRValue(): [ConditionalExpr] ... ? ... : ... +# 1357| Type = [IntType] int +# 1357| ValueCategory = prvalue(load) +# 1357| getCondition(): [LogicalOrExpr] ... || ... +# 1357| Type = [BoolType] bool +# 1357| ValueCategory = prvalue +# 1357| getLeftOperand(): [LogicalAndExpr] ... && ... +# 1357| Type = [BoolType] bool +# 1357| ValueCategory = prvalue +# 1357| getLeftOperand(): [VariableAccess] x +# 1357| Type = [IntType] int +# 1357| ValueCategory = prvalue(load) +# 1357| getRightOperand(): [VariableAccess] b +# 1357| Type = [BoolType] bool +# 1357| ValueCategory = prvalue(load) +# 1357| getLeftOperand().getFullyConverted(): [CStyleCast] (bool)... +# 1357| Conversion = [BoolConversion] conversion to bool +# 1357| Type = [BoolType] bool +# 1357| ValueCategory = prvalue +# 1357| getRightOperand(): [VariableAccess] y +# 1357| Type = [LongType] long +# 1357| ValueCategory = prvalue(load) +# 1357| getRightOperand().getFullyConverted(): [CStyleCast] (bool)... +# 1357| Conversion = [BoolConversion] conversion to bool +# 1357| Type = [BoolType] bool +# 1357| ValueCategory = prvalue +# 1357| getElse(): [VariableAccess] x +# 1357| Type = [IntType] int +# 1357| ValueCategory = prvalue(load) +# 1357| getCondition().getFullyConverted(): [ParenthesisExpr] (...) +# 1357| Type = [BoolType] bool +# 1357| ValueCategory = prvalue +# 1358| getStmt(8): [ReturnStmt] return ... +# 1360| [TopLevelFunction] bool predicateA() +# 1360| <params>: +# 1361| [TopLevelFunction] bool predicateB() +# 1361| <params>: +# 1363| [TopLevelFunction] int shortCircuitConditional(int, int) +# 1363| <params>: +# 1363| getParameter(0): [Parameter] x +# 1363| Type = [IntType] int +# 1363| getParameter(1): [Parameter] y +# 1363| Type = [IntType] int +# 1363| getEntryPoint(): [BlockStmt] { ... } +# 1364| getStmt(0): [ReturnStmt] return ... +# 1364| getExpr(): [ConditionalExpr] ... ? ... : ... +# 1364| Type = [IntType] int +# 1364| ValueCategory = prvalue(load) +# 1364| getCondition(): [LogicalAndExpr] ... && ... +# 1364| Type = [BoolType] bool +# 1364| ValueCategory = prvalue +# 1364| getLeftOperand(): [FunctionCall] call to predicateA +# 1364| Type = [BoolType] bool +# 1364| ValueCategory = prvalue +# 1364| getRightOperand(): [FunctionCall] call to predicateB +# 1364| Type = [BoolType] bool +# 1364| ValueCategory = prvalue +# 1364| getThen(): [VariableAccess] x +# 1364| Type = [IntType] int +# 1364| ValueCategory = prvalue(load) +# 1364| getElse(): [VariableAccess] y +# 1364| Type = [IntType] int +# 1364| ValueCategory = prvalue(load) +# 1367| [Operator,TopLevelFunction] void* operator new(size_t, void*) +# 1367| <params>: +# 1367| getParameter(0): [Parameter] (unnamed parameter 0) +# 1367| Type = [CTypedefType,Size_t] size_t +# 1367| getParameter(1): [Parameter] (unnamed parameter 1) +# 1367| Type = [VoidPointerType] void * +# 1369| [TopLevelFunction] void f(int*) +# 1369| <params>: +# 1369| getParameter(0): [Parameter] p +# 1369| Type = [IntPointerType] int * +# 1370| getEntryPoint(): [BlockStmt] { ... } +# 1371| getStmt(0): [ExprStmt] ExprStmt +# 1371| getExpr(): [NewExpr] new +# 1371| Type = [IntPointerType] int * +# 1371| ValueCategory = prvalue +# 1371| getAllocatorCall(): [FunctionCall] call to operator new +# 1371| Type = [VoidPointerType] void * +# 1371| ValueCategory = prvalue +# 1371| getArgument(0): [ErrorExpr] <error expr> +# 1371| Type = [LongType] unsigned long +# 1371| ValueCategory = prvalue +# 1371| getArgument(1): [VariableAccess] p +# 1371| Type = [IntPointerType] int * +# 1371| ValueCategory = prvalue(load) +# 1371| getArgument(1).getFullyConverted(): [CStyleCast] (void *)... +# 1371| Conversion = [PointerConversion] pointer conversion +# 1371| Type = [VoidPointerType] void * +# 1371| ValueCategory = prvalue +# 1372| getStmt(1): [ReturnStmt] return ... +# 1375| [FunctionTemplateInstantiation,TopLevelFunction] Point defaultConstruct<Point>() +# 1375| <params>: +# 1375| getEntryPoint(): [BlockStmt] { ... } +# 1376| getStmt(0): [ReturnStmt] return ... +# 1376| getExpr(): [Literal] 0 +# 1376| Type = [Struct] Point +# 1376| Value = [Literal] 0 +# 1376| ValueCategory = prvalue +# 1375| [FunctionTemplateInstantiation,TopLevelFunction] String defaultConstruct<String>() +# 1375| <params>: +# 1375| getEntryPoint(): [BlockStmt] { ... } +# 1376| getStmt(0): [ReturnStmt] return ... +# 1376| getExpr(): [ConstructorCall] call to String +# 1376| Type = [VoidType] void +# 1376| ValueCategory = prvalue +# 1375| [TemplateFunction,TopLevelFunction] T defaultConstruct<T>() +# 1375| <params>: +# 1375| getEntryPoint(): [BlockStmt] { ... } +# 1376| getStmt(0): [ReturnStmt] return ... +# 1376| getExpr(): [Literal] 0 +# 1376| Type = [TemplateParameter] T +# 1376| Value = [Literal] 0 +# 1376| ValueCategory = prvalue +# 1376| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1376| Type = [TemplateParameter] T +# 1376| ValueCategory = prvalue(load) +# 1375| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor defaultConstruct<copy_constructor>() +# 1375| <params>: +# 1375| getEntryPoint(): [BlockStmt] { ... } +# 1376| getStmt(0): [ReturnStmt] return ... +# 1376| getExpr(): [ConstructorCall] call to copy_constructor +# 1376| Type = [VoidType] void +# 1376| ValueCategory = prvalue +# 1375| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only defaultConstruct<destructor_only>() +# 1375| <params>: +# 1375| getEntryPoint(): [BlockStmt] { ... } +# 1376| getStmt(0): [ReturnStmt] return ... +# 1376| getExpr(): [Literal] 0 +# 1376| Type = [Class] destructor_only +# 1376| Value = [Literal] 0 +# 1376| ValueCategory = prvalue +# 1379| [CopyAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only const&) +# 1379| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const constructor_only & -# 1332| [MoveAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only&&) -# 1332| <params>: +# 1379| [MoveAssignmentOperator] constructor_only& constructor_only::operator=(constructor_only&&) +# 1379| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] constructor_only && -# 1332| [CopyConstructor] void constructor_only::constructor_only(constructor_only const&) -# 1332| <params>: +# 1379| [CopyConstructor] void constructor_only::constructor_only(constructor_only const&) +# 1379| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const constructor_only & -# 1332| [MoveConstructor] void constructor_only::constructor_only(constructor_only&&) -# 1332| <params>: +# 1379| [MoveConstructor] void constructor_only::constructor_only(constructor_only&&) +# 1379| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] constructor_only && -# 1337| [Constructor] void constructor_only::constructor_only(int) -# 1337| <params>: -# 1337| getParameter(0): [Parameter] x -# 1337| Type = [IntType] int -# 1340| [CopyAssignmentOperator] copy_constructor& copy_constructor::operator=(copy_constructor const&) -# 1340| <params>: +# 1384| [Constructor] void constructor_only::constructor_only(int) +# 1384| <params>: +# 1384| getParameter(0): [Parameter] x +# 1384| Type = [IntType] int +# 1387| [CopyAssignmentOperator] copy_constructor& copy_constructor::operator=(copy_constructor const&) +# 1387| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const copy_constructor & -# 1345| [Constructor] void copy_constructor::copy_constructor() -# 1345| <params>: -# 1346| [CopyConstructor] void copy_constructor::copy_constructor(copy_constructor const&) -# 1346| <params>: -# 1346| getParameter(0): [Parameter] (unnamed parameter 0) -# 1346| Type = [LValueReferenceType] const copy_constructor & -# 1348| [MemberFunction] void copy_constructor::method() -# 1348| <params>: -# 1351| [CopyAssignmentOperator] destructor_only& destructor_only::operator=(destructor_only const&) -# 1351| <params>: +# 1392| [Constructor] void copy_constructor::copy_constructor() +# 1392| <params>: +# 1393| [CopyConstructor] void copy_constructor::copy_constructor(copy_constructor const&) +# 1393| <params>: +# 1393| getParameter(0): [Parameter] (unnamed parameter 0) +# 1393| Type = [LValueReferenceType] const copy_constructor & +# 1395| [MemberFunction] void copy_constructor::method() +# 1395| <params>: +# 1398| [CopyAssignmentOperator] destructor_only& destructor_only::operator=(destructor_only const&) +# 1398| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const destructor_only & -# 1351| [Constructor] void destructor_only::destructor_only() -# 1351| <params>: -# 1353| [Destructor] void destructor_only::~destructor_only() -# 1353| <params>: -# 1355| [MemberFunction] void destructor_only::method() -# 1355| <params>: -# 1359| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<Point>(Point const&) -# 1359| <params>: -# 1359| getParameter(0): [Parameter] v -# 1359| Type = [LValueReferenceType] const Point & -# 1359| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<String>(String const&) -# 1359| <params>: -# 1359| getParameter(0): [Parameter] v -# 1359| Type = [LValueReferenceType] const String & -# 1359| [TemplateFunction,TopLevelFunction] void acceptRef<T>(T const&) -# 1359| <params>: -# 1359| getParameter(0): [Parameter] v -# 1359| Type = [LValueReferenceType] const T & -# 1359| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<copy_constructor>(copy_constructor const&) -# 1359| <params>: -# 1359| getParameter(0): [Parameter] v -# 1359| Type = [LValueReferenceType] const copy_constructor & -# 1359| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<destructor_only>(destructor_only const&) -# 1359| <params>: -# 1359| getParameter(0): [Parameter] v -# 1359| Type = [LValueReferenceType] const destructor_only & -# 1362| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<Point>(Point) -# 1362| <params>: -# 1362| getParameter(0): [Parameter] v -# 1362| Type = [Struct] Point -# 1362| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<String>(String) -# 1362| <params>: -# 1362| getParameter(0): [Parameter] v -# 1362| Type = [Struct] String -# 1362| [TemplateFunction,TopLevelFunction] void acceptValue<T>(T) -# 1362| <params>: -# 1362| getParameter(0): [Parameter] v -# 1362| Type = [TemplateParameter] T -# 1362| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<copy_constructor>(copy_constructor) -# 1362| <params>: -# 1362| getParameter(0): [Parameter] v -# 1362| Type = [Class] copy_constructor -# 1362| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<destructor_only>(destructor_only) -# 1362| <params>: -# 1362| getParameter(0): [Parameter] v -# 1362| Type = [Class] destructor_only -# 1365| [FunctionTemplateInstantiation,TopLevelFunction] POD_Derived returnValue<POD_Derived>() -# 1365| <params>: -# 1365| [FunctionTemplateInstantiation,TopLevelFunction] POD_Middle returnValue<POD_Middle>() -# 1365| <params>: -# 1365| [FunctionTemplateInstantiation,TopLevelFunction] Point returnValue<Point>() -# 1365| <params>: -# 1365| [FunctionTemplateInstantiation,TopLevelFunction] String returnValue<String>() -# 1365| <params>: -# 1365| [TemplateFunction,TopLevelFunction] T returnValue<T>() -# 1365| <params>: -# 1365| [FunctionTemplateInstantiation,TopLevelFunction] UnusualFields returnValue<UnusualFields>() -# 1365| <params>: -# 1365| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor returnValue<copy_constructor>() -# 1365| <params>: -# 1365| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only returnValue<destructor_only>() -# 1365| <params>: -# 1367| [TopLevelFunction] void temporary_string() -# 1367| <params>: -# 1367| getEntryPoint(): [BlockStmt] { ... } -# 1368| getStmt(0): [DeclStmt] declaration -# 1368| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 1368| Type = [Struct] String -# 1368| getVariable().getInitializer(): [Initializer] initializer for s -# 1368| getExpr(): [FunctionCall] call to returnValue -# 1368| Type = [Struct] String -# 1368| ValueCategory = prvalue -# 1369| getStmt(1): [DeclStmt] declaration -# 1369| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rs -# 1369| Type = [LValueReferenceType] const String & -# 1369| getVariable().getInitializer(): [Initializer] initializer for rs -# 1369| getExpr(): [FunctionCall] call to returnValue -# 1369| Type = [Struct] String -# 1369| ValueCategory = prvalue -# 1369| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1369| Type = [LValueReferenceType] const String & -# 1369| ValueCategory = prvalue -# 1369| getExpr(): [CStyleCast] (const String)... -# 1369| Conversion = [GlvalueConversion] glvalue conversion -# 1369| Type = [SpecifiedType] const String -# 1369| ValueCategory = lvalue -# 1369| getExpr(): [TemporaryObjectExpr] temporary object -# 1369| Type = [Struct] String -# 1369| ValueCategory = lvalue -# 1371| getStmt(2): [ExprStmt] ExprStmt -# 1371| getExpr(): [FunctionCall] call to acceptRef -# 1371| Type = [VoidType] void -# 1371| ValueCategory = prvalue -# 1371| getArgument(0): [VariableAccess] s -# 1371| Type = [Struct] String -# 1371| ValueCategory = lvalue -# 1371| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1371| Type = [LValueReferenceType] const String & -# 1371| ValueCategory = prvalue -# 1371| getExpr(): [CStyleCast] (const String)... -# 1371| Conversion = [GlvalueConversion] glvalue conversion -# 1371| Type = [SpecifiedType] const String -# 1371| ValueCategory = lvalue -# 1372| getStmt(3): [ExprStmt] ExprStmt -# 1372| getExpr(): [FunctionCall] call to acceptRef -# 1372| Type = [VoidType] void -# 1372| ValueCategory = prvalue -# 1372| getArgument(0): [ConstructorCall] call to String -# 1372| Type = [VoidType] void -# 1372| ValueCategory = prvalue -# 1372| getArgument(0): foo -# 1372| Type = [ArrayType] const char[4] -# 1372| Value = [StringLiteral] "foo" -# 1372| ValueCategory = lvalue -# 1372| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1372| Type = [PointerType] const char * -# 1372| ValueCategory = prvalue -# 1372| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1372| Type = [LValueReferenceType] const String & -# 1372| ValueCategory = prvalue -# 1372| getExpr(): [TemporaryObjectExpr] temporary object -# 1372| Type = [SpecifiedType] const String -# 1372| ValueCategory = lvalue -# 1373| getStmt(4): [ExprStmt] ExprStmt -# 1373| getExpr(): [FunctionCall] call to acceptValue -# 1373| Type = [VoidType] void -# 1373| ValueCategory = prvalue -# 1373| getArgument(0): [ConstructorCall] call to String -# 1373| Type = [VoidType] void -# 1373| ValueCategory = prvalue -# 1373| getArgument(0): [VariableAccess] s -# 1373| Type = [Struct] String -# 1373| ValueCategory = lvalue -# 1373| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1373| Type = [LValueReferenceType] const String & -# 1373| ValueCategory = prvalue -# 1373| getExpr(): [CStyleCast] (const String)... -# 1373| Conversion = [GlvalueConversion] glvalue conversion -# 1373| Type = [SpecifiedType] const String -# 1373| ValueCategory = lvalue -# 1373| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1373| Type = [Struct] String -# 1373| ValueCategory = lvalue -# 1374| getStmt(5): [ExprStmt] ExprStmt -# 1374| getExpr(): [FunctionCall] call to acceptValue -# 1374| Type = [VoidType] void -# 1374| ValueCategory = prvalue -# 1374| getArgument(0): [ConstructorCall] call to String -# 1374| Type = [VoidType] void -# 1374| ValueCategory = prvalue -# 1374| getArgument(0): foo -# 1374| Type = [ArrayType] const char[4] -# 1374| Value = [StringLiteral] "foo" -# 1374| ValueCategory = lvalue -# 1374| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1374| Type = [PointerType] const char * -# 1374| ValueCategory = prvalue -# 1374| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1374| Type = [Struct] String -# 1374| ValueCategory = lvalue -# 1375| getStmt(6): [ExprStmt] ExprStmt -# 1375| getExpr(): [FunctionCall] call to c_str -# 1375| Type = [PointerType] const char * -# 1375| ValueCategory = prvalue -# 1375| getQualifier(): [ConstructorCall] call to String -# 1375| Type = [VoidType] void -# 1375| ValueCategory = prvalue -# 1375| getQualifier().getFullyConverted(): [CStyleCast] (const String)... -# 1375| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion -# 1375| Type = [SpecifiedType] const String -# 1375| ValueCategory = prvalue -# 1375| getExpr(): [TemporaryObjectExpr] temporary object -# 1375| Type = [Struct] String -# 1375| ValueCategory = prvalue(load) -# 1376| getStmt(7): [ExprStmt] ExprStmt -# 1376| getExpr(): [FunctionCall] call to c_str -# 1376| Type = [PointerType] const char * -# 1376| ValueCategory = prvalue -# 1376| getQualifier(): [FunctionCall] call to returnValue -# 1376| Type = [Struct] String -# 1376| ValueCategory = prvalue -# 1376| getQualifier().getFullyConverted(): [CStyleCast] (const String)... -# 1376| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion -# 1376| Type = [SpecifiedType] const String -# 1376| ValueCategory = prvalue -# 1376| getExpr(): [TemporaryObjectExpr] temporary object -# 1376| Type = [Struct] String -# 1376| ValueCategory = prvalue(load) -# 1378| getStmt(8): [ExprStmt] ExprStmt -# 1378| getExpr(): [FunctionCall] call to defaultConstruct -# 1378| Type = [Struct] String -# 1378| ValueCategory = prvalue -# 1378| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1378| Type = [Struct] String -# 1378| ValueCategory = prvalue -# 1379| getStmt(9): [ReturnStmt] return ... -# 1379| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 1379| Type = [VoidType] void -# 1379| ValueCategory = prvalue -# 1379| getQualifier(): [VariableAccess] s -# 1379| Type = [Struct] String -# 1379| ValueCategory = lvalue -# 1381| [TopLevelFunction] void temporary_destructor_only() -# 1381| <params>: -# 1381| getEntryPoint(): [BlockStmt] { ... } -# 1382| getStmt(0): [DeclStmt] declaration -# 1382| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1382| Type = [Class] destructor_only -# 1382| getVariable().getInitializer(): [Initializer] initializer for d -# 1382| getExpr(): [FunctionCall] call to returnValue -# 1382| Type = [Class] destructor_only -# 1382| ValueCategory = prvalue -# 1383| getStmt(1): [DeclStmt] declaration -# 1383| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1383| Type = [LValueReferenceType] const destructor_only & -# 1383| getVariable().getInitializer(): [Initializer] initializer for rd -# 1383| getExpr(): [FunctionCall] call to returnValue -# 1383| Type = [Class] destructor_only -# 1383| ValueCategory = prvalue -# 1383| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1383| Type = [LValueReferenceType] const destructor_only & -# 1383| ValueCategory = prvalue -# 1383| getExpr(): [CStyleCast] (const destructor_only)... -# 1383| Conversion = [GlvalueConversion] glvalue conversion -# 1383| Type = [SpecifiedType] const destructor_only -# 1383| ValueCategory = lvalue -# 1383| getExpr(): [TemporaryObjectExpr] temporary object -# 1383| Type = [Class] destructor_only -# 1383| ValueCategory = lvalue -# 1384| getStmt(2): [DeclStmt] declaration -# 1384| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2 -# 1384| Type = [Class] destructor_only -# 1385| getStmt(3): [ExprStmt] ExprStmt -# 1385| getExpr(): [FunctionCall] call to acceptRef -# 1385| Type = [VoidType] void -# 1385| ValueCategory = prvalue -# 1385| getArgument(0): [VariableAccess] d -# 1385| Type = [Class] destructor_only -# 1385| ValueCategory = lvalue -# 1385| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1385| Type = [LValueReferenceType] const destructor_only & -# 1385| ValueCategory = prvalue -# 1385| getExpr(): [CStyleCast] (const destructor_only)... -# 1385| Conversion = [GlvalueConversion] glvalue conversion -# 1385| Type = [SpecifiedType] const destructor_only -# 1385| ValueCategory = lvalue -# 1386| getStmt(4): [ExprStmt] ExprStmt -# 1386| getExpr(): [FunctionCall] call to acceptValue -# 1386| Type = [VoidType] void -# 1386| ValueCategory = prvalue -# 1386| getArgument(0): [VariableAccess] d -# 1386| Type = [Class] destructor_only -# 1386| ValueCategory = prvalue(load) -# 1386| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1386| Type = [Class] destructor_only -# 1386| ValueCategory = lvalue -# 1387| getStmt(5): [ExprStmt] ExprStmt -# 1387| getExpr(): [FunctionCall] call to method -# 1387| Type = [VoidType] void -# 1387| ValueCategory = prvalue -# 1387| getQualifier(): [Literal] 0 -# 1387| Type = [Class] destructor_only -# 1387| Value = [Literal] 0 -# 1387| ValueCategory = prvalue -# 1387| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1387| Type = [Class] destructor_only -# 1387| ValueCategory = prvalue(load) -# 1388| getStmt(6): [ExprStmt] ExprStmt -# 1388| getExpr(): [FunctionCall] call to method -# 1388| Type = [VoidType] void -# 1388| ValueCategory = prvalue -# 1388| getQualifier(): [FunctionCall] call to returnValue -# 1388| Type = [Class] destructor_only -# 1388| ValueCategory = prvalue -# 1388| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1388| Type = [Class] destructor_only -# 1388| ValueCategory = prvalue(load) -# 1390| getStmt(7): [ExprStmt] ExprStmt -# 1390| getExpr(): [FunctionCall] call to defaultConstruct -# 1390| Type = [Class] destructor_only -# 1390| ValueCategory = prvalue -# 1390| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1390| Type = [Class] destructor_only -# 1390| ValueCategory = prvalue -# 1391| getStmt(8): [ReturnStmt] return ... -# 1391| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only -# 1391| Type = [VoidType] void -# 1391| ValueCategory = prvalue -# 1391| getQualifier(): [VariableAccess] d2 -# 1391| Type = [Class] destructor_only -# 1391| ValueCategory = lvalue -# 1391| getImplicitDestructorCall(1): [DestructorCall] call to ~destructor_only -# 1391| Type = [VoidType] void -# 1391| ValueCategory = prvalue -# 1391| getQualifier(): [VariableAccess] d -# 1391| Type = [Class] destructor_only -# 1391| ValueCategory = lvalue -# 1393| [TopLevelFunction] void temporary_copy_constructor() -# 1393| <params>: -# 1393| getEntryPoint(): [BlockStmt] { ... } -# 1394| getStmt(0): [DeclStmt] declaration -# 1394| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1394| Type = [Class] copy_constructor -# 1394| getVariable().getInitializer(): [Initializer] initializer for d -# 1394| getExpr(): [FunctionCall] call to returnValue -# 1394| Type = [Class] copy_constructor -# 1394| ValueCategory = prvalue -# 1395| getStmt(1): [DeclStmt] declaration -# 1395| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1395| Type = [LValueReferenceType] const copy_constructor & -# 1395| getVariable().getInitializer(): [Initializer] initializer for rd -# 1395| getExpr(): [FunctionCall] call to returnValue -# 1395| Type = [Class] copy_constructor -# 1395| ValueCategory = prvalue -# 1395| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1395| Type = [LValueReferenceType] const copy_constructor & -# 1395| ValueCategory = prvalue -# 1395| getExpr(): [CStyleCast] (const copy_constructor)... -# 1395| Conversion = [GlvalueConversion] glvalue conversion -# 1395| Type = [SpecifiedType] const copy_constructor -# 1395| ValueCategory = lvalue -# 1395| getExpr(): [TemporaryObjectExpr] temporary object -# 1395| Type = [Class] copy_constructor -# 1395| ValueCategory = lvalue -# 1396| getStmt(2): [DeclStmt] declaration -# 1396| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2 -# 1396| Type = [Class] copy_constructor -# 1396| getVariable().getInitializer(): [Initializer] initializer for d2 -# 1396| getExpr(): [ConstructorCall] call to copy_constructor -# 1396| Type = [VoidType] void -# 1396| ValueCategory = prvalue -# 1397| getStmt(3): [ExprStmt] ExprStmt -# 1397| getExpr(): [FunctionCall] call to acceptRef -# 1397| Type = [VoidType] void -# 1397| ValueCategory = prvalue -# 1397| getArgument(0): [VariableAccess] d -# 1397| Type = [Class] copy_constructor -# 1397| ValueCategory = lvalue -# 1397| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1397| Type = [LValueReferenceType] const copy_constructor & -# 1397| ValueCategory = prvalue -# 1397| getExpr(): [CStyleCast] (const copy_constructor)... -# 1397| Conversion = [GlvalueConversion] glvalue conversion -# 1397| Type = [SpecifiedType] const copy_constructor -# 1397| ValueCategory = lvalue -# 1398| getStmt(4): [ExprStmt] ExprStmt -# 1398| getExpr(): [FunctionCall] call to acceptValue -# 1398| Type = [VoidType] void -# 1398| ValueCategory = prvalue -# 1398| getArgument(0): [ConstructorCall] call to copy_constructor -# 1398| Type = [VoidType] void -# 1398| ValueCategory = prvalue -# 1398| getArgument(0): [VariableAccess] d -# 1398| Type = [Class] copy_constructor -# 1398| ValueCategory = lvalue -# 1398| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1398| Type = [LValueReferenceType] const copy_constructor & -# 1398| ValueCategory = prvalue -# 1398| getExpr(): [CStyleCast] (const copy_constructor)... -# 1398| Conversion = [GlvalueConversion] glvalue conversion -# 1398| Type = [SpecifiedType] const copy_constructor -# 1398| ValueCategory = lvalue -# 1398| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1398| Type = [Class] copy_constructor -# 1398| ValueCategory = lvalue -# 1399| getStmt(5): [ExprStmt] ExprStmt -# 1399| getExpr(): [FunctionCall] call to method -# 1399| Type = [VoidType] void -# 1399| ValueCategory = prvalue -# 1399| getQualifier(): [ConstructorCall] call to copy_constructor -# 1399| Type = [VoidType] void -# 1399| ValueCategory = prvalue -# 1399| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1399| Type = [Class] copy_constructor -# 1399| ValueCategory = prvalue(load) -# 1400| getStmt(6): [ExprStmt] ExprStmt -# 1400| getExpr(): [FunctionCall] call to method -# 1400| Type = [VoidType] void -# 1400| ValueCategory = prvalue -# 1400| getQualifier(): [FunctionCall] call to returnValue -# 1400| Type = [Class] copy_constructor -# 1400| ValueCategory = prvalue -# 1400| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1400| Type = [Class] copy_constructor -# 1400| ValueCategory = prvalue(load) -# 1401| getStmt(7): [ExprStmt] ExprStmt -# 1401| getExpr(): [FunctionCall] call to defaultConstruct -# 1401| Type = [Class] copy_constructor -# 1401| ValueCategory = prvalue -# 1401| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1401| Type = [Class] copy_constructor -# 1401| ValueCategory = prvalue -# 1403| getStmt(8): [DeclStmt] declaration -# 1403| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1403| Type = [IntType] int -# 1403| getVariable().getInitializer(): [Initializer] initializer for y -# 1403| getExpr(): [ValueFieldAccess] y -# 1403| Type = [IntType] int -# 1403| ValueCategory = prvalue -# 1403| getQualifier(): [FunctionCall] call to returnValue -# 1403| Type = [Class] copy_constructor -# 1403| ValueCategory = prvalue -# 1403| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1403| Type = [Class] copy_constructor -# 1403| ValueCategory = prvalue(load) -# 1404| getStmt(9): [ReturnStmt] return ... -# 1406| [TopLevelFunction] void temporary_point() +# 1398| [Constructor] void destructor_only::destructor_only() +# 1398| <params>: +# 1400| [Destructor] void destructor_only::~destructor_only() +# 1400| <params>: +# 1402| [MemberFunction] void destructor_only::method() +# 1402| <params>: +# 1406| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<Point>(Point const&) # 1406| <params>: -# 1406| getEntryPoint(): [BlockStmt] { ... } -# 1407| getStmt(0): [DeclStmt] declaration -# 1407| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p -# 1407| Type = [Struct] Point -# 1407| getVariable().getInitializer(): [Initializer] initializer for p -# 1407| getExpr(): [FunctionCall] call to returnValue -# 1407| Type = [Struct] Point -# 1407| ValueCategory = prvalue -# 1408| getStmt(1): [DeclStmt] declaration -# 1408| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rp -# 1408| Type = [LValueReferenceType] const Point & -# 1408| getVariable().getInitializer(): [Initializer] initializer for rp -# 1408| getExpr(): [FunctionCall] call to returnValue -# 1408| Type = [Struct] Point -# 1408| ValueCategory = prvalue -# 1408| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1408| Type = [LValueReferenceType] const Point & -# 1408| ValueCategory = prvalue -# 1408| getExpr(): [CStyleCast] (const Point)... -# 1408| Conversion = [GlvalueConversion] glvalue conversion -# 1408| Type = [SpecifiedType] const Point -# 1408| ValueCategory = lvalue -# 1408| getExpr(): [TemporaryObjectExpr] temporary object -# 1408| Type = [Struct] Point -# 1408| ValueCategory = lvalue -# 1410| getStmt(2): [ExprStmt] ExprStmt -# 1410| getExpr(): [FunctionCall] call to acceptRef -# 1410| Type = [VoidType] void -# 1410| ValueCategory = prvalue -# 1410| getArgument(0): [VariableAccess] p -# 1410| Type = [Struct] Point -# 1410| ValueCategory = lvalue -# 1410| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1410| Type = [LValueReferenceType] const Point & -# 1410| ValueCategory = prvalue -# 1410| getExpr(): [CStyleCast] (const Point)... -# 1410| Conversion = [GlvalueConversion] glvalue conversion -# 1410| Type = [SpecifiedType] const Point -# 1410| ValueCategory = lvalue -# 1411| getStmt(3): [ExprStmt] ExprStmt -# 1411| getExpr(): [FunctionCall] call to acceptValue -# 1411| Type = [VoidType] void -# 1411| ValueCategory = prvalue -# 1411| getArgument(0): [VariableAccess] p -# 1411| Type = [Struct] Point -# 1411| ValueCategory = prvalue(load) -# 1412| getStmt(4): [ExprStmt] ExprStmt -# 1412| getExpr(): [ValueFieldAccess] x -# 1412| Type = [IntType] int -# 1412| Value = [ValueFieldAccess] 0 -# 1412| ValueCategory = prvalue -# 1412| getQualifier(): [Literal] 0 -# 1412| Type = [Struct] Point -# 1412| Value = [Literal] 0 -# 1412| ValueCategory = prvalue -# 1412| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1412| Type = [Struct] Point -# 1412| ValueCategory = prvalue(load) -# 1413| getStmt(5): [DeclStmt] declaration -# 1413| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1413| Type = [IntType] int -# 1413| getVariable().getInitializer(): [Initializer] initializer for y -# 1413| getExpr(): [ValueFieldAccess] y -# 1413| Type = [IntType] int -# 1413| ValueCategory = prvalue -# 1413| getQualifier(): [FunctionCall] call to returnValue -# 1413| Type = [Struct] Point -# 1413| ValueCategory = prvalue -# 1415| getStmt(6): [ExprStmt] ExprStmt -# 1415| getExpr(): [FunctionCall] call to defaultConstruct -# 1415| Type = [Struct] Point -# 1415| ValueCategory = prvalue -# 1416| getStmt(7): [ReturnStmt] return ... -# 1418| [CopyAssignmentOperator] UnusualFields& UnusualFields::operator=(UnusualFields const&) -# 1418| <params>: +# 1406| getParameter(0): [Parameter] v +# 1406| Type = [LValueReferenceType] const Point & +# 1406| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<String>(String const&) +# 1406| <params>: +# 1406| getParameter(0): [Parameter] v +# 1406| Type = [LValueReferenceType] const String & +# 1406| [TemplateFunction,TopLevelFunction] void acceptRef<T>(T const&) +# 1406| <params>: +# 1406| getParameter(0): [Parameter] v +# 1406| Type = [LValueReferenceType] const T & +# 1406| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<copy_constructor>(copy_constructor const&) +# 1406| <params>: +# 1406| getParameter(0): [Parameter] v +# 1406| Type = [LValueReferenceType] const copy_constructor & +# 1406| [FunctionTemplateInstantiation,TopLevelFunction] void acceptRef<destructor_only>(destructor_only const&) +# 1406| <params>: +# 1406| getParameter(0): [Parameter] v +# 1406| Type = [LValueReferenceType] const destructor_only & +# 1409| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<Point>(Point) +# 1409| <params>: +# 1409| getParameter(0): [Parameter] v +# 1409| Type = [Struct] Point +# 1409| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<String>(String) +# 1409| <params>: +# 1409| getParameter(0): [Parameter] v +# 1409| Type = [Struct] String +# 1409| [TemplateFunction,TopLevelFunction] void acceptValue<T>(T) +# 1409| <params>: +# 1409| getParameter(0): [Parameter] v +# 1409| Type = [TemplateParameter] T +# 1409| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<copy_constructor>(copy_constructor) +# 1409| <params>: +# 1409| getParameter(0): [Parameter] v +# 1409| Type = [Class] copy_constructor +# 1409| [FunctionTemplateInstantiation,TopLevelFunction] void acceptValue<destructor_only>(destructor_only) +# 1409| <params>: +# 1409| getParameter(0): [Parameter] v +# 1409| Type = [Class] destructor_only +# 1412| [FunctionTemplateInstantiation,TopLevelFunction] POD_Derived returnValue<POD_Derived>() +# 1412| <params>: +# 1412| [FunctionTemplateInstantiation,TopLevelFunction] POD_Middle returnValue<POD_Middle>() +# 1412| <params>: +# 1412| [FunctionTemplateInstantiation,TopLevelFunction] Point returnValue<Point>() +# 1412| <params>: +# 1412| [FunctionTemplateInstantiation,TopLevelFunction] String returnValue<String>() +# 1412| <params>: +# 1412| [TemplateFunction,TopLevelFunction] T returnValue<T>() +# 1412| <params>: +# 1412| [FunctionTemplateInstantiation,TopLevelFunction] UnusualFields returnValue<UnusualFields>() +# 1412| <params>: +# 1412| [FunctionTemplateInstantiation,TopLevelFunction] copy_constructor returnValue<copy_constructor>() +# 1412| <params>: +# 1412| [FunctionTemplateInstantiation,TopLevelFunction] destructor_only returnValue<destructor_only>() +# 1412| <params>: +# 1414| [TopLevelFunction] void temporary_string() +# 1414| <params>: +# 1414| getEntryPoint(): [BlockStmt] { ... } +# 1415| getStmt(0): [DeclStmt] declaration +# 1415| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 1415| Type = [Struct] String +# 1415| getVariable().getInitializer(): [Initializer] initializer for s +# 1415| getExpr(): [FunctionCall] call to returnValue +# 1415| Type = [Struct] String +# 1415| ValueCategory = prvalue +# 1416| getStmt(1): [DeclStmt] declaration +# 1416| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rs +# 1416| Type = [LValueReferenceType] const String & +# 1416| getVariable().getInitializer(): [Initializer] initializer for rs +# 1416| getExpr(): [FunctionCall] call to returnValue +# 1416| Type = [Struct] String +# 1416| ValueCategory = prvalue +# 1416| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1416| Type = [LValueReferenceType] const String & +# 1416| ValueCategory = prvalue +# 1416| getExpr(): [CStyleCast] (const String)... +# 1416| Conversion = [GlvalueConversion] glvalue conversion +# 1416| Type = [SpecifiedType] const String +# 1416| ValueCategory = lvalue +# 1416| getExpr(): [TemporaryObjectExpr] temporary object +# 1416| Type = [Struct] String +# 1416| ValueCategory = lvalue +# 1418| getStmt(2): [ExprStmt] ExprStmt +# 1418| getExpr(): [FunctionCall] call to acceptRef +# 1418| Type = [VoidType] void +# 1418| ValueCategory = prvalue +# 1418| getArgument(0): [VariableAccess] s +# 1418| Type = [Struct] String +# 1418| ValueCategory = lvalue +# 1418| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1418| Type = [LValueReferenceType] const String & +# 1418| ValueCategory = prvalue +# 1418| getExpr(): [CStyleCast] (const String)... +# 1418| Conversion = [GlvalueConversion] glvalue conversion +# 1418| Type = [SpecifiedType] const String +# 1418| ValueCategory = lvalue +# 1419| getStmt(3): [ExprStmt] ExprStmt +# 1419| getExpr(): [FunctionCall] call to acceptRef +# 1419| Type = [VoidType] void +# 1419| ValueCategory = prvalue +# 1419| getArgument(0): [ConstructorCall] call to String +# 1419| Type = [VoidType] void +# 1419| ValueCategory = prvalue +# 1419| getArgument(0): foo +# 1419| Type = [ArrayType] const char[4] +# 1419| Value = [StringLiteral] "foo" +# 1419| ValueCategory = lvalue +# 1419| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1419| Type = [PointerType] const char * +# 1419| ValueCategory = prvalue +# 1419| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1419| Type = [LValueReferenceType] const String & +# 1419| ValueCategory = prvalue +# 1419| getExpr(): [TemporaryObjectExpr] temporary object +# 1419| Type = [SpecifiedType] const String +# 1419| ValueCategory = lvalue +# 1420| getStmt(4): [ExprStmt] ExprStmt +# 1420| getExpr(): [FunctionCall] call to acceptValue +# 1420| Type = [VoidType] void +# 1420| ValueCategory = prvalue +# 1420| getArgument(0): [ConstructorCall] call to String +# 1420| Type = [VoidType] void +# 1420| ValueCategory = prvalue +# 1420| getArgument(0): [VariableAccess] s +# 1420| Type = [Struct] String +# 1420| ValueCategory = lvalue +# 1420| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1420| Type = [LValueReferenceType] const String & +# 1420| ValueCategory = prvalue +# 1420| getExpr(): [CStyleCast] (const String)... +# 1420| Conversion = [GlvalueConversion] glvalue conversion +# 1420| Type = [SpecifiedType] const String +# 1420| ValueCategory = lvalue +# 1420| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1420| Type = [Struct] String +# 1420| ValueCategory = lvalue +# 1421| getStmt(5): [ExprStmt] ExprStmt +# 1421| getExpr(): [FunctionCall] call to acceptValue +# 1421| Type = [VoidType] void +# 1421| ValueCategory = prvalue +# 1421| getArgument(0): [ConstructorCall] call to String +# 1421| Type = [VoidType] void +# 1421| ValueCategory = prvalue +# 1421| getArgument(0): foo +# 1421| Type = [ArrayType] const char[4] +# 1421| Value = [StringLiteral] "foo" +# 1421| ValueCategory = lvalue +# 1421| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1421| Type = [PointerType] const char * +# 1421| ValueCategory = prvalue +# 1421| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1421| Type = [Struct] String +# 1421| ValueCategory = lvalue +# 1422| getStmt(6): [ExprStmt] ExprStmt +# 1422| getExpr(): [FunctionCall] call to c_str +# 1422| Type = [PointerType] const char * +# 1422| ValueCategory = prvalue +# 1422| getQualifier(): [ConstructorCall] call to String +# 1422| Type = [VoidType] void +# 1422| ValueCategory = prvalue +# 1422| getQualifier().getFullyConverted(): [CStyleCast] (const String)... +# 1422| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion +# 1422| Type = [SpecifiedType] const String +# 1422| ValueCategory = prvalue +# 1422| getExpr(): [TemporaryObjectExpr] temporary object +# 1422| Type = [Struct] String +# 1422| ValueCategory = prvalue(load) +# 1423| getStmt(7): [ExprStmt] ExprStmt +# 1423| getExpr(): [FunctionCall] call to c_str +# 1423| Type = [PointerType] const char * +# 1423| ValueCategory = prvalue +# 1423| getQualifier(): [FunctionCall] call to returnValue +# 1423| Type = [Struct] String +# 1423| ValueCategory = prvalue +# 1423| getQualifier().getFullyConverted(): [CStyleCast] (const String)... +# 1423| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion +# 1423| Type = [SpecifiedType] const String +# 1423| ValueCategory = prvalue +# 1423| getExpr(): [TemporaryObjectExpr] temporary object +# 1423| Type = [Struct] String +# 1423| ValueCategory = prvalue(load) +# 1425| getStmt(8): [ExprStmt] ExprStmt +# 1425| getExpr(): [FunctionCall] call to defaultConstruct +# 1425| Type = [Struct] String +# 1425| ValueCategory = prvalue +# 1425| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1425| Type = [Struct] String +# 1425| ValueCategory = prvalue +# 1426| getStmt(9): [ReturnStmt] return ... +# 1426| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1426| Type = [VoidType] void +# 1426| ValueCategory = prvalue +# 1426| getQualifier(): [VariableAccess] s +# 1426| Type = [Struct] String +# 1426| ValueCategory = lvalue +# 1428| [TopLevelFunction] void temporary_destructor_only() +# 1428| <params>: +# 1428| getEntryPoint(): [BlockStmt] { ... } +# 1429| getStmt(0): [DeclStmt] declaration +# 1429| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1429| Type = [Class] destructor_only +# 1429| getVariable().getInitializer(): [Initializer] initializer for d +# 1429| getExpr(): [FunctionCall] call to returnValue +# 1429| Type = [Class] destructor_only +# 1429| ValueCategory = prvalue +# 1430| getStmt(1): [DeclStmt] declaration +# 1430| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1430| Type = [LValueReferenceType] const destructor_only & +# 1430| getVariable().getInitializer(): [Initializer] initializer for rd +# 1430| getExpr(): [FunctionCall] call to returnValue +# 1430| Type = [Class] destructor_only +# 1430| ValueCategory = prvalue +# 1430| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1430| Type = [LValueReferenceType] const destructor_only & +# 1430| ValueCategory = prvalue +# 1430| getExpr(): [CStyleCast] (const destructor_only)... +# 1430| Conversion = [GlvalueConversion] glvalue conversion +# 1430| Type = [SpecifiedType] const destructor_only +# 1430| ValueCategory = lvalue +# 1430| getExpr(): [TemporaryObjectExpr] temporary object +# 1430| Type = [Class] destructor_only +# 1430| ValueCategory = lvalue +# 1431| getStmt(2): [DeclStmt] declaration +# 1431| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2 +# 1431| Type = [Class] destructor_only +# 1432| getStmt(3): [ExprStmt] ExprStmt +# 1432| getExpr(): [FunctionCall] call to acceptRef +# 1432| Type = [VoidType] void +# 1432| ValueCategory = prvalue +# 1432| getArgument(0): [VariableAccess] d +# 1432| Type = [Class] destructor_only +# 1432| ValueCategory = lvalue +# 1432| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1432| Type = [LValueReferenceType] const destructor_only & +# 1432| ValueCategory = prvalue +# 1432| getExpr(): [CStyleCast] (const destructor_only)... +# 1432| Conversion = [GlvalueConversion] glvalue conversion +# 1432| Type = [SpecifiedType] const destructor_only +# 1432| ValueCategory = lvalue +# 1433| getStmt(4): [ExprStmt] ExprStmt +# 1433| getExpr(): [FunctionCall] call to acceptValue +# 1433| Type = [VoidType] void +# 1433| ValueCategory = prvalue +# 1433| getArgument(0): [VariableAccess] d +# 1433| Type = [Class] destructor_only +# 1433| ValueCategory = prvalue(load) +# 1433| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1433| Type = [Class] destructor_only +# 1433| ValueCategory = lvalue +# 1434| getStmt(5): [ExprStmt] ExprStmt +# 1434| getExpr(): [FunctionCall] call to method +# 1434| Type = [VoidType] void +# 1434| ValueCategory = prvalue +# 1434| getQualifier(): [Literal] 0 +# 1434| Type = [Class] destructor_only +# 1434| Value = [Literal] 0 +# 1434| ValueCategory = prvalue +# 1434| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1434| Type = [Class] destructor_only +# 1434| ValueCategory = prvalue(load) +# 1435| getStmt(6): [ExprStmt] ExprStmt +# 1435| getExpr(): [FunctionCall] call to method +# 1435| Type = [VoidType] void +# 1435| ValueCategory = prvalue +# 1435| getQualifier(): [FunctionCall] call to returnValue +# 1435| Type = [Class] destructor_only +# 1435| ValueCategory = prvalue +# 1435| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1435| Type = [Class] destructor_only +# 1435| ValueCategory = prvalue(load) +# 1437| getStmt(7): [ExprStmt] ExprStmt +# 1437| getExpr(): [FunctionCall] call to defaultConstruct +# 1437| Type = [Class] destructor_only +# 1437| ValueCategory = prvalue +# 1437| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1437| Type = [Class] destructor_only +# 1437| ValueCategory = prvalue +# 1438| getStmt(8): [ReturnStmt] return ... +# 1438| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only +# 1438| Type = [VoidType] void +# 1438| ValueCategory = prvalue +# 1438| getQualifier(): [VariableAccess] d2 +# 1438| Type = [Class] destructor_only +# 1438| ValueCategory = lvalue +# 1438| getImplicitDestructorCall(1): [DestructorCall] call to ~destructor_only +# 1438| Type = [VoidType] void +# 1438| ValueCategory = prvalue +# 1438| getQualifier(): [VariableAccess] d +# 1438| Type = [Class] destructor_only +# 1438| ValueCategory = lvalue +# 1440| [TopLevelFunction] void temporary_copy_constructor() +# 1440| <params>: +# 1440| getEntryPoint(): [BlockStmt] { ... } +# 1441| getStmt(0): [DeclStmt] declaration +# 1441| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1441| Type = [Class] copy_constructor +# 1441| getVariable().getInitializer(): [Initializer] initializer for d +# 1441| getExpr(): [FunctionCall] call to returnValue +# 1441| Type = [Class] copy_constructor +# 1441| ValueCategory = prvalue +# 1442| getStmt(1): [DeclStmt] declaration +# 1442| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1442| Type = [LValueReferenceType] const copy_constructor & +# 1442| getVariable().getInitializer(): [Initializer] initializer for rd +# 1442| getExpr(): [FunctionCall] call to returnValue +# 1442| Type = [Class] copy_constructor +# 1442| ValueCategory = prvalue +# 1442| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1442| Type = [LValueReferenceType] const copy_constructor & +# 1442| ValueCategory = prvalue +# 1442| getExpr(): [CStyleCast] (const copy_constructor)... +# 1442| Conversion = [GlvalueConversion] glvalue conversion +# 1442| Type = [SpecifiedType] const copy_constructor +# 1442| ValueCategory = lvalue +# 1442| getExpr(): [TemporaryObjectExpr] temporary object +# 1442| Type = [Class] copy_constructor +# 1442| ValueCategory = lvalue +# 1443| getStmt(2): [DeclStmt] declaration +# 1443| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d2 +# 1443| Type = [Class] copy_constructor +# 1443| getVariable().getInitializer(): [Initializer] initializer for d2 +# 1443| getExpr(): [ConstructorCall] call to copy_constructor +# 1443| Type = [VoidType] void +# 1443| ValueCategory = prvalue +# 1444| getStmt(3): [ExprStmt] ExprStmt +# 1444| getExpr(): [FunctionCall] call to acceptRef +# 1444| Type = [VoidType] void +# 1444| ValueCategory = prvalue +# 1444| getArgument(0): [VariableAccess] d +# 1444| Type = [Class] copy_constructor +# 1444| ValueCategory = lvalue +# 1444| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1444| Type = [LValueReferenceType] const copy_constructor & +# 1444| ValueCategory = prvalue +# 1444| getExpr(): [CStyleCast] (const copy_constructor)... +# 1444| Conversion = [GlvalueConversion] glvalue conversion +# 1444| Type = [SpecifiedType] const copy_constructor +# 1444| ValueCategory = lvalue +# 1445| getStmt(4): [ExprStmt] ExprStmt +# 1445| getExpr(): [FunctionCall] call to acceptValue +# 1445| Type = [VoidType] void +# 1445| ValueCategory = prvalue +# 1445| getArgument(0): [ConstructorCall] call to copy_constructor +# 1445| Type = [VoidType] void +# 1445| ValueCategory = prvalue +# 1445| getArgument(0): [VariableAccess] d +# 1445| Type = [Class] copy_constructor +# 1445| ValueCategory = lvalue +# 1445| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1445| Type = [LValueReferenceType] const copy_constructor & +# 1445| ValueCategory = prvalue +# 1445| getExpr(): [CStyleCast] (const copy_constructor)... +# 1445| Conversion = [GlvalueConversion] glvalue conversion +# 1445| Type = [SpecifiedType] const copy_constructor +# 1445| ValueCategory = lvalue +# 1445| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1445| Type = [Class] copy_constructor +# 1445| ValueCategory = lvalue +# 1446| getStmt(5): [ExprStmt] ExprStmt +# 1446| getExpr(): [FunctionCall] call to method +# 1446| Type = [VoidType] void +# 1446| ValueCategory = prvalue +# 1446| getQualifier(): [ConstructorCall] call to copy_constructor +# 1446| Type = [VoidType] void +# 1446| ValueCategory = prvalue +# 1446| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1446| Type = [Class] copy_constructor +# 1446| ValueCategory = prvalue(load) +# 1447| getStmt(6): [ExprStmt] ExprStmt +# 1447| getExpr(): [FunctionCall] call to method +# 1447| Type = [VoidType] void +# 1447| ValueCategory = prvalue +# 1447| getQualifier(): [FunctionCall] call to returnValue +# 1447| Type = [Class] copy_constructor +# 1447| ValueCategory = prvalue +# 1447| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1447| Type = [Class] copy_constructor +# 1447| ValueCategory = prvalue(load) +# 1448| getStmt(7): [ExprStmt] ExprStmt +# 1448| getExpr(): [FunctionCall] call to defaultConstruct +# 1448| Type = [Class] copy_constructor +# 1448| ValueCategory = prvalue +# 1448| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1448| Type = [Class] copy_constructor +# 1448| ValueCategory = prvalue +# 1450| getStmt(8): [DeclStmt] declaration +# 1450| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1450| Type = [IntType] int +# 1450| getVariable().getInitializer(): [Initializer] initializer for y +# 1450| getExpr(): [ValueFieldAccess] y +# 1450| Type = [IntType] int +# 1450| ValueCategory = prvalue +# 1450| getQualifier(): [FunctionCall] call to returnValue +# 1450| Type = [Class] copy_constructor +# 1450| ValueCategory = prvalue +# 1450| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1450| Type = [Class] copy_constructor +# 1450| ValueCategory = prvalue(load) +# 1451| getStmt(9): [ReturnStmt] return ... +# 1453| [TopLevelFunction] void temporary_point() +# 1453| <params>: +# 1453| getEntryPoint(): [BlockStmt] { ... } +# 1454| getStmt(0): [DeclStmt] declaration +# 1454| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p +# 1454| Type = [Struct] Point +# 1454| getVariable().getInitializer(): [Initializer] initializer for p +# 1454| getExpr(): [FunctionCall] call to returnValue +# 1454| Type = [Struct] Point +# 1454| ValueCategory = prvalue +# 1455| getStmt(1): [DeclStmt] declaration +# 1455| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rp +# 1455| Type = [LValueReferenceType] const Point & +# 1455| getVariable().getInitializer(): [Initializer] initializer for rp +# 1455| getExpr(): [FunctionCall] call to returnValue +# 1455| Type = [Struct] Point +# 1455| ValueCategory = prvalue +# 1455| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1455| Type = [LValueReferenceType] const Point & +# 1455| ValueCategory = prvalue +# 1455| getExpr(): [CStyleCast] (const Point)... +# 1455| Conversion = [GlvalueConversion] glvalue conversion +# 1455| Type = [SpecifiedType] const Point +# 1455| ValueCategory = lvalue +# 1455| getExpr(): [TemporaryObjectExpr] temporary object +# 1455| Type = [Struct] Point +# 1455| ValueCategory = lvalue +# 1457| getStmt(2): [ExprStmt] ExprStmt +# 1457| getExpr(): [FunctionCall] call to acceptRef +# 1457| Type = [VoidType] void +# 1457| ValueCategory = prvalue +# 1457| getArgument(0): [VariableAccess] p +# 1457| Type = [Struct] Point +# 1457| ValueCategory = lvalue +# 1457| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1457| Type = [LValueReferenceType] const Point & +# 1457| ValueCategory = prvalue +# 1457| getExpr(): [CStyleCast] (const Point)... +# 1457| Conversion = [GlvalueConversion] glvalue conversion +# 1457| Type = [SpecifiedType] const Point +# 1457| ValueCategory = lvalue +# 1458| getStmt(3): [ExprStmt] ExprStmt +# 1458| getExpr(): [FunctionCall] call to acceptValue +# 1458| Type = [VoidType] void +# 1458| ValueCategory = prvalue +# 1458| getArgument(0): [VariableAccess] p +# 1458| Type = [Struct] Point +# 1458| ValueCategory = prvalue(load) +# 1459| getStmt(4): [ExprStmt] ExprStmt +# 1459| getExpr(): [ValueFieldAccess] x +# 1459| Type = [IntType] int +# 1459| Value = [ValueFieldAccess] 0 +# 1459| ValueCategory = prvalue +# 1459| getQualifier(): [Literal] 0 +# 1459| Type = [Struct] Point +# 1459| Value = [Literal] 0 +# 1459| ValueCategory = prvalue +# 1459| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 1459| Type = [Struct] Point +# 1459| ValueCategory = prvalue(load) +# 1460| getStmt(5): [DeclStmt] declaration +# 1460| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1460| Type = [IntType] int +# 1460| getVariable().getInitializer(): [Initializer] initializer for y +# 1460| getExpr(): [ValueFieldAccess] y +# 1460| Type = [IntType] int +# 1460| ValueCategory = prvalue +# 1460| getQualifier(): [FunctionCall] call to returnValue +# 1460| Type = [Struct] Point +# 1460| ValueCategory = prvalue +# 1462| getStmt(6): [ExprStmt] ExprStmt +# 1462| getExpr(): [FunctionCall] call to defaultConstruct +# 1462| Type = [Struct] Point +# 1462| ValueCategory = prvalue +# 1463| getStmt(7): [ReturnStmt] return ... +# 1465| [CopyAssignmentOperator] UnusualFields& UnusualFields::operator=(UnusualFields const&) +# 1465| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const UnusualFields & -# 1418| [Constructor] void UnusualFields::UnusualFields() -# 1418| <params>: -# 1418| [CopyConstructor] void UnusualFields::UnusualFields(UnusualFields const&) -# 1418| <params>: +# 1465| [Constructor] void UnusualFields::UnusualFields() +# 1465| <params>: +# 1465| [CopyConstructor] void UnusualFields::UnusualFields(UnusualFields const&) +# 1465| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const UnusualFields & -# 1418| [MoveConstructor] void UnusualFields::UnusualFields(UnusualFields&&) -# 1418| <params>: +# 1465| [MoveConstructor] void UnusualFields::UnusualFields(UnusualFields&&) +# 1465| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] UnusualFields && -# 1423| [TopLevelFunction] void temporary_unusual_fields() -# 1423| <params>: -# 1423| getEntryPoint(): [BlockStmt] { ... } -# 1424| getStmt(0): [DeclStmt] declaration -# 1424| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx -# 1424| Type = [LValueReferenceType] const int & -# 1424| getVariable().getInitializer(): [Initializer] initializer for rx -# 1424| getExpr(): [ValueFieldAccess] r -# 1424| Type = [LValueReferenceType] int & -# 1424| ValueCategory = prvalue -# 1424| getQualifier(): [FunctionCall] call to returnValue -# 1424| Type = [Struct] UnusualFields -# 1424| ValueCategory = prvalue -# 1424| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1424| Type = [LValueReferenceType] const int & -# 1424| ValueCategory = prvalue -# 1424| getExpr(): [CStyleCast] (const int)... -# 1424| Conversion = [GlvalueConversion] glvalue conversion -# 1424| Type = [SpecifiedType] const int -# 1424| ValueCategory = lvalue -# 1424| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1424| Type = [IntType] int -# 1424| ValueCategory = lvalue -# 1425| getStmt(1): [DeclStmt] declaration -# 1425| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1425| Type = [IntType] int -# 1425| getVariable().getInitializer(): [Initializer] initializer for x -# 1425| getExpr(): [ValueFieldAccess] r -# 1425| Type = [LValueReferenceType] int & -# 1425| ValueCategory = prvalue -# 1425| getQualifier(): [FunctionCall] call to returnValue -# 1425| Type = [Struct] UnusualFields -# 1425| ValueCategory = prvalue -# 1425| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1425| Type = [IntType] int -# 1425| ValueCategory = prvalue(load) -# 1427| getStmt(2): [DeclStmt] declaration -# 1427| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rf -# 1427| Type = [LValueReferenceType] const float & -# 1427| getVariable().getInitializer(): [Initializer] initializer for rf -# 1427| getExpr(): [ArrayExpr] access to array -# 1427| Type = [FloatType] float -# 1427| ValueCategory = lvalue -# 1427| getArrayBase(): [ValueFieldAccess] a -# 1427| Type = [ArrayType] float[10] -# 1427| ValueCategory = prvalue -# 1427| getQualifier(): [FunctionCall] call to returnValue -# 1427| Type = [Struct] UnusualFields -# 1427| ValueCategory = prvalue -# 1427| getArrayOffset(): [Literal] 3 -# 1427| Type = [IntType] int -# 1427| Value = [Literal] 3 -# 1427| ValueCategory = prvalue -# 1427| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1427| Type = [PointerType] float * -# 1427| ValueCategory = prvalue -# 1427| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1427| Type = [LValueReferenceType] const float & -# 1427| ValueCategory = prvalue -# 1427| getExpr(): [CStyleCast] (const float)... -# 1427| Conversion = [GlvalueConversion] glvalue conversion -# 1427| Type = [SpecifiedType] const float -# 1427| ValueCategory = lvalue -# 1428| getStmt(3): [DeclStmt] declaration -# 1428| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f -# 1428| Type = [FloatType] float -# 1428| getVariable().getInitializer(): [Initializer] initializer for f -# 1428| getExpr(): [ArrayExpr] access to array -# 1428| Type = [FloatType] float -# 1428| ValueCategory = prvalue(load) -# 1428| getArrayBase(): [ValueFieldAccess] a -# 1428| Type = [ArrayType] float[10] -# 1428| ValueCategory = prvalue -# 1428| getQualifier(): [FunctionCall] call to returnValue -# 1428| Type = [Struct] UnusualFields -# 1428| ValueCategory = prvalue -# 1428| getArrayOffset(): [Literal] 5 -# 1428| Type = [IntType] int -# 1428| Value = [Literal] 5 -# 1428| ValueCategory = prvalue -# 1428| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1428| Type = [PointerType] float * -# 1428| ValueCategory = prvalue -# 1429| getStmt(4): [ReturnStmt] return ... -# 1431| [CopyAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base const&) -# 1431| <params>: +# 1470| [TopLevelFunction] void temporary_unusual_fields() +# 1470| <params>: +# 1470| getEntryPoint(): [BlockStmt] { ... } +# 1471| getStmt(0): [DeclStmt] declaration +# 1471| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx +# 1471| Type = [LValueReferenceType] const int & +# 1471| getVariable().getInitializer(): [Initializer] initializer for rx +# 1471| getExpr(): [ValueFieldAccess] r +# 1471| Type = [LValueReferenceType] int & +# 1471| ValueCategory = prvalue +# 1471| getQualifier(): [FunctionCall] call to returnValue +# 1471| Type = [Struct] UnusualFields +# 1471| ValueCategory = prvalue +# 1471| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1471| Type = [LValueReferenceType] const int & +# 1471| ValueCategory = prvalue +# 1471| getExpr(): [CStyleCast] (const int)... +# 1471| Conversion = [GlvalueConversion] glvalue conversion +# 1471| Type = [SpecifiedType] const int +# 1471| ValueCategory = lvalue +# 1471| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1471| Type = [IntType] int +# 1471| ValueCategory = lvalue +# 1472| getStmt(1): [DeclStmt] declaration +# 1472| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1472| Type = [IntType] int +# 1472| getVariable().getInitializer(): [Initializer] initializer for x +# 1472| getExpr(): [ValueFieldAccess] r +# 1472| Type = [LValueReferenceType] int & +# 1472| ValueCategory = prvalue +# 1472| getQualifier(): [FunctionCall] call to returnValue +# 1472| Type = [Struct] UnusualFields +# 1472| ValueCategory = prvalue +# 1472| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1472| Type = [IntType] int +# 1472| ValueCategory = prvalue(load) +# 1474| getStmt(2): [DeclStmt] declaration +# 1474| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rf +# 1474| Type = [LValueReferenceType] const float & +# 1474| getVariable().getInitializer(): [Initializer] initializer for rf +# 1474| getExpr(): [ArrayExpr] access to array +# 1474| Type = [FloatType] float +# 1474| ValueCategory = lvalue +# 1474| getArrayBase(): [ValueFieldAccess] a +# 1474| Type = [ArrayType] float[10] +# 1474| ValueCategory = prvalue +# 1474| getQualifier(): [FunctionCall] call to returnValue +# 1474| Type = [Struct] UnusualFields +# 1474| ValueCategory = prvalue +# 1474| getArrayOffset(): [Literal] 3 +# 1474| Type = [IntType] int +# 1474| Value = [Literal] 3 +# 1474| ValueCategory = prvalue +# 1474| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1474| Type = [PointerType] float * +# 1474| ValueCategory = prvalue +# 1474| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1474| Type = [LValueReferenceType] const float & +# 1474| ValueCategory = prvalue +# 1474| getExpr(): [CStyleCast] (const float)... +# 1474| Conversion = [GlvalueConversion] glvalue conversion +# 1474| Type = [SpecifiedType] const float +# 1474| ValueCategory = lvalue +# 1475| getStmt(3): [DeclStmt] declaration +# 1475| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f +# 1475| Type = [FloatType] float +# 1475| getVariable().getInitializer(): [Initializer] initializer for f +# 1475| getExpr(): [ArrayExpr] access to array +# 1475| Type = [FloatType] float +# 1475| ValueCategory = prvalue(load) +# 1475| getArrayBase(): [ValueFieldAccess] a +# 1475| Type = [ArrayType] float[10] +# 1475| ValueCategory = prvalue +# 1475| getQualifier(): [FunctionCall] call to returnValue +# 1475| Type = [Struct] UnusualFields +# 1475| ValueCategory = prvalue +# 1475| getArrayOffset(): [Literal] 5 +# 1475| Type = [IntType] int +# 1475| Value = [Literal] 5 +# 1475| ValueCategory = prvalue +# 1475| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1475| Type = [PointerType] float * +# 1475| ValueCategory = prvalue +# 1476| getStmt(4): [ReturnStmt] return ... +# 1478| [CopyAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base const&) +# 1478| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const POD_Base & -# 1431| [MoveAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base&&) -# 1431| <params>: +# 1478| [MoveAssignmentOperator] POD_Base& POD_Base::operator=(POD_Base&&) +# 1478| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] POD_Base && -# 1434| [ConstMemberFunction] float POD_Base::f() const -# 1434| <params>: -# 1437| [CopyAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle const&) -# 1437| <params>: +# 1481| [ConstMemberFunction] float POD_Base::f() const +# 1481| <params>: +# 1484| [CopyAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle const&) +# 1484| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const POD_Middle & -# 1437| [MoveAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle&&) -# 1437| <params>: +# 1484| [MoveAssignmentOperator] POD_Middle& POD_Middle::operator=(POD_Middle&&) +# 1484| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] POD_Middle && -# 1437| [Constructor] void POD_Middle::POD_Middle() -# 1437| <params>: -# 1441| [CopyAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived const&) -# 1441| <params>: +# 1484| [Constructor] void POD_Middle::POD_Middle() +# 1484| <params>: +# 1488| [CopyAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived const&) +# 1488| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const POD_Derived & -# 1441| [MoveAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived&&) -# 1441| <params>: +# 1488| [MoveAssignmentOperator] POD_Derived& POD_Derived::operator=(POD_Derived&&) +# 1488| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] POD_Derived && -# 1441| [Constructor] void POD_Derived::POD_Derived() -# 1441| <params>: -# 1445| [TopLevelFunction] void temporary_hierarchy() -# 1445| <params>: -# 1445| getEntryPoint(): [BlockStmt] { ... } -# 1446| getStmt(0): [DeclStmt] declaration -# 1446| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1446| Type = [Struct] POD_Base -# 1446| getVariable().getInitializer(): [Initializer] initializer for b -# 1446| getExpr(): [FunctionCall] call to returnValue -# 1446| Type = [Struct] POD_Middle -# 1446| ValueCategory = prvalue +# 1488| [Constructor] void POD_Derived::POD_Derived() +# 1488| <params>: +# 1492| [TopLevelFunction] void temporary_hierarchy() +# 1492| <params>: +# 1492| getEntryPoint(): [BlockStmt] { ... } +# 1493| getStmt(0): [DeclStmt] declaration +# 1493| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1493| Type = [Struct] POD_Base +# 1493| getVariable().getInitializer(): [Initializer] initializer for b +# 1493| getExpr(): [FunctionCall] call to returnValue +# 1493| Type = [Struct] POD_Middle +# 1493| ValueCategory = prvalue #-----| getExpr().getFullyConverted(): [CStyleCast] (POD_Base)... #-----| Conversion = [BaseClassConversion] base class conversion #-----| Type = [Struct] POD_Base @@ -12052,40 +12170,40 @@ ir.cpp: #-----| getExpr(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] POD_Middle #-----| ValueCategory = xvalue -# 1447| getStmt(1): [ExprStmt] ExprStmt -# 1447| getExpr(): [AssignExpr] ... = ... -# 1447| Type = [Struct] POD_Base -# 1447| ValueCategory = lvalue -# 1447| getLValue(): [VariableAccess] b -# 1447| Type = [Struct] POD_Base -# 1447| ValueCategory = lvalue -# 1447| getRValue(): [FunctionCall] call to returnValue -# 1447| Type = [Struct] POD_Derived -# 1447| ValueCategory = prvalue -# 1447| getRValue().getFullyConverted(): [CStyleCast] (POD_Base)... -# 1447| Conversion = [BaseClassConversion] base class conversion -# 1447| Type = [Struct] POD_Base -# 1447| ValueCategory = prvalue(load) -# 1447| getExpr(): [CStyleCast] (POD_Middle)... -# 1447| Conversion = [BaseClassConversion] base class conversion -# 1447| Type = [Struct] POD_Middle -# 1447| ValueCategory = lvalue -# 1447| getExpr(): [TemporaryObjectExpr] temporary object -# 1447| Type = [Struct] POD_Derived -# 1447| ValueCategory = lvalue -# 1447| getExpr(): [ParenthesisExpr] (...) -# 1447| Type = [Struct] POD_Derived -# 1447| ValueCategory = prvalue -# 1448| getStmt(2): [DeclStmt] declaration -# 1448| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1448| Type = [IntType] int -# 1448| getVariable().getInitializer(): [Initializer] initializer for x -# 1448| getExpr(): [ValueFieldAccess] x -# 1448| Type = [IntType] int -# 1448| ValueCategory = prvalue(load) -# 1448| getQualifier(): [FunctionCall] call to returnValue -# 1448| Type = [Struct] POD_Derived -# 1448| ValueCategory = prvalue +# 1494| getStmt(1): [ExprStmt] ExprStmt +# 1494| getExpr(): [AssignExpr] ... = ... +# 1494| Type = [Struct] POD_Base +# 1494| ValueCategory = lvalue +# 1494| getLValue(): [VariableAccess] b +# 1494| Type = [Struct] POD_Base +# 1494| ValueCategory = lvalue +# 1494| getRValue(): [FunctionCall] call to returnValue +# 1494| Type = [Struct] POD_Derived +# 1494| ValueCategory = prvalue +# 1494| getRValue().getFullyConverted(): [CStyleCast] (POD_Base)... +# 1494| Conversion = [BaseClassConversion] base class conversion +# 1494| Type = [Struct] POD_Base +# 1494| ValueCategory = prvalue(load) +# 1494| getExpr(): [CStyleCast] (POD_Middle)... +# 1494| Conversion = [BaseClassConversion] base class conversion +# 1494| Type = [Struct] POD_Middle +# 1494| ValueCategory = lvalue +# 1494| getExpr(): [TemporaryObjectExpr] temporary object +# 1494| Type = [Struct] POD_Derived +# 1494| ValueCategory = lvalue +# 1494| getExpr(): [ParenthesisExpr] (...) +# 1494| Type = [Struct] POD_Derived +# 1494| ValueCategory = prvalue +# 1495| getStmt(2): [DeclStmt] declaration +# 1495| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1495| Type = [IntType] int +# 1495| getVariable().getInitializer(): [Initializer] initializer for x +# 1495| getExpr(): [ValueFieldAccess] x +# 1495| Type = [IntType] int +# 1495| ValueCategory = prvalue(load) +# 1495| getQualifier(): [FunctionCall] call to returnValue +# 1495| Type = [Struct] POD_Derived +# 1495| ValueCategory = prvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (POD_Base)... #-----| Conversion = [BaseClassConversion] base class conversion #-----| Type = [Struct] POD_Base @@ -12097,16 +12215,16 @@ ir.cpp: #-----| getExpr(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] POD_Derived #-----| ValueCategory = xvalue -# 1449| getStmt(3): [DeclStmt] declaration -# 1449| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f -# 1449| Type = [FloatType] float -# 1449| getVariable().getInitializer(): [Initializer] initializer for f -# 1449| getExpr(): [FunctionCall] call to f -# 1449| Type = [FloatType] float -# 1449| ValueCategory = prvalue -# 1449| getQualifier(): [FunctionCall] call to returnValue -# 1449| Type = [Struct] POD_Derived -# 1449| ValueCategory = prvalue +# 1496| getStmt(3): [DeclStmt] declaration +# 1496| getDeclarationEntry(0): [VariableDeclarationEntry] definition of f +# 1496| Type = [FloatType] float +# 1496| getVariable().getInitializer(): [Initializer] initializer for f +# 1496| getExpr(): [FunctionCall] call to f +# 1496| Type = [FloatType] float +# 1496| ValueCategory = prvalue +# 1496| getQualifier(): [FunctionCall] call to returnValue +# 1496| Type = [Struct] POD_Derived +# 1496| ValueCategory = prvalue #-----| getQualifier().getFullyConverted(): [CStyleCast] (const POD_Base)... #-----| Conversion = [GlvalueConversion] glvalue conversion #-----| Type = [SpecifiedType] const POD_Base @@ -12122,99 +12240,99 @@ ir.cpp: #-----| getExpr(): [TemporaryObjectExpr] temporary object #-----| Type = [Struct] POD_Derived #-----| ValueCategory = xvalue -# 1449| getExpr(): [ParenthesisExpr] (...) -# 1449| Type = [Struct] POD_Derived -# 1449| ValueCategory = prvalue -# 1450| getStmt(4): [ReturnStmt] return ... -# 1452| [CopyAssignmentOperator] Inheritance_Test_B& Inheritance_Test_B::operator=(Inheritance_Test_B const&) -# 1452| <params>: +# 1496| getExpr(): [ParenthesisExpr] (...) +# 1496| Type = [Struct] POD_Derived +# 1496| ValueCategory = prvalue +# 1497| getStmt(4): [ReturnStmt] return ... +# 1499| [CopyAssignmentOperator] Inheritance_Test_B& Inheritance_Test_B::operator=(Inheritance_Test_B const&) +# 1499| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Inheritance_Test_B & -# 1452| [Constructor] void Inheritance_Test_B::Inheritance_Test_B() -# 1452| <params>: -# 1453| [Destructor] void Inheritance_Test_B::~Inheritance_Test_B() -# 1453| <params>: -# 1453| getEntryPoint(): [BlockStmt] { ... } -# 1453| getStmt(0): [ReturnStmt] return ... -# 1453| <destructions>: -# 1456| [CopyAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A const&) -# 1456| <params>: +# 1499| [Constructor] void Inheritance_Test_B::Inheritance_Test_B() +# 1499| <params>: +# 1500| [Destructor] void Inheritance_Test_B::~Inheritance_Test_B() +# 1500| <params>: +# 1500| getEntryPoint(): [BlockStmt] { ... } +# 1500| getStmt(0): [ReturnStmt] return ... +# 1500| <destructions>: +# 1503| [CopyAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A const&) +# 1503| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Inheritance_Test_A & -# 1456| [MoveAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A&&) -# 1456| <params>: +# 1503| [MoveAssignmentOperator] Inheritance_Test_A& Inheritance_Test_A::operator=(Inheritance_Test_A&&) +# 1503| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] Inheritance_Test_A && -# 1456| [CopyConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A const&) -# 1456| <params>: +# 1503| [CopyConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A const&) +# 1503| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Inheritance_Test_A & -# 1456| [MoveConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A&&) -# 1456| <params>: +# 1503| [MoveConstructor] void Inheritance_Test_A::Inheritance_Test_A(Inheritance_Test_A&&) +# 1503| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] Inheritance_Test_A && -# 1456| [Destructor] void Inheritance_Test_A::~Inheritance_Test_A() -# 1456| <params>: -# 1459| [Constructor] void Inheritance_Test_A::Inheritance_Test_A() -# 1459| <params>: -# 1459| <initializations>: -# 1459| getInitializer(0): (no string representation) -# 1459| Type = [Struct] Inheritance_Test_B -# 1459| ValueCategory = prvalue -# 1459| getInitializer(1): [ConstructorFieldInit] constructor init of field x -# 1459| Type = [IntType] int -# 1459| ValueCategory = prvalue -# 1459| getExpr(): [Literal] 42 -# 1459| Type = [IntType] int -# 1459| Value = [Literal] 42 -# 1459| ValueCategory = prvalue -# 1459| getEntryPoint(): [BlockStmt] { ... } -# 1460| getStmt(0): [ExprStmt] ExprStmt -# 1460| getExpr(): [AssignExpr] ... = ... -# 1460| Type = [IntType] int -# 1460| ValueCategory = lvalue -# 1460| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] y -# 1460| Type = [IntType] int -# 1460| ValueCategory = lvalue -# 1460| getQualifier(): [ThisExpr] this -# 1460| Type = [PointerType] Inheritance_Test_A * -# 1460| ValueCategory = prvalue(load) -# 1460| getRValue(): [Literal] 3 -# 1460| Type = [IntType] int -# 1460| Value = [Literal] 3 -# 1460| ValueCategory = prvalue -# 1461| getStmt(1): [ReturnStmt] return ... -# 1464| [TopLevelFunction] void array_structured_binding() -# 1464| <params>: -# 1464| getEntryPoint(): [BlockStmt] { ... } -# 1465| getStmt(0): [DeclStmt] declaration -# 1465| getDeclarationEntry(0): [VariableDeclarationEntry] definition of xs -# 1465| Type = [ArrayType] int[2] -# 1465| getVariable().getInitializer(): [Initializer] initializer for xs -# 1465| getExpr(): [ArrayAggregateLiteral] {...} -# 1465| Type = [ArrayType] int[2] -# 1465| ValueCategory = prvalue -# 1465| getAnElementExpr(0): [Literal] 1 -# 1465| Type = [IntType] int -# 1465| Value = [Literal] 1 -# 1465| ValueCategory = prvalue -# 1465| getAnElementExpr(1): [Literal] 2 -# 1465| Type = [IntType] int -# 1465| Value = [Literal] 2 -# 1465| ValueCategory = prvalue -# 1467| getStmt(1): [BlockStmt] { ... } -# 1468| getStmt(0): [DeclStmt] declaration -# 1468| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1468| Type = [LValueReferenceType] int(&)[2] -# 1468| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1468| getExpr(): [VariableAccess] xs -# 1468| Type = [ArrayType] int[2] -# 1468| ValueCategory = lvalue -# 1468| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1468| Type = [LValueReferenceType] int(&)[2] -# 1468| ValueCategory = prvalue -# 1468| getDeclarationEntry(1): [VariableDeclarationEntry] definition of x0 -# 1468| Type = [IntType] int +# 1503| [Destructor] void Inheritance_Test_A::~Inheritance_Test_A() +# 1503| <params>: +# 1506| [Constructor] void Inheritance_Test_A::Inheritance_Test_A() +# 1506| <params>: +# 1506| <initializations>: +# 1506| getInitializer(0): (no string representation) +# 1506| Type = [Struct] Inheritance_Test_B +# 1506| ValueCategory = prvalue +# 1506| getInitializer(1): [ConstructorFieldInit] constructor init of field x +# 1506| Type = [IntType] int +# 1506| ValueCategory = prvalue +# 1506| getExpr(): [Literal] 42 +# 1506| Type = [IntType] int +# 1506| Value = [Literal] 42 +# 1506| ValueCategory = prvalue +# 1506| getEntryPoint(): [BlockStmt] { ... } +# 1507| getStmt(0): [ExprStmt] ExprStmt +# 1507| getExpr(): [AssignExpr] ... = ... +# 1507| Type = [IntType] int +# 1507| ValueCategory = lvalue +# 1507| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] y +# 1507| Type = [IntType] int +# 1507| ValueCategory = lvalue +# 1507| getQualifier(): [ThisExpr] this +# 1507| Type = [PointerType] Inheritance_Test_A * +# 1507| ValueCategory = prvalue(load) +# 1507| getRValue(): [Literal] 3 +# 1507| Type = [IntType] int +# 1507| Value = [Literal] 3 +# 1507| ValueCategory = prvalue +# 1508| getStmt(1): [ReturnStmt] return ... +# 1511| [TopLevelFunction] void array_structured_binding() +# 1511| <params>: +# 1511| getEntryPoint(): [BlockStmt] { ... } +# 1512| getStmt(0): [DeclStmt] declaration +# 1512| getDeclarationEntry(0): [VariableDeclarationEntry] definition of xs +# 1512| Type = [ArrayType] int[2] +# 1512| getVariable().getInitializer(): [Initializer] initializer for xs +# 1512| getExpr(): [ArrayAggregateLiteral] {...} +# 1512| Type = [ArrayType] int[2] +# 1512| ValueCategory = prvalue +# 1512| getAnElementExpr(0): [Literal] 1 +# 1512| Type = [IntType] int +# 1512| Value = [Literal] 1 +# 1512| ValueCategory = prvalue +# 1512| getAnElementExpr(1): [Literal] 2 +# 1512| Type = [IntType] int +# 1512| Value = [Literal] 2 +# 1512| ValueCategory = prvalue +# 1514| getStmt(1): [BlockStmt] { ... } +# 1515| getStmt(0): [DeclStmt] declaration +# 1515| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1515| Type = [LValueReferenceType] int(&)[2] +# 1515| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1515| getExpr(): [VariableAccess] xs +# 1515| Type = [ArrayType] int[2] +# 1515| ValueCategory = lvalue +# 1515| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1515| Type = [LValueReferenceType] int(&)[2] +# 1515| ValueCategory = prvalue +# 1515| getDeclarationEntry(1): [VariableDeclarationEntry] definition of x0 +# 1515| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for x0 #-----| getExpr(): [ArrayExpr] access to array #-----| Type = [IntType] int @@ -12232,8 +12350,8 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ArrayType] int[2] #-----| ValueCategory = lvalue -# 1468| getDeclarationEntry(2): [VariableDeclarationEntry] definition of x1 -# 1468| Type = [IntType] int +# 1515| getDeclarationEntry(2): [VariableDeclarationEntry] definition of x1 +# 1515| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for x1 #-----| getExpr(): [ArrayExpr] access to array #-----| Type = [IntType] int @@ -12251,1462 +12369,1462 @@ ir.cpp: #-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [ArrayType] int[2] #-----| ValueCategory = lvalue -# 1469| getStmt(1): [ExprStmt] ExprStmt -# 1469| getExpr(): [AssignExpr] ... = ... -# 1469| Type = [IntType] int -# 1469| ValueCategory = lvalue -# 1469| getLValue(): [VariableAccess] x1 -# 1469| Type = [IntType] int -# 1469| ValueCategory = lvalue -# 1469| getRValue(): [Literal] 3 -# 1469| Type = [IntType] int -# 1469| Value = [Literal] 3 -# 1469| ValueCategory = prvalue -# 1470| getStmt(2): [DeclStmt] declaration -# 1470| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx1 -# 1470| Type = [LValueReferenceType] int & -# 1470| getVariable().getInitializer(): [Initializer] initializer for rx1 -# 1470| getExpr(): [VariableAccess] x1 -# 1470| Type = [IntType] int -# 1470| ValueCategory = lvalue -# 1470| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1470| Type = [LValueReferenceType] int & -# 1470| ValueCategory = prvalue -# 1471| getStmt(3): [DeclStmt] declaration -# 1471| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1471| Type = [IntType] int -# 1471| getVariable().getInitializer(): [Initializer] initializer for x -# 1471| getExpr(): [VariableAccess] x1 -# 1471| Type = [IntType] int -# 1471| ValueCategory = prvalue(load) -# 1474| getStmt(2): [BlockStmt] { ... } -# 1475| getStmt(0): [DeclStmt] declaration -# 1475| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable -# 1475| Type = [LValueReferenceType] int(&)[2] -# 1475| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable -# 1475| getExpr(): [VariableAccess] xs -# 1475| Type = [ArrayType] int[2] -# 1475| ValueCategory = lvalue -# 1475| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1475| Type = [LValueReferenceType] int(&)[2] -# 1475| ValueCategory = prvalue -# 1476| getStmt(1): [DeclStmt] declaration -# 1476| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x0 -# 1476| Type = [LValueReferenceType] int & -# 1476| getVariable().getInitializer(): [Initializer] initializer for x0 -# 1476| getExpr(): [ArrayExpr] access to array -# 1476| Type = [IntType] int -# 1476| ValueCategory = lvalue -# 1476| getArrayBase(): [VariableAccess] unnamed_local_variable -# 1476| Type = [LValueReferenceType] int(&)[2] -# 1476| ValueCategory = prvalue(load) -# 1476| getArrayOffset(): [Literal] 0 -# 1476| Type = [IntType] int -# 1476| Value = [Literal] 0 -# 1476| ValueCategory = prvalue -# 1476| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1476| Type = [IntPointerType] int * -# 1476| ValueCategory = prvalue -# 1476| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1476| Type = [ArrayType] int[2] -# 1476| ValueCategory = lvalue -# 1476| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1476| Type = [LValueReferenceType] int & -# 1476| ValueCategory = prvalue -# 1477| getStmt(2): [DeclStmt] declaration -# 1477| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1 -# 1477| Type = [LValueReferenceType] int & -# 1477| getVariable().getInitializer(): [Initializer] initializer for x1 -# 1477| getExpr(): [ArrayExpr] access to array -# 1477| Type = [IntType] int -# 1477| ValueCategory = lvalue -# 1477| getArrayBase(): [VariableAccess] unnamed_local_variable -# 1477| Type = [LValueReferenceType] int(&)[2] -# 1477| ValueCategory = prvalue(load) -# 1477| getArrayOffset(): [Literal] 1 -# 1477| Type = [IntType] int -# 1477| Value = [Literal] 1 -# 1477| ValueCategory = prvalue -# 1477| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1477| Type = [IntPointerType] int * -# 1477| ValueCategory = prvalue -# 1477| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1477| Type = [ArrayType] int[2] -# 1477| ValueCategory = lvalue -# 1477| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1477| Type = [LValueReferenceType] int & -# 1477| ValueCategory = prvalue -# 1478| getStmt(3): [ExprStmt] ExprStmt -# 1478| getExpr(): [AssignExpr] ... = ... -# 1478| Type = [IntType] int -# 1478| ValueCategory = lvalue -# 1478| getLValue(): [VariableAccess] x1 -# 1478| Type = [LValueReferenceType] int & -# 1478| ValueCategory = prvalue(load) -# 1478| getRValue(): [Literal] 3 -# 1478| Type = [IntType] int -# 1478| Value = [Literal] 3 -# 1478| ValueCategory = prvalue -# 1478| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1478| Type = [IntType] int -# 1478| ValueCategory = lvalue -# 1479| getStmt(4): [DeclStmt] declaration -# 1479| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx1 -# 1479| Type = [LValueReferenceType] int & -# 1479| getVariable().getInitializer(): [Initializer] initializer for rx1 -# 1479| getExpr(): [VariableAccess] x1 -# 1479| Type = [LValueReferenceType] int & -# 1479| ValueCategory = prvalue(load) -# 1479| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1479| Type = [LValueReferenceType] int & -# 1479| ValueCategory = prvalue -# 1479| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1479| Type = [IntType] int -# 1479| ValueCategory = lvalue -# 1480| getStmt(5): [DeclStmt] declaration -# 1480| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1480| Type = [IntType] int -# 1480| getVariable().getInitializer(): [Initializer] initializer for x -# 1480| getExpr(): [VariableAccess] x1 -# 1480| Type = [LValueReferenceType] int & -# 1480| ValueCategory = prvalue(load) -# 1480| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1480| Type = [IntType] int -# 1480| ValueCategory = prvalue(load) -# 1482| getStmt(3): [ReturnStmt] return ... -# 1484| [CopyAssignmentOperator] StructuredBindingDataMemberMemberStruct& StructuredBindingDataMemberMemberStruct::operator=(StructuredBindingDataMemberMemberStruct const&) -# 1484| <params>: +# 1516| getStmt(1): [ExprStmt] ExprStmt +# 1516| getExpr(): [AssignExpr] ... = ... +# 1516| Type = [IntType] int +# 1516| ValueCategory = lvalue +# 1516| getLValue(): [VariableAccess] x1 +# 1516| Type = [IntType] int +# 1516| ValueCategory = lvalue +# 1516| getRValue(): [Literal] 3 +# 1516| Type = [IntType] int +# 1516| Value = [Literal] 3 +# 1516| ValueCategory = prvalue +# 1517| getStmt(2): [DeclStmt] declaration +# 1517| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx1 +# 1517| Type = [LValueReferenceType] int & +# 1517| getVariable().getInitializer(): [Initializer] initializer for rx1 +# 1517| getExpr(): [VariableAccess] x1 +# 1517| Type = [IntType] int +# 1517| ValueCategory = lvalue +# 1517| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1517| Type = [LValueReferenceType] int & +# 1517| ValueCategory = prvalue +# 1518| getStmt(3): [DeclStmt] declaration +# 1518| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1518| Type = [IntType] int +# 1518| getVariable().getInitializer(): [Initializer] initializer for x +# 1518| getExpr(): [VariableAccess] x1 +# 1518| Type = [IntType] int +# 1518| ValueCategory = prvalue(load) +# 1521| getStmt(2): [BlockStmt] { ... } +# 1522| getStmt(0): [DeclStmt] declaration +# 1522| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable +# 1522| Type = [LValueReferenceType] int(&)[2] +# 1522| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable +# 1522| getExpr(): [VariableAccess] xs +# 1522| Type = [ArrayType] int[2] +# 1522| ValueCategory = lvalue +# 1522| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1522| Type = [LValueReferenceType] int(&)[2] +# 1522| ValueCategory = prvalue +# 1523| getStmt(1): [DeclStmt] declaration +# 1523| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x0 +# 1523| Type = [LValueReferenceType] int & +# 1523| getVariable().getInitializer(): [Initializer] initializer for x0 +# 1523| getExpr(): [ArrayExpr] access to array +# 1523| Type = [IntType] int +# 1523| ValueCategory = lvalue +# 1523| getArrayBase(): [VariableAccess] unnamed_local_variable +# 1523| Type = [LValueReferenceType] int(&)[2] +# 1523| ValueCategory = prvalue(load) +# 1523| getArrayOffset(): [Literal] 0 +# 1523| Type = [IntType] int +# 1523| Value = [Literal] 0 +# 1523| ValueCategory = prvalue +# 1523| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1523| Type = [IntPointerType] int * +# 1523| ValueCategory = prvalue +# 1523| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1523| Type = [ArrayType] int[2] +# 1523| ValueCategory = lvalue +# 1523| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1523| Type = [LValueReferenceType] int & +# 1523| ValueCategory = prvalue +# 1524| getStmt(2): [DeclStmt] declaration +# 1524| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1 +# 1524| Type = [LValueReferenceType] int & +# 1524| getVariable().getInitializer(): [Initializer] initializer for x1 +# 1524| getExpr(): [ArrayExpr] access to array +# 1524| Type = [IntType] int +# 1524| ValueCategory = lvalue +# 1524| getArrayBase(): [VariableAccess] unnamed_local_variable +# 1524| Type = [LValueReferenceType] int(&)[2] +# 1524| ValueCategory = prvalue(load) +# 1524| getArrayOffset(): [Literal] 1 +# 1524| Type = [IntType] int +# 1524| Value = [Literal] 1 +# 1524| ValueCategory = prvalue +# 1524| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1524| Type = [IntPointerType] int * +# 1524| ValueCategory = prvalue +# 1524| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1524| Type = [ArrayType] int[2] +# 1524| ValueCategory = lvalue +# 1524| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1524| Type = [LValueReferenceType] int & +# 1524| ValueCategory = prvalue +# 1525| getStmt(3): [ExprStmt] ExprStmt +# 1525| getExpr(): [AssignExpr] ... = ... +# 1525| Type = [IntType] int +# 1525| ValueCategory = lvalue +# 1525| getLValue(): [VariableAccess] x1 +# 1525| Type = [LValueReferenceType] int & +# 1525| ValueCategory = prvalue(load) +# 1525| getRValue(): [Literal] 3 +# 1525| Type = [IntType] int +# 1525| Value = [Literal] 3 +# 1525| ValueCategory = prvalue +# 1525| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1525| Type = [IntType] int +# 1525| ValueCategory = lvalue +# 1526| getStmt(4): [DeclStmt] declaration +# 1526| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rx1 +# 1526| Type = [LValueReferenceType] int & +# 1526| getVariable().getInitializer(): [Initializer] initializer for rx1 +# 1526| getExpr(): [VariableAccess] x1 +# 1526| Type = [LValueReferenceType] int & +# 1526| ValueCategory = prvalue(load) +# 1526| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1526| Type = [LValueReferenceType] int & +# 1526| ValueCategory = prvalue +# 1526| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1526| Type = [IntType] int +# 1526| ValueCategory = lvalue +# 1527| getStmt(5): [DeclStmt] declaration +# 1527| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1527| Type = [IntType] int +# 1527| getVariable().getInitializer(): [Initializer] initializer for x +# 1527| getExpr(): [VariableAccess] x1 +# 1527| Type = [LValueReferenceType] int & +# 1527| ValueCategory = prvalue(load) +# 1527| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1527| Type = [IntType] int +# 1527| ValueCategory = prvalue(load) +# 1529| getStmt(3): [ReturnStmt] return ... +# 1531| [CopyAssignmentOperator] StructuredBindingDataMemberMemberStruct& StructuredBindingDataMemberMemberStruct::operator=(StructuredBindingDataMemberMemberStruct const&) +# 1531| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingDataMemberMemberStruct & -# 1484| [MoveAssignmentOperator] StructuredBindingDataMemberMemberStruct& StructuredBindingDataMemberMemberStruct::operator=(StructuredBindingDataMemberMemberStruct&&) -# 1484| <params>: +# 1531| [MoveAssignmentOperator] StructuredBindingDataMemberMemberStruct& StructuredBindingDataMemberMemberStruct::operator=(StructuredBindingDataMemberMemberStruct&&) +# 1531| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingDataMemberMemberStruct && -# 1484| [Constructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() -# 1484| <params>: -# 1484| <initializations>: -# 1484| getInitializer(0): [ConstructorFieldInit] constructor init of field x -# 1484| Type = [IntType] int -# 1484| ValueCategory = prvalue -# 1484| getEntryPoint(): [BlockStmt] { ... } -# 1484| getStmt(0): [ReturnStmt] return ... -# 1484| [CopyConstructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct(StructuredBindingDataMemberMemberStruct const&) -# 1484| <params>: +# 1531| [Constructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() +# 1531| <params>: +# 1531| <initializations>: +# 1531| getInitializer(0): [ConstructorFieldInit] constructor init of field x +# 1531| Type = [IntType] int +# 1531| ValueCategory = prvalue +# 1531| getEntryPoint(): [BlockStmt] { ... } +# 1531| getStmt(0): [ReturnStmt] return ... +# 1531| [CopyConstructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct(StructuredBindingDataMemberMemberStruct const&) +# 1531| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingDataMemberMemberStruct & -# 1484| [MoveConstructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct(StructuredBindingDataMemberMemberStruct&&) -# 1484| <params>: +# 1531| [MoveConstructor] void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct(StructuredBindingDataMemberMemberStruct&&) +# 1531| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingDataMemberMemberStruct && -# 1488| [CopyAssignmentOperator] StructuredBindingDataMemberStruct& StructuredBindingDataMemberStruct::operator=(StructuredBindingDataMemberStruct const&) -# 1488| <params>: +# 1535| [CopyAssignmentOperator] StructuredBindingDataMemberStruct& StructuredBindingDataMemberStruct::operator=(StructuredBindingDataMemberStruct const&) +# 1535| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| [Constructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() -# 1488| <params>: -# 1488| <initializations>: -# 1488| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1488| Type = [IntType] int -# 1488| ValueCategory = prvalue -# 1488| getInitializer(1): [ConstructorFieldInit] constructor init of field d -# 1488| Type = [DoubleType] double -# 1488| ValueCategory = prvalue -# 1488| getInitializer(2): [ConstructorFieldInit] constructor init of field r -# 1488| Type = [LValueReferenceType] int & -# 1488| ValueCategory = prvalue -# 1488| getInitializer(3): [ConstructorFieldInit] constructor init of field p -# 1488| Type = [IntPointerType] int * -# 1488| ValueCategory = prvalue -# 1488| getInitializer(4): [ConstructorFieldInit] constructor init of field xs -# 1488| Type = [CTypedefType,NestedTypedefType] ArrayType -# 1488| ValueCategory = prvalue -# 1488| getInitializer(5): [ConstructorFieldInit] constructor init of field r_alt -# 1488| Type = [CTypedefType,NestedTypedefType] RefType -# 1488| ValueCategory = prvalue -# 1488| getInitializer(6): [ConstructorFieldInit] constructor init of field m -# 1488| Type = [Struct] StructuredBindingDataMemberMemberStruct -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberMemberStruct -# 1488| Type = [VoidType] void -# 1488| ValueCategory = prvalue -# 1488| getEntryPoint(): [BlockStmt] { ... } -# 1488| getStmt(0): [ReturnStmt] return ... -# 1488| [CopyConstructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) -# 1488| <params>: +# 1535| [Constructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() +# 1535| <params>: +# 1535| <initializations>: +# 1535| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1535| Type = [IntType] int +# 1535| ValueCategory = prvalue +# 1535| getInitializer(1): [ConstructorFieldInit] constructor init of field d +# 1535| Type = [DoubleType] double +# 1535| ValueCategory = prvalue +# 1535| getInitializer(2): [ConstructorFieldInit] constructor init of field r +# 1535| Type = [LValueReferenceType] int & +# 1535| ValueCategory = prvalue +# 1535| getInitializer(3): [ConstructorFieldInit] constructor init of field p +# 1535| Type = [IntPointerType] int * +# 1535| ValueCategory = prvalue +# 1535| getInitializer(4): [ConstructorFieldInit] constructor init of field xs +# 1535| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1535| ValueCategory = prvalue +# 1535| getInitializer(5): [ConstructorFieldInit] constructor init of field r_alt +# 1535| Type = [CTypedefType,NestedTypedefType] RefType +# 1535| ValueCategory = prvalue +# 1535| getInitializer(6): [ConstructorFieldInit] constructor init of field m +# 1535| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberMemberStruct +# 1535| Type = [VoidType] void +# 1535| ValueCategory = prvalue +# 1535| getEntryPoint(): [BlockStmt] { ... } +# 1535| getStmt(0): [ReturnStmt] return ... +# 1535| [CopyConstructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) +# 1535| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| <initializations>: -# 1488| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1488| Type = [IntType] int -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ReferenceFieldAccess] i -# 1488| Type = [IntType] int -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1488| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1488| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1488| ValueCategory = lvalue -# 1488| getInitializer(1): [ConstructorFieldInit] constructor init of field d -# 1488| Type = [DoubleType] double -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ReferenceFieldAccess] d -# 1488| Type = [DoubleType] double -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1488| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1488| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1488| ValueCategory = lvalue -# 1488| getInitializer(2): [ConstructorFieldInit] constructor init of field b -# 1488| Type = [IntType] unsigned int -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ReferenceFieldAccess] b -# 1488| Type = [IntType] unsigned int -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1488| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1488| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1488| ValueCategory = lvalue -# 1488| getInitializer(3): [ConstructorFieldInit] constructor init of field r -# 1488| Type = [LValueReferenceType] int & -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ReferenceFieldAccess] r -# 1488| Type = [LValueReferenceType] int & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1488| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1488| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1488| ValueCategory = lvalue -# 1488| getInitializer(4): [ConstructorFieldInit] constructor init of field p -# 1488| Type = [IntPointerType] int * -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ReferenceFieldAccess] p -# 1488| Type = [IntPointerType] int * -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1488| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1488| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1488| ValueCategory = lvalue -# 1488| getInitializer(5): [ConstructorFieldInit] constructor init of field xs -# 1488| Type = [CTypedefType,NestedTypedefType] ArrayType -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ReferenceFieldAccess] xs -# 1488| Type = [CTypedefType,NestedTypedefType] ArrayType -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1488| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1488| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1488| ValueCategory = lvalue -# 1488| getInitializer(6): [ConstructorFieldInit] constructor init of field r_alt -# 1488| Type = [CTypedefType,NestedTypedefType] RefType -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ReferenceFieldAccess] r_alt -# 1488| Type = [CTypedefType,NestedTypedefType] RefType -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1488| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1488| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1488| ValueCategory = lvalue -# 1488| getInitializer(7): [ConstructorFieldInit] constructor init of field m -# 1488| Type = [Struct] StructuredBindingDataMemberMemberStruct -# 1488| ValueCategory = prvalue -# 1488| getExpr(): [ReferenceFieldAccess] m -# 1488| Type = [Struct] StructuredBindingDataMemberMemberStruct -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1488| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & -# 1488| ValueCategory = prvalue(load) -# 1488| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1488| Type = [SpecifiedType] const StructuredBindingDataMemberStruct -# 1488| ValueCategory = lvalue -# 1488| getEntryPoint(): [BlockStmt] { ... } -# 1488| getStmt(0): [ReturnStmt] return ... -# 1488| [MoveConstructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct&&) -# 1488| <params>: +# 1535| <initializations>: +# 1535| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1535| Type = [IntType] int +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ReferenceFieldAccess] i +# 1535| Type = [IntType] int +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1535| ValueCategory = lvalue +# 1535| getInitializer(1): [ConstructorFieldInit] constructor init of field d +# 1535| Type = [DoubleType] double +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ReferenceFieldAccess] d +# 1535| Type = [DoubleType] double +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1535| ValueCategory = lvalue +# 1535| getInitializer(2): [ConstructorFieldInit] constructor init of field b +# 1535| Type = [IntType] unsigned int +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ReferenceFieldAccess] b +# 1535| Type = [IntType] unsigned int +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1535| ValueCategory = lvalue +# 1535| getInitializer(3): [ConstructorFieldInit] constructor init of field r +# 1535| Type = [LValueReferenceType] int & +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ReferenceFieldAccess] r +# 1535| Type = [LValueReferenceType] int & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1535| ValueCategory = lvalue +# 1535| getInitializer(4): [ConstructorFieldInit] constructor init of field p +# 1535| Type = [IntPointerType] int * +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ReferenceFieldAccess] p +# 1535| Type = [IntPointerType] int * +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1535| ValueCategory = lvalue +# 1535| getInitializer(5): [ConstructorFieldInit] constructor init of field xs +# 1535| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ReferenceFieldAccess] xs +# 1535| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1535| ValueCategory = lvalue +# 1535| getInitializer(6): [ConstructorFieldInit] constructor init of field r_alt +# 1535| Type = [CTypedefType,NestedTypedefType] RefType +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ReferenceFieldAccess] r_alt +# 1535| Type = [CTypedefType,NestedTypedefType] RefType +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1535| ValueCategory = lvalue +# 1535| getInitializer(7): [ConstructorFieldInit] constructor init of field m +# 1535| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1535| ValueCategory = prvalue +# 1535| getExpr(): [ReferenceFieldAccess] m +# 1535| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1535| Type = [LValueReferenceType] const StructuredBindingDataMemberStruct & +# 1535| ValueCategory = prvalue(load) +# 1535| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1535| Type = [SpecifiedType] const StructuredBindingDataMemberStruct +# 1535| ValueCategory = lvalue +# 1535| getEntryPoint(): [BlockStmt] { ... } +# 1535| getStmt(0): [ReturnStmt] return ... +# 1535| [MoveConstructor] void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct&&) +# 1535| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingDataMemberStruct && -# 1501| [TopLevelFunction] void data_member_structured_binding() -# 1501| <params>: -# 1501| getEntryPoint(): [BlockStmt] { ... } -# 1502| getStmt(0): [DeclStmt] declaration -# 1502| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 1502| Type = [Struct] StructuredBindingDataMemberStruct -# 1502| getVariable().getInitializer(): [Initializer] initializer for s -# 1502| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberStruct -# 1502| Type = [VoidType] void -# 1502| ValueCategory = prvalue -# 1504| getStmt(1): [BlockStmt] { ... } -# 1505| getStmt(0): [DeclStmt] declaration -# 1505| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1505| getExpr(): [VariableAccess] s -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = prvalue(load) -# 1505| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i -# 1505| Type = [IntType] int +# 1548| [TopLevelFunction] void data_member_structured_binding() +# 1548| <params>: +# 1548| getEntryPoint(): [BlockStmt] { ... } +# 1549| getStmt(0): [DeclStmt] declaration +# 1549| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 1549| Type = [Struct] StructuredBindingDataMemberStruct +# 1549| getVariable().getInitializer(): [Initializer] initializer for s +# 1549| getExpr(): [ConstructorCall] call to StructuredBindingDataMemberStruct +# 1549| Type = [VoidType] void +# 1549| ValueCategory = prvalue +# 1551| getStmt(1): [BlockStmt] { ... } +# 1552| getStmt(0): [DeclStmt] declaration +# 1552| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1552| getExpr(): [VariableAccess] s +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = prvalue(load) +# 1552| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i +# 1552| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for i -# 1505| getExpr(): [ValueFieldAccess] i -# 1505| Type = [IntType] int -# 1505| ValueCategory = lvalue -# 1505| getQualifier(): [VariableAccess] (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = lvalue -# 1505| getDeclarationEntry(2): [VariableDeclarationEntry] definition of d -# 1505| Type = [DoubleType] double +# 1552| getExpr(): [ValueFieldAccess] i +# 1552| Type = [IntType] int +# 1552| ValueCategory = lvalue +# 1552| getQualifier(): [VariableAccess] (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = lvalue +# 1552| getDeclarationEntry(2): [VariableDeclarationEntry] definition of d +# 1552| Type = [DoubleType] double #-----| getVariable().getInitializer(): [Initializer] initializer for d -# 1505| getExpr(): [ValueFieldAccess] d -# 1505| Type = [DoubleType] double -# 1505| ValueCategory = lvalue -# 1505| getQualifier(): [VariableAccess] (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = lvalue -# 1505| getDeclarationEntry(3): [VariableDeclarationEntry] definition of b -# 1505| Type = [IntType] unsigned int +# 1552| getExpr(): [ValueFieldAccess] d +# 1552| Type = [DoubleType] double +# 1552| ValueCategory = lvalue +# 1552| getQualifier(): [VariableAccess] (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = lvalue +# 1552| getDeclarationEntry(3): [VariableDeclarationEntry] definition of b +# 1552| Type = [IntType] unsigned int #-----| getVariable().getInitializer(): [Initializer] initializer for b -# 1505| getExpr(): [ValueFieldAccess] b -# 1505| Type = [IntType] unsigned int -# 1505| ValueCategory = lvalue -# 1505| getQualifier(): [VariableAccess] (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = lvalue -# 1505| getDeclarationEntry(4): [VariableDeclarationEntry] definition of r -# 1505| Type = [IntType] int +# 1552| getExpr(): [ValueFieldAccess] b +# 1552| Type = [IntType] unsigned int +# 1552| ValueCategory = lvalue +# 1552| getQualifier(): [VariableAccess] (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = lvalue +# 1552| getDeclarationEntry(4): [VariableDeclarationEntry] definition of r +# 1552| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for r -# 1505| getExpr(): [ValueFieldAccess] r -# 1505| Type = [LValueReferenceType] int & -# 1505| ValueCategory = prvalue(load) -# 1505| getQualifier(): [VariableAccess] (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = lvalue -# 1505| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1505| Type = [IntType] int -# 1505| ValueCategory = lvalue -# 1505| getDeclarationEntry(5): [VariableDeclarationEntry] definition of p -# 1505| Type = [IntPointerType] int * +# 1552| getExpr(): [ValueFieldAccess] r +# 1552| Type = [LValueReferenceType] int & +# 1552| ValueCategory = prvalue(load) +# 1552| getQualifier(): [VariableAccess] (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = lvalue +# 1552| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1552| Type = [IntType] int +# 1552| ValueCategory = lvalue +# 1552| getDeclarationEntry(5): [VariableDeclarationEntry] definition of p +# 1552| Type = [IntPointerType] int * #-----| getVariable().getInitializer(): [Initializer] initializer for p -# 1505| getExpr(): [ValueFieldAccess] p -# 1505| Type = [IntPointerType] int * -# 1505| ValueCategory = lvalue -# 1505| getQualifier(): [VariableAccess] (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = lvalue -# 1505| getDeclarationEntry(6): [VariableDeclarationEntry] definition of xs -# 1505| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1552| getExpr(): [ValueFieldAccess] p +# 1552| Type = [IntPointerType] int * +# 1552| ValueCategory = lvalue +# 1552| getQualifier(): [VariableAccess] (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = lvalue +# 1552| getDeclarationEntry(6): [VariableDeclarationEntry] definition of xs +# 1552| Type = [CTypedefType,NestedTypedefType] ArrayType #-----| getVariable().getInitializer(): [Initializer] initializer for xs -# 1505| getExpr(): [ValueFieldAccess] xs -# 1505| Type = [CTypedefType,NestedTypedefType] ArrayType -# 1505| ValueCategory = lvalue -# 1505| getQualifier(): [VariableAccess] (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = lvalue -# 1505| getDeclarationEntry(7): [VariableDeclarationEntry] definition of r_alt -# 1505| Type = [IntType] int +# 1552| getExpr(): [ValueFieldAccess] xs +# 1552| Type = [CTypedefType,NestedTypedefType] ArrayType +# 1552| ValueCategory = lvalue +# 1552| getQualifier(): [VariableAccess] (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = lvalue +# 1552| getDeclarationEntry(7): [VariableDeclarationEntry] definition of r_alt +# 1552| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for r_alt -# 1505| getExpr(): [ValueFieldAccess] r_alt -# 1505| Type = [CTypedefType,NestedTypedefType] RefType -# 1505| ValueCategory = prvalue(load) -# 1505| getQualifier(): [VariableAccess] (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = lvalue -# 1505| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1505| Type = [IntType] int -# 1505| ValueCategory = lvalue -# 1505| getDeclarationEntry(8): [VariableDeclarationEntry] definition of m -# 1505| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1552| getExpr(): [ValueFieldAccess] r_alt +# 1552| Type = [CTypedefType,NestedTypedefType] RefType +# 1552| ValueCategory = prvalue(load) +# 1552| getQualifier(): [VariableAccess] (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = lvalue +# 1552| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1552| Type = [IntType] int +# 1552| ValueCategory = lvalue +# 1552| getDeclarationEntry(8): [VariableDeclarationEntry] definition of m +# 1552| Type = [Struct] StructuredBindingDataMemberMemberStruct #-----| getVariable().getInitializer(): [Initializer] initializer for m -# 1505| getExpr(): [ValueFieldAccess] m -# 1505| Type = [Struct] StructuredBindingDataMemberMemberStruct -# 1505| ValueCategory = lvalue -# 1505| getQualifier(): [VariableAccess] (unnamed local variable) -# 1505| Type = [Struct] StructuredBindingDataMemberStruct -# 1505| ValueCategory = lvalue -# 1506| getStmt(1): [ExprStmt] ExprStmt -# 1506| getExpr(): [AssignExpr] ... = ... -# 1506| Type = [DoubleType] double -# 1506| ValueCategory = lvalue -# 1506| getLValue(): [VariableAccess] d -# 1506| Type = [DoubleType] double -# 1506| ValueCategory = lvalue -# 1506| getRValue(): [Literal] 4.0 -# 1506| Type = [DoubleType] double -# 1506| Value = [Literal] 4.0 -# 1506| ValueCategory = prvalue -# 1507| getStmt(2): [DeclStmt] declaration -# 1507| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1507| Type = [LValueReferenceType] double & -# 1507| getVariable().getInitializer(): [Initializer] initializer for rd -# 1507| getExpr(): [VariableAccess] d -# 1507| Type = [DoubleType] double -# 1507| ValueCategory = lvalue -# 1507| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1507| Type = [LValueReferenceType] double & -# 1507| ValueCategory = prvalue -# 1508| getStmt(3): [DeclStmt] declaration -# 1508| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1508| Type = [IntType] int -# 1508| getVariable().getInitializer(): [Initializer] initializer for v -# 1508| getExpr(): [VariableAccess] i -# 1508| Type = [IntType] int -# 1508| ValueCategory = prvalue(load) -# 1509| getStmt(4): [ExprStmt] ExprStmt -# 1509| getExpr(): [AssignExpr] ... = ... -# 1509| Type = [IntType] int -# 1509| ValueCategory = lvalue -# 1509| getLValue(): [VariableAccess] r -# 1509| Type = [IntType] int -# 1509| ValueCategory = lvalue -# 1509| getRValue(): [Literal] 5 -# 1509| Type = [IntType] int -# 1509| Value = [Literal] 5 -# 1509| ValueCategory = prvalue -# 1510| getStmt(5): [ExprStmt] ExprStmt -# 1510| getExpr(): [AssignExpr] ... = ... -# 1510| Type = [IntType] int -# 1510| ValueCategory = lvalue -# 1510| getLValue(): [PointerDereferenceExpr] * ... -# 1510| Type = [IntType] int -# 1510| ValueCategory = lvalue -# 1510| getOperand(): [VariableAccess] p -# 1510| Type = [IntPointerType] int * -# 1510| ValueCategory = prvalue(load) -# 1510| getRValue(): [Literal] 6 -# 1510| Type = [IntType] int -# 1510| Value = [Literal] 6 -# 1510| ValueCategory = prvalue -# 1511| getStmt(6): [DeclStmt] declaration -# 1511| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1511| Type = [LValueReferenceType] int & -# 1511| getVariable().getInitializer(): [Initializer] initializer for rr -# 1511| getExpr(): [VariableAccess] r -# 1511| Type = [IntType] int -# 1511| ValueCategory = lvalue -# 1511| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1511| Type = [LValueReferenceType] int & -# 1511| ValueCategory = prvalue -# 1512| getStmt(7): [DeclStmt] declaration -# 1512| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pr -# 1512| Type = [IntPointerType] int * -# 1512| getVariable().getInitializer(): [Initializer] initializer for pr -# 1512| getExpr(): [AddressOfExpr] & ... -# 1512| Type = [IntPointerType] int * -# 1512| ValueCategory = prvalue -# 1512| getOperand(): [VariableAccess] r -# 1512| Type = [IntType] int -# 1512| ValueCategory = lvalue -# 1513| getStmt(8): [DeclStmt] declaration -# 1513| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1513| Type = [IntType] int -# 1513| getVariable().getInitializer(): [Initializer] initializer for w -# 1513| getExpr(): [VariableAccess] r -# 1513| Type = [IntType] int -# 1513| ValueCategory = prvalue(load) -# 1516| getStmt(2): [BlockStmt] { ... } -# 1517| getStmt(0): [DeclStmt] declaration -# 1517| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable -# 1517| Type = [Struct] StructuredBindingDataMemberStruct -# 1517| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable -# 1517| getExpr(): [VariableAccess] s -# 1517| Type = [Struct] StructuredBindingDataMemberStruct -# 1517| ValueCategory = prvalue(load) -# 1518| getStmt(1): [DeclStmt] declaration -# 1518| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1518| Type = [LValueReferenceType] int & -# 1518| getVariable().getInitializer(): [Initializer] initializer for i -# 1518| getExpr(): [ValueFieldAccess] i -# 1518| Type = [IntType] int -# 1518| ValueCategory = lvalue -# 1518| getQualifier(): [VariableAccess] unnamed_local_variable -# 1518| Type = [Struct] StructuredBindingDataMemberStruct -# 1518| ValueCategory = lvalue -# 1518| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1518| Type = [LValueReferenceType] int & -# 1518| ValueCategory = prvalue -# 1519| getStmt(2): [DeclStmt] declaration -# 1519| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1519| Type = [LValueReferenceType] double & -# 1519| getVariable().getInitializer(): [Initializer] initializer for d -# 1519| getExpr(): [ValueFieldAccess] d -# 1519| Type = [DoubleType] double -# 1519| ValueCategory = lvalue -# 1519| getQualifier(): [VariableAccess] unnamed_local_variable -# 1519| Type = [Struct] StructuredBindingDataMemberStruct -# 1519| ValueCategory = lvalue -# 1519| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1519| Type = [LValueReferenceType] double & -# 1519| ValueCategory = prvalue -# 1521| getStmt(3): [DeclStmt] declaration -# 1521| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r -# 1521| Type = [LValueReferenceType] int & -# 1521| getVariable().getInitializer(): [Initializer] initializer for r -# 1521| getExpr(): [ValueFieldAccess] r -# 1521| Type = [LValueReferenceType] int & -# 1521| ValueCategory = prvalue(load) -# 1521| getQualifier(): [VariableAccess] unnamed_local_variable -# 1521| Type = [Struct] StructuredBindingDataMemberStruct -# 1521| ValueCategory = lvalue -# 1521| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1521| Type = [LValueReferenceType] int & -# 1521| ValueCategory = prvalue -# 1521| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1521| Type = [IntType] int -# 1521| ValueCategory = lvalue -# 1522| getStmt(4): [DeclStmt] declaration -# 1522| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p -# 1522| Type = [LValueReferenceType] int *& -# 1522| getVariable().getInitializer(): [Initializer] initializer for p -# 1522| getExpr(): [ValueFieldAccess] p -# 1522| Type = [IntPointerType] int * -# 1522| ValueCategory = lvalue -# 1522| getQualifier(): [VariableAccess] unnamed_local_variable -# 1522| Type = [Struct] StructuredBindingDataMemberStruct -# 1522| ValueCategory = lvalue -# 1522| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1522| Type = [LValueReferenceType] int *& -# 1522| ValueCategory = prvalue -# 1523| getStmt(5): [ExprStmt] ExprStmt -# 1523| getExpr(): [AssignExpr] ... = ... -# 1523| Type = [DoubleType] double -# 1523| ValueCategory = lvalue -# 1523| getLValue(): [VariableAccess] d -# 1523| Type = [LValueReferenceType] double & -# 1523| ValueCategory = prvalue(load) -# 1523| getRValue(): [Literal] 4.0 -# 1523| Type = [DoubleType] double -# 1523| Value = [Literal] 4.0 -# 1523| ValueCategory = prvalue -# 1523| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1523| Type = [DoubleType] double -# 1523| ValueCategory = lvalue -# 1524| getStmt(6): [DeclStmt] declaration -# 1524| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1524| Type = [LValueReferenceType] double & -# 1524| getVariable().getInitializer(): [Initializer] initializer for rd -# 1524| getExpr(): [VariableAccess] d -# 1524| Type = [LValueReferenceType] double & -# 1524| ValueCategory = prvalue(load) -# 1524| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1524| Type = [LValueReferenceType] double & -# 1524| ValueCategory = prvalue -# 1524| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1524| Type = [DoubleType] double -# 1524| ValueCategory = lvalue -# 1525| getStmt(7): [DeclStmt] declaration -# 1525| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1525| Type = [IntType] int -# 1525| getVariable().getInitializer(): [Initializer] initializer for v -# 1525| getExpr(): [VariableAccess] i -# 1525| Type = [LValueReferenceType] int & -# 1525| ValueCategory = prvalue(load) -# 1525| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1525| Type = [IntType] int -# 1525| ValueCategory = prvalue(load) -# 1526| getStmt(8): [ExprStmt] ExprStmt -# 1526| getExpr(): [AssignExpr] ... = ... -# 1526| Type = [IntType] int -# 1526| ValueCategory = lvalue -# 1526| getLValue(): [VariableAccess] r -# 1526| Type = [LValueReferenceType] int & -# 1526| ValueCategory = prvalue(load) -# 1526| getRValue(): [Literal] 5 -# 1526| Type = [IntType] int -# 1526| Value = [Literal] 5 -# 1526| ValueCategory = prvalue -# 1526| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1526| Type = [IntType] int -# 1526| ValueCategory = lvalue -# 1527| getStmt(9): [ExprStmt] ExprStmt -# 1527| getExpr(): [AssignExpr] ... = ... -# 1527| Type = [IntType] int -# 1527| ValueCategory = lvalue -# 1527| getLValue(): [PointerDereferenceExpr] * ... -# 1527| Type = [IntType] int -# 1527| ValueCategory = lvalue -# 1527| getOperand(): [VariableAccess] p -# 1527| Type = [LValueReferenceType] int *& -# 1527| ValueCategory = prvalue(load) -# 1527| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1527| Type = [IntPointerType] int * -# 1527| ValueCategory = prvalue(load) -# 1527| getRValue(): [Literal] 6 -# 1527| Type = [IntType] int -# 1527| Value = [Literal] 6 -# 1527| ValueCategory = prvalue -# 1528| getStmt(10): [DeclStmt] declaration -# 1528| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1528| Type = [LValueReferenceType] int & -# 1528| getVariable().getInitializer(): [Initializer] initializer for rr -# 1528| getExpr(): [VariableAccess] r -# 1528| Type = [LValueReferenceType] int & -# 1528| ValueCategory = prvalue(load) -# 1528| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1528| Type = [LValueReferenceType] int & -# 1528| ValueCategory = prvalue -# 1528| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1528| Type = [IntType] int -# 1528| ValueCategory = lvalue -# 1529| getStmt(11): [DeclStmt] declaration -# 1529| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pr -# 1529| Type = [IntPointerType] int * -# 1529| getVariable().getInitializer(): [Initializer] initializer for pr -# 1529| getExpr(): [AddressOfExpr] & ... -# 1529| Type = [IntPointerType] int * -# 1529| ValueCategory = prvalue -# 1529| getOperand(): [VariableAccess] r -# 1529| Type = [LValueReferenceType] int & -# 1529| ValueCategory = prvalue(load) -# 1529| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1529| Type = [IntType] int -# 1529| ValueCategory = lvalue -# 1530| getStmt(12): [DeclStmt] declaration -# 1530| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1530| Type = [IntType] int -# 1530| getVariable().getInitializer(): [Initializer] initializer for w -# 1530| getExpr(): [VariableAccess] r -# 1530| Type = [LValueReferenceType] int & -# 1530| ValueCategory = prvalue(load) -# 1530| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1530| Type = [IntType] int -# 1530| ValueCategory = prvalue(load) -# 1532| getStmt(3): [ReturnStmt] return ... -# 1541| [CopyAssignmentOperator] StructuredBindingTupleRefGet& StructuredBindingTupleRefGet::operator=(StructuredBindingTupleRefGet const&) -# 1541| <params>: +# 1552| getExpr(): [ValueFieldAccess] m +# 1552| Type = [Struct] StructuredBindingDataMemberMemberStruct +# 1552| ValueCategory = lvalue +# 1552| getQualifier(): [VariableAccess] (unnamed local variable) +# 1552| Type = [Struct] StructuredBindingDataMemberStruct +# 1552| ValueCategory = lvalue +# 1553| getStmt(1): [ExprStmt] ExprStmt +# 1553| getExpr(): [AssignExpr] ... = ... +# 1553| Type = [DoubleType] double +# 1553| ValueCategory = lvalue +# 1553| getLValue(): [VariableAccess] d +# 1553| Type = [DoubleType] double +# 1553| ValueCategory = lvalue +# 1553| getRValue(): [Literal] 4.0 +# 1553| Type = [DoubleType] double +# 1553| Value = [Literal] 4.0 +# 1553| ValueCategory = prvalue +# 1554| getStmt(2): [DeclStmt] declaration +# 1554| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1554| Type = [LValueReferenceType] double & +# 1554| getVariable().getInitializer(): [Initializer] initializer for rd +# 1554| getExpr(): [VariableAccess] d +# 1554| Type = [DoubleType] double +# 1554| ValueCategory = lvalue +# 1554| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1554| Type = [LValueReferenceType] double & +# 1554| ValueCategory = prvalue +# 1555| getStmt(3): [DeclStmt] declaration +# 1555| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1555| Type = [IntType] int +# 1555| getVariable().getInitializer(): [Initializer] initializer for v +# 1555| getExpr(): [VariableAccess] i +# 1555| Type = [IntType] int +# 1555| ValueCategory = prvalue(load) +# 1556| getStmt(4): [ExprStmt] ExprStmt +# 1556| getExpr(): [AssignExpr] ... = ... +# 1556| Type = [IntType] int +# 1556| ValueCategory = lvalue +# 1556| getLValue(): [VariableAccess] r +# 1556| Type = [IntType] int +# 1556| ValueCategory = lvalue +# 1556| getRValue(): [Literal] 5 +# 1556| Type = [IntType] int +# 1556| Value = [Literal] 5 +# 1556| ValueCategory = prvalue +# 1557| getStmt(5): [ExprStmt] ExprStmt +# 1557| getExpr(): [AssignExpr] ... = ... +# 1557| Type = [IntType] int +# 1557| ValueCategory = lvalue +# 1557| getLValue(): [PointerDereferenceExpr] * ... +# 1557| Type = [IntType] int +# 1557| ValueCategory = lvalue +# 1557| getOperand(): [VariableAccess] p +# 1557| Type = [IntPointerType] int * +# 1557| ValueCategory = prvalue(load) +# 1557| getRValue(): [Literal] 6 +# 1557| Type = [IntType] int +# 1557| Value = [Literal] 6 +# 1557| ValueCategory = prvalue +# 1558| getStmt(6): [DeclStmt] declaration +# 1558| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1558| Type = [LValueReferenceType] int & +# 1558| getVariable().getInitializer(): [Initializer] initializer for rr +# 1558| getExpr(): [VariableAccess] r +# 1558| Type = [IntType] int +# 1558| ValueCategory = lvalue +# 1558| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1558| Type = [LValueReferenceType] int & +# 1558| ValueCategory = prvalue +# 1559| getStmt(7): [DeclStmt] declaration +# 1559| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pr +# 1559| Type = [IntPointerType] int * +# 1559| getVariable().getInitializer(): [Initializer] initializer for pr +# 1559| getExpr(): [AddressOfExpr] & ... +# 1559| Type = [IntPointerType] int * +# 1559| ValueCategory = prvalue +# 1559| getOperand(): [VariableAccess] r +# 1559| Type = [IntType] int +# 1559| ValueCategory = lvalue +# 1560| getStmt(8): [DeclStmt] declaration +# 1560| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1560| Type = [IntType] int +# 1560| getVariable().getInitializer(): [Initializer] initializer for w +# 1560| getExpr(): [VariableAccess] r +# 1560| Type = [IntType] int +# 1560| ValueCategory = prvalue(load) +# 1563| getStmt(2): [BlockStmt] { ... } +# 1564| getStmt(0): [DeclStmt] declaration +# 1564| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable +# 1564| Type = [Struct] StructuredBindingDataMemberStruct +# 1564| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable +# 1564| getExpr(): [VariableAccess] s +# 1564| Type = [Struct] StructuredBindingDataMemberStruct +# 1564| ValueCategory = prvalue(load) +# 1565| getStmt(1): [DeclStmt] declaration +# 1565| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1565| Type = [LValueReferenceType] int & +# 1565| getVariable().getInitializer(): [Initializer] initializer for i +# 1565| getExpr(): [ValueFieldAccess] i +# 1565| Type = [IntType] int +# 1565| ValueCategory = lvalue +# 1565| getQualifier(): [VariableAccess] unnamed_local_variable +# 1565| Type = [Struct] StructuredBindingDataMemberStruct +# 1565| ValueCategory = lvalue +# 1565| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1565| Type = [LValueReferenceType] int & +# 1565| ValueCategory = prvalue +# 1566| getStmt(2): [DeclStmt] declaration +# 1566| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1566| Type = [LValueReferenceType] double & +# 1566| getVariable().getInitializer(): [Initializer] initializer for d +# 1566| getExpr(): [ValueFieldAccess] d +# 1566| Type = [DoubleType] double +# 1566| ValueCategory = lvalue +# 1566| getQualifier(): [VariableAccess] unnamed_local_variable +# 1566| Type = [Struct] StructuredBindingDataMemberStruct +# 1566| ValueCategory = lvalue +# 1566| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1566| Type = [LValueReferenceType] double & +# 1566| ValueCategory = prvalue +# 1568| getStmt(3): [DeclStmt] declaration +# 1568| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r +# 1568| Type = [LValueReferenceType] int & +# 1568| getVariable().getInitializer(): [Initializer] initializer for r +# 1568| getExpr(): [ValueFieldAccess] r +# 1568| Type = [LValueReferenceType] int & +# 1568| ValueCategory = prvalue(load) +# 1568| getQualifier(): [VariableAccess] unnamed_local_variable +# 1568| Type = [Struct] StructuredBindingDataMemberStruct +# 1568| ValueCategory = lvalue +# 1568| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1568| Type = [LValueReferenceType] int & +# 1568| ValueCategory = prvalue +# 1568| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1568| Type = [IntType] int +# 1568| ValueCategory = lvalue +# 1569| getStmt(4): [DeclStmt] declaration +# 1569| getDeclarationEntry(0): [VariableDeclarationEntry] definition of p +# 1569| Type = [LValueReferenceType] int *& +# 1569| getVariable().getInitializer(): [Initializer] initializer for p +# 1569| getExpr(): [ValueFieldAccess] p +# 1569| Type = [IntPointerType] int * +# 1569| ValueCategory = lvalue +# 1569| getQualifier(): [VariableAccess] unnamed_local_variable +# 1569| Type = [Struct] StructuredBindingDataMemberStruct +# 1569| ValueCategory = lvalue +# 1569| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1569| Type = [LValueReferenceType] int *& +# 1569| ValueCategory = prvalue +# 1570| getStmt(5): [ExprStmt] ExprStmt +# 1570| getExpr(): [AssignExpr] ... = ... +# 1570| Type = [DoubleType] double +# 1570| ValueCategory = lvalue +# 1570| getLValue(): [VariableAccess] d +# 1570| Type = [LValueReferenceType] double & +# 1570| ValueCategory = prvalue(load) +# 1570| getRValue(): [Literal] 4.0 +# 1570| Type = [DoubleType] double +# 1570| Value = [Literal] 4.0 +# 1570| ValueCategory = prvalue +# 1570| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1570| Type = [DoubleType] double +# 1570| ValueCategory = lvalue +# 1571| getStmt(6): [DeclStmt] declaration +# 1571| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1571| Type = [LValueReferenceType] double & +# 1571| getVariable().getInitializer(): [Initializer] initializer for rd +# 1571| getExpr(): [VariableAccess] d +# 1571| Type = [LValueReferenceType] double & +# 1571| ValueCategory = prvalue(load) +# 1571| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1571| Type = [LValueReferenceType] double & +# 1571| ValueCategory = prvalue +# 1571| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1571| Type = [DoubleType] double +# 1571| ValueCategory = lvalue +# 1572| getStmt(7): [DeclStmt] declaration +# 1572| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1572| Type = [IntType] int +# 1572| getVariable().getInitializer(): [Initializer] initializer for v +# 1572| getExpr(): [VariableAccess] i +# 1572| Type = [LValueReferenceType] int & +# 1572| ValueCategory = prvalue(load) +# 1572| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1572| Type = [IntType] int +# 1572| ValueCategory = prvalue(load) +# 1573| getStmt(8): [ExprStmt] ExprStmt +# 1573| getExpr(): [AssignExpr] ... = ... +# 1573| Type = [IntType] int +# 1573| ValueCategory = lvalue +# 1573| getLValue(): [VariableAccess] r +# 1573| Type = [LValueReferenceType] int & +# 1573| ValueCategory = prvalue(load) +# 1573| getRValue(): [Literal] 5 +# 1573| Type = [IntType] int +# 1573| Value = [Literal] 5 +# 1573| ValueCategory = prvalue +# 1573| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1573| Type = [IntType] int +# 1573| ValueCategory = lvalue +# 1574| getStmt(9): [ExprStmt] ExprStmt +# 1574| getExpr(): [AssignExpr] ... = ... +# 1574| Type = [IntType] int +# 1574| ValueCategory = lvalue +# 1574| getLValue(): [PointerDereferenceExpr] * ... +# 1574| Type = [IntType] int +# 1574| ValueCategory = lvalue +# 1574| getOperand(): [VariableAccess] p +# 1574| Type = [LValueReferenceType] int *& +# 1574| ValueCategory = prvalue(load) +# 1574| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1574| Type = [IntPointerType] int * +# 1574| ValueCategory = prvalue(load) +# 1574| getRValue(): [Literal] 6 +# 1574| Type = [IntType] int +# 1574| Value = [Literal] 6 +# 1574| ValueCategory = prvalue +# 1575| getStmt(10): [DeclStmt] declaration +# 1575| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1575| Type = [LValueReferenceType] int & +# 1575| getVariable().getInitializer(): [Initializer] initializer for rr +# 1575| getExpr(): [VariableAccess] r +# 1575| Type = [LValueReferenceType] int & +# 1575| ValueCategory = prvalue(load) +# 1575| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1575| Type = [LValueReferenceType] int & +# 1575| ValueCategory = prvalue +# 1575| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1575| Type = [IntType] int +# 1575| ValueCategory = lvalue +# 1576| getStmt(11): [DeclStmt] declaration +# 1576| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pr +# 1576| Type = [IntPointerType] int * +# 1576| getVariable().getInitializer(): [Initializer] initializer for pr +# 1576| getExpr(): [AddressOfExpr] & ... +# 1576| Type = [IntPointerType] int * +# 1576| ValueCategory = prvalue +# 1576| getOperand(): [VariableAccess] r +# 1576| Type = [LValueReferenceType] int & +# 1576| ValueCategory = prvalue(load) +# 1576| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1576| Type = [IntType] int +# 1576| ValueCategory = lvalue +# 1577| getStmt(12): [DeclStmt] declaration +# 1577| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1577| Type = [IntType] int +# 1577| getVariable().getInitializer(): [Initializer] initializer for w +# 1577| getExpr(): [VariableAccess] r +# 1577| Type = [LValueReferenceType] int & +# 1577| ValueCategory = prvalue(load) +# 1577| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1577| Type = [IntType] int +# 1577| ValueCategory = prvalue(load) +# 1579| getStmt(3): [ReturnStmt] return ... +# 1588| [CopyAssignmentOperator] StructuredBindingTupleRefGet& StructuredBindingTupleRefGet::operator=(StructuredBindingTupleRefGet const&) +# 1588| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1541| [Constructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() -# 1541| <params>: -# 1541| <initializations>: -# 1541| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1541| Type = [IntType] int -# 1541| ValueCategory = prvalue -# 1541| getInitializer(1): [ConstructorFieldInit] constructor init of field d -# 1541| Type = [DoubleType] double -# 1541| ValueCategory = prvalue -# 1541| getInitializer(2): [ConstructorFieldInit] constructor init of field r -# 1541| Type = [LValueReferenceType] int & -# 1541| ValueCategory = prvalue -# 1541| getEntryPoint(): [BlockStmt] { ... } -# 1541| getStmt(0): [ReturnStmt] return ... -# 1541| [CopyConstructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) -# 1541| <params>: +# 1588| [Constructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() +# 1588| <params>: +# 1588| <initializations>: +# 1588| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1588| Type = [IntType] int +# 1588| ValueCategory = prvalue +# 1588| getInitializer(1): [ConstructorFieldInit] constructor init of field d +# 1588| Type = [DoubleType] double +# 1588| ValueCategory = prvalue +# 1588| getInitializer(2): [ConstructorFieldInit] constructor init of field r +# 1588| Type = [LValueReferenceType] int & +# 1588| ValueCategory = prvalue +# 1588| getEntryPoint(): [BlockStmt] { ... } +# 1588| getStmt(0): [ReturnStmt] return ... +# 1588| [CopyConstructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) +# 1588| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1541| <initializations>: -# 1541| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1541| Type = [IntType] int -# 1541| ValueCategory = prvalue -# 1541| getExpr(): [ReferenceFieldAccess] i -# 1541| Type = [IntType] int -# 1541| ValueCategory = prvalue(load) -# 1541| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1541| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1541| ValueCategory = prvalue(load) -# 1541| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1541| Type = [SpecifiedType] const StructuredBindingTupleRefGet -# 1541| ValueCategory = lvalue -# 1541| getInitializer(1): [ConstructorFieldInit] constructor init of field d -# 1541| Type = [DoubleType] double -# 1541| ValueCategory = prvalue -# 1541| getExpr(): [ReferenceFieldAccess] d -# 1541| Type = [DoubleType] double -# 1541| ValueCategory = prvalue(load) -# 1541| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1541| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1541| ValueCategory = prvalue(load) -# 1541| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1541| Type = [SpecifiedType] const StructuredBindingTupleRefGet -# 1541| ValueCategory = lvalue -# 1541| getInitializer(2): [ConstructorFieldInit] constructor init of field r -# 1541| Type = [LValueReferenceType] int & -# 1541| ValueCategory = prvalue -# 1541| getExpr(): [ReferenceFieldAccess] r -# 1541| Type = [LValueReferenceType] int & -# 1541| ValueCategory = prvalue(load) -# 1541| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 1541| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & -# 1541| ValueCategory = prvalue(load) -# 1541| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1541| Type = [SpecifiedType] const StructuredBindingTupleRefGet -# 1541| ValueCategory = lvalue -# 1541| getEntryPoint(): [BlockStmt] { ... } -# 1541| getStmt(0): [ReturnStmt] return ... -# 1541| [MoveConstructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet&&) -# 1541| <params>: +# 1588| <initializations>: +# 1588| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1588| Type = [IntType] int +# 1588| ValueCategory = prvalue +# 1588| getExpr(): [ReferenceFieldAccess] i +# 1588| Type = [IntType] int +# 1588| ValueCategory = prvalue(load) +# 1588| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1588| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & +# 1588| ValueCategory = prvalue(load) +# 1588| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1588| Type = [SpecifiedType] const StructuredBindingTupleRefGet +# 1588| ValueCategory = lvalue +# 1588| getInitializer(1): [ConstructorFieldInit] constructor init of field d +# 1588| Type = [DoubleType] double +# 1588| ValueCategory = prvalue +# 1588| getExpr(): [ReferenceFieldAccess] d +# 1588| Type = [DoubleType] double +# 1588| ValueCategory = prvalue(load) +# 1588| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1588| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & +# 1588| ValueCategory = prvalue(load) +# 1588| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1588| Type = [SpecifiedType] const StructuredBindingTupleRefGet +# 1588| ValueCategory = lvalue +# 1588| getInitializer(2): [ConstructorFieldInit] constructor init of field r +# 1588| Type = [LValueReferenceType] int & +# 1588| ValueCategory = prvalue +# 1588| getExpr(): [ReferenceFieldAccess] r +# 1588| Type = [LValueReferenceType] int & +# 1588| ValueCategory = prvalue(load) +# 1588| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 1588| Type = [LValueReferenceType] const StructuredBindingTupleRefGet & +# 1588| ValueCategory = prvalue(load) +# 1588| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1588| Type = [SpecifiedType] const StructuredBindingTupleRefGet +# 1588| ValueCategory = lvalue +# 1588| getEntryPoint(): [BlockStmt] { ... } +# 1588| getStmt(0): [ReturnStmt] return ... +# 1588| [MoveConstructor] void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet&&) +# 1588| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingTupleRefGet && -# 1547| [MemberFunction,TemplateFunction] type& StructuredBindingTupleRefGet::get<int i>() -# 1547| <params>: -# 1551| [CopyAssignmentOperator] std::tuple_size<StructuredBindingTupleRefGet>& std::tuple_size<StructuredBindingTupleRefGet>::operator=(std::tuple_size<StructuredBindingTupleRefGet> const&) -# 1551| <params>: +# 1594| [MemberFunction,TemplateFunction] type& StructuredBindingTupleRefGet::get<int i>() +# 1594| <params>: +# 1598| [CopyAssignmentOperator] std::tuple_size<StructuredBindingTupleRefGet>& std::tuple_size<StructuredBindingTupleRefGet>::operator=(std::tuple_size<StructuredBindingTupleRefGet> const&) +# 1598| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_size<StructuredBindingTupleRefGet> & -# 1551| [MoveAssignmentOperator] std::tuple_size<StructuredBindingTupleRefGet>& std::tuple_size<StructuredBindingTupleRefGet>::operator=(std::tuple_size<StructuredBindingTupleRefGet>&&) -# 1551| <params>: +# 1598| [MoveAssignmentOperator] std::tuple_size<StructuredBindingTupleRefGet>& std::tuple_size<StructuredBindingTupleRefGet>::operator=(std::tuple_size<StructuredBindingTupleRefGet>&&) +# 1598| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_size<StructuredBindingTupleRefGet> && -# 1556| [CopyAssignmentOperator] std::tuple_element<int 0, StructuredBindingTupleRefGet>& std::tuple_element<int 0, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 0, StructuredBindingTupleRefGet> const&) -# 1556| <params>: +# 1603| [CopyAssignmentOperator] std::tuple_element<int 0, StructuredBindingTupleRefGet>& std::tuple_element<int 0, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 0, StructuredBindingTupleRefGet> const&) +# 1603| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<0, StructuredBindingTupleRefGet> & -# 1556| [MoveAssignmentOperator] std::tuple_element<int 0, StructuredBindingTupleRefGet>& std::tuple_element<int 0, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 0, StructuredBindingTupleRefGet>&&) -# 1556| <params>: +# 1603| [MoveAssignmentOperator] std::tuple_element<int 0, StructuredBindingTupleRefGet>& std::tuple_element<int 0, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 0, StructuredBindingTupleRefGet>&&) +# 1603| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<0, StructuredBindingTupleRefGet> && -# 1560| [CopyAssignmentOperator] std::tuple_element<int 1, StructuredBindingTupleRefGet>& std::tuple_element<int 1, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 1, StructuredBindingTupleRefGet> const&) -# 1560| <params>: +# 1607| [CopyAssignmentOperator] std::tuple_element<int 1, StructuredBindingTupleRefGet>& std::tuple_element<int 1, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 1, StructuredBindingTupleRefGet> const&) +# 1607| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<1, StructuredBindingTupleRefGet> & -# 1560| [MoveAssignmentOperator] std::tuple_element<int 1, StructuredBindingTupleRefGet>& std::tuple_element<int 1, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 1, StructuredBindingTupleRefGet>&&) -# 1560| <params>: +# 1607| [MoveAssignmentOperator] std::tuple_element<int 1, StructuredBindingTupleRefGet>& std::tuple_element<int 1, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 1, StructuredBindingTupleRefGet>&&) +# 1607| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<1, StructuredBindingTupleRefGet> && -# 1564| [CopyAssignmentOperator] std::tuple_element<int 2, StructuredBindingTupleRefGet>& std::tuple_element<int 2, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 2, StructuredBindingTupleRefGet> const&) -# 1564| <params>: +# 1611| [CopyAssignmentOperator] std::tuple_element<int 2, StructuredBindingTupleRefGet>& std::tuple_element<int 2, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 2, StructuredBindingTupleRefGet> const&) +# 1611| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<2, StructuredBindingTupleRefGet> & -# 1564| [MoveAssignmentOperator] std::tuple_element<int 2, StructuredBindingTupleRefGet>& std::tuple_element<int 2, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 2, StructuredBindingTupleRefGet>&&) -# 1564| <params>: +# 1611| [MoveAssignmentOperator] std::tuple_element<int 2, StructuredBindingTupleRefGet>& std::tuple_element<int 2, StructuredBindingTupleRefGet>::operator=(std::tuple_element<int 2, StructuredBindingTupleRefGet>&&) +# 1611| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<2, StructuredBindingTupleRefGet> && -# 1569| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 0, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 0>() -# 1569| <params>: -# 1569| getEntryPoint(): [BlockStmt] { ... } -# 1570| getStmt(0): [ReturnStmt] return ... -# 1570| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] i -# 1570| Type = [IntType] int -# 1570| ValueCategory = lvalue -# 1570| getQualifier(): [ThisExpr] this -# 1570| Type = [PointerType] StructuredBindingTupleRefGet * -# 1570| ValueCategory = prvalue(load) +# 1616| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 0, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 0>() +# 1616| <params>: +# 1616| getEntryPoint(): [BlockStmt] { ... } +# 1617| getStmt(0): [ReturnStmt] return ... +# 1617| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] i +# 1617| Type = [IntType] int +# 1617| ValueCategory = lvalue +# 1617| getQualifier(): [ThisExpr] this +# 1617| Type = [PointerType] StructuredBindingTupleRefGet * +# 1617| ValueCategory = prvalue(load) #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] int & #-----| ValueCategory = prvalue -# 1573| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 1, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 1>() -# 1573| <params>: -# 1573| getEntryPoint(): [BlockStmt] { ... } -# 1574| getStmt(0): [ReturnStmt] return ... -# 1574| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] d -# 1574| Type = [DoubleType] double -# 1574| ValueCategory = lvalue -# 1574| getQualifier(): [ThisExpr] this -# 1574| Type = [PointerType] StructuredBindingTupleRefGet * -# 1574| ValueCategory = prvalue(load) +# 1620| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 1, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 1>() +# 1620| <params>: +# 1620| getEntryPoint(): [BlockStmt] { ... } +# 1621| getStmt(0): [ReturnStmt] return ... +# 1621| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] d +# 1621| Type = [DoubleType] double +# 1621| ValueCategory = lvalue +# 1621| getQualifier(): [ThisExpr] this +# 1621| Type = [PointerType] StructuredBindingTupleRefGet * +# 1621| ValueCategory = prvalue(load) #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] double & #-----| ValueCategory = prvalue -# 1577| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 2, StructuredBindingTupleRefGet>::type StructuredBindingTupleRefGet::get<int 2>() -# 1577| <params>: -# 1577| getEntryPoint(): [BlockStmt] { ... } -# 1578| getStmt(0): [ReturnStmt] return ... -# 1578| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] r -# 1578| Type = [LValueReferenceType] int & -# 1578| ValueCategory = prvalue(load) -# 1578| getQualifier(): [ThisExpr] this -# 1578| Type = [PointerType] StructuredBindingTupleRefGet * -# 1578| ValueCategory = prvalue(load) -# 1578| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1578| Type = [LValueReferenceType] int & -# 1578| ValueCategory = prvalue -# 1578| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1578| Type = [IntType] int -# 1578| ValueCategory = lvalue -# 1581| [TopLevelFunction] void tuple_structured_binding_ref_get() -# 1581| <params>: -# 1581| getEntryPoint(): [BlockStmt] { ... } -# 1582| getStmt(0): [DeclStmt] declaration -# 1582| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t -# 1582| Type = [Struct] StructuredBindingTupleRefGet -# 1582| getVariable().getInitializer(): [Initializer] initializer for t -# 1582| getExpr(): [ConstructorCall] call to StructuredBindingTupleRefGet -# 1582| Type = [VoidType] void -# 1582| ValueCategory = prvalue -# 1584| getStmt(1): [BlockStmt] { ... } -# 1585| getStmt(0): [DeclStmt] declaration -# 1585| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1585| Type = [Struct] StructuredBindingTupleRefGet -# 1585| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1585| getExpr(): [VariableAccess] t -# 1585| Type = [Struct] StructuredBindingTupleRefGet -# 1585| ValueCategory = prvalue(load) -# 1585| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i -# 1585| Type = [LValueReferenceType] type & +# 1624| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 2, StructuredBindingTupleRefGet>::type StructuredBindingTupleRefGet::get<int 2>() +# 1624| <params>: +# 1624| getEntryPoint(): [BlockStmt] { ... } +# 1625| getStmt(0): [ReturnStmt] return ... +# 1625| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] r +# 1625| Type = [LValueReferenceType] int & +# 1625| ValueCategory = prvalue(load) +# 1625| getQualifier(): [ThisExpr] this +# 1625| Type = [PointerType] StructuredBindingTupleRefGet * +# 1625| ValueCategory = prvalue(load) +# 1625| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1625| Type = [LValueReferenceType] int & +# 1625| ValueCategory = prvalue +# 1625| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1625| Type = [IntType] int +# 1625| ValueCategory = lvalue +# 1628| [TopLevelFunction] void tuple_structured_binding_ref_get() +# 1628| <params>: +# 1628| getEntryPoint(): [BlockStmt] { ... } +# 1629| getStmt(0): [DeclStmt] declaration +# 1629| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t +# 1629| Type = [Struct] StructuredBindingTupleRefGet +# 1629| getVariable().getInitializer(): [Initializer] initializer for t +# 1629| getExpr(): [ConstructorCall] call to StructuredBindingTupleRefGet +# 1629| Type = [VoidType] void +# 1629| ValueCategory = prvalue +# 1631| getStmt(1): [BlockStmt] { ... } +# 1632| getStmt(0): [DeclStmt] declaration +# 1632| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1632| Type = [Struct] StructuredBindingTupleRefGet +# 1632| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1632| getExpr(): [VariableAccess] t +# 1632| Type = [Struct] StructuredBindingTupleRefGet +# 1632| ValueCategory = prvalue(load) +# 1632| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i +# 1632| Type = [LValueReferenceType] type & #-----| getVariable().getInitializer(): [Initializer] initializer for i -# 1585| getExpr(): [FunctionCall] call to get -# 1585| Type = [LValueReferenceType] type & -# 1585| ValueCategory = prvalue -# 1585| getQualifier(): [VariableAccess] (unnamed local variable) -# 1585| Type = [Struct] StructuredBindingTupleRefGet -# 1585| ValueCategory = xvalue -# 1585| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1585| Type = [LValueReferenceType] type & -# 1585| ValueCategory = prvalue -# 1585| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1585| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1585| ValueCategory = lvalue -# 1585| getDeclarationEntry(2): [VariableDeclarationEntry] definition of d -# 1585| Type = [LValueReferenceType] type & +# 1632| getExpr(): [FunctionCall] call to get +# 1632| Type = [LValueReferenceType] type & +# 1632| ValueCategory = prvalue +# 1632| getQualifier(): [VariableAccess] (unnamed local variable) +# 1632| Type = [Struct] StructuredBindingTupleRefGet +# 1632| ValueCategory = xvalue +# 1632| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1632| Type = [LValueReferenceType] type & +# 1632| ValueCategory = prvalue +# 1632| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1632| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1632| ValueCategory = lvalue +# 1632| getDeclarationEntry(2): [VariableDeclarationEntry] definition of d +# 1632| Type = [LValueReferenceType] type & #-----| getVariable().getInitializer(): [Initializer] initializer for d -# 1585| getExpr(): [FunctionCall] call to get -# 1585| Type = [LValueReferenceType] type & -# 1585| ValueCategory = prvalue -# 1585| getQualifier(): [VariableAccess] (unnamed local variable) -# 1585| Type = [Struct] StructuredBindingTupleRefGet -# 1585| ValueCategory = xvalue -# 1585| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1585| Type = [LValueReferenceType] type & -# 1585| ValueCategory = prvalue -# 1585| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1585| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1585| ValueCategory = lvalue -# 1585| getDeclarationEntry(3): [VariableDeclarationEntry] definition of r -# 1585| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1632| getExpr(): [FunctionCall] call to get +# 1632| Type = [LValueReferenceType] type & +# 1632| ValueCategory = prvalue +# 1632| getQualifier(): [VariableAccess] (unnamed local variable) +# 1632| Type = [Struct] StructuredBindingTupleRefGet +# 1632| ValueCategory = xvalue +# 1632| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1632| Type = [LValueReferenceType] type & +# 1632| ValueCategory = prvalue +# 1632| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1632| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1632| ValueCategory = lvalue +# 1632| getDeclarationEntry(3): [VariableDeclarationEntry] definition of r +# 1632| Type = [NestedTypedefType,UsingAliasTypedefType] type #-----| getVariable().getInitializer(): [Initializer] initializer for r -# 1585| getExpr(): [FunctionCall] call to get -# 1585| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1585| ValueCategory = prvalue -# 1585| getQualifier(): [VariableAccess] (unnamed local variable) -# 1585| Type = [Struct] StructuredBindingTupleRefGet -# 1585| ValueCategory = xvalue -# 1585| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1585| Type = [LValueReferenceType] int & -# 1585| ValueCategory = prvalue -# 1585| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1585| Type = [IntType] int -# 1585| ValueCategory = lvalue -# 1586| getStmt(1): [ExprStmt] ExprStmt -# 1586| getExpr(): [AssignExpr] ... = ... -# 1586| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1586| ValueCategory = lvalue -# 1586| getLValue(): [VariableAccess] d -# 1586| Type = [LValueReferenceType] type & -# 1586| ValueCategory = prvalue(load) -# 1586| getRValue(): [Literal] 4.0 -# 1586| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1586| Value = [Literal] 4.0 -# 1586| ValueCategory = prvalue -# 1586| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1586| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1586| ValueCategory = lvalue -# 1587| getStmt(2): [DeclStmt] declaration -# 1587| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1587| Type = [LValueReferenceType] double & -# 1587| getVariable().getInitializer(): [Initializer] initializer for rd -# 1587| getExpr(): [VariableAccess] d -# 1587| Type = [LValueReferenceType] type & -# 1587| ValueCategory = prvalue(load) -# 1587| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1587| Type = [LValueReferenceType] type & -# 1587| ValueCategory = prvalue -# 1587| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1587| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1587| ValueCategory = lvalue -# 1588| getStmt(3): [DeclStmt] declaration -# 1588| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1588| Type = [IntType] int -# 1588| getVariable().getInitializer(): [Initializer] initializer for v -# 1588| getExpr(): [VariableAccess] i -# 1588| Type = [LValueReferenceType] type & -# 1588| ValueCategory = prvalue(load) -# 1588| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1588| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1588| ValueCategory = prvalue(load) -# 1589| getStmt(4): [ExprStmt] ExprStmt -# 1589| getExpr(): [AssignExpr] ... = ... -# 1589| Type = [IntType] int -# 1589| ValueCategory = lvalue -# 1589| getLValue(): [VariableAccess] r -# 1589| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1589| ValueCategory = prvalue(load) -# 1589| getRValue(): [Literal] 5 -# 1589| Type = [IntType] int -# 1589| Value = [Literal] 5 -# 1589| ValueCategory = prvalue -# 1589| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1589| Type = [IntType] int -# 1589| ValueCategory = lvalue -# 1590| getStmt(5): [DeclStmt] declaration -# 1590| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1590| Type = [LValueReferenceType] int & -# 1590| getVariable().getInitializer(): [Initializer] initializer for rr -# 1590| getExpr(): [VariableAccess] r -# 1590| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1590| ValueCategory = prvalue(load) -# 1590| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1590| Type = [LValueReferenceType] int & -# 1590| ValueCategory = prvalue -# 1590| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1590| Type = [IntType] int -# 1590| ValueCategory = lvalue -# 1591| getStmt(6): [DeclStmt] declaration -# 1591| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1591| Type = [IntType] int -# 1591| getVariable().getInitializer(): [Initializer] initializer for w -# 1591| getExpr(): [VariableAccess] r -# 1591| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1591| ValueCategory = prvalue(load) -# 1591| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1591| Type = [IntType] int -# 1591| ValueCategory = prvalue(load) -# 1594| getStmt(2): [BlockStmt] { ... } -# 1595| getStmt(0): [DeclStmt] declaration -# 1595| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable -# 1595| Type = [Struct] StructuredBindingTupleRefGet -# 1595| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable -# 1595| getExpr(): [VariableAccess] t -# 1595| Type = [Struct] StructuredBindingTupleRefGet -# 1595| ValueCategory = prvalue(load) -# 1596| getStmt(1): [DeclStmt] declaration -# 1596| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1596| Type = [LValueReferenceType] type & -# 1596| getVariable().getInitializer(): [Initializer] initializer for i -# 1596| getExpr(): [FunctionCall] call to get -# 1596| Type = [LValueReferenceType] type & -# 1596| ValueCategory = prvalue -# 1596| getQualifier(): [VariableAccess] unnamed_local_variable -# 1596| Type = [Struct] StructuredBindingTupleRefGet -# 1596| ValueCategory = lvalue -# 1596| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1596| Type = [LValueReferenceType] type & -# 1596| ValueCategory = prvalue -# 1596| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1596| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1596| ValueCategory = lvalue -# 1597| getStmt(2): [DeclStmt] declaration -# 1597| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1597| Type = [LValueReferenceType] type & -# 1597| getVariable().getInitializer(): [Initializer] initializer for d -# 1597| getExpr(): [FunctionCall] call to get -# 1597| Type = [LValueReferenceType] type & -# 1597| ValueCategory = prvalue -# 1597| getQualifier(): [VariableAccess] unnamed_local_variable -# 1597| Type = [Struct] StructuredBindingTupleRefGet -# 1597| ValueCategory = lvalue -# 1597| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1597| Type = [LValueReferenceType] type & -# 1597| ValueCategory = prvalue -# 1597| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1597| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1597| ValueCategory = lvalue -# 1598| getStmt(3): [DeclStmt] declaration -# 1598| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r -# 1598| Type = [LValueReferenceType] int & -# 1598| getVariable().getInitializer(): [Initializer] initializer for r -# 1598| getExpr(): [FunctionCall] call to get -# 1598| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1598| ValueCategory = prvalue -# 1598| getQualifier(): [VariableAccess] unnamed_local_variable -# 1598| Type = [Struct] StructuredBindingTupleRefGet -# 1598| ValueCategory = lvalue -# 1598| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1598| Type = [LValueReferenceType] int & -# 1598| ValueCategory = prvalue -# 1598| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1598| Type = [IntType] int -# 1598| ValueCategory = lvalue -# 1599| getStmt(4): [ExprStmt] ExprStmt -# 1599| getExpr(): [AssignExpr] ... = ... -# 1599| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1599| ValueCategory = lvalue -# 1599| getLValue(): [VariableAccess] d -# 1599| Type = [LValueReferenceType] type & -# 1599| ValueCategory = prvalue(load) -# 1599| getRValue(): [Literal] 4.0 -# 1599| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1599| Value = [Literal] 4.0 -# 1599| ValueCategory = prvalue -# 1599| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1599| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1599| ValueCategory = lvalue -# 1600| getStmt(5): [DeclStmt] declaration -# 1600| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd -# 1600| Type = [LValueReferenceType] double & -# 1600| getVariable().getInitializer(): [Initializer] initializer for rd -# 1600| getExpr(): [VariableAccess] d -# 1600| Type = [LValueReferenceType] type & -# 1600| ValueCategory = prvalue(load) -# 1600| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1600| Type = [LValueReferenceType] type & -# 1600| ValueCategory = prvalue -# 1600| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1600| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1600| ValueCategory = lvalue -# 1601| getStmt(6): [DeclStmt] declaration -# 1601| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1601| Type = [IntType] int -# 1601| getVariable().getInitializer(): [Initializer] initializer for v -# 1601| getExpr(): [VariableAccess] i -# 1601| Type = [LValueReferenceType] type & -# 1601| ValueCategory = prvalue(load) -# 1601| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1601| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1601| ValueCategory = prvalue(load) -# 1602| getStmt(7): [ExprStmt] ExprStmt -# 1602| getExpr(): [AssignExpr] ... = ... -# 1602| Type = [IntType] int -# 1602| ValueCategory = lvalue -# 1602| getLValue(): [VariableAccess] r -# 1602| Type = [LValueReferenceType] int & -# 1602| ValueCategory = prvalue(load) -# 1602| getRValue(): [Literal] 5 -# 1602| Type = [IntType] int -# 1602| Value = [Literal] 5 -# 1602| ValueCategory = prvalue -# 1602| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1602| Type = [IntType] int -# 1602| ValueCategory = lvalue -# 1603| getStmt(8): [DeclStmt] declaration -# 1603| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1603| Type = [LValueReferenceType] int & -# 1603| getVariable().getInitializer(): [Initializer] initializer for rr -# 1603| getExpr(): [VariableAccess] r -# 1603| Type = [LValueReferenceType] int & -# 1603| ValueCategory = prvalue(load) -# 1603| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1603| Type = [LValueReferenceType] int & -# 1603| ValueCategory = prvalue -# 1603| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1603| Type = [IntType] int -# 1603| ValueCategory = lvalue -# 1604| getStmt(9): [DeclStmt] declaration -# 1604| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1604| Type = [IntType] int -# 1604| getVariable().getInitializer(): [Initializer] initializer for w -# 1604| getExpr(): [VariableAccess] r -# 1604| Type = [LValueReferenceType] int & -# 1604| ValueCategory = prvalue(load) -# 1604| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1604| Type = [IntType] int -# 1604| ValueCategory = prvalue(load) -# 1606| getStmt(3): [ReturnStmt] return ... -# 1608| [CopyAssignmentOperator] StructuredBindingTupleNoRefGet& StructuredBindingTupleNoRefGet::operator=(StructuredBindingTupleNoRefGet const&) -# 1608| <params>: +# 1632| getExpr(): [FunctionCall] call to get +# 1632| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1632| ValueCategory = prvalue +# 1632| getQualifier(): [VariableAccess] (unnamed local variable) +# 1632| Type = [Struct] StructuredBindingTupleRefGet +# 1632| ValueCategory = xvalue +# 1632| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1632| Type = [LValueReferenceType] int & +# 1632| ValueCategory = prvalue +# 1632| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1632| Type = [IntType] int +# 1632| ValueCategory = lvalue +# 1633| getStmt(1): [ExprStmt] ExprStmt +# 1633| getExpr(): [AssignExpr] ... = ... +# 1633| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1633| ValueCategory = lvalue +# 1633| getLValue(): [VariableAccess] d +# 1633| Type = [LValueReferenceType] type & +# 1633| ValueCategory = prvalue(load) +# 1633| getRValue(): [Literal] 4.0 +# 1633| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1633| Value = [Literal] 4.0 +# 1633| ValueCategory = prvalue +# 1633| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1633| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1633| ValueCategory = lvalue +# 1634| getStmt(2): [DeclStmt] declaration +# 1634| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1634| Type = [LValueReferenceType] double & +# 1634| getVariable().getInitializer(): [Initializer] initializer for rd +# 1634| getExpr(): [VariableAccess] d +# 1634| Type = [LValueReferenceType] type & +# 1634| ValueCategory = prvalue(load) +# 1634| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1634| Type = [LValueReferenceType] type & +# 1634| ValueCategory = prvalue +# 1634| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1634| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1634| ValueCategory = lvalue +# 1635| getStmt(3): [DeclStmt] declaration +# 1635| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1635| Type = [IntType] int +# 1635| getVariable().getInitializer(): [Initializer] initializer for v +# 1635| getExpr(): [VariableAccess] i +# 1635| Type = [LValueReferenceType] type & +# 1635| ValueCategory = prvalue(load) +# 1635| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1635| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1635| ValueCategory = prvalue(load) +# 1636| getStmt(4): [ExprStmt] ExprStmt +# 1636| getExpr(): [AssignExpr] ... = ... +# 1636| Type = [IntType] int +# 1636| ValueCategory = lvalue +# 1636| getLValue(): [VariableAccess] r +# 1636| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1636| ValueCategory = prvalue(load) +# 1636| getRValue(): [Literal] 5 +# 1636| Type = [IntType] int +# 1636| Value = [Literal] 5 +# 1636| ValueCategory = prvalue +# 1636| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1636| Type = [IntType] int +# 1636| ValueCategory = lvalue +# 1637| getStmt(5): [DeclStmt] declaration +# 1637| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1637| Type = [LValueReferenceType] int & +# 1637| getVariable().getInitializer(): [Initializer] initializer for rr +# 1637| getExpr(): [VariableAccess] r +# 1637| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1637| ValueCategory = prvalue(load) +# 1637| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1637| Type = [LValueReferenceType] int & +# 1637| ValueCategory = prvalue +# 1637| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1637| Type = [IntType] int +# 1637| ValueCategory = lvalue +# 1638| getStmt(6): [DeclStmt] declaration +# 1638| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1638| Type = [IntType] int +# 1638| getVariable().getInitializer(): [Initializer] initializer for w +# 1638| getExpr(): [VariableAccess] r +# 1638| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1638| ValueCategory = prvalue(load) +# 1638| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1638| Type = [IntType] int +# 1638| ValueCategory = prvalue(load) +# 1641| getStmt(2): [BlockStmt] { ... } +# 1642| getStmt(0): [DeclStmt] declaration +# 1642| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable +# 1642| Type = [Struct] StructuredBindingTupleRefGet +# 1642| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable +# 1642| getExpr(): [VariableAccess] t +# 1642| Type = [Struct] StructuredBindingTupleRefGet +# 1642| ValueCategory = prvalue(load) +# 1643| getStmt(1): [DeclStmt] declaration +# 1643| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1643| Type = [LValueReferenceType] type & +# 1643| getVariable().getInitializer(): [Initializer] initializer for i +# 1643| getExpr(): [FunctionCall] call to get +# 1643| Type = [LValueReferenceType] type & +# 1643| ValueCategory = prvalue +# 1643| getQualifier(): [VariableAccess] unnamed_local_variable +# 1643| Type = [Struct] StructuredBindingTupleRefGet +# 1643| ValueCategory = lvalue +# 1643| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1643| Type = [LValueReferenceType] type & +# 1643| ValueCategory = prvalue +# 1643| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1643| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1643| ValueCategory = lvalue +# 1644| getStmt(2): [DeclStmt] declaration +# 1644| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 1644| Type = [LValueReferenceType] type & +# 1644| getVariable().getInitializer(): [Initializer] initializer for d +# 1644| getExpr(): [FunctionCall] call to get +# 1644| Type = [LValueReferenceType] type & +# 1644| ValueCategory = prvalue +# 1644| getQualifier(): [VariableAccess] unnamed_local_variable +# 1644| Type = [Struct] StructuredBindingTupleRefGet +# 1644| ValueCategory = lvalue +# 1644| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1644| Type = [LValueReferenceType] type & +# 1644| ValueCategory = prvalue +# 1644| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1644| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1644| ValueCategory = lvalue +# 1645| getStmt(3): [DeclStmt] declaration +# 1645| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r +# 1645| Type = [LValueReferenceType] int & +# 1645| getVariable().getInitializer(): [Initializer] initializer for r +# 1645| getExpr(): [FunctionCall] call to get +# 1645| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1645| ValueCategory = prvalue +# 1645| getQualifier(): [VariableAccess] unnamed_local_variable +# 1645| Type = [Struct] StructuredBindingTupleRefGet +# 1645| ValueCategory = lvalue +# 1645| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1645| Type = [LValueReferenceType] int & +# 1645| ValueCategory = prvalue +# 1645| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1645| Type = [IntType] int +# 1645| ValueCategory = lvalue +# 1646| getStmt(4): [ExprStmt] ExprStmt +# 1646| getExpr(): [AssignExpr] ... = ... +# 1646| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1646| ValueCategory = lvalue +# 1646| getLValue(): [VariableAccess] d +# 1646| Type = [LValueReferenceType] type & +# 1646| ValueCategory = prvalue(load) +# 1646| getRValue(): [Literal] 4.0 +# 1646| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1646| Value = [Literal] 4.0 +# 1646| ValueCategory = prvalue +# 1646| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1646| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1646| ValueCategory = lvalue +# 1647| getStmt(5): [DeclStmt] declaration +# 1647| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rd +# 1647| Type = [LValueReferenceType] double & +# 1647| getVariable().getInitializer(): [Initializer] initializer for rd +# 1647| getExpr(): [VariableAccess] d +# 1647| Type = [LValueReferenceType] type & +# 1647| ValueCategory = prvalue(load) +# 1647| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1647| Type = [LValueReferenceType] type & +# 1647| ValueCategory = prvalue +# 1647| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1647| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1647| ValueCategory = lvalue +# 1648| getStmt(6): [DeclStmt] declaration +# 1648| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1648| Type = [IntType] int +# 1648| getVariable().getInitializer(): [Initializer] initializer for v +# 1648| getExpr(): [VariableAccess] i +# 1648| Type = [LValueReferenceType] type & +# 1648| ValueCategory = prvalue(load) +# 1648| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1648| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1648| ValueCategory = prvalue(load) +# 1649| getStmt(7): [ExprStmt] ExprStmt +# 1649| getExpr(): [AssignExpr] ... = ... +# 1649| Type = [IntType] int +# 1649| ValueCategory = lvalue +# 1649| getLValue(): [VariableAccess] r +# 1649| Type = [LValueReferenceType] int & +# 1649| ValueCategory = prvalue(load) +# 1649| getRValue(): [Literal] 5 +# 1649| Type = [IntType] int +# 1649| Value = [Literal] 5 +# 1649| ValueCategory = prvalue +# 1649| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1649| Type = [IntType] int +# 1649| ValueCategory = lvalue +# 1650| getStmt(8): [DeclStmt] declaration +# 1650| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1650| Type = [LValueReferenceType] int & +# 1650| getVariable().getInitializer(): [Initializer] initializer for rr +# 1650| getExpr(): [VariableAccess] r +# 1650| Type = [LValueReferenceType] int & +# 1650| ValueCategory = prvalue(load) +# 1650| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1650| Type = [LValueReferenceType] int & +# 1650| ValueCategory = prvalue +# 1650| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1650| Type = [IntType] int +# 1650| ValueCategory = lvalue +# 1651| getStmt(9): [DeclStmt] declaration +# 1651| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1651| Type = [IntType] int +# 1651| getVariable().getInitializer(): [Initializer] initializer for w +# 1651| getExpr(): [VariableAccess] r +# 1651| Type = [LValueReferenceType] int & +# 1651| ValueCategory = prvalue(load) +# 1651| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1651| Type = [IntType] int +# 1651| ValueCategory = prvalue(load) +# 1653| getStmt(3): [ReturnStmt] return ... +# 1655| [CopyAssignmentOperator] StructuredBindingTupleNoRefGet& StructuredBindingTupleNoRefGet::operator=(StructuredBindingTupleNoRefGet const&) +# 1655| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingTupleNoRefGet & -# 1608| [Constructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() -# 1608| <params>: -# 1608| <initializations>: -# 1608| getInitializer(0): [ConstructorFieldInit] constructor init of field i -# 1608| Type = [IntType] int -# 1608| ValueCategory = prvalue -# 1608| getInitializer(1): [ConstructorFieldInit] constructor init of field r -# 1608| Type = [LValueReferenceType] int & -# 1608| ValueCategory = prvalue -# 1608| getEntryPoint(): [BlockStmt] { ... } -# 1608| getStmt(0): [ReturnStmt] return ... -# 1608| [CopyConstructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet(StructuredBindingTupleNoRefGet const&) -# 1608| <params>: +# 1655| [Constructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() +# 1655| <params>: +# 1655| <initializations>: +# 1655| getInitializer(0): [ConstructorFieldInit] constructor init of field i +# 1655| Type = [IntType] int +# 1655| ValueCategory = prvalue +# 1655| getInitializer(1): [ConstructorFieldInit] constructor init of field r +# 1655| Type = [LValueReferenceType] int & +# 1655| ValueCategory = prvalue +# 1655| getEntryPoint(): [BlockStmt] { ... } +# 1655| getStmt(0): [ReturnStmt] return ... +# 1655| [CopyConstructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet(StructuredBindingTupleNoRefGet const&) +# 1655| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const StructuredBindingTupleNoRefGet & -# 1608| [MoveConstructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet(StructuredBindingTupleNoRefGet&&) -# 1608| <params>: +# 1655| [MoveConstructor] void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet(StructuredBindingTupleNoRefGet&&) +# 1655| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] StructuredBindingTupleNoRefGet && -# 1613| [MemberFunction,TemplateFunction] type StructuredBindingTupleNoRefGet::get<int i>() -# 1613| <params>: -# 1617| [CopyAssignmentOperator] std::tuple_size<StructuredBindingTupleNoRefGet>& std::tuple_size<StructuredBindingTupleNoRefGet>::operator=(std::tuple_size<StructuredBindingTupleNoRefGet> const&) -# 1617| <params>: +# 1660| [MemberFunction,TemplateFunction] type StructuredBindingTupleNoRefGet::get<int i>() +# 1660| <params>: +# 1664| [CopyAssignmentOperator] std::tuple_size<StructuredBindingTupleNoRefGet>& std::tuple_size<StructuredBindingTupleNoRefGet>::operator=(std::tuple_size<StructuredBindingTupleNoRefGet> const&) +# 1664| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_size<StructuredBindingTupleNoRefGet> & -# 1617| [MoveAssignmentOperator] std::tuple_size<StructuredBindingTupleNoRefGet>& std::tuple_size<StructuredBindingTupleNoRefGet>::operator=(std::tuple_size<StructuredBindingTupleNoRefGet>&&) -# 1617| <params>: +# 1664| [MoveAssignmentOperator] std::tuple_size<StructuredBindingTupleNoRefGet>& std::tuple_size<StructuredBindingTupleNoRefGet>::operator=(std::tuple_size<StructuredBindingTupleNoRefGet>&&) +# 1664| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_size<StructuredBindingTupleNoRefGet> && -# 1622| [CopyAssignmentOperator] std::tuple_element<int 0, StructuredBindingTupleNoRefGet>& std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 0, StructuredBindingTupleNoRefGet> const&) -# 1622| <params>: +# 1669| [CopyAssignmentOperator] std::tuple_element<int 0, StructuredBindingTupleNoRefGet>& std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 0, StructuredBindingTupleNoRefGet> const&) +# 1669| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<0, StructuredBindingTupleNoRefGet> & -# 1622| [MoveAssignmentOperator] std::tuple_element<int 0, StructuredBindingTupleNoRefGet>& std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 0, StructuredBindingTupleNoRefGet>&&) -# 1622| <params>: +# 1669| [MoveAssignmentOperator] std::tuple_element<int 0, StructuredBindingTupleNoRefGet>& std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 0, StructuredBindingTupleNoRefGet>&&) +# 1669| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<0, StructuredBindingTupleNoRefGet> && -# 1626| [CopyAssignmentOperator] std::tuple_element<int 1, StructuredBindingTupleNoRefGet>& std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 1, StructuredBindingTupleNoRefGet> const&) -# 1626| <params>: +# 1673| [CopyAssignmentOperator] std::tuple_element<int 1, StructuredBindingTupleNoRefGet>& std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 1, StructuredBindingTupleNoRefGet> const&) +# 1673| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<1, StructuredBindingTupleNoRefGet> & -# 1626| [MoveAssignmentOperator] std::tuple_element<int 1, StructuredBindingTupleNoRefGet>& std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 1, StructuredBindingTupleNoRefGet>&&) -# 1626| <params>: +# 1673| [MoveAssignmentOperator] std::tuple_element<int 1, StructuredBindingTupleNoRefGet>& std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 1, StructuredBindingTupleNoRefGet>&&) +# 1673| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<1, StructuredBindingTupleNoRefGet> && -# 1630| [CopyAssignmentOperator] std::tuple_element<int 2, StructuredBindingTupleNoRefGet>& std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 2, StructuredBindingTupleNoRefGet> const&) -# 1630| <params>: +# 1677| [CopyAssignmentOperator] std::tuple_element<int 2, StructuredBindingTupleNoRefGet>& std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 2, StructuredBindingTupleNoRefGet> const&) +# 1677| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const tuple_element<2, StructuredBindingTupleNoRefGet> & -# 1630| [MoveAssignmentOperator] std::tuple_element<int 2, StructuredBindingTupleNoRefGet>& std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 2, StructuredBindingTupleNoRefGet>&&) -# 1630| <params>: +# 1677| [MoveAssignmentOperator] std::tuple_element<int 2, StructuredBindingTupleNoRefGet>& std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::operator=(std::tuple_element<int 2, StructuredBindingTupleNoRefGet>&&) +# 1677| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] tuple_element<2, StructuredBindingTupleNoRefGet> && -# 1635| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 0>() -# 1635| <params>: -# 1635| getEntryPoint(): [BlockStmt] { ... } -# 1636| getStmt(0): [ReturnStmt] return ... -# 1636| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] i -# 1636| Type = [IntType] int -# 1636| ValueCategory = prvalue(load) -# 1636| getQualifier(): [ThisExpr] this -# 1636| Type = [PointerType] StructuredBindingTupleNoRefGet * -# 1636| ValueCategory = prvalue(load) -# 1639| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 1>() -# 1639| <params>: -# 1639| getEntryPoint(): [BlockStmt] { ... } -# 1640| getStmt(0): [ReturnStmt] return ... -# 1640| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] r -# 1640| Type = [LValueReferenceType] int & -# 1640| ValueCategory = prvalue(load) -# 1640| getQualifier(): [ThisExpr] this -# 1640| Type = [PointerType] StructuredBindingTupleNoRefGet * -# 1640| ValueCategory = prvalue(load) -# 1640| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1640| Type = [LValueReferenceType] int & -# 1640| ValueCategory = prvalue -# 1640| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1640| Type = [IntType] int -# 1640| ValueCategory = lvalue -# 1643| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 2>() -# 1643| <params>: -# 1643| getEntryPoint(): [BlockStmt] { ... } -# 1644| getStmt(0): [ReturnStmt] return ... -# 1644| getExpr(): [Literal] 5 -# 1644| Type = [IntType] int -# 1644| Value = [Literal] 5 -# 1644| ValueCategory = prvalue -# 1644| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1644| Type = [LValueReferenceType] int & -# 1644| ValueCategory = prvalue -# 1644| getExpr(): [TemporaryObjectExpr] temporary object -# 1644| Type = [IntType] int -# 1644| ValueCategory = lvalue -# 1647| [TopLevelFunction] void tuple_structured_binding_no_ref_get() -# 1647| <params>: -# 1647| getEntryPoint(): [BlockStmt] { ... } -# 1648| getStmt(0): [DeclStmt] declaration -# 1648| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t -# 1648| Type = [Struct] StructuredBindingTupleNoRefGet -# 1648| getVariable().getInitializer(): [Initializer] initializer for t -# 1648| getExpr(): [ConstructorCall] call to StructuredBindingTupleNoRefGet -# 1648| Type = [VoidType] void -# 1648| ValueCategory = prvalue -# 1650| getStmt(1): [BlockStmt] { ... } -# 1651| getStmt(0): [DeclStmt] declaration -# 1651| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1651| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1651| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1651| getExpr(): [VariableAccess] t -# 1651| Type = [Struct] StructuredBindingTupleNoRefGet -# 1651| ValueCategory = lvalue -# 1651| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1651| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1651| ValueCategory = prvalue -# 1651| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i -# 1651| Type = [RValueReferenceType] type && +# 1682| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 0>() +# 1682| <params>: +# 1682| getEntryPoint(): [BlockStmt] { ... } +# 1683| getStmt(0): [ReturnStmt] return ... +# 1683| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] i +# 1683| Type = [IntType] int +# 1683| ValueCategory = prvalue(load) +# 1683| getQualifier(): [ThisExpr] this +# 1683| Type = [PointerType] StructuredBindingTupleNoRefGet * +# 1683| ValueCategory = prvalue(load) +# 1686| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 1>() +# 1686| <params>: +# 1686| getEntryPoint(): [BlockStmt] { ... } +# 1687| getStmt(0): [ReturnStmt] return ... +# 1687| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] r +# 1687| Type = [LValueReferenceType] int & +# 1687| ValueCategory = prvalue(load) +# 1687| getQualifier(): [ThisExpr] this +# 1687| Type = [PointerType] StructuredBindingTupleNoRefGet * +# 1687| ValueCategory = prvalue(load) +# 1687| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1687| Type = [LValueReferenceType] int & +# 1687| ValueCategory = prvalue +# 1687| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1687| Type = [IntType] int +# 1687| ValueCategory = lvalue +# 1690| [FunctionTemplateSpecialization,MemberFunction] std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 2>() +# 1690| <params>: +# 1690| getEntryPoint(): [BlockStmt] { ... } +# 1691| getStmt(0): [ReturnStmt] return ... +# 1691| getExpr(): [Literal] 5 +# 1691| Type = [IntType] int +# 1691| Value = [Literal] 5 +# 1691| ValueCategory = prvalue +# 1691| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1691| Type = [LValueReferenceType] int & +# 1691| ValueCategory = prvalue +# 1691| getExpr(): [TemporaryObjectExpr] temporary object +# 1691| Type = [IntType] int +# 1691| ValueCategory = lvalue +# 1694| [TopLevelFunction] void tuple_structured_binding_no_ref_get() +# 1694| <params>: +# 1694| getEntryPoint(): [BlockStmt] { ... } +# 1695| getStmt(0): [DeclStmt] declaration +# 1695| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t +# 1695| Type = [Struct] StructuredBindingTupleNoRefGet +# 1695| getVariable().getInitializer(): [Initializer] initializer for t +# 1695| getExpr(): [ConstructorCall] call to StructuredBindingTupleNoRefGet +# 1695| Type = [VoidType] void +# 1695| ValueCategory = prvalue +# 1697| getStmt(1): [BlockStmt] { ... } +# 1698| getStmt(0): [DeclStmt] declaration +# 1698| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1698| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1698| getExpr(): [VariableAccess] t +# 1698| Type = [Struct] StructuredBindingTupleNoRefGet +# 1698| ValueCategory = lvalue +# 1698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1698| ValueCategory = prvalue +# 1698| getDeclarationEntry(1): [VariableDeclarationEntry] definition of i +# 1698| Type = [RValueReferenceType] type && #-----| getVariable().getInitializer(): [Initializer] initializer for i -# 1651| getExpr(): [FunctionCall] call to get -# 1651| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1651| ValueCategory = prvalue -# 1651| getQualifier(): [VariableAccess] (unnamed local variable) -# 1651| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1651| ValueCategory = prvalue(load) -# 1651| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1651| Type = [Struct] StructuredBindingTupleNoRefGet -# 1651| ValueCategory = lvalue -# 1651| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1651| Type = [LValueReferenceType] type & -# 1651| ValueCategory = prvalue -# 1651| getExpr(): [TemporaryObjectExpr] temporary object -# 1651| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1651| ValueCategory = lvalue -# 1651| getDeclarationEntry(2): [VariableDeclarationEntry] definition of r -# 1651| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1698| getExpr(): [FunctionCall] call to get +# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1698| ValueCategory = prvalue +# 1698| getQualifier(): [VariableAccess] (unnamed local variable) +# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1698| ValueCategory = prvalue(load) +# 1698| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1698| Type = [Struct] StructuredBindingTupleNoRefGet +# 1698| ValueCategory = lvalue +# 1698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1698| Type = [LValueReferenceType] type & +# 1698| ValueCategory = prvalue +# 1698| getExpr(): [TemporaryObjectExpr] temporary object +# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1698| ValueCategory = lvalue +# 1698| getDeclarationEntry(2): [VariableDeclarationEntry] definition of r +# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type #-----| getVariable().getInitializer(): [Initializer] initializer for r -# 1651| getExpr(): [FunctionCall] call to get -# 1651| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1651| ValueCategory = prvalue -# 1651| getQualifier(): [VariableAccess] (unnamed local variable) -# 1651| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1651| ValueCategory = prvalue(load) -# 1651| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1651| Type = [Struct] StructuredBindingTupleNoRefGet -# 1651| ValueCategory = lvalue -# 1651| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1651| Type = [LValueReferenceType] int & -# 1651| ValueCategory = prvalue -# 1651| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1651| Type = [IntType] int -# 1651| ValueCategory = lvalue -# 1651| getDeclarationEntry(3): [VariableDeclarationEntry] definition of rv -# 1651| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1698| getExpr(): [FunctionCall] call to get +# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1698| ValueCategory = prvalue +# 1698| getQualifier(): [VariableAccess] (unnamed local variable) +# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1698| ValueCategory = prvalue(load) +# 1698| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1698| Type = [Struct] StructuredBindingTupleNoRefGet +# 1698| ValueCategory = lvalue +# 1698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1698| Type = [LValueReferenceType] int & +# 1698| ValueCategory = prvalue +# 1698| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1698| Type = [IntType] int +# 1698| ValueCategory = lvalue +# 1698| getDeclarationEntry(3): [VariableDeclarationEntry] definition of rv +# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type #-----| getVariable().getInitializer(): [Initializer] initializer for rv -# 1651| getExpr(): [FunctionCall] call to get -# 1651| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1651| ValueCategory = prvalue -# 1651| getQualifier(): [VariableAccess] (unnamed local variable) -# 1651| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1651| ValueCategory = prvalue(load) -# 1651| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1651| Type = [Struct] StructuredBindingTupleNoRefGet -# 1651| ValueCategory = lvalue -# 1651| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1651| Type = [LValueReferenceType] int & -# 1651| ValueCategory = prvalue -# 1651| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1651| Type = [IntType] int -# 1651| ValueCategory = xvalue -# 1652| getStmt(1): [ExprStmt] ExprStmt -# 1652| getExpr(): [AssignExpr] ... = ... -# 1652| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1652| ValueCategory = lvalue -# 1652| getLValue(): [VariableAccess] i -# 1652| Type = [RValueReferenceType] type && -# 1652| ValueCategory = prvalue(load) -# 1652| getRValue(): [Literal] 4 -# 1652| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1652| Value = [Literal] 4 -# 1652| ValueCategory = prvalue -# 1652| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1652| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1652| ValueCategory = lvalue -# 1653| getStmt(2): [DeclStmt] declaration -# 1653| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ri -# 1653| Type = [LValueReferenceType] int & -# 1653| getVariable().getInitializer(): [Initializer] initializer for ri -# 1653| getExpr(): [VariableAccess] i -# 1653| Type = [RValueReferenceType] type && -# 1653| ValueCategory = prvalue(load) -# 1653| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1653| Type = [LValueReferenceType] type & -# 1653| ValueCategory = prvalue -# 1653| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1653| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1653| ValueCategory = lvalue -# 1654| getStmt(3): [DeclStmt] declaration -# 1654| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1654| Type = [IntType] int -# 1654| getVariable().getInitializer(): [Initializer] initializer for v -# 1654| getExpr(): [VariableAccess] i -# 1654| Type = [RValueReferenceType] type && -# 1654| ValueCategory = prvalue(load) -# 1654| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1654| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1654| ValueCategory = prvalue(load) -# 1655| getStmt(4): [ExprStmt] ExprStmt -# 1655| getExpr(): [AssignExpr] ... = ... -# 1655| Type = [IntType] int -# 1655| ValueCategory = lvalue -# 1655| getLValue(): [VariableAccess] r -# 1655| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1655| ValueCategory = prvalue(load) -# 1655| getRValue(): [Literal] 5 -# 1655| Type = [IntType] int -# 1655| Value = [Literal] 5 -# 1655| ValueCategory = prvalue -# 1655| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1655| Type = [IntType] int -# 1655| ValueCategory = lvalue -# 1656| getStmt(5): [DeclStmt] declaration -# 1656| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1656| Type = [LValueReferenceType] int & -# 1656| getVariable().getInitializer(): [Initializer] initializer for rr -# 1656| getExpr(): [VariableAccess] r -# 1656| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1656| ValueCategory = prvalue(load) -# 1656| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1656| Type = [LValueReferenceType] int & -# 1656| ValueCategory = prvalue -# 1656| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1656| Type = [IntType] int -# 1656| ValueCategory = lvalue -# 1657| getStmt(6): [DeclStmt] declaration -# 1657| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1657| Type = [IntType] int -# 1657| getVariable().getInitializer(): [Initializer] initializer for w -# 1657| getExpr(): [VariableAccess] r -# 1657| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1657| ValueCategory = prvalue(load) -# 1657| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1657| Type = [IntType] int -# 1657| ValueCategory = prvalue(load) -# 1660| getStmt(2): [BlockStmt] { ... } -# 1661| getStmt(0): [DeclStmt] declaration -# 1661| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable -# 1661| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1661| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable -# 1661| getExpr(): [VariableAccess] t -# 1661| Type = [Struct] StructuredBindingTupleNoRefGet -# 1661| ValueCategory = lvalue -# 1661| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1661| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1661| ValueCategory = prvalue -# 1662| getStmt(1): [DeclStmt] declaration -# 1662| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1662| Type = [RValueReferenceType] type && -# 1662| getVariable().getInitializer(): [Initializer] initializer for i -# 1662| getExpr(): [FunctionCall] call to get -# 1662| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1662| ValueCategory = prvalue -# 1662| getQualifier(): [VariableAccess] unnamed_local_variable -# 1662| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1662| ValueCategory = prvalue(load) -# 1662| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1662| Type = [Struct] StructuredBindingTupleNoRefGet -# 1662| ValueCategory = lvalue -# 1662| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1662| Type = [LValueReferenceType] type & -# 1662| ValueCategory = prvalue -# 1662| getExpr(): [TemporaryObjectExpr] temporary object -# 1662| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1662| ValueCategory = lvalue -# 1663| getStmt(2): [DeclStmt] declaration -# 1663| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r -# 1663| Type = [LValueReferenceType] int & -# 1663| getVariable().getInitializer(): [Initializer] initializer for r -# 1663| getExpr(): [FunctionCall] call to get -# 1663| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1663| ValueCategory = prvalue -# 1663| getQualifier(): [VariableAccess] unnamed_local_variable -# 1663| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1663| ValueCategory = prvalue(load) -# 1663| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1663| Type = [Struct] StructuredBindingTupleNoRefGet -# 1663| ValueCategory = lvalue -# 1663| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1663| Type = [LValueReferenceType] int & -# 1663| ValueCategory = prvalue -# 1663| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1663| Type = [IntType] int -# 1663| ValueCategory = lvalue -# 1664| getStmt(3): [DeclStmt] declaration -# 1664| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rv -# 1664| Type = [RValueReferenceType] int && -# 1664| getVariable().getInitializer(): [Initializer] initializer for rv -# 1664| getExpr(): [FunctionCall] call to get -# 1664| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1664| ValueCategory = prvalue -# 1664| getQualifier(): [VariableAccess] unnamed_local_variable -# 1664| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & -# 1664| ValueCategory = prvalue(load) -# 1664| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1664| Type = [Struct] StructuredBindingTupleNoRefGet -# 1664| ValueCategory = lvalue -# 1664| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1664| Type = [LValueReferenceType] int & -# 1664| ValueCategory = prvalue -# 1664| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1664| Type = [IntType] int -# 1664| ValueCategory = xvalue -# 1665| getStmt(4): [ExprStmt] ExprStmt -# 1665| getExpr(): [AssignExpr] ... = ... -# 1665| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1665| ValueCategory = lvalue -# 1665| getLValue(): [VariableAccess] i -# 1665| Type = [RValueReferenceType] type && -# 1665| ValueCategory = prvalue(load) -# 1665| getRValue(): [Literal] 4 -# 1665| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1665| Value = [Literal] 4 -# 1665| ValueCategory = prvalue -# 1665| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1665| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1665| ValueCategory = lvalue -# 1666| getStmt(5): [DeclStmt] declaration -# 1666| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ri -# 1666| Type = [LValueReferenceType] int & -# 1666| getVariable().getInitializer(): [Initializer] initializer for ri -# 1666| getExpr(): [VariableAccess] i -# 1666| Type = [RValueReferenceType] type && -# 1666| ValueCategory = prvalue(load) -# 1666| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1666| Type = [LValueReferenceType] type & -# 1666| ValueCategory = prvalue -# 1666| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1666| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1666| ValueCategory = lvalue -# 1667| getStmt(6): [DeclStmt] declaration -# 1667| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1667| Type = [IntType] int -# 1667| getVariable().getInitializer(): [Initializer] initializer for v -# 1667| getExpr(): [VariableAccess] i -# 1667| Type = [RValueReferenceType] type && -# 1667| ValueCategory = prvalue(load) -# 1667| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1667| Type = [NestedTypedefType,UsingAliasTypedefType] type -# 1667| ValueCategory = prvalue(load) -# 1668| getStmt(7): [ExprStmt] ExprStmt -# 1668| getExpr(): [AssignExpr] ... = ... -# 1668| Type = [IntType] int -# 1668| ValueCategory = lvalue -# 1668| getLValue(): [VariableAccess] r -# 1668| Type = [LValueReferenceType] int & -# 1668| ValueCategory = prvalue(load) -# 1668| getRValue(): [Literal] 5 -# 1668| Type = [IntType] int -# 1668| Value = [Literal] 5 -# 1668| ValueCategory = prvalue -# 1668| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1668| Type = [IntType] int -# 1668| ValueCategory = lvalue -# 1669| getStmt(8): [DeclStmt] declaration -# 1669| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr -# 1669| Type = [LValueReferenceType] int & -# 1669| getVariable().getInitializer(): [Initializer] initializer for rr -# 1669| getExpr(): [VariableAccess] r -# 1669| Type = [LValueReferenceType] int & -# 1669| ValueCategory = prvalue(load) -# 1669| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1669| Type = [LValueReferenceType] int & -# 1669| ValueCategory = prvalue -# 1669| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1669| Type = [IntType] int -# 1669| ValueCategory = lvalue -# 1670| getStmt(9): [DeclStmt] declaration -# 1670| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1670| Type = [IntType] int -# 1670| getVariable().getInitializer(): [Initializer] initializer for w -# 1670| getExpr(): [VariableAccess] r -# 1670| Type = [LValueReferenceType] int & -# 1670| ValueCategory = prvalue(load) -# 1670| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1670| Type = [IntType] int -# 1670| ValueCategory = prvalue(load) -# 1672| getStmt(3): [ReturnStmt] return ... -# 1674| [TopLevelFunction] void array_structured_binding_non_ref_init() -# 1674| <params>: -# 1674| getEntryPoint(): [BlockStmt] { ... } -# 1675| getStmt(0): [DeclStmt] declaration -# 1675| getDeclarationEntry(0): [VariableDeclarationEntry] definition of xs -# 1675| Type = [ArrayType] int[2] -# 1675| getVariable().getInitializer(): [Initializer] initializer for xs -# 1675| getExpr(): [ArrayAggregateLiteral] {...} -# 1675| Type = [ArrayType] int[2] -# 1675| ValueCategory = prvalue -# 1675| getAnElementExpr(0): [Literal] 1 -# 1675| Type = [IntType] int -# 1675| Value = [Literal] 1 -# 1675| ValueCategory = prvalue -# 1675| getAnElementExpr(1): [Literal] 2 -# 1675| Type = [IntType] int -# 1675| Value = [Literal] 2 -# 1675| ValueCategory = prvalue -# 1676| getStmt(1): [DeclStmt] declaration -# 1676| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) -# 1676| Type = [ArrayType] int[2] -# 1676| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) -# 1676| getExpr(): [VariableAccess] xs -# 1676| Type = [ArrayType] int[2] -# 1676| ValueCategory = prvalue(load) -# 1676| getDeclarationEntry(1): [VariableDeclarationEntry] definition of x0 -# 1676| Type = [IntType] int +# 1698| getExpr(): [FunctionCall] call to get +# 1698| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1698| ValueCategory = prvalue +# 1698| getQualifier(): [VariableAccess] (unnamed local variable) +# 1698| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1698| ValueCategory = prvalue(load) +# 1698| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1698| Type = [Struct] StructuredBindingTupleNoRefGet +# 1698| ValueCategory = lvalue +# 1698| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1698| Type = [LValueReferenceType] int & +# 1698| ValueCategory = prvalue +# 1698| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1698| Type = [IntType] int +# 1698| ValueCategory = xvalue +# 1699| getStmt(1): [ExprStmt] ExprStmt +# 1699| getExpr(): [AssignExpr] ... = ... +# 1699| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1699| ValueCategory = lvalue +# 1699| getLValue(): [VariableAccess] i +# 1699| Type = [RValueReferenceType] type && +# 1699| ValueCategory = prvalue(load) +# 1699| getRValue(): [Literal] 4 +# 1699| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1699| Value = [Literal] 4 +# 1699| ValueCategory = prvalue +# 1699| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1699| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1699| ValueCategory = lvalue +# 1700| getStmt(2): [DeclStmt] declaration +# 1700| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ri +# 1700| Type = [LValueReferenceType] int & +# 1700| getVariable().getInitializer(): [Initializer] initializer for ri +# 1700| getExpr(): [VariableAccess] i +# 1700| Type = [RValueReferenceType] type && +# 1700| ValueCategory = prvalue(load) +# 1700| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1700| Type = [LValueReferenceType] type & +# 1700| ValueCategory = prvalue +# 1700| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1700| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1700| ValueCategory = lvalue +# 1701| getStmt(3): [DeclStmt] declaration +# 1701| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1701| Type = [IntType] int +# 1701| getVariable().getInitializer(): [Initializer] initializer for v +# 1701| getExpr(): [VariableAccess] i +# 1701| Type = [RValueReferenceType] type && +# 1701| ValueCategory = prvalue(load) +# 1701| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1701| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1701| ValueCategory = prvalue(load) +# 1702| getStmt(4): [ExprStmt] ExprStmt +# 1702| getExpr(): [AssignExpr] ... = ... +# 1702| Type = [IntType] int +# 1702| ValueCategory = lvalue +# 1702| getLValue(): [VariableAccess] r +# 1702| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1702| ValueCategory = prvalue(load) +# 1702| getRValue(): [Literal] 5 +# 1702| Type = [IntType] int +# 1702| Value = [Literal] 5 +# 1702| ValueCategory = prvalue +# 1702| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1702| Type = [IntType] int +# 1702| ValueCategory = lvalue +# 1703| getStmt(5): [DeclStmt] declaration +# 1703| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1703| Type = [LValueReferenceType] int & +# 1703| getVariable().getInitializer(): [Initializer] initializer for rr +# 1703| getExpr(): [VariableAccess] r +# 1703| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1703| ValueCategory = prvalue(load) +# 1703| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1703| Type = [LValueReferenceType] int & +# 1703| ValueCategory = prvalue +# 1703| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1703| Type = [IntType] int +# 1703| ValueCategory = lvalue +# 1704| getStmt(6): [DeclStmt] declaration +# 1704| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1704| Type = [IntType] int +# 1704| getVariable().getInitializer(): [Initializer] initializer for w +# 1704| getExpr(): [VariableAccess] r +# 1704| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1704| ValueCategory = prvalue(load) +# 1704| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1704| Type = [IntType] int +# 1704| ValueCategory = prvalue(load) +# 1707| getStmt(2): [BlockStmt] { ... } +# 1708| getStmt(0): [DeclStmt] declaration +# 1708| getDeclarationEntry(0): [VariableDeclarationEntry] definition of unnamed_local_variable +# 1708| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1708| getVariable().getInitializer(): [Initializer] initializer for unnamed_local_variable +# 1708| getExpr(): [VariableAccess] t +# 1708| Type = [Struct] StructuredBindingTupleNoRefGet +# 1708| ValueCategory = lvalue +# 1708| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1708| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1708| ValueCategory = prvalue +# 1709| getStmt(1): [DeclStmt] declaration +# 1709| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1709| Type = [RValueReferenceType] type && +# 1709| getVariable().getInitializer(): [Initializer] initializer for i +# 1709| getExpr(): [FunctionCall] call to get +# 1709| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1709| ValueCategory = prvalue +# 1709| getQualifier(): [VariableAccess] unnamed_local_variable +# 1709| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1709| ValueCategory = prvalue(load) +# 1709| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1709| Type = [Struct] StructuredBindingTupleNoRefGet +# 1709| ValueCategory = lvalue +# 1709| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1709| Type = [LValueReferenceType] type & +# 1709| ValueCategory = prvalue +# 1709| getExpr(): [TemporaryObjectExpr] temporary object +# 1709| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1709| ValueCategory = lvalue +# 1710| getStmt(2): [DeclStmt] declaration +# 1710| getDeclarationEntry(0): [VariableDeclarationEntry] definition of r +# 1710| Type = [LValueReferenceType] int & +# 1710| getVariable().getInitializer(): [Initializer] initializer for r +# 1710| getExpr(): [FunctionCall] call to get +# 1710| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1710| ValueCategory = prvalue +# 1710| getQualifier(): [VariableAccess] unnamed_local_variable +# 1710| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1710| ValueCategory = prvalue(load) +# 1710| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1710| Type = [Struct] StructuredBindingTupleNoRefGet +# 1710| ValueCategory = lvalue +# 1710| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1710| Type = [LValueReferenceType] int & +# 1710| ValueCategory = prvalue +# 1710| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1710| Type = [IntType] int +# 1710| ValueCategory = lvalue +# 1711| getStmt(3): [DeclStmt] declaration +# 1711| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rv +# 1711| Type = [RValueReferenceType] int && +# 1711| getVariable().getInitializer(): [Initializer] initializer for rv +# 1711| getExpr(): [FunctionCall] call to get +# 1711| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1711| ValueCategory = prvalue +# 1711| getQualifier(): [VariableAccess] unnamed_local_variable +# 1711| Type = [LValueReferenceType] StructuredBindingTupleNoRefGet & +# 1711| ValueCategory = prvalue(load) +# 1711| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1711| Type = [Struct] StructuredBindingTupleNoRefGet +# 1711| ValueCategory = lvalue +# 1711| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1711| Type = [LValueReferenceType] int & +# 1711| ValueCategory = prvalue +# 1711| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1711| Type = [IntType] int +# 1711| ValueCategory = xvalue +# 1712| getStmt(4): [ExprStmt] ExprStmt +# 1712| getExpr(): [AssignExpr] ... = ... +# 1712| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1712| ValueCategory = lvalue +# 1712| getLValue(): [VariableAccess] i +# 1712| Type = [RValueReferenceType] type && +# 1712| ValueCategory = prvalue(load) +# 1712| getRValue(): [Literal] 4 +# 1712| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1712| Value = [Literal] 4 +# 1712| ValueCategory = prvalue +# 1712| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1712| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1712| ValueCategory = lvalue +# 1713| getStmt(5): [DeclStmt] declaration +# 1713| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ri +# 1713| Type = [LValueReferenceType] int & +# 1713| getVariable().getInitializer(): [Initializer] initializer for ri +# 1713| getExpr(): [VariableAccess] i +# 1713| Type = [RValueReferenceType] type && +# 1713| ValueCategory = prvalue(load) +# 1713| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1713| Type = [LValueReferenceType] type & +# 1713| ValueCategory = prvalue +# 1713| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1713| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1713| ValueCategory = lvalue +# 1714| getStmt(6): [DeclStmt] declaration +# 1714| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1714| Type = [IntType] int +# 1714| getVariable().getInitializer(): [Initializer] initializer for v +# 1714| getExpr(): [VariableAccess] i +# 1714| Type = [RValueReferenceType] type && +# 1714| ValueCategory = prvalue(load) +# 1714| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1714| Type = [NestedTypedefType,UsingAliasTypedefType] type +# 1714| ValueCategory = prvalue(load) +# 1715| getStmt(7): [ExprStmt] ExprStmt +# 1715| getExpr(): [AssignExpr] ... = ... +# 1715| Type = [IntType] int +# 1715| ValueCategory = lvalue +# 1715| getLValue(): [VariableAccess] r +# 1715| Type = [LValueReferenceType] int & +# 1715| ValueCategory = prvalue(load) +# 1715| getRValue(): [Literal] 5 +# 1715| Type = [IntType] int +# 1715| Value = [Literal] 5 +# 1715| ValueCategory = prvalue +# 1715| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1715| Type = [IntType] int +# 1715| ValueCategory = lvalue +# 1716| getStmt(8): [DeclStmt] declaration +# 1716| getDeclarationEntry(0): [VariableDeclarationEntry] definition of rr +# 1716| Type = [LValueReferenceType] int & +# 1716| getVariable().getInitializer(): [Initializer] initializer for rr +# 1716| getExpr(): [VariableAccess] r +# 1716| Type = [LValueReferenceType] int & +# 1716| ValueCategory = prvalue(load) +# 1716| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1716| Type = [LValueReferenceType] int & +# 1716| ValueCategory = prvalue +# 1716| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1716| Type = [IntType] int +# 1716| ValueCategory = lvalue +# 1717| getStmt(9): [DeclStmt] declaration +# 1717| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1717| Type = [IntType] int +# 1717| getVariable().getInitializer(): [Initializer] initializer for w +# 1717| getExpr(): [VariableAccess] r +# 1717| Type = [LValueReferenceType] int & +# 1717| ValueCategory = prvalue(load) +# 1717| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1717| Type = [IntType] int +# 1717| ValueCategory = prvalue(load) +# 1719| getStmt(3): [ReturnStmt] return ... +# 1721| [TopLevelFunction] void array_structured_binding_non_ref_init() +# 1721| <params>: +# 1721| getEntryPoint(): [BlockStmt] { ... } +# 1722| getStmt(0): [DeclStmt] declaration +# 1722| getDeclarationEntry(0): [VariableDeclarationEntry] definition of xs +# 1722| Type = [ArrayType] int[2] +# 1722| getVariable().getInitializer(): [Initializer] initializer for xs +# 1722| getExpr(): [ArrayAggregateLiteral] {...} +# 1722| Type = [ArrayType] int[2] +# 1722| ValueCategory = prvalue +# 1722| getAnElementExpr(0): [Literal] 1 +# 1722| Type = [IntType] int +# 1722| Value = [Literal] 1 +# 1722| ValueCategory = prvalue +# 1722| getAnElementExpr(1): [Literal] 2 +# 1722| Type = [IntType] int +# 1722| Value = [Literal] 2 +# 1722| ValueCategory = prvalue +# 1723| getStmt(1): [DeclStmt] declaration +# 1723| getDeclarationEntry(0): [VariableDeclarationEntry] definition of (unnamed local variable) +# 1723| Type = [ArrayType] int[2] +# 1723| getVariable().getInitializer(): [Initializer] initializer for (unnamed local variable) +# 1723| getExpr(): [VariableAccess] xs +# 1723| Type = [ArrayType] int[2] +# 1723| ValueCategory = prvalue(load) +# 1723| getDeclarationEntry(1): [VariableDeclarationEntry] definition of x0 +# 1723| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for x0 #-----| getExpr(): [ArrayExpr] access to array #-----| Type = [IntType] int @@ -13721,8 +13839,8 @@ ir.cpp: #-----| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion #-----| Type = [IntPointerType] int * #-----| ValueCategory = prvalue -# 1676| getDeclarationEntry(2): [VariableDeclarationEntry] definition of x1 -# 1676| Type = [IntType] int +# 1723| getDeclarationEntry(2): [VariableDeclarationEntry] definition of x1 +# 1723| Type = [IntType] int #-----| getVariable().getInitializer(): [Initializer] initializer for x1 #-----| getExpr(): [ArrayExpr] access to array #-----| Type = [IntType] int @@ -13737,351 +13855,351 @@ ir.cpp: #-----| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion #-----| Type = [IntPointerType] int * #-----| ValueCategory = prvalue -# 1677| getStmt(2): [ReturnStmt] return ... -# 1679| [CopyAssignmentOperator] CapturedLambdaMyObj& CapturedLambdaMyObj::operator=(CapturedLambdaMyObj const&) -# 1679| <params>: +# 1724| getStmt(2): [ReturnStmt] return ... +# 1726| [CopyAssignmentOperator] CapturedLambdaMyObj& CapturedLambdaMyObj::operator=(CapturedLambdaMyObj const&) +# 1726| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1679| [MoveAssignmentOperator] CapturedLambdaMyObj& CapturedLambdaMyObj::operator=(CapturedLambdaMyObj&&) -# 1679| <params>: +# 1726| [MoveAssignmentOperator] CapturedLambdaMyObj& CapturedLambdaMyObj::operator=(CapturedLambdaMyObj&&) +# 1726| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CapturedLambdaMyObj && -# 1679| [CopyConstructor] void CapturedLambdaMyObj::CapturedLambdaMyObj(CapturedLambdaMyObj const&) -# 1679| <params>: +# 1726| [CopyConstructor] void CapturedLambdaMyObj::CapturedLambdaMyObj(CapturedLambdaMyObj const&) +# 1726| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1679| [MoveConstructor] void CapturedLambdaMyObj::CapturedLambdaMyObj(CapturedLambdaMyObj&&) -# 1679| <params>: +# 1726| [MoveConstructor] void CapturedLambdaMyObj::CapturedLambdaMyObj(CapturedLambdaMyObj&&) +# 1726| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CapturedLambdaMyObj && -# 1682| [Constructor] void CapturedLambdaMyObj::CapturedLambdaMyObj() -# 1682| <params>: -# 1682| <initializations>: -# 1682| getEntryPoint(): [BlockStmt] { ... } -# 1682| getStmt(0): [ReturnStmt] return ... -# 1685| [TopLevelFunction] void captured_lambda(int, int&, int&&) -# 1685| <params>: -# 1685| getParameter(0): [Parameter] x -# 1685| Type = [IntType] int -# 1685| getParameter(1): [Parameter] y -# 1685| Type = [LValueReferenceType] int & -# 1685| getParameter(2): [Parameter] z -# 1685| Type = [RValueReferenceType] int && -# 1686| getEntryPoint(): [BlockStmt] { ... } -# 1687| getStmt(0): [DeclStmt] declaration -# 1687| getDeclarationEntry(0): [VariableDeclarationEntry] definition of obj1 -# 1687| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1687| getVariable().getInitializer(): [Initializer] initializer for obj1 -# 1687| getExpr(): [ConstructorCall] call to CapturedLambdaMyObj -# 1687| Type = [VoidType] void -# 1687| ValueCategory = prvalue -# 1687| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1687| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1687| ValueCategory = prvalue -# 1687| getExpr(): [CStyleCast] (const CapturedLambdaMyObj)... -# 1687| Conversion = [GlvalueConversion] glvalue conversion -# 1687| Type = [SpecifiedType] const CapturedLambdaMyObj -# 1687| ValueCategory = lvalue -# 1687| getExpr(): [TemporaryObjectExpr] temporary object -# 1687| Type = [Class] CapturedLambdaMyObj -# 1687| ValueCategory = lvalue -# 1688| getStmt(1): [DeclStmt] declaration -# 1688| getDeclarationEntry(0): [VariableDeclarationEntry] definition of obj2 -# 1688| Type = [Class] CapturedLambdaMyObj -# 1688| getVariable().getInitializer(): [Initializer] initializer for obj2 -# 1688| getExpr(): [ConstructorCall] call to CapturedLambdaMyObj -# 1688| Type = [VoidType] void -# 1688| ValueCategory = prvalue -# 1690| getStmt(2): [DeclStmt] declaration -# 1690| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_outer -# 1690| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1690| getVariable().getInitializer(): [Initializer] initializer for lambda_outer -# 1690| getExpr(): [LambdaExpression] [...](...){...} -# 1690| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1690| ValueCategory = prvalue -# 1690| getInitializer(): [ClassAggregateLiteral] {...} -# 1690| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1690| ValueCategory = prvalue -# 1690| getAFieldExpr(obj1): [VariableAccess] obj1 -# 1690| Type = [LValueReferenceType] const CapturedLambdaMyObj & -# 1690| ValueCategory = prvalue(load) -# 1690| getAFieldExpr(obj2): [VariableAccess] obj2 -# 1690| Type = [Class] CapturedLambdaMyObj -# 1690| ValueCategory = prvalue(load) -# 1690| getAFieldExpr(x): [VariableAccess] x -# 1690| Type = [IntType] int -# 1690| ValueCategory = prvalue(load) -# 1690| getAFieldExpr(y): [VariableAccess] y -# 1690| Type = [LValueReferenceType] int & -# 1690| ValueCategory = prvalue(load) -# 1690| getAFieldExpr(z): [VariableAccess] z -# 1690| Type = [RValueReferenceType] int && -# 1690| ValueCategory = prvalue(load) +# 1729| [Constructor] void CapturedLambdaMyObj::CapturedLambdaMyObj() +# 1729| <params>: +# 1729| <initializations>: +# 1729| getEntryPoint(): [BlockStmt] { ... } +# 1729| getStmt(0): [ReturnStmt] return ... +# 1732| [TopLevelFunction] void captured_lambda(int, int&, int&&) +# 1732| <params>: +# 1732| getParameter(0): [Parameter] x +# 1732| Type = [IntType] int +# 1732| getParameter(1): [Parameter] y +# 1732| Type = [LValueReferenceType] int & +# 1732| getParameter(2): [Parameter] z +# 1732| Type = [RValueReferenceType] int && +# 1733| getEntryPoint(): [BlockStmt] { ... } +# 1734| getStmt(0): [DeclStmt] declaration +# 1734| getDeclarationEntry(0): [VariableDeclarationEntry] definition of obj1 +# 1734| Type = [LValueReferenceType] const CapturedLambdaMyObj & +# 1734| getVariable().getInitializer(): [Initializer] initializer for obj1 +# 1734| getExpr(): [ConstructorCall] call to CapturedLambdaMyObj +# 1734| Type = [VoidType] void +# 1734| ValueCategory = prvalue +# 1734| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1734| Type = [LValueReferenceType] const CapturedLambdaMyObj & +# 1734| ValueCategory = prvalue +# 1734| getExpr(): [CStyleCast] (const CapturedLambdaMyObj)... +# 1734| Conversion = [GlvalueConversion] glvalue conversion +# 1734| Type = [SpecifiedType] const CapturedLambdaMyObj +# 1734| ValueCategory = lvalue +# 1734| getExpr(): [TemporaryObjectExpr] temporary object +# 1734| Type = [Class] CapturedLambdaMyObj +# 1734| ValueCategory = lvalue +# 1735| getStmt(1): [DeclStmt] declaration +# 1735| getDeclarationEntry(0): [VariableDeclarationEntry] definition of obj2 +# 1735| Type = [Class] CapturedLambdaMyObj +# 1735| getVariable().getInitializer(): [Initializer] initializer for obj2 +# 1735| getExpr(): [ConstructorCall] call to CapturedLambdaMyObj +# 1735| Type = [VoidType] void +# 1735| ValueCategory = prvalue +# 1737| getStmt(2): [DeclStmt] declaration +# 1737| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_outer +# 1737| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1737| getVariable().getInitializer(): [Initializer] initializer for lambda_outer +# 1737| getExpr(): [LambdaExpression] [...](...){...} +# 1737| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1737| ValueCategory = prvalue +# 1737| getInitializer(): [ClassAggregateLiteral] {...} +# 1737| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1737| ValueCategory = prvalue +# 1737| getAFieldExpr(obj1): [VariableAccess] obj1 +# 1737| Type = [LValueReferenceType] const CapturedLambdaMyObj & +# 1737| ValueCategory = prvalue(load) +# 1737| getAFieldExpr(obj2): [VariableAccess] obj2 +# 1737| Type = [Class] CapturedLambdaMyObj +# 1737| ValueCategory = prvalue(load) +# 1737| getAFieldExpr(x): [VariableAccess] x +# 1737| Type = [IntType] int +# 1737| ValueCategory = prvalue(load) +# 1737| getAFieldExpr(y): [VariableAccess] y +# 1737| Type = [LValueReferenceType] int & +# 1737| ValueCategory = prvalue(load) +# 1737| getAFieldExpr(z): [VariableAccess] z +# 1737| Type = [RValueReferenceType] int && +# 1737| ValueCategory = prvalue(load) #-----| getAFieldExpr(obj1).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [SpecifiedType] const CapturedLambdaMyObj #-----| ValueCategory = prvalue(load) -# 1692| getAFieldExpr(y).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1692| Type = [IntType] int -# 1692| ValueCategory = prvalue(load) -# 1692| getAFieldExpr(z).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1692| Type = [IntType] int -# 1692| ValueCategory = prvalue(load) -# 1693| getStmt(3): [ReturnStmt] return ... -# 1690| [CopyAssignmentOperator] (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)& (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator=((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25) const&) -# 1690| <params>: +# 1739| getAFieldExpr(y).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1739| Type = [IntType] int +# 1739| ValueCategory = prvalue(load) +# 1739| getAFieldExpr(z).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1739| Type = [IntType] int +# 1739| ValueCategory = prvalue(load) +# 1740| getStmt(3): [ReturnStmt] return ... +# 1737| [CopyAssignmentOperator] (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)& (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator=((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25) const&) +# 1737| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1690, col. 25 & -# 1690| [CopyConstructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::(unnamed constructor)((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25) const&) -# 1690| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1737, col. 25 & +# 1737| [CopyConstructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::(unnamed constructor)((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25) const&) +# 1737| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1690, col. 25 & -# 1690| [MoveConstructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::(unnamed constructor)((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)&&) -# 1690| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1737, col. 25 & +# 1737| [MoveConstructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::(unnamed constructor)((void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)&&) +# 1737| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1690, col. 25 && -# 1690| [Constructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::(unnamed constructor)() -# 1690| <params>: -# 1690| [ConstMemberFunction] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const -# 1690| <params>: -# 1690| getEntryPoint(): [BlockStmt] { ... } -# 1691| getStmt(0): [DeclStmt] declaration -# 1691| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_inner -# 1691| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1691| getVariable().getInitializer(): [Initializer] initializer for lambda_inner -# 1691| getExpr(): [LambdaExpression] [...](...){...} -# 1691| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1691| ValueCategory = prvalue -# 1691| getInitializer(): [ClassAggregateLiteral] {...} -# 1691| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1691| ValueCategory = prvalue -# 1691| getAFieldExpr(obj1): [PointerFieldAccess] obj1 -# 1691| Type = [SpecifiedType] const CapturedLambdaMyObj -# 1691| ValueCategory = prvalue(load) -# 1691| getQualifier(): [ThisExpr] this -# 1691| Type = [PointerType] lambda [] type at line 1691, col. 29 * -# 1691| ValueCategory = prvalue(load) -# 1691| getAFieldExpr(obj2): [PointerFieldAccess] obj2 -# 1691| Type = [Class] CapturedLambdaMyObj -# 1691| ValueCategory = prvalue(load) -# 1691| getQualifier(): [ThisExpr] this -# 1691| Type = [PointerType] lambda [] type at line 1691, col. 29 * -# 1691| ValueCategory = prvalue(load) -# 1691| getAFieldExpr(x): [PointerFieldAccess] x -# 1691| Type = [IntType] int -# 1691| ValueCategory = prvalue(load) -# 1691| getQualifier(): [ThisExpr] this -# 1691| Type = [PointerType] const lambda [] type at line 1690, col. 25 * -# 1691| ValueCategory = prvalue(load) -# 1691| getAFieldExpr(y): [PointerFieldAccess] y -# 1691| Type = [IntType] int -# 1691| ValueCategory = prvalue(load) -# 1691| getQualifier(): [ThisExpr] this -# 1691| Type = [PointerType] const lambda [] type at line 1690, col. 25 * -# 1691| ValueCategory = prvalue(load) -# 1691| getAFieldExpr(z): [PointerFieldAccess] z -# 1691| Type = [IntType] int -# 1691| ValueCategory = prvalue(load) -# 1691| getQualifier(): [ThisExpr] this -# 1691| Type = [PointerType] const lambda [] type at line 1690, col. 25 * -# 1691| ValueCategory = prvalue(load) -# 1692| getStmt(1): [ReturnStmt] return ... -# 1691| [CopyAssignmentOperator] (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)& (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)::operator=((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29) const&) -# 1691| <params>: +#-----| Type = [RValueReferenceType] lambda [] type at line 1737, col. 25 && +# 1737| [Constructor] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::(unnamed constructor)() +# 1737| <params>: +# 1737| [ConstMemberFunction] void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const +# 1737| <params>: +# 1737| getEntryPoint(): [BlockStmt] { ... } +# 1738| getStmt(0): [DeclStmt] declaration +# 1738| getDeclarationEntry(0): [VariableDeclarationEntry] definition of lambda_inner +# 1738| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1738| getVariable().getInitializer(): [Initializer] initializer for lambda_inner +# 1738| getExpr(): [LambdaExpression] [...](...){...} +# 1738| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1738| ValueCategory = prvalue +# 1738| getInitializer(): [ClassAggregateLiteral] {...} +# 1738| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1738| ValueCategory = prvalue +# 1738| getAFieldExpr(obj1): [PointerFieldAccess] obj1 +# 1738| Type = [SpecifiedType] const CapturedLambdaMyObj +# 1738| ValueCategory = prvalue(load) +# 1738| getQualifier(): [ThisExpr] this +# 1738| Type = [PointerType] lambda [] type at line 1738, col. 29 * +# 1738| ValueCategory = prvalue(load) +# 1738| getAFieldExpr(obj2): [PointerFieldAccess] obj2 +# 1738| Type = [Class] CapturedLambdaMyObj +# 1738| ValueCategory = prvalue(load) +# 1738| getQualifier(): [ThisExpr] this +# 1738| Type = [PointerType] lambda [] type at line 1738, col. 29 * +# 1738| ValueCategory = prvalue(load) +# 1738| getAFieldExpr(x): [PointerFieldAccess] x +# 1738| Type = [IntType] int +# 1738| ValueCategory = prvalue(load) +# 1738| getQualifier(): [ThisExpr] this +# 1738| Type = [PointerType] const lambda [] type at line 1737, col. 25 * +# 1738| ValueCategory = prvalue(load) +# 1738| getAFieldExpr(y): [PointerFieldAccess] y +# 1738| Type = [IntType] int +# 1738| ValueCategory = prvalue(load) +# 1738| getQualifier(): [ThisExpr] this +# 1738| Type = [PointerType] const lambda [] type at line 1737, col. 25 * +# 1738| ValueCategory = prvalue(load) +# 1738| getAFieldExpr(z): [PointerFieldAccess] z +# 1738| Type = [IntType] int +# 1738| ValueCategory = prvalue(load) +# 1738| getQualifier(): [ThisExpr] this +# 1738| Type = [PointerType] const lambda [] type at line 1737, col. 25 * +# 1738| ValueCategory = prvalue(load) +# 1739| getStmt(1): [ReturnStmt] return ... +# 1738| [CopyAssignmentOperator] (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)& (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::operator=((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29) const&) +# 1738| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1691, col. 29 & -# 1691| [CopyConstructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)::(unnamed constructor)((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29) const&) -# 1691| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1738, col. 29 & +# 1738| [CopyConstructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::(unnamed constructor)((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29) const&) +# 1738| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1691, col. 29 & -# 1691| [MoveConstructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)::(unnamed constructor)((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)&&) -# 1691| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1738, col. 29 & +# 1738| [MoveConstructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::(unnamed constructor)((void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)&&) +# 1738| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1691, col. 29 && -# 1691| [Constructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)::(unnamed constructor)() -# 1691| <params>: -# 1691| [ConstMemberFunction] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)::operator()() const -# 1691| <params>: -# 1691| getEntryPoint(): [BlockStmt] { ... } -# 1691| getStmt(0): [EmptyStmt] ; -# 1691| getStmt(1): [ReturnStmt] return ... -# 1695| [TopLevelFunction] int goto_on_same_line() -# 1695| <params>: -# 1695| getEntryPoint(): [BlockStmt] { ... } -# 1696| getStmt(0): [DeclStmt] declaration -# 1696| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1696| Type = [IntType] int -# 1696| getVariable().getInitializer(): [Initializer] initializer for x -# 1696| getExpr(): [Literal] 42 -# 1696| Type = [IntType] int -# 1696| Value = [Literal] 42 -# 1696| ValueCategory = prvalue -# 1697| getStmt(1): [GotoStmt] goto ... -# 1697| getStmt(2): [LabelStmt] label ...: -# 1698| getStmt(3): [ReturnStmt] return ... -# 1698| getExpr(): [VariableAccess] x -# 1698| Type = [IntType] int -# 1698| ValueCategory = prvalue(load) -# 1701| [CopyAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass const&) -# 1701| <params>: +#-----| Type = [RValueReferenceType] lambda [] type at line 1738, col. 29 && +# 1738| [Constructor] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::(unnamed constructor)() +# 1738| <params>: +# 1738| [ConstMemberFunction] void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::operator()() const +# 1738| <params>: +# 1738| getEntryPoint(): [BlockStmt] { ... } +# 1738| getStmt(0): [EmptyStmt] ; +# 1738| getStmt(1): [ReturnStmt] return ... +# 1742| [TopLevelFunction] int goto_on_same_line() +# 1742| <params>: +# 1742| getEntryPoint(): [BlockStmt] { ... } +# 1743| getStmt(0): [DeclStmt] declaration +# 1743| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1743| Type = [IntType] int +# 1743| getVariable().getInitializer(): [Initializer] initializer for x +# 1743| getExpr(): [Literal] 42 +# 1743| Type = [IntType] int +# 1743| Value = [Literal] 42 +# 1743| ValueCategory = prvalue +# 1744| getStmt(1): [GotoStmt] goto ... +# 1744| getStmt(2): [LabelStmt] label ...: +# 1745| getStmt(3): [ReturnStmt] return ... +# 1745| getExpr(): [VariableAccess] x +# 1745| Type = [IntType] int +# 1745| ValueCategory = prvalue(load) +# 1748| [CopyAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass const&) +# 1748| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const TrivialLambdaClass & -# 1701| [MoveAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass&&) -# 1701| <params>: +# 1748| [MoveAssignmentOperator] TrivialLambdaClass& TrivialLambdaClass::operator=(TrivialLambdaClass&&) +# 1748| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] TrivialLambdaClass && -# 1703| [ConstMemberFunction] void TrivialLambdaClass::m() const -# 1703| <params>: -# 1703| getEntryPoint(): [BlockStmt] { ... } -# 1704| getStmt(0): [DeclStmt] declaration -# 1704| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_outer -# 1704| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1704| getVariable().getInitializer(): [Initializer] initializer for l_m_outer -# 1704| getExpr(): [LambdaExpression] [...](...){...} -# 1704| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1704| ValueCategory = prvalue -# 1704| getInitializer(): [ClassAggregateLiteral] {...} -# 1704| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1704| ValueCategory = prvalue -# 1704| getAFieldExpr((captured this)): [PointerDereferenceExpr] * ... -# 1704| Type = [SpecifiedType] const TrivialLambdaClass -# 1704| ValueCategory = prvalue(load) -# 1704| getOperand(): [ThisExpr] this -# 1704| Type = [SpecifiedType] const TrivialLambdaClass *const -# 1704| ValueCategory = prvalue(load) -# 1711| getStmt(1): [ReturnStmt] return ... -# 1704| [CopyAssignmentOperator] (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)& (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator=((void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26) const&) -# 1704| <params>: +# 1750| [ConstMemberFunction] void TrivialLambdaClass::m() const +# 1750| <params>: +# 1750| getEntryPoint(): [BlockStmt] { ... } +# 1751| getStmt(0): [DeclStmt] declaration +# 1751| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_outer +# 1751| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1751| getVariable().getInitializer(): [Initializer] initializer for l_m_outer +# 1751| getExpr(): [LambdaExpression] [...](...){...} +# 1751| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1751| ValueCategory = prvalue +# 1751| getInitializer(): [ClassAggregateLiteral] {...} +# 1751| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1751| ValueCategory = prvalue +# 1751| getAFieldExpr((captured this)): [PointerDereferenceExpr] * ... +# 1751| Type = [SpecifiedType] const TrivialLambdaClass +# 1751| ValueCategory = prvalue(load) +# 1751| getOperand(): [ThisExpr] this +# 1751| Type = [SpecifiedType] const TrivialLambdaClass *const +# 1751| ValueCategory = prvalue(load) +# 1758| getStmt(1): [ReturnStmt] return ... +# 1751| [CopyAssignmentOperator] (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)& (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator=((void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26) const&) +# 1751| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1704, col. 26 & -# 1704| [CopyConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26) const&) -# 1704| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1751, col. 26 & +# 1751| [CopyConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26) const&) +# 1751| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1704, col. 26 & -# 1704| [MoveConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)&&) -# 1704| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1751, col. 26 & +# 1751| [MoveConstructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::(unnamed constructor)((void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)&&) +# 1751| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1704, col. 26 && -# 1704| [Constructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::(unnamed constructor)() -# 1704| <params>: -# 1704| [ConstMemberFunction] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const -# 1704| <params>: -# 1704| getEntryPoint(): [BlockStmt] { ... } -# 1705| getStmt(0): [ExprStmt] ExprStmt -# 1705| getExpr(): [FunctionCall] call to m -# 1705| Type = [VoidType] void -# 1705| ValueCategory = prvalue -# 1705| getQualifier(): [AddressOfExpr] & ... -# 1705| Type = [PointerType] const TrivialLambdaClass * -# 1705| ValueCategory = prvalue -# 1705| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] (captured this) -# 1705| Type = [SpecifiedType] const TrivialLambdaClass -# 1705| ValueCategory = lvalue -# 1705| getQualifier(): [ThisExpr] this -# 1705| Type = [PointerType] const lambda [] type at line 1704, col. 26 * -# 1705| ValueCategory = prvalue(load) -# 1707| getStmt(1): [DeclStmt] declaration -# 1707| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_inner -# 1707| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1707| getVariable().getInitializer(): [Initializer] initializer for l_m_inner -# 1707| getExpr(): [LambdaExpression] [...](...){...} -# 1707| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1707| ValueCategory = prvalue -# 1707| getInitializer(): [ClassAggregateLiteral] {...} -# 1707| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1707| ValueCategory = prvalue -# 1707| getAFieldExpr((captured this)): [PointerFieldAccess] (captured this) -# 1707| Type = [SpecifiedType] const TrivialLambdaClass -# 1707| ValueCategory = prvalue(load) -# 1707| getQualifier(): [ThisExpr] this -# 1707| Type = [PointerType] lambda [] type at line 1707, col. 30 * -# 1707| ValueCategory = prvalue(load) -# 1710| getStmt(2): [ReturnStmt] return ... -# 1707| [CopyAssignmentOperator] (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)& (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)::operator=((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30) const&) -# 1707| <params>: +#-----| Type = [RValueReferenceType] lambda [] type at line 1751, col. 26 && +# 1751| [Constructor] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::(unnamed constructor)() +# 1751| <params>: +# 1751| [ConstMemberFunction] void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const +# 1751| <params>: +# 1751| getEntryPoint(): [BlockStmt] { ... } +# 1752| getStmt(0): [ExprStmt] ExprStmt +# 1752| getExpr(): [FunctionCall] call to m +# 1752| Type = [VoidType] void +# 1752| ValueCategory = prvalue +# 1752| getQualifier(): [AddressOfExpr] & ... +# 1752| Type = [PointerType] const TrivialLambdaClass * +# 1752| ValueCategory = prvalue +# 1752| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] (captured this) +# 1752| Type = [SpecifiedType] const TrivialLambdaClass +# 1752| ValueCategory = lvalue +# 1752| getQualifier(): [ThisExpr] this +# 1752| Type = [PointerType] const lambda [] type at line 1751, col. 26 * +# 1752| ValueCategory = prvalue(load) +# 1754| getStmt(1): [DeclStmt] declaration +# 1754| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_m_inner +# 1754| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1754| getVariable().getInitializer(): [Initializer] initializer for l_m_inner +# 1754| getExpr(): [LambdaExpression] [...](...){...} +# 1754| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1754| ValueCategory = prvalue +# 1754| getInitializer(): [ClassAggregateLiteral] {...} +# 1754| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1754| ValueCategory = prvalue +# 1754| getAFieldExpr((captured this)): [PointerFieldAccess] (captured this) +# 1754| Type = [SpecifiedType] const TrivialLambdaClass +# 1754| ValueCategory = prvalue(load) +# 1754| getQualifier(): [ThisExpr] this +# 1754| Type = [PointerType] lambda [] type at line 1754, col. 30 * +# 1754| ValueCategory = prvalue(load) +# 1757| getStmt(2): [ReturnStmt] return ... +# 1754| [CopyAssignmentOperator] (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)& (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::operator=((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30) const&) +# 1754| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1707, col. 30 & -# 1707| [CopyConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30) const&) -# 1707| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1754, col. 30 & +# 1754| [CopyConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30) const&) +# 1754| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1707, col. 30 & -# 1707| [MoveConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)&&) -# 1707| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1754, col. 30 & +# 1754| [MoveConstructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::(unnamed constructor)((void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)&&) +# 1754| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1707, col. 30 && -# 1707| [Constructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)::(unnamed constructor)() -# 1707| <params>: -# 1707| [ConstMemberFunction] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)::operator()() const -# 1707| <params>: -# 1707| getEntryPoint(): [BlockStmt] { ... } -# 1708| getStmt(0): [ExprStmt] ExprStmt -# 1708| getExpr(): [FunctionCall] call to m -# 1708| Type = [VoidType] void -# 1708| ValueCategory = prvalue -# 1708| getQualifier(): [AddressOfExpr] & ... -# 1708| Type = [PointerType] const TrivialLambdaClass * -# 1708| ValueCategory = prvalue -# 1708| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] (captured this) -# 1708| Type = [SpecifiedType] const TrivialLambdaClass -# 1708| ValueCategory = lvalue -# 1708| getQualifier(): [ThisExpr] this -# 1708| Type = [PointerType] const lambda [] type at line 1707, col. 30 * -# 1708| ValueCategory = prvalue(load) -# 1709| getStmt(1): [ReturnStmt] return ... -# 1714| [TopLevelFunction] void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) -# 1714| <params>: -# 1714| getParameter(0): [Parameter] p1 -# 1714| Type = [Class] TrivialLambdaClass -# 1714| getParameter(1): [Parameter] p2 -# 1714| Type = [LValueReferenceType] TrivialLambdaClass & -# 1714| getParameter(2): [Parameter] p3 -# 1714| Type = [RValueReferenceType] TrivialLambdaClass && -# 1714| getEntryPoint(): [BlockStmt] { ... } -# 1715| getStmt(0): [DeclStmt] declaration -# 1715| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l1 -# 1715| Type = [SpecifiedType] const TrivialLambdaClass -# 1716| getStmt(1): [DeclStmt] declaration -# 1716| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l2 -# 1716| Type = [LValueReferenceType] const TrivialLambdaClass & -# 1716| getVariable().getInitializer(): [Initializer] initializer for l2 -# 1716| getExpr(): [Literal] 0 -# 1716| Type = [Class] TrivialLambdaClass -# 1716| Value = [Literal] 0 -# 1716| ValueCategory = prvalue -# 1716| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1716| Type = [LValueReferenceType] const TrivialLambdaClass & -# 1716| ValueCategory = prvalue -# 1716| getExpr(): [CStyleCast] (const TrivialLambdaClass)... -# 1716| Conversion = [GlvalueConversion] glvalue conversion -# 1716| Type = [SpecifiedType] const TrivialLambdaClass -# 1716| ValueCategory = lvalue -# 1716| getExpr(): [TemporaryObjectExpr] temporary object -# 1716| Type = [Class] TrivialLambdaClass -# 1716| ValueCategory = lvalue -# 1718| getStmt(2): [DeclStmt] declaration -# 1718| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_outer1 -# 1718| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1718| getVariable().getInitializer(): [Initializer] initializer for l_outer1 -# 1718| getExpr(): [LambdaExpression] [...](...){...} -# 1718| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1718| ValueCategory = prvalue -# 1718| getInitializer(): [ClassAggregateLiteral] {...} -# 1718| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1718| ValueCategory = prvalue -# 1718| getAFieldExpr(p1): [VariableAccess] p1 -# 1718| Type = [Class] TrivialLambdaClass -# 1718| ValueCategory = prvalue(load) -# 1718| getAFieldExpr(p2): [VariableAccess] p2 -# 1718| Type = [LValueReferenceType] TrivialLambdaClass & -# 1718| ValueCategory = prvalue(load) -# 1718| getAFieldExpr(p3): [VariableAccess] p3 -# 1718| Type = [RValueReferenceType] TrivialLambdaClass && -# 1718| ValueCategory = prvalue(load) -# 1718| getAFieldExpr(l1): [VariableAccess] l1 -# 1718| Type = [SpecifiedType] const TrivialLambdaClass -# 1718| ValueCategory = prvalue(load) -# 1718| getAFieldExpr(l2): [VariableAccess] l2 -# 1718| Type = [LValueReferenceType] const TrivialLambdaClass & -# 1718| ValueCategory = prvalue(load) +#-----| Type = [RValueReferenceType] lambda [] type at line 1754, col. 30 && +# 1754| [Constructor] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::(unnamed constructor)() +# 1754| <params>: +# 1754| [ConstMemberFunction] void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::operator()() const +# 1754| <params>: +# 1754| getEntryPoint(): [BlockStmt] { ... } +# 1755| getStmt(0): [ExprStmt] ExprStmt +# 1755| getExpr(): [FunctionCall] call to m +# 1755| Type = [VoidType] void +# 1755| ValueCategory = prvalue +# 1755| getQualifier(): [AddressOfExpr] & ... +# 1755| Type = [PointerType] const TrivialLambdaClass * +# 1755| ValueCategory = prvalue +# 1755| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] (captured this) +# 1755| Type = [SpecifiedType] const TrivialLambdaClass +# 1755| ValueCategory = lvalue +# 1755| getQualifier(): [ThisExpr] this +# 1755| Type = [PointerType] const lambda [] type at line 1754, col. 30 * +# 1755| ValueCategory = prvalue(load) +# 1756| getStmt(1): [ReturnStmt] return ... +# 1761| [TopLevelFunction] void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) +# 1761| <params>: +# 1761| getParameter(0): [Parameter] p1 +# 1761| Type = [Class] TrivialLambdaClass +# 1761| getParameter(1): [Parameter] p2 +# 1761| Type = [LValueReferenceType] TrivialLambdaClass & +# 1761| getParameter(2): [Parameter] p3 +# 1761| Type = [RValueReferenceType] TrivialLambdaClass && +# 1761| getEntryPoint(): [BlockStmt] { ... } +# 1762| getStmt(0): [DeclStmt] declaration +# 1762| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l1 +# 1762| Type = [SpecifiedType] const TrivialLambdaClass +# 1763| getStmt(1): [DeclStmt] declaration +# 1763| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l2 +# 1763| Type = [LValueReferenceType] const TrivialLambdaClass & +# 1763| getVariable().getInitializer(): [Initializer] initializer for l2 +# 1763| getExpr(): [Literal] 0 +# 1763| Type = [Class] TrivialLambdaClass +# 1763| Value = [Literal] 0 +# 1763| ValueCategory = prvalue +# 1763| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1763| Type = [LValueReferenceType] const TrivialLambdaClass & +# 1763| ValueCategory = prvalue +# 1763| getExpr(): [CStyleCast] (const TrivialLambdaClass)... +# 1763| Conversion = [GlvalueConversion] glvalue conversion +# 1763| Type = [SpecifiedType] const TrivialLambdaClass +# 1763| ValueCategory = lvalue +# 1763| getExpr(): [TemporaryObjectExpr] temporary object +# 1763| Type = [Class] TrivialLambdaClass +# 1763| ValueCategory = lvalue +# 1765| getStmt(2): [DeclStmt] declaration +# 1765| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_outer1 +# 1765| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1765| getVariable().getInitializer(): [Initializer] initializer for l_outer1 +# 1765| getExpr(): [LambdaExpression] [...](...){...} +# 1765| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1765| ValueCategory = prvalue +# 1765| getInitializer(): [ClassAggregateLiteral] {...} +# 1765| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1765| ValueCategory = prvalue +# 1765| getAFieldExpr(p1): [VariableAccess] p1 +# 1765| Type = [Class] TrivialLambdaClass +# 1765| ValueCategory = prvalue(load) +# 1765| getAFieldExpr(p2): [VariableAccess] p2 +# 1765| Type = [LValueReferenceType] TrivialLambdaClass & +# 1765| ValueCategory = prvalue(load) +# 1765| getAFieldExpr(p3): [VariableAccess] p3 +# 1765| Type = [RValueReferenceType] TrivialLambdaClass && +# 1765| ValueCategory = prvalue(load) +# 1765| getAFieldExpr(l1): [VariableAccess] l1 +# 1765| Type = [SpecifiedType] const TrivialLambdaClass +# 1765| ValueCategory = prvalue(load) +# 1765| getAFieldExpr(l2): [VariableAccess] l2 +# 1765| Type = [LValueReferenceType] const TrivialLambdaClass & +# 1765| ValueCategory = prvalue(load) #-----| getAFieldExpr(p2).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [Class] TrivialLambdaClass #-----| ValueCategory = prvalue(load) @@ -14091,723 +14209,723 @@ ir.cpp: #-----| getAFieldExpr(l2).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [SpecifiedType] const TrivialLambdaClass #-----| ValueCategory = prvalue(load) -# 1721| getStmt(3): [ReturnStmt] return ... -# 1718| [CopyAssignmentOperator] (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)& (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator=((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21) const&) -# 1718| <params>: +# 1768| getStmt(3): [ReturnStmt] return ... +# 1765| [CopyAssignmentOperator] (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)& (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator=((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21) const&) +# 1765| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1718, col. 21 & -# 1718| [CopyConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21) const&) -# 1718| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1765, col. 21 & +# 1765| [CopyConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21) const&) +# 1765| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1718, col. 21 & -# 1718| [MoveConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)&&) -# 1718| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1765, col. 21 & +# 1765| [MoveConstructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::(unnamed constructor)((void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)&&) +# 1765| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1718, col. 21 && -# 1718| [Constructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::(unnamed constructor)() -# 1718| <params>: -# 1718| [ConstMemberFunction] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const -# 1718| <params>: -# 1718| getEntryPoint(): [BlockStmt] { ... } -# 1719| getStmt(0): [DeclStmt] declaration -# 1719| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_inner1 -# 1719| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1719| getVariable().getInitializer(): [Initializer] initializer for l_inner1 -# 1719| getExpr(): [LambdaExpression] [...](...){...} -# 1719| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1719| ValueCategory = prvalue -# 1719| getInitializer(): [ClassAggregateLiteral] {...} -# 1719| Type = [Closure,LocalClass] decltype([...](...){...}) -# 1719| ValueCategory = prvalue -# 1719| getAFieldExpr(p1): [PointerFieldAccess] p1 -# 1719| Type = [Class] TrivialLambdaClass -# 1719| ValueCategory = prvalue(load) -# 1719| getQualifier(): [ThisExpr] this -# 1719| Type = [PointerType] lambda [] type at line 1719, col. 25 * -# 1719| ValueCategory = prvalue(load) -# 1720| getStmt(1): [ReturnStmt] return ... -# 1719| [CopyAssignmentOperator] (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)& (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)::operator=((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25) const&) -# 1719| <params>: +#-----| Type = [RValueReferenceType] lambda [] type at line 1765, col. 21 && +# 1765| [Constructor] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::(unnamed constructor)() +# 1765| <params>: +# 1765| [ConstMemberFunction] void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const +# 1765| <params>: +# 1765| getEntryPoint(): [BlockStmt] { ... } +# 1766| getStmt(0): [DeclStmt] declaration +# 1766| getDeclarationEntry(0): [VariableDeclarationEntry] definition of l_inner1 +# 1766| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1766| getVariable().getInitializer(): [Initializer] initializer for l_inner1 +# 1766| getExpr(): [LambdaExpression] [...](...){...} +# 1766| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1766| ValueCategory = prvalue +# 1766| getInitializer(): [ClassAggregateLiteral] {...} +# 1766| Type = [Closure,LocalClass] decltype([...](...){...}) +# 1766| ValueCategory = prvalue +# 1766| getAFieldExpr(p1): [PointerFieldAccess] p1 +# 1766| Type = [Class] TrivialLambdaClass +# 1766| ValueCategory = prvalue(load) +# 1766| getQualifier(): [ThisExpr] this +# 1766| Type = [PointerType] lambda [] type at line 1766, col. 25 * +# 1766| ValueCategory = prvalue(load) +# 1767| getStmt(1): [ReturnStmt] return ... +# 1766| [CopyAssignmentOperator] (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)& (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::operator=((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25) const&) +# 1766| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1719, col. 25 & -# 1719| [CopyConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25) const&) -# 1719| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1766, col. 25 & +# 1766| [CopyConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25) const&) +# 1766| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const lambda [] type at line 1719, col. 25 & -# 1719| [MoveConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)&&) -# 1719| <params>: +#-----| Type = [LValueReferenceType] const lambda [] type at line 1766, col. 25 & +# 1766| [MoveConstructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::(unnamed constructor)((void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)&&) +# 1766| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] lambda [] type at line 1719, col. 25 && -# 1719| [Constructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)::(unnamed constructor)() -# 1719| <params>: -# 1719| [ConstMemberFunction] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)::operator()() const -# 1719| <params>: -# 1719| getEntryPoint(): [BlockStmt] { ... } -# 1719| getStmt(0): [ReturnStmt] return ... -# 1723| [CopyAssignmentOperator] CopyConstructorWithImplicitArgumentClass& CopyConstructorWithImplicitArgumentClass::operator=(CopyConstructorWithImplicitArgumentClass const&) -# 1723| <params>: +#-----| Type = [RValueReferenceType] lambda [] type at line 1766, col. 25 && +# 1766| [Constructor] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::(unnamed constructor)() +# 1766| <params>: +# 1766| [ConstMemberFunction] void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::operator()() const +# 1766| <params>: +# 1766| getEntryPoint(): [BlockStmt] { ... } +# 1766| getStmt(0): [ReturnStmt] return ... +# 1770| [CopyAssignmentOperator] CopyConstructorWithImplicitArgumentClass& CopyConstructorWithImplicitArgumentClass::operator=(CopyConstructorWithImplicitArgumentClass const&) +# 1770| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1726| [Constructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() -# 1726| <params>: -# 1726| <initializations>: -# 1726| getEntryPoint(): [BlockStmt] { ... } -# 1726| getStmt(0): [ReturnStmt] return ... -# 1727| [CopyConstructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) -# 1727| <params>: -# 1727| getParameter(0): [Parameter] c -# 1727| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1727| <initializations>: -# 1727| getEntryPoint(): [BlockStmt] { ... } -# 1728| getStmt(0): [ExprStmt] ExprStmt -# 1728| getExpr(): [AssignExpr] ... = ... -# 1728| Type = [IntType] int -# 1728| ValueCategory = lvalue -# 1728| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 1728| Type = [IntType] int -# 1728| ValueCategory = lvalue -# 1728| getQualifier(): [ThisExpr] this -# 1728| Type = [PointerType] CopyConstructorWithImplicitArgumentClass * -# 1728| ValueCategory = prvalue(load) -# 1728| getRValue(): [ReferenceFieldAccess] x -# 1728| Type = [IntType] int -# 1728| ValueCategory = prvalue(load) -# 1728| getQualifier(): [VariableAccess] c -# 1728| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1728| ValueCategory = prvalue(load) -# 1728| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1728| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass -# 1728| ValueCategory = lvalue -# 1729| getStmt(1): [ReturnStmt] return ... -# 1732| [CopyAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass const&) -# 1732| <params>: +# 1773| [Constructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() +# 1773| <params>: +# 1773| <initializations>: +# 1773| getEntryPoint(): [BlockStmt] { ... } +# 1773| getStmt(0): [ReturnStmt] return ... +# 1774| [CopyConstructor] void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) +# 1774| <params>: +# 1774| getParameter(0): [Parameter] c +# 1774| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & +# 1774| <initializations>: +# 1774| getEntryPoint(): [BlockStmt] { ... } +# 1775| getStmt(0): [ExprStmt] ExprStmt +# 1775| getExpr(): [AssignExpr] ... = ... +# 1775| Type = [IntType] int +# 1775| ValueCategory = lvalue +# 1775| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 1775| Type = [IntType] int +# 1775| ValueCategory = lvalue +# 1775| getQualifier(): [ThisExpr] this +# 1775| Type = [PointerType] CopyConstructorWithImplicitArgumentClass * +# 1775| ValueCategory = prvalue(load) +# 1775| getRValue(): [ReferenceFieldAccess] x +# 1775| Type = [IntType] int +# 1775| ValueCategory = prvalue(load) +# 1775| getQualifier(): [VariableAccess] c +# 1775| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & +# 1775| ValueCategory = prvalue(load) +# 1775| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1775| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass +# 1775| ValueCategory = lvalue +# 1776| getStmt(1): [ReturnStmt] return ... +# 1779| [CopyAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass const&) +# 1779| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorWithBitwiseCopyClass & -# 1732| [MoveAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass&&) -# 1732| <params>: +# 1779| [MoveAssignmentOperator] CopyConstructorWithBitwiseCopyClass& CopyConstructorWithBitwiseCopyClass::operator=(CopyConstructorWithBitwiseCopyClass&&) +# 1779| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorWithBitwiseCopyClass && -# 1732| [CopyConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass const&) -# 1732| <params>: +# 1779| [CopyConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass const&) +# 1779| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorWithBitwiseCopyClass & -# 1732| [MoveConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass&&) -# 1732| <params>: +# 1779| [MoveConstructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass(CopyConstructorWithBitwiseCopyClass&&) +# 1779| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorWithBitwiseCopyClass && -# 1735| [Constructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() -# 1735| <params>: -# 1735| <initializations>: -# 1735| getEntryPoint(): [BlockStmt] { ... } -# 1735| getStmt(0): [ReturnStmt] return ... -# 1738| [CopyAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass const&) -# 1738| <params>: +# 1782| [Constructor] void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() +# 1782| <params>: +# 1782| <initializations>: +# 1782| getEntryPoint(): [BlockStmt] { ... } +# 1782| getStmt(0): [ReturnStmt] return ... +# 1785| [CopyAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass const&) +# 1785| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1738| [MoveAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass&&) -# 1738| <params>: +# 1785| [MoveAssignmentOperator] CopyConstructorTestNonVirtualClass& CopyConstructorTestNonVirtualClass::operator=(CopyConstructorTestNonVirtualClass&&) +# 1785| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorTestNonVirtualClass && -# 1738| [CopyConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) -# 1738| <params>: +# 1785| [CopyConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1785| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1738| <initializations>: -# 1738| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass -# 1738| Type = [VoidType] void -# 1738| ValueCategory = prvalue -# 1738| getArgument(0): [VariableAccess] (unnamed parameter 0) -# 1738| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1738| ValueCategory = prvalue(load) -# 1738| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1738| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1738| ValueCategory = prvalue -# 1738| getExpr(): [CStyleCast] (const CopyConstructorWithImplicitArgumentClass)... -# 1738| Conversion = [BaseClassConversion] base class conversion -# 1738| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass -# 1738| ValueCategory = lvalue -# 1738| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1738| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass -# 1738| ValueCategory = lvalue -# 1738| getInitializer(1): (no string representation) -# 1738| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass -# 1738| ValueCategory = prvalue -# 1738| getEntryPoint(): [BlockStmt] { ... } -# 1738| getStmt(0): [ReturnStmt] return ... -# 1738| [MoveConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass&&) -# 1738| <params>: +# 1785| <initializations>: +# 1785| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass +# 1785| Type = [VoidType] void +# 1785| ValueCategory = prvalue +# 1785| getArgument(0): [VariableAccess] (unnamed parameter 0) +# 1785| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & +# 1785| ValueCategory = prvalue(load) +# 1785| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1785| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & +# 1785| ValueCategory = prvalue +# 1785| getExpr(): [CStyleCast] (const CopyConstructorWithImplicitArgumentClass)... +# 1785| Conversion = [BaseClassConversion] base class conversion +# 1785| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass +# 1785| ValueCategory = lvalue +# 1785| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1785| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass +# 1785| ValueCategory = lvalue +# 1785| getInitializer(1): (no string representation) +# 1785| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass +# 1785| ValueCategory = prvalue +# 1785| getEntryPoint(): [BlockStmt] { ... } +# 1785| getStmt(0): [ReturnStmt] return ... +# 1785| [MoveConstructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass&&) +# 1785| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorTestNonVirtualClass && -# 1742| [Constructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() -# 1742| <params>: -# 1742| <initializations>: -# 1742| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass -# 1742| Type = [VoidType] void -# 1742| ValueCategory = prvalue -# 1742| getInitializer(1): [ConstructorDirectInit] call to CopyConstructorWithBitwiseCopyClass -# 1742| Type = [VoidType] void -# 1742| ValueCategory = prvalue -# 1742| getEntryPoint(): [BlockStmt] { ... } -# 1742| getStmt(0): [ReturnStmt] return ... -# 1745| [CopyAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass const&) -# 1745| <params>: +# 1789| [Constructor] void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() +# 1789| <params>: +# 1789| <initializations>: +# 1789| getInitializer(0): [ConstructorDirectInit] call to CopyConstructorWithImplicitArgumentClass +# 1789| Type = [VoidType] void +# 1789| ValueCategory = prvalue +# 1789| getInitializer(1): [ConstructorDirectInit] call to CopyConstructorWithBitwiseCopyClass +# 1789| Type = [VoidType] void +# 1789| ValueCategory = prvalue +# 1789| getEntryPoint(): [BlockStmt] { ... } +# 1789| getStmt(0): [ReturnStmt] return ... +# 1792| [CopyAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass const&) +# 1792| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1745| [MoveAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass&&) -# 1745| <params>: +# 1792| [MoveAssignmentOperator] CopyConstructorTestVirtualClass& CopyConstructorTestVirtualClass::operator=(CopyConstructorTestVirtualClass&&) +# 1792| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorTestVirtualClass && -# 1745| [CopyConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) -# 1745| <params>: +# 1792| [CopyConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) +# 1792| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1745| <initializations>: -# 1745| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass -# 1745| Type = [VoidType] void -# 1745| ValueCategory = prvalue -# 1745| getArgument(0): [VariableAccess] (unnamed parameter 0) -# 1745| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1745| ValueCategory = prvalue(load) -# 1745| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1745| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & -# 1745| ValueCategory = prvalue -# 1745| getExpr(): [CStyleCast] (const CopyConstructorWithImplicitArgumentClass)... -# 1745| Conversion = [BaseClassConversion] base class conversion -# 1745| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass -# 1745| ValueCategory = lvalue -# 1745| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1745| Type = [SpecifiedType] const CopyConstructorTestVirtualClass -# 1745| ValueCategory = lvalue -# 1745| getInitializer(1): (no string representation) -# 1745| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass -# 1745| ValueCategory = prvalue -# 1745| getEntryPoint(): [BlockStmt] { ... } -# 1745| getStmt(0): [ReturnStmt] return ... -# 1745| [MoveConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass&&) -# 1745| <params>: +# 1792| <initializations>: +# 1792| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass +# 1792| Type = [VoidType] void +# 1792| ValueCategory = prvalue +# 1792| getArgument(0): [VariableAccess] (unnamed parameter 0) +# 1792| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & +# 1792| ValueCategory = prvalue(load) +# 1792| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1792| Type = [LValueReferenceType] const CopyConstructorWithImplicitArgumentClass & +# 1792| ValueCategory = prvalue +# 1792| getExpr(): [CStyleCast] (const CopyConstructorWithImplicitArgumentClass)... +# 1792| Conversion = [BaseClassConversion] base class conversion +# 1792| Type = [SpecifiedType] const CopyConstructorWithImplicitArgumentClass +# 1792| ValueCategory = lvalue +# 1792| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1792| Type = [SpecifiedType] const CopyConstructorTestVirtualClass +# 1792| ValueCategory = lvalue +# 1792| getInitializer(1): (no string representation) +# 1792| Type = [VirtualBaseClass] CopyConstructorWithBitwiseCopyClass +# 1792| ValueCategory = prvalue +# 1792| getEntryPoint(): [BlockStmt] { ... } +# 1792| getStmt(0): [ReturnStmt] return ... +# 1792| [MoveConstructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass&&) +# 1792| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] CopyConstructorTestVirtualClass && -# 1749| [Constructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() -# 1749| <params>: -# 1749| <initializations>: -# 1749| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass -# 1749| Type = [VoidType] void -# 1749| ValueCategory = prvalue -# 1749| getInitializer(1): [ConstructorVirtualInit] call to CopyConstructorWithBitwiseCopyClass -# 1749| Type = [VoidType] void -# 1749| ValueCategory = prvalue -# 1749| getEntryPoint(): [BlockStmt] { ... } -# 1749| getStmt(0): [ReturnStmt] return ... -# 1752| [TopLevelFunction] int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) -# 1752| <params>: -# 1753| getParameter(0): [Parameter] x -# 1753| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1754| getParameter(1): [Parameter] y -# 1754| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1754| getEntryPoint(): [BlockStmt] { ... } -# 1755| getStmt(0): [DeclStmt] declaration -# 1755| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cx -# 1755| Type = [Class] CopyConstructorTestNonVirtualClass -# 1755| getVariable().getInitializer(): [Initializer] initializer for cx -# 1755| getExpr(): [ConstructorCall] call to CopyConstructorTestNonVirtualClass -# 1755| Type = [VoidType] void -# 1755| ValueCategory = prvalue -# 1755| getArgument(0): [VariableAccess] x -# 1755| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1755| ValueCategory = prvalue(load) -# 1755| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1755| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & -# 1755| ValueCategory = prvalue -# 1755| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1755| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass -# 1755| ValueCategory = lvalue -# 1756| getStmt(1): [DeclStmt] declaration -# 1756| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cy -# 1756| Type = [Class] CopyConstructorTestVirtualClass -# 1756| getVariable().getInitializer(): [Initializer] initializer for cy -# 1756| getExpr(): [ConstructorCall] call to CopyConstructorTestVirtualClass -# 1756| Type = [VoidType] void -# 1756| ValueCategory = prvalue -# 1756| getArgument(0): [VariableAccess] y -# 1756| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1756| ValueCategory = prvalue(load) -# 1756| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1756| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & -# 1756| ValueCategory = prvalue -# 1756| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 1756| Type = [SpecifiedType] const CopyConstructorTestVirtualClass -# 1756| ValueCategory = lvalue -# 1757| getStmt(2): [ReturnStmt] return ... -# 1759| [TopLevelFunction] void if_initialization(int) -# 1759| <params>: -# 1759| getParameter(0): [Parameter] x -# 1759| Type = [IntType] int -# 1759| getEntryPoint(): [BlockStmt] { ... } -# 1760| getStmt(0): [IfStmt] if (...) ... -# 1760| getInitialization(): [DeclStmt] declaration -# 1760| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1760| Type = [IntType] int -# 1760| getVariable().getInitializer(): [Initializer] initializer for y -# 1760| getExpr(): [VariableAccess] x -# 1760| Type = [IntType] int -# 1760| ValueCategory = prvalue(load) -# 1760| getCondition(): [AddExpr] ... + ... -# 1760| Type = [IntType] int -# 1760| ValueCategory = prvalue -# 1760| getLeftOperand(): [VariableAccess] x -# 1760| Type = [IntType] int -# 1760| ValueCategory = prvalue(load) -# 1760| getRightOperand(): [Literal] 1 -# 1760| Type = [IntType] int -# 1760| Value = [Literal] 1 -# 1760| ValueCategory = prvalue -# 1760| getThen(): [BlockStmt] { ... } -# 1761| getStmt(0): [ExprStmt] ExprStmt -# 1761| getExpr(): [AssignExpr] ... = ... -# 1761| Type = [IntType] int -# 1761| ValueCategory = lvalue -# 1761| getLValue(): [VariableAccess] x -# 1761| Type = [IntType] int -# 1761| ValueCategory = lvalue -# 1761| getRValue(): [AddExpr] ... + ... -# 1761| Type = [IntType] int -# 1761| ValueCategory = prvalue -# 1761| getLeftOperand(): [VariableAccess] x -# 1761| Type = [IntType] int -# 1761| ValueCategory = prvalue(load) -# 1761| getRightOperand(): [VariableAccess] y -# 1761| Type = [IntType] int -# 1761| ValueCategory = prvalue(load) -# 1760| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1760| Conversion = [BoolConversion] conversion to bool -# 1760| Type = [BoolType] bool -# 1760| ValueCategory = prvalue -# 1764| getStmt(1): [DeclStmt] declaration -# 1764| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1764| Type = [IntType] int -# 1765| getStmt(2): [IfStmt] if (...) ... -# 1765| getInitialization(): [ExprStmt] ExprStmt -# 1765| getExpr(): [AssignExpr] ... = ... -# 1765| Type = [IntType] int -# 1765| ValueCategory = lvalue -# 1765| getLValue(): [VariableAccess] w -# 1765| Type = [IntType] int -# 1765| ValueCategory = lvalue -# 1765| getRValue(): [VariableAccess] x -# 1765| Type = [IntType] int -# 1765| ValueCategory = prvalue(load) -# 1765| getCondition(): [AddExpr] ... + ... -# 1765| Type = [IntType] int -# 1765| ValueCategory = prvalue -# 1765| getLeftOperand(): [VariableAccess] x -# 1765| Type = [IntType] int -# 1765| ValueCategory = prvalue(load) -# 1765| getRightOperand(): [Literal] 1 -# 1765| Type = [IntType] int -# 1765| Value = [Literal] 1 -# 1765| ValueCategory = prvalue -# 1765| getThen(): [BlockStmt] { ... } -# 1766| getStmt(0): [ExprStmt] ExprStmt -# 1766| getExpr(): [AssignExpr] ... = ... -# 1766| Type = [IntType] int -# 1766| ValueCategory = lvalue -# 1766| getLValue(): [VariableAccess] x -# 1766| Type = [IntType] int -# 1766| ValueCategory = lvalue -# 1766| getRValue(): [AddExpr] ... + ... -# 1766| Type = [IntType] int -# 1766| ValueCategory = prvalue -# 1766| getLeftOperand(): [VariableAccess] x -# 1766| Type = [IntType] int -# 1766| ValueCategory = prvalue(load) -# 1766| getRightOperand(): [VariableAccess] w -# 1766| Type = [IntType] int -# 1766| ValueCategory = prvalue(load) -# 1765| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1765| Conversion = [BoolConversion] conversion to bool -# 1765| Type = [BoolType] bool -# 1765| ValueCategory = prvalue -# 1769| getStmt(3): [IfStmt] if (...) ... -# 1769| getInitialization(): [ExprStmt] ExprStmt -# 1769| getExpr(): [AssignExpr] ... = ... -# 1769| Type = [IntType] int -# 1769| ValueCategory = lvalue -# 1769| getLValue(): [VariableAccess] w -# 1769| Type = [IntType] int -# 1769| ValueCategory = lvalue -# 1769| getRValue(): [VariableAccess] x -# 1769| Type = [IntType] int -# 1769| ValueCategory = prvalue(load) -# 1769| getCondition(): [ConditionDeclExpr] (condition decl) -# 1769| Type = [BoolType] bool -# 1769| ValueCategory = prvalue -# 1769| getVariableAccess(): [VariableAccess] w2 -# 1769| Type = [IntType] int -# 1769| ValueCategory = prvalue(load) -# 1769| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... -# 1769| Conversion = [BoolConversion] conversion to bool -# 1769| Type = [BoolType] bool -# 1769| ValueCategory = prvalue -# 1769| getThen(): [BlockStmt] { ... } -# 1770| getStmt(0): [ExprStmt] ExprStmt -# 1770| getExpr(): [AssignExpr] ... = ... -# 1770| Type = [IntType] int -# 1770| ValueCategory = lvalue -# 1770| getLValue(): [VariableAccess] x -# 1770| Type = [IntType] int -# 1770| ValueCategory = lvalue -# 1770| getRValue(): [AddExpr] ... + ... -# 1770| Type = [IntType] int -# 1770| ValueCategory = prvalue -# 1770| getLeftOperand(): [VariableAccess] x -# 1770| Type = [IntType] int -# 1770| ValueCategory = prvalue(load) -# 1770| getRightOperand(): [VariableAccess] w -# 1770| Type = [IntType] int -# 1770| ValueCategory = prvalue(load) -# 1773| getStmt(4): [IfStmt] if (...) ... -# 1773| getInitialization(): [DeclStmt] declaration -# 1773| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1773| Type = [IntType] int -# 1773| getVariable().getInitializer(): [Initializer] initializer for v -# 1773| getExpr(): [VariableAccess] x -# 1773| Type = [IntType] int -# 1773| ValueCategory = prvalue(load) -# 1773| getCondition(): [ConditionDeclExpr] (condition decl) -# 1773| Type = [BoolType] bool -# 1773| ValueCategory = prvalue -# 1773| getVariableAccess(): [VariableAccess] v2 -# 1773| Type = [IntType] int -# 1773| ValueCategory = prvalue(load) -# 1773| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... -# 1773| Conversion = [BoolConversion] conversion to bool -# 1773| Type = [BoolType] bool -# 1773| ValueCategory = prvalue -# 1773| getThen(): [BlockStmt] { ... } -# 1774| getStmt(0): [ExprStmt] ExprStmt -# 1774| getExpr(): [AssignExpr] ... = ... -# 1774| Type = [IntType] int -# 1774| ValueCategory = lvalue -# 1774| getLValue(): [VariableAccess] x -# 1774| Type = [IntType] int -# 1774| ValueCategory = lvalue -# 1774| getRValue(): [AddExpr] ... + ... -# 1774| Type = [IntType] int -# 1774| ValueCategory = prvalue -# 1774| getLeftOperand(): [VariableAccess] x -# 1774| Type = [IntType] int -# 1774| ValueCategory = prvalue(load) -# 1774| getRightOperand(): [VariableAccess] v -# 1774| Type = [IntType] int -# 1774| ValueCategory = prvalue(load) -# 1777| getStmt(5): [DeclStmt] declaration -# 1777| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1777| Type = [IntType] int -# 1777| getVariable().getInitializer(): [Initializer] initializer for z -# 1777| getExpr(): [VariableAccess] x -# 1777| Type = [IntType] int -# 1777| ValueCategory = prvalue(load) -# 1778| getStmt(6): [IfStmt] if (...) ... -# 1778| getCondition(): [VariableAccess] z -# 1778| Type = [IntType] int -# 1778| ValueCategory = prvalue(load) -# 1778| getThen(): [BlockStmt] { ... } -# 1779| getStmt(0): [ExprStmt] ExprStmt -# 1779| getExpr(): [AssignExpr] ... = ... -# 1779| Type = [IntType] int -# 1779| ValueCategory = lvalue -# 1779| getLValue(): [VariableAccess] x -# 1779| Type = [IntType] int -# 1779| ValueCategory = lvalue -# 1779| getRValue(): [AddExpr] ... + ... -# 1779| Type = [IntType] int -# 1779| ValueCategory = prvalue -# 1779| getLeftOperand(): [VariableAccess] x -# 1779| Type = [IntType] int -# 1779| ValueCategory = prvalue(load) -# 1779| getRightOperand(): [VariableAccess] z -# 1779| Type = [IntType] int -# 1779| ValueCategory = prvalue(load) -# 1778| getCondition().getFullyConverted(): [CStyleCast] (bool)... -# 1778| Conversion = [BoolConversion] conversion to bool -# 1778| Type = [BoolType] bool -# 1778| ValueCategory = prvalue -# 1782| getStmt(7): [IfStmt] if (...) ... -# 1782| getCondition(): [ConditionDeclExpr] (condition decl) -# 1782| Type = [BoolType] bool -# 1782| ValueCategory = prvalue -# 1782| getVariableAccess(): [VariableAccess] z2 -# 1782| Type = [IntType] int -# 1782| ValueCategory = prvalue(load) -# 1782| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... -# 1782| Conversion = [BoolConversion] conversion to bool -# 1782| Type = [BoolType] bool -# 1782| ValueCategory = prvalue -# 1782| getThen(): [BlockStmt] { ... } -# 1783| getStmt(0): [ExprStmt] ExprStmt -# 1783| getExpr(): [AssignAddExpr] ... += ... -# 1783| Type = [IntType] int -# 1783| ValueCategory = lvalue -# 1783| getLValue(): [VariableAccess] x -# 1783| Type = [IntType] int -# 1783| ValueCategory = lvalue -# 1783| getRValue(): [VariableAccess] z2 -# 1783| Type = [IntType] int -# 1783| ValueCategory = prvalue(load) -# 1785| getStmt(8): [ReturnStmt] return ... -# 1787| [TopLevelFunction] void switch_initialization(int) -# 1787| <params>: -# 1787| getParameter(0): [Parameter] x -# 1787| Type = [IntType] int -# 1787| getEntryPoint(): [BlockStmt] { ... } -# 1788| getStmt(0): [SwitchStmt] switch (...) ... -# 1788| getInitialization(): [DeclStmt] declaration -# 1788| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1788| Type = [IntType] int -# 1788| getVariable().getInitializer(): [Initializer] initializer for y -# 1788| getExpr(): [VariableAccess] x -# 1788| Type = [IntType] int -# 1788| ValueCategory = prvalue(load) -# 1788| getExpr(): [AddExpr] ... + ... -# 1788| Type = [IntType] int -# 1788| ValueCategory = prvalue -# 1788| getLeftOperand(): [VariableAccess] x -# 1788| Type = [IntType] int -# 1788| ValueCategory = prvalue(load) -# 1788| getRightOperand(): [Literal] 1 -# 1788| Type = [IntType] int -# 1788| Value = [Literal] 1 -# 1788| ValueCategory = prvalue -# 1788| getStmt(): [BlockStmt] { ... } -# 1789| getStmt(0): [SwitchCase] default: -# 1790| getStmt(1): [ExprStmt] ExprStmt -# 1790| getExpr(): [AssignExpr] ... = ... -# 1790| Type = [IntType] int -# 1790| ValueCategory = lvalue -# 1790| getLValue(): [VariableAccess] x -# 1790| Type = [IntType] int -# 1790| ValueCategory = lvalue -# 1790| getRValue(): [AddExpr] ... + ... -# 1790| Type = [IntType] int -# 1790| ValueCategory = prvalue -# 1790| getLeftOperand(): [VariableAccess] x -# 1790| Type = [IntType] int -# 1790| ValueCategory = prvalue(load) -# 1790| getRightOperand(): [VariableAccess] y -# 1790| Type = [IntType] int -# 1790| ValueCategory = prvalue(load) -# 1793| getStmt(1): [DeclStmt] declaration -# 1793| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w -# 1793| Type = [IntType] int -# 1794| getStmt(2): [SwitchStmt] switch (...) ... -# 1794| getInitialization(): [ExprStmt] ExprStmt -# 1794| getExpr(): [AssignExpr] ... = ... -# 1794| Type = [IntType] int -# 1794| ValueCategory = lvalue -# 1794| getLValue(): [VariableAccess] w -# 1794| Type = [IntType] int -# 1794| ValueCategory = lvalue -# 1794| getRValue(): [VariableAccess] x -# 1794| Type = [IntType] int -# 1794| ValueCategory = prvalue(load) -# 1794| getExpr(): [AddExpr] ... + ... -# 1794| Type = [IntType] int -# 1794| ValueCategory = prvalue -# 1794| getLeftOperand(): [VariableAccess] x -# 1794| Type = [IntType] int -# 1794| ValueCategory = prvalue(load) -# 1794| getRightOperand(): [Literal] 1 -# 1794| Type = [IntType] int -# 1794| Value = [Literal] 1 -# 1794| ValueCategory = prvalue -# 1794| getStmt(): [BlockStmt] { ... } -# 1795| getStmt(0): [SwitchCase] default: -# 1796| getStmt(1): [ExprStmt] ExprStmt -# 1796| getExpr(): [AssignExpr] ... = ... -# 1796| Type = [IntType] int -# 1796| ValueCategory = lvalue -# 1796| getLValue(): [VariableAccess] x -# 1796| Type = [IntType] int -# 1796| ValueCategory = lvalue -# 1796| getRValue(): [AddExpr] ... + ... -# 1796| Type = [IntType] int -# 1796| ValueCategory = prvalue -# 1796| getLeftOperand(): [VariableAccess] x -# 1796| Type = [IntType] int -# 1796| ValueCategory = prvalue(load) -# 1796| getRightOperand(): [VariableAccess] w -# 1796| Type = [IntType] int -# 1796| ValueCategory = prvalue(load) -# 1799| getStmt(3): [SwitchStmt] switch (...) ... -# 1799| getInitialization(): [ExprStmt] ExprStmt -# 1799| getExpr(): [AssignExpr] ... = ... -# 1799| Type = [IntType] int -# 1799| ValueCategory = lvalue -# 1799| getLValue(): [VariableAccess] w -# 1799| Type = [IntType] int -# 1799| ValueCategory = lvalue -# 1799| getRValue(): [VariableAccess] x -# 1799| Type = [IntType] int -# 1799| ValueCategory = prvalue(load) -# 1799| getExpr(): [ConditionDeclExpr] (condition decl) -# 1799| Type = [IntType] int -# 1799| ValueCategory = prvalue -# 1799| getVariableAccess(): [VariableAccess] w2 -# 1799| Type = [IntType] int -# 1799| ValueCategory = prvalue(load) -# 1799| getStmt(): [BlockStmt] { ... } -# 1800| getStmt(0): [SwitchCase] default: -# 1801| getStmt(1): [ExprStmt] ExprStmt -# 1801| getExpr(): [AssignExpr] ... = ... -# 1801| Type = [IntType] int -# 1801| ValueCategory = lvalue -# 1801| getLValue(): [VariableAccess] x -# 1801| Type = [IntType] int -# 1801| ValueCategory = lvalue -# 1801| getRValue(): [AddExpr] ... + ... -# 1801| Type = [IntType] int -# 1801| ValueCategory = prvalue -# 1801| getLeftOperand(): [VariableAccess] x -# 1801| Type = [IntType] int -# 1801| ValueCategory = prvalue(load) -# 1801| getRightOperand(): [VariableAccess] w -# 1801| Type = [IntType] int -# 1801| ValueCategory = prvalue(load) -# 1804| getStmt(4): [SwitchStmt] switch (...) ... -# 1804| getInitialization(): [DeclStmt] declaration -# 1804| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1804| Type = [IntType] int -# 1804| getVariable().getInitializer(): [Initializer] initializer for v -# 1804| getExpr(): [VariableAccess] x -# 1804| Type = [IntType] int -# 1804| ValueCategory = prvalue(load) -# 1804| getExpr(): [ConditionDeclExpr] (condition decl) -# 1804| Type = [IntType] int -# 1804| ValueCategory = prvalue -# 1804| getVariableAccess(): [VariableAccess] v2 -# 1804| Type = [IntType] int -# 1804| ValueCategory = prvalue(load) -# 1804| getStmt(): [BlockStmt] { ... } -# 1805| getStmt(0): [SwitchCase] default: -# 1806| getStmt(1): [ExprStmt] ExprStmt -# 1806| getExpr(): [AssignExpr] ... = ... -# 1806| Type = [IntType] int -# 1806| ValueCategory = lvalue -# 1806| getLValue(): [VariableAccess] x -# 1806| Type = [IntType] int -# 1806| ValueCategory = lvalue -# 1806| getRValue(): [AddExpr] ... + ... -# 1806| Type = [IntType] int -# 1806| ValueCategory = prvalue -# 1806| getLeftOperand(): [VariableAccess] x -# 1806| Type = [IntType] int -# 1806| ValueCategory = prvalue(load) -# 1806| getRightOperand(): [VariableAccess] v -# 1806| Type = [IntType] int -# 1806| ValueCategory = prvalue(load) -# 1809| getStmt(5): [DeclStmt] declaration -# 1809| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z -# 1809| Type = [IntType] int -# 1809| getVariable().getInitializer(): [Initializer] initializer for z -# 1809| getExpr(): [VariableAccess] x -# 1809| Type = [IntType] int -# 1809| ValueCategory = prvalue(load) -# 1810| getStmt(6): [SwitchStmt] switch (...) ... -# 1810| getExpr(): [VariableAccess] z -# 1810| Type = [IntType] int -# 1810| ValueCategory = prvalue(load) -# 1810| getStmt(): [BlockStmt] { ... } -# 1811| getStmt(0): [SwitchCase] default: -# 1812| getStmt(1): [ExprStmt] ExprStmt -# 1812| getExpr(): [AssignExpr] ... = ... +# 1796| [Constructor] void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() +# 1796| <params>: +# 1796| <initializations>: +# 1796| getInitializer(0): [ConstructorVirtualInit] call to CopyConstructorWithImplicitArgumentClass +# 1796| Type = [VoidType] void +# 1796| ValueCategory = prvalue +# 1796| getInitializer(1): [ConstructorVirtualInit] call to CopyConstructorWithBitwiseCopyClass +# 1796| Type = [VoidType] void +# 1796| ValueCategory = prvalue +# 1796| getEntryPoint(): [BlockStmt] { ... } +# 1796| getStmt(0): [ReturnStmt] return ... +# 1799| [TopLevelFunction] int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) +# 1799| <params>: +# 1800| getParameter(0): [Parameter] x +# 1800| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & +# 1801| getParameter(1): [Parameter] y +# 1801| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & +# 1801| getEntryPoint(): [BlockStmt] { ... } +# 1802| getStmt(0): [DeclStmt] declaration +# 1802| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cx +# 1802| Type = [Class] CopyConstructorTestNonVirtualClass +# 1802| getVariable().getInitializer(): [Initializer] initializer for cx +# 1802| getExpr(): [ConstructorCall] call to CopyConstructorTestNonVirtualClass +# 1802| Type = [VoidType] void +# 1802| ValueCategory = prvalue +# 1802| getArgument(0): [VariableAccess] x +# 1802| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & +# 1802| ValueCategory = prvalue(load) +# 1802| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1802| Type = [LValueReferenceType] const CopyConstructorTestNonVirtualClass & +# 1802| ValueCategory = prvalue +# 1802| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1802| Type = [SpecifiedType] const CopyConstructorTestNonVirtualClass +# 1802| ValueCategory = lvalue +# 1803| getStmt(1): [DeclStmt] declaration +# 1803| getDeclarationEntry(0): [VariableDeclarationEntry] definition of cy +# 1803| Type = [Class] CopyConstructorTestVirtualClass +# 1803| getVariable().getInitializer(): [Initializer] initializer for cy +# 1803| getExpr(): [ConstructorCall] call to CopyConstructorTestVirtualClass +# 1803| Type = [VoidType] void +# 1803| ValueCategory = prvalue +# 1803| getArgument(0): [VariableAccess] y +# 1803| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & +# 1803| ValueCategory = prvalue(load) +# 1803| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1803| Type = [LValueReferenceType] const CopyConstructorTestVirtualClass & +# 1803| ValueCategory = prvalue +# 1803| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 1803| Type = [SpecifiedType] const CopyConstructorTestVirtualClass +# 1803| ValueCategory = lvalue +# 1804| getStmt(2): [ReturnStmt] return ... +# 1806| [TopLevelFunction] void if_initialization(int) +# 1806| <params>: +# 1806| getParameter(0): [Parameter] x +# 1806| Type = [IntType] int +# 1806| getEntryPoint(): [BlockStmt] { ... } +# 1807| getStmt(0): [IfStmt] if (...) ... +# 1807| getInitialization(): [DeclStmt] declaration +# 1807| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1807| Type = [IntType] int +# 1807| getVariable().getInitializer(): [Initializer] initializer for y +# 1807| getExpr(): [VariableAccess] x +# 1807| Type = [IntType] int +# 1807| ValueCategory = prvalue(load) +# 1807| getCondition(): [AddExpr] ... + ... +# 1807| Type = [IntType] int +# 1807| ValueCategory = prvalue +# 1807| getLeftOperand(): [VariableAccess] x +# 1807| Type = [IntType] int +# 1807| ValueCategory = prvalue(load) +# 1807| getRightOperand(): [Literal] 1 +# 1807| Type = [IntType] int +# 1807| Value = [Literal] 1 +# 1807| ValueCategory = prvalue +# 1807| getThen(): [BlockStmt] { ... } +# 1808| getStmt(0): [ExprStmt] ExprStmt +# 1808| getExpr(): [AssignExpr] ... = ... +# 1808| Type = [IntType] int +# 1808| ValueCategory = lvalue +# 1808| getLValue(): [VariableAccess] x +# 1808| Type = [IntType] int +# 1808| ValueCategory = lvalue +# 1808| getRValue(): [AddExpr] ... + ... +# 1808| Type = [IntType] int +# 1808| ValueCategory = prvalue +# 1808| getLeftOperand(): [VariableAccess] x +# 1808| Type = [IntType] int +# 1808| ValueCategory = prvalue(load) +# 1808| getRightOperand(): [VariableAccess] y +# 1808| Type = [IntType] int +# 1808| ValueCategory = prvalue(load) +# 1807| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1807| Conversion = [BoolConversion] conversion to bool +# 1807| Type = [BoolType] bool +# 1807| ValueCategory = prvalue +# 1811| getStmt(1): [DeclStmt] declaration +# 1811| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1811| Type = [IntType] int +# 1812| getStmt(2): [IfStmt] if (...) ... +# 1812| getInitialization(): [ExprStmt] ExprStmt +# 1812| getExpr(): [AssignExpr] ... = ... +# 1812| Type = [IntType] int +# 1812| ValueCategory = lvalue +# 1812| getLValue(): [VariableAccess] w # 1812| Type = [IntType] int # 1812| ValueCategory = lvalue -# 1812| getLValue(): [VariableAccess] x -# 1812| Type = [IntType] int -# 1812| ValueCategory = lvalue -# 1812| getRValue(): [AddExpr] ... + ... -# 1812| Type = [IntType] int -# 1812| ValueCategory = prvalue -# 1812| getLeftOperand(): [VariableAccess] x -# 1812| Type = [IntType] int -# 1812| ValueCategory = prvalue(load) -# 1812| getRightOperand(): [VariableAccess] z -# 1812| Type = [IntType] int -# 1812| ValueCategory = prvalue(load) -# 1815| getStmt(7): [SwitchStmt] switch (...) ... -# 1815| getExpr(): [ConditionDeclExpr] (condition decl) -# 1815| Type = [IntType] int -# 1815| ValueCategory = prvalue -# 1815| getVariableAccess(): [VariableAccess] z2 -# 1815| Type = [IntType] int -# 1815| ValueCategory = prvalue(load) -# 1815| getStmt(): [BlockStmt] { ... } -# 1816| getStmt(0): [SwitchCase] default: -# 1817| getStmt(1): [ExprStmt] ExprStmt -# 1817| getExpr(): [AssignAddExpr] ... += ... +# 1812| getRValue(): [VariableAccess] x +# 1812| Type = [IntType] int +# 1812| ValueCategory = prvalue(load) +# 1812| getCondition(): [AddExpr] ... + ... +# 1812| Type = [IntType] int +# 1812| ValueCategory = prvalue +# 1812| getLeftOperand(): [VariableAccess] x +# 1812| Type = [IntType] int +# 1812| ValueCategory = prvalue(load) +# 1812| getRightOperand(): [Literal] 1 +# 1812| Type = [IntType] int +# 1812| Value = [Literal] 1 +# 1812| ValueCategory = prvalue +# 1812| getThen(): [BlockStmt] { ... } +# 1813| getStmt(0): [ExprStmt] ExprStmt +# 1813| getExpr(): [AssignExpr] ... = ... +# 1813| Type = [IntType] int +# 1813| ValueCategory = lvalue +# 1813| getLValue(): [VariableAccess] x +# 1813| Type = [IntType] int +# 1813| ValueCategory = lvalue +# 1813| getRValue(): [AddExpr] ... + ... +# 1813| Type = [IntType] int +# 1813| ValueCategory = prvalue +# 1813| getLeftOperand(): [VariableAccess] x +# 1813| Type = [IntType] int +# 1813| ValueCategory = prvalue(load) +# 1813| getRightOperand(): [VariableAccess] w +# 1813| Type = [IntType] int +# 1813| ValueCategory = prvalue(load) +# 1812| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1812| Conversion = [BoolConversion] conversion to bool +# 1812| Type = [BoolType] bool +# 1812| ValueCategory = prvalue +# 1816| getStmt(3): [IfStmt] if (...) ... +# 1816| getInitialization(): [ExprStmt] ExprStmt +# 1816| getExpr(): [AssignExpr] ... = ... +# 1816| Type = [IntType] int +# 1816| ValueCategory = lvalue +# 1816| getLValue(): [VariableAccess] w +# 1816| Type = [IntType] int +# 1816| ValueCategory = lvalue +# 1816| getRValue(): [VariableAccess] x +# 1816| Type = [IntType] int +# 1816| ValueCategory = prvalue(load) +# 1816| getCondition(): [ConditionDeclExpr] (condition decl) +# 1816| Type = [BoolType] bool +# 1816| ValueCategory = prvalue +# 1816| getVariableAccess(): [VariableAccess] w2 +# 1816| Type = [IntType] int +# 1816| ValueCategory = prvalue(load) +# 1816| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... +# 1816| Conversion = [BoolConversion] conversion to bool +# 1816| Type = [BoolType] bool +# 1816| ValueCategory = prvalue +# 1816| getThen(): [BlockStmt] { ... } +# 1817| getStmt(0): [ExprStmt] ExprStmt +# 1817| getExpr(): [AssignExpr] ... = ... # 1817| Type = [IntType] int # 1817| ValueCategory = lvalue # 1817| getLValue(): [VariableAccess] x # 1817| Type = [IntType] int # 1817| ValueCategory = lvalue -# 1817| getRValue(): [VariableAccess] z2 +# 1817| getRValue(): [AddExpr] ... + ... # 1817| Type = [IntType] int -# 1817| ValueCategory = prvalue(load) -# 1819| getStmt(8): [ReturnStmt] return ... -# 1823| [GlobalVariable] int global_2 -# 1823| getInitializer(): [Initializer] initializer for global_2 -# 1823| getExpr(): [Literal] 1 -# 1823| Type = [IntType] int -# 1823| Value = [Literal] 1 -# 1823| ValueCategory = prvalue -# 1825| [GlobalVariable] int const global_3 -# 1825| getInitializer(): [Initializer] initializer for global_3 -# 1825| getExpr(): [Literal] 2 -# 1825| Type = [IntType] int -# 1825| Value = [Literal] 2 -# 1825| ValueCategory = prvalue -# 1827| [GlobalVariable] constructor_only global_4 -# 1827| getInitializer(): [Initializer] initializer for global_4 -# 1827| getExpr(): [ConstructorCall] call to constructor_only -# 1827| Type = [VoidType] void -# 1827| ValueCategory = prvalue -# 1827| getArgument(0): [Literal] 1 -# 1827| Type = [IntType] int -# 1827| Value = [Literal] 1 -# 1827| ValueCategory = prvalue -# 1829| [GlobalVariable] constructor_only global_5 -# 1829| getInitializer(): [Initializer] initializer for global_5 -# 1829| getExpr(): [ConstructorCall] call to constructor_only -# 1829| Type = [VoidType] void -# 1829| ValueCategory = prvalue -# 1829| getArgument(0): [Literal] 2 -# 1829| Type = [IntType] int -# 1829| Value = [Literal] 2 +# 1817| ValueCategory = prvalue +# 1817| getLeftOperand(): [VariableAccess] x +# 1817| Type = [IntType] int +# 1817| ValueCategory = prvalue(load) +# 1817| getRightOperand(): [VariableAccess] w +# 1817| Type = [IntType] int +# 1817| ValueCategory = prvalue(load) +# 1820| getStmt(4): [IfStmt] if (...) ... +# 1820| getInitialization(): [DeclStmt] declaration +# 1820| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1820| Type = [IntType] int +# 1820| getVariable().getInitializer(): [Initializer] initializer for v +# 1820| getExpr(): [VariableAccess] x +# 1820| Type = [IntType] int +# 1820| ValueCategory = prvalue(load) +# 1820| getCondition(): [ConditionDeclExpr] (condition decl) +# 1820| Type = [BoolType] bool +# 1820| ValueCategory = prvalue +# 1820| getVariableAccess(): [VariableAccess] v2 +# 1820| Type = [IntType] int +# 1820| ValueCategory = prvalue(load) +# 1820| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... +# 1820| Conversion = [BoolConversion] conversion to bool +# 1820| Type = [BoolType] bool +# 1820| ValueCategory = prvalue +# 1820| getThen(): [BlockStmt] { ... } +# 1821| getStmt(0): [ExprStmt] ExprStmt +# 1821| getExpr(): [AssignExpr] ... = ... +# 1821| Type = [IntType] int +# 1821| ValueCategory = lvalue +# 1821| getLValue(): [VariableAccess] x +# 1821| Type = [IntType] int +# 1821| ValueCategory = lvalue +# 1821| getRValue(): [AddExpr] ... + ... +# 1821| Type = [IntType] int +# 1821| ValueCategory = prvalue +# 1821| getLeftOperand(): [VariableAccess] x +# 1821| Type = [IntType] int +# 1821| ValueCategory = prvalue(load) +# 1821| getRightOperand(): [VariableAccess] v +# 1821| Type = [IntType] int +# 1821| ValueCategory = prvalue(load) +# 1824| getStmt(5): [DeclStmt] declaration +# 1824| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1824| Type = [IntType] int +# 1824| getVariable().getInitializer(): [Initializer] initializer for z +# 1824| getExpr(): [VariableAccess] x +# 1824| Type = [IntType] int +# 1824| ValueCategory = prvalue(load) +# 1825| getStmt(6): [IfStmt] if (...) ... +# 1825| getCondition(): [VariableAccess] z +# 1825| Type = [IntType] int +# 1825| ValueCategory = prvalue(load) +# 1825| getThen(): [BlockStmt] { ... } +# 1826| getStmt(0): [ExprStmt] ExprStmt +# 1826| getExpr(): [AssignExpr] ... = ... +# 1826| Type = [IntType] int +# 1826| ValueCategory = lvalue +# 1826| getLValue(): [VariableAccess] x +# 1826| Type = [IntType] int +# 1826| ValueCategory = lvalue +# 1826| getRValue(): [AddExpr] ... + ... +# 1826| Type = [IntType] int +# 1826| ValueCategory = prvalue +# 1826| getLeftOperand(): [VariableAccess] x +# 1826| Type = [IntType] int +# 1826| ValueCategory = prvalue(load) +# 1826| getRightOperand(): [VariableAccess] z +# 1826| Type = [IntType] int +# 1826| ValueCategory = prvalue(load) +# 1825| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1825| Conversion = [BoolConversion] conversion to bool +# 1825| Type = [BoolType] bool +# 1825| ValueCategory = prvalue +# 1829| getStmt(7): [IfStmt] if (...) ... +# 1829| getCondition(): [ConditionDeclExpr] (condition decl) +# 1829| Type = [BoolType] bool # 1829| ValueCategory = prvalue -# 1831| [GlobalVariable] char* global_string -# 1831| getInitializer(): [Initializer] initializer for global_string -# 1831| getExpr(): global string -# 1831| Type = [ArrayType] const char[14] -# 1831| Value = [StringLiteral] "global string" -# 1831| ValueCategory = lvalue -# 1831| getExpr().getFullyConverted(): [CStyleCast] (char *)... -# 1831| Conversion = [PointerConversion] pointer conversion -# 1831| Type = [CharPointerType] char * -# 1831| ValueCategory = prvalue -# 1831| getExpr(): [ArrayToPointerConversion] array to pointer conversion -# 1831| Type = [PointerType] const char * -# 1831| ValueCategory = prvalue -# 1833| [GlobalVariable] int global_6 -# 1833| getInitializer(): [Initializer] initializer for global_6 -# 1833| getExpr(): [VariableAccess] global_2 -# 1833| Type = [IntType] int -# 1833| ValueCategory = prvalue(load) -# 1836| [CopyAssignmentOperator] block_assignment::A& block_assignment::A::operator=(block_assignment::A const&) -# 1836| <params>: +# 1829| getVariableAccess(): [VariableAccess] z2 +# 1829| Type = [IntType] int +# 1829| ValueCategory = prvalue(load) +# 1829| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... +# 1829| Conversion = [BoolConversion] conversion to bool +# 1829| Type = [BoolType] bool +# 1829| ValueCategory = prvalue +# 1829| getThen(): [BlockStmt] { ... } +# 1830| getStmt(0): [ExprStmt] ExprStmt +# 1830| getExpr(): [AssignAddExpr] ... += ... +# 1830| Type = [IntType] int +# 1830| ValueCategory = lvalue +# 1830| getLValue(): [VariableAccess] x +# 1830| Type = [IntType] int +# 1830| ValueCategory = lvalue +# 1830| getRValue(): [VariableAccess] z2 +# 1830| Type = [IntType] int +# 1830| ValueCategory = prvalue(load) +# 1832| getStmt(8): [ReturnStmt] return ... +# 1834| [TopLevelFunction] void switch_initialization(int) +# 1834| <params>: +# 1834| getParameter(0): [Parameter] x +# 1834| Type = [IntType] int +# 1834| getEntryPoint(): [BlockStmt] { ... } +# 1835| getStmt(0): [SwitchStmt] switch (...) ... +# 1835| getInitialization(): [DeclStmt] declaration +# 1835| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1835| Type = [IntType] int +# 1835| getVariable().getInitializer(): [Initializer] initializer for y +# 1835| getExpr(): [VariableAccess] x +# 1835| Type = [IntType] int +# 1835| ValueCategory = prvalue(load) +# 1835| getExpr(): [AddExpr] ... + ... +# 1835| Type = [IntType] int +# 1835| ValueCategory = prvalue +# 1835| getLeftOperand(): [VariableAccess] x +# 1835| Type = [IntType] int +# 1835| ValueCategory = prvalue(load) +# 1835| getRightOperand(): [Literal] 1 +# 1835| Type = [IntType] int +# 1835| Value = [Literal] 1 +# 1835| ValueCategory = prvalue +# 1835| getStmt(): [BlockStmt] { ... } +# 1836| getStmt(0): [SwitchCase] default: +# 1837| getStmt(1): [ExprStmt] ExprStmt +# 1837| getExpr(): [AssignExpr] ... = ... +# 1837| Type = [IntType] int +# 1837| ValueCategory = lvalue +# 1837| getLValue(): [VariableAccess] x +# 1837| Type = [IntType] int +# 1837| ValueCategory = lvalue +# 1837| getRValue(): [AddExpr] ... + ... +# 1837| Type = [IntType] int +# 1837| ValueCategory = prvalue +# 1837| getLeftOperand(): [VariableAccess] x +# 1837| Type = [IntType] int +# 1837| ValueCategory = prvalue(load) +# 1837| getRightOperand(): [VariableAccess] y +# 1837| Type = [IntType] int +# 1837| ValueCategory = prvalue(load) +# 1840| getStmt(1): [DeclStmt] declaration +# 1840| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w +# 1840| Type = [IntType] int +# 1841| getStmt(2): [SwitchStmt] switch (...) ... +# 1841| getInitialization(): [ExprStmt] ExprStmt +# 1841| getExpr(): [AssignExpr] ... = ... +# 1841| Type = [IntType] int +# 1841| ValueCategory = lvalue +# 1841| getLValue(): [VariableAccess] w +# 1841| Type = [IntType] int +# 1841| ValueCategory = lvalue +# 1841| getRValue(): [VariableAccess] x +# 1841| Type = [IntType] int +# 1841| ValueCategory = prvalue(load) +# 1841| getExpr(): [AddExpr] ... + ... +# 1841| Type = [IntType] int +# 1841| ValueCategory = prvalue +# 1841| getLeftOperand(): [VariableAccess] x +# 1841| Type = [IntType] int +# 1841| ValueCategory = prvalue(load) +# 1841| getRightOperand(): [Literal] 1 +# 1841| Type = [IntType] int +# 1841| Value = [Literal] 1 +# 1841| ValueCategory = prvalue +# 1841| getStmt(): [BlockStmt] { ... } +# 1842| getStmt(0): [SwitchCase] default: +# 1843| getStmt(1): [ExprStmt] ExprStmt +# 1843| getExpr(): [AssignExpr] ... = ... +# 1843| Type = [IntType] int +# 1843| ValueCategory = lvalue +# 1843| getLValue(): [VariableAccess] x +# 1843| Type = [IntType] int +# 1843| ValueCategory = lvalue +# 1843| getRValue(): [AddExpr] ... + ... +# 1843| Type = [IntType] int +# 1843| ValueCategory = prvalue +# 1843| getLeftOperand(): [VariableAccess] x +# 1843| Type = [IntType] int +# 1843| ValueCategory = prvalue(load) +# 1843| getRightOperand(): [VariableAccess] w +# 1843| Type = [IntType] int +# 1843| ValueCategory = prvalue(load) +# 1846| getStmt(3): [SwitchStmt] switch (...) ... +# 1846| getInitialization(): [ExprStmt] ExprStmt +# 1846| getExpr(): [AssignExpr] ... = ... +# 1846| Type = [IntType] int +# 1846| ValueCategory = lvalue +# 1846| getLValue(): [VariableAccess] w +# 1846| Type = [IntType] int +# 1846| ValueCategory = lvalue +# 1846| getRValue(): [VariableAccess] x +# 1846| Type = [IntType] int +# 1846| ValueCategory = prvalue(load) +# 1846| getExpr(): [ConditionDeclExpr] (condition decl) +# 1846| Type = [IntType] int +# 1846| ValueCategory = prvalue +# 1846| getVariableAccess(): [VariableAccess] w2 +# 1846| Type = [IntType] int +# 1846| ValueCategory = prvalue(load) +# 1846| getStmt(): [BlockStmt] { ... } +# 1847| getStmt(0): [SwitchCase] default: +# 1848| getStmt(1): [ExprStmt] ExprStmt +# 1848| getExpr(): [AssignExpr] ... = ... +# 1848| Type = [IntType] int +# 1848| ValueCategory = lvalue +# 1848| getLValue(): [VariableAccess] x +# 1848| Type = [IntType] int +# 1848| ValueCategory = lvalue +# 1848| getRValue(): [AddExpr] ... + ... +# 1848| Type = [IntType] int +# 1848| ValueCategory = prvalue +# 1848| getLeftOperand(): [VariableAccess] x +# 1848| Type = [IntType] int +# 1848| ValueCategory = prvalue(load) +# 1848| getRightOperand(): [VariableAccess] w +# 1848| Type = [IntType] int +# 1848| ValueCategory = prvalue(load) +# 1851| getStmt(4): [SwitchStmt] switch (...) ... +# 1851| getInitialization(): [DeclStmt] declaration +# 1851| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1851| Type = [IntType] int +# 1851| getVariable().getInitializer(): [Initializer] initializer for v +# 1851| getExpr(): [VariableAccess] x +# 1851| Type = [IntType] int +# 1851| ValueCategory = prvalue(load) +# 1851| getExpr(): [ConditionDeclExpr] (condition decl) +# 1851| Type = [IntType] int +# 1851| ValueCategory = prvalue +# 1851| getVariableAccess(): [VariableAccess] v2 +# 1851| Type = [IntType] int +# 1851| ValueCategory = prvalue(load) +# 1851| getStmt(): [BlockStmt] { ... } +# 1852| getStmt(0): [SwitchCase] default: +# 1853| getStmt(1): [ExprStmt] ExprStmt +# 1853| getExpr(): [AssignExpr] ... = ... +# 1853| Type = [IntType] int +# 1853| ValueCategory = lvalue +# 1853| getLValue(): [VariableAccess] x +# 1853| Type = [IntType] int +# 1853| ValueCategory = lvalue +# 1853| getRValue(): [AddExpr] ... + ... +# 1853| Type = [IntType] int +# 1853| ValueCategory = prvalue +# 1853| getLeftOperand(): [VariableAccess] x +# 1853| Type = [IntType] int +# 1853| ValueCategory = prvalue(load) +# 1853| getRightOperand(): [VariableAccess] v +# 1853| Type = [IntType] int +# 1853| ValueCategory = prvalue(load) +# 1856| getStmt(5): [DeclStmt] declaration +# 1856| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1856| Type = [IntType] int +# 1856| getVariable().getInitializer(): [Initializer] initializer for z +# 1856| getExpr(): [VariableAccess] x +# 1856| Type = [IntType] int +# 1856| ValueCategory = prvalue(load) +# 1857| getStmt(6): [SwitchStmt] switch (...) ... +# 1857| getExpr(): [VariableAccess] z +# 1857| Type = [IntType] int +# 1857| ValueCategory = prvalue(load) +# 1857| getStmt(): [BlockStmt] { ... } +# 1858| getStmt(0): [SwitchCase] default: +# 1859| getStmt(1): [ExprStmt] ExprStmt +# 1859| getExpr(): [AssignExpr] ... = ... +# 1859| Type = [IntType] int +# 1859| ValueCategory = lvalue +# 1859| getLValue(): [VariableAccess] x +# 1859| Type = [IntType] int +# 1859| ValueCategory = lvalue +# 1859| getRValue(): [AddExpr] ... + ... +# 1859| Type = [IntType] int +# 1859| ValueCategory = prvalue +# 1859| getLeftOperand(): [VariableAccess] x +# 1859| Type = [IntType] int +# 1859| ValueCategory = prvalue(load) +# 1859| getRightOperand(): [VariableAccess] z +# 1859| Type = [IntType] int +# 1859| ValueCategory = prvalue(load) +# 1862| getStmt(7): [SwitchStmt] switch (...) ... +# 1862| getExpr(): [ConditionDeclExpr] (condition decl) +# 1862| Type = [IntType] int +# 1862| ValueCategory = prvalue +# 1862| getVariableAccess(): [VariableAccess] z2 +# 1862| Type = [IntType] int +# 1862| ValueCategory = prvalue(load) +# 1862| getStmt(): [BlockStmt] { ... } +# 1863| getStmt(0): [SwitchCase] default: +# 1864| getStmt(1): [ExprStmt] ExprStmt +# 1864| getExpr(): [AssignAddExpr] ... += ... +# 1864| Type = [IntType] int +# 1864| ValueCategory = lvalue +# 1864| getLValue(): [VariableAccess] x +# 1864| Type = [IntType] int +# 1864| ValueCategory = lvalue +# 1864| getRValue(): [VariableAccess] z2 +# 1864| Type = [IntType] int +# 1864| ValueCategory = prvalue(load) +# 1866| getStmt(8): [ReturnStmt] return ... +# 1870| [GlobalVariable] int global_2 +# 1870| getInitializer(): [Initializer] initializer for global_2 +# 1870| getExpr(): [Literal] 1 +# 1870| Type = [IntType] int +# 1870| Value = [Literal] 1 +# 1870| ValueCategory = prvalue +# 1872| [GlobalVariable] int const global_3 +# 1872| getInitializer(): [Initializer] initializer for global_3 +# 1872| getExpr(): [Literal] 2 +# 1872| Type = [IntType] int +# 1872| Value = [Literal] 2 +# 1872| ValueCategory = prvalue +# 1874| [GlobalVariable] constructor_only global_4 +# 1874| getInitializer(): [Initializer] initializer for global_4 +# 1874| getExpr(): [ConstructorCall] call to constructor_only +# 1874| Type = [VoidType] void +# 1874| ValueCategory = prvalue +# 1874| getArgument(0): [Literal] 1 +# 1874| Type = [IntType] int +# 1874| Value = [Literal] 1 +# 1874| ValueCategory = prvalue +# 1876| [GlobalVariable] constructor_only global_5 +# 1876| getInitializer(): [Initializer] initializer for global_5 +# 1876| getExpr(): [ConstructorCall] call to constructor_only +# 1876| Type = [VoidType] void +# 1876| ValueCategory = prvalue +# 1876| getArgument(0): [Literal] 2 +# 1876| Type = [IntType] int +# 1876| Value = [Literal] 2 +# 1876| ValueCategory = prvalue +# 1878| [GlobalVariable] char* global_string +# 1878| getInitializer(): [Initializer] initializer for global_string +# 1878| getExpr(): global string +# 1878| Type = [ArrayType] const char[14] +# 1878| Value = [StringLiteral] "global string" +# 1878| ValueCategory = lvalue +# 1878| getExpr().getFullyConverted(): [CStyleCast] (char *)... +# 1878| Conversion = [PointerConversion] pointer conversion +# 1878| Type = [CharPointerType] char * +# 1878| ValueCategory = prvalue +# 1878| getExpr(): [ArrayToPointerConversion] array to pointer conversion +# 1878| Type = [PointerType] const char * +# 1878| ValueCategory = prvalue +# 1880| [GlobalVariable] int global_6 +# 1880| getInitializer(): [Initializer] initializer for global_6 +# 1880| getExpr(): [VariableAccess] global_2 +# 1880| Type = [IntType] int +# 1880| ValueCategory = prvalue(load) +# 1883| [CopyAssignmentOperator] block_assignment::A& block_assignment::A::operator=(block_assignment::A const&) +# 1883| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const A & -# 1836| [MoveAssignmentOperator] block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) -# 1836| <params>: +# 1883| [MoveAssignmentOperator] block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) +# 1883| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] A && #-----| getEntryPoint(): [BlockStmt] { ... } @@ -14840,43 +14958,43 @@ ir.cpp: #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] A & #-----| ValueCategory = prvalue -# 1836| [Constructor] void block_assignment::A::A() -# 1836| <params>: -# 1836| [CopyConstructor] void block_assignment::A::A(block_assignment::A const&) -# 1836| <params>: +# 1883| [Constructor] void block_assignment::A::A() +# 1883| <params>: +# 1883| [CopyConstructor] void block_assignment::A::A(block_assignment::A const&) +# 1883| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const A & -# 1836| [MoveConstructor] void block_assignment::A::A(block_assignment::A&&) -# 1836| <params>: +# 1883| [MoveConstructor] void block_assignment::A::A(block_assignment::A&&) +# 1883| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] A && -# 1838| [VirtualFunction] void block_assignment::A::f() -# 1838| <params>: -# 1841| [CopyAssignmentOperator] block_assignment::B& block_assignment::B::operator=(block_assignment::B const&) -# 1841| <params>: +# 1885| [VirtualFunction] void block_assignment::A::f() +# 1885| <params>: +# 1888| [CopyAssignmentOperator] block_assignment::B& block_assignment::B::operator=(block_assignment::B const&) +# 1888| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const B & -# 1841| [MoveAssignmentOperator] block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) -# 1841| <params>: +# 1888| [MoveAssignmentOperator] block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) +# 1888| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] B && #-----| getEntryPoint(): [BlockStmt] { ... } #-----| getStmt(0): [ExprStmt] ExprStmt -# 1841| getExpr(): [FunctionCall] call to operator= -# 1841| Type = [LValueReferenceType] A & -# 1841| ValueCategory = prvalue -# 1841| getQualifier(): [ThisExpr] this -# 1841| Type = [PointerType] B * -# 1841| ValueCategory = prvalue(load) -# 1841| getArgument(0): [PointerDereferenceExpr] * ... -# 1841| Type = [Class] A -# 1841| ValueCategory = xvalue -# 1841| getOperand(): [AddressOfExpr] & ... -# 1841| Type = [PointerType] B * -# 1841| ValueCategory = prvalue -# 1841| getOperand(): [VariableAccess] (unnamed parameter 0) -# 1841| Type = [RValueReferenceType] B && -# 1841| ValueCategory = prvalue(load) +# 1888| getExpr(): [FunctionCall] call to operator= +# 1888| Type = [LValueReferenceType] A & +# 1888| ValueCategory = prvalue +# 1888| getQualifier(): [ThisExpr] this +# 1888| Type = [PointerType] B * +# 1888| ValueCategory = prvalue(load) +# 1888| getArgument(0): [PointerDereferenceExpr] * ... +# 1888| Type = [Class] A +# 1888| ValueCategory = xvalue +# 1888| getOperand(): [AddressOfExpr] & ... +# 1888| Type = [PointerType] B * +# 1888| ValueCategory = prvalue +# 1888| getOperand(): [VariableAccess] (unnamed parameter 0) +# 1888| Type = [RValueReferenceType] B && +# 1888| ValueCategory = prvalue(load) #-----| getOperand().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) #-----| Type = [Struct] B #-----| ValueCategory = lvalue @@ -14904,1072 +15022,1072 @@ ir.cpp: #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] B & #-----| ValueCategory = prvalue -# 1841| [CopyConstructor] void block_assignment::B::B(block_assignment::B const&) -# 1841| <params>: +# 1888| [CopyConstructor] void block_assignment::B::B(block_assignment::B const&) +# 1888| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const B & -# 1841| [MoveConstructor] void block_assignment::B::B(block_assignment::B&&) -# 1841| <params>: +# 1888| [MoveConstructor] void block_assignment::B::B(block_assignment::B&&) +# 1888| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] B && -# 1842| [Constructor] void block_assignment::B::B(block_assignment::A*) -# 1842| <params>: -# 1842| getParameter(0): [Parameter] (unnamed parameter 0) -# 1842| Type = [PointerType] A * -# 1845| [TopLevelFunction] void block_assignment::foo() -# 1845| <params>: -# 1845| getEntryPoint(): [BlockStmt] { ... } -# 1846| getStmt(0): [DeclStmt] declaration -# 1846| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v -# 1846| Type = [Struct] B -# 1846| getVariable().getInitializer(): [Initializer] initializer for v -# 1846| getExpr(): [ConstructorCall] call to B -# 1846| Type = [VoidType] void -# 1846| ValueCategory = prvalue -# 1846| getArgument(0): [Literal] 0 -# 1846| Type = [IntType] int -# 1846| Value = [Literal] 0 -# 1846| ValueCategory = prvalue -# 1846| getArgument(0).getFullyConverted(): [CStyleCast] (A *)... -# 1846| Conversion = [IntegralToPointerConversion] integral to pointer conversion -# 1846| Type = [PointerType] A * -# 1846| Value = [CStyleCast] 0 -# 1846| ValueCategory = prvalue -# 1847| getStmt(1): [ExprStmt] ExprStmt -# 1847| getExpr(): [FunctionCall] call to operator= -# 1847| Type = [LValueReferenceType] B & -# 1847| ValueCategory = prvalue -# 1847| getQualifier(): [VariableAccess] v -# 1847| Type = [Struct] B -# 1847| ValueCategory = lvalue -# 1847| getArgument(0): [ConstructorCall] call to B -# 1847| Type = [VoidType] void -# 1847| ValueCategory = prvalue -# 1847| getArgument(0): [Literal] 0 -# 1847| Type = [IntType] int -# 1847| Value = [Literal] 0 -# 1847| ValueCategory = prvalue -# 1847| getArgument(0).getFullyConverted(): [CStyleCast] (A *)... -# 1847| Conversion = [IntegralToPointerConversion] integral to pointer conversion -# 1847| Type = [PointerType] A * -# 1847| Value = [CStyleCast] 0 -# 1847| ValueCategory = prvalue -# 1847| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 1847| Type = [LValueReferenceType] B & -# 1847| ValueCategory = prvalue -# 1847| getExpr(): [TemporaryObjectExpr] temporary object -# 1847| Type = [Struct] B -# 1847| ValueCategory = lvalue -# 1847| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1847| Type = [Struct] B -# 1847| ValueCategory = lvalue -# 1848| getStmt(2): [ReturnStmt] return ... -# 1851| [TopLevelFunction] void magicvars() -# 1851| <params>: -# 1851| getEntryPoint(): [BlockStmt] { ... } -# 1852| getStmt(0): [DeclStmt] declaration -# 1852| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pf -# 1852| Type = [PointerType] const char * -# 1852| getVariable().getInitializer(): [Initializer] initializer for pf -# 1852| getExpr(): [VariableAccess] __PRETTY_FUNCTION__ -# 1852| Type = [ArrayType] const char[17] -# 1852| ValueCategory = lvalue -# 1852| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1852| Type = [PointerType] const char * -# 1852| ValueCategory = prvalue -# 1853| getStmt(1): [DeclStmt] declaration -# 1853| getDeclarationEntry(0): [VariableDeclarationEntry] definition of strfunc -# 1853| Type = [PointerType] const char * -# 1853| getVariable().getInitializer(): [Initializer] initializer for strfunc -# 1853| getExpr(): [VariableAccess] __func__ -# 1853| Type = [ArrayType] const char[10] -# 1853| ValueCategory = lvalue -# 1853| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1853| Type = [PointerType] const char * -# 1853| ValueCategory = prvalue -# 1854| getStmt(2): [ReturnStmt] return ... -# 1857| [CopyAssignmentOperator] missing_declaration_entries::S& missing_declaration_entries::S::operator=(missing_declaration_entries::S const&) -# 1857| <params>: +# 1889| [Constructor] void block_assignment::B::B(block_assignment::A*) +# 1889| <params>: +# 1889| getParameter(0): [Parameter] (unnamed parameter 0) +# 1889| Type = [PointerType] A * +# 1892| [TopLevelFunction] void block_assignment::foo() +# 1892| <params>: +# 1892| getEntryPoint(): [BlockStmt] { ... } +# 1893| getStmt(0): [DeclStmt] declaration +# 1893| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v +# 1893| Type = [Struct] B +# 1893| getVariable().getInitializer(): [Initializer] initializer for v +# 1893| getExpr(): [ConstructorCall] call to B +# 1893| Type = [VoidType] void +# 1893| ValueCategory = prvalue +# 1893| getArgument(0): [Literal] 0 +# 1893| Type = [IntType] int +# 1893| Value = [Literal] 0 +# 1893| ValueCategory = prvalue +# 1893| getArgument(0).getFullyConverted(): [CStyleCast] (A *)... +# 1893| Conversion = [IntegralToPointerConversion] integral to pointer conversion +# 1893| Type = [PointerType] A * +# 1893| Value = [CStyleCast] 0 +# 1893| ValueCategory = prvalue +# 1894| getStmt(1): [ExprStmt] ExprStmt +# 1894| getExpr(): [FunctionCall] call to operator= +# 1894| Type = [LValueReferenceType] B & +# 1894| ValueCategory = prvalue +# 1894| getQualifier(): [VariableAccess] v +# 1894| Type = [Struct] B +# 1894| ValueCategory = lvalue +# 1894| getArgument(0): [ConstructorCall] call to B +# 1894| Type = [VoidType] void +# 1894| ValueCategory = prvalue +# 1894| getArgument(0): [Literal] 0 +# 1894| Type = [IntType] int +# 1894| Value = [Literal] 0 +# 1894| ValueCategory = prvalue +# 1894| getArgument(0).getFullyConverted(): [CStyleCast] (A *)... +# 1894| Conversion = [IntegralToPointerConversion] integral to pointer conversion +# 1894| Type = [PointerType] A * +# 1894| Value = [CStyleCast] 0 +# 1894| ValueCategory = prvalue +# 1894| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 1894| Type = [LValueReferenceType] B & +# 1894| ValueCategory = prvalue +# 1894| getExpr(): [TemporaryObjectExpr] temporary object +# 1894| Type = [Struct] B +# 1894| ValueCategory = lvalue +# 1894| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 1894| Type = [Struct] B +# 1894| ValueCategory = lvalue +# 1895| getStmt(2): [ReturnStmt] return ... +# 1898| [TopLevelFunction] void magicvars() +# 1898| <params>: +# 1898| getEntryPoint(): [BlockStmt] { ... } +# 1899| getStmt(0): [DeclStmt] declaration +# 1899| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pf +# 1899| Type = [PointerType] const char * +# 1899| getVariable().getInitializer(): [Initializer] initializer for pf +# 1899| getExpr(): [VariableAccess] __PRETTY_FUNCTION__ +# 1899| Type = [ArrayType] const char[17] +# 1899| ValueCategory = lvalue +# 1899| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1899| Type = [PointerType] const char * +# 1899| ValueCategory = prvalue +# 1900| getStmt(1): [DeclStmt] declaration +# 1900| getDeclarationEntry(0): [VariableDeclarationEntry] definition of strfunc +# 1900| Type = [PointerType] const char * +# 1900| getVariable().getInitializer(): [Initializer] initializer for strfunc +# 1900| getExpr(): [VariableAccess] __func__ +# 1900| Type = [ArrayType] const char[10] +# 1900| ValueCategory = lvalue +# 1900| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1900| Type = [PointerType] const char * +# 1900| ValueCategory = prvalue +# 1901| getStmt(2): [ReturnStmt] return ... +# 1904| [CopyAssignmentOperator] missing_declaration_entries::S& missing_declaration_entries::S::operator=(missing_declaration_entries::S const&) +# 1904| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const S & -# 1857| [MoveAssignmentOperator] missing_declaration_entries::S& missing_declaration_entries::S::operator=(missing_declaration_entries::S&&) -# 1857| <params>: +# 1904| [MoveAssignmentOperator] missing_declaration_entries::S& missing_declaration_entries::S::operator=(missing_declaration_entries::S&&) +# 1904| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] S && -# 1861| [CopyAssignmentOperator] missing_declaration_entries::Bar1<int>& missing_declaration_entries::Bar1<int>::operator=(missing_declaration_entries::Bar1<int> const&) -# 1861| <params>: +# 1908| [CopyAssignmentOperator] missing_declaration_entries::Bar1<int>& missing_declaration_entries::Bar1<int>::operator=(missing_declaration_entries::Bar1<int> const&) +# 1908| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Bar1<int> & -# 1861| [MoveAssignmentOperator] missing_declaration_entries::Bar1<int>& missing_declaration_entries::Bar1<int>::operator=(missing_declaration_entries::Bar1<int>&&) -# 1861| <params>: +# 1908| [MoveAssignmentOperator] missing_declaration_entries::Bar1<int>& missing_declaration_entries::Bar1<int>::operator=(missing_declaration_entries::Bar1<int>&&) +# 1908| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] Bar1<int> && -# 1864| [MemberFunction] void* missing_declaration_entries::Bar1<T>::missing_type_decl_entry(missing_declaration_entries::Bar1<T>::pointer) -# 1864| <params>: -# 1864| getParameter(0): [Parameter] p -# 1864| Type = [CTypedefType,NestedTypedefType] pointer -# 1864| getEntryPoint(): [BlockStmt] { ... } -# 1865| getStmt(0): [DeclStmt] declaration -# 1865| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of _Res -# 1865| Type = [CTypedefType,LocalTypedefType] _Res -# 1866| getStmt(1): [ReturnStmt] return ... -# 1866| getExpr(): [VariableAccess] p -# 1866| Type = [CTypedefType,NestedTypedefType] pointer -# 1866| ValueCategory = prvalue(load) -# 1866| getExpr().getFullyConverted(): [CStyleCast] (void *)... -# 1866| Conversion = [PointerConversion] pointer conversion -# 1866| Type = [VoidPointerType] void * -# 1866| ValueCategory = prvalue -# 1864| [MemberFunction] void* missing_declaration_entries::Bar1<int>::missing_type_decl_entry(missing_declaration_entries::Bar1<int>::pointer) -# 1864| <params>: -# 1864| getParameter(0): [Parameter] p -# 1864| Type = [CTypedefType,NestedTypedefType] pointer -# 1864| getEntryPoint(): [BlockStmt] { ... } -# 1865| getStmt(0): [DeclStmt] declaration -# 1866| getStmt(1): [ReturnStmt] return ... -# 1866| getExpr(): [VariableAccess] p -# 1866| Type = [CTypedefType,NestedTypedefType] pointer -# 1866| ValueCategory = prvalue(load) -# 1866| getExpr().getFullyConverted(): [CStyleCast] (void *)... -# 1866| Conversion = [PointerConversion] pointer conversion -# 1866| Type = [VoidPointerType] void * -# 1866| ValueCategory = prvalue -# 1870| [TopLevelFunction] void missing_declaration_entries::test1() -# 1870| <params>: -# 1870| getEntryPoint(): [BlockStmt] { ... } -# 1871| getStmt(0): [DeclStmt] declaration -# 1871| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1871| Type = [ClassTemplateInstantiation,Struct] Bar1<int> -# 1872| getStmt(1): [ExprStmt] ExprStmt -# 1872| getExpr(): [FunctionCall] call to missing_type_decl_entry -# 1872| Type = [VoidPointerType] void * -# 1872| ValueCategory = prvalue -# 1872| getQualifier(): [VariableAccess] b -# 1872| Type = [ClassTemplateInstantiation,Struct] Bar1<int> -# 1872| ValueCategory = lvalue -# 1872| getArgument(0): [Literal] 0 -# 1872| Type = [NullPointerType] decltype(nullptr) -# 1872| Value = [Literal] 0 -# 1872| ValueCategory = prvalue -# 1872| getArgument(0).getFullyConverted(): [CStyleCast] (pointer)... -# 1872| Conversion = [PointerConversion] pointer conversion -# 1872| Type = [CTypedefType,NestedTypedefType] pointer -# 1872| Value = [CStyleCast] 0 -# 1872| ValueCategory = prvalue -# 1873| getStmt(2): [ReturnStmt] return ... -# 1875| [CopyAssignmentOperator] missing_declaration_entries::Bar2<int>& missing_declaration_entries::Bar2<int>::operator=(missing_declaration_entries::Bar2<int> const&) -# 1875| <params>: +# 1911| [MemberFunction] void* missing_declaration_entries::Bar1<T>::missing_type_decl_entry(missing_declaration_entries::Bar1<T>::pointer) +# 1911| <params>: +# 1911| getParameter(0): [Parameter] p +# 1911| Type = [CTypedefType,NestedTypedefType] pointer +# 1911| getEntryPoint(): [BlockStmt] { ... } +# 1912| getStmt(0): [DeclStmt] declaration +# 1912| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of _Res +# 1912| Type = [CTypedefType,LocalTypedefType] _Res +# 1913| getStmt(1): [ReturnStmt] return ... +# 1913| getExpr(): [VariableAccess] p +# 1913| Type = [CTypedefType,NestedTypedefType] pointer +# 1913| ValueCategory = prvalue(load) +# 1913| getExpr().getFullyConverted(): [CStyleCast] (void *)... +# 1913| Conversion = [PointerConversion] pointer conversion +# 1913| Type = [VoidPointerType] void * +# 1913| ValueCategory = prvalue +# 1911| [MemberFunction] void* missing_declaration_entries::Bar1<int>::missing_type_decl_entry(missing_declaration_entries::Bar1<int>::pointer) +# 1911| <params>: +# 1911| getParameter(0): [Parameter] p +# 1911| Type = [CTypedefType,NestedTypedefType] pointer +# 1911| getEntryPoint(): [BlockStmt] { ... } +# 1912| getStmt(0): [DeclStmt] declaration +# 1913| getStmt(1): [ReturnStmt] return ... +# 1913| getExpr(): [VariableAccess] p +# 1913| Type = [CTypedefType,NestedTypedefType] pointer +# 1913| ValueCategory = prvalue(load) +# 1913| getExpr().getFullyConverted(): [CStyleCast] (void *)... +# 1913| Conversion = [PointerConversion] pointer conversion +# 1913| Type = [VoidPointerType] void * +# 1913| ValueCategory = prvalue +# 1917| [TopLevelFunction] void missing_declaration_entries::test1() +# 1917| <params>: +# 1917| getEntryPoint(): [BlockStmt] { ... } +# 1918| getStmt(0): [DeclStmt] declaration +# 1918| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1918| Type = [ClassTemplateInstantiation,Struct] Bar1<int> +# 1919| getStmt(1): [ExprStmt] ExprStmt +# 1919| getExpr(): [FunctionCall] call to missing_type_decl_entry +# 1919| Type = [VoidPointerType] void * +# 1919| ValueCategory = prvalue +# 1919| getQualifier(): [VariableAccess] b +# 1919| Type = [ClassTemplateInstantiation,Struct] Bar1<int> +# 1919| ValueCategory = lvalue +# 1919| getArgument(0): [Literal] 0 +# 1919| Type = [NullPointerType] decltype(nullptr) +# 1919| Value = [Literal] 0 +# 1919| ValueCategory = prvalue +# 1919| getArgument(0).getFullyConverted(): [CStyleCast] (pointer)... +# 1919| Conversion = [PointerConversion] pointer conversion +# 1919| Type = [CTypedefType,NestedTypedefType] pointer +# 1919| Value = [CStyleCast] 0 +# 1919| ValueCategory = prvalue +# 1920| getStmt(2): [ReturnStmt] return ... +# 1922| [CopyAssignmentOperator] missing_declaration_entries::Bar2<int>& missing_declaration_entries::Bar2<int>::operator=(missing_declaration_entries::Bar2<int> const&) +# 1922| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const Bar2<int> & -# 1875| [MoveAssignmentOperator] missing_declaration_entries::Bar2<int>& missing_declaration_entries::Bar2<int>::operator=(missing_declaration_entries::Bar2<int>&&) -# 1875| <params>: +# 1922| [MoveAssignmentOperator] missing_declaration_entries::Bar2<int>& missing_declaration_entries::Bar2<int>::operator=(missing_declaration_entries::Bar2<int>&&) +# 1922| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] Bar2<int> && -# 1877| [MemberFunction] int missing_declaration_entries::Bar2<T>::two_missing_variable_declaration_entries() -# 1877| <params>: -# 1877| getEntryPoint(): [BlockStmt] { ... } -# 1878| getStmt(0): [DeclStmt] declaration -# 1878| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1878| Type = [ArrayType] int[10] -# 1878| getDeclarationEntry(1): [VariableDeclarationEntry] definition of y -# 1878| Type = [ArrayType] int[10] -# 1879| getStmt(1): [ExprStmt] ExprStmt -# 1879| getExpr(): [AssignExpr] ... = ... -# 1879| Type = [IntType] int -# 1879| ValueCategory = lvalue -# 1879| getLValue(): [PointerDereferenceExpr] * ... -# 1879| Type = [IntType] int -# 1879| ValueCategory = lvalue -# 1879| getOperand(): [VariableAccess] x -# 1879| Type = [ArrayType] int[10] -# 1879| ValueCategory = lvalue -# 1879| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1879| Type = [IntPointerType] int * -# 1879| ValueCategory = prvalue -# 1879| getRValue(): [Literal] 10 -# 1879| Type = [IntType] int -# 1879| Value = [Literal] 10 -# 1879| ValueCategory = prvalue -# 1880| getStmt(2): [ExprStmt] ExprStmt -# 1880| getExpr(): [AssignExpr] ... = ... -# 1880| Type = [IntType] int -# 1880| ValueCategory = lvalue -# 1880| getLValue(): [PointerDereferenceExpr] * ... -# 1880| Type = [IntType] int -# 1880| ValueCategory = lvalue -# 1880| getOperand(): [VariableAccess] y -# 1880| Type = [ArrayType] int[10] -# 1880| ValueCategory = lvalue -# 1880| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1880| Type = [IntPointerType] int * -# 1880| ValueCategory = prvalue -# 1880| getRValue(): [Literal] 10 -# 1880| Type = [IntType] int -# 1880| Value = [Literal] 10 -# 1880| ValueCategory = prvalue -# 1881| getStmt(3): [ReturnStmt] return ... -# 1881| getExpr(): [AddExpr] ... + ... -# 1881| Type = [IntType] int -# 1881| ValueCategory = prvalue -# 1881| getLeftOperand(): [PointerDereferenceExpr] * ... -# 1881| Type = [IntType] int -# 1881| ValueCategory = prvalue(load) -# 1881| getOperand(): [VariableAccess] x -# 1881| Type = [ArrayType] int[10] -# 1881| ValueCategory = lvalue -# 1881| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1881| Type = [IntPointerType] int * -# 1881| ValueCategory = prvalue -# 1881| getRightOperand(): [PointerDereferenceExpr] * ... -# 1881| Type = [IntType] int -# 1881| ValueCategory = prvalue(load) -# 1881| getOperand(): [VariableAccess] y -# 1881| Type = [ArrayType] int[10] -# 1881| ValueCategory = lvalue -# 1881| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1881| Type = [IntPointerType] int * -# 1881| ValueCategory = prvalue -# 1877| [MemberFunction] int missing_declaration_entries::Bar2<int>::two_missing_variable_declaration_entries() -# 1877| <params>: -# 1877| getEntryPoint(): [BlockStmt] { ... } -# 1878| getStmt(0): [DeclStmt] declaration -# 1879| getStmt(1): [ExprStmt] ExprStmt -# 1879| getExpr(): [AssignExpr] ... = ... -# 1879| Type = [IntType] int -# 1879| ValueCategory = lvalue -# 1879| getLValue(): [PointerDereferenceExpr] * ... -# 1879| Type = [IntType] int -# 1879| ValueCategory = lvalue -# 1879| getOperand(): [VariableAccess] x -# 1879| Type = [ArrayType] int[10] -# 1879| ValueCategory = lvalue -# 1879| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1879| Type = [IntPointerType] int * -# 1879| ValueCategory = prvalue -# 1879| getRValue(): [Literal] 10 -# 1879| Type = [IntType] int -# 1879| Value = [Literal] 10 -# 1879| ValueCategory = prvalue -# 1880| getStmt(2): [ExprStmt] ExprStmt -# 1880| getExpr(): [AssignExpr] ... = ... -# 1880| Type = [IntType] int -# 1880| ValueCategory = lvalue -# 1880| getLValue(): [PointerDereferenceExpr] * ... -# 1880| Type = [IntType] int -# 1880| ValueCategory = lvalue -# 1880| getOperand(): [VariableAccess] y -# 1880| Type = [ArrayType] int[10] -# 1880| ValueCategory = lvalue -# 1880| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1880| Type = [IntPointerType] int * -# 1880| ValueCategory = prvalue -# 1880| getRValue(): [Literal] 10 -# 1880| Type = [IntType] int -# 1880| Value = [Literal] 10 -# 1880| ValueCategory = prvalue -# 1881| getStmt(3): [ReturnStmt] return ... -# 1881| getExpr(): [AddExpr] ... + ... -# 1881| Type = [IntType] int -# 1881| ValueCategory = prvalue -# 1881| getLeftOperand(): [PointerDereferenceExpr] * ... -# 1881| Type = [IntType] int -# 1881| ValueCategory = prvalue(load) -# 1881| getOperand(): [VariableAccess] x -# 1881| Type = [ArrayType] int[10] -# 1881| ValueCategory = lvalue -# 1881| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1881| Type = [IntPointerType] int * -# 1881| ValueCategory = prvalue -# 1881| getRightOperand(): [PointerDereferenceExpr] * ... -# 1881| Type = [IntType] int -# 1881| ValueCategory = prvalue(load) -# 1881| getOperand(): [VariableAccess] y -# 1881| Type = [ArrayType] int[10] -# 1881| ValueCategory = lvalue -# 1881| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 1881| Type = [IntPointerType] int * -# 1881| ValueCategory = prvalue -# 1885| [TopLevelFunction] void missing_declaration_entries::test2() -# 1885| <params>: -# 1885| getEntryPoint(): [BlockStmt] { ... } -# 1886| getStmt(0): [DeclStmt] declaration -# 1886| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 1886| Type = [ClassTemplateInstantiation,Struct] Bar2<int> -# 1887| getStmt(1): [ExprStmt] ExprStmt -# 1887| getExpr(): [FunctionCall] call to two_missing_variable_declaration_entries -# 1887| Type = [IntType] int -# 1887| ValueCategory = prvalue -# 1887| getQualifier(): [VariableAccess] b -# 1887| Type = [ClassTemplateInstantiation,Struct] Bar2<int> -# 1887| ValueCategory = lvalue -# 1888| getStmt(2): [ReturnStmt] return ... -# 1891| [GlobalVariable] char global_template<char> -# 1891| getInitializer(): [Initializer] initializer for global_template -# 1891| getExpr(): [Literal] 42 -# 1891| Type = [IntType] int -# 1891| Value = [Literal] 42 -# 1891| ValueCategory = prvalue -# 1891| getExpr().getFullyConverted(): [CStyleCast] (char)... -# 1891| Conversion = [IntegralConversion] integral conversion -# 1891| Type = [PlainCharType] char -# 1891| Value = [CStyleCast] 42 -# 1891| ValueCategory = prvalue -# 1891| [GlobalVariable] int global_template<int> -# 1891| getInitializer(): [Initializer] initializer for global_template -# 1891| getExpr(): [Literal] 42 -# 1891| Type = [IntType] int -# 1891| Value = [Literal] 42 -# 1891| ValueCategory = prvalue -# 1893| [TopLevelFunction] int test_global_template_int() -# 1893| <params>: -# 1893| getEntryPoint(): [BlockStmt] { ... } -# 1894| getStmt(0): [DeclStmt] declaration -# 1894| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_int -# 1894| Type = [IntType] int -# 1894| getVariable().getInitializer(): [Initializer] initializer for local_int -# 1894| getExpr(): [VariableAccess] global_template -# 1894| Type = [IntType] int -# 1894| ValueCategory = prvalue(load) -# 1895| getStmt(1): [DeclStmt] declaration -# 1895| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_char -# 1895| Type = [PlainCharType] char -# 1895| getVariable().getInitializer(): [Initializer] initializer for local_char -# 1895| getExpr(): [VariableAccess] global_template -# 1895| Type = [PlainCharType] char -# 1895| ValueCategory = prvalue(load) -# 1896| getStmt(2): [ReturnStmt] return ... -# 1896| getExpr(): [AddExpr] ... + ... -# 1896| Type = [IntType] int -# 1896| ValueCategory = prvalue -# 1896| getLeftOperand(): [VariableAccess] local_int -# 1896| Type = [IntType] int -# 1896| ValueCategory = prvalue(load) -# 1896| getRightOperand(): [VariableAccess] local_char -# 1896| Type = [PlainCharType] char -# 1896| ValueCategory = prvalue(load) -# 1896| getRightOperand().getFullyConverted(): [CStyleCast] (int)... -# 1896| Conversion = [IntegralConversion] integral conversion -# 1896| Type = [IntType] int -# 1896| ValueCategory = prvalue -# 1899| [TopLevelFunction] void noreturnFunc() -# 1899| <params>: -# 1901| [TopLevelFunction] int noreturnTest(int) -# 1901| <params>: -# 1901| getParameter(0): [Parameter] x -# 1901| Type = [IntType] int -# 1901| getEntryPoint(): [BlockStmt] { ... } -# 1902| getStmt(0): [IfStmt] if (...) ... -# 1902| getCondition(): [LTExpr] ... < ... -# 1902| Type = [BoolType] bool -# 1902| ValueCategory = prvalue -# 1902| getLesserOperand(): [VariableAccess] x -# 1902| Type = [IntType] int -# 1902| ValueCategory = prvalue(load) -# 1902| getGreaterOperand(): [Literal] 10 -# 1902| Type = [IntType] int -# 1902| Value = [Literal] 10 -# 1902| ValueCategory = prvalue -# 1902| getThen(): [BlockStmt] { ... } -# 1903| getStmt(0): [ReturnStmt] return ... -# 1903| getExpr(): [VariableAccess] x -# 1903| Type = [IntType] int -# 1903| ValueCategory = prvalue(load) -# 1904| getElse(): [BlockStmt] { ... } -# 1905| getStmt(0): [ExprStmt] ExprStmt -# 1905| getExpr(): [FunctionCall] call to noreturnFunc -# 1905| Type = [VoidType] void -# 1905| ValueCategory = prvalue -# 1907| getStmt(1): [ReturnStmt] return ... -# 1909| [TopLevelFunction] int noreturnTest2(int) -# 1909| <params>: -# 1909| getParameter(0): [Parameter] x -# 1909| Type = [IntType] int -# 1909| getEntryPoint(): [BlockStmt] { ... } -# 1910| getStmt(0): [IfStmt] if (...) ... -# 1910| getCondition(): [LTExpr] ... < ... -# 1910| Type = [BoolType] bool -# 1910| ValueCategory = prvalue -# 1910| getLesserOperand(): [VariableAccess] x -# 1910| Type = [IntType] int -# 1910| ValueCategory = prvalue(load) -# 1910| getGreaterOperand(): [Literal] 10 -# 1910| Type = [IntType] int -# 1910| Value = [Literal] 10 -# 1910| ValueCategory = prvalue -# 1910| getThen(): [BlockStmt] { ... } -# 1911| getStmt(0): [ExprStmt] ExprStmt -# 1911| getExpr(): [FunctionCall] call to noreturnFunc -# 1911| Type = [VoidType] void -# 1911| ValueCategory = prvalue -# 1913| getStmt(1): [ReturnStmt] return ... -# 1913| getExpr(): [VariableAccess] x -# 1913| Type = [IntType] int -# 1913| ValueCategory = prvalue(load) -# 1916| [TopLevelFunction] int static_function(int) -# 1916| <params>: -# 1916| getParameter(0): [Parameter] x -# 1916| Type = [IntType] int -# 1916| getEntryPoint(): [BlockStmt] { ... } -# 1917| getStmt(0): [ReturnStmt] return ... -# 1917| getExpr(): [VariableAccess] x -# 1917| Type = [IntType] int -# 1917| ValueCategory = prvalue(load) -# 1920| [TopLevelFunction] void test_static_functions_with_assignments() -# 1920| <params>: -# 1920| getEntryPoint(): [BlockStmt] { ... } -# 1921| getStmt(0): [DeclStmt] declaration -# 1921| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1921| Type = [Class] C -# 1921| getVariable().getInitializer(): [Initializer] initializer for c -# 1921| getExpr(): [ConstructorCall] call to C -# 1921| Type = [VoidType] void -# 1921| ValueCategory = prvalue -# 1922| getStmt(1): [DeclStmt] declaration -# 1922| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1922| Type = [IntType] int -# 1923| getStmt(2): [ExprStmt] ExprStmt -# 1923| getExpr(): [AssignExpr] ... = ... -# 1923| Type = [IntType] int -# 1923| ValueCategory = lvalue -# 1923| getLValue(): [VariableAccess] x -# 1923| Type = [IntType] int -# 1923| ValueCategory = lvalue -# 1923| getRValue(): [FunctionCall] call to StaticMemberFunction -# 1923| Type = [IntType] int -# 1923| ValueCategory = prvalue -# 1923| getQualifier(): [VariableAccess] c -# 1923| Type = [Class] C -# 1923| ValueCategory = lvalue -# 1923| getArgument(0): [Literal] 10 -# 1923| Type = [IntType] int -# 1923| Value = [Literal] 10 -# 1923| ValueCategory = prvalue -# 1924| getStmt(3): [DeclStmt] declaration -# 1924| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1924| Type = [IntType] int -# 1925| getStmt(4): [ExprStmt] ExprStmt -# 1925| getExpr(): [AssignExpr] ... = ... -# 1925| Type = [IntType] int -# 1925| ValueCategory = lvalue -# 1925| getLValue(): [VariableAccess] y -# 1925| Type = [IntType] int -# 1925| ValueCategory = lvalue -# 1925| getRValue(): [FunctionCall] call to StaticMemberFunction -# 1925| Type = [IntType] int -# 1925| ValueCategory = prvalue -# 1925| getArgument(0): [Literal] 10 -# 1925| Type = [IntType] int -# 1925| Value = [Literal] 10 -# 1925| ValueCategory = prvalue -# 1926| getStmt(5): [DeclStmt] declaration -# 1926| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1924| [MemberFunction] int missing_declaration_entries::Bar2<T>::two_missing_variable_declaration_entries() +# 1924| <params>: +# 1924| getEntryPoint(): [BlockStmt] { ... } +# 1925| getStmt(0): [DeclStmt] declaration +# 1925| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1925| Type = [ArrayType] int[10] +# 1925| getDeclarationEntry(1): [VariableDeclarationEntry] definition of y +# 1925| Type = [ArrayType] int[10] +# 1926| getStmt(1): [ExprStmt] ExprStmt +# 1926| getExpr(): [AssignExpr] ... = ... # 1926| Type = [IntType] int -# 1927| getStmt(6): [ExprStmt] ExprStmt +# 1926| ValueCategory = lvalue +# 1926| getLValue(): [PointerDereferenceExpr] * ... +# 1926| Type = [IntType] int +# 1926| ValueCategory = lvalue +# 1926| getOperand(): [VariableAccess] x +# 1926| Type = [ArrayType] int[10] +# 1926| ValueCategory = lvalue +# 1926| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1926| Type = [IntPointerType] int * +# 1926| ValueCategory = prvalue +# 1926| getRValue(): [Literal] 10 +# 1926| Type = [IntType] int +# 1926| Value = [Literal] 10 +# 1926| ValueCategory = prvalue +# 1927| getStmt(2): [ExprStmt] ExprStmt # 1927| getExpr(): [AssignExpr] ... = ... # 1927| Type = [IntType] int # 1927| ValueCategory = lvalue -# 1927| getLValue(): [VariableAccess] z +# 1927| getLValue(): [PointerDereferenceExpr] * ... # 1927| Type = [IntType] int # 1927| ValueCategory = lvalue -# 1927| getRValue(): [FunctionCall] call to static_function -# 1927| Type = [IntType] int -# 1927| ValueCategory = prvalue -# 1927| getArgument(0): [Literal] 10 -# 1927| Type = [IntType] int -# 1927| Value = [Literal] 10 +# 1927| getOperand(): [VariableAccess] y +# 1927| Type = [ArrayType] int[10] +# 1927| ValueCategory = lvalue +# 1927| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1927| Type = [IntPointerType] int * # 1927| ValueCategory = prvalue -# 1928| getStmt(7): [ReturnStmt] return ... -# 1928| getImplicitDestructorCall(0): [DestructorCall] call to ~C -# 1928| Type = [VoidType] void +# 1927| getRValue(): [Literal] 10 +# 1927| Type = [IntType] int +# 1927| Value = [Literal] 10 +# 1927| ValueCategory = prvalue +# 1928| getStmt(3): [ReturnStmt] return ... +# 1928| getExpr(): [AddExpr] ... + ... +# 1928| Type = [IntType] int # 1928| ValueCategory = prvalue -# 1928| getQualifier(): [VariableAccess] c -# 1928| Type = [Class] C -# 1928| ValueCategory = lvalue -# 1930| [TopLevelFunction] void test_double_assign() -# 1930| <params>: -# 1930| getEntryPoint(): [BlockStmt] { ... } -# 1931| getStmt(0): [DeclStmt] declaration -# 1931| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1931| Type = [IntType] int -# 1931| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j -# 1931| Type = [IntType] int -# 1932| getStmt(1): [ExprStmt] ExprStmt -# 1932| getExpr(): [AssignExpr] ... = ... -# 1932| Type = [IntType] int -# 1932| ValueCategory = lvalue -# 1932| getLValue(): [VariableAccess] i -# 1932| Type = [IntType] int -# 1932| ValueCategory = lvalue -# 1932| getRValue(): [AssignExpr] ... = ... -# 1932| Type = [IntType] int -# 1932| ValueCategory = prvalue(load) -# 1932| getLValue(): [VariableAccess] j -# 1932| Type = [IntType] int -# 1932| ValueCategory = lvalue -# 1932| getRValue(): [Literal] 40 -# 1932| Type = [IntType] int -# 1932| Value = [Literal] 40 -# 1932| ValueCategory = prvalue -# 1933| getStmt(2): [ReturnStmt] return ... -# 1935| [TopLevelFunction] void test_assign_with_assign_operation() -# 1935| <params>: -# 1935| getEntryPoint(): [BlockStmt] { ... } -# 1936| getStmt(0): [DeclStmt] declaration -# 1936| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 1936| Type = [IntType] int -# 1936| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j -# 1936| Type = [IntType] int -# 1936| getVariable().getInitializer(): [Initializer] initializer for j -# 1936| getExpr(): [Literal] 0 -# 1936| Type = [IntType] int -# 1936| Value = [Literal] 0 -# 1936| ValueCategory = prvalue -# 1937| getStmt(1): [ExprStmt] ExprStmt -# 1937| getExpr(): [AssignExpr] ... = ... -# 1937| Type = [IntType] int -# 1937| ValueCategory = lvalue -# 1937| getLValue(): [VariableAccess] i -# 1937| Type = [IntType] int -# 1937| ValueCategory = lvalue -# 1937| getRValue(): [AssignAddExpr] ... += ... -# 1937| Type = [IntType] int -# 1937| ValueCategory = prvalue(load) -# 1937| getLValue(): [VariableAccess] j -# 1937| Type = [IntType] int -# 1937| ValueCategory = lvalue -# 1937| getRValue(): [Literal] 40 -# 1937| Type = [IntType] int -# 1937| Value = [Literal] 40 -# 1937| ValueCategory = prvalue -# 1937| getRValue().getFullyConverted(): [ParenthesisExpr] (...) -# 1937| Type = [IntType] int -# 1937| ValueCategory = prvalue(load) -# 1938| getStmt(2): [ReturnStmt] return ... -# 1940| [CopyAssignmentOperator] D& D::operator=(D const&) +# 1928| getLeftOperand(): [PointerDereferenceExpr] * ... +# 1928| Type = [IntType] int +# 1928| ValueCategory = prvalue(load) +# 1928| getOperand(): [VariableAccess] x +# 1928| Type = [ArrayType] int[10] +# 1928| ValueCategory = lvalue +# 1928| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1928| Type = [IntPointerType] int * +# 1928| ValueCategory = prvalue +# 1928| getRightOperand(): [PointerDereferenceExpr] * ... +# 1928| Type = [IntType] int +# 1928| ValueCategory = prvalue(load) +# 1928| getOperand(): [VariableAccess] y +# 1928| Type = [ArrayType] int[10] +# 1928| ValueCategory = lvalue +# 1928| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1928| Type = [IntPointerType] int * +# 1928| ValueCategory = prvalue +# 1924| [MemberFunction] int missing_declaration_entries::Bar2<int>::two_missing_variable_declaration_entries() +# 1924| <params>: +# 1924| getEntryPoint(): [BlockStmt] { ... } +# 1925| getStmt(0): [DeclStmt] declaration +# 1926| getStmt(1): [ExprStmt] ExprStmt +# 1926| getExpr(): [AssignExpr] ... = ... +# 1926| Type = [IntType] int +# 1926| ValueCategory = lvalue +# 1926| getLValue(): [PointerDereferenceExpr] * ... +# 1926| Type = [IntType] int +# 1926| ValueCategory = lvalue +# 1926| getOperand(): [VariableAccess] x +# 1926| Type = [ArrayType] int[10] +# 1926| ValueCategory = lvalue +# 1926| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1926| Type = [IntPointerType] int * +# 1926| ValueCategory = prvalue +# 1926| getRValue(): [Literal] 10 +# 1926| Type = [IntType] int +# 1926| Value = [Literal] 10 +# 1926| ValueCategory = prvalue +# 1927| getStmt(2): [ExprStmt] ExprStmt +# 1927| getExpr(): [AssignExpr] ... = ... +# 1927| Type = [IntType] int +# 1927| ValueCategory = lvalue +# 1927| getLValue(): [PointerDereferenceExpr] * ... +# 1927| Type = [IntType] int +# 1927| ValueCategory = lvalue +# 1927| getOperand(): [VariableAccess] y +# 1927| Type = [ArrayType] int[10] +# 1927| ValueCategory = lvalue +# 1927| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1927| Type = [IntPointerType] int * +# 1927| ValueCategory = prvalue +# 1927| getRValue(): [Literal] 10 +# 1927| Type = [IntType] int +# 1927| Value = [Literal] 10 +# 1927| ValueCategory = prvalue +# 1928| getStmt(3): [ReturnStmt] return ... +# 1928| getExpr(): [AddExpr] ... + ... +# 1928| Type = [IntType] int +# 1928| ValueCategory = prvalue +# 1928| getLeftOperand(): [PointerDereferenceExpr] * ... +# 1928| Type = [IntType] int +# 1928| ValueCategory = prvalue(load) +# 1928| getOperand(): [VariableAccess] x +# 1928| Type = [ArrayType] int[10] +# 1928| ValueCategory = lvalue +# 1928| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1928| Type = [IntPointerType] int * +# 1928| ValueCategory = prvalue +# 1928| getRightOperand(): [PointerDereferenceExpr] * ... +# 1928| Type = [IntType] int +# 1928| ValueCategory = prvalue(load) +# 1928| getOperand(): [VariableAccess] y +# 1928| Type = [ArrayType] int[10] +# 1928| ValueCategory = lvalue +# 1928| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 1928| Type = [IntPointerType] int * +# 1928| ValueCategory = prvalue +# 1932| [TopLevelFunction] void missing_declaration_entries::test2() +# 1932| <params>: +# 1932| getEntryPoint(): [BlockStmt] { ... } +# 1933| getStmt(0): [DeclStmt] declaration +# 1933| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 1933| Type = [ClassTemplateInstantiation,Struct] Bar2<int> +# 1934| getStmt(1): [ExprStmt] ExprStmt +# 1934| getExpr(): [FunctionCall] call to two_missing_variable_declaration_entries +# 1934| Type = [IntType] int +# 1934| ValueCategory = prvalue +# 1934| getQualifier(): [VariableAccess] b +# 1934| Type = [ClassTemplateInstantiation,Struct] Bar2<int> +# 1934| ValueCategory = lvalue +# 1935| getStmt(2): [ReturnStmt] return ... +# 1938| [GlobalVariable] char global_template<char> +# 1938| getInitializer(): [Initializer] initializer for global_template +# 1938| getExpr(): [Literal] 42 +# 1938| Type = [IntType] int +# 1938| Value = [Literal] 42 +# 1938| ValueCategory = prvalue +# 1938| getExpr().getFullyConverted(): [CStyleCast] (char)... +# 1938| Conversion = [IntegralConversion] integral conversion +# 1938| Type = [PlainCharType] char +# 1938| Value = [CStyleCast] 42 +# 1938| ValueCategory = prvalue +# 1938| [GlobalVariable] int global_template<int> +# 1938| getInitializer(): [Initializer] initializer for global_template +# 1938| getExpr(): [Literal] 42 +# 1938| Type = [IntType] int +# 1938| Value = [Literal] 42 +# 1938| ValueCategory = prvalue +# 1940| [TopLevelFunction] int test_global_template_int() # 1940| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const D & -# 1940| [MoveAssignmentOperator] D& D::operator=(D&&) -# 1940| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] D && -# 1944| [MemberFunction] D& D::ReferenceStaticMemberFunction() -# 1944| <params>: -# 1944| getEntryPoint(): [BlockStmt] { ... } -# 1945| getStmt(0): [ReturnStmt] return ... -# 1945| getExpr(): [VariableAccess] x -# 1945| Type = [Class] D -# 1945| ValueCategory = lvalue -# 1945| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 1945| Type = [LValueReferenceType] D & -# 1945| ValueCategory = prvalue -# 1947| [MemberFunction] D D::ObjectStaticMemberFunction() -# 1947| <params>: -# 1947| getEntryPoint(): [BlockStmt] { ... } -# 1948| getStmt(0): [ReturnStmt] return ... -# 1948| getExpr(): [VariableAccess] x -# 1948| Type = [Class] D -# 1948| ValueCategory = prvalue(load) -# 1952| [TopLevelFunction] void test_static_member_functions_with_reference_return() -# 1952| <params>: -# 1952| getEntryPoint(): [BlockStmt] { ... } -# 1953| getStmt(0): [DeclStmt] declaration -# 1953| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 1953| Type = [Class] D -# 1955| getStmt(1): [ExprStmt] ExprStmt -# 1955| getExpr(): [FunctionCall] call to ReferenceStaticMemberFunction -# 1955| Type = [LValueReferenceType] D & -# 1955| ValueCategory = prvalue -# 1955| getQualifier(): [VariableAccess] d -# 1955| Type = [Class] D -# 1955| ValueCategory = lvalue -# 1955| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1955| Type = [Class] D -# 1955| ValueCategory = lvalue -# 1956| getStmt(2): [ExprStmt] ExprStmt -# 1956| getExpr(): [FunctionCall] call to ReferenceStaticMemberFunction -# 1956| Type = [LValueReferenceType] D & -# 1956| ValueCategory = prvalue -# 1956| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1956| Type = [Class] D -# 1956| ValueCategory = lvalue -# 1957| getStmt(3): [ExprStmt] ExprStmt -# 1957| getExpr(): [FunctionCall] call to ObjectStaticMemberFunction -# 1957| Type = [Class] D +# 1940| getEntryPoint(): [BlockStmt] { ... } +# 1941| getStmt(0): [DeclStmt] declaration +# 1941| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_int +# 1941| Type = [IntType] int +# 1941| getVariable().getInitializer(): [Initializer] initializer for local_int +# 1941| getExpr(): [VariableAccess] global_template +# 1941| Type = [IntType] int +# 1941| ValueCategory = prvalue(load) +# 1942| getStmt(1): [DeclStmt] declaration +# 1942| getDeclarationEntry(0): [VariableDeclarationEntry] definition of local_char +# 1942| Type = [PlainCharType] char +# 1942| getVariable().getInitializer(): [Initializer] initializer for local_char +# 1942| getExpr(): [VariableAccess] global_template +# 1942| Type = [PlainCharType] char +# 1942| ValueCategory = prvalue(load) +# 1943| getStmt(2): [ReturnStmt] return ... +# 1943| getExpr(): [AddExpr] ... + ... +# 1943| Type = [IntType] int +# 1943| ValueCategory = prvalue +# 1943| getLeftOperand(): [VariableAccess] local_int +# 1943| Type = [IntType] int +# 1943| ValueCategory = prvalue(load) +# 1943| getRightOperand(): [VariableAccess] local_char +# 1943| Type = [PlainCharType] char +# 1943| ValueCategory = prvalue(load) +# 1943| getRightOperand().getFullyConverted(): [CStyleCast] (int)... +# 1943| Conversion = [IntegralConversion] integral conversion +# 1943| Type = [IntType] int +# 1943| ValueCategory = prvalue +# 1946| [TopLevelFunction] void noreturnFunc() +# 1946| <params>: +# 1948| [TopLevelFunction] int noreturnTest(int) +# 1948| <params>: +# 1948| getParameter(0): [Parameter] x +# 1948| Type = [IntType] int +# 1948| getEntryPoint(): [BlockStmt] { ... } +# 1949| getStmt(0): [IfStmt] if (...) ... +# 1949| getCondition(): [LTExpr] ... < ... +# 1949| Type = [BoolType] bool +# 1949| ValueCategory = prvalue +# 1949| getLesserOperand(): [VariableAccess] x +# 1949| Type = [IntType] int +# 1949| ValueCategory = prvalue(load) +# 1949| getGreaterOperand(): [Literal] 10 +# 1949| Type = [IntType] int +# 1949| Value = [Literal] 10 +# 1949| ValueCategory = prvalue +# 1949| getThen(): [BlockStmt] { ... } +# 1950| getStmt(0): [ReturnStmt] return ... +# 1950| getExpr(): [VariableAccess] x +# 1950| Type = [IntType] int +# 1950| ValueCategory = prvalue(load) +# 1951| getElse(): [BlockStmt] { ... } +# 1952| getStmt(0): [ExprStmt] ExprStmt +# 1952| getExpr(): [FunctionCall] call to noreturnFunc +# 1952| Type = [VoidType] void +# 1952| ValueCategory = prvalue +# 1954| getStmt(1): [ReturnStmt] return ... +# 1956| [TopLevelFunction] int noreturnTest2(int) +# 1956| <params>: +# 1956| getParameter(0): [Parameter] x +# 1956| Type = [IntType] int +# 1956| getEntryPoint(): [BlockStmt] { ... } +# 1957| getStmt(0): [IfStmt] if (...) ... +# 1957| getCondition(): [LTExpr] ... < ... +# 1957| Type = [BoolType] bool # 1957| ValueCategory = prvalue -# 1957| getQualifier(): [VariableAccess] d -# 1957| Type = [Class] D -# 1957| ValueCategory = lvalue -# 1958| getStmt(4): [ExprStmt] ExprStmt -# 1958| getExpr(): [FunctionCall] call to ObjectStaticMemberFunction -# 1958| Type = [Class] D -# 1958| ValueCategory = prvalue -# 1960| getStmt(5): [DeclStmt] declaration -# 1960| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1960| Type = [Class] D -# 1961| getStmt(6): [ExprStmt] ExprStmt -# 1961| getExpr(): [AssignExpr] ... = ... -# 1961| Type = [Class] D -# 1961| ValueCategory = lvalue -# 1961| getLValue(): [VariableAccess] x -# 1961| Type = [Class] D -# 1961| ValueCategory = lvalue -# 1961| getRValue(): [FunctionCall] call to ReferenceStaticMemberFunction -# 1961| Type = [LValueReferenceType] D & -# 1961| ValueCategory = prvalue -# 1961| getQualifier(): [VariableAccess] d -# 1961| Type = [Class] D -# 1961| ValueCategory = lvalue -# 1961| getRValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1961| Type = [Class] D -# 1961| ValueCategory = prvalue(load) -# 1962| getStmt(7): [DeclStmt] declaration -# 1962| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 1962| Type = [Class] D -# 1963| getStmt(8): [ExprStmt] ExprStmt -# 1963| getExpr(): [AssignExpr] ... = ... -# 1963| Type = [Class] D -# 1963| ValueCategory = lvalue -# 1963| getLValue(): [VariableAccess] y -# 1963| Type = [Class] D -# 1963| ValueCategory = lvalue -# 1963| getRValue(): [FunctionCall] call to ReferenceStaticMemberFunction -# 1963| Type = [LValueReferenceType] D & -# 1963| ValueCategory = prvalue -# 1963| getRValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1963| Type = [Class] D -# 1963| ValueCategory = prvalue(load) -# 1964| getStmt(9): [DeclStmt] declaration -# 1964| getDeclarationEntry(0): [VariableDeclarationEntry] definition of j -# 1964| Type = [Class] D -# 1965| getStmt(10): [ExprStmt] ExprStmt -# 1965| getExpr(): [AssignExpr] ... = ... -# 1965| Type = [Class] D -# 1965| ValueCategory = lvalue -# 1965| getLValue(): [VariableAccess] j -# 1965| Type = [Class] D -# 1965| ValueCategory = lvalue -# 1965| getRValue(): [FunctionCall] call to ObjectStaticMemberFunction -# 1965| Type = [Class] D -# 1965| ValueCategory = prvalue -# 1965| getQualifier(): [VariableAccess] d -# 1965| Type = [Class] D -# 1965| ValueCategory = lvalue -# 1966| getStmt(11): [DeclStmt] declaration -# 1966| getDeclarationEntry(0): [VariableDeclarationEntry] definition of k -# 1966| Type = [Class] D -# 1967| getStmt(12): [ExprStmt] ExprStmt -# 1967| getExpr(): [AssignExpr] ... = ... -# 1967| Type = [Class] D -# 1967| ValueCategory = lvalue -# 1967| getLValue(): [VariableAccess] k -# 1967| Type = [Class] D -# 1967| ValueCategory = lvalue -# 1967| getRValue(): [FunctionCall] call to ObjectStaticMemberFunction -# 1967| Type = [Class] D -# 1967| ValueCategory = prvalue -# 1968| getStmt(13): [ReturnStmt] return ... -# 1970| [TopLevelFunction] void test_volatile() -# 1970| <params>: -# 1970| getEntryPoint(): [BlockStmt] { ... } -# 1971| getStmt(0): [DeclStmt] declaration -# 1971| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 1971| Type = [SpecifiedType] volatile int -# 1972| getStmt(1): [ExprStmt] ExprStmt -# 1972| getExpr(): [VariableAccess] x +# 1957| getLesserOperand(): [VariableAccess] x +# 1957| Type = [IntType] int +# 1957| ValueCategory = prvalue(load) +# 1957| getGreaterOperand(): [Literal] 10 +# 1957| Type = [IntType] int +# 1957| Value = [Literal] 10 +# 1957| ValueCategory = prvalue +# 1957| getThen(): [BlockStmt] { ... } +# 1958| getStmt(0): [ExprStmt] ExprStmt +# 1958| getExpr(): [FunctionCall] call to noreturnFunc +# 1958| Type = [VoidType] void +# 1958| ValueCategory = prvalue +# 1960| getStmt(1): [ReturnStmt] return ... +# 1960| getExpr(): [VariableAccess] x +# 1960| Type = [IntType] int +# 1960| ValueCategory = prvalue(load) +# 1963| [TopLevelFunction] int static_function(int) +# 1963| <params>: +# 1963| getParameter(0): [Parameter] x +# 1963| Type = [IntType] int +# 1963| getEntryPoint(): [BlockStmt] { ... } +# 1964| getStmt(0): [ReturnStmt] return ... +# 1964| getExpr(): [VariableAccess] x +# 1964| Type = [IntType] int +# 1964| ValueCategory = prvalue(load) +# 1967| [TopLevelFunction] void test_static_functions_with_assignments() +# 1967| <params>: +# 1967| getEntryPoint(): [BlockStmt] { ... } +# 1968| getStmt(0): [DeclStmt] declaration +# 1968| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 1968| Type = [Class] C +# 1968| getVariable().getInitializer(): [Initializer] initializer for c +# 1968| getExpr(): [ConstructorCall] call to C +# 1968| Type = [VoidType] void +# 1968| ValueCategory = prvalue +# 1969| getStmt(1): [DeclStmt] declaration +# 1969| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 1969| Type = [IntType] int +# 1970| getStmt(2): [ExprStmt] ExprStmt +# 1970| getExpr(): [AssignExpr] ... = ... +# 1970| Type = [IntType] int +# 1970| ValueCategory = lvalue +# 1970| getLValue(): [VariableAccess] x +# 1970| Type = [IntType] int +# 1970| ValueCategory = lvalue +# 1970| getRValue(): [FunctionCall] call to StaticMemberFunction +# 1970| Type = [IntType] int +# 1970| ValueCategory = prvalue +# 1970| getQualifier(): [VariableAccess] c +# 1970| Type = [Class] C +# 1970| ValueCategory = lvalue +# 1970| getArgument(0): [Literal] 10 +# 1970| Type = [IntType] int +# 1970| Value = [Literal] 10 +# 1970| ValueCategory = prvalue +# 1971| getStmt(3): [DeclStmt] declaration +# 1971| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 1971| Type = [IntType] int +# 1972| getStmt(4): [ExprStmt] ExprStmt +# 1972| getExpr(): [AssignExpr] ... = ... # 1972| Type = [IntType] int -# 1972| ValueCategory = prvalue(load) -# 1973| getStmt(2): [ReturnStmt] return ... -# 1975| [CopyAssignmentOperator] ValCat& ValCat::operator=(ValCat const&) -# 1975| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const ValCat & -# 1975| [MoveAssignmentOperator] ValCat& ValCat::operator=(ValCat&&) -# 1975| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] ValCat && -# 1976| [MemberFunction] ValCat& ValCat::lvalue() -# 1976| <params>: -# 1977| [MemberFunction] ValCat&& ValCat::xvalue() +# 1972| ValueCategory = lvalue +# 1972| getLValue(): [VariableAccess] y +# 1972| Type = [IntType] int +# 1972| ValueCategory = lvalue +# 1972| getRValue(): [FunctionCall] call to StaticMemberFunction +# 1972| Type = [IntType] int +# 1972| ValueCategory = prvalue +# 1972| getArgument(0): [Literal] 10 +# 1972| Type = [IntType] int +# 1972| Value = [Literal] 10 +# 1972| ValueCategory = prvalue +# 1973| getStmt(5): [DeclStmt] declaration +# 1973| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 1973| Type = [IntType] int +# 1974| getStmt(6): [ExprStmt] ExprStmt +# 1974| getExpr(): [AssignExpr] ... = ... +# 1974| Type = [IntType] int +# 1974| ValueCategory = lvalue +# 1974| getLValue(): [VariableAccess] z +# 1974| Type = [IntType] int +# 1974| ValueCategory = lvalue +# 1974| getRValue(): [FunctionCall] call to static_function +# 1974| Type = [IntType] int +# 1974| ValueCategory = prvalue +# 1974| getArgument(0): [Literal] 10 +# 1974| Type = [IntType] int +# 1974| Value = [Literal] 10 +# 1974| ValueCategory = prvalue +# 1975| getStmt(7): [ReturnStmt] return ... +# 1975| getImplicitDestructorCall(0): [DestructorCall] call to ~C +# 1975| Type = [VoidType] void +# 1975| ValueCategory = prvalue +# 1975| getQualifier(): [VariableAccess] c +# 1975| Type = [Class] C +# 1975| ValueCategory = lvalue +# 1977| [TopLevelFunction] void test_double_assign() # 1977| <params>: -# 1978| [MemberFunction] ValCat ValCat::prvalue() -# 1978| <params>: -# 1981| [TopLevelFunction] void value_category_test() -# 1981| <params>: -# 1981| getEntryPoint(): [BlockStmt] { ... } -# 1982| getStmt(0): [DeclStmt] declaration -# 1982| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1982| Type = [Struct] ValCat +# 1977| getEntryPoint(): [BlockStmt] { ... } +# 1978| getStmt(0): [DeclStmt] declaration +# 1978| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1978| Type = [IntType] int +# 1978| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j +# 1978| Type = [IntType] int +# 1979| getStmt(1): [ExprStmt] ExprStmt +# 1979| getExpr(): [AssignExpr] ... = ... +# 1979| Type = [IntType] int +# 1979| ValueCategory = lvalue +# 1979| getLValue(): [VariableAccess] i +# 1979| Type = [IntType] int +# 1979| ValueCategory = lvalue +# 1979| getRValue(): [AssignExpr] ... = ... +# 1979| Type = [IntType] int +# 1979| ValueCategory = prvalue(load) +# 1979| getLValue(): [VariableAccess] j +# 1979| Type = [IntType] int +# 1979| ValueCategory = lvalue +# 1979| getRValue(): [Literal] 40 +# 1979| Type = [IntType] int +# 1979| Value = [Literal] 40 +# 1979| ValueCategory = prvalue +# 1980| getStmt(2): [ReturnStmt] return ... +# 1982| [TopLevelFunction] void test_assign_with_assign_operation() +# 1982| <params>: +# 1982| getEntryPoint(): [BlockStmt] { ... } +# 1983| getStmt(0): [DeclStmt] declaration +# 1983| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 1983| Type = [IntType] int +# 1983| getDeclarationEntry(1): [VariableDeclarationEntry] definition of j +# 1983| Type = [IntType] int +# 1983| getVariable().getInitializer(): [Initializer] initializer for j +# 1983| getExpr(): [Literal] 0 +# 1983| Type = [IntType] int +# 1983| Value = [Literal] 0 +# 1983| ValueCategory = prvalue # 1984| getStmt(1): [ExprStmt] ExprStmt # 1984| getExpr(): [AssignExpr] ... = ... -# 1984| Type = [Struct] ValCat +# 1984| Type = [IntType] int # 1984| ValueCategory = lvalue -# 1984| getLValue(): [FunctionCall] call to lvalue -# 1984| Type = [LValueReferenceType] ValCat & -# 1984| ValueCategory = prvalue -# 1984| getQualifier(): [VariableAccess] c -# 1984| Type = [Struct] ValCat -# 1984| ValueCategory = lvalue -# 1984| getRValue(): [ClassAggregateLiteral] {...} -# 1984| Type = [Struct] ValCat -# 1984| ValueCategory = prvalue -# 1984| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1984| Type = [Struct] ValCat +# 1984| getLValue(): [VariableAccess] i +# 1984| Type = [IntType] int # 1984| ValueCategory = lvalue -#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -#-----| Type = [Struct] ValCat -#-----| ValueCategory = prvalue(load) -# 1985| getStmt(2): [ExprStmt] ExprStmt -# 1985| getExpr(): [AssignExpr] ... = ... -# 1985| Type = [Struct] ValCat -# 1985| ValueCategory = lvalue -# 1985| getLValue(): [FunctionCall] call to xvalue -# 1985| Type = [RValueReferenceType] ValCat && -# 1985| ValueCategory = prvalue -# 1985| getQualifier(): [VariableAccess] c -# 1985| Type = [Struct] ValCat -# 1985| ValueCategory = lvalue -# 1985| getRValue(): [ClassAggregateLiteral] {...} -# 1985| Type = [Struct] ValCat -# 1985| ValueCategory = prvalue -# 1985| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1985| Type = [Struct] ValCat -# 1985| ValueCategory = lvalue -#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -#-----| Type = [Struct] ValCat -#-----| ValueCategory = prvalue(load) -# 1986| getStmt(3): [ExprStmt] ExprStmt -# 1986| getExpr(): [AssignExpr] ... = ... -# 1986| Type = [Struct] ValCat -# 1986| ValueCategory = lvalue -# 1986| getLValue(): [FunctionCall] call to prvalue -# 1986| Type = [Struct] ValCat -# 1986| ValueCategory = prvalue -# 1986| getQualifier(): [VariableAccess] c -# 1986| Type = [Struct] ValCat -# 1986| ValueCategory = lvalue -# 1986| getRValue(): [ClassAggregateLiteral] {...} -# 1986| Type = [Struct] ValCat -# 1986| ValueCategory = prvalue -# 1986| getLValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1986| Type = [Struct] ValCat -# 1986| ValueCategory = lvalue -#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -#-----| Type = [Struct] ValCat -#-----| ValueCategory = prvalue(load) -# 1987| getStmt(4): [ExprStmt] ExprStmt -# 1987| getExpr(): [AssignExpr] ... = ... -# 1987| Type = [Struct] ValCat -# 1987| ValueCategory = lvalue -# 1987| getLValue(): [FunctionCall] call to lvalue -# 1987| Type = [LValueReferenceType] ValCat & -# 1987| ValueCategory = prvalue -# 1987| getRValue(): [ClassAggregateLiteral] {...} -# 1987| Type = [Struct] ValCat -# 1987| ValueCategory = prvalue -# 1987| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1987| Type = [Struct] ValCat -# 1987| ValueCategory = lvalue -#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -#-----| Type = [Struct] ValCat -#-----| ValueCategory = prvalue(load) -# 1988| getStmt(5): [ExprStmt] ExprStmt -# 1988| getExpr(): [AssignExpr] ... = ... -# 1988| Type = [Struct] ValCat -# 1988| ValueCategory = lvalue -# 1988| getLValue(): [FunctionCall] call to xvalue -# 1988| Type = [RValueReferenceType] ValCat && -# 1988| ValueCategory = prvalue -# 1988| getRValue(): [ClassAggregateLiteral] {...} -# 1988| Type = [Struct] ValCat -# 1988| ValueCategory = prvalue -# 1988| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 1988| Type = [Struct] ValCat -# 1988| ValueCategory = lvalue -#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -#-----| Type = [Struct] ValCat -#-----| ValueCategory = prvalue(load) -# 1989| getStmt(6): [ExprStmt] ExprStmt -# 1989| getExpr(): [AssignExpr] ... = ... -# 1989| Type = [Struct] ValCat -# 1989| ValueCategory = lvalue -# 1989| getLValue(): [FunctionCall] call to prvalue -# 1989| Type = [Struct] ValCat -# 1989| ValueCategory = prvalue -# 1989| getRValue(): [ClassAggregateLiteral] {...} -# 1989| Type = [Struct] ValCat -# 1989| ValueCategory = prvalue -# 1989| getLValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 1989| Type = [Struct] ValCat -# 1989| ValueCategory = lvalue -#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -#-----| Type = [Struct] ValCat -#-----| ValueCategory = prvalue(load) -# 1990| getStmt(7): [ReturnStmt] return ... -# 1992| [TopLevelFunction] void SetStaticFuncPtr() -# 1992| <params>: -# 1992| getEntryPoint(): [BlockStmt] { ... } -# 1993| getStmt(0): [DeclStmt] declaration -# 1993| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 1993| Type = [Class] C -# 1993| getVariable().getInitializer(): [Initializer] initializer for c -# 1993| getExpr(): [ConstructorCall] call to C -# 1993| Type = [VoidType] void -# 1993| ValueCategory = prvalue -# 1994| getStmt(1): [DeclStmt] declaration -# 1994| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pfn -# 1994| Type = [FunctionPointerType] ..(*)(..) -# 1994| getVariable().getInitializer(): [Initializer] initializer for pfn -# 1994| getExpr(): [FunctionAccess] StaticMemberFunction -# 1994| Type = [FunctionPointerType] ..(*)(..) -# 1994| ValueCategory = prvalue(load) -# 1995| getStmt(2): [ExprStmt] ExprStmt -# 1995| getExpr(): [AssignExpr] ... = ... -# 1995| Type = [FunctionPointerType] ..(*)(..) -# 1995| ValueCategory = lvalue -# 1995| getLValue(): [VariableAccess] pfn -# 1995| Type = [FunctionPointerType] ..(*)(..) -# 1995| ValueCategory = lvalue -# 1995| getRValue(): [FunctionAccess] StaticMemberFunction -# 1995| Type = [FunctionPointerType] ..(*)(..) -# 1995| ValueCategory = prvalue(load) -# 1995| getQualifier(): [VariableAccess] c -# 1995| Type = [Class] C -# 1995| ValueCategory = lvalue -# 1996| getStmt(3): [ReturnStmt] return ... -# 1996| getImplicitDestructorCall(0): [DestructorCall] call to ~C -# 1996| Type = [VoidType] void -# 1996| ValueCategory = prvalue -# 1996| getQualifier(): [VariableAccess] c -# 1996| Type = [Class] C -# 1996| ValueCategory = lvalue -# 1998| [TopLevelFunction] void TernaryTestInt(bool, int, int, int) -# 1998| <params>: -# 1998| getParameter(0): [Parameter] a -# 1998| Type = [BoolType] bool -# 1998| getParameter(1): [Parameter] x -# 1998| Type = [IntType] int -# 1998| getParameter(2): [Parameter] y -# 1998| Type = [IntType] int -# 1998| getParameter(3): [Parameter] z -# 1998| Type = [IntType] int -# 1998| getEntryPoint(): [BlockStmt] { ... } -# 1999| getStmt(0): [ExprStmt] ExprStmt -# 1999| getExpr(): [AssignExpr] ... = ... -# 1999| Type = [IntType] int -# 1999| ValueCategory = lvalue -# 1999| getLValue(): [VariableAccess] z -# 1999| Type = [IntType] int -# 1999| ValueCategory = lvalue -# 1999| getRValue(): [ConditionalExpr] ... ? ... : ... -# 1999| Type = [IntType] int -# 1999| ValueCategory = prvalue(load) -# 1999| getCondition(): [VariableAccess] a -# 1999| Type = [BoolType] bool -# 1999| ValueCategory = prvalue(load) -# 1999| getThen(): [VariableAccess] x -# 1999| Type = [IntType] int -# 1999| ValueCategory = prvalue(load) -# 1999| getElse(): [VariableAccess] y -# 1999| Type = [IntType] int -# 1999| ValueCategory = prvalue(load) -# 2000| getStmt(1): [ExprStmt] ExprStmt -# 2000| getExpr(): [AssignExpr] ... = ... -# 2000| Type = [IntType] int -# 2000| ValueCategory = lvalue -# 2000| getLValue(): [VariableAccess] z -# 2000| Type = [IntType] int -# 2000| ValueCategory = lvalue -# 2000| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2000| Type = [IntType] int -# 2000| ValueCategory = prvalue(load) -# 2000| getCondition(): [VariableAccess] a -# 2000| Type = [BoolType] bool -# 2000| ValueCategory = prvalue(load) -# 2000| getThen(): [VariableAccess] x -# 2000| Type = [IntType] int -# 2000| ValueCategory = prvalue(load) -# 2000| getElse(): [Literal] 5 -# 2000| Type = [IntType] int -# 2000| Value = [Literal] 5 -# 2000| ValueCategory = prvalue -# 2001| getStmt(2): [ExprStmt] ExprStmt -# 2001| getExpr(): [AssignExpr] ... = ... -# 2001| Type = [IntType] int -# 2001| ValueCategory = lvalue -# 2001| getLValue(): [VariableAccess] z -# 2001| Type = [IntType] int -# 2001| ValueCategory = lvalue -# 2001| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2001| Type = [IntType] int -# 2001| ValueCategory = prvalue -# 2001| getCondition(): [VariableAccess] a -# 2001| Type = [BoolType] bool -# 2001| ValueCategory = prvalue(load) -# 2001| getThen(): [Literal] 3 -# 2001| Type = [IntType] int -# 2001| Value = [Literal] 3 -# 2001| ValueCategory = prvalue -# 2001| getElse(): [Literal] 5 -# 2001| Type = [IntType] int -# 2001| Value = [Literal] 5 -# 2001| ValueCategory = prvalue -# 2002| getStmt(3): [ExprStmt] ExprStmt -# 2002| getExpr(): [AssignExpr] ... = ... -# 2002| Type = [IntType] int +# 1984| getRValue(): [AssignAddExpr] ... += ... +# 1984| Type = [IntType] int +# 1984| ValueCategory = prvalue(load) +# 1984| getLValue(): [VariableAccess] j +# 1984| Type = [IntType] int +# 1984| ValueCategory = lvalue +# 1984| getRValue(): [Literal] 40 +# 1984| Type = [IntType] int +# 1984| Value = [Literal] 40 +# 1984| ValueCategory = prvalue +# 1984| getRValue().getFullyConverted(): [ParenthesisExpr] (...) +# 1984| Type = [IntType] int +# 1984| ValueCategory = prvalue(load) +# 1985| getStmt(2): [ReturnStmt] return ... +# 1987| [CopyAssignmentOperator] D& D::operator=(D const&) +# 1987| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const D & +# 1987| [MoveAssignmentOperator] D& D::operator=(D&&) +# 1987| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] D && +# 1991| [MemberFunction] D& D::ReferenceStaticMemberFunction() +# 1991| <params>: +# 1991| getEntryPoint(): [BlockStmt] { ... } +# 1992| getStmt(0): [ReturnStmt] return ... +# 1992| getExpr(): [VariableAccess] x +# 1992| Type = [Class] D +# 1992| ValueCategory = lvalue +# 1992| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 1992| Type = [LValueReferenceType] D & +# 1992| ValueCategory = prvalue +# 1994| [MemberFunction] D D::ObjectStaticMemberFunction() +# 1994| <params>: +# 1994| getEntryPoint(): [BlockStmt] { ... } +# 1995| getStmt(0): [ReturnStmt] return ... +# 1995| getExpr(): [VariableAccess] x +# 1995| Type = [Class] D +# 1995| ValueCategory = prvalue(load) +# 1999| [TopLevelFunction] void test_static_member_functions_with_reference_return() +# 1999| <params>: +# 1999| getEntryPoint(): [BlockStmt] { ... } +# 2000| getStmt(0): [DeclStmt] declaration +# 2000| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 2000| Type = [Class] D +# 2002| getStmt(1): [ExprStmt] ExprStmt +# 2002| getExpr(): [FunctionCall] call to ReferenceStaticMemberFunction +# 2002| Type = [LValueReferenceType] D & +# 2002| ValueCategory = prvalue +# 2002| getQualifier(): [VariableAccess] d +# 2002| Type = [Class] D +# 2002| ValueCategory = lvalue +# 2002| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2002| Type = [Class] D # 2002| ValueCategory = lvalue -# 2002| getLValue(): [ConditionalExpr] ... ? ... : ... -# 2002| Type = [IntType] int -# 2002| ValueCategory = lvalue -# 2002| getCondition(): [VariableAccess] a -# 2002| Type = [BoolType] bool -# 2002| ValueCategory = prvalue(load) -# 2002| getThen(): [VariableAccess] x -# 2002| Type = [IntType] int -# 2002| ValueCategory = lvalue -# 2002| getElse(): [VariableAccess] y -# 2002| Type = [IntType] int -# 2002| ValueCategory = lvalue -# 2002| getRValue(): [Literal] 7 -# 2002| Type = [IntType] int -# 2002| Value = [Literal] 7 -# 2002| ValueCategory = prvalue -# 2002| getLValue().getFullyConverted(): [ParenthesisExpr] (...) -# 2002| Type = [IntType] int -# 2002| ValueCategory = lvalue -# 2003| getStmt(4): [ReturnStmt] return ... -# 2005| [CopyAssignmentOperator] TernaryPodObj& TernaryPodObj::operator=(TernaryPodObj const&) -# 2005| <params>: +# 2003| getStmt(2): [ExprStmt] ExprStmt +# 2003| getExpr(): [FunctionCall] call to ReferenceStaticMemberFunction +# 2003| Type = [LValueReferenceType] D & +# 2003| ValueCategory = prvalue +# 2003| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2003| Type = [Class] D +# 2003| ValueCategory = lvalue +# 2004| getStmt(3): [ExprStmt] ExprStmt +# 2004| getExpr(): [FunctionCall] call to ObjectStaticMemberFunction +# 2004| Type = [Class] D +# 2004| ValueCategory = prvalue +# 2004| getQualifier(): [VariableAccess] d +# 2004| Type = [Class] D +# 2004| ValueCategory = lvalue +# 2005| getStmt(4): [ExprStmt] ExprStmt +# 2005| getExpr(): [FunctionCall] call to ObjectStaticMemberFunction +# 2005| Type = [Class] D +# 2005| ValueCategory = prvalue +# 2007| getStmt(5): [DeclStmt] declaration +# 2007| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2007| Type = [Class] D +# 2008| getStmt(6): [ExprStmt] ExprStmt +# 2008| getExpr(): [AssignExpr] ... = ... +# 2008| Type = [Class] D +# 2008| ValueCategory = lvalue +# 2008| getLValue(): [VariableAccess] x +# 2008| Type = [Class] D +# 2008| ValueCategory = lvalue +# 2008| getRValue(): [FunctionCall] call to ReferenceStaticMemberFunction +# 2008| Type = [LValueReferenceType] D & +# 2008| ValueCategory = prvalue +# 2008| getQualifier(): [VariableAccess] d +# 2008| Type = [Class] D +# 2008| ValueCategory = lvalue +# 2008| getRValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2008| Type = [Class] D +# 2008| ValueCategory = prvalue(load) +# 2009| getStmt(7): [DeclStmt] declaration +# 2009| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2009| Type = [Class] D +# 2010| getStmt(8): [ExprStmt] ExprStmt +# 2010| getExpr(): [AssignExpr] ... = ... +# 2010| Type = [Class] D +# 2010| ValueCategory = lvalue +# 2010| getLValue(): [VariableAccess] y +# 2010| Type = [Class] D +# 2010| ValueCategory = lvalue +# 2010| getRValue(): [FunctionCall] call to ReferenceStaticMemberFunction +# 2010| Type = [LValueReferenceType] D & +# 2010| ValueCategory = prvalue +# 2010| getRValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2010| Type = [Class] D +# 2010| ValueCategory = prvalue(load) +# 2011| getStmt(9): [DeclStmt] declaration +# 2011| getDeclarationEntry(0): [VariableDeclarationEntry] definition of j +# 2011| Type = [Class] D +# 2012| getStmt(10): [ExprStmt] ExprStmt +# 2012| getExpr(): [AssignExpr] ... = ... +# 2012| Type = [Class] D +# 2012| ValueCategory = lvalue +# 2012| getLValue(): [VariableAccess] j +# 2012| Type = [Class] D +# 2012| ValueCategory = lvalue +# 2012| getRValue(): [FunctionCall] call to ObjectStaticMemberFunction +# 2012| Type = [Class] D +# 2012| ValueCategory = prvalue +# 2012| getQualifier(): [VariableAccess] d +# 2012| Type = [Class] D +# 2012| ValueCategory = lvalue +# 2013| getStmt(11): [DeclStmt] declaration +# 2013| getDeclarationEntry(0): [VariableDeclarationEntry] definition of k +# 2013| Type = [Class] D +# 2014| getStmt(12): [ExprStmt] ExprStmt +# 2014| getExpr(): [AssignExpr] ... = ... +# 2014| Type = [Class] D +# 2014| ValueCategory = lvalue +# 2014| getLValue(): [VariableAccess] k +# 2014| Type = [Class] D +# 2014| ValueCategory = lvalue +# 2014| getRValue(): [FunctionCall] call to ObjectStaticMemberFunction +# 2014| Type = [Class] D +# 2014| ValueCategory = prvalue +# 2015| getStmt(13): [ReturnStmt] return ... +# 2017| [TopLevelFunction] void test_volatile() +# 2017| <params>: +# 2017| getEntryPoint(): [BlockStmt] { ... } +# 2018| getStmt(0): [DeclStmt] declaration +# 2018| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2018| Type = [SpecifiedType] volatile int +# 2019| getStmt(1): [ExprStmt] ExprStmt +# 2019| getExpr(): [VariableAccess] x +# 2019| Type = [IntType] int +# 2019| ValueCategory = prvalue(load) +# 2020| getStmt(2): [ReturnStmt] return ... +# 2022| [CopyAssignmentOperator] ValCat& ValCat::operator=(ValCat const&) +# 2022| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const ValCat & +# 2022| [MoveAssignmentOperator] ValCat& ValCat::operator=(ValCat&&) +# 2022| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] ValCat && +# 2023| [MemberFunction] ValCat& ValCat::lvalue() +# 2023| <params>: +# 2024| [MemberFunction] ValCat&& ValCat::xvalue() +# 2024| <params>: +# 2025| [MemberFunction] ValCat ValCat::prvalue() +# 2025| <params>: +# 2028| [TopLevelFunction] void value_category_test() +# 2028| <params>: +# 2028| getEntryPoint(): [BlockStmt] { ... } +# 2029| getStmt(0): [DeclStmt] declaration +# 2029| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2029| Type = [Struct] ValCat +# 2031| getStmt(1): [ExprStmt] ExprStmt +# 2031| getExpr(): [AssignExpr] ... = ... +# 2031| Type = [Struct] ValCat +# 2031| ValueCategory = lvalue +# 2031| getLValue(): [FunctionCall] call to lvalue +# 2031| Type = [LValueReferenceType] ValCat & +# 2031| ValueCategory = prvalue +# 2031| getQualifier(): [VariableAccess] c +# 2031| Type = [Struct] ValCat +# 2031| ValueCategory = lvalue +# 2031| getRValue(): [ClassAggregateLiteral] {...} +# 2031| Type = [Struct] ValCat +# 2031| ValueCategory = prvalue +# 2031| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2031| Type = [Struct] ValCat +# 2031| ValueCategory = lvalue +#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [Struct] ValCat +#-----| ValueCategory = prvalue(load) +# 2032| getStmt(2): [ExprStmt] ExprStmt +# 2032| getExpr(): [AssignExpr] ... = ... +# 2032| Type = [Struct] ValCat +# 2032| ValueCategory = lvalue +# 2032| getLValue(): [FunctionCall] call to xvalue +# 2032| Type = [RValueReferenceType] ValCat && +# 2032| ValueCategory = prvalue +# 2032| getQualifier(): [VariableAccess] c +# 2032| Type = [Struct] ValCat +# 2032| ValueCategory = lvalue +# 2032| getRValue(): [ClassAggregateLiteral] {...} +# 2032| Type = [Struct] ValCat +# 2032| ValueCategory = prvalue +# 2032| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2032| Type = [Struct] ValCat +# 2032| ValueCategory = lvalue +#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [Struct] ValCat +#-----| ValueCategory = prvalue(load) +# 2033| getStmt(3): [ExprStmt] ExprStmt +# 2033| getExpr(): [AssignExpr] ... = ... +# 2033| Type = [Struct] ValCat +# 2033| ValueCategory = lvalue +# 2033| getLValue(): [FunctionCall] call to prvalue +# 2033| Type = [Struct] ValCat +# 2033| ValueCategory = prvalue +# 2033| getQualifier(): [VariableAccess] c +# 2033| Type = [Struct] ValCat +# 2033| ValueCategory = lvalue +# 2033| getRValue(): [ClassAggregateLiteral] {...} +# 2033| Type = [Struct] ValCat +# 2033| ValueCategory = prvalue +# 2033| getLValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2033| Type = [Struct] ValCat +# 2033| ValueCategory = lvalue +#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [Struct] ValCat +#-----| ValueCategory = prvalue(load) +# 2034| getStmt(4): [ExprStmt] ExprStmt +# 2034| getExpr(): [AssignExpr] ... = ... +# 2034| Type = [Struct] ValCat +# 2034| ValueCategory = lvalue +# 2034| getLValue(): [FunctionCall] call to lvalue +# 2034| Type = [LValueReferenceType] ValCat & +# 2034| ValueCategory = prvalue +# 2034| getRValue(): [ClassAggregateLiteral] {...} +# 2034| Type = [Struct] ValCat +# 2034| ValueCategory = prvalue +# 2034| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2034| Type = [Struct] ValCat +# 2034| ValueCategory = lvalue +#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [Struct] ValCat +#-----| ValueCategory = prvalue(load) +# 2035| getStmt(5): [ExprStmt] ExprStmt +# 2035| getExpr(): [AssignExpr] ... = ... +# 2035| Type = [Struct] ValCat +# 2035| ValueCategory = lvalue +# 2035| getLValue(): [FunctionCall] call to xvalue +# 2035| Type = [RValueReferenceType] ValCat && +# 2035| ValueCategory = prvalue +# 2035| getRValue(): [ClassAggregateLiteral] {...} +# 2035| Type = [Struct] ValCat +# 2035| ValueCategory = prvalue +# 2035| getLValue().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2035| Type = [Struct] ValCat +# 2035| ValueCategory = lvalue +#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [Struct] ValCat +#-----| ValueCategory = prvalue(load) +# 2036| getStmt(6): [ExprStmt] ExprStmt +# 2036| getExpr(): [AssignExpr] ... = ... +# 2036| Type = [Struct] ValCat +# 2036| ValueCategory = lvalue +# 2036| getLValue(): [FunctionCall] call to prvalue +# 2036| Type = [Struct] ValCat +# 2036| ValueCategory = prvalue +# 2036| getRValue(): [ClassAggregateLiteral] {...} +# 2036| Type = [Struct] ValCat +# 2036| ValueCategory = prvalue +# 2036| getLValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2036| Type = [Struct] ValCat +# 2036| ValueCategory = lvalue +#-----| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [Struct] ValCat +#-----| ValueCategory = prvalue(load) +# 2037| getStmt(7): [ReturnStmt] return ... +# 2039| [TopLevelFunction] void SetStaticFuncPtr() +# 2039| <params>: +# 2039| getEntryPoint(): [BlockStmt] { ... } +# 2040| getStmt(0): [DeclStmt] declaration +# 2040| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2040| Type = [Class] C +# 2040| getVariable().getInitializer(): [Initializer] initializer for c +# 2040| getExpr(): [ConstructorCall] call to C +# 2040| Type = [VoidType] void +# 2040| ValueCategory = prvalue +# 2041| getStmt(1): [DeclStmt] declaration +# 2041| getDeclarationEntry(0): [VariableDeclarationEntry] definition of pfn +# 2041| Type = [FunctionPointerType] ..(*)(..) +# 2041| getVariable().getInitializer(): [Initializer] initializer for pfn +# 2041| getExpr(): [FunctionAccess] StaticMemberFunction +# 2041| Type = [FunctionPointerType] ..(*)(..) +# 2041| ValueCategory = prvalue(load) +# 2042| getStmt(2): [ExprStmt] ExprStmt +# 2042| getExpr(): [AssignExpr] ... = ... +# 2042| Type = [FunctionPointerType] ..(*)(..) +# 2042| ValueCategory = lvalue +# 2042| getLValue(): [VariableAccess] pfn +# 2042| Type = [FunctionPointerType] ..(*)(..) +# 2042| ValueCategory = lvalue +# 2042| getRValue(): [FunctionAccess] StaticMemberFunction +# 2042| Type = [FunctionPointerType] ..(*)(..) +# 2042| ValueCategory = prvalue(load) +# 2042| getQualifier(): [VariableAccess] c +# 2042| Type = [Class] C +# 2042| ValueCategory = lvalue +# 2043| getStmt(3): [ReturnStmt] return ... +# 2043| getImplicitDestructorCall(0): [DestructorCall] call to ~C +# 2043| Type = [VoidType] void +# 2043| ValueCategory = prvalue +# 2043| getQualifier(): [VariableAccess] c +# 2043| Type = [Class] C +# 2043| ValueCategory = lvalue +# 2045| [TopLevelFunction] void TernaryTestInt(bool, int, int, int) +# 2045| <params>: +# 2045| getParameter(0): [Parameter] a +# 2045| Type = [BoolType] bool +# 2045| getParameter(1): [Parameter] x +# 2045| Type = [IntType] int +# 2045| getParameter(2): [Parameter] y +# 2045| Type = [IntType] int +# 2045| getParameter(3): [Parameter] z +# 2045| Type = [IntType] int +# 2045| getEntryPoint(): [BlockStmt] { ... } +# 2046| getStmt(0): [ExprStmt] ExprStmt +# 2046| getExpr(): [AssignExpr] ... = ... +# 2046| Type = [IntType] int +# 2046| ValueCategory = lvalue +# 2046| getLValue(): [VariableAccess] z +# 2046| Type = [IntType] int +# 2046| ValueCategory = lvalue +# 2046| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2046| Type = [IntType] int +# 2046| ValueCategory = prvalue(load) +# 2046| getCondition(): [VariableAccess] a +# 2046| Type = [BoolType] bool +# 2046| ValueCategory = prvalue(load) +# 2046| getThen(): [VariableAccess] x +# 2046| Type = [IntType] int +# 2046| ValueCategory = prvalue(load) +# 2046| getElse(): [VariableAccess] y +# 2046| Type = [IntType] int +# 2046| ValueCategory = prvalue(load) +# 2047| getStmt(1): [ExprStmt] ExprStmt +# 2047| getExpr(): [AssignExpr] ... = ... +# 2047| Type = [IntType] int +# 2047| ValueCategory = lvalue +# 2047| getLValue(): [VariableAccess] z +# 2047| Type = [IntType] int +# 2047| ValueCategory = lvalue +# 2047| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2047| Type = [IntType] int +# 2047| ValueCategory = prvalue(load) +# 2047| getCondition(): [VariableAccess] a +# 2047| Type = [BoolType] bool +# 2047| ValueCategory = prvalue(load) +# 2047| getThen(): [VariableAccess] x +# 2047| Type = [IntType] int +# 2047| ValueCategory = prvalue(load) +# 2047| getElse(): [Literal] 5 +# 2047| Type = [IntType] int +# 2047| Value = [Literal] 5 +# 2047| ValueCategory = prvalue +# 2048| getStmt(2): [ExprStmt] ExprStmt +# 2048| getExpr(): [AssignExpr] ... = ... +# 2048| Type = [IntType] int +# 2048| ValueCategory = lvalue +# 2048| getLValue(): [VariableAccess] z +# 2048| Type = [IntType] int +# 2048| ValueCategory = lvalue +# 2048| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2048| Type = [IntType] int +# 2048| ValueCategory = prvalue +# 2048| getCondition(): [VariableAccess] a +# 2048| Type = [BoolType] bool +# 2048| ValueCategory = prvalue(load) +# 2048| getThen(): [Literal] 3 +# 2048| Type = [IntType] int +# 2048| Value = [Literal] 3 +# 2048| ValueCategory = prvalue +# 2048| getElse(): [Literal] 5 +# 2048| Type = [IntType] int +# 2048| Value = [Literal] 5 +# 2048| ValueCategory = prvalue +# 2049| getStmt(3): [ExprStmt] ExprStmt +# 2049| getExpr(): [AssignExpr] ... = ... +# 2049| Type = [IntType] int +# 2049| ValueCategory = lvalue +# 2049| getLValue(): [ConditionalExpr] ... ? ... : ... +# 2049| Type = [IntType] int +# 2049| ValueCategory = lvalue +# 2049| getCondition(): [VariableAccess] a +# 2049| Type = [BoolType] bool +# 2049| ValueCategory = prvalue(load) +# 2049| getThen(): [VariableAccess] x +# 2049| Type = [IntType] int +# 2049| ValueCategory = lvalue +# 2049| getElse(): [VariableAccess] y +# 2049| Type = [IntType] int +# 2049| ValueCategory = lvalue +# 2049| getRValue(): [Literal] 7 +# 2049| Type = [IntType] int +# 2049| Value = [Literal] 7 +# 2049| ValueCategory = prvalue +# 2049| getLValue().getFullyConverted(): [ParenthesisExpr] (...) +# 2049| Type = [IntType] int +# 2049| ValueCategory = lvalue +# 2050| getStmt(4): [ReturnStmt] return ... +# 2052| [CopyAssignmentOperator] TernaryPodObj& TernaryPodObj::operator=(TernaryPodObj const&) +# 2052| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const TernaryPodObj & -# 2005| [MoveAssignmentOperator] TernaryPodObj& TernaryPodObj::operator=(TernaryPodObj&&) -# 2005| <params>: +# 2052| [MoveAssignmentOperator] TernaryPodObj& TernaryPodObj::operator=(TernaryPodObj&&) +# 2052| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] TernaryPodObj && -# 2008| [TopLevelFunction] void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) -# 2008| <params>: -# 2008| getParameter(0): [Parameter] a -# 2008| Type = [BoolType] bool -# 2008| getParameter(1): [Parameter] x -# 2008| Type = [Struct] TernaryPodObj -# 2008| getParameter(2): [Parameter] y -# 2008| Type = [Struct] TernaryPodObj -# 2008| getParameter(3): [Parameter] z -# 2008| Type = [Struct] TernaryPodObj -# 2008| getEntryPoint(): [BlockStmt] { ... } -# 2009| getStmt(0): [ExprStmt] ExprStmt -# 2009| getExpr(): [AssignExpr] ... = ... -# 2009| Type = [Struct] TernaryPodObj -# 2009| ValueCategory = lvalue -# 2009| getLValue(): [VariableAccess] z -# 2009| Type = [Struct] TernaryPodObj -# 2009| ValueCategory = lvalue -# 2009| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2009| Type = [Struct] TernaryPodObj -# 2009| ValueCategory = prvalue(load) -# 2009| getCondition(): [VariableAccess] a -# 2009| Type = [BoolType] bool -# 2009| ValueCategory = prvalue(load) -# 2009| getThen(): [VariableAccess] x -# 2009| Type = [Struct] TernaryPodObj -# 2009| ValueCategory = prvalue(load) -# 2009| getElse(): [VariableAccess] y -# 2009| Type = [Struct] TernaryPodObj -# 2009| ValueCategory = prvalue(load) -# 2010| getStmt(1): [ExprStmt] ExprStmt -# 2010| getExpr(): [AssignExpr] ... = ... -# 2010| Type = [Struct] TernaryPodObj -# 2010| ValueCategory = lvalue -# 2010| getLValue(): [VariableAccess] z -# 2010| Type = [Struct] TernaryPodObj -# 2010| ValueCategory = lvalue -# 2010| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2010| Type = [Struct] TernaryPodObj -# 2010| ValueCategory = prvalue -# 2010| getCondition(): [VariableAccess] a -# 2010| Type = [BoolType] bool -# 2010| ValueCategory = prvalue(load) -# 2010| getThen(): [VariableAccess] x -# 2010| Type = [Struct] TernaryPodObj -# 2010| ValueCategory = prvalue(load) -# 2010| getElse(): [Literal] 0 -# 2010| Type = [Struct] TernaryPodObj -# 2010| Value = [Literal] 0 -# 2010| ValueCategory = prvalue -# 2010| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2010| Type = [Struct] TernaryPodObj -# 2010| ValueCategory = prvalue(load) -# 2010| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2010| Type = [Struct] TernaryPodObj -# 2010| ValueCategory = prvalue(load) -# 2010| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2010| Type = [Struct] TernaryPodObj -# 2010| ValueCategory = prvalue(load) -# 2011| getStmt(2): [ExprStmt] ExprStmt -# 2011| getExpr(): [AssignExpr] ... = ... -# 2011| Type = [Struct] TernaryPodObj -# 2011| ValueCategory = lvalue -# 2011| getLValue(): [VariableAccess] z -# 2011| Type = [Struct] TernaryPodObj -# 2011| ValueCategory = lvalue -# 2011| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2011| Type = [Struct] TernaryPodObj -# 2011| ValueCategory = prvalue -# 2011| getCondition(): [VariableAccess] a -# 2011| Type = [BoolType] bool -# 2011| ValueCategory = prvalue(load) -# 2011| getThen(): [Literal] 0 -# 2011| Type = [Struct] TernaryPodObj -# 2011| Value = [Literal] 0 -# 2011| ValueCategory = prvalue -# 2011| getElse(): [Literal] 0 -# 2011| Type = [Struct] TernaryPodObj -# 2011| Value = [Literal] 0 -# 2011| ValueCategory = prvalue -# 2011| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2011| Type = [Struct] TernaryPodObj -# 2011| ValueCategory = prvalue(load) -# 2011| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2011| Type = [Struct] TernaryPodObj -# 2011| ValueCategory = prvalue(load) -# 2011| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2011| Type = [Struct] TernaryPodObj -# 2011| ValueCategory = prvalue(load) -# 2012| getStmt(3): [ExprStmt] ExprStmt -# 2012| getExpr(): [AssignExpr] ... = ... -# 2012| Type = [Struct] TernaryPodObj -# 2012| ValueCategory = lvalue -# 2012| getLValue(): [AssignExpr] ... = ... -# 2012| Type = [Struct] TernaryPodObj -# 2012| ValueCategory = lvalue -# 2012| getLValue(): [VariableAccess] z -# 2012| Type = [Struct] TernaryPodObj -# 2012| ValueCategory = lvalue -# 2012| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2012| Type = [Struct] TernaryPodObj -# 2012| ValueCategory = prvalue(load) -# 2012| getCondition(): [VariableAccess] a -# 2012| Type = [BoolType] bool -# 2012| ValueCategory = prvalue(load) -# 2012| getThen(): [VariableAccess] x -# 2012| Type = [Struct] TernaryPodObj -# 2012| ValueCategory = prvalue(load) -# 2012| getElse(): [VariableAccess] y -# 2012| Type = [Struct] TernaryPodObj -# 2012| ValueCategory = prvalue(load) -# 2012| getRValue(): [Literal] 0 -# 2012| Type = [Struct] TernaryPodObj -# 2012| Value = [Literal] 0 -# 2012| ValueCategory = prvalue -# 2012| getLValue().getFullyConverted(): [ParenthesisExpr] (...) -# 2012| Type = [Struct] TernaryPodObj -# 2012| ValueCategory = lvalue -# 2012| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2012| Type = [Struct] TernaryPodObj -# 2012| ValueCategory = prvalue(load) -# 2013| getStmt(4): [ReturnStmt] return ... -# 2015| [CopyAssignmentOperator] TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) -# 2015| <params>: +# 2055| [TopLevelFunction] void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) +# 2055| <params>: +# 2055| getParameter(0): [Parameter] a +# 2055| Type = [BoolType] bool +# 2055| getParameter(1): [Parameter] x +# 2055| Type = [Struct] TernaryPodObj +# 2055| getParameter(2): [Parameter] y +# 2055| Type = [Struct] TernaryPodObj +# 2055| getParameter(3): [Parameter] z +# 2055| Type = [Struct] TernaryPodObj +# 2055| getEntryPoint(): [BlockStmt] { ... } +# 2056| getStmt(0): [ExprStmt] ExprStmt +# 2056| getExpr(): [AssignExpr] ... = ... +# 2056| Type = [Struct] TernaryPodObj +# 2056| ValueCategory = lvalue +# 2056| getLValue(): [VariableAccess] z +# 2056| Type = [Struct] TernaryPodObj +# 2056| ValueCategory = lvalue +# 2056| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2056| Type = [Struct] TernaryPodObj +# 2056| ValueCategory = prvalue(load) +# 2056| getCondition(): [VariableAccess] a +# 2056| Type = [BoolType] bool +# 2056| ValueCategory = prvalue(load) +# 2056| getThen(): [VariableAccess] x +# 2056| Type = [Struct] TernaryPodObj +# 2056| ValueCategory = prvalue(load) +# 2056| getElse(): [VariableAccess] y +# 2056| Type = [Struct] TernaryPodObj +# 2056| ValueCategory = prvalue(load) +# 2057| getStmt(1): [ExprStmt] ExprStmt +# 2057| getExpr(): [AssignExpr] ... = ... +# 2057| Type = [Struct] TernaryPodObj +# 2057| ValueCategory = lvalue +# 2057| getLValue(): [VariableAccess] z +# 2057| Type = [Struct] TernaryPodObj +# 2057| ValueCategory = lvalue +# 2057| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2057| Type = [Struct] TernaryPodObj +# 2057| ValueCategory = prvalue +# 2057| getCondition(): [VariableAccess] a +# 2057| Type = [BoolType] bool +# 2057| ValueCategory = prvalue(load) +# 2057| getThen(): [VariableAccess] x +# 2057| Type = [Struct] TernaryPodObj +# 2057| ValueCategory = prvalue(load) +# 2057| getElse(): [Literal] 0 +# 2057| Type = [Struct] TernaryPodObj +# 2057| Value = [Literal] 0 +# 2057| ValueCategory = prvalue +# 2057| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2057| Type = [Struct] TernaryPodObj +# 2057| ValueCategory = prvalue(load) +# 2057| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2057| Type = [Struct] TernaryPodObj +# 2057| ValueCategory = prvalue(load) +# 2057| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2057| Type = [Struct] TernaryPodObj +# 2057| ValueCategory = prvalue(load) +# 2058| getStmt(2): [ExprStmt] ExprStmt +# 2058| getExpr(): [AssignExpr] ... = ... +# 2058| Type = [Struct] TernaryPodObj +# 2058| ValueCategory = lvalue +# 2058| getLValue(): [VariableAccess] z +# 2058| Type = [Struct] TernaryPodObj +# 2058| ValueCategory = lvalue +# 2058| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2058| Type = [Struct] TernaryPodObj +# 2058| ValueCategory = prvalue +# 2058| getCondition(): [VariableAccess] a +# 2058| Type = [BoolType] bool +# 2058| ValueCategory = prvalue(load) +# 2058| getThen(): [Literal] 0 +# 2058| Type = [Struct] TernaryPodObj +# 2058| Value = [Literal] 0 +# 2058| ValueCategory = prvalue +# 2058| getElse(): [Literal] 0 +# 2058| Type = [Struct] TernaryPodObj +# 2058| Value = [Literal] 0 +# 2058| ValueCategory = prvalue +# 2058| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2058| Type = [Struct] TernaryPodObj +# 2058| ValueCategory = prvalue(load) +# 2058| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2058| Type = [Struct] TernaryPodObj +# 2058| ValueCategory = prvalue(load) +# 2058| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2058| Type = [Struct] TernaryPodObj +# 2058| ValueCategory = prvalue(load) +# 2059| getStmt(3): [ExprStmt] ExprStmt +# 2059| getExpr(): [AssignExpr] ... = ... +# 2059| Type = [Struct] TernaryPodObj +# 2059| ValueCategory = lvalue +# 2059| getLValue(): [AssignExpr] ... = ... +# 2059| Type = [Struct] TernaryPodObj +# 2059| ValueCategory = lvalue +# 2059| getLValue(): [VariableAccess] z +# 2059| Type = [Struct] TernaryPodObj +# 2059| ValueCategory = lvalue +# 2059| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2059| Type = [Struct] TernaryPodObj +# 2059| ValueCategory = prvalue(load) +# 2059| getCondition(): [VariableAccess] a +# 2059| Type = [BoolType] bool +# 2059| ValueCategory = prvalue(load) +# 2059| getThen(): [VariableAccess] x +# 2059| Type = [Struct] TernaryPodObj +# 2059| ValueCategory = prvalue(load) +# 2059| getElse(): [VariableAccess] y +# 2059| Type = [Struct] TernaryPodObj +# 2059| ValueCategory = prvalue(load) +# 2059| getRValue(): [Literal] 0 +# 2059| Type = [Struct] TernaryPodObj +# 2059| Value = [Literal] 0 +# 2059| ValueCategory = prvalue +# 2059| getLValue().getFullyConverted(): [ParenthesisExpr] (...) +# 2059| Type = [Struct] TernaryPodObj +# 2059| ValueCategory = lvalue +# 2059| getRValue().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2059| Type = [Struct] TernaryPodObj +# 2059| ValueCategory = prvalue(load) +# 2060| getStmt(4): [ReturnStmt] return ... +# 2062| [CopyAssignmentOperator] TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) +# 2062| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const TernaryNonPodObj & #-----| getEntryPoint(): [BlockStmt] { ... } @@ -15983,2486 +16101,2551 @@ ir.cpp: #-----| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) #-----| Type = [LValueReferenceType] TernaryNonPodObj & #-----| ValueCategory = prvalue -# 2015| [Constructor] void TernaryNonPodObj::TernaryNonPodObj() -# 2015| <params>: -# 2015| <initializations>: -# 2015| getEntryPoint(): [BlockStmt] { ... } -# 2015| getStmt(0): [ReturnStmt] return ... -# 2015| [CopyConstructor] void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) -# 2015| <params>: +# 2062| [Constructor] void TernaryNonPodObj::TernaryNonPodObj() +# 2062| <params>: +# 2062| <initializations>: +# 2062| getEntryPoint(): [BlockStmt] { ... } +# 2062| getStmt(0): [ReturnStmt] return ... +# 2062| [CopyConstructor] void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) +# 2062| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2015| <initializations>: -# 2015| getEntryPoint(): [BlockStmt] { ... } -# 2015| getStmt(0): [ReturnStmt] return ... -# 2016| [Destructor,VirtualFunction] void TernaryNonPodObj::~TernaryNonPodObj() -# 2016| <params>: -# 2016| getEntryPoint(): [BlockStmt] { ... } -# 2016| getStmt(0): [ReturnStmt] return ... -# 2016| <destructions>: -# 2019| [TopLevelFunction] void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) -# 2019| <params>: -# 2019| getParameter(0): [Parameter] a -# 2019| Type = [BoolType] bool -# 2019| getParameter(1): [Parameter] x -# 2019| Type = [Struct] TernaryNonPodObj -# 2019| getParameter(2): [Parameter] y -# 2019| Type = [Struct] TernaryNonPodObj -# 2019| getParameter(3): [Parameter] z -# 2019| Type = [Struct] TernaryNonPodObj -# 2019| getEntryPoint(): [BlockStmt] { ... } -# 2020| getStmt(0): [ExprStmt] ExprStmt -# 2020| getExpr(): [FunctionCall] call to operator= -# 2020| Type = [LValueReferenceType] TernaryNonPodObj & -# 2020| ValueCategory = prvalue -# 2020| getQualifier(): [VariableAccess] z -# 2020| Type = [Struct] TernaryNonPodObj -# 2020| ValueCategory = lvalue -# 2020| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2020| Type = [Struct] TernaryNonPodObj -# 2020| ValueCategory = lvalue -# 2020| getCondition(): [VariableAccess] a -# 2020| Type = [BoolType] bool -# 2020| ValueCategory = prvalue(load) -# 2020| getThen(): [VariableAccess] x -# 2020| Type = [Struct] TernaryNonPodObj -# 2020| ValueCategory = lvalue -# 2020| getElse(): [VariableAccess] y -# 2020| Type = [Struct] TernaryNonPodObj -# 2020| ValueCategory = lvalue -# 2020| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2020| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2020| ValueCategory = prvalue -# 2020| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2020| Conversion = [GlvalueConversion] glvalue conversion -# 2020| Type = [SpecifiedType] const TernaryNonPodObj -# 2020| ValueCategory = lvalue -# 2020| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2020| Type = [Struct] TernaryNonPodObj -# 2020| ValueCategory = lvalue -# 2021| getStmt(1): [ExprStmt] ExprStmt -# 2021| getExpr(): [FunctionCall] call to operator= -# 2021| Type = [LValueReferenceType] TernaryNonPodObj & -# 2021| ValueCategory = prvalue -# 2021| getQualifier(): [VariableAccess] z -# 2021| Type = [Struct] TernaryNonPodObj -# 2021| ValueCategory = lvalue -# 2021| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2021| Type = [Struct] TernaryNonPodObj -# 2021| ValueCategory = prvalue -# 2021| getCondition(): [VariableAccess] a -# 2021| Type = [BoolType] bool -# 2021| ValueCategory = prvalue(load) -# 2021| getThen(): [ConstructorCall] call to TernaryNonPodObj -# 2021| Type = [VoidType] void -# 2021| ValueCategory = prvalue -# 2021| getArgument(0): [VariableAccess] x -# 2021| Type = [Struct] TernaryNonPodObj -# 2021| ValueCategory = lvalue -# 2021| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2021| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2021| ValueCategory = prvalue -# 2021| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2021| Conversion = [GlvalueConversion] glvalue conversion -# 2021| Type = [SpecifiedType] const TernaryNonPodObj -# 2021| ValueCategory = lvalue -# 2021| getElse(): [ConstructorCall] call to TernaryNonPodObj -# 2021| Type = [VoidType] void -# 2021| ValueCategory = prvalue -# 2021| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2021| Type = [Struct] TernaryNonPodObj -# 2021| ValueCategory = prvalue(load) -# 2021| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2021| Type = [Struct] TernaryNonPodObj -# 2021| ValueCategory = prvalue(load) -# 2021| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2021| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2021| ValueCategory = prvalue -# 2021| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2021| Conversion = [GlvalueConversion] glvalue conversion -# 2021| Type = [SpecifiedType] const TernaryNonPodObj -# 2021| ValueCategory = lvalue -# 2021| getExpr(): [TemporaryObjectExpr] temporary object -# 2021| Type = [Struct] TernaryNonPodObj -# 2021| ValueCategory = lvalue -# 2021| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2021| Type = [Struct] TernaryNonPodObj -# 2021| ValueCategory = lvalue -# 2022| getStmt(2): [ExprStmt] ExprStmt -# 2022| getExpr(): [FunctionCall] call to operator= -# 2022| Type = [LValueReferenceType] TernaryNonPodObj & -# 2022| ValueCategory = prvalue -# 2022| getQualifier(): [VariableAccess] z -# 2022| Type = [Struct] TernaryNonPodObj -# 2022| ValueCategory = lvalue -# 2022| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2022| Type = [Struct] TernaryNonPodObj -# 2022| ValueCategory = prvalue -# 2022| getCondition(): [VariableAccess] a -# 2022| Type = [BoolType] bool -# 2022| ValueCategory = prvalue(load) -# 2022| getThen(): [ConstructorCall] call to TernaryNonPodObj -# 2022| Type = [VoidType] void -# 2022| ValueCategory = prvalue -# 2022| getElse(): [ConstructorCall] call to TernaryNonPodObj -# 2022| Type = [VoidType] void -# 2022| ValueCategory = prvalue -# 2022| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2022| Type = [Struct] TernaryNonPodObj -# 2022| ValueCategory = prvalue(load) -# 2022| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2022| Type = [Struct] TernaryNonPodObj -# 2022| ValueCategory = prvalue(load) -# 2022| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2022| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2022| ValueCategory = prvalue -# 2022| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2022| Conversion = [GlvalueConversion] glvalue conversion -# 2022| Type = [SpecifiedType] const TernaryNonPodObj -# 2022| ValueCategory = lvalue -# 2022| getExpr(): [TemporaryObjectExpr] temporary object -# 2022| Type = [Struct] TernaryNonPodObj -# 2022| ValueCategory = lvalue -# 2022| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2022| Type = [Struct] TernaryNonPodObj -# 2022| ValueCategory = lvalue -# 2023| getStmt(3): [ExprStmt] ExprStmt -# 2023| getExpr(): [FunctionCall] call to operator= -# 2023| Type = [LValueReferenceType] TernaryNonPodObj & -# 2023| ValueCategory = prvalue -# 2023| getQualifier(): [FunctionCall] call to operator= -# 2023| Type = [LValueReferenceType] TernaryNonPodObj & -# 2023| ValueCategory = prvalue -# 2023| getQualifier(): [VariableAccess] z -# 2023| Type = [Struct] TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getArgument(0): [ConditionalExpr] ... ? ... : ... -# 2023| Type = [Struct] TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getCondition(): [VariableAccess] a -# 2023| Type = [BoolType] bool -# 2023| ValueCategory = prvalue(load) -# 2023| getThen(): [VariableAccess] x -# 2023| Type = [Struct] TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getElse(): [VariableAccess] y -# 2023| Type = [Struct] TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2023| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2023| ValueCategory = prvalue -# 2023| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2023| Conversion = [GlvalueConversion] glvalue conversion -# 2023| Type = [SpecifiedType] const TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getArgument(0): [ConstructorCall] call to TernaryNonPodObj -# 2023| Type = [VoidType] void -# 2023| ValueCategory = prvalue -# 2023| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) -# 2023| Type = [Struct] TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2023| Type = [Struct] TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2023| Type = [LValueReferenceType] const TernaryNonPodObj & -# 2023| ValueCategory = prvalue -# 2023| getExpr(): [CStyleCast] (const TernaryNonPodObj)... -# 2023| Conversion = [GlvalueConversion] glvalue conversion -# 2023| Type = [SpecifiedType] const TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getExpr(): [TemporaryObjectExpr] temporary object -# 2023| Type = [Struct] TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2023| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2023| Type = [Struct] TernaryNonPodObj -# 2023| ValueCategory = lvalue -# 2024| getStmt(4): [ReturnStmt] return ... -# 2026| [TopLevelFunction] void CommaTestHelper(unsigned int) -# 2026| <params>: -# 2026| getParameter(0): [Parameter] (unnamed parameter 0) -# 2026| Type = [IntType] unsigned int -# 2028| [TopLevelFunction] unsigned int CommaTest(unsigned int) -# 2028| <params>: -# 2028| getParameter(0): [Parameter] x -# 2028| Type = [IntType] unsigned int -# 2028| getEntryPoint(): [BlockStmt] { ... } -# 2029| getStmt(0): [DeclStmt] declaration -# 2029| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2029| Type = [IntType] unsigned int -# 2030| getStmt(1): [ExprStmt] ExprStmt -# 2030| getExpr(): [AssignExpr] ... = ... -# 2030| Type = [IntType] unsigned int -# 2030| ValueCategory = lvalue -# 2030| getLValue(): [VariableAccess] y -# 2030| Type = [IntType] unsigned int -# 2030| ValueCategory = lvalue -# 2030| getRValue(): [ConditionalExpr] ... ? ... : ... -# 2030| Type = [IntType] unsigned int -# 2030| ValueCategory = prvalue(load) -# 2030| getCondition(): [LTExpr] ... < ... -# 2030| Type = [BoolType] bool -# 2030| ValueCategory = prvalue -# 2030| getLesserOperand(): [VariableAccess] x -# 2030| Type = [IntType] unsigned int -# 2030| ValueCategory = prvalue(load) -# 2030| getGreaterOperand(): [Literal] 100 -# 2030| Type = [IntType] int -# 2030| Value = [Literal] 100 -# 2030| ValueCategory = prvalue -# 2030| getGreaterOperand().getFullyConverted(): [CStyleCast] (unsigned int)... -# 2030| Conversion = [IntegralConversion] integral conversion -# 2030| Type = [IntType] unsigned int -# 2030| Value = [CStyleCast] 100 -# 2030| ValueCategory = prvalue -# 2031| getThen(): [CommaExpr] ... , ... -# 2031| Type = [IntType] unsigned int -# 2031| ValueCategory = prvalue(load) -# 2031| getLeftOperand(): [FunctionCall] call to CommaTestHelper -# 2031| Type = [VoidType] void -# 2031| ValueCategory = prvalue -# 2031| getArgument(0): [VariableAccess] x -# 2031| Type = [IntType] unsigned int -# 2031| ValueCategory = prvalue(load) -# 2031| getRightOperand(): [VariableAccess] x -# 2031| Type = [IntType] unsigned int -# 2031| ValueCategory = prvalue(load) -# 2032| getElse(): [CommaExpr] ... , ... -# 2032| Type = [IntType] int -# 2032| ValueCategory = prvalue -# 2032| getLeftOperand(): [FunctionCall] call to CommaTestHelper -# 2032| Type = [VoidType] void -# 2032| ValueCategory = prvalue -# 2032| getArgument(0): [VariableAccess] x -# 2032| Type = [IntType] unsigned int -# 2032| ValueCategory = prvalue(load) -# 2032| getRightOperand(): [Literal] 10 -# 2032| Type = [IntType] int -# 2032| Value = [Literal] 10 -# 2032| ValueCategory = prvalue -# 2031| getThen().getFullyConverted(): [ParenthesisExpr] (...) -# 2031| Type = [IntType] unsigned int -# 2031| ValueCategory = prvalue(load) -# 2032| getElse().getFullyConverted(): [CStyleCast] (unsigned int)... -# 2032| Conversion = [IntegralConversion] integral conversion -# 2032| Type = [IntType] unsigned int -# 2032| ValueCategory = prvalue -# 2032| getExpr(): [ParenthesisExpr] (...) -# 2032| Type = [IntType] int -# 2032| ValueCategory = prvalue -# 2033| getStmt(2): [ReturnStmt] return ... -# 2035| [TopLevelFunction] void NewDeleteMem() -# 2035| <params>: -# 2035| getEntryPoint(): [BlockStmt] { ... } -# 2036| getStmt(0): [DeclStmt] declaration -# 2036| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2036| Type = [IntPointerType] int * -# 2036| getVariable().getInitializer(): [Initializer] initializer for x -# 2036| getExpr(): [NewExpr] new -# 2036| Type = [IntPointerType] int * -# 2036| ValueCategory = prvalue -# 2037| getStmt(1): [ExprStmt] ExprStmt -# 2037| getExpr(): [AssignExpr] ... = ... -# 2037| Type = [IntType] int -# 2037| ValueCategory = lvalue -# 2037| getLValue(): [PointerDereferenceExpr] * ... -# 2037| Type = [IntType] int -# 2037| ValueCategory = lvalue -# 2037| getOperand(): [VariableAccess] x -# 2037| Type = [IntPointerType] int * -# 2037| ValueCategory = prvalue(load) -# 2037| getRValue(): [Literal] 6 -# 2037| Type = [IntType] int -# 2037| Value = [Literal] 6 -# 2037| ValueCategory = prvalue -# 2038| getStmt(2): [ExprStmt] ExprStmt -# 2038| getExpr(): [DeleteExpr] delete -# 2038| Type = [VoidType] void -# 2038| ValueCategory = prvalue -# 2038| getExpr(): [VariableAccess] x -# 2038| Type = [IntPointerType] int * -# 2038| ValueCategory = prvalue(load) -# 2039| getStmt(3): [ReturnStmt] return ... -# 2041| [CopyAssignmentOperator] Base2& Base2::operator=(Base2 const&) -# 2041| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const Base2 & -# 2041| [Constructor] void Base2::Base2() -# 2041| <params>: -# 2041| <initializations>: -# 2041| getEntryPoint(): [BlockStmt] { ... } -# 2041| getStmt(0): [ReturnStmt] return ... -# 2041| [CopyConstructor] void Base2::Base2(Base2 const&) -# 2041| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const Base2 & -# 2043| [MemberFunction] void Base2::operator delete(void*) -# 2043| <params>: -# 2043| getParameter(0): [Parameter] p -# 2043| Type = [VoidPointerType] void * -# 2043| getEntryPoint(): [BlockStmt] { ... } -# 2044| getStmt(0): [ReturnStmt] return ... -# 2045| [Destructor,VirtualFunction] void Base2::~Base2() -# 2045| <params>: -# 2045| getEntryPoint(): [BlockStmt] { ... } -# 2045| getStmt(0): [ReturnStmt] return ... -# 2045| <destructions>: -# 2048| [CopyAssignmentOperator] Derived2& Derived2::operator=(Derived2 const&) -# 2048| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const Derived2 & -# 2048| [Constructor] void Derived2::Derived2() -# 2048| <params>: -# 2048| <initializations>: -# 2048| getInitializer(0): [ConstructorDirectInit] call to Base2 -# 2048| Type = [VoidType] void -# 2048| ValueCategory = prvalue -# 2048| getEntryPoint(): [BlockStmt] { ... } -# 2048| getStmt(0): [ReturnStmt] return ... -# 2048| [CopyConstructor] void Derived2::Derived2(Derived2 const&) -# 2048| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const Derived2 & -# 2051| [Destructor,VirtualFunction] void Derived2::~Derived2() -# 2051| <params>: -# 2051| getEntryPoint(): [BlockStmt] { ... } -# 2051| getStmt(0): [ReturnStmt] return ... -# 2051| <destructions>: -# 2051| getDestruction(0): [DestructorDirectDestruction] call to ~Base2 -# 2051| Type = [VoidType] void -# 2051| ValueCategory = prvalue -# 2053| [MemberFunction] void Derived2::operator delete(void*) -# 2053| <params>: -# 2053| getParameter(0): [Parameter] p -# 2053| Type = [VoidPointerType] void * -# 2053| getEntryPoint(): [BlockStmt] { ... } -# 2054| getStmt(0): [ReturnStmt] return ... -# 2058| [TopLevelFunction] int virtual_delete() -# 2058| <params>: -# 2059| getEntryPoint(): [BlockStmt] { ... } -# 2060| getStmt(0): [DeclStmt] declaration -# 2060| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b1 -# 2060| Type = [PointerType] Base2 * -# 2060| getVariable().getInitializer(): [Initializer] initializer for b1 -# 2060| getExpr(): [NewExpr] new -# 2060| Type = [PointerType] Base2 * -# 2060| ValueCategory = prvalue -# 2060| getInitializer(): [ConstructorCall] call to Base2 -# 2060| Type = [VoidType] void -# 2060| ValueCategory = prvalue -# 2061| getStmt(1): [ExprStmt] ExprStmt -# 2061| getExpr(): [DeleteExpr] delete -# 2061| Type = [VoidType] void -# 2061| ValueCategory = prvalue -# 2061| getDeallocatorCall(): [FunctionCall] call to operator delete -# 2061| Type = [VoidType] void -# 2061| ValueCategory = prvalue -# 2061| getDestructorCall(): [DestructorCall] call to ~Base2 -# 2061| Type = [VoidType] void -# 2061| ValueCategory = prvalue -# 2061| getQualifier(): [VariableAccess] b1 -# 2061| Type = [PointerType] Base2 * -# 2061| ValueCategory = prvalue(load) -# 2063| getStmt(2): [DeclStmt] declaration -# 2063| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b2 -# 2063| Type = [PointerType] Base2 * -# 2063| getVariable().getInitializer(): [Initializer] initializer for b2 -# 2063| getExpr(): [NewExpr] new -# 2063| Type = [PointerType] Derived2 * -# 2063| ValueCategory = prvalue -# 2063| getInitializer(): [ConstructorCall] call to Derived2 -# 2063| Type = [VoidType] void -# 2063| ValueCategory = prvalue -# 2063| getExpr().getFullyConverted(): [CStyleCast] (Base2 *)... -# 2063| Conversion = [BaseClassConversion] base class conversion -# 2063| Type = [PointerType] Base2 * -# 2063| ValueCategory = prvalue -# 2064| getStmt(3): [ExprStmt] ExprStmt -# 2064| getExpr(): [DeleteExpr] delete -# 2064| Type = [VoidType] void -# 2064| ValueCategory = prvalue -# 2064| getDeallocatorCall(): [FunctionCall] call to operator delete -# 2064| Type = [VoidType] void -# 2064| ValueCategory = prvalue -# 2064| getDestructorCall(): [DestructorCall] call to ~Base2 -# 2064| Type = [VoidType] void -# 2064| ValueCategory = prvalue -# 2064| getQualifier(): [VariableAccess] b2 -# 2064| Type = [PointerType] Base2 * -# 2064| ValueCategory = prvalue(load) -# 2066| getStmt(4): [DeclStmt] declaration -# 2066| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 2066| Type = [PointerType] Derived2 * -# 2066| getVariable().getInitializer(): [Initializer] initializer for d -# 2066| getExpr(): [NewExpr] new -# 2066| Type = [PointerType] Derived2 * -# 2066| ValueCategory = prvalue -# 2066| getInitializer(): [ConstructorCall] call to Derived2 -# 2066| Type = [VoidType] void -# 2066| ValueCategory = prvalue -# 2067| getStmt(5): [ExprStmt] ExprStmt -# 2067| getExpr(): [DeleteExpr] delete -# 2067| Type = [VoidType] void +# 2062| <initializations>: +# 2062| getEntryPoint(): [BlockStmt] { ... } +# 2062| getStmt(0): [ReturnStmt] return ... +# 2063| [Destructor,VirtualFunction] void TernaryNonPodObj::~TernaryNonPodObj() +# 2063| <params>: +# 2063| getEntryPoint(): [BlockStmt] { ... } +# 2063| getStmt(0): [ReturnStmt] return ... +# 2063| <destructions>: +# 2066| [TopLevelFunction] void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) +# 2066| <params>: +# 2066| getParameter(0): [Parameter] a +# 2066| Type = [BoolType] bool +# 2066| getParameter(1): [Parameter] x +# 2066| Type = [Struct] TernaryNonPodObj +# 2066| getParameter(2): [Parameter] y +# 2066| Type = [Struct] TernaryNonPodObj +# 2066| getParameter(3): [Parameter] z +# 2066| Type = [Struct] TernaryNonPodObj +# 2066| getEntryPoint(): [BlockStmt] { ... } +# 2067| getStmt(0): [ExprStmt] ExprStmt +# 2067| getExpr(): [FunctionCall] call to operator= +# 2067| Type = [LValueReferenceType] TernaryNonPodObj & # 2067| ValueCategory = prvalue -# 2067| getDeallocatorCall(): [FunctionCall] call to operator delete -# 2067| Type = [VoidType] void -# 2067| ValueCategory = prvalue -# 2067| getDestructorCall(): [DestructorCall] call to ~Derived2 -# 2067| Type = [VoidType] void -# 2067| ValueCategory = prvalue -# 2067| getQualifier(): [VariableAccess] d -# 2067| Type = [PointerType] Derived2 * +# 2067| getQualifier(): [VariableAccess] z +# 2067| Type = [Struct] TernaryNonPodObj +# 2067| ValueCategory = lvalue +# 2067| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2067| Type = [Struct] TernaryNonPodObj +# 2067| ValueCategory = lvalue +# 2067| getCondition(): [VariableAccess] a +# 2067| Type = [BoolType] bool # 2067| ValueCategory = prvalue(load) -# 2068| getStmt(6): [ReturnStmt] return ... -# 2070| [TopLevelFunction] void test_constant_folding_use(int) -# 2070| <params>: -# 2070| getParameter(0): [Parameter] (unnamed parameter 0) -# 2070| Type = [IntType] int -# 2072| [TopLevelFunction] void test_constant_folding() -# 2072| <params>: -# 2072| getEntryPoint(): [BlockStmt] { ... } -# 2073| getStmt(0): [DeclStmt] declaration -# 2073| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2073| Type = [SpecifiedType] const int -# 2073| getVariable().getInitializer(): [Initializer] initializer for x -# 2073| getExpr(): [Literal] 116 -# 2073| Type = [IntType] int -# 2073| Value = [Literal] 116 -# 2073| ValueCategory = prvalue -# 2074| getStmt(1): [ExprStmt] ExprStmt -# 2074| getExpr(): [FunctionCall] call to test_constant_folding_use -# 2074| Type = [VoidType] void -# 2074| ValueCategory = prvalue -# 2074| getArgument(0): [VariableAccess] x -# 2074| Type = [IntType] int -# 2074| Value = [VariableAccess] 116 -# 2074| ValueCategory = prvalue(load) -# 2075| getStmt(2): [ReturnStmt] return ... -# 2077| [TopLevelFunction] void exit(int) -# 2077| <params>: -# 2077| getParameter(0): [Parameter] code -# 2077| Type = [IntType] int -# 2079| [TopLevelFunction] int NonExit() -# 2079| <params>: -# 2079| getEntryPoint(): [BlockStmt] { ... } -# 2080| getStmt(0): [DeclStmt] declaration -# 2080| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2080| Type = [IntType] int -# 2080| getVariable().getInitializer(): [Initializer] initializer for x -# 2080| getExpr(): [FunctionCall] call to Add -# 2080| Type = [IntType] int -# 2080| ValueCategory = prvalue -# 2080| getArgument(0): [Literal] 3 -# 2080| Type = [IntType] int -# 2080| Value = [Literal] 3 -# 2080| ValueCategory = prvalue -# 2080| getArgument(1): [Literal] 4 -# 2080| Type = [IntType] int -# 2080| Value = [Literal] 4 -# 2080| ValueCategory = prvalue -# 2081| getStmt(1): [IfStmt] if (...) ... -# 2081| getCondition(): [EQExpr] ... == ... -# 2081| Type = [BoolType] bool -# 2081| ValueCategory = prvalue -# 2081| getLeftOperand(): [VariableAccess] x -# 2081| Type = [IntType] int -# 2081| ValueCategory = prvalue(load) -# 2081| getRightOperand(): [Literal] 7 -# 2081| Type = [IntType] int -# 2081| Value = [Literal] 7 -# 2081| ValueCategory = prvalue -# 2082| getThen(): [ExprStmt] ExprStmt -# 2082| getExpr(): [FunctionCall] call to exit -# 2082| Type = [VoidType] void -# 2082| ValueCategory = prvalue -# 2082| getArgument(0): [Literal] 3 -# 2082| Type = [IntType] int -# 2082| Value = [Literal] 3 -# 2082| ValueCategory = prvalue -# 2083| getStmt(2): [ExprStmt] ExprStmt -# 2083| getExpr(): [FunctionCall] call to VoidFunc -# 2083| Type = [VoidType] void -# 2083| ValueCategory = prvalue -# 2084| getStmt(3): [ReturnStmt] return ... -# 2084| getExpr(): [VariableAccess] x +# 2067| getThen(): [VariableAccess] x +# 2067| Type = [Struct] TernaryNonPodObj +# 2067| ValueCategory = lvalue +# 2067| getElse(): [VariableAccess] y +# 2067| Type = [Struct] TernaryNonPodObj +# 2067| ValueCategory = lvalue +# 2067| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2067| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2067| ValueCategory = prvalue +# 2067| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2067| Conversion = [GlvalueConversion] glvalue conversion +# 2067| Type = [SpecifiedType] const TernaryNonPodObj +# 2067| ValueCategory = lvalue +# 2067| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2067| Type = [Struct] TernaryNonPodObj +# 2067| ValueCategory = lvalue +# 2068| getStmt(1): [ExprStmt] ExprStmt +# 2068| getExpr(): [FunctionCall] call to operator= +# 2068| Type = [LValueReferenceType] TernaryNonPodObj & +# 2068| ValueCategory = prvalue +# 2068| getQualifier(): [VariableAccess] z +# 2068| Type = [Struct] TernaryNonPodObj +# 2068| ValueCategory = lvalue +# 2068| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2068| Type = [Struct] TernaryNonPodObj +# 2068| ValueCategory = prvalue +# 2068| getCondition(): [VariableAccess] a +# 2068| Type = [BoolType] bool +# 2068| ValueCategory = prvalue(load) +# 2068| getThen(): [ConstructorCall] call to TernaryNonPodObj +# 2068| Type = [VoidType] void +# 2068| ValueCategory = prvalue +# 2068| getArgument(0): [VariableAccess] x +# 2068| Type = [Struct] TernaryNonPodObj +# 2068| ValueCategory = lvalue +# 2068| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2068| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2068| ValueCategory = prvalue +# 2068| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2068| Conversion = [GlvalueConversion] glvalue conversion +# 2068| Type = [SpecifiedType] const TernaryNonPodObj +# 2068| ValueCategory = lvalue +# 2068| getElse(): [ConstructorCall] call to TernaryNonPodObj +# 2068| Type = [VoidType] void +# 2068| ValueCategory = prvalue +# 2068| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2068| Type = [Struct] TernaryNonPodObj +# 2068| ValueCategory = prvalue(load) +# 2068| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2068| Type = [Struct] TernaryNonPodObj +# 2068| ValueCategory = prvalue(load) +# 2068| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2068| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2068| ValueCategory = prvalue +# 2068| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2068| Conversion = [GlvalueConversion] glvalue conversion +# 2068| Type = [SpecifiedType] const TernaryNonPodObj +# 2068| ValueCategory = lvalue +# 2068| getExpr(): [TemporaryObjectExpr] temporary object +# 2068| Type = [Struct] TernaryNonPodObj +# 2068| ValueCategory = lvalue +# 2068| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2068| Type = [Struct] TernaryNonPodObj +# 2068| ValueCategory = lvalue +# 2069| getStmt(2): [ExprStmt] ExprStmt +# 2069| getExpr(): [FunctionCall] call to operator= +# 2069| Type = [LValueReferenceType] TernaryNonPodObj & +# 2069| ValueCategory = prvalue +# 2069| getQualifier(): [VariableAccess] z +# 2069| Type = [Struct] TernaryNonPodObj +# 2069| ValueCategory = lvalue +# 2069| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2069| Type = [Struct] TernaryNonPodObj +# 2069| ValueCategory = prvalue +# 2069| getCondition(): [VariableAccess] a +# 2069| Type = [BoolType] bool +# 2069| ValueCategory = prvalue(load) +# 2069| getThen(): [ConstructorCall] call to TernaryNonPodObj +# 2069| Type = [VoidType] void +# 2069| ValueCategory = prvalue +# 2069| getElse(): [ConstructorCall] call to TernaryNonPodObj +# 2069| Type = [VoidType] void +# 2069| ValueCategory = prvalue +# 2069| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2069| Type = [Struct] TernaryNonPodObj +# 2069| ValueCategory = prvalue(load) +# 2069| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2069| Type = [Struct] TernaryNonPodObj +# 2069| ValueCategory = prvalue(load) +# 2069| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2069| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2069| ValueCategory = prvalue +# 2069| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2069| Conversion = [GlvalueConversion] glvalue conversion +# 2069| Type = [SpecifiedType] const TernaryNonPodObj +# 2069| ValueCategory = lvalue +# 2069| getExpr(): [TemporaryObjectExpr] temporary object +# 2069| Type = [Struct] TernaryNonPodObj +# 2069| ValueCategory = lvalue +# 2069| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2069| Type = [Struct] TernaryNonPodObj +# 2069| ValueCategory = lvalue +# 2070| getStmt(3): [ExprStmt] ExprStmt +# 2070| getExpr(): [FunctionCall] call to operator= +# 2070| Type = [LValueReferenceType] TernaryNonPodObj & +# 2070| ValueCategory = prvalue +# 2070| getQualifier(): [FunctionCall] call to operator= +# 2070| Type = [LValueReferenceType] TernaryNonPodObj & +# 2070| ValueCategory = prvalue +# 2070| getQualifier(): [VariableAccess] z +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getArgument(0): [ConditionalExpr] ... ? ... : ... +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getCondition(): [VariableAccess] a +# 2070| Type = [BoolType] bool +# 2070| ValueCategory = prvalue(load) +# 2070| getThen(): [VariableAccess] x +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getElse(): [VariableAccess] y +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2070| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2070| ValueCategory = prvalue +# 2070| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2070| Conversion = [GlvalueConversion] glvalue conversion +# 2070| Type = [SpecifiedType] const TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getArgument(0): [ConstructorCall] call to TernaryNonPodObj +# 2070| Type = [VoidType] void +# 2070| ValueCategory = prvalue +# 2070| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2070| Type = [LValueReferenceType] const TernaryNonPodObj & +# 2070| ValueCategory = prvalue +# 2070| getExpr(): [CStyleCast] (const TernaryNonPodObj)... +# 2070| Conversion = [GlvalueConversion] glvalue conversion +# 2070| Type = [SpecifiedType] const TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getExpr(): [TemporaryObjectExpr] temporary object +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2070| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = lvalue +# 2071| getStmt(4): [ReturnStmt] return ... +# 2073| [TopLevelFunction] void CommaTestHelper(unsigned int) +# 2073| <params>: +# 2073| getParameter(0): [Parameter] (unnamed parameter 0) +# 2073| Type = [IntType] unsigned int +# 2075| [TopLevelFunction] unsigned int CommaTest(unsigned int) +# 2075| <params>: +# 2075| getParameter(0): [Parameter] x +# 2075| Type = [IntType] unsigned int +# 2075| getEntryPoint(): [BlockStmt] { ... } +# 2076| getStmt(0): [DeclStmt] declaration +# 2076| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2076| Type = [IntType] unsigned int +# 2077| getStmt(1): [ExprStmt] ExprStmt +# 2077| getExpr(): [AssignExpr] ... = ... +# 2077| Type = [IntType] unsigned int +# 2077| ValueCategory = lvalue +# 2077| getLValue(): [VariableAccess] y +# 2077| Type = [IntType] unsigned int +# 2077| ValueCategory = lvalue +# 2077| getRValue(): [ConditionalExpr] ... ? ... : ... +# 2077| Type = [IntType] unsigned int +# 2077| ValueCategory = prvalue(load) +# 2077| getCondition(): [LTExpr] ... < ... +# 2077| Type = [BoolType] bool +# 2077| ValueCategory = prvalue +# 2077| getLesserOperand(): [VariableAccess] x +# 2077| Type = [IntType] unsigned int +# 2077| ValueCategory = prvalue(load) +# 2077| getGreaterOperand(): [Literal] 100 +# 2077| Type = [IntType] int +# 2077| Value = [Literal] 100 +# 2077| ValueCategory = prvalue +# 2077| getGreaterOperand().getFullyConverted(): [CStyleCast] (unsigned int)... +# 2077| Conversion = [IntegralConversion] integral conversion +# 2077| Type = [IntType] unsigned int +# 2077| Value = [CStyleCast] 100 +# 2077| ValueCategory = prvalue +# 2078| getThen(): [CommaExpr] ... , ... +# 2078| Type = [IntType] unsigned int +# 2078| ValueCategory = prvalue(load) +# 2078| getLeftOperand(): [FunctionCall] call to CommaTestHelper +# 2078| Type = [VoidType] void +# 2078| ValueCategory = prvalue +# 2078| getArgument(0): [VariableAccess] x +# 2078| Type = [IntType] unsigned int +# 2078| ValueCategory = prvalue(load) +# 2078| getRightOperand(): [VariableAccess] x +# 2078| Type = [IntType] unsigned int +# 2078| ValueCategory = prvalue(load) +# 2079| getElse(): [CommaExpr] ... , ... +# 2079| Type = [IntType] int +# 2079| ValueCategory = prvalue +# 2079| getLeftOperand(): [FunctionCall] call to CommaTestHelper +# 2079| Type = [VoidType] void +# 2079| ValueCategory = prvalue +# 2079| getArgument(0): [VariableAccess] x +# 2079| Type = [IntType] unsigned int +# 2079| ValueCategory = prvalue(load) +# 2079| getRightOperand(): [Literal] 10 +# 2079| Type = [IntType] int +# 2079| Value = [Literal] 10 +# 2079| ValueCategory = prvalue +# 2078| getThen().getFullyConverted(): [ParenthesisExpr] (...) +# 2078| Type = [IntType] unsigned int +# 2078| ValueCategory = prvalue(load) +# 2079| getElse().getFullyConverted(): [CStyleCast] (unsigned int)... +# 2079| Conversion = [IntegralConversion] integral conversion +# 2079| Type = [IntType] unsigned int +# 2079| ValueCategory = prvalue +# 2079| getExpr(): [ParenthesisExpr] (...) +# 2079| Type = [IntType] int +# 2079| ValueCategory = prvalue +# 2080| getStmt(2): [ReturnStmt] return ... +# 2082| [TopLevelFunction] void NewDeleteMem() +# 2082| <params>: +# 2082| getEntryPoint(): [BlockStmt] { ... } +# 2083| getStmt(0): [DeclStmt] declaration +# 2083| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2083| Type = [IntPointerType] int * +# 2083| getVariable().getInitializer(): [Initializer] initializer for x +# 2083| getExpr(): [NewExpr] new +# 2083| Type = [IntPointerType] int * +# 2083| ValueCategory = prvalue +# 2084| getStmt(1): [ExprStmt] ExprStmt +# 2084| getExpr(): [AssignExpr] ... = ... # 2084| Type = [IntType] int -# 2084| ValueCategory = prvalue(load) -# 2087| [TopLevelFunction] void CallsNonExit() -# 2087| <params>: -# 2087| getEntryPoint(): [BlockStmt] { ... } -# 2088| getStmt(0): [ExprStmt] ExprStmt -# 2088| getExpr(): [FunctionCall] call to VoidFunc -# 2088| Type = [VoidType] void -# 2088| ValueCategory = prvalue -# 2089| getStmt(1): [ExprStmt] ExprStmt -# 2089| getExpr(): [FunctionCall] call to exit -# 2089| Type = [VoidType] void -# 2089| ValueCategory = prvalue -# 2089| getArgument(0): [Literal] 3 -# 2089| Type = [IntType] int -# 2089| Value = [Literal] 3 -# 2089| ValueCategory = prvalue -# 2090| getStmt(2): [ReturnStmt] return ... -# 2092| [TopLevelFunction] int TransNonExit() +# 2084| ValueCategory = lvalue +# 2084| getLValue(): [PointerDereferenceExpr] * ... +# 2084| Type = [IntType] int +# 2084| ValueCategory = lvalue +# 2084| getOperand(): [VariableAccess] x +# 2084| Type = [IntPointerType] int * +# 2084| ValueCategory = prvalue(load) +# 2084| getRValue(): [Literal] 6 +# 2084| Type = [IntType] int +# 2084| Value = [Literal] 6 +# 2084| ValueCategory = prvalue +# 2085| getStmt(2): [ExprStmt] ExprStmt +# 2085| getExpr(): [DeleteExpr] delete +# 2085| Type = [VoidType] void +# 2085| ValueCategory = prvalue +# 2085| getExpr(): [VariableAccess] x +# 2085| Type = [IntPointerType] int * +# 2085| ValueCategory = prvalue(load) +# 2086| getStmt(3): [ReturnStmt] return ... +# 2088| [CopyAssignmentOperator] Base2& Base2::operator=(Base2 const&) +# 2088| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Base2 & +# 2088| [Constructor] void Base2::Base2() +# 2088| <params>: +# 2088| <initializations>: +# 2088| getEntryPoint(): [BlockStmt] { ... } +# 2088| getStmt(0): [ReturnStmt] return ... +# 2088| [CopyConstructor] void Base2::Base2(Base2 const&) +# 2088| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Base2 & +# 2090| [MemberFunction] void Base2::operator delete(void*) +# 2090| <params>: +# 2090| getParameter(0): [Parameter] p +# 2090| Type = [VoidPointerType] void * +# 2090| getEntryPoint(): [BlockStmt] { ... } +# 2091| getStmt(0): [ReturnStmt] return ... +# 2092| [Destructor,VirtualFunction] void Base2::~Base2() # 2092| <params>: # 2092| getEntryPoint(): [BlockStmt] { ... } -# 2093| getStmt(0): [DeclStmt] declaration -# 2093| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2093| Type = [IntType] int -# 2093| getVariable().getInitializer(): [Initializer] initializer for x -# 2093| getExpr(): [FunctionCall] call to Add -# 2093| Type = [IntType] int -# 2093| ValueCategory = prvalue -# 2093| getArgument(0): [Literal] 3 -# 2093| Type = [IntType] int -# 2093| Value = [Literal] 3 -# 2093| ValueCategory = prvalue -# 2093| getArgument(1): [Literal] 4 -# 2093| Type = [IntType] int -# 2093| Value = [Literal] 4 -# 2093| ValueCategory = prvalue -# 2094| getStmt(1): [IfStmt] if (...) ... -# 2094| getCondition(): [EQExpr] ... == ... -# 2094| Type = [BoolType] bool -# 2094| ValueCategory = prvalue -# 2094| getLeftOperand(): [VariableAccess] x -# 2094| Type = [IntType] int -# 2094| ValueCategory = prvalue(load) -# 2094| getRightOperand(): [Literal] 7 -# 2094| Type = [IntType] int -# 2094| Value = [Literal] 7 -# 2094| ValueCategory = prvalue -# 2095| getThen(): [ExprStmt] ExprStmt -# 2095| getExpr(): [FunctionCall] call to CallsNonExit -# 2095| Type = [VoidType] void -# 2095| ValueCategory = prvalue -# 2096| getStmt(2): [ExprStmt] ExprStmt -# 2096| getExpr(): [FunctionCall] call to VoidFunc -# 2096| Type = [VoidType] void -# 2096| ValueCategory = prvalue -# 2097| getStmt(3): [ReturnStmt] return ... -# 2097| getExpr(): [VariableAccess] x -# 2097| Type = [IntType] int -# 2097| ValueCategory = prvalue(load) -# 2100| [TopLevelFunction] void newArrayCorrectType(size_t) +# 2092| getStmt(0): [ReturnStmt] return ... +# 2092| <destructions>: +# 2095| [CopyAssignmentOperator] Derived2& Derived2::operator=(Derived2 const&) +# 2095| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Derived2 & +# 2095| [Constructor] void Derived2::Derived2() +# 2095| <params>: +# 2095| <initializations>: +# 2095| getInitializer(0): [ConstructorDirectInit] call to Base2 +# 2095| Type = [VoidType] void +# 2095| ValueCategory = prvalue +# 2095| getEntryPoint(): [BlockStmt] { ... } +# 2095| getStmt(0): [ReturnStmt] return ... +# 2095| [CopyConstructor] void Derived2::Derived2(Derived2 const&) +# 2095| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Derived2 & +# 2098| [Destructor,VirtualFunction] void Derived2::~Derived2() +# 2098| <params>: +# 2098| getEntryPoint(): [BlockStmt] { ... } +# 2098| getStmt(0): [ReturnStmt] return ... +# 2098| <destructions>: +# 2098| getDestruction(0): [DestructorDirectDestruction] call to ~Base2 +# 2098| Type = [VoidType] void +# 2098| ValueCategory = prvalue +# 2100| [MemberFunction] void Derived2::operator delete(void*) # 2100| <params>: -# 2100| getParameter(0): [Parameter] n -# 2100| Type = [CTypedefType,Size_t] size_t +# 2100| getParameter(0): [Parameter] p +# 2100| Type = [VoidPointerType] void * # 2100| getEntryPoint(): [BlockStmt] { ... } -# 2101| getStmt(0): [ExprStmt] ExprStmt -# 2101| getExpr(): [NewArrayExpr] new[] -# 2101| Type = [IntPointerType] int * -# 2101| ValueCategory = prvalue -# 2101| getExtent(): [VariableAccess] n -# 2101| Type = [CTypedefType,Size_t] size_t -# 2101| ValueCategory = prvalue(load) -# 2102| getStmt(1): [ExprStmt] ExprStmt -# 2102| getExpr(): [NewArrayExpr] new[] -# 2102| Type = [IntPointerType] int * -# 2102| ValueCategory = prvalue -# 2102| getAllocatorCall(): [FunctionCall] call to operator new[] -# 2102| Type = [VoidPointerType] void * -# 2102| ValueCategory = prvalue -# 2102| getArgument(0): [ErrorExpr] <error expr> -# 2102| Type = [LongType] unsigned long -# 2102| ValueCategory = prvalue -# 2102| getArgument(1): [Literal] 1.0 -# 2102| Type = [FloatType] float -# 2102| Value = [Literal] 1.0 -# 2102| ValueCategory = prvalue -# 2102| getExtent(): [VariableAccess] n -# 2102| Type = [CTypedefType,Size_t] size_t -# 2102| ValueCategory = prvalue(load) -# 2103| getStmt(2): [ExprStmt] ExprStmt -# 2103| getExpr(): [NewArrayExpr] new[] -# 2103| Type = [PointerType] String * -# 2103| ValueCategory = prvalue -# 2103| getInitializer(): [ArrayAggregateLiteral] {...} -# 2103| Type = [ArrayType] String[] -# 2103| ValueCategory = prvalue -# 2103| getAnElementExpr(0): [ConstructorCall] call to String -# 2103| Type = [VoidType] void -# 2103| ValueCategory = prvalue -# 2103| getExtent(): [VariableAccess] n -# 2103| Type = [CTypedefType,Size_t] size_t -# 2103| ValueCategory = prvalue(load) -# 2104| getStmt(3): [ExprStmt] ExprStmt -# 2104| getExpr(): [NewArrayExpr] new[] -# 2104| Type = [PointerType] Overaligned * -# 2104| ValueCategory = prvalue -# 2104| getExtent(): [VariableAccess] n -# 2104| Type = [CTypedefType,Size_t] size_t -# 2104| ValueCategory = prvalue(load) -# 2104| getAlignmentArgument(): [Literal] 128 -# 2104| Type = [ScopedEnum] align_val_t -# 2104| Value = [Literal] 128 -# 2104| ValueCategory = prvalue -# 2105| getStmt(4): [ExprStmt] ExprStmt -# 2105| getExpr(): [NewArrayExpr] new[] -# 2105| Type = [PointerType] DefaultCtorWithDefaultParam * -# 2105| ValueCategory = prvalue -# 2105| getInitializer(): [ArrayAggregateLiteral] {...} -# 2105| Type = [ArrayType] DefaultCtorWithDefaultParam[] -# 2105| ValueCategory = prvalue -# 2105| getAnElementExpr(0): [ConstructorCall] call to DefaultCtorWithDefaultParam -# 2105| Type = [VoidType] void -# 2105| ValueCategory = prvalue -# 2105| getExtent(): [VariableAccess] n -# 2105| Type = [CTypedefType,Size_t] size_t -# 2105| ValueCategory = prvalue(load) -# 2106| getStmt(5): [ExprStmt] ExprStmt -# 2106| getExpr(): [NewArrayExpr] new[] -# 2106| Type = [IntPointerType] int * -# 2106| ValueCategory = prvalue -# 2106| getInitializer(): [ArrayAggregateLiteral] {...} -# 2106| Type = [ArrayType] int[3] -# 2106| ValueCategory = prvalue -# 2106| getAnElementExpr(0): [Literal] 0 -# 2106| Type = [IntType] int -# 2106| Value = [Literal] 0 -# 2106| ValueCategory = prvalue -# 2106| getAnElementExpr(1): [Literal] 1 -# 2106| Type = [IntType] int -# 2106| Value = [Literal] 1 -# 2106| ValueCategory = prvalue -# 2106| getAnElementExpr(2): [Literal] 2 -# 2106| Type = [IntType] int -# 2106| Value = [Literal] 2 -# 2106| ValueCategory = prvalue -# 2106| getExtent(): [VariableAccess] n -# 2106| Type = [CTypedefType,Size_t] size_t -# 2106| ValueCategory = prvalue(load) -# 2107| getStmt(6): [ReturnStmt] return ... -# 2109| [TopLevelFunction] double strtod(char const*, char**) -# 2109| <params>: -# 2109| getParameter(0): [Parameter] str -# 2109| Type = [PointerType] const char * -# 2109| getParameter(1): [Parameter] endptr -# 2109| Type = [PointerType] char ** -# 2111| [TopLevelFunction] char* test_strtod(char*) -# 2111| <params>: -# 2111| getParameter(0): [Parameter] s -# 2111| Type = [CharPointerType] char * -# 2111| getEntryPoint(): [BlockStmt] { ... } -# 2112| getStmt(0): [DeclStmt] declaration -# 2112| getDeclarationEntry(0): [VariableDeclarationEntry] definition of end -# 2112| Type = [CharPointerType] char * -# 2113| getStmt(1): [DeclStmt] declaration +# 2101| getStmt(0): [ReturnStmt] return ... +# 2105| [TopLevelFunction] int virtual_delete() +# 2105| <params>: +# 2106| getEntryPoint(): [BlockStmt] { ... } +# 2107| getStmt(0): [DeclStmt] declaration +# 2107| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b1 +# 2107| Type = [PointerType] Base2 * +# 2107| getVariable().getInitializer(): [Initializer] initializer for b1 +# 2107| getExpr(): [NewExpr] new +# 2107| Type = [PointerType] Base2 * +# 2107| ValueCategory = prvalue +# 2107| getInitializer(): [ConstructorCall] call to Base2 +# 2107| Type = [VoidType] void +# 2107| ValueCategory = prvalue +# 2108| getStmt(1): [ExprStmt] ExprStmt +# 2108| getExpr(): [DeleteExpr] delete +# 2108| Type = [VoidType] void +# 2108| ValueCategory = prvalue +# 2108| getDeallocatorCall(): [FunctionCall] call to operator delete +# 2108| Type = [VoidType] void +# 2108| ValueCategory = prvalue +# 2108| getDestructorCall(): [DestructorCall] call to ~Base2 +# 2108| Type = [VoidType] void +# 2108| ValueCategory = prvalue +# 2108| getQualifier(): [VariableAccess] b1 +# 2108| Type = [PointerType] Base2 * +# 2108| ValueCategory = prvalue(load) +# 2110| getStmt(2): [DeclStmt] declaration +# 2110| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b2 +# 2110| Type = [PointerType] Base2 * +# 2110| getVariable().getInitializer(): [Initializer] initializer for b2 +# 2110| getExpr(): [NewExpr] new +# 2110| Type = [PointerType] Derived2 * +# 2110| ValueCategory = prvalue +# 2110| getInitializer(): [ConstructorCall] call to Derived2 +# 2110| Type = [VoidType] void +# 2110| ValueCategory = prvalue +# 2110| getExpr().getFullyConverted(): [CStyleCast] (Base2 *)... +# 2110| Conversion = [BaseClassConversion] base class conversion +# 2110| Type = [PointerType] Base2 * +# 2110| ValueCategory = prvalue +# 2111| getStmt(3): [ExprStmt] ExprStmt +# 2111| getExpr(): [DeleteExpr] delete +# 2111| Type = [VoidType] void +# 2111| ValueCategory = prvalue +# 2111| getDeallocatorCall(): [FunctionCall] call to operator delete +# 2111| Type = [VoidType] void +# 2111| ValueCategory = prvalue +# 2111| getDestructorCall(): [DestructorCall] call to ~Base2 +# 2111| Type = [VoidType] void +# 2111| ValueCategory = prvalue +# 2111| getQualifier(): [VariableAccess] b2 +# 2111| Type = [PointerType] Base2 * +# 2111| ValueCategory = prvalue(load) +# 2113| getStmt(4): [DeclStmt] declaration # 2113| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d -# 2113| Type = [DoubleType] double +# 2113| Type = [PointerType] Derived2 * # 2113| getVariable().getInitializer(): [Initializer] initializer for d -# 2113| getExpr(): [FunctionCall] call to strtod -# 2113| Type = [DoubleType] double +# 2113| getExpr(): [NewExpr] new +# 2113| Type = [PointerType] Derived2 * # 2113| ValueCategory = prvalue -# 2113| getArgument(0): [VariableAccess] s -# 2113| Type = [CharPointerType] char * -# 2113| ValueCategory = prvalue(load) -# 2113| getArgument(1): [AddressOfExpr] & ... -# 2113| Type = [PointerType] char ** +# 2113| getInitializer(): [ConstructorCall] call to Derived2 +# 2113| Type = [VoidType] void # 2113| ValueCategory = prvalue -# 2113| getOperand(): [VariableAccess] end -# 2113| Type = [CharPointerType] char * -# 2113| ValueCategory = lvalue -# 2113| getArgument(0).getFullyConverted(): [CStyleCast] (const char *)... -# 2113| Conversion = [PointerConversion] pointer conversion -# 2113| Type = [PointerType] const char * -# 2113| ValueCategory = prvalue -# 2114| getStmt(2): [ReturnStmt] return ... -# 2114| getExpr(): [VariableAccess] end -# 2114| Type = [CharPointerType] char * -# 2114| ValueCategory = prvalue(load) -# 2117| [CopyAssignmentOperator] HasOperatorBool& HasOperatorBool::operator=(HasOperatorBool const&) +# 2114| getStmt(5): [ExprStmt] ExprStmt +# 2114| getExpr(): [DeleteExpr] delete +# 2114| Type = [VoidType] void +# 2114| ValueCategory = prvalue +# 2114| getDeallocatorCall(): [FunctionCall] call to operator delete +# 2114| Type = [VoidType] void +# 2114| ValueCategory = prvalue +# 2114| getDestructorCall(): [DestructorCall] call to ~Derived2 +# 2114| Type = [VoidType] void +# 2114| ValueCategory = prvalue +# 2114| getQualifier(): [VariableAccess] d +# 2114| Type = [PointerType] Derived2 * +# 2114| ValueCategory = prvalue(load) +# 2115| getStmt(6): [ReturnStmt] return ... +# 2117| [TopLevelFunction] void test_constant_folding_use(int) # 2117| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const HasOperatorBool & -# 2117| [MoveAssignmentOperator] HasOperatorBool& HasOperatorBool::operator=(HasOperatorBool&&) -# 2117| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [RValueReferenceType] HasOperatorBool && -# 2118| [ConversionOperator] bool HasOperatorBool::operator bool() -# 2118| <params>: -# 2121| [TopLevelFunction] void call_as_child_of_ConditionDeclExpr() -# 2121| <params>: -# 2121| getEntryPoint(): [BlockStmt] { ... } -# 2122| getStmt(0): [IfStmt] if (...) ... -# 2122| getCondition(): [ConditionDeclExpr] (condition decl) -# 2122| Type = [BoolType] bool -# 2122| ValueCategory = prvalue -# 2122| getChild(0): [FunctionCall] call to operator bool -# 2122| Type = [BoolType] bool -# 2122| ValueCategory = prvalue -# 2122| getQualifier(): [VariableAccess] b -# 2122| Type = [Struct] HasOperatorBool -# 2122| ValueCategory = prvalue(load) -# 2122| getThen(): [BlockStmt] { ... } -# 2123| getStmt(1): [ReturnStmt] return ... -# 2125| [CopyAssignmentOperator] ClassWithDestructor& ClassWithDestructor::operator=(ClassWithDestructor const&) -# 2125| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const ClassWithDestructor & -# 2125| [CopyConstructor] void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) -# 2125| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const ClassWithDestructor & -# 2125| <initializations>: -# 2125| getInitializer(0): [ConstructorFieldInit] constructor init of field x -# 2125| Type = [CharPointerType] char * -# 2125| ValueCategory = prvalue -# 2125| getExpr(): [ReferenceFieldAccess] x -# 2125| Type = [CharPointerType] char * -# 2125| ValueCategory = prvalue(load) -# 2125| getQualifier(): [VariableAccess] (unnamed parameter 0) -# 2125| Type = [LValueReferenceType] const ClassWithDestructor & -# 2125| ValueCategory = prvalue(load) -# 2125| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2125| Type = [SpecifiedType] const ClassWithDestructor -# 2125| ValueCategory = lvalue -# 2125| getEntryPoint(): [BlockStmt] { ... } -# 2125| getStmt(0): [ReturnStmt] return ... -# 2128| [Constructor] void ClassWithDestructor::ClassWithDestructor() -# 2128| <params>: -# 2128| <initializations>: -# 2128| getEntryPoint(): [BlockStmt] { ... } -# 2128| getStmt(0): [ExprStmt] ExprStmt -# 2128| getExpr(): [AssignExpr] ... = ... -# 2128| Type = [CharPointerType] char * -# 2128| ValueCategory = lvalue -# 2128| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 2128| Type = [CharPointerType] char * -# 2128| ValueCategory = lvalue -# 2128| getQualifier(): [ThisExpr] this -# 2128| Type = [PointerType] ClassWithDestructor * -# 2128| ValueCategory = prvalue(load) -# 2128| getRValue(): [NewExpr] new -# 2128| Type = [CharPointerType] char * +# 2117| getParameter(0): [Parameter] (unnamed parameter 0) +# 2117| Type = [IntType] int +# 2119| [TopLevelFunction] void test_constant_folding() +# 2119| <params>: +# 2119| getEntryPoint(): [BlockStmt] { ... } +# 2120| getStmt(0): [DeclStmt] declaration +# 2120| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2120| Type = [SpecifiedType] const int +# 2120| getVariable().getInitializer(): [Initializer] initializer for x +# 2120| getExpr(): [Literal] 116 +# 2120| Type = [IntType] int +# 2120| Value = [Literal] 116 +# 2120| ValueCategory = prvalue +# 2121| getStmt(1): [ExprStmt] ExprStmt +# 2121| getExpr(): [FunctionCall] call to test_constant_folding_use +# 2121| Type = [VoidType] void +# 2121| ValueCategory = prvalue +# 2121| getArgument(0): [VariableAccess] x +# 2121| Type = [IntType] int +# 2121| Value = [VariableAccess] 116 +# 2121| ValueCategory = prvalue(load) +# 2122| getStmt(2): [ReturnStmt] return ... +# 2124| [TopLevelFunction] void exit(int) +# 2124| <params>: +# 2124| getParameter(0): [Parameter] code +# 2124| Type = [IntType] int +# 2126| [TopLevelFunction] int NonExit() +# 2126| <params>: +# 2126| getEntryPoint(): [BlockStmt] { ... } +# 2127| getStmt(0): [DeclStmt] declaration +# 2127| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2127| Type = [IntType] int +# 2127| getVariable().getInitializer(): [Initializer] initializer for x +# 2127| getExpr(): [FunctionCall] call to Add +# 2127| Type = [IntType] int +# 2127| ValueCategory = prvalue +# 2127| getArgument(0): [Literal] 3 +# 2127| Type = [IntType] int +# 2127| Value = [Literal] 3 +# 2127| ValueCategory = prvalue +# 2127| getArgument(1): [Literal] 4 +# 2127| Type = [IntType] int +# 2127| Value = [Literal] 4 +# 2127| ValueCategory = prvalue +# 2128| getStmt(1): [IfStmt] if (...) ... +# 2128| getCondition(): [EQExpr] ... == ... +# 2128| Type = [BoolType] bool +# 2128| ValueCategory = prvalue +# 2128| getLeftOperand(): [VariableAccess] x +# 2128| Type = [IntType] int +# 2128| ValueCategory = prvalue(load) +# 2128| getRightOperand(): [Literal] 7 +# 2128| Type = [IntType] int +# 2128| Value = [Literal] 7 # 2128| ValueCategory = prvalue -# 2128| getStmt(1): [ReturnStmt] return ... -# 2129| [Destructor] void ClassWithDestructor::~ClassWithDestructor() -# 2129| <params>: -# 2129| getEntryPoint(): [BlockStmt] { ... } -# 2129| getStmt(0): [ExprStmt] ExprStmt -# 2129| getExpr(): [DeleteExpr] delete -# 2129| Type = [VoidType] void -# 2129| ValueCategory = prvalue -# 2129| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 2129| Type = [CharPointerType] char * -# 2129| ValueCategory = prvalue(load) -# 2129| getQualifier(): [ThisExpr] this -# 2129| Type = [PointerType] ClassWithDestructor * -# 2129| ValueCategory = prvalue(load) -# 2129| getStmt(1): [ReturnStmt] return ... -# 2129| <destructions>: -# 2131| [MemberFunction] void ClassWithDestructor::set_x(char) -# 2131| <params>: -# 2131| getParameter(0): [Parameter] y -# 2131| Type = [PlainCharType] char -# 2131| getEntryPoint(): [BlockStmt] { ... } -# 2131| getStmt(0): [ExprStmt] ExprStmt -# 2131| getExpr(): [AssignExpr] ... = ... -# 2131| Type = [PlainCharType] char -# 2131| ValueCategory = lvalue -# 2131| getLValue(): [PointerDereferenceExpr] * ... -# 2131| Type = [PlainCharType] char -# 2131| ValueCategory = lvalue -# 2131| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 2131| Type = [CharPointerType] char * -# 2131| ValueCategory = prvalue(load) -# 2131| getQualifier(): [ThisExpr] this -# 2131| Type = [PointerType] ClassWithDestructor * -# 2131| ValueCategory = prvalue(load) -# 2131| getRValue(): [VariableAccess] y -# 2131| Type = [PlainCharType] char -# 2131| ValueCategory = prvalue(load) -# 2131| getStmt(1): [ReturnStmt] return ... -# 2132| [MemberFunction] char ClassWithDestructor::get_x() -# 2132| <params>: -# 2132| getEntryPoint(): [BlockStmt] { ... } -# 2132| getStmt(0): [ReturnStmt] return ... -# 2132| getExpr(): [PointerDereferenceExpr] * ... -# 2132| Type = [PlainCharType] char -# 2132| ValueCategory = prvalue(load) -# 2132| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] x -# 2132| Type = [CharPointerType] char * -# 2132| ValueCategory = prvalue(load) -# 2132| getQualifier(): [ThisExpr] this -# 2132| Type = [PointerType] ClassWithDestructor * -# 2132| ValueCategory = prvalue(load) -# 2135| [GlobalVariable] bool initialization_with_destructor_bool -# 2135| getInitializer(): [Initializer] initializer for initialization_with_destructor_bool -# 2135| getExpr(): [Literal] 1 -# 2135| Type = [BoolType] bool -# 2135| Value = [Literal] 1 -# 2135| ValueCategory = prvalue -# 2137| [TopLevelFunction] void initialization_with_destructor(bool, char) -# 2137| <params>: -# 2137| getParameter(0): [Parameter] b -# 2137| Type = [BoolType] bool -# 2137| getParameter(1): [Parameter] c -# 2137| Type = [PlainCharType] char -# 2137| getEntryPoint(): [BlockStmt] { ... } -# 2138| getStmt(0): [IfStmt] if (...) ... -# 2138| getInitialization(): [DeclStmt] declaration -# 2138| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2138| Type = [Class] ClassWithDestructor -# 2138| getVariable().getInitializer(): [Initializer] initializer for x -# 2138| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2138| Type = [VoidType] void -# 2138| ValueCategory = prvalue -# 2138| getCondition(): [VariableAccess] b -# 2138| Type = [BoolType] bool -# 2138| ValueCategory = prvalue(load) -# 2139| getThen(): [ExprStmt] ExprStmt -# 2139| getExpr(): [FunctionCall] call to set_x -# 2139| Type = [VoidType] void -# 2139| ValueCategory = prvalue -# 2139| getQualifier(): [VariableAccess] x -# 2139| Type = [Class] ClassWithDestructor -# 2139| ValueCategory = lvalue -# 2139| getArgument(0): [CharLiteral] 97 -# 2139| Type = [PlainCharType] char -# 2139| Value = [CharLiteral] 97 -# 2139| ValueCategory = prvalue -# 2139| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2139| Type = [VoidType] void -# 2139| ValueCategory = prvalue -# 2139| getQualifier(): [VariableAccess] x -# 2139| Type = [Class] ClassWithDestructor -# 2139| ValueCategory = lvalue -# 2141| getStmt(1): [ConstexprIfStmt] if constexpr (...) ... -# 2141| getInitialization(): [DeclStmt] declaration -# 2141| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2141| Type = [Class] ClassWithDestructor -# 2141| getVariable().getInitializer(): [Initializer] initializer for x -# 2141| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2141| Type = [VoidType] void -# 2141| ValueCategory = prvalue -# 2141| getCondition(): [VariableAccess] initialization_with_destructor_bool +# 2129| getThen(): [ExprStmt] ExprStmt +# 2129| getExpr(): [FunctionCall] call to exit +# 2129| Type = [VoidType] void +# 2129| ValueCategory = prvalue +# 2129| getArgument(0): [Literal] 3 +# 2129| Type = [IntType] int +# 2129| Value = [Literal] 3 +# 2129| ValueCategory = prvalue +# 2130| getStmt(2): [ExprStmt] ExprStmt +# 2130| getExpr(): [FunctionCall] call to VoidFunc +# 2130| Type = [VoidType] void +# 2130| ValueCategory = prvalue +# 2131| getStmt(3): [ReturnStmt] return ... +# 2131| getExpr(): [VariableAccess] x +# 2131| Type = [IntType] int +# 2131| ValueCategory = prvalue(load) +# 2134| [TopLevelFunction] void CallsNonExit() +# 2134| <params>: +# 2134| getEntryPoint(): [BlockStmt] { ... } +# 2135| getStmt(0): [ExprStmt] ExprStmt +# 2135| getExpr(): [FunctionCall] call to VoidFunc +# 2135| Type = [VoidType] void +# 2135| ValueCategory = prvalue +# 2136| getStmt(1): [ExprStmt] ExprStmt +# 2136| getExpr(): [FunctionCall] call to exit +# 2136| Type = [VoidType] void +# 2136| ValueCategory = prvalue +# 2136| getArgument(0): [Literal] 3 +# 2136| Type = [IntType] int +# 2136| Value = [Literal] 3 +# 2136| ValueCategory = prvalue +# 2137| getStmt(2): [ReturnStmt] return ... +# 2139| [TopLevelFunction] int TransNonExit() +# 2139| <params>: +# 2139| getEntryPoint(): [BlockStmt] { ... } +# 2140| getStmt(0): [DeclStmt] declaration +# 2140| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2140| Type = [IntType] int +# 2140| getVariable().getInitializer(): [Initializer] initializer for x +# 2140| getExpr(): [FunctionCall] call to Add +# 2140| Type = [IntType] int +# 2140| ValueCategory = prvalue +# 2140| getArgument(0): [Literal] 3 +# 2140| Type = [IntType] int +# 2140| Value = [Literal] 3 +# 2140| ValueCategory = prvalue +# 2140| getArgument(1): [Literal] 4 +# 2140| Type = [IntType] int +# 2140| Value = [Literal] 4 +# 2140| ValueCategory = prvalue +# 2141| getStmt(1): [IfStmt] if (...) ... +# 2141| getCondition(): [EQExpr] ... == ... # 2141| Type = [BoolType] bool -# 2141| Value = [VariableAccess] 1 -# 2141| ValueCategory = prvalue(load) +# 2141| ValueCategory = prvalue +# 2141| getLeftOperand(): [VariableAccess] x +# 2141| Type = [IntType] int +# 2141| ValueCategory = prvalue(load) +# 2141| getRightOperand(): [Literal] 7 +# 2141| Type = [IntType] int +# 2141| Value = [Literal] 7 +# 2141| ValueCategory = prvalue # 2142| getThen(): [ExprStmt] ExprStmt -# 2142| getExpr(): [FunctionCall] call to set_x +# 2142| getExpr(): [FunctionCall] call to CallsNonExit # 2142| Type = [VoidType] void # 2142| ValueCategory = prvalue -# 2142| getQualifier(): [VariableAccess] x -# 2142| Type = [Class] ClassWithDestructor -# 2142| ValueCategory = lvalue -# 2142| getArgument(0): [CharLiteral] 97 -# 2142| Type = [PlainCharType] char -# 2142| Value = [CharLiteral] 97 -# 2142| ValueCategory = prvalue -# 2142| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2142| Type = [VoidType] void -# 2142| ValueCategory = prvalue -# 2142| getQualifier(): [VariableAccess] x -# 2142| Type = [Class] ClassWithDestructor -# 2142| ValueCategory = lvalue -# 2144| getStmt(2): [SwitchStmt] switch (...) ... -# 2144| getInitialization(): [DeclStmt] declaration -# 2144| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2144| Type = [Class] ClassWithDestructor -# 2144| getVariable().getInitializer(): [Initializer] initializer for x -# 2144| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2144| Type = [VoidType] void -# 2144| ValueCategory = prvalue -# 2144| getExpr(): [VariableAccess] c -# 2144| Type = [PlainCharType] char -# 2144| ValueCategory = prvalue(load) -# 2144| getStmt(): [BlockStmt] { ... } -# 2145| getStmt(0): [SwitchCase] case ...: -# 2145| getExpr(): [CharLiteral] 97 -# 2145| Type = [PlainCharType] char -# 2145| Value = [CharLiteral] 97 -# 2145| ValueCategory = prvalue -# 2145| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2145| Conversion = [IntegralConversion] integral conversion -# 2145| Type = [IntType] int -# 2145| Value = [CStyleCast] 97 -# 2145| ValueCategory = prvalue -# 2146| getStmt(1): [ExprStmt] ExprStmt -# 2146| getExpr(): [FunctionCall] call to set_x -# 2146| Type = [VoidType] void -# 2146| ValueCategory = prvalue -# 2146| getQualifier(): [VariableAccess] x -# 2146| Type = [Class] ClassWithDestructor -# 2146| ValueCategory = lvalue -# 2146| getArgument(0): [CharLiteral] 97 -# 2146| Type = [PlainCharType] char -# 2146| Value = [CharLiteral] 97 -# 2146| ValueCategory = prvalue -# 2147| getStmt(2): [BreakStmt] break; -# 2148| getStmt(3): [SwitchCase] default: -# 2149| getStmt(4): [ExprStmt] ExprStmt -# 2149| getExpr(): [FunctionCall] call to set_x -# 2149| Type = [VoidType] void -# 2149| ValueCategory = prvalue -# 2149| getQualifier(): [VariableAccess] x -# 2149| Type = [Class] ClassWithDestructor -# 2149| ValueCategory = lvalue -# 2149| getArgument(0): [CharLiteral] 98 -# 2149| Type = [PlainCharType] char -# 2149| Value = [CharLiteral] 98 -# 2149| ValueCategory = prvalue -# 2150| getStmt(5): [BreakStmt] break; -# 2151| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2151| Type = [VoidType] void -# 2151| ValueCategory = prvalue -# 2151| getQualifier(): [VariableAccess] x -# 2151| Type = [Class] ClassWithDestructor -# 2151| ValueCategory = lvalue -# 2144| getExpr().getFullyConverted(): [CStyleCast] (int)... -# 2144| Conversion = [IntegralConversion] integral conversion +# 2143| getStmt(2): [ExprStmt] ExprStmt +# 2143| getExpr(): [FunctionCall] call to VoidFunc +# 2143| Type = [VoidType] void +# 2143| ValueCategory = prvalue +# 2144| getStmt(3): [ReturnStmt] return ... +# 2144| getExpr(): [VariableAccess] x # 2144| Type = [IntType] int -# 2144| ValueCategory = prvalue -# 2151| getStmt(3): [LabelStmt] label ...: -# 2153| getStmt(4): [DeclStmt] declaration -# 2153| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2153| Type = [Class] ClassWithDestructor -# 2153| getVariable().getInitializer(): [Initializer] initializer for x -# 2153| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2153| Type = [VoidType] void +# 2144| ValueCategory = prvalue(load) +# 2147| [TopLevelFunction] void newArrayCorrectType(size_t) +# 2147| <params>: +# 2147| getParameter(0): [Parameter] n +# 2147| Type = [CTypedefType,Size_t] size_t +# 2147| getEntryPoint(): [BlockStmt] { ... } +# 2148| getStmt(0): [ExprStmt] ExprStmt +# 2148| getExpr(): [NewArrayExpr] new[] +# 2148| Type = [IntPointerType] int * +# 2148| ValueCategory = prvalue +# 2148| getExtent(): [VariableAccess] n +# 2148| Type = [CTypedefType,Size_t] size_t +# 2148| ValueCategory = prvalue(load) +# 2149| getStmt(1): [ExprStmt] ExprStmt +# 2149| getExpr(): [NewArrayExpr] new[] +# 2149| Type = [IntPointerType] int * +# 2149| ValueCategory = prvalue +# 2149| getAllocatorCall(): [FunctionCall] call to operator new[] +# 2149| Type = [VoidPointerType] void * +# 2149| ValueCategory = prvalue +# 2149| getArgument(0): [ErrorExpr] <error expr> +# 2149| Type = [LongType] unsigned long +# 2149| ValueCategory = prvalue +# 2149| getArgument(1): [Literal] 1.0 +# 2149| Type = [FloatType] float +# 2149| Value = [Literal] 1.0 +# 2149| ValueCategory = prvalue +# 2149| getExtent(): [VariableAccess] n +# 2149| Type = [CTypedefType,Size_t] size_t +# 2149| ValueCategory = prvalue(load) +# 2150| getStmt(2): [ExprStmt] ExprStmt +# 2150| getExpr(): [NewArrayExpr] new[] +# 2150| Type = [PointerType] String * +# 2150| ValueCategory = prvalue +# 2150| getInitializer(): [ArrayAggregateLiteral] {...} +# 2150| Type = [ArrayType] String[] +# 2150| ValueCategory = prvalue +# 2150| getAnElementExpr(0): [ConstructorCall] call to String +# 2150| Type = [VoidType] void +# 2150| ValueCategory = prvalue +# 2150| getExtent(): [VariableAccess] n +# 2150| Type = [CTypedefType,Size_t] size_t +# 2150| ValueCategory = prvalue(load) +# 2151| getStmt(3): [ExprStmt] ExprStmt +# 2151| getExpr(): [NewArrayExpr] new[] +# 2151| Type = [PointerType] Overaligned * +# 2151| ValueCategory = prvalue +# 2151| getExtent(): [VariableAccess] n +# 2151| Type = [CTypedefType,Size_t] size_t +# 2151| ValueCategory = prvalue(load) +# 2151| getAlignmentArgument(): [Literal] 128 +# 2151| Type = [ScopedEnum] align_val_t +# 2151| Value = [Literal] 128 +# 2151| ValueCategory = prvalue +# 2152| getStmt(4): [ExprStmt] ExprStmt +# 2152| getExpr(): [NewArrayExpr] new[] +# 2152| Type = [PointerType] DefaultCtorWithDefaultParam * +# 2152| ValueCategory = prvalue +# 2152| getInitializer(): [ArrayAggregateLiteral] {...} +# 2152| Type = [ArrayType] DefaultCtorWithDefaultParam[] +# 2152| ValueCategory = prvalue +# 2152| getAnElementExpr(0): [ConstructorCall] call to DefaultCtorWithDefaultParam +# 2152| Type = [VoidType] void +# 2152| ValueCategory = prvalue +# 2152| getExtent(): [VariableAccess] n +# 2152| Type = [CTypedefType,Size_t] size_t +# 2152| ValueCategory = prvalue(load) +# 2153| getStmt(5): [ExprStmt] ExprStmt +# 2153| getExpr(): [NewArrayExpr] new[] +# 2153| Type = [IntPointerType] int * +# 2153| ValueCategory = prvalue +# 2153| getInitializer(): [ArrayAggregateLiteral] {...} +# 2153| Type = [ArrayType] int[3] +# 2153| ValueCategory = prvalue +# 2153| getAnElementExpr(0): [Literal] 0 +# 2153| Type = [IntType] int +# 2153| Value = [Literal] 0 # 2153| ValueCategory = prvalue -# 2154| getStmt(5): [RangeBasedForStmt] for(...:...) ... -# 2154| getInitialization(): [DeclStmt] declaration -# 2154| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys -# 2154| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2154| getVariable().getInitializer(): [Initializer] initializer for ys -# 2154| getExpr(): [ConstructorCall] call to vector -# 2154| Type = [VoidType] void -# 2154| ValueCategory = prvalue -# 2154| getArgument(0): [VariableAccess] x -# 2154| Type = [Class] ClassWithDestructor -# 2154| ValueCategory = prvalue(load) -# 2154| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2154| Type = [Class] ClassWithDestructor -# 2154| ValueCategory = lvalue -# 2154| getChild(1): [DeclStmt] declaration -# 2154| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2154| Type = [LValueReferenceType] vector<ClassWithDestructor> & -#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2154| getExpr(): [VariableAccess] ys -# 2154| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2154| ValueCategory = lvalue -# 2154| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2154| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2154| ValueCategory = prvalue -# 2154| getBeginEndDeclaration(): [DeclStmt] declaration -# 2154| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2154| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2154| getExpr(): [FunctionCall] call to begin -# 2154| Type = [NestedStruct] iterator -# 2154| ValueCategory = prvalue -# 2154| getQualifier(): [VariableAccess] (__range) -# 2154| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2154| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -# 2154| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2154| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2154| getExpr(): [FunctionCall] call to end -# 2154| Type = [NestedStruct] iterator -# 2154| ValueCategory = prvalue -# 2154| getQualifier(): [VariableAccess] (__range) -# 2154| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2154| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -# 2154| getCondition(): [FunctionCall] call to operator!= -# 2154| Type = [BoolType] bool -# 2154| ValueCategory = prvalue -# 2154| getQualifier(): [VariableAccess] (__begin) -# 2154| Type = [NestedStruct] iterator -# 2154| ValueCategory = lvalue -# 2154| getArgument(0): [VariableAccess] (__end) -# 2154| Type = [NestedStruct] iterator -# 2154| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2154| getUpdate(): [FunctionCall] call to operator++ -# 2154| Type = [LValueReferenceType] iterator & -# 2154| ValueCategory = prvalue -# 2154| getQualifier(): [VariableAccess] (__begin) -# 2154| Type = [NestedStruct] iterator -# 2154| ValueCategory = lvalue -# 2154| getChild(5): [DeclStmt] declaration -# 2154| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2154| Type = [Class] ClassWithDestructor -# 2154| getVariable().getInitializer(): [Initializer] initializer for y -# 2154| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2154| Type = [LValueReferenceType] ClassWithDestructor & -# 2154| ValueCategory = prvalue -# 2154| getQualifier(): [VariableAccess] (__begin) -# 2154| Type = [NestedStruct] iterator -# 2154| ValueCategory = lvalue -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2154| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2154| Type = [Class] ClassWithDestructor -# 2154| ValueCategory = prvalue(load) -# 2155| getStmt(): [ExprStmt] ExprStmt -# 2155| getExpr(): [FunctionCall] call to set_x -# 2155| Type = [VoidType] void -# 2155| ValueCategory = prvalue -# 2155| getQualifier(): [VariableAccess] y -# 2155| Type = [Class] ClassWithDestructor -# 2155| ValueCategory = lvalue -# 2155| getArgument(0): [CharLiteral] 97 -# 2155| Type = [PlainCharType] char -# 2155| Value = [CharLiteral] 97 -# 2155| ValueCategory = prvalue -# 2154| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2154| Type = [VoidType] void -# 2154| ValueCategory = prvalue -# 2154| getQualifier(): [VariableAccess] y -# 2154| Type = [Class] ClassWithDestructor -# 2154| ValueCategory = lvalue -# 2154| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2154| Type = [VoidType] void -# 2154| ValueCategory = prvalue -# 2154| getQualifier(): [VariableAccess] ys -# 2154| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2154| ValueCategory = lvalue -# 2154| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2154| Type = [NestedStruct] iterator -# 2154| ValueCategory = lvalue -# 2157| getStmt(6): [RangeBasedForStmt] for(...:...) ... -# 2157| getInitialization(): [DeclStmt] declaration -# 2157| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys -# 2157| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2157| getVariable().getInitializer(): [Initializer] initializer for ys -# 2157| getExpr(): [ConstructorCall] call to vector -# 2157| Type = [VoidType] void -# 2157| ValueCategory = prvalue -# 2157| getArgument(0): [VariableAccess] x -# 2157| Type = [Class] ClassWithDestructor -# 2157| ValueCategory = prvalue(load) -# 2157| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2157| Type = [Class] ClassWithDestructor -# 2157| ValueCategory = lvalue -# 2157| getChild(1): [DeclStmt] declaration -# 2157| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2157| Type = [LValueReferenceType] vector<ClassWithDestructor> & -#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2157| getExpr(): [VariableAccess] ys -# 2157| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2157| ValueCategory = lvalue -# 2157| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2157| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2157| ValueCategory = prvalue -# 2157| getBeginEndDeclaration(): [DeclStmt] declaration -# 2157| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2157| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2157| getExpr(): [FunctionCall] call to begin -# 2157| Type = [NestedStruct] iterator -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] (__range) -# 2157| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2157| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -# 2157| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2157| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2157| getExpr(): [FunctionCall] call to end -# 2157| Type = [NestedStruct] iterator -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] (__range) -# 2157| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2157| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -# 2157| getCondition(): [FunctionCall] call to operator!= -# 2157| Type = [BoolType] bool -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] (__begin) -# 2157| Type = [NestedStruct] iterator -# 2157| ValueCategory = lvalue -# 2157| getArgument(0): [VariableAccess] (__end) -# 2157| Type = [NestedStruct] iterator -# 2157| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2157| getUpdate(): [FunctionCall] call to operator++ -# 2157| Type = [LValueReferenceType] iterator & -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] (__begin) -# 2157| Type = [NestedStruct] iterator -# 2157| ValueCategory = lvalue -# 2157| getChild(5): [DeclStmt] declaration -# 2157| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2157| Type = [Class] ClassWithDestructor -# 2157| getVariable().getInitializer(): [Initializer] initializer for y -# 2157| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2157| Type = [LValueReferenceType] ClassWithDestructor & -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] (__begin) -# 2157| Type = [NestedStruct] iterator -# 2157| ValueCategory = lvalue -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2157| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2157| Type = [Class] ClassWithDestructor -# 2157| ValueCategory = prvalue(load) -# 2157| getStmt(): [BlockStmt] { ... } -# 2158| getStmt(0): [ExprStmt] ExprStmt -# 2158| getExpr(): [FunctionCall] call to set_x -# 2158| Type = [VoidType] void -# 2158| ValueCategory = prvalue -# 2158| getQualifier(): [VariableAccess] y -# 2158| Type = [Class] ClassWithDestructor -# 2158| ValueCategory = lvalue -# 2158| getArgument(0): [CharLiteral] 97 -# 2158| Type = [PlainCharType] char -# 2158| Value = [CharLiteral] 97 -# 2158| ValueCategory = prvalue -# 2159| getStmt(1): [IfStmt] if (...) ... -# 2159| getCondition(): [EQExpr] ... == ... -# 2159| Type = [BoolType] bool -# 2159| ValueCategory = prvalue -# 2159| getLeftOperand(): [FunctionCall] call to get_x -# 2159| Type = [PlainCharType] char -# 2159| ValueCategory = prvalue -# 2159| getQualifier(): [VariableAccess] y -# 2159| Type = [Class] ClassWithDestructor -# 2159| ValueCategory = lvalue -# 2159| getRightOperand(): [CharLiteral] 98 -# 2159| Type = [PlainCharType] char -# 2159| Value = [CharLiteral] 98 -# 2159| ValueCategory = prvalue -# 2159| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... -# 2159| Conversion = [IntegralConversion] integral conversion -# 2159| Type = [IntType] int -# 2159| ValueCategory = prvalue -# 2159| getRightOperand().getFullyConverted(): [CStyleCast] (int)... -# 2159| Conversion = [IntegralConversion] integral conversion -# 2159| Type = [IntType] int -# 2159| Value = [CStyleCast] 98 -# 2159| ValueCategory = prvalue -# 2160| getThen(): [ReturnStmt] return ... -# 2157| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2157| Type = [VoidType] void -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] y -# 2157| Type = [Class] ClassWithDestructor -# 2157| ValueCategory = lvalue -# 2157| getImplicitDestructorCall(1): [DestructorCall] call to ~vector -# 2157| Type = [VoidType] void -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] ys -# 2157| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2157| ValueCategory = lvalue -# 2172| getImplicitDestructorCall(2): [DestructorCall] call to ~ClassWithDestructor -# 2172| Type = [VoidType] void -# 2172| ValueCategory = prvalue -# 2172| getQualifier(): [VariableAccess] x -# 2172| Type = [Class] ClassWithDestructor -# 2172| ValueCategory = lvalue -# 2157| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2157| Type = [VoidType] void -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] y -# 2157| Type = [Class] ClassWithDestructor -# 2157| ValueCategory = lvalue -# 2157| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2157| Type = [VoidType] void -# 2157| ValueCategory = prvalue -# 2157| getQualifier(): [VariableAccess] ys -# 2157| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2157| ValueCategory = lvalue -# 2157| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2157| Type = [NestedStruct] iterator -# 2157| ValueCategory = lvalue -# 2163| getStmt(7): [RangeBasedForStmt] for(...:...) ... -# 2163| getInitialization(): [DeclStmt] declaration -# 2163| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys -# 2163| Type = [ClassTemplateInstantiation,Struct] vector<int> -# 2163| getVariable().getInitializer(): [Initializer] initializer for ys -# 2163| getExpr(): [ConstructorCall] call to vector -# 2163| Type = [VoidType] void -# 2163| ValueCategory = prvalue -# 2163| getArgument(0): [Literal] 1 -# 2163| Type = [IntType] int -# 2163| Value = [Literal] 1 -# 2163| ValueCategory = prvalue -# 2163| getChild(1): [DeclStmt] declaration -# 2163| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2163| Type = [LValueReferenceType] vector<int> & -#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2163| getExpr(): [VariableAccess] ys -# 2163| Type = [ClassTemplateInstantiation,Struct] vector<int> -# 2163| ValueCategory = lvalue -# 2163| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2163| Type = [LValueReferenceType] vector<int> & -# 2163| ValueCategory = prvalue -# 2163| getBeginEndDeclaration(): [DeclStmt] declaration -# 2163| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2163| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2163| getExpr(): [FunctionCall] call to begin -# 2163| Type = [NestedStruct] iterator -# 2163| ValueCategory = prvalue -# 2163| getQualifier(): [VariableAccess] (__range) -# 2163| Type = [LValueReferenceType] vector<int> & -# 2163| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<int>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<int> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<int> -#-----| ValueCategory = lvalue -# 2163| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2163| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2163| getExpr(): [FunctionCall] call to end -# 2163| Type = [NestedStruct] iterator -# 2163| ValueCategory = prvalue -# 2163| getQualifier(): [VariableAccess] (__range) -# 2163| Type = [LValueReferenceType] vector<int> & -# 2163| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<int>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<int> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<int> -#-----| ValueCategory = lvalue -# 2163| getCondition(): [FunctionCall] call to operator!= -# 2163| Type = [BoolType] bool -# 2163| ValueCategory = prvalue -# 2163| getQualifier(): [VariableAccess] (__begin) -# 2163| Type = [NestedStruct] iterator -# 2163| ValueCategory = lvalue -# 2163| getArgument(0): [VariableAccess] (__end) -# 2163| Type = [NestedStruct] iterator -# 2163| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2163| getUpdate(): [FunctionCall] call to operator++ -# 2163| Type = [LValueReferenceType] iterator & -# 2163| ValueCategory = prvalue -# 2163| getQualifier(): [VariableAccess] (__begin) -# 2163| Type = [NestedStruct] iterator -# 2163| ValueCategory = lvalue -# 2163| getChild(5): [DeclStmt] declaration -# 2163| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2163| Type = [IntType] int -# 2163| getVariable().getInitializer(): [Initializer] initializer for y -# 2163| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2163| Type = [LValueReferenceType] int & -# 2163| ValueCategory = prvalue -# 2163| getQualifier(): [VariableAccess] (__begin) -# 2163| Type = [NestedStruct] iterator -# 2163| ValueCategory = lvalue -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2163| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2163| Type = [IntType] int -# 2163| ValueCategory = prvalue(load) -# 2163| getStmt(): [BlockStmt] { ... } -# 2164| getStmt(0): [IfStmt] if (...) ... -# 2164| getCondition(): [EQExpr] ... == ... -# 2164| Type = [BoolType] bool -# 2164| ValueCategory = prvalue -# 2164| getLeftOperand(): [VariableAccess] y -# 2164| Type = [IntType] int -# 2164| ValueCategory = prvalue(load) -# 2164| getRightOperand(): [Literal] 1 -# 2164| Type = [IntType] int -# 2164| Value = [Literal] 1 -# 2164| ValueCategory = prvalue -# 2165| getThen(): [ReturnStmt] return ... -# 2163| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2163| Type = [VoidType] void -# 2163| ValueCategory = prvalue -# 2163| getQualifier(): [VariableAccess] ys -# 2163| Type = [ClassTemplateInstantiation,Struct] vector<int> -# 2163| ValueCategory = lvalue -# 2172| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor -# 2172| Type = [VoidType] void -# 2172| ValueCategory = prvalue -# 2172| getQualifier(): [VariableAccess] x -# 2172| Type = [Class] ClassWithDestructor -# 2172| ValueCategory = lvalue -# 2163| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2163| Type = [VoidType] void -# 2163| ValueCategory = prvalue -# 2163| getQualifier(): [VariableAccess] ys -# 2163| Type = [ClassTemplateInstantiation,Struct] vector<int> -# 2163| ValueCategory = lvalue -# 2163| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2163| Type = [NestedStruct] iterator -# 2163| ValueCategory = lvalue -# 2168| getStmt(8): [RangeBasedForStmt] for(...:...) ... -# 2168| getInitialization(): [DeclStmt] declaration -# 2168| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys -# 2168| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2168| getVariable().getInitializer(): [Initializer] initializer for ys -# 2168| getExpr(): [ConstructorCall] call to vector -# 2168| Type = [VoidType] void -# 2168| ValueCategory = prvalue -# 2168| getArgument(0): [VariableAccess] x -# 2168| Type = [Class] ClassWithDestructor -# 2168| ValueCategory = prvalue(load) -# 2168| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2168| Type = [Class] ClassWithDestructor -# 2168| ValueCategory = lvalue -# 2168| getChild(1): [DeclStmt] declaration -# 2168| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> & -#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2168| getExpr(): [VariableAccess] ys -# 2168| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2168| ValueCategory = lvalue -# 2168| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2168| ValueCategory = prvalue -# 2168| getBeginEndDeclaration(): [DeclStmt] declaration -# 2168| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2168| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2168| getExpr(): [FunctionCall] call to begin -# 2168| Type = [NestedStruct] iterator -# 2168| ValueCategory = prvalue -# 2168| getQualifier(): [VariableAccess] (__range) -# 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2168| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -# 2168| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2168| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2168| getExpr(): [FunctionCall] call to end -# 2168| Type = [NestedStruct] iterator -# 2168| ValueCategory = prvalue -# 2168| getQualifier(): [VariableAccess] (__range) -# 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> & -# 2168| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -#-----| ValueCategory = lvalue -# 2168| getCondition(): [FunctionCall] call to operator!= -# 2168| Type = [BoolType] bool -# 2168| ValueCategory = prvalue -# 2168| getQualifier(): [VariableAccess] (__begin) -# 2168| Type = [NestedStruct] iterator -# 2168| ValueCategory = lvalue -# 2168| getArgument(0): [VariableAccess] (__end) -# 2168| Type = [NestedStruct] iterator -# 2168| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2168| getUpdate(): [FunctionCall] call to operator++ -# 2168| Type = [LValueReferenceType] iterator & -# 2168| ValueCategory = prvalue -# 2168| getQualifier(): [VariableAccess] (__begin) -# 2168| Type = [NestedStruct] iterator -# 2168| ValueCategory = lvalue -# 2168| getChild(5): [DeclStmt] declaration -# 2168| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2168| Type = [Class] ClassWithDestructor -# 2168| getVariable().getInitializer(): [Initializer] initializer for y -# 2168| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* -# 2168| Type = [LValueReferenceType] ClassWithDestructor & -# 2168| ValueCategory = prvalue -# 2168| getQualifier(): [VariableAccess] (__begin) -# 2168| Type = [NestedStruct] iterator -# 2168| ValueCategory = lvalue -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2168| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2168| Type = [Class] ClassWithDestructor -# 2168| ValueCategory = prvalue(load) -# 2168| getStmt(): [BlockStmt] { ... } -# 2169| getStmt(0): [DeclStmt] declaration -# 2169| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z1 -# 2169| Type = [Class] ClassWithDestructor -# 2169| getVariable().getInitializer(): [Initializer] initializer for z1 -# 2169| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2169| Type = [VoidType] void -# 2169| ValueCategory = prvalue -# 2170| getStmt(1): [DeclStmt] declaration -# 2170| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z2 -# 2170| Type = [Class] ClassWithDestructor -# 2170| getVariable().getInitializer(): [Initializer] initializer for z2 -# 2170| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2170| Type = [VoidType] void -# 2170| ValueCategory = prvalue -# 2171| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2171| Type = [VoidType] void -# 2171| ValueCategory = prvalue -# 2171| getQualifier(): [VariableAccess] z2 -# 2171| Type = [Class] ClassWithDestructor -# 2171| ValueCategory = lvalue -# 2171| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor -# 2171| Type = [VoidType] void -# 2171| ValueCategory = prvalue -# 2171| getQualifier(): [VariableAccess] z1 -# 2171| Type = [Class] ClassWithDestructor -# 2171| ValueCategory = lvalue -# 2168| getImplicitDestructorCall(2): [DestructorCall] call to ~ClassWithDestructor -# 2168| Type = [VoidType] void -# 2168| ValueCategory = prvalue -# 2168| getQualifier(): [VariableAccess] y -# 2168| Type = [Class] ClassWithDestructor -# 2168| ValueCategory = lvalue -# 2168| getImplicitDestructorCall(0): [DestructorCall] call to ~vector -# 2168| Type = [VoidType] void -# 2168| ValueCategory = prvalue -# 2168| getQualifier(): [VariableAccess] ys -# 2168| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> -# 2168| ValueCategory = lvalue -# 2168| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2168| Type = [NestedStruct] iterator -# 2168| ValueCategory = lvalue -# 2172| getStmt(9): [ReturnStmt] return ... -# 2172| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2172| Type = [VoidType] void -# 2172| ValueCategory = prvalue -# 2172| getQualifier(): [VariableAccess] x -# 2172| Type = [Class] ClassWithDestructor +# 2153| getAnElementExpr(1): [Literal] 1 +# 2153| Type = [IntType] int +# 2153| Value = [Literal] 1 +# 2153| ValueCategory = prvalue +# 2153| getAnElementExpr(2): [Literal] 2 +# 2153| Type = [IntType] int +# 2153| Value = [Literal] 2 +# 2153| ValueCategory = prvalue +# 2153| getExtent(): [VariableAccess] n +# 2153| Type = [CTypedefType,Size_t] size_t +# 2153| ValueCategory = prvalue(load) +# 2154| getStmt(6): [ReturnStmt] return ... +# 2156| [TopLevelFunction] double strtod(char const*, char**) +# 2156| <params>: +# 2156| getParameter(0): [Parameter] str +# 2156| Type = [PointerType] const char * +# 2156| getParameter(1): [Parameter] endptr +# 2156| Type = [PointerType] char ** +# 2158| [TopLevelFunction] char* test_strtod(char*) +# 2158| <params>: +# 2158| getParameter(0): [Parameter] s +# 2158| Type = [CharPointerType] char * +# 2158| getEntryPoint(): [BlockStmt] { ... } +# 2159| getStmt(0): [DeclStmt] declaration +# 2159| getDeclarationEntry(0): [VariableDeclarationEntry] definition of end +# 2159| Type = [CharPointerType] char * +# 2160| getStmt(1): [DeclStmt] declaration +# 2160| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 2160| Type = [DoubleType] double +# 2160| getVariable().getInitializer(): [Initializer] initializer for d +# 2160| getExpr(): [FunctionCall] call to strtod +# 2160| Type = [DoubleType] double +# 2160| ValueCategory = prvalue +# 2160| getArgument(0): [VariableAccess] s +# 2160| Type = [CharPointerType] char * +# 2160| ValueCategory = prvalue(load) +# 2160| getArgument(1): [AddressOfExpr] & ... +# 2160| Type = [PointerType] char ** +# 2160| ValueCategory = prvalue +# 2160| getOperand(): [VariableAccess] end +# 2160| Type = [CharPointerType] char * +# 2160| ValueCategory = lvalue +# 2160| getArgument(0).getFullyConverted(): [CStyleCast] (const char *)... +# 2160| Conversion = [PointerConversion] pointer conversion +# 2160| Type = [PointerType] const char * +# 2160| ValueCategory = prvalue +# 2161| getStmt(2): [ReturnStmt] return ... +# 2161| getExpr(): [VariableAccess] end +# 2161| Type = [CharPointerType] char * +# 2161| ValueCategory = prvalue(load) +# 2164| [CopyAssignmentOperator] HasOperatorBool& HasOperatorBool::operator=(HasOperatorBool const&) +# 2164| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const HasOperatorBool & +# 2164| [MoveAssignmentOperator] HasOperatorBool& HasOperatorBool::operator=(HasOperatorBool&&) +# 2164| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] HasOperatorBool && +# 2165| [ConversionOperator] bool HasOperatorBool::operator bool() +# 2165| <params>: +# 2168| [TopLevelFunction] void call_as_child_of_ConditionDeclExpr() +# 2168| <params>: +# 2168| getEntryPoint(): [BlockStmt] { ... } +# 2169| getStmt(0): [IfStmt] if (...) ... +# 2169| getCondition(): [ConditionDeclExpr] (condition decl) +# 2169| Type = [BoolType] bool +# 2169| ValueCategory = prvalue +# 2169| getChild(0): [FunctionCall] call to operator bool +# 2169| Type = [BoolType] bool +# 2169| ValueCategory = prvalue +# 2169| getQualifier(): [VariableAccess] b +# 2169| Type = [Struct] HasOperatorBool +# 2169| ValueCategory = prvalue(load) +# 2169| getThen(): [BlockStmt] { ... } +# 2170| getStmt(1): [ReturnStmt] return ... +# 2172| [CopyAssignmentOperator] ClassWithDestructor& ClassWithDestructor::operator=(ClassWithDestructor const&) +# 2172| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const ClassWithDestructor & +# 2172| [CopyConstructor] void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) +# 2172| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const ClassWithDestructor & +# 2172| <initializations>: +# 2172| getInitializer(0): [ConstructorFieldInit] constructor init of field x +# 2172| Type = [CharPointerType] char * +# 2172| ValueCategory = prvalue +# 2172| getExpr(): [ReferenceFieldAccess] x +# 2172| Type = [CharPointerType] char * +# 2172| ValueCategory = prvalue(load) +# 2172| getQualifier(): [VariableAccess] (unnamed parameter 0) +# 2172| Type = [LValueReferenceType] const ClassWithDestructor & +# 2172| ValueCategory = prvalue(load) +# 2172| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2172| Type = [SpecifiedType] const ClassWithDestructor # 2172| ValueCategory = lvalue -# 2174| [TopLevelFunction] void static_variable_with_destructor_1() -# 2174| <params>: -# 2174| getEntryPoint(): [BlockStmt] { ... } -# 2175| getStmt(0): [DeclStmt] declaration -# 2175| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 2175| Type = [Class] ClassWithDestructor -# 2175| getVariable().getInitializer(): [Initializer] initializer for a -# 2175| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2175| Type = [VoidType] void -# 2175| ValueCategory = prvalue -# 2176| getStmt(1): [DeclStmt] declaration -# 2176| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 2176| Type = [Class] ClassWithDestructor +# 2172| getEntryPoint(): [BlockStmt] { ... } +# 2172| getStmt(0): [ReturnStmt] return ... +# 2175| [Constructor] void ClassWithDestructor::ClassWithDestructor() +# 2175| <params>: +# 2175| <initializations>: +# 2175| getEntryPoint(): [BlockStmt] { ... } +# 2175| getStmt(0): [ExprStmt] ExprStmt +# 2175| getExpr(): [AssignExpr] ... = ... +# 2175| Type = [CharPointerType] char * +# 2175| ValueCategory = lvalue +# 2175| getLValue(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 2175| Type = [CharPointerType] char * +# 2175| ValueCategory = lvalue +# 2175| getQualifier(): [ThisExpr] this +# 2175| Type = [PointerType] ClassWithDestructor * +# 2175| ValueCategory = prvalue(load) +# 2175| getRValue(): [NewExpr] new +# 2175| Type = [CharPointerType] char * +# 2175| ValueCategory = prvalue +# 2175| getStmt(1): [ReturnStmt] return ... +# 2176| [Destructor] void ClassWithDestructor::~ClassWithDestructor() +# 2176| <params>: +# 2176| getEntryPoint(): [BlockStmt] { ... } +# 2176| getStmt(0): [ExprStmt] ExprStmt +# 2176| getExpr(): [DeleteExpr] delete +# 2176| Type = [VoidType] void +# 2176| ValueCategory = prvalue +# 2176| getExpr(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 2176| Type = [CharPointerType] char * +# 2176| ValueCategory = prvalue(load) +# 2176| getQualifier(): [ThisExpr] this +# 2176| Type = [PointerType] ClassWithDestructor * +# 2176| ValueCategory = prvalue(load) +# 2176| getStmt(1): [ReturnStmt] return ... +# 2176| <destructions>: +# 2178| [MemberFunction] void ClassWithDestructor::set_x(char) +# 2178| <params>: +# 2178| getParameter(0): [Parameter] y +# 2178| Type = [PlainCharType] char +# 2178| getEntryPoint(): [BlockStmt] { ... } +# 2178| getStmt(0): [ExprStmt] ExprStmt +# 2178| getExpr(): [AssignExpr] ... = ... +# 2178| Type = [PlainCharType] char +# 2178| ValueCategory = lvalue +# 2178| getLValue(): [PointerDereferenceExpr] * ... +# 2178| Type = [PlainCharType] char +# 2178| ValueCategory = lvalue +# 2178| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 2178| Type = [CharPointerType] char * +# 2178| ValueCategory = prvalue(load) +# 2178| getQualifier(): [ThisExpr] this +# 2178| Type = [PointerType] ClassWithDestructor * +# 2178| ValueCategory = prvalue(load) +# 2178| getRValue(): [VariableAccess] y +# 2178| Type = [PlainCharType] char +# 2178| ValueCategory = prvalue(load) +# 2178| getStmt(1): [ReturnStmt] return ... +# 2179| [MemberFunction] char ClassWithDestructor::get_x() +# 2179| <params>: +# 2179| getEntryPoint(): [BlockStmt] { ... } +# 2179| getStmt(0): [ReturnStmt] return ... +# 2179| getExpr(): [PointerDereferenceExpr] * ... +# 2179| Type = [PlainCharType] char +# 2179| ValueCategory = prvalue(load) +# 2179| getOperand(): [ImplicitThisFieldAccess,PointerFieldAccess] x +# 2179| Type = [CharPointerType] char * +# 2179| ValueCategory = prvalue(load) +# 2179| getQualifier(): [ThisExpr] this +# 2179| Type = [PointerType] ClassWithDestructor * +# 2179| ValueCategory = prvalue(load) +# 2182| [GlobalVariable] bool initialization_with_destructor_bool +# 2182| getInitializer(): [Initializer] initializer for initialization_with_destructor_bool +# 2182| getExpr(): [Literal] 1 +# 2182| Type = [BoolType] bool +# 2182| Value = [Literal] 1 +# 2182| ValueCategory = prvalue +# 2184| [TopLevelFunction] void initialization_with_destructor(bool, char) +# 2184| <params>: +# 2184| getParameter(0): [Parameter] b +# 2184| Type = [BoolType] bool +# 2184| getParameter(1): [Parameter] c +# 2184| Type = [PlainCharType] char +# 2184| getEntryPoint(): [BlockStmt] { ... } +# 2185| getStmt(0): [IfStmt] if (...) ... +# 2185| getInitialization(): [DeclStmt] declaration +# 2185| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2185| Type = [Class] ClassWithDestructor +# 2185| getVariable().getInitializer(): [Initializer] initializer for x +# 2185| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2185| Type = [VoidType] void +# 2185| ValueCategory = prvalue +# 2185| getCondition(): [VariableAccess] b +# 2185| Type = [BoolType] bool +# 2185| ValueCategory = prvalue(load) +# 2186| getThen(): [ExprStmt] ExprStmt +# 2186| getExpr(): [FunctionCall] call to set_x +# 2186| Type = [VoidType] void +# 2186| ValueCategory = prvalue +# 2186| getQualifier(): [VariableAccess] x +# 2186| Type = [Class] ClassWithDestructor +# 2186| ValueCategory = lvalue +# 2186| getArgument(0): [CharLiteral] 97 +# 2186| Type = [PlainCharType] char +# 2186| Value = [CharLiteral] 97 +# 2186| ValueCategory = prvalue +# 2186| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2186| Type = [VoidType] void +# 2186| ValueCategory = prvalue +# 2186| getQualifier(): [VariableAccess] x +# 2186| Type = [Class] ClassWithDestructor +# 2186| ValueCategory = lvalue +# 2188| getStmt(1): [ConstexprIfStmt] if constexpr (...) ... +# 2188| getInitialization(): [DeclStmt] declaration +# 2188| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2188| Type = [Class] ClassWithDestructor +# 2188| getVariable().getInitializer(): [Initializer] initializer for x +# 2188| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2188| Type = [VoidType] void +# 2188| ValueCategory = prvalue +# 2188| getCondition(): [VariableAccess] initialization_with_destructor_bool +# 2188| Type = [BoolType] bool +# 2188| Value = [VariableAccess] 1 +# 2188| ValueCategory = prvalue(load) +# 2189| getThen(): [ExprStmt] ExprStmt +# 2189| getExpr(): [FunctionCall] call to set_x +# 2189| Type = [VoidType] void +# 2189| ValueCategory = prvalue +# 2189| getQualifier(): [VariableAccess] x +# 2189| Type = [Class] ClassWithDestructor +# 2189| ValueCategory = lvalue +# 2189| getArgument(0): [CharLiteral] 97 +# 2189| Type = [PlainCharType] char +# 2189| Value = [CharLiteral] 97 +# 2189| ValueCategory = prvalue +# 2189| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2189| Type = [VoidType] void +# 2189| ValueCategory = prvalue +# 2189| getQualifier(): [VariableAccess] x +# 2189| Type = [Class] ClassWithDestructor +# 2189| ValueCategory = lvalue +# 2191| getStmt(2): [SwitchStmt] switch (...) ... +# 2191| getInitialization(): [DeclStmt] declaration +# 2191| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2191| Type = [Class] ClassWithDestructor +# 2191| getVariable().getInitializer(): [Initializer] initializer for x +# 2191| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2191| Type = [VoidType] void +# 2191| ValueCategory = prvalue +# 2191| getExpr(): [VariableAccess] c +# 2191| Type = [PlainCharType] char +# 2191| ValueCategory = prvalue(load) +# 2191| getStmt(): [BlockStmt] { ... } +# 2192| getStmt(0): [SwitchCase] case ...: +# 2192| getExpr(): [CharLiteral] 97 +# 2192| Type = [PlainCharType] char +# 2192| Value = [CharLiteral] 97 +# 2192| ValueCategory = prvalue +# 2192| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2192| Conversion = [IntegralConversion] integral conversion +# 2192| Type = [IntType] int +# 2192| Value = [CStyleCast] 97 +# 2192| ValueCategory = prvalue +# 2193| getStmt(1): [ExprStmt] ExprStmt +# 2193| getExpr(): [FunctionCall] call to set_x +# 2193| Type = [VoidType] void +# 2193| ValueCategory = prvalue +# 2193| getQualifier(): [VariableAccess] x +# 2193| Type = [Class] ClassWithDestructor +# 2193| ValueCategory = lvalue +# 2193| getArgument(0): [CharLiteral] 97 +# 2193| Type = [PlainCharType] char +# 2193| Value = [CharLiteral] 97 +# 2193| ValueCategory = prvalue +# 2194| getStmt(2): [BreakStmt] break; +# 2195| getStmt(3): [SwitchCase] default: +# 2196| getStmt(4): [ExprStmt] ExprStmt +# 2196| getExpr(): [FunctionCall] call to set_x +# 2196| Type = [VoidType] void +# 2196| ValueCategory = prvalue +# 2196| getQualifier(): [VariableAccess] x +# 2196| Type = [Class] ClassWithDestructor +# 2196| ValueCategory = lvalue +# 2196| getArgument(0): [CharLiteral] 98 +# 2196| Type = [PlainCharType] char +# 2196| Value = [CharLiteral] 98 +# 2196| ValueCategory = prvalue +# 2197| getStmt(5): [BreakStmt] break; +# 2198| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2198| Type = [VoidType] void +# 2198| ValueCategory = prvalue +# 2198| getQualifier(): [VariableAccess] x +# 2198| Type = [Class] ClassWithDestructor +# 2198| ValueCategory = lvalue +# 2191| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2191| Conversion = [IntegralConversion] integral conversion +# 2191| Type = [IntType] int +# 2191| ValueCategory = prvalue +# 2198| getStmt(3): [LabelStmt] label ...: +# 2200| getStmt(4): [DeclStmt] declaration +# 2200| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2200| Type = [Class] ClassWithDestructor +# 2200| getVariable().getInitializer(): [Initializer] initializer for x +# 2200| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2200| Type = [VoidType] void +# 2200| ValueCategory = prvalue +# 2201| getStmt(5): [RangeBasedForStmt] for(...:...) ... +# 2201| getInitialization(): [DeclStmt] declaration +# 2201| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys +# 2201| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2201| getVariable().getInitializer(): [Initializer] initializer for ys +# 2201| getExpr(): [ConstructorCall] call to vector +# 2201| Type = [VoidType] void +# 2201| ValueCategory = prvalue +# 2201| getArgument(0): [VariableAccess] x +# 2201| Type = [Class] ClassWithDestructor +# 2201| ValueCategory = prvalue(load) +# 2201| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2201| Type = [Class] ClassWithDestructor +# 2201| ValueCategory = lvalue +# 2201| getChild(1): [DeclStmt] declaration +# 2201| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2201| Type = [LValueReferenceType] vector<ClassWithDestructor> & +#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) +# 2201| getExpr(): [VariableAccess] ys +# 2201| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2201| ValueCategory = lvalue +# 2201| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2201| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2201| ValueCategory = prvalue +# 2201| getBeginEndDeclaration(): [DeclStmt] declaration +# 2201| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2201| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) +# 2201| getExpr(): [FunctionCall] call to begin +# 2201| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [VariableAccess] (__range) +# 2201| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2201| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +# 2201| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2201| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) +# 2201| getExpr(): [FunctionCall] call to end +# 2201| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [VariableAccess] (__range) +# 2201| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2201| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +# 2201| getCondition(): [FunctionCall] call to operator!= +# 2201| Type = [BoolType] bool +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [VariableAccess] (__begin) +# 2201| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2201| ValueCategory = lvalue +# 2201| getArgument(0): [ConstructorCall] call to iterator +# 2201| Type = [VoidType] void +# 2201| ValueCategory = prvalue +# 2201| getArgument(0): [VariableAccess] (__end) +# 2201| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2201| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> & +#-----| ValueCategory = prvalue +#-----| getExpr(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +# 2201| getUpdate(): [FunctionCall] call to operator++ +# 2201| Type = [LValueReferenceType] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> & +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [VariableAccess] (__begin) +# 2201| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2201| ValueCategory = lvalue +# 2201| getChild(5): [DeclStmt] declaration +# 2201| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2201| Type = [Class] ClassWithDestructor +# 2201| getVariable().getInitializer(): [Initializer] initializer for y +# 2201| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2201| Type = [LValueReferenceType] ClassWithDestructor & +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [VariableAccess] (__begin) +# 2201| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2201| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +# 2201| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2201| Type = [Class] ClassWithDestructor +# 2201| ValueCategory = prvalue(load) +# 2202| getStmt(): [ExprStmt] ExprStmt +# 2202| getExpr(): [FunctionCall] call to set_x +# 2202| Type = [VoidType] void +# 2202| ValueCategory = prvalue +# 2202| getQualifier(): [VariableAccess] y +# 2202| Type = [Class] ClassWithDestructor +# 2202| ValueCategory = lvalue +# 2202| getArgument(0): [CharLiteral] 97 +# 2202| Type = [PlainCharType] char +# 2202| Value = [CharLiteral] 97 +# 2202| ValueCategory = prvalue +# 2201| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2201| Type = [VoidType] void +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [VariableAccess] y +# 2201| Type = [Class] ClassWithDestructor +# 2201| ValueCategory = lvalue +# 2201| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2201| Type = [VoidType] void +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [VariableAccess] ys +# 2201| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2201| ValueCategory = lvalue +# 2201| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2201| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +# 2201| ValueCategory = lvalue +# 2204| getStmt(6): [RangeBasedForStmt] for(...:...) ... +# 2204| getInitialization(): [DeclStmt] declaration +# 2204| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys +# 2204| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2204| getVariable().getInitializer(): [Initializer] initializer for ys +# 2204| getExpr(): [ConstructorCall] call to vector +# 2204| Type = [VoidType] void +# 2204| ValueCategory = prvalue +# 2204| getArgument(0): [VariableAccess] x +# 2204| Type = [Class] ClassWithDestructor +# 2204| ValueCategory = prvalue(load) +# 2204| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2204| Type = [Class] ClassWithDestructor +# 2204| ValueCategory = lvalue +# 2204| getChild(1): [DeclStmt] declaration +# 2204| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2204| Type = [LValueReferenceType] vector<ClassWithDestructor> & +#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) +# 2204| getExpr(): [VariableAccess] ys +# 2204| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2204| ValueCategory = lvalue +# 2204| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2204| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2204| ValueCategory = prvalue +# 2204| getBeginEndDeclaration(): [DeclStmt] declaration +# 2204| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2204| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) +# 2204| getExpr(): [FunctionCall] call to begin +# 2204| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] (__range) +# 2204| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2204| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +# 2204| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2204| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) +# 2204| getExpr(): [FunctionCall] call to end +# 2204| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] (__range) +# 2204| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2204| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +# 2204| getCondition(): [FunctionCall] call to operator!= +# 2204| Type = [BoolType] bool +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] (__begin) +# 2204| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2204| ValueCategory = lvalue +# 2204| getArgument(0): [ConstructorCall] call to iterator +# 2204| Type = [VoidType] void +# 2204| ValueCategory = prvalue +# 2204| getArgument(0): [VariableAccess] (__end) +# 2204| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2204| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> & +#-----| ValueCategory = prvalue +#-----| getExpr(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +# 2204| getUpdate(): [FunctionCall] call to operator++ +# 2204| Type = [LValueReferenceType] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> & +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] (__begin) +# 2204| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2204| ValueCategory = lvalue +# 2204| getChild(5): [DeclStmt] declaration +# 2204| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2204| Type = [Class] ClassWithDestructor +# 2204| getVariable().getInitializer(): [Initializer] initializer for y +# 2204| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2204| Type = [LValueReferenceType] ClassWithDestructor & +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] (__begin) +# 2204| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2204| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +# 2204| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2204| Type = [Class] ClassWithDestructor +# 2204| ValueCategory = prvalue(load) +# 2204| getStmt(): [BlockStmt] { ... } +# 2205| getStmt(0): [ExprStmt] ExprStmt +# 2205| getExpr(): [FunctionCall] call to set_x +# 2205| Type = [VoidType] void +# 2205| ValueCategory = prvalue +# 2205| getQualifier(): [VariableAccess] y +# 2205| Type = [Class] ClassWithDestructor +# 2205| ValueCategory = lvalue +# 2205| getArgument(0): [CharLiteral] 97 +# 2205| Type = [PlainCharType] char +# 2205| Value = [CharLiteral] 97 +# 2205| ValueCategory = prvalue +# 2206| getStmt(1): [IfStmt] if (...) ... +# 2206| getCondition(): [EQExpr] ... == ... +# 2206| Type = [BoolType] bool +# 2206| ValueCategory = prvalue +# 2206| getLeftOperand(): [FunctionCall] call to get_x +# 2206| Type = [PlainCharType] char +# 2206| ValueCategory = prvalue +# 2206| getQualifier(): [VariableAccess] y +# 2206| Type = [Class] ClassWithDestructor +# 2206| ValueCategory = lvalue +# 2206| getRightOperand(): [CharLiteral] 98 +# 2206| Type = [PlainCharType] char +# 2206| Value = [CharLiteral] 98 +# 2206| ValueCategory = prvalue +# 2206| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... +# 2206| Conversion = [IntegralConversion] integral conversion +# 2206| Type = [IntType] int +# 2206| ValueCategory = prvalue +# 2206| getRightOperand().getFullyConverted(): [CStyleCast] (int)... +# 2206| Conversion = [IntegralConversion] integral conversion +# 2206| Type = [IntType] int +# 2206| Value = [CStyleCast] 98 +# 2206| ValueCategory = prvalue +# 2207| getThen(): [ReturnStmt] return ... +# 2204| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2204| Type = [VoidType] void +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] y +# 2204| Type = [Class] ClassWithDestructor +# 2204| ValueCategory = lvalue +# 2204| getImplicitDestructorCall(1): [DestructorCall] call to ~vector +# 2204| Type = [VoidType] void +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] ys +# 2204| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2204| ValueCategory = lvalue +# 2219| getImplicitDestructorCall(2): [DestructorCall] call to ~ClassWithDestructor +# 2219| Type = [VoidType] void +# 2219| ValueCategory = prvalue +# 2219| getQualifier(): [VariableAccess] x +# 2219| Type = [Class] ClassWithDestructor +# 2219| ValueCategory = lvalue +# 2204| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2204| Type = [VoidType] void +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] y +# 2204| Type = [Class] ClassWithDestructor +# 2204| ValueCategory = lvalue +# 2204| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2204| Type = [VoidType] void +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] ys +# 2204| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2204| ValueCategory = lvalue +# 2204| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2204| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +# 2204| ValueCategory = lvalue +# 2210| getStmt(7): [RangeBasedForStmt] for(...:...) ... +# 2210| getInitialization(): [DeclStmt] declaration +# 2210| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys +# 2210| Type = [ClassTemplateInstantiation,Struct] vector<int> +# 2210| getVariable().getInitializer(): [Initializer] initializer for ys +# 2210| getExpr(): [ConstructorCall] call to vector +# 2210| Type = [VoidType] void +# 2210| ValueCategory = prvalue +# 2210| getArgument(0): [Literal] 1 +# 2210| Type = [IntType] int +# 2210| Value = [Literal] 1 +# 2210| ValueCategory = prvalue +# 2210| getChild(1): [DeclStmt] declaration +# 2210| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2210| Type = [LValueReferenceType] vector<int> & +#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) +# 2210| getExpr(): [VariableAccess] ys +# 2210| Type = [ClassTemplateInstantiation,Struct] vector<int> +# 2210| ValueCategory = lvalue +# 2210| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2210| Type = [LValueReferenceType] vector<int> & +# 2210| ValueCategory = prvalue +# 2210| getBeginEndDeclaration(): [DeclStmt] declaration +# 2210| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2210| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) +# 2210| getExpr(): [FunctionCall] call to begin +# 2210| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] (__range) +# 2210| Type = [LValueReferenceType] vector<int> & +# 2210| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<int>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<int> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<int> +#-----| ValueCategory = lvalue +# 2210| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2210| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) +# 2210| getExpr(): [FunctionCall] call to end +# 2210| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] (__range) +# 2210| Type = [LValueReferenceType] vector<int> & +# 2210| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<int>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<int> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<int> +#-----| ValueCategory = lvalue +# 2210| getCondition(): [FunctionCall] call to operator!= +# 2210| Type = [BoolType] bool +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] (__begin) +# 2210| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2210| ValueCategory = lvalue +# 2210| getArgument(0): [ConstructorCall] call to iterator +# 2210| Type = [VoidType] void +# 2210| ValueCategory = prvalue +# 2210| getArgument(0): [VariableAccess] (__end) +# 2210| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2210| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> & +#-----| ValueCategory = prvalue +#-----| getExpr(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +# 2210| getUpdate(): [FunctionCall] call to operator++ +# 2210| Type = [LValueReferenceType] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> & +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] (__begin) +# 2210| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2210| ValueCategory = lvalue +# 2210| getChild(5): [DeclStmt] declaration +# 2210| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2210| Type = [IntType] int +# 2210| getVariable().getInitializer(): [Initializer] initializer for y +# 2210| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2210| Type = [LValueReferenceType] int & +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] (__begin) +# 2210| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2210| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +#-----| ValueCategory = lvalue +# 2210| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2210| Type = [IntType] int +# 2210| ValueCategory = prvalue(load) +# 2210| getStmt(): [BlockStmt] { ... } +# 2211| getStmt(0): [IfStmt] if (...) ... +# 2211| getCondition(): [EQExpr] ... == ... +# 2211| Type = [BoolType] bool +# 2211| ValueCategory = prvalue +# 2211| getLeftOperand(): [VariableAccess] y +# 2211| Type = [IntType] int +# 2211| ValueCategory = prvalue(load) +# 2211| getRightOperand(): [Literal] 1 +# 2211| Type = [IntType] int +# 2211| Value = [Literal] 1 +# 2211| ValueCategory = prvalue +# 2212| getThen(): [ReturnStmt] return ... +# 2210| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2210| Type = [VoidType] void +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] ys +# 2210| Type = [ClassTemplateInstantiation,Struct] vector<int> +# 2210| ValueCategory = lvalue +# 2219| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor +# 2219| Type = [VoidType] void +# 2219| ValueCategory = prvalue +# 2219| getQualifier(): [VariableAccess] x +# 2219| Type = [Class] ClassWithDestructor +# 2219| ValueCategory = lvalue +# 2210| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2210| Type = [VoidType] void +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] ys +# 2210| Type = [ClassTemplateInstantiation,Struct] vector<int> +# 2210| ValueCategory = lvalue +# 2210| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2210| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> +# 2210| ValueCategory = lvalue +# 2215| getStmt(8): [RangeBasedForStmt] for(...:...) ... +# 2215| getInitialization(): [DeclStmt] declaration +# 2215| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys +# 2215| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2215| getVariable().getInitializer(): [Initializer] initializer for ys +# 2215| getExpr(): [ConstructorCall] call to vector +# 2215| Type = [VoidType] void +# 2215| ValueCategory = prvalue +# 2215| getArgument(0): [VariableAccess] x +# 2215| Type = [Class] ClassWithDestructor +# 2215| ValueCategory = prvalue(load) +# 2215| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2215| Type = [Class] ClassWithDestructor +# 2215| ValueCategory = lvalue +# 2215| getChild(1): [DeclStmt] declaration +# 2215| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2215| Type = [LValueReferenceType] vector<ClassWithDestructor> & +#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) +# 2215| getExpr(): [VariableAccess] ys +# 2215| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2215| ValueCategory = lvalue +# 2215| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2215| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2215| ValueCategory = prvalue +# 2215| getBeginEndDeclaration(): [DeclStmt] declaration +# 2215| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2215| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) +# 2215| getExpr(): [FunctionCall] call to begin +# 2215| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] (__range) +# 2215| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2215| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +# 2215| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2215| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) +# 2215| getExpr(): [FunctionCall] call to end +# 2215| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] (__range) +# 2215| Type = [LValueReferenceType] vector<ClassWithDestructor> & +# 2215| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +#-----| ValueCategory = lvalue +# 2215| getCondition(): [FunctionCall] call to operator!= +# 2215| Type = [BoolType] bool +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] (__begin) +# 2215| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2215| ValueCategory = lvalue +# 2215| getArgument(0): [ConstructorCall] call to iterator +# 2215| Type = [VoidType] void +# 2215| ValueCategory = prvalue +# 2215| getArgument(0): [VariableAccess] (__end) +# 2215| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2215| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> & +#-----| ValueCategory = prvalue +#-----| getExpr(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +# 2215| getUpdate(): [FunctionCall] call to operator++ +# 2215| Type = [LValueReferenceType] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> & +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] (__begin) +# 2215| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2215| ValueCategory = lvalue +# 2215| getChild(5): [DeclStmt] declaration +# 2215| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2215| Type = [Class] ClassWithDestructor +# 2215| getVariable().getInitializer(): [Initializer] initializer for y +# 2215| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2215| Type = [LValueReferenceType] ClassWithDestructor & +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] (__begin) +# 2215| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2215| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +#-----| ValueCategory = lvalue +# 2215| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2215| Type = [Class] ClassWithDestructor +# 2215| ValueCategory = prvalue(load) +# 2215| getStmt(): [BlockStmt] { ... } +# 2216| getStmt(0): [DeclStmt] declaration +# 2216| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z1 +# 2216| Type = [Class] ClassWithDestructor +# 2216| getVariable().getInitializer(): [Initializer] initializer for z1 +# 2216| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2216| Type = [VoidType] void +# 2216| ValueCategory = prvalue +# 2217| getStmt(1): [DeclStmt] declaration +# 2217| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z2 +# 2217| Type = [Class] ClassWithDestructor +# 2217| getVariable().getInitializer(): [Initializer] initializer for z2 +# 2217| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2217| Type = [VoidType] void +# 2217| ValueCategory = prvalue +# 2218| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2218| Type = [VoidType] void +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] z2 +# 2218| Type = [Class] ClassWithDestructor +# 2218| ValueCategory = lvalue +# 2218| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor +# 2218| Type = [VoidType] void +# 2218| ValueCategory = prvalue +# 2218| getQualifier(): [VariableAccess] z1 +# 2218| Type = [Class] ClassWithDestructor +# 2218| ValueCategory = lvalue +# 2215| getImplicitDestructorCall(2): [DestructorCall] call to ~ClassWithDestructor +# 2215| Type = [VoidType] void +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] y +# 2215| Type = [Class] ClassWithDestructor +# 2215| ValueCategory = lvalue +# 2215| getImplicitDestructorCall(0): [DestructorCall] call to ~vector +# 2215| Type = [VoidType] void +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [VariableAccess] ys +# 2215| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor> +# 2215| ValueCategory = lvalue +# 2215| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2215| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> +# 2215| ValueCategory = lvalue +# 2219| getStmt(9): [ReturnStmt] return ... +# 2219| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2219| Type = [VoidType] void +# 2219| ValueCategory = prvalue +# 2219| getQualifier(): [VariableAccess] x +# 2219| Type = [Class] ClassWithDestructor +# 2219| ValueCategory = lvalue +# 2221| [TopLevelFunction] void static_variable_with_destructor_1() +# 2221| <params>: +# 2221| getEntryPoint(): [BlockStmt] { ... } +# 2222| getStmt(0): [DeclStmt] declaration +# 2222| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 2222| Type = [Class] ClassWithDestructor +# 2222| getVariable().getInitializer(): [Initializer] initializer for a +# 2222| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2222| Type = [VoidType] void +# 2222| ValueCategory = prvalue +# 2223| getStmt(1): [DeclStmt] declaration +# 2223| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 2223| Type = [Class] ClassWithDestructor #-----| getVariable().getInitializer(): [Initializer] initializer for b #-----| getExpr(): [ConstructorCall] call to ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue -# 2177| getStmt(2): [ReturnStmt] return ... -# 2177| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2177| Type = [VoidType] void -# 2177| ValueCategory = prvalue -# 2177| getQualifier(): [VariableAccess] a -# 2177| Type = [Class] ClassWithDestructor -# 2177| ValueCategory = lvalue -# 2179| [TopLevelFunction] void static_variable_with_destructor_2() -# 2179| <params>: -# 2179| getEntryPoint(): [BlockStmt] { ... } -# 2180| getStmt(0): [DeclStmt] declaration -# 2180| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 2180| Type = [Class] ClassWithDestructor +# 2224| getStmt(2): [ReturnStmt] return ... +# 2224| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2224| Type = [VoidType] void +# 2224| ValueCategory = prvalue +# 2224| getQualifier(): [VariableAccess] a +# 2224| Type = [Class] ClassWithDestructor +# 2224| ValueCategory = lvalue +# 2226| [TopLevelFunction] void static_variable_with_destructor_2() +# 2226| <params>: +# 2226| getEntryPoint(): [BlockStmt] { ... } +# 2227| getStmt(0): [DeclStmt] declaration +# 2227| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 2227| Type = [Class] ClassWithDestructor #-----| getVariable().getInitializer(): [Initializer] initializer for a #-----| getExpr(): [ConstructorCall] call to ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue -# 2181| getStmt(1): [DeclStmt] declaration -# 2181| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 2181| Type = [Class] ClassWithDestructor -# 2181| getVariable().getInitializer(): [Initializer] initializer for b -# 2181| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2181| Type = [VoidType] void -# 2181| ValueCategory = prvalue -# 2182| getStmt(2): [ReturnStmt] return ... -# 2182| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2182| Type = [VoidType] void -# 2182| ValueCategory = prvalue -# 2182| getQualifier(): [VariableAccess] b -# 2182| Type = [Class] ClassWithDestructor -# 2182| ValueCategory = lvalue -# 2184| [TopLevelFunction] void static_variable_with_destructor_3() -# 2184| <params>: -# 2184| getEntryPoint(): [BlockStmt] { ... } -# 2185| getStmt(0): [DeclStmt] declaration -# 2185| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a -# 2185| Type = [Class] ClassWithDestructor -# 2185| getVariable().getInitializer(): [Initializer] initializer for a -# 2185| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2185| Type = [VoidType] void -# 2185| ValueCategory = prvalue -# 2186| getStmt(1): [DeclStmt] declaration -# 2186| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b -# 2186| Type = [Class] ClassWithDestructor -# 2186| getVariable().getInitializer(): [Initializer] initializer for b -# 2186| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2186| Type = [VoidType] void -# 2186| ValueCategory = prvalue -# 2187| getStmt(2): [DeclStmt] declaration -# 2187| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2187| Type = [Class] ClassWithDestructor +# 2228| getStmt(1): [DeclStmt] declaration +# 2228| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 2228| Type = [Class] ClassWithDestructor +# 2228| getVariable().getInitializer(): [Initializer] initializer for b +# 2228| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2228| Type = [VoidType] void +# 2228| ValueCategory = prvalue +# 2229| getStmt(2): [ReturnStmt] return ... +# 2229| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2229| Type = [VoidType] void +# 2229| ValueCategory = prvalue +# 2229| getQualifier(): [VariableAccess] b +# 2229| Type = [Class] ClassWithDestructor +# 2229| ValueCategory = lvalue +# 2231| [TopLevelFunction] void static_variable_with_destructor_3() +# 2231| <params>: +# 2231| getEntryPoint(): [BlockStmt] { ... } +# 2232| getStmt(0): [DeclStmt] declaration +# 2232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a +# 2232| Type = [Class] ClassWithDestructor +# 2232| getVariable().getInitializer(): [Initializer] initializer for a +# 2232| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2232| Type = [VoidType] void +# 2232| ValueCategory = prvalue +# 2233| getStmt(1): [DeclStmt] declaration +# 2233| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b +# 2233| Type = [Class] ClassWithDestructor +# 2233| getVariable().getInitializer(): [Initializer] initializer for b +# 2233| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2233| Type = [VoidType] void +# 2233| ValueCategory = prvalue +# 2234| getStmt(2): [DeclStmt] declaration +# 2234| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2234| Type = [Class] ClassWithDestructor #-----| getVariable().getInitializer(): [Initializer] initializer for c #-----| getExpr(): [ConstructorCall] call to ClassWithDestructor #-----| Type = [VoidType] void #-----| ValueCategory = prvalue -# 2188| getStmt(3): [ReturnStmt] return ... -# 2188| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2188| Type = [VoidType] void -# 2188| ValueCategory = prvalue -# 2188| getQualifier(): [VariableAccess] b -# 2188| Type = [Class] ClassWithDestructor -# 2188| ValueCategory = lvalue -# 2188| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor -# 2188| Type = [VoidType] void -# 2188| ValueCategory = prvalue -# 2188| getQualifier(): [VariableAccess] a -# 2188| Type = [Class] ClassWithDestructor -# 2188| ValueCategory = lvalue -# 2190| [GlobalVariable] ClassWithDestructor global_class_with_destructor -# 2190| getInitializer(): [Initializer] initializer for global_class_with_destructor -# 2190| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2190| Type = [VoidType] void -# 2190| ValueCategory = prvalue -# 2194| [FunctionTemplateInstantiation,TopLevelFunction] ClassWithDestructor& vacuous_destructor_call::get<ClassWithDestructor>(ClassWithDestructor&) -# 2194| <params>: -# 2194| getParameter(0): [Parameter] t -# 2194| Type = [LValueReferenceType] ClassWithDestructor & -# 2194| getEntryPoint(): [BlockStmt] { ... } -# 2194| getStmt(0): [ReturnStmt] return ... -# 2194| getExpr(): [VariableAccess] t -# 2194| Type = [LValueReferenceType] ClassWithDestructor & -# 2194| ValueCategory = prvalue(load) -# 2194| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2194| Type = [LValueReferenceType] ClassWithDestructor & -# 2194| ValueCategory = prvalue -# 2194| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2194| Type = [Class] ClassWithDestructor -# 2194| ValueCategory = lvalue -# 2194| [TemplateFunction,TopLevelFunction] T& vacuous_destructor_call::get<T>(T&) -# 2194| <params>: -# 2194| getParameter(0): [Parameter] t -# 2194| Type = [LValueReferenceType] T & -# 2194| getEntryPoint(): [BlockStmt] { ... } -# 2194| getStmt(0): [ReturnStmt] return ... -# 2194| getExpr(): [VariableAccess] t -# 2194| Type = [LValueReferenceType] T & -# 2194| ValueCategory = prvalue(load) -# 2194| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2194| Type = [TemplateParameter] T -# 2194| ValueCategory = lvalue -# 2194| [FunctionTemplateInstantiation,TopLevelFunction] int& vacuous_destructor_call::get<int>(int&) -# 2194| <params>: -# 2194| getParameter(0): [Parameter] t -# 2194| Type = [LValueReferenceType] int & -# 2194| getEntryPoint(): [BlockStmt] { ... } -# 2194| getStmt(0): [ReturnStmt] return ... -# 2194| getExpr(): [VariableAccess] t -# 2194| Type = [LValueReferenceType] int & -# 2194| ValueCategory = prvalue(load) -# 2194| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2194| Type = [LValueReferenceType] int & -# 2194| ValueCategory = prvalue -# 2194| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2194| Type = [IntType] int -# 2194| ValueCategory = lvalue -# 2197| [FunctionTemplateInstantiation,TopLevelFunction] void vacuous_destructor_call::call_destructor<ClassWithDestructor>(ClassWithDestructor&) -# 2197| <params>: -# 2197| getParameter(0): [Parameter] t -# 2197| Type = [LValueReferenceType] ClassWithDestructor & -# 2197| getEntryPoint(): [BlockStmt] { ... } -# 2198| getStmt(0): [ExprStmt] ExprStmt -# 2198| getExpr(): [DestructorCall] call to ~ClassWithDestructor -# 2198| Type = [VoidType] void -# 2198| ValueCategory = prvalue -# 2198| getQualifier(): [FunctionCall] call to get -# 2198| Type = [LValueReferenceType] ClassWithDestructor & -# 2198| ValueCategory = prvalue -# 2198| getArgument(0): [VariableAccess] t -# 2198| Type = [LValueReferenceType] ClassWithDestructor & -# 2198| ValueCategory = prvalue(load) -# 2198| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2198| Type = [LValueReferenceType] ClassWithDestructor & -# 2198| ValueCategory = prvalue -# 2198| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2198| Type = [Class] ClassWithDestructor -# 2198| ValueCategory = lvalue -# 2198| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2198| Type = [Class] ClassWithDestructor -# 2198| ValueCategory = lvalue -# 2199| getStmt(1): [ReturnStmt] return ... -# 2197| [TemplateFunction,TopLevelFunction] void vacuous_destructor_call::call_destructor<T>(T&) -# 2197| <params>: -# 2197| getParameter(0): [Parameter] t -# 2197| Type = [LValueReferenceType] T & -# 2197| getEntryPoint(): [BlockStmt] { ... } -# 2198| getStmt(0): [ExprStmt] ExprStmt -# 2198| getExpr(): [ExprCall] call to expression -# 2198| Type = [UnknownType] unknown -# 2198| ValueCategory = prvalue -# 2198| getExpr(): [Literal] Unknown literal -# 2198| Type = [UnknownType] unknown -# 2198| ValueCategory = prvalue -# 2198| getChild(-1): [ExprCall] call to expression -# 2198| Type = [UnknownType] unknown -# 2198| ValueCategory = prvalue -# 2198| getExpr(): [Literal] Unknown literal -# 2198| Type = [UnknownType] unknown -# 2198| ValueCategory = prvalue -# 2198| getArgument(0): [VariableAccess] t -# 2198| Type = [LValueReferenceType] T & -# 2198| ValueCategory = prvalue(load) -# 2198| getArgument(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2198| Type = [TemplateParameter] T -# 2198| ValueCategory = lvalue -# 2199| getStmt(1): [ReturnStmt] return ... -# 2197| [FunctionTemplateInstantiation,TopLevelFunction] void vacuous_destructor_call::call_destructor<int>(int&) -# 2197| <params>: -# 2197| getParameter(0): [Parameter] t -# 2197| Type = [LValueReferenceType] int & -# 2197| getEntryPoint(): [BlockStmt] { ... } -# 2198| getStmt(0): [ExprStmt] ExprStmt -# 2198| getExpr(): [VacuousDestructorCall] (vacuous destructor call) -# 2198| Type = [VoidType] void -# 2198| ValueCategory = prvalue -# 2198| getChild(0): [FunctionCall] call to get -# 2198| Type = [LValueReferenceType] int & -# 2198| ValueCategory = prvalue -# 2198| getArgument(0): [VariableAccess] t -# 2198| Type = [LValueReferenceType] int & -# 2198| ValueCategory = prvalue(load) -# 2198| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2198| Type = [LValueReferenceType] int & -# 2198| ValueCategory = prvalue -# 2198| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2198| Type = [IntType] int -# 2198| ValueCategory = lvalue -# 2198| getChild(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2198| Type = [IntType] int -# 2198| ValueCategory = lvalue -# 2199| getStmt(1): [ReturnStmt] return ... -# 2201| [TopLevelFunction] void vacuous_destructor_call::non_vacuous_destructor_call() -# 2201| <params>: -# 2201| getEntryPoint(): [BlockStmt] { ... } -# 2202| getStmt(0): [DeclStmt] declaration -# 2202| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2202| Type = [Class] ClassWithDestructor -# 2202| getVariable().getInitializer(): [Initializer] initializer for c -# 2202| getExpr(): [ConstructorCall] call to ClassWithDestructor -# 2202| Type = [VoidType] void -# 2202| ValueCategory = prvalue -# 2203| getStmt(1): [ExprStmt] ExprStmt -# 2203| getExpr(): [FunctionCall] call to call_destructor -# 2203| Type = [VoidType] void -# 2203| ValueCategory = prvalue -# 2203| getArgument(0): [VariableAccess] c -# 2203| Type = [Class] ClassWithDestructor -# 2203| ValueCategory = lvalue -# 2203| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2203| Type = [LValueReferenceType] ClassWithDestructor & -# 2203| ValueCategory = prvalue -# 2204| getStmt(2): [ReturnStmt] return ... -# 2204| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor -# 2204| Type = [VoidType] void -# 2204| ValueCategory = prvalue -# 2204| getQualifier(): [VariableAccess] c -# 2204| Type = [Class] ClassWithDestructor -# 2204| ValueCategory = lvalue -# 2206| [TopLevelFunction] void vacuous_destructor_call::vacuous_destructor_call() -# 2206| <params>: -# 2206| getEntryPoint(): [BlockStmt] { ... } -# 2207| getStmt(0): [DeclStmt] declaration -# 2207| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i -# 2207| Type = [IntType] int -# 2208| getStmt(1): [ExprStmt] ExprStmt -# 2208| getExpr(): [FunctionCall] call to call_destructor -# 2208| Type = [VoidType] void -# 2208| ValueCategory = prvalue -# 2208| getArgument(0): [VariableAccess] i -# 2208| Type = [IntType] int -# 2208| ValueCategory = lvalue -# 2208| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2208| Type = [LValueReferenceType] int & -# 2208| ValueCategory = prvalue -# 2209| getStmt(2): [ReturnStmt] return ... -# 2212| [TopLevelFunction] void TryCatchDestructors(bool) -# 2212| <params>: -# 2212| getParameter(0): [Parameter] b -# 2212| Type = [BoolType] bool -# 2212| getEntryPoint(): [BlockStmt] { ... } -# 2213| getStmt(0): [TryStmt] try { ... } -# 2213| getStmt(): [BlockStmt] { ... } -# 2214| getStmt(0): [DeclStmt] declaration -# 2214| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2214| Type = [Struct] String -# 2214| getVariable().getInitializer(): [Initializer] initializer for s -# 2214| getExpr(): [ConstructorCall] call to String -# 2214| Type = [VoidType] void -# 2214| ValueCategory = prvalue -# 2215| getStmt(1): [IfStmt] if (...) ... -# 2215| getCondition(): [VariableAccess] b -# 2215| Type = [BoolType] bool -# 2215| ValueCategory = prvalue(load) -# 2215| getThen(): [BlockStmt] { ... } -# 2216| getStmt(0): [ExprStmt] ExprStmt -# 2216| getExpr(): [ThrowExpr] throw ... -# 2216| Type = [PointerType] const char * -# 2216| ValueCategory = prvalue -# 2216| getExpr(): string literal -# 2216| Type = [ArrayType] const char[15] -# 2216| Value = [StringLiteral] "string literal" -# 2216| ValueCategory = lvalue -# 2219| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] s -# 2219| Type = [Struct] String -# 2219| ValueCategory = lvalue -# 2216| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2216| Type = [PointerType] const char * -# 2216| ValueCategory = prvalue -# 2218| getStmt(2): [DeclStmt] declaration -# 2218| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2218| Type = [Struct] String -# 2218| getVariable().getInitializer(): [Initializer] initializer for s2 -# 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] s2 -# 2219| Type = [Struct] String -# 2219| ValueCategory = lvalue -# 2219| getImplicitDestructorCall(1): [DestructorCall] call to ~String -# 2219| Type = [VoidType] void -# 2219| ValueCategory = prvalue -# 2219| getQualifier(): [VariableAccess] s -# 2219| Type = [Struct] String -# 2219| ValueCategory = lvalue -# 2220| getChild(1): [Handler] <handler> -# 2220| getBlock(): [CatchBlock] { ... } -# 2221| getStmt(0): [ExprStmt] ExprStmt -# 2221| getExpr(): [ThrowExpr] throw ... -# 2221| Type = [Struct] String -# 2221| ValueCategory = prvalue -# 2221| getExpr(): [ConstructorCall] call to String -# 2221| Type = [VoidType] void -# 2221| ValueCategory = prvalue -# 2221| getArgument(0): [VariableAccess] s -# 2221| Type = [PointerType] const char * -# 2221| ValueCategory = prvalue(load) -# 2223| getChild(2): [Handler] <handler> -# 2223| getBlock(): [CatchBlock] { ... } -# 2225| getChild(3): [Handler] <handler> -# 2225| getBlock(): [CatchAnyBlock] { ... } -# 2226| getStmt(0): [ExprStmt] ExprStmt -# 2226| getExpr(): [ReThrowExpr] re-throw exception -# 2226| Type = [VoidType] void -# 2226| ValueCategory = prvalue -# 2228| getStmt(1): [ReturnStmt] return ... -# 2230| [TopLevelFunction] void IfDestructors(bool) -# 2230| <params>: -# 2230| getParameter(0): [Parameter] b -# 2230| Type = [BoolType] bool -# 2230| getEntryPoint(): [BlockStmt] { ... } -# 2231| getStmt(0): [DeclStmt] declaration -# 2231| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 -# 2231| Type = [Struct] String -# 2231| getVariable().getInitializer(): [Initializer] initializer for s1 -# 2231| getExpr(): [ConstructorCall] call to String -# 2231| Type = [VoidType] void -# 2231| ValueCategory = prvalue -# 2232| getStmt(1): [IfStmt] if (...) ... -# 2232| getCondition(): [VariableAccess] b -# 2232| Type = [BoolType] bool -# 2232| ValueCategory = prvalue(load) -# 2232| getThen(): [BlockStmt] { ... } -# 2233| getStmt(0): [DeclStmt] declaration -# 2233| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2233| Type = [Struct] String -# 2233| getVariable().getInitializer(): [Initializer] initializer for s2 -# 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] s2 -# 2234| Type = [Struct] String -# 2234| ValueCategory = lvalue -# 2234| getElse(): [BlockStmt] { ... } -# 2235| getStmt(0): [DeclStmt] declaration -# 2235| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s3 -# 2235| Type = [Struct] String -# 2235| getVariable().getInitializer(): [Initializer] initializer for s3 -# 2235| getExpr(): [ConstructorCall] call to String -# 2235| Type = [VoidType] void -# 2235| ValueCategory = prvalue -# 2236| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2236| Type = [VoidType] void -# 2236| ValueCategory = prvalue -# 2236| getQualifier(): [VariableAccess] s3 -# 2236| Type = [Struct] String -# 2236| ValueCategory = lvalue -# 2237| getStmt(2): [DeclStmt] declaration -# 2237| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s4 -# 2237| Type = [Struct] String -# 2237| getVariable().getInitializer(): [Initializer] initializer for s4 -# 2237| getExpr(): [ConstructorCall] call to String -# 2237| Type = [VoidType] void -# 2237| ValueCategory = prvalue -# 2238| getStmt(3): [ReturnStmt] return ... -# 2238| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2238| Type = [VoidType] void -# 2238| ValueCategory = prvalue -# 2238| getQualifier(): [VariableAccess] s4 -# 2238| Type = [Struct] String -# 2238| ValueCategory = lvalue -# 2238| getImplicitDestructorCall(1): [DestructorCall] call to ~String -# 2238| Type = [VoidType] void -# 2238| ValueCategory = prvalue -# 2238| getQualifier(): [VariableAccess] s1 -# 2238| Type = [Struct] String -# 2238| ValueCategory = lvalue -# 2240| [TopLevelFunction] void ForDestructors() -# 2240| <params>: -# 2240| getEntryPoint(): [BlockStmt] { ... } -# 2241| getStmt(0): [DeclStmt] declaration -# 2241| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 2241| Type = [PlainCharType] char -# 2241| getVariable().getInitializer(): [Initializer] initializer for c -# 2241| getExpr(): [CharLiteral] 97 -# 2241| Type = [PlainCharType] char -# 2241| Value = [CharLiteral] 97 -# 2241| ValueCategory = prvalue -# 2242| getStmt(1): [ForStmt] for(...;...;...) ... -# 2242| getInitialization(): [DeclStmt] declaration -# 2242| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2242| Type = [Struct] String -# 2242| getVariable().getInitializer(): [Initializer] initializer for s -# 2242| getExpr(): [ConstructorCall] call to String -# 2242| Type = [VoidType] void -# 2242| ValueCategory = prvalue -# 2242| getArgument(0): hello -# 2242| Type = [ArrayType] const char[6] -# 2242| Value = [StringLiteral] "hello" -# 2242| ValueCategory = lvalue -# 2242| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2242| Type = [PointerType] const char * -# 2242| ValueCategory = prvalue -# 2242| getCondition(): [NEExpr] ... != ... -# 2242| Type = [BoolType] bool -# 2242| ValueCategory = prvalue -# 2242| getLeftOperand(): [VariableAccess] c -# 2242| Type = [PlainCharType] char -# 2242| ValueCategory = prvalue(load) -# 2242| getRightOperand(): [Literal] 0 -# 2242| Type = [IntType] int -# 2242| Value = [Literal] 0 -# 2242| ValueCategory = prvalue -# 2242| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... -# 2242| Conversion = [IntegralConversion] integral conversion -# 2242| Type = [IntType] int -# 2242| ValueCategory = prvalue -# 2242| getUpdate(): [AssignExpr] ... = ... -# 2242| Type = [PlainCharType] char -# 2242| ValueCategory = lvalue -# 2242| getLValue(): [VariableAccess] c -# 2242| Type = [PlainCharType] char -# 2242| ValueCategory = lvalue -# 2242| getRValue(): [FunctionCall] call to pop_back -# 2242| Type = [PlainCharType] char -# 2242| ValueCategory = prvalue -# 2242| getQualifier(): [VariableAccess] s -# 2242| Type = [Struct] String -# 2242| ValueCategory = lvalue -# 2242| getStmt(): [BlockStmt] { ... } -# 2243| getStmt(0): [DeclStmt] declaration -# 2243| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2243| Type = [Struct] String -# 2243| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2243| getExpr(): [ConstructorCall] call to String -# 2243| Type = [VoidType] void -# 2243| ValueCategory = prvalue -# 2244| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2244| Type = [VoidType] void -# 2244| ValueCategory = prvalue -# 2244| getQualifier(): [VariableAccess] s2 -# 2244| Type = [Struct] String -# 2244| ValueCategory = lvalue -# 2242| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2242| Type = [VoidType] void -# 2242| ValueCategory = prvalue -# 2242| getQualifier(): [VariableAccess] s -# 2242| Type = [Struct] String -# 2242| ValueCategory = lvalue -# 2246| getStmt(2): [RangeBasedForStmt] for(...:...) ... -# 2246| getChild(1): [DeclStmt] declaration -# 2246| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) -# 2246| Type = [RValueReferenceType] vector<String> && -#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) -# 2246| getExpr(): [ConstructorCall] call to vector -# 2246| Type = [VoidType] void -# 2246| ValueCategory = prvalue -# 2246| getArgument(0): [ConstructorCall] call to String -# 2246| Type = [VoidType] void -# 2246| ValueCategory = prvalue -# 2246| getArgument(0): hello -# 2246| Type = [ArrayType] const char[6] -# 2246| Value = [StringLiteral] "hello" -# 2246| ValueCategory = lvalue -# 2246| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2246| Type = [PointerType] const char * -# 2246| ValueCategory = prvalue -# 2246| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object -# 2246| Type = [Struct] String -# 2246| ValueCategory = lvalue -# 2246| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) -# 2246| Type = [LValueReferenceType] vector<String> & -# 2246| ValueCategory = prvalue -# 2246| getExpr(): [TemporaryObjectExpr] temporary object -# 2246| Type = [ClassTemplateInstantiation,Struct] vector<String> -# 2246| ValueCategory = xvalue -# 2246| getBeginEndDeclaration(): [DeclStmt] declaration -# 2246| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) -# 2246| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) -# 2246| getExpr(): [FunctionCall] call to begin -# 2246| Type = [NestedStruct] iterator -# 2246| ValueCategory = prvalue -# 2246| getQualifier(): [VariableAccess] (__range) -# 2246| Type = [RValueReferenceType] vector<String> && -# 2246| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<String>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<String> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<String> -#-----| ValueCategory = lvalue -# 2246| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) -# 2246| Type = [NestedStruct] iterator -#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) -# 2246| getExpr(): [FunctionCall] call to end -# 2246| Type = [NestedStruct] iterator -# 2246| ValueCategory = prvalue -# 2246| getQualifier(): [VariableAccess] (__range) -# 2246| Type = [RValueReferenceType] vector<String> && -# 2246| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<String>)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const vector<String> -#-----| ValueCategory = lvalue -#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -#-----| Type = [ClassTemplateInstantiation,Struct] vector<String> -#-----| ValueCategory = lvalue -# 2246| getCondition(): [FunctionCall] call to operator!= -# 2246| Type = [BoolType] bool -# 2246| ValueCategory = prvalue -# 2246| getQualifier(): [VariableAccess] (__begin) -# 2246| Type = [NestedStruct] iterator -# 2246| ValueCategory = lvalue -# 2246| getArgument(0): [VariableAccess] (__end) -# 2246| Type = [NestedStruct] iterator -# 2246| ValueCategory = prvalue(load) -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2246| getUpdate(): [FunctionCall] call to operator++ -# 2246| Type = [LValueReferenceType] iterator & -# 2246| ValueCategory = prvalue -# 2246| getQualifier(): [VariableAccess] (__begin) -# 2246| Type = [NestedStruct] iterator -# 2246| ValueCategory = lvalue -# 2246| getChild(5): [DeclStmt] declaration -# 2246| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2246| Type = [Struct] String -# 2246| getVariable().getInitializer(): [Initializer] initializer for s -# 2246| getExpr(): [ConstructorCall] call to String -# 2246| Type = [VoidType] void -# 2246| ValueCategory = prvalue -# 2246| getArgument(0): [OverloadedPointerDereferenceExpr] call to operator* -# 2246| Type = [LValueReferenceType] String & -# 2246| ValueCategory = prvalue -# 2246| getQualifier(): [VariableAccess] (__begin) -# 2246| Type = [NestedStruct] iterator -# 2246| ValueCategory = lvalue -#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)... -#-----| Conversion = [GlvalueConversion] glvalue conversion -#-----| Type = [SpecifiedType] const iterator -#-----| ValueCategory = lvalue -# 2246| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) -# 2246| Type = [LValueReferenceType] const String & -# 2246| ValueCategory = prvalue -# 2246| getExpr(): [CStyleCast] (const String)... -# 2246| Conversion = [GlvalueConversion] glvalue conversion -# 2246| Type = [SpecifiedType] const String -# 2246| ValueCategory = lvalue -# 2246| getExpr(): [ReferenceDereferenceExpr] (reference dereference) -# 2246| Type = [Struct] String -# 2246| ValueCategory = lvalue -# 2246| getStmt(): [BlockStmt] { ... } -# 2247| getStmt(0): [DeclStmt] declaration -# 2247| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2247| Type = [Struct] String -# 2247| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2247| getExpr(): [ConstructorCall] call to String -# 2247| Type = [VoidType] void -# 2247| ValueCategory = prvalue -# 2248| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2248| Type = [VoidType] void -# 2248| ValueCategory = prvalue -# 2248| getQualifier(): [VariableAccess] s2 -# 2248| Type = [Struct] String -# 2248| ValueCategory = lvalue -# 2246| getImplicitDestructorCall(1): [DestructorCall] call to ~String -# 2246| Type = [VoidType] void -# 2246| ValueCategory = prvalue -# 2246| getQualifier(): [VariableAccess] s -# 2246| Type = [Struct] String -# 2246| ValueCategory = lvalue -# 2246| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) -# 2246| Type = [NestedStruct] iterator -# 2246| ValueCategory = lvalue -# 2250| getStmt(3): [ForStmt] for(...;...;...) ... -# 2250| getInitialization(): [DeclStmt] declaration -# 2250| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2250| Type = [Struct] String -# 2250| getVariable().getInitializer(): [Initializer] initializer for s -# 2250| getExpr(): [ConstructorCall] call to String -# 2250| Type = [VoidType] void -# 2250| ValueCategory = prvalue -# 2250| getArgument(0): hello -# 2250| Type = [ArrayType] const char[6] -# 2250| Value = [StringLiteral] "hello" -# 2250| ValueCategory = lvalue -# 2250| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2250| Type = [PointerType] const char * -# 2250| ValueCategory = prvalue -# 2250| getDeclarationEntry(1): [VariableDeclarationEntry] definition of s2 -# 2250| Type = [Struct] String -# 2250| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2250| getExpr(): [ConstructorCall] call to String -# 2250| Type = [VoidType] void -# 2250| ValueCategory = prvalue -# 2250| getArgument(0): world -# 2250| Type = [ArrayType] const char[6] -# 2250| Value = [StringLiteral] "world" -# 2250| ValueCategory = lvalue -# 2250| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2250| Type = [PointerType] const char * -# 2250| ValueCategory = prvalue -# 2250| getCondition(): [NEExpr] ... != ... -# 2250| Type = [BoolType] bool -# 2250| ValueCategory = prvalue -# 2250| getLeftOperand(): [VariableAccess] c -# 2250| Type = [PlainCharType] char -# 2250| ValueCategory = prvalue(load) -# 2250| getRightOperand(): [Literal] 0 -# 2250| Type = [IntType] int -# 2250| Value = [Literal] 0 -# 2250| ValueCategory = prvalue -# 2250| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... -# 2250| Conversion = [IntegralConversion] integral conversion -# 2250| Type = [IntType] int -# 2250| ValueCategory = prvalue -# 2250| getUpdate(): [AssignExpr] ... = ... -# 2250| Type = [PlainCharType] char -# 2250| ValueCategory = lvalue -# 2250| getLValue(): [VariableAccess] c -# 2250| Type = [PlainCharType] char -# 2250| ValueCategory = lvalue -# 2250| getRValue(): [FunctionCall] call to pop_back -# 2250| Type = [PlainCharType] char -# 2250| ValueCategory = prvalue -# 2250| getQualifier(): [VariableAccess] s -# 2250| Type = [Struct] String -# 2250| ValueCategory = lvalue -# 2250| getStmt(): [BlockStmt] { ... } -# 2251| getStmt(0): [ExprStmt] ExprStmt -# 2251| getExpr(): [AssignExpr] ... = ... -# 2251| Type = [PlainCharType] char -# 2251| ValueCategory = lvalue -# 2251| getLValue(): [VariableAccess] c -# 2251| Type = [PlainCharType] char -# 2251| ValueCategory = lvalue -# 2251| getRValue(): [Literal] 0 -# 2251| Type = [IntType] int -# 2251| Value = [Literal] 0 -# 2251| ValueCategory = prvalue -# 2251| getRValue().getFullyConverted(): [CStyleCast] (char)... -# 2251| Conversion = [IntegralConversion] integral conversion -# 2251| Type = [PlainCharType] char -# 2251| Value = [CStyleCast] 0 -# 2251| ValueCategory = prvalue -# 2250| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2235| getStmt(3): [ReturnStmt] return ... +# 2235| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2235| Type = [VoidType] void +# 2235| ValueCategory = prvalue +# 2235| getQualifier(): [VariableAccess] b +# 2235| Type = [Class] ClassWithDestructor +# 2235| ValueCategory = lvalue +# 2235| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor +# 2235| Type = [VoidType] void +# 2235| ValueCategory = prvalue +# 2235| getQualifier(): [VariableAccess] a +# 2235| Type = [Class] ClassWithDestructor +# 2235| ValueCategory = lvalue +# 2237| [GlobalVariable] ClassWithDestructor global_class_with_destructor +# 2237| getInitializer(): [Initializer] initializer for global_class_with_destructor +# 2237| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2237| Type = [VoidType] void +# 2237| ValueCategory = prvalue +# 2241| [FunctionTemplateInstantiation,TopLevelFunction] ClassWithDestructor& vacuous_destructor_call::get<ClassWithDestructor>(ClassWithDestructor&) +# 2241| <params>: +# 2241| getParameter(0): [Parameter] t +# 2241| Type = [LValueReferenceType] ClassWithDestructor & +# 2241| getEntryPoint(): [BlockStmt] { ... } +# 2241| getStmt(0): [ReturnStmt] return ... +# 2241| getExpr(): [VariableAccess] t +# 2241| Type = [LValueReferenceType] ClassWithDestructor & +# 2241| ValueCategory = prvalue(load) +# 2241| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2241| Type = [LValueReferenceType] ClassWithDestructor & +# 2241| ValueCategory = prvalue +# 2241| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2241| Type = [Class] ClassWithDestructor +# 2241| ValueCategory = lvalue +# 2241| [TemplateFunction,TopLevelFunction] T& vacuous_destructor_call::get<T>(T&) +# 2241| <params>: +# 2241| getParameter(0): [Parameter] t +# 2241| Type = [LValueReferenceType] T & +# 2241| getEntryPoint(): [BlockStmt] { ... } +# 2241| getStmt(0): [ReturnStmt] return ... +# 2241| getExpr(): [VariableAccess] t +# 2241| Type = [LValueReferenceType] T & +# 2241| ValueCategory = prvalue(load) +# 2241| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2241| Type = [TemplateParameter] T +# 2241| ValueCategory = lvalue +# 2241| [FunctionTemplateInstantiation,TopLevelFunction] int& vacuous_destructor_call::get<int>(int&) +# 2241| <params>: +# 2241| getParameter(0): [Parameter] t +# 2241| Type = [LValueReferenceType] int & +# 2241| getEntryPoint(): [BlockStmt] { ... } +# 2241| getStmt(0): [ReturnStmt] return ... +# 2241| getExpr(): [VariableAccess] t +# 2241| Type = [LValueReferenceType] int & +# 2241| ValueCategory = prvalue(load) +# 2241| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2241| Type = [LValueReferenceType] int & +# 2241| ValueCategory = prvalue +# 2241| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2241| Type = [IntType] int +# 2241| ValueCategory = lvalue +# 2244| [FunctionTemplateInstantiation,TopLevelFunction] void vacuous_destructor_call::call_destructor<ClassWithDestructor>(ClassWithDestructor&) +# 2244| <params>: +# 2244| getParameter(0): [Parameter] t +# 2244| Type = [LValueReferenceType] ClassWithDestructor & +# 2244| getEntryPoint(): [BlockStmt] { ... } +# 2245| getStmt(0): [ExprStmt] ExprStmt +# 2245| getExpr(): [DestructorCall] call to ~ClassWithDestructor +# 2245| Type = [VoidType] void +# 2245| ValueCategory = prvalue +# 2245| getQualifier(): [FunctionCall] call to get +# 2245| Type = [LValueReferenceType] ClassWithDestructor & +# 2245| ValueCategory = prvalue +# 2245| getArgument(0): [VariableAccess] t +# 2245| Type = [LValueReferenceType] ClassWithDestructor & +# 2245| ValueCategory = prvalue(load) +# 2245| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2245| Type = [LValueReferenceType] ClassWithDestructor & +# 2245| ValueCategory = prvalue +# 2245| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2245| Type = [Class] ClassWithDestructor +# 2245| ValueCategory = lvalue +# 2245| getQualifier().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2245| Type = [Class] ClassWithDestructor +# 2245| ValueCategory = lvalue +# 2246| getStmt(1): [ReturnStmt] return ... +# 2244| [TemplateFunction,TopLevelFunction] void vacuous_destructor_call::call_destructor<T>(T&) +# 2244| <params>: +# 2244| getParameter(0): [Parameter] t +# 2244| Type = [LValueReferenceType] T & +# 2244| getEntryPoint(): [BlockStmt] { ... } +# 2245| getStmt(0): [ExprStmt] ExprStmt +# 2245| getExpr(): [ExprCall] call to expression +# 2245| Type = [UnknownType] unknown +# 2245| ValueCategory = prvalue +# 2245| getExpr(): [Literal] Unknown literal +# 2245| Type = [UnknownType] unknown +# 2245| ValueCategory = prvalue +# 2245| getChild(-1): [ExprCall] call to expression +# 2245| Type = [UnknownType] unknown +# 2245| ValueCategory = prvalue +# 2245| getExpr(): [Literal] Unknown literal +# 2245| Type = [UnknownType] unknown +# 2245| ValueCategory = prvalue +# 2245| getArgument(0): [VariableAccess] t +# 2245| Type = [LValueReferenceType] T & +# 2245| ValueCategory = prvalue(load) +# 2245| getArgument(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2245| Type = [TemplateParameter] T +# 2245| ValueCategory = lvalue +# 2246| getStmt(1): [ReturnStmt] return ... +# 2244| [FunctionTemplateInstantiation,TopLevelFunction] void vacuous_destructor_call::call_destructor<int>(int&) +# 2244| <params>: +# 2244| getParameter(0): [Parameter] t +# 2244| Type = [LValueReferenceType] int & +# 2244| getEntryPoint(): [BlockStmt] { ... } +# 2245| getStmt(0): [ExprStmt] ExprStmt +# 2245| getExpr(): [VacuousDestructorCall] (vacuous destructor call) +# 2245| Type = [VoidType] void +# 2245| ValueCategory = prvalue +# 2245| getChild(0): [FunctionCall] call to get +# 2245| Type = [LValueReferenceType] int & +# 2245| ValueCategory = prvalue +# 2245| getArgument(0): [VariableAccess] t +# 2245| Type = [LValueReferenceType] int & +# 2245| ValueCategory = prvalue(load) +# 2245| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2245| Type = [LValueReferenceType] int & +# 2245| ValueCategory = prvalue +# 2245| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2245| Type = [IntType] int +# 2245| ValueCategory = lvalue +# 2245| getChild(0).getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2245| Type = [IntType] int +# 2245| ValueCategory = lvalue +# 2246| getStmt(1): [ReturnStmt] return ... +# 2248| [TopLevelFunction] void vacuous_destructor_call::non_vacuous_destructor_call() +# 2248| <params>: +# 2248| getEntryPoint(): [BlockStmt] { ... } +# 2249| getStmt(0): [DeclStmt] declaration +# 2249| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2249| Type = [Class] ClassWithDestructor +# 2249| getVariable().getInitializer(): [Initializer] initializer for c +# 2249| getExpr(): [ConstructorCall] call to ClassWithDestructor +# 2249| Type = [VoidType] void +# 2249| ValueCategory = prvalue +# 2250| getStmt(1): [ExprStmt] ExprStmt +# 2250| getExpr(): [FunctionCall] call to call_destructor # 2250| Type = [VoidType] void # 2250| ValueCategory = prvalue -# 2250| getQualifier(): [VariableAccess] s2 -# 2250| Type = [Struct] String +# 2250| getArgument(0): [VariableAccess] c +# 2250| Type = [Class] ClassWithDestructor # 2250| ValueCategory = lvalue -# 2250| getImplicitDestructorCall(1): [DestructorCall] call to ~String -# 2250| Type = [VoidType] void -# 2250| ValueCategory = prvalue -# 2250| getQualifier(): [VariableAccess] s -# 2250| Type = [Struct] String -# 2250| ValueCategory = lvalue -# 2253| getStmt(4): [ReturnStmt] return ... -# 2255| [TopLevelFunction] void IfDestructors2(bool) -# 2255| <params>: -# 2255| getParameter(0): [Parameter] b -# 2255| Type = [BoolType] bool -# 2255| getEntryPoint(): [BlockStmt] { ... } -# 2256| getStmt(0): [IfStmt] if (...) ... -# 2256| getInitialization(): [DeclStmt] declaration -# 2256| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2256| Type = [Struct] String -# 2256| getVariable().getInitializer(): [Initializer] initializer for s -# 2256| getExpr(): [ConstructorCall] call to String -# 2256| Type = [VoidType] void -# 2256| ValueCategory = prvalue -# 2256| getArgument(0): hello -# 2256| Type = [ArrayType] const char[6] -# 2256| Value = [StringLiteral] "hello" -# 2256| ValueCategory = lvalue -# 2256| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion -# 2256| Type = [PointerType] const char * -# 2256| ValueCategory = prvalue -# 2256| getCondition(): [VariableAccess] b -# 2256| Type = [BoolType] bool -# 2256| ValueCategory = prvalue(load) -# 2256| getThen(): [BlockStmt] { ... } -# 2257| getStmt(0): [DeclStmt] declaration -# 2257| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x -# 2257| Type = [IntType] int -# 2257| getVariable().getInitializer(): [Initializer] initializer for x -# 2257| getExpr(): [Literal] 0 -# 2257| Type = [IntType] int -# 2257| Value = [Literal] 0 -# 2257| ValueCategory = prvalue -# 2258| getElse(): [BlockStmt] { ... } -# 2259| getStmt(0): [DeclStmt] declaration -# 2259| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y -# 2259| Type = [IntType] int -# 2259| getVariable().getInitializer(): [Initializer] initializer for y -# 2259| getExpr(): [Literal] 0 -# 2259| Type = [IntType] int -# 2259| Value = [Literal] 0 -# 2259| ValueCategory = prvalue -# 2260| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2260| Type = [VoidType] void -# 2260| ValueCategory = prvalue -# 2260| getQualifier(): [VariableAccess] s -# 2260| Type = [Struct] String -# 2260| ValueCategory = lvalue -# 2261| getStmt(1): [ReturnStmt] return ... -# 2263| [CopyAssignmentOperator] Bool& Bool::operator=(Bool const&) -# 2263| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const Bool & -# 2263| [CopyConstructor] void Bool::Bool(Bool const&) -# 2263| <params>: -#-----| getParameter(0): [Parameter] (unnamed parameter 0) -#-----| Type = [LValueReferenceType] const Bool & -# 2265| [Constructor] void Bool::Bool(bool) -# 2265| <params>: -# 2265| getParameter(0): [Parameter] b_ -# 2265| Type = [BoolType] bool -# 2266| [ConversionOperator] bool Bool::operator bool() -# 2266| <params>: -# 2267| [Destructor] void Bool::~Bool() -# 2267| <params>: -# 2270| [TopLevelFunction] void IfDestructors3(bool) -# 2270| <params>: -# 2270| getParameter(0): [Parameter] b -# 2270| Type = [BoolType] bool -# 2270| getEntryPoint(): [BlockStmt] { ... } -# 2271| getStmt(0): [IfStmt] if (...) ... -# 2271| getCondition(): [ConditionDeclExpr] (condition decl) -# 2271| Type = [BoolType] bool -# 2271| ValueCategory = prvalue -# 2271| getChild(0): [FunctionCall] call to operator bool -# 2271| Type = [BoolType] bool -# 2271| ValueCategory = prvalue -# 2271| getQualifier(): [VariableAccess] B -# 2271| Type = [Class] Bool -# 2271| ValueCategory = prvalue(load) -# 2271| getThen(): [BlockStmt] { ... } -# 2272| getStmt(0): [DeclStmt] declaration -# 2272| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 -# 2272| Type = [Struct] String -# 2272| getVariable().getInitializer(): [Initializer] initializer for s1 -# 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] s1 -# 2273| Type = [Struct] String -# 2273| ValueCategory = lvalue -# 2273| getElse(): [BlockStmt] { ... } -# 2274| getStmt(0): [DeclStmt] declaration -# 2274| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 -# 2274| Type = [Struct] String -# 2274| getVariable().getInitializer(): [Initializer] initializer for s2 -# 2274| getExpr(): [ConstructorCall] call to String -# 2274| Type = [VoidType] void -# 2274| ValueCategory = prvalue -# 2275| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2275| Type = [VoidType] void -# 2275| ValueCategory = prvalue -# 2275| getQualifier(): [VariableAccess] s2 -# 2275| Type = [Struct] String -# 2275| ValueCategory = lvalue -# 2275| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool -# 2275| Type = [VoidType] void -# 2275| ValueCategory = prvalue -# 2275| getQualifier(): [VariableAccess] B -# 2275| Type = [Class] Bool -# 2275| ValueCategory = lvalue -# 2276| getStmt(1): [ReturnStmt] return ... -# 2278| [TopLevelFunction] void WhileLoopDestructors(bool) -# 2278| <params>: -# 2278| getParameter(0): [Parameter] b -# 2278| Type = [BoolType] bool -# 2278| getEntryPoint(): [BlockStmt] { ... } -# 2279| getStmt(0): [BlockStmt] { ... } -# 2280| getStmt(0): [DeclStmt] declaration -# 2280| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2280| Type = [Struct] String -# 2280| getVariable().getInitializer(): [Initializer] initializer for s -# 2280| getExpr(): [ConstructorCall] call to String -# 2280| Type = [VoidType] void -# 2280| ValueCategory = prvalue -# 2281| getStmt(1): [WhileStmt] while (...) ... -# 2281| getCondition(): [VariableAccess] b -# 2281| Type = [BoolType] bool -# 2281| ValueCategory = prvalue(load) -# 2281| getStmt(): [BlockStmt] { ... } -# 2282| getStmt(0): [ExprStmt] ExprStmt -# 2282| getExpr(): [AssignExpr] ... = ... -# 2282| Type = [BoolType] bool -# 2282| ValueCategory = lvalue -# 2282| getLValue(): [VariableAccess] b -# 2282| Type = [BoolType] bool -# 2282| ValueCategory = lvalue -# 2282| getRValue(): [Literal] 0 -# 2282| Type = [BoolType] bool -# 2282| Value = [Literal] 0 +# 2250| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2250| Type = [LValueReferenceType] ClassWithDestructor & +# 2250| ValueCategory = prvalue +# 2251| getStmt(2): [ReturnStmt] return ... +# 2251| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2251| Type = [VoidType] void +# 2251| ValueCategory = prvalue +# 2251| getQualifier(): [VariableAccess] c +# 2251| Type = [Class] ClassWithDestructor +# 2251| ValueCategory = lvalue +# 2253| [TopLevelFunction] void vacuous_destructor_call::vacuous_destructor_call() +# 2253| <params>: +# 2253| getEntryPoint(): [BlockStmt] { ... } +# 2254| getStmt(0): [DeclStmt] declaration +# 2254| getDeclarationEntry(0): [VariableDeclarationEntry] definition of i +# 2254| Type = [IntType] int +# 2255| getStmt(1): [ExprStmt] ExprStmt +# 2255| getExpr(): [FunctionCall] call to call_destructor +# 2255| Type = [VoidType] void +# 2255| ValueCategory = prvalue +# 2255| getArgument(0): [VariableAccess] i +# 2255| Type = [IntType] int +# 2255| ValueCategory = lvalue +# 2255| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2255| Type = [LValueReferenceType] int & +# 2255| ValueCategory = prvalue +# 2256| getStmt(2): [ReturnStmt] return ... +# 2259| [TopLevelFunction] void TryCatchDestructors(bool) +# 2259| <params>: +# 2259| getParameter(0): [Parameter] b +# 2259| Type = [BoolType] bool +# 2259| getEntryPoint(): [BlockStmt] { ... } +# 2260| getStmt(0): [TryStmt] try { ... } +# 2260| getStmt(): [BlockStmt] { ... } +# 2261| getStmt(0): [DeclStmt] declaration +# 2261| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2261| Type = [Struct] String +# 2261| getVariable().getInitializer(): [Initializer] initializer for s +# 2261| getExpr(): [ConstructorCall] call to String +# 2261| Type = [VoidType] void +# 2261| ValueCategory = prvalue +# 2262| getStmt(1): [IfStmt] if (...) ... +# 2262| getCondition(): [VariableAccess] b +# 2262| Type = [BoolType] bool +# 2262| ValueCategory = prvalue(load) +# 2262| getThen(): [BlockStmt] { ... } +# 2263| getStmt(0): [ExprStmt] ExprStmt +# 2263| getExpr(): [ThrowExpr] throw ... +# 2263| Type = [PointerType] const char * +# 2263| ValueCategory = prvalue +# 2263| getExpr(): string literal +# 2263| Type = [ArrayType] const char[15] +# 2263| Value = [StringLiteral] "string literal" +# 2263| ValueCategory = lvalue +# 2266| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2266| Type = [VoidType] void +# 2266| ValueCategory = prvalue +# 2266| getQualifier(): [VariableAccess] s +# 2266| Type = [Struct] String +# 2266| ValueCategory = lvalue +# 2263| getExpr().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2263| Type = [PointerType] const char * +# 2263| ValueCategory = prvalue +# 2265| getStmt(2): [DeclStmt] declaration +# 2265| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2265| Type = [Struct] String +# 2265| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2265| getExpr(): [ConstructorCall] call to String +# 2265| Type = [VoidType] void +# 2265| ValueCategory = prvalue +# 2266| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2266| Type = [VoidType] void +# 2266| ValueCategory = prvalue +# 2266| getQualifier(): [VariableAccess] s2 +# 2266| Type = [Struct] String +# 2266| ValueCategory = lvalue +# 2266| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 2266| Type = [VoidType] void +# 2266| ValueCategory = prvalue +# 2266| getQualifier(): [VariableAccess] s +# 2266| Type = [Struct] String +# 2266| ValueCategory = lvalue +# 2267| getChild(1): [Handler] <handler> +# 2267| getBlock(): [CatchBlock] { ... } +# 2268| getStmt(0): [ExprStmt] ExprStmt +# 2268| getExpr(): [ThrowExpr] throw ... +# 2268| Type = [Struct] String +# 2268| ValueCategory = prvalue +# 2268| getExpr(): [ConstructorCall] call to String +# 2268| Type = [VoidType] void +# 2268| ValueCategory = prvalue +# 2268| getArgument(0): [VariableAccess] s +# 2268| Type = [PointerType] const char * +# 2268| ValueCategory = prvalue(load) +# 2270| getChild(2): [Handler] <handler> +# 2270| getBlock(): [CatchBlock] { ... } +# 2272| getChild(3): [Handler] <handler> +# 2272| getBlock(): [CatchAnyBlock] { ... } +# 2273| getStmt(0): [ExprStmt] ExprStmt +# 2273| getExpr(): [ReThrowExpr] re-throw exception +# 2273| Type = [VoidType] void +# 2273| ValueCategory = prvalue +# 2275| getStmt(1): [ReturnStmt] return ... +# 2277| [TopLevelFunction] void IfDestructors(bool) +# 2277| <params>: +# 2277| getParameter(0): [Parameter] b +# 2277| Type = [BoolType] bool +# 2277| getEntryPoint(): [BlockStmt] { ... } +# 2278| getStmt(0): [DeclStmt] declaration +# 2278| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 +# 2278| Type = [Struct] String +# 2278| getVariable().getInitializer(): [Initializer] initializer for s1 +# 2278| getExpr(): [ConstructorCall] call to String +# 2278| Type = [VoidType] void +# 2278| ValueCategory = prvalue +# 2279| getStmt(1): [IfStmt] if (...) ... +# 2279| getCondition(): [VariableAccess] b +# 2279| Type = [BoolType] bool +# 2279| ValueCategory = prvalue(load) +# 2279| getThen(): [BlockStmt] { ... } +# 2280| getStmt(0): [DeclStmt] declaration +# 2280| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2280| Type = [Struct] String +# 2280| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2280| getExpr(): [ConstructorCall] call to String +# 2280| Type = [VoidType] void +# 2280| ValueCategory = prvalue +# 2281| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2281| Type = [VoidType] void +# 2281| ValueCategory = prvalue +# 2281| getQualifier(): [VariableAccess] s2 +# 2281| Type = [Struct] String +# 2281| ValueCategory = lvalue +# 2281| getElse(): [BlockStmt] { ... } +# 2282| getStmt(0): [DeclStmt] declaration +# 2282| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s3 +# 2282| Type = [Struct] String +# 2282| getVariable().getInitializer(): [Initializer] initializer for s3 +# 2282| getExpr(): [ConstructorCall] call to String +# 2282| Type = [VoidType] void # 2282| ValueCategory = prvalue -# 2284| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2284| Type = [VoidType] void -# 2284| ValueCategory = prvalue -# 2284| getQualifier(): [VariableAccess] s -# 2284| Type = [Struct] String -# 2284| ValueCategory = lvalue -# 2286| getStmt(1): [BlockStmt] { ... } -# 2287| getStmt(0): [WhileStmt] while (...) ... -# 2287| getCondition(): [ConditionDeclExpr] (condition decl) -# 2287| Type = [BoolType] bool -# 2287| ValueCategory = prvalue -# 2287| getChild(0): [FunctionCall] call to operator bool -# 2287| Type = [BoolType] bool -# 2287| ValueCategory = prvalue -# 2287| getQualifier(): [VariableAccess] B -# 2287| Type = [Class] Bool -# 2287| ValueCategory = prvalue(load) -# 2287| getStmt(): [BlockStmt] { ... } -# 2288| getStmt(0): [ExprStmt] ExprStmt -# 2288| getExpr(): [AssignExpr] ... = ... -# 2288| Type = [BoolType] bool -# 2288| ValueCategory = lvalue -# 2288| getLValue(): [VariableAccess] b -# 2288| Type = [BoolType] bool -# 2288| ValueCategory = lvalue -# 2288| getRValue(): [Literal] 0 -# 2288| Type = [BoolType] bool -# 2288| Value = [Literal] 0 -# 2288| ValueCategory = prvalue -# 2289| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool -# 2289| Type = [VoidType] void -# 2289| ValueCategory = prvalue -# 2289| getQualifier(): [VariableAccess] B -# 2289| Type = [Class] Bool -# 2289| ValueCategory = lvalue -# 2289| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool -# 2289| Type = [VoidType] void +# 2283| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2283| Type = [VoidType] void +# 2283| ValueCategory = prvalue +# 2283| getQualifier(): [VariableAccess] s3 +# 2283| Type = [Struct] String +# 2283| ValueCategory = lvalue +# 2284| getStmt(2): [DeclStmt] declaration +# 2284| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s4 +# 2284| Type = [Struct] String +# 2284| getVariable().getInitializer(): [Initializer] initializer for s4 +# 2284| getExpr(): [ConstructorCall] call to String +# 2284| Type = [VoidType] void +# 2284| ValueCategory = prvalue +# 2285| getStmt(3): [ReturnStmt] return ... +# 2285| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2285| Type = [VoidType] void +# 2285| ValueCategory = prvalue +# 2285| getQualifier(): [VariableAccess] s4 +# 2285| Type = [Struct] String +# 2285| ValueCategory = lvalue +# 2285| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 2285| Type = [VoidType] void +# 2285| ValueCategory = prvalue +# 2285| getQualifier(): [VariableAccess] s1 +# 2285| Type = [Struct] String +# 2285| ValueCategory = lvalue +# 2287| [TopLevelFunction] void ForDestructors() +# 2287| <params>: +# 2287| getEntryPoint(): [BlockStmt] { ... } +# 2288| getStmt(0): [DeclStmt] declaration +# 2288| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 2288| Type = [PlainCharType] char +# 2288| getVariable().getInitializer(): [Initializer] initializer for c +# 2288| getExpr(): [CharLiteral] 97 +# 2288| Type = [PlainCharType] char +# 2288| Value = [CharLiteral] 97 +# 2288| ValueCategory = prvalue +# 2289| getStmt(1): [ForStmt] for(...;...;...) ... +# 2289| getInitialization(): [DeclStmt] declaration +# 2289| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2289| Type = [Struct] String +# 2289| getVariable().getInitializer(): [Initializer] initializer for s +# 2289| getExpr(): [ConstructorCall] call to String +# 2289| Type = [VoidType] void +# 2289| ValueCategory = prvalue +# 2289| getArgument(0): hello +# 2289| Type = [ArrayType] const char[6] +# 2289| Value = [StringLiteral] "hello" +# 2289| ValueCategory = lvalue +# 2289| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2289| Type = [PointerType] const char * +# 2289| ValueCategory = prvalue +# 2289| getCondition(): [NEExpr] ... != ... +# 2289| Type = [BoolType] bool +# 2289| ValueCategory = prvalue +# 2289| getLeftOperand(): [VariableAccess] c +# 2289| Type = [PlainCharType] char +# 2289| ValueCategory = prvalue(load) +# 2289| getRightOperand(): [Literal] 0 +# 2289| Type = [IntType] int +# 2289| Value = [Literal] 0 # 2289| ValueCategory = prvalue -# 2289| getQualifier(): [VariableAccess] B -# 2289| Type = [Class] Bool +# 2289| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... +# 2289| Conversion = [IntegralConversion] integral conversion +# 2289| Type = [IntType] int +# 2289| ValueCategory = prvalue +# 2289| getUpdate(): [AssignExpr] ... = ... +# 2289| Type = [PlainCharType] char +# 2289| ValueCategory = lvalue +# 2289| getLValue(): [VariableAccess] c +# 2289| Type = [PlainCharType] char +# 2289| ValueCategory = lvalue +# 2289| getRValue(): [FunctionCall] call to pop_back +# 2289| Type = [PlainCharType] char +# 2289| ValueCategory = prvalue +# 2289| getQualifier(): [VariableAccess] s +# 2289| Type = [Struct] String # 2289| ValueCategory = lvalue -# 2291| getStmt(2): [ReturnStmt] return ... -# 2293| [TopLevelFunction] void VoidFunc() -# 2293| <params>: -# 2293| getEntryPoint(): [BlockStmt] { ... } -# 2293| getStmt(0): [ReturnStmt] return ... -# 2295| [TopLevelFunction] void IfReturnDestructors(bool) -# 2295| <params>: -# 2295| getParameter(0): [Parameter] b -# 2295| Type = [BoolType] bool -# 2295| getEntryPoint(): [BlockStmt] { ... } -# 2296| getStmt(0): [DeclStmt] declaration -# 2296| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2296| Type = [Struct] String -# 2296| getVariable().getInitializer(): [Initializer] initializer for s -# 2296| getExpr(): [ConstructorCall] call to String -# 2296| Type = [VoidType] void -# 2296| ValueCategory = prvalue -# 2297| getStmt(1): [IfStmt] if (...) ... -# 2297| getCondition(): [VariableAccess] b +# 2289| getStmt(): [BlockStmt] { ... } +# 2290| getStmt(0): [DeclStmt] declaration +# 2290| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2290| Type = [Struct] String +# 2290| getVariable().getInitializer(): [Initializer] initializer for s2 +# 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] s2 +# 2291| Type = [Struct] String +# 2291| ValueCategory = lvalue +# 2289| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2289| Type = [VoidType] void +# 2289| ValueCategory = prvalue +# 2289| getQualifier(): [VariableAccess] s +# 2289| Type = [Struct] String +# 2289| ValueCategory = lvalue +# 2293| getStmt(2): [RangeBasedForStmt] for(...:...) ... +# 2293| getChild(1): [DeclStmt] declaration +# 2293| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2293| Type = [RValueReferenceType] vector<String> && +#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) +# 2293| getExpr(): [ConstructorCall] call to vector +# 2293| Type = [VoidType] void +# 2293| ValueCategory = prvalue +# 2293| getArgument(0): [ConstructorCall] call to String +# 2293| Type = [VoidType] void +# 2293| ValueCategory = prvalue +# 2293| getArgument(0): hello +# 2293| Type = [ArrayType] const char[6] +# 2293| Value = [StringLiteral] "hello" +# 2293| ValueCategory = lvalue +# 2293| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2293| Type = [PointerType] const char * +# 2293| ValueCategory = prvalue +# 2293| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2293| Type = [Struct] String +# 2293| ValueCategory = lvalue +# 2293| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2293| Type = [LValueReferenceType] vector<String> & +# 2293| ValueCategory = prvalue +# 2293| getExpr(): [TemporaryObjectExpr] temporary object +# 2293| Type = [ClassTemplateInstantiation,Struct] vector<String> +# 2293| ValueCategory = xvalue +# 2293| getBeginEndDeclaration(): [DeclStmt] declaration +# 2293| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2293| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) +# 2293| getExpr(): [FunctionCall] call to begin +# 2293| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2293| ValueCategory = prvalue +# 2293| getQualifier(): [VariableAccess] (__range) +# 2293| Type = [RValueReferenceType] vector<String> && +# 2293| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<String>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<String> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<String> +#-----| ValueCategory = lvalue +# 2293| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2293| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) +# 2293| getExpr(): [FunctionCall] call to end +# 2293| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2293| ValueCategory = prvalue +# 2293| getQualifier(): [VariableAccess] (__range) +# 2293| Type = [RValueReferenceType] vector<String> && +# 2293| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<String>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<String> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<String> +#-----| ValueCategory = lvalue +# 2293| getCondition(): [FunctionCall] call to operator!= +# 2293| Type = [BoolType] bool +# 2293| ValueCategory = prvalue +# 2293| getQualifier(): [VariableAccess] (__begin) +# 2293| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2293| ValueCategory = lvalue +# 2293| getArgument(0): [ConstructorCall] call to iterator +# 2293| Type = [VoidType] void +# 2293| ValueCategory = prvalue +# 2293| getArgument(0): [VariableAccess] (__end) +# 2293| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2293| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> & +#-----| ValueCategory = prvalue +#-----| getExpr(): [CStyleCast] (const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> +#-----| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> +#-----| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> +#-----| ValueCategory = lvalue +# 2293| getUpdate(): [FunctionCall] call to operator++ +# 2293| Type = [LValueReferenceType] iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> & +# 2293| ValueCategory = prvalue +# 2293| getQualifier(): [VariableAccess] (__begin) +# 2293| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2293| ValueCategory = lvalue +# 2293| getChild(5): [DeclStmt] declaration +# 2293| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2293| Type = [Struct] String +# 2293| getVariable().getInitializer(): [Initializer] initializer for s +# 2293| getExpr(): [ConstructorCall] call to String +# 2293| Type = [VoidType] void +# 2293| ValueCategory = prvalue +# 2293| getArgument(0): [OverloadedPointerDereferenceExpr] call to operator* +# 2293| Type = [LValueReferenceType] String & +# 2293| ValueCategory = prvalue +# 2293| getQualifier(): [VariableAccess] (__begin) +# 2293| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2293| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> +#-----| ValueCategory = lvalue +# 2293| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +# 2293| Type = [LValueReferenceType] const String & +# 2293| ValueCategory = prvalue +# 2293| getExpr(): [CStyleCast] (const String)... +# 2293| Conversion = [GlvalueConversion] glvalue conversion +# 2293| Type = [SpecifiedType] const String +# 2293| ValueCategory = lvalue +# 2293| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +# 2293| Type = [Struct] String +# 2293| ValueCategory = lvalue +# 2293| getStmt(): [BlockStmt] { ... } +# 2294| getStmt(0): [DeclStmt] declaration +# 2294| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2294| Type = [Struct] String +# 2294| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2294| getExpr(): [ConstructorCall] call to String +# 2294| Type = [VoidType] void +# 2294| ValueCategory = prvalue +# 2295| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2295| Type = [VoidType] void +# 2295| ValueCategory = prvalue +# 2295| getQualifier(): [VariableAccess] s2 +# 2295| Type = [Struct] String +# 2295| ValueCategory = lvalue +# 2293| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 2293| Type = [VoidType] void +# 2293| ValueCategory = prvalue +# 2293| getQualifier(): [VariableAccess] s +# 2293| Type = [Struct] String +# 2293| ValueCategory = lvalue +# 2293| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2293| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> +# 2293| ValueCategory = lvalue +# 2297| getStmt(3): [ForStmt] for(...;...;...) ... +# 2297| getInitialization(): [DeclStmt] declaration +# 2297| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2297| Type = [Struct] String +# 2297| getVariable().getInitializer(): [Initializer] initializer for s +# 2297| getExpr(): [ConstructorCall] call to String +# 2297| Type = [VoidType] void +# 2297| ValueCategory = prvalue +# 2297| getArgument(0): hello +# 2297| Type = [ArrayType] const char[6] +# 2297| Value = [StringLiteral] "hello" +# 2297| ValueCategory = lvalue +# 2297| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2297| Type = [PointerType] const char * +# 2297| ValueCategory = prvalue +# 2297| getDeclarationEntry(1): [VariableDeclarationEntry] definition of s2 +# 2297| Type = [Struct] String +# 2297| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2297| getExpr(): [ConstructorCall] call to String +# 2297| Type = [VoidType] void +# 2297| ValueCategory = prvalue +# 2297| getArgument(0): world +# 2297| Type = [ArrayType] const char[6] +# 2297| Value = [StringLiteral] "world" +# 2297| ValueCategory = lvalue +# 2297| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2297| Type = [PointerType] const char * +# 2297| ValueCategory = prvalue +# 2297| getCondition(): [NEExpr] ... != ... # 2297| Type = [BoolType] bool -# 2297| ValueCategory = prvalue(load) -# 2297| getThen(): [BlockStmt] { ... } -# 2298| getStmt(0): [ReturnStmt] return ... -# 2304| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2304| Type = [VoidType] void -# 2304| ValueCategory = prvalue -# 2304| getQualifier(): [VariableAccess] s -# 2304| Type = [Struct] String -# 2304| ValueCategory = lvalue -# 2300| getStmt(2): [IfStmt] if (...) ... -# 2300| getCondition(): [VariableAccess] b -# 2300| Type = [BoolType] bool -# 2300| ValueCategory = prvalue(load) -# 2300| getThen(): [BlockStmt] { ... } -# 2301| getStmt(0): [ReturnStmt] return ... -# 2301| getExpr(): [FunctionCall] call to VoidFunc -# 2301| Type = [VoidType] void -# 2301| ValueCategory = prvalue -# 2304| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2304| Type = [VoidType] void -# 2304| ValueCategory = prvalue -# 2304| getQualifier(): [VariableAccess] s -# 2304| Type = [Struct] String -# 2304| ValueCategory = lvalue -# 2303| getStmt(3): [ExprStmt] ExprStmt -# 2303| getExpr(): [VariableAccess] s -# 2303| Type = [Struct] String -# 2303| ValueCategory = lvalue -# 2304| getStmt(4): [ReturnStmt] return ... -# 2304| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2304| Type = [VoidType] void -# 2304| ValueCategory = prvalue -# 2304| getQualifier(): [VariableAccess] s -# 2304| Type = [Struct] String -# 2304| ValueCategory = lvalue -# 2306| [TopLevelFunction] int IfReturnDestructors3(bool) -# 2306| <params>: -# 2306| getParameter(0): [Parameter] b -# 2306| Type = [BoolType] bool -# 2306| getEntryPoint(): [BlockStmt] { ... } -# 2307| getStmt(0): [DeclStmt] declaration -# 2307| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2307| Type = [Struct] String -# 2307| getVariable().getInitializer(): [Initializer] initializer for s -# 2307| getExpr(): [ConstructorCall] call to String -# 2307| Type = [VoidType] void -# 2307| ValueCategory = prvalue -# 2308| getStmt(1): [IfStmt] if (...) ... -# 2308| getCondition(): [VariableAccess] b -# 2308| Type = [BoolType] bool -# 2308| ValueCategory = prvalue(load) -# 2308| getThen(): [BlockStmt] { ... } -# 2309| getStmt(0): [ReturnStmt] return ... -# 2309| getExpr(): [Literal] 1 -# 2309| Type = [IntType] int -# 2309| Value = [Literal] 1 -# 2309| ValueCategory = prvalue -# 2312| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2312| Type = [VoidType] void -# 2312| ValueCategory = prvalue -# 2312| getQualifier(): [VariableAccess] s -# 2312| Type = [Struct] String -# 2312| ValueCategory = lvalue -# 2311| getStmt(2): [ReturnStmt] return ... -# 2311| getExpr(): [Literal] 0 -# 2311| Type = [IntType] int -# 2311| Value = [Literal] 0 -# 2311| ValueCategory = prvalue -# 2312| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2312| Type = [VoidType] void -# 2312| ValueCategory = prvalue -# 2312| getQualifier(): [VariableAccess] s -# 2312| Type = [Struct] String -# 2312| ValueCategory = lvalue -# 2314| [TopLevelFunction] void VoidReturnDestructors() +# 2297| ValueCategory = prvalue +# 2297| getLeftOperand(): [VariableAccess] c +# 2297| Type = [PlainCharType] char +# 2297| ValueCategory = prvalue(load) +# 2297| getRightOperand(): [Literal] 0 +# 2297| Type = [IntType] int +# 2297| Value = [Literal] 0 +# 2297| ValueCategory = prvalue +# 2297| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... +# 2297| Conversion = [IntegralConversion] integral conversion +# 2297| Type = [IntType] int +# 2297| ValueCategory = prvalue +# 2297| getUpdate(): [AssignExpr] ... = ... +# 2297| Type = [PlainCharType] char +# 2297| ValueCategory = lvalue +# 2297| getLValue(): [VariableAccess] c +# 2297| Type = [PlainCharType] char +# 2297| ValueCategory = lvalue +# 2297| getRValue(): [FunctionCall] call to pop_back +# 2297| Type = [PlainCharType] char +# 2297| ValueCategory = prvalue +# 2297| getQualifier(): [VariableAccess] s +# 2297| Type = [Struct] String +# 2297| ValueCategory = lvalue +# 2297| getStmt(): [BlockStmt] { ... } +# 2298| getStmt(0): [ExprStmt] ExprStmt +# 2298| getExpr(): [AssignExpr] ... = ... +# 2298| Type = [PlainCharType] char +# 2298| ValueCategory = lvalue +# 2298| getLValue(): [VariableAccess] c +# 2298| Type = [PlainCharType] char +# 2298| ValueCategory = lvalue +# 2298| getRValue(): [Literal] 0 +# 2298| Type = [IntType] int +# 2298| Value = [Literal] 0 +# 2298| ValueCategory = prvalue +# 2298| getRValue().getFullyConverted(): [CStyleCast] (char)... +# 2298| Conversion = [IntegralConversion] integral conversion +# 2298| Type = [PlainCharType] char +# 2298| Value = [CStyleCast] 0 +# 2298| ValueCategory = prvalue +# 2297| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2297| Type = [VoidType] void +# 2297| ValueCategory = prvalue +# 2297| getQualifier(): [VariableAccess] s2 +# 2297| Type = [Struct] String +# 2297| ValueCategory = lvalue +# 2297| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 2297| Type = [VoidType] void +# 2297| ValueCategory = prvalue +# 2297| getQualifier(): [VariableAccess] s +# 2297| Type = [Struct] String +# 2297| ValueCategory = lvalue +# 2300| getStmt(4): [ReturnStmt] return ... +# 2302| [TopLevelFunction] void IfDestructors2(bool) +# 2302| <params>: +# 2302| getParameter(0): [Parameter] b +# 2302| Type = [BoolType] bool +# 2302| getEntryPoint(): [BlockStmt] { ... } +# 2303| getStmt(0): [IfStmt] if (...) ... +# 2303| getInitialization(): [DeclStmt] declaration +# 2303| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2303| Type = [Struct] String +# 2303| getVariable().getInitializer(): [Initializer] initializer for s +# 2303| getExpr(): [ConstructorCall] call to String +# 2303| Type = [VoidType] void +# 2303| ValueCategory = prvalue +# 2303| getArgument(0): hello +# 2303| Type = [ArrayType] const char[6] +# 2303| Value = [StringLiteral] "hello" +# 2303| ValueCategory = lvalue +# 2303| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 2303| Type = [PointerType] const char * +# 2303| ValueCategory = prvalue +# 2303| getCondition(): [VariableAccess] b +# 2303| Type = [BoolType] bool +# 2303| ValueCategory = prvalue(load) +# 2303| getThen(): [BlockStmt] { ... } +# 2304| getStmt(0): [DeclStmt] declaration +# 2304| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2304| Type = [IntType] int +# 2304| getVariable().getInitializer(): [Initializer] initializer for x +# 2304| getExpr(): [Literal] 0 +# 2304| Type = [IntType] int +# 2304| Value = [Literal] 0 +# 2304| ValueCategory = prvalue +# 2305| getElse(): [BlockStmt] { ... } +# 2306| getStmt(0): [DeclStmt] declaration +# 2306| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2306| Type = [IntType] int +# 2306| getVariable().getInitializer(): [Initializer] initializer for y +# 2306| getExpr(): [Literal] 0 +# 2306| Type = [IntType] int +# 2306| Value = [Literal] 0 +# 2306| ValueCategory = prvalue +# 2307| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2307| Type = [VoidType] void +# 2307| ValueCategory = prvalue +# 2307| getQualifier(): [VariableAccess] s +# 2307| Type = [Struct] String +# 2307| ValueCategory = lvalue +# 2308| getStmt(1): [ReturnStmt] return ... +# 2310| [CopyAssignmentOperator] Bool& Bool::operator=(Bool const&) +# 2310| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Bool & +# 2310| [CopyConstructor] void Bool::Bool(Bool const&) +# 2310| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const Bool & +# 2312| [Constructor] void Bool::Bool(bool) +# 2312| <params>: +# 2312| getParameter(0): [Parameter] b_ +# 2312| Type = [BoolType] bool +# 2313| [ConversionOperator] bool Bool::operator bool() +# 2313| <params>: +# 2314| [Destructor] void Bool::~Bool() # 2314| <params>: -# 2314| getEntryPoint(): [BlockStmt] { ... } -# 2315| getStmt(0): [DeclStmt] declaration -# 2315| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s -# 2315| Type = [Struct] String -# 2315| getVariable().getInitializer(): [Initializer] initializer for s -# 2315| getExpr(): [ConstructorCall] call to String -# 2315| Type = [VoidType] void -# 2315| ValueCategory = prvalue -# 2316| getStmt(1): [ReturnStmt] return ... -# 2316| getExpr(): [FunctionCall] call to VoidFunc -# 2316| Type = [VoidType] void -# 2316| ValueCategory = prvalue -# 2317| getImplicitDestructorCall(0): [DestructorCall] call to ~String -# 2317| Type = [VoidType] void -# 2317| ValueCategory = prvalue -# 2317| getQualifier(): [VariableAccess] s -# 2317| Type = [Struct] String -# 2317| ValueCategory = lvalue -# 2320| [CopyAssignmentOperator] return_routine_type::HasVoidToIntFunc& return_routine_type::HasVoidToIntFunc::operator=(return_routine_type::HasVoidToIntFunc const&) -# 2320| <params>: +# 2317| [TopLevelFunction] void IfDestructors3(bool) +# 2317| <params>: +# 2317| getParameter(0): [Parameter] b +# 2317| Type = [BoolType] bool +# 2317| getEntryPoint(): [BlockStmt] { ... } +# 2318| getStmt(0): [IfStmt] if (...) ... +# 2318| getCondition(): [ConditionDeclExpr] (condition decl) +# 2318| Type = [BoolType] bool +# 2318| ValueCategory = prvalue +# 2318| getChild(0): [FunctionCall] call to operator bool +# 2318| Type = [BoolType] bool +# 2318| ValueCategory = prvalue +# 2318| getQualifier(): [VariableAccess] B +# 2318| Type = [Class] Bool +# 2318| ValueCategory = prvalue(load) +# 2318| getThen(): [BlockStmt] { ... } +# 2319| getStmt(0): [DeclStmt] declaration +# 2319| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 +# 2319| Type = [Struct] String +# 2319| getVariable().getInitializer(): [Initializer] initializer for s1 +# 2319| getExpr(): [ConstructorCall] call to String +# 2319| Type = [VoidType] void +# 2319| ValueCategory = prvalue +# 2320| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2320| Type = [VoidType] void +# 2320| ValueCategory = prvalue +# 2320| getQualifier(): [VariableAccess] s1 +# 2320| Type = [Struct] String +# 2320| ValueCategory = lvalue +# 2320| getElse(): [BlockStmt] { ... } +# 2321| getStmt(0): [DeclStmt] declaration +# 2321| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s2 +# 2321| Type = [Struct] String +# 2321| getVariable().getInitializer(): [Initializer] initializer for s2 +# 2321| getExpr(): [ConstructorCall] call to String +# 2321| Type = [VoidType] void +# 2321| ValueCategory = prvalue +# 2322| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2322| Type = [VoidType] void +# 2322| ValueCategory = prvalue +# 2322| getQualifier(): [VariableAccess] s2 +# 2322| Type = [Struct] String +# 2322| ValueCategory = lvalue +# 2322| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool +# 2322| Type = [VoidType] void +# 2322| ValueCategory = prvalue +# 2322| getQualifier(): [VariableAccess] B +# 2322| Type = [Class] Bool +# 2322| ValueCategory = lvalue +# 2323| getStmt(1): [ReturnStmt] return ... +# 2325| [TopLevelFunction] void WhileLoopDestructors(bool) +# 2325| <params>: +# 2325| getParameter(0): [Parameter] b +# 2325| Type = [BoolType] bool +# 2325| getEntryPoint(): [BlockStmt] { ... } +# 2326| getStmt(0): [BlockStmt] { ... } +# 2327| getStmt(0): [DeclStmt] declaration +# 2327| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2327| Type = [Struct] String +# 2327| getVariable().getInitializer(): [Initializer] initializer for s +# 2327| getExpr(): [ConstructorCall] call to String +# 2327| Type = [VoidType] void +# 2327| ValueCategory = prvalue +# 2328| getStmt(1): [WhileStmt] while (...) ... +# 2328| getCondition(): [VariableAccess] b +# 2328| Type = [BoolType] bool +# 2328| ValueCategory = prvalue(load) +# 2328| getStmt(): [BlockStmt] { ... } +# 2329| getStmt(0): [ExprStmt] ExprStmt +# 2329| getExpr(): [AssignExpr] ... = ... +# 2329| Type = [BoolType] bool +# 2329| ValueCategory = lvalue +# 2329| getLValue(): [VariableAccess] b +# 2329| Type = [BoolType] bool +# 2329| ValueCategory = lvalue +# 2329| getRValue(): [Literal] 0 +# 2329| Type = [BoolType] bool +# 2329| Value = [Literal] 0 +# 2329| ValueCategory = prvalue +# 2331| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2331| Type = [VoidType] void +# 2331| ValueCategory = prvalue +# 2331| getQualifier(): [VariableAccess] s +# 2331| Type = [Struct] String +# 2331| ValueCategory = lvalue +# 2333| getStmt(1): [BlockStmt] { ... } +# 2334| getStmt(0): [WhileStmt] while (...) ... +# 2334| getCondition(): [ConditionDeclExpr] (condition decl) +# 2334| Type = [BoolType] bool +# 2334| ValueCategory = prvalue +# 2334| getChild(0): [FunctionCall] call to operator bool +# 2334| Type = [BoolType] bool +# 2334| ValueCategory = prvalue +# 2334| getQualifier(): [VariableAccess] B +# 2334| Type = [Class] Bool +# 2334| ValueCategory = prvalue(load) +# 2334| getStmt(): [BlockStmt] { ... } +# 2335| getStmt(0): [ExprStmt] ExprStmt +# 2335| getExpr(): [AssignExpr] ... = ... +# 2335| Type = [BoolType] bool +# 2335| ValueCategory = lvalue +# 2335| getLValue(): [VariableAccess] b +# 2335| Type = [BoolType] bool +# 2335| ValueCategory = lvalue +# 2335| getRValue(): [Literal] 0 +# 2335| Type = [BoolType] bool +# 2335| Value = [Literal] 0 +# 2335| ValueCategory = prvalue +# 2336| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool +# 2336| Type = [VoidType] void +# 2336| ValueCategory = prvalue +# 2336| getQualifier(): [VariableAccess] B +# 2336| Type = [Class] Bool +# 2336| ValueCategory = lvalue +# 2336| getImplicitDestructorCall(0): [DestructorCall] call to ~Bool +# 2336| Type = [VoidType] void +# 2336| ValueCategory = prvalue +# 2336| getQualifier(): [VariableAccess] B +# 2336| Type = [Class] Bool +# 2336| ValueCategory = lvalue +# 2338| getStmt(2): [ReturnStmt] return ... +# 2340| [TopLevelFunction] void VoidFunc() +# 2340| <params>: +# 2340| getEntryPoint(): [BlockStmt] { ... } +# 2340| getStmt(0): [ReturnStmt] return ... +# 2342| [TopLevelFunction] void IfReturnDestructors(bool) +# 2342| <params>: +# 2342| getParameter(0): [Parameter] b +# 2342| Type = [BoolType] bool +# 2342| getEntryPoint(): [BlockStmt] { ... } +# 2343| getStmt(0): [DeclStmt] declaration +# 2343| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2343| Type = [Struct] String +# 2343| getVariable().getInitializer(): [Initializer] initializer for s +# 2343| getExpr(): [ConstructorCall] call to String +# 2343| Type = [VoidType] void +# 2343| ValueCategory = prvalue +# 2344| getStmt(1): [IfStmt] if (...) ... +# 2344| getCondition(): [VariableAccess] b +# 2344| Type = [BoolType] bool +# 2344| ValueCategory = prvalue(load) +# 2344| getThen(): [BlockStmt] { ... } +# 2345| getStmt(0): [ReturnStmt] return ... +# 2351| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2351| Type = [VoidType] void +# 2351| ValueCategory = prvalue +# 2351| getQualifier(): [VariableAccess] s +# 2351| Type = [Struct] String +# 2351| ValueCategory = lvalue +# 2347| getStmt(2): [IfStmt] if (...) ... +# 2347| getCondition(): [VariableAccess] b +# 2347| Type = [BoolType] bool +# 2347| ValueCategory = prvalue(load) +# 2347| getThen(): [BlockStmt] { ... } +# 2348| getStmt(0): [ReturnStmt] return ... +# 2348| getExpr(): [FunctionCall] call to VoidFunc +# 2348| Type = [VoidType] void +# 2348| ValueCategory = prvalue +# 2351| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2351| Type = [VoidType] void +# 2351| ValueCategory = prvalue +# 2351| getQualifier(): [VariableAccess] s +# 2351| Type = [Struct] String +# 2351| ValueCategory = lvalue +# 2350| getStmt(3): [ExprStmt] ExprStmt +# 2350| getExpr(): [VariableAccess] s +# 2350| Type = [Struct] String +# 2350| ValueCategory = lvalue +# 2351| getStmt(4): [ReturnStmt] return ... +# 2351| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2351| Type = [VoidType] void +# 2351| ValueCategory = prvalue +# 2351| getQualifier(): [VariableAccess] s +# 2351| Type = [Struct] String +# 2351| ValueCategory = lvalue +# 2353| [TopLevelFunction] int IfReturnDestructors3(bool) +# 2353| <params>: +# 2353| getParameter(0): [Parameter] b +# 2353| Type = [BoolType] bool +# 2353| getEntryPoint(): [BlockStmt] { ... } +# 2354| getStmt(0): [DeclStmt] declaration +# 2354| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2354| Type = [Struct] String +# 2354| getVariable().getInitializer(): [Initializer] initializer for s +# 2354| getExpr(): [ConstructorCall] call to String +# 2354| Type = [VoidType] void +# 2354| ValueCategory = prvalue +# 2355| getStmt(1): [IfStmt] if (...) ... +# 2355| getCondition(): [VariableAccess] b +# 2355| Type = [BoolType] bool +# 2355| ValueCategory = prvalue(load) +# 2355| getThen(): [BlockStmt] { ... } +# 2356| getStmt(0): [ReturnStmt] return ... +# 2356| getExpr(): [Literal] 1 +# 2356| Type = [IntType] int +# 2356| Value = [Literal] 1 +# 2356| ValueCategory = prvalue +# 2359| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2359| Type = [VoidType] void +# 2359| ValueCategory = prvalue +# 2359| getQualifier(): [VariableAccess] s +# 2359| Type = [Struct] String +# 2359| ValueCategory = lvalue +# 2358| getStmt(2): [ReturnStmt] return ... +# 2358| getExpr(): [Literal] 0 +# 2358| Type = [IntType] int +# 2358| Value = [Literal] 0 +# 2358| ValueCategory = prvalue +# 2359| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2359| Type = [VoidType] void +# 2359| ValueCategory = prvalue +# 2359| getQualifier(): [VariableAccess] s +# 2359| Type = [Struct] String +# 2359| ValueCategory = lvalue +# 2361| [TopLevelFunction] void VoidReturnDestructors() +# 2361| <params>: +# 2361| getEntryPoint(): [BlockStmt] { ... } +# 2362| getStmt(0): [DeclStmt] declaration +# 2362| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s +# 2362| Type = [Struct] String +# 2362| getVariable().getInitializer(): [Initializer] initializer for s +# 2362| getExpr(): [ConstructorCall] call to String +# 2362| Type = [VoidType] void +# 2362| ValueCategory = prvalue +# 2363| getStmt(1): [ReturnStmt] return ... +# 2363| getExpr(): [FunctionCall] call to VoidFunc +# 2363| Type = [VoidType] void +# 2363| ValueCategory = prvalue +# 2364| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2364| Type = [VoidType] void +# 2364| ValueCategory = prvalue +# 2364| getQualifier(): [VariableAccess] s +# 2364| Type = [Struct] String +# 2364| ValueCategory = lvalue +# 2367| [CopyAssignmentOperator] return_routine_type::HasVoidToIntFunc& return_routine_type::HasVoidToIntFunc::operator=(return_routine_type::HasVoidToIntFunc const&) +# 2367| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const HasVoidToIntFunc & -# 2320| [MoveAssignmentOperator] return_routine_type::HasVoidToIntFunc& return_routine_type::HasVoidToIntFunc::operator=(return_routine_type::HasVoidToIntFunc&&) -# 2320| <params>: +# 2367| [MoveAssignmentOperator] return_routine_type::HasVoidToIntFunc& return_routine_type::HasVoidToIntFunc::operator=(return_routine_type::HasVoidToIntFunc&&) +# 2367| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [RValueReferenceType] HasVoidToIntFunc && -# 2322| [MemberFunction] void return_routine_type::HasVoidToIntFunc::VoidToInt(int) -# 2322| <params>: -# 2322| getParameter(0): [Parameter] (unnamed parameter 0) -# 2322| Type = [IntType] int -# 2327| [TopLevelFunction] return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() -# 2327| <params>: -# 2328| getEntryPoint(): [BlockStmt] { ... } -# 2329| getStmt(0): [ReturnStmt] return ... -# 2329| getExpr(): [FunctionAccess] VoidToInt -# 2329| Type = [RoutineType] ..()(..) -# 2329| ValueCategory = prvalue +# 2369| [MemberFunction] void return_routine_type::HasVoidToIntFunc::VoidToInt(int) +# 2369| <params>: +# 2369| getParameter(0): [Parameter] (unnamed parameter 0) +# 2369| Type = [IntType] int +# 2374| [TopLevelFunction] return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() +# 2374| <params>: +# 2375| getEntryPoint(): [BlockStmt] { ... } +# 2376| getStmt(0): [ReturnStmt] return ... +# 2376| getExpr(): [FunctionAccess] VoidToInt +# 2376| Type = [RoutineType] ..()(..) +# 2376| ValueCategory = prvalue perf-regression.cpp: # 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&) # 4| <params>: 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 fe75f86cfc5..a5c45046307 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -7268,4035 +7268,4057 @@ ir.cpp: # 1054| v1054_43(void) = AliasedUse : ~m1054_20 # 1054| v1054_44(void) = ExitFunction : -# 1079| void RangeBasedFor(vector<int> const&) -# 1079| Block 0 -# 1079| v1079_1(void) = EnterFunction : -# 1079| m1079_2(unknown) = AliasedDefinition : -# 1079| m1079_3(unknown) = InitializeNonLocal : -# 1079| m1079_4(unknown) = Chi : total:m1079_2, partial:m1079_3 -# 1079| r1079_5(glval<vector<int> &>) = VariableAddress[v] : -# 1079| m1079_6(vector<int> &) = InitializeParameter[v] : &:r1079_5 -# 1079| r1079_7(vector<int> &) = Load[v] : &:r1079_5, m1079_6 -# 1079| m1079_8(unknown) = InitializeIndirection[v] : &:r1079_7 -# 1080| r1080_1(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1080| r1080_2(glval<vector<int> &>) = VariableAddress[v] : -# 1080| r1080_3(vector<int> &) = Load[v] : &:r1080_2, m1079_6 -# 1080| r1080_4(glval<vector<int>>) = CopyValue : r1080_3 -# 1080| r1080_5(vector<int> &) = CopyValue : r1080_4 -# 1080| m1080_6(vector<int> &) = Store[(__range)] : &:r1080_1, r1080_5 -# 1080| r1080_7(glval<iterator>) = VariableAddress[(__begin)] : -# 1080| r1080_8(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1080| r1080_9(vector<int> &) = Load[(__range)] : &:r1080_8, m1080_6 -#-----| r0_1(glval<vector<int>>) = CopyValue : r1080_9 -# 1080| r1080_10(glval<unknown>) = FunctionAddress[begin] : -# 1080| r1080_11(iterator) = Call[begin] : func:r1080_10, this:r0_1 -# 1080| m1080_12(unknown) = ^CallSideEffect : ~m1079_4 -# 1080| m1080_13(unknown) = Chi : total:m1079_4, partial:m1080_12 -#-----| v0_2(void) = ^IndirectReadSideEffect[-1] : &:r0_1, ~m1079_8 -# 1080| m1080_14(iterator) = Store[(__begin)] : &:r1080_7, r1080_11 -# 1080| r1080_15(glval<iterator>) = VariableAddress[(__end)] : -# 1080| r1080_16(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1080| r1080_17(vector<int> &) = Load[(__range)] : &:r1080_16, m1080_6 -#-----| r0_3(glval<vector<int>>) = CopyValue : r1080_17 -# 1080| r1080_18(glval<unknown>) = FunctionAddress[end] : -# 1080| r1080_19(iterator) = Call[end] : func:r1080_18, this:r0_3 -# 1080| m1080_20(unknown) = ^CallSideEffect : ~m1080_13 -# 1080| m1080_21(unknown) = Chi : total:m1080_13, partial:m1080_20 -#-----| v0_4(void) = ^IndirectReadSideEffect[-1] : &:r0_3, ~m1079_8 -# 1080| m1080_22(iterator) = Store[(__end)] : &:r1080_15, r1080_19 +# 1126| void RangeBasedFor(std::vector<int> const&) +# 1126| Block 0 +# 1126| v1126_1(void) = EnterFunction : +# 1126| m1126_2(unknown) = AliasedDefinition : +# 1126| m1126_3(unknown) = InitializeNonLocal : +# 1126| m1126_4(unknown) = Chi : total:m1126_2, partial:m1126_3 +# 1126| r1126_5(glval<vector<int> &>) = VariableAddress[v] : +# 1126| m1126_6(vector<int> &) = InitializeParameter[v] : &:r1126_5 +# 1126| r1126_7(vector<int> &) = Load[v] : &:r1126_5, m1126_6 +# 1126| m1126_8(unknown) = InitializeIndirection[v] : &:r1126_7 +# 1127| r1127_1(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1127| r1127_2(glval<vector<int> &>) = VariableAddress[v] : +# 1127| r1127_3(vector<int> &) = Load[v] : &:r1127_2, m1126_6 +# 1127| r1127_4(glval<vector<int>>) = CopyValue : r1127_3 +# 1127| r1127_5(vector<int> &) = CopyValue : r1127_4 +# 1127| m1127_6(vector<int> &) = Store[(__range)] : &:r1127_1, r1127_5 +# 1127| r1127_7(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1127| r1127_8(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1127| r1127_9(vector<int> &) = Load[(__range)] : &:r1127_8, m1127_6 +#-----| r0_1(glval<vector<int>>) = CopyValue : r1127_9 +# 1127| r1127_10(glval<unknown>) = FunctionAddress[begin] : +# 1127| r1127_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r1127_10, this:r0_1 +# 1127| m1127_12(unknown) = ^CallSideEffect : ~m1126_4 +# 1127| m1127_13(unknown) = Chi : total:m1126_4, partial:m1127_12 +#-----| v0_2(void) = ^IndirectReadSideEffect[-1] : &:r0_1, ~m1126_8 +# 1127| m1127_14(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1127_7, r1127_11 +# 1127| r1127_15(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 1127| r1127_16(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1127| r1127_17(vector<int> &) = Load[(__range)] : &:r1127_16, m1127_6 +#-----| r0_3(glval<vector<int>>) = CopyValue : r1127_17 +# 1127| r1127_18(glval<unknown>) = FunctionAddress[end] : +# 1127| r1127_19(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1127_18, this:r0_3 +# 1127| m1127_20(unknown) = ^CallSideEffect : ~m1127_13 +# 1127| m1127_21(unknown) = Chi : total:m1127_13, partial:m1127_20 +#-----| v0_4(void) = ^IndirectReadSideEffect[-1] : &:r0_3, ~m1126_8 +# 1127| m1127_22(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1127_15, r1127_19 #-----| Goto -> Block 1 -# 1080| Block 1 -# 1080| m1080_23(iterator) = Phi : from 0:m1080_14, from 4:m1080_49 -# 1080| m1080_24(unknown) = Phi : from 0:~m1080_21, from 4:~m1080_46 -# 1080| r1080_25(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_5(glval<iterator>) = Convert : r1080_25 -# 1080| r1080_26(glval<unknown>) = FunctionAddress[operator!=] : -# 1080| r1080_27(glval<iterator>) = VariableAddress[(__end)] : -# 1080| r1080_28(iterator) = Load[(__end)] : &:r1080_27, m1080_22 -# 1080| r1080_29(bool) = Call[operator!=] : func:r1080_26, this:r0_5, 0:r1080_28 -# 1080| m1080_30(unknown) = ^CallSideEffect : ~m1080_24 -# 1080| m1080_31(unknown) = Chi : total:m1080_24, partial:m1080_30 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m1080_23 -# 1080| v1080_32(void) = ConditionalBranch : r1080_29 +# 1127| Block 1 +# 1127| m1127_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 0:m1127_14, from 4:m1127_54 +# 1127| m1127_24(unknown) = Phi : from 0:~m1127_21, from 4:~m1127_51 +# 1127| r1127_25(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_5(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_25 +# 1127| r1127_26(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_6(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : +#-----| m0_7(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_6 +# 1127| r1127_27(glval<unknown>) = FunctionAddress[iterator] : +# 1127| r1127_28(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_28 +#-----| r0_9(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_8 +# 1127| v1127_29(void) = Call[iterator] : func:r1127_27, this:r0_6, 0:r0_9 +# 1127| m1127_30(unknown) = ^CallSideEffect : ~m1127_24 +# 1127| m1127_31(unknown) = Chi : total:m1127_24, partial:m1127_30 +#-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_9, ~m1127_22 +# 1127| m1127_32(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_6 +# 1127| m1127_33(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_7, partial:m1127_32 +#-----| r0_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_6, m1127_33 +# 1127| r1127_34(bool) = Call[operator!=] : func:r1127_26, this:r0_5, 0:r0_11 +# 1127| m1127_35(unknown) = ^CallSideEffect : ~m1127_31 +# 1127| m1127_36(unknown) = Chi : total:m1127_31, partial:m1127_35 +#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m1127_23 +# 1127| v1127_37(void) = ConditionalBranch : r1127_34 #-----| False -> Block 5 #-----| True -> Block 2 -# 1080| Block 2 -# 1080| r1080_33(glval<int>) = VariableAddress[e] : -# 1080| r1080_34(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator>) = Convert : r1080_34 -# 1080| r1080_35(glval<unknown>) = FunctionAddress[operator*] : -# 1080| r1080_36(int &) = Call[operator*] : func:r1080_35, this:r0_7 -# 1080| m1080_37(unknown) = ^CallSideEffect : ~m1080_31 -# 1080| m1080_38(unknown) = Chi : total:m1080_31, partial:m1080_37 -#-----| v0_8(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m1080_23 -# 1080| r1080_39(int) = Load[?] : &:r1080_36, ~m1080_38 -# 1080| m1080_40(int) = Store[e] : &:r1080_33, r1080_39 -# 1081| r1081_1(glval<int>) = VariableAddress[e] : -# 1081| r1081_2(int) = Load[e] : &:r1081_1, m1080_40 -# 1081| r1081_3(int) = Constant[0] : -# 1081| r1081_4(bool) = CompareGT : r1081_2, r1081_3 -# 1081| v1081_5(void) = ConditionalBranch : r1081_4 +# 1127| Block 2 +# 1127| r1127_38(glval<int>) = VariableAddress[e] : +# 1127| r1127_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_39 +# 1127| r1127_40(glval<unknown>) = FunctionAddress[operator*] : +# 1127| r1127_41(int &) = Call[operator*] : func:r1127_40, this:r0_13 +# 1127| m1127_42(unknown) = ^CallSideEffect : ~m1127_36 +# 1127| m1127_43(unknown) = Chi : total:m1127_36, partial:m1127_42 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_13, m1127_23 +# 1127| r1127_44(int) = Load[?] : &:r1127_41, ~m1127_43 +# 1127| m1127_45(int) = Store[e] : &:r1127_38, r1127_44 +# 1128| r1128_1(glval<int>) = VariableAddress[e] : +# 1128| r1128_2(int) = Load[e] : &:r1128_1, m1127_45 +# 1128| r1128_3(int) = Constant[0] : +# 1128| r1128_4(bool) = CompareGT : r1128_2, r1128_3 +# 1128| v1128_5(void) = ConditionalBranch : r1128_4 #-----| False -> Block 4 #-----| True -> Block 3 -# 1082| Block 3 -# 1082| v1082_1(void) = NoOp : +# 1129| Block 3 +# 1129| v1129_1(void) = NoOp : #-----| Goto -> Block 4 -# 1080| Block 4 -# 1080| v1080_41(void) = NoOp : -# 1080| r1080_42(glval<iterator>) = VariableAddress[(__begin)] : -# 1080| r1080_43(glval<unknown>) = FunctionAddress[operator++] : -# 1080| r1080_44(iterator &) = Call[operator++] : func:r1080_43, this:r1080_42 -# 1080| m1080_45(unknown) = ^CallSideEffect : ~m1080_38 -# 1080| m1080_46(unknown) = Chi : total:m1080_38, partial:m1080_45 -# 1080| v1080_47(void) = ^IndirectReadSideEffect[-1] : &:r1080_42, m1080_23 -# 1080| m1080_48(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r1080_42 -# 1080| m1080_49(iterator) = Chi : total:m1080_23, partial:m1080_48 -# 1080| r1080_50(glval<iterator>) = CopyValue : r1080_44 +# 1127| Block 4 +# 1127| v1127_46(void) = NoOp : +# 1127| r1127_47(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1127| r1127_48(glval<unknown>) = FunctionAddress[operator++] : +# 1127| r1127_49(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1127_48, this:r1127_47 +# 1127| m1127_50(unknown) = ^CallSideEffect : ~m1127_43 +# 1127| m1127_51(unknown) = Chi : total:m1127_43, partial:m1127_50 +# 1127| v1127_52(void) = ^IndirectReadSideEffect[-1] : &:r1127_47, m1127_23 +# 1127| m1127_53(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1127_47 +# 1127| m1127_54(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m1127_23, partial:m1127_53 +# 1127| r1127_55(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1127_49 #-----| Goto (back edge) -> Block 1 -# 1086| Block 5 -# 1086| r1086_1(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1086| r1086_2(glval<vector<int> &>) = VariableAddress[v] : -# 1086| r1086_3(vector<int> &) = Load[v] : &:r1086_2, m1079_6 -# 1086| r1086_4(glval<vector<int>>) = CopyValue : r1086_3 -# 1086| r1086_5(vector<int> &) = CopyValue : r1086_4 -# 1086| m1086_6(vector<int> &) = Store[(__range)] : &:r1086_1, r1086_5 -# 1086| r1086_7(glval<iterator>) = VariableAddress[(__begin)] : -# 1086| r1086_8(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1086| r1086_9(vector<int> &) = Load[(__range)] : &:r1086_8, m1086_6 -#-----| r0_9(glval<vector<int>>) = CopyValue : r1086_9 -# 1086| r1086_10(glval<unknown>) = FunctionAddress[begin] : -# 1086| r1086_11(iterator) = Call[begin] : func:r1086_10, this:r0_9 -# 1086| m1086_12(unknown) = ^CallSideEffect : ~m1080_31 -# 1086| m1086_13(unknown) = Chi : total:m1080_31, partial:m1086_12 -#-----| v0_10(void) = ^IndirectReadSideEffect[-1] : &:r0_9, ~m1079_8 -# 1086| m1086_14(iterator) = Store[(__begin)] : &:r1086_7, r1086_11 -# 1086| r1086_15(glval<iterator>) = VariableAddress[(__end)] : -# 1086| r1086_16(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1086| r1086_17(vector<int> &) = Load[(__range)] : &:r1086_16, m1086_6 -#-----| r0_11(glval<vector<int>>) = CopyValue : r1086_17 -# 1086| r1086_18(glval<unknown>) = FunctionAddress[end] : -# 1086| r1086_19(iterator) = Call[end] : func:r1086_18, this:r0_11 -# 1086| m1086_20(unknown) = ^CallSideEffect : ~m1086_13 -# 1086| m1086_21(unknown) = Chi : total:m1086_13, partial:m1086_20 -#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m1079_8 -# 1086| m1086_22(iterator) = Store[(__end)] : &:r1086_15, r1086_19 +# 1133| Block 5 +# 1133| r1133_1(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1133| r1133_2(glval<vector<int> &>) = VariableAddress[v] : +# 1133| r1133_3(vector<int> &) = Load[v] : &:r1133_2, m1126_6 +# 1133| r1133_4(glval<vector<int>>) = CopyValue : r1133_3 +# 1133| r1133_5(vector<int> &) = CopyValue : r1133_4 +# 1133| m1133_6(vector<int> &) = Store[(__range)] : &:r1133_1, r1133_5 +# 1133| r1133_7(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1133| r1133_8(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1133| r1133_9(vector<int> &) = Load[(__range)] : &:r1133_8, m1133_6 +#-----| r0_15(glval<vector<int>>) = CopyValue : r1133_9 +# 1133| r1133_10(glval<unknown>) = FunctionAddress[begin] : +# 1133| r1133_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r1133_10, this:r0_15 +# 1133| m1133_12(unknown) = ^CallSideEffect : ~m1127_36 +# 1133| m1133_13(unknown) = Chi : total:m1127_36, partial:m1133_12 +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m1126_8 +# 1133| m1133_14(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1133_7, r1133_11 +# 1133| r1133_15(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 1133| r1133_16(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1133| r1133_17(vector<int> &) = Load[(__range)] : &:r1133_16, m1133_6 +#-----| r0_17(glval<vector<int>>) = CopyValue : r1133_17 +# 1133| r1133_18(glval<unknown>) = FunctionAddress[end] : +# 1133| r1133_19(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1133_18, this:r0_17 +# 1133| m1133_20(unknown) = ^CallSideEffect : ~m1133_13 +# 1133| m1133_21(unknown) = Chi : total:m1133_13, partial:m1133_20 +#-----| v0_18(void) = ^IndirectReadSideEffect[-1] : &:r0_17, ~m1126_8 +# 1133| m1133_22(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1133_15, r1133_19 #-----| Goto -> Block 6 -# 1086| Block 6 -# 1086| m1086_23(iterator) = Phi : from 5:m1086_14, from 7:m1086_40 -# 1086| m1086_24(unknown) = Phi : from 5:~m1086_21, from 7:~m1086_37 -# 1086| r1086_25(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_13(glval<iterator>) = Convert : r1086_25 -# 1086| r1086_26(glval<unknown>) = FunctionAddress[operator!=] : -# 1086| r1086_27(glval<iterator>) = VariableAddress[(__end)] : -# 1086| r1086_28(iterator) = Load[(__end)] : &:r1086_27, m1086_22 -# 1086| r1086_29(bool) = Call[operator!=] : func:r1086_26, this:r0_13, 0:r1086_28 -# 1086| m1086_30(unknown) = ^CallSideEffect : ~m1086_24 -# 1086| m1086_31(unknown) = Chi : total:m1086_24, partial:m1086_30 -#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_13, m1086_23 -# 1086| v1086_32(void) = ConditionalBranch : r1086_29 +# 1133| Block 6 +# 1133| m1133_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 5:m1133_14, from 7:m1133_45 +# 1133| m1133_24(unknown) = Phi : from 5:~m1133_21, from 7:~m1133_42 +# 1133| r1133_25(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_25 +# 1133| r1133_26(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_20(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : +#-----| m0_21(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_20 +# 1133| r1133_27(glval<unknown>) = FunctionAddress[iterator] : +# 1133| r1133_28(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_28 +#-----| r0_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_22 +# 1133| v1133_29(void) = Call[iterator] : func:r1133_27, this:r0_20, 0:r0_23 +# 1133| m1133_30(unknown) = ^CallSideEffect : ~m1133_24 +# 1133| m1133_31(unknown) = Chi : total:m1133_24, partial:m1133_30 +#-----| v0_24(void) = ^BufferReadSideEffect[0] : &:r0_23, ~m1133_22 +# 1133| m1133_32(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_20 +# 1133| m1133_33(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_21, partial:m1133_32 +#-----| r0_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_20, m1133_33 +# 1133| r1133_34(bool) = Call[operator!=] : func:r1133_26, this:r0_19, 0:r0_25 +# 1133| m1133_35(unknown) = ^CallSideEffect : ~m1133_31 +# 1133| m1133_36(unknown) = Chi : total:m1133_31, partial:m1133_35 +#-----| v0_26(void) = ^IndirectReadSideEffect[-1] : &:r0_19, m1133_23 +# 1133| v1133_37(void) = ConditionalBranch : r1133_34 #-----| False -> Block 10 #-----| True -> Block 8 -# 1086| Block 7 -# 1086| r1086_33(glval<iterator>) = VariableAddress[(__begin)] : -# 1086| r1086_34(glval<unknown>) = FunctionAddress[operator++] : -# 1086| r1086_35(iterator &) = Call[operator++] : func:r1086_34, this:r1086_33 -# 1086| m1086_36(unknown) = ^CallSideEffect : ~m1086_47 -# 1086| m1086_37(unknown) = Chi : total:m1086_47, partial:m1086_36 -# 1086| v1086_38(void) = ^IndirectReadSideEffect[-1] : &:r1086_33, m1086_23 -# 1086| m1086_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r1086_33 -# 1086| m1086_40(iterator) = Chi : total:m1086_23, partial:m1086_39 -# 1086| r1086_41(glval<iterator>) = CopyValue : r1086_35 +# 1133| Block 7 +# 1133| r1133_38(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1133| r1133_39(glval<unknown>) = FunctionAddress[operator++] : +# 1133| r1133_40(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1133_39, this:r1133_38 +# 1133| m1133_41(unknown) = ^CallSideEffect : ~m1133_52 +# 1133| m1133_42(unknown) = Chi : total:m1133_52, partial:m1133_41 +# 1133| v1133_43(void) = ^IndirectReadSideEffect[-1] : &:r1133_38, m1133_23 +# 1133| m1133_44(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1133_38 +# 1133| m1133_45(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m1133_23, partial:m1133_44 +# 1133| r1133_46(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1133_40 #-----| Goto (back edge) -> Block 6 -# 1086| Block 8 -# 1086| r1086_42(glval<int &>) = VariableAddress[e] : -# 1086| r1086_43(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_15(glval<iterator>) = Convert : r1086_43 -# 1086| r1086_44(glval<unknown>) = FunctionAddress[operator*] : -# 1086| r1086_45(int &) = Call[operator*] : func:r1086_44, this:r0_15 -# 1086| m1086_46(unknown) = ^CallSideEffect : ~m1086_31 -# 1086| m1086_47(unknown) = Chi : total:m1086_31, partial:m1086_46 -#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m1086_23 -# 1086| r1086_48(glval<int>) = CopyValue : r1086_45 -# 1086| r1086_49(glval<int>) = Convert : r1086_48 -# 1086| r1086_50(int &) = CopyValue : r1086_49 -# 1086| m1086_51(int &) = Store[e] : &:r1086_42, r1086_50 -# 1087| r1087_1(glval<int &>) = VariableAddress[e] : -# 1087| r1087_2(int &) = Load[e] : &:r1087_1, m1086_51 -# 1087| r1087_3(int) = Load[?] : &:r1087_2, ~m1086_47 -# 1087| r1087_4(int) = Constant[5] : -# 1087| r1087_5(bool) = CompareLT : r1087_3, r1087_4 -# 1087| v1087_6(void) = ConditionalBranch : r1087_5 +# 1133| Block 8 +# 1133| r1133_47(glval<int &>) = VariableAddress[e] : +# 1133| r1133_48(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_27(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_48 +# 1133| r1133_49(glval<unknown>) = FunctionAddress[operator*] : +# 1133| r1133_50(int &) = Call[operator*] : func:r1133_49, this:r0_27 +# 1133| m1133_51(unknown) = ^CallSideEffect : ~m1133_36 +# 1133| m1133_52(unknown) = Chi : total:m1133_36, partial:m1133_51 +#-----| v0_28(void) = ^IndirectReadSideEffect[-1] : &:r0_27, m1133_23 +# 1133| r1133_53(glval<int>) = CopyValue : r1133_50 +# 1133| r1133_54(glval<int>) = Convert : r1133_53 +# 1133| r1133_55(int &) = CopyValue : r1133_54 +# 1133| m1133_56(int &) = Store[e] : &:r1133_47, r1133_55 +# 1134| r1134_1(glval<int &>) = VariableAddress[e] : +# 1134| r1134_2(int &) = Load[e] : &:r1134_1, m1133_56 +# 1134| r1134_3(int) = Load[?] : &:r1134_2, ~m1133_52 +# 1134| r1134_4(int) = Constant[5] : +# 1134| r1134_5(bool) = CompareLT : r1134_3, r1134_4 +# 1134| v1134_6(void) = ConditionalBranch : r1134_5 #-----| False -> Block 7 #-----| True -> Block 9 -# 1088| Block 9 -# 1088| v1088_1(void) = NoOp : +# 1135| Block 9 +# 1135| v1135_1(void) = NoOp : #-----| Goto -> Block 10 -# 1090| Block 10 -# 1090| m1090_1(unknown) = Phi : from 6:~m1086_31, from 9:~m1086_47 -# 1090| v1090_2(void) = NoOp : -# 1091| v1091_1(void) = NoOp : -# 1079| v1079_9(void) = ReturnIndirection[v] : &:r1079_7, m1079_8 -# 1079| v1079_10(void) = ReturnVoid : -# 1079| v1079_11(void) = AliasedUse : ~m1090_1 -# 1079| v1079_12(void) = ExitFunction : +# 1137| Block 10 +# 1137| m1137_1(unknown) = Phi : from 6:~m1133_36, from 9:~m1133_52 +# 1137| v1137_2(void) = NoOp : +# 1138| v1138_1(void) = NoOp : +# 1126| v1126_9(void) = ReturnIndirection[v] : &:r1126_7, m1126_8 +# 1126| v1126_10(void) = ReturnVoid : +# 1126| v1126_11(void) = AliasedUse : ~m1137_1 +# 1126| v1126_12(void) = ExitFunction : -# 1110| int AsmStmt(int) -# 1110| Block 0 -# 1110| v1110_1(void) = EnterFunction : -# 1110| m1110_2(unknown) = AliasedDefinition : -# 1110| m1110_3(unknown) = InitializeNonLocal : -# 1110| m1110_4(unknown) = Chi : total:m1110_2, partial:m1110_3 -# 1110| r1110_5(glval<int>) = VariableAddress[x] : -# 1110| m1110_6(int) = InitializeParameter[x] : &:r1110_5 -# 1111| m1111_1(unknown) = InlineAsm : ~m1110_4 -# 1111| m1111_2(unknown) = Chi : total:m1110_4, partial:m1111_1 -# 1112| r1112_1(glval<int>) = VariableAddress[#return] : -# 1112| r1112_2(glval<int>) = VariableAddress[x] : -# 1112| r1112_3(int) = Load[x] : &:r1112_2, m1110_6 -# 1112| m1112_4(int) = Store[#return] : &:r1112_1, r1112_3 -# 1110| r1110_7(glval<int>) = VariableAddress[#return] : -# 1110| v1110_8(void) = ReturnValue : &:r1110_7, m1112_4 -# 1110| v1110_9(void) = AliasedUse : ~m1111_2 -# 1110| v1110_10(void) = ExitFunction : +# 1157| int AsmStmt(int) +# 1157| Block 0 +# 1157| v1157_1(void) = EnterFunction : +# 1157| m1157_2(unknown) = AliasedDefinition : +# 1157| m1157_3(unknown) = InitializeNonLocal : +# 1157| m1157_4(unknown) = Chi : total:m1157_2, partial:m1157_3 +# 1157| r1157_5(glval<int>) = VariableAddress[x] : +# 1157| m1157_6(int) = InitializeParameter[x] : &:r1157_5 +# 1158| m1158_1(unknown) = InlineAsm : ~m1157_4 +# 1158| m1158_2(unknown) = Chi : total:m1157_4, partial:m1158_1 +# 1159| r1159_1(glval<int>) = VariableAddress[#return] : +# 1159| r1159_2(glval<int>) = VariableAddress[x] : +# 1159| r1159_3(int) = Load[x] : &:r1159_2, m1157_6 +# 1159| m1159_4(int) = Store[#return] : &:r1159_1, r1159_3 +# 1157| r1157_7(glval<int>) = VariableAddress[#return] : +# 1157| v1157_8(void) = ReturnValue : &:r1157_7, m1159_4 +# 1157| v1157_9(void) = AliasedUse : ~m1158_2 +# 1157| v1157_10(void) = ExitFunction : -# 1115| void AsmStmtWithOutputs(unsigned int&, unsigned int, unsigned int&, unsigned int) -# 1115| Block 0 -# 1115| v1115_1(void) = EnterFunction : -# 1115| m1115_2(unknown) = AliasedDefinition : -# 1115| m1115_3(unknown) = InitializeNonLocal : -# 1115| m1115_4(unknown) = Chi : total:m1115_2, partial:m1115_3 -# 1115| r1115_5(glval<unsigned int &>) = VariableAddress[a] : -# 1115| m1115_6(unsigned int &) = InitializeParameter[a] : &:r1115_5 -# 1115| r1115_7(unsigned int &) = Load[a] : &:r1115_5, m1115_6 -# 1115| m1115_8(unknown) = InitializeIndirection[a] : &:r1115_7 -# 1115| r1115_9(glval<unsigned int>) = VariableAddress[b] : -# 1115| m1115_10(unsigned int) = InitializeParameter[b] : &:r1115_9 -# 1115| r1115_11(glval<unsigned int &>) = VariableAddress[c] : -# 1115| m1115_12(unsigned int &) = InitializeParameter[c] : &:r1115_11 -# 1115| r1115_13(unsigned int &) = Load[c] : &:r1115_11, m1115_12 -# 1115| m1115_14(unknown) = InitializeIndirection[c] : &:r1115_13 -# 1115| r1115_15(glval<unsigned int>) = VariableAddress[d] : -# 1115| m1115_16(unsigned int) = InitializeParameter[d] : &:r1115_15 -# 1120| r1120_1(glval<unsigned int &>) = VariableAddress[a] : -# 1120| r1120_2(unsigned int &) = Load[a] : &:r1120_1, m1115_6 -# 1120| r1120_3(glval<unsigned int>) = CopyValue : r1120_2 -# 1120| r1120_4(glval<unsigned int>) = VariableAddress[b] : -# 1120| r1120_5(glval<unsigned int &>) = VariableAddress[c] : -# 1120| r1120_6(unsigned int &) = Load[c] : &:r1120_5, m1115_12 -# 1120| r1120_7(unsigned int) = Load[?] : &:r1120_6, ~m1115_14 -# 1120| r1120_8(glval<unsigned int>) = VariableAddress[d] : -# 1120| r1120_9(unsigned int) = Load[d] : &:r1120_8, m1115_16 -# 1117| m1117_1(unknown) = InlineAsm : ~m1115_4, 0:r1120_3, 1:r1120_4, 2:r1120_7, 3:r1120_9 -# 1117| m1117_2(unknown) = Chi : total:m1115_4, partial:m1117_1 -# 1122| v1122_1(void) = NoOp : -# 1115| v1115_17(void) = ReturnIndirection[a] : &:r1115_7, m1115_8 -# 1115| v1115_18(void) = ReturnIndirection[c] : &:r1115_13, m1115_14 -# 1115| v1115_19(void) = ReturnVoid : -# 1115| v1115_20(void) = AliasedUse : ~m1117_2 -# 1115| v1115_21(void) = ExitFunction : +# 1162| void AsmStmtWithOutputs(unsigned int&, unsigned int, unsigned int&, unsigned int) +# 1162| Block 0 +# 1162| v1162_1(void) = EnterFunction : +# 1162| m1162_2(unknown) = AliasedDefinition : +# 1162| m1162_3(unknown) = InitializeNonLocal : +# 1162| m1162_4(unknown) = Chi : total:m1162_2, partial:m1162_3 +# 1162| r1162_5(glval<unsigned int &>) = VariableAddress[a] : +# 1162| m1162_6(unsigned int &) = InitializeParameter[a] : &:r1162_5 +# 1162| r1162_7(unsigned int &) = Load[a] : &:r1162_5, m1162_6 +# 1162| m1162_8(unknown) = InitializeIndirection[a] : &:r1162_7 +# 1162| r1162_9(glval<unsigned int>) = VariableAddress[b] : +# 1162| m1162_10(unsigned int) = InitializeParameter[b] : &:r1162_9 +# 1162| r1162_11(glval<unsigned int &>) = VariableAddress[c] : +# 1162| m1162_12(unsigned int &) = InitializeParameter[c] : &:r1162_11 +# 1162| r1162_13(unsigned int &) = Load[c] : &:r1162_11, m1162_12 +# 1162| m1162_14(unknown) = InitializeIndirection[c] : &:r1162_13 +# 1162| r1162_15(glval<unsigned int>) = VariableAddress[d] : +# 1162| m1162_16(unsigned int) = InitializeParameter[d] : &:r1162_15 +# 1167| r1167_1(glval<unsigned int &>) = VariableAddress[a] : +# 1167| r1167_2(unsigned int &) = Load[a] : &:r1167_1, m1162_6 +# 1167| r1167_3(glval<unsigned int>) = CopyValue : r1167_2 +# 1167| r1167_4(glval<unsigned int>) = VariableAddress[b] : +# 1167| r1167_5(glval<unsigned int &>) = VariableAddress[c] : +# 1167| r1167_6(unsigned int &) = Load[c] : &:r1167_5, m1162_12 +# 1167| r1167_7(unsigned int) = Load[?] : &:r1167_6, ~m1162_14 +# 1167| r1167_8(glval<unsigned int>) = VariableAddress[d] : +# 1167| r1167_9(unsigned int) = Load[d] : &:r1167_8, m1162_16 +# 1164| m1164_1(unknown) = InlineAsm : ~m1162_4, 0:r1167_3, 1:r1167_4, 2:r1167_7, 3:r1167_9 +# 1164| m1164_2(unknown) = Chi : total:m1162_4, partial:m1164_1 +# 1169| v1169_1(void) = NoOp : +# 1162| v1162_17(void) = ReturnIndirection[a] : &:r1162_7, m1162_8 +# 1162| v1162_18(void) = ReturnIndirection[c] : &:r1162_13, m1162_14 +# 1162| v1162_19(void) = ReturnVoid : +# 1162| v1162_20(void) = AliasedUse : ~m1164_2 +# 1162| v1162_21(void) = ExitFunction : -# 1124| void ExternDeclarations() -# 1124| Block 0 -# 1124| v1124_1(void) = EnterFunction : -# 1124| m1124_2(unknown) = AliasedDefinition : -# 1124| m1124_3(unknown) = InitializeNonLocal : -# 1124| m1124_4(unknown) = Chi : total:m1124_2, partial:m1124_3 -# 1127| r1127_1(glval<int>) = VariableAddress[x] : -# 1127| m1127_2(int) = Uninitialized[x] : &:r1127_1 -# 1128| r1128_1(glval<int>) = VariableAddress[y] : -# 1128| m1128_2(int) = Uninitialized[y] : &:r1128_1 -# 1129| r1129_1(glval<int>) = VariableAddress[h] : -# 1129| m1129_2(int) = Uninitialized[h] : &:r1129_1 -# 1131| v1131_1(void) = NoOp : -# 1124| v1124_5(void) = ReturnVoid : -# 1124| v1124_6(void) = AliasedUse : m1124_3 -# 1124| v1124_7(void) = ExitFunction : +# 1171| void ExternDeclarations() +# 1171| Block 0 +# 1171| v1171_1(void) = EnterFunction : +# 1171| m1171_2(unknown) = AliasedDefinition : +# 1171| m1171_3(unknown) = InitializeNonLocal : +# 1171| m1171_4(unknown) = Chi : total:m1171_2, partial:m1171_3 +# 1174| r1174_1(glval<int>) = VariableAddress[x] : +# 1174| m1174_2(int) = Uninitialized[x] : &:r1174_1 +# 1175| r1175_1(glval<int>) = VariableAddress[y] : +# 1175| m1175_2(int) = Uninitialized[y] : &:r1175_1 +# 1176| r1176_1(glval<int>) = VariableAddress[h] : +# 1176| m1176_2(int) = Uninitialized[h] : &:r1176_1 +# 1178| v1178_1(void) = NoOp : +# 1171| v1171_5(void) = ReturnVoid : +# 1171| v1171_6(void) = AliasedUse : m1171_3 +# 1171| v1171_7(void) = ExitFunction : -# 1139| void ExternDeclarationsInMacro() -# 1139| Block 0 -# 1139| v1139_1(void) = EnterFunction : -# 1139| m1139_2(unknown) = AliasedDefinition : -# 1139| m1139_3(unknown) = InitializeNonLocal : -# 1139| m1139_4(unknown) = Chi : total:m1139_2, partial:m1139_3 -# 1141| r1141_1(glval<int>) = VariableAddress[i] : -# 1141| r1141_2(int) = Constant[0] : -# 1141| m1141_3(int) = Store[i] : &:r1141_1, r1141_2 +# 1186| void ExternDeclarationsInMacro() +# 1186| Block 0 +# 1186| v1186_1(void) = EnterFunction : +# 1186| m1186_2(unknown) = AliasedDefinition : +# 1186| m1186_3(unknown) = InitializeNonLocal : +# 1186| m1186_4(unknown) = Chi : total:m1186_2, partial:m1186_3 +# 1188| r1188_1(glval<int>) = VariableAddress[i] : +# 1188| r1188_2(int) = Constant[0] : +# 1188| m1188_3(int) = Store[i] : &:r1188_1, r1188_2 #-----| Goto -> Block 1 -# 1141| Block 1 -# 1141| m1141_4(int) = Phi : from 0:m1141_3, from 2:m1141_14 -# 1141| r1141_5(glval<int>) = VariableAddress[i] : -# 1141| r1141_6(int) = Load[i] : &:r1141_5, m1141_4 -# 1141| r1141_7(int) = Constant[10] : -# 1141| r1141_8(bool) = CompareLT : r1141_6, r1141_7 -# 1141| v1141_9(void) = ConditionalBranch : r1141_8 +# 1188| Block 1 +# 1188| m1188_4(int) = Phi : from 0:m1188_3, from 2:m1188_14 +# 1188| r1188_5(glval<int>) = VariableAddress[i] : +# 1188| r1188_6(int) = Load[i] : &:r1188_5, m1188_4 +# 1188| r1188_7(int) = Constant[10] : +# 1188| r1188_8(bool) = CompareLT : r1188_6, r1188_7 +# 1188| v1188_9(void) = ConditionalBranch : r1188_8 #-----| False -> Block 3 #-----| True -> Block 2 -# 1141| Block 2 -# 1141| r1141_10(glval<int>) = VariableAddress[i] : -# 1141| r1141_11(int) = Load[i] : &:r1141_10, m1141_4 -# 1141| r1141_12(int) = Constant[1] : -# 1141| r1141_13(int) = Add : r1141_11, r1141_12 -# 1141| m1141_14(int) = Store[i] : &:r1141_10, r1141_13 +# 1188| Block 2 +# 1188| r1188_10(glval<int>) = VariableAddress[i] : +# 1188| r1188_11(int) = Load[i] : &:r1188_10, m1188_4 +# 1188| r1188_12(int) = Constant[1] : +# 1188| r1188_13(int) = Add : r1188_11, r1188_12 +# 1188| m1188_14(int) = Store[i] : &:r1188_10, r1188_13 #-----| Goto (back edge) -> Block 1 -# 1141| Block 3 -# 1141| v1141_15(void) = NoOp : -# 1142| v1142_1(void) = NoOp : -# 1139| v1139_5(void) = ReturnVoid : -# 1139| v1139_6(void) = AliasedUse : m1139_3 -# 1139| v1139_7(void) = ExitFunction : +# 1188| Block 3 +# 1188| v1188_15(void) = NoOp : +# 1189| v1189_1(void) = NoOp : +# 1186| v1186_5(void) = ReturnVoid : +# 1186| v1186_6(void) = AliasedUse : m1186_3 +# 1186| v1186_7(void) = ExitFunction : -# 1144| void TryCatchNoCatchAny(bool) -# 1144| Block 0 -# 1144| v1144_1(void) = EnterFunction : -# 1144| m1144_2(unknown) = AliasedDefinition : -# 1144| m1144_3(unknown) = InitializeNonLocal : -# 1144| m1144_4(unknown) = Chi : total:m1144_2, partial:m1144_3 -# 1144| r1144_5(glval<bool>) = VariableAddress[b] : -# 1144| m1144_6(bool) = InitializeParameter[b] : &:r1144_5 -# 1146| r1146_1(glval<int>) = VariableAddress[x] : -# 1146| r1146_2(int) = Constant[5] : -# 1146| m1146_3(int) = Store[x] : &:r1146_1, r1146_2 -# 1147| r1147_1(glval<bool>) = VariableAddress[b] : -# 1147| r1147_2(bool) = Load[b] : &:r1147_1, m1144_6 -# 1147| v1147_3(void) = ConditionalBranch : r1147_2 +# 1191| void TryCatchNoCatchAny(bool) +# 1191| Block 0 +# 1191| v1191_1(void) = EnterFunction : +# 1191| m1191_2(unknown) = AliasedDefinition : +# 1191| m1191_3(unknown) = InitializeNonLocal : +# 1191| m1191_4(unknown) = Chi : total:m1191_2, partial:m1191_3 +# 1191| r1191_5(glval<bool>) = VariableAddress[b] : +# 1191| m1191_6(bool) = InitializeParameter[b] : &:r1191_5 +# 1193| r1193_1(glval<int>) = VariableAddress[x] : +# 1193| r1193_2(int) = Constant[5] : +# 1193| m1193_3(int) = Store[x] : &:r1193_1, r1193_2 +# 1194| r1194_1(glval<bool>) = VariableAddress[b] : +# 1194| r1194_2(bool) = Load[b] : &:r1194_1, m1191_6 +# 1194| v1194_3(void) = ConditionalBranch : r1194_2 #-----| False -> Block 4 #-----| True -> Block 3 -# 1144| Block 1 -# 1144| m1144_7(unknown) = Phi : from 2:~m1144_10, from 10:~m1144_4 -# 1144| v1144_8(void) = AliasedUse : ~m1144_7 -# 1144| v1144_9(void) = ExitFunction : +# 1191| Block 1 +# 1191| m1191_7(unknown) = Phi : from 2:~m1191_10, from 10:~m1191_4 +# 1191| v1191_8(void) = AliasedUse : ~m1191_7 +# 1191| v1191_9(void) = ExitFunction : -# 1144| Block 2 -# 1144| m1144_10(unknown) = Phi : from 7:~m1156_8, from 8:~m1144_4 -# 1144| v1144_11(void) = Unwind : +# 1191| Block 2 +# 1191| m1191_10(unknown) = Phi : from 7:~m1203_8, from 8:~m1191_4 +# 1191| v1191_11(void) = Unwind : #-----| Goto -> Block 1 -# 1148| Block 3 -# 1148| r1148_1(glval<char *>) = VariableAddress[#throw1148:7] : -# 1148| r1148_2(glval<char[15]>) = StringConstant["string literal"] : -# 1148| r1148_3(char *) = Convert : r1148_2 -# 1148| m1148_4(char *) = Store[#throw1148:7] : &:r1148_1, r1148_3 -# 1148| v1148_5(void) = ThrowValue : &:r1148_1, m1148_4 +# 1195| Block 3 +# 1195| r1195_1(glval<char *>) = VariableAddress[#throw1195:7] : +# 1195| r1195_2(glval<char[15]>) = StringConstant["string literal"] : +# 1195| r1195_3(char *) = Convert : r1195_2 +# 1195| m1195_4(char *) = Store[#throw1195:7] : &:r1195_1, r1195_3 +# 1195| v1195_5(void) = ThrowValue : &:r1195_1, m1195_4 #-----| Exception -> Block 6 -# 1150| Block 4 -# 1150| r1150_1(glval<int>) = VariableAddress[x] : -# 1150| r1150_2(int) = Load[x] : &:r1150_1, m1146_3 -# 1150| r1150_3(int) = Constant[2] : -# 1150| r1150_4(bool) = CompareLT : r1150_2, r1150_3 -# 1150| v1150_5(void) = ConditionalBranch : r1150_4 +# 1197| Block 4 +# 1197| r1197_1(glval<int>) = VariableAddress[x] : +# 1197| r1197_2(int) = Load[x] : &:r1197_1, m1193_3 +# 1197| r1197_3(int) = Constant[2] : +# 1197| r1197_4(bool) = CompareLT : r1197_2, r1197_3 +# 1197| v1197_5(void) = ConditionalBranch : r1197_4 #-----| False -> Block 5 #-----| True -> Block 11 -# 1153| Block 5 -# 1153| r1153_1(int) = Constant[7] : -# 1153| r1153_2(glval<int>) = VariableAddress[x] : -# 1153| m1153_3(int) = Store[x] : &:r1153_2, r1153_1 +# 1200| Block 5 +# 1200| r1200_1(int) = Constant[7] : +# 1200| r1200_2(glval<int>) = VariableAddress[x] : +# 1200| m1200_3(int) = Store[x] : &:r1200_2, r1200_1 #-----| Goto -> Block 10 -# 1155| Block 6 -# 1155| v1155_1(void) = CatchByType[const char *] : +# 1202| Block 6 +# 1202| v1202_1(void) = CatchByType[const char *] : #-----| Exception -> Block 8 #-----| Goto -> Block 7 -# 1155| Block 7 -# 1155| r1155_2(glval<char *>) = VariableAddress[s] : -# 1155| m1155_3(char *) = InitializeParameter[s] : &:r1155_2 -# 1155| r1155_4(char *) = Load[s] : &:r1155_2, m1155_3 -# 1155| m1155_5(unknown) = InitializeIndirection[s] : &:r1155_4 -# 1156| r1156_1(glval<String>) = VariableAddress[#throw1156:5] : -# 1156| m1156_2(String) = Uninitialized[#throw1156:5] : &:r1156_1 -# 1156| r1156_3(glval<unknown>) = FunctionAddress[String] : -# 1156| r1156_4(glval<char *>) = VariableAddress[s] : -# 1156| r1156_5(char *) = Load[s] : &:r1156_4, m1155_3 -# 1156| v1156_6(void) = Call[String] : func:r1156_3, this:r1156_1, 0:r1156_5 -# 1156| m1156_7(unknown) = ^CallSideEffect : ~m1144_4 -# 1156| m1156_8(unknown) = Chi : total:m1144_4, partial:m1156_7 -# 1156| v1156_9(void) = ^BufferReadSideEffect[0] : &:r1156_5, ~m1155_5 -# 1156| m1156_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1156_1 -# 1156| m1156_11(String) = Chi : total:m1156_2, partial:m1156_10 -# 1156| v1156_12(void) = ThrowValue : &:r1156_1, m1156_11 +# 1202| Block 7 +# 1202| r1202_2(glval<char *>) = VariableAddress[s] : +# 1202| m1202_3(char *) = InitializeParameter[s] : &:r1202_2 +# 1202| r1202_4(char *) = Load[s] : &:r1202_2, m1202_3 +# 1202| m1202_5(unknown) = InitializeIndirection[s] : &:r1202_4 +# 1203| r1203_1(glval<String>) = VariableAddress[#throw1203:5] : +# 1203| m1203_2(String) = Uninitialized[#throw1203:5] : &:r1203_1 +# 1203| r1203_3(glval<unknown>) = FunctionAddress[String] : +# 1203| r1203_4(glval<char *>) = VariableAddress[s] : +# 1203| r1203_5(char *) = Load[s] : &:r1203_4, m1202_3 +# 1203| v1203_6(void) = Call[String] : func:r1203_3, this:r1203_1, 0:r1203_5 +# 1203| m1203_7(unknown) = ^CallSideEffect : ~m1191_4 +# 1203| m1203_8(unknown) = Chi : total:m1191_4, partial:m1203_7 +# 1203| v1203_9(void) = ^BufferReadSideEffect[0] : &:r1203_5, ~m1202_5 +# 1203| m1203_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1203_1 +# 1203| m1203_11(String) = Chi : total:m1203_2, partial:m1203_10 +# 1203| v1203_12(void) = ThrowValue : &:r1203_1, m1203_11 #-----| Exception -> Block 2 -# 1158| Block 8 -# 1158| v1158_1(void) = CatchByType[const String &] : +# 1205| Block 8 +# 1205| v1205_1(void) = CatchByType[const String &] : #-----| Exception -> Block 2 #-----| Goto -> Block 9 -# 1158| Block 9 -# 1158| r1158_2(glval<String &>) = VariableAddress[e] : -# 1158| m1158_3(String &) = InitializeParameter[e] : &:r1158_2 -# 1158| r1158_4(String &) = Load[e] : &:r1158_2, m1158_3 -# 1158| m1158_5(unknown) = InitializeIndirection[e] : &:r1158_4 -# 1158| v1158_6(void) = NoOp : +# 1205| Block 9 +# 1205| r1205_2(glval<String &>) = VariableAddress[e] : +# 1205| m1205_3(String &) = InitializeParameter[e] : &:r1205_2 +# 1205| r1205_4(String &) = Load[e] : &:r1205_2, m1205_3 +# 1205| m1205_5(unknown) = InitializeIndirection[e] : &:r1205_4 +# 1205| v1205_6(void) = NoOp : #-----| Goto -> Block 10 -# 1160| Block 10 -# 1160| v1160_1(void) = NoOp : -# 1144| v1144_12(void) = ReturnVoid : +# 1207| Block 10 +# 1207| v1207_1(void) = NoOp : +# 1191| v1191_12(void) = ReturnVoid : #-----| Goto -> Block 1 -# 1144| Block 11 -# 1144| v1144_13(void) = Unreached : +# 1191| Block 11 +# 1191| v1191_13(void) = Unreached : -# 1164| void VectorTypes(int) -# 1164| Block 0 -# 1164| v1164_1(void) = EnterFunction : -# 1164| m1164_2(unknown) = AliasedDefinition : -# 1164| m1164_3(unknown) = InitializeNonLocal : -# 1164| m1164_4(unknown) = Chi : total:m1164_2, partial:m1164_3 -# 1164| r1164_5(glval<int>) = VariableAddress[i] : -# 1164| m1164_6(int) = InitializeParameter[i] : &:r1164_5 -# 1165| r1165_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1165| m1165_2(__attribute((vector_size(16UL))) int) = Uninitialized[vi4] : &:r1165_1 -# 1165| r1165_3(int) = Constant[0] : -# 1165| r1165_4(glval<int>) = PointerAdd[4] : r1165_1, r1165_3 -# 1165| r1165_5(int) = Constant[0] : -# 1165| m1165_6(int) = Store[?] : &:r1165_4, r1165_5 -# 1165| m1165_7(__attribute((vector_size(16UL))) int) = Chi : total:m1165_2, partial:m1165_6 -# 1165| r1165_8(int) = Constant[1] : -# 1165| r1165_9(glval<int>) = PointerAdd[4] : r1165_1, r1165_8 -# 1165| r1165_10(int) = Constant[1] : -# 1165| m1165_11(int) = Store[?] : &:r1165_9, r1165_10 -# 1165| m1165_12(__attribute((vector_size(16UL))) int) = Chi : total:m1165_7, partial:m1165_11 -# 1165| r1165_13(int) = Constant[2] : -# 1165| r1165_14(glval<int>) = PointerAdd[4] : r1165_1, r1165_13 -# 1165| r1165_15(int) = Constant[2] : -# 1165| m1165_16(int) = Store[?] : &:r1165_14, r1165_15 -# 1165| m1165_17(__attribute((vector_size(16UL))) int) = Chi : total:m1165_12, partial:m1165_16 -# 1165| r1165_18(int) = Constant[3] : -# 1165| r1165_19(glval<int>) = PointerAdd[4] : r1165_1, r1165_18 -# 1165| r1165_20(int) = Constant[3] : -# 1165| m1165_21(int) = Store[?] : &:r1165_19, r1165_20 -# 1165| m1165_22(__attribute((vector_size(16UL))) int) = Chi : total:m1165_17, partial:m1165_21 -# 1166| r1166_1(glval<int>) = VariableAddress[x] : -# 1166| r1166_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1166| r1166_3(glval<int>) = VariableAddress[i] : -# 1166| r1166_4(int) = Load[i] : &:r1166_3, m1164_6 -# 1166| r1166_5(glval<int>) = PointerAdd[4] : r1166_2, r1166_4 -# 1166| r1166_6(int) = Load[?] : &:r1166_5, ~m1165_22 -# 1166| m1166_7(int) = Store[x] : &:r1166_1, r1166_6 -# 1167| r1167_1(glval<int>) = VariableAddress[x] : -# 1167| r1167_2(int) = Load[x] : &:r1167_1, m1166_7 -# 1167| r1167_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1167| r1167_4(glval<int>) = VariableAddress[i] : -# 1167| r1167_5(int) = Load[i] : &:r1167_4, m1164_6 -# 1167| r1167_6(glval<int>) = PointerAdd[4] : r1167_3, r1167_5 -# 1167| m1167_7(int) = Store[?] : &:r1167_6, r1167_2 -# 1167| m1167_8(__attribute((vector_size(16UL))) int) = Chi : total:m1165_22, partial:m1167_7 -# 1168| r1168_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : -# 1168| r1168_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1168| r1168_3(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1168_2, m1167_8 -# 1168| r1168_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1168| r1168_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1168_4, m1167_8 -# 1168| r1168_6(int) = Constant[3] : -# 1168| r1168_7(int) = Constant[2] : -# 1168| r1168_8(int) = Constant[1] : -# 1168| r1168_9(int) = Constant[0] : -# 1168| r1168_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1168_3, 1:r1168_5, 2:r1168_6, 3:r1168_7, 4:r1168_8, 5:r1168_9 -# 1168| m1168_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1168_1, r1168_10 -# 1169| r1169_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1169| r1169_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1169_1, m1167_8 -# 1169| r1169_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : -# 1169| r1169_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1169_3, m1168_11 -# 1169| r1169_5(__attribute((vector_size(16UL))) int) = Add : r1169_2, r1169_4 -# 1169| r1169_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1169| m1169_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1169_6, r1169_5 -# 1170| v1170_1(void) = NoOp : -# 1164| v1164_7(void) = ReturnVoid : -# 1164| v1164_8(void) = AliasedUse : m1164_3 -# 1164| v1164_9(void) = ExitFunction : +# 1211| void VectorTypes(int) +# 1211| Block 0 +# 1211| v1211_1(void) = EnterFunction : +# 1211| m1211_2(unknown) = AliasedDefinition : +# 1211| m1211_3(unknown) = InitializeNonLocal : +# 1211| m1211_4(unknown) = Chi : total:m1211_2, partial:m1211_3 +# 1211| r1211_5(glval<int>) = VariableAddress[i] : +# 1211| m1211_6(int) = InitializeParameter[i] : &:r1211_5 +# 1212| r1212_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1212| m1212_2(__attribute((vector_size(16UL))) int) = Uninitialized[vi4] : &:r1212_1 +# 1212| r1212_3(int) = Constant[0] : +# 1212| r1212_4(glval<int>) = PointerAdd[4] : r1212_1, r1212_3 +# 1212| r1212_5(int) = Constant[0] : +# 1212| m1212_6(int) = Store[?] : &:r1212_4, r1212_5 +# 1212| m1212_7(__attribute((vector_size(16UL))) int) = Chi : total:m1212_2, partial:m1212_6 +# 1212| r1212_8(int) = Constant[1] : +# 1212| r1212_9(glval<int>) = PointerAdd[4] : r1212_1, r1212_8 +# 1212| r1212_10(int) = Constant[1] : +# 1212| m1212_11(int) = Store[?] : &:r1212_9, r1212_10 +# 1212| m1212_12(__attribute((vector_size(16UL))) int) = Chi : total:m1212_7, partial:m1212_11 +# 1212| r1212_13(int) = Constant[2] : +# 1212| r1212_14(glval<int>) = PointerAdd[4] : r1212_1, r1212_13 +# 1212| r1212_15(int) = Constant[2] : +# 1212| m1212_16(int) = Store[?] : &:r1212_14, r1212_15 +# 1212| m1212_17(__attribute((vector_size(16UL))) int) = Chi : total:m1212_12, partial:m1212_16 +# 1212| r1212_18(int) = Constant[3] : +# 1212| r1212_19(glval<int>) = PointerAdd[4] : r1212_1, r1212_18 +# 1212| r1212_20(int) = Constant[3] : +# 1212| m1212_21(int) = Store[?] : &:r1212_19, r1212_20 +# 1212| m1212_22(__attribute((vector_size(16UL))) int) = Chi : total:m1212_17, partial:m1212_21 +# 1213| r1213_1(glval<int>) = VariableAddress[x] : +# 1213| r1213_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1213| r1213_3(glval<int>) = VariableAddress[i] : +# 1213| r1213_4(int) = Load[i] : &:r1213_3, m1211_6 +# 1213| r1213_5(glval<int>) = PointerAdd[4] : r1213_2, r1213_4 +# 1213| r1213_6(int) = Load[?] : &:r1213_5, ~m1212_22 +# 1213| m1213_7(int) = Store[x] : &:r1213_1, r1213_6 +# 1214| r1214_1(glval<int>) = VariableAddress[x] : +# 1214| r1214_2(int) = Load[x] : &:r1214_1, m1213_7 +# 1214| r1214_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1214| r1214_4(glval<int>) = VariableAddress[i] : +# 1214| r1214_5(int) = Load[i] : &:r1214_4, m1211_6 +# 1214| r1214_6(glval<int>) = PointerAdd[4] : r1214_3, r1214_5 +# 1214| m1214_7(int) = Store[?] : &:r1214_6, r1214_2 +# 1214| m1214_8(__attribute((vector_size(16UL))) int) = Chi : total:m1212_22, partial:m1214_7 +# 1215| r1215_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1215| r1215_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1215| r1215_3(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1215_2, m1214_8 +# 1215| r1215_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1215| r1215_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1215_4, m1214_8 +# 1215| r1215_6(int) = Constant[3] : +# 1215| r1215_7(int) = Constant[2] : +# 1215| r1215_8(int) = Constant[1] : +# 1215| r1215_9(int) = Constant[0] : +# 1215| r1215_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_6, 3:r1215_7, 4:r1215_8, 5:r1215_9 +# 1215| m1215_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_10 +# 1216| r1216_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1216| r1216_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1216_1, m1214_8 +# 1216| r1216_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1216| r1216_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1216_3, m1215_11 +# 1216| r1216_5(__attribute((vector_size(16UL))) int) = Add : r1216_2, r1216_4 +# 1216| r1216_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1216| m1216_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1216_6, r1216_5 +# 1217| v1217_1(void) = NoOp : +# 1211| v1211_7(void) = ReturnVoid : +# 1211| v1211_8(void) = AliasedUse : m1211_3 +# 1211| v1211_9(void) = ExitFunction : -# 1174| int ModeledCallTarget(int) -# 1174| Block 0 -# 1174| v1174_1(void) = EnterFunction : -# 1174| m1174_2(unknown) = AliasedDefinition : -# 1174| m1174_3(unknown) = InitializeNonLocal : -# 1174| m1174_4(unknown) = Chi : total:m1174_2, partial:m1174_3 -# 1174| r1174_5(glval<int>) = VariableAddress[x] : -# 1174| m1174_6(int) = InitializeParameter[x] : &:r1174_5 -# 1175| r1175_1(glval<int>) = VariableAddress[y] : -# 1175| m1175_2(int) = Uninitialized[y] : &:r1175_1 -# 1176| r1176_1(glval<unknown>) = FunctionAddress[memcpy] : -# 1176| r1176_2(glval<int>) = VariableAddress[y] : -# 1176| r1176_3(int *) = CopyValue : r1176_2 -# 1176| r1176_4(void *) = Convert : r1176_3 -# 1176| r1176_5(glval<int>) = VariableAddress[x] : -# 1176| r1176_6(int *) = CopyValue : r1176_5 -# 1176| r1176_7(void *) = Convert : r1176_6 -# 1176| r1176_8(int) = Constant[4] : -# 1176| r1176_9(void *) = Call[memcpy] : func:r1176_1, 0:r1176_4, 1:r1176_7, 2:r1176_8 -# 1176| v1176_10(void) = ^SizedBufferReadSideEffect[1] : &:r1176_7, r1176_8, ~m1174_6 -# 1176| m1176_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1176_4, r1176_8 -# 1176| m1176_12(int) = Chi : total:m1175_2, partial:m1176_11 -# 1177| r1177_1(glval<int>) = VariableAddress[#return] : -# 1177| r1177_2(glval<int>) = VariableAddress[y] : -# 1177| r1177_3(int) = Load[y] : &:r1177_2, m1176_12 -# 1177| m1177_4(int) = Store[#return] : &:r1177_1, r1177_3 -# 1174| r1174_7(glval<int>) = VariableAddress[#return] : -# 1174| v1174_8(void) = ReturnValue : &:r1174_7, m1177_4 -# 1174| v1174_9(void) = AliasedUse : m1174_3 -# 1174| v1174_10(void) = ExitFunction : +# 1221| int ModeledCallTarget(int) +# 1221| Block 0 +# 1221| v1221_1(void) = EnterFunction : +# 1221| m1221_2(unknown) = AliasedDefinition : +# 1221| m1221_3(unknown) = InitializeNonLocal : +# 1221| m1221_4(unknown) = Chi : total:m1221_2, partial:m1221_3 +# 1221| r1221_5(glval<int>) = VariableAddress[x] : +# 1221| m1221_6(int) = InitializeParameter[x] : &:r1221_5 +# 1222| r1222_1(glval<int>) = VariableAddress[y] : +# 1222| m1222_2(int) = Uninitialized[y] : &:r1222_1 +# 1223| r1223_1(glval<unknown>) = FunctionAddress[memcpy] : +# 1223| r1223_2(glval<int>) = VariableAddress[y] : +# 1223| r1223_3(int *) = CopyValue : r1223_2 +# 1223| r1223_4(void *) = Convert : r1223_3 +# 1223| r1223_5(glval<int>) = VariableAddress[x] : +# 1223| r1223_6(int *) = CopyValue : r1223_5 +# 1223| r1223_7(void *) = Convert : r1223_6 +# 1223| r1223_8(int) = Constant[4] : +# 1223| r1223_9(void *) = Call[memcpy] : func:r1223_1, 0:r1223_4, 1:r1223_7, 2:r1223_8 +# 1223| v1223_10(void) = ^SizedBufferReadSideEffect[1] : &:r1223_7, r1223_8, ~m1221_6 +# 1223| m1223_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1223_4, r1223_8 +# 1223| m1223_12(int) = Chi : total:m1222_2, partial:m1223_11 +# 1224| r1224_1(glval<int>) = VariableAddress[#return] : +# 1224| r1224_2(glval<int>) = VariableAddress[y] : +# 1224| r1224_3(int) = Load[y] : &:r1224_2, m1223_12 +# 1224| m1224_4(int) = Store[#return] : &:r1224_1, r1224_3 +# 1221| r1221_7(glval<int>) = VariableAddress[#return] : +# 1221| v1221_8(void) = ReturnValue : &:r1221_7, m1224_4 +# 1221| v1221_9(void) = AliasedUse : m1221_3 +# 1221| v1221_10(void) = ExitFunction : -# 1180| String ReturnObjectImpl() -# 1180| Block 0 -# 1180| v1180_1(void) = EnterFunction : -# 1180| m1180_2(unknown) = AliasedDefinition : -# 1180| m1180_3(unknown) = InitializeNonLocal : -# 1180| m1180_4(unknown) = Chi : total:m1180_2, partial:m1180_3 -# 1181| r1181_1(glval<String>) = VariableAddress[#return] : -# 1181| m1181_2(String) = Uninitialized[#return] : &:r1181_1 -# 1181| r1181_3(glval<unknown>) = FunctionAddress[String] : -# 1181| r1181_4(glval<char[4]>) = StringConstant["foo"] : -# 1181| r1181_5(char *) = Convert : r1181_4 -# 1181| v1181_6(void) = Call[String] : func:r1181_3, this:r1181_1, 0:r1181_5 -# 1181| m1181_7(unknown) = ^CallSideEffect : ~m1180_4 -# 1181| m1181_8(unknown) = Chi : total:m1180_4, partial:m1181_7 -# 1181| v1181_9(void) = ^BufferReadSideEffect[0] : &:r1181_5, ~m1180_3 -# 1181| m1181_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1181_1 -# 1181| m1181_11(String) = Chi : total:m1181_2, partial:m1181_10 -# 1180| r1180_5(glval<String>) = VariableAddress[#return] : -# 1180| v1180_6(void) = ReturnValue : &:r1180_5, m1181_11 -# 1180| v1180_7(void) = AliasedUse : ~m1181_8 -# 1180| v1180_8(void) = ExitFunction : +# 1227| String ReturnObjectImpl() +# 1227| Block 0 +# 1227| v1227_1(void) = EnterFunction : +# 1227| m1227_2(unknown) = AliasedDefinition : +# 1227| m1227_3(unknown) = InitializeNonLocal : +# 1227| m1227_4(unknown) = Chi : total:m1227_2, partial:m1227_3 +# 1228| r1228_1(glval<String>) = VariableAddress[#return] : +# 1228| m1228_2(String) = Uninitialized[#return] : &:r1228_1 +# 1228| r1228_3(glval<unknown>) = FunctionAddress[String] : +# 1228| r1228_4(glval<char[4]>) = StringConstant["foo"] : +# 1228| r1228_5(char *) = Convert : r1228_4 +# 1228| v1228_6(void) = Call[String] : func:r1228_3, this:r1228_1, 0:r1228_5 +# 1228| m1228_7(unknown) = ^CallSideEffect : ~m1227_4 +# 1228| m1228_8(unknown) = Chi : total:m1227_4, partial:m1228_7 +# 1228| v1228_9(void) = ^BufferReadSideEffect[0] : &:r1228_5, ~m1227_3 +# 1228| m1228_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1228_1 +# 1228| m1228_11(String) = Chi : total:m1228_2, partial:m1228_10 +# 1227| r1227_5(glval<String>) = VariableAddress[#return] : +# 1227| v1227_6(void) = ReturnValue : &:r1227_5, m1228_11 +# 1227| v1227_7(void) = AliasedUse : ~m1228_8 +# 1227| v1227_8(void) = ExitFunction : -# 1184| void switch1Case(int) -# 1184| Block 0 -# 1184| v1184_1(void) = EnterFunction : -# 1184| m1184_2(unknown) = AliasedDefinition : -# 1184| m1184_3(unknown) = InitializeNonLocal : -# 1184| m1184_4(unknown) = Chi : total:m1184_2, partial:m1184_3 -# 1184| r1184_5(glval<int>) = VariableAddress[x] : -# 1184| m1184_6(int) = InitializeParameter[x] : &:r1184_5 -# 1185| r1185_1(glval<int>) = VariableAddress[y] : -# 1185| r1185_2(int) = Constant[0] : -# 1185| m1185_3(int) = Store[y] : &:r1185_1, r1185_2 -# 1186| r1186_1(glval<int>) = VariableAddress[x] : -# 1186| r1186_2(int) = Load[x] : &:r1186_1, m1184_6 -# 1186| v1186_3(void) = Switch : r1186_2 +# 1231| void switch1Case(int) +# 1231| Block 0 +# 1231| v1231_1(void) = EnterFunction : +# 1231| m1231_2(unknown) = AliasedDefinition : +# 1231| m1231_3(unknown) = InitializeNonLocal : +# 1231| m1231_4(unknown) = Chi : total:m1231_2, partial:m1231_3 +# 1231| r1231_5(glval<int>) = VariableAddress[x] : +# 1231| m1231_6(int) = InitializeParameter[x] : &:r1231_5 +# 1232| r1232_1(glval<int>) = VariableAddress[y] : +# 1232| r1232_2(int) = Constant[0] : +# 1232| m1232_3(int) = Store[y] : &:r1232_1, r1232_2 +# 1233| r1233_1(glval<int>) = VariableAddress[x] : +# 1233| r1233_2(int) = Load[x] : &:r1233_1, m1231_6 +# 1233| v1233_3(void) = Switch : r1233_2 #-----| Case[1] -> Block 1 #-----| Default -> Block 2 -# 1187| Block 1 -# 1187| v1187_1(void) = NoOp : -# 1188| r1188_1(int) = Constant[2] : -# 1188| r1188_2(glval<int>) = VariableAddress[y] : -# 1188| m1188_3(int) = Store[y] : &:r1188_2, r1188_1 +# 1234| Block 1 +# 1234| v1234_1(void) = NoOp : +# 1235| r1235_1(int) = Constant[2] : +# 1235| r1235_2(glval<int>) = VariableAddress[y] : +# 1235| m1235_3(int) = Store[y] : &:r1235_2, r1235_1 #-----| Goto -> Block 2 -# 1190| Block 2 -# 1190| m1190_1(int) = Phi : from 0:m1185_3, from 1:m1188_3 -# 1190| r1190_2(glval<int>) = VariableAddress[z] : -# 1190| r1190_3(glval<int>) = VariableAddress[y] : -# 1190| r1190_4(int) = Load[y] : &:r1190_3, m1190_1 -# 1190| m1190_5(int) = Store[z] : &:r1190_2, r1190_4 -# 1191| v1191_1(void) = NoOp : -# 1184| v1184_7(void) = ReturnVoid : -# 1184| v1184_8(void) = AliasedUse : m1184_3 -# 1184| v1184_9(void) = ExitFunction : +# 1237| Block 2 +# 1237| m1237_1(int) = Phi : from 0:m1232_3, from 1:m1235_3 +# 1237| r1237_2(glval<int>) = VariableAddress[z] : +# 1237| r1237_3(glval<int>) = VariableAddress[y] : +# 1237| r1237_4(int) = Load[y] : &:r1237_3, m1237_1 +# 1237| m1237_5(int) = Store[z] : &:r1237_2, r1237_4 +# 1238| v1238_1(void) = NoOp : +# 1231| v1231_7(void) = ReturnVoid : +# 1231| v1231_8(void) = AliasedUse : m1231_3 +# 1231| v1231_9(void) = ExitFunction : -# 1193| void switch2Case_fallthrough(int) -# 1193| Block 0 -# 1193| v1193_1(void) = EnterFunction : -# 1193| m1193_2(unknown) = AliasedDefinition : -# 1193| m1193_3(unknown) = InitializeNonLocal : -# 1193| m1193_4(unknown) = Chi : total:m1193_2, partial:m1193_3 -# 1193| r1193_5(glval<int>) = VariableAddress[x] : -# 1193| m1193_6(int) = InitializeParameter[x] : &:r1193_5 -# 1194| r1194_1(glval<int>) = VariableAddress[y] : -# 1194| r1194_2(int) = Constant[0] : -# 1194| m1194_3(int) = Store[y] : &:r1194_1, r1194_2 -# 1195| r1195_1(glval<int>) = VariableAddress[x] : -# 1195| r1195_2(int) = Load[x] : &:r1195_1, m1193_6 -# 1195| v1195_3(void) = Switch : r1195_2 +# 1240| void switch2Case_fallthrough(int) +# 1240| Block 0 +# 1240| v1240_1(void) = EnterFunction : +# 1240| m1240_2(unknown) = AliasedDefinition : +# 1240| m1240_3(unknown) = InitializeNonLocal : +# 1240| m1240_4(unknown) = Chi : total:m1240_2, partial:m1240_3 +# 1240| r1240_5(glval<int>) = VariableAddress[x] : +# 1240| m1240_6(int) = InitializeParameter[x] : &:r1240_5 +# 1241| r1241_1(glval<int>) = VariableAddress[y] : +# 1241| r1241_2(int) = Constant[0] : +# 1241| m1241_3(int) = Store[y] : &:r1241_1, r1241_2 +# 1242| r1242_1(glval<int>) = VariableAddress[x] : +# 1242| r1242_2(int) = Load[x] : &:r1242_1, m1240_6 +# 1242| v1242_3(void) = Switch : r1242_2 #-----| Case[1] -> Block 1 #-----| Case[2] -> Block 2 #-----| Default -> Block 3 -# 1196| Block 1 -# 1196| v1196_1(void) = NoOp : -# 1197| r1197_1(int) = Constant[2] : -# 1197| r1197_2(glval<int>) = VariableAddress[y] : -# 1197| m1197_3(int) = Store[y] : &:r1197_2, r1197_1 -#-----| Goto -> Block 2 - -# 1198| Block 2 -# 1198| v1198_1(void) = NoOp : -# 1199| r1199_1(int) = Constant[3] : -# 1199| r1199_2(glval<int>) = VariableAddress[y] : -# 1199| m1199_3(int) = Store[y] : &:r1199_2, r1199_1 -#-----| Goto -> Block 3 - -# 1201| Block 3 -# 1201| m1201_1(int) = Phi : from 0:m1194_3, from 2:m1199_3 -# 1201| r1201_2(glval<int>) = VariableAddress[z] : -# 1201| r1201_3(glval<int>) = VariableAddress[y] : -# 1201| r1201_4(int) = Load[y] : &:r1201_3, m1201_1 -# 1201| m1201_5(int) = Store[z] : &:r1201_2, r1201_4 -# 1202| v1202_1(void) = NoOp : -# 1193| v1193_7(void) = ReturnVoid : -# 1193| v1193_8(void) = AliasedUse : m1193_3 -# 1193| v1193_9(void) = ExitFunction : - -# 1204| void switch2Case(int) -# 1204| Block 0 -# 1204| v1204_1(void) = EnterFunction : -# 1204| m1204_2(unknown) = AliasedDefinition : -# 1204| m1204_3(unknown) = InitializeNonLocal : -# 1204| m1204_4(unknown) = Chi : total:m1204_2, partial:m1204_3 -# 1204| r1204_5(glval<int>) = VariableAddress[x] : -# 1204| m1204_6(int) = InitializeParameter[x] : &:r1204_5 -# 1205| r1205_1(glval<int>) = VariableAddress[y] : -# 1205| r1205_2(int) = Constant[0] : -# 1205| m1205_3(int) = Store[y] : &:r1205_1, r1205_2 -# 1206| r1206_1(glval<int>) = VariableAddress[x] : -# 1206| r1206_2(int) = Load[x] : &:r1206_1, m1204_6 -# 1206| v1206_3(void) = Switch : r1206_2 -#-----| Case[1] -> Block 1 -#-----| Case[2] -> Block 2 -#-----| Default -> Block 3 - -# 1207| Block 1 -# 1207| v1207_1(void) = NoOp : -# 1208| r1208_1(int) = Constant[2] : -# 1208| r1208_2(glval<int>) = VariableAddress[y] : -# 1208| m1208_3(int) = Store[y] : &:r1208_2, r1208_1 -# 1209| v1209_1(void) = NoOp : -#-----| Goto -> Block 3 - -# 1210| Block 2 -# 1210| v1210_1(void) = NoOp : -# 1211| r1211_1(int) = Constant[3] : -# 1211| r1211_2(glval<int>) = VariableAddress[y] : -# 1211| m1211_3(int) = Store[y] : &:r1211_2, r1211_1 -#-----| Goto -> Block 3 - -# 1212| Block 3 -# 1212| m1212_1(int) = Phi : from 0:m1205_3, from 1:m1208_3, from 2:m1211_3 -# 1212| v1212_2(void) = NoOp : -# 1213| r1213_1(glval<int>) = VariableAddress[z] : -# 1213| r1213_2(glval<int>) = VariableAddress[y] : -# 1213| r1213_3(int) = Load[y] : &:r1213_2, m1212_1 -# 1213| m1213_4(int) = Store[z] : &:r1213_1, r1213_3 -# 1214| v1214_1(void) = NoOp : -# 1204| v1204_7(void) = ReturnVoid : -# 1204| v1204_8(void) = AliasedUse : m1204_3 -# 1204| v1204_9(void) = ExitFunction : - -# 1216| void switch2Case_default(int) -# 1216| Block 0 -# 1216| v1216_1(void) = EnterFunction : -# 1216| m1216_2(unknown) = AliasedDefinition : -# 1216| m1216_3(unknown) = InitializeNonLocal : -# 1216| m1216_4(unknown) = Chi : total:m1216_2, partial:m1216_3 -# 1216| r1216_5(glval<int>) = VariableAddress[x] : -# 1216| m1216_6(int) = InitializeParameter[x] : &:r1216_5 -# 1217| r1217_1(glval<int>) = VariableAddress[y] : -# 1217| r1217_2(int) = Constant[0] : -# 1217| m1217_3(int) = Store[y] : &:r1217_1, r1217_2 -# 1218| r1218_1(glval<int>) = VariableAddress[x] : -# 1218| r1218_2(int) = Load[x] : &:r1218_1, m1216_6 -# 1218| v1218_3(void) = Switch : r1218_2 -#-----| Case[1] -> Block 1 -#-----| Case[2] -> Block 2 -#-----| Default -> Block 3 - -# 1219| Block 1 -# 1219| v1219_1(void) = NoOp : -# 1220| r1220_1(int) = Constant[2] : -# 1220| r1220_2(glval<int>) = VariableAddress[y] : -# 1220| m1220_3(int) = Store[y] : &:r1220_2, r1220_1 -# 1221| v1221_1(void) = NoOp : -#-----| Goto -> Block 4 - -# 1223| Block 2 -# 1223| v1223_1(void) = NoOp : -# 1224| r1224_1(int) = Constant[3] : -# 1224| r1224_2(glval<int>) = VariableAddress[y] : -# 1224| m1224_3(int) = Store[y] : &:r1224_2, r1224_1 -# 1225| v1225_1(void) = NoOp : -#-----| Goto -> Block 4 - -# 1227| Block 3 -# 1227| v1227_1(void) = NoOp : -# 1228| r1228_1(int) = Constant[4] : -# 1228| r1228_2(glval<int>) = VariableAddress[y] : -# 1228| m1228_3(int) = Store[y] : &:r1228_2, r1228_1 -#-----| Goto -> Block 4 - -# 1229| Block 4 -# 1229| m1229_1(int) = Phi : from 1:m1220_3, from 2:m1224_3, from 3:m1228_3 -# 1229| v1229_2(void) = NoOp : -# 1230| r1230_1(glval<int>) = VariableAddress[z] : -# 1230| r1230_2(glval<int>) = VariableAddress[y] : -# 1230| r1230_3(int) = Load[y] : &:r1230_2, m1229_1 -# 1230| m1230_4(int) = Store[z] : &:r1230_1, r1230_3 -# 1231| v1231_1(void) = NoOp : -# 1216| v1216_7(void) = ReturnVoid : -# 1216| v1216_8(void) = AliasedUse : m1216_3 -# 1216| v1216_9(void) = ExitFunction : - -# 1233| int staticLocalInit(int) -# 1233| Block 0 -# 1233| v1233_1(void) = EnterFunction : -# 1233| m1233_2(unknown) = AliasedDefinition : -# 1233| m1233_3(unknown) = InitializeNonLocal : -# 1233| m1233_4(unknown) = Chi : total:m1233_2, partial:m1233_3 -# 1233| r1233_5(glval<int>) = VariableAddress[x] : -# 1233| m1233_6(int) = InitializeParameter[x] : &:r1233_5 -# 1236| r1236_1(glval<bool>) = VariableAddress[c#init] : -# 1236| r1236_2(bool) = Load[c#init] : &:r1236_1, ~m1233_3 -# 1236| v1236_3(void) = ConditionalBranch : r1236_2 -#-----| False -> Block 1 -#-----| True -> Block 2 - -# 1236| Block 1 -# 1236| r1236_4(glval<int>) = VariableAddress[c] : -# 1236| r1236_5(glval<int>) = VariableAddress[x] : -# 1236| r1236_6(int) = Load[x] : &:r1236_5, m1233_6 -# 1236| m1236_7(int) = Store[c] : &:r1236_4, r1236_6 -# 1236| m1236_8(unknown) = Chi : total:m1233_4, partial:m1236_7 -# 1236| r1236_9(bool) = Constant[1] : -# 1236| m1236_10(bool) = Store[c#init] : &:r1236_1, r1236_9 -# 1236| m1236_11(unknown) = Chi : total:m1236_8, partial:m1236_10 -#-----| Goto -> Block 2 - -# 1239| Block 2 -# 1239| m1239_1(int) = Phi : from 0:~m1233_3, from 1:m1236_7 -# 1239| m1239_2(unknown) = Phi : from 0:~m1233_4, from 1:~m1236_11 -# 1239| r1239_3(glval<int>) = VariableAddress[#return] : -# 1239| r1239_4(glval<int>) = VariableAddress[a] : -# 1239| r1239_5(int) = Load[a] : &:r1239_4, ~m1239_2 -# 1239| r1239_6(glval<int>) = VariableAddress[b] : -# 1239| r1239_7(int) = Load[b] : &:r1239_6, ~m1239_2 -# 1239| r1239_8(int) = Add : r1239_5, r1239_7 -# 1239| r1239_9(glval<int>) = VariableAddress[c] : -# 1239| r1239_10(int) = Load[c] : &:r1239_9, m1239_1 -# 1239| r1239_11(int) = Add : r1239_8, r1239_10 -# 1239| r1239_12(glval<int>) = VariableAddress[d] : -# 1239| r1239_13(int) = Load[d] : &:r1239_12, ~m1239_2 -# 1239| r1239_14(int) = Add : r1239_11, r1239_13 -# 1239| m1239_15(int) = Store[#return] : &:r1239_3, r1239_14 -# 1233| r1233_7(glval<int>) = VariableAddress[#return] : -# 1233| v1233_8(void) = ReturnValue : &:r1233_7, m1239_15 -# 1233| v1233_9(void) = AliasedUse : ~m1239_2 -# 1233| v1233_10(void) = ExitFunction : - -# 1234| int a -# 1234| Block 0 -# 1234| v1234_1(void) = EnterFunction : -# 1234| m1234_2(unknown) = AliasedDefinition : -# 1234| r1234_3(glval<int>) = VariableAddress[a] : -# 1234| r1234_4(int) = Constant[0] : -# 1234| m1234_5(int) = Store[a] : &:r1234_3, r1234_4 -# 1234| m1234_6(unknown) = Chi : total:m1234_2, partial:m1234_5 -# 1234| v1234_7(void) = ReturnVoid : -# 1234| v1234_8(void) = AliasedUse : ~m1234_6 -# 1234| v1234_9(void) = ExitFunction : - -# 1235| int b -# 1235| Block 0 -# 1235| v1235_1(void) = EnterFunction : -# 1235| m1235_2(unknown) = AliasedDefinition : -# 1235| r1235_3(glval<int>) = VariableAddress[b] : -# 1235| r1235_4(int) = Constant[4] : -# 1235| m1235_5(int) = Store[b] : &:r1235_3, r1235_4 -# 1235| m1235_6(unknown) = Chi : total:m1235_2, partial:m1235_5 -# 1235| v1235_7(void) = ReturnVoid : -# 1235| v1235_8(void) = AliasedUse : ~m1235_6 -# 1235| v1235_9(void) = ExitFunction : - -# 1242| void staticLocalWithConstructor(char const*) -# 1242| Block 0 -# 1242| v1242_1(void) = EnterFunction : -# 1242| m1242_2(unknown) = AliasedDefinition : -# 1242| m1242_3(unknown) = InitializeNonLocal : -# 1242| m1242_4(unknown) = Chi : total:m1242_2, partial:m1242_3 -# 1242| r1242_5(glval<char *>) = VariableAddress[dynamic] : -# 1242| m1242_6(char *) = InitializeParameter[dynamic] : &:r1242_5 -# 1242| r1242_7(char *) = Load[dynamic] : &:r1242_5, m1242_6 -# 1242| m1242_8(unknown) = InitializeIndirection[dynamic] : &:r1242_7 -# 1243| r1243_1(glval<bool>) = VariableAddress[a#init] : -# 1243| r1243_2(bool) = Load[a#init] : &:r1243_1, ~m1242_3 -# 1243| v1243_3(void) = ConditionalBranch : r1243_2 -#-----| False -> Block 1 -#-----| True -> Block 2 - # 1243| Block 1 -# 1243| r1243_4(glval<String>) = VariableAddress[a] : -#-----| r0_1(glval<unknown>) = FunctionAddress[String] : -#-----| v0_2(void) = Call[String] : func:r0_1, this:r1243_4 -#-----| m0_3(unknown) = ^CallSideEffect : ~m1242_4 -#-----| m0_4(unknown) = Chi : total:m1242_4, partial:m0_3 -#-----| m0_5(String) = ^IndirectMayWriteSideEffect[-1] : &:r1243_4 -#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 -# 1243| r1243_5(bool) = Constant[1] : -# 1243| m1243_6(bool) = Store[a#init] : &:r1243_1, r1243_5 -# 1243| m1243_7(unknown) = Chi : total:m0_6, partial:m1243_6 +# 1243| v1243_1(void) = NoOp : +# 1244| r1244_1(int) = Constant[2] : +# 1244| r1244_2(glval<int>) = VariableAddress[y] : +# 1244| m1244_3(int) = Store[y] : &:r1244_2, r1244_1 #-----| Goto -> Block 2 -# 1244| Block 2 -# 1244| m1244_1(unknown) = Phi : from 0:~m1242_4, from 1:~m1243_7 -# 1244| r1244_2(glval<bool>) = VariableAddress[b#init] : -# 1244| r1244_3(bool) = Load[b#init] : &:r1244_2, ~m1244_1 -# 1244| v1244_4(void) = ConditionalBranch : r1244_3 +# 1245| Block 2 +# 1245| v1245_1(void) = NoOp : +# 1246| r1246_1(int) = Constant[3] : +# 1246| r1246_2(glval<int>) = VariableAddress[y] : +# 1246| m1246_3(int) = Store[y] : &:r1246_2, r1246_1 +#-----| Goto -> Block 3 + +# 1248| Block 3 +# 1248| m1248_1(int) = Phi : from 0:m1241_3, from 2:m1246_3 +# 1248| r1248_2(glval<int>) = VariableAddress[z] : +# 1248| r1248_3(glval<int>) = VariableAddress[y] : +# 1248| r1248_4(int) = Load[y] : &:r1248_3, m1248_1 +# 1248| m1248_5(int) = Store[z] : &:r1248_2, r1248_4 +# 1249| v1249_1(void) = NoOp : +# 1240| v1240_7(void) = ReturnVoid : +# 1240| v1240_8(void) = AliasedUse : m1240_3 +# 1240| v1240_9(void) = ExitFunction : + +# 1251| void switch2Case(int) +# 1251| Block 0 +# 1251| v1251_1(void) = EnterFunction : +# 1251| m1251_2(unknown) = AliasedDefinition : +# 1251| m1251_3(unknown) = InitializeNonLocal : +# 1251| m1251_4(unknown) = Chi : total:m1251_2, partial:m1251_3 +# 1251| r1251_5(glval<int>) = VariableAddress[x] : +# 1251| m1251_6(int) = InitializeParameter[x] : &:r1251_5 +# 1252| r1252_1(glval<int>) = VariableAddress[y] : +# 1252| r1252_2(int) = Constant[0] : +# 1252| m1252_3(int) = Store[y] : &:r1252_1, r1252_2 +# 1253| r1253_1(glval<int>) = VariableAddress[x] : +# 1253| r1253_2(int) = Load[x] : &:r1253_1, m1251_6 +# 1253| v1253_3(void) = Switch : r1253_2 +#-----| Case[1] -> Block 1 +#-----| Case[2] -> Block 2 +#-----| Default -> Block 3 + +# 1254| Block 1 +# 1254| v1254_1(void) = NoOp : +# 1255| r1255_1(int) = Constant[2] : +# 1255| r1255_2(glval<int>) = VariableAddress[y] : +# 1255| m1255_3(int) = Store[y] : &:r1255_2, r1255_1 +# 1256| v1256_1(void) = NoOp : +#-----| Goto -> Block 3 + +# 1257| Block 2 +# 1257| v1257_1(void) = NoOp : +# 1258| r1258_1(int) = Constant[3] : +# 1258| r1258_2(glval<int>) = VariableAddress[y] : +# 1258| m1258_3(int) = Store[y] : &:r1258_2, r1258_1 +#-----| Goto -> Block 3 + +# 1259| Block 3 +# 1259| m1259_1(int) = Phi : from 0:m1252_3, from 1:m1255_3, from 2:m1258_3 +# 1259| v1259_2(void) = NoOp : +# 1260| r1260_1(glval<int>) = VariableAddress[z] : +# 1260| r1260_2(glval<int>) = VariableAddress[y] : +# 1260| r1260_3(int) = Load[y] : &:r1260_2, m1259_1 +# 1260| m1260_4(int) = Store[z] : &:r1260_1, r1260_3 +# 1261| v1261_1(void) = NoOp : +# 1251| v1251_7(void) = ReturnVoid : +# 1251| v1251_8(void) = AliasedUse : m1251_3 +# 1251| v1251_9(void) = ExitFunction : + +# 1263| void switch2Case_default(int) +# 1263| Block 0 +# 1263| v1263_1(void) = EnterFunction : +# 1263| m1263_2(unknown) = AliasedDefinition : +# 1263| m1263_3(unknown) = InitializeNonLocal : +# 1263| m1263_4(unknown) = Chi : total:m1263_2, partial:m1263_3 +# 1263| r1263_5(glval<int>) = VariableAddress[x] : +# 1263| m1263_6(int) = InitializeParameter[x] : &:r1263_5 +# 1264| r1264_1(glval<int>) = VariableAddress[y] : +# 1264| r1264_2(int) = Constant[0] : +# 1264| m1264_3(int) = Store[y] : &:r1264_1, r1264_2 +# 1265| r1265_1(glval<int>) = VariableAddress[x] : +# 1265| r1265_2(int) = Load[x] : &:r1265_1, m1263_6 +# 1265| v1265_3(void) = Switch : r1265_2 +#-----| Case[1] -> Block 1 +#-----| Case[2] -> Block 2 +#-----| Default -> Block 3 + +# 1266| Block 1 +# 1266| v1266_1(void) = NoOp : +# 1267| r1267_1(int) = Constant[2] : +# 1267| r1267_2(glval<int>) = VariableAddress[y] : +# 1267| m1267_3(int) = Store[y] : &:r1267_2, r1267_1 +# 1268| v1268_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 1270| Block 2 +# 1270| v1270_1(void) = NoOp : +# 1271| r1271_1(int) = Constant[3] : +# 1271| r1271_2(glval<int>) = VariableAddress[y] : +# 1271| m1271_3(int) = Store[y] : &:r1271_2, r1271_1 +# 1272| v1272_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 1274| Block 3 +# 1274| v1274_1(void) = NoOp : +# 1275| r1275_1(int) = Constant[4] : +# 1275| r1275_2(glval<int>) = VariableAddress[y] : +# 1275| m1275_3(int) = Store[y] : &:r1275_2, r1275_1 +#-----| Goto -> Block 4 + +# 1276| Block 4 +# 1276| m1276_1(int) = Phi : from 1:m1267_3, from 2:m1271_3, from 3:m1275_3 +# 1276| v1276_2(void) = NoOp : +# 1277| r1277_1(glval<int>) = VariableAddress[z] : +# 1277| r1277_2(glval<int>) = VariableAddress[y] : +# 1277| r1277_3(int) = Load[y] : &:r1277_2, m1276_1 +# 1277| m1277_4(int) = Store[z] : &:r1277_1, r1277_3 +# 1278| v1278_1(void) = NoOp : +# 1263| v1263_7(void) = ReturnVoid : +# 1263| v1263_8(void) = AliasedUse : m1263_3 +# 1263| v1263_9(void) = ExitFunction : + +# 1280| int staticLocalInit(int) +# 1280| Block 0 +# 1280| v1280_1(void) = EnterFunction : +# 1280| m1280_2(unknown) = AliasedDefinition : +# 1280| m1280_3(unknown) = InitializeNonLocal : +# 1280| m1280_4(unknown) = Chi : total:m1280_2, partial:m1280_3 +# 1280| r1280_5(glval<int>) = VariableAddress[x] : +# 1280| m1280_6(int) = InitializeParameter[x] : &:r1280_5 +# 1283| r1283_1(glval<bool>) = VariableAddress[c#init] : +# 1283| r1283_2(bool) = Load[c#init] : &:r1283_1, ~m1280_3 +# 1283| v1283_3(void) = ConditionalBranch : r1283_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 1283| Block 1 +# 1283| r1283_4(glval<int>) = VariableAddress[c] : +# 1283| r1283_5(glval<int>) = VariableAddress[x] : +# 1283| r1283_6(int) = Load[x] : &:r1283_5, m1280_6 +# 1283| m1283_7(int) = Store[c] : &:r1283_4, r1283_6 +# 1283| m1283_8(unknown) = Chi : total:m1280_4, partial:m1283_7 +# 1283| r1283_9(bool) = Constant[1] : +# 1283| m1283_10(bool) = Store[c#init] : &:r1283_1, r1283_9 +# 1283| m1283_11(unknown) = Chi : total:m1283_8, partial:m1283_10 +#-----| Goto -> Block 2 + +# 1286| Block 2 +# 1286| m1286_1(int) = Phi : from 0:~m1280_3, from 1:m1283_7 +# 1286| m1286_2(unknown) = Phi : from 0:~m1280_4, from 1:~m1283_11 +# 1286| r1286_3(glval<int>) = VariableAddress[#return] : +# 1286| r1286_4(glval<int>) = VariableAddress[a] : +# 1286| r1286_5(int) = Load[a] : &:r1286_4, ~m1286_2 +# 1286| r1286_6(glval<int>) = VariableAddress[b] : +# 1286| r1286_7(int) = Load[b] : &:r1286_6, ~m1286_2 +# 1286| r1286_8(int) = Add : r1286_5, r1286_7 +# 1286| r1286_9(glval<int>) = VariableAddress[c] : +# 1286| r1286_10(int) = Load[c] : &:r1286_9, m1286_1 +# 1286| r1286_11(int) = Add : r1286_8, r1286_10 +# 1286| r1286_12(glval<int>) = VariableAddress[d] : +# 1286| r1286_13(int) = Load[d] : &:r1286_12, ~m1286_2 +# 1286| r1286_14(int) = Add : r1286_11, r1286_13 +# 1286| m1286_15(int) = Store[#return] : &:r1286_3, r1286_14 +# 1280| r1280_7(glval<int>) = VariableAddress[#return] : +# 1280| v1280_8(void) = ReturnValue : &:r1280_7, m1286_15 +# 1280| v1280_9(void) = AliasedUse : ~m1286_2 +# 1280| v1280_10(void) = ExitFunction : + +# 1281| int a +# 1281| Block 0 +# 1281| v1281_1(void) = EnterFunction : +# 1281| m1281_2(unknown) = AliasedDefinition : +# 1281| r1281_3(glval<int>) = VariableAddress[a] : +# 1281| r1281_4(int) = Constant[0] : +# 1281| m1281_5(int) = Store[a] : &:r1281_3, r1281_4 +# 1281| m1281_6(unknown) = Chi : total:m1281_2, partial:m1281_5 +# 1281| v1281_7(void) = ReturnVoid : +# 1281| v1281_8(void) = AliasedUse : ~m1281_6 +# 1281| v1281_9(void) = ExitFunction : + +# 1282| int b +# 1282| Block 0 +# 1282| v1282_1(void) = EnterFunction : +# 1282| m1282_2(unknown) = AliasedDefinition : +# 1282| r1282_3(glval<int>) = VariableAddress[b] : +# 1282| r1282_4(int) = Constant[4] : +# 1282| m1282_5(int) = Store[b] : &:r1282_3, r1282_4 +# 1282| m1282_6(unknown) = Chi : total:m1282_2, partial:m1282_5 +# 1282| v1282_7(void) = ReturnVoid : +# 1282| v1282_8(void) = AliasedUse : ~m1282_6 +# 1282| v1282_9(void) = ExitFunction : + +# 1289| void staticLocalWithConstructor(char const*) +# 1289| Block 0 +# 1289| v1289_1(void) = EnterFunction : +# 1289| m1289_2(unknown) = AliasedDefinition : +# 1289| m1289_3(unknown) = InitializeNonLocal : +# 1289| m1289_4(unknown) = Chi : total:m1289_2, partial:m1289_3 +# 1289| r1289_5(glval<char *>) = VariableAddress[dynamic] : +# 1289| m1289_6(char *) = InitializeParameter[dynamic] : &:r1289_5 +# 1289| r1289_7(char *) = Load[dynamic] : &:r1289_5, m1289_6 +# 1289| m1289_8(unknown) = InitializeIndirection[dynamic] : &:r1289_7 +# 1290| r1290_1(glval<bool>) = VariableAddress[a#init] : +# 1290| r1290_2(bool) = Load[a#init] : &:r1290_1, ~m1289_3 +# 1290| v1290_3(void) = ConditionalBranch : r1290_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 1290| Block 1 +# 1290| r1290_4(glval<String>) = VariableAddress[a] : +#-----| r0_1(glval<unknown>) = FunctionAddress[String] : +#-----| v0_2(void) = Call[String] : func:r0_1, this:r1290_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m1289_4 +#-----| m0_4(unknown) = Chi : total:m1289_4, partial:m0_3 +#-----| m0_5(String) = ^IndirectMayWriteSideEffect[-1] : &:r1290_4 +#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 +# 1290| r1290_5(bool) = Constant[1] : +# 1290| m1290_6(bool) = Store[a#init] : &:r1290_1, r1290_5 +# 1290| m1290_7(unknown) = Chi : total:m0_6, partial:m1290_6 +#-----| Goto -> Block 2 + +# 1291| Block 2 +# 1291| m1291_1(unknown) = Phi : from 0:~m1289_4, from 1:~m1290_7 +# 1291| r1291_2(glval<bool>) = VariableAddress[b#init] : +# 1291| r1291_3(bool) = Load[b#init] : &:r1291_2, ~m1291_1 +# 1291| v1291_4(void) = ConditionalBranch : r1291_3 #-----| False -> Block 3 #-----| True -> Block 4 -# 1244| Block 3 -# 1244| r1244_5(glval<String>) = VariableAddress[b] : -# 1244| r1244_6(glval<unknown>) = FunctionAddress[String] : -# 1244| r1244_7(glval<char[7]>) = StringConstant["static"] : -# 1244| r1244_8(char *) = Convert : r1244_7 -# 1244| v1244_9(void) = Call[String] : func:r1244_6, this:r1244_5, 0:r1244_8 -# 1244| m1244_10(unknown) = ^CallSideEffect : ~m1244_1 -# 1244| m1244_11(unknown) = Chi : total:m1244_1, partial:m1244_10 -# 1244| v1244_12(void) = ^BufferReadSideEffect[0] : &:r1244_8, ~m1242_3 -# 1244| m1244_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1244_5 -# 1244| m1244_14(unknown) = Chi : total:m1244_11, partial:m1244_13 -# 1244| r1244_15(bool) = Constant[1] : -# 1244| m1244_16(bool) = Store[b#init] : &:r1244_2, r1244_15 -# 1244| m1244_17(unknown) = Chi : total:m1244_14, partial:m1244_16 +# 1291| Block 3 +# 1291| r1291_5(glval<String>) = VariableAddress[b] : +# 1291| r1291_6(glval<unknown>) = FunctionAddress[String] : +# 1291| r1291_7(glval<char[7]>) = StringConstant["static"] : +# 1291| r1291_8(char *) = Convert : r1291_7 +# 1291| v1291_9(void) = Call[String] : func:r1291_6, this:r1291_5, 0:r1291_8 +# 1291| m1291_10(unknown) = ^CallSideEffect : ~m1291_1 +# 1291| m1291_11(unknown) = Chi : total:m1291_1, partial:m1291_10 +# 1291| v1291_12(void) = ^BufferReadSideEffect[0] : &:r1291_8, ~m1289_3 +# 1291| m1291_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1291_5 +# 1291| m1291_14(unknown) = Chi : total:m1291_11, partial:m1291_13 +# 1291| r1291_15(bool) = Constant[1] : +# 1291| m1291_16(bool) = Store[b#init] : &:r1291_2, r1291_15 +# 1291| m1291_17(unknown) = Chi : total:m1291_14, partial:m1291_16 #-----| Goto -> Block 4 -# 1245| Block 4 -# 1245| m1245_1(unknown) = Phi : from 2:~m1244_1, from 3:~m1244_17 -# 1245| r1245_2(glval<bool>) = VariableAddress[c#init] : -# 1245| r1245_3(bool) = Load[c#init] : &:r1245_2, ~m1245_1 -# 1245| v1245_4(void) = ConditionalBranch : r1245_3 +# 1292| Block 4 +# 1292| m1292_1(unknown) = Phi : from 2:~m1291_1, from 3:~m1291_17 +# 1292| r1292_2(glval<bool>) = VariableAddress[c#init] : +# 1292| r1292_3(bool) = Load[c#init] : &:r1292_2, ~m1292_1 +# 1292| v1292_4(void) = ConditionalBranch : r1292_3 #-----| False -> Block 5 #-----| True -> Block 6 -# 1245| Block 5 -# 1245| r1245_5(glval<String>) = VariableAddress[c] : -# 1245| r1245_6(glval<unknown>) = FunctionAddress[String] : -# 1245| r1245_7(glval<char *>) = VariableAddress[dynamic] : -# 1245| r1245_8(char *) = Load[dynamic] : &:r1245_7, m1242_6 -# 1245| v1245_9(void) = Call[String] : func:r1245_6, this:r1245_5, 0:r1245_8 -# 1245| m1245_10(unknown) = ^CallSideEffect : ~m1245_1 -# 1245| m1245_11(unknown) = Chi : total:m1245_1, partial:m1245_10 -# 1245| v1245_12(void) = ^BufferReadSideEffect[0] : &:r1245_8, ~m1242_8 -# 1245| m1245_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1245_5 -# 1245| m1245_14(unknown) = Chi : total:m1245_11, partial:m1245_13 -# 1245| r1245_15(bool) = Constant[1] : -# 1245| m1245_16(bool) = Store[c#init] : &:r1245_2, r1245_15 -# 1245| m1245_17(unknown) = Chi : total:m1245_14, partial:m1245_16 +# 1292| Block 5 +# 1292| r1292_5(glval<String>) = VariableAddress[c] : +# 1292| r1292_6(glval<unknown>) = FunctionAddress[String] : +# 1292| r1292_7(glval<char *>) = VariableAddress[dynamic] : +# 1292| r1292_8(char *) = Load[dynamic] : &:r1292_7, m1289_6 +# 1292| v1292_9(void) = Call[String] : func:r1292_6, this:r1292_5, 0:r1292_8 +# 1292| m1292_10(unknown) = ^CallSideEffect : ~m1292_1 +# 1292| m1292_11(unknown) = Chi : total:m1292_1, partial:m1292_10 +# 1292| v1292_12(void) = ^BufferReadSideEffect[0] : &:r1292_8, ~m1289_8 +# 1292| m1292_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r1292_5 +# 1292| m1292_14(unknown) = Chi : total:m1292_11, partial:m1292_13 +# 1292| r1292_15(bool) = Constant[1] : +# 1292| m1292_16(bool) = Store[c#init] : &:r1292_2, r1292_15 +# 1292| m1292_17(unknown) = Chi : total:m1292_14, partial:m1292_16 #-----| Goto -> Block 6 -# 1246| Block 6 -# 1246| m1246_1(unknown) = Phi : from 4:~m1245_1, from 5:~m1245_17 -# 1246| v1246_2(void) = NoOp : -# 1242| v1242_9(void) = ReturnIndirection[dynamic] : &:r1242_7, m1242_8 -# 1242| v1242_10(void) = ReturnVoid : -# 1242| v1242_11(void) = AliasedUse : ~m1246_1 -# 1242| v1242_12(void) = ExitFunction : +# 1293| Block 6 +# 1293| m1293_1(unknown) = Phi : from 4:~m1292_1, from 5:~m1292_17 +# 1293| v1293_2(void) = NoOp : +# 1289| v1289_9(void) = ReturnIndirection[dynamic] : &:r1289_7, m1289_8 +# 1289| v1289_10(void) = ReturnVoid : +# 1289| v1289_11(void) = AliasedUse : ~m1293_1 +# 1289| v1289_12(void) = ExitFunction : -# 1253| void test_strings(char*, char*) -# 1253| Block 0 -# 1253| v1253_1(void) = EnterFunction : -# 1253| m1253_2(unknown) = AliasedDefinition : -# 1253| m1253_3(unknown) = InitializeNonLocal : -# 1253| m1253_4(unknown) = Chi : total:m1253_2, partial:m1253_3 -# 1253| r1253_5(glval<char *>) = VariableAddress[s1] : -# 1253| m1253_6(char *) = InitializeParameter[s1] : &:r1253_5 -# 1253| r1253_7(char *) = Load[s1] : &:r1253_5, m1253_6 -# 1253| m1253_8(unknown) = InitializeIndirection[s1] : &:r1253_7 -# 1253| r1253_9(glval<char *>) = VariableAddress[s2] : -# 1253| m1253_10(char *) = InitializeParameter[s2] : &:r1253_9 -# 1253| r1253_11(char *) = Load[s2] : &:r1253_9, m1253_10 -# 1253| m1253_12(unknown) = InitializeIndirection[s2] : &:r1253_11 -# 1254| r1254_1(glval<char[1024]>) = VariableAddress[buffer] : -# 1254| m1254_2(char[1024]) = Uninitialized[buffer] : &:r1254_1 -# 1254| r1254_3(int) = Constant[0] : -# 1254| r1254_4(glval<char>) = PointerAdd[1] : r1254_1, r1254_3 -# 1254| r1254_5(char) = Constant[0] : -# 1254| m1254_6(char) = Store[?] : &:r1254_4, r1254_5 -# 1254| m1254_7(char[1024]) = Chi : total:m1254_2, partial:m1254_6 -# 1254| r1254_8(int) = Constant[1] : -# 1254| r1254_9(glval<char>) = PointerAdd[1] : r1254_1, r1254_8 -# 1254| r1254_10(unknown[1023]) = Constant[0] : -# 1254| m1254_11(unknown[1023]) = Store[?] : &:r1254_9, r1254_10 -# 1254| m1254_12(char[1024]) = Chi : total:m1254_7, partial:m1254_11 -# 1256| r1256_1(glval<unknown>) = FunctionAddress[strcpy] : -# 1256| r1256_2(glval<char[1024]>) = VariableAddress[buffer] : -# 1256| r1256_3(char *) = Convert : r1256_2 -# 1256| r1256_4(glval<char *>) = VariableAddress[s1] : -# 1256| r1256_5(char *) = Load[s1] : &:r1256_4, m1253_6 -# 1256| r1256_6(char *) = Convert : r1256_5 -# 1256| r1256_7(char *) = Call[strcpy] : func:r1256_1, 0:r1256_3, 1:r1256_6 -# 1256| v1256_8(void) = ^BufferReadSideEffect[1] : &:r1256_6, ~m1253_8 -# 1256| m1256_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1256_3 -# 1256| m1256_10(char[1024]) = Chi : total:m1254_12, partial:m1256_9 -# 1257| r1257_1(glval<unknown>) = FunctionAddress[strcat] : -# 1257| r1257_2(glval<char[1024]>) = VariableAddress[buffer] : -# 1257| r1257_3(char *) = Convert : r1257_2 -# 1257| r1257_4(glval<char *>) = VariableAddress[s2] : -# 1257| r1257_5(char *) = Load[s2] : &:r1257_4, m1253_10 -# 1257| r1257_6(char *) = Convert : r1257_5 -# 1257| r1257_7(char *) = Call[strcat] : func:r1257_1, 0:r1257_3, 1:r1257_6 -# 1257| v1257_8(void) = ^BufferReadSideEffect[0] : &:r1257_3, ~m1256_10 -# 1257| v1257_9(void) = ^BufferReadSideEffect[1] : &:r1257_6, ~m1253_12 -# 1257| m1257_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1257_3 -# 1257| m1257_11(char[1024]) = Chi : total:m1256_10, partial:m1257_10 -# 1258| v1258_1(void) = NoOp : -# 1253| v1253_13(void) = ReturnIndirection[s1] : &:r1253_7, m1253_8 -# 1253| v1253_14(void) = ReturnIndirection[s2] : &:r1253_11, m1253_12 -# 1253| v1253_15(void) = ReturnVoid : -# 1253| v1253_16(void) = AliasedUse : m1253_3 -# 1253| v1253_17(void) = ExitFunction : +# 1300| void test_strings(char*, char*) +# 1300| Block 0 +# 1300| v1300_1(void) = EnterFunction : +# 1300| m1300_2(unknown) = AliasedDefinition : +# 1300| m1300_3(unknown) = InitializeNonLocal : +# 1300| m1300_4(unknown) = Chi : total:m1300_2, partial:m1300_3 +# 1300| r1300_5(glval<char *>) = VariableAddress[s1] : +# 1300| m1300_6(char *) = InitializeParameter[s1] : &:r1300_5 +# 1300| r1300_7(char *) = Load[s1] : &:r1300_5, m1300_6 +# 1300| m1300_8(unknown) = InitializeIndirection[s1] : &:r1300_7 +# 1300| r1300_9(glval<char *>) = VariableAddress[s2] : +# 1300| m1300_10(char *) = InitializeParameter[s2] : &:r1300_9 +# 1300| r1300_11(char *) = Load[s2] : &:r1300_9, m1300_10 +# 1300| m1300_12(unknown) = InitializeIndirection[s2] : &:r1300_11 +# 1301| r1301_1(glval<char[1024]>) = VariableAddress[buffer] : +# 1301| m1301_2(char[1024]) = Uninitialized[buffer] : &:r1301_1 +# 1301| r1301_3(int) = Constant[0] : +# 1301| r1301_4(glval<char>) = PointerAdd[1] : r1301_1, r1301_3 +# 1301| r1301_5(char) = Constant[0] : +# 1301| m1301_6(char) = Store[?] : &:r1301_4, r1301_5 +# 1301| m1301_7(char[1024]) = Chi : total:m1301_2, partial:m1301_6 +# 1301| r1301_8(int) = Constant[1] : +# 1301| r1301_9(glval<char>) = PointerAdd[1] : r1301_1, r1301_8 +# 1301| r1301_10(unknown[1023]) = Constant[0] : +# 1301| m1301_11(unknown[1023]) = Store[?] : &:r1301_9, r1301_10 +# 1301| m1301_12(char[1024]) = Chi : total:m1301_7, partial:m1301_11 +# 1303| r1303_1(glval<unknown>) = FunctionAddress[strcpy] : +# 1303| r1303_2(glval<char[1024]>) = VariableAddress[buffer] : +# 1303| r1303_3(char *) = Convert : r1303_2 +# 1303| r1303_4(glval<char *>) = VariableAddress[s1] : +# 1303| r1303_5(char *) = Load[s1] : &:r1303_4, m1300_6 +# 1303| r1303_6(char *) = Convert : r1303_5 +# 1303| r1303_7(char *) = Call[strcpy] : func:r1303_1, 0:r1303_3, 1:r1303_6 +# 1303| v1303_8(void) = ^BufferReadSideEffect[1] : &:r1303_6, ~m1300_8 +# 1303| m1303_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1303_3 +# 1303| m1303_10(char[1024]) = Chi : total:m1301_12, partial:m1303_9 +# 1304| r1304_1(glval<unknown>) = FunctionAddress[strcat] : +# 1304| r1304_2(glval<char[1024]>) = VariableAddress[buffer] : +# 1304| r1304_3(char *) = Convert : r1304_2 +# 1304| r1304_4(glval<char *>) = VariableAddress[s2] : +# 1304| r1304_5(char *) = Load[s2] : &:r1304_4, m1300_10 +# 1304| r1304_6(char *) = Convert : r1304_5 +# 1304| r1304_7(char *) = Call[strcat] : func:r1304_1, 0:r1304_3, 1:r1304_6 +# 1304| v1304_8(void) = ^BufferReadSideEffect[0] : &:r1304_3, ~m1303_10 +# 1304| v1304_9(void) = ^BufferReadSideEffect[1] : &:r1304_6, ~m1300_12 +# 1304| m1304_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1304_3 +# 1304| m1304_11(char[1024]) = Chi : total:m1303_10, partial:m1304_10 +# 1305| v1305_1(void) = NoOp : +# 1300| v1300_13(void) = ReturnIndirection[s1] : &:r1300_7, m1300_8 +# 1300| v1300_14(void) = ReturnIndirection[s2] : &:r1300_11, m1300_12 +# 1300| v1300_15(void) = ReturnVoid : +# 1300| v1300_16(void) = AliasedUse : m1300_3 +# 1300| v1300_17(void) = ExitFunction : -# 1263| void A::static_member(A*, int) -# 1263| Block 0 -# 1263| v1263_1(void) = EnterFunction : -# 1263| m1263_2(unknown) = AliasedDefinition : -# 1263| m1263_3(unknown) = InitializeNonLocal : -# 1263| m1263_4(unknown) = Chi : total:m1263_2, partial:m1263_3 -# 1263| r1263_5(glval<A *>) = VariableAddress[a] : -# 1263| m1263_6(A *) = InitializeParameter[a] : &:r1263_5 -# 1263| r1263_7(A *) = Load[a] : &:r1263_5, m1263_6 -# 1263| m1263_8(unknown) = InitializeIndirection[a] : &:r1263_7 -# 1263| r1263_9(glval<int>) = VariableAddress[x] : -# 1263| m1263_10(int) = InitializeParameter[x] : &:r1263_9 -# 1264| r1264_1(glval<int>) = VariableAddress[x] : -# 1264| r1264_2(int) = Load[x] : &:r1264_1, m1263_10 -# 1264| r1264_3(glval<A *>) = VariableAddress[a] : -# 1264| r1264_4(A *) = Load[a] : &:r1264_3, m1263_6 -# 1264| r1264_5(glval<int>) = FieldAddress[member] : r1264_4 -# 1264| m1264_6(int) = Store[?] : &:r1264_5, r1264_2 -# 1264| m1264_7(unknown) = Chi : total:m1263_8, partial:m1264_6 -# 1265| v1265_1(void) = NoOp : -# 1263| v1263_11(void) = ReturnIndirection[a] : &:r1263_7, m1264_7 -# 1263| v1263_12(void) = ReturnVoid : -# 1263| v1263_13(void) = AliasedUse : m1263_3 -# 1263| v1263_14(void) = ExitFunction : +# 1310| void A::static_member(A*, int) +# 1310| Block 0 +# 1310| v1310_1(void) = EnterFunction : +# 1310| m1310_2(unknown) = AliasedDefinition : +# 1310| m1310_3(unknown) = InitializeNonLocal : +# 1310| m1310_4(unknown) = Chi : total:m1310_2, partial:m1310_3 +# 1310| r1310_5(glval<A *>) = VariableAddress[a] : +# 1310| m1310_6(A *) = InitializeParameter[a] : &:r1310_5 +# 1310| r1310_7(A *) = Load[a] : &:r1310_5, m1310_6 +# 1310| m1310_8(unknown) = InitializeIndirection[a] : &:r1310_7 +# 1310| r1310_9(glval<int>) = VariableAddress[x] : +# 1310| m1310_10(int) = InitializeParameter[x] : &:r1310_9 +# 1311| r1311_1(glval<int>) = VariableAddress[x] : +# 1311| r1311_2(int) = Load[x] : &:r1311_1, m1310_10 +# 1311| r1311_3(glval<A *>) = VariableAddress[a] : +# 1311| r1311_4(A *) = Load[a] : &:r1311_3, m1310_6 +# 1311| r1311_5(glval<int>) = FieldAddress[member] : r1311_4 +# 1311| m1311_6(int) = Store[?] : &:r1311_5, r1311_2 +# 1311| m1311_7(unknown) = Chi : total:m1310_8, partial:m1311_6 +# 1312| v1312_1(void) = NoOp : +# 1310| v1310_11(void) = ReturnIndirection[a] : &:r1310_7, m1311_7 +# 1310| v1310_12(void) = ReturnVoid : +# 1310| v1310_13(void) = AliasedUse : m1310_3 +# 1310| v1310_14(void) = ExitFunction : -# 1272| void test_static_member_functions(int, A*) -# 1272| Block 0 -# 1272| v1272_1(void) = EnterFunction : -# 1272| m1272_2(unknown) = AliasedDefinition : -# 1272| m1272_3(unknown) = InitializeNonLocal : -# 1272| m1272_4(unknown) = Chi : total:m1272_2, partial:m1272_3 -# 1272| r1272_5(glval<int>) = VariableAddress[int_arg] : -# 1272| m1272_6(int) = InitializeParameter[int_arg] : &:r1272_5 -# 1272| r1272_7(glval<A *>) = VariableAddress[a_arg] : -# 1272| m1272_8(A *) = InitializeParameter[a_arg] : &:r1272_7 -# 1272| r1272_9(A *) = Load[a_arg] : &:r1272_7, m1272_8 -# 1272| m1272_10(unknown) = InitializeIndirection[a_arg] : &:r1272_9 -# 1273| r1273_1(glval<C>) = VariableAddress[c] : -# 1273| m1273_2(C) = Uninitialized[c] : &:r1273_1 -# 1273| r1273_3(glval<unknown>) = FunctionAddress[C] : -# 1273| v1273_4(void) = Call[C] : func:r1273_3, this:r1273_1 -# 1273| m1273_5(unknown) = ^CallSideEffect : ~m1272_4 -# 1273| m1273_6(unknown) = Chi : total:m1272_4, partial:m1273_5 -# 1273| m1273_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1273_1 -# 1273| m1273_8(C) = Chi : total:m1273_2, partial:m1273_7 -# 1274| r1274_1(glval<C>) = VariableAddress[c] : -# 1274| r1274_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] : -# 1274| r1274_3(int) = Constant[10] : -# 1274| r1274_4(int) = Call[StaticMemberFunction] : func:r1274_2, 0:r1274_3 -# 1274| m1274_5(unknown) = ^CallSideEffect : ~m1273_6 -# 1274| m1274_6(unknown) = Chi : total:m1273_6, partial:m1274_5 -# 1275| r1275_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] : -# 1275| r1275_2(int) = Constant[10] : -# 1275| r1275_3(int) = Call[StaticMemberFunction] : func:r1275_1, 0:r1275_2 -# 1275| m1275_4(unknown) = ^CallSideEffect : ~m1274_6 -# 1275| m1275_5(unknown) = Chi : total:m1274_6, partial:m1275_4 -# 1277| r1277_1(glval<A>) = VariableAddress[a] : -# 1277| m1277_2(A) = Uninitialized[a] : &:r1277_1 -# 1278| r1278_1(glval<A>) = VariableAddress[a] : -# 1278| r1278_2(glval<unknown>) = FunctionAddress[static_member] : -# 1278| r1278_3(glval<A>) = VariableAddress[a] : -# 1278| r1278_4(A *) = CopyValue : r1278_3 -# 1278| r1278_5(glval<int>) = VariableAddress[int_arg] : -# 1278| r1278_6(int) = Load[int_arg] : &:r1278_5, m1272_6 -# 1278| v1278_7(void) = Call[static_member] : func:r1278_2, 0:r1278_4, 1:r1278_6 -# 1278| m1278_8(unknown) = ^CallSideEffect : ~m1275_5 -# 1278| m1278_9(unknown) = Chi : total:m1275_5, partial:m1278_8 -# 1278| v1278_10(void) = ^BufferReadSideEffect[0] : &:r1278_4, ~m1277_2 -# 1278| m1278_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1278_4 -# 1278| m1278_12(A) = Chi : total:m1277_2, partial:m1278_11 -# 1279| r1279_1(glval<unknown>) = FunctionAddress[static_member] : -# 1279| r1279_2(glval<A>) = VariableAddress[a] : -# 1279| r1279_3(A *) = CopyValue : r1279_2 -# 1279| r1279_4(glval<int>) = VariableAddress[int_arg] : -# 1279| r1279_5(int) = Load[int_arg] : &:r1279_4, m1272_6 -# 1279| v1279_6(void) = Call[static_member] : func:r1279_1, 0:r1279_3, 1:r1279_5 -# 1279| m1279_7(unknown) = ^CallSideEffect : ~m1278_9 -# 1279| m1279_8(unknown) = Chi : total:m1278_9, partial:m1279_7 -# 1279| v1279_9(void) = ^BufferReadSideEffect[0] : &:r1279_3, ~m1278_12 -# 1279| m1279_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1279_3 -# 1279| m1279_11(A) = Chi : total:m1278_12, partial:m1279_10 -# 1281| r1281_1(glval<A>) = VariableAddress[a] : -# 1281| r1281_2(A *) = CopyValue : r1281_1 -# 1281| r1281_3(glval<unknown>) = FunctionAddress[static_member] : -# 1281| r1281_4(glval<A *>) = VariableAddress[a_arg] : -# 1281| r1281_5(A *) = Load[a_arg] : &:r1281_4, m1272_8 -# 1281| r1281_6(glval<int>) = VariableAddress[int_arg] : -# 1281| r1281_7(int) = Load[int_arg] : &:r1281_6, m1272_6 -# 1281| r1281_8(int) = Constant[2] : -# 1281| r1281_9(int) = Add : r1281_7, r1281_8 -# 1281| v1281_10(void) = Call[static_member] : func:r1281_3, 0:r1281_5, 1:r1281_9 -# 1281| m1281_11(unknown) = ^CallSideEffect : ~m1279_8 -# 1281| m1281_12(unknown) = Chi : total:m1279_8, partial:m1281_11 -# 1281| v1281_13(void) = ^BufferReadSideEffect[0] : &:r1281_5, ~m1272_10 -# 1281| m1281_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r1281_5 -# 1281| m1281_15(unknown) = Chi : total:m1272_10, partial:m1281_14 -# 1282| r1282_1(glval<A *>) = VariableAddress[a_arg] : -# 1282| r1282_2(A *) = Load[a_arg] : &:r1282_1, m1272_8 -# 1282| r1282_3(glval<A>) = CopyValue : r1282_2 -# 1282| r1282_4(glval<unknown>) = FunctionAddress[static_member] : -# 1282| r1282_5(glval<A>) = VariableAddress[a] : -# 1282| r1282_6(A *) = CopyValue : r1282_5 -# 1282| r1282_7(int) = Constant[99] : -# 1282| v1282_8(void) = Call[static_member] : func:r1282_4, 0:r1282_6, 1:r1282_7 -# 1282| m1282_9(unknown) = ^CallSideEffect : ~m1281_12 -# 1282| m1282_10(unknown) = Chi : total:m1281_12, partial:m1282_9 -# 1282| v1282_11(void) = ^BufferReadSideEffect[0] : &:r1282_6, ~m1279_11 -# 1282| m1282_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r1282_6 -# 1282| m1282_13(A) = Chi : total:m1279_11, partial:m1282_12 -# 1283| r1283_1(glval<A *>) = VariableAddress[a_arg] : -# 1283| r1283_2(A *) = Load[a_arg] : &:r1283_1, m1272_8 -# 1283| r1283_3(glval<unknown>) = FunctionAddress[static_member] : -# 1283| r1283_4(glval<A *>) = VariableAddress[a_arg] : -# 1283| r1283_5(A *) = Load[a_arg] : &:r1283_4, m1272_8 -# 1283| r1283_6(int) = Constant[-1] : -# 1283| v1283_7(void) = Call[static_member] : func:r1283_3, 0:r1283_5, 1:r1283_6 -# 1283| m1283_8(unknown) = ^CallSideEffect : ~m1282_10 -# 1283| m1283_9(unknown) = Chi : total:m1282_10, partial:m1283_8 -# 1283| v1283_10(void) = ^BufferReadSideEffect[0] : &:r1283_5, ~m1281_15 -# 1283| m1283_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1283_5 -# 1283| m1283_12(unknown) = Chi : total:m1281_15, partial:m1283_11 -# 1285| r1285_1(glval<A>) = VariableAddress[a] : -# 1285| r1285_2(glval<unknown>) = FunctionAddress[static_member_without_def] : -# 1285| v1285_3(void) = Call[static_member_without_def] : func:r1285_2 -# 1285| m1285_4(unknown) = ^CallSideEffect : ~m1283_9 -# 1285| m1285_5(unknown) = Chi : total:m1283_9, partial:m1285_4 -# 1286| r1286_1(glval<unknown>) = FunctionAddress[static_member_without_def] : -# 1286| v1286_2(void) = Call[static_member_without_def] : func:r1286_1 -# 1286| m1286_3(unknown) = ^CallSideEffect : ~m1285_5 -# 1286| m1286_4(unknown) = Chi : total:m1285_5, partial:m1286_3 -# 1288| r1288_1(glval<unknown>) = FunctionAddress[getAnInstanceOfA] : -# 1288| r1288_2(A *) = Call[getAnInstanceOfA] : func:r1288_1 -# 1288| m1288_3(unknown) = ^CallSideEffect : ~m1286_4 -# 1288| m1288_4(unknown) = Chi : total:m1286_4, partial:m1288_3 -# 1288| r1288_5(glval<unknown>) = FunctionAddress[static_member_without_def] : -# 1288| v1288_6(void) = Call[static_member_without_def] : func:r1288_5 -# 1288| m1288_7(unknown) = ^CallSideEffect : ~m1288_4 -# 1288| m1288_8(unknown) = Chi : total:m1288_4, partial:m1288_7 -# 1289| v1289_1(void) = NoOp : -# 1289| r1289_2(glval<C>) = VariableAddress[c] : -# 1289| r1289_3(glval<unknown>) = FunctionAddress[~C] : -# 1289| v1289_4(void) = Call[~C] : func:r1289_3, this:r1289_2 -# 1289| m1289_5(unknown) = ^CallSideEffect : ~m1288_8 -# 1289| m1289_6(unknown) = Chi : total:m1288_8, partial:m1289_5 -# 1289| v1289_7(void) = ^IndirectReadSideEffect[-1] : &:r1289_2, m1273_8 -# 1289| m1289_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1289_2 -# 1289| m1289_9(C) = Chi : total:m1273_8, partial:m1289_8 -# 1272| v1272_11(void) = ReturnIndirection[a_arg] : &:r1272_9, m1283_12 -# 1272| v1272_12(void) = ReturnVoid : -# 1272| v1272_13(void) = AliasedUse : ~m1289_6 -# 1272| v1272_14(void) = ExitFunction : +# 1319| void test_static_member_functions(int, A*) +# 1319| Block 0 +# 1319| v1319_1(void) = EnterFunction : +# 1319| m1319_2(unknown) = AliasedDefinition : +# 1319| m1319_3(unknown) = InitializeNonLocal : +# 1319| m1319_4(unknown) = Chi : total:m1319_2, partial:m1319_3 +# 1319| r1319_5(glval<int>) = VariableAddress[int_arg] : +# 1319| m1319_6(int) = InitializeParameter[int_arg] : &:r1319_5 +# 1319| r1319_7(glval<A *>) = VariableAddress[a_arg] : +# 1319| m1319_8(A *) = InitializeParameter[a_arg] : &:r1319_7 +# 1319| r1319_9(A *) = Load[a_arg] : &:r1319_7, m1319_8 +# 1319| m1319_10(unknown) = InitializeIndirection[a_arg] : &:r1319_9 +# 1320| r1320_1(glval<C>) = VariableAddress[c] : +# 1320| m1320_2(C) = Uninitialized[c] : &:r1320_1 +# 1320| r1320_3(glval<unknown>) = FunctionAddress[C] : +# 1320| v1320_4(void) = Call[C] : func:r1320_3, this:r1320_1 +# 1320| m1320_5(unknown) = ^CallSideEffect : ~m1319_4 +# 1320| m1320_6(unknown) = Chi : total:m1319_4, partial:m1320_5 +# 1320| m1320_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1320_1 +# 1320| m1320_8(C) = Chi : total:m1320_2, partial:m1320_7 +# 1321| r1321_1(glval<C>) = VariableAddress[c] : +# 1321| r1321_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] : +# 1321| r1321_3(int) = Constant[10] : +# 1321| r1321_4(int) = Call[StaticMemberFunction] : func:r1321_2, 0:r1321_3 +# 1321| m1321_5(unknown) = ^CallSideEffect : ~m1320_6 +# 1321| m1321_6(unknown) = Chi : total:m1320_6, partial:m1321_5 +# 1322| r1322_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] : +# 1322| r1322_2(int) = Constant[10] : +# 1322| r1322_3(int) = Call[StaticMemberFunction] : func:r1322_1, 0:r1322_2 +# 1322| m1322_4(unknown) = ^CallSideEffect : ~m1321_6 +# 1322| m1322_5(unknown) = Chi : total:m1321_6, partial:m1322_4 +# 1324| r1324_1(glval<A>) = VariableAddress[a] : +# 1324| m1324_2(A) = Uninitialized[a] : &:r1324_1 +# 1325| r1325_1(glval<A>) = VariableAddress[a] : +# 1325| r1325_2(glval<unknown>) = FunctionAddress[static_member] : +# 1325| r1325_3(glval<A>) = VariableAddress[a] : +# 1325| r1325_4(A *) = CopyValue : r1325_3 +# 1325| r1325_5(glval<int>) = VariableAddress[int_arg] : +# 1325| r1325_6(int) = Load[int_arg] : &:r1325_5, m1319_6 +# 1325| v1325_7(void) = Call[static_member] : func:r1325_2, 0:r1325_4, 1:r1325_6 +# 1325| m1325_8(unknown) = ^CallSideEffect : ~m1322_5 +# 1325| m1325_9(unknown) = Chi : total:m1322_5, partial:m1325_8 +# 1325| v1325_10(void) = ^BufferReadSideEffect[0] : &:r1325_4, ~m1324_2 +# 1325| m1325_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1325_4 +# 1325| m1325_12(A) = Chi : total:m1324_2, partial:m1325_11 +# 1326| r1326_1(glval<unknown>) = FunctionAddress[static_member] : +# 1326| r1326_2(glval<A>) = VariableAddress[a] : +# 1326| r1326_3(A *) = CopyValue : r1326_2 +# 1326| r1326_4(glval<int>) = VariableAddress[int_arg] : +# 1326| r1326_5(int) = Load[int_arg] : &:r1326_4, m1319_6 +# 1326| v1326_6(void) = Call[static_member] : func:r1326_1, 0:r1326_3, 1:r1326_5 +# 1326| m1326_7(unknown) = ^CallSideEffect : ~m1325_9 +# 1326| m1326_8(unknown) = Chi : total:m1325_9, partial:m1326_7 +# 1326| v1326_9(void) = ^BufferReadSideEffect[0] : &:r1326_3, ~m1325_12 +# 1326| m1326_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1326_3 +# 1326| m1326_11(A) = Chi : total:m1325_12, partial:m1326_10 +# 1328| r1328_1(glval<A>) = VariableAddress[a] : +# 1328| r1328_2(A *) = CopyValue : r1328_1 +# 1328| r1328_3(glval<unknown>) = FunctionAddress[static_member] : +# 1328| r1328_4(glval<A *>) = VariableAddress[a_arg] : +# 1328| r1328_5(A *) = Load[a_arg] : &:r1328_4, m1319_8 +# 1328| r1328_6(glval<int>) = VariableAddress[int_arg] : +# 1328| r1328_7(int) = Load[int_arg] : &:r1328_6, m1319_6 +# 1328| r1328_8(int) = Constant[2] : +# 1328| r1328_9(int) = Add : r1328_7, r1328_8 +# 1328| v1328_10(void) = Call[static_member] : func:r1328_3, 0:r1328_5, 1:r1328_9 +# 1328| m1328_11(unknown) = ^CallSideEffect : ~m1326_8 +# 1328| m1328_12(unknown) = Chi : total:m1326_8, partial:m1328_11 +# 1328| v1328_13(void) = ^BufferReadSideEffect[0] : &:r1328_5, ~m1319_10 +# 1328| m1328_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r1328_5 +# 1328| m1328_15(unknown) = Chi : total:m1319_10, partial:m1328_14 +# 1329| r1329_1(glval<A *>) = VariableAddress[a_arg] : +# 1329| r1329_2(A *) = Load[a_arg] : &:r1329_1, m1319_8 +# 1329| r1329_3(glval<A>) = CopyValue : r1329_2 +# 1329| r1329_4(glval<unknown>) = FunctionAddress[static_member] : +# 1329| r1329_5(glval<A>) = VariableAddress[a] : +# 1329| r1329_6(A *) = CopyValue : r1329_5 +# 1329| r1329_7(int) = Constant[99] : +# 1329| v1329_8(void) = Call[static_member] : func:r1329_4, 0:r1329_6, 1:r1329_7 +# 1329| m1329_9(unknown) = ^CallSideEffect : ~m1328_12 +# 1329| m1329_10(unknown) = Chi : total:m1328_12, partial:m1329_9 +# 1329| v1329_11(void) = ^BufferReadSideEffect[0] : &:r1329_6, ~m1326_11 +# 1329| m1329_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r1329_6 +# 1329| m1329_13(A) = Chi : total:m1326_11, partial:m1329_12 +# 1330| r1330_1(glval<A *>) = VariableAddress[a_arg] : +# 1330| r1330_2(A *) = Load[a_arg] : &:r1330_1, m1319_8 +# 1330| r1330_3(glval<unknown>) = FunctionAddress[static_member] : +# 1330| r1330_4(glval<A *>) = VariableAddress[a_arg] : +# 1330| r1330_5(A *) = Load[a_arg] : &:r1330_4, m1319_8 +# 1330| r1330_6(int) = Constant[-1] : +# 1330| v1330_7(void) = Call[static_member] : func:r1330_3, 0:r1330_5, 1:r1330_6 +# 1330| m1330_8(unknown) = ^CallSideEffect : ~m1329_10 +# 1330| m1330_9(unknown) = Chi : total:m1329_10, partial:m1330_8 +# 1330| v1330_10(void) = ^BufferReadSideEffect[0] : &:r1330_5, ~m1328_15 +# 1330| m1330_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1330_5 +# 1330| m1330_12(unknown) = Chi : total:m1328_15, partial:m1330_11 +# 1332| r1332_1(glval<A>) = VariableAddress[a] : +# 1332| r1332_2(glval<unknown>) = FunctionAddress[static_member_without_def] : +# 1332| v1332_3(void) = Call[static_member_without_def] : func:r1332_2 +# 1332| m1332_4(unknown) = ^CallSideEffect : ~m1330_9 +# 1332| m1332_5(unknown) = Chi : total:m1330_9, partial:m1332_4 +# 1333| r1333_1(glval<unknown>) = FunctionAddress[static_member_without_def] : +# 1333| v1333_2(void) = Call[static_member_without_def] : func:r1333_1 +# 1333| m1333_3(unknown) = ^CallSideEffect : ~m1332_5 +# 1333| m1333_4(unknown) = Chi : total:m1332_5, partial:m1333_3 +# 1335| r1335_1(glval<unknown>) = FunctionAddress[getAnInstanceOfA] : +# 1335| r1335_2(A *) = Call[getAnInstanceOfA] : func:r1335_1 +# 1335| m1335_3(unknown) = ^CallSideEffect : ~m1333_4 +# 1335| m1335_4(unknown) = Chi : total:m1333_4, partial:m1335_3 +# 1335| r1335_5(glval<unknown>) = FunctionAddress[static_member_without_def] : +# 1335| v1335_6(void) = Call[static_member_without_def] : func:r1335_5 +# 1335| m1335_7(unknown) = ^CallSideEffect : ~m1335_4 +# 1335| m1335_8(unknown) = Chi : total:m1335_4, partial:m1335_7 +# 1336| v1336_1(void) = NoOp : +# 1336| r1336_2(glval<C>) = VariableAddress[c] : +# 1336| r1336_3(glval<unknown>) = FunctionAddress[~C] : +# 1336| v1336_4(void) = Call[~C] : func:r1336_3, this:r1336_2 +# 1336| m1336_5(unknown) = ^CallSideEffect : ~m1335_8 +# 1336| m1336_6(unknown) = Chi : total:m1335_8, partial:m1336_5 +# 1336| v1336_7(void) = ^IndirectReadSideEffect[-1] : &:r1336_2, m1320_8 +# 1336| m1336_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1336_2 +# 1336| m1336_9(C) = Chi : total:m1320_8, partial:m1336_8 +# 1319| v1319_11(void) = ReturnIndirection[a_arg] : &:r1319_9, m1330_12 +# 1319| v1319_12(void) = ReturnVoid : +# 1319| v1319_13(void) = AliasedUse : ~m1336_6 +# 1319| v1319_14(void) = ExitFunction : -# 1291| int missingReturnValue(bool, int) -# 1291| Block 0 -# 1291| v1291_1(void) = EnterFunction : -# 1291| m1291_2(unknown) = AliasedDefinition : -# 1291| m1291_3(unknown) = InitializeNonLocal : -# 1291| m1291_4(unknown) = Chi : total:m1291_2, partial:m1291_3 -# 1291| r1291_5(glval<bool>) = VariableAddress[b] : -# 1291| m1291_6(bool) = InitializeParameter[b] : &:r1291_5 -# 1291| r1291_7(glval<int>) = VariableAddress[x] : -# 1291| m1291_8(int) = InitializeParameter[x] : &:r1291_7 -# 1292| r1292_1(glval<bool>) = VariableAddress[b] : -# 1292| r1292_2(bool) = Load[b] : &:r1292_1, m1291_6 -# 1292| v1292_3(void) = ConditionalBranch : r1292_2 +# 1338| int missingReturnValue(bool, int) +# 1338| Block 0 +# 1338| v1338_1(void) = EnterFunction : +# 1338| m1338_2(unknown) = AliasedDefinition : +# 1338| m1338_3(unknown) = InitializeNonLocal : +# 1338| m1338_4(unknown) = Chi : total:m1338_2, partial:m1338_3 +# 1338| r1338_5(glval<bool>) = VariableAddress[b] : +# 1338| m1338_6(bool) = InitializeParameter[b] : &:r1338_5 +# 1338| r1338_7(glval<int>) = VariableAddress[x] : +# 1338| m1338_8(int) = InitializeParameter[x] : &:r1338_7 +# 1339| r1339_1(glval<bool>) = VariableAddress[b] : +# 1339| r1339_2(bool) = Load[b] : &:r1339_1, m1338_6 +# 1339| v1339_3(void) = ConditionalBranch : r1339_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1291| Block 1 -# 1291| m1291_9(int) = Phi : from 2:m1293_4, from 3:m1295_2 -# 1291| r1291_10(glval<int>) = VariableAddress[#return] : -# 1291| v1291_11(void) = ReturnValue : &:r1291_10, m1291_9 -# 1291| v1291_12(void) = AliasedUse : m1291_3 -# 1291| v1291_13(void) = ExitFunction : +# 1338| Block 1 +# 1338| m1338_9(int) = Phi : from 2:m1340_4, from 3:m1342_2 +# 1338| r1338_10(glval<int>) = VariableAddress[#return] : +# 1338| v1338_11(void) = ReturnValue : &:r1338_10, m1338_9 +# 1338| v1338_12(void) = AliasedUse : m1338_3 +# 1338| v1338_13(void) = ExitFunction : -# 1293| Block 2 -# 1293| r1293_1(glval<int>) = VariableAddress[#return] : -# 1293| r1293_2(glval<int>) = VariableAddress[x] : -# 1293| r1293_3(int) = Load[x] : &:r1293_2, m1291_8 -# 1293| m1293_4(int) = Store[#return] : &:r1293_1, r1293_3 +# 1340| Block 2 +# 1340| r1340_1(glval<int>) = VariableAddress[#return] : +# 1340| r1340_2(glval<int>) = VariableAddress[x] : +# 1340| r1340_3(int) = Load[x] : &:r1340_2, m1338_8 +# 1340| m1340_4(int) = Store[#return] : &:r1340_1, r1340_3 #-----| Goto -> Block 1 -# 1295| Block 3 -# 1295| r1295_1(glval<int>) = VariableAddress[#return] : -# 1295| m1295_2(int) = Uninitialized[#return] : &:r1295_1 +# 1342| Block 3 +# 1342| r1342_1(glval<int>) = VariableAddress[#return] : +# 1342| m1342_2(int) = Uninitialized[#return] : &:r1342_1 #-----| Goto -> Block 1 -# 1297| void returnVoid(int, int) -# 1297| Block 0 -# 1297| v1297_1(void) = EnterFunction : -# 1297| m1297_2(unknown) = AliasedDefinition : -# 1297| m1297_3(unknown) = InitializeNonLocal : -# 1297| m1297_4(unknown) = Chi : total:m1297_2, partial:m1297_3 -# 1297| r1297_5(glval<int>) = VariableAddress[x] : -# 1297| m1297_6(int) = InitializeParameter[x] : &:r1297_5 -# 1297| r1297_7(glval<int>) = VariableAddress[y] : -# 1297| m1297_8(int) = InitializeParameter[y] : &:r1297_7 -# 1298| r1298_1(glval<unknown>) = FunctionAddress[IntegerOps] : -# 1298| r1298_2(glval<int>) = VariableAddress[x] : -# 1298| r1298_3(int) = Load[x] : &:r1298_2, m1297_6 -# 1298| r1298_4(glval<int>) = VariableAddress[y] : -# 1298| r1298_5(int) = Load[y] : &:r1298_4, m1297_8 -# 1298| v1298_6(void) = Call[IntegerOps] : func:r1298_1, 0:r1298_3, 1:r1298_5 -# 1298| m1298_7(unknown) = ^CallSideEffect : ~m1297_4 -# 1298| m1298_8(unknown) = Chi : total:m1297_4, partial:m1298_7 -# 1298| v1298_9(void) = NoOp : -# 1297| v1297_9(void) = ReturnVoid : -# 1297| v1297_10(void) = AliasedUse : ~m1298_8 -# 1297| v1297_11(void) = ExitFunction : +# 1344| void returnVoid(int, int) +# 1344| Block 0 +# 1344| v1344_1(void) = EnterFunction : +# 1344| m1344_2(unknown) = AliasedDefinition : +# 1344| m1344_3(unknown) = InitializeNonLocal : +# 1344| m1344_4(unknown) = Chi : total:m1344_2, partial:m1344_3 +# 1344| r1344_5(glval<int>) = VariableAddress[x] : +# 1344| m1344_6(int) = InitializeParameter[x] : &:r1344_5 +# 1344| r1344_7(glval<int>) = VariableAddress[y] : +# 1344| m1344_8(int) = InitializeParameter[y] : &:r1344_7 +# 1345| r1345_1(glval<unknown>) = FunctionAddress[IntegerOps] : +# 1345| r1345_2(glval<int>) = VariableAddress[x] : +# 1345| r1345_3(int) = Load[x] : &:r1345_2, m1344_6 +# 1345| r1345_4(glval<int>) = VariableAddress[y] : +# 1345| r1345_5(int) = Load[y] : &:r1345_4, m1344_8 +# 1345| v1345_6(void) = Call[IntegerOps] : func:r1345_1, 0:r1345_3, 1:r1345_5 +# 1345| m1345_7(unknown) = ^CallSideEffect : ~m1344_4 +# 1345| m1345_8(unknown) = Chi : total:m1344_4, partial:m1345_7 +# 1345| v1345_9(void) = NoOp : +# 1344| v1344_9(void) = ReturnVoid : +# 1344| v1344_10(void) = AliasedUse : ~m1345_8 +# 1344| v1344_11(void) = ExitFunction : -# 1301| void gccBinaryConditional(bool, int, long) -# 1301| Block 0 -# 1301| v1301_1(void) = EnterFunction : -# 1301| m1301_2(unknown) = AliasedDefinition : -# 1301| m1301_3(unknown) = InitializeNonLocal : -# 1301| m1301_4(unknown) = Chi : total:m1301_2, partial:m1301_3 -# 1301| r1301_5(glval<bool>) = VariableAddress[b] : -# 1301| m1301_6(bool) = InitializeParameter[b] : &:r1301_5 -# 1301| r1301_7(glval<int>) = VariableAddress[x] : -# 1301| m1301_8(int) = InitializeParameter[x] : &:r1301_7 -# 1301| r1301_9(glval<long>) = VariableAddress[y] : -# 1301| m1301_10(long) = InitializeParameter[y] : &:r1301_9 -# 1302| r1302_1(glval<int>) = VariableAddress[z] : -# 1302| r1302_2(glval<int>) = VariableAddress[x] : -# 1302| r1302_3(int) = Load[x] : &:r1302_2, m1301_8 -# 1302| m1302_4(int) = Store[z] : &:r1302_1, r1302_3 -# 1303| r1303_1(glval<bool>) = VariableAddress[b] : -# 1303| r1303_2(bool) = Load[b] : &:r1303_1, m1301_6 -# 1303| v1303_3(void) = ConditionalBranch : r1303_2 +# 1348| void gccBinaryConditional(bool, int, long) +# 1348| Block 0 +# 1348| v1348_1(void) = EnterFunction : +# 1348| m1348_2(unknown) = AliasedDefinition : +# 1348| m1348_3(unknown) = InitializeNonLocal : +# 1348| m1348_4(unknown) = Chi : total:m1348_2, partial:m1348_3 +# 1348| r1348_5(glval<bool>) = VariableAddress[b] : +# 1348| m1348_6(bool) = InitializeParameter[b] : &:r1348_5 +# 1348| r1348_7(glval<int>) = VariableAddress[x] : +# 1348| m1348_8(int) = InitializeParameter[x] : &:r1348_7 +# 1348| r1348_9(glval<long>) = VariableAddress[y] : +# 1348| m1348_10(long) = InitializeParameter[y] : &:r1348_9 +# 1349| r1349_1(glval<int>) = VariableAddress[z] : +# 1349| r1349_2(glval<int>) = VariableAddress[x] : +# 1349| r1349_3(int) = Load[x] : &:r1349_2, m1348_8 +# 1349| m1349_4(int) = Store[z] : &:r1349_1, r1349_3 +# 1350| r1350_1(glval<bool>) = VariableAddress[b] : +# 1350| r1350_2(bool) = Load[b] : &:r1350_1, m1348_6 +# 1350| v1350_3(void) = ConditionalBranch : r1350_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1303| Block 1 -# 1303| m1303_4(int) = Phi : from 2:m1303_10, from 3:m1303_14 -# 1303| r1303_5(glval<int>) = VariableAddress[#temp1303:9] : -# 1303| r1303_6(int) = Load[#temp1303:9] : &:r1303_5, m1303_4 -# 1303| r1303_7(glval<int>) = VariableAddress[z] : -# 1303| m1303_8(int) = Store[z] : &:r1303_7, r1303_6 -# 1304| r1304_1(glval<bool>) = VariableAddress[b] : -# 1304| r1304_2(bool) = Load[b] : &:r1304_1, m1301_6 -# 1304| v1304_3(void) = ConditionalBranch : r1304_2 +# 1350| Block 1 +# 1350| m1350_4(int) = Phi : from 2:m1350_10, from 3:m1350_14 +# 1350| r1350_5(glval<int>) = VariableAddress[#temp1350:9] : +# 1350| r1350_6(int) = Load[#temp1350:9] : &:r1350_5, m1350_4 +# 1350| r1350_7(glval<int>) = VariableAddress[z] : +# 1350| m1350_8(int) = Store[z] : &:r1350_7, r1350_6 +# 1351| r1351_1(glval<bool>) = VariableAddress[b] : +# 1351| r1351_2(bool) = Load[b] : &:r1351_1, m1348_6 +# 1351| v1351_3(void) = ConditionalBranch : r1351_2 #-----| False -> Block 6 #-----| True -> Block 5 -# 1303| Block 2 -# 1303| r1303_9(glval<int>) = VariableAddress[#temp1303:9] : -# 1303| m1303_10(int) = Store[#temp1303:9] : &:r1303_9, r1303_2 +# 1350| Block 2 +# 1350| r1350_9(glval<int>) = VariableAddress[#temp1350:9] : +# 1350| m1350_10(int) = Store[#temp1350:9] : &:r1350_9, r1350_2 #-----| Goto -> Block 1 -# 1303| Block 3 -# 1303| r1303_11(glval<int>) = VariableAddress[x] : -# 1303| r1303_12(int) = Load[x] : &:r1303_11, m1301_8 -# 1303| r1303_13(glval<int>) = VariableAddress[#temp1303:9] : -# 1303| m1303_14(int) = Store[#temp1303:9] : &:r1303_13, r1303_12 +# 1350| Block 3 +# 1350| r1350_11(glval<int>) = VariableAddress[x] : +# 1350| r1350_12(int) = Load[x] : &:r1350_11, m1348_8 +# 1350| r1350_13(glval<int>) = VariableAddress[#temp1350:9] : +# 1350| m1350_14(int) = Store[#temp1350:9] : &:r1350_13, r1350_12 #-----| Goto -> Block 1 -# 1304| Block 4 -# 1304| m1304_4(long) = Phi : from 5:m1304_11, from 6:m1304_15 -# 1304| r1304_5(glval<long>) = VariableAddress[#temp1304:9] : -# 1304| r1304_6(long) = Load[#temp1304:9] : &:r1304_5, m1304_4 -# 1304| r1304_7(int) = Convert : r1304_6 -# 1304| r1304_8(glval<int>) = VariableAddress[z] : -# 1304| m1304_9(int) = Store[z] : &:r1304_8, r1304_7 -# 1305| r1305_1(glval<int>) = VariableAddress[x] : -# 1305| r1305_2(int) = Load[x] : &:r1305_1, m1301_8 -# 1305| r1305_3(int) = Constant[0] : -# 1305| r1305_4(bool) = CompareNE : r1305_2, r1305_3 -# 1305| v1305_5(void) = ConditionalBranch : r1305_4 +# 1351| Block 4 +# 1351| m1351_4(long) = Phi : from 5:m1351_11, from 6:m1351_15 +# 1351| r1351_5(glval<long>) = VariableAddress[#temp1351:9] : +# 1351| r1351_6(long) = Load[#temp1351:9] : &:r1351_5, m1351_4 +# 1351| r1351_7(int) = Convert : r1351_6 +# 1351| r1351_8(glval<int>) = VariableAddress[z] : +# 1351| m1351_9(int) = Store[z] : &:r1351_8, r1351_7 +# 1352| r1352_1(glval<int>) = VariableAddress[x] : +# 1352| r1352_2(int) = Load[x] : &:r1352_1, m1348_8 +# 1352| r1352_3(int) = Constant[0] : +# 1352| r1352_4(bool) = CompareNE : r1352_2, r1352_3 +# 1352| v1352_5(void) = ConditionalBranch : r1352_4 #-----| False -> Block 9 #-----| True -> Block 8 -# 1304| Block 5 -# 1304| r1304_10(glval<long>) = VariableAddress[#temp1304:9] : -# 1304| m1304_11(long) = Store[#temp1304:9] : &:r1304_10, r1304_2 +# 1351| Block 5 +# 1351| r1351_10(glval<long>) = VariableAddress[#temp1351:9] : +# 1351| m1351_11(long) = Store[#temp1351:9] : &:r1351_10, r1351_2 #-----| Goto -> Block 4 -# 1304| Block 6 -# 1304| r1304_12(glval<long>) = VariableAddress[y] : -# 1304| r1304_13(long) = Load[y] : &:r1304_12, m1301_10 -# 1304| r1304_14(glval<long>) = VariableAddress[#temp1304:9] : -# 1304| m1304_15(long) = Store[#temp1304:9] : &:r1304_14, r1304_13 +# 1351| Block 6 +# 1351| r1351_12(glval<long>) = VariableAddress[y] : +# 1351| r1351_13(long) = Load[y] : &:r1351_12, m1348_10 +# 1351| r1351_14(glval<long>) = VariableAddress[#temp1351:9] : +# 1351| m1351_15(long) = Store[#temp1351:9] : &:r1351_14, r1351_13 #-----| Goto -> Block 4 -# 1305| Block 7 -# 1305| m1305_6(int) = Phi : from 8:m1305_12, from 9:m1305_16 -# 1305| r1305_7(glval<int>) = VariableAddress[#temp1305:9] : -# 1305| r1305_8(int) = Load[#temp1305:9] : &:r1305_7, m1305_6 -# 1305| r1305_9(glval<int>) = VariableAddress[z] : -# 1305| m1305_10(int) = Store[z] : &:r1305_9, r1305_8 -# 1306| r1306_1(glval<int>) = VariableAddress[x] : -# 1306| r1306_2(int) = Load[x] : &:r1306_1, m1301_8 -# 1306| r1306_3(int) = Constant[0] : -# 1306| r1306_4(bool) = CompareNE : r1306_2, r1306_3 -# 1306| v1306_5(void) = ConditionalBranch : r1306_4 +# 1352| Block 7 +# 1352| m1352_6(int) = Phi : from 8:m1352_12, from 9:m1352_16 +# 1352| r1352_7(glval<int>) = VariableAddress[#temp1352:9] : +# 1352| r1352_8(int) = Load[#temp1352:9] : &:r1352_7, m1352_6 +# 1352| r1352_9(glval<int>) = VariableAddress[z] : +# 1352| m1352_10(int) = Store[z] : &:r1352_9, r1352_8 +# 1353| r1353_1(glval<int>) = VariableAddress[x] : +# 1353| r1353_2(int) = Load[x] : &:r1353_1, m1348_8 +# 1353| r1353_3(int) = Constant[0] : +# 1353| r1353_4(bool) = CompareNE : r1353_2, r1353_3 +# 1353| v1353_5(void) = ConditionalBranch : r1353_4 #-----| False -> Block 12 #-----| True -> Block 11 -# 1305| Block 8 -# 1305| r1305_11(glval<int>) = VariableAddress[#temp1305:9] : -# 1305| m1305_12(int) = Store[#temp1305:9] : &:r1305_11, r1305_2 +# 1352| Block 8 +# 1352| r1352_11(glval<int>) = VariableAddress[#temp1352:9] : +# 1352| m1352_12(int) = Store[#temp1352:9] : &:r1352_11, r1352_2 #-----| Goto -> Block 7 -# 1305| Block 9 -# 1305| r1305_13(glval<int>) = VariableAddress[x] : -# 1305| r1305_14(int) = Load[x] : &:r1305_13, m1301_8 -# 1305| r1305_15(glval<int>) = VariableAddress[#temp1305:9] : -# 1305| m1305_16(int) = Store[#temp1305:9] : &:r1305_15, r1305_14 +# 1352| Block 9 +# 1352| r1352_13(glval<int>) = VariableAddress[x] : +# 1352| r1352_14(int) = Load[x] : &:r1352_13, m1348_8 +# 1352| r1352_15(glval<int>) = VariableAddress[#temp1352:9] : +# 1352| m1352_16(int) = Store[#temp1352:9] : &:r1352_15, r1352_14 #-----| Goto -> Block 7 -# 1306| Block 10 -# 1306| m1306_6(long) = Phi : from 11:m1306_13, from 12:m1306_17 -# 1306| r1306_7(glval<long>) = VariableAddress[#temp1306:9] : -# 1306| r1306_8(long) = Load[#temp1306:9] : &:r1306_7, m1306_6 -# 1306| r1306_9(int) = Convert : r1306_8 -# 1306| r1306_10(glval<int>) = VariableAddress[z] : -# 1306| m1306_11(int) = Store[z] : &:r1306_10, r1306_9 -# 1307| r1307_1(glval<long>) = VariableAddress[y] : -# 1307| r1307_2(long) = Load[y] : &:r1307_1, m1301_10 -# 1307| r1307_3(long) = Constant[0] : -# 1307| r1307_4(bool) = CompareNE : r1307_2, r1307_3 -# 1307| v1307_5(void) = ConditionalBranch : r1307_4 +# 1353| Block 10 +# 1353| m1353_6(long) = Phi : from 11:m1353_13, from 12:m1353_17 +# 1353| r1353_7(glval<long>) = VariableAddress[#temp1353:9] : +# 1353| r1353_8(long) = Load[#temp1353:9] : &:r1353_7, m1353_6 +# 1353| r1353_9(int) = Convert : r1353_8 +# 1353| r1353_10(glval<int>) = VariableAddress[z] : +# 1353| m1353_11(int) = Store[z] : &:r1353_10, r1353_9 +# 1354| r1354_1(glval<long>) = VariableAddress[y] : +# 1354| r1354_2(long) = Load[y] : &:r1354_1, m1348_10 +# 1354| r1354_3(long) = Constant[0] : +# 1354| r1354_4(bool) = CompareNE : r1354_2, r1354_3 +# 1354| v1354_5(void) = ConditionalBranch : r1354_4 #-----| False -> Block 15 #-----| True -> Block 14 -# 1306| Block 11 -# 1306| r1306_12(glval<long>) = VariableAddress[#temp1306:9] : -# 1306| m1306_13(long) = Store[#temp1306:9] : &:r1306_12, r1306_2 +# 1353| Block 11 +# 1353| r1353_12(glval<long>) = VariableAddress[#temp1353:9] : +# 1353| m1353_13(long) = Store[#temp1353:9] : &:r1353_12, r1353_2 #-----| Goto -> Block 10 -# 1306| Block 12 -# 1306| r1306_14(glval<long>) = VariableAddress[y] : -# 1306| r1306_15(long) = Load[y] : &:r1306_14, m1301_10 -# 1306| r1306_16(glval<long>) = VariableAddress[#temp1306:9] : -# 1306| m1306_17(long) = Store[#temp1306:9] : &:r1306_16, r1306_15 +# 1353| Block 12 +# 1353| r1353_14(glval<long>) = VariableAddress[y] : +# 1353| r1353_15(long) = Load[y] : &:r1353_14, m1348_10 +# 1353| r1353_16(glval<long>) = VariableAddress[#temp1353:9] : +# 1353| m1353_17(long) = Store[#temp1353:9] : &:r1353_16, r1353_15 #-----| Goto -> Block 10 -# 1307| Block 13 -# 1307| m1307_6(long) = Phi : from 14:m1307_13, from 15:m1307_18 -# 1307| r1307_7(glval<long>) = VariableAddress[#temp1307:9] : -# 1307| r1307_8(long) = Load[#temp1307:9] : &:r1307_7, m1307_6 -# 1307| r1307_9(int) = Convert : r1307_8 -# 1307| r1307_10(glval<int>) = VariableAddress[z] : -# 1307| m1307_11(int) = Store[z] : &:r1307_10, r1307_9 -# 1308| r1308_1(glval<long>) = VariableAddress[y] : -# 1308| r1308_2(long) = Load[y] : &:r1308_1, m1301_10 -# 1308| r1308_3(long) = Constant[0] : -# 1308| r1308_4(bool) = CompareNE : r1308_2, r1308_3 -# 1308| v1308_5(void) = ConditionalBranch : r1308_4 +# 1354| Block 13 +# 1354| m1354_6(long) = Phi : from 14:m1354_13, from 15:m1354_18 +# 1354| r1354_7(glval<long>) = VariableAddress[#temp1354:9] : +# 1354| r1354_8(long) = Load[#temp1354:9] : &:r1354_7, m1354_6 +# 1354| r1354_9(int) = Convert : r1354_8 +# 1354| r1354_10(glval<int>) = VariableAddress[z] : +# 1354| m1354_11(int) = Store[z] : &:r1354_10, r1354_9 +# 1355| r1355_1(glval<long>) = VariableAddress[y] : +# 1355| r1355_2(long) = Load[y] : &:r1355_1, m1348_10 +# 1355| r1355_3(long) = Constant[0] : +# 1355| r1355_4(bool) = CompareNE : r1355_2, r1355_3 +# 1355| v1355_5(void) = ConditionalBranch : r1355_4 #-----| False -> Block 18 #-----| True -> Block 17 -# 1307| Block 14 -# 1307| r1307_12(glval<long>) = VariableAddress[#temp1307:9] : -# 1307| m1307_13(long) = Store[#temp1307:9] : &:r1307_12, r1307_2 +# 1354| Block 14 +# 1354| r1354_12(glval<long>) = VariableAddress[#temp1354:9] : +# 1354| m1354_13(long) = Store[#temp1354:9] : &:r1354_12, r1354_2 #-----| Goto -> Block 13 -# 1307| Block 15 -# 1307| r1307_14(glval<int>) = VariableAddress[x] : -# 1307| r1307_15(int) = Load[x] : &:r1307_14, m1301_8 -# 1307| r1307_16(long) = Convert : r1307_15 -# 1307| r1307_17(glval<long>) = VariableAddress[#temp1307:9] : -# 1307| m1307_18(long) = Store[#temp1307:9] : &:r1307_17, r1307_16 +# 1354| Block 15 +# 1354| r1354_14(glval<int>) = VariableAddress[x] : +# 1354| r1354_15(int) = Load[x] : &:r1354_14, m1348_8 +# 1354| r1354_16(long) = Convert : r1354_15 +# 1354| r1354_17(glval<long>) = VariableAddress[#temp1354:9] : +# 1354| m1354_18(long) = Store[#temp1354:9] : &:r1354_17, r1354_16 #-----| Goto -> Block 13 -# 1308| Block 16 -# 1308| m1308_6(long) = Phi : from 17:m1308_13, from 18:m1308_17 -# 1308| r1308_7(glval<long>) = VariableAddress[#temp1308:9] : -# 1308| r1308_8(long) = Load[#temp1308:9] : &:r1308_7, m1308_6 -# 1308| r1308_9(int) = Convert : r1308_8 -# 1308| r1308_10(glval<int>) = VariableAddress[z] : -# 1308| m1308_11(int) = Store[z] : &:r1308_10, r1308_9 -# 1310| r1310_1(glval<int>) = VariableAddress[x] : -# 1310| r1310_2(int) = Load[x] : &:r1310_1, m1301_8 -# 1310| r1310_3(int) = Constant[0] : -# 1310| r1310_4(bool) = CompareNE : r1310_2, r1310_3 -# 1310| v1310_5(void) = ConditionalBranch : r1310_4 +# 1355| Block 16 +# 1355| m1355_6(long) = Phi : from 17:m1355_13, from 18:m1355_17 +# 1355| r1355_7(glval<long>) = VariableAddress[#temp1355:9] : +# 1355| r1355_8(long) = Load[#temp1355:9] : &:r1355_7, m1355_6 +# 1355| r1355_9(int) = Convert : r1355_8 +# 1355| r1355_10(glval<int>) = VariableAddress[z] : +# 1355| m1355_11(int) = Store[z] : &:r1355_10, r1355_9 +# 1357| r1357_1(glval<int>) = VariableAddress[x] : +# 1357| r1357_2(int) = Load[x] : &:r1357_1, m1348_8 +# 1357| r1357_3(int) = Constant[0] : +# 1357| r1357_4(bool) = CompareNE : r1357_2, r1357_3 +# 1357| v1357_5(void) = ConditionalBranch : r1357_4 #-----| False -> Block 25 #-----| True -> Block 24 -# 1308| Block 17 -# 1308| r1308_12(glval<long>) = VariableAddress[#temp1308:9] : -# 1308| m1308_13(long) = Store[#temp1308:9] : &:r1308_12, r1308_2 +# 1355| Block 17 +# 1355| r1355_12(glval<long>) = VariableAddress[#temp1355:9] : +# 1355| m1355_13(long) = Store[#temp1355:9] : &:r1355_12, r1355_2 #-----| Goto -> Block 16 -# 1308| Block 18 -# 1308| r1308_14(glval<long>) = VariableAddress[y] : -# 1308| r1308_15(long) = Load[y] : &:r1308_14, m1301_10 -# 1308| r1308_16(glval<long>) = VariableAddress[#temp1308:9] : -# 1308| m1308_17(long) = Store[#temp1308:9] : &:r1308_16, r1308_15 +# 1355| Block 18 +# 1355| r1355_14(glval<long>) = VariableAddress[y] : +# 1355| r1355_15(long) = Load[y] : &:r1355_14, m1348_10 +# 1355| r1355_16(glval<long>) = VariableAddress[#temp1355:9] : +# 1355| m1355_17(long) = Store[#temp1355:9] : &:r1355_16, r1355_15 #-----| Goto -> Block 16 -# 1310| Block 19 -# 1310| m1310_6(int) = Phi : from 20:m1310_12, from 26:m1310_34 -# 1310| r1310_7(glval<int>) = VariableAddress[#temp1310:9] : -# 1310| r1310_8(int) = Load[#temp1310:9] : &:r1310_7, m1310_6 -# 1310| r1310_9(glval<int>) = VariableAddress[z] : -# 1310| m1310_10(int) = Store[z] : &:r1310_9, r1310_8 -# 1311| v1311_1(void) = NoOp : -# 1301| v1301_11(void) = ReturnVoid : -# 1301| v1301_12(void) = AliasedUse : m1301_3 -# 1301| v1301_13(void) = ExitFunction : +# 1357| Block 19 +# 1357| m1357_6(int) = Phi : from 20:m1357_12, from 26:m1357_34 +# 1357| r1357_7(glval<int>) = VariableAddress[#temp1357:9] : +# 1357| r1357_8(int) = Load[#temp1357:9] : &:r1357_7, m1357_6 +# 1357| r1357_9(glval<int>) = VariableAddress[z] : +# 1357| m1357_10(int) = Store[z] : &:r1357_9, r1357_8 +# 1358| v1358_1(void) = NoOp : +# 1348| v1348_11(void) = ReturnVoid : +# 1348| v1348_12(void) = AliasedUse : m1348_3 +# 1348| v1348_13(void) = ExitFunction : -# 1310| Block 20 -# 1310| r1310_11(glval<int>) = VariableAddress[#temp1310:9] : -# 1310| m1310_12(int) = Store[#temp1310:9] : &:r1310_11, r1310_18 +# 1357| Block 20 +# 1357| r1357_11(glval<int>) = VariableAddress[#temp1357:9] : +# 1357| m1357_12(int) = Store[#temp1357:9] : &:r1357_11, r1357_18 #-----| Goto -> Block 19 -# 1310| Block 21 -# 1310| r1310_13(glval<bool>) = VariableAddress[#temp1310:10] : -# 1310| r1310_14(bool) = Constant[0] : -# 1310| m1310_15(bool) = Store[#temp1310:10] : &:r1310_13, r1310_14 +# 1357| Block 21 +# 1357| r1357_13(glval<bool>) = VariableAddress[#temp1357:10] : +# 1357| r1357_14(bool) = Constant[0] : +# 1357| m1357_15(bool) = Store[#temp1357:10] : &:r1357_13, r1357_14 #-----| Goto -> Block 22 -# 1310| Block 22 -# 1310| m1310_16(bool) = Phi : from 21:m1310_15, from 23:m1310_22 -# 1310| r1310_17(glval<bool>) = VariableAddress[#temp1310:10] : -# 1310| r1310_18(bool) = Load[#temp1310:10] : &:r1310_17, m1310_16 -# 1310| v1310_19(void) = ConditionalBranch : r1310_18 +# 1357| Block 22 +# 1357| m1357_16(bool) = Phi : from 21:m1357_15, from 23:m1357_22 +# 1357| r1357_17(glval<bool>) = VariableAddress[#temp1357:10] : +# 1357| r1357_18(bool) = Load[#temp1357:10] : &:r1357_17, m1357_16 +# 1357| v1357_19(void) = ConditionalBranch : r1357_18 #-----| False -> Block 26 #-----| True -> Block 20 -# 1310| Block 23 -# 1310| r1310_20(glval<bool>) = VariableAddress[#temp1310:10] : -# 1310| r1310_21(bool) = Constant[1] : -# 1310| m1310_22(bool) = Store[#temp1310:10] : &:r1310_20, r1310_21 +# 1357| Block 23 +# 1357| r1357_20(glval<bool>) = VariableAddress[#temp1357:10] : +# 1357| r1357_21(bool) = Constant[1] : +# 1357| m1357_22(bool) = Store[#temp1357:10] : &:r1357_20, r1357_21 #-----| Goto -> Block 22 -# 1310| Block 24 -# 1310| r1310_23(glval<bool>) = VariableAddress[b] : -# 1310| r1310_24(bool) = Load[b] : &:r1310_23, m1301_6 -# 1310| v1310_25(void) = ConditionalBranch : r1310_24 +# 1357| Block 24 +# 1357| r1357_23(glval<bool>) = VariableAddress[b] : +# 1357| r1357_24(bool) = Load[b] : &:r1357_23, m1348_6 +# 1357| v1357_25(void) = ConditionalBranch : r1357_24 #-----| False -> Block 25 #-----| True -> Block 23 -# 1310| Block 25 -# 1310| r1310_26(glval<long>) = VariableAddress[y] : -# 1310| r1310_27(long) = Load[y] : &:r1310_26, m1301_10 -# 1310| r1310_28(long) = Constant[0] : -# 1310| r1310_29(bool) = CompareNE : r1310_27, r1310_28 -# 1310| v1310_30(void) = ConditionalBranch : r1310_29 +# 1357| Block 25 +# 1357| r1357_26(glval<long>) = VariableAddress[y] : +# 1357| r1357_27(long) = Load[y] : &:r1357_26, m1348_10 +# 1357| r1357_28(long) = Constant[0] : +# 1357| r1357_29(bool) = CompareNE : r1357_27, r1357_28 +# 1357| v1357_30(void) = ConditionalBranch : r1357_29 #-----| False -> Block 21 #-----| True -> Block 23 -# 1310| Block 26 -# 1310| r1310_31(glval<int>) = VariableAddress[x] : -# 1310| r1310_32(int) = Load[x] : &:r1310_31, m1301_8 -# 1310| r1310_33(glval<int>) = VariableAddress[#temp1310:9] : -# 1310| m1310_34(int) = Store[#temp1310:9] : &:r1310_33, r1310_32 +# 1357| Block 26 +# 1357| r1357_31(glval<int>) = VariableAddress[x] : +# 1357| r1357_32(int) = Load[x] : &:r1357_31, m1348_8 +# 1357| r1357_33(glval<int>) = VariableAddress[#temp1357:9] : +# 1357| m1357_34(int) = Store[#temp1357:9] : &:r1357_33, r1357_32 #-----| Goto -> Block 19 -# 1316| int shortCircuitConditional(int, int) -# 1316| Block 0 -# 1316| v1316_1(void) = EnterFunction : -# 1316| m1316_2(unknown) = AliasedDefinition : -# 1316| m1316_3(unknown) = InitializeNonLocal : -# 1316| m1316_4(unknown) = Chi : total:m1316_2, partial:m1316_3 -# 1316| r1316_5(glval<int>) = VariableAddress[x] : -# 1316| m1316_6(int) = InitializeParameter[x] : &:r1316_5 -# 1316| r1316_7(glval<int>) = VariableAddress[y] : -# 1316| m1316_8(int) = InitializeParameter[y] : &:r1316_7 -# 1317| r1317_1(glval<int>) = VariableAddress[#return] : -# 1317| r1317_2(glval<unknown>) = FunctionAddress[predicateA] : -# 1317| r1317_3(bool) = Call[predicateA] : func:r1317_2 -# 1317| m1317_4(unknown) = ^CallSideEffect : ~m1316_4 -# 1317| m1317_5(unknown) = Chi : total:m1316_4, partial:m1317_4 -# 1317| v1317_6(void) = ConditionalBranch : r1317_3 +# 1363| int shortCircuitConditional(int, int) +# 1363| Block 0 +# 1363| v1363_1(void) = EnterFunction : +# 1363| m1363_2(unknown) = AliasedDefinition : +# 1363| m1363_3(unknown) = InitializeNonLocal : +# 1363| m1363_4(unknown) = Chi : total:m1363_2, partial:m1363_3 +# 1363| r1363_5(glval<int>) = VariableAddress[x] : +# 1363| m1363_6(int) = InitializeParameter[x] : &:r1363_5 +# 1363| r1363_7(glval<int>) = VariableAddress[y] : +# 1363| m1363_8(int) = InitializeParameter[y] : &:r1363_7 +# 1364| r1364_1(glval<int>) = VariableAddress[#return] : +# 1364| r1364_2(glval<unknown>) = FunctionAddress[predicateA] : +# 1364| r1364_3(bool) = Call[predicateA] : func:r1364_2 +# 1364| m1364_4(unknown) = ^CallSideEffect : ~m1363_4 +# 1364| m1364_5(unknown) = Chi : total:m1363_4, partial:m1364_4 +# 1364| v1364_6(void) = ConditionalBranch : r1364_3 #-----| False -> Block 4 #-----| True -> Block 2 -# 1317| Block 1 -# 1317| m1317_7(unknown) = Phi : from 3:~m1317_15, from 4:~m1317_21 -# 1317| m1317_8(int) = Phi : from 3:m1317_20, from 4:m1317_25 -# 1317| r1317_9(glval<int>) = VariableAddress[#temp1317:12] : -# 1317| r1317_10(int) = Load[#temp1317:12] : &:r1317_9, m1317_8 -# 1317| m1317_11(int) = Store[#return] : &:r1317_1, r1317_10 -# 1316| r1316_9(glval<int>) = VariableAddress[#return] : -# 1316| v1316_10(void) = ReturnValue : &:r1316_9, m1317_11 -# 1316| v1316_11(void) = AliasedUse : ~m1317_7 -# 1316| v1316_12(void) = ExitFunction : +# 1364| Block 1 +# 1364| m1364_7(unknown) = Phi : from 3:~m1364_15, from 4:~m1364_21 +# 1364| m1364_8(int) = Phi : from 3:m1364_20, from 4:m1364_25 +# 1364| r1364_9(glval<int>) = VariableAddress[#temp1364:12] : +# 1364| r1364_10(int) = Load[#temp1364:12] : &:r1364_9, m1364_8 +# 1364| m1364_11(int) = Store[#return] : &:r1364_1, r1364_10 +# 1363| r1363_9(glval<int>) = VariableAddress[#return] : +# 1363| v1363_10(void) = ReturnValue : &:r1363_9, m1364_11 +# 1363| v1363_11(void) = AliasedUse : ~m1364_7 +# 1363| v1363_12(void) = ExitFunction : -# 1317| Block 2 -# 1317| r1317_12(glval<unknown>) = FunctionAddress[predicateB] : -# 1317| r1317_13(bool) = Call[predicateB] : func:r1317_12 -# 1317| m1317_14(unknown) = ^CallSideEffect : ~m1317_5 -# 1317| m1317_15(unknown) = Chi : total:m1317_5, partial:m1317_14 -# 1317| v1317_16(void) = ConditionalBranch : r1317_13 +# 1364| Block 2 +# 1364| r1364_12(glval<unknown>) = FunctionAddress[predicateB] : +# 1364| r1364_13(bool) = Call[predicateB] : func:r1364_12 +# 1364| m1364_14(unknown) = ^CallSideEffect : ~m1364_5 +# 1364| m1364_15(unknown) = Chi : total:m1364_5, partial:m1364_14 +# 1364| v1364_16(void) = ConditionalBranch : r1364_13 #-----| False -> Block 4 #-----| True -> Block 3 -# 1317| Block 3 -# 1317| r1317_17(glval<int>) = VariableAddress[x] : -# 1317| r1317_18(int) = Load[x] : &:r1317_17, m1316_6 -# 1317| r1317_19(glval<int>) = VariableAddress[#temp1317:12] : -# 1317| m1317_20(int) = Store[#temp1317:12] : &:r1317_19, r1317_18 +# 1364| Block 3 +# 1364| r1364_17(glval<int>) = VariableAddress[x] : +# 1364| r1364_18(int) = Load[x] : &:r1364_17, m1363_6 +# 1364| r1364_19(glval<int>) = VariableAddress[#temp1364:12] : +# 1364| m1364_20(int) = Store[#temp1364:12] : &:r1364_19, r1364_18 #-----| Goto -> Block 1 -# 1317| Block 4 -# 1317| m1317_21(unknown) = Phi : from 0:~m1317_5, from 2:~m1317_15 -# 1317| r1317_22(glval<int>) = VariableAddress[y] : -# 1317| r1317_23(int) = Load[y] : &:r1317_22, m1316_8 -# 1317| r1317_24(glval<int>) = VariableAddress[#temp1317:12] : -# 1317| m1317_25(int) = Store[#temp1317:12] : &:r1317_24, r1317_23 +# 1364| Block 4 +# 1364| m1364_21(unknown) = Phi : from 0:~m1364_5, from 2:~m1364_15 +# 1364| r1364_22(glval<int>) = VariableAddress[y] : +# 1364| r1364_23(int) = Load[y] : &:r1364_22, m1363_8 +# 1364| r1364_24(glval<int>) = VariableAddress[#temp1364:12] : +# 1364| m1364_25(int) = Store[#temp1364:12] : &:r1364_24, r1364_23 #-----| Goto -> Block 1 -# 1322| void f(int*) -# 1322| Block 0 -# 1322| v1322_1(void) = EnterFunction : -# 1322| m1322_2(unknown) = AliasedDefinition : -# 1322| m1322_3(unknown) = InitializeNonLocal : -# 1322| m1322_4(unknown) = Chi : total:m1322_2, partial:m1322_3 -# 1322| r1322_5(glval<int *>) = VariableAddress[p] : -# 1322| m1322_6(int *) = InitializeParameter[p] : &:r1322_5 -# 1322| r1322_7(int *) = Load[p] : &:r1322_5, m1322_6 -# 1322| m1322_8(unknown) = InitializeIndirection[p] : &:r1322_7 -# 1324| r1324_1(glval<unknown>) = FunctionAddress[operator new] : -# 1324| r1324_2(unsigned long) = Constant[4] : -# 1324| r1324_3(glval<int *>) = VariableAddress[p] : -# 1324| r1324_4(int *) = Load[p] : &:r1324_3, m1322_6 -# 1324| r1324_5(void *) = Convert : r1324_4 -# 1324| r1324_6(void *) = Call[operator new] : func:r1324_1, 0:r1324_2, 1:r1324_5 -# 1324| m1324_7(unknown) = ^CallSideEffect : ~m1322_4 -# 1324| m1324_8(unknown) = Chi : total:m1322_4, partial:m1324_7 -# 1324| m1324_9(unknown) = ^InitializeDynamicAllocation : &:r1324_6 -# 1324| r1324_10(int *) = Convert : r1324_6 -# 1325| v1325_1(void) = NoOp : -# 1322| v1322_9(void) = ReturnIndirection[p] : &:r1322_7, m1322_8 -# 1322| v1322_10(void) = ReturnVoid : -# 1322| v1322_11(void) = AliasedUse : ~m1324_8 -# 1322| v1322_12(void) = ExitFunction : +# 1369| void f(int*) +# 1369| Block 0 +# 1369| v1369_1(void) = EnterFunction : +# 1369| m1369_2(unknown) = AliasedDefinition : +# 1369| m1369_3(unknown) = InitializeNonLocal : +# 1369| m1369_4(unknown) = Chi : total:m1369_2, partial:m1369_3 +# 1369| r1369_5(glval<int *>) = VariableAddress[p] : +# 1369| m1369_6(int *) = InitializeParameter[p] : &:r1369_5 +# 1369| r1369_7(int *) = Load[p] : &:r1369_5, m1369_6 +# 1369| m1369_8(unknown) = InitializeIndirection[p] : &:r1369_7 +# 1371| r1371_1(glval<unknown>) = FunctionAddress[operator new] : +# 1371| r1371_2(unsigned long) = Constant[4] : +# 1371| r1371_3(glval<int *>) = VariableAddress[p] : +# 1371| r1371_4(int *) = Load[p] : &:r1371_3, m1369_6 +# 1371| r1371_5(void *) = Convert : r1371_4 +# 1371| r1371_6(void *) = Call[operator new] : func:r1371_1, 0:r1371_2, 1:r1371_5 +# 1371| m1371_7(unknown) = ^CallSideEffect : ~m1369_4 +# 1371| m1371_8(unknown) = Chi : total:m1369_4, partial:m1371_7 +# 1371| m1371_9(unknown) = ^InitializeDynamicAllocation : &:r1371_6 +# 1371| r1371_10(int *) = Convert : r1371_6 +# 1372| v1372_1(void) = NoOp : +# 1369| v1369_9(void) = ReturnIndirection[p] : &:r1369_7, m1369_8 +# 1369| v1369_10(void) = ReturnVoid : +# 1369| v1369_11(void) = AliasedUse : ~m1371_8 +# 1369| v1369_12(void) = ExitFunction : -# 1328| Point defaultConstruct<Point>() -# 1328| Block 0 -# 1328| v1328_1(void) = EnterFunction : -# 1328| m1328_2(unknown) = AliasedDefinition : -# 1328| m1328_3(unknown) = InitializeNonLocal : -# 1328| m1328_4(unknown) = Chi : total:m1328_2, partial:m1328_3 -# 1329| r1329_1(glval<Point>) = VariableAddress[#return] : -# 1329| r1329_2(Point) = Constant[0] : -# 1329| m1329_3(Point) = Store[#return] : &:r1329_1, r1329_2 -# 1328| r1328_5(glval<Point>) = VariableAddress[#return] : -# 1328| v1328_6(void) = ReturnValue : &:r1328_5, m1329_3 -# 1328| v1328_7(void) = AliasedUse : m1328_3 -# 1328| v1328_8(void) = ExitFunction : +# 1375| Point defaultConstruct<Point>() +# 1375| Block 0 +# 1375| v1375_1(void) = EnterFunction : +# 1375| m1375_2(unknown) = AliasedDefinition : +# 1375| m1375_3(unknown) = InitializeNonLocal : +# 1375| m1375_4(unknown) = Chi : total:m1375_2, partial:m1375_3 +# 1376| r1376_1(glval<Point>) = VariableAddress[#return] : +# 1376| r1376_2(Point) = Constant[0] : +# 1376| m1376_3(Point) = Store[#return] : &:r1376_1, r1376_2 +# 1375| r1375_5(glval<Point>) = VariableAddress[#return] : +# 1375| v1375_6(void) = ReturnValue : &:r1375_5, m1376_3 +# 1375| v1375_7(void) = AliasedUse : m1375_3 +# 1375| v1375_8(void) = ExitFunction : -# 1328| String defaultConstruct<String>() -# 1328| Block 0 -# 1328| v1328_1(void) = EnterFunction : -# 1328| m1328_2(unknown) = AliasedDefinition : -# 1328| m1328_3(unknown) = InitializeNonLocal : -# 1328| m1328_4(unknown) = Chi : total:m1328_2, partial:m1328_3 -# 1329| r1329_1(glval<String>) = VariableAddress[#return] : -# 1329| m1329_2(String) = Uninitialized[#return] : &:r1329_1 -# 1329| r1329_3(glval<unknown>) = FunctionAddress[String] : -# 1329| v1329_4(void) = Call[String] : func:r1329_3, this:r1329_1 -# 1329| m1329_5(unknown) = ^CallSideEffect : ~m1328_4 -# 1329| m1329_6(unknown) = Chi : total:m1328_4, partial:m1329_5 -# 1329| m1329_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1329_1 -# 1329| m1329_8(String) = Chi : total:m1329_2, partial:m1329_7 -# 1328| r1328_5(glval<String>) = VariableAddress[#return] : -# 1328| v1328_6(void) = ReturnValue : &:r1328_5, m1329_8 -# 1328| v1328_7(void) = AliasedUse : ~m1329_6 -# 1328| v1328_8(void) = ExitFunction : +# 1375| String defaultConstruct<String>() +# 1375| Block 0 +# 1375| v1375_1(void) = EnterFunction : +# 1375| m1375_2(unknown) = AliasedDefinition : +# 1375| m1375_3(unknown) = InitializeNonLocal : +# 1375| m1375_4(unknown) = Chi : total:m1375_2, partial:m1375_3 +# 1376| r1376_1(glval<String>) = VariableAddress[#return] : +# 1376| m1376_2(String) = Uninitialized[#return] : &:r1376_1 +# 1376| r1376_3(glval<unknown>) = FunctionAddress[String] : +# 1376| v1376_4(void) = Call[String] : func:r1376_3, this:r1376_1 +# 1376| m1376_5(unknown) = ^CallSideEffect : ~m1375_4 +# 1376| m1376_6(unknown) = Chi : total:m1375_4, partial:m1376_5 +# 1376| m1376_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 +# 1376| m1376_8(String) = Chi : total:m1376_2, partial:m1376_7 +# 1375| r1375_5(glval<String>) = VariableAddress[#return] : +# 1375| v1375_6(void) = ReturnValue : &:r1375_5, m1376_8 +# 1375| v1375_7(void) = AliasedUse : ~m1376_6 +# 1375| v1375_8(void) = ExitFunction : -# 1328| copy_constructor defaultConstruct<copy_constructor>() -# 1328| Block 0 -# 1328| v1328_1(void) = EnterFunction : -# 1328| m1328_2(unknown) = AliasedDefinition : -# 1328| m1328_3(unknown) = InitializeNonLocal : -# 1328| m1328_4(unknown) = Chi : total:m1328_2, partial:m1328_3 -# 1329| r1329_1(glval<copy_constructor>) = VariableAddress[#return] : -# 1329| m1329_2(copy_constructor) = Uninitialized[#return] : &:r1329_1 -# 1329| r1329_3(glval<unknown>) = FunctionAddress[copy_constructor] : -# 1329| v1329_4(void) = Call[copy_constructor] : func:r1329_3, this:r1329_1 -# 1329| m1329_5(unknown) = ^CallSideEffect : ~m1328_4 -# 1329| m1329_6(unknown) = Chi : total:m1328_4, partial:m1329_5 -# 1329| m1329_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1329_1 -# 1329| m1329_8(copy_constructor) = Chi : total:m1329_2, partial:m1329_7 -# 1328| r1328_5(glval<copy_constructor>) = VariableAddress[#return] : -# 1328| v1328_6(void) = ReturnValue : &:r1328_5, m1329_8 -# 1328| v1328_7(void) = AliasedUse : ~m1329_6 -# 1328| v1328_8(void) = ExitFunction : +# 1375| copy_constructor defaultConstruct<copy_constructor>() +# 1375| Block 0 +# 1375| v1375_1(void) = EnterFunction : +# 1375| m1375_2(unknown) = AliasedDefinition : +# 1375| m1375_3(unknown) = InitializeNonLocal : +# 1375| m1375_4(unknown) = Chi : total:m1375_2, partial:m1375_3 +# 1376| r1376_1(glval<copy_constructor>) = VariableAddress[#return] : +# 1376| m1376_2(copy_constructor) = Uninitialized[#return] : &:r1376_1 +# 1376| r1376_3(glval<unknown>) = FunctionAddress[copy_constructor] : +# 1376| v1376_4(void) = Call[copy_constructor] : func:r1376_3, this:r1376_1 +# 1376| m1376_5(unknown) = ^CallSideEffect : ~m1375_4 +# 1376| m1376_6(unknown) = Chi : total:m1375_4, partial:m1376_5 +# 1376| m1376_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 +# 1376| m1376_8(copy_constructor) = Chi : total:m1376_2, partial:m1376_7 +# 1375| r1375_5(glval<copy_constructor>) = VariableAddress[#return] : +# 1375| v1375_6(void) = ReturnValue : &:r1375_5, m1376_8 +# 1375| v1375_7(void) = AliasedUse : ~m1376_6 +# 1375| v1375_8(void) = ExitFunction : -# 1328| destructor_only defaultConstruct<destructor_only>() -# 1328| Block 0 -# 1328| v1328_1(void) = EnterFunction : -# 1328| m1328_2(unknown) = AliasedDefinition : -# 1328| m1328_3(unknown) = InitializeNonLocal : -# 1328| m1328_4(unknown) = Chi : total:m1328_2, partial:m1328_3 -# 1329| r1329_1(glval<destructor_only>) = VariableAddress[#return] : -# 1329| r1329_2(destructor_only) = Constant[0] : -# 1329| m1329_3(destructor_only) = Store[#return] : &:r1329_1, r1329_2 -# 1328| r1328_5(glval<destructor_only>) = VariableAddress[#return] : -# 1328| v1328_6(void) = ReturnValue : &:r1328_5, m1329_3 -# 1328| v1328_7(void) = AliasedUse : m1328_3 -# 1328| v1328_8(void) = ExitFunction : +# 1375| destructor_only defaultConstruct<destructor_only>() +# 1375| Block 0 +# 1375| v1375_1(void) = EnterFunction : +# 1375| m1375_2(unknown) = AliasedDefinition : +# 1375| m1375_3(unknown) = InitializeNonLocal : +# 1375| m1375_4(unknown) = Chi : total:m1375_2, partial:m1375_3 +# 1376| r1376_1(glval<destructor_only>) = VariableAddress[#return] : +# 1376| r1376_2(destructor_only) = Constant[0] : +# 1376| m1376_3(destructor_only) = Store[#return] : &:r1376_1, r1376_2 +# 1375| r1375_5(glval<destructor_only>) = VariableAddress[#return] : +# 1375| v1375_6(void) = ReturnValue : &:r1375_5, m1376_3 +# 1375| v1375_7(void) = AliasedUse : m1375_3 +# 1375| v1375_8(void) = ExitFunction : -# 1367| void temporary_string() -# 1367| Block 0 -# 1367| v1367_1(void) = EnterFunction : -# 1367| m1367_2(unknown) = AliasedDefinition : -# 1367| m1367_3(unknown) = InitializeNonLocal : -# 1367| m1367_4(unknown) = Chi : total:m1367_2, partial:m1367_3 -# 1368| r1368_1(glval<String>) = VariableAddress[s] : -# 1368| r1368_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1368| r1368_3(String) = Call[returnValue] : func:r1368_2 -# 1368| m1368_4(unknown) = ^CallSideEffect : ~m1367_4 -# 1368| m1368_5(unknown) = Chi : total:m1367_4, partial:m1368_4 -# 1368| m1368_6(String) = Store[s] : &:r1368_1, r1368_3 -# 1369| r1369_1(glval<String &>) = VariableAddress[rs] : -# 1369| r1369_2(glval<String>) = VariableAddress[#temp1369:24] : -# 1369| r1369_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1369| r1369_4(String) = Call[returnValue] : func:r1369_3 -# 1369| m1369_5(unknown) = ^CallSideEffect : ~m1368_5 -# 1369| m1369_6(unknown) = Chi : total:m1368_5, partial:m1369_5 -# 1369| m1369_7(String) = Store[#temp1369:24] : &:r1369_2, r1369_4 -# 1369| r1369_8(glval<String>) = Convert : r1369_2 -# 1369| r1369_9(String &) = CopyValue : r1369_8 -# 1369| m1369_10(String &) = Store[rs] : &:r1369_1, r1369_9 -# 1371| r1371_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1371| r1371_2(glval<String>) = VariableAddress[s] : -# 1371| r1371_3(glval<String>) = Convert : r1371_2 -# 1371| r1371_4(String &) = CopyValue : r1371_3 -# 1371| v1371_5(void) = Call[acceptRef] : func:r1371_1, 0:r1371_4 -# 1371| m1371_6(unknown) = ^CallSideEffect : ~m1369_6 -# 1371| m1371_7(unknown) = Chi : total:m1369_6, partial:m1371_6 -# 1371| v1371_8(void) = ^BufferReadSideEffect[0] : &:r1371_4, ~m1368_6 -# 1372| r1372_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1372| r1372_2(glval<String>) = VariableAddress[#temp1372:23] : -# 1372| m1372_3(String) = Uninitialized[#temp1372:23] : &:r1372_2 -# 1372| r1372_4(glval<unknown>) = FunctionAddress[String] : -# 1372| r1372_5(glval<char[4]>) = StringConstant["foo"] : -# 1372| r1372_6(char *) = Convert : r1372_5 -# 1372| v1372_7(void) = Call[String] : func:r1372_4, this:r1372_2, 0:r1372_6 -# 1372| m1372_8(unknown) = ^CallSideEffect : ~m1371_7 -# 1372| m1372_9(unknown) = Chi : total:m1371_7, partial:m1372_8 -# 1372| v1372_10(void) = ^BufferReadSideEffect[0] : &:r1372_6, ~m1367_3 -# 1372| m1372_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1372_2 -# 1372| m1372_12(String) = Chi : total:m1372_3, partial:m1372_11 -# 1372| r1372_13(String &) = CopyValue : r1372_2 -# 1372| v1372_14(void) = Call[acceptRef] : func:r1372_1, 0:r1372_13 -# 1372| m1372_15(unknown) = ^CallSideEffect : ~m1372_9 -# 1372| m1372_16(unknown) = Chi : total:m1372_9, partial:m1372_15 -# 1372| v1372_17(void) = ^BufferReadSideEffect[0] : &:r1372_13, ~m1372_12 -# 1373| r1373_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1373| r1373_2(glval<String>) = VariableAddress[#temp1373:17] : -# 1373| m1373_3(String) = Uninitialized[#temp1373:17] : &:r1373_2 -# 1373| r1373_4(glval<unknown>) = FunctionAddress[String] : -# 1373| r1373_5(glval<String>) = VariableAddress[s] : -# 1373| r1373_6(glval<String>) = Convert : r1373_5 -# 1373| r1373_7(String &) = CopyValue : r1373_6 -# 1373| v1373_8(void) = Call[String] : func:r1373_4, this:r1373_2, 0:r1373_7 -# 1373| m1373_9(unknown) = ^CallSideEffect : ~m1372_16 -# 1373| m1373_10(unknown) = Chi : total:m1372_16, partial:m1373_9 -# 1373| v1373_11(void) = ^BufferReadSideEffect[0] : &:r1373_7, ~m1368_6 -# 1373| m1373_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r1373_2 -# 1373| m1373_13(String) = Chi : total:m1373_3, partial:m1373_12 -# 1373| r1373_14(String) = Load[#temp1373:17] : &:r1373_2, m1373_13 -# 1373| v1373_15(void) = Call[acceptValue] : func:r1373_1, 0:r1373_14 -# 1373| m1373_16(unknown) = ^CallSideEffect : ~m1373_10 -# 1373| m1373_17(unknown) = Chi : total:m1373_10, partial:m1373_16 -# 1374| r1374_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1374| r1374_2(glval<String>) = VariableAddress[#temp1374:25] : -# 1374| m1374_3(String) = Uninitialized[#temp1374:25] : &:r1374_2 -# 1374| r1374_4(glval<unknown>) = FunctionAddress[String] : -# 1374| r1374_5(glval<char[4]>) = StringConstant["foo"] : -# 1374| r1374_6(char *) = Convert : r1374_5 -# 1374| v1374_7(void) = Call[String] : func:r1374_4, this:r1374_2, 0:r1374_6 -# 1374| m1374_8(unknown) = ^CallSideEffect : ~m1373_17 -# 1374| m1374_9(unknown) = Chi : total:m1373_17, partial:m1374_8 -# 1374| v1374_10(void) = ^BufferReadSideEffect[0] : &:r1374_6, ~m1367_3 -# 1374| m1374_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1374_2 -# 1374| m1374_12(String) = Chi : total:m1374_3, partial:m1374_11 -# 1374| r1374_13(String) = Load[#temp1374:25] : &:r1374_2, m1374_12 -# 1374| v1374_14(void) = Call[acceptValue] : func:r1374_1, 0:r1374_13 -# 1374| m1374_15(unknown) = ^CallSideEffect : ~m1374_9 -# 1374| m1374_16(unknown) = Chi : total:m1374_9, partial:m1374_15 -# 1375| r1375_1(glval<String>) = VariableAddress[#temp1375:5] : -# 1375| m1375_2(String) = Uninitialized[#temp1375:5] : &:r1375_1 -# 1375| r1375_3(glval<unknown>) = FunctionAddress[String] : -# 1375| v1375_4(void) = Call[String] : func:r1375_3, this:r1375_1 -# 1375| m1375_5(unknown) = ^CallSideEffect : ~m1374_16 -# 1375| m1375_6(unknown) = Chi : total:m1374_16, partial:m1375_5 -# 1375| m1375_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1375_1 -# 1375| m1375_8(String) = Chi : total:m1375_2, partial:m1375_7 -# 1375| r1375_9(glval<String>) = Convert : r1375_1 -# 1375| r1375_10(glval<unknown>) = FunctionAddress[c_str] : -# 1375| r1375_11(char *) = Call[c_str] : func:r1375_10, this:r1375_9 -# 1375| m1375_12(unknown) = ^CallSideEffect : ~m1375_6 -# 1375| m1375_13(unknown) = Chi : total:m1375_6, partial:m1375_12 -# 1375| v1375_14(void) = ^IndirectReadSideEffect[-1] : &:r1375_9, m1375_8 -# 1376| r1376_1(glval<String>) = VariableAddress[#temp1376:5] : -# 1376| r1376_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1376| r1376_3(String) = Call[returnValue] : func:r1376_2 -# 1376| m1376_4(unknown) = ^CallSideEffect : ~m1375_13 -# 1376| m1376_5(unknown) = Chi : total:m1375_13, partial:m1376_4 -# 1376| m1376_6(String) = Store[#temp1376:5] : &:r1376_1, r1376_3 -# 1376| r1376_7(glval<String>) = Convert : r1376_1 -# 1376| r1376_8(glval<unknown>) = FunctionAddress[c_str] : -# 1376| r1376_9(char *) = Call[c_str] : func:r1376_8, this:r1376_7 -# 1376| m1376_10(unknown) = ^CallSideEffect : ~m1376_5 -# 1376| m1376_11(unknown) = Chi : total:m1376_5, partial:m1376_10 -# 1376| v1376_12(void) = ^IndirectReadSideEffect[-1] : &:r1376_7, m1376_6 -# 1378| r1378_1(glval<String>) = VariableAddress[#temp1378:5] : -# 1378| r1378_2(glval<unknown>) = FunctionAddress[defaultConstruct] : -# 1378| r1378_3(String) = Call[defaultConstruct] : func:r1378_2 -# 1378| m1378_4(unknown) = ^CallSideEffect : ~m1376_11 -# 1378| m1378_5(unknown) = Chi : total:m1376_11, partial:m1378_4 -# 1378| m1378_6(String) = Store[#temp1378:5] : &:r1378_1, r1378_3 -# 1379| v1379_1(void) = NoOp : -# 1379| r1379_2(glval<String>) = VariableAddress[s] : -# 1379| r1379_3(glval<unknown>) = FunctionAddress[~String] : -# 1379| v1379_4(void) = Call[~String] : func:r1379_3, this:r1379_2 -# 1379| m1379_5(unknown) = ^CallSideEffect : ~m1378_5 -# 1379| m1379_6(unknown) = Chi : total:m1378_5, partial:m1379_5 -# 1379| v1379_7(void) = ^IndirectReadSideEffect[-1] : &:r1379_2, m1368_6 -# 1379| m1379_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1379_2 -# 1379| m1379_9(String) = Chi : total:m1368_6, partial:m1379_8 -# 1367| v1367_5(void) = ReturnVoid : -# 1367| v1367_6(void) = AliasedUse : ~m1379_6 -# 1367| v1367_7(void) = ExitFunction : +# 1414| void temporary_string() +# 1414| Block 0 +# 1414| v1414_1(void) = EnterFunction : +# 1414| m1414_2(unknown) = AliasedDefinition : +# 1414| m1414_3(unknown) = InitializeNonLocal : +# 1414| m1414_4(unknown) = Chi : total:m1414_2, partial:m1414_3 +# 1415| r1415_1(glval<String>) = VariableAddress[s] : +# 1415| r1415_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1415| r1415_3(String) = Call[returnValue] : func:r1415_2 +# 1415| m1415_4(unknown) = ^CallSideEffect : ~m1414_4 +# 1415| m1415_5(unknown) = Chi : total:m1414_4, partial:m1415_4 +# 1415| m1415_6(String) = Store[s] : &:r1415_1, r1415_3 +# 1416| r1416_1(glval<String &>) = VariableAddress[rs] : +# 1416| r1416_2(glval<String>) = VariableAddress[#temp1416:24] : +# 1416| r1416_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1416| r1416_4(String) = Call[returnValue] : func:r1416_3 +# 1416| m1416_5(unknown) = ^CallSideEffect : ~m1415_5 +# 1416| m1416_6(unknown) = Chi : total:m1415_5, partial:m1416_5 +# 1416| m1416_7(String) = Store[#temp1416:24] : &:r1416_2, r1416_4 +# 1416| r1416_8(glval<String>) = Convert : r1416_2 +# 1416| r1416_9(String &) = CopyValue : r1416_8 +# 1416| m1416_10(String &) = Store[rs] : &:r1416_1, r1416_9 +# 1418| r1418_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1418| r1418_2(glval<String>) = VariableAddress[s] : +# 1418| r1418_3(glval<String>) = Convert : r1418_2 +# 1418| r1418_4(String &) = CopyValue : r1418_3 +# 1418| v1418_5(void) = Call[acceptRef] : func:r1418_1, 0:r1418_4 +# 1418| m1418_6(unknown) = ^CallSideEffect : ~m1416_6 +# 1418| m1418_7(unknown) = Chi : total:m1416_6, partial:m1418_6 +# 1418| v1418_8(void) = ^BufferReadSideEffect[0] : &:r1418_4, ~m1415_6 +# 1419| r1419_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1419| r1419_2(glval<String>) = VariableAddress[#temp1419:23] : +# 1419| m1419_3(String) = Uninitialized[#temp1419:23] : &:r1419_2 +# 1419| r1419_4(glval<unknown>) = FunctionAddress[String] : +# 1419| r1419_5(glval<char[4]>) = StringConstant["foo"] : +# 1419| r1419_6(char *) = Convert : r1419_5 +# 1419| v1419_7(void) = Call[String] : func:r1419_4, this:r1419_2, 0:r1419_6 +# 1419| m1419_8(unknown) = ^CallSideEffect : ~m1418_7 +# 1419| m1419_9(unknown) = Chi : total:m1418_7, partial:m1419_8 +# 1419| v1419_10(void) = ^BufferReadSideEffect[0] : &:r1419_6, ~m1414_3 +# 1419| m1419_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1419_2 +# 1419| m1419_12(String) = Chi : total:m1419_3, partial:m1419_11 +# 1419| r1419_13(String &) = CopyValue : r1419_2 +# 1419| v1419_14(void) = Call[acceptRef] : func:r1419_1, 0:r1419_13 +# 1419| m1419_15(unknown) = ^CallSideEffect : ~m1419_9 +# 1419| m1419_16(unknown) = Chi : total:m1419_9, partial:m1419_15 +# 1419| v1419_17(void) = ^BufferReadSideEffect[0] : &:r1419_13, ~m1419_12 +# 1420| r1420_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1420| r1420_2(glval<String>) = VariableAddress[#temp1420:17] : +# 1420| m1420_3(String) = Uninitialized[#temp1420:17] : &:r1420_2 +# 1420| r1420_4(glval<unknown>) = FunctionAddress[String] : +# 1420| r1420_5(glval<String>) = VariableAddress[s] : +# 1420| r1420_6(glval<String>) = Convert : r1420_5 +# 1420| r1420_7(String &) = CopyValue : r1420_6 +# 1420| v1420_8(void) = Call[String] : func:r1420_4, this:r1420_2, 0:r1420_7 +# 1420| m1420_9(unknown) = ^CallSideEffect : ~m1419_16 +# 1420| m1420_10(unknown) = Chi : total:m1419_16, partial:m1420_9 +# 1420| v1420_11(void) = ^BufferReadSideEffect[0] : &:r1420_7, ~m1415_6 +# 1420| m1420_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r1420_2 +# 1420| m1420_13(String) = Chi : total:m1420_3, partial:m1420_12 +# 1420| r1420_14(String) = Load[#temp1420:17] : &:r1420_2, m1420_13 +# 1420| v1420_15(void) = Call[acceptValue] : func:r1420_1, 0:r1420_14 +# 1420| m1420_16(unknown) = ^CallSideEffect : ~m1420_10 +# 1420| m1420_17(unknown) = Chi : total:m1420_10, partial:m1420_16 +# 1421| r1421_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1421| r1421_2(glval<String>) = VariableAddress[#temp1421:25] : +# 1421| m1421_3(String) = Uninitialized[#temp1421:25] : &:r1421_2 +# 1421| r1421_4(glval<unknown>) = FunctionAddress[String] : +# 1421| r1421_5(glval<char[4]>) = StringConstant["foo"] : +# 1421| r1421_6(char *) = Convert : r1421_5 +# 1421| v1421_7(void) = Call[String] : func:r1421_4, this:r1421_2, 0:r1421_6 +# 1421| m1421_8(unknown) = ^CallSideEffect : ~m1420_17 +# 1421| m1421_9(unknown) = Chi : total:m1420_17, partial:m1421_8 +# 1421| v1421_10(void) = ^BufferReadSideEffect[0] : &:r1421_6, ~m1414_3 +# 1421| m1421_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_2 +# 1421| m1421_12(String) = Chi : total:m1421_3, partial:m1421_11 +# 1421| r1421_13(String) = Load[#temp1421:25] : &:r1421_2, m1421_12 +# 1421| v1421_14(void) = Call[acceptValue] : func:r1421_1, 0:r1421_13 +# 1421| m1421_15(unknown) = ^CallSideEffect : ~m1421_9 +# 1421| m1421_16(unknown) = Chi : total:m1421_9, partial:m1421_15 +# 1422| r1422_1(glval<String>) = VariableAddress[#temp1422:5] : +# 1422| m1422_2(String) = Uninitialized[#temp1422:5] : &:r1422_1 +# 1422| r1422_3(glval<unknown>) = FunctionAddress[String] : +# 1422| v1422_4(void) = Call[String] : func:r1422_3, this:r1422_1 +# 1422| m1422_5(unknown) = ^CallSideEffect : ~m1421_16 +# 1422| m1422_6(unknown) = Chi : total:m1421_16, partial:m1422_5 +# 1422| m1422_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_1 +# 1422| m1422_8(String) = Chi : total:m1422_2, partial:m1422_7 +# 1422| r1422_9(glval<String>) = Convert : r1422_1 +# 1422| r1422_10(glval<unknown>) = FunctionAddress[c_str] : +# 1422| r1422_11(char *) = Call[c_str] : func:r1422_10, this:r1422_9 +# 1422| m1422_12(unknown) = ^CallSideEffect : ~m1422_6 +# 1422| m1422_13(unknown) = Chi : total:m1422_6, partial:m1422_12 +# 1422| v1422_14(void) = ^IndirectReadSideEffect[-1] : &:r1422_9, m1422_8 +# 1423| r1423_1(glval<String>) = VariableAddress[#temp1423:5] : +# 1423| r1423_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1423| r1423_3(String) = Call[returnValue] : func:r1423_2 +# 1423| m1423_4(unknown) = ^CallSideEffect : ~m1422_13 +# 1423| m1423_5(unknown) = Chi : total:m1422_13, partial:m1423_4 +# 1423| m1423_6(String) = Store[#temp1423:5] : &:r1423_1, r1423_3 +# 1423| r1423_7(glval<String>) = Convert : r1423_1 +# 1423| r1423_8(glval<unknown>) = FunctionAddress[c_str] : +# 1423| r1423_9(char *) = Call[c_str] : func:r1423_8, this:r1423_7 +# 1423| m1423_10(unknown) = ^CallSideEffect : ~m1423_5 +# 1423| m1423_11(unknown) = Chi : total:m1423_5, partial:m1423_10 +# 1423| v1423_12(void) = ^IndirectReadSideEffect[-1] : &:r1423_7, m1423_6 +# 1425| r1425_1(glval<String>) = VariableAddress[#temp1425:5] : +# 1425| r1425_2(glval<unknown>) = FunctionAddress[defaultConstruct] : +# 1425| r1425_3(String) = Call[defaultConstruct] : func:r1425_2 +# 1425| m1425_4(unknown) = ^CallSideEffect : ~m1423_11 +# 1425| m1425_5(unknown) = Chi : total:m1423_11, partial:m1425_4 +# 1425| m1425_6(String) = Store[#temp1425:5] : &:r1425_1, r1425_3 +# 1426| v1426_1(void) = NoOp : +# 1426| r1426_2(glval<String>) = VariableAddress[s] : +# 1426| r1426_3(glval<unknown>) = FunctionAddress[~String] : +# 1426| v1426_4(void) = Call[~String] : func:r1426_3, this:r1426_2 +# 1426| m1426_5(unknown) = ^CallSideEffect : ~m1425_5 +# 1426| m1426_6(unknown) = Chi : total:m1425_5, partial:m1426_5 +# 1426| v1426_7(void) = ^IndirectReadSideEffect[-1] : &:r1426_2, m1415_6 +# 1426| m1426_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_2 +# 1426| m1426_9(String) = Chi : total:m1415_6, partial:m1426_8 +# 1414| v1414_5(void) = ReturnVoid : +# 1414| v1414_6(void) = AliasedUse : ~m1426_6 +# 1414| v1414_7(void) = ExitFunction : -# 1381| void temporary_destructor_only() -# 1381| Block 0 -# 1381| v1381_1(void) = EnterFunction : -# 1381| m1381_2(unknown) = AliasedDefinition : -# 1381| m1381_3(unknown) = InitializeNonLocal : -# 1381| m1381_4(unknown) = Chi : total:m1381_2, partial:m1381_3 -# 1382| r1382_1(glval<destructor_only>) = VariableAddress[d] : -# 1382| r1382_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1382| r1382_3(destructor_only) = Call[returnValue] : func:r1382_2 -# 1382| m1382_4(unknown) = ^CallSideEffect : ~m1381_4 -# 1382| m1382_5(unknown) = Chi : total:m1381_4, partial:m1382_4 -# 1382| m1382_6(destructor_only) = Store[d] : &:r1382_1, r1382_3 -# 1383| r1383_1(glval<destructor_only &>) = VariableAddress[rd] : -# 1383| r1383_2(glval<destructor_only>) = VariableAddress[#temp1383:33] : -# 1383| r1383_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1383| r1383_4(destructor_only) = Call[returnValue] : func:r1383_3 -# 1383| m1383_5(unknown) = ^CallSideEffect : ~m1382_5 -# 1383| m1383_6(unknown) = Chi : total:m1382_5, partial:m1383_5 -# 1383| m1383_7(destructor_only) = Store[#temp1383:33] : &:r1383_2, r1383_4 -# 1383| r1383_8(glval<destructor_only>) = Convert : r1383_2 -# 1383| r1383_9(destructor_only &) = CopyValue : r1383_8 -# 1383| m1383_10(destructor_only &) = Store[rd] : &:r1383_1, r1383_9 -# 1384| r1384_1(glval<destructor_only>) = VariableAddress[d2] : -# 1384| m1384_2(destructor_only) = Uninitialized[d2] : &:r1384_1 -# 1385| r1385_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1385| r1385_2(glval<destructor_only>) = VariableAddress[d] : -# 1385| r1385_3(glval<destructor_only>) = Convert : r1385_2 -# 1385| r1385_4(destructor_only &) = CopyValue : r1385_3 -# 1385| v1385_5(void) = Call[acceptRef] : func:r1385_1, 0:r1385_4 -# 1385| m1385_6(unknown) = ^CallSideEffect : ~m1383_6 -# 1385| m1385_7(unknown) = Chi : total:m1383_6, partial:m1385_6 -# 1385| v1385_8(void) = ^BufferReadSideEffect[0] : &:r1385_4, ~m1382_6 -# 1386| r1386_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1386| r1386_2(glval<destructor_only>) = VariableAddress[#temp1386:17] : -# 1386| r1386_3(glval<destructor_only>) = VariableAddress[d] : -# 1386| r1386_4(destructor_only) = Load[d] : &:r1386_3, m1382_6 -# 1386| m1386_5(destructor_only) = Store[#temp1386:17] : &:r1386_2, r1386_4 -# 1386| r1386_6(destructor_only) = Load[#temp1386:17] : &:r1386_2, m1386_5 -# 1386| v1386_7(void) = Call[acceptValue] : func:r1386_1, 0:r1386_6 -# 1386| m1386_8(unknown) = ^CallSideEffect : ~m1385_7 -# 1386| m1386_9(unknown) = Chi : total:m1385_7, partial:m1386_8 -# 1387| r1387_1(glval<destructor_only>) = VariableAddress[#temp1387:5] : -# 1387| r1387_2(destructor_only) = Constant[0] : -# 1387| m1387_3(destructor_only) = Store[#temp1387:5] : &:r1387_1, r1387_2 -# 1387| r1387_4(glval<unknown>) = FunctionAddress[method] : -# 1387| v1387_5(void) = Call[method] : func:r1387_4, this:r1387_1 -# 1387| m1387_6(unknown) = ^CallSideEffect : ~m1386_9 -# 1387| m1387_7(unknown) = Chi : total:m1386_9, partial:m1387_6 -# 1387| v1387_8(void) = ^IndirectReadSideEffect[-1] : &:r1387_1, m1387_3 -# 1387| m1387_9(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1387_1 -# 1387| m1387_10(destructor_only) = Chi : total:m1387_3, partial:m1387_9 -# 1388| r1388_1(glval<destructor_only>) = VariableAddress[#temp1388:5] : -# 1388| r1388_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1388| r1388_3(destructor_only) = Call[returnValue] : func:r1388_2 -# 1388| m1388_4(unknown) = ^CallSideEffect : ~m1387_7 -# 1388| m1388_5(unknown) = Chi : total:m1387_7, partial:m1388_4 -# 1388| m1388_6(destructor_only) = Store[#temp1388:5] : &:r1388_1, r1388_3 -# 1388| r1388_7(glval<unknown>) = FunctionAddress[method] : -# 1388| v1388_8(void) = Call[method] : func:r1388_7, this:r1388_1 -# 1388| m1388_9(unknown) = ^CallSideEffect : ~m1388_5 -# 1388| m1388_10(unknown) = Chi : total:m1388_5, partial:m1388_9 -# 1388| v1388_11(void) = ^IndirectReadSideEffect[-1] : &:r1388_1, m1388_6 -# 1388| m1388_12(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1388_1 -# 1388| m1388_13(destructor_only) = Chi : total:m1388_6, partial:m1388_12 -# 1390| r1390_1(glval<destructor_only>) = VariableAddress[#temp1390:5] : -# 1390| r1390_2(glval<unknown>) = FunctionAddress[defaultConstruct] : -# 1390| r1390_3(destructor_only) = Call[defaultConstruct] : func:r1390_2 -# 1390| m1390_4(unknown) = ^CallSideEffect : ~m1388_10 -# 1390| m1390_5(unknown) = Chi : total:m1388_10, partial:m1390_4 -# 1390| m1390_6(destructor_only) = Store[#temp1390:5] : &:r1390_1, r1390_3 -# 1391| v1391_1(void) = NoOp : -# 1391| r1391_2(glval<destructor_only>) = VariableAddress[d2] : -# 1391| r1391_3(glval<unknown>) = FunctionAddress[~destructor_only] : -# 1391| v1391_4(void) = Call[~destructor_only] : func:r1391_3, this:r1391_2 -# 1391| m1391_5(unknown) = ^CallSideEffect : ~m1390_5 -# 1391| m1391_6(unknown) = Chi : total:m1390_5, partial:m1391_5 -# 1391| v1391_7(void) = ^IndirectReadSideEffect[-1] : &:r1391_2, m1384_2 -# 1391| m1391_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1391_2 -# 1391| m1391_9(destructor_only) = Chi : total:m1384_2, partial:m1391_8 -# 1391| r1391_10(glval<destructor_only>) = VariableAddress[d] : -# 1391| r1391_11(glval<unknown>) = FunctionAddress[~destructor_only] : -# 1391| v1391_12(void) = Call[~destructor_only] : func:r1391_11, this:r1391_10 -# 1391| m1391_13(unknown) = ^CallSideEffect : ~m1391_6 -# 1391| m1391_14(unknown) = Chi : total:m1391_6, partial:m1391_13 -# 1391| v1391_15(void) = ^IndirectReadSideEffect[-1] : &:r1391_10, m1382_6 -# 1391| m1391_16(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1391_10 -# 1391| m1391_17(destructor_only) = Chi : total:m1382_6, partial:m1391_16 -# 1381| v1381_5(void) = ReturnVoid : -# 1381| v1381_6(void) = AliasedUse : ~m1391_14 -# 1381| v1381_7(void) = ExitFunction : +# 1428| void temporary_destructor_only() +# 1428| Block 0 +# 1428| v1428_1(void) = EnterFunction : +# 1428| m1428_2(unknown) = AliasedDefinition : +# 1428| m1428_3(unknown) = InitializeNonLocal : +# 1428| m1428_4(unknown) = Chi : total:m1428_2, partial:m1428_3 +# 1429| r1429_1(glval<destructor_only>) = VariableAddress[d] : +# 1429| r1429_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1429| r1429_3(destructor_only) = Call[returnValue] : func:r1429_2 +# 1429| m1429_4(unknown) = ^CallSideEffect : ~m1428_4 +# 1429| m1429_5(unknown) = Chi : total:m1428_4, partial:m1429_4 +# 1429| m1429_6(destructor_only) = Store[d] : &:r1429_1, r1429_3 +# 1430| r1430_1(glval<destructor_only &>) = VariableAddress[rd] : +# 1430| r1430_2(glval<destructor_only>) = VariableAddress[#temp1430:33] : +# 1430| r1430_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1430| r1430_4(destructor_only) = Call[returnValue] : func:r1430_3 +# 1430| m1430_5(unknown) = ^CallSideEffect : ~m1429_5 +# 1430| m1430_6(unknown) = Chi : total:m1429_5, partial:m1430_5 +# 1430| m1430_7(destructor_only) = Store[#temp1430:33] : &:r1430_2, r1430_4 +# 1430| r1430_8(glval<destructor_only>) = Convert : r1430_2 +# 1430| r1430_9(destructor_only &) = CopyValue : r1430_8 +# 1430| m1430_10(destructor_only &) = Store[rd] : &:r1430_1, r1430_9 +# 1431| r1431_1(glval<destructor_only>) = VariableAddress[d2] : +# 1431| m1431_2(destructor_only) = Uninitialized[d2] : &:r1431_1 +# 1432| r1432_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1432| r1432_2(glval<destructor_only>) = VariableAddress[d] : +# 1432| r1432_3(glval<destructor_only>) = Convert : r1432_2 +# 1432| r1432_4(destructor_only &) = CopyValue : r1432_3 +# 1432| v1432_5(void) = Call[acceptRef] : func:r1432_1, 0:r1432_4 +# 1432| m1432_6(unknown) = ^CallSideEffect : ~m1430_6 +# 1432| m1432_7(unknown) = Chi : total:m1430_6, partial:m1432_6 +# 1432| v1432_8(void) = ^BufferReadSideEffect[0] : &:r1432_4, ~m1429_6 +# 1433| r1433_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1433| r1433_2(glval<destructor_only>) = VariableAddress[#temp1433:17] : +# 1433| r1433_3(glval<destructor_only>) = VariableAddress[d] : +# 1433| r1433_4(destructor_only) = Load[d] : &:r1433_3, m1429_6 +# 1433| m1433_5(destructor_only) = Store[#temp1433:17] : &:r1433_2, r1433_4 +# 1433| r1433_6(destructor_only) = Load[#temp1433:17] : &:r1433_2, m1433_5 +# 1433| v1433_7(void) = Call[acceptValue] : func:r1433_1, 0:r1433_6 +# 1433| m1433_8(unknown) = ^CallSideEffect : ~m1432_7 +# 1433| m1433_9(unknown) = Chi : total:m1432_7, partial:m1433_8 +# 1434| r1434_1(glval<destructor_only>) = VariableAddress[#temp1434:5] : +# 1434| r1434_2(destructor_only) = Constant[0] : +# 1434| m1434_3(destructor_only) = Store[#temp1434:5] : &:r1434_1, r1434_2 +# 1434| r1434_4(glval<unknown>) = FunctionAddress[method] : +# 1434| v1434_5(void) = Call[method] : func:r1434_4, this:r1434_1 +# 1434| m1434_6(unknown) = ^CallSideEffect : ~m1433_9 +# 1434| m1434_7(unknown) = Chi : total:m1433_9, partial:m1434_6 +# 1434| v1434_8(void) = ^IndirectReadSideEffect[-1] : &:r1434_1, m1434_3 +# 1434| m1434_9(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1434_1 +# 1434| m1434_10(destructor_only) = Chi : total:m1434_3, partial:m1434_9 +# 1435| r1435_1(glval<destructor_only>) = VariableAddress[#temp1435:5] : +# 1435| r1435_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1435| r1435_3(destructor_only) = Call[returnValue] : func:r1435_2 +# 1435| m1435_4(unknown) = ^CallSideEffect : ~m1434_7 +# 1435| m1435_5(unknown) = Chi : total:m1434_7, partial:m1435_4 +# 1435| m1435_6(destructor_only) = Store[#temp1435:5] : &:r1435_1, r1435_3 +# 1435| r1435_7(glval<unknown>) = FunctionAddress[method] : +# 1435| v1435_8(void) = Call[method] : func:r1435_7, this:r1435_1 +# 1435| m1435_9(unknown) = ^CallSideEffect : ~m1435_5 +# 1435| m1435_10(unknown) = Chi : total:m1435_5, partial:m1435_9 +# 1435| v1435_11(void) = ^IndirectReadSideEffect[-1] : &:r1435_1, m1435_6 +# 1435| m1435_12(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1435_1 +# 1435| m1435_13(destructor_only) = Chi : total:m1435_6, partial:m1435_12 +# 1437| r1437_1(glval<destructor_only>) = VariableAddress[#temp1437:5] : +# 1437| r1437_2(glval<unknown>) = FunctionAddress[defaultConstruct] : +# 1437| r1437_3(destructor_only) = Call[defaultConstruct] : func:r1437_2 +# 1437| m1437_4(unknown) = ^CallSideEffect : ~m1435_10 +# 1437| m1437_5(unknown) = Chi : total:m1435_10, partial:m1437_4 +# 1437| m1437_6(destructor_only) = Store[#temp1437:5] : &:r1437_1, r1437_3 +# 1438| v1438_1(void) = NoOp : +# 1438| r1438_2(glval<destructor_only>) = VariableAddress[d2] : +# 1438| r1438_3(glval<unknown>) = FunctionAddress[~destructor_only] : +# 1438| v1438_4(void) = Call[~destructor_only] : func:r1438_3, this:r1438_2 +# 1438| m1438_5(unknown) = ^CallSideEffect : ~m1437_5 +# 1438| m1438_6(unknown) = Chi : total:m1437_5, partial:m1438_5 +# 1438| v1438_7(void) = ^IndirectReadSideEffect[-1] : &:r1438_2, m1431_2 +# 1438| m1438_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_2 +# 1438| m1438_9(destructor_only) = Chi : total:m1431_2, partial:m1438_8 +# 1438| r1438_10(glval<destructor_only>) = VariableAddress[d] : +# 1438| r1438_11(glval<unknown>) = FunctionAddress[~destructor_only] : +# 1438| v1438_12(void) = Call[~destructor_only] : func:r1438_11, this:r1438_10 +# 1438| m1438_13(unknown) = ^CallSideEffect : ~m1438_6 +# 1438| m1438_14(unknown) = Chi : total:m1438_6, partial:m1438_13 +# 1438| v1438_15(void) = ^IndirectReadSideEffect[-1] : &:r1438_10, m1429_6 +# 1438| m1438_16(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_10 +# 1438| m1438_17(destructor_only) = Chi : total:m1429_6, partial:m1438_16 +# 1428| v1428_5(void) = ReturnVoid : +# 1428| v1428_6(void) = AliasedUse : ~m1438_14 +# 1428| v1428_7(void) = ExitFunction : -# 1393| void temporary_copy_constructor() -# 1393| Block 0 -# 1393| v1393_1(void) = EnterFunction : -# 1393| m1393_2(unknown) = AliasedDefinition : -# 1393| m1393_3(unknown) = InitializeNonLocal : -# 1393| m1393_4(unknown) = Chi : total:m1393_2, partial:m1393_3 -# 1394| r1394_1(glval<copy_constructor>) = VariableAddress[d] : -# 1394| r1394_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1394| r1394_3(copy_constructor) = Call[returnValue] : func:r1394_2 -# 1394| m1394_4(unknown) = ^CallSideEffect : ~m1393_4 -# 1394| m1394_5(unknown) = Chi : total:m1393_4, partial:m1394_4 -# 1394| m1394_6(copy_constructor) = Store[d] : &:r1394_1, r1394_3 -# 1395| r1395_1(glval<copy_constructor &>) = VariableAddress[rd] : -# 1395| r1395_2(glval<copy_constructor>) = VariableAddress[#temp1395:34] : -# 1395| r1395_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1395| r1395_4(copy_constructor) = Call[returnValue] : func:r1395_3 -# 1395| m1395_5(unknown) = ^CallSideEffect : ~m1394_5 -# 1395| m1395_6(unknown) = Chi : total:m1394_5, partial:m1395_5 -# 1395| m1395_7(copy_constructor) = Store[#temp1395:34] : &:r1395_2, r1395_4 -# 1395| r1395_8(glval<copy_constructor>) = Convert : r1395_2 -# 1395| r1395_9(copy_constructor &) = CopyValue : r1395_8 -# 1395| m1395_10(copy_constructor &) = Store[rd] : &:r1395_1, r1395_9 -# 1396| r1396_1(glval<copy_constructor>) = VariableAddress[d2] : -# 1396| m1396_2(copy_constructor) = Uninitialized[d2] : &:r1396_1 -# 1396| r1396_3(glval<unknown>) = FunctionAddress[copy_constructor] : -# 1396| v1396_4(void) = Call[copy_constructor] : func:r1396_3, this:r1396_1 -# 1396| m1396_5(unknown) = ^CallSideEffect : ~m1395_6 -# 1396| m1396_6(unknown) = Chi : total:m1395_6, partial:m1396_5 -# 1396| m1396_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1396_1 -# 1396| m1396_8(copy_constructor) = Chi : total:m1396_2, partial:m1396_7 -# 1397| r1397_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1397| r1397_2(glval<copy_constructor>) = VariableAddress[d] : -# 1397| r1397_3(glval<copy_constructor>) = Convert : r1397_2 -# 1397| r1397_4(copy_constructor &) = CopyValue : r1397_3 -# 1397| v1397_5(void) = Call[acceptRef] : func:r1397_1, 0:r1397_4 -# 1397| m1397_6(unknown) = ^CallSideEffect : ~m1396_6 -# 1397| m1397_7(unknown) = Chi : total:m1396_6, partial:m1397_6 -# 1397| v1397_8(void) = ^BufferReadSideEffect[0] : &:r1397_4, ~m1394_6 -# 1398| r1398_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1398| r1398_2(glval<copy_constructor>) = VariableAddress[#temp1398:17] : -# 1398| m1398_3(copy_constructor) = Uninitialized[#temp1398:17] : &:r1398_2 -# 1398| r1398_4(glval<unknown>) = FunctionAddress[copy_constructor] : -# 1398| r1398_5(glval<copy_constructor>) = VariableAddress[d] : -# 1398| r1398_6(glval<copy_constructor>) = Convert : r1398_5 -# 1398| r1398_7(copy_constructor &) = CopyValue : r1398_6 -# 1398| v1398_8(void) = Call[copy_constructor] : func:r1398_4, this:r1398_2, 0:r1398_7 -# 1398| m1398_9(unknown) = ^CallSideEffect : ~m1397_7 -# 1398| m1398_10(unknown) = Chi : total:m1397_7, partial:m1398_9 -# 1398| v1398_11(void) = ^BufferReadSideEffect[0] : &:r1398_7, ~m1394_6 -# 1398| m1398_12(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1398_2 -# 1398| m1398_13(copy_constructor) = Chi : total:m1398_3, partial:m1398_12 -# 1398| r1398_14(copy_constructor) = Load[#temp1398:17] : &:r1398_2, m1398_13 -# 1398| v1398_15(void) = Call[acceptValue] : func:r1398_1, 0:r1398_14 -# 1398| m1398_16(unknown) = ^CallSideEffect : ~m1398_10 -# 1398| m1398_17(unknown) = Chi : total:m1398_10, partial:m1398_16 -# 1399| r1399_1(glval<copy_constructor>) = VariableAddress[#temp1399:5] : -# 1399| m1399_2(copy_constructor) = Uninitialized[#temp1399:5] : &:r1399_1 -# 1399| r1399_3(glval<unknown>) = FunctionAddress[copy_constructor] : -# 1399| v1399_4(void) = Call[copy_constructor] : func:r1399_3, this:r1399_1 -# 1399| m1399_5(unknown) = ^CallSideEffect : ~m1398_17 -# 1399| m1399_6(unknown) = Chi : total:m1398_17, partial:m1399_5 -# 1399| m1399_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1399_1 -# 1399| m1399_8(copy_constructor) = Chi : total:m1399_2, partial:m1399_7 -# 1399| r1399_9(glval<unknown>) = FunctionAddress[method] : -# 1399| v1399_10(void) = Call[method] : func:r1399_9, this:r1399_1 -# 1399| m1399_11(unknown) = ^CallSideEffect : ~m1399_6 -# 1399| m1399_12(unknown) = Chi : total:m1399_6, partial:m1399_11 -# 1399| v1399_13(void) = ^IndirectReadSideEffect[-1] : &:r1399_1, m1399_8 -# 1399| m1399_14(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1399_1 -# 1399| m1399_15(copy_constructor) = Chi : total:m1399_8, partial:m1399_14 -# 1400| r1400_1(glval<copy_constructor>) = VariableAddress[#temp1400:5] : -# 1400| r1400_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1400| r1400_3(copy_constructor) = Call[returnValue] : func:r1400_2 -# 1400| m1400_4(unknown) = ^CallSideEffect : ~m1399_12 -# 1400| m1400_5(unknown) = Chi : total:m1399_12, partial:m1400_4 -# 1400| m1400_6(copy_constructor) = Store[#temp1400:5] : &:r1400_1, r1400_3 -# 1400| r1400_7(glval<unknown>) = FunctionAddress[method] : -# 1400| v1400_8(void) = Call[method] : func:r1400_7, this:r1400_1 -# 1400| m1400_9(unknown) = ^CallSideEffect : ~m1400_5 -# 1400| m1400_10(unknown) = Chi : total:m1400_5, partial:m1400_9 -# 1400| v1400_11(void) = ^IndirectReadSideEffect[-1] : &:r1400_1, m1400_6 -# 1400| m1400_12(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1400_1 -# 1400| m1400_13(copy_constructor) = Chi : total:m1400_6, partial:m1400_12 -# 1401| r1401_1(glval<copy_constructor>) = VariableAddress[#temp1401:5] : -# 1401| r1401_2(glval<unknown>) = FunctionAddress[defaultConstruct] : -# 1401| r1401_3(copy_constructor) = Call[defaultConstruct] : func:r1401_2 -# 1401| m1401_4(unknown) = ^CallSideEffect : ~m1400_10 -# 1401| m1401_5(unknown) = Chi : total:m1400_10, partial:m1401_4 -# 1401| m1401_6(copy_constructor) = Store[#temp1401:5] : &:r1401_1, r1401_3 -# 1403| r1403_1(glval<int>) = VariableAddress[y] : -# 1403| r1403_2(glval<copy_constructor>) = VariableAddress[#temp1403:13] : -# 1403| r1403_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1403| r1403_4(copy_constructor) = Call[returnValue] : func:r1403_3 -# 1403| m1403_5(unknown) = ^CallSideEffect : ~m1401_5 -# 1403| m1403_6(unknown) = Chi : total:m1401_5, partial:m1403_5 -# 1403| m1403_7(copy_constructor) = Store[#temp1403:13] : &:r1403_2, r1403_4 -# 1403| r1403_8(glval<int>) = FieldAddress[y] : r1403_2 -# 1403| r1403_9(int) = Load[?] : &:r1403_8, ~m1403_7 -# 1403| m1403_10(int) = Store[y] : &:r1403_1, r1403_9 -# 1404| v1404_1(void) = NoOp : -# 1393| v1393_5(void) = ReturnVoid : -# 1393| v1393_6(void) = AliasedUse : ~m1403_6 -# 1393| v1393_7(void) = ExitFunction : +# 1440| void temporary_copy_constructor() +# 1440| Block 0 +# 1440| v1440_1(void) = EnterFunction : +# 1440| m1440_2(unknown) = AliasedDefinition : +# 1440| m1440_3(unknown) = InitializeNonLocal : +# 1440| m1440_4(unknown) = Chi : total:m1440_2, partial:m1440_3 +# 1441| r1441_1(glval<copy_constructor>) = VariableAddress[d] : +# 1441| r1441_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1441| r1441_3(copy_constructor) = Call[returnValue] : func:r1441_2 +# 1441| m1441_4(unknown) = ^CallSideEffect : ~m1440_4 +# 1441| m1441_5(unknown) = Chi : total:m1440_4, partial:m1441_4 +# 1441| m1441_6(copy_constructor) = Store[d] : &:r1441_1, r1441_3 +# 1442| r1442_1(glval<copy_constructor &>) = VariableAddress[rd] : +# 1442| r1442_2(glval<copy_constructor>) = VariableAddress[#temp1442:34] : +# 1442| r1442_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1442| r1442_4(copy_constructor) = Call[returnValue] : func:r1442_3 +# 1442| m1442_5(unknown) = ^CallSideEffect : ~m1441_5 +# 1442| m1442_6(unknown) = Chi : total:m1441_5, partial:m1442_5 +# 1442| m1442_7(copy_constructor) = Store[#temp1442:34] : &:r1442_2, r1442_4 +# 1442| r1442_8(glval<copy_constructor>) = Convert : r1442_2 +# 1442| r1442_9(copy_constructor &) = CopyValue : r1442_8 +# 1442| m1442_10(copy_constructor &) = Store[rd] : &:r1442_1, r1442_9 +# 1443| r1443_1(glval<copy_constructor>) = VariableAddress[d2] : +# 1443| m1443_2(copy_constructor) = Uninitialized[d2] : &:r1443_1 +# 1443| r1443_3(glval<unknown>) = FunctionAddress[copy_constructor] : +# 1443| v1443_4(void) = Call[copy_constructor] : func:r1443_3, this:r1443_1 +# 1443| m1443_5(unknown) = ^CallSideEffect : ~m1442_6 +# 1443| m1443_6(unknown) = Chi : total:m1442_6, partial:m1443_5 +# 1443| m1443_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1443_1 +# 1443| m1443_8(copy_constructor) = Chi : total:m1443_2, partial:m1443_7 +# 1444| r1444_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1444| r1444_2(glval<copy_constructor>) = VariableAddress[d] : +# 1444| r1444_3(glval<copy_constructor>) = Convert : r1444_2 +# 1444| r1444_4(copy_constructor &) = CopyValue : r1444_3 +# 1444| v1444_5(void) = Call[acceptRef] : func:r1444_1, 0:r1444_4 +# 1444| m1444_6(unknown) = ^CallSideEffect : ~m1443_6 +# 1444| m1444_7(unknown) = Chi : total:m1443_6, partial:m1444_6 +# 1444| v1444_8(void) = ^BufferReadSideEffect[0] : &:r1444_4, ~m1441_6 +# 1445| r1445_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1445| r1445_2(glval<copy_constructor>) = VariableAddress[#temp1445:17] : +# 1445| m1445_3(copy_constructor) = Uninitialized[#temp1445:17] : &:r1445_2 +# 1445| r1445_4(glval<unknown>) = FunctionAddress[copy_constructor] : +# 1445| r1445_5(glval<copy_constructor>) = VariableAddress[d] : +# 1445| r1445_6(glval<copy_constructor>) = Convert : r1445_5 +# 1445| r1445_7(copy_constructor &) = CopyValue : r1445_6 +# 1445| v1445_8(void) = Call[copy_constructor] : func:r1445_4, this:r1445_2, 0:r1445_7 +# 1445| m1445_9(unknown) = ^CallSideEffect : ~m1444_7 +# 1445| m1445_10(unknown) = Chi : total:m1444_7, partial:m1445_9 +# 1445| v1445_11(void) = ^BufferReadSideEffect[0] : &:r1445_7, ~m1441_6 +# 1445| m1445_12(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1445_2 +# 1445| m1445_13(copy_constructor) = Chi : total:m1445_3, partial:m1445_12 +# 1445| r1445_14(copy_constructor) = Load[#temp1445:17] : &:r1445_2, m1445_13 +# 1445| v1445_15(void) = Call[acceptValue] : func:r1445_1, 0:r1445_14 +# 1445| m1445_16(unknown) = ^CallSideEffect : ~m1445_10 +# 1445| m1445_17(unknown) = Chi : total:m1445_10, partial:m1445_16 +# 1446| r1446_1(glval<copy_constructor>) = VariableAddress[#temp1446:5] : +# 1446| m1446_2(copy_constructor) = Uninitialized[#temp1446:5] : &:r1446_1 +# 1446| r1446_3(glval<unknown>) = FunctionAddress[copy_constructor] : +# 1446| v1446_4(void) = Call[copy_constructor] : func:r1446_3, this:r1446_1 +# 1446| m1446_5(unknown) = ^CallSideEffect : ~m1445_17 +# 1446| m1446_6(unknown) = Chi : total:m1445_17, partial:m1446_5 +# 1446| m1446_7(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1446_1 +# 1446| m1446_8(copy_constructor) = Chi : total:m1446_2, partial:m1446_7 +# 1446| r1446_9(glval<unknown>) = FunctionAddress[method] : +# 1446| v1446_10(void) = Call[method] : func:r1446_9, this:r1446_1 +# 1446| m1446_11(unknown) = ^CallSideEffect : ~m1446_6 +# 1446| m1446_12(unknown) = Chi : total:m1446_6, partial:m1446_11 +# 1446| v1446_13(void) = ^IndirectReadSideEffect[-1] : &:r1446_1, m1446_8 +# 1446| m1446_14(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1446_1 +# 1446| m1446_15(copy_constructor) = Chi : total:m1446_8, partial:m1446_14 +# 1447| r1447_1(glval<copy_constructor>) = VariableAddress[#temp1447:5] : +# 1447| r1447_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1447| r1447_3(copy_constructor) = Call[returnValue] : func:r1447_2 +# 1447| m1447_4(unknown) = ^CallSideEffect : ~m1446_12 +# 1447| m1447_5(unknown) = Chi : total:m1446_12, partial:m1447_4 +# 1447| m1447_6(copy_constructor) = Store[#temp1447:5] : &:r1447_1, r1447_3 +# 1447| r1447_7(glval<unknown>) = FunctionAddress[method] : +# 1447| v1447_8(void) = Call[method] : func:r1447_7, this:r1447_1 +# 1447| m1447_9(unknown) = ^CallSideEffect : ~m1447_5 +# 1447| m1447_10(unknown) = Chi : total:m1447_5, partial:m1447_9 +# 1447| v1447_11(void) = ^IndirectReadSideEffect[-1] : &:r1447_1, m1447_6 +# 1447| m1447_12(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1447_1 +# 1447| m1447_13(copy_constructor) = Chi : total:m1447_6, partial:m1447_12 +# 1448| r1448_1(glval<copy_constructor>) = VariableAddress[#temp1448:5] : +# 1448| r1448_2(glval<unknown>) = FunctionAddress[defaultConstruct] : +# 1448| r1448_3(copy_constructor) = Call[defaultConstruct] : func:r1448_2 +# 1448| m1448_4(unknown) = ^CallSideEffect : ~m1447_10 +# 1448| m1448_5(unknown) = Chi : total:m1447_10, partial:m1448_4 +# 1448| m1448_6(copy_constructor) = Store[#temp1448:5] : &:r1448_1, r1448_3 +# 1450| r1450_1(glval<int>) = VariableAddress[y] : +# 1450| r1450_2(glval<copy_constructor>) = VariableAddress[#temp1450:13] : +# 1450| r1450_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1450| r1450_4(copy_constructor) = Call[returnValue] : func:r1450_3 +# 1450| m1450_5(unknown) = ^CallSideEffect : ~m1448_5 +# 1450| m1450_6(unknown) = Chi : total:m1448_5, partial:m1450_5 +# 1450| m1450_7(copy_constructor) = Store[#temp1450:13] : &:r1450_2, r1450_4 +# 1450| r1450_8(glval<int>) = FieldAddress[y] : r1450_2 +# 1450| r1450_9(int) = Load[?] : &:r1450_8, ~m1450_7 +# 1450| m1450_10(int) = Store[y] : &:r1450_1, r1450_9 +# 1451| v1451_1(void) = NoOp : +# 1440| v1440_5(void) = ReturnVoid : +# 1440| v1440_6(void) = AliasedUse : ~m1450_6 +# 1440| v1440_7(void) = ExitFunction : -# 1406| void temporary_point() -# 1406| Block 0 -# 1406| v1406_1(void) = EnterFunction : -# 1406| m1406_2(unknown) = AliasedDefinition : -# 1406| m1406_3(unknown) = InitializeNonLocal : -# 1406| m1406_4(unknown) = Chi : total:m1406_2, partial:m1406_3 -# 1407| r1407_1(glval<Point>) = VariableAddress[p] : -# 1407| r1407_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1407| r1407_3(Point) = Call[returnValue] : func:r1407_2 -# 1407| m1407_4(unknown) = ^CallSideEffect : ~m1406_4 -# 1407| m1407_5(unknown) = Chi : total:m1406_4, partial:m1407_4 -# 1407| m1407_6(Point) = Store[p] : &:r1407_1, r1407_3 -# 1408| r1408_1(glval<Point &>) = VariableAddress[rp] : -# 1408| r1408_2(glval<Point>) = VariableAddress[#temp1408:23] : -# 1408| r1408_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1408| r1408_4(Point) = Call[returnValue] : func:r1408_3 -# 1408| m1408_5(unknown) = ^CallSideEffect : ~m1407_5 -# 1408| m1408_6(unknown) = Chi : total:m1407_5, partial:m1408_5 -# 1408| m1408_7(Point) = Store[#temp1408:23] : &:r1408_2, r1408_4 -# 1408| r1408_8(glval<Point>) = Convert : r1408_2 -# 1408| r1408_9(Point &) = CopyValue : r1408_8 -# 1408| m1408_10(Point &) = Store[rp] : &:r1408_1, r1408_9 -# 1410| r1410_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1410| r1410_2(glval<Point>) = VariableAddress[p] : -# 1410| r1410_3(glval<Point>) = Convert : r1410_2 -# 1410| r1410_4(Point &) = CopyValue : r1410_3 -# 1410| v1410_5(void) = Call[acceptRef] : func:r1410_1, 0:r1410_4 -# 1410| m1410_6(unknown) = ^CallSideEffect : ~m1408_6 -# 1410| m1410_7(unknown) = Chi : total:m1408_6, partial:m1410_6 -# 1410| v1410_8(void) = ^BufferReadSideEffect[0] : &:r1410_4, ~m1407_6 -# 1411| r1411_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1411| r1411_2(glval<Point>) = VariableAddress[p] : -# 1411| r1411_3(Point) = Load[p] : &:r1411_2, m1407_6 -# 1411| v1411_4(void) = Call[acceptValue] : func:r1411_1, 0:r1411_3 -# 1411| m1411_5(unknown) = ^CallSideEffect : ~m1410_7 -# 1411| m1411_6(unknown) = Chi : total:m1410_7, partial:m1411_5 -# 1412| r1412_1(int) = Constant[0] : -# 1413| r1413_1(glval<int>) = VariableAddress[y] : -# 1413| r1413_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1413| r1413_3(Point) = Call[returnValue] : func:r1413_2 -# 1413| m1413_4(unknown) = ^CallSideEffect : ~m1411_6 -# 1413| m1413_5(unknown) = Chi : total:m1411_6, partial:m1413_4 -# 1413| r1413_6(glval<Point>) = VariableAddress[#temp1413:13] : -# 1413| m1413_7(Point) = Store[#temp1413:13] : &:r1413_6, r1413_3 -# 1413| r1413_8(glval<int>) = FieldAddress[y] : r1413_6 -# 1413| r1413_9(int) = Load[?] : &:r1413_8, ~m1413_7 -# 1413| m1413_10(int) = Store[y] : &:r1413_1, r1413_9 -# 1415| r1415_1(glval<unknown>) = FunctionAddress[defaultConstruct] : -# 1415| r1415_2(Point) = Call[defaultConstruct] : func:r1415_1 -# 1415| m1415_3(unknown) = ^CallSideEffect : ~m1413_5 -# 1415| m1415_4(unknown) = Chi : total:m1413_5, partial:m1415_3 -# 1416| v1416_1(void) = NoOp : -# 1406| v1406_5(void) = ReturnVoid : -# 1406| v1406_6(void) = AliasedUse : ~m1415_4 -# 1406| v1406_7(void) = ExitFunction : +# 1453| void temporary_point() +# 1453| Block 0 +# 1453| v1453_1(void) = EnterFunction : +# 1453| m1453_2(unknown) = AliasedDefinition : +# 1453| m1453_3(unknown) = InitializeNonLocal : +# 1453| m1453_4(unknown) = Chi : total:m1453_2, partial:m1453_3 +# 1454| r1454_1(glval<Point>) = VariableAddress[p] : +# 1454| r1454_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1454| r1454_3(Point) = Call[returnValue] : func:r1454_2 +# 1454| m1454_4(unknown) = ^CallSideEffect : ~m1453_4 +# 1454| m1454_5(unknown) = Chi : total:m1453_4, partial:m1454_4 +# 1454| m1454_6(Point) = Store[p] : &:r1454_1, r1454_3 +# 1455| r1455_1(glval<Point &>) = VariableAddress[rp] : +# 1455| r1455_2(glval<Point>) = VariableAddress[#temp1455:23] : +# 1455| r1455_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1455| r1455_4(Point) = Call[returnValue] : func:r1455_3 +# 1455| m1455_5(unknown) = ^CallSideEffect : ~m1454_5 +# 1455| m1455_6(unknown) = Chi : total:m1454_5, partial:m1455_5 +# 1455| m1455_7(Point) = Store[#temp1455:23] : &:r1455_2, r1455_4 +# 1455| r1455_8(glval<Point>) = Convert : r1455_2 +# 1455| r1455_9(Point &) = CopyValue : r1455_8 +# 1455| m1455_10(Point &) = Store[rp] : &:r1455_1, r1455_9 +# 1457| r1457_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1457| r1457_2(glval<Point>) = VariableAddress[p] : +# 1457| r1457_3(glval<Point>) = Convert : r1457_2 +# 1457| r1457_4(Point &) = CopyValue : r1457_3 +# 1457| v1457_5(void) = Call[acceptRef] : func:r1457_1, 0:r1457_4 +# 1457| m1457_6(unknown) = ^CallSideEffect : ~m1455_6 +# 1457| m1457_7(unknown) = Chi : total:m1455_6, partial:m1457_6 +# 1457| v1457_8(void) = ^BufferReadSideEffect[0] : &:r1457_4, ~m1454_6 +# 1458| r1458_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1458| r1458_2(glval<Point>) = VariableAddress[p] : +# 1458| r1458_3(Point) = Load[p] : &:r1458_2, m1454_6 +# 1458| v1458_4(void) = Call[acceptValue] : func:r1458_1, 0:r1458_3 +# 1458| m1458_5(unknown) = ^CallSideEffect : ~m1457_7 +# 1458| m1458_6(unknown) = Chi : total:m1457_7, partial:m1458_5 +# 1459| r1459_1(int) = Constant[0] : +# 1460| r1460_1(glval<int>) = VariableAddress[y] : +# 1460| r1460_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1460| r1460_3(Point) = Call[returnValue] : func:r1460_2 +# 1460| m1460_4(unknown) = ^CallSideEffect : ~m1458_6 +# 1460| m1460_5(unknown) = Chi : total:m1458_6, partial:m1460_4 +# 1460| r1460_6(glval<Point>) = VariableAddress[#temp1460:13] : +# 1460| m1460_7(Point) = Store[#temp1460:13] : &:r1460_6, r1460_3 +# 1460| r1460_8(glval<int>) = FieldAddress[y] : r1460_6 +# 1460| r1460_9(int) = Load[?] : &:r1460_8, ~m1460_7 +# 1460| m1460_10(int) = Store[y] : &:r1460_1, r1460_9 +# 1462| r1462_1(glval<unknown>) = FunctionAddress[defaultConstruct] : +# 1462| r1462_2(Point) = Call[defaultConstruct] : func:r1462_1 +# 1462| m1462_3(unknown) = ^CallSideEffect : ~m1460_5 +# 1462| m1462_4(unknown) = Chi : total:m1460_5, partial:m1462_3 +# 1463| v1463_1(void) = NoOp : +# 1453| v1453_5(void) = ReturnVoid : +# 1453| v1453_6(void) = AliasedUse : ~m1462_4 +# 1453| v1453_7(void) = ExitFunction : -# 1423| void temporary_unusual_fields() -# 1423| Block 0 -# 1423| v1423_1(void) = EnterFunction : -# 1423| m1423_2(unknown) = AliasedDefinition : -# 1423| m1423_3(unknown) = InitializeNonLocal : -# 1423| m1423_4(unknown) = Chi : total:m1423_2, partial:m1423_3 -# 1424| r1424_1(glval<int &>) = VariableAddress[rx] : -# 1424| r1424_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1424| r1424_3(UnusualFields) = Call[returnValue] : func:r1424_2 -# 1424| m1424_4(unknown) = ^CallSideEffect : ~m1423_4 -# 1424| m1424_5(unknown) = Chi : total:m1423_4, partial:m1424_4 -# 1424| r1424_6(glval<UnusualFields>) = VariableAddress[#temp1424:21] : -# 1424| m1424_7(UnusualFields) = Store[#temp1424:21] : &:r1424_6, r1424_3 -# 1424| r1424_8(glval<int &>) = FieldAddress[r] : r1424_6 -# 1424| r1424_9(int &) = Load[?] : &:r1424_8, ~m1424_7 -# 1424| r1424_10(glval<int>) = CopyValue : r1424_9 -# 1424| r1424_11(glval<int>) = Convert : r1424_10 -# 1424| r1424_12(int &) = CopyValue : r1424_11 -# 1424| m1424_13(int &) = Store[rx] : &:r1424_1, r1424_12 -# 1425| r1425_1(glval<int>) = VariableAddress[x] : -# 1425| r1425_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1425| r1425_3(UnusualFields) = Call[returnValue] : func:r1425_2 -# 1425| m1425_4(unknown) = ^CallSideEffect : ~m1424_5 -# 1425| m1425_5(unknown) = Chi : total:m1424_5, partial:m1425_4 -# 1425| r1425_6(glval<UnusualFields>) = VariableAddress[#temp1425:13] : -# 1425| m1425_7(UnusualFields) = Store[#temp1425:13] : &:r1425_6, r1425_3 -# 1425| r1425_8(glval<int &>) = FieldAddress[r] : r1425_6 -# 1425| r1425_9(int &) = Load[?] : &:r1425_8, ~m1425_7 -# 1425| r1425_10(int) = Load[?] : &:r1425_9, ~m1425_5 -# 1425| m1425_11(int) = Store[x] : &:r1425_1, r1425_10 -# 1427| r1427_1(glval<float &>) = VariableAddress[rf] : -# 1427| r1427_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1427| r1427_3(UnusualFields) = Call[returnValue] : func:r1427_2 -# 1427| m1427_4(unknown) = ^CallSideEffect : ~m1425_5 -# 1427| m1427_5(unknown) = Chi : total:m1425_5, partial:m1427_4 -# 1427| r1427_6(glval<UnusualFields>) = VariableAddress[#temp1427:23] : -# 1427| m1427_7(UnusualFields) = Store[#temp1427:23] : &:r1427_6, r1427_3 -# 1427| r1427_8(glval<float[10]>) = FieldAddress[a] : r1427_6 -# 1427| r1427_9(float *) = Convert : r1427_8 -# 1427| r1427_10(int) = Constant[3] : -# 1427| r1427_11(glval<float>) = PointerAdd[4] : r1427_9, r1427_10 -# 1427| r1427_12(glval<float>) = Convert : r1427_11 -# 1427| r1427_13(float &) = CopyValue : r1427_12 -# 1427| m1427_14(float &) = Store[rf] : &:r1427_1, r1427_13 -# 1428| r1428_1(glval<float>) = VariableAddress[f] : -# 1428| r1428_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1428| r1428_3(UnusualFields) = Call[returnValue] : func:r1428_2 -# 1428| m1428_4(unknown) = ^CallSideEffect : ~m1427_5 -# 1428| m1428_5(unknown) = Chi : total:m1427_5, partial:m1428_4 -# 1428| r1428_6(glval<UnusualFields>) = VariableAddress[#temp1428:15] : -# 1428| m1428_7(UnusualFields) = Store[#temp1428:15] : &:r1428_6, r1428_3 -# 1428| r1428_8(glval<float[10]>) = FieldAddress[a] : r1428_6 -# 1428| r1428_9(float *) = Convert : r1428_8 -# 1428| r1428_10(int) = Constant[5] : -# 1428| r1428_11(glval<float>) = PointerAdd[4] : r1428_9, r1428_10 -# 1428| r1428_12(float) = Load[?] : &:r1428_11, ~m1428_7 -# 1428| m1428_13(float) = Store[f] : &:r1428_1, r1428_12 -# 1429| v1429_1(void) = NoOp : -# 1423| v1423_5(void) = ReturnVoid : -# 1423| v1423_6(void) = AliasedUse : ~m1428_5 -# 1423| v1423_7(void) = ExitFunction : +# 1470| void temporary_unusual_fields() +# 1470| Block 0 +# 1470| v1470_1(void) = EnterFunction : +# 1470| m1470_2(unknown) = AliasedDefinition : +# 1470| m1470_3(unknown) = InitializeNonLocal : +# 1470| m1470_4(unknown) = Chi : total:m1470_2, partial:m1470_3 +# 1471| r1471_1(glval<int &>) = VariableAddress[rx] : +# 1471| r1471_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1471| r1471_3(UnusualFields) = Call[returnValue] : func:r1471_2 +# 1471| m1471_4(unknown) = ^CallSideEffect : ~m1470_4 +# 1471| m1471_5(unknown) = Chi : total:m1470_4, partial:m1471_4 +# 1471| r1471_6(glval<UnusualFields>) = VariableAddress[#temp1471:21] : +# 1471| m1471_7(UnusualFields) = Store[#temp1471:21] : &:r1471_6, r1471_3 +# 1471| r1471_8(glval<int &>) = FieldAddress[r] : r1471_6 +# 1471| r1471_9(int &) = Load[?] : &:r1471_8, ~m1471_7 +# 1471| r1471_10(glval<int>) = CopyValue : r1471_9 +# 1471| r1471_11(glval<int>) = Convert : r1471_10 +# 1471| r1471_12(int &) = CopyValue : r1471_11 +# 1471| m1471_13(int &) = Store[rx] : &:r1471_1, r1471_12 +# 1472| r1472_1(glval<int>) = VariableAddress[x] : +# 1472| r1472_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1472| r1472_3(UnusualFields) = Call[returnValue] : func:r1472_2 +# 1472| m1472_4(unknown) = ^CallSideEffect : ~m1471_5 +# 1472| m1472_5(unknown) = Chi : total:m1471_5, partial:m1472_4 +# 1472| r1472_6(glval<UnusualFields>) = VariableAddress[#temp1472:13] : +# 1472| m1472_7(UnusualFields) = Store[#temp1472:13] : &:r1472_6, r1472_3 +# 1472| r1472_8(glval<int &>) = FieldAddress[r] : r1472_6 +# 1472| r1472_9(int &) = Load[?] : &:r1472_8, ~m1472_7 +# 1472| r1472_10(int) = Load[?] : &:r1472_9, ~m1472_5 +# 1472| m1472_11(int) = Store[x] : &:r1472_1, r1472_10 +# 1474| r1474_1(glval<float &>) = VariableAddress[rf] : +# 1474| r1474_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1474| r1474_3(UnusualFields) = Call[returnValue] : func:r1474_2 +# 1474| m1474_4(unknown) = ^CallSideEffect : ~m1472_5 +# 1474| m1474_5(unknown) = Chi : total:m1472_5, partial:m1474_4 +# 1474| r1474_6(glval<UnusualFields>) = VariableAddress[#temp1474:23] : +# 1474| m1474_7(UnusualFields) = Store[#temp1474:23] : &:r1474_6, r1474_3 +# 1474| r1474_8(glval<float[10]>) = FieldAddress[a] : r1474_6 +# 1474| r1474_9(float *) = Convert : r1474_8 +# 1474| r1474_10(int) = Constant[3] : +# 1474| r1474_11(glval<float>) = PointerAdd[4] : r1474_9, r1474_10 +# 1474| r1474_12(glval<float>) = Convert : r1474_11 +# 1474| r1474_13(float &) = CopyValue : r1474_12 +# 1474| m1474_14(float &) = Store[rf] : &:r1474_1, r1474_13 +# 1475| r1475_1(glval<float>) = VariableAddress[f] : +# 1475| r1475_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1475| r1475_3(UnusualFields) = Call[returnValue] : func:r1475_2 +# 1475| m1475_4(unknown) = ^CallSideEffect : ~m1474_5 +# 1475| m1475_5(unknown) = Chi : total:m1474_5, partial:m1475_4 +# 1475| r1475_6(glval<UnusualFields>) = VariableAddress[#temp1475:15] : +# 1475| m1475_7(UnusualFields) = Store[#temp1475:15] : &:r1475_6, r1475_3 +# 1475| r1475_8(glval<float[10]>) = FieldAddress[a] : r1475_6 +# 1475| r1475_9(float *) = Convert : r1475_8 +# 1475| r1475_10(int) = Constant[5] : +# 1475| r1475_11(glval<float>) = PointerAdd[4] : r1475_9, r1475_10 +# 1475| r1475_12(float) = Load[?] : &:r1475_11, ~m1475_7 +# 1475| m1475_13(float) = Store[f] : &:r1475_1, r1475_12 +# 1476| v1476_1(void) = NoOp : +# 1470| v1470_5(void) = ReturnVoid : +# 1470| v1470_6(void) = AliasedUse : ~m1475_5 +# 1470| v1470_7(void) = ExitFunction : -# 1445| void temporary_hierarchy() -# 1445| Block 0 -# 1445| v1445_1(void) = EnterFunction : -# 1445| m1445_2(unknown) = AliasedDefinition : -# 1445| m1445_3(unknown) = InitializeNonLocal : -# 1445| m1445_4(unknown) = Chi : total:m1445_2, partial:m1445_3 -# 1446| r1446_1(glval<POD_Base>) = VariableAddress[b] : +# 1492| void temporary_hierarchy() +# 1492| Block 0 +# 1492| v1492_1(void) = EnterFunction : +# 1492| m1492_2(unknown) = AliasedDefinition : +# 1492| m1492_3(unknown) = InitializeNonLocal : +# 1492| m1492_4(unknown) = Chi : total:m1492_2, partial:m1492_3 +# 1493| r1493_1(glval<POD_Base>) = VariableAddress[b] : #-----| r0_1(glval<POD_Middle>) = VariableAddress[#temp0:0] : -# 1446| r1446_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1446| r1446_3(POD_Middle) = Call[returnValue] : func:r1446_2 -# 1446| m1446_4(unknown) = ^CallSideEffect : ~m1445_4 -# 1446| m1446_5(unknown) = Chi : total:m1445_4, partial:m1446_4 -# 1446| m1446_6(POD_Middle) = Store[#temp0:0] : &:r0_1, r1446_3 +# 1493| r1493_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1493| r1493_3(POD_Middle) = Call[returnValue] : func:r1493_2 +# 1493| m1493_4(unknown) = ^CallSideEffect : ~m1492_4 +# 1493| m1493_5(unknown) = Chi : total:m1492_4, partial:m1493_4 +# 1493| m1493_6(POD_Middle) = Store[#temp0:0] : &:r0_1, r1493_3 #-----| r0_2(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_1 -#-----| r0_3(POD_Base) = Load[?] : &:r0_2, ~m1446_6 -#-----| m0_4(POD_Base) = Store[b] : &:r1446_1, r0_3 -# 1447| r1447_1(glval<POD_Derived>) = VariableAddress[#temp1447:9] : -# 1447| r1447_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1447| r1447_3(POD_Derived) = Call[returnValue] : func:r1447_2 -# 1447| m1447_4(unknown) = ^CallSideEffect : ~m1446_5 -# 1447| m1447_5(unknown) = Chi : total:m1446_5, partial:m1447_4 -# 1447| m1447_6(POD_Derived) = Store[#temp1447:9] : &:r1447_1, r1447_3 -# 1447| r1447_7(glval<POD_Middle>) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1447_1 -# 1447| r1447_8(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1447_7 -# 1447| r1447_9(POD_Base) = Load[?] : &:r1447_8, ~m1447_6 -# 1447| r1447_10(glval<POD_Base>) = VariableAddress[b] : -# 1447| m1447_11(POD_Base) = Store[b] : &:r1447_10, r1447_9 -# 1448| r1448_1(glval<int>) = VariableAddress[x] : +#-----| r0_3(POD_Base) = Load[?] : &:r0_2, ~m1493_6 +#-----| m0_4(POD_Base) = Store[b] : &:r1493_1, r0_3 +# 1494| r1494_1(glval<POD_Derived>) = VariableAddress[#temp1494:9] : +# 1494| r1494_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1494| r1494_3(POD_Derived) = Call[returnValue] : func:r1494_2 +# 1494| m1494_4(unknown) = ^CallSideEffect : ~m1493_5 +# 1494| m1494_5(unknown) = Chi : total:m1493_5, partial:m1494_4 +# 1494| m1494_6(POD_Derived) = Store[#temp1494:9] : &:r1494_1, r1494_3 +# 1494| r1494_7(glval<POD_Middle>) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1494_1 +# 1494| r1494_8(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1494_7 +# 1494| r1494_9(POD_Base) = Load[?] : &:r1494_8, ~m1494_6 +# 1494| r1494_10(glval<POD_Base>) = VariableAddress[b] : +# 1494| m1494_11(POD_Base) = Store[b] : &:r1494_10, r1494_9 +# 1495| r1495_1(glval<int>) = VariableAddress[x] : #-----| r0_5(glval<POD_Derived>) = VariableAddress[#temp0:0] : -# 1448| r1448_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1448| r1448_3(POD_Derived) = Call[returnValue] : func:r1448_2 -# 1448| m1448_4(unknown) = ^CallSideEffect : ~m1447_5 -# 1448| m1448_5(unknown) = Chi : total:m1447_5, partial:m1448_4 -# 1448| m1448_6(POD_Derived) = Store[#temp0:0] : &:r0_5, r1448_3 +# 1495| r1495_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1495| r1495_3(POD_Derived) = Call[returnValue] : func:r1495_2 +# 1495| m1495_4(unknown) = ^CallSideEffect : ~m1494_5 +# 1495| m1495_5(unknown) = Chi : total:m1494_5, partial:m1495_4 +# 1495| m1495_6(POD_Derived) = Store[#temp0:0] : &:r0_5, r1495_3 #-----| r0_6(glval<POD_Middle>) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_5 #-----| r0_7(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_6 -# 1448| r1448_7(glval<int>) = FieldAddress[x] : r0_7 -# 1448| r1448_8(int) = Load[?] : &:r1448_7, ~m1448_6 -# 1448| m1448_9(int) = Store[x] : &:r1448_1, r1448_8 -# 1449| r1449_1(glval<float>) = VariableAddress[f] : +# 1495| r1495_7(glval<int>) = FieldAddress[x] : r0_7 +# 1495| r1495_8(int) = Load[?] : &:r1495_7, ~m1495_6 +# 1495| m1495_9(int) = Store[x] : &:r1495_1, r1495_8 +# 1496| r1496_1(glval<float>) = VariableAddress[f] : #-----| r0_8(glval<POD_Derived>) = VariableAddress[#temp0:0] : -# 1449| r1449_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1449| r1449_3(POD_Derived) = Call[returnValue] : func:r1449_2 -# 1449| m1449_4(unknown) = ^CallSideEffect : ~m1448_5 -# 1449| m1449_5(unknown) = Chi : total:m1448_5, partial:m1449_4 -# 1449| m1449_6(POD_Derived) = Store[#temp0:0] : &:r0_8, r1449_3 +# 1496| r1496_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1496| r1496_3(POD_Derived) = Call[returnValue] : func:r1496_2 +# 1496| m1496_4(unknown) = ^CallSideEffect : ~m1495_5 +# 1496| m1496_5(unknown) = Chi : total:m1495_5, partial:m1496_4 +# 1496| m1496_6(POD_Derived) = Store[#temp0:0] : &:r0_8, r1496_3 #-----| r0_9(glval<POD_Middle>) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_8 #-----| r0_10(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_9 #-----| r0_11(glval<POD_Base>) = Convert : r0_10 -# 1449| r1449_7(glval<unknown>) = FunctionAddress[f] : -# 1449| r1449_8(float) = Call[f] : func:r1449_7, this:r0_11 -# 1449| m1449_9(unknown) = ^CallSideEffect : ~m1449_5 -# 1449| m1449_10(unknown) = Chi : total:m1449_5, partial:m1449_9 -#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m1449_6 -# 1449| m1449_11(float) = Store[f] : &:r1449_1, r1449_8 -# 1450| v1450_1(void) = NoOp : -# 1445| v1445_5(void) = ReturnVoid : -# 1445| v1445_6(void) = AliasedUse : ~m1449_10 -# 1445| v1445_7(void) = ExitFunction : +# 1496| r1496_7(glval<unknown>) = FunctionAddress[f] : +# 1496| r1496_8(float) = Call[f] : func:r1496_7, this:r0_11 +# 1496| m1496_9(unknown) = ^CallSideEffect : ~m1496_5 +# 1496| m1496_10(unknown) = Chi : total:m1496_5, partial:m1496_9 +#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m1496_6 +# 1496| m1496_11(float) = Store[f] : &:r1496_1, r1496_8 +# 1497| v1497_1(void) = NoOp : +# 1492| v1492_5(void) = ReturnVoid : +# 1492| v1492_6(void) = AliasedUse : ~m1496_10 +# 1492| v1492_7(void) = ExitFunction : -# 1453| void Inheritance_Test_B::~Inheritance_Test_B() -# 1453| Block 0 -# 1453| v1453_1(void) = EnterFunction : -# 1453| m1453_2(unknown) = AliasedDefinition : -# 1453| m1453_3(unknown) = InitializeNonLocal : -# 1453| m1453_4(unknown) = Chi : total:m1453_2, partial:m1453_3 -# 1453| r1453_5(glval<unknown>) = VariableAddress[#this] : -# 1453| m1453_6(glval<Inheritance_Test_B>) = InitializeParameter[#this] : &:r1453_5 -# 1453| r1453_7(glval<Inheritance_Test_B>) = Load[#this] : &:r1453_5, m1453_6 -# 1453| m1453_8(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1453_7 -# 1453| v1453_9(void) = NoOp : -# 1453| v1453_10(void) = ReturnIndirection[#this] : &:r1453_7, m1453_8 -# 1453| v1453_11(void) = ReturnVoid : -# 1453| v1453_12(void) = AliasedUse : m1453_3 -# 1453| v1453_13(void) = ExitFunction : +# 1500| void Inheritance_Test_B::~Inheritance_Test_B() +# 1500| Block 0 +# 1500| v1500_1(void) = EnterFunction : +# 1500| m1500_2(unknown) = AliasedDefinition : +# 1500| m1500_3(unknown) = InitializeNonLocal : +# 1500| m1500_4(unknown) = Chi : total:m1500_2, partial:m1500_3 +# 1500| r1500_5(glval<unknown>) = VariableAddress[#this] : +# 1500| m1500_6(glval<Inheritance_Test_B>) = InitializeParameter[#this] : &:r1500_5 +# 1500| r1500_7(glval<Inheritance_Test_B>) = Load[#this] : &:r1500_5, m1500_6 +# 1500| m1500_8(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1500_7 +# 1500| v1500_9(void) = NoOp : +# 1500| v1500_10(void) = ReturnIndirection[#this] : &:r1500_7, m1500_8 +# 1500| v1500_11(void) = ReturnVoid : +# 1500| v1500_12(void) = AliasedUse : m1500_3 +# 1500| v1500_13(void) = ExitFunction : -# 1459| void Inheritance_Test_A::Inheritance_Test_A() -# 1459| Block 0 -# 1459| v1459_1(void) = EnterFunction : -# 1459| m1459_2(unknown) = AliasedDefinition : -# 1459| m1459_3(unknown) = InitializeNonLocal : -# 1459| m1459_4(unknown) = Chi : total:m1459_2, partial:m1459_3 -# 1459| r1459_5(glval<unknown>) = VariableAddress[#this] : -# 1459| m1459_6(glval<Inheritance_Test_A>) = InitializeParameter[#this] : &:r1459_5 -# 1459| r1459_7(glval<Inheritance_Test_A>) = Load[#this] : &:r1459_5, m1459_6 -# 1459| m1459_8(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1459_7 -# 1459| r1459_9(glval<int>) = FieldAddress[x] : m1459_6 -# 1459| r1459_10(int) = Constant[42] : -# 1459| m1459_11(int) = Store[?] : &:r1459_9, r1459_10 -# 1459| m1459_12(unknown) = Chi : total:m1459_8, partial:m1459_11 -# 1460| r1460_1(int) = Constant[3] : -# 1460| r1460_2(glval<unknown>) = VariableAddress[#this] : -# 1460| r1460_3(Inheritance_Test_A *) = Load[#this] : &:r1460_2, m1459_6 -# 1460| r1460_4(glval<int>) = FieldAddress[y] : r1460_3 -# 1460| m1460_5(int) = Store[?] : &:r1460_4, r1460_1 -# 1460| m1460_6(unknown) = Chi : total:m1459_12, partial:m1460_5 -# 1461| v1461_1(void) = NoOp : -# 1459| v1459_13(void) = ReturnIndirection[#this] : &:r1459_7, m1460_6 -# 1459| v1459_14(void) = ReturnVoid : -# 1459| v1459_15(void) = AliasedUse : m1459_3 -# 1459| v1459_16(void) = ExitFunction : +# 1506| void Inheritance_Test_A::Inheritance_Test_A() +# 1506| Block 0 +# 1506| v1506_1(void) = EnterFunction : +# 1506| m1506_2(unknown) = AliasedDefinition : +# 1506| m1506_3(unknown) = InitializeNonLocal : +# 1506| m1506_4(unknown) = Chi : total:m1506_2, partial:m1506_3 +# 1506| r1506_5(glval<unknown>) = VariableAddress[#this] : +# 1506| m1506_6(glval<Inheritance_Test_A>) = InitializeParameter[#this] : &:r1506_5 +# 1506| r1506_7(glval<Inheritance_Test_A>) = Load[#this] : &:r1506_5, m1506_6 +# 1506| m1506_8(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1506_7 +# 1506| r1506_9(glval<int>) = FieldAddress[x] : m1506_6 +# 1506| r1506_10(int) = Constant[42] : +# 1506| m1506_11(int) = Store[?] : &:r1506_9, r1506_10 +# 1506| m1506_12(unknown) = Chi : total:m1506_8, partial:m1506_11 +# 1507| r1507_1(int) = Constant[3] : +# 1507| r1507_2(glval<unknown>) = VariableAddress[#this] : +# 1507| r1507_3(Inheritance_Test_A *) = Load[#this] : &:r1507_2, m1506_6 +# 1507| r1507_4(glval<int>) = FieldAddress[y] : r1507_3 +# 1507| m1507_5(int) = Store[?] : &:r1507_4, r1507_1 +# 1507| m1507_6(unknown) = Chi : total:m1506_12, partial:m1507_5 +# 1508| v1508_1(void) = NoOp : +# 1506| v1506_13(void) = ReturnIndirection[#this] : &:r1506_7, m1507_6 +# 1506| v1506_14(void) = ReturnVoid : +# 1506| v1506_15(void) = AliasedUse : m1506_3 +# 1506| v1506_16(void) = ExitFunction : -# 1464| void array_structured_binding() -# 1464| Block 0 -# 1464| v1464_1(void) = EnterFunction : -# 1464| m1464_2(unknown) = AliasedDefinition : -# 1464| m1464_3(unknown) = InitializeNonLocal : -# 1464| m1464_4(unknown) = Chi : total:m1464_2, partial:m1464_3 -# 1465| r1465_1(glval<int[2]>) = VariableAddress[xs] : -# 1465| m1465_2(int[2]) = Uninitialized[xs] : &:r1465_1 -# 1465| r1465_3(int) = Constant[0] : -# 1465| r1465_4(glval<int>) = PointerAdd[4] : r1465_1, r1465_3 -# 1465| r1465_5(int) = Constant[1] : -# 1465| m1465_6(int) = Store[?] : &:r1465_4, r1465_5 -# 1465| m1465_7(int[2]) = Chi : total:m1465_2, partial:m1465_6 -# 1465| r1465_8(int) = Constant[1] : -# 1465| r1465_9(glval<int>) = PointerAdd[4] : r1465_1, r1465_8 -# 1465| r1465_10(int) = Constant[2] : -# 1465| m1465_11(int) = Store[?] : &:r1465_9, r1465_10 -# 1465| m1465_12(int[2]) = Chi : total:m1465_7, partial:m1465_11 -# 1468| r1468_1(glval<int(&)[2]>) = VariableAddress[(unnamed local variable)] : -# 1468| r1468_2(glval<int[2]>) = VariableAddress[xs] : -# 1468| r1468_3(int(&)[2]) = CopyValue : r1468_2 -# 1468| m1468_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1468_1, r1468_3 -# 1468| r1468_5(glval<int &>) = VariableAddress[x0] : +# 1511| void array_structured_binding() +# 1511| Block 0 +# 1511| v1511_1(void) = EnterFunction : +# 1511| m1511_2(unknown) = AliasedDefinition : +# 1511| m1511_3(unknown) = InitializeNonLocal : +# 1511| m1511_4(unknown) = Chi : total:m1511_2, partial:m1511_3 +# 1512| r1512_1(glval<int[2]>) = VariableAddress[xs] : +# 1512| m1512_2(int[2]) = Uninitialized[xs] : &:r1512_1 +# 1512| r1512_3(int) = Constant[0] : +# 1512| r1512_4(glval<int>) = PointerAdd[4] : r1512_1, r1512_3 +# 1512| r1512_5(int) = Constant[1] : +# 1512| m1512_6(int) = Store[?] : &:r1512_4, r1512_5 +# 1512| m1512_7(int[2]) = Chi : total:m1512_2, partial:m1512_6 +# 1512| r1512_8(int) = Constant[1] : +# 1512| r1512_9(glval<int>) = PointerAdd[4] : r1512_1, r1512_8 +# 1512| r1512_10(int) = Constant[2] : +# 1512| m1512_11(int) = Store[?] : &:r1512_9, r1512_10 +# 1512| m1512_12(int[2]) = Chi : total:m1512_7, partial:m1512_11 +# 1515| r1515_1(glval<int(&)[2]>) = VariableAddress[(unnamed local variable)] : +# 1515| r1515_2(glval<int[2]>) = VariableAddress[xs] : +# 1515| r1515_3(int(&)[2]) = CopyValue : r1515_2 +# 1515| m1515_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1515_1, r1515_3 +# 1515| r1515_5(glval<int &>) = VariableAddress[x0] : #-----| r0_1(glval<int(&)[2]>) = VariableAddress[(unnamed local variable)] : -#-----| r0_2(int(&)[2]) = Load[(unnamed local variable)] : &:r0_1, m1468_4 +#-----| r0_2(int(&)[2]) = Load[(unnamed local variable)] : &:r0_1, m1515_4 #-----| r0_3(glval<int[2]>) = CopyValue : r0_2 #-----| r0_4(int *) = Convert : r0_3 #-----| r0_5(unsigned long) = Constant[0] : #-----| r0_6(glval<int>) = PointerAdd[4] : r0_4, r0_5 -#-----| m0_7(int &) = Store[x0] : &:r1468_5, r0_6 -# 1468| r1468_6(glval<int &>) = VariableAddress[x1] : +#-----| m0_7(int &) = Store[x0] : &:r1515_5, r0_6 +# 1515| r1515_6(glval<int &>) = VariableAddress[x1] : #-----| r0_8(glval<int(&)[2]>) = VariableAddress[(unnamed local variable)] : -#-----| r0_9(int(&)[2]) = Load[(unnamed local variable)] : &:r0_8, m1468_4 +#-----| r0_9(int(&)[2]) = Load[(unnamed local variable)] : &:r0_8, m1515_4 #-----| r0_10(glval<int[2]>) = CopyValue : r0_9 #-----| r0_11(int *) = Convert : r0_10 #-----| r0_12(unsigned long) = Constant[1] : #-----| r0_13(glval<int>) = PointerAdd[4] : r0_11, r0_12 -#-----| m0_14(int &) = Store[x1] : &:r1468_6, r0_13 -# 1469| r1469_1(int) = Constant[3] : -# 1469| r1469_2(glval<int &>) = VariableAddress[x1] : -# 1469| r1469_3(int &) = Load[x1] : &:r1469_2, m0_14 -# 1469| m1469_4(int) = Store[?] : &:r1469_3, r1469_1 -# 1469| m1469_5(int[2]) = Chi : total:m1465_12, partial:m1469_4 -# 1470| r1470_1(glval<int &>) = VariableAddress[rx1] : -# 1470| r1470_2(glval<int &>) = VariableAddress[x1] : -# 1470| r1470_3(int &) = Load[x1] : &:r1470_2, m0_14 -# 1470| r1470_4(int &) = CopyValue : r1470_3 -# 1470| m1470_5(int &) = Store[rx1] : &:r1470_1, r1470_4 -# 1471| r1471_1(glval<int>) = VariableAddress[x] : -# 1471| r1471_2(glval<int &>) = VariableAddress[x1] : -# 1471| r1471_3(int &) = Load[x1] : &:r1471_2, m0_14 -# 1471| r1471_4(int) = Load[?] : &:r1471_3, m1469_4 -# 1471| m1471_5(int) = Store[x] : &:r1471_1, r1471_4 -# 1475| r1475_1(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : -# 1475| r1475_2(glval<int[2]>) = VariableAddress[xs] : -# 1475| r1475_3(int(&)[2]) = CopyValue : r1475_2 -# 1475| m1475_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1475_1, r1475_3 -# 1476| r1476_1(glval<int &>) = VariableAddress[x0] : -# 1476| r1476_2(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : -# 1476| r1476_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1476_2, m1475_4 -# 1476| r1476_4(glval<int[2]>) = CopyValue : r1476_3 -# 1476| r1476_5(int *) = Convert : r1476_4 -# 1476| r1476_6(int) = Constant[0] : -# 1476| r1476_7(glval<int>) = PointerAdd[4] : r1476_5, r1476_6 -# 1476| r1476_8(int &) = CopyValue : r1476_7 -# 1476| m1476_9(int &) = Store[x0] : &:r1476_1, r1476_8 -# 1477| r1477_1(glval<int &>) = VariableAddress[x1] : -# 1477| r1477_2(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : -# 1477| r1477_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1477_2, m1475_4 -# 1477| r1477_4(glval<int[2]>) = CopyValue : r1477_3 -# 1477| r1477_5(int *) = Convert : r1477_4 -# 1477| r1477_6(int) = Constant[1] : -# 1477| r1477_7(glval<int>) = PointerAdd[4] : r1477_5, r1477_6 -# 1477| r1477_8(int &) = CopyValue : r1477_7 -# 1477| m1477_9(int &) = Store[x1] : &:r1477_1, r1477_8 -# 1478| r1478_1(int) = Constant[3] : -# 1478| r1478_2(glval<int &>) = VariableAddress[x1] : -# 1478| r1478_3(int &) = Load[x1] : &:r1478_2, m1477_9 -# 1478| r1478_4(glval<int>) = CopyValue : r1478_3 -# 1478| m1478_5(int) = Store[?] : &:r1478_4, r1478_1 -# 1478| m1478_6(int[2]) = Chi : total:m1469_5, partial:m1478_5 -# 1479| r1479_1(glval<int &>) = VariableAddress[rx1] : -# 1479| r1479_2(glval<int &>) = VariableAddress[x1] : -# 1479| r1479_3(int &) = Load[x1] : &:r1479_2, m1477_9 -# 1479| r1479_4(glval<int>) = CopyValue : r1479_3 -# 1479| r1479_5(int &) = CopyValue : r1479_4 -# 1479| m1479_6(int &) = Store[rx1] : &:r1479_1, r1479_5 -# 1480| r1480_1(glval<int>) = VariableAddress[x] : -# 1480| r1480_2(glval<int &>) = VariableAddress[x1] : -# 1480| r1480_3(int &) = Load[x1] : &:r1480_2, m1477_9 -# 1480| r1480_4(int) = Load[?] : &:r1480_3, m1478_5 -# 1480| m1480_5(int) = Store[x] : &:r1480_1, r1480_4 -# 1482| v1482_1(void) = NoOp : -# 1464| v1464_5(void) = ReturnVoid : -# 1464| v1464_6(void) = AliasedUse : m1464_3 -# 1464| v1464_7(void) = ExitFunction : +#-----| m0_14(int &) = Store[x1] : &:r1515_6, r0_13 +# 1516| r1516_1(int) = Constant[3] : +# 1516| r1516_2(glval<int &>) = VariableAddress[x1] : +# 1516| r1516_3(int &) = Load[x1] : &:r1516_2, m0_14 +# 1516| m1516_4(int) = Store[?] : &:r1516_3, r1516_1 +# 1516| m1516_5(int[2]) = Chi : total:m1512_12, partial:m1516_4 +# 1517| r1517_1(glval<int &>) = VariableAddress[rx1] : +# 1517| r1517_2(glval<int &>) = VariableAddress[x1] : +# 1517| r1517_3(int &) = Load[x1] : &:r1517_2, m0_14 +# 1517| r1517_4(int &) = CopyValue : r1517_3 +# 1517| m1517_5(int &) = Store[rx1] : &:r1517_1, r1517_4 +# 1518| r1518_1(glval<int>) = VariableAddress[x] : +# 1518| r1518_2(glval<int &>) = VariableAddress[x1] : +# 1518| r1518_3(int &) = Load[x1] : &:r1518_2, m0_14 +# 1518| r1518_4(int) = Load[?] : &:r1518_3, m1516_4 +# 1518| m1518_5(int) = Store[x] : &:r1518_1, r1518_4 +# 1522| r1522_1(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : +# 1522| r1522_2(glval<int[2]>) = VariableAddress[xs] : +# 1522| r1522_3(int(&)[2]) = CopyValue : r1522_2 +# 1522| m1522_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1522_1, r1522_3 +# 1523| r1523_1(glval<int &>) = VariableAddress[x0] : +# 1523| r1523_2(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : +# 1523| r1523_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1523_2, m1522_4 +# 1523| r1523_4(glval<int[2]>) = CopyValue : r1523_3 +# 1523| r1523_5(int *) = Convert : r1523_4 +# 1523| r1523_6(int) = Constant[0] : +# 1523| r1523_7(glval<int>) = PointerAdd[4] : r1523_5, r1523_6 +# 1523| r1523_8(int &) = CopyValue : r1523_7 +# 1523| m1523_9(int &) = Store[x0] : &:r1523_1, r1523_8 +# 1524| r1524_1(glval<int &>) = VariableAddress[x1] : +# 1524| r1524_2(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : +# 1524| r1524_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1524_2, m1522_4 +# 1524| r1524_4(glval<int[2]>) = CopyValue : r1524_3 +# 1524| r1524_5(int *) = Convert : r1524_4 +# 1524| r1524_6(int) = Constant[1] : +# 1524| r1524_7(glval<int>) = PointerAdd[4] : r1524_5, r1524_6 +# 1524| r1524_8(int &) = CopyValue : r1524_7 +# 1524| m1524_9(int &) = Store[x1] : &:r1524_1, r1524_8 +# 1525| r1525_1(int) = Constant[3] : +# 1525| r1525_2(glval<int &>) = VariableAddress[x1] : +# 1525| r1525_3(int &) = Load[x1] : &:r1525_2, m1524_9 +# 1525| r1525_4(glval<int>) = CopyValue : r1525_3 +# 1525| m1525_5(int) = Store[?] : &:r1525_4, r1525_1 +# 1525| m1525_6(int[2]) = Chi : total:m1516_5, partial:m1525_5 +# 1526| r1526_1(glval<int &>) = VariableAddress[rx1] : +# 1526| r1526_2(glval<int &>) = VariableAddress[x1] : +# 1526| r1526_3(int &) = Load[x1] : &:r1526_2, m1524_9 +# 1526| r1526_4(glval<int>) = CopyValue : r1526_3 +# 1526| r1526_5(int &) = CopyValue : r1526_4 +# 1526| m1526_6(int &) = Store[rx1] : &:r1526_1, r1526_5 +# 1527| r1527_1(glval<int>) = VariableAddress[x] : +# 1527| r1527_2(glval<int &>) = VariableAddress[x1] : +# 1527| r1527_3(int &) = Load[x1] : &:r1527_2, m1524_9 +# 1527| r1527_4(int) = Load[?] : &:r1527_3, m1525_5 +# 1527| m1527_5(int) = Store[x] : &:r1527_1, r1527_4 +# 1529| v1529_1(void) = NoOp : +# 1511| v1511_5(void) = ReturnVoid : +# 1511| v1511_6(void) = AliasedUse : m1511_3 +# 1511| v1511_7(void) = ExitFunction : -# 1484| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() -# 1484| Block 0 -# 1484| v1484_1(void) = EnterFunction : -# 1484| m1484_2(unknown) = AliasedDefinition : -# 1484| m1484_3(unknown) = InitializeNonLocal : -# 1484| m1484_4(unknown) = Chi : total:m1484_2, partial:m1484_3 -# 1484| r1484_5(glval<unknown>) = VariableAddress[#this] : -# 1484| m1484_6(glval<StructuredBindingDataMemberMemberStruct>) = InitializeParameter[#this] : &:r1484_5 -# 1484| r1484_7(glval<StructuredBindingDataMemberMemberStruct>) = Load[#this] : &:r1484_5, m1484_6 -# 1484| m1484_8(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1484_7 -# 1484| v1484_9(void) = NoOp : -# 1484| v1484_10(void) = ReturnIndirection[#this] : &:r1484_7, m1484_8 -# 1484| v1484_11(void) = ReturnVoid : -# 1484| v1484_12(void) = AliasedUse : m1484_3 -# 1484| v1484_13(void) = ExitFunction : +# 1531| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() +# 1531| Block 0 +# 1531| v1531_1(void) = EnterFunction : +# 1531| m1531_2(unknown) = AliasedDefinition : +# 1531| m1531_3(unknown) = InitializeNonLocal : +# 1531| m1531_4(unknown) = Chi : total:m1531_2, partial:m1531_3 +# 1531| r1531_5(glval<unknown>) = VariableAddress[#this] : +# 1531| m1531_6(glval<StructuredBindingDataMemberMemberStruct>) = InitializeParameter[#this] : &:r1531_5 +# 1531| r1531_7(glval<StructuredBindingDataMemberMemberStruct>) = Load[#this] : &:r1531_5, m1531_6 +# 1531| m1531_8(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1531_7 +# 1531| v1531_9(void) = NoOp : +# 1531| v1531_10(void) = ReturnIndirection[#this] : &:r1531_7, m1531_8 +# 1531| v1531_11(void) = ReturnVoid : +# 1531| v1531_12(void) = AliasedUse : m1531_3 +# 1531| v1531_13(void) = ExitFunction : -# 1488| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() -# 1488| Block 0 -# 1488| v1488_1(void) = EnterFunction : -# 1488| m1488_2(unknown) = AliasedDefinition : -# 1488| m1488_3(unknown) = InitializeNonLocal : -# 1488| m1488_4(unknown) = Chi : total:m1488_2, partial:m1488_3 -# 1488| r1488_5(glval<unknown>) = VariableAddress[#this] : -# 1488| m1488_6(glval<StructuredBindingDataMemberStruct>) = InitializeParameter[#this] : &:r1488_5 -# 1488| r1488_7(glval<StructuredBindingDataMemberStruct>) = Load[#this] : &:r1488_5, m1488_6 -# 1488| m1488_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1488_7 -# 1488| v1488_9(void) = NoOp : -# 1488| v1488_10(void) = ReturnIndirection[#this] : &:r1488_7, m1488_8 -# 1488| v1488_11(void) = ReturnVoid : -# 1488| v1488_12(void) = AliasedUse : m1488_3 -# 1488| v1488_13(void) = ExitFunction : +# 1535| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() +# 1535| Block 0 +# 1535| v1535_1(void) = EnterFunction : +# 1535| m1535_2(unknown) = AliasedDefinition : +# 1535| m1535_3(unknown) = InitializeNonLocal : +# 1535| m1535_4(unknown) = Chi : total:m1535_2, partial:m1535_3 +# 1535| r1535_5(glval<unknown>) = VariableAddress[#this] : +# 1535| m1535_6(glval<StructuredBindingDataMemberStruct>) = InitializeParameter[#this] : &:r1535_5 +# 1535| r1535_7(glval<StructuredBindingDataMemberStruct>) = Load[#this] : &:r1535_5, m1535_6 +# 1535| m1535_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1535_7 +# 1535| v1535_9(void) = NoOp : +# 1535| v1535_10(void) = ReturnIndirection[#this] : &:r1535_7, m1535_8 +# 1535| v1535_11(void) = ReturnVoid : +# 1535| v1535_12(void) = AliasedUse : m1535_3 +# 1535| v1535_13(void) = ExitFunction : -# 1488| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) -# 1488| Block 0 -# 1488| v1488_1(void) = EnterFunction : -# 1488| m1488_2(unknown) = AliasedDefinition : -# 1488| m1488_3(unknown) = InitializeNonLocal : -# 1488| m1488_4(unknown) = Chi : total:m1488_2, partial:m1488_3 -# 1488| r1488_5(glval<unknown>) = VariableAddress[#this] : -# 1488| m1488_6(glval<StructuredBindingDataMemberStruct>) = InitializeParameter[#this] : &:r1488_5 -# 1488| r1488_7(glval<StructuredBindingDataMemberStruct>) = Load[#this] : &:r1488_5, m1488_6 -# 1488| m1488_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1488_7 +# 1535| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) +# 1535| Block 0 +# 1535| v1535_1(void) = EnterFunction : +# 1535| m1535_2(unknown) = AliasedDefinition : +# 1535| m1535_3(unknown) = InitializeNonLocal : +# 1535| m1535_4(unknown) = Chi : total:m1535_2, partial:m1535_3 +# 1535| r1535_5(glval<unknown>) = VariableAddress[#this] : +# 1535| m1535_6(glval<StructuredBindingDataMemberStruct>) = InitializeParameter[#this] : &:r1535_5 +# 1535| r1535_7(glval<StructuredBindingDataMemberStruct>) = Load[#this] : &:r1535_5, m1535_6 +# 1535| m1535_8(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1535_7 #-----| r0_1(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(StructuredBindingDataMemberStruct &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1488| r1488_9(glval<int>) = FieldAddress[i] : m1488_6 -# 1488| r1488_10(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_11(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_10, m0_2 -# 1488| r1488_12(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_11 -# 1488| r1488_13(glval<int>) = FieldAddress[i] : r1488_12 -# 1488| r1488_14(int) = Load[?] : &:r1488_13, ~m0_4 -# 1488| m1488_15(int) = Store[?] : &:r1488_9, r1488_14 -# 1488| m1488_16(unknown) = Chi : total:m1488_8, partial:m1488_15 -# 1488| r1488_17(glval<double>) = FieldAddress[d] : m1488_6 -# 1488| r1488_18(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_19(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_18, m0_2 -# 1488| r1488_20(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_19 -# 1488| r1488_21(glval<double>) = FieldAddress[d] : r1488_20 -# 1488| r1488_22(double) = Load[?] : &:r1488_21, ~m0_4 -# 1488| m1488_23(double) = Store[?] : &:r1488_17, r1488_22 -# 1488| m1488_24(unknown) = Chi : total:m1488_16, partial:m1488_23 -# 1488| r1488_25(glval<unsigned int>) = FieldAddress[b] : m1488_6 -# 1488| r1488_26(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_27(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_26, m0_2 -# 1488| r1488_28(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_27 -# 1488| r1488_29(glval<unsigned int>) = FieldAddress[b] : r1488_28 -# 1488| r1488_30(unsigned int) = Load[?] : &:r1488_29, ~m0_4 -# 1488| m1488_31(unsigned int) = Store[?] : &:r1488_25, r1488_30 -# 1488| m1488_32(unknown) = Chi : total:m1488_24, partial:m1488_31 -# 1488| r1488_33(glval<int &>) = FieldAddress[r] : m1488_6 -# 1488| r1488_34(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_35(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_34, m0_2 -# 1488| r1488_36(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_35 -# 1488| r1488_37(glval<int &>) = FieldAddress[r] : r1488_36 -# 1488| r1488_38(int &) = Load[?] : &:r1488_37, ~m0_4 -# 1488| m1488_39(int &) = Store[?] : &:r1488_33, r1488_38 -# 1488| m1488_40(unknown) = Chi : total:m1488_32, partial:m1488_39 -# 1488| r1488_41(glval<int *>) = FieldAddress[p] : m1488_6 -# 1488| r1488_42(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_43(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_42, m0_2 -# 1488| r1488_44(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_43 -# 1488| r1488_45(glval<int *>) = FieldAddress[p] : r1488_44 -# 1488| r1488_46(int *) = Load[?] : &:r1488_45, ~m0_4 -# 1488| m1488_47(int *) = Store[?] : &:r1488_41, r1488_46 -# 1488| m1488_48(unknown) = Chi : total:m1488_40, partial:m1488_47 -# 1488| r1488_49(glval<int[2]>) = FieldAddress[xs] : m1488_6 -# 1488| r1488_50(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_51(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_50, m0_2 -# 1488| r1488_52(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_51 -# 1488| r1488_53(glval<int[2]>) = FieldAddress[xs] : r1488_52 -# 1488| r1488_54(int[2]) = Load[?] : &:r1488_53, ~m0_4 -# 1488| m1488_55(int[2]) = Store[?] : &:r1488_49, r1488_54 -# 1488| m1488_56(unknown) = Chi : total:m1488_48, partial:m1488_55 -# 1488| r1488_57(glval<int &>) = FieldAddress[r_alt] : m1488_6 -# 1488| r1488_58(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_58, m0_2 -# 1488| r1488_60(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_59 -# 1488| r1488_61(glval<int &>) = FieldAddress[r_alt] : r1488_60 -# 1488| r1488_62(int &) = Load[?] : &:r1488_61, ~m0_4 -# 1488| m1488_63(int &) = Store[?] : &:r1488_57, r1488_62 -# 1488| m1488_64(unknown) = Chi : total:m1488_56, partial:m1488_63 -# 1488| r1488_65(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : m1488_6 -# 1488| r1488_66(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_67(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_66, m0_2 -# 1488| r1488_68(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_67 -# 1488| r1488_69(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : r1488_68 -# 1488| r1488_70(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1488_69, ~m0_4 -# 1488| m1488_71(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1488_65, r1488_70 -# 1488| m1488_72(unknown) = Chi : total:m1488_64, partial:m1488_71 -# 1488| v1488_73(void) = NoOp : -# 1488| v1488_74(void) = ReturnIndirection[#this] : &:r1488_7, m1488_72 +# 1535| r1535_9(glval<int>) = FieldAddress[i] : m1535_6 +# 1535| r1535_10(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_11(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_10, m0_2 +# 1535| r1535_12(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_11 +# 1535| r1535_13(glval<int>) = FieldAddress[i] : r1535_12 +# 1535| r1535_14(int) = Load[?] : &:r1535_13, ~m0_4 +# 1535| m1535_15(int) = Store[?] : &:r1535_9, r1535_14 +# 1535| m1535_16(unknown) = Chi : total:m1535_8, partial:m1535_15 +# 1535| r1535_17(glval<double>) = FieldAddress[d] : m1535_6 +# 1535| r1535_18(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_19(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_18, m0_2 +# 1535| r1535_20(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_19 +# 1535| r1535_21(glval<double>) = FieldAddress[d] : r1535_20 +# 1535| r1535_22(double) = Load[?] : &:r1535_21, ~m0_4 +# 1535| m1535_23(double) = Store[?] : &:r1535_17, r1535_22 +# 1535| m1535_24(unknown) = Chi : total:m1535_16, partial:m1535_23 +# 1535| r1535_25(glval<unsigned int>) = FieldAddress[b] : m1535_6 +# 1535| r1535_26(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_27(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_26, m0_2 +# 1535| r1535_28(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_27 +# 1535| r1535_29(glval<unsigned int>) = FieldAddress[b] : r1535_28 +# 1535| r1535_30(unsigned int) = Load[?] : &:r1535_29, ~m0_4 +# 1535| m1535_31(unsigned int) = Store[?] : &:r1535_25, r1535_30 +# 1535| m1535_32(unknown) = Chi : total:m1535_24, partial:m1535_31 +# 1535| r1535_33(glval<int &>) = FieldAddress[r] : m1535_6 +# 1535| r1535_34(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_35(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_34, m0_2 +# 1535| r1535_36(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_35 +# 1535| r1535_37(glval<int &>) = FieldAddress[r] : r1535_36 +# 1535| r1535_38(int &) = Load[?] : &:r1535_37, ~m0_4 +# 1535| m1535_39(int &) = Store[?] : &:r1535_33, r1535_38 +# 1535| m1535_40(unknown) = Chi : total:m1535_32, partial:m1535_39 +# 1535| r1535_41(glval<int *>) = FieldAddress[p] : m1535_6 +# 1535| r1535_42(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_43(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_42, m0_2 +# 1535| r1535_44(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_43 +# 1535| r1535_45(glval<int *>) = FieldAddress[p] : r1535_44 +# 1535| r1535_46(int *) = Load[?] : &:r1535_45, ~m0_4 +# 1535| m1535_47(int *) = Store[?] : &:r1535_41, r1535_46 +# 1535| m1535_48(unknown) = Chi : total:m1535_40, partial:m1535_47 +# 1535| r1535_49(glval<int[2]>) = FieldAddress[xs] : m1535_6 +# 1535| r1535_50(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_51(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_50, m0_2 +# 1535| r1535_52(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_51 +# 1535| r1535_53(glval<int[2]>) = FieldAddress[xs] : r1535_52 +# 1535| r1535_54(int[2]) = Load[?] : &:r1535_53, ~m0_4 +# 1535| m1535_55(int[2]) = Store[?] : &:r1535_49, r1535_54 +# 1535| m1535_56(unknown) = Chi : total:m1535_48, partial:m1535_55 +# 1535| r1535_57(glval<int &>) = FieldAddress[r_alt] : m1535_6 +# 1535| r1535_58(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_58, m0_2 +# 1535| r1535_60(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_59 +# 1535| r1535_61(glval<int &>) = FieldAddress[r_alt] : r1535_60 +# 1535| r1535_62(int &) = Load[?] : &:r1535_61, ~m0_4 +# 1535| m1535_63(int &) = Store[?] : &:r1535_57, r1535_62 +# 1535| m1535_64(unknown) = Chi : total:m1535_56, partial:m1535_63 +# 1535| r1535_65(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : m1535_6 +# 1535| r1535_66(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_67(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_66, m0_2 +# 1535| r1535_68(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_67 +# 1535| r1535_69(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : r1535_68 +# 1535| r1535_70(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1535_69, ~m0_4 +# 1535| m1535_71(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1535_65, r1535_70 +# 1535| m1535_72(unknown) = Chi : total:m1535_64, partial:m1535_71 +# 1535| v1535_73(void) = NoOp : +# 1535| v1535_74(void) = ReturnIndirection[#this] : &:r1535_7, m1535_72 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1488| v1488_75(void) = ReturnVoid : -# 1488| v1488_76(void) = AliasedUse : m1488_3 -# 1488| v1488_77(void) = ExitFunction : +# 1535| v1535_75(void) = ReturnVoid : +# 1535| v1535_76(void) = AliasedUse : m1535_3 +# 1535| v1535_77(void) = ExitFunction : -# 1501| void data_member_structured_binding() -# 1501| Block 0 -# 1501| v1501_1(void) = EnterFunction : -# 1501| m1501_2(unknown) = AliasedDefinition : -# 1501| m1501_3(unknown) = InitializeNonLocal : -# 1501| m1501_4(unknown) = Chi : total:m1501_2, partial:m1501_3 -# 1502| r1502_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : -# 1502| m1502_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1502_1 -# 1502| r1502_3(glval<unknown>) = FunctionAddress[StructuredBindingDataMemberStruct] : -# 1502| v1502_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1502_3, this:r1502_1 -# 1502| m1502_5(unknown) = ^CallSideEffect : ~m1501_4 -# 1502| m1502_6(unknown) = Chi : total:m1501_4, partial:m1502_5 -# 1502| m1502_7(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1502_1 -# 1502| m1502_8(StructuredBindingDataMemberStruct) = Chi : total:m1502_2, partial:m1502_7 -# 1505| r1505_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : -# 1505| r1505_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1505_2, m1502_8 -# 1505| m1505_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1505_1, r1505_3 -# 1505| r1505_5(glval<int &>) = VariableAddress[i] : -# 1505| r1505_6(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_7(glval<int>) = FieldAddress[i] : r1505_6 -# 1505| m1505_8(int &) = Store[i] : &:r1505_5, r1505_7 -# 1505| r1505_9(glval<double &>) = VariableAddress[d] : -# 1505| r1505_10(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_11(glval<double>) = FieldAddress[d] : r1505_10 -# 1505| m1505_12(double &) = Store[d] : &:r1505_9, r1505_11 -# 1505| r1505_13(glval<unsigned int &>) = VariableAddress[b] : -# 1505| r1505_14(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_15(glval<unsigned int>) = FieldAddress[b] : r1505_14 -# 1505| m1505_16(unsigned int &) = Store[b] : &:r1505_13, r1505_15 -# 1505| r1505_17(glval<int &>) = VariableAddress[r] : -# 1505| r1505_18(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_19(glval<int &>) = FieldAddress[r] : r1505_18 -# 1505| r1505_20(int &) = Load[?] : &:r1505_19, ~m1505_4 -# 1505| r1505_21(glval<int>) = CopyValue : r1505_20 -# 1505| m1505_22(int &) = Store[r] : &:r1505_17, r1505_21 -# 1505| r1505_23(glval<int *&>) = VariableAddress[p] : -# 1505| r1505_24(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_25(glval<int *>) = FieldAddress[p] : r1505_24 -# 1505| m1505_26(int *&) = Store[p] : &:r1505_23, r1505_25 -# 1505| r1505_27(glval<int(&)[2]>) = VariableAddress[xs] : -# 1505| r1505_28(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_29(glval<int[2]>) = FieldAddress[xs] : r1505_28 -# 1505| m1505_30(int(&)[2]) = Store[xs] : &:r1505_27, r1505_29 -# 1505| r1505_31(glval<int &>) = VariableAddress[r_alt] : -# 1505| r1505_32(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_33(glval<int &>) = FieldAddress[r_alt] : r1505_32 -# 1505| r1505_34(int &) = Load[?] : &:r1505_33, ~m1505_4 -# 1505| r1505_35(glval<int>) = CopyValue : r1505_34 -# 1505| m1505_36(int &) = Store[r_alt] : &:r1505_31, r1505_35 -# 1505| r1505_37(glval<StructuredBindingDataMemberMemberStruct &>) = VariableAddress[m] : -# 1505| r1505_38(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_39(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : r1505_38 -# 1505| m1505_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1505_37, r1505_39 -# 1506| r1506_1(double) = Constant[4.0] : -# 1506| r1506_2(glval<double &>) = VariableAddress[d] : -# 1506| r1506_3(double &) = Load[d] : &:r1506_2, m1505_12 -# 1506| m1506_4(double) = Store[?] : &:r1506_3, r1506_1 -# 1506| m1506_5(StructuredBindingDataMemberStruct) = Chi : total:m1505_4, partial:m1506_4 -# 1507| r1507_1(glval<double &>) = VariableAddress[rd] : -# 1507| r1507_2(glval<double &>) = VariableAddress[d] : -# 1507| r1507_3(double &) = Load[d] : &:r1507_2, m1505_12 -# 1507| r1507_4(double &) = CopyValue : r1507_3 -# 1507| m1507_5(double &) = Store[rd] : &:r1507_1, r1507_4 -# 1508| r1508_1(glval<int>) = VariableAddress[v] : -# 1508| r1508_2(glval<int &>) = VariableAddress[i] : -# 1508| r1508_3(int &) = Load[i] : &:r1508_2, m1505_8 -# 1508| r1508_4(int) = Load[?] : &:r1508_3, ~m1505_4 -# 1508| m1508_5(int) = Store[v] : &:r1508_1, r1508_4 -# 1509| r1509_1(int) = Constant[5] : -# 1509| r1509_2(glval<int &>) = VariableAddress[r] : -# 1509| r1509_3(int &) = Load[r] : &:r1509_2, m1505_22 -# 1509| m1509_4(int) = Store[?] : &:r1509_3, r1509_1 -# 1509| m1509_5(unknown) = Chi : total:m1502_6, partial:m1509_4 -# 1510| r1510_1(int) = Constant[6] : -# 1510| r1510_2(glval<int *&>) = VariableAddress[p] : -# 1510| r1510_3(int *&) = Load[p] : &:r1510_2, m1505_26 -# 1510| r1510_4(int *) = Load[?] : &:r1510_3, ~m1505_4 -# 1510| r1510_5(glval<int>) = CopyValue : r1510_4 -# 1510| m1510_6(int) = Store[?] : &:r1510_5, r1510_1 -# 1510| m1510_7(unknown) = Chi : total:m1509_5, partial:m1510_6 -# 1511| r1511_1(glval<int &>) = VariableAddress[rr] : -# 1511| r1511_2(glval<int &>) = VariableAddress[r] : -# 1511| r1511_3(int &) = Load[r] : &:r1511_2, m1505_22 -# 1511| r1511_4(int &) = CopyValue : r1511_3 -# 1511| m1511_5(int &) = Store[rr] : &:r1511_1, r1511_4 -# 1512| r1512_1(glval<int *>) = VariableAddress[pr] : -# 1512| r1512_2(glval<int &>) = VariableAddress[r] : -# 1512| r1512_3(int &) = Load[r] : &:r1512_2, m1505_22 -# 1512| r1512_4(int *) = CopyValue : r1512_3 -# 1512| m1512_5(int *) = Store[pr] : &:r1512_1, r1512_4 -# 1513| r1513_1(glval<int>) = VariableAddress[w] : -# 1513| r1513_2(glval<int &>) = VariableAddress[r] : -# 1513| r1513_3(int &) = Load[r] : &:r1513_2, m1505_22 -# 1513| r1513_4(int) = Load[?] : &:r1513_3, ~m1510_7 -# 1513| m1513_5(int) = Store[w] : &:r1513_1, r1513_4 -# 1517| r1517_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1517| r1517_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : -# 1517| r1517_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1517_2, m1502_8 -# 1517| m1517_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1517_1, r1517_3 -# 1518| r1518_1(glval<int &>) = VariableAddress[i] : -# 1518| r1518_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1518| r1518_3(glval<int>) = FieldAddress[i] : r1518_2 -# 1518| r1518_4(int &) = CopyValue : r1518_3 -# 1518| m1518_5(int &) = Store[i] : &:r1518_1, r1518_4 -# 1519| r1519_1(glval<double &>) = VariableAddress[d] : -# 1519| r1519_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1519| r1519_3(glval<double>) = FieldAddress[d] : r1519_2 -# 1519| r1519_4(double &) = CopyValue : r1519_3 -# 1519| m1519_5(double &) = Store[d] : &:r1519_1, r1519_4 -# 1521| r1521_1(glval<int &>) = VariableAddress[r] : -# 1521| r1521_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1521| r1521_3(glval<int &>) = FieldAddress[r] : r1521_2 -# 1521| r1521_4(int &) = Load[?] : &:r1521_3, ~m1517_4 -# 1521| r1521_5(glval<int>) = CopyValue : r1521_4 -# 1521| r1521_6(int &) = CopyValue : r1521_5 -# 1521| m1521_7(int &) = Store[r] : &:r1521_1, r1521_6 -# 1522| r1522_1(glval<int *&>) = VariableAddress[p] : -# 1522| r1522_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1522| r1522_3(glval<int *>) = FieldAddress[p] : r1522_2 -# 1522| r1522_4(int *&) = CopyValue : r1522_3 -# 1522| m1522_5(int *&) = Store[p] : &:r1522_1, r1522_4 -# 1523| r1523_1(double) = Constant[4.0] : -# 1523| r1523_2(glval<double &>) = VariableAddress[d] : -# 1523| r1523_3(double &) = Load[d] : &:r1523_2, m1519_5 -# 1523| r1523_4(glval<double>) = CopyValue : r1523_3 -# 1523| m1523_5(double) = Store[?] : &:r1523_4, r1523_1 -# 1523| m1523_6(StructuredBindingDataMemberStruct) = Chi : total:m1517_4, partial:m1523_5 -# 1524| r1524_1(glval<double &>) = VariableAddress[rd] : -# 1524| r1524_2(glval<double &>) = VariableAddress[d] : -# 1524| r1524_3(double &) = Load[d] : &:r1524_2, m1519_5 -# 1524| r1524_4(glval<double>) = CopyValue : r1524_3 -# 1524| r1524_5(double &) = CopyValue : r1524_4 -# 1524| m1524_6(double &) = Store[rd] : &:r1524_1, r1524_5 -# 1525| r1525_1(glval<int>) = VariableAddress[v] : -# 1525| r1525_2(glval<int &>) = VariableAddress[i] : -# 1525| r1525_3(int &) = Load[i] : &:r1525_2, m1518_5 -# 1525| r1525_4(int) = Load[?] : &:r1525_3, ~m1517_4 -# 1525| m1525_5(int) = Store[v] : &:r1525_1, r1525_4 -# 1526| r1526_1(int) = Constant[5] : -# 1526| r1526_2(glval<int &>) = VariableAddress[r] : -# 1526| r1526_3(int &) = Load[r] : &:r1526_2, m1521_7 -# 1526| r1526_4(glval<int>) = CopyValue : r1526_3 -# 1526| m1526_5(int) = Store[?] : &:r1526_4, r1526_1 -# 1526| m1526_6(unknown) = Chi : total:m1510_7, partial:m1526_5 -# 1527| r1527_1(int) = Constant[6] : -# 1527| r1527_2(glval<int *&>) = VariableAddress[p] : -# 1527| r1527_3(int *&) = Load[p] : &:r1527_2, m1522_5 -# 1527| r1527_4(int *) = Load[?] : &:r1527_3, ~m1517_4 -# 1527| r1527_5(glval<int>) = CopyValue : r1527_4 -# 1527| m1527_6(int) = Store[?] : &:r1527_5, r1527_1 -# 1527| m1527_7(unknown) = Chi : total:m1526_6, partial:m1527_6 -# 1528| r1528_1(glval<int &>) = VariableAddress[rr] : -# 1528| r1528_2(glval<int &>) = VariableAddress[r] : -# 1528| r1528_3(int &) = Load[r] : &:r1528_2, m1521_7 -# 1528| r1528_4(glval<int>) = CopyValue : r1528_3 -# 1528| r1528_5(int &) = CopyValue : r1528_4 -# 1528| m1528_6(int &) = Store[rr] : &:r1528_1, r1528_5 -# 1529| r1529_1(glval<int *>) = VariableAddress[pr] : -# 1529| r1529_2(glval<int &>) = VariableAddress[r] : -# 1529| r1529_3(int &) = Load[r] : &:r1529_2, m1521_7 -# 1529| r1529_4(glval<int>) = CopyValue : r1529_3 -# 1529| r1529_5(int *) = CopyValue : r1529_4 -# 1529| m1529_6(int *) = Store[pr] : &:r1529_1, r1529_5 -# 1530| r1530_1(glval<int>) = VariableAddress[w] : -# 1530| r1530_2(glval<int &>) = VariableAddress[r] : -# 1530| r1530_3(int &) = Load[r] : &:r1530_2, m1521_7 -# 1530| r1530_4(int) = Load[?] : &:r1530_3, ~m1527_7 -# 1530| m1530_5(int) = Store[w] : &:r1530_1, r1530_4 -# 1532| v1532_1(void) = NoOp : -# 1501| v1501_5(void) = ReturnVoid : -# 1501| v1501_6(void) = AliasedUse : ~m1527_7 -# 1501| v1501_7(void) = ExitFunction : +# 1548| void data_member_structured_binding() +# 1548| Block 0 +# 1548| v1548_1(void) = EnterFunction : +# 1548| m1548_2(unknown) = AliasedDefinition : +# 1548| m1548_3(unknown) = InitializeNonLocal : +# 1548| m1548_4(unknown) = Chi : total:m1548_2, partial:m1548_3 +# 1549| r1549_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : +# 1549| m1549_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1549_1 +# 1549| r1549_3(glval<unknown>) = FunctionAddress[StructuredBindingDataMemberStruct] : +# 1549| v1549_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1549_3, this:r1549_1 +# 1549| m1549_5(unknown) = ^CallSideEffect : ~m1548_4 +# 1549| m1549_6(unknown) = Chi : total:m1548_4, partial:m1549_5 +# 1549| m1549_7(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1549_1 +# 1549| m1549_8(StructuredBindingDataMemberStruct) = Chi : total:m1549_2, partial:m1549_7 +# 1552| r1552_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : +# 1552| r1552_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1552_2, m1549_8 +# 1552| m1552_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1552_1, r1552_3 +# 1552| r1552_5(glval<int &>) = VariableAddress[i] : +# 1552| r1552_6(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_7(glval<int>) = FieldAddress[i] : r1552_6 +# 1552| m1552_8(int &) = Store[i] : &:r1552_5, r1552_7 +# 1552| r1552_9(glval<double &>) = VariableAddress[d] : +# 1552| r1552_10(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_11(glval<double>) = FieldAddress[d] : r1552_10 +# 1552| m1552_12(double &) = Store[d] : &:r1552_9, r1552_11 +# 1552| r1552_13(glval<unsigned int &>) = VariableAddress[b] : +# 1552| r1552_14(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_15(glval<unsigned int>) = FieldAddress[b] : r1552_14 +# 1552| m1552_16(unsigned int &) = Store[b] : &:r1552_13, r1552_15 +# 1552| r1552_17(glval<int &>) = VariableAddress[r] : +# 1552| r1552_18(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_19(glval<int &>) = FieldAddress[r] : r1552_18 +# 1552| r1552_20(int &) = Load[?] : &:r1552_19, ~m1552_4 +# 1552| r1552_21(glval<int>) = CopyValue : r1552_20 +# 1552| m1552_22(int &) = Store[r] : &:r1552_17, r1552_21 +# 1552| r1552_23(glval<int *&>) = VariableAddress[p] : +# 1552| r1552_24(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_25(glval<int *>) = FieldAddress[p] : r1552_24 +# 1552| m1552_26(int *&) = Store[p] : &:r1552_23, r1552_25 +# 1552| r1552_27(glval<int(&)[2]>) = VariableAddress[xs] : +# 1552| r1552_28(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_29(glval<int[2]>) = FieldAddress[xs] : r1552_28 +# 1552| m1552_30(int(&)[2]) = Store[xs] : &:r1552_27, r1552_29 +# 1552| r1552_31(glval<int &>) = VariableAddress[r_alt] : +# 1552| r1552_32(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_33(glval<int &>) = FieldAddress[r_alt] : r1552_32 +# 1552| r1552_34(int &) = Load[?] : &:r1552_33, ~m1552_4 +# 1552| r1552_35(glval<int>) = CopyValue : r1552_34 +# 1552| m1552_36(int &) = Store[r_alt] : &:r1552_31, r1552_35 +# 1552| r1552_37(glval<StructuredBindingDataMemberMemberStruct &>) = VariableAddress[m] : +# 1552| r1552_38(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_39(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : r1552_38 +# 1552| m1552_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1552_37, r1552_39 +# 1553| r1553_1(double) = Constant[4.0] : +# 1553| r1553_2(glval<double &>) = VariableAddress[d] : +# 1553| r1553_3(double &) = Load[d] : &:r1553_2, m1552_12 +# 1553| m1553_4(double) = Store[?] : &:r1553_3, r1553_1 +# 1553| m1553_5(StructuredBindingDataMemberStruct) = Chi : total:m1552_4, partial:m1553_4 +# 1554| r1554_1(glval<double &>) = VariableAddress[rd] : +# 1554| r1554_2(glval<double &>) = VariableAddress[d] : +# 1554| r1554_3(double &) = Load[d] : &:r1554_2, m1552_12 +# 1554| r1554_4(double &) = CopyValue : r1554_3 +# 1554| m1554_5(double &) = Store[rd] : &:r1554_1, r1554_4 +# 1555| r1555_1(glval<int>) = VariableAddress[v] : +# 1555| r1555_2(glval<int &>) = VariableAddress[i] : +# 1555| r1555_3(int &) = Load[i] : &:r1555_2, m1552_8 +# 1555| r1555_4(int) = Load[?] : &:r1555_3, ~m1552_4 +# 1555| m1555_5(int) = Store[v] : &:r1555_1, r1555_4 +# 1556| r1556_1(int) = Constant[5] : +# 1556| r1556_2(glval<int &>) = VariableAddress[r] : +# 1556| r1556_3(int &) = Load[r] : &:r1556_2, m1552_22 +# 1556| m1556_4(int) = Store[?] : &:r1556_3, r1556_1 +# 1556| m1556_5(unknown) = Chi : total:m1549_6, partial:m1556_4 +# 1557| r1557_1(int) = Constant[6] : +# 1557| r1557_2(glval<int *&>) = VariableAddress[p] : +# 1557| r1557_3(int *&) = Load[p] : &:r1557_2, m1552_26 +# 1557| r1557_4(int *) = Load[?] : &:r1557_3, ~m1552_4 +# 1557| r1557_5(glval<int>) = CopyValue : r1557_4 +# 1557| m1557_6(int) = Store[?] : &:r1557_5, r1557_1 +# 1557| m1557_7(unknown) = Chi : total:m1556_5, partial:m1557_6 +# 1558| r1558_1(glval<int &>) = VariableAddress[rr] : +# 1558| r1558_2(glval<int &>) = VariableAddress[r] : +# 1558| r1558_3(int &) = Load[r] : &:r1558_2, m1552_22 +# 1558| r1558_4(int &) = CopyValue : r1558_3 +# 1558| m1558_5(int &) = Store[rr] : &:r1558_1, r1558_4 +# 1559| r1559_1(glval<int *>) = VariableAddress[pr] : +# 1559| r1559_2(glval<int &>) = VariableAddress[r] : +# 1559| r1559_3(int &) = Load[r] : &:r1559_2, m1552_22 +# 1559| r1559_4(int *) = CopyValue : r1559_3 +# 1559| m1559_5(int *) = Store[pr] : &:r1559_1, r1559_4 +# 1560| r1560_1(glval<int>) = VariableAddress[w] : +# 1560| r1560_2(glval<int &>) = VariableAddress[r] : +# 1560| r1560_3(int &) = Load[r] : &:r1560_2, m1552_22 +# 1560| r1560_4(int) = Load[?] : &:r1560_3, ~m1557_7 +# 1560| m1560_5(int) = Store[w] : &:r1560_1, r1560_4 +# 1564| r1564_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1564| r1564_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : +# 1564| r1564_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1564_2, m1549_8 +# 1564| m1564_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1564_1, r1564_3 +# 1565| r1565_1(glval<int &>) = VariableAddress[i] : +# 1565| r1565_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1565| r1565_3(glval<int>) = FieldAddress[i] : r1565_2 +# 1565| r1565_4(int &) = CopyValue : r1565_3 +# 1565| m1565_5(int &) = Store[i] : &:r1565_1, r1565_4 +# 1566| r1566_1(glval<double &>) = VariableAddress[d] : +# 1566| r1566_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1566| r1566_3(glval<double>) = FieldAddress[d] : r1566_2 +# 1566| r1566_4(double &) = CopyValue : r1566_3 +# 1566| m1566_5(double &) = Store[d] : &:r1566_1, r1566_4 +# 1568| r1568_1(glval<int &>) = VariableAddress[r] : +# 1568| r1568_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1568| r1568_3(glval<int &>) = FieldAddress[r] : r1568_2 +# 1568| r1568_4(int &) = Load[?] : &:r1568_3, ~m1564_4 +# 1568| r1568_5(glval<int>) = CopyValue : r1568_4 +# 1568| r1568_6(int &) = CopyValue : r1568_5 +# 1568| m1568_7(int &) = Store[r] : &:r1568_1, r1568_6 +# 1569| r1569_1(glval<int *&>) = VariableAddress[p] : +# 1569| r1569_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1569| r1569_3(glval<int *>) = FieldAddress[p] : r1569_2 +# 1569| r1569_4(int *&) = CopyValue : r1569_3 +# 1569| m1569_5(int *&) = Store[p] : &:r1569_1, r1569_4 +# 1570| r1570_1(double) = Constant[4.0] : +# 1570| r1570_2(glval<double &>) = VariableAddress[d] : +# 1570| r1570_3(double &) = Load[d] : &:r1570_2, m1566_5 +# 1570| r1570_4(glval<double>) = CopyValue : r1570_3 +# 1570| m1570_5(double) = Store[?] : &:r1570_4, r1570_1 +# 1570| m1570_6(StructuredBindingDataMemberStruct) = Chi : total:m1564_4, partial:m1570_5 +# 1571| r1571_1(glval<double &>) = VariableAddress[rd] : +# 1571| r1571_2(glval<double &>) = VariableAddress[d] : +# 1571| r1571_3(double &) = Load[d] : &:r1571_2, m1566_5 +# 1571| r1571_4(glval<double>) = CopyValue : r1571_3 +# 1571| r1571_5(double &) = CopyValue : r1571_4 +# 1571| m1571_6(double &) = Store[rd] : &:r1571_1, r1571_5 +# 1572| r1572_1(glval<int>) = VariableAddress[v] : +# 1572| r1572_2(glval<int &>) = VariableAddress[i] : +# 1572| r1572_3(int &) = Load[i] : &:r1572_2, m1565_5 +# 1572| r1572_4(int) = Load[?] : &:r1572_3, ~m1564_4 +# 1572| m1572_5(int) = Store[v] : &:r1572_1, r1572_4 +# 1573| r1573_1(int) = Constant[5] : +# 1573| r1573_2(glval<int &>) = VariableAddress[r] : +# 1573| r1573_3(int &) = Load[r] : &:r1573_2, m1568_7 +# 1573| r1573_4(glval<int>) = CopyValue : r1573_3 +# 1573| m1573_5(int) = Store[?] : &:r1573_4, r1573_1 +# 1573| m1573_6(unknown) = Chi : total:m1557_7, partial:m1573_5 +# 1574| r1574_1(int) = Constant[6] : +# 1574| r1574_2(glval<int *&>) = VariableAddress[p] : +# 1574| r1574_3(int *&) = Load[p] : &:r1574_2, m1569_5 +# 1574| r1574_4(int *) = Load[?] : &:r1574_3, ~m1564_4 +# 1574| r1574_5(glval<int>) = CopyValue : r1574_4 +# 1574| m1574_6(int) = Store[?] : &:r1574_5, r1574_1 +# 1574| m1574_7(unknown) = Chi : total:m1573_6, partial:m1574_6 +# 1575| r1575_1(glval<int &>) = VariableAddress[rr] : +# 1575| r1575_2(glval<int &>) = VariableAddress[r] : +# 1575| r1575_3(int &) = Load[r] : &:r1575_2, m1568_7 +# 1575| r1575_4(glval<int>) = CopyValue : r1575_3 +# 1575| r1575_5(int &) = CopyValue : r1575_4 +# 1575| m1575_6(int &) = Store[rr] : &:r1575_1, r1575_5 +# 1576| r1576_1(glval<int *>) = VariableAddress[pr] : +# 1576| r1576_2(glval<int &>) = VariableAddress[r] : +# 1576| r1576_3(int &) = Load[r] : &:r1576_2, m1568_7 +# 1576| r1576_4(glval<int>) = CopyValue : r1576_3 +# 1576| r1576_5(int *) = CopyValue : r1576_4 +# 1576| m1576_6(int *) = Store[pr] : &:r1576_1, r1576_5 +# 1577| r1577_1(glval<int>) = VariableAddress[w] : +# 1577| r1577_2(glval<int &>) = VariableAddress[r] : +# 1577| r1577_3(int &) = Load[r] : &:r1577_2, m1568_7 +# 1577| r1577_4(int) = Load[?] : &:r1577_3, ~m1574_7 +# 1577| m1577_5(int) = Store[w] : &:r1577_1, r1577_4 +# 1579| v1579_1(void) = NoOp : +# 1548| v1548_5(void) = ReturnVoid : +# 1548| v1548_6(void) = AliasedUse : ~m1574_7 +# 1548| v1548_7(void) = ExitFunction : -# 1541| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() -# 1541| Block 0 -# 1541| v1541_1(void) = EnterFunction : -# 1541| m1541_2(unknown) = AliasedDefinition : -# 1541| m1541_3(unknown) = InitializeNonLocal : -# 1541| m1541_4(unknown) = Chi : total:m1541_2, partial:m1541_3 -# 1541| r1541_5(glval<unknown>) = VariableAddress[#this] : -# 1541| m1541_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1541_5 -# 1541| r1541_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1541_5, m1541_6 -# 1541| m1541_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1541_7 -# 1541| v1541_9(void) = NoOp : -# 1541| v1541_10(void) = ReturnIndirection[#this] : &:r1541_7, m1541_8 -# 1541| v1541_11(void) = ReturnVoid : -# 1541| v1541_12(void) = AliasedUse : m1541_3 -# 1541| v1541_13(void) = ExitFunction : +# 1588| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() +# 1588| Block 0 +# 1588| v1588_1(void) = EnterFunction : +# 1588| m1588_2(unknown) = AliasedDefinition : +# 1588| m1588_3(unknown) = InitializeNonLocal : +# 1588| m1588_4(unknown) = Chi : total:m1588_2, partial:m1588_3 +# 1588| r1588_5(glval<unknown>) = VariableAddress[#this] : +# 1588| m1588_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1588_5 +# 1588| r1588_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1588_5, m1588_6 +# 1588| m1588_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1588_7 +# 1588| v1588_9(void) = NoOp : +# 1588| v1588_10(void) = ReturnIndirection[#this] : &:r1588_7, m1588_8 +# 1588| v1588_11(void) = ReturnVoid : +# 1588| v1588_12(void) = AliasedUse : m1588_3 +# 1588| v1588_13(void) = ExitFunction : -# 1541| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) -# 1541| Block 0 -# 1541| v1541_1(void) = EnterFunction : -# 1541| m1541_2(unknown) = AliasedDefinition : -# 1541| m1541_3(unknown) = InitializeNonLocal : -# 1541| m1541_4(unknown) = Chi : total:m1541_2, partial:m1541_3 -# 1541| r1541_5(glval<unknown>) = VariableAddress[#this] : -# 1541| m1541_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1541_5 -# 1541| r1541_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1541_5, m1541_6 -# 1541| m1541_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1541_7 +# 1588| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) +# 1588| Block 0 +# 1588| v1588_1(void) = EnterFunction : +# 1588| m1588_2(unknown) = AliasedDefinition : +# 1588| m1588_3(unknown) = InitializeNonLocal : +# 1588| m1588_4(unknown) = Chi : total:m1588_2, partial:m1588_3 +# 1588| r1588_5(glval<unknown>) = VariableAddress[#this] : +# 1588| m1588_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1588_5 +# 1588| r1588_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1588_5, m1588_6 +# 1588| m1588_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1588_7 #-----| r0_1(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(StructuredBindingTupleRefGet &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1541| r1541_9(glval<int>) = FieldAddress[i] : m1541_6 -# 1541| r1541_10(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : -# 1541| r1541_11(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1541_10, m0_2 -# 1541| r1541_12(glval<StructuredBindingTupleRefGet>) = CopyValue : r1541_11 -# 1541| r1541_13(glval<int>) = FieldAddress[i] : r1541_12 -# 1541| r1541_14(int) = Load[?] : &:r1541_13, ~m0_4 -# 1541| m1541_15(int) = Store[?] : &:r1541_9, r1541_14 -# 1541| m1541_16(unknown) = Chi : total:m1541_8, partial:m1541_15 -# 1541| r1541_17(glval<double>) = FieldAddress[d] : m1541_6 -# 1541| r1541_18(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : -# 1541| r1541_19(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1541_18, m0_2 -# 1541| r1541_20(glval<StructuredBindingTupleRefGet>) = CopyValue : r1541_19 -# 1541| r1541_21(glval<double>) = FieldAddress[d] : r1541_20 -# 1541| r1541_22(double) = Load[?] : &:r1541_21, ~m0_4 -# 1541| m1541_23(double) = Store[?] : &:r1541_17, r1541_22 -# 1541| m1541_24(unknown) = Chi : total:m1541_16, partial:m1541_23 -# 1541| r1541_25(glval<int &>) = FieldAddress[r] : m1541_6 -# 1541| r1541_26(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : -# 1541| r1541_27(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1541_26, m0_2 -# 1541| r1541_28(glval<StructuredBindingTupleRefGet>) = CopyValue : r1541_27 -# 1541| r1541_29(glval<int &>) = FieldAddress[r] : r1541_28 -# 1541| r1541_30(int &) = Load[?] : &:r1541_29, ~m0_4 -# 1541| m1541_31(int &) = Store[?] : &:r1541_25, r1541_30 -# 1541| m1541_32(unknown) = Chi : total:m1541_24, partial:m1541_31 -# 1541| v1541_33(void) = NoOp : -# 1541| v1541_34(void) = ReturnIndirection[#this] : &:r1541_7, m1541_32 +# 1588| r1588_9(glval<int>) = FieldAddress[i] : m1588_6 +# 1588| r1588_10(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : +# 1588| r1588_11(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_10, m0_2 +# 1588| r1588_12(glval<StructuredBindingTupleRefGet>) = CopyValue : r1588_11 +# 1588| r1588_13(glval<int>) = FieldAddress[i] : r1588_12 +# 1588| r1588_14(int) = Load[?] : &:r1588_13, ~m0_4 +# 1588| m1588_15(int) = Store[?] : &:r1588_9, r1588_14 +# 1588| m1588_16(unknown) = Chi : total:m1588_8, partial:m1588_15 +# 1588| r1588_17(glval<double>) = FieldAddress[d] : m1588_6 +# 1588| r1588_18(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : +# 1588| r1588_19(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_18, m0_2 +# 1588| r1588_20(glval<StructuredBindingTupleRefGet>) = CopyValue : r1588_19 +# 1588| r1588_21(glval<double>) = FieldAddress[d] : r1588_20 +# 1588| r1588_22(double) = Load[?] : &:r1588_21, ~m0_4 +# 1588| m1588_23(double) = Store[?] : &:r1588_17, r1588_22 +# 1588| m1588_24(unknown) = Chi : total:m1588_16, partial:m1588_23 +# 1588| r1588_25(glval<int &>) = FieldAddress[r] : m1588_6 +# 1588| r1588_26(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : +# 1588| r1588_27(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_26, m0_2 +# 1588| r1588_28(glval<StructuredBindingTupleRefGet>) = CopyValue : r1588_27 +# 1588| r1588_29(glval<int &>) = FieldAddress[r] : r1588_28 +# 1588| r1588_30(int &) = Load[?] : &:r1588_29, ~m0_4 +# 1588| m1588_31(int &) = Store[?] : &:r1588_25, r1588_30 +# 1588| m1588_32(unknown) = Chi : total:m1588_24, partial:m1588_31 +# 1588| v1588_33(void) = NoOp : +# 1588| v1588_34(void) = ReturnIndirection[#this] : &:r1588_7, m1588_32 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1541| v1541_35(void) = ReturnVoid : -# 1541| v1541_36(void) = AliasedUse : m1541_3 -# 1541| v1541_37(void) = ExitFunction : +# 1588| v1588_35(void) = ReturnVoid : +# 1588| v1588_36(void) = AliasedUse : m1588_3 +# 1588| v1588_37(void) = ExitFunction : -# 1569| std::tuple_element<int 0, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 0>() -# 1569| Block 0 -# 1569| v1569_1(void) = EnterFunction : -# 1569| m1569_2(unknown) = AliasedDefinition : -# 1569| m1569_3(unknown) = InitializeNonLocal : -# 1569| m1569_4(unknown) = Chi : total:m1569_2, partial:m1569_3 -# 1569| r1569_5(glval<unknown>) = VariableAddress[#this] : -# 1569| m1569_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1569_5 -# 1569| r1569_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1569_5, m1569_6 -# 1569| m1569_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1569_7 -# 1570| r1570_1(glval<int &>) = VariableAddress[#return] : -# 1570| r1570_2(glval<unknown>) = VariableAddress[#this] : -# 1570| r1570_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1570_2, m1569_6 -# 1570| r1570_4(glval<int>) = FieldAddress[i] : r1570_3 -#-----| r0_1(int &) = CopyValue : r1570_4 -#-----| m0_2(int &) = Store[#return] : &:r1570_1, r0_1 -# 1569| v1569_9(void) = ReturnIndirection[#this] : &:r1569_7, m1569_8 -# 1569| r1569_10(glval<int &>) = VariableAddress[#return] : -# 1569| v1569_11(void) = ReturnValue : &:r1569_10, m0_2 -# 1569| v1569_12(void) = AliasedUse : m1569_3 -# 1569| v1569_13(void) = ExitFunction : +# 1616| std::tuple_element<int 0, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 0>() +# 1616| Block 0 +# 1616| v1616_1(void) = EnterFunction : +# 1616| m1616_2(unknown) = AliasedDefinition : +# 1616| m1616_3(unknown) = InitializeNonLocal : +# 1616| m1616_4(unknown) = Chi : total:m1616_2, partial:m1616_3 +# 1616| r1616_5(glval<unknown>) = VariableAddress[#this] : +# 1616| m1616_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1616_5 +# 1616| r1616_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1616_5, m1616_6 +# 1616| m1616_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1616_7 +# 1617| r1617_1(glval<int &>) = VariableAddress[#return] : +# 1617| r1617_2(glval<unknown>) = VariableAddress[#this] : +# 1617| r1617_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1617_2, m1616_6 +# 1617| r1617_4(glval<int>) = FieldAddress[i] : r1617_3 +#-----| r0_1(int &) = CopyValue : r1617_4 +#-----| m0_2(int &) = Store[#return] : &:r1617_1, r0_1 +# 1616| v1616_9(void) = ReturnIndirection[#this] : &:r1616_7, m1616_8 +# 1616| r1616_10(glval<int &>) = VariableAddress[#return] : +# 1616| v1616_11(void) = ReturnValue : &:r1616_10, m0_2 +# 1616| v1616_12(void) = AliasedUse : m1616_3 +# 1616| v1616_13(void) = ExitFunction : -# 1573| std::tuple_element<int 1, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 1>() -# 1573| Block 0 -# 1573| v1573_1(void) = EnterFunction : -# 1573| m1573_2(unknown) = AliasedDefinition : -# 1573| m1573_3(unknown) = InitializeNonLocal : -# 1573| m1573_4(unknown) = Chi : total:m1573_2, partial:m1573_3 -# 1573| r1573_5(glval<unknown>) = VariableAddress[#this] : -# 1573| m1573_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1573_5 -# 1573| r1573_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1573_5, m1573_6 -# 1573| m1573_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1573_7 -# 1574| r1574_1(glval<double &>) = VariableAddress[#return] : -# 1574| r1574_2(glval<unknown>) = VariableAddress[#this] : -# 1574| r1574_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1574_2, m1573_6 -# 1574| r1574_4(glval<double>) = FieldAddress[d] : r1574_3 -#-----| r0_1(double &) = CopyValue : r1574_4 -#-----| m0_2(double &) = Store[#return] : &:r1574_1, r0_1 -# 1573| v1573_9(void) = ReturnIndirection[#this] : &:r1573_7, m1573_8 -# 1573| r1573_10(glval<double &>) = VariableAddress[#return] : -# 1573| v1573_11(void) = ReturnValue : &:r1573_10, m0_2 -# 1573| v1573_12(void) = AliasedUse : m1573_3 -# 1573| v1573_13(void) = ExitFunction : +# 1620| std::tuple_element<int 1, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 1>() +# 1620| Block 0 +# 1620| v1620_1(void) = EnterFunction : +# 1620| m1620_2(unknown) = AliasedDefinition : +# 1620| m1620_3(unknown) = InitializeNonLocal : +# 1620| m1620_4(unknown) = Chi : total:m1620_2, partial:m1620_3 +# 1620| r1620_5(glval<unknown>) = VariableAddress[#this] : +# 1620| m1620_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1620_5 +# 1620| r1620_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1620_5, m1620_6 +# 1620| m1620_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1620_7 +# 1621| r1621_1(glval<double &>) = VariableAddress[#return] : +# 1621| r1621_2(glval<unknown>) = VariableAddress[#this] : +# 1621| r1621_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1621_2, m1620_6 +# 1621| r1621_4(glval<double>) = FieldAddress[d] : r1621_3 +#-----| r0_1(double &) = CopyValue : r1621_4 +#-----| m0_2(double &) = Store[#return] : &:r1621_1, r0_1 +# 1620| v1620_9(void) = ReturnIndirection[#this] : &:r1620_7, m1620_8 +# 1620| r1620_10(glval<double &>) = VariableAddress[#return] : +# 1620| v1620_11(void) = ReturnValue : &:r1620_10, m0_2 +# 1620| v1620_12(void) = AliasedUse : m1620_3 +# 1620| v1620_13(void) = ExitFunction : -# 1577| std::tuple_element<int 2, StructuredBindingTupleRefGet>::type StructuredBindingTupleRefGet::get<int 2>() -# 1577| Block 0 -# 1577| v1577_1(void) = EnterFunction : -# 1577| m1577_2(unknown) = AliasedDefinition : -# 1577| m1577_3(unknown) = InitializeNonLocal : -# 1577| m1577_4(unknown) = Chi : total:m1577_2, partial:m1577_3 -# 1577| r1577_5(glval<unknown>) = VariableAddress[#this] : -# 1577| m1577_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1577_5 -# 1577| r1577_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1577_5, m1577_6 -# 1577| m1577_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1577_7 -# 1578| r1578_1(glval<int &>) = VariableAddress[#return] : -# 1578| r1578_2(glval<unknown>) = VariableAddress[#this] : -# 1578| r1578_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1578_2, m1577_6 -# 1578| r1578_4(glval<int &>) = FieldAddress[r] : r1578_3 -# 1578| r1578_5(int &) = Load[?] : &:r1578_4, ~m1577_8 -# 1578| r1578_6(glval<int>) = CopyValue : r1578_5 -# 1578| r1578_7(int &) = CopyValue : r1578_6 -# 1578| m1578_8(int &) = Store[#return] : &:r1578_1, r1578_7 -# 1577| v1577_9(void) = ReturnIndirection[#this] : &:r1577_7, m1577_8 -# 1577| r1577_10(glval<int &>) = VariableAddress[#return] : -# 1577| v1577_11(void) = ReturnValue : &:r1577_10, m1578_8 -# 1577| v1577_12(void) = AliasedUse : m1577_3 -# 1577| v1577_13(void) = ExitFunction : +# 1624| std::tuple_element<int 2, StructuredBindingTupleRefGet>::type StructuredBindingTupleRefGet::get<int 2>() +# 1624| Block 0 +# 1624| v1624_1(void) = EnterFunction : +# 1624| m1624_2(unknown) = AliasedDefinition : +# 1624| m1624_3(unknown) = InitializeNonLocal : +# 1624| m1624_4(unknown) = Chi : total:m1624_2, partial:m1624_3 +# 1624| r1624_5(glval<unknown>) = VariableAddress[#this] : +# 1624| m1624_6(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1624_5 +# 1624| r1624_7(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1624_5, m1624_6 +# 1624| m1624_8(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1624_7 +# 1625| r1625_1(glval<int &>) = VariableAddress[#return] : +# 1625| r1625_2(glval<unknown>) = VariableAddress[#this] : +# 1625| r1625_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1625_2, m1624_6 +# 1625| r1625_4(glval<int &>) = FieldAddress[r] : r1625_3 +# 1625| r1625_5(int &) = Load[?] : &:r1625_4, ~m1624_8 +# 1625| r1625_6(glval<int>) = CopyValue : r1625_5 +# 1625| r1625_7(int &) = CopyValue : r1625_6 +# 1625| m1625_8(int &) = Store[#return] : &:r1625_1, r1625_7 +# 1624| v1624_9(void) = ReturnIndirection[#this] : &:r1624_7, m1624_8 +# 1624| r1624_10(glval<int &>) = VariableAddress[#return] : +# 1624| v1624_11(void) = ReturnValue : &:r1624_10, m1625_8 +# 1624| v1624_12(void) = AliasedUse : m1624_3 +# 1624| v1624_13(void) = ExitFunction : -# 1581| void tuple_structured_binding_ref_get() -# 1581| Block 0 -# 1581| v1581_1(void) = EnterFunction : -# 1581| m1581_2(unknown) = AliasedDefinition : -# 1581| m1581_3(unknown) = InitializeNonLocal : -# 1581| m1581_4(unknown) = Chi : total:m1581_2, partial:m1581_3 -# 1582| r1582_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : -# 1582| m1582_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1582_1 -# 1582| r1582_3(glval<unknown>) = FunctionAddress[StructuredBindingTupleRefGet] : -# 1582| v1582_4(void) = Call[StructuredBindingTupleRefGet] : func:r1582_3, this:r1582_1 -# 1582| m1582_5(unknown) = ^CallSideEffect : ~m1581_4 -# 1582| m1582_6(unknown) = Chi : total:m1581_4, partial:m1582_5 -# 1582| m1582_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1582_1 -# 1582| m1582_8(StructuredBindingTupleRefGet) = Chi : total:m1582_2, partial:m1582_7 -# 1585| r1585_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : -# 1585| r1585_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : -# 1585| r1585_3(StructuredBindingTupleRefGet) = Load[t] : &:r1585_2, m1582_8 -# 1585| m1585_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1585_1, r1585_3 -# 1585| r1585_5(glval<int &>) = VariableAddress[i] : -# 1585| r1585_6(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : -# 1585| r1585_7(glval<unknown>) = FunctionAddress[get] : -# 1585| r1585_8(int &) = Call[get] : func:r1585_7, this:r1585_6 -# 1585| m1585_9(unknown) = ^CallSideEffect : ~m1582_6 -# 1585| m1585_10(unknown) = Chi : total:m1582_6, partial:m1585_9 -# 1585| v1585_11(void) = ^IndirectReadSideEffect[-1] : &:r1585_6, m1585_4 -# 1585| m1585_12(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1585_6 -# 1585| m1585_13(StructuredBindingTupleRefGet) = Chi : total:m1585_4, partial:m1585_12 -# 1585| r1585_14(glval<int>) = CopyValue : r1585_8 -# 1585| r1585_15(int &) = CopyValue : r1585_14 -# 1585| m1585_16(int &) = Store[i] : &:r1585_5, r1585_15 -# 1585| r1585_17(glval<double &>) = VariableAddress[d] : -# 1585| r1585_18(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : -# 1585| r1585_19(glval<unknown>) = FunctionAddress[get] : -# 1585| r1585_20(double &) = Call[get] : func:r1585_19, this:r1585_18 -# 1585| m1585_21(unknown) = ^CallSideEffect : ~m1585_10 -# 1585| m1585_22(unknown) = Chi : total:m1585_10, partial:m1585_21 -# 1585| v1585_23(void) = ^IndirectReadSideEffect[-1] : &:r1585_18, m1585_13 -# 1585| m1585_24(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1585_18 -# 1585| m1585_25(StructuredBindingTupleRefGet) = Chi : total:m1585_13, partial:m1585_24 -# 1585| r1585_26(glval<double>) = CopyValue : r1585_20 -# 1585| r1585_27(double &) = CopyValue : r1585_26 -# 1585| m1585_28(double &) = Store[d] : &:r1585_17, r1585_27 -# 1585| r1585_29(glval<int &>) = VariableAddress[r] : -# 1585| r1585_30(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : -# 1585| r1585_31(glval<unknown>) = FunctionAddress[get] : -# 1585| r1585_32(int &) = Call[get] : func:r1585_31, this:r1585_30 -# 1585| m1585_33(unknown) = ^CallSideEffect : ~m1585_22 -# 1585| m1585_34(unknown) = Chi : total:m1585_22, partial:m1585_33 -# 1585| v1585_35(void) = ^IndirectReadSideEffect[-1] : &:r1585_30, m1585_25 -# 1585| m1585_36(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1585_30 -# 1585| m1585_37(StructuredBindingTupleRefGet) = Chi : total:m1585_25, partial:m1585_36 -# 1585| r1585_38(glval<int>) = CopyValue : r1585_32 -# 1585| r1585_39(int &) = CopyValue : r1585_38 -# 1585| m1585_40(int &) = Store[r] : &:r1585_29, r1585_39 -# 1586| r1586_1(double) = Constant[4.0] : -# 1586| r1586_2(glval<double &>) = VariableAddress[d] : -# 1586| r1586_3(double &) = Load[d] : &:r1586_2, m1585_28 -# 1586| r1586_4(glval<double>) = CopyValue : r1586_3 -# 1586| m1586_5(double) = Store[?] : &:r1586_4, r1586_1 -# 1586| m1586_6(StructuredBindingTupleRefGet) = Chi : total:m1585_37, partial:m1586_5 -# 1587| r1587_1(glval<double &>) = VariableAddress[rd] : -# 1587| r1587_2(glval<double &>) = VariableAddress[d] : -# 1587| r1587_3(double &) = Load[d] : &:r1587_2, m1585_28 -# 1587| r1587_4(glval<double>) = CopyValue : r1587_3 -# 1587| r1587_5(double &) = CopyValue : r1587_4 -# 1587| m1587_6(double &) = Store[rd] : &:r1587_1, r1587_5 -# 1588| r1588_1(glval<int>) = VariableAddress[v] : -# 1588| r1588_2(glval<int &>) = VariableAddress[i] : -# 1588| r1588_3(int &) = Load[i] : &:r1588_2, m1585_16 -# 1588| r1588_4(int) = Load[?] : &:r1588_3, ~m1585_37 -# 1588| m1588_5(int) = Store[v] : &:r1588_1, r1588_4 -# 1589| r1589_1(int) = Constant[5] : -# 1589| r1589_2(glval<int &>) = VariableAddress[r] : -# 1589| r1589_3(int &) = Load[r] : &:r1589_2, m1585_40 -# 1589| r1589_4(glval<int>) = CopyValue : r1589_3 -# 1589| m1589_5(int) = Store[?] : &:r1589_4, r1589_1 -# 1589| m1589_6(unknown) = Chi : total:m1585_34, partial:m1589_5 -# 1590| r1590_1(glval<int &>) = VariableAddress[rr] : -# 1590| r1590_2(glval<int &>) = VariableAddress[r] : -# 1590| r1590_3(int &) = Load[r] : &:r1590_2, m1585_40 -# 1590| r1590_4(glval<int>) = CopyValue : r1590_3 -# 1590| r1590_5(int &) = CopyValue : r1590_4 -# 1590| m1590_6(int &) = Store[rr] : &:r1590_1, r1590_5 -# 1591| r1591_1(glval<int>) = VariableAddress[w] : -# 1591| r1591_2(glval<int &>) = VariableAddress[r] : -# 1591| r1591_3(int &) = Load[r] : &:r1591_2, m1585_40 -# 1591| r1591_4(int) = Load[?] : &:r1591_3, ~m1589_6 -# 1591| m1591_5(int) = Store[w] : &:r1591_1, r1591_4 -# 1595| r1595_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : -# 1595| r1595_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : -# 1595| r1595_3(StructuredBindingTupleRefGet) = Load[t] : &:r1595_2, m1582_8 -# 1595| m1595_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1595_1, r1595_3 -# 1596| r1596_1(glval<int &>) = VariableAddress[i] : -# 1596| r1596_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : -# 1596| r1596_3(glval<unknown>) = FunctionAddress[get] : -# 1596| r1596_4(int &) = Call[get] : func:r1596_3, this:r1596_2 -# 1596| m1596_5(unknown) = ^CallSideEffect : ~m1589_6 -# 1596| m1596_6(unknown) = Chi : total:m1589_6, partial:m1596_5 -# 1596| v1596_7(void) = ^IndirectReadSideEffect[-1] : &:r1596_2, m1595_4 -# 1596| m1596_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1596_2 -# 1596| m1596_9(StructuredBindingTupleRefGet) = Chi : total:m1595_4, partial:m1596_8 -# 1596| r1596_10(glval<int>) = CopyValue : r1596_4 -# 1596| r1596_11(int &) = CopyValue : r1596_10 -# 1596| m1596_12(int &) = Store[i] : &:r1596_1, r1596_11 -# 1597| r1597_1(glval<double &>) = VariableAddress[d] : -# 1597| r1597_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : -# 1597| r1597_3(glval<unknown>) = FunctionAddress[get] : -# 1597| r1597_4(double &) = Call[get] : func:r1597_3, this:r1597_2 -# 1597| m1597_5(unknown) = ^CallSideEffect : ~m1596_6 -# 1597| m1597_6(unknown) = Chi : total:m1596_6, partial:m1597_5 -# 1597| v1597_7(void) = ^IndirectReadSideEffect[-1] : &:r1597_2, m1596_9 -# 1597| m1597_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1597_2 -# 1597| m1597_9(StructuredBindingTupleRefGet) = Chi : total:m1596_9, partial:m1597_8 -# 1597| r1597_10(glval<double>) = CopyValue : r1597_4 -# 1597| r1597_11(double &) = CopyValue : r1597_10 -# 1597| m1597_12(double &) = Store[d] : &:r1597_1, r1597_11 -# 1598| r1598_1(glval<int &>) = VariableAddress[r] : -# 1598| r1598_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : -# 1598| r1598_3(glval<unknown>) = FunctionAddress[get] : -# 1598| r1598_4(int &) = Call[get] : func:r1598_3, this:r1598_2 -# 1598| m1598_5(unknown) = ^CallSideEffect : ~m1597_6 -# 1598| m1598_6(unknown) = Chi : total:m1597_6, partial:m1598_5 -# 1598| v1598_7(void) = ^IndirectReadSideEffect[-1] : &:r1598_2, m1597_9 -# 1598| m1598_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1598_2 -# 1598| m1598_9(StructuredBindingTupleRefGet) = Chi : total:m1597_9, partial:m1598_8 -# 1598| r1598_10(glval<int>) = CopyValue : r1598_4 -# 1598| r1598_11(int &) = CopyValue : r1598_10 -# 1598| m1598_12(int &) = Store[r] : &:r1598_1, r1598_11 -# 1599| r1599_1(double) = Constant[4.0] : -# 1599| r1599_2(glval<double &>) = VariableAddress[d] : -# 1599| r1599_3(double &) = Load[d] : &:r1599_2, m1597_12 -# 1599| r1599_4(glval<double>) = CopyValue : r1599_3 -# 1599| m1599_5(double) = Store[?] : &:r1599_4, r1599_1 -# 1599| m1599_6(StructuredBindingTupleRefGet) = Chi : total:m1598_9, partial:m1599_5 -# 1600| r1600_1(glval<double &>) = VariableAddress[rd] : -# 1600| r1600_2(glval<double &>) = VariableAddress[d] : -# 1600| r1600_3(double &) = Load[d] : &:r1600_2, m1597_12 -# 1600| r1600_4(glval<double>) = CopyValue : r1600_3 -# 1600| r1600_5(double &) = CopyValue : r1600_4 -# 1600| m1600_6(double &) = Store[rd] : &:r1600_1, r1600_5 -# 1601| r1601_1(glval<int>) = VariableAddress[v] : -# 1601| r1601_2(glval<int &>) = VariableAddress[i] : -# 1601| r1601_3(int &) = Load[i] : &:r1601_2, m1596_12 -# 1601| r1601_4(int) = Load[?] : &:r1601_3, ~m1598_9 -# 1601| m1601_5(int) = Store[v] : &:r1601_1, r1601_4 -# 1602| r1602_1(int) = Constant[5] : -# 1602| r1602_2(glval<int &>) = VariableAddress[r] : -# 1602| r1602_3(int &) = Load[r] : &:r1602_2, m1598_12 -# 1602| r1602_4(glval<int>) = CopyValue : r1602_3 -# 1602| m1602_5(int) = Store[?] : &:r1602_4, r1602_1 -# 1602| m1602_6(unknown) = Chi : total:m1598_6, partial:m1602_5 -# 1603| r1603_1(glval<int &>) = VariableAddress[rr] : -# 1603| r1603_2(glval<int &>) = VariableAddress[r] : -# 1603| r1603_3(int &) = Load[r] : &:r1603_2, m1598_12 -# 1603| r1603_4(glval<int>) = CopyValue : r1603_3 -# 1603| r1603_5(int &) = CopyValue : r1603_4 -# 1603| m1603_6(int &) = Store[rr] : &:r1603_1, r1603_5 -# 1604| r1604_1(glval<int>) = VariableAddress[w] : -# 1604| r1604_2(glval<int &>) = VariableAddress[r] : -# 1604| r1604_3(int &) = Load[r] : &:r1604_2, m1598_12 -# 1604| r1604_4(int) = Load[?] : &:r1604_3, ~m1602_6 -# 1604| m1604_5(int) = Store[w] : &:r1604_1, r1604_4 -# 1606| v1606_1(void) = NoOp : -# 1581| v1581_5(void) = ReturnVoid : -# 1581| v1581_6(void) = AliasedUse : ~m1602_6 -# 1581| v1581_7(void) = ExitFunction : +# 1628| void tuple_structured_binding_ref_get() +# 1628| Block 0 +# 1628| v1628_1(void) = EnterFunction : +# 1628| m1628_2(unknown) = AliasedDefinition : +# 1628| m1628_3(unknown) = InitializeNonLocal : +# 1628| m1628_4(unknown) = Chi : total:m1628_2, partial:m1628_3 +# 1629| r1629_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : +# 1629| m1629_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1629_1 +# 1629| r1629_3(glval<unknown>) = FunctionAddress[StructuredBindingTupleRefGet] : +# 1629| v1629_4(void) = Call[StructuredBindingTupleRefGet] : func:r1629_3, this:r1629_1 +# 1629| m1629_5(unknown) = ^CallSideEffect : ~m1628_4 +# 1629| m1629_6(unknown) = Chi : total:m1628_4, partial:m1629_5 +# 1629| m1629_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1629_1 +# 1629| m1629_8(StructuredBindingTupleRefGet) = Chi : total:m1629_2, partial:m1629_7 +# 1632| r1632_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : +# 1632| r1632_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : +# 1632| r1632_3(StructuredBindingTupleRefGet) = Load[t] : &:r1632_2, m1629_8 +# 1632| m1632_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1632_1, r1632_3 +# 1632| r1632_5(glval<int &>) = VariableAddress[i] : +# 1632| r1632_6(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : +# 1632| r1632_7(glval<unknown>) = FunctionAddress[get] : +# 1632| r1632_8(int &) = Call[get] : func:r1632_7, this:r1632_6 +# 1632| m1632_9(unknown) = ^CallSideEffect : ~m1629_6 +# 1632| m1632_10(unknown) = Chi : total:m1629_6, partial:m1632_9 +# 1632| v1632_11(void) = ^IndirectReadSideEffect[-1] : &:r1632_6, m1632_4 +# 1632| m1632_12(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_6 +# 1632| m1632_13(StructuredBindingTupleRefGet) = Chi : total:m1632_4, partial:m1632_12 +# 1632| r1632_14(glval<int>) = CopyValue : r1632_8 +# 1632| r1632_15(int &) = CopyValue : r1632_14 +# 1632| m1632_16(int &) = Store[i] : &:r1632_5, r1632_15 +# 1632| r1632_17(glval<double &>) = VariableAddress[d] : +# 1632| r1632_18(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : +# 1632| r1632_19(glval<unknown>) = FunctionAddress[get] : +# 1632| r1632_20(double &) = Call[get] : func:r1632_19, this:r1632_18 +# 1632| m1632_21(unknown) = ^CallSideEffect : ~m1632_10 +# 1632| m1632_22(unknown) = Chi : total:m1632_10, partial:m1632_21 +# 1632| v1632_23(void) = ^IndirectReadSideEffect[-1] : &:r1632_18, m1632_13 +# 1632| m1632_24(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_18 +# 1632| m1632_25(StructuredBindingTupleRefGet) = Chi : total:m1632_13, partial:m1632_24 +# 1632| r1632_26(glval<double>) = CopyValue : r1632_20 +# 1632| r1632_27(double &) = CopyValue : r1632_26 +# 1632| m1632_28(double &) = Store[d] : &:r1632_17, r1632_27 +# 1632| r1632_29(glval<int &>) = VariableAddress[r] : +# 1632| r1632_30(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : +# 1632| r1632_31(glval<unknown>) = FunctionAddress[get] : +# 1632| r1632_32(int &) = Call[get] : func:r1632_31, this:r1632_30 +# 1632| m1632_33(unknown) = ^CallSideEffect : ~m1632_22 +# 1632| m1632_34(unknown) = Chi : total:m1632_22, partial:m1632_33 +# 1632| v1632_35(void) = ^IndirectReadSideEffect[-1] : &:r1632_30, m1632_25 +# 1632| m1632_36(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_30 +# 1632| m1632_37(StructuredBindingTupleRefGet) = Chi : total:m1632_25, partial:m1632_36 +# 1632| r1632_38(glval<int>) = CopyValue : r1632_32 +# 1632| r1632_39(int &) = CopyValue : r1632_38 +# 1632| m1632_40(int &) = Store[r] : &:r1632_29, r1632_39 +# 1633| r1633_1(double) = Constant[4.0] : +# 1633| r1633_2(glval<double &>) = VariableAddress[d] : +# 1633| r1633_3(double &) = Load[d] : &:r1633_2, m1632_28 +# 1633| r1633_4(glval<double>) = CopyValue : r1633_3 +# 1633| m1633_5(double) = Store[?] : &:r1633_4, r1633_1 +# 1633| m1633_6(StructuredBindingTupleRefGet) = Chi : total:m1632_37, partial:m1633_5 +# 1634| r1634_1(glval<double &>) = VariableAddress[rd] : +# 1634| r1634_2(glval<double &>) = VariableAddress[d] : +# 1634| r1634_3(double &) = Load[d] : &:r1634_2, m1632_28 +# 1634| r1634_4(glval<double>) = CopyValue : r1634_3 +# 1634| r1634_5(double &) = CopyValue : r1634_4 +# 1634| m1634_6(double &) = Store[rd] : &:r1634_1, r1634_5 +# 1635| r1635_1(glval<int>) = VariableAddress[v] : +# 1635| r1635_2(glval<int &>) = VariableAddress[i] : +# 1635| r1635_3(int &) = Load[i] : &:r1635_2, m1632_16 +# 1635| r1635_4(int) = Load[?] : &:r1635_3, ~m1632_37 +# 1635| m1635_5(int) = Store[v] : &:r1635_1, r1635_4 +# 1636| r1636_1(int) = Constant[5] : +# 1636| r1636_2(glval<int &>) = VariableAddress[r] : +# 1636| r1636_3(int &) = Load[r] : &:r1636_2, m1632_40 +# 1636| r1636_4(glval<int>) = CopyValue : r1636_3 +# 1636| m1636_5(int) = Store[?] : &:r1636_4, r1636_1 +# 1636| m1636_6(unknown) = Chi : total:m1632_34, partial:m1636_5 +# 1637| r1637_1(glval<int &>) = VariableAddress[rr] : +# 1637| r1637_2(glval<int &>) = VariableAddress[r] : +# 1637| r1637_3(int &) = Load[r] : &:r1637_2, m1632_40 +# 1637| r1637_4(glval<int>) = CopyValue : r1637_3 +# 1637| r1637_5(int &) = CopyValue : r1637_4 +# 1637| m1637_6(int &) = Store[rr] : &:r1637_1, r1637_5 +# 1638| r1638_1(glval<int>) = VariableAddress[w] : +# 1638| r1638_2(glval<int &>) = VariableAddress[r] : +# 1638| r1638_3(int &) = Load[r] : &:r1638_2, m1632_40 +# 1638| r1638_4(int) = Load[?] : &:r1638_3, ~m1636_6 +# 1638| m1638_5(int) = Store[w] : &:r1638_1, r1638_4 +# 1642| r1642_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : +# 1642| r1642_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : +# 1642| r1642_3(StructuredBindingTupleRefGet) = Load[t] : &:r1642_2, m1629_8 +# 1642| m1642_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1642_1, r1642_3 +# 1643| r1643_1(glval<int &>) = VariableAddress[i] : +# 1643| r1643_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : +# 1643| r1643_3(glval<unknown>) = FunctionAddress[get] : +# 1643| r1643_4(int &) = Call[get] : func:r1643_3, this:r1643_2 +# 1643| m1643_5(unknown) = ^CallSideEffect : ~m1636_6 +# 1643| m1643_6(unknown) = Chi : total:m1636_6, partial:m1643_5 +# 1643| v1643_7(void) = ^IndirectReadSideEffect[-1] : &:r1643_2, m1642_4 +# 1643| m1643_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1643_2 +# 1643| m1643_9(StructuredBindingTupleRefGet) = Chi : total:m1642_4, partial:m1643_8 +# 1643| r1643_10(glval<int>) = CopyValue : r1643_4 +# 1643| r1643_11(int &) = CopyValue : r1643_10 +# 1643| m1643_12(int &) = Store[i] : &:r1643_1, r1643_11 +# 1644| r1644_1(glval<double &>) = VariableAddress[d] : +# 1644| r1644_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : +# 1644| r1644_3(glval<unknown>) = FunctionAddress[get] : +# 1644| r1644_4(double &) = Call[get] : func:r1644_3, this:r1644_2 +# 1644| m1644_5(unknown) = ^CallSideEffect : ~m1643_6 +# 1644| m1644_6(unknown) = Chi : total:m1643_6, partial:m1644_5 +# 1644| v1644_7(void) = ^IndirectReadSideEffect[-1] : &:r1644_2, m1643_9 +# 1644| m1644_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1644_2 +# 1644| m1644_9(StructuredBindingTupleRefGet) = Chi : total:m1643_9, partial:m1644_8 +# 1644| r1644_10(glval<double>) = CopyValue : r1644_4 +# 1644| r1644_11(double &) = CopyValue : r1644_10 +# 1644| m1644_12(double &) = Store[d] : &:r1644_1, r1644_11 +# 1645| r1645_1(glval<int &>) = VariableAddress[r] : +# 1645| r1645_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : +# 1645| r1645_3(glval<unknown>) = FunctionAddress[get] : +# 1645| r1645_4(int &) = Call[get] : func:r1645_3, this:r1645_2 +# 1645| m1645_5(unknown) = ^CallSideEffect : ~m1644_6 +# 1645| m1645_6(unknown) = Chi : total:m1644_6, partial:m1645_5 +# 1645| v1645_7(void) = ^IndirectReadSideEffect[-1] : &:r1645_2, m1644_9 +# 1645| m1645_8(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1645_2 +# 1645| m1645_9(StructuredBindingTupleRefGet) = Chi : total:m1644_9, partial:m1645_8 +# 1645| r1645_10(glval<int>) = CopyValue : r1645_4 +# 1645| r1645_11(int &) = CopyValue : r1645_10 +# 1645| m1645_12(int &) = Store[r] : &:r1645_1, r1645_11 +# 1646| r1646_1(double) = Constant[4.0] : +# 1646| r1646_2(glval<double &>) = VariableAddress[d] : +# 1646| r1646_3(double &) = Load[d] : &:r1646_2, m1644_12 +# 1646| r1646_4(glval<double>) = CopyValue : r1646_3 +# 1646| m1646_5(double) = Store[?] : &:r1646_4, r1646_1 +# 1646| m1646_6(StructuredBindingTupleRefGet) = Chi : total:m1645_9, partial:m1646_5 +# 1647| r1647_1(glval<double &>) = VariableAddress[rd] : +# 1647| r1647_2(glval<double &>) = VariableAddress[d] : +# 1647| r1647_3(double &) = Load[d] : &:r1647_2, m1644_12 +# 1647| r1647_4(glval<double>) = CopyValue : r1647_3 +# 1647| r1647_5(double &) = CopyValue : r1647_4 +# 1647| m1647_6(double &) = Store[rd] : &:r1647_1, r1647_5 +# 1648| r1648_1(glval<int>) = VariableAddress[v] : +# 1648| r1648_2(glval<int &>) = VariableAddress[i] : +# 1648| r1648_3(int &) = Load[i] : &:r1648_2, m1643_12 +# 1648| r1648_4(int) = Load[?] : &:r1648_3, ~m1645_9 +# 1648| m1648_5(int) = Store[v] : &:r1648_1, r1648_4 +# 1649| r1649_1(int) = Constant[5] : +# 1649| r1649_2(glval<int &>) = VariableAddress[r] : +# 1649| r1649_3(int &) = Load[r] : &:r1649_2, m1645_12 +# 1649| r1649_4(glval<int>) = CopyValue : r1649_3 +# 1649| m1649_5(int) = Store[?] : &:r1649_4, r1649_1 +# 1649| m1649_6(unknown) = Chi : total:m1645_6, partial:m1649_5 +# 1650| r1650_1(glval<int &>) = VariableAddress[rr] : +# 1650| r1650_2(glval<int &>) = VariableAddress[r] : +# 1650| r1650_3(int &) = Load[r] : &:r1650_2, m1645_12 +# 1650| r1650_4(glval<int>) = CopyValue : r1650_3 +# 1650| r1650_5(int &) = CopyValue : r1650_4 +# 1650| m1650_6(int &) = Store[rr] : &:r1650_1, r1650_5 +# 1651| r1651_1(glval<int>) = VariableAddress[w] : +# 1651| r1651_2(glval<int &>) = VariableAddress[r] : +# 1651| r1651_3(int &) = Load[r] : &:r1651_2, m1645_12 +# 1651| r1651_4(int) = Load[?] : &:r1651_3, ~m1649_6 +# 1651| m1651_5(int) = Store[w] : &:r1651_1, r1651_4 +# 1653| v1653_1(void) = NoOp : +# 1628| v1628_5(void) = ReturnVoid : +# 1628| v1628_6(void) = AliasedUse : ~m1649_6 +# 1628| v1628_7(void) = ExitFunction : -# 1608| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() -# 1608| Block 0 -# 1608| v1608_1(void) = EnterFunction : -# 1608| m1608_2(unknown) = AliasedDefinition : -# 1608| m1608_3(unknown) = InitializeNonLocal : -# 1608| m1608_4(unknown) = Chi : total:m1608_2, partial:m1608_3 -# 1608| r1608_5(glval<unknown>) = VariableAddress[#this] : -# 1608| m1608_6(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1608_5 -# 1608| r1608_7(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1608_5, m1608_6 -# 1608| m1608_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1608_7 -# 1608| v1608_9(void) = NoOp : -# 1608| v1608_10(void) = ReturnIndirection[#this] : &:r1608_7, m1608_8 -# 1608| v1608_11(void) = ReturnVoid : -# 1608| v1608_12(void) = AliasedUse : m1608_3 -# 1608| v1608_13(void) = ExitFunction : +# 1655| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() +# 1655| Block 0 +# 1655| v1655_1(void) = EnterFunction : +# 1655| m1655_2(unknown) = AliasedDefinition : +# 1655| m1655_3(unknown) = InitializeNonLocal : +# 1655| m1655_4(unknown) = Chi : total:m1655_2, partial:m1655_3 +# 1655| r1655_5(glval<unknown>) = VariableAddress[#this] : +# 1655| m1655_6(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1655_5 +# 1655| r1655_7(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1655_5, m1655_6 +# 1655| m1655_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1655_7 +# 1655| v1655_9(void) = NoOp : +# 1655| v1655_10(void) = ReturnIndirection[#this] : &:r1655_7, m1655_8 +# 1655| v1655_11(void) = ReturnVoid : +# 1655| v1655_12(void) = AliasedUse : m1655_3 +# 1655| v1655_13(void) = ExitFunction : -# 1635| std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 0>() -# 1635| Block 0 -# 1635| v1635_1(void) = EnterFunction : -# 1635| m1635_2(unknown) = AliasedDefinition : -# 1635| m1635_3(unknown) = InitializeNonLocal : -# 1635| m1635_4(unknown) = Chi : total:m1635_2, partial:m1635_3 -# 1635| r1635_5(glval<unknown>) = VariableAddress[#this] : -# 1635| m1635_6(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1635_5 -# 1635| r1635_7(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1635_5, m1635_6 -# 1635| m1635_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1635_7 -# 1636| r1636_1(glval<int>) = VariableAddress[#return] : -# 1636| r1636_2(glval<unknown>) = VariableAddress[#this] : -# 1636| r1636_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1636_2, m1635_6 -# 1636| r1636_4(glval<int>) = FieldAddress[i] : r1636_3 -# 1636| r1636_5(int) = Load[?] : &:r1636_4, ~m1635_8 -# 1636| m1636_6(int) = Store[#return] : &:r1636_1, r1636_5 -# 1635| v1635_9(void) = ReturnIndirection[#this] : &:r1635_7, m1635_8 -# 1635| r1635_10(glval<int>) = VariableAddress[#return] : -# 1635| v1635_11(void) = ReturnValue : &:r1635_10, m1636_6 -# 1635| v1635_12(void) = AliasedUse : m1635_3 -# 1635| v1635_13(void) = ExitFunction : +# 1682| std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 0>() +# 1682| Block 0 +# 1682| v1682_1(void) = EnterFunction : +# 1682| m1682_2(unknown) = AliasedDefinition : +# 1682| m1682_3(unknown) = InitializeNonLocal : +# 1682| m1682_4(unknown) = Chi : total:m1682_2, partial:m1682_3 +# 1682| r1682_5(glval<unknown>) = VariableAddress[#this] : +# 1682| m1682_6(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1682_5 +# 1682| r1682_7(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1682_5, m1682_6 +# 1682| m1682_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1682_7 +# 1683| r1683_1(glval<int>) = VariableAddress[#return] : +# 1683| r1683_2(glval<unknown>) = VariableAddress[#this] : +# 1683| r1683_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1683_2, m1682_6 +# 1683| r1683_4(glval<int>) = FieldAddress[i] : r1683_3 +# 1683| r1683_5(int) = Load[?] : &:r1683_4, ~m1682_8 +# 1683| m1683_6(int) = Store[#return] : &:r1683_1, r1683_5 +# 1682| v1682_9(void) = ReturnIndirection[#this] : &:r1682_7, m1682_8 +# 1682| r1682_10(glval<int>) = VariableAddress[#return] : +# 1682| v1682_11(void) = ReturnValue : &:r1682_10, m1683_6 +# 1682| v1682_12(void) = AliasedUse : m1682_3 +# 1682| v1682_13(void) = ExitFunction : -# 1639| std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 1>() -# 1639| Block 0 -# 1639| v1639_1(void) = EnterFunction : -# 1639| m1639_2(unknown) = AliasedDefinition : -# 1639| m1639_3(unknown) = InitializeNonLocal : -# 1639| m1639_4(unknown) = Chi : total:m1639_2, partial:m1639_3 -# 1639| r1639_5(glval<unknown>) = VariableAddress[#this] : -# 1639| m1639_6(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1639_5 -# 1639| r1639_7(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1639_5, m1639_6 -# 1639| m1639_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1639_7 -# 1640| r1640_1(glval<int &>) = VariableAddress[#return] : -# 1640| r1640_2(glval<unknown>) = VariableAddress[#this] : -# 1640| r1640_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1640_2, m1639_6 -# 1640| r1640_4(glval<int &>) = FieldAddress[r] : r1640_3 -# 1640| r1640_5(int &) = Load[?] : &:r1640_4, ~m1639_8 -# 1640| r1640_6(glval<int>) = CopyValue : r1640_5 -# 1640| r1640_7(int &) = CopyValue : r1640_6 -# 1640| m1640_8(int &) = Store[#return] : &:r1640_1, r1640_7 -# 1639| v1639_9(void) = ReturnIndirection[#this] : &:r1639_7, m1639_8 -# 1639| r1639_10(glval<int &>) = VariableAddress[#return] : -# 1639| v1639_11(void) = ReturnValue : &:r1639_10, m1640_8 -# 1639| v1639_12(void) = AliasedUse : m1639_3 -# 1639| v1639_13(void) = ExitFunction : +# 1686| std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 1>() +# 1686| Block 0 +# 1686| v1686_1(void) = EnterFunction : +# 1686| m1686_2(unknown) = AliasedDefinition : +# 1686| m1686_3(unknown) = InitializeNonLocal : +# 1686| m1686_4(unknown) = Chi : total:m1686_2, partial:m1686_3 +# 1686| r1686_5(glval<unknown>) = VariableAddress[#this] : +# 1686| m1686_6(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1686_5 +# 1686| r1686_7(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1686_5, m1686_6 +# 1686| m1686_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1686_7 +# 1687| r1687_1(glval<int &>) = VariableAddress[#return] : +# 1687| r1687_2(glval<unknown>) = VariableAddress[#this] : +# 1687| r1687_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1687_2, m1686_6 +# 1687| r1687_4(glval<int &>) = FieldAddress[r] : r1687_3 +# 1687| r1687_5(int &) = Load[?] : &:r1687_4, ~m1686_8 +# 1687| r1687_6(glval<int>) = CopyValue : r1687_5 +# 1687| r1687_7(int &) = CopyValue : r1687_6 +# 1687| m1687_8(int &) = Store[#return] : &:r1687_1, r1687_7 +# 1686| v1686_9(void) = ReturnIndirection[#this] : &:r1686_7, m1686_8 +# 1686| r1686_10(glval<int &>) = VariableAddress[#return] : +# 1686| v1686_11(void) = ReturnValue : &:r1686_10, m1687_8 +# 1686| v1686_12(void) = AliasedUse : m1686_3 +# 1686| v1686_13(void) = ExitFunction : -# 1643| std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 2>() -# 1643| Block 0 -# 1643| v1643_1(void) = EnterFunction : -# 1643| m1643_2(unknown) = AliasedDefinition : -# 1643| m1643_3(unknown) = InitializeNonLocal : -# 1643| m1643_4(unknown) = Chi : total:m1643_2, partial:m1643_3 -# 1643| r1643_5(glval<unknown>) = VariableAddress[#this] : -# 1643| m1643_6(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1643_5 -# 1643| r1643_7(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1643_5, m1643_6 -# 1643| m1643_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1643_7 -# 1644| r1644_1(glval<int &&>) = VariableAddress[#return] : -# 1644| r1644_2(glval<int>) = VariableAddress[#temp1644:12] : -# 1644| r1644_3(int) = Constant[5] : -# 1644| m1644_4(int) = Store[#temp1644:12] : &:r1644_2, r1644_3 -# 1644| r1644_5(int &) = CopyValue : r1644_2 -# 1644| m1644_6(int &&) = Store[#return] : &:r1644_1, r1644_5 -# 1643| v1643_9(void) = ReturnIndirection[#this] : &:r1643_7, m1643_8 -# 1643| r1643_10(glval<int &&>) = VariableAddress[#return] : -# 1643| v1643_11(void) = ReturnValue : &:r1643_10, m1644_6 -# 1643| v1643_12(void) = AliasedUse : m1643_3 -# 1643| v1643_13(void) = ExitFunction : +# 1690| std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 2>() +# 1690| Block 0 +# 1690| v1690_1(void) = EnterFunction : +# 1690| m1690_2(unknown) = AliasedDefinition : +# 1690| m1690_3(unknown) = InitializeNonLocal : +# 1690| m1690_4(unknown) = Chi : total:m1690_2, partial:m1690_3 +# 1690| r1690_5(glval<unknown>) = VariableAddress[#this] : +# 1690| m1690_6(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1690_5 +# 1690| r1690_7(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1690_5, m1690_6 +# 1690| m1690_8(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1690_7 +# 1691| r1691_1(glval<int &&>) = VariableAddress[#return] : +# 1691| r1691_2(glval<int>) = VariableAddress[#temp1691:12] : +# 1691| r1691_3(int) = Constant[5] : +# 1691| m1691_4(int) = Store[#temp1691:12] : &:r1691_2, r1691_3 +# 1691| r1691_5(int &) = CopyValue : r1691_2 +# 1691| m1691_6(int &&) = Store[#return] : &:r1691_1, r1691_5 +# 1690| v1690_9(void) = ReturnIndirection[#this] : &:r1690_7, m1690_8 +# 1690| r1690_10(glval<int &&>) = VariableAddress[#return] : +# 1690| v1690_11(void) = ReturnValue : &:r1690_10, m1691_6 +# 1690| v1690_12(void) = AliasedUse : m1690_3 +# 1690| v1690_13(void) = ExitFunction : -# 1647| void tuple_structured_binding_no_ref_get() -# 1647| Block 0 -# 1647| v1647_1(void) = EnterFunction : -# 1647| m1647_2(unknown) = AliasedDefinition : -# 1647| m1647_3(unknown) = InitializeNonLocal : -# 1647| m1647_4(unknown) = Chi : total:m1647_2, partial:m1647_3 -# 1648| r1648_1(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : -# 1648| m1648_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1648_1 -# 1648| r1648_3(glval<unknown>) = FunctionAddress[StructuredBindingTupleNoRefGet] : -# 1648| v1648_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1648_3, this:r1648_1 -# 1648| m1648_5(unknown) = ^CallSideEffect : ~m1647_4 -# 1648| m1648_6(unknown) = Chi : total:m1647_4, partial:m1648_5 -# 1648| m1648_7(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1648_1 -# 1648| m1648_8(StructuredBindingTupleNoRefGet) = Chi : total:m1648_2, partial:m1648_7 -# 1651| r1651_1(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : -# 1651| r1651_2(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : -# 1651| r1651_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1651_2 -# 1651| m1651_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1651_1, r1651_3 -# 1651| r1651_5(glval<int &&>) = VariableAddress[i] : -# 1651| r1651_6(glval<int>) = VariableAddress[#temp1651:16] : -# 1651| r1651_7(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : -# 1651| r1651_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1651_7, m1651_4 -# 1651| r1651_9(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1651_8 -# 1651| r1651_10(glval<unknown>) = FunctionAddress[get] : -# 1651| r1651_11(int) = Call[get] : func:r1651_10, this:r1651_9 -# 1651| m1651_12(unknown) = ^CallSideEffect : ~m1648_6 -# 1651| m1651_13(unknown) = Chi : total:m1648_6, partial:m1651_12 -# 1651| v1651_14(void) = ^IndirectReadSideEffect[-1] : &:r1651_9, m1648_8 -# 1651| m1651_15(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1651_9 -# 1651| m1651_16(StructuredBindingTupleNoRefGet) = Chi : total:m1648_8, partial:m1651_15 -# 1651| m1651_17(int) = Store[#temp1651:16] : &:r1651_6, r1651_11 -# 1651| r1651_18(int &) = CopyValue : r1651_6 -# 1651| m1651_19(int &&) = Store[i] : &:r1651_5, r1651_18 -# 1651| r1651_20(glval<int &>) = VariableAddress[r] : -# 1651| r1651_21(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : -# 1651| r1651_22(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1651_21, m1651_4 -# 1651| r1651_23(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1651_22 -# 1651| r1651_24(glval<unknown>) = FunctionAddress[get] : -# 1651| r1651_25(int &) = Call[get] : func:r1651_24, this:r1651_23 -# 1651| m1651_26(unknown) = ^CallSideEffect : ~m1651_13 -# 1651| m1651_27(unknown) = Chi : total:m1651_13, partial:m1651_26 -# 1651| v1651_28(void) = ^IndirectReadSideEffect[-1] : &:r1651_23, m1651_16 -# 1651| m1651_29(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1651_23 -# 1651| m1651_30(StructuredBindingTupleNoRefGet) = Chi : total:m1651_16, partial:m1651_29 -# 1651| r1651_31(glval<int>) = CopyValue : r1651_25 -# 1651| r1651_32(int &) = CopyValue : r1651_31 -# 1651| m1651_33(int &) = Store[r] : &:r1651_20, r1651_32 -# 1651| r1651_34(glval<int &&>) = VariableAddress[rv] : -# 1651| r1651_35(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : -# 1651| r1651_36(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1651_35, m1651_4 -# 1651| r1651_37(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1651_36 -# 1651| r1651_38(glval<unknown>) = FunctionAddress[get] : -# 1651| r1651_39(int &&) = Call[get] : func:r1651_38, this:r1651_37 -# 1651| m1651_40(unknown) = ^CallSideEffect : ~m1651_27 -# 1651| m1651_41(unknown) = Chi : total:m1651_27, partial:m1651_40 -# 1651| v1651_42(void) = ^IndirectReadSideEffect[-1] : &:r1651_37, m1651_30 -# 1651| m1651_43(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1651_37 -# 1651| m1651_44(StructuredBindingTupleNoRefGet) = Chi : total:m1651_30, partial:m1651_43 -# 1651| r1651_45(glval<int>) = CopyValue : r1651_39 -# 1651| r1651_46(int &) = CopyValue : r1651_45 -# 1651| m1651_47(int &&) = Store[rv] : &:r1651_34, r1651_46 -# 1652| r1652_1(int) = Constant[4] : -# 1652| r1652_2(glval<int &&>) = VariableAddress[i] : -# 1652| r1652_3(int &&) = Load[i] : &:r1652_2, m1651_19 -# 1652| r1652_4(glval<int>) = CopyValue : r1652_3 -# 1652| m1652_5(int) = Store[?] : &:r1652_4, r1652_1 -# 1653| r1653_1(glval<int &>) = VariableAddress[ri] : -# 1653| r1653_2(glval<int &&>) = VariableAddress[i] : -# 1653| r1653_3(int &&) = Load[i] : &:r1653_2, m1651_19 -# 1653| r1653_4(glval<int>) = CopyValue : r1653_3 -# 1653| r1653_5(int &) = CopyValue : r1653_4 -# 1653| m1653_6(int &) = Store[ri] : &:r1653_1, r1653_5 -# 1654| r1654_1(glval<int>) = VariableAddress[v] : -# 1654| r1654_2(glval<int &&>) = VariableAddress[i] : -# 1654| r1654_3(int &&) = Load[i] : &:r1654_2, m1651_19 -# 1654| r1654_4(int) = Load[?] : &:r1654_3, m1652_5 -# 1654| m1654_5(int) = Store[v] : &:r1654_1, r1654_4 -# 1655| r1655_1(int) = Constant[5] : -# 1655| r1655_2(glval<int &>) = VariableAddress[r] : -# 1655| r1655_3(int &) = Load[r] : &:r1655_2, m1651_33 -# 1655| r1655_4(glval<int>) = CopyValue : r1655_3 -# 1655| m1655_5(int) = Store[?] : &:r1655_4, r1655_1 -# 1655| m1655_6(unknown) = Chi : total:m1651_41, partial:m1655_5 -# 1656| r1656_1(glval<int &>) = VariableAddress[rr] : -# 1656| r1656_2(glval<int &>) = VariableAddress[r] : -# 1656| r1656_3(int &) = Load[r] : &:r1656_2, m1651_33 -# 1656| r1656_4(glval<int>) = CopyValue : r1656_3 -# 1656| r1656_5(int &) = CopyValue : r1656_4 -# 1656| m1656_6(int &) = Store[rr] : &:r1656_1, r1656_5 -# 1657| r1657_1(glval<int>) = VariableAddress[w] : -# 1657| r1657_2(glval<int &>) = VariableAddress[r] : -# 1657| r1657_3(int &) = Load[r] : &:r1657_2, m1651_33 -# 1657| r1657_4(int) = Load[?] : &:r1657_3, ~m1655_6 -# 1657| m1657_5(int) = Store[w] : &:r1657_1, r1657_4 -# 1661| r1661_1(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : -# 1661| r1661_2(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : -# 1661| r1661_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1661_2 -# 1661| m1661_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1661_1, r1661_3 -# 1662| r1662_1(glval<int &&>) = VariableAddress[i] : -# 1662| r1662_2(glval<int>) = VariableAddress[#temp1662:20] : -# 1662| r1662_3(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : -# 1662| r1662_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1662_3, m1661_4 -# 1662| r1662_5(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1662_4 -# 1662| r1662_6(glval<unknown>) = FunctionAddress[get] : -# 1662| r1662_7(int) = Call[get] : func:r1662_6, this:r1662_5 -# 1662| m1662_8(unknown) = ^CallSideEffect : ~m1655_6 -# 1662| m1662_9(unknown) = Chi : total:m1655_6, partial:m1662_8 -# 1662| v1662_10(void) = ^IndirectReadSideEffect[-1] : &:r1662_5, m1651_44 -# 1662| m1662_11(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1662_5 -# 1662| m1662_12(StructuredBindingTupleNoRefGet) = Chi : total:m1651_44, partial:m1662_11 -# 1662| m1662_13(int) = Store[#temp1662:20] : &:r1662_2, r1662_7 -# 1662| r1662_14(int &) = CopyValue : r1662_2 -# 1662| m1662_15(int &&) = Store[i] : &:r1662_1, r1662_14 -# 1663| r1663_1(glval<int &>) = VariableAddress[r] : -# 1663| r1663_2(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : -# 1663| r1663_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1663_2, m1661_4 -# 1663| r1663_4(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1663_3 -# 1663| r1663_5(glval<unknown>) = FunctionAddress[get] : -# 1663| r1663_6(int &) = Call[get] : func:r1663_5, this:r1663_4 -# 1663| m1663_7(unknown) = ^CallSideEffect : ~m1662_9 -# 1663| m1663_8(unknown) = Chi : total:m1662_9, partial:m1663_7 -# 1663| v1663_9(void) = ^IndirectReadSideEffect[-1] : &:r1663_4, m1662_12 -# 1663| m1663_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1663_4 -# 1663| m1663_11(StructuredBindingTupleNoRefGet) = Chi : total:m1662_12, partial:m1663_10 -# 1663| r1663_12(glval<int>) = CopyValue : r1663_6 -# 1663| r1663_13(int &) = CopyValue : r1663_12 -# 1663| m1663_14(int &) = Store[r] : &:r1663_1, r1663_13 -# 1664| r1664_1(glval<int &&>) = VariableAddress[rv] : -# 1664| r1664_2(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : -# 1664| r1664_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1664_2, m1661_4 -# 1664| r1664_4(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1664_3 -# 1664| r1664_5(glval<unknown>) = FunctionAddress[get] : -# 1664| r1664_6(int &&) = Call[get] : func:r1664_5, this:r1664_4 -# 1664| m1664_7(unknown) = ^CallSideEffect : ~m1663_8 -# 1664| m1664_8(unknown) = Chi : total:m1663_8, partial:m1664_7 -# 1664| v1664_9(void) = ^IndirectReadSideEffect[-1] : &:r1664_4, m1663_11 -# 1664| m1664_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1664_4 -# 1664| m1664_11(StructuredBindingTupleNoRefGet) = Chi : total:m1663_11, partial:m1664_10 -# 1664| r1664_12(glval<int>) = CopyValue : r1664_6 -# 1664| r1664_13(int &) = CopyValue : r1664_12 -# 1664| m1664_14(int &&) = Store[rv] : &:r1664_1, r1664_13 -# 1665| r1665_1(int) = Constant[4] : -# 1665| r1665_2(glval<int &&>) = VariableAddress[i] : -# 1665| r1665_3(int &&) = Load[i] : &:r1665_2, m1662_15 -# 1665| r1665_4(glval<int>) = CopyValue : r1665_3 -# 1665| m1665_5(int) = Store[?] : &:r1665_4, r1665_1 -# 1666| r1666_1(glval<int &>) = VariableAddress[ri] : -# 1666| r1666_2(glval<int &&>) = VariableAddress[i] : -# 1666| r1666_3(int &&) = Load[i] : &:r1666_2, m1662_15 -# 1666| r1666_4(glval<int>) = CopyValue : r1666_3 -# 1666| r1666_5(int &) = CopyValue : r1666_4 -# 1666| m1666_6(int &) = Store[ri] : &:r1666_1, r1666_5 -# 1667| r1667_1(glval<int>) = VariableAddress[v] : -# 1667| r1667_2(glval<int &&>) = VariableAddress[i] : -# 1667| r1667_3(int &&) = Load[i] : &:r1667_2, m1662_15 -# 1667| r1667_4(int) = Load[?] : &:r1667_3, m1665_5 -# 1667| m1667_5(int) = Store[v] : &:r1667_1, r1667_4 -# 1668| r1668_1(int) = Constant[5] : -# 1668| r1668_2(glval<int &>) = VariableAddress[r] : -# 1668| r1668_3(int &) = Load[r] : &:r1668_2, m1663_14 -# 1668| r1668_4(glval<int>) = CopyValue : r1668_3 -# 1668| m1668_5(int) = Store[?] : &:r1668_4, r1668_1 -# 1668| m1668_6(unknown) = Chi : total:m1664_8, partial:m1668_5 -# 1669| r1669_1(glval<int &>) = VariableAddress[rr] : -# 1669| r1669_2(glval<int &>) = VariableAddress[r] : -# 1669| r1669_3(int &) = Load[r] : &:r1669_2, m1663_14 -# 1669| r1669_4(glval<int>) = CopyValue : r1669_3 -# 1669| r1669_5(int &) = CopyValue : r1669_4 -# 1669| m1669_6(int &) = Store[rr] : &:r1669_1, r1669_5 -# 1670| r1670_1(glval<int>) = VariableAddress[w] : -# 1670| r1670_2(glval<int &>) = VariableAddress[r] : -# 1670| r1670_3(int &) = Load[r] : &:r1670_2, m1663_14 -# 1670| r1670_4(int) = Load[?] : &:r1670_3, ~m1668_6 -# 1670| m1670_5(int) = Store[w] : &:r1670_1, r1670_4 -# 1672| v1672_1(void) = NoOp : -# 1647| v1647_5(void) = ReturnVoid : -# 1647| v1647_6(void) = AliasedUse : ~m1668_6 -# 1647| v1647_7(void) = ExitFunction : +# 1694| void tuple_structured_binding_no_ref_get() +# 1694| Block 0 +# 1694| v1694_1(void) = EnterFunction : +# 1694| m1694_2(unknown) = AliasedDefinition : +# 1694| m1694_3(unknown) = InitializeNonLocal : +# 1694| m1694_4(unknown) = Chi : total:m1694_2, partial:m1694_3 +# 1695| r1695_1(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : +# 1695| m1695_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1695_1 +# 1695| r1695_3(glval<unknown>) = FunctionAddress[StructuredBindingTupleNoRefGet] : +# 1695| v1695_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1695_3, this:r1695_1 +# 1695| m1695_5(unknown) = ^CallSideEffect : ~m1694_4 +# 1695| m1695_6(unknown) = Chi : total:m1694_4, partial:m1695_5 +# 1695| m1695_7(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1695_1 +# 1695| m1695_8(StructuredBindingTupleNoRefGet) = Chi : total:m1695_2, partial:m1695_7 +# 1698| r1698_1(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : +# 1698| r1698_2(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : +# 1698| r1698_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1698_2 +# 1698| m1698_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1698_1, r1698_3 +# 1698| r1698_5(glval<int &&>) = VariableAddress[i] : +# 1698| r1698_6(glval<int>) = VariableAddress[#temp1698:16] : +# 1698| r1698_7(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : +# 1698| r1698_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_7, m1698_4 +# 1698| r1698_9(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1698_8 +# 1698| r1698_10(glval<unknown>) = FunctionAddress[get] : +# 1698| r1698_11(int) = Call[get] : func:r1698_10, this:r1698_9 +# 1698| m1698_12(unknown) = ^CallSideEffect : ~m1695_6 +# 1698| m1698_13(unknown) = Chi : total:m1695_6, partial:m1698_12 +# 1698| v1698_14(void) = ^IndirectReadSideEffect[-1] : &:r1698_9, m1695_8 +# 1698| m1698_15(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_9 +# 1698| m1698_16(StructuredBindingTupleNoRefGet) = Chi : total:m1695_8, partial:m1698_15 +# 1698| m1698_17(int) = Store[#temp1698:16] : &:r1698_6, r1698_11 +# 1698| r1698_18(int &) = CopyValue : r1698_6 +# 1698| m1698_19(int &&) = Store[i] : &:r1698_5, r1698_18 +# 1698| r1698_20(glval<int &>) = VariableAddress[r] : +# 1698| r1698_21(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : +# 1698| r1698_22(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_21, m1698_4 +# 1698| r1698_23(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1698_22 +# 1698| r1698_24(glval<unknown>) = FunctionAddress[get] : +# 1698| r1698_25(int &) = Call[get] : func:r1698_24, this:r1698_23 +# 1698| m1698_26(unknown) = ^CallSideEffect : ~m1698_13 +# 1698| m1698_27(unknown) = Chi : total:m1698_13, partial:m1698_26 +# 1698| v1698_28(void) = ^IndirectReadSideEffect[-1] : &:r1698_23, m1698_16 +# 1698| m1698_29(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_23 +# 1698| m1698_30(StructuredBindingTupleNoRefGet) = Chi : total:m1698_16, partial:m1698_29 +# 1698| r1698_31(glval<int>) = CopyValue : r1698_25 +# 1698| r1698_32(int &) = CopyValue : r1698_31 +# 1698| m1698_33(int &) = Store[r] : &:r1698_20, r1698_32 +# 1698| r1698_34(glval<int &&>) = VariableAddress[rv] : +# 1698| r1698_35(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : +# 1698| r1698_36(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_35, m1698_4 +# 1698| r1698_37(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1698_36 +# 1698| r1698_38(glval<unknown>) = FunctionAddress[get] : +# 1698| r1698_39(int &&) = Call[get] : func:r1698_38, this:r1698_37 +# 1698| m1698_40(unknown) = ^CallSideEffect : ~m1698_27 +# 1698| m1698_41(unknown) = Chi : total:m1698_27, partial:m1698_40 +# 1698| v1698_42(void) = ^IndirectReadSideEffect[-1] : &:r1698_37, m1698_30 +# 1698| m1698_43(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_37 +# 1698| m1698_44(StructuredBindingTupleNoRefGet) = Chi : total:m1698_30, partial:m1698_43 +# 1698| r1698_45(glval<int>) = CopyValue : r1698_39 +# 1698| r1698_46(int &) = CopyValue : r1698_45 +# 1698| m1698_47(int &&) = Store[rv] : &:r1698_34, r1698_46 +# 1699| r1699_1(int) = Constant[4] : +# 1699| r1699_2(glval<int &&>) = VariableAddress[i] : +# 1699| r1699_3(int &&) = Load[i] : &:r1699_2, m1698_19 +# 1699| r1699_4(glval<int>) = CopyValue : r1699_3 +# 1699| m1699_5(int) = Store[?] : &:r1699_4, r1699_1 +# 1700| r1700_1(glval<int &>) = VariableAddress[ri] : +# 1700| r1700_2(glval<int &&>) = VariableAddress[i] : +# 1700| r1700_3(int &&) = Load[i] : &:r1700_2, m1698_19 +# 1700| r1700_4(glval<int>) = CopyValue : r1700_3 +# 1700| r1700_5(int &) = CopyValue : r1700_4 +# 1700| m1700_6(int &) = Store[ri] : &:r1700_1, r1700_5 +# 1701| r1701_1(glval<int>) = VariableAddress[v] : +# 1701| r1701_2(glval<int &&>) = VariableAddress[i] : +# 1701| r1701_3(int &&) = Load[i] : &:r1701_2, m1698_19 +# 1701| r1701_4(int) = Load[?] : &:r1701_3, m1699_5 +# 1701| m1701_5(int) = Store[v] : &:r1701_1, r1701_4 +# 1702| r1702_1(int) = Constant[5] : +# 1702| r1702_2(glval<int &>) = VariableAddress[r] : +# 1702| r1702_3(int &) = Load[r] : &:r1702_2, m1698_33 +# 1702| r1702_4(glval<int>) = CopyValue : r1702_3 +# 1702| m1702_5(int) = Store[?] : &:r1702_4, r1702_1 +# 1702| m1702_6(unknown) = Chi : total:m1698_41, partial:m1702_5 +# 1703| r1703_1(glval<int &>) = VariableAddress[rr] : +# 1703| r1703_2(glval<int &>) = VariableAddress[r] : +# 1703| r1703_3(int &) = Load[r] : &:r1703_2, m1698_33 +# 1703| r1703_4(glval<int>) = CopyValue : r1703_3 +# 1703| r1703_5(int &) = CopyValue : r1703_4 +# 1703| m1703_6(int &) = Store[rr] : &:r1703_1, r1703_5 +# 1704| r1704_1(glval<int>) = VariableAddress[w] : +# 1704| r1704_2(glval<int &>) = VariableAddress[r] : +# 1704| r1704_3(int &) = Load[r] : &:r1704_2, m1698_33 +# 1704| r1704_4(int) = Load[?] : &:r1704_3, ~m1702_6 +# 1704| m1704_5(int) = Store[w] : &:r1704_1, r1704_4 +# 1708| r1708_1(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : +# 1708| r1708_2(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : +# 1708| r1708_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1708_2 +# 1708| m1708_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1708_1, r1708_3 +# 1709| r1709_1(glval<int &&>) = VariableAddress[i] : +# 1709| r1709_2(glval<int>) = VariableAddress[#temp1709:20] : +# 1709| r1709_3(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : +# 1709| r1709_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1709_3, m1708_4 +# 1709| r1709_5(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1709_4 +# 1709| r1709_6(glval<unknown>) = FunctionAddress[get] : +# 1709| r1709_7(int) = Call[get] : func:r1709_6, this:r1709_5 +# 1709| m1709_8(unknown) = ^CallSideEffect : ~m1702_6 +# 1709| m1709_9(unknown) = Chi : total:m1702_6, partial:m1709_8 +# 1709| v1709_10(void) = ^IndirectReadSideEffect[-1] : &:r1709_5, m1698_44 +# 1709| m1709_11(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1709_5 +# 1709| m1709_12(StructuredBindingTupleNoRefGet) = Chi : total:m1698_44, partial:m1709_11 +# 1709| m1709_13(int) = Store[#temp1709:20] : &:r1709_2, r1709_7 +# 1709| r1709_14(int &) = CopyValue : r1709_2 +# 1709| m1709_15(int &&) = Store[i] : &:r1709_1, r1709_14 +# 1710| r1710_1(glval<int &>) = VariableAddress[r] : +# 1710| r1710_2(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : +# 1710| r1710_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1710_2, m1708_4 +# 1710| r1710_4(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1710_3 +# 1710| r1710_5(glval<unknown>) = FunctionAddress[get] : +# 1710| r1710_6(int &) = Call[get] : func:r1710_5, this:r1710_4 +# 1710| m1710_7(unknown) = ^CallSideEffect : ~m1709_9 +# 1710| m1710_8(unknown) = Chi : total:m1709_9, partial:m1710_7 +# 1710| v1710_9(void) = ^IndirectReadSideEffect[-1] : &:r1710_4, m1709_12 +# 1710| m1710_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1710_4 +# 1710| m1710_11(StructuredBindingTupleNoRefGet) = Chi : total:m1709_12, partial:m1710_10 +# 1710| r1710_12(glval<int>) = CopyValue : r1710_6 +# 1710| r1710_13(int &) = CopyValue : r1710_12 +# 1710| m1710_14(int &) = Store[r] : &:r1710_1, r1710_13 +# 1711| r1711_1(glval<int &&>) = VariableAddress[rv] : +# 1711| r1711_2(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : +# 1711| r1711_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1711_2, m1708_4 +# 1711| r1711_4(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1711_3 +# 1711| r1711_5(glval<unknown>) = FunctionAddress[get] : +# 1711| r1711_6(int &&) = Call[get] : func:r1711_5, this:r1711_4 +# 1711| m1711_7(unknown) = ^CallSideEffect : ~m1710_8 +# 1711| m1711_8(unknown) = Chi : total:m1710_8, partial:m1711_7 +# 1711| v1711_9(void) = ^IndirectReadSideEffect[-1] : &:r1711_4, m1710_11 +# 1711| m1711_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1711_4 +# 1711| m1711_11(StructuredBindingTupleNoRefGet) = Chi : total:m1710_11, partial:m1711_10 +# 1711| r1711_12(glval<int>) = CopyValue : r1711_6 +# 1711| r1711_13(int &) = CopyValue : r1711_12 +# 1711| m1711_14(int &&) = Store[rv] : &:r1711_1, r1711_13 +# 1712| r1712_1(int) = Constant[4] : +# 1712| r1712_2(glval<int &&>) = VariableAddress[i] : +# 1712| r1712_3(int &&) = Load[i] : &:r1712_2, m1709_15 +# 1712| r1712_4(glval<int>) = CopyValue : r1712_3 +# 1712| m1712_5(int) = Store[?] : &:r1712_4, r1712_1 +# 1713| r1713_1(glval<int &>) = VariableAddress[ri] : +# 1713| r1713_2(glval<int &&>) = VariableAddress[i] : +# 1713| r1713_3(int &&) = Load[i] : &:r1713_2, m1709_15 +# 1713| r1713_4(glval<int>) = CopyValue : r1713_3 +# 1713| r1713_5(int &) = CopyValue : r1713_4 +# 1713| m1713_6(int &) = Store[ri] : &:r1713_1, r1713_5 +# 1714| r1714_1(glval<int>) = VariableAddress[v] : +# 1714| r1714_2(glval<int &&>) = VariableAddress[i] : +# 1714| r1714_3(int &&) = Load[i] : &:r1714_2, m1709_15 +# 1714| r1714_4(int) = Load[?] : &:r1714_3, m1712_5 +# 1714| m1714_5(int) = Store[v] : &:r1714_1, r1714_4 +# 1715| r1715_1(int) = Constant[5] : +# 1715| r1715_2(glval<int &>) = VariableAddress[r] : +# 1715| r1715_3(int &) = Load[r] : &:r1715_2, m1710_14 +# 1715| r1715_4(glval<int>) = CopyValue : r1715_3 +# 1715| m1715_5(int) = Store[?] : &:r1715_4, r1715_1 +# 1715| m1715_6(unknown) = Chi : total:m1711_8, partial:m1715_5 +# 1716| r1716_1(glval<int &>) = VariableAddress[rr] : +# 1716| r1716_2(glval<int &>) = VariableAddress[r] : +# 1716| r1716_3(int &) = Load[r] : &:r1716_2, m1710_14 +# 1716| r1716_4(glval<int>) = CopyValue : r1716_3 +# 1716| r1716_5(int &) = CopyValue : r1716_4 +# 1716| m1716_6(int &) = Store[rr] : &:r1716_1, r1716_5 +# 1717| r1717_1(glval<int>) = VariableAddress[w] : +# 1717| r1717_2(glval<int &>) = VariableAddress[r] : +# 1717| r1717_3(int &) = Load[r] : &:r1717_2, m1710_14 +# 1717| r1717_4(int) = Load[?] : &:r1717_3, ~m1715_6 +# 1717| m1717_5(int) = Store[w] : &:r1717_1, r1717_4 +# 1719| v1719_1(void) = NoOp : +# 1694| v1694_5(void) = ReturnVoid : +# 1694| v1694_6(void) = AliasedUse : ~m1715_6 +# 1694| v1694_7(void) = ExitFunction : -# 1674| void array_structured_binding_non_ref_init() -# 1674| Block 0 -# 1674| v1674_1(void) = EnterFunction : -# 1674| m1674_2(unknown) = AliasedDefinition : -# 1674| m1674_3(unknown) = InitializeNonLocal : -# 1674| m1674_4(unknown) = Chi : total:m1674_2, partial:m1674_3 -# 1675| r1675_1(glval<int[2]>) = VariableAddress[xs] : -# 1675| m1675_2(int[2]) = Uninitialized[xs] : &:r1675_1 -# 1675| r1675_3(int) = Constant[0] : -# 1675| r1675_4(glval<int>) = PointerAdd[4] : r1675_1, r1675_3 -# 1675| r1675_5(int) = Constant[1] : -# 1675| m1675_6(int) = Store[?] : &:r1675_4, r1675_5 -# 1675| m1675_7(int[2]) = Chi : total:m1675_2, partial:m1675_6 -# 1675| r1675_8(int) = Constant[1] : -# 1675| r1675_9(glval<int>) = PointerAdd[4] : r1675_1, r1675_8 -# 1675| r1675_10(int) = Constant[2] : -# 1675| m1675_11(int) = Store[?] : &:r1675_9, r1675_10 -# 1675| m1675_12(int[2]) = Chi : total:m1675_7, partial:m1675_11 -# 1676| r1676_1(glval<int[2]>) = VariableAddress[(unnamed local variable)] : -# 1676| r1676_2(glval<int[2]>) = VariableAddress[xs] : -# 1676| r1676_3(int[2]) = Load[xs] : &:r1676_2, m1675_12 -# 1676| m1676_4(int[2]) = Store[(unnamed local variable)] : &:r1676_1, r1676_3 -# 1676| r1676_5(glval<int &>) = VariableAddress[x0] : +# 1721| void array_structured_binding_non_ref_init() +# 1721| Block 0 +# 1721| v1721_1(void) = EnterFunction : +# 1721| m1721_2(unknown) = AliasedDefinition : +# 1721| m1721_3(unknown) = InitializeNonLocal : +# 1721| m1721_4(unknown) = Chi : total:m1721_2, partial:m1721_3 +# 1722| r1722_1(glval<int[2]>) = VariableAddress[xs] : +# 1722| m1722_2(int[2]) = Uninitialized[xs] : &:r1722_1 +# 1722| r1722_3(int) = Constant[0] : +# 1722| r1722_4(glval<int>) = PointerAdd[4] : r1722_1, r1722_3 +# 1722| r1722_5(int) = Constant[1] : +# 1722| m1722_6(int) = Store[?] : &:r1722_4, r1722_5 +# 1722| m1722_7(int[2]) = Chi : total:m1722_2, partial:m1722_6 +# 1722| r1722_8(int) = Constant[1] : +# 1722| r1722_9(glval<int>) = PointerAdd[4] : r1722_1, r1722_8 +# 1722| r1722_10(int) = Constant[2] : +# 1722| m1722_11(int) = Store[?] : &:r1722_9, r1722_10 +# 1722| m1722_12(int[2]) = Chi : total:m1722_7, partial:m1722_11 +# 1723| r1723_1(glval<int[2]>) = VariableAddress[(unnamed local variable)] : +# 1723| r1723_2(glval<int[2]>) = VariableAddress[xs] : +# 1723| r1723_3(int[2]) = Load[xs] : &:r1723_2, m1722_12 +# 1723| m1723_4(int[2]) = Store[(unnamed local variable)] : &:r1723_1, r1723_3 +# 1723| r1723_5(glval<int &>) = VariableAddress[x0] : #-----| r0_1(glval<int[2]>) = VariableAddress[(unnamed local variable)] : #-----| r0_2(int *) = Convert : r0_1 #-----| r0_3(unsigned long) = Constant[0] : #-----| r0_4(glval<int>) = PointerAdd[4] : r0_2, r0_3 -#-----| m0_5(int &) = Store[x0] : &:r1676_5, r0_4 -# 1676| r1676_6(glval<int &>) = VariableAddress[x1] : +#-----| m0_5(int &) = Store[x0] : &:r1723_5, r0_4 +# 1723| r1723_6(glval<int &>) = VariableAddress[x1] : #-----| r0_6(glval<int[2]>) = VariableAddress[(unnamed local variable)] : #-----| r0_7(int *) = Convert : r0_6 #-----| r0_8(unsigned long) = Constant[1] : #-----| r0_9(glval<int>) = PointerAdd[4] : r0_7, r0_8 -#-----| m0_10(int &) = Store[x1] : &:r1676_6, r0_9 -# 1677| v1677_1(void) = NoOp : -# 1674| v1674_5(void) = ReturnVoid : -# 1674| v1674_6(void) = AliasedUse : m1674_3 -# 1674| v1674_7(void) = ExitFunction : +#-----| m0_10(int &) = Store[x1] : &:r1723_6, r0_9 +# 1724| v1724_1(void) = NoOp : +# 1721| v1721_5(void) = ReturnVoid : +# 1721| v1721_6(void) = AliasedUse : m1721_3 +# 1721| v1721_7(void) = ExitFunction : -# 1682| void CapturedLambdaMyObj::CapturedLambdaMyObj() -# 1682| Block 0 -# 1682| v1682_1(void) = EnterFunction : -# 1682| m1682_2(unknown) = AliasedDefinition : -# 1682| m1682_3(unknown) = InitializeNonLocal : -# 1682| m1682_4(unknown) = Chi : total:m1682_2, partial:m1682_3 -# 1682| r1682_5(glval<unknown>) = VariableAddress[#this] : -# 1682| m1682_6(glval<CapturedLambdaMyObj>) = InitializeParameter[#this] : &:r1682_5 -# 1682| r1682_7(glval<CapturedLambdaMyObj>) = Load[#this] : &:r1682_5, m1682_6 -# 1682| m1682_8(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1682_7 -# 1682| v1682_9(void) = NoOp : -# 1682| v1682_10(void) = ReturnIndirection[#this] : &:r1682_7, m1682_8 -# 1682| v1682_11(void) = ReturnVoid : -# 1682| v1682_12(void) = AliasedUse : m1682_3 -# 1682| v1682_13(void) = ExitFunction : +# 1729| void CapturedLambdaMyObj::CapturedLambdaMyObj() +# 1729| Block 0 +# 1729| v1729_1(void) = EnterFunction : +# 1729| m1729_2(unknown) = AliasedDefinition : +# 1729| m1729_3(unknown) = InitializeNonLocal : +# 1729| m1729_4(unknown) = Chi : total:m1729_2, partial:m1729_3 +# 1729| r1729_5(glval<unknown>) = VariableAddress[#this] : +# 1729| m1729_6(glval<CapturedLambdaMyObj>) = InitializeParameter[#this] : &:r1729_5 +# 1729| r1729_7(glval<CapturedLambdaMyObj>) = Load[#this] : &:r1729_5, m1729_6 +# 1729| m1729_8(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1729_7 +# 1729| v1729_9(void) = NoOp : +# 1729| v1729_10(void) = ReturnIndirection[#this] : &:r1729_7, m1729_8 +# 1729| v1729_11(void) = ReturnVoid : +# 1729| v1729_12(void) = AliasedUse : m1729_3 +# 1729| v1729_13(void) = ExitFunction : -# 1685| void captured_lambda(int, int&, int&&) -# 1685| Block 0 -# 1685| v1685_1(void) = EnterFunction : -# 1685| m1685_2(unknown) = AliasedDefinition : -# 1685| m1685_3(unknown) = InitializeNonLocal : -# 1685| m1685_4(unknown) = Chi : total:m1685_2, partial:m1685_3 -# 1685| r1685_5(glval<int>) = VariableAddress[x] : -# 1685| m1685_6(int) = InitializeParameter[x] : &:r1685_5 -# 1685| r1685_7(glval<int &>) = VariableAddress[y] : -# 1685| m1685_8(int &) = InitializeParameter[y] : &:r1685_7 -# 1685| r1685_9(int &) = Load[y] : &:r1685_7, m1685_8 -# 1685| m1685_10(unknown) = InitializeIndirection[y] : &:r1685_9 -# 1685| r1685_11(glval<int &&>) = VariableAddress[z] : -# 1685| m1685_12(int &&) = InitializeParameter[z] : &:r1685_11 -# 1685| r1685_13(int &&) = Load[z] : &:r1685_11, m1685_12 -# 1685| m1685_14(unknown) = InitializeIndirection[z] : &:r1685_13 -# 1687| r1687_1(glval<CapturedLambdaMyObj &>) = VariableAddress[obj1] : -# 1687| r1687_2(glval<CapturedLambdaMyObj>) = VariableAddress[#temp1687:24] : -# 1687| m1687_3(CapturedLambdaMyObj) = Uninitialized[#temp1687:24] : &:r1687_2 -# 1687| r1687_4(glval<unknown>) = FunctionAddress[CapturedLambdaMyObj] : -# 1687| v1687_5(void) = Call[CapturedLambdaMyObj] : func:r1687_4, this:r1687_2 -# 1687| m1687_6(unknown) = ^CallSideEffect : ~m1685_4 -# 1687| m1687_7(unknown) = Chi : total:m1685_4, partial:m1687_6 -# 1687| m1687_8(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1687_2 -# 1687| m1687_9(CapturedLambdaMyObj) = Chi : total:m1687_3, partial:m1687_8 -# 1687| r1687_10(glval<CapturedLambdaMyObj>) = Convert : r1687_2 -# 1687| r1687_11(CapturedLambdaMyObj &) = CopyValue : r1687_10 -# 1687| m1687_12(CapturedLambdaMyObj &) = Store[obj1] : &:r1687_1, r1687_11 -# 1688| r1688_1(glval<CapturedLambdaMyObj>) = VariableAddress[obj2] : -# 1688| m1688_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1688_1 -# 1688| r1688_3(glval<unknown>) = FunctionAddress[CapturedLambdaMyObj] : -# 1688| v1688_4(void) = Call[CapturedLambdaMyObj] : func:r1688_3, this:r1688_1 -# 1688| m1688_5(unknown) = ^CallSideEffect : ~m1687_7 -# 1688| m1688_6(unknown) = Chi : total:m1687_7, partial:m1688_5 -# 1688| m1688_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1688_1 -# 1688| m1688_8(CapturedLambdaMyObj) = Chi : total:m1688_2, partial:m1688_7 -# 1690| r1690_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_outer] : -# 1690| r1690_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1690:24] : -# 1690| m1690_3(decltype([...](...){...})) = Uninitialized[#temp1690:24] : &:r1690_2 -# 1690| r1690_4(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1690_2 -# 1690| r1690_5(glval<CapturedLambdaMyObj &>) = VariableAddress[obj1] : -# 1690| r1690_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1690_5, m1687_12 -#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1690_6, m1687_9 -#-----| m0_2(CapturedLambdaMyObj) = Store[?] : &:r1690_4, r0_1 -#-----| m0_3(decltype([...](...){...})) = Chi : total:m1690_3, partial:m0_2 -# 1690| r1690_7(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1690_2 -# 1690| r1690_8(glval<CapturedLambdaMyObj>) = VariableAddress[obj2] : -# 1690| r1690_9(CapturedLambdaMyObj) = Load[obj2] : &:r1690_8, m1688_8 -# 1690| m1690_10(CapturedLambdaMyObj) = Store[?] : &:r1690_7, r1690_9 -# 1690| m1690_11(decltype([...](...){...})) = Chi : total:m0_3, partial:m1690_10 -# 1690| r1690_12(glval<int>) = FieldAddress[x] : r1690_2 -# 1690| r1690_13(glval<int>) = VariableAddress[x] : -# 1690| r1690_14(int) = Load[x] : &:r1690_13, m1685_6 -# 1690| m1690_15(int) = Store[?] : &:r1690_12, r1690_14 -# 1690| m1690_16(decltype([...](...){...})) = Chi : total:m1690_11, partial:m1690_15 -# 1690| r1690_17(glval<int>) = FieldAddress[y] : r1690_2 -# 1690| r1690_18(glval<int &>) = VariableAddress[y] : -# 1690| r1690_19(int &) = Load[y] : &:r1690_18, m1685_8 -# 1692| r1692_1(int) = Load[?] : &:r1690_19, ~m1685_10 -# 1692| m1692_2(int) = Store[?] : &:r1690_17, r1692_1 -# 1692| m1692_3(decltype([...](...){...})) = Chi : total:m1690_16, partial:m1692_2 -# 1690| r1690_20(glval<int>) = FieldAddress[z] : r1690_2 -# 1690| r1690_21(glval<int &&>) = VariableAddress[z] : -# 1690| r1690_22(int &&) = Load[z] : &:r1690_21, m1685_12 -# 1692| r1692_4(int) = Load[?] : &:r1690_22, ~m1685_14 -# 1692| m1692_5(int) = Store[?] : &:r1690_20, r1692_4 -# 1692| m1692_6(decltype([...](...){...})) = Chi : total:m1692_3, partial:m1692_5 -# 1690| r1690_23(decltype([...](...){...})) = Load[#temp1690:24] : &:r1690_2, m1692_6 -# 1690| m1690_24(decltype([...](...){...})) = Store[lambda_outer] : &:r1690_1, r1690_23 -# 1693| v1693_1(void) = NoOp : -# 1685| v1685_15(void) = ReturnIndirection[y] : &:r1685_9, m1685_10 -# 1685| v1685_16(void) = ReturnIndirection[z] : &:r1685_13, m1685_14 -# 1685| v1685_17(void) = ReturnVoid : -# 1685| v1685_18(void) = AliasedUse : ~m1688_6 -# 1685| v1685_19(void) = ExitFunction : +# 1732| void captured_lambda(int, int&, int&&) +# 1732| Block 0 +# 1732| v1732_1(void) = EnterFunction : +# 1732| m1732_2(unknown) = AliasedDefinition : +# 1732| m1732_3(unknown) = InitializeNonLocal : +# 1732| m1732_4(unknown) = Chi : total:m1732_2, partial:m1732_3 +# 1732| r1732_5(glval<int>) = VariableAddress[x] : +# 1732| m1732_6(int) = InitializeParameter[x] : &:r1732_5 +# 1732| r1732_7(glval<int &>) = VariableAddress[y] : +# 1732| m1732_8(int &) = InitializeParameter[y] : &:r1732_7 +# 1732| r1732_9(int &) = Load[y] : &:r1732_7, m1732_8 +# 1732| m1732_10(unknown) = InitializeIndirection[y] : &:r1732_9 +# 1732| r1732_11(glval<int &&>) = VariableAddress[z] : +# 1732| m1732_12(int &&) = InitializeParameter[z] : &:r1732_11 +# 1732| r1732_13(int &&) = Load[z] : &:r1732_11, m1732_12 +# 1732| m1732_14(unknown) = InitializeIndirection[z] : &:r1732_13 +# 1734| r1734_1(glval<CapturedLambdaMyObj &>) = VariableAddress[obj1] : +# 1734| r1734_2(glval<CapturedLambdaMyObj>) = VariableAddress[#temp1734:24] : +# 1734| m1734_3(CapturedLambdaMyObj) = Uninitialized[#temp1734:24] : &:r1734_2 +# 1734| r1734_4(glval<unknown>) = FunctionAddress[CapturedLambdaMyObj] : +# 1734| v1734_5(void) = Call[CapturedLambdaMyObj] : func:r1734_4, this:r1734_2 +# 1734| m1734_6(unknown) = ^CallSideEffect : ~m1732_4 +# 1734| m1734_7(unknown) = Chi : total:m1732_4, partial:m1734_6 +# 1734| m1734_8(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1734_2 +# 1734| m1734_9(CapturedLambdaMyObj) = Chi : total:m1734_3, partial:m1734_8 +# 1734| r1734_10(glval<CapturedLambdaMyObj>) = Convert : r1734_2 +# 1734| r1734_11(CapturedLambdaMyObj &) = CopyValue : r1734_10 +# 1734| m1734_12(CapturedLambdaMyObj &) = Store[obj1] : &:r1734_1, r1734_11 +# 1735| r1735_1(glval<CapturedLambdaMyObj>) = VariableAddress[obj2] : +# 1735| m1735_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1735_1 +# 1735| r1735_3(glval<unknown>) = FunctionAddress[CapturedLambdaMyObj] : +# 1735| v1735_4(void) = Call[CapturedLambdaMyObj] : func:r1735_3, this:r1735_1 +# 1735| m1735_5(unknown) = ^CallSideEffect : ~m1734_7 +# 1735| m1735_6(unknown) = Chi : total:m1734_7, partial:m1735_5 +# 1735| m1735_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1735_1 +# 1735| m1735_8(CapturedLambdaMyObj) = Chi : total:m1735_2, partial:m1735_7 +# 1737| r1737_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_outer] : +# 1737| r1737_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1737:24] : +# 1737| m1737_3(decltype([...](...){...})) = Uninitialized[#temp1737:24] : &:r1737_2 +# 1737| r1737_4(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1737_2 +# 1737| r1737_5(glval<CapturedLambdaMyObj &>) = VariableAddress[obj1] : +# 1737| r1737_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1737_5, m1734_12 +#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1737_6, m1734_9 +#-----| m0_2(CapturedLambdaMyObj) = Store[?] : &:r1737_4, r0_1 +#-----| m0_3(decltype([...](...){...})) = Chi : total:m1737_3, partial:m0_2 +# 1737| r1737_7(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1737_2 +# 1737| r1737_8(glval<CapturedLambdaMyObj>) = VariableAddress[obj2] : +# 1737| r1737_9(CapturedLambdaMyObj) = Load[obj2] : &:r1737_8, m1735_8 +# 1737| m1737_10(CapturedLambdaMyObj) = Store[?] : &:r1737_7, r1737_9 +# 1737| m1737_11(decltype([...](...){...})) = Chi : total:m0_3, partial:m1737_10 +# 1737| r1737_12(glval<int>) = FieldAddress[x] : r1737_2 +# 1737| r1737_13(glval<int>) = VariableAddress[x] : +# 1737| r1737_14(int) = Load[x] : &:r1737_13, m1732_6 +# 1737| m1737_15(int) = Store[?] : &:r1737_12, r1737_14 +# 1737| m1737_16(decltype([...](...){...})) = Chi : total:m1737_11, partial:m1737_15 +# 1737| r1737_17(glval<int>) = FieldAddress[y] : r1737_2 +# 1737| r1737_18(glval<int &>) = VariableAddress[y] : +# 1737| r1737_19(int &) = Load[y] : &:r1737_18, m1732_8 +# 1739| r1739_1(int) = Load[?] : &:r1737_19, ~m1732_10 +# 1739| m1739_2(int) = Store[?] : &:r1737_17, r1739_1 +# 1739| m1739_3(decltype([...](...){...})) = Chi : total:m1737_16, partial:m1739_2 +# 1737| r1737_20(glval<int>) = FieldAddress[z] : r1737_2 +# 1737| r1737_21(glval<int &&>) = VariableAddress[z] : +# 1737| r1737_22(int &&) = Load[z] : &:r1737_21, m1732_12 +# 1739| r1739_4(int) = Load[?] : &:r1737_22, ~m1732_14 +# 1739| m1739_5(int) = Store[?] : &:r1737_20, r1739_4 +# 1739| m1739_6(decltype([...](...){...})) = Chi : total:m1739_3, partial:m1739_5 +# 1737| r1737_23(decltype([...](...){...})) = Load[#temp1737:24] : &:r1737_2, m1739_6 +# 1737| m1737_24(decltype([...](...){...})) = Store[lambda_outer] : &:r1737_1, r1737_23 +# 1740| v1740_1(void) = NoOp : +# 1732| v1732_15(void) = ReturnIndirection[y] : &:r1732_9, m1732_10 +# 1732| v1732_16(void) = ReturnIndirection[z] : &:r1732_13, m1732_14 +# 1732| v1732_17(void) = ReturnVoid : +# 1732| v1732_18(void) = AliasedUse : ~m1735_6 +# 1732| v1732_19(void) = ExitFunction : -# 1690| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const -# 1690| Block 0 -# 1690| v1690_1(void) = EnterFunction : -# 1690| m1690_2(unknown) = AliasedDefinition : -# 1690| m1690_3(unknown) = InitializeNonLocal : -# 1690| m1690_4(unknown) = Chi : total:m1690_2, partial:m1690_3 -# 1690| r1690_5(glval<unknown>) = VariableAddress[#this] : -# 1690| m1690_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1690_5 -# 1690| r1690_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1690_5, m1690_6 -# 1690| m1690_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1690_7 -# 1691| r1691_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_inner] : -# 1691| r1691_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1691:28] : -# 1691| m1691_3(decltype([...](...){...})) = Uninitialized[#temp1691:28] : &:r1691_2 -# 1691| r1691_4(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1691_2 -# 1691| r1691_5(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_6(lambda [] type at line 1691, col. 29 *) = Load[#this] : &:r1691_5, m1690_6 -# 1691| r1691_7(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1691_6 -# 1691| r1691_8(CapturedLambdaMyObj) = Load[?] : &:r1691_7, ~m1690_8 -# 1691| m1691_9(CapturedLambdaMyObj) = Store[?] : &:r1691_4, r1691_8 -# 1691| m1691_10(decltype([...](...){...})) = Chi : total:m1691_3, partial:m1691_9 -# 1691| r1691_11(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1691_2 -# 1691| r1691_12(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_13(lambda [] type at line 1691, col. 29 *) = Load[#this] : &:r1691_12, m1690_6 -# 1691| r1691_14(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1691_13 -# 1691| r1691_15(CapturedLambdaMyObj) = Load[?] : &:r1691_14, ~m1690_8 -# 1691| m1691_16(CapturedLambdaMyObj) = Store[?] : &:r1691_11, r1691_15 -# 1691| m1691_17(decltype([...](...){...})) = Chi : total:m1691_10, partial:m1691_16 -# 1691| r1691_18(glval<int>) = FieldAddress[x] : r1691_2 -# 1691| r1691_19(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_20(lambda [] type at line 1690, col. 25 *) = Load[#this] : &:r1691_19, m1690_6 -# 1691| r1691_21(glval<int>) = FieldAddress[x] : r1691_20 -# 1691| r1691_22(int) = Load[?] : &:r1691_21, ~m1690_8 -# 1691| m1691_23(int) = Store[?] : &:r1691_18, r1691_22 -# 1691| m1691_24(decltype([...](...){...})) = Chi : total:m1691_17, partial:m1691_23 -# 1691| r1691_25(glval<int>) = FieldAddress[y] : r1691_2 -# 1691| r1691_26(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_27(lambda [] type at line 1690, col. 25 *) = Load[#this] : &:r1691_26, m1690_6 -# 1691| r1691_28(glval<int>) = FieldAddress[y] : r1691_27 -# 1691| r1691_29(int) = Load[?] : &:r1691_28, ~m1690_8 -# 1691| m1691_30(int) = Store[?] : &:r1691_25, r1691_29 -# 1691| m1691_31(decltype([...](...){...})) = Chi : total:m1691_24, partial:m1691_30 -# 1691| r1691_32(glval<int>) = FieldAddress[z] : r1691_2 -# 1691| r1691_33(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_34(lambda [] type at line 1690, col. 25 *) = Load[#this] : &:r1691_33, m1690_6 -# 1691| r1691_35(glval<int>) = FieldAddress[z] : r1691_34 -# 1691| r1691_36(int) = Load[?] : &:r1691_35, ~m1690_8 -# 1691| m1691_37(int) = Store[?] : &:r1691_32, r1691_36 -# 1691| m1691_38(decltype([...](...){...})) = Chi : total:m1691_31, partial:m1691_37 -# 1691| r1691_39(decltype([...](...){...})) = Load[#temp1691:28] : &:r1691_2, m1691_38 -# 1691| m1691_40(decltype([...](...){...})) = Store[lambda_inner] : &:r1691_1, r1691_39 -# 1692| v1692_1(void) = NoOp : -# 1690| v1690_9(void) = ReturnIndirection[#this] : &:r1690_7, m1690_8 -# 1690| v1690_10(void) = ReturnVoid : -# 1690| v1690_11(void) = AliasedUse : m1690_3 -# 1690| v1690_12(void) = ExitFunction : +# 1737| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const +# 1737| Block 0 +# 1737| v1737_1(void) = EnterFunction : +# 1737| m1737_2(unknown) = AliasedDefinition : +# 1737| m1737_3(unknown) = InitializeNonLocal : +# 1737| m1737_4(unknown) = Chi : total:m1737_2, partial:m1737_3 +# 1737| r1737_5(glval<unknown>) = VariableAddress[#this] : +# 1737| m1737_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1737_5 +# 1737| r1737_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1737_5, m1737_6 +# 1737| m1737_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1737_7 +# 1738| r1738_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_inner] : +# 1738| r1738_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1738:28] : +# 1738| m1738_3(decltype([...](...){...})) = Uninitialized[#temp1738:28] : &:r1738_2 +# 1738| r1738_4(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1738_2 +# 1738| r1738_5(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_6(lambda [] type at line 1738, col. 29 *) = Load[#this] : &:r1738_5, m1737_6 +# 1738| r1738_7(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1738_6 +# 1738| r1738_8(CapturedLambdaMyObj) = Load[?] : &:r1738_7, ~m1737_8 +# 1738| m1738_9(CapturedLambdaMyObj) = Store[?] : &:r1738_4, r1738_8 +# 1738| m1738_10(decltype([...](...){...})) = Chi : total:m1738_3, partial:m1738_9 +# 1738| r1738_11(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1738_2 +# 1738| r1738_12(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_13(lambda [] type at line 1738, col. 29 *) = Load[#this] : &:r1738_12, m1737_6 +# 1738| r1738_14(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1738_13 +# 1738| r1738_15(CapturedLambdaMyObj) = Load[?] : &:r1738_14, ~m1737_8 +# 1738| m1738_16(CapturedLambdaMyObj) = Store[?] : &:r1738_11, r1738_15 +# 1738| m1738_17(decltype([...](...){...})) = Chi : total:m1738_10, partial:m1738_16 +# 1738| r1738_18(glval<int>) = FieldAddress[x] : r1738_2 +# 1738| r1738_19(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_20(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_19, m1737_6 +# 1738| r1738_21(glval<int>) = FieldAddress[x] : r1738_20 +# 1738| r1738_22(int) = Load[?] : &:r1738_21, ~m1737_8 +# 1738| m1738_23(int) = Store[?] : &:r1738_18, r1738_22 +# 1738| m1738_24(decltype([...](...){...})) = Chi : total:m1738_17, partial:m1738_23 +# 1738| r1738_25(glval<int>) = FieldAddress[y] : r1738_2 +# 1738| r1738_26(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_27(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_26, m1737_6 +# 1738| r1738_28(glval<int>) = FieldAddress[y] : r1738_27 +# 1738| r1738_29(int) = Load[?] : &:r1738_28, ~m1737_8 +# 1738| m1738_30(int) = Store[?] : &:r1738_25, r1738_29 +# 1738| m1738_31(decltype([...](...){...})) = Chi : total:m1738_24, partial:m1738_30 +# 1738| r1738_32(glval<int>) = FieldAddress[z] : r1738_2 +# 1738| r1738_33(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_34(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_33, m1737_6 +# 1738| r1738_35(glval<int>) = FieldAddress[z] : r1738_34 +# 1738| r1738_36(int) = Load[?] : &:r1738_35, ~m1737_8 +# 1738| m1738_37(int) = Store[?] : &:r1738_32, r1738_36 +# 1738| m1738_38(decltype([...](...){...})) = Chi : total:m1738_31, partial:m1738_37 +# 1738| r1738_39(decltype([...](...){...})) = Load[#temp1738:28] : &:r1738_2, m1738_38 +# 1738| m1738_40(decltype([...](...){...})) = Store[lambda_inner] : &:r1738_1, r1738_39 +# 1739| v1739_1(void) = NoOp : +# 1737| v1737_9(void) = ReturnIndirection[#this] : &:r1737_7, m1737_8 +# 1737| v1737_10(void) = ReturnVoid : +# 1737| v1737_11(void) = AliasedUse : m1737_3 +# 1737| v1737_12(void) = ExitFunction : -# 1691| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)::operator()() const -# 1691| Block 0 -# 1691| v1691_1(void) = EnterFunction : -# 1691| m1691_2(unknown) = AliasedDefinition : -# 1691| m1691_3(unknown) = InitializeNonLocal : -# 1691| m1691_4(unknown) = Chi : total:m1691_2, partial:m1691_3 -# 1691| r1691_5(glval<unknown>) = VariableAddress[#this] : -# 1691| m1691_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1691_5 -# 1691| r1691_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1691_5, m1691_6 -# 1691| m1691_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1691_7 -# 1691| v1691_9(void) = NoOp : -# 1691| v1691_10(void) = NoOp : -# 1691| v1691_11(void) = ReturnIndirection[#this] : &:r1691_7, m1691_8 -# 1691| v1691_12(void) = ReturnVoid : -# 1691| v1691_13(void) = AliasedUse : m1691_3 -# 1691| v1691_14(void) = ExitFunction : - -# 1695| int goto_on_same_line() -# 1695| Block 0 -# 1695| v1695_1(void) = EnterFunction : -# 1695| m1695_2(unknown) = AliasedDefinition : -# 1695| m1695_3(unknown) = InitializeNonLocal : -# 1695| m1695_4(unknown) = Chi : total:m1695_2, partial:m1695_3 -# 1696| r1696_1(glval<int>) = VariableAddress[x] : -# 1696| r1696_2(int) = Constant[42] : -# 1696| m1696_3(int) = Store[x] : &:r1696_1, r1696_2 -# 1697| v1697_1(void) = NoOp : -# 1697| v1697_2(void) = NoOp : -# 1698| r1698_1(glval<int>) = VariableAddress[#return] : -# 1698| r1698_2(glval<int>) = VariableAddress[x] : -# 1698| r1698_3(int) = Load[x] : &:r1698_2, m1696_3 -# 1698| m1698_4(int) = Store[#return] : &:r1698_1, r1698_3 -# 1695| r1695_5(glval<int>) = VariableAddress[#return] : -# 1695| v1695_6(void) = ReturnValue : &:r1695_5, m1698_4 -# 1695| v1695_7(void) = AliasedUse : m1695_3 -# 1695| v1695_8(void) = ExitFunction : - -# 1703| void TrivialLambdaClass::m() const -# 1703| Block 0 -# 1703| v1703_1(void) = EnterFunction : -# 1703| m1703_2(unknown) = AliasedDefinition : -# 1703| m1703_3(unknown) = InitializeNonLocal : -# 1703| m1703_4(unknown) = Chi : total:m1703_2, partial:m1703_3 -# 1703| r1703_5(glval<unknown>) = VariableAddress[#this] : -# 1703| m1703_6(glval<TrivialLambdaClass>) = InitializeParameter[#this] : &:r1703_5 -# 1703| r1703_7(glval<TrivialLambdaClass>) = Load[#this] : &:r1703_5, m1703_6 -# 1703| m1703_8(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1703_7 -# 1704| r1704_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_outer] : -# 1704| r1704_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1704:25] : -# 1704| m1704_3(decltype([...](...){...})) = Uninitialized[#temp1704:25] : &:r1704_2 -# 1704| r1704_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1704_2 -# 1704| r1704_5(glval<unknown>) = VariableAddress[#this] : -# 1704| r1704_6(TrivialLambdaClass *) = Load[#this] : &:r1704_5, m1703_6 -# 1704| r1704_7(TrivialLambdaClass) = Load[?] : &:r1704_6, ~m1703_8 -# 1704| m1704_8(TrivialLambdaClass) = Store[?] : &:r1704_4, r1704_7 -# 1704| r1704_9(decltype([...](...){...})) = Load[#temp1704:25] : &:r1704_2, ~m1704_8 -# 1704| m1704_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1704_1, r1704_9 -# 1711| v1711_1(void) = NoOp : -# 1703| v1703_9(void) = ReturnIndirection[#this] : &:r1703_7, m1703_8 -# 1703| v1703_10(void) = ReturnVoid : -# 1703| v1703_11(void) = AliasedUse : m1703_3 -# 1703| v1703_12(void) = ExitFunction : - -# 1704| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const -# 1704| Block 0 -# 1704| v1704_1(void) = EnterFunction : -# 1704| m1704_2(unknown) = AliasedDefinition : -# 1704| m1704_3(unknown) = InitializeNonLocal : -# 1704| m1704_4(unknown) = Chi : total:m1704_2, partial:m1704_3 -# 1704| r1704_5(glval<unknown>) = VariableAddress[#this] : -# 1704| m1704_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1704_5 -# 1704| r1704_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1704_5, m1704_6 -# 1704| m1704_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1704_7 -# 1705| r1705_1(glval<unknown>) = VariableAddress[#this] : -# 1705| r1705_2(lambda [] type at line 1704, col. 26 *) = Load[#this] : &:r1705_1, m1704_6 -# 1705| r1705_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1705_2 -# 1705| r1705_4(TrivialLambdaClass *) = CopyValue : r1705_3 -# 1705| r1705_5(glval<unknown>) = FunctionAddress[m] : -# 1705| v1705_6(void) = Call[m] : func:r1705_5, this:r1705_4 -# 1705| m1705_7(unknown) = ^CallSideEffect : ~m1704_4 -# 1705| m1705_8(unknown) = Chi : total:m1704_4, partial:m1705_7 -# 1705| v1705_9(void) = ^IndirectReadSideEffect[-1] : &:r1705_4, ~m1704_8 -# 1707| r1707_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_inner] : -# 1707| r1707_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1707:29] : -# 1707| m1707_3(decltype([...](...){...})) = Uninitialized[#temp1707:29] : &:r1707_2 -# 1707| r1707_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1707_2 -# 1707| r1707_5(glval<unknown>) = VariableAddress[#this] : -# 1707| r1707_6(lambda [] type at line 1707, col. 30 *) = Load[#this] : &:r1707_5, m1704_6 -# 1707| r1707_7(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1707_6 -# 1707| r1707_8(TrivialLambdaClass) = Load[?] : &:r1707_7, ~m1704_8 -# 1707| m1707_9(TrivialLambdaClass) = Store[?] : &:r1707_4, r1707_8 -# 1707| r1707_10(decltype([...](...){...})) = Load[#temp1707:29] : &:r1707_2, ~m1707_9 -# 1707| m1707_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1707_1, r1707_10 -# 1710| v1710_1(void) = NoOp : -# 1704| v1704_9(void) = ReturnIndirection[#this] : &:r1704_7, m1704_8 -# 1704| v1704_10(void) = ReturnVoid : -# 1704| v1704_11(void) = AliasedUse : ~m1705_8 -# 1704| v1704_12(void) = ExitFunction : - -# 1707| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)::operator()() const -# 1707| Block 0 -# 1707| v1707_1(void) = EnterFunction : -# 1707| m1707_2(unknown) = AliasedDefinition : -# 1707| m1707_3(unknown) = InitializeNonLocal : -# 1707| m1707_4(unknown) = Chi : total:m1707_2, partial:m1707_3 -# 1707| r1707_5(glval<unknown>) = VariableAddress[#this] : -# 1707| m1707_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1707_5 -# 1707| r1707_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1707_5, m1707_6 -# 1707| m1707_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1707_7 -# 1708| r1708_1(glval<unknown>) = VariableAddress[#this] : -# 1708| r1708_2(lambda [] type at line 1707, col. 30 *) = Load[#this] : &:r1708_1, m1707_6 -# 1708| r1708_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1708_2 -# 1708| r1708_4(TrivialLambdaClass *) = CopyValue : r1708_3 -# 1708| r1708_5(glval<unknown>) = FunctionAddress[m] : -# 1708| v1708_6(void) = Call[m] : func:r1708_5, this:r1708_4 -# 1708| m1708_7(unknown) = ^CallSideEffect : ~m1707_4 -# 1708| m1708_8(unknown) = Chi : total:m1707_4, partial:m1708_7 -# 1708| v1708_9(void) = ^IndirectReadSideEffect[-1] : &:r1708_4, ~m1707_8 -# 1709| v1709_1(void) = NoOp : -# 1707| v1707_9(void) = ReturnIndirection[#this] : &:r1707_7, m1707_8 -# 1707| v1707_10(void) = ReturnVoid : -# 1707| v1707_11(void) = AliasedUse : ~m1708_8 -# 1707| v1707_12(void) = ExitFunction : - -# 1714| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) -# 1714| Block 0 -# 1714| v1714_1(void) = EnterFunction : -# 1714| m1714_2(unknown) = AliasedDefinition : -# 1714| m1714_3(unknown) = InitializeNonLocal : -# 1714| m1714_4(unknown) = Chi : total:m1714_2, partial:m1714_3 -# 1714| r1714_5(glval<TrivialLambdaClass>) = VariableAddress[p1] : -# 1714| m1714_6(TrivialLambdaClass) = InitializeParameter[p1] : &:r1714_5 -# 1714| r1714_7(glval<TrivialLambdaClass &>) = VariableAddress[p2] : -# 1714| m1714_8(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1714_7 -# 1714| r1714_9(TrivialLambdaClass &) = Load[p2] : &:r1714_7, m1714_8 -# 1714| m1714_10(unknown) = InitializeIndirection[p2] : &:r1714_9 -# 1714| r1714_11(glval<TrivialLambdaClass &&>) = VariableAddress[p3] : -# 1714| m1714_12(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1714_11 -# 1714| r1714_13(TrivialLambdaClass &&) = Load[p3] : &:r1714_11, m1714_12 -# 1714| m1714_14(unknown) = InitializeIndirection[p3] : &:r1714_13 -# 1715| r1715_1(glval<TrivialLambdaClass>) = VariableAddress[l1] : -# 1715| m1715_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1715_1 -# 1716| r1716_1(glval<TrivialLambdaClass &>) = VariableAddress[l2] : -# 1716| r1716_2(glval<TrivialLambdaClass>) = VariableAddress[#temp1716:36] : -# 1716| r1716_3(TrivialLambdaClass) = Constant[0] : -# 1716| m1716_4(TrivialLambdaClass) = Store[#temp1716:36] : &:r1716_2, r1716_3 -# 1716| r1716_5(glval<TrivialLambdaClass>) = Convert : r1716_2 -# 1716| r1716_6(TrivialLambdaClass &) = CopyValue : r1716_5 -# 1716| m1716_7(TrivialLambdaClass &) = Store[l2] : &:r1716_1, r1716_6 -# 1718| r1718_1(glval<decltype([...](...){...})>) = VariableAddress[l_outer1] : -# 1718| r1718_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1718:20] : -# 1718| m1718_3(decltype([...](...){...})) = Uninitialized[#temp1718:20] : &:r1718_2 -# 1718| r1718_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1718_2 -# 1718| r1718_5(glval<TrivialLambdaClass>) = VariableAddress[p1] : -# 1718| r1718_6(TrivialLambdaClass) = Load[p1] : &:r1718_5, m1714_6 -# 1718| m1718_7(TrivialLambdaClass) = Store[?] : &:r1718_4, r1718_6 -# 1718| m1718_8(decltype([...](...){...})) = Chi : total:m1718_3, partial:m1718_7 -# 1718| r1718_9(glval<TrivialLambdaClass>) = FieldAddress[p2] : r1718_2 -# 1718| r1718_10(glval<TrivialLambdaClass &>) = VariableAddress[p2] : -# 1718| r1718_11(TrivialLambdaClass &) = Load[p2] : &:r1718_10, m1714_8 -#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1718_11, ~m1714_10 -#-----| m0_2(TrivialLambdaClass) = Store[?] : &:r1718_9, r0_1 -#-----| m0_3(decltype([...](...){...})) = Chi : total:m1718_8, partial:m0_2 -# 1718| r1718_12(glval<TrivialLambdaClass>) = FieldAddress[p3] : r1718_2 -# 1718| r1718_13(glval<TrivialLambdaClass &&>) = VariableAddress[p3] : -# 1718| r1718_14(TrivialLambdaClass &&) = Load[p3] : &:r1718_13, m1714_12 -#-----| r0_4(TrivialLambdaClass) = Load[?] : &:r1718_14, ~m1714_14 -#-----| m0_5(TrivialLambdaClass) = Store[?] : &:r1718_12, r0_4 -#-----| m0_6(decltype([...](...){...})) = Chi : total:m0_3, partial:m0_5 -# 1718| r1718_15(glval<TrivialLambdaClass>) = FieldAddress[l1] : r1718_2 -# 1718| r1718_16(glval<TrivialLambdaClass>) = VariableAddress[l1] : -# 1718| r1718_17(TrivialLambdaClass) = Load[l1] : &:r1718_16, m1715_2 -# 1718| m1718_18(TrivialLambdaClass) = Store[?] : &:r1718_15, r1718_17 -# 1718| m1718_19(decltype([...](...){...})) = Chi : total:m0_6, partial:m1718_18 -# 1718| r1718_20(glval<TrivialLambdaClass>) = FieldAddress[l2] : r1718_2 -# 1718| r1718_21(glval<TrivialLambdaClass &>) = VariableAddress[l2] : -# 1718| r1718_22(TrivialLambdaClass &) = Load[l2] : &:r1718_21, m1716_7 -#-----| r0_7(TrivialLambdaClass) = Load[?] : &:r1718_22, m1716_4 -#-----| m0_8(TrivialLambdaClass) = Store[?] : &:r1718_20, r0_7 -#-----| m0_9(decltype([...](...){...})) = Chi : total:m1718_19, partial:m0_8 -# 1718| r1718_23(decltype([...](...){...})) = Load[#temp1718:20] : &:r1718_2, m0_9 -# 1718| m1718_24(decltype([...](...){...})) = Store[l_outer1] : &:r1718_1, r1718_23 -# 1721| v1721_1(void) = NoOp : -# 1714| v1714_15(void) = ReturnIndirection[p2] : &:r1714_9, m1714_10 -# 1714| v1714_16(void) = ReturnIndirection[p3] : &:r1714_13, m1714_14 -# 1714| v1714_17(void) = ReturnVoid : -# 1714| v1714_18(void) = AliasedUse : m1714_3 -# 1714| v1714_19(void) = ExitFunction : - -# 1718| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const -# 1718| Block 0 -# 1718| v1718_1(void) = EnterFunction : -# 1718| m1718_2(unknown) = AliasedDefinition : -# 1718| m1718_3(unknown) = InitializeNonLocal : -# 1718| m1718_4(unknown) = Chi : total:m1718_2, partial:m1718_3 -# 1718| r1718_5(glval<unknown>) = VariableAddress[#this] : -# 1718| m1718_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1718_5 -# 1718| r1718_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1718_5, m1718_6 -# 1718| m1718_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1718_7 -# 1719| r1719_1(glval<decltype([...](...){...})>) = VariableAddress[l_inner1] : -# 1719| r1719_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1719:24] : -# 1719| m1719_3(decltype([...](...){...})) = Uninitialized[#temp1719:24] : &:r1719_2 -# 1719| r1719_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1719_2 -# 1719| r1719_5(glval<unknown>) = VariableAddress[#this] : -# 1719| r1719_6(lambda [] type at line 1719, col. 25 *) = Load[#this] : &:r1719_5, m1718_6 -# 1719| r1719_7(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1719_6 -# 1719| r1719_8(TrivialLambdaClass) = Load[?] : &:r1719_7, ~m1718_8 -# 1719| m1719_9(TrivialLambdaClass) = Store[?] : &:r1719_4, r1719_8 -# 1719| r1719_10(decltype([...](...){...})) = Load[#temp1719:24] : &:r1719_2, ~m1719_9 -# 1719| m1719_11(decltype([...](...){...})) = Store[l_inner1] : &:r1719_1, r1719_10 -# 1720| v1720_1(void) = NoOp : -# 1718| v1718_9(void) = ReturnIndirection[#this] : &:r1718_7, m1718_8 -# 1718| v1718_10(void) = ReturnVoid : -# 1718| v1718_11(void) = AliasedUse : m1718_3 -# 1718| v1718_12(void) = ExitFunction : - -# 1719| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)::operator()() const -# 1719| Block 0 -# 1719| v1719_1(void) = EnterFunction : -# 1719| m1719_2(unknown) = AliasedDefinition : -# 1719| m1719_3(unknown) = InitializeNonLocal : -# 1719| m1719_4(unknown) = Chi : total:m1719_2, partial:m1719_3 -# 1719| r1719_5(glval<unknown>) = VariableAddress[#this] : -# 1719| m1719_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1719_5 -# 1719| r1719_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1719_5, m1719_6 -# 1719| m1719_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1719_7 -# 1719| v1719_9(void) = NoOp : -# 1719| v1719_10(void) = ReturnIndirection[#this] : &:r1719_7, m1719_8 -# 1719| v1719_11(void) = ReturnVoid : -# 1719| v1719_12(void) = AliasedUse : m1719_3 -# 1719| v1719_13(void) = ExitFunction : - -# 1726| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() -# 1726| Block 0 -# 1726| v1726_1(void) = EnterFunction : -# 1726| m1726_2(unknown) = AliasedDefinition : -# 1726| m1726_3(unknown) = InitializeNonLocal : -# 1726| m1726_4(unknown) = Chi : total:m1726_2, partial:m1726_3 -# 1726| r1726_5(glval<unknown>) = VariableAddress[#this] : -# 1726| m1726_6(glval<CopyConstructorWithImplicitArgumentClass>) = InitializeParameter[#this] : &:r1726_5 -# 1726| r1726_7(glval<CopyConstructorWithImplicitArgumentClass>) = Load[#this] : &:r1726_5, m1726_6 -# 1726| m1726_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1726_7 -# 1726| v1726_9(void) = NoOp : -# 1726| v1726_10(void) = ReturnIndirection[#this] : &:r1726_7, m1726_8 -# 1726| v1726_11(void) = ReturnVoid : -# 1726| v1726_12(void) = AliasedUse : m1726_3 -# 1726| v1726_13(void) = ExitFunction : - -# 1727| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) -# 1727| Block 0 -# 1727| v1727_1(void) = EnterFunction : -# 1727| m1727_2(unknown) = AliasedDefinition : -# 1727| m1727_3(unknown) = InitializeNonLocal : -# 1727| m1727_4(unknown) = Chi : total:m1727_2, partial:m1727_3 -# 1727| r1727_5(glval<unknown>) = VariableAddress[#this] : -# 1727| m1727_6(glval<CopyConstructorWithImplicitArgumentClass>) = InitializeParameter[#this] : &:r1727_5 -# 1727| r1727_7(glval<CopyConstructorWithImplicitArgumentClass>) = Load[#this] : &:r1727_5, m1727_6 -# 1727| m1727_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1727_7 -# 1727| r1727_9(glval<CopyConstructorWithImplicitArgumentClass &>) = VariableAddress[c] : -# 1727| m1727_10(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1727_9 -# 1727| r1727_11(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1727_9, m1727_10 -# 1727| m1727_12(unknown) = InitializeIndirection[c] : &:r1727_11 -# 1728| r1728_1(glval<CopyConstructorWithImplicitArgumentClass &>) = VariableAddress[c] : -# 1728| r1728_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1728_1, m1727_10 -# 1728| r1728_3(glval<CopyConstructorWithImplicitArgumentClass>) = CopyValue : r1728_2 -# 1728| r1728_4(glval<int>) = FieldAddress[x] : r1728_3 -# 1728| r1728_5(int) = Load[?] : &:r1728_4, ~m1727_12 -# 1728| r1728_6(glval<unknown>) = VariableAddress[#this] : -# 1728| r1728_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1728_6, m1727_6 -# 1728| r1728_8(glval<int>) = FieldAddress[x] : r1728_7 -# 1728| m1728_9(int) = Store[?] : &:r1728_8, r1728_5 -# 1728| m1728_10(unknown) = Chi : total:m1727_8, partial:m1728_9 -# 1729| v1729_1(void) = NoOp : -# 1727| v1727_13(void) = ReturnIndirection[#this] : &:r1727_7, m1728_10 -# 1727| v1727_14(void) = ReturnIndirection[c] : &:r1727_11, m1727_12 -# 1727| v1727_15(void) = ReturnVoid : -# 1727| v1727_16(void) = AliasedUse : m1727_3 -# 1727| v1727_17(void) = ExitFunction : - -# 1735| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() -# 1735| Block 0 -# 1735| v1735_1(void) = EnterFunction : -# 1735| m1735_2(unknown) = AliasedDefinition : -# 1735| m1735_3(unknown) = InitializeNonLocal : -# 1735| m1735_4(unknown) = Chi : total:m1735_2, partial:m1735_3 -# 1735| r1735_5(glval<unknown>) = VariableAddress[#this] : -# 1735| m1735_6(glval<CopyConstructorWithBitwiseCopyClass>) = InitializeParameter[#this] : &:r1735_5 -# 1735| r1735_7(glval<CopyConstructorWithBitwiseCopyClass>) = Load[#this] : &:r1735_5, m1735_6 -# 1735| m1735_8(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1735_7 -# 1735| v1735_9(void) = NoOp : -# 1735| v1735_10(void) = ReturnIndirection[#this] : &:r1735_7, m1735_8 -# 1735| v1735_11(void) = ReturnVoid : -# 1735| v1735_12(void) = AliasedUse : m1735_3 -# 1735| v1735_13(void) = ExitFunction : - -# 1738| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1738| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::operator()() const # 1738| Block 0 -# 1738| v1738_1(void) = EnterFunction : -# 1738| m1738_2(unknown) = AliasedDefinition : -# 1738| m1738_3(unknown) = InitializeNonLocal : -# 1738| m1738_4(unknown) = Chi : total:m1738_2, partial:m1738_3 -# 1738| r1738_5(glval<unknown>) = VariableAddress[#this] : -# 1738| m1738_6(glval<CopyConstructorTestNonVirtualClass>) = InitializeParameter[#this] : &:r1738_5 -# 1738| r1738_7(glval<CopyConstructorTestNonVirtualClass>) = Load[#this] : &:r1738_5, m1738_6 -# 1738| m1738_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1738_7 +# 1738| v1738_1(void) = EnterFunction : +# 1738| m1738_2(unknown) = AliasedDefinition : +# 1738| m1738_3(unknown) = InitializeNonLocal : +# 1738| m1738_4(unknown) = Chi : total:m1738_2, partial:m1738_3 +# 1738| r1738_5(glval<unknown>) = VariableAddress[#this] : +# 1738| m1738_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1738_5 +# 1738| r1738_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1738_5, m1738_6 +# 1738| m1738_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1738_7 +# 1738| v1738_9(void) = NoOp : +# 1738| v1738_10(void) = NoOp : +# 1738| v1738_11(void) = ReturnIndirection[#this] : &:r1738_7, m1738_8 +# 1738| v1738_12(void) = ReturnVoid : +# 1738| v1738_13(void) = AliasedUse : m1738_3 +# 1738| v1738_14(void) = ExitFunction : + +# 1742| int goto_on_same_line() +# 1742| Block 0 +# 1742| v1742_1(void) = EnterFunction : +# 1742| m1742_2(unknown) = AliasedDefinition : +# 1742| m1742_3(unknown) = InitializeNonLocal : +# 1742| m1742_4(unknown) = Chi : total:m1742_2, partial:m1742_3 +# 1743| r1743_1(glval<int>) = VariableAddress[x] : +# 1743| r1743_2(int) = Constant[42] : +# 1743| m1743_3(int) = Store[x] : &:r1743_1, r1743_2 +# 1744| v1744_1(void) = NoOp : +# 1744| v1744_2(void) = NoOp : +# 1745| r1745_1(glval<int>) = VariableAddress[#return] : +# 1745| r1745_2(glval<int>) = VariableAddress[x] : +# 1745| r1745_3(int) = Load[x] : &:r1745_2, m1743_3 +# 1745| m1745_4(int) = Store[#return] : &:r1745_1, r1745_3 +# 1742| r1742_5(glval<int>) = VariableAddress[#return] : +# 1742| v1742_6(void) = ReturnValue : &:r1742_5, m1745_4 +# 1742| v1742_7(void) = AliasedUse : m1742_3 +# 1742| v1742_8(void) = ExitFunction : + +# 1750| void TrivialLambdaClass::m() const +# 1750| Block 0 +# 1750| v1750_1(void) = EnterFunction : +# 1750| m1750_2(unknown) = AliasedDefinition : +# 1750| m1750_3(unknown) = InitializeNonLocal : +# 1750| m1750_4(unknown) = Chi : total:m1750_2, partial:m1750_3 +# 1750| r1750_5(glval<unknown>) = VariableAddress[#this] : +# 1750| m1750_6(glval<TrivialLambdaClass>) = InitializeParameter[#this] : &:r1750_5 +# 1750| r1750_7(glval<TrivialLambdaClass>) = Load[#this] : &:r1750_5, m1750_6 +# 1750| m1750_8(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1750_7 +# 1751| r1751_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_outer] : +# 1751| r1751_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1751:25] : +# 1751| m1751_3(decltype([...](...){...})) = Uninitialized[#temp1751:25] : &:r1751_2 +# 1751| r1751_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1751_2 +# 1751| r1751_5(glval<unknown>) = VariableAddress[#this] : +# 1751| r1751_6(TrivialLambdaClass *) = Load[#this] : &:r1751_5, m1750_6 +# 1751| r1751_7(TrivialLambdaClass) = Load[?] : &:r1751_6, ~m1750_8 +# 1751| m1751_8(TrivialLambdaClass) = Store[?] : &:r1751_4, r1751_7 +# 1751| r1751_9(decltype([...](...){...})) = Load[#temp1751:25] : &:r1751_2, ~m1751_8 +# 1751| m1751_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1751_1, r1751_9 +# 1758| v1758_1(void) = NoOp : +# 1750| v1750_9(void) = ReturnIndirection[#this] : &:r1750_7, m1750_8 +# 1750| v1750_10(void) = ReturnVoid : +# 1750| v1750_11(void) = AliasedUse : m1750_3 +# 1750| v1750_12(void) = ExitFunction : + +# 1751| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const +# 1751| Block 0 +# 1751| v1751_1(void) = EnterFunction : +# 1751| m1751_2(unknown) = AliasedDefinition : +# 1751| m1751_3(unknown) = InitializeNonLocal : +# 1751| m1751_4(unknown) = Chi : total:m1751_2, partial:m1751_3 +# 1751| r1751_5(glval<unknown>) = VariableAddress[#this] : +# 1751| m1751_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1751_5 +# 1751| r1751_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1751_5, m1751_6 +# 1751| m1751_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1751_7 +# 1752| r1752_1(glval<unknown>) = VariableAddress[#this] : +# 1752| r1752_2(lambda [] type at line 1751, col. 26 *) = Load[#this] : &:r1752_1, m1751_6 +# 1752| r1752_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1752_2 +# 1752| r1752_4(TrivialLambdaClass *) = CopyValue : r1752_3 +# 1752| r1752_5(glval<unknown>) = FunctionAddress[m] : +# 1752| v1752_6(void) = Call[m] : func:r1752_5, this:r1752_4 +# 1752| m1752_7(unknown) = ^CallSideEffect : ~m1751_4 +# 1752| m1752_8(unknown) = Chi : total:m1751_4, partial:m1752_7 +# 1752| v1752_9(void) = ^IndirectReadSideEffect[-1] : &:r1752_4, ~m1751_8 +# 1754| r1754_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_inner] : +# 1754| r1754_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1754:29] : +# 1754| m1754_3(decltype([...](...){...})) = Uninitialized[#temp1754:29] : &:r1754_2 +# 1754| r1754_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1754_2 +# 1754| r1754_5(glval<unknown>) = VariableAddress[#this] : +# 1754| r1754_6(lambda [] type at line 1754, col. 30 *) = Load[#this] : &:r1754_5, m1751_6 +# 1754| r1754_7(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1754_6 +# 1754| r1754_8(TrivialLambdaClass) = Load[?] : &:r1754_7, ~m1751_8 +# 1754| m1754_9(TrivialLambdaClass) = Store[?] : &:r1754_4, r1754_8 +# 1754| r1754_10(decltype([...](...){...})) = Load[#temp1754:29] : &:r1754_2, ~m1754_9 +# 1754| m1754_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1754_1, r1754_10 +# 1757| v1757_1(void) = NoOp : +# 1751| v1751_9(void) = ReturnIndirection[#this] : &:r1751_7, m1751_8 +# 1751| v1751_10(void) = ReturnVoid : +# 1751| v1751_11(void) = AliasedUse : ~m1752_8 +# 1751| v1751_12(void) = ExitFunction : + +# 1754| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::operator()() const +# 1754| Block 0 +# 1754| v1754_1(void) = EnterFunction : +# 1754| m1754_2(unknown) = AliasedDefinition : +# 1754| m1754_3(unknown) = InitializeNonLocal : +# 1754| m1754_4(unknown) = Chi : total:m1754_2, partial:m1754_3 +# 1754| r1754_5(glval<unknown>) = VariableAddress[#this] : +# 1754| m1754_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1754_5 +# 1754| r1754_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1754_5, m1754_6 +# 1754| m1754_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1754_7 +# 1755| r1755_1(glval<unknown>) = VariableAddress[#this] : +# 1755| r1755_2(lambda [] type at line 1754, col. 30 *) = Load[#this] : &:r1755_1, m1754_6 +# 1755| r1755_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1755_2 +# 1755| r1755_4(TrivialLambdaClass *) = CopyValue : r1755_3 +# 1755| r1755_5(glval<unknown>) = FunctionAddress[m] : +# 1755| v1755_6(void) = Call[m] : func:r1755_5, this:r1755_4 +# 1755| m1755_7(unknown) = ^CallSideEffect : ~m1754_4 +# 1755| m1755_8(unknown) = Chi : total:m1754_4, partial:m1755_7 +# 1755| v1755_9(void) = ^IndirectReadSideEffect[-1] : &:r1755_4, ~m1754_8 +# 1756| v1756_1(void) = NoOp : +# 1754| v1754_9(void) = ReturnIndirection[#this] : &:r1754_7, m1754_8 +# 1754| v1754_10(void) = ReturnVoid : +# 1754| v1754_11(void) = AliasedUse : ~m1755_8 +# 1754| v1754_12(void) = ExitFunction : + +# 1761| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) +# 1761| Block 0 +# 1761| v1761_1(void) = EnterFunction : +# 1761| m1761_2(unknown) = AliasedDefinition : +# 1761| m1761_3(unknown) = InitializeNonLocal : +# 1761| m1761_4(unknown) = Chi : total:m1761_2, partial:m1761_3 +# 1761| r1761_5(glval<TrivialLambdaClass>) = VariableAddress[p1] : +# 1761| m1761_6(TrivialLambdaClass) = InitializeParameter[p1] : &:r1761_5 +# 1761| r1761_7(glval<TrivialLambdaClass &>) = VariableAddress[p2] : +# 1761| m1761_8(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1761_7 +# 1761| r1761_9(TrivialLambdaClass &) = Load[p2] : &:r1761_7, m1761_8 +# 1761| m1761_10(unknown) = InitializeIndirection[p2] : &:r1761_9 +# 1761| r1761_11(glval<TrivialLambdaClass &&>) = VariableAddress[p3] : +# 1761| m1761_12(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1761_11 +# 1761| r1761_13(TrivialLambdaClass &&) = Load[p3] : &:r1761_11, m1761_12 +# 1761| m1761_14(unknown) = InitializeIndirection[p3] : &:r1761_13 +# 1762| r1762_1(glval<TrivialLambdaClass>) = VariableAddress[l1] : +# 1762| m1762_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1762_1 +# 1763| r1763_1(glval<TrivialLambdaClass &>) = VariableAddress[l2] : +# 1763| r1763_2(glval<TrivialLambdaClass>) = VariableAddress[#temp1763:36] : +# 1763| r1763_3(TrivialLambdaClass) = Constant[0] : +# 1763| m1763_4(TrivialLambdaClass) = Store[#temp1763:36] : &:r1763_2, r1763_3 +# 1763| r1763_5(glval<TrivialLambdaClass>) = Convert : r1763_2 +# 1763| r1763_6(TrivialLambdaClass &) = CopyValue : r1763_5 +# 1763| m1763_7(TrivialLambdaClass &) = Store[l2] : &:r1763_1, r1763_6 +# 1765| r1765_1(glval<decltype([...](...){...})>) = VariableAddress[l_outer1] : +# 1765| r1765_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1765:20] : +# 1765| m1765_3(decltype([...](...){...})) = Uninitialized[#temp1765:20] : &:r1765_2 +# 1765| r1765_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1765_2 +# 1765| r1765_5(glval<TrivialLambdaClass>) = VariableAddress[p1] : +# 1765| r1765_6(TrivialLambdaClass) = Load[p1] : &:r1765_5, m1761_6 +# 1765| m1765_7(TrivialLambdaClass) = Store[?] : &:r1765_4, r1765_6 +# 1765| m1765_8(decltype([...](...){...})) = Chi : total:m1765_3, partial:m1765_7 +# 1765| r1765_9(glval<TrivialLambdaClass>) = FieldAddress[p2] : r1765_2 +# 1765| r1765_10(glval<TrivialLambdaClass &>) = VariableAddress[p2] : +# 1765| r1765_11(TrivialLambdaClass &) = Load[p2] : &:r1765_10, m1761_8 +#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1765_11, ~m1761_10 +#-----| m0_2(TrivialLambdaClass) = Store[?] : &:r1765_9, r0_1 +#-----| m0_3(decltype([...](...){...})) = Chi : total:m1765_8, partial:m0_2 +# 1765| r1765_12(glval<TrivialLambdaClass>) = FieldAddress[p3] : r1765_2 +# 1765| r1765_13(glval<TrivialLambdaClass &&>) = VariableAddress[p3] : +# 1765| r1765_14(TrivialLambdaClass &&) = Load[p3] : &:r1765_13, m1761_12 +#-----| r0_4(TrivialLambdaClass) = Load[?] : &:r1765_14, ~m1761_14 +#-----| m0_5(TrivialLambdaClass) = Store[?] : &:r1765_12, r0_4 +#-----| m0_6(decltype([...](...){...})) = Chi : total:m0_3, partial:m0_5 +# 1765| r1765_15(glval<TrivialLambdaClass>) = FieldAddress[l1] : r1765_2 +# 1765| r1765_16(glval<TrivialLambdaClass>) = VariableAddress[l1] : +# 1765| r1765_17(TrivialLambdaClass) = Load[l1] : &:r1765_16, m1762_2 +# 1765| m1765_18(TrivialLambdaClass) = Store[?] : &:r1765_15, r1765_17 +# 1765| m1765_19(decltype([...](...){...})) = Chi : total:m0_6, partial:m1765_18 +# 1765| r1765_20(glval<TrivialLambdaClass>) = FieldAddress[l2] : r1765_2 +# 1765| r1765_21(glval<TrivialLambdaClass &>) = VariableAddress[l2] : +# 1765| r1765_22(TrivialLambdaClass &) = Load[l2] : &:r1765_21, m1763_7 +#-----| r0_7(TrivialLambdaClass) = Load[?] : &:r1765_22, m1763_4 +#-----| m0_8(TrivialLambdaClass) = Store[?] : &:r1765_20, r0_7 +#-----| m0_9(decltype([...](...){...})) = Chi : total:m1765_19, partial:m0_8 +# 1765| r1765_23(decltype([...](...){...})) = Load[#temp1765:20] : &:r1765_2, m0_9 +# 1765| m1765_24(decltype([...](...){...})) = Store[l_outer1] : &:r1765_1, r1765_23 +# 1768| v1768_1(void) = NoOp : +# 1761| v1761_15(void) = ReturnIndirection[p2] : &:r1761_9, m1761_10 +# 1761| v1761_16(void) = ReturnIndirection[p3] : &:r1761_13, m1761_14 +# 1761| v1761_17(void) = ReturnVoid : +# 1761| v1761_18(void) = AliasedUse : m1761_3 +# 1761| v1761_19(void) = ExitFunction : + +# 1765| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const +# 1765| Block 0 +# 1765| v1765_1(void) = EnterFunction : +# 1765| m1765_2(unknown) = AliasedDefinition : +# 1765| m1765_3(unknown) = InitializeNonLocal : +# 1765| m1765_4(unknown) = Chi : total:m1765_2, partial:m1765_3 +# 1765| r1765_5(glval<unknown>) = VariableAddress[#this] : +# 1765| m1765_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1765_5 +# 1765| r1765_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1765_5, m1765_6 +# 1765| m1765_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1765_7 +# 1766| r1766_1(glval<decltype([...](...){...})>) = VariableAddress[l_inner1] : +# 1766| r1766_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1766:24] : +# 1766| m1766_3(decltype([...](...){...})) = Uninitialized[#temp1766:24] : &:r1766_2 +# 1766| r1766_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1766_2 +# 1766| r1766_5(glval<unknown>) = VariableAddress[#this] : +# 1766| r1766_6(lambda [] type at line 1766, col. 25 *) = Load[#this] : &:r1766_5, m1765_6 +# 1766| r1766_7(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1766_6 +# 1766| r1766_8(TrivialLambdaClass) = Load[?] : &:r1766_7, ~m1765_8 +# 1766| m1766_9(TrivialLambdaClass) = Store[?] : &:r1766_4, r1766_8 +# 1766| r1766_10(decltype([...](...){...})) = Load[#temp1766:24] : &:r1766_2, ~m1766_9 +# 1766| m1766_11(decltype([...](...){...})) = Store[l_inner1] : &:r1766_1, r1766_10 +# 1767| v1767_1(void) = NoOp : +# 1765| v1765_9(void) = ReturnIndirection[#this] : &:r1765_7, m1765_8 +# 1765| v1765_10(void) = ReturnVoid : +# 1765| v1765_11(void) = AliasedUse : m1765_3 +# 1765| v1765_12(void) = ExitFunction : + +# 1766| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::operator()() const +# 1766| Block 0 +# 1766| v1766_1(void) = EnterFunction : +# 1766| m1766_2(unknown) = AliasedDefinition : +# 1766| m1766_3(unknown) = InitializeNonLocal : +# 1766| m1766_4(unknown) = Chi : total:m1766_2, partial:m1766_3 +# 1766| r1766_5(glval<unknown>) = VariableAddress[#this] : +# 1766| m1766_6(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1766_5 +# 1766| r1766_7(glval<decltype([...](...){...})>) = Load[#this] : &:r1766_5, m1766_6 +# 1766| m1766_8(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1766_7 +# 1766| v1766_9(void) = NoOp : +# 1766| v1766_10(void) = ReturnIndirection[#this] : &:r1766_7, m1766_8 +# 1766| v1766_11(void) = ReturnVoid : +# 1766| v1766_12(void) = AliasedUse : m1766_3 +# 1766| v1766_13(void) = ExitFunction : + +# 1773| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() +# 1773| Block 0 +# 1773| v1773_1(void) = EnterFunction : +# 1773| m1773_2(unknown) = AliasedDefinition : +# 1773| m1773_3(unknown) = InitializeNonLocal : +# 1773| m1773_4(unknown) = Chi : total:m1773_2, partial:m1773_3 +# 1773| r1773_5(glval<unknown>) = VariableAddress[#this] : +# 1773| m1773_6(glval<CopyConstructorWithImplicitArgumentClass>) = InitializeParameter[#this] : &:r1773_5 +# 1773| r1773_7(glval<CopyConstructorWithImplicitArgumentClass>) = Load[#this] : &:r1773_5, m1773_6 +# 1773| m1773_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1773_7 +# 1773| v1773_9(void) = NoOp : +# 1773| v1773_10(void) = ReturnIndirection[#this] : &:r1773_7, m1773_8 +# 1773| v1773_11(void) = ReturnVoid : +# 1773| v1773_12(void) = AliasedUse : m1773_3 +# 1773| v1773_13(void) = ExitFunction : + +# 1774| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) +# 1774| Block 0 +# 1774| v1774_1(void) = EnterFunction : +# 1774| m1774_2(unknown) = AliasedDefinition : +# 1774| m1774_3(unknown) = InitializeNonLocal : +# 1774| m1774_4(unknown) = Chi : total:m1774_2, partial:m1774_3 +# 1774| r1774_5(glval<unknown>) = VariableAddress[#this] : +# 1774| m1774_6(glval<CopyConstructorWithImplicitArgumentClass>) = InitializeParameter[#this] : &:r1774_5 +# 1774| r1774_7(glval<CopyConstructorWithImplicitArgumentClass>) = Load[#this] : &:r1774_5, m1774_6 +# 1774| m1774_8(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1774_7 +# 1774| r1774_9(glval<CopyConstructorWithImplicitArgumentClass &>) = VariableAddress[c] : +# 1774| m1774_10(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1774_9 +# 1774| r1774_11(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1774_9, m1774_10 +# 1774| m1774_12(unknown) = InitializeIndirection[c] : &:r1774_11 +# 1775| r1775_1(glval<CopyConstructorWithImplicitArgumentClass &>) = VariableAddress[c] : +# 1775| r1775_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1775_1, m1774_10 +# 1775| r1775_3(glval<CopyConstructorWithImplicitArgumentClass>) = CopyValue : r1775_2 +# 1775| r1775_4(glval<int>) = FieldAddress[x] : r1775_3 +# 1775| r1775_5(int) = Load[?] : &:r1775_4, ~m1774_12 +# 1775| r1775_6(glval<unknown>) = VariableAddress[#this] : +# 1775| r1775_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1775_6, m1774_6 +# 1775| r1775_8(glval<int>) = FieldAddress[x] : r1775_7 +# 1775| m1775_9(int) = Store[?] : &:r1775_8, r1775_5 +# 1775| m1775_10(unknown) = Chi : total:m1774_8, partial:m1775_9 +# 1776| v1776_1(void) = NoOp : +# 1774| v1774_13(void) = ReturnIndirection[#this] : &:r1774_7, m1775_10 +# 1774| v1774_14(void) = ReturnIndirection[c] : &:r1774_11, m1774_12 +# 1774| v1774_15(void) = ReturnVoid : +# 1774| v1774_16(void) = AliasedUse : m1774_3 +# 1774| v1774_17(void) = ExitFunction : + +# 1782| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() +# 1782| Block 0 +# 1782| v1782_1(void) = EnterFunction : +# 1782| m1782_2(unknown) = AliasedDefinition : +# 1782| m1782_3(unknown) = InitializeNonLocal : +# 1782| m1782_4(unknown) = Chi : total:m1782_2, partial:m1782_3 +# 1782| r1782_5(glval<unknown>) = VariableAddress[#this] : +# 1782| m1782_6(glval<CopyConstructorWithBitwiseCopyClass>) = InitializeParameter[#this] : &:r1782_5 +# 1782| r1782_7(glval<CopyConstructorWithBitwiseCopyClass>) = Load[#this] : &:r1782_5, m1782_6 +# 1782| m1782_8(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1782_7 +# 1782| v1782_9(void) = NoOp : +# 1782| v1782_10(void) = ReturnIndirection[#this] : &:r1782_7, m1782_8 +# 1782| v1782_11(void) = ReturnVoid : +# 1782| v1782_12(void) = AliasedUse : m1782_3 +# 1782| v1782_13(void) = ExitFunction : + +# 1785| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1785| Block 0 +# 1785| v1785_1(void) = EnterFunction : +# 1785| m1785_2(unknown) = AliasedDefinition : +# 1785| m1785_3(unknown) = InitializeNonLocal : +# 1785| m1785_4(unknown) = Chi : total:m1785_2, partial:m1785_3 +# 1785| r1785_5(glval<unknown>) = VariableAddress[#this] : +# 1785| m1785_6(glval<CopyConstructorTestNonVirtualClass>) = InitializeParameter[#this] : &:r1785_5 +# 1785| r1785_7(glval<CopyConstructorTestNonVirtualClass>) = Load[#this] : &:r1785_5, m1785_6 +# 1785| m1785_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1785_7 #-----| r0_1(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1738| r1738_9(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1738_6 -# 1738| r1738_10(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1738| r1738_11(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : -# 1738| r1738_12(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1738_11, m0_2 -# 1738| r1738_13(glval<CopyConstructorTestNonVirtualClass>) = CopyValue : r1738_12 -# 1738| r1738_14(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1738_13 -# 1738| r1738_15(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1738_14 -# 1738| v1738_16(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1738_10, this:r1738_9, 0:r1738_15 -# 1738| m1738_17(unknown) = ^CallSideEffect : ~m1738_4 -# 1738| m1738_18(unknown) = Chi : total:m1738_4, partial:m1738_17 -# 1738| v1738_19(void) = ^BufferReadSideEffect[0] : &:r1738_15, ~m0_4 -# 1738| m1738_20(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1738_9 -# 1738| m1738_21(unknown) = Chi : total:m1738_8, partial:m1738_20 -# 1738| v1738_22(void) = NoOp : -# 1738| v1738_23(void) = ReturnIndirection[#this] : &:r1738_7, m1738_21 +# 1785| r1785_9(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1785_6 +# 1785| r1785_10(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1785| r1785_11(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : +# 1785| r1785_12(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1785_11, m0_2 +# 1785| r1785_13(glval<CopyConstructorTestNonVirtualClass>) = CopyValue : r1785_12 +# 1785| r1785_14(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1785_13 +# 1785| r1785_15(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1785_14 +# 1785| v1785_16(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1785_10, this:r1785_9, 0:r1785_15 +# 1785| m1785_17(unknown) = ^CallSideEffect : ~m1785_4 +# 1785| m1785_18(unknown) = Chi : total:m1785_4, partial:m1785_17 +# 1785| v1785_19(void) = ^BufferReadSideEffect[0] : &:r1785_15, ~m0_4 +# 1785| m1785_20(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1785_9 +# 1785| m1785_21(unknown) = Chi : total:m1785_8, partial:m1785_20 +# 1785| v1785_22(void) = NoOp : +# 1785| v1785_23(void) = ReturnIndirection[#this] : &:r1785_7, m1785_21 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1738| v1738_24(void) = ReturnVoid : -# 1738| v1738_25(void) = AliasedUse : ~m1738_18 -# 1738| v1738_26(void) = ExitFunction : +# 1785| v1785_24(void) = ReturnVoid : +# 1785| v1785_25(void) = AliasedUse : ~m1785_18 +# 1785| v1785_26(void) = ExitFunction : -# 1742| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() -# 1742| Block 0 -# 1742| v1742_1(void) = EnterFunction : -# 1742| m1742_2(unknown) = AliasedDefinition : -# 1742| m1742_3(unknown) = InitializeNonLocal : -# 1742| m1742_4(unknown) = Chi : total:m1742_2, partial:m1742_3 -# 1742| r1742_5(glval<unknown>) = VariableAddress[#this] : -# 1742| m1742_6(glval<CopyConstructorTestNonVirtualClass>) = InitializeParameter[#this] : &:r1742_5 -# 1742| r1742_7(glval<CopyConstructorTestNonVirtualClass>) = Load[#this] : &:r1742_5, m1742_6 -# 1742| m1742_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1742_7 -# 1742| r1742_9(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1742_6 -# 1742| r1742_10(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1742| v1742_11(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1742_10, this:r1742_9 -# 1742| m1742_12(unknown) = ^CallSideEffect : ~m1742_4 -# 1742| m1742_13(unknown) = Chi : total:m1742_4, partial:m1742_12 -# 1742| m1742_14(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1742_9 -# 1742| m1742_15(unknown) = Chi : total:m1742_8, partial:m1742_14 -# 1742| r1742_16(glval<CopyConstructorWithBitwiseCopyClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : m1742_6 -# 1742| r1742_17(glval<unknown>) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : -# 1742| v1742_18(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1742_17, this:r1742_16 -# 1742| m1742_19(unknown) = ^CallSideEffect : ~m1742_13 -# 1742| m1742_20(unknown) = Chi : total:m1742_13, partial:m1742_19 -# 1742| m1742_21(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1742_16 -# 1742| m1742_22(unknown) = Chi : total:m1742_15, partial:m1742_21 -# 1742| v1742_23(void) = NoOp : -# 1742| v1742_24(void) = ReturnIndirection[#this] : &:r1742_7, m1742_22 -# 1742| v1742_25(void) = ReturnVoid : -# 1742| v1742_26(void) = AliasedUse : ~m1742_20 -# 1742| v1742_27(void) = ExitFunction : +# 1789| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() +# 1789| Block 0 +# 1789| v1789_1(void) = EnterFunction : +# 1789| m1789_2(unknown) = AliasedDefinition : +# 1789| m1789_3(unknown) = InitializeNonLocal : +# 1789| m1789_4(unknown) = Chi : total:m1789_2, partial:m1789_3 +# 1789| r1789_5(glval<unknown>) = VariableAddress[#this] : +# 1789| m1789_6(glval<CopyConstructorTestNonVirtualClass>) = InitializeParameter[#this] : &:r1789_5 +# 1789| r1789_7(glval<CopyConstructorTestNonVirtualClass>) = Load[#this] : &:r1789_5, m1789_6 +# 1789| m1789_8(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1789_7 +# 1789| r1789_9(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1789_6 +# 1789| r1789_10(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1789| v1789_11(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1789_10, this:r1789_9 +# 1789| m1789_12(unknown) = ^CallSideEffect : ~m1789_4 +# 1789| m1789_13(unknown) = Chi : total:m1789_4, partial:m1789_12 +# 1789| m1789_14(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1789_9 +# 1789| m1789_15(unknown) = Chi : total:m1789_8, partial:m1789_14 +# 1789| r1789_16(glval<CopyConstructorWithBitwiseCopyClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : m1789_6 +# 1789| r1789_17(glval<unknown>) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1789| v1789_18(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1789_17, this:r1789_16 +# 1789| m1789_19(unknown) = ^CallSideEffect : ~m1789_13 +# 1789| m1789_20(unknown) = Chi : total:m1789_13, partial:m1789_19 +# 1789| m1789_21(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1789_16 +# 1789| m1789_22(unknown) = Chi : total:m1789_15, partial:m1789_21 +# 1789| v1789_23(void) = NoOp : +# 1789| v1789_24(void) = ReturnIndirection[#this] : &:r1789_7, m1789_22 +# 1789| v1789_25(void) = ReturnVoid : +# 1789| v1789_26(void) = AliasedUse : ~m1789_20 +# 1789| v1789_27(void) = ExitFunction : -# 1745| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) -# 1745| Block 0 -# 1745| v1745_1(void) = EnterFunction : -# 1745| m1745_2(unknown) = AliasedDefinition : -# 1745| m1745_3(unknown) = InitializeNonLocal : -# 1745| m1745_4(unknown) = Chi : total:m1745_2, partial:m1745_3 -# 1745| r1745_5(glval<unknown>) = VariableAddress[#this] : -# 1745| m1745_6(glval<CopyConstructorTestVirtualClass>) = InitializeParameter[#this] : &:r1745_5 -# 1745| r1745_7(glval<CopyConstructorTestVirtualClass>) = Load[#this] : &:r1745_5, m1745_6 -# 1745| m1745_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1745_7 +# 1792| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) +# 1792| Block 0 +# 1792| v1792_1(void) = EnterFunction : +# 1792| m1792_2(unknown) = AliasedDefinition : +# 1792| m1792_3(unknown) = InitializeNonLocal : +# 1792| m1792_4(unknown) = Chi : total:m1792_2, partial:m1792_3 +# 1792| r1792_5(glval<unknown>) = VariableAddress[#this] : +# 1792| m1792_6(glval<CopyConstructorTestVirtualClass>) = InitializeParameter[#this] : &:r1792_5 +# 1792| r1792_7(glval<CopyConstructorTestVirtualClass>) = Load[#this] : &:r1792_5, m1792_6 +# 1792| m1792_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1792_7 #-----| r0_1(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(CopyConstructorTestVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1745| r1745_9(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1745_6 -# 1745| r1745_10(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1745| r1745_11(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : -# 1745| r1745_12(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1745_11, m0_2 -# 1745| r1745_13(glval<CopyConstructorTestVirtualClass>) = CopyValue : r1745_12 -# 1745| r1745_14(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1745_13 -# 1745| r1745_15(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1745_14 -# 1745| v1745_16(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1745_10, this:r1745_9, 0:r1745_15 -# 1745| m1745_17(unknown) = ^CallSideEffect : ~m1745_4 -# 1745| m1745_18(unknown) = Chi : total:m1745_4, partial:m1745_17 -# 1745| v1745_19(void) = ^BufferReadSideEffect[0] : &:r1745_15, ~m0_4 -# 1745| m1745_20(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1745_9 -# 1745| m1745_21(unknown) = Chi : total:m1745_18, partial:m1745_20 -# 1745| v1745_22(void) = NoOp : -# 1745| v1745_23(void) = ReturnIndirection[#this] : &:r1745_7, m1745_8 +# 1792| r1792_9(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1792_6 +# 1792| r1792_10(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1792| r1792_11(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : +# 1792| r1792_12(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1792_11, m0_2 +# 1792| r1792_13(glval<CopyConstructorTestVirtualClass>) = CopyValue : r1792_12 +# 1792| r1792_14(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1792_13 +# 1792| r1792_15(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1792_14 +# 1792| v1792_16(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1792_10, this:r1792_9, 0:r1792_15 +# 1792| m1792_17(unknown) = ^CallSideEffect : ~m1792_4 +# 1792| m1792_18(unknown) = Chi : total:m1792_4, partial:m1792_17 +# 1792| v1792_19(void) = ^BufferReadSideEffect[0] : &:r1792_15, ~m0_4 +# 1792| m1792_20(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1792_9 +# 1792| m1792_21(unknown) = Chi : total:m1792_18, partial:m1792_20 +# 1792| v1792_22(void) = NoOp : +# 1792| v1792_23(void) = ReturnIndirection[#this] : &:r1792_7, m1792_8 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1745| v1745_24(void) = ReturnVoid : -# 1745| v1745_25(void) = AliasedUse : ~m1745_21 -# 1745| v1745_26(void) = ExitFunction : +# 1792| v1792_24(void) = ReturnVoid : +# 1792| v1792_25(void) = AliasedUse : ~m1792_21 +# 1792| v1792_26(void) = ExitFunction : -# 1749| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() -# 1749| Block 0 -# 1749| v1749_1(void) = EnterFunction : -# 1749| m1749_2(unknown) = AliasedDefinition : -# 1749| m1749_3(unknown) = InitializeNonLocal : -# 1749| m1749_4(unknown) = Chi : total:m1749_2, partial:m1749_3 -# 1749| r1749_5(glval<unknown>) = VariableAddress[#this] : -# 1749| m1749_6(glval<CopyConstructorTestVirtualClass>) = InitializeParameter[#this] : &:r1749_5 -# 1749| r1749_7(glval<CopyConstructorTestVirtualClass>) = Load[#this] : &:r1749_5, m1749_6 -# 1749| m1749_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1749_7 -# 1749| r1749_9(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1749_6 -# 1749| r1749_10(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1749| v1749_11(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1749_10, this:r1749_9 -# 1749| m1749_12(unknown) = ^CallSideEffect : ~m1749_4 -# 1749| m1749_13(unknown) = Chi : total:m1749_4, partial:m1749_12 -# 1749| m1749_14(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1749_9 -# 1749| m1749_15(unknown) = Chi : total:m1749_13, partial:m1749_14 -# 1749| r1749_16(glval<CopyConstructorWithBitwiseCopyClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : m1749_6 -# 1749| r1749_17(glval<unknown>) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : -# 1749| v1749_18(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1749_17, this:r1749_16 -# 1749| m1749_19(unknown) = ^CallSideEffect : ~m1749_15 -# 1749| m1749_20(unknown) = Chi : total:m1749_15, partial:m1749_19 -# 1749| m1749_21(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1749_16 -# 1749| m1749_22(unknown) = Chi : total:m1749_20, partial:m1749_21 -# 1749| v1749_23(void) = NoOp : -# 1749| v1749_24(void) = ReturnIndirection[#this] : &:r1749_7, m1749_8 -# 1749| v1749_25(void) = ReturnVoid : -# 1749| v1749_26(void) = AliasedUse : ~m1749_22 -# 1749| v1749_27(void) = ExitFunction : +# 1796| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() +# 1796| Block 0 +# 1796| v1796_1(void) = EnterFunction : +# 1796| m1796_2(unknown) = AliasedDefinition : +# 1796| m1796_3(unknown) = InitializeNonLocal : +# 1796| m1796_4(unknown) = Chi : total:m1796_2, partial:m1796_3 +# 1796| r1796_5(glval<unknown>) = VariableAddress[#this] : +# 1796| m1796_6(glval<CopyConstructorTestVirtualClass>) = InitializeParameter[#this] : &:r1796_5 +# 1796| r1796_7(glval<CopyConstructorTestVirtualClass>) = Load[#this] : &:r1796_5, m1796_6 +# 1796| m1796_8(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1796_7 +# 1796| r1796_9(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : m1796_6 +# 1796| r1796_10(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1796| v1796_11(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1796_10, this:r1796_9 +# 1796| m1796_12(unknown) = ^CallSideEffect : ~m1796_4 +# 1796| m1796_13(unknown) = Chi : total:m1796_4, partial:m1796_12 +# 1796| m1796_14(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1796_9 +# 1796| m1796_15(unknown) = Chi : total:m1796_13, partial:m1796_14 +# 1796| r1796_16(glval<CopyConstructorWithBitwiseCopyClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : m1796_6 +# 1796| r1796_17(glval<unknown>) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1796| v1796_18(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1796_17, this:r1796_16 +# 1796| m1796_19(unknown) = ^CallSideEffect : ~m1796_15 +# 1796| m1796_20(unknown) = Chi : total:m1796_15, partial:m1796_19 +# 1796| m1796_21(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1796_16 +# 1796| m1796_22(unknown) = Chi : total:m1796_20, partial:m1796_21 +# 1796| v1796_23(void) = NoOp : +# 1796| v1796_24(void) = ReturnIndirection[#this] : &:r1796_7, m1796_8 +# 1796| v1796_25(void) = ReturnVoid : +# 1796| v1796_26(void) = AliasedUse : ~m1796_22 +# 1796| v1796_27(void) = ExitFunction : -# 1752| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) -# 1752| Block 0 -# 1752| v1752_1(void) = EnterFunction : -# 1752| m1752_2(unknown) = AliasedDefinition : -# 1752| m1752_3(unknown) = InitializeNonLocal : -# 1752| m1752_4(unknown) = Chi : total:m1752_2, partial:m1752_3 -# 1753| r1753_1(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[x] : -# 1753| m1753_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1753_1 -# 1753| r1753_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1753_1, m1753_2 -# 1753| m1753_4(unknown) = InitializeIndirection[x] : &:r1753_3 -# 1754| r1754_1(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[y] : -# 1754| m1754_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1754_1 -# 1754| r1754_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1754_1, m1754_2 -# 1754| m1754_4(unknown) = InitializeIndirection[y] : &:r1754_3 -# 1755| r1755_1(glval<CopyConstructorTestNonVirtualClass>) = VariableAddress[cx] : -# 1755| m1755_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1755_1 -# 1755| r1755_3(glval<unknown>) = FunctionAddress[CopyConstructorTestNonVirtualClass] : -# 1755| r1755_4(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[x] : -# 1755| r1755_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1755_4, m1753_2 -# 1755| r1755_6(glval<CopyConstructorTestNonVirtualClass>) = CopyValue : r1755_5 -# 1755| r1755_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1755_6 -# 1755| v1755_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1755_3, this:r1755_1, 0:r1755_7 -# 1755| m1755_9(unknown) = ^CallSideEffect : ~m1752_4 -# 1755| m1755_10(unknown) = Chi : total:m1752_4, partial:m1755_9 -# 1755| v1755_11(void) = ^BufferReadSideEffect[0] : &:r1755_7, ~m1753_4 -# 1755| m1755_12(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1755_1 -# 1755| m1755_13(CopyConstructorTestNonVirtualClass) = Chi : total:m1755_2, partial:m1755_12 -# 1756| r1756_1(glval<CopyConstructorTestVirtualClass>) = VariableAddress[cy] : -# 1756| m1756_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1756_1 -# 1756| r1756_3(glval<unknown>) = FunctionAddress[CopyConstructorTestVirtualClass] : -# 1756| r1756_4(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[y] : -# 1756| r1756_5(CopyConstructorTestVirtualClass &) = Load[y] : &:r1756_4, m1754_2 -# 1756| r1756_6(glval<CopyConstructorTestVirtualClass>) = CopyValue : r1756_5 -# 1756| r1756_7(CopyConstructorTestVirtualClass &) = CopyValue : r1756_6 -# 1756| v1756_8(void) = Call[CopyConstructorTestVirtualClass] : func:r1756_3, this:r1756_1, 0:r1756_7 -# 1756| m1756_9(unknown) = ^CallSideEffect : ~m1755_10 -# 1756| m1756_10(unknown) = Chi : total:m1755_10, partial:m1756_9 -# 1756| v1756_11(void) = ^BufferReadSideEffect[0] : &:r1756_7, ~m1754_4 -# 1756| m1756_12(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1756_1 -# 1756| m1756_13(CopyConstructorTestVirtualClass) = Chi : total:m1756_2, partial:m1756_12 -# 1757| r1757_1(glval<int>) = VariableAddress[#return] : -# 1757| m1757_2(int) = Uninitialized[#return] : &:r1757_1 -# 1753| v1753_5(void) = ReturnIndirection[x] : &:r1753_3, m1753_4 -# 1754| v1754_5(void) = ReturnIndirection[y] : &:r1754_3, m1754_4 -# 1752| r1752_5(glval<int>) = VariableAddress[#return] : -# 1752| v1752_6(void) = ReturnValue : &:r1752_5, m1757_2 -# 1752| v1752_7(void) = AliasedUse : ~m1756_10 -# 1752| v1752_8(void) = ExitFunction : +# 1799| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) +# 1799| Block 0 +# 1799| v1799_1(void) = EnterFunction : +# 1799| m1799_2(unknown) = AliasedDefinition : +# 1799| m1799_3(unknown) = InitializeNonLocal : +# 1799| m1799_4(unknown) = Chi : total:m1799_2, partial:m1799_3 +# 1800| r1800_1(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[x] : +# 1800| m1800_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1800_1 +# 1800| r1800_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1800_1, m1800_2 +# 1800| m1800_4(unknown) = InitializeIndirection[x] : &:r1800_3 +# 1801| r1801_1(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[y] : +# 1801| m1801_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1801_1 +# 1801| r1801_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1801_1, m1801_2 +# 1801| m1801_4(unknown) = InitializeIndirection[y] : &:r1801_3 +# 1802| r1802_1(glval<CopyConstructorTestNonVirtualClass>) = VariableAddress[cx] : +# 1802| m1802_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1802_1 +# 1802| r1802_3(glval<unknown>) = FunctionAddress[CopyConstructorTestNonVirtualClass] : +# 1802| r1802_4(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[x] : +# 1802| r1802_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1802_4, m1800_2 +# 1802| r1802_6(glval<CopyConstructorTestNonVirtualClass>) = CopyValue : r1802_5 +# 1802| r1802_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1802_6 +# 1802| v1802_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1802_3, this:r1802_1, 0:r1802_7 +# 1802| m1802_9(unknown) = ^CallSideEffect : ~m1799_4 +# 1802| m1802_10(unknown) = Chi : total:m1799_4, partial:m1802_9 +# 1802| v1802_11(void) = ^BufferReadSideEffect[0] : &:r1802_7, ~m1800_4 +# 1802| m1802_12(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1802_1 +# 1802| m1802_13(CopyConstructorTestNonVirtualClass) = Chi : total:m1802_2, partial:m1802_12 +# 1803| r1803_1(glval<CopyConstructorTestVirtualClass>) = VariableAddress[cy] : +# 1803| m1803_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1803_1 +# 1803| r1803_3(glval<unknown>) = FunctionAddress[CopyConstructorTestVirtualClass] : +# 1803| r1803_4(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[y] : +# 1803| r1803_5(CopyConstructorTestVirtualClass &) = Load[y] : &:r1803_4, m1801_2 +# 1803| r1803_6(glval<CopyConstructorTestVirtualClass>) = CopyValue : r1803_5 +# 1803| r1803_7(CopyConstructorTestVirtualClass &) = CopyValue : r1803_6 +# 1803| v1803_8(void) = Call[CopyConstructorTestVirtualClass] : func:r1803_3, this:r1803_1, 0:r1803_7 +# 1803| m1803_9(unknown) = ^CallSideEffect : ~m1802_10 +# 1803| m1803_10(unknown) = Chi : total:m1802_10, partial:m1803_9 +# 1803| v1803_11(void) = ^BufferReadSideEffect[0] : &:r1803_7, ~m1801_4 +# 1803| m1803_12(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1803_1 +# 1803| m1803_13(CopyConstructorTestVirtualClass) = Chi : total:m1803_2, partial:m1803_12 +# 1804| r1804_1(glval<int>) = VariableAddress[#return] : +# 1804| m1804_2(int) = Uninitialized[#return] : &:r1804_1 +# 1800| v1800_5(void) = ReturnIndirection[x] : &:r1800_3, m1800_4 +# 1801| v1801_5(void) = ReturnIndirection[y] : &:r1801_3, m1801_4 +# 1799| r1799_5(glval<int>) = VariableAddress[#return] : +# 1799| v1799_6(void) = ReturnValue : &:r1799_5, m1804_2 +# 1799| v1799_7(void) = AliasedUse : ~m1803_10 +# 1799| v1799_8(void) = ExitFunction : -# 1759| void if_initialization(int) -# 1759| Block 0 -# 1759| v1759_1(void) = EnterFunction : -# 1759| m1759_2(unknown) = AliasedDefinition : -# 1759| m1759_3(unknown) = InitializeNonLocal : -# 1759| m1759_4(unknown) = Chi : total:m1759_2, partial:m1759_3 -# 1759| r1759_5(glval<int>) = VariableAddress[x] : -# 1759| m1759_6(int) = InitializeParameter[x] : &:r1759_5 -# 1760| r1760_1(glval<int>) = VariableAddress[y] : -# 1760| r1760_2(glval<int>) = VariableAddress[x] : -# 1760| r1760_3(int) = Load[x] : &:r1760_2, m1759_6 -# 1760| m1760_4(int) = Store[y] : &:r1760_1, r1760_3 -# 1760| r1760_5(glval<int>) = VariableAddress[x] : -# 1760| r1760_6(int) = Load[x] : &:r1760_5, m1759_6 -# 1760| r1760_7(int) = Constant[1] : -# 1760| r1760_8(int) = Add : r1760_6, r1760_7 -# 1760| r1760_9(int) = Constant[0] : -# 1760| r1760_10(bool) = CompareNE : r1760_8, r1760_9 -# 1760| v1760_11(void) = ConditionalBranch : r1760_10 +# 1806| void if_initialization(int) +# 1806| Block 0 +# 1806| v1806_1(void) = EnterFunction : +# 1806| m1806_2(unknown) = AliasedDefinition : +# 1806| m1806_3(unknown) = InitializeNonLocal : +# 1806| m1806_4(unknown) = Chi : total:m1806_2, partial:m1806_3 +# 1806| r1806_5(glval<int>) = VariableAddress[x] : +# 1806| m1806_6(int) = InitializeParameter[x] : &:r1806_5 +# 1807| r1807_1(glval<int>) = VariableAddress[y] : +# 1807| r1807_2(glval<int>) = VariableAddress[x] : +# 1807| r1807_3(int) = Load[x] : &:r1807_2, m1806_6 +# 1807| m1807_4(int) = Store[y] : &:r1807_1, r1807_3 +# 1807| r1807_5(glval<int>) = VariableAddress[x] : +# 1807| r1807_6(int) = Load[x] : &:r1807_5, m1806_6 +# 1807| r1807_7(int) = Constant[1] : +# 1807| r1807_8(int) = Add : r1807_6, r1807_7 +# 1807| r1807_9(int) = Constant[0] : +# 1807| r1807_10(bool) = CompareNE : r1807_8, r1807_9 +# 1807| v1807_11(void) = ConditionalBranch : r1807_10 #-----| False -> Block 2 #-----| True -> Block 1 -# 1761| Block 1 -# 1761| r1761_1(glval<int>) = VariableAddress[x] : -# 1761| r1761_2(int) = Load[x] : &:r1761_1, m1759_6 -# 1761| r1761_3(glval<int>) = VariableAddress[y] : -# 1761| r1761_4(int) = Load[y] : &:r1761_3, m1760_4 -# 1761| r1761_5(int) = Add : r1761_2, r1761_4 -# 1761| r1761_6(glval<int>) = VariableAddress[x] : -# 1761| m1761_7(int) = Store[x] : &:r1761_6, r1761_5 +# 1808| Block 1 +# 1808| r1808_1(glval<int>) = VariableAddress[x] : +# 1808| r1808_2(int) = Load[x] : &:r1808_1, m1806_6 +# 1808| r1808_3(glval<int>) = VariableAddress[y] : +# 1808| r1808_4(int) = Load[y] : &:r1808_3, m1807_4 +# 1808| r1808_5(int) = Add : r1808_2, r1808_4 +# 1808| r1808_6(glval<int>) = VariableAddress[x] : +# 1808| m1808_7(int) = Store[x] : &:r1808_6, r1808_5 #-----| Goto -> Block 2 -# 1764| Block 2 -# 1764| m1764_1(int) = Phi : from 0:m1759_6, from 1:m1761_7 -# 1764| r1764_2(glval<int>) = VariableAddress[w] : -# 1764| m1764_3(int) = Uninitialized[w] : &:r1764_2 -# 1765| r1765_1(glval<int>) = VariableAddress[x] : -# 1765| r1765_2(int) = Load[x] : &:r1765_1, m1764_1 -# 1765| r1765_3(glval<int>) = VariableAddress[w] : -# 1765| m1765_4(int) = Store[w] : &:r1765_3, r1765_2 -# 1765| r1765_5(glval<int>) = VariableAddress[x] : -# 1765| r1765_6(int) = Load[x] : &:r1765_5, m1764_1 -# 1765| r1765_7(int) = Constant[1] : -# 1765| r1765_8(int) = Add : r1765_6, r1765_7 -# 1765| r1765_9(int) = Constant[0] : -# 1765| r1765_10(bool) = CompareNE : r1765_8, r1765_9 -# 1765| v1765_11(void) = ConditionalBranch : r1765_10 +# 1811| Block 2 +# 1811| m1811_1(int) = Phi : from 0:m1806_6, from 1:m1808_7 +# 1811| r1811_2(glval<int>) = VariableAddress[w] : +# 1811| m1811_3(int) = Uninitialized[w] : &:r1811_2 +# 1812| r1812_1(glval<int>) = VariableAddress[x] : +# 1812| r1812_2(int) = Load[x] : &:r1812_1, m1811_1 +# 1812| r1812_3(glval<int>) = VariableAddress[w] : +# 1812| m1812_4(int) = Store[w] : &:r1812_3, r1812_2 +# 1812| r1812_5(glval<int>) = VariableAddress[x] : +# 1812| r1812_6(int) = Load[x] : &:r1812_5, m1811_1 +# 1812| r1812_7(int) = Constant[1] : +# 1812| r1812_8(int) = Add : r1812_6, r1812_7 +# 1812| r1812_9(int) = Constant[0] : +# 1812| r1812_10(bool) = CompareNE : r1812_8, r1812_9 +# 1812| v1812_11(void) = ConditionalBranch : r1812_10 #-----| False -> Block 4 #-----| True -> Block 3 -# 1766| Block 3 -# 1766| r1766_1(glval<int>) = VariableAddress[x] : -# 1766| r1766_2(int) = Load[x] : &:r1766_1, m1764_1 -# 1766| r1766_3(glval<int>) = VariableAddress[w] : -# 1766| r1766_4(int) = Load[w] : &:r1766_3, m1765_4 -# 1766| r1766_5(int) = Add : r1766_2, r1766_4 -# 1766| r1766_6(glval<int>) = VariableAddress[x] : -# 1766| m1766_7(int) = Store[x] : &:r1766_6, r1766_5 +# 1813| Block 3 +# 1813| r1813_1(glval<int>) = VariableAddress[x] : +# 1813| r1813_2(int) = Load[x] : &:r1813_1, m1811_1 +# 1813| r1813_3(glval<int>) = VariableAddress[w] : +# 1813| r1813_4(int) = Load[w] : &:r1813_3, m1812_4 +# 1813| r1813_5(int) = Add : r1813_2, r1813_4 +# 1813| r1813_6(glval<int>) = VariableAddress[x] : +# 1813| m1813_7(int) = Store[x] : &:r1813_6, r1813_5 #-----| Goto -> Block 4 -# 1769| Block 4 -# 1769| m1769_1(int) = Phi : from 2:m1764_1, from 3:m1766_7 -# 1769| r1769_2(glval<int>) = VariableAddress[x] : -# 1769| r1769_3(int) = Load[x] : &:r1769_2, m1769_1 -# 1769| r1769_4(glval<int>) = VariableAddress[w] : -# 1769| m1769_5(int) = Store[w] : &:r1769_4, r1769_3 -# 1769| r1769_6(glval<int>) = VariableAddress[w2] : -# 1769| r1769_7(glval<int>) = VariableAddress[w] : -# 1769| r1769_8(int) = Load[w] : &:r1769_7, m1769_5 -# 1769| m1769_9(int) = Store[w2] : &:r1769_6, r1769_8 -# 1769| r1769_10(glval<int>) = VariableAddress[w2] : -# 1769| r1769_11(int) = Load[w2] : &:r1769_10, m1769_9 -# 1769| r1769_12(int) = Constant[0] : -# 1769| r1769_13(bool) = CompareNE : r1769_11, r1769_12 -# 1769| r1769_14(bool) = CopyValue : r1769_13 -# 1769| v1769_15(void) = ConditionalBranch : r1769_14 +# 1816| Block 4 +# 1816| m1816_1(int) = Phi : from 2:m1811_1, from 3:m1813_7 +# 1816| r1816_2(glval<int>) = VariableAddress[x] : +# 1816| r1816_3(int) = Load[x] : &:r1816_2, m1816_1 +# 1816| r1816_4(glval<int>) = VariableAddress[w] : +# 1816| m1816_5(int) = Store[w] : &:r1816_4, r1816_3 +# 1816| r1816_6(glval<int>) = VariableAddress[w2] : +# 1816| r1816_7(glval<int>) = VariableAddress[w] : +# 1816| r1816_8(int) = Load[w] : &:r1816_7, m1816_5 +# 1816| m1816_9(int) = Store[w2] : &:r1816_6, r1816_8 +# 1816| r1816_10(glval<int>) = VariableAddress[w2] : +# 1816| r1816_11(int) = Load[w2] : &:r1816_10, m1816_9 +# 1816| r1816_12(int) = Constant[0] : +# 1816| r1816_13(bool) = CompareNE : r1816_11, r1816_12 +# 1816| r1816_14(bool) = CopyValue : r1816_13 +# 1816| v1816_15(void) = ConditionalBranch : r1816_14 #-----| False -> Block 6 #-----| True -> Block 5 -# 1770| Block 5 -# 1770| r1770_1(glval<int>) = VariableAddress[x] : -# 1770| r1770_2(int) = Load[x] : &:r1770_1, m1769_1 -# 1770| r1770_3(glval<int>) = VariableAddress[w] : -# 1770| r1770_4(int) = Load[w] : &:r1770_3, m1769_5 -# 1770| r1770_5(int) = Add : r1770_2, r1770_4 -# 1770| r1770_6(glval<int>) = VariableAddress[x] : -# 1770| m1770_7(int) = Store[x] : &:r1770_6, r1770_5 +# 1817| Block 5 +# 1817| r1817_1(glval<int>) = VariableAddress[x] : +# 1817| r1817_2(int) = Load[x] : &:r1817_1, m1816_1 +# 1817| r1817_3(glval<int>) = VariableAddress[w] : +# 1817| r1817_4(int) = Load[w] : &:r1817_3, m1816_5 +# 1817| r1817_5(int) = Add : r1817_2, r1817_4 +# 1817| r1817_6(glval<int>) = VariableAddress[x] : +# 1817| m1817_7(int) = Store[x] : &:r1817_6, r1817_5 #-----| Goto -> Block 6 -# 1773| Block 6 -# 1773| m1773_1(int) = Phi : from 4:m1769_1, from 5:m1770_7 -# 1773| r1773_2(glval<int>) = VariableAddress[v] : -# 1773| r1773_3(glval<int>) = VariableAddress[x] : -# 1773| r1773_4(int) = Load[x] : &:r1773_3, m1773_1 -# 1773| m1773_5(int) = Store[v] : &:r1773_2, r1773_4 -# 1773| r1773_6(glval<int>) = VariableAddress[v2] : -# 1773| r1773_7(glval<int>) = VariableAddress[v] : -# 1773| r1773_8(int) = Load[v] : &:r1773_7, m1773_5 -# 1773| m1773_9(int) = Store[v2] : &:r1773_6, r1773_8 -# 1773| r1773_10(glval<int>) = VariableAddress[v2] : -# 1773| r1773_11(int) = Load[v2] : &:r1773_10, m1773_9 -# 1773| r1773_12(int) = Constant[0] : -# 1773| r1773_13(bool) = CompareNE : r1773_11, r1773_12 -# 1773| r1773_14(bool) = CopyValue : r1773_13 -# 1773| v1773_15(void) = ConditionalBranch : r1773_14 +# 1820| Block 6 +# 1820| m1820_1(int) = Phi : from 4:m1816_1, from 5:m1817_7 +# 1820| r1820_2(glval<int>) = VariableAddress[v] : +# 1820| r1820_3(glval<int>) = VariableAddress[x] : +# 1820| r1820_4(int) = Load[x] : &:r1820_3, m1820_1 +# 1820| m1820_5(int) = Store[v] : &:r1820_2, r1820_4 +# 1820| r1820_6(glval<int>) = VariableAddress[v2] : +# 1820| r1820_7(glval<int>) = VariableAddress[v] : +# 1820| r1820_8(int) = Load[v] : &:r1820_7, m1820_5 +# 1820| m1820_9(int) = Store[v2] : &:r1820_6, r1820_8 +# 1820| r1820_10(glval<int>) = VariableAddress[v2] : +# 1820| r1820_11(int) = Load[v2] : &:r1820_10, m1820_9 +# 1820| r1820_12(int) = Constant[0] : +# 1820| r1820_13(bool) = CompareNE : r1820_11, r1820_12 +# 1820| r1820_14(bool) = CopyValue : r1820_13 +# 1820| v1820_15(void) = ConditionalBranch : r1820_14 #-----| False -> Block 8 #-----| True -> Block 7 -# 1774| Block 7 -# 1774| r1774_1(glval<int>) = VariableAddress[x] : -# 1774| r1774_2(int) = Load[x] : &:r1774_1, m1773_1 -# 1774| r1774_3(glval<int>) = VariableAddress[v] : -# 1774| r1774_4(int) = Load[v] : &:r1774_3, m1773_5 -# 1774| r1774_5(int) = Add : r1774_2, r1774_4 -# 1774| r1774_6(glval<int>) = VariableAddress[x] : -# 1774| m1774_7(int) = Store[x] : &:r1774_6, r1774_5 +# 1821| Block 7 +# 1821| r1821_1(glval<int>) = VariableAddress[x] : +# 1821| r1821_2(int) = Load[x] : &:r1821_1, m1820_1 +# 1821| r1821_3(glval<int>) = VariableAddress[v] : +# 1821| r1821_4(int) = Load[v] : &:r1821_3, m1820_5 +# 1821| r1821_5(int) = Add : r1821_2, r1821_4 +# 1821| r1821_6(glval<int>) = VariableAddress[x] : +# 1821| m1821_7(int) = Store[x] : &:r1821_6, r1821_5 #-----| Goto -> Block 8 -# 1777| Block 8 -# 1777| m1777_1(int) = Phi : from 6:m1773_1, from 7:m1774_7 -# 1777| r1777_2(glval<int>) = VariableAddress[z] : -# 1777| r1777_3(glval<int>) = VariableAddress[x] : -# 1777| r1777_4(int) = Load[x] : &:r1777_3, m1777_1 -# 1777| m1777_5(int) = Store[z] : &:r1777_2, r1777_4 -# 1778| r1778_1(glval<int>) = VariableAddress[z] : -# 1778| r1778_2(int) = Load[z] : &:r1778_1, m1777_5 -# 1778| r1778_3(int) = Constant[0] : -# 1778| r1778_4(bool) = CompareNE : r1778_2, r1778_3 -# 1778| v1778_5(void) = ConditionalBranch : r1778_4 +# 1824| Block 8 +# 1824| m1824_1(int) = Phi : from 6:m1820_1, from 7:m1821_7 +# 1824| r1824_2(glval<int>) = VariableAddress[z] : +# 1824| r1824_3(glval<int>) = VariableAddress[x] : +# 1824| r1824_4(int) = Load[x] : &:r1824_3, m1824_1 +# 1824| m1824_5(int) = Store[z] : &:r1824_2, r1824_4 +# 1825| r1825_1(glval<int>) = VariableAddress[z] : +# 1825| r1825_2(int) = Load[z] : &:r1825_1, m1824_5 +# 1825| r1825_3(int) = Constant[0] : +# 1825| r1825_4(bool) = CompareNE : r1825_2, r1825_3 +# 1825| v1825_5(void) = ConditionalBranch : r1825_4 #-----| False -> Block 10 #-----| True -> Block 9 -# 1779| Block 9 -# 1779| r1779_1(glval<int>) = VariableAddress[x] : -# 1779| r1779_2(int) = Load[x] : &:r1779_1, m1777_1 -# 1779| r1779_3(glval<int>) = VariableAddress[z] : -# 1779| r1779_4(int) = Load[z] : &:r1779_3, m1777_5 -# 1779| r1779_5(int) = Add : r1779_2, r1779_4 -# 1779| r1779_6(glval<int>) = VariableAddress[x] : -# 1779| m1779_7(int) = Store[x] : &:r1779_6, r1779_5 +# 1826| Block 9 +# 1826| r1826_1(glval<int>) = VariableAddress[x] : +# 1826| r1826_2(int) = Load[x] : &:r1826_1, m1824_1 +# 1826| r1826_3(glval<int>) = VariableAddress[z] : +# 1826| r1826_4(int) = Load[z] : &:r1826_3, m1824_5 +# 1826| r1826_5(int) = Add : r1826_2, r1826_4 +# 1826| r1826_6(glval<int>) = VariableAddress[x] : +# 1826| m1826_7(int) = Store[x] : &:r1826_6, r1826_5 #-----| Goto -> Block 10 -# 1782| Block 10 -# 1782| m1782_1(int) = Phi : from 8:m1777_1, from 9:m1779_7 -# 1782| r1782_2(glval<int>) = VariableAddress[z2] : -# 1782| r1782_3(glval<int>) = VariableAddress[z] : -# 1782| r1782_4(int) = Load[z] : &:r1782_3, m1777_5 -# 1782| m1782_5(int) = Store[z2] : &:r1782_2, r1782_4 -# 1782| r1782_6(glval<int>) = VariableAddress[z2] : -# 1782| r1782_7(int) = Load[z2] : &:r1782_6, m1782_5 -# 1782| r1782_8(int) = Constant[0] : -# 1782| r1782_9(bool) = CompareNE : r1782_7, r1782_8 -# 1782| r1782_10(bool) = CopyValue : r1782_9 -# 1782| v1782_11(void) = ConditionalBranch : r1782_10 +# 1829| Block 10 +# 1829| m1829_1(int) = Phi : from 8:m1824_1, from 9:m1826_7 +# 1829| r1829_2(glval<int>) = VariableAddress[z2] : +# 1829| r1829_3(glval<int>) = VariableAddress[z] : +# 1829| r1829_4(int) = Load[z] : &:r1829_3, m1824_5 +# 1829| m1829_5(int) = Store[z2] : &:r1829_2, r1829_4 +# 1829| r1829_6(glval<int>) = VariableAddress[z2] : +# 1829| r1829_7(int) = Load[z2] : &:r1829_6, m1829_5 +# 1829| r1829_8(int) = Constant[0] : +# 1829| r1829_9(bool) = CompareNE : r1829_7, r1829_8 +# 1829| r1829_10(bool) = CopyValue : r1829_9 +# 1829| v1829_11(void) = ConditionalBranch : r1829_10 #-----| False -> Block 12 #-----| True -> Block 11 -# 1783| Block 11 -# 1783| r1783_1(glval<int>) = VariableAddress[z2] : -# 1783| r1783_2(int) = Load[z2] : &:r1783_1, m1782_5 -# 1783| r1783_3(glval<int>) = VariableAddress[x] : -# 1783| r1783_4(int) = Load[x] : &:r1783_3, m1782_1 -# 1783| r1783_5(int) = Add : r1783_4, r1783_2 -# 1783| m1783_6(int) = Store[x] : &:r1783_3, r1783_5 +# 1830| Block 11 +# 1830| r1830_1(glval<int>) = VariableAddress[z2] : +# 1830| r1830_2(int) = Load[z2] : &:r1830_1, m1829_5 +# 1830| r1830_3(glval<int>) = VariableAddress[x] : +# 1830| r1830_4(int) = Load[x] : &:r1830_3, m1829_1 +# 1830| r1830_5(int) = Add : r1830_4, r1830_2 +# 1830| m1830_6(int) = Store[x] : &:r1830_3, r1830_5 #-----| Goto -> Block 12 -# 1785| Block 12 -# 1785| v1785_1(void) = NoOp : -# 1759| v1759_7(void) = ReturnVoid : -# 1759| v1759_8(void) = AliasedUse : m1759_3 -# 1759| v1759_9(void) = ExitFunction : +# 1832| Block 12 +# 1832| v1832_1(void) = NoOp : +# 1806| v1806_7(void) = ReturnVoid : +# 1806| v1806_8(void) = AliasedUse : m1806_3 +# 1806| v1806_9(void) = ExitFunction : -# 1787| void switch_initialization(int) -# 1787| Block 0 -# 1787| v1787_1(void) = EnterFunction : -# 1787| m1787_2(unknown) = AliasedDefinition : -# 1787| m1787_3(unknown) = InitializeNonLocal : -# 1787| m1787_4(unknown) = Chi : total:m1787_2, partial:m1787_3 -# 1787| r1787_5(glval<int>) = VariableAddress[x] : -# 1787| m1787_6(int) = InitializeParameter[x] : &:r1787_5 -# 1788| r1788_1(glval<int>) = VariableAddress[y] : -# 1788| r1788_2(glval<int>) = VariableAddress[x] : -# 1788| r1788_3(int) = Load[x] : &:r1788_2, m1787_6 -# 1788| m1788_4(int) = Store[y] : &:r1788_1, r1788_3 -# 1788| r1788_5(glval<int>) = VariableAddress[x] : -# 1788| r1788_6(int) = Load[x] : &:r1788_5, m1787_6 -# 1788| r1788_7(int) = Constant[1] : -# 1788| r1788_8(int) = Add : r1788_6, r1788_7 -# 1788| v1788_9(void) = Switch : r1788_8 +# 1834| void switch_initialization(int) +# 1834| Block 0 +# 1834| v1834_1(void) = EnterFunction : +# 1834| m1834_2(unknown) = AliasedDefinition : +# 1834| m1834_3(unknown) = InitializeNonLocal : +# 1834| m1834_4(unknown) = Chi : total:m1834_2, partial:m1834_3 +# 1834| r1834_5(glval<int>) = VariableAddress[x] : +# 1834| m1834_6(int) = InitializeParameter[x] : &:r1834_5 +# 1835| r1835_1(glval<int>) = VariableAddress[y] : +# 1835| r1835_2(glval<int>) = VariableAddress[x] : +# 1835| r1835_3(int) = Load[x] : &:r1835_2, m1834_6 +# 1835| m1835_4(int) = Store[y] : &:r1835_1, r1835_3 +# 1835| r1835_5(glval<int>) = VariableAddress[x] : +# 1835| r1835_6(int) = Load[x] : &:r1835_5, m1834_6 +# 1835| r1835_7(int) = Constant[1] : +# 1835| r1835_8(int) = Add : r1835_6, r1835_7 +# 1835| v1835_9(void) = Switch : r1835_8 #-----| Default -> Block 1 -# 1789| Block 1 -# 1789| v1789_1(void) = NoOp : -# 1790| r1790_1(glval<int>) = VariableAddress[x] : -# 1790| r1790_2(int) = Load[x] : &:r1790_1, m1787_6 -# 1790| r1790_3(glval<int>) = VariableAddress[y] : -# 1790| r1790_4(int) = Load[y] : &:r1790_3, m1788_4 -# 1790| r1790_5(int) = Add : r1790_2, r1790_4 -# 1790| r1790_6(glval<int>) = VariableAddress[x] : -# 1790| m1790_7(int) = Store[x] : &:r1790_6, r1790_5 -# 1793| r1793_1(glval<int>) = VariableAddress[w] : -# 1793| m1793_2(int) = Uninitialized[w] : &:r1793_1 -# 1794| r1794_1(glval<int>) = VariableAddress[x] : -# 1794| r1794_2(int) = Load[x] : &:r1794_1, m1790_7 -# 1794| r1794_3(glval<int>) = VariableAddress[w] : -# 1794| m1794_4(int) = Store[w] : &:r1794_3, r1794_2 -# 1794| r1794_5(glval<int>) = VariableAddress[x] : -# 1794| r1794_6(int) = Load[x] : &:r1794_5, m1790_7 -# 1794| r1794_7(int) = Constant[1] : -# 1794| r1794_8(int) = Add : r1794_6, r1794_7 -# 1794| v1794_9(void) = Switch : r1794_8 +# 1836| Block 1 +# 1836| v1836_1(void) = NoOp : +# 1837| r1837_1(glval<int>) = VariableAddress[x] : +# 1837| r1837_2(int) = Load[x] : &:r1837_1, m1834_6 +# 1837| r1837_3(glval<int>) = VariableAddress[y] : +# 1837| r1837_4(int) = Load[y] : &:r1837_3, m1835_4 +# 1837| r1837_5(int) = Add : r1837_2, r1837_4 +# 1837| r1837_6(glval<int>) = VariableAddress[x] : +# 1837| m1837_7(int) = Store[x] : &:r1837_6, r1837_5 +# 1840| r1840_1(glval<int>) = VariableAddress[w] : +# 1840| m1840_2(int) = Uninitialized[w] : &:r1840_1 +# 1841| r1841_1(glval<int>) = VariableAddress[x] : +# 1841| r1841_2(int) = Load[x] : &:r1841_1, m1837_7 +# 1841| r1841_3(glval<int>) = VariableAddress[w] : +# 1841| m1841_4(int) = Store[w] : &:r1841_3, r1841_2 +# 1841| r1841_5(glval<int>) = VariableAddress[x] : +# 1841| r1841_6(int) = Load[x] : &:r1841_5, m1837_7 +# 1841| r1841_7(int) = Constant[1] : +# 1841| r1841_8(int) = Add : r1841_6, r1841_7 +# 1841| v1841_9(void) = Switch : r1841_8 #-----| Default -> Block 2 -# 1795| Block 2 -# 1795| v1795_1(void) = NoOp : -# 1796| r1796_1(glval<int>) = VariableAddress[x] : -# 1796| r1796_2(int) = Load[x] : &:r1796_1, m1790_7 -# 1796| r1796_3(glval<int>) = VariableAddress[w] : -# 1796| r1796_4(int) = Load[w] : &:r1796_3, m1794_4 -# 1796| r1796_5(int) = Add : r1796_2, r1796_4 -# 1796| r1796_6(glval<int>) = VariableAddress[x] : -# 1796| m1796_7(int) = Store[x] : &:r1796_6, r1796_5 -# 1799| r1799_1(glval<int>) = VariableAddress[x] : -# 1799| r1799_2(int) = Load[x] : &:r1799_1, m1796_7 -# 1799| r1799_3(glval<int>) = VariableAddress[w] : -# 1799| m1799_4(int) = Store[w] : &:r1799_3, r1799_2 -# 1799| r1799_5(glval<int>) = VariableAddress[w2] : -# 1799| r1799_6(glval<int>) = VariableAddress[w] : -# 1799| r1799_7(int) = Load[w] : &:r1799_6, m1799_4 -# 1799| m1799_8(int) = Store[w2] : &:r1799_5, r1799_7 -# 1799| r1799_9(glval<int>) = VariableAddress[w2] : -# 1799| r1799_10(int) = Load[w2] : &:r1799_9, m1799_8 -# 1799| r1799_11(int) = CopyValue : r1799_10 -# 1799| v1799_12(void) = Switch : r1799_11 +# 1842| Block 2 +# 1842| v1842_1(void) = NoOp : +# 1843| r1843_1(glval<int>) = VariableAddress[x] : +# 1843| r1843_2(int) = Load[x] : &:r1843_1, m1837_7 +# 1843| r1843_3(glval<int>) = VariableAddress[w] : +# 1843| r1843_4(int) = Load[w] : &:r1843_3, m1841_4 +# 1843| r1843_5(int) = Add : r1843_2, r1843_4 +# 1843| r1843_6(glval<int>) = VariableAddress[x] : +# 1843| m1843_7(int) = Store[x] : &:r1843_6, r1843_5 +# 1846| r1846_1(glval<int>) = VariableAddress[x] : +# 1846| r1846_2(int) = Load[x] : &:r1846_1, m1843_7 +# 1846| r1846_3(glval<int>) = VariableAddress[w] : +# 1846| m1846_4(int) = Store[w] : &:r1846_3, r1846_2 +# 1846| r1846_5(glval<int>) = VariableAddress[w2] : +# 1846| r1846_6(glval<int>) = VariableAddress[w] : +# 1846| r1846_7(int) = Load[w] : &:r1846_6, m1846_4 +# 1846| m1846_8(int) = Store[w2] : &:r1846_5, r1846_7 +# 1846| r1846_9(glval<int>) = VariableAddress[w2] : +# 1846| r1846_10(int) = Load[w2] : &:r1846_9, m1846_8 +# 1846| r1846_11(int) = CopyValue : r1846_10 +# 1846| v1846_12(void) = Switch : r1846_11 #-----| Default -> Block 3 -# 1800| Block 3 -# 1800| v1800_1(void) = NoOp : -# 1801| r1801_1(glval<int>) = VariableAddress[x] : -# 1801| r1801_2(int) = Load[x] : &:r1801_1, m1796_7 -# 1801| r1801_3(glval<int>) = VariableAddress[w] : -# 1801| r1801_4(int) = Load[w] : &:r1801_3, m1799_4 -# 1801| r1801_5(int) = Add : r1801_2, r1801_4 -# 1801| r1801_6(glval<int>) = VariableAddress[x] : -# 1801| m1801_7(int) = Store[x] : &:r1801_6, r1801_5 -# 1804| r1804_1(glval<int>) = VariableAddress[v] : -# 1804| r1804_2(glval<int>) = VariableAddress[x] : -# 1804| r1804_3(int) = Load[x] : &:r1804_2, m1801_7 -# 1804| m1804_4(int) = Store[v] : &:r1804_1, r1804_3 -# 1804| r1804_5(glval<int>) = VariableAddress[v2] : -# 1804| r1804_6(glval<int>) = VariableAddress[v] : -# 1804| r1804_7(int) = Load[v] : &:r1804_6, m1804_4 -# 1804| m1804_8(int) = Store[v2] : &:r1804_5, r1804_7 -# 1804| r1804_9(glval<int>) = VariableAddress[v2] : -# 1804| r1804_10(int) = Load[v2] : &:r1804_9, m1804_8 -# 1804| r1804_11(int) = CopyValue : r1804_10 -# 1804| v1804_12(void) = Switch : r1804_11 +# 1847| Block 3 +# 1847| v1847_1(void) = NoOp : +# 1848| r1848_1(glval<int>) = VariableAddress[x] : +# 1848| r1848_2(int) = Load[x] : &:r1848_1, m1843_7 +# 1848| r1848_3(glval<int>) = VariableAddress[w] : +# 1848| r1848_4(int) = Load[w] : &:r1848_3, m1846_4 +# 1848| r1848_5(int) = Add : r1848_2, r1848_4 +# 1848| r1848_6(glval<int>) = VariableAddress[x] : +# 1848| m1848_7(int) = Store[x] : &:r1848_6, r1848_5 +# 1851| r1851_1(glval<int>) = VariableAddress[v] : +# 1851| r1851_2(glval<int>) = VariableAddress[x] : +# 1851| r1851_3(int) = Load[x] : &:r1851_2, m1848_7 +# 1851| m1851_4(int) = Store[v] : &:r1851_1, r1851_3 +# 1851| r1851_5(glval<int>) = VariableAddress[v2] : +# 1851| r1851_6(glval<int>) = VariableAddress[v] : +# 1851| r1851_7(int) = Load[v] : &:r1851_6, m1851_4 +# 1851| m1851_8(int) = Store[v2] : &:r1851_5, r1851_7 +# 1851| r1851_9(glval<int>) = VariableAddress[v2] : +# 1851| r1851_10(int) = Load[v2] : &:r1851_9, m1851_8 +# 1851| r1851_11(int) = CopyValue : r1851_10 +# 1851| v1851_12(void) = Switch : r1851_11 #-----| Default -> Block 4 -# 1805| Block 4 -# 1805| v1805_1(void) = NoOp : -# 1806| r1806_1(glval<int>) = VariableAddress[x] : -# 1806| r1806_2(int) = Load[x] : &:r1806_1, m1801_7 -# 1806| r1806_3(glval<int>) = VariableAddress[v] : -# 1806| r1806_4(int) = Load[v] : &:r1806_3, m1804_4 -# 1806| r1806_5(int) = Add : r1806_2, r1806_4 -# 1806| r1806_6(glval<int>) = VariableAddress[x] : -# 1806| m1806_7(int) = Store[x] : &:r1806_6, r1806_5 -# 1809| r1809_1(glval<int>) = VariableAddress[z] : -# 1809| r1809_2(glval<int>) = VariableAddress[x] : -# 1809| r1809_3(int) = Load[x] : &:r1809_2, m1806_7 -# 1809| m1809_4(int) = Store[z] : &:r1809_1, r1809_3 -# 1810| r1810_1(glval<int>) = VariableAddress[z] : -# 1810| r1810_2(int) = Load[z] : &:r1810_1, m1809_4 -# 1810| v1810_3(void) = Switch : r1810_2 +# 1852| Block 4 +# 1852| v1852_1(void) = NoOp : +# 1853| r1853_1(glval<int>) = VariableAddress[x] : +# 1853| r1853_2(int) = Load[x] : &:r1853_1, m1848_7 +# 1853| r1853_3(glval<int>) = VariableAddress[v] : +# 1853| r1853_4(int) = Load[v] : &:r1853_3, m1851_4 +# 1853| r1853_5(int) = Add : r1853_2, r1853_4 +# 1853| r1853_6(glval<int>) = VariableAddress[x] : +# 1853| m1853_7(int) = Store[x] : &:r1853_6, r1853_5 +# 1856| r1856_1(glval<int>) = VariableAddress[z] : +# 1856| r1856_2(glval<int>) = VariableAddress[x] : +# 1856| r1856_3(int) = Load[x] : &:r1856_2, m1853_7 +# 1856| m1856_4(int) = Store[z] : &:r1856_1, r1856_3 +# 1857| r1857_1(glval<int>) = VariableAddress[z] : +# 1857| r1857_2(int) = Load[z] : &:r1857_1, m1856_4 +# 1857| v1857_3(void) = Switch : r1857_2 #-----| Default -> Block 5 -# 1811| Block 5 -# 1811| v1811_1(void) = NoOp : -# 1812| r1812_1(glval<int>) = VariableAddress[x] : -# 1812| r1812_2(int) = Load[x] : &:r1812_1, m1806_7 -# 1812| r1812_3(glval<int>) = VariableAddress[z] : -# 1812| r1812_4(int) = Load[z] : &:r1812_3, m1809_4 -# 1812| r1812_5(int) = Add : r1812_2, r1812_4 -# 1812| r1812_6(glval<int>) = VariableAddress[x] : -# 1812| m1812_7(int) = Store[x] : &:r1812_6, r1812_5 -# 1815| r1815_1(glval<int>) = VariableAddress[z2] : -# 1815| r1815_2(glval<int>) = VariableAddress[z] : -# 1815| r1815_3(int) = Load[z] : &:r1815_2, m1809_4 -# 1815| m1815_4(int) = Store[z2] : &:r1815_1, r1815_3 -# 1815| r1815_5(glval<int>) = VariableAddress[z2] : -# 1815| r1815_6(int) = Load[z2] : &:r1815_5, m1815_4 -# 1815| r1815_7(int) = CopyValue : r1815_6 -# 1815| v1815_8(void) = Switch : r1815_7 +# 1858| Block 5 +# 1858| v1858_1(void) = NoOp : +# 1859| r1859_1(glval<int>) = VariableAddress[x] : +# 1859| r1859_2(int) = Load[x] : &:r1859_1, m1853_7 +# 1859| r1859_3(glval<int>) = VariableAddress[z] : +# 1859| r1859_4(int) = Load[z] : &:r1859_3, m1856_4 +# 1859| r1859_5(int) = Add : r1859_2, r1859_4 +# 1859| r1859_6(glval<int>) = VariableAddress[x] : +# 1859| m1859_7(int) = Store[x] : &:r1859_6, r1859_5 +# 1862| r1862_1(glval<int>) = VariableAddress[z2] : +# 1862| r1862_2(glval<int>) = VariableAddress[z] : +# 1862| r1862_3(int) = Load[z] : &:r1862_2, m1856_4 +# 1862| m1862_4(int) = Store[z2] : &:r1862_1, r1862_3 +# 1862| r1862_5(glval<int>) = VariableAddress[z2] : +# 1862| r1862_6(int) = Load[z2] : &:r1862_5, m1862_4 +# 1862| r1862_7(int) = CopyValue : r1862_6 +# 1862| v1862_8(void) = Switch : r1862_7 #-----| Default -> Block 6 -# 1816| Block 6 -# 1816| v1816_1(void) = NoOp : -# 1817| r1817_1(glval<int>) = VariableAddress[z2] : -# 1817| r1817_2(int) = Load[z2] : &:r1817_1, m1815_4 -# 1817| r1817_3(glval<int>) = VariableAddress[x] : -# 1817| r1817_4(int) = Load[x] : &:r1817_3, m1812_7 -# 1817| r1817_5(int) = Add : r1817_4, r1817_2 -# 1817| m1817_6(int) = Store[x] : &:r1817_3, r1817_5 -# 1819| v1819_1(void) = NoOp : -# 1787| v1787_7(void) = ReturnVoid : -# 1787| v1787_8(void) = AliasedUse : m1787_3 -# 1787| v1787_9(void) = ExitFunction : +# 1863| Block 6 +# 1863| v1863_1(void) = NoOp : +# 1864| r1864_1(glval<int>) = VariableAddress[z2] : +# 1864| r1864_2(int) = Load[z2] : &:r1864_1, m1862_4 +# 1864| r1864_3(glval<int>) = VariableAddress[x] : +# 1864| r1864_4(int) = Load[x] : &:r1864_3, m1859_7 +# 1864| r1864_5(int) = Add : r1864_4, r1864_2 +# 1864| m1864_6(int) = Store[x] : &:r1864_3, r1864_5 +# 1866| v1866_1(void) = NoOp : +# 1834| v1834_7(void) = ReturnVoid : +# 1834| v1834_8(void) = AliasedUse : m1834_3 +# 1834| v1834_9(void) = ExitFunction : -# 1823| int global_2 -# 1823| Block 0 -# 1823| v1823_1(void) = EnterFunction : -# 1823| m1823_2(unknown) = AliasedDefinition : -# 1823| r1823_3(glval<int>) = VariableAddress[global_2] : -# 1823| r1823_4(int) = Constant[1] : -# 1823| m1823_5(int) = Store[global_2] : &:r1823_3, r1823_4 -# 1823| m1823_6(unknown) = Chi : total:m1823_2, partial:m1823_5 -# 1823| v1823_7(void) = ReturnVoid : -# 1823| v1823_8(void) = AliasedUse : ~m1823_6 -# 1823| v1823_9(void) = ExitFunction : +# 1870| int global_2 +# 1870| Block 0 +# 1870| v1870_1(void) = EnterFunction : +# 1870| m1870_2(unknown) = AliasedDefinition : +# 1870| r1870_3(glval<int>) = VariableAddress[global_2] : +# 1870| r1870_4(int) = Constant[1] : +# 1870| m1870_5(int) = Store[global_2] : &:r1870_3, r1870_4 +# 1870| m1870_6(unknown) = Chi : total:m1870_2, partial:m1870_5 +# 1870| v1870_7(void) = ReturnVoid : +# 1870| v1870_8(void) = AliasedUse : ~m1870_6 +# 1870| v1870_9(void) = ExitFunction : -# 1827| constructor_only global_4 -# 1827| Block 0 -# 1827| v1827_1(void) = EnterFunction : -# 1827| m1827_2(unknown) = AliasedDefinition : -# 1827| r1827_3(glval<constructor_only>) = VariableAddress[global_4] : -# 1827| r1827_4(glval<unknown>) = FunctionAddress[constructor_only] : -# 1827| r1827_5(int) = Constant[1] : -# 1827| v1827_6(void) = Call[constructor_only] : func:r1827_4, this:r1827_3, 0:r1827_5 -# 1827| m1827_7(unknown) = ^CallSideEffect : ~m1827_2 -# 1827| m1827_8(unknown) = Chi : total:m1827_2, partial:m1827_7 -# 1827| m1827_9(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1827_3 -# 1827| m1827_10(unknown) = Chi : total:m1827_8, partial:m1827_9 -# 1827| v1827_11(void) = ReturnVoid : -# 1827| v1827_12(void) = AliasedUse : ~m1827_10 -# 1827| v1827_13(void) = ExitFunction : +# 1874| constructor_only global_4 +# 1874| Block 0 +# 1874| v1874_1(void) = EnterFunction : +# 1874| m1874_2(unknown) = AliasedDefinition : +# 1874| r1874_3(glval<constructor_only>) = VariableAddress[global_4] : +# 1874| r1874_4(glval<unknown>) = FunctionAddress[constructor_only] : +# 1874| r1874_5(int) = Constant[1] : +# 1874| v1874_6(void) = Call[constructor_only] : func:r1874_4, this:r1874_3, 0:r1874_5 +# 1874| m1874_7(unknown) = ^CallSideEffect : ~m1874_2 +# 1874| m1874_8(unknown) = Chi : total:m1874_2, partial:m1874_7 +# 1874| m1874_9(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1874_3 +# 1874| m1874_10(unknown) = Chi : total:m1874_8, partial:m1874_9 +# 1874| v1874_11(void) = ReturnVoid : +# 1874| v1874_12(void) = AliasedUse : ~m1874_10 +# 1874| v1874_13(void) = ExitFunction : -# 1829| constructor_only global_5 -# 1829| Block 0 -# 1829| v1829_1(void) = EnterFunction : -# 1829| m1829_2(unknown) = AliasedDefinition : -# 1829| r1829_3(glval<constructor_only>) = VariableAddress[global_5] : -# 1829| r1829_4(glval<unknown>) = FunctionAddress[constructor_only] : -# 1829| r1829_5(int) = Constant[2] : -# 1829| v1829_6(void) = Call[constructor_only] : func:r1829_4, this:r1829_3, 0:r1829_5 -# 1829| m1829_7(unknown) = ^CallSideEffect : ~m1829_2 -# 1829| m1829_8(unknown) = Chi : total:m1829_2, partial:m1829_7 -# 1829| m1829_9(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1829_3 -# 1829| m1829_10(unknown) = Chi : total:m1829_8, partial:m1829_9 -# 1829| v1829_11(void) = ReturnVoid : -# 1829| v1829_12(void) = AliasedUse : ~m1829_10 -# 1829| v1829_13(void) = ExitFunction : +# 1876| constructor_only global_5 +# 1876| Block 0 +# 1876| v1876_1(void) = EnterFunction : +# 1876| m1876_2(unknown) = AliasedDefinition : +# 1876| r1876_3(glval<constructor_only>) = VariableAddress[global_5] : +# 1876| r1876_4(glval<unknown>) = FunctionAddress[constructor_only] : +# 1876| r1876_5(int) = Constant[2] : +# 1876| v1876_6(void) = Call[constructor_only] : func:r1876_4, this:r1876_3, 0:r1876_5 +# 1876| m1876_7(unknown) = ^CallSideEffect : ~m1876_2 +# 1876| m1876_8(unknown) = Chi : total:m1876_2, partial:m1876_7 +# 1876| m1876_9(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1876_3 +# 1876| m1876_10(unknown) = Chi : total:m1876_8, partial:m1876_9 +# 1876| v1876_11(void) = ReturnVoid : +# 1876| v1876_12(void) = AliasedUse : ~m1876_10 +# 1876| v1876_13(void) = ExitFunction : -# 1831| char* global_string -# 1831| Block 0 -# 1831| v1831_1(void) = EnterFunction : -# 1831| m1831_2(unknown) = AliasedDefinition : -# 1831| r1831_3(glval<char *>) = VariableAddress[global_string] : -# 1831| r1831_4(glval<char[14]>) = StringConstant["global string"] : -# 1831| r1831_5(char *) = Convert : r1831_4 -# 1831| r1831_6(char *) = Convert : r1831_5 -# 1831| m1831_7(char *) = Store[global_string] : &:r1831_3, r1831_6 -# 1831| m1831_8(unknown) = Chi : total:m1831_2, partial:m1831_7 -# 1831| v1831_9(void) = ReturnVoid : -# 1831| v1831_10(void) = AliasedUse : ~m1831_8 -# 1831| v1831_11(void) = ExitFunction : +# 1878| char* global_string +# 1878| Block 0 +# 1878| v1878_1(void) = EnterFunction : +# 1878| m1878_2(unknown) = AliasedDefinition : +# 1878| r1878_3(glval<char *>) = VariableAddress[global_string] : +# 1878| r1878_4(glval<char[14]>) = StringConstant["global string"] : +# 1878| r1878_5(char *) = Convert : r1878_4 +# 1878| r1878_6(char *) = Convert : r1878_5 +# 1878| m1878_7(char *) = Store[global_string] : &:r1878_3, r1878_6 +# 1878| m1878_8(unknown) = Chi : total:m1878_2, partial:m1878_7 +# 1878| v1878_9(void) = ReturnVoid : +# 1878| v1878_10(void) = AliasedUse : ~m1878_8 +# 1878| v1878_11(void) = ExitFunction : -# 1833| int global_6 -# 1833| Block 0 -# 1833| v1833_1(void) = EnterFunction : -# 1833| m1833_2(unknown) = AliasedDefinition : -# 1833| r1833_3(glval<int>) = VariableAddress[global_6] : -# 1833| r1833_4(glval<int>) = VariableAddress[global_2] : -# 1833| r1833_5(int) = Load[global_2] : &:r1833_4, ~m1833_2 -# 1833| m1833_6(int) = Store[global_6] : &:r1833_3, r1833_5 -# 1833| m1833_7(unknown) = Chi : total:m1833_2, partial:m1833_6 -# 1833| v1833_8(void) = ReturnVoid : -# 1833| v1833_9(void) = AliasedUse : ~m1833_7 -# 1833| v1833_10(void) = ExitFunction : +# 1880| int global_6 +# 1880| Block 0 +# 1880| v1880_1(void) = EnterFunction : +# 1880| m1880_2(unknown) = AliasedDefinition : +# 1880| r1880_3(glval<int>) = VariableAddress[global_6] : +# 1880| r1880_4(glval<int>) = VariableAddress[global_2] : +# 1880| r1880_5(int) = Load[global_2] : &:r1880_4, ~m1880_2 +# 1880| m1880_6(int) = Store[global_6] : &:r1880_3, r1880_5 +# 1880| m1880_7(unknown) = Chi : total:m1880_2, partial:m1880_6 +# 1880| v1880_8(void) = ReturnVoid : +# 1880| v1880_9(void) = AliasedUse : ~m1880_7 +# 1880| v1880_10(void) = ExitFunction : -# 1836| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) -# 1836| Block 0 -# 1836| v1836_1(void) = EnterFunction : -# 1836| m1836_2(unknown) = AliasedDefinition : -# 1836| m1836_3(unknown) = InitializeNonLocal : -# 1836| m1836_4(unknown) = Chi : total:m1836_2, partial:m1836_3 -# 1836| r1836_5(glval<unknown>) = VariableAddress[#this] : -# 1836| m1836_6(glval<A>) = InitializeParameter[#this] : &:r1836_5 -# 1836| r1836_7(glval<A>) = Load[#this] : &:r1836_5, m1836_6 -# 1836| m1836_8(A) = InitializeIndirection[#this] : &:r1836_7 +# 1883| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) +# 1883| Block 0 +# 1883| v1883_1(void) = EnterFunction : +# 1883| m1883_2(unknown) = AliasedDefinition : +# 1883| m1883_3(unknown) = InitializeNonLocal : +# 1883| m1883_4(unknown) = Chi : total:m1883_2, partial:m1883_3 +# 1883| r1883_5(glval<unknown>) = VariableAddress[#this] : +# 1883| m1883_6(glval<A>) = InitializeParameter[#this] : &:r1883_5 +# 1883| r1883_7(glval<A>) = Load[#this] : &:r1883_5, m1883_6 +# 1883| m1883_8(A) = InitializeIndirection[#this] : &:r1883_7 #-----| r0_1(glval<A &&>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(A &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(A &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 #-----| r0_5(glval<unknown>) = VariableAddress[#this] : -#-----| r0_6(A *) = Load[#this] : &:r0_5, m1836_6 +#-----| r0_6(A *) = Load[#this] : &:r0_5, m1883_6 #-----| r0_7(glval<enum <unnamed>[1]>) = FieldAddress[e] : r0_6 #-----| r0_8(glval<A &&>) = VariableAddress[(unnamed parameter 0)] : #-----| r0_9(A &&) = Load[(unnamed parameter 0)] : &:r0_8, m0_2 @@ -11304,3787 +11326,3842 @@ ir.cpp: #-----| r0_11(glval<enum <unnamed>[1]>) = FieldAddress[e] : r0_10 #-----| r0_12(enum <unnamed>[1]) = Load[?] : &:r0_11, ~m0_4 #-----| m0_13(enum <unnamed>[1]) = Store[?] : &:r0_7, r0_12 -#-----| m0_14(unknown) = Chi : total:m1836_8, partial:m0_13 +#-----| m0_14(unknown) = Chi : total:m1883_8, partial:m0_13 #-----| r0_15(glval<A &>) = VariableAddress[#return] : #-----| r0_16(glval<unknown>) = VariableAddress[#this] : -#-----| r0_17(A *) = Load[#this] : &:r0_16, m1836_6 +#-----| r0_17(A *) = Load[#this] : &:r0_16, m1883_6 #-----| r0_18(glval<A>) = CopyValue : r0_17 #-----| r0_19(A &) = CopyValue : r0_18 #-----| m0_20(A &) = Store[#return] : &:r0_15, r0_19 -# 1836| v1836_9(void) = ReturnIndirection[#this] : &:r1836_7, m0_14 +# 1883| v1883_9(void) = ReturnIndirection[#this] : &:r1883_7, m0_14 #-----| v0_21(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 1836| r1836_10(glval<A &>) = VariableAddress[#return] : -# 1836| v1836_11(void) = ReturnValue : &:r1836_10, m0_20 -# 1836| v1836_12(void) = AliasedUse : m1836_3 -# 1836| v1836_13(void) = ExitFunction : +# 1883| r1883_10(glval<A &>) = VariableAddress[#return] : +# 1883| v1883_11(void) = ReturnValue : &:r1883_10, m0_20 +# 1883| v1883_12(void) = AliasedUse : m1883_3 +# 1883| v1883_13(void) = ExitFunction : -# 1841| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) -# 1841| Block 0 -# 1841| v1841_1(void) = EnterFunction : -# 1841| m1841_2(unknown) = AliasedDefinition : -# 1841| m1841_3(unknown) = InitializeNonLocal : -# 1841| m1841_4(unknown) = Chi : total:m1841_2, partial:m1841_3 -# 1841| r1841_5(glval<unknown>) = VariableAddress[#this] : -# 1841| m1841_6(glval<B>) = InitializeParameter[#this] : &:r1841_5 -# 1841| r1841_7(glval<B>) = Load[#this] : &:r1841_5, m1841_6 -# 1841| m1841_8(B) = InitializeIndirection[#this] : &:r1841_7 +# 1888| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) +# 1888| Block 0 +# 1888| v1888_1(void) = EnterFunction : +# 1888| m1888_2(unknown) = AliasedDefinition : +# 1888| m1888_3(unknown) = InitializeNonLocal : +# 1888| m1888_4(unknown) = Chi : total:m1888_2, partial:m1888_3 +# 1888| r1888_5(glval<unknown>) = VariableAddress[#this] : +# 1888| m1888_6(glval<B>) = InitializeParameter[#this] : &:r1888_5 +# 1888| r1888_7(glval<B>) = Load[#this] : &:r1888_5, m1888_6 +# 1888| m1888_8(B) = InitializeIndirection[#this] : &:r1888_7 #-----| r0_1(glval<B &&>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(B &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(B &&) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1841| r1841_9(glval<unknown>) = VariableAddress[#this] : -# 1841| r1841_10(B *) = Load[#this] : &:r1841_9, m1841_6 -#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1841_10 -# 1841| r1841_11(glval<unknown>) = FunctionAddress[operator=] : -# 1841| r1841_12(glval<B &&>) = VariableAddress[(unnamed parameter 0)] : -# 1841| r1841_13(B &&) = Load[(unnamed parameter 0)] : &:r1841_12, m0_2 -#-----| r0_6(glval<B>) = CopyValue : r1841_13 -# 1841| r1841_14(B *) = CopyValue : r0_6 -#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1841_14 -# 1841| r1841_15(glval<A>) = CopyValue : r0_7 -#-----| r0_8(A &) = CopyValue : r1841_15 -# 1841| r1841_16(A &) = Call[operator=] : func:r1841_11, this:r0_5, 0:r0_8 -# 1841| m1841_17(unknown) = ^CallSideEffect : ~m1841_4 -# 1841| m1841_18(unknown) = Chi : total:m1841_4, partial:m1841_17 -#-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m1841_8 +# 1888| r1888_9(glval<unknown>) = VariableAddress[#this] : +# 1888| r1888_10(B *) = Load[#this] : &:r1888_9, m1888_6 +#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1888_10 +# 1888| r1888_11(glval<unknown>) = FunctionAddress[operator=] : +# 1888| r1888_12(glval<B &&>) = VariableAddress[(unnamed parameter 0)] : +# 1888| r1888_13(B &&) = Load[(unnamed parameter 0)] : &:r1888_12, m0_2 +#-----| r0_6(glval<B>) = CopyValue : r1888_13 +# 1888| r1888_14(B *) = CopyValue : r0_6 +#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1888_14 +# 1888| r1888_15(glval<A>) = CopyValue : r0_7 +#-----| r0_8(A &) = CopyValue : r1888_15 +# 1888| r1888_16(A &) = Call[operator=] : func:r1888_11, this:r0_5, 0:r0_8 +# 1888| m1888_17(unknown) = ^CallSideEffect : ~m1888_4 +# 1888| m1888_18(unknown) = Chi : total:m1888_4, partial:m1888_17 +#-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m1888_8 #-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_8, ~m0_4 #-----| m0_11(A) = ^IndirectMayWriteSideEffect[-1] : &:r0_5 -#-----| m0_12(unknown) = Chi : total:m1841_8, partial:m0_11 +#-----| m0_12(unknown) = Chi : total:m1888_8, partial:m0_11 #-----| m0_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r0_8 #-----| m0_14(unknown) = Chi : total:m0_4, partial:m0_13 -#-----| r0_15(glval<A>) = CopyValue : r1841_16 +#-----| r0_15(glval<A>) = CopyValue : r1888_16 #-----| r0_16(glval<B &>) = VariableAddress[#return] : #-----| r0_17(glval<unknown>) = VariableAddress[#this] : -#-----| r0_18(B *) = Load[#this] : &:r0_17, m1841_6 +#-----| r0_18(B *) = Load[#this] : &:r0_17, m1888_6 #-----| r0_19(glval<B>) = CopyValue : r0_18 #-----| r0_20(B &) = CopyValue : r0_19 #-----| m0_21(B &) = Store[#return] : &:r0_16, r0_20 -# 1841| v1841_19(void) = ReturnIndirection[#this] : &:r1841_7, m0_12 +# 1888| v1888_19(void) = ReturnIndirection[#this] : &:r1888_7, m0_12 #-----| v0_22(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_14 -# 1841| r1841_20(glval<B &>) = VariableAddress[#return] : -# 1841| v1841_21(void) = ReturnValue : &:r1841_20, m0_21 -# 1841| v1841_22(void) = AliasedUse : ~m1841_18 -# 1841| v1841_23(void) = ExitFunction : +# 1888| r1888_20(glval<B &>) = VariableAddress[#return] : +# 1888| v1888_21(void) = ReturnValue : &:r1888_20, m0_21 +# 1888| v1888_22(void) = AliasedUse : ~m1888_18 +# 1888| v1888_23(void) = ExitFunction : -# 1845| void block_assignment::foo() -# 1845| Block 0 -# 1845| v1845_1(void) = EnterFunction : -# 1845| m1845_2(unknown) = AliasedDefinition : -# 1845| m1845_3(unknown) = InitializeNonLocal : -# 1845| m1845_4(unknown) = Chi : total:m1845_2, partial:m1845_3 -# 1846| r1846_1(glval<B>) = VariableAddress[v] : -# 1846| m1846_2(B) = Uninitialized[v] : &:r1846_1 -# 1846| r1846_3(glval<unknown>) = FunctionAddress[B] : -# 1846| r1846_4(A *) = Constant[0] : -# 1846| v1846_5(void) = Call[B] : func:r1846_3, this:r1846_1, 0:r1846_4 -# 1846| m1846_6(unknown) = ^CallSideEffect : ~m1845_4 -# 1846| m1846_7(unknown) = Chi : total:m1845_4, partial:m1846_6 -# 1846| v1846_8(void) = ^BufferReadSideEffect[0] : &:r1846_4, ~m1846_7 -# 1846| m1846_9(B) = ^IndirectMayWriteSideEffect[-1] : &:r1846_1 -# 1846| m1846_10(B) = Chi : total:m1846_2, partial:m1846_9 -# 1846| m1846_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1846_4 -# 1846| m1846_12(unknown) = Chi : total:m1846_7, partial:m1846_11 -# 1847| r1847_1(glval<B>) = VariableAddress[v] : -# 1847| r1847_2(glval<unknown>) = FunctionAddress[operator=] : -# 1847| r1847_3(glval<B>) = VariableAddress[#temp1847:13] : -# 1847| m1847_4(B) = Uninitialized[#temp1847:13] : &:r1847_3 -# 1847| r1847_5(glval<unknown>) = FunctionAddress[B] : -# 1847| r1847_6(A *) = Constant[0] : -# 1847| v1847_7(void) = Call[B] : func:r1847_5, this:r1847_3, 0:r1847_6 -# 1847| m1847_8(unknown) = ^CallSideEffect : ~m1846_12 -# 1847| m1847_9(unknown) = Chi : total:m1846_12, partial:m1847_8 -# 1847| v1847_10(void) = ^BufferReadSideEffect[0] : &:r1847_6, ~m1847_9 -# 1847| m1847_11(B) = ^IndirectMayWriteSideEffect[-1] : &:r1847_3 -# 1847| m1847_12(B) = Chi : total:m1847_4, partial:m1847_11 -# 1847| m1847_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r1847_6 -# 1847| m1847_14(unknown) = Chi : total:m1847_9, partial:m1847_13 -# 1847| r1847_15(B &) = CopyValue : r1847_3 -# 1847| r1847_16(B &) = Call[operator=] : func:r1847_2, this:r1847_1, 0:r1847_15 -# 1847| m1847_17(unknown) = ^CallSideEffect : ~m1847_14 -# 1847| m1847_18(unknown) = Chi : total:m1847_14, partial:m1847_17 -# 1847| v1847_19(void) = ^IndirectReadSideEffect[-1] : &:r1847_1, m1846_10 -# 1847| v1847_20(void) = ^BufferReadSideEffect[0] : &:r1847_15, ~m1847_12 -# 1847| m1847_21(B) = ^IndirectMayWriteSideEffect[-1] : &:r1847_1 -# 1847| m1847_22(B) = Chi : total:m1846_10, partial:m1847_21 -# 1847| m1847_23(unknown) = ^BufferMayWriteSideEffect[0] : &:r1847_15 -# 1847| m1847_24(B) = Chi : total:m1847_12, partial:m1847_23 -# 1847| r1847_25(glval<B>) = CopyValue : r1847_16 -# 1848| v1848_1(void) = NoOp : -# 1845| v1845_5(void) = ReturnVoid : -# 1845| v1845_6(void) = AliasedUse : ~m1847_18 -# 1845| v1845_7(void) = ExitFunction : +# 1892| void block_assignment::foo() +# 1892| Block 0 +# 1892| v1892_1(void) = EnterFunction : +# 1892| m1892_2(unknown) = AliasedDefinition : +# 1892| m1892_3(unknown) = InitializeNonLocal : +# 1892| m1892_4(unknown) = Chi : total:m1892_2, partial:m1892_3 +# 1893| r1893_1(glval<B>) = VariableAddress[v] : +# 1893| m1893_2(B) = Uninitialized[v] : &:r1893_1 +# 1893| r1893_3(glval<unknown>) = FunctionAddress[B] : +# 1893| r1893_4(A *) = Constant[0] : +# 1893| v1893_5(void) = Call[B] : func:r1893_3, this:r1893_1, 0:r1893_4 +# 1893| m1893_6(unknown) = ^CallSideEffect : ~m1892_4 +# 1893| m1893_7(unknown) = Chi : total:m1892_4, partial:m1893_6 +# 1893| v1893_8(void) = ^BufferReadSideEffect[0] : &:r1893_4, ~m1893_7 +# 1893| m1893_9(B) = ^IndirectMayWriteSideEffect[-1] : &:r1893_1 +# 1893| m1893_10(B) = Chi : total:m1893_2, partial:m1893_9 +# 1893| m1893_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1893_4 +# 1893| m1893_12(unknown) = Chi : total:m1893_7, partial:m1893_11 +# 1894| r1894_1(glval<B>) = VariableAddress[v] : +# 1894| r1894_2(glval<unknown>) = FunctionAddress[operator=] : +# 1894| r1894_3(glval<B>) = VariableAddress[#temp1894:13] : +# 1894| m1894_4(B) = Uninitialized[#temp1894:13] : &:r1894_3 +# 1894| r1894_5(glval<unknown>) = FunctionAddress[B] : +# 1894| r1894_6(A *) = Constant[0] : +# 1894| v1894_7(void) = Call[B] : func:r1894_5, this:r1894_3, 0:r1894_6 +# 1894| m1894_8(unknown) = ^CallSideEffect : ~m1893_12 +# 1894| m1894_9(unknown) = Chi : total:m1893_12, partial:m1894_8 +# 1894| v1894_10(void) = ^BufferReadSideEffect[0] : &:r1894_6, ~m1894_9 +# 1894| m1894_11(B) = ^IndirectMayWriteSideEffect[-1] : &:r1894_3 +# 1894| m1894_12(B) = Chi : total:m1894_4, partial:m1894_11 +# 1894| m1894_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r1894_6 +# 1894| m1894_14(unknown) = Chi : total:m1894_9, partial:m1894_13 +# 1894| r1894_15(B &) = CopyValue : r1894_3 +# 1894| r1894_16(B &) = Call[operator=] : func:r1894_2, this:r1894_1, 0:r1894_15 +# 1894| m1894_17(unknown) = ^CallSideEffect : ~m1894_14 +# 1894| m1894_18(unknown) = Chi : total:m1894_14, partial:m1894_17 +# 1894| v1894_19(void) = ^IndirectReadSideEffect[-1] : &:r1894_1, m1893_10 +# 1894| v1894_20(void) = ^BufferReadSideEffect[0] : &:r1894_15, ~m1894_12 +# 1894| m1894_21(B) = ^IndirectMayWriteSideEffect[-1] : &:r1894_1 +# 1894| m1894_22(B) = Chi : total:m1893_10, partial:m1894_21 +# 1894| m1894_23(unknown) = ^BufferMayWriteSideEffect[0] : &:r1894_15 +# 1894| m1894_24(B) = Chi : total:m1894_12, partial:m1894_23 +# 1894| r1894_25(glval<B>) = CopyValue : r1894_16 +# 1895| v1895_1(void) = NoOp : +# 1892| v1892_5(void) = ReturnVoid : +# 1892| v1892_6(void) = AliasedUse : ~m1894_18 +# 1892| v1892_7(void) = ExitFunction : -# 1851| void magicvars() -# 1851| Block 0 -# 1851| v1851_1(void) = EnterFunction : -# 1851| m1851_2(unknown) = AliasedDefinition : -# 1851| m1851_3(unknown) = InitializeNonLocal : -# 1851| m1851_4(unknown) = Chi : total:m1851_2, partial:m1851_3 -# 1852| r1852_1(glval<char *>) = VariableAddress[pf] : -# 1852| r1852_2(glval<char[17]>) = VariableAddress[__PRETTY_FUNCTION__] : -# 1852| r1852_3(char *) = Convert : r1852_2 -# 1852| m1852_4(char *) = Store[pf] : &:r1852_1, r1852_3 -# 1853| r1853_1(glval<char *>) = VariableAddress[strfunc] : -# 1853| r1853_2(glval<char[10]>) = VariableAddress[__func__] : -# 1853| r1853_3(char *) = Convert : r1853_2 -# 1853| m1853_4(char *) = Store[strfunc] : &:r1853_1, r1853_3 -# 1854| v1854_1(void) = NoOp : -# 1851| v1851_5(void) = ReturnVoid : -# 1851| v1851_6(void) = AliasedUse : m1851_3 -# 1851| v1851_7(void) = ExitFunction : +# 1898| void magicvars() +# 1898| Block 0 +# 1898| v1898_1(void) = EnterFunction : +# 1898| m1898_2(unknown) = AliasedDefinition : +# 1898| m1898_3(unknown) = InitializeNonLocal : +# 1898| m1898_4(unknown) = Chi : total:m1898_2, partial:m1898_3 +# 1899| r1899_1(glval<char *>) = VariableAddress[pf] : +# 1899| r1899_2(glval<char[17]>) = VariableAddress[__PRETTY_FUNCTION__] : +# 1899| r1899_3(char *) = Convert : r1899_2 +# 1899| m1899_4(char *) = Store[pf] : &:r1899_1, r1899_3 +# 1900| r1900_1(glval<char *>) = VariableAddress[strfunc] : +# 1900| r1900_2(glval<char[10]>) = VariableAddress[__func__] : +# 1900| r1900_3(char *) = Convert : r1900_2 +# 1900| m1900_4(char *) = Store[strfunc] : &:r1900_1, r1900_3 +# 1901| v1901_1(void) = NoOp : +# 1898| v1898_5(void) = ReturnVoid : +# 1898| v1898_6(void) = AliasedUse : m1898_3 +# 1898| v1898_7(void) = ExitFunction : -# 1864| void* missing_declaration_entries::Bar1<int>::missing_type_decl_entry(missing_declaration_entries::Bar1<int>::pointer) -# 1864| Block 0 -# 1864| v1864_1(void) = EnterFunction : -# 1864| m1864_2(unknown) = AliasedDefinition : -# 1864| m1864_3(unknown) = InitializeNonLocal : -# 1864| m1864_4(unknown) = Chi : total:m1864_2, partial:m1864_3 -# 1864| r1864_5(glval<unknown>) = VariableAddress[#this] : -# 1864| m1864_6(glval<Bar1<int>>) = InitializeParameter[#this] : &:r1864_5 -# 1864| r1864_7(glval<Bar1<int>>) = Load[#this] : &:r1864_5, m1864_6 -# 1864| m1864_8(Bar1<int>) = InitializeIndirection[#this] : &:r1864_7 -# 1864| r1864_9(glval<S *>) = VariableAddress[p] : -# 1864| m1864_10(S *) = InitializeParameter[p] : &:r1864_9 -# 1864| r1864_11(S *) = Load[p] : &:r1864_9, m1864_10 -# 1864| m1864_12(unknown) = InitializeIndirection[p] : &:r1864_11 -# 1866| r1866_1(glval<void *>) = VariableAddress[#return] : -# 1866| r1866_2(glval<S *>) = VariableAddress[p] : -# 1866| r1866_3(S *) = Load[p] : &:r1866_2, m1864_10 -# 1866| r1866_4(void *) = Convert : r1866_3 -# 1866| m1866_5(void *) = Store[#return] : &:r1866_1, r1866_4 -# 1864| v1864_13(void) = ReturnIndirection[#this] : &:r1864_7, m1864_8 -# 1864| v1864_14(void) = ReturnIndirection[p] : &:r1864_11, m1864_12 -# 1864| r1864_15(glval<void *>) = VariableAddress[#return] : -# 1864| v1864_16(void) = ReturnValue : &:r1864_15, m1866_5 -# 1864| v1864_17(void) = AliasedUse : m1864_3 -# 1864| v1864_18(void) = ExitFunction : +# 1911| void* missing_declaration_entries::Bar1<int>::missing_type_decl_entry(missing_declaration_entries::Bar1<int>::pointer) +# 1911| Block 0 +# 1911| v1911_1(void) = EnterFunction : +# 1911| m1911_2(unknown) = AliasedDefinition : +# 1911| m1911_3(unknown) = InitializeNonLocal : +# 1911| m1911_4(unknown) = Chi : total:m1911_2, partial:m1911_3 +# 1911| r1911_5(glval<unknown>) = VariableAddress[#this] : +# 1911| m1911_6(glval<Bar1<int>>) = InitializeParameter[#this] : &:r1911_5 +# 1911| r1911_7(glval<Bar1<int>>) = Load[#this] : &:r1911_5, m1911_6 +# 1911| m1911_8(Bar1<int>) = InitializeIndirection[#this] : &:r1911_7 +# 1911| r1911_9(glval<S *>) = VariableAddress[p] : +# 1911| m1911_10(S *) = InitializeParameter[p] : &:r1911_9 +# 1911| r1911_11(S *) = Load[p] : &:r1911_9, m1911_10 +# 1911| m1911_12(unknown) = InitializeIndirection[p] : &:r1911_11 +# 1913| r1913_1(glval<void *>) = VariableAddress[#return] : +# 1913| r1913_2(glval<S *>) = VariableAddress[p] : +# 1913| r1913_3(S *) = Load[p] : &:r1913_2, m1911_10 +# 1913| r1913_4(void *) = Convert : r1913_3 +# 1913| m1913_5(void *) = Store[#return] : &:r1913_1, r1913_4 +# 1911| v1911_13(void) = ReturnIndirection[#this] : &:r1911_7, m1911_8 +# 1911| v1911_14(void) = ReturnIndirection[p] : &:r1911_11, m1911_12 +# 1911| r1911_15(glval<void *>) = VariableAddress[#return] : +# 1911| v1911_16(void) = ReturnValue : &:r1911_15, m1913_5 +# 1911| v1911_17(void) = AliasedUse : m1911_3 +# 1911| v1911_18(void) = ExitFunction : -# 1870| void missing_declaration_entries::test1() -# 1870| Block 0 -# 1870| v1870_1(void) = EnterFunction : -# 1870| m1870_2(unknown) = AliasedDefinition : -# 1870| m1870_3(unknown) = InitializeNonLocal : -# 1870| m1870_4(unknown) = Chi : total:m1870_2, partial:m1870_3 -# 1871| r1871_1(glval<Bar1<int>>) = VariableAddress[b] : -# 1871| m1871_2(Bar1<int>) = Uninitialized[b] : &:r1871_1 -# 1872| r1872_1(glval<Bar1<int>>) = VariableAddress[b] : -# 1872| r1872_2(glval<unknown>) = FunctionAddress[missing_type_decl_entry] : -# 1872| r1872_3(S *) = Constant[0] : -# 1872| r1872_4(void *) = Call[missing_type_decl_entry] : func:r1872_2, this:r1872_1, 0:r1872_3 -# 1872| m1872_5(unknown) = ^CallSideEffect : ~m1870_4 -# 1872| m1872_6(unknown) = Chi : total:m1870_4, partial:m1872_5 -# 1872| v1872_7(void) = ^IndirectReadSideEffect[-1] : &:r1872_1, m1871_2 -# 1872| v1872_8(void) = ^BufferReadSideEffect[0] : &:r1872_3, ~m1872_6 -# 1872| m1872_9(Bar1<int>) = ^IndirectMayWriteSideEffect[-1] : &:r1872_1 -# 1872| m1872_10(Bar1<int>) = Chi : total:m1871_2, partial:m1872_9 -# 1872| m1872_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1872_3 -# 1872| m1872_12(unknown) = Chi : total:m1872_6, partial:m1872_11 -# 1873| v1873_1(void) = NoOp : -# 1870| v1870_5(void) = ReturnVoid : -# 1870| v1870_6(void) = AliasedUse : ~m1872_12 -# 1870| v1870_7(void) = ExitFunction : +# 1917| void missing_declaration_entries::test1() +# 1917| Block 0 +# 1917| v1917_1(void) = EnterFunction : +# 1917| m1917_2(unknown) = AliasedDefinition : +# 1917| m1917_3(unknown) = InitializeNonLocal : +# 1917| m1917_4(unknown) = Chi : total:m1917_2, partial:m1917_3 +# 1918| r1918_1(glval<Bar1<int>>) = VariableAddress[b] : +# 1918| m1918_2(Bar1<int>) = Uninitialized[b] : &:r1918_1 +# 1919| r1919_1(glval<Bar1<int>>) = VariableAddress[b] : +# 1919| r1919_2(glval<unknown>) = FunctionAddress[missing_type_decl_entry] : +# 1919| r1919_3(S *) = Constant[0] : +# 1919| r1919_4(void *) = Call[missing_type_decl_entry] : func:r1919_2, this:r1919_1, 0:r1919_3 +# 1919| m1919_5(unknown) = ^CallSideEffect : ~m1917_4 +# 1919| m1919_6(unknown) = Chi : total:m1917_4, partial:m1919_5 +# 1919| v1919_7(void) = ^IndirectReadSideEffect[-1] : &:r1919_1, m1918_2 +# 1919| v1919_8(void) = ^BufferReadSideEffect[0] : &:r1919_3, ~m1919_6 +# 1919| m1919_9(Bar1<int>) = ^IndirectMayWriteSideEffect[-1] : &:r1919_1 +# 1919| m1919_10(Bar1<int>) = Chi : total:m1918_2, partial:m1919_9 +# 1919| m1919_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1919_3 +# 1919| m1919_12(unknown) = Chi : total:m1919_6, partial:m1919_11 +# 1920| v1920_1(void) = NoOp : +# 1917| v1917_5(void) = ReturnVoid : +# 1917| v1917_6(void) = AliasedUse : ~m1919_12 +# 1917| v1917_7(void) = ExitFunction : -# 1877| int missing_declaration_entries::Bar2<int>::two_missing_variable_declaration_entries() -# 1877| Block 0 -# 1877| v1877_1(void) = EnterFunction : -# 1877| m1877_2(unknown) = AliasedDefinition : -# 1877| m1877_3(unknown) = InitializeNonLocal : -# 1877| m1877_4(unknown) = Chi : total:m1877_2, partial:m1877_3 -# 1877| r1877_5(glval<unknown>) = VariableAddress[#this] : -# 1877| m1877_6(glval<Bar2<int>>) = InitializeParameter[#this] : &:r1877_5 -# 1877| r1877_7(glval<Bar2<int>>) = Load[#this] : &:r1877_5, m1877_6 -# 1877| m1877_8(Bar2<int>) = InitializeIndirection[#this] : &:r1877_7 -# 1878| r1878_1(glval<int[10]>) = VariableAddress[x] : -# 1878| m1878_2(int[10]) = Uninitialized[x] : &:r1878_1 -# 1878| r1878_3(glval<int[10]>) = VariableAddress[y] : -# 1878| m1878_4(int[10]) = Uninitialized[y] : &:r1878_3 -# 1879| r1879_1(int) = Constant[10] : -# 1879| r1879_2(glval<int[10]>) = VariableAddress[x] : -# 1879| r1879_3(int *) = Convert : r1879_2 -# 1879| r1879_4(glval<int>) = CopyValue : r1879_3 -# 1879| m1879_5(int) = Store[?] : &:r1879_4, r1879_1 -# 1879| m1879_6(int[10]) = Chi : total:m1878_2, partial:m1879_5 -# 1880| r1880_1(int) = Constant[10] : -# 1880| r1880_2(glval<int[10]>) = VariableAddress[y] : -# 1880| r1880_3(int *) = Convert : r1880_2 -# 1880| r1880_4(glval<int>) = CopyValue : r1880_3 -# 1880| m1880_5(int) = Store[?] : &:r1880_4, r1880_1 -# 1880| m1880_6(int[10]) = Chi : total:m1878_4, partial:m1880_5 -# 1881| r1881_1(glval<int>) = VariableAddress[#return] : -# 1881| r1881_2(glval<int[10]>) = VariableAddress[x] : -# 1881| r1881_3(int *) = Convert : r1881_2 -# 1881| r1881_4(int) = Load[?] : &:r1881_3, m1879_5 -# 1881| r1881_5(glval<int[10]>) = VariableAddress[y] : -# 1881| r1881_6(int *) = Convert : r1881_5 -# 1881| r1881_7(int) = Load[?] : &:r1881_6, m1880_5 -# 1881| r1881_8(int) = Add : r1881_4, r1881_7 -# 1881| m1881_9(int) = Store[#return] : &:r1881_1, r1881_8 -# 1877| v1877_9(void) = ReturnIndirection[#this] : &:r1877_7, m1877_8 -# 1877| r1877_10(glval<int>) = VariableAddress[#return] : -# 1877| v1877_11(void) = ReturnValue : &:r1877_10, m1881_9 -# 1877| v1877_12(void) = AliasedUse : m1877_3 -# 1877| v1877_13(void) = ExitFunction : +# 1924| int missing_declaration_entries::Bar2<int>::two_missing_variable_declaration_entries() +# 1924| Block 0 +# 1924| v1924_1(void) = EnterFunction : +# 1924| m1924_2(unknown) = AliasedDefinition : +# 1924| m1924_3(unknown) = InitializeNonLocal : +# 1924| m1924_4(unknown) = Chi : total:m1924_2, partial:m1924_3 +# 1924| r1924_5(glval<unknown>) = VariableAddress[#this] : +# 1924| m1924_6(glval<Bar2<int>>) = InitializeParameter[#this] : &:r1924_5 +# 1924| r1924_7(glval<Bar2<int>>) = Load[#this] : &:r1924_5, m1924_6 +# 1924| m1924_8(Bar2<int>) = InitializeIndirection[#this] : &:r1924_7 +# 1925| r1925_1(glval<int[10]>) = VariableAddress[x] : +# 1925| m1925_2(int[10]) = Uninitialized[x] : &:r1925_1 +# 1925| r1925_3(glval<int[10]>) = VariableAddress[y] : +# 1925| m1925_4(int[10]) = Uninitialized[y] : &:r1925_3 +# 1926| r1926_1(int) = Constant[10] : +# 1926| r1926_2(glval<int[10]>) = VariableAddress[x] : +# 1926| r1926_3(int *) = Convert : r1926_2 +# 1926| r1926_4(glval<int>) = CopyValue : r1926_3 +# 1926| m1926_5(int) = Store[?] : &:r1926_4, r1926_1 +# 1926| m1926_6(int[10]) = Chi : total:m1925_2, partial:m1926_5 +# 1927| r1927_1(int) = Constant[10] : +# 1927| r1927_2(glval<int[10]>) = VariableAddress[y] : +# 1927| r1927_3(int *) = Convert : r1927_2 +# 1927| r1927_4(glval<int>) = CopyValue : r1927_3 +# 1927| m1927_5(int) = Store[?] : &:r1927_4, r1927_1 +# 1927| m1927_6(int[10]) = Chi : total:m1925_4, partial:m1927_5 +# 1928| r1928_1(glval<int>) = VariableAddress[#return] : +# 1928| r1928_2(glval<int[10]>) = VariableAddress[x] : +# 1928| r1928_3(int *) = Convert : r1928_2 +# 1928| r1928_4(int) = Load[?] : &:r1928_3, m1926_5 +# 1928| r1928_5(glval<int[10]>) = VariableAddress[y] : +# 1928| r1928_6(int *) = Convert : r1928_5 +# 1928| r1928_7(int) = Load[?] : &:r1928_6, m1927_5 +# 1928| r1928_8(int) = Add : r1928_4, r1928_7 +# 1928| m1928_9(int) = Store[#return] : &:r1928_1, r1928_8 +# 1924| v1924_9(void) = ReturnIndirection[#this] : &:r1924_7, m1924_8 +# 1924| r1924_10(glval<int>) = VariableAddress[#return] : +# 1924| v1924_11(void) = ReturnValue : &:r1924_10, m1928_9 +# 1924| v1924_12(void) = AliasedUse : m1924_3 +# 1924| v1924_13(void) = ExitFunction : -# 1885| void missing_declaration_entries::test2() -# 1885| Block 0 -# 1885| v1885_1(void) = EnterFunction : -# 1885| m1885_2(unknown) = AliasedDefinition : -# 1885| m1885_3(unknown) = InitializeNonLocal : -# 1885| m1885_4(unknown) = Chi : total:m1885_2, partial:m1885_3 -# 1886| r1886_1(glval<Bar2<int>>) = VariableAddress[b] : -# 1886| m1886_2(Bar2<int>) = Uninitialized[b] : &:r1886_1 -# 1887| r1887_1(glval<Bar2<int>>) = VariableAddress[b] : -# 1887| r1887_2(glval<unknown>) = FunctionAddress[two_missing_variable_declaration_entries] : -# 1887| r1887_3(int) = Call[two_missing_variable_declaration_entries] : func:r1887_2, this:r1887_1 -# 1887| m1887_4(unknown) = ^CallSideEffect : ~m1885_4 -# 1887| m1887_5(unknown) = Chi : total:m1885_4, partial:m1887_4 -# 1887| v1887_6(void) = ^IndirectReadSideEffect[-1] : &:r1887_1, m1886_2 -# 1887| m1887_7(Bar2<int>) = ^IndirectMayWriteSideEffect[-1] : &:r1887_1 -# 1887| m1887_8(Bar2<int>) = Chi : total:m1886_2, partial:m1887_7 -# 1888| v1888_1(void) = NoOp : -# 1885| v1885_5(void) = ReturnVoid : -# 1885| v1885_6(void) = AliasedUse : ~m1887_5 -# 1885| v1885_7(void) = ExitFunction : +# 1932| void missing_declaration_entries::test2() +# 1932| Block 0 +# 1932| v1932_1(void) = EnterFunction : +# 1932| m1932_2(unknown) = AliasedDefinition : +# 1932| m1932_3(unknown) = InitializeNonLocal : +# 1932| m1932_4(unknown) = Chi : total:m1932_2, partial:m1932_3 +# 1933| r1933_1(glval<Bar2<int>>) = VariableAddress[b] : +# 1933| m1933_2(Bar2<int>) = Uninitialized[b] : &:r1933_1 +# 1934| r1934_1(glval<Bar2<int>>) = VariableAddress[b] : +# 1934| r1934_2(glval<unknown>) = FunctionAddress[two_missing_variable_declaration_entries] : +# 1934| r1934_3(int) = Call[two_missing_variable_declaration_entries] : func:r1934_2, this:r1934_1 +# 1934| m1934_4(unknown) = ^CallSideEffect : ~m1932_4 +# 1934| m1934_5(unknown) = Chi : total:m1932_4, partial:m1934_4 +# 1934| v1934_6(void) = ^IndirectReadSideEffect[-1] : &:r1934_1, m1933_2 +# 1934| m1934_7(Bar2<int>) = ^IndirectMayWriteSideEffect[-1] : &:r1934_1 +# 1934| m1934_8(Bar2<int>) = Chi : total:m1933_2, partial:m1934_7 +# 1935| v1935_1(void) = NoOp : +# 1932| v1932_5(void) = ReturnVoid : +# 1932| v1932_6(void) = AliasedUse : ~m1934_5 +# 1932| v1932_7(void) = ExitFunction : -# 1891| char global_template<char> -# 1891| Block 0 -# 1891| v1891_1(void) = EnterFunction : -# 1891| m1891_2(unknown) = AliasedDefinition : -# 1891| r1891_3(glval<char>) = VariableAddress[global_template] : -# 1891| r1891_4(char) = Constant[42] : -# 1891| m1891_5(char) = Store[global_template] : &:r1891_3, r1891_4 -# 1891| m1891_6(unknown) = Chi : total:m1891_2, partial:m1891_5 -# 1891| v1891_7(void) = ReturnVoid : -# 1891| v1891_8(void) = AliasedUse : ~m1891_6 -# 1891| v1891_9(void) = ExitFunction : +# 1938| char global_template<char> +# 1938| Block 0 +# 1938| v1938_1(void) = EnterFunction : +# 1938| m1938_2(unknown) = AliasedDefinition : +# 1938| r1938_3(glval<char>) = VariableAddress[global_template] : +# 1938| r1938_4(char) = Constant[42] : +# 1938| m1938_5(char) = Store[global_template] : &:r1938_3, r1938_4 +# 1938| m1938_6(unknown) = Chi : total:m1938_2, partial:m1938_5 +# 1938| v1938_7(void) = ReturnVoid : +# 1938| v1938_8(void) = AliasedUse : ~m1938_6 +# 1938| v1938_9(void) = ExitFunction : -# 1891| int global_template<int> -# 1891| Block 0 -# 1891| v1891_1(void) = EnterFunction : -# 1891| m1891_2(unknown) = AliasedDefinition : -# 1891| r1891_3(glval<int>) = VariableAddress[global_template] : -# 1891| r1891_4(int) = Constant[42] : -# 1891| m1891_5(int) = Store[global_template] : &:r1891_3, r1891_4 -# 1891| m1891_6(unknown) = Chi : total:m1891_2, partial:m1891_5 -# 1891| v1891_7(void) = ReturnVoid : -# 1891| v1891_8(void) = AliasedUse : ~m1891_6 -# 1891| v1891_9(void) = ExitFunction : +# 1938| int global_template<int> +# 1938| Block 0 +# 1938| v1938_1(void) = EnterFunction : +# 1938| m1938_2(unknown) = AliasedDefinition : +# 1938| r1938_3(glval<int>) = VariableAddress[global_template] : +# 1938| r1938_4(int) = Constant[42] : +# 1938| m1938_5(int) = Store[global_template] : &:r1938_3, r1938_4 +# 1938| m1938_6(unknown) = Chi : total:m1938_2, partial:m1938_5 +# 1938| v1938_7(void) = ReturnVoid : +# 1938| v1938_8(void) = AliasedUse : ~m1938_6 +# 1938| v1938_9(void) = ExitFunction : -# 1893| int test_global_template_int() -# 1893| Block 0 -# 1893| v1893_1(void) = EnterFunction : -# 1893| m1893_2(unknown) = AliasedDefinition : -# 1893| m1893_3(unknown) = InitializeNonLocal : -# 1893| m1893_4(unknown) = Chi : total:m1893_2, partial:m1893_3 -# 1894| r1894_1(glval<int>) = VariableAddress[local_int] : -# 1894| r1894_2(glval<int>) = VariableAddress[global_template] : -# 1894| r1894_3(int) = Load[global_template] : &:r1894_2, ~m1893_3 -# 1894| m1894_4(int) = Store[local_int] : &:r1894_1, r1894_3 -# 1895| r1895_1(glval<char>) = VariableAddress[local_char] : -# 1895| r1895_2(glval<char>) = VariableAddress[global_template] : -# 1895| r1895_3(char) = Load[global_template] : &:r1895_2, ~m1893_3 -# 1895| m1895_4(char) = Store[local_char] : &:r1895_1, r1895_3 -# 1896| r1896_1(glval<int>) = VariableAddress[#return] : -# 1896| r1896_2(glval<int>) = VariableAddress[local_int] : -# 1896| r1896_3(int) = Load[local_int] : &:r1896_2, m1894_4 -# 1896| r1896_4(glval<char>) = VariableAddress[local_char] : -# 1896| r1896_5(char) = Load[local_char] : &:r1896_4, m1895_4 -# 1896| r1896_6(int) = Convert : r1896_5 -# 1896| r1896_7(int) = Add : r1896_3, r1896_6 -# 1896| m1896_8(int) = Store[#return] : &:r1896_1, r1896_7 -# 1893| r1893_5(glval<int>) = VariableAddress[#return] : -# 1893| v1893_6(void) = ReturnValue : &:r1893_5, m1896_8 -# 1893| v1893_7(void) = AliasedUse : m1893_3 -# 1893| v1893_8(void) = ExitFunction : +# 1940| int test_global_template_int() +# 1940| Block 0 +# 1940| v1940_1(void) = EnterFunction : +# 1940| m1940_2(unknown) = AliasedDefinition : +# 1940| m1940_3(unknown) = InitializeNonLocal : +# 1940| m1940_4(unknown) = Chi : total:m1940_2, partial:m1940_3 +# 1941| r1941_1(glval<int>) = VariableAddress[local_int] : +# 1941| r1941_2(glval<int>) = VariableAddress[global_template] : +# 1941| r1941_3(int) = Load[global_template] : &:r1941_2, ~m1940_3 +# 1941| m1941_4(int) = Store[local_int] : &:r1941_1, r1941_3 +# 1942| r1942_1(glval<char>) = VariableAddress[local_char] : +# 1942| r1942_2(glval<char>) = VariableAddress[global_template] : +# 1942| r1942_3(char) = Load[global_template] : &:r1942_2, ~m1940_3 +# 1942| m1942_4(char) = Store[local_char] : &:r1942_1, r1942_3 +# 1943| r1943_1(glval<int>) = VariableAddress[#return] : +# 1943| r1943_2(glval<int>) = VariableAddress[local_int] : +# 1943| r1943_3(int) = Load[local_int] : &:r1943_2, m1941_4 +# 1943| r1943_4(glval<char>) = VariableAddress[local_char] : +# 1943| r1943_5(char) = Load[local_char] : &:r1943_4, m1942_4 +# 1943| r1943_6(int) = Convert : r1943_5 +# 1943| r1943_7(int) = Add : r1943_3, r1943_6 +# 1943| m1943_8(int) = Store[#return] : &:r1943_1, r1943_7 +# 1940| r1940_5(glval<int>) = VariableAddress[#return] : +# 1940| v1940_6(void) = ReturnValue : &:r1940_5, m1943_8 +# 1940| v1940_7(void) = AliasedUse : m1940_3 +# 1940| v1940_8(void) = ExitFunction : -# 1901| int noreturnTest(int) -# 1901| Block 0 -# 1901| v1901_1(void) = EnterFunction : -# 1901| m1901_2(unknown) = AliasedDefinition : -# 1901| m1901_3(unknown) = InitializeNonLocal : -# 1901| m1901_4(unknown) = Chi : total:m1901_2, partial:m1901_3 -# 1901| r1901_5(glval<int>) = VariableAddress[x] : -# 1901| m1901_6(int) = InitializeParameter[x] : &:r1901_5 -# 1902| r1902_1(glval<int>) = VariableAddress[x] : -# 1902| r1902_2(int) = Load[x] : &:r1902_1, m1901_6 -# 1902| r1902_3(int) = Constant[10] : -# 1902| r1902_4(bool) = CompareLT : r1902_2, r1902_3 -# 1902| v1902_5(void) = ConditionalBranch : r1902_4 +# 1948| int noreturnTest(int) +# 1948| Block 0 +# 1948| v1948_1(void) = EnterFunction : +# 1948| m1948_2(unknown) = AliasedDefinition : +# 1948| m1948_3(unknown) = InitializeNonLocal : +# 1948| m1948_4(unknown) = Chi : total:m1948_2, partial:m1948_3 +# 1948| r1948_5(glval<int>) = VariableAddress[x] : +# 1948| m1948_6(int) = InitializeParameter[x] : &:r1948_5 +# 1949| r1949_1(glval<int>) = VariableAddress[x] : +# 1949| r1949_2(int) = Load[x] : &:r1949_1, m1948_6 +# 1949| r1949_3(int) = Constant[10] : +# 1949| r1949_4(bool) = CompareLT : r1949_2, r1949_3 +# 1949| v1949_5(void) = ConditionalBranch : r1949_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 1903| Block 1 -# 1903| r1903_1(glval<int>) = VariableAddress[#return] : -# 1903| r1903_2(glval<int>) = VariableAddress[x] : -# 1903| r1903_3(int) = Load[x] : &:r1903_2, m1901_6 -# 1903| m1903_4(int) = Store[#return] : &:r1903_1, r1903_3 -# 1901| r1901_7(glval<int>) = VariableAddress[#return] : -# 1901| v1901_8(void) = ReturnValue : &:r1901_7, m1903_4 -# 1901| v1901_9(void) = AliasedUse : m1901_3 -# 1901| v1901_10(void) = ExitFunction : +# 1950| Block 1 +# 1950| r1950_1(glval<int>) = VariableAddress[#return] : +# 1950| r1950_2(glval<int>) = VariableAddress[x] : +# 1950| r1950_3(int) = Load[x] : &:r1950_2, m1948_6 +# 1950| m1950_4(int) = Store[#return] : &:r1950_1, r1950_3 +# 1948| r1948_7(glval<int>) = VariableAddress[#return] : +# 1948| v1948_8(void) = ReturnValue : &:r1948_7, m1950_4 +# 1948| v1948_9(void) = AliasedUse : m1948_3 +# 1948| v1948_10(void) = ExitFunction : -# 1905| Block 2 -# 1905| r1905_1(glval<unknown>) = FunctionAddress[noreturnFunc] : -# 1905| v1905_2(void) = Call[noreturnFunc] : func:r1905_1 -# 1905| m1905_3(unknown) = ^CallSideEffect : ~m1901_4 -# 1905| m1905_4(unknown) = Chi : total:m1901_4, partial:m1905_3 -# 1901| v1901_11(void) = Unreached : +# 1952| Block 2 +# 1952| r1952_1(glval<unknown>) = FunctionAddress[noreturnFunc] : +# 1952| v1952_2(void) = Call[noreturnFunc] : func:r1952_1 +# 1952| m1952_3(unknown) = ^CallSideEffect : ~m1948_4 +# 1952| m1952_4(unknown) = Chi : total:m1948_4, partial:m1952_3 +# 1948| v1948_11(void) = Unreached : -# 1909| int noreturnTest2(int) -# 1909| Block 0 -# 1909| v1909_1(void) = EnterFunction : -# 1909| m1909_2(unknown) = AliasedDefinition : -# 1909| m1909_3(unknown) = InitializeNonLocal : -# 1909| m1909_4(unknown) = Chi : total:m1909_2, partial:m1909_3 -# 1909| r1909_5(glval<int>) = VariableAddress[x] : -# 1909| m1909_6(int) = InitializeParameter[x] : &:r1909_5 -# 1910| r1910_1(glval<int>) = VariableAddress[x] : -# 1910| r1910_2(int) = Load[x] : &:r1910_1, m1909_6 -# 1910| r1910_3(int) = Constant[10] : -# 1910| r1910_4(bool) = CompareLT : r1910_2, r1910_3 -# 1910| v1910_5(void) = ConditionalBranch : r1910_4 +# 1956| int noreturnTest2(int) +# 1956| Block 0 +# 1956| v1956_1(void) = EnterFunction : +# 1956| m1956_2(unknown) = AliasedDefinition : +# 1956| m1956_3(unknown) = InitializeNonLocal : +# 1956| m1956_4(unknown) = Chi : total:m1956_2, partial:m1956_3 +# 1956| r1956_5(glval<int>) = VariableAddress[x] : +# 1956| m1956_6(int) = InitializeParameter[x] : &:r1956_5 +# 1957| r1957_1(glval<int>) = VariableAddress[x] : +# 1957| r1957_2(int) = Load[x] : &:r1957_1, m1956_6 +# 1957| r1957_3(int) = Constant[10] : +# 1957| r1957_4(bool) = CompareLT : r1957_2, r1957_3 +# 1957| v1957_5(void) = ConditionalBranch : r1957_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 1911| Block 1 -# 1911| r1911_1(glval<unknown>) = FunctionAddress[noreturnFunc] : -# 1911| v1911_2(void) = Call[noreturnFunc] : func:r1911_1 -# 1911| m1911_3(unknown) = ^CallSideEffect : ~m1909_4 -# 1911| m1911_4(unknown) = Chi : total:m1909_4, partial:m1911_3 -# 1909| v1909_7(void) = Unreached : +# 1958| Block 1 +# 1958| r1958_1(glval<unknown>) = FunctionAddress[noreturnFunc] : +# 1958| v1958_2(void) = Call[noreturnFunc] : func:r1958_1 +# 1958| m1958_3(unknown) = ^CallSideEffect : ~m1956_4 +# 1958| m1958_4(unknown) = Chi : total:m1956_4, partial:m1958_3 +# 1956| v1956_7(void) = Unreached : -# 1913| Block 2 -# 1913| r1913_1(glval<int>) = VariableAddress[#return] : -# 1913| r1913_2(glval<int>) = VariableAddress[x] : -# 1913| r1913_3(int) = Load[x] : &:r1913_2, m1909_6 -# 1913| m1913_4(int) = Store[#return] : &:r1913_1, r1913_3 -# 1909| r1909_8(glval<int>) = VariableAddress[#return] : -# 1909| v1909_9(void) = ReturnValue : &:r1909_8, m1913_4 -# 1909| v1909_10(void) = AliasedUse : m1909_3 -# 1909| v1909_11(void) = ExitFunction : +# 1960| Block 2 +# 1960| r1960_1(glval<int>) = VariableAddress[#return] : +# 1960| r1960_2(glval<int>) = VariableAddress[x] : +# 1960| r1960_3(int) = Load[x] : &:r1960_2, m1956_6 +# 1960| m1960_4(int) = Store[#return] : &:r1960_1, r1960_3 +# 1956| r1956_8(glval<int>) = VariableAddress[#return] : +# 1956| v1956_9(void) = ReturnValue : &:r1956_8, m1960_4 +# 1956| v1956_10(void) = AliasedUse : m1956_3 +# 1956| v1956_11(void) = ExitFunction : -# 1916| int static_function(int) -# 1916| Block 0 -# 1916| v1916_1(void) = EnterFunction : -# 1916| m1916_2(unknown) = AliasedDefinition : -# 1916| m1916_3(unknown) = InitializeNonLocal : -# 1916| m1916_4(unknown) = Chi : total:m1916_2, partial:m1916_3 -# 1916| r1916_5(glval<int>) = VariableAddress[x] : -# 1916| m1916_6(int) = InitializeParameter[x] : &:r1916_5 -# 1917| r1917_1(glval<int>) = VariableAddress[#return] : -# 1917| r1917_2(glval<int>) = VariableAddress[x] : -# 1917| r1917_3(int) = Load[x] : &:r1917_2, m1916_6 -# 1917| m1917_4(int) = Store[#return] : &:r1917_1, r1917_3 -# 1916| r1916_7(glval<int>) = VariableAddress[#return] : -# 1916| v1916_8(void) = ReturnValue : &:r1916_7, m1917_4 -# 1916| v1916_9(void) = AliasedUse : m1916_3 -# 1916| v1916_10(void) = ExitFunction : +# 1963| int static_function(int) +# 1963| Block 0 +# 1963| v1963_1(void) = EnterFunction : +# 1963| m1963_2(unknown) = AliasedDefinition : +# 1963| m1963_3(unknown) = InitializeNonLocal : +# 1963| m1963_4(unknown) = Chi : total:m1963_2, partial:m1963_3 +# 1963| r1963_5(glval<int>) = VariableAddress[x] : +# 1963| m1963_6(int) = InitializeParameter[x] : &:r1963_5 +# 1964| r1964_1(glval<int>) = VariableAddress[#return] : +# 1964| r1964_2(glval<int>) = VariableAddress[x] : +# 1964| r1964_3(int) = Load[x] : &:r1964_2, m1963_6 +# 1964| m1964_4(int) = Store[#return] : &:r1964_1, r1964_3 +# 1963| r1963_7(glval<int>) = VariableAddress[#return] : +# 1963| v1963_8(void) = ReturnValue : &:r1963_7, m1964_4 +# 1963| v1963_9(void) = AliasedUse : m1963_3 +# 1963| v1963_10(void) = ExitFunction : -# 1920| void test_static_functions_with_assignments() -# 1920| Block 0 -# 1920| v1920_1(void) = EnterFunction : -# 1920| m1920_2(unknown) = AliasedDefinition : -# 1920| m1920_3(unknown) = InitializeNonLocal : -# 1920| m1920_4(unknown) = Chi : total:m1920_2, partial:m1920_3 -# 1921| r1921_1(glval<C>) = VariableAddress[c] : -# 1921| m1921_2(C) = Uninitialized[c] : &:r1921_1 -# 1921| r1921_3(glval<unknown>) = FunctionAddress[C] : -# 1921| v1921_4(void) = Call[C] : func:r1921_3, this:r1921_1 -# 1921| m1921_5(unknown) = ^CallSideEffect : ~m1920_4 -# 1921| m1921_6(unknown) = Chi : total:m1920_4, partial:m1921_5 -# 1921| m1921_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1921_1 -# 1921| m1921_8(C) = Chi : total:m1921_2, partial:m1921_7 -# 1922| r1922_1(glval<int>) = VariableAddress[x] : -# 1922| m1922_2(int) = Uninitialized[x] : &:r1922_1 -# 1923| r1923_1(glval<C>) = VariableAddress[c] : -# 1923| r1923_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] : -# 1923| r1923_3(int) = Constant[10] : -# 1923| r1923_4(int) = Call[StaticMemberFunction] : func:r1923_2, 0:r1923_3 -# 1923| m1923_5(unknown) = ^CallSideEffect : ~m1921_6 -# 1923| m1923_6(unknown) = Chi : total:m1921_6, partial:m1923_5 -# 1923| r1923_7(glval<int>) = VariableAddress[x] : -# 1923| m1923_8(int) = Store[x] : &:r1923_7, r1923_4 -# 1924| r1924_1(glval<int>) = VariableAddress[y] : -# 1924| m1924_2(int) = Uninitialized[y] : &:r1924_1 -# 1925| r1925_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] : -# 1925| r1925_2(int) = Constant[10] : -# 1925| r1925_3(int) = Call[StaticMemberFunction] : func:r1925_1, 0:r1925_2 -# 1925| m1925_4(unknown) = ^CallSideEffect : ~m1923_6 -# 1925| m1925_5(unknown) = Chi : total:m1923_6, partial:m1925_4 -# 1925| r1925_6(glval<int>) = VariableAddress[y] : -# 1925| m1925_7(int) = Store[y] : &:r1925_6, r1925_3 -# 1926| r1926_1(glval<int>) = VariableAddress[z] : -# 1926| m1926_2(int) = Uninitialized[z] : &:r1926_1 -# 1927| r1927_1(glval<unknown>) = FunctionAddress[static_function] : -# 1927| r1927_2(int) = Constant[10] : -# 1927| r1927_3(int) = Call[static_function] : func:r1927_1, 0:r1927_2 -# 1927| m1927_4(unknown) = ^CallSideEffect : ~m1925_5 -# 1927| m1927_5(unknown) = Chi : total:m1925_5, partial:m1927_4 -# 1927| r1927_6(glval<int>) = VariableAddress[z] : -# 1927| m1927_7(int) = Store[z] : &:r1927_6, r1927_3 -# 1928| v1928_1(void) = NoOp : -# 1928| r1928_2(glval<C>) = VariableAddress[c] : -# 1928| r1928_3(glval<unknown>) = FunctionAddress[~C] : -# 1928| v1928_4(void) = Call[~C] : func:r1928_3, this:r1928_2 -# 1928| m1928_5(unknown) = ^CallSideEffect : ~m1927_5 -# 1928| m1928_6(unknown) = Chi : total:m1927_5, partial:m1928_5 -# 1928| v1928_7(void) = ^IndirectReadSideEffect[-1] : &:r1928_2, m1921_8 -# 1928| m1928_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1928_2 -# 1928| m1928_9(C) = Chi : total:m1921_8, partial:m1928_8 -# 1920| v1920_5(void) = ReturnVoid : -# 1920| v1920_6(void) = AliasedUse : ~m1928_6 -# 1920| v1920_7(void) = ExitFunction : +# 1967| void test_static_functions_with_assignments() +# 1967| Block 0 +# 1967| v1967_1(void) = EnterFunction : +# 1967| m1967_2(unknown) = AliasedDefinition : +# 1967| m1967_3(unknown) = InitializeNonLocal : +# 1967| m1967_4(unknown) = Chi : total:m1967_2, partial:m1967_3 +# 1968| r1968_1(glval<C>) = VariableAddress[c] : +# 1968| m1968_2(C) = Uninitialized[c] : &:r1968_1 +# 1968| r1968_3(glval<unknown>) = FunctionAddress[C] : +# 1968| v1968_4(void) = Call[C] : func:r1968_3, this:r1968_1 +# 1968| m1968_5(unknown) = ^CallSideEffect : ~m1967_4 +# 1968| m1968_6(unknown) = Chi : total:m1967_4, partial:m1968_5 +# 1968| m1968_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1968_1 +# 1968| m1968_8(C) = Chi : total:m1968_2, partial:m1968_7 +# 1969| r1969_1(glval<int>) = VariableAddress[x] : +# 1969| m1969_2(int) = Uninitialized[x] : &:r1969_1 +# 1970| r1970_1(glval<C>) = VariableAddress[c] : +# 1970| r1970_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] : +# 1970| r1970_3(int) = Constant[10] : +# 1970| r1970_4(int) = Call[StaticMemberFunction] : func:r1970_2, 0:r1970_3 +# 1970| m1970_5(unknown) = ^CallSideEffect : ~m1968_6 +# 1970| m1970_6(unknown) = Chi : total:m1968_6, partial:m1970_5 +# 1970| r1970_7(glval<int>) = VariableAddress[x] : +# 1970| m1970_8(int) = Store[x] : &:r1970_7, r1970_4 +# 1971| r1971_1(glval<int>) = VariableAddress[y] : +# 1971| m1971_2(int) = Uninitialized[y] : &:r1971_1 +# 1972| r1972_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] : +# 1972| r1972_2(int) = Constant[10] : +# 1972| r1972_3(int) = Call[StaticMemberFunction] : func:r1972_1, 0:r1972_2 +# 1972| m1972_4(unknown) = ^CallSideEffect : ~m1970_6 +# 1972| m1972_5(unknown) = Chi : total:m1970_6, partial:m1972_4 +# 1972| r1972_6(glval<int>) = VariableAddress[y] : +# 1972| m1972_7(int) = Store[y] : &:r1972_6, r1972_3 +# 1973| r1973_1(glval<int>) = VariableAddress[z] : +# 1973| m1973_2(int) = Uninitialized[z] : &:r1973_1 +# 1974| r1974_1(glval<unknown>) = FunctionAddress[static_function] : +# 1974| r1974_2(int) = Constant[10] : +# 1974| r1974_3(int) = Call[static_function] : func:r1974_1, 0:r1974_2 +# 1974| m1974_4(unknown) = ^CallSideEffect : ~m1972_5 +# 1974| m1974_5(unknown) = Chi : total:m1972_5, partial:m1974_4 +# 1974| r1974_6(glval<int>) = VariableAddress[z] : +# 1974| m1974_7(int) = Store[z] : &:r1974_6, r1974_3 +# 1975| v1975_1(void) = NoOp : +# 1975| r1975_2(glval<C>) = VariableAddress[c] : +# 1975| r1975_3(glval<unknown>) = FunctionAddress[~C] : +# 1975| v1975_4(void) = Call[~C] : func:r1975_3, this:r1975_2 +# 1975| m1975_5(unknown) = ^CallSideEffect : ~m1974_5 +# 1975| m1975_6(unknown) = Chi : total:m1974_5, partial:m1975_5 +# 1975| v1975_7(void) = ^IndirectReadSideEffect[-1] : &:r1975_2, m1968_8 +# 1975| m1975_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1975_2 +# 1975| m1975_9(C) = Chi : total:m1968_8, partial:m1975_8 +# 1967| v1967_5(void) = ReturnVoid : +# 1967| v1967_6(void) = AliasedUse : ~m1975_6 +# 1967| v1967_7(void) = ExitFunction : -# 1930| void test_double_assign() -# 1930| Block 0 -# 1930| v1930_1(void) = EnterFunction : -# 1930| m1930_2(unknown) = AliasedDefinition : -# 1930| m1930_3(unknown) = InitializeNonLocal : -# 1930| m1930_4(unknown) = Chi : total:m1930_2, partial:m1930_3 -# 1931| r1931_1(glval<int>) = VariableAddress[i] : -# 1931| m1931_2(int) = Uninitialized[i] : &:r1931_1 -# 1931| r1931_3(glval<int>) = VariableAddress[j] : -# 1931| m1931_4(int) = Uninitialized[j] : &:r1931_3 -# 1932| r1932_1(int) = Constant[40] : -# 1932| r1932_2(glval<int>) = VariableAddress[j] : -# 1932| m1932_3(int) = Store[j] : &:r1932_2, r1932_1 -# 1932| r1932_4(int) = Load[j] : &:r1932_2, m1932_3 -# 1932| r1932_5(glval<int>) = VariableAddress[i] : -# 1932| m1932_6(int) = Store[i] : &:r1932_5, r1932_4 -# 1933| v1933_1(void) = NoOp : -# 1930| v1930_5(void) = ReturnVoid : -# 1930| v1930_6(void) = AliasedUse : m1930_3 -# 1930| v1930_7(void) = ExitFunction : +# 1977| void test_double_assign() +# 1977| Block 0 +# 1977| v1977_1(void) = EnterFunction : +# 1977| m1977_2(unknown) = AliasedDefinition : +# 1977| m1977_3(unknown) = InitializeNonLocal : +# 1977| m1977_4(unknown) = Chi : total:m1977_2, partial:m1977_3 +# 1978| r1978_1(glval<int>) = VariableAddress[i] : +# 1978| m1978_2(int) = Uninitialized[i] : &:r1978_1 +# 1978| r1978_3(glval<int>) = VariableAddress[j] : +# 1978| m1978_4(int) = Uninitialized[j] : &:r1978_3 +# 1979| r1979_1(int) = Constant[40] : +# 1979| r1979_2(glval<int>) = VariableAddress[j] : +# 1979| m1979_3(int) = Store[j] : &:r1979_2, r1979_1 +# 1979| r1979_4(int) = Load[j] : &:r1979_2, m1979_3 +# 1979| r1979_5(glval<int>) = VariableAddress[i] : +# 1979| m1979_6(int) = Store[i] : &:r1979_5, r1979_4 +# 1980| v1980_1(void) = NoOp : +# 1977| v1977_5(void) = ReturnVoid : +# 1977| v1977_6(void) = AliasedUse : m1977_3 +# 1977| v1977_7(void) = ExitFunction : -# 1935| void test_assign_with_assign_operation() -# 1935| Block 0 -# 1935| v1935_1(void) = EnterFunction : -# 1935| m1935_2(unknown) = AliasedDefinition : -# 1935| m1935_3(unknown) = InitializeNonLocal : -# 1935| m1935_4(unknown) = Chi : total:m1935_2, partial:m1935_3 -# 1936| r1936_1(glval<int>) = VariableAddress[i] : -# 1936| m1936_2(int) = Uninitialized[i] : &:r1936_1 -# 1936| r1936_3(glval<int>) = VariableAddress[j] : -# 1936| r1936_4(int) = Constant[0] : -# 1936| m1936_5(int) = Store[j] : &:r1936_3, r1936_4 -# 1937| r1937_1(int) = Constant[40] : -# 1937| r1937_2(glval<int>) = VariableAddress[j] : -# 1937| r1937_3(int) = Load[j] : &:r1937_2, m1936_5 -# 1937| r1937_4(int) = Add : r1937_3, r1937_1 -# 1937| m1937_5(int) = Store[j] : &:r1937_2, r1937_4 -# 1937| r1937_6(int) = Load[j] : &:r1937_2, m1937_5 -# 1937| r1937_7(glval<int>) = VariableAddress[i] : -# 1937| m1937_8(int) = Store[i] : &:r1937_7, r1937_6 -# 1938| v1938_1(void) = NoOp : -# 1935| v1935_5(void) = ReturnVoid : -# 1935| v1935_6(void) = AliasedUse : m1935_3 -# 1935| v1935_7(void) = ExitFunction : +# 1982| void test_assign_with_assign_operation() +# 1982| Block 0 +# 1982| v1982_1(void) = EnterFunction : +# 1982| m1982_2(unknown) = AliasedDefinition : +# 1982| m1982_3(unknown) = InitializeNonLocal : +# 1982| m1982_4(unknown) = Chi : total:m1982_2, partial:m1982_3 +# 1983| r1983_1(glval<int>) = VariableAddress[i] : +# 1983| m1983_2(int) = Uninitialized[i] : &:r1983_1 +# 1983| r1983_3(glval<int>) = VariableAddress[j] : +# 1983| r1983_4(int) = Constant[0] : +# 1983| m1983_5(int) = Store[j] : &:r1983_3, r1983_4 +# 1984| r1984_1(int) = Constant[40] : +# 1984| r1984_2(glval<int>) = VariableAddress[j] : +# 1984| r1984_3(int) = Load[j] : &:r1984_2, m1983_5 +# 1984| r1984_4(int) = Add : r1984_3, r1984_1 +# 1984| m1984_5(int) = Store[j] : &:r1984_2, r1984_4 +# 1984| r1984_6(int) = Load[j] : &:r1984_2, m1984_5 +# 1984| r1984_7(glval<int>) = VariableAddress[i] : +# 1984| m1984_8(int) = Store[i] : &:r1984_7, r1984_6 +# 1985| v1985_1(void) = NoOp : +# 1982| v1982_5(void) = ReturnVoid : +# 1982| v1982_6(void) = AliasedUse : m1982_3 +# 1982| v1982_7(void) = ExitFunction : -# 1944| D& D::ReferenceStaticMemberFunction() -# 1944| Block 0 -# 1944| v1944_1(void) = EnterFunction : -# 1944| m1944_2(unknown) = AliasedDefinition : -# 1944| m1944_3(unknown) = InitializeNonLocal : -# 1944| m1944_4(unknown) = Chi : total:m1944_2, partial:m1944_3 -# 1945| r1945_1(glval<D &>) = VariableAddress[#return] : -# 1945| r1945_2(glval<D>) = VariableAddress[x] : -# 1945| r1945_3(D &) = CopyValue : r1945_2 -# 1945| m1945_4(D &) = Store[#return] : &:r1945_1, r1945_3 -# 1944| r1944_5(glval<D &>) = VariableAddress[#return] : -# 1944| v1944_6(void) = ReturnValue : &:r1944_5, m1945_4 -# 1944| v1944_7(void) = AliasedUse : m1944_3 -# 1944| v1944_8(void) = ExitFunction : +# 1991| D& D::ReferenceStaticMemberFunction() +# 1991| Block 0 +# 1991| v1991_1(void) = EnterFunction : +# 1991| m1991_2(unknown) = AliasedDefinition : +# 1991| m1991_3(unknown) = InitializeNonLocal : +# 1991| m1991_4(unknown) = Chi : total:m1991_2, partial:m1991_3 +# 1992| r1992_1(glval<D &>) = VariableAddress[#return] : +# 1992| r1992_2(glval<D>) = VariableAddress[x] : +# 1992| r1992_3(D &) = CopyValue : r1992_2 +# 1992| m1992_4(D &) = Store[#return] : &:r1992_1, r1992_3 +# 1991| r1991_5(glval<D &>) = VariableAddress[#return] : +# 1991| v1991_6(void) = ReturnValue : &:r1991_5, m1992_4 +# 1991| v1991_7(void) = AliasedUse : m1991_3 +# 1991| v1991_8(void) = ExitFunction : -# 1947| D D::ObjectStaticMemberFunction() -# 1947| Block 0 -# 1947| v1947_1(void) = EnterFunction : -# 1947| m1947_2(unknown) = AliasedDefinition : -# 1947| m1947_3(unknown) = InitializeNonLocal : -# 1947| m1947_4(unknown) = Chi : total:m1947_2, partial:m1947_3 -# 1948| r1948_1(glval<D>) = VariableAddress[#return] : -# 1948| r1948_2(glval<D>) = VariableAddress[x] : -# 1948| r1948_3(D) = Load[x] : &:r1948_2, ~m1947_3 -# 1948| m1948_4(D) = Store[#return] : &:r1948_1, r1948_3 -# 1947| r1947_5(glval<D>) = VariableAddress[#return] : -# 1947| v1947_6(void) = ReturnValue : &:r1947_5, m1948_4 -# 1947| v1947_7(void) = AliasedUse : m1947_3 -# 1947| v1947_8(void) = ExitFunction : +# 1994| D D::ObjectStaticMemberFunction() +# 1994| Block 0 +# 1994| v1994_1(void) = EnterFunction : +# 1994| m1994_2(unknown) = AliasedDefinition : +# 1994| m1994_3(unknown) = InitializeNonLocal : +# 1994| m1994_4(unknown) = Chi : total:m1994_2, partial:m1994_3 +# 1995| r1995_1(glval<D>) = VariableAddress[#return] : +# 1995| r1995_2(glval<D>) = VariableAddress[x] : +# 1995| r1995_3(D) = Load[x] : &:r1995_2, ~m1994_3 +# 1995| m1995_4(D) = Store[#return] : &:r1995_1, r1995_3 +# 1994| r1994_5(glval<D>) = VariableAddress[#return] : +# 1994| v1994_6(void) = ReturnValue : &:r1994_5, m1995_4 +# 1994| v1994_7(void) = AliasedUse : m1994_3 +# 1994| v1994_8(void) = ExitFunction : -# 1952| void test_static_member_functions_with_reference_return() -# 1952| Block 0 -# 1952| v1952_1(void) = EnterFunction : -# 1952| m1952_2(unknown) = AliasedDefinition : -# 1952| m1952_3(unknown) = InitializeNonLocal : -# 1952| m1952_4(unknown) = Chi : total:m1952_2, partial:m1952_3 -# 1953| r1953_1(glval<D>) = VariableAddress[d] : -# 1953| m1953_2(D) = Uninitialized[d] : &:r1953_1 -# 1955| r1955_1(glval<D>) = VariableAddress[d] : -# 1955| r1955_2(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : -# 1955| r1955_3(D &) = Call[ReferenceStaticMemberFunction] : func:r1955_2 -# 1955| m1955_4(unknown) = ^CallSideEffect : ~m1952_4 -# 1955| m1955_5(unknown) = Chi : total:m1952_4, partial:m1955_4 -# 1955| r1955_6(glval<D>) = CopyValue : r1955_3 -# 1956| r1956_1(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : -# 1956| r1956_2(D &) = Call[ReferenceStaticMemberFunction] : func:r1956_1 -# 1956| m1956_3(unknown) = ^CallSideEffect : ~m1955_5 -# 1956| m1956_4(unknown) = Chi : total:m1955_5, partial:m1956_3 -# 1956| r1956_5(glval<D>) = CopyValue : r1956_2 -# 1957| r1957_1(glval<D>) = VariableAddress[d] : -# 1957| r1957_2(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : -# 1957| r1957_3(D) = Call[ObjectStaticMemberFunction] : func:r1957_2 -# 1957| m1957_4(unknown) = ^CallSideEffect : ~m1956_4 -# 1957| m1957_5(unknown) = Chi : total:m1956_4, partial:m1957_4 -# 1958| r1958_1(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : -# 1958| r1958_2(D) = Call[ObjectStaticMemberFunction] : func:r1958_1 -# 1958| m1958_3(unknown) = ^CallSideEffect : ~m1957_5 -# 1958| m1958_4(unknown) = Chi : total:m1957_5, partial:m1958_3 -# 1960| r1960_1(glval<D>) = VariableAddress[x] : -# 1960| m1960_2(D) = Uninitialized[x] : &:r1960_1 -# 1961| r1961_1(glval<D>) = VariableAddress[d] : -# 1961| r1961_2(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : -# 1961| r1961_3(D &) = Call[ReferenceStaticMemberFunction] : func:r1961_2 -# 1961| m1961_4(unknown) = ^CallSideEffect : ~m1958_4 -# 1961| m1961_5(unknown) = Chi : total:m1958_4, partial:m1961_4 -# 1961| r1961_6(D) = Load[?] : &:r1961_3, ~m1961_5 -# 1961| r1961_7(glval<D>) = VariableAddress[x] : -# 1961| m1961_8(D) = Store[x] : &:r1961_7, r1961_6 -# 1962| r1962_1(glval<D>) = VariableAddress[y] : -# 1962| m1962_2(D) = Uninitialized[y] : &:r1962_1 -# 1963| r1963_1(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : -# 1963| r1963_2(D &) = Call[ReferenceStaticMemberFunction] : func:r1963_1 -# 1963| m1963_3(unknown) = ^CallSideEffect : ~m1961_5 -# 1963| m1963_4(unknown) = Chi : total:m1961_5, partial:m1963_3 -# 1963| r1963_5(D) = Load[?] : &:r1963_2, ~m1963_4 -# 1963| r1963_6(glval<D>) = VariableAddress[y] : -# 1963| m1963_7(D) = Store[y] : &:r1963_6, r1963_5 -# 1964| r1964_1(glval<D>) = VariableAddress[j] : -# 1964| m1964_2(D) = Uninitialized[j] : &:r1964_1 -# 1965| r1965_1(glval<D>) = VariableAddress[d] : -# 1965| r1965_2(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : -# 1965| r1965_3(D) = Call[ObjectStaticMemberFunction] : func:r1965_2 -# 1965| m1965_4(unknown) = ^CallSideEffect : ~m1963_4 -# 1965| m1965_5(unknown) = Chi : total:m1963_4, partial:m1965_4 -# 1965| r1965_6(glval<D>) = VariableAddress[j] : -# 1965| m1965_7(D) = Store[j] : &:r1965_6, r1965_3 -# 1966| r1966_1(glval<D>) = VariableAddress[k] : -# 1966| m1966_2(D) = Uninitialized[k] : &:r1966_1 -# 1967| r1967_1(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : -# 1967| r1967_2(D) = Call[ObjectStaticMemberFunction] : func:r1967_1 -# 1967| m1967_3(unknown) = ^CallSideEffect : ~m1965_5 -# 1967| m1967_4(unknown) = Chi : total:m1965_5, partial:m1967_3 -# 1967| r1967_5(glval<D>) = VariableAddress[k] : -# 1967| m1967_6(D) = Store[k] : &:r1967_5, r1967_2 -# 1968| v1968_1(void) = NoOp : -# 1952| v1952_5(void) = ReturnVoid : -# 1952| v1952_6(void) = AliasedUse : ~m1967_4 -# 1952| v1952_7(void) = ExitFunction : +# 1999| void test_static_member_functions_with_reference_return() +# 1999| Block 0 +# 1999| v1999_1(void) = EnterFunction : +# 1999| m1999_2(unknown) = AliasedDefinition : +# 1999| m1999_3(unknown) = InitializeNonLocal : +# 1999| m1999_4(unknown) = Chi : total:m1999_2, partial:m1999_3 +# 2000| r2000_1(glval<D>) = VariableAddress[d] : +# 2000| m2000_2(D) = Uninitialized[d] : &:r2000_1 +# 2002| r2002_1(glval<D>) = VariableAddress[d] : +# 2002| r2002_2(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2002| r2002_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2002_2 +# 2002| m2002_4(unknown) = ^CallSideEffect : ~m1999_4 +# 2002| m2002_5(unknown) = Chi : total:m1999_4, partial:m2002_4 +# 2002| r2002_6(glval<D>) = CopyValue : r2002_3 +# 2003| r2003_1(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2003| r2003_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2003_1 +# 2003| m2003_3(unknown) = ^CallSideEffect : ~m2002_5 +# 2003| m2003_4(unknown) = Chi : total:m2002_5, partial:m2003_3 +# 2003| r2003_5(glval<D>) = CopyValue : r2003_2 +# 2004| r2004_1(glval<D>) = VariableAddress[d] : +# 2004| r2004_2(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : +# 2004| r2004_3(D) = Call[ObjectStaticMemberFunction] : func:r2004_2 +# 2004| m2004_4(unknown) = ^CallSideEffect : ~m2003_4 +# 2004| m2004_5(unknown) = Chi : total:m2003_4, partial:m2004_4 +# 2005| r2005_1(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : +# 2005| r2005_2(D) = Call[ObjectStaticMemberFunction] : func:r2005_1 +# 2005| m2005_3(unknown) = ^CallSideEffect : ~m2004_5 +# 2005| m2005_4(unknown) = Chi : total:m2004_5, partial:m2005_3 +# 2007| r2007_1(glval<D>) = VariableAddress[x] : +# 2007| m2007_2(D) = Uninitialized[x] : &:r2007_1 +# 2008| r2008_1(glval<D>) = VariableAddress[d] : +# 2008| r2008_2(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2008| r2008_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2008_2 +# 2008| m2008_4(unknown) = ^CallSideEffect : ~m2005_4 +# 2008| m2008_5(unknown) = Chi : total:m2005_4, partial:m2008_4 +# 2008| r2008_6(D) = Load[?] : &:r2008_3, ~m2008_5 +# 2008| r2008_7(glval<D>) = VariableAddress[x] : +# 2008| m2008_8(D) = Store[x] : &:r2008_7, r2008_6 +# 2009| r2009_1(glval<D>) = VariableAddress[y] : +# 2009| m2009_2(D) = Uninitialized[y] : &:r2009_1 +# 2010| r2010_1(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2010| r2010_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2010_1 +# 2010| m2010_3(unknown) = ^CallSideEffect : ~m2008_5 +# 2010| m2010_4(unknown) = Chi : total:m2008_5, partial:m2010_3 +# 2010| r2010_5(D) = Load[?] : &:r2010_2, ~m2010_4 +# 2010| r2010_6(glval<D>) = VariableAddress[y] : +# 2010| m2010_7(D) = Store[y] : &:r2010_6, r2010_5 +# 2011| r2011_1(glval<D>) = VariableAddress[j] : +# 2011| m2011_2(D) = Uninitialized[j] : &:r2011_1 +# 2012| r2012_1(glval<D>) = VariableAddress[d] : +# 2012| r2012_2(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : +# 2012| r2012_3(D) = Call[ObjectStaticMemberFunction] : func:r2012_2 +# 2012| m2012_4(unknown) = ^CallSideEffect : ~m2010_4 +# 2012| m2012_5(unknown) = Chi : total:m2010_4, partial:m2012_4 +# 2012| r2012_6(glval<D>) = VariableAddress[j] : +# 2012| m2012_7(D) = Store[j] : &:r2012_6, r2012_3 +# 2013| r2013_1(glval<D>) = VariableAddress[k] : +# 2013| m2013_2(D) = Uninitialized[k] : &:r2013_1 +# 2014| r2014_1(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : +# 2014| r2014_2(D) = Call[ObjectStaticMemberFunction] : func:r2014_1 +# 2014| m2014_3(unknown) = ^CallSideEffect : ~m2012_5 +# 2014| m2014_4(unknown) = Chi : total:m2012_5, partial:m2014_3 +# 2014| r2014_5(glval<D>) = VariableAddress[k] : +# 2014| m2014_6(D) = Store[k] : &:r2014_5, r2014_2 +# 2015| v2015_1(void) = NoOp : +# 1999| v1999_5(void) = ReturnVoid : +# 1999| v1999_6(void) = AliasedUse : ~m2014_4 +# 1999| v1999_7(void) = ExitFunction : -# 1970| void test_volatile() -# 1970| Block 0 -# 1970| v1970_1(void) = EnterFunction : -# 1970| m1970_2(unknown) = AliasedDefinition : -# 1970| m1970_3(unknown) = InitializeNonLocal : -# 1970| m1970_4(unknown) = Chi : total:m1970_2, partial:m1970_3 -# 1971| r1971_1(glval<int>) = VariableAddress[x] : -# 1971| m1971_2(int) = Uninitialized[x] : &:r1971_1 -# 1972| r1972_1(glval<int>) = VariableAddress[x] : -# 1972| r1972_2(int) = Load[x] : &:r1972_1, m1971_2 -# 1973| v1973_1(void) = NoOp : -# 1970| v1970_5(void) = ReturnVoid : -# 1970| v1970_6(void) = AliasedUse : m1970_3 -# 1970| v1970_7(void) = ExitFunction : +# 2017| void test_volatile() +# 2017| Block 0 +# 2017| v2017_1(void) = EnterFunction : +# 2017| m2017_2(unknown) = AliasedDefinition : +# 2017| m2017_3(unknown) = InitializeNonLocal : +# 2017| m2017_4(unknown) = Chi : total:m2017_2, partial:m2017_3 +# 2018| r2018_1(glval<int>) = VariableAddress[x] : +# 2018| m2018_2(int) = Uninitialized[x] : &:r2018_1 +# 2019| r2019_1(glval<int>) = VariableAddress[x] : +# 2019| r2019_2(int) = Load[x] : &:r2019_1, m2018_2 +# 2020| v2020_1(void) = NoOp : +# 2017| v2017_5(void) = ReturnVoid : +# 2017| v2017_6(void) = AliasedUse : m2017_3 +# 2017| v2017_7(void) = ExitFunction : -# 1981| void value_category_test() -# 1981| Block 0 -# 1981| v1981_1(void) = EnterFunction : -# 1981| m1981_2(unknown) = AliasedDefinition : -# 1981| m1981_3(unknown) = InitializeNonLocal : -# 1981| m1981_4(unknown) = Chi : total:m1981_2, partial:m1981_3 -# 1982| r1982_1(glval<ValCat>) = VariableAddress[c] : -# 1982| m1982_2(ValCat) = Uninitialized[c] : &:r1982_1 +# 2028| void value_category_test() +# 2028| Block 0 +# 2028| v2028_1(void) = EnterFunction : +# 2028| m2028_2(unknown) = AliasedDefinition : +# 2028| m2028_3(unknown) = InitializeNonLocal : +# 2028| m2028_4(unknown) = Chi : total:m2028_2, partial:m2028_3 +# 2029| r2029_1(glval<ValCat>) = VariableAddress[c] : +# 2029| m2029_2(ValCat) = Uninitialized[c] : &:r2029_1 #-----| r0_1(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| m0_2(ValCat) = Uninitialized[#temp0:0] : &:r0_1 #-----| r0_3(ValCat) = Load[#temp0:0] : &:r0_1, m0_2 -# 1984| r1984_1(glval<ValCat>) = VariableAddress[c] : -# 1984| r1984_2(glval<unknown>) = FunctionAddress[lvalue] : -# 1984| r1984_3(ValCat &) = Call[lvalue] : func:r1984_2 -# 1984| m1984_4(unknown) = ^CallSideEffect : ~m1981_4 -# 1984| m1984_5(unknown) = Chi : total:m1981_4, partial:m1984_4 -# 1984| r1984_6(glval<ValCat>) = CopyValue : r1984_3 -# 1984| m1984_7(ValCat) = Store[?] : &:r1984_6, r0_3 -# 1984| m1984_8(unknown) = Chi : total:m1984_5, partial:m1984_7 +# 2031| r2031_1(glval<ValCat>) = VariableAddress[c] : +# 2031| r2031_2(glval<unknown>) = FunctionAddress[lvalue] : +# 2031| r2031_3(ValCat &) = Call[lvalue] : func:r2031_2 +# 2031| m2031_4(unknown) = ^CallSideEffect : ~m2028_4 +# 2031| m2031_5(unknown) = Chi : total:m2028_4, partial:m2031_4 +# 2031| r2031_6(glval<ValCat>) = CopyValue : r2031_3 +# 2031| m2031_7(ValCat) = Store[?] : &:r2031_6, r0_3 +# 2031| m2031_8(unknown) = Chi : total:m2031_5, partial:m2031_7 #-----| r0_4(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| m0_5(ValCat) = Uninitialized[#temp0:0] : &:r0_4 #-----| r0_6(ValCat) = Load[#temp0:0] : &:r0_4, m0_5 -# 1985| r1985_1(glval<ValCat>) = VariableAddress[c] : -# 1985| r1985_2(glval<unknown>) = FunctionAddress[xvalue] : -# 1985| r1985_3(ValCat &&) = Call[xvalue] : func:r1985_2 -# 1985| m1985_4(unknown) = ^CallSideEffect : ~m1984_8 -# 1985| m1985_5(unknown) = Chi : total:m1984_8, partial:m1985_4 -# 1985| r1985_6(glval<ValCat>) = CopyValue : r1985_3 -# 1985| m1985_7(ValCat) = Store[?] : &:r1985_6, r0_6 -# 1985| m1985_8(unknown) = Chi : total:m1985_5, partial:m1985_7 +# 2032| r2032_1(glval<ValCat>) = VariableAddress[c] : +# 2032| r2032_2(glval<unknown>) = FunctionAddress[xvalue] : +# 2032| r2032_3(ValCat &&) = Call[xvalue] : func:r2032_2 +# 2032| m2032_4(unknown) = ^CallSideEffect : ~m2031_8 +# 2032| m2032_5(unknown) = Chi : total:m2031_8, partial:m2032_4 +# 2032| r2032_6(glval<ValCat>) = CopyValue : r2032_3 +# 2032| m2032_7(ValCat) = Store[?] : &:r2032_6, r0_6 +# 2032| m2032_8(unknown) = Chi : total:m2032_5, partial:m2032_7 #-----| r0_7(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| m0_8(ValCat) = Uninitialized[#temp0:0] : &:r0_7 #-----| r0_9(ValCat) = Load[#temp0:0] : &:r0_7, m0_8 -# 1986| r1986_1(glval<ValCat>) = VariableAddress[#temp1986:5] : -# 1986| r1986_2(glval<ValCat>) = VariableAddress[c] : -# 1986| r1986_3(glval<unknown>) = FunctionAddress[prvalue] : -# 1986| r1986_4(ValCat) = Call[prvalue] : func:r1986_3 -# 1986| m1986_5(unknown) = ^CallSideEffect : ~m1985_8 -# 1986| m1986_6(unknown) = Chi : total:m1985_8, partial:m1986_5 -# 1986| m1986_7(ValCat) = Store[#temp1986:5] : &:r1986_1, r1986_4 -# 1986| m1986_8(ValCat) = Store[#temp1986:5] : &:r1986_1, r0_9 +# 2033| r2033_1(glval<ValCat>) = VariableAddress[#temp2033:5] : +# 2033| r2033_2(glval<ValCat>) = VariableAddress[c] : +# 2033| r2033_3(glval<unknown>) = FunctionAddress[prvalue] : +# 2033| r2033_4(ValCat) = Call[prvalue] : func:r2033_3 +# 2033| m2033_5(unknown) = ^CallSideEffect : ~m2032_8 +# 2033| m2033_6(unknown) = Chi : total:m2032_8, partial:m2033_5 +# 2033| m2033_7(ValCat) = Store[#temp2033:5] : &:r2033_1, r2033_4 +# 2033| m2033_8(ValCat) = Store[#temp2033:5] : &:r2033_1, r0_9 #-----| r0_10(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| m0_11(ValCat) = Uninitialized[#temp0:0] : &:r0_10 #-----| r0_12(ValCat) = Load[#temp0:0] : &:r0_10, m0_11 -# 1987| r1987_1(glval<unknown>) = FunctionAddress[lvalue] : -# 1987| r1987_2(ValCat &) = Call[lvalue] : func:r1987_1 -# 1987| m1987_3(unknown) = ^CallSideEffect : ~m1986_6 -# 1987| m1987_4(unknown) = Chi : total:m1986_6, partial:m1987_3 -# 1987| r1987_5(glval<ValCat>) = CopyValue : r1987_2 -# 1987| m1987_6(ValCat) = Store[?] : &:r1987_5, r0_12 -# 1987| m1987_7(unknown) = Chi : total:m1987_4, partial:m1987_6 +# 2034| r2034_1(glval<unknown>) = FunctionAddress[lvalue] : +# 2034| r2034_2(ValCat &) = Call[lvalue] : func:r2034_1 +# 2034| m2034_3(unknown) = ^CallSideEffect : ~m2033_6 +# 2034| m2034_4(unknown) = Chi : total:m2033_6, partial:m2034_3 +# 2034| r2034_5(glval<ValCat>) = CopyValue : r2034_2 +# 2034| m2034_6(ValCat) = Store[?] : &:r2034_5, r0_12 +# 2034| m2034_7(unknown) = Chi : total:m2034_4, partial:m2034_6 #-----| r0_13(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| m0_14(ValCat) = Uninitialized[#temp0:0] : &:r0_13 #-----| r0_15(ValCat) = Load[#temp0:0] : &:r0_13, m0_14 -# 1988| r1988_1(glval<unknown>) = FunctionAddress[xvalue] : -# 1988| r1988_2(ValCat &&) = Call[xvalue] : func:r1988_1 -# 1988| m1988_3(unknown) = ^CallSideEffect : ~m1987_7 -# 1988| m1988_4(unknown) = Chi : total:m1987_7, partial:m1988_3 -# 1988| r1988_5(glval<ValCat>) = CopyValue : r1988_2 -# 1988| m1988_6(ValCat) = Store[?] : &:r1988_5, r0_15 -# 1988| m1988_7(unknown) = Chi : total:m1988_4, partial:m1988_6 +# 2035| r2035_1(glval<unknown>) = FunctionAddress[xvalue] : +# 2035| r2035_2(ValCat &&) = Call[xvalue] : func:r2035_1 +# 2035| m2035_3(unknown) = ^CallSideEffect : ~m2034_7 +# 2035| m2035_4(unknown) = Chi : total:m2034_7, partial:m2035_3 +# 2035| r2035_5(glval<ValCat>) = CopyValue : r2035_2 +# 2035| m2035_6(ValCat) = Store[?] : &:r2035_5, r0_15 +# 2035| m2035_7(unknown) = Chi : total:m2035_4, partial:m2035_6 #-----| r0_16(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| m0_17(ValCat) = Uninitialized[#temp0:0] : &:r0_16 #-----| r0_18(ValCat) = Load[#temp0:0] : &:r0_16, m0_17 -# 1989| r1989_1(glval<ValCat>) = VariableAddress[#temp1989:5] : -# 1989| r1989_2(glval<unknown>) = FunctionAddress[prvalue] : -# 1989| r1989_3(ValCat) = Call[prvalue] : func:r1989_2 -# 1989| m1989_4(unknown) = ^CallSideEffect : ~m1988_7 -# 1989| m1989_5(unknown) = Chi : total:m1988_7, partial:m1989_4 -# 1989| m1989_6(ValCat) = Store[#temp1989:5] : &:r1989_1, r1989_3 -# 1989| m1989_7(ValCat) = Store[#temp1989:5] : &:r1989_1, r0_18 -# 1990| v1990_1(void) = NoOp : -# 1981| v1981_5(void) = ReturnVoid : -# 1981| v1981_6(void) = AliasedUse : ~m1989_5 -# 1981| v1981_7(void) = ExitFunction : +# 2036| r2036_1(glval<ValCat>) = VariableAddress[#temp2036:5] : +# 2036| r2036_2(glval<unknown>) = FunctionAddress[prvalue] : +# 2036| r2036_3(ValCat) = Call[prvalue] : func:r2036_2 +# 2036| m2036_4(unknown) = ^CallSideEffect : ~m2035_7 +# 2036| m2036_5(unknown) = Chi : total:m2035_7, partial:m2036_4 +# 2036| m2036_6(ValCat) = Store[#temp2036:5] : &:r2036_1, r2036_3 +# 2036| m2036_7(ValCat) = Store[#temp2036:5] : &:r2036_1, r0_18 +# 2037| v2037_1(void) = NoOp : +# 2028| v2028_5(void) = ReturnVoid : +# 2028| v2028_6(void) = AliasedUse : ~m2036_5 +# 2028| v2028_7(void) = ExitFunction : -# 1992| void SetStaticFuncPtr() -# 1992| Block 0 -# 1992| v1992_1(void) = EnterFunction : -# 1992| m1992_2(unknown) = AliasedDefinition : -# 1992| m1992_3(unknown) = InitializeNonLocal : -# 1992| m1992_4(unknown) = Chi : total:m1992_2, partial:m1992_3 -# 1993| r1993_1(glval<C>) = VariableAddress[c] : -# 1993| m1993_2(C) = Uninitialized[c] : &:r1993_1 -# 1993| r1993_3(glval<unknown>) = FunctionAddress[C] : -# 1993| v1993_4(void) = Call[C] : func:r1993_3, this:r1993_1 -# 1993| m1993_5(unknown) = ^CallSideEffect : ~m1992_4 -# 1993| m1993_6(unknown) = Chi : total:m1992_4, partial:m1993_5 -# 1993| m1993_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1993_1 -# 1993| m1993_8(C) = Chi : total:m1993_2, partial:m1993_7 -# 1994| r1994_1(glval<..(*)(..)>) = VariableAddress[pfn] : -# 1994| r1994_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : -# 1994| m1994_3(..(*)(..)) = Store[pfn] : &:r1994_1, r1994_2 -# 1995| r1995_1(glval<C>) = VariableAddress[c] : -# 1995| r1995_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : -# 1995| r1995_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 1995| m1995_4(..(*)(..)) = Store[pfn] : &:r1995_3, r1995_2 -# 1996| v1996_1(void) = NoOp : -# 1996| r1996_2(glval<C>) = VariableAddress[c] : -# 1996| r1996_3(glval<unknown>) = FunctionAddress[~C] : -# 1996| v1996_4(void) = Call[~C] : func:r1996_3, this:r1996_2 -# 1996| m1996_5(unknown) = ^CallSideEffect : ~m1993_6 -# 1996| m1996_6(unknown) = Chi : total:m1993_6, partial:m1996_5 -# 1996| v1996_7(void) = ^IndirectReadSideEffect[-1] : &:r1996_2, m1993_8 -# 1996| m1996_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1996_2 -# 1996| m1996_9(C) = Chi : total:m1993_8, partial:m1996_8 -# 1992| v1992_5(void) = ReturnVoid : -# 1992| v1992_6(void) = AliasedUse : ~m1996_6 -# 1992| v1992_7(void) = ExitFunction : +# 2039| void SetStaticFuncPtr() +# 2039| Block 0 +# 2039| v2039_1(void) = EnterFunction : +# 2039| m2039_2(unknown) = AliasedDefinition : +# 2039| m2039_3(unknown) = InitializeNonLocal : +# 2039| m2039_4(unknown) = Chi : total:m2039_2, partial:m2039_3 +# 2040| r2040_1(glval<C>) = VariableAddress[c] : +# 2040| m2040_2(C) = Uninitialized[c] : &:r2040_1 +# 2040| r2040_3(glval<unknown>) = FunctionAddress[C] : +# 2040| v2040_4(void) = Call[C] : func:r2040_3, this:r2040_1 +# 2040| m2040_5(unknown) = ^CallSideEffect : ~m2039_4 +# 2040| m2040_6(unknown) = Chi : total:m2039_4, partial:m2040_5 +# 2040| m2040_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r2040_1 +# 2040| m2040_8(C) = Chi : total:m2040_2, partial:m2040_7 +# 2041| r2041_1(glval<..(*)(..)>) = VariableAddress[pfn] : +# 2041| r2041_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 2041| m2041_3(..(*)(..)) = Store[pfn] : &:r2041_1, r2041_2 +# 2042| r2042_1(glval<C>) = VariableAddress[c] : +# 2042| r2042_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 2042| r2042_3(glval<..(*)(..)>) = VariableAddress[pfn] : +# 2042| m2042_4(..(*)(..)) = Store[pfn] : &:r2042_3, r2042_2 +# 2043| v2043_1(void) = NoOp : +# 2043| r2043_2(glval<C>) = VariableAddress[c] : +# 2043| r2043_3(glval<unknown>) = FunctionAddress[~C] : +# 2043| v2043_4(void) = Call[~C] : func:r2043_3, this:r2043_2 +# 2043| m2043_5(unknown) = ^CallSideEffect : ~m2040_6 +# 2043| m2043_6(unknown) = Chi : total:m2040_6, partial:m2043_5 +# 2043| v2043_7(void) = ^IndirectReadSideEffect[-1] : &:r2043_2, m2040_8 +# 2043| m2043_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r2043_2 +# 2043| m2043_9(C) = Chi : total:m2040_8, partial:m2043_8 +# 2039| v2039_5(void) = ReturnVoid : +# 2039| v2039_6(void) = AliasedUse : ~m2043_6 +# 2039| v2039_7(void) = ExitFunction : -# 1998| void TernaryTestInt(bool, int, int, int) -# 1998| Block 0 -# 1998| v1998_1(void) = EnterFunction : -# 1998| m1998_2(unknown) = AliasedDefinition : -# 1998| m1998_3(unknown) = InitializeNonLocal : -# 1998| m1998_4(unknown) = Chi : total:m1998_2, partial:m1998_3 -# 1998| r1998_5(glval<bool>) = VariableAddress[a] : -# 1998| m1998_6(bool) = InitializeParameter[a] : &:r1998_5 -# 1998| r1998_7(glval<int>) = VariableAddress[x] : -# 1998| m1998_8(int) = InitializeParameter[x] : &:r1998_7 -# 1998| r1998_9(glval<int>) = VariableAddress[y] : -# 1998| m1998_10(int) = InitializeParameter[y] : &:r1998_9 -# 1998| r1998_11(glval<int>) = VariableAddress[z] : -# 1998| m1998_12(int) = InitializeParameter[z] : &:r1998_11 -# 1999| r1999_1(glval<bool>) = VariableAddress[a] : -# 1999| r1999_2(bool) = Load[a] : &:r1999_1, m1998_6 -# 1999| v1999_3(void) = ConditionalBranch : r1999_2 +# 2045| void TernaryTestInt(bool, int, int, int) +# 2045| Block 0 +# 2045| v2045_1(void) = EnterFunction : +# 2045| m2045_2(unknown) = AliasedDefinition : +# 2045| m2045_3(unknown) = InitializeNonLocal : +# 2045| m2045_4(unknown) = Chi : total:m2045_2, partial:m2045_3 +# 2045| r2045_5(glval<bool>) = VariableAddress[a] : +# 2045| m2045_6(bool) = InitializeParameter[a] : &:r2045_5 +# 2045| r2045_7(glval<int>) = VariableAddress[x] : +# 2045| m2045_8(int) = InitializeParameter[x] : &:r2045_7 +# 2045| r2045_9(glval<int>) = VariableAddress[y] : +# 2045| m2045_10(int) = InitializeParameter[y] : &:r2045_9 +# 2045| r2045_11(glval<int>) = VariableAddress[z] : +# 2045| m2045_12(int) = InitializeParameter[z] : &:r2045_11 +# 2046| r2046_1(glval<bool>) = VariableAddress[a] : +# 2046| r2046_2(bool) = Load[a] : &:r2046_1, m2045_6 +# 2046| v2046_3(void) = ConditionalBranch : r2046_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1999| Block 1 -# 1999| m1999_4(int) = Phi : from 2:m1999_12, from 3:m1999_16 -# 1999| r1999_5(glval<int>) = VariableAddress[#temp1999:9] : -# 1999| r1999_6(int) = Load[#temp1999:9] : &:r1999_5, m1999_4 -# 1999| r1999_7(glval<int>) = VariableAddress[z] : -# 1999| m1999_8(int) = Store[z] : &:r1999_7, r1999_6 -# 2000| r2000_1(glval<bool>) = VariableAddress[a] : -# 2000| r2000_2(bool) = Load[a] : &:r2000_1, m1998_6 -# 2000| v2000_3(void) = ConditionalBranch : r2000_2 +# 2046| Block 1 +# 2046| m2046_4(int) = Phi : from 2:m2046_12, from 3:m2046_16 +# 2046| r2046_5(glval<int>) = VariableAddress[#temp2046:9] : +# 2046| r2046_6(int) = Load[#temp2046:9] : &:r2046_5, m2046_4 +# 2046| r2046_7(glval<int>) = VariableAddress[z] : +# 2046| m2046_8(int) = Store[z] : &:r2046_7, r2046_6 +# 2047| r2047_1(glval<bool>) = VariableAddress[a] : +# 2047| r2047_2(bool) = Load[a] : &:r2047_1, m2045_6 +# 2047| v2047_3(void) = ConditionalBranch : r2047_2 #-----| False -> Block 6 #-----| True -> Block 5 -# 1999| Block 2 -# 1999| r1999_9(glval<int>) = VariableAddress[x] : -# 1999| r1999_10(int) = Load[x] : &:r1999_9, m1998_8 -# 1999| r1999_11(glval<int>) = VariableAddress[#temp1999:9] : -# 1999| m1999_12(int) = Store[#temp1999:9] : &:r1999_11, r1999_10 +# 2046| Block 2 +# 2046| r2046_9(glval<int>) = VariableAddress[x] : +# 2046| r2046_10(int) = Load[x] : &:r2046_9, m2045_8 +# 2046| r2046_11(glval<int>) = VariableAddress[#temp2046:9] : +# 2046| m2046_12(int) = Store[#temp2046:9] : &:r2046_11, r2046_10 #-----| Goto -> Block 1 -# 1999| Block 3 -# 1999| r1999_13(glval<int>) = VariableAddress[y] : -# 1999| r1999_14(int) = Load[y] : &:r1999_13, m1998_10 -# 1999| r1999_15(glval<int>) = VariableAddress[#temp1999:9] : -# 1999| m1999_16(int) = Store[#temp1999:9] : &:r1999_15, r1999_14 +# 2046| Block 3 +# 2046| r2046_13(glval<int>) = VariableAddress[y] : +# 2046| r2046_14(int) = Load[y] : &:r2046_13, m2045_10 +# 2046| r2046_15(glval<int>) = VariableAddress[#temp2046:9] : +# 2046| m2046_16(int) = Store[#temp2046:9] : &:r2046_15, r2046_14 #-----| Goto -> Block 1 -# 2000| Block 4 -# 2000| m2000_4(int) = Phi : from 5:m2000_12, from 6:m2000_15 -# 2000| r2000_5(glval<int>) = VariableAddress[#temp2000:9] : -# 2000| r2000_6(int) = Load[#temp2000:9] : &:r2000_5, m2000_4 -# 2000| r2000_7(glval<int>) = VariableAddress[z] : -# 2000| m2000_8(int) = Store[z] : &:r2000_7, r2000_6 -# 2001| r2001_1(glval<bool>) = VariableAddress[a] : -# 2001| r2001_2(bool) = Load[a] : &:r2001_1, m1998_6 -# 2001| v2001_3(void) = ConditionalBranch : r2001_2 +# 2047| Block 4 +# 2047| m2047_4(int) = Phi : from 5:m2047_12, from 6:m2047_15 +# 2047| r2047_5(glval<int>) = VariableAddress[#temp2047:9] : +# 2047| r2047_6(int) = Load[#temp2047:9] : &:r2047_5, m2047_4 +# 2047| r2047_7(glval<int>) = VariableAddress[z] : +# 2047| m2047_8(int) = Store[z] : &:r2047_7, r2047_6 +# 2048| r2048_1(glval<bool>) = VariableAddress[a] : +# 2048| r2048_2(bool) = Load[a] : &:r2048_1, m2045_6 +# 2048| v2048_3(void) = ConditionalBranch : r2048_2 #-----| False -> Block 9 #-----| True -> Block 8 -# 2000| Block 5 -# 2000| r2000_9(glval<int>) = VariableAddress[x] : -# 2000| r2000_10(int) = Load[x] : &:r2000_9, m1998_8 -# 2000| r2000_11(glval<int>) = VariableAddress[#temp2000:9] : -# 2000| m2000_12(int) = Store[#temp2000:9] : &:r2000_11, r2000_10 +# 2047| Block 5 +# 2047| r2047_9(glval<int>) = VariableAddress[x] : +# 2047| r2047_10(int) = Load[x] : &:r2047_9, m2045_8 +# 2047| r2047_11(glval<int>) = VariableAddress[#temp2047:9] : +# 2047| m2047_12(int) = Store[#temp2047:9] : &:r2047_11, r2047_10 #-----| Goto -> Block 4 -# 2000| Block 6 -# 2000| r2000_13(int) = Constant[5] : -# 2000| r2000_14(glval<int>) = VariableAddress[#temp2000:9] : -# 2000| m2000_15(int) = Store[#temp2000:9] : &:r2000_14, r2000_13 +# 2047| Block 6 +# 2047| r2047_13(int) = Constant[5] : +# 2047| r2047_14(glval<int>) = VariableAddress[#temp2047:9] : +# 2047| m2047_15(int) = Store[#temp2047:9] : &:r2047_14, r2047_13 #-----| Goto -> Block 4 -# 2001| Block 7 -# 2001| m2001_4(int) = Phi : from 8:m2001_11, from 9:m2001_14 -# 2001| r2001_5(glval<int>) = VariableAddress[#temp2001:9] : -# 2001| r2001_6(int) = Load[#temp2001:9] : &:r2001_5, m2001_4 -# 2001| r2001_7(glval<int>) = VariableAddress[z] : -# 2001| m2001_8(int) = Store[z] : &:r2001_7, r2001_6 -# 2002| r2002_1(int) = Constant[7] : -# 2002| r2002_2(glval<bool>) = VariableAddress[a] : -# 2002| r2002_3(bool) = Load[a] : &:r2002_2, m1998_6 -# 2002| v2002_4(void) = ConditionalBranch : r2002_3 +# 2048| Block 7 +# 2048| m2048_4(int) = Phi : from 8:m2048_11, from 9:m2048_14 +# 2048| r2048_5(glval<int>) = VariableAddress[#temp2048:9] : +# 2048| r2048_6(int) = Load[#temp2048:9] : &:r2048_5, m2048_4 +# 2048| r2048_7(glval<int>) = VariableAddress[z] : +# 2048| m2048_8(int) = Store[z] : &:r2048_7, r2048_6 +# 2049| r2049_1(int) = Constant[7] : +# 2049| r2049_2(glval<bool>) = VariableAddress[a] : +# 2049| r2049_3(bool) = Load[a] : &:r2049_2, m2045_6 +# 2049| v2049_4(void) = ConditionalBranch : r2049_3 #-----| False -> Block 12 #-----| True -> Block 11 -# 2001| Block 8 -# 2001| r2001_9(int) = Constant[3] : -# 2001| r2001_10(glval<int>) = VariableAddress[#temp2001:9] : -# 2001| m2001_11(int) = Store[#temp2001:9] : &:r2001_10, r2001_9 +# 2048| Block 8 +# 2048| r2048_9(int) = Constant[3] : +# 2048| r2048_10(glval<int>) = VariableAddress[#temp2048:9] : +# 2048| m2048_11(int) = Store[#temp2048:9] : &:r2048_10, r2048_9 #-----| Goto -> Block 7 -# 2001| Block 9 -# 2001| r2001_12(int) = Constant[5] : -# 2001| r2001_13(glval<int>) = VariableAddress[#temp2001:9] : -# 2001| m2001_14(int) = Store[#temp2001:9] : &:r2001_13, r2001_12 +# 2048| Block 9 +# 2048| r2048_12(int) = Constant[5] : +# 2048| r2048_13(glval<int>) = VariableAddress[#temp2048:9] : +# 2048| m2048_14(int) = Store[#temp2048:9] : &:r2048_13, r2048_12 #-----| Goto -> Block 7 -# 2002| Block 10 -# 2002| m2002_5(glval<int>) = Phi : from 11:m2002_12, from 12:m2002_15 -# 2002| r2002_6(glval<unknown>) = VariableAddress[#temp2002:6] : -# 2002| r2002_7(glval<int>) = Load[#temp2002:6] : &:r2002_6, m2002_5 -# 2002| m2002_8(int) = Store[?] : &:r2002_7, r2002_1 -# 2002| m2002_9(unknown) = Chi : total:m1998_4, partial:m2002_8 -# 2003| v2003_1(void) = NoOp : -# 1998| v1998_13(void) = ReturnVoid : -# 1998| v1998_14(void) = AliasedUse : ~m2002_9 -# 1998| v1998_15(void) = ExitFunction : +# 2049| Block 10 +# 2049| m2049_5(glval<int>) = Phi : from 11:m2049_12, from 12:m2049_15 +# 2049| r2049_6(glval<unknown>) = VariableAddress[#temp2049:6] : +# 2049| r2049_7(glval<int>) = Load[#temp2049:6] : &:r2049_6, m2049_5 +# 2049| m2049_8(int) = Store[?] : &:r2049_7, r2049_1 +# 2049| m2049_9(unknown) = Chi : total:m2045_4, partial:m2049_8 +# 2050| v2050_1(void) = NoOp : +# 2045| v2045_13(void) = ReturnVoid : +# 2045| v2045_14(void) = AliasedUse : ~m2049_9 +# 2045| v2045_15(void) = ExitFunction : -# 2002| Block 11 -# 2002| r2002_10(glval<int>) = VariableAddress[x] : -# 2002| r2002_11(glval<unknown>) = VariableAddress[#temp2002:6] : -# 2002| m2002_12(glval<int>) = Store[#temp2002:6] : &:r2002_11, r2002_10 +# 2049| Block 11 +# 2049| r2049_10(glval<int>) = VariableAddress[x] : +# 2049| r2049_11(glval<unknown>) = VariableAddress[#temp2049:6] : +# 2049| m2049_12(glval<int>) = Store[#temp2049:6] : &:r2049_11, r2049_10 #-----| Goto -> Block 10 -# 2002| Block 12 -# 2002| r2002_13(glval<int>) = VariableAddress[y] : -# 2002| r2002_14(glval<unknown>) = VariableAddress[#temp2002:6] : -# 2002| m2002_15(glval<int>) = Store[#temp2002:6] : &:r2002_14, r2002_13 +# 2049| Block 12 +# 2049| r2049_13(glval<int>) = VariableAddress[y] : +# 2049| r2049_14(glval<unknown>) = VariableAddress[#temp2049:6] : +# 2049| m2049_15(glval<int>) = Store[#temp2049:6] : &:r2049_14, r2049_13 #-----| Goto -> Block 10 -# 2008| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) -# 2008| Block 0 -# 2008| v2008_1(void) = EnterFunction : -# 2008| m2008_2(unknown) = AliasedDefinition : -# 2008| m2008_3(unknown) = InitializeNonLocal : -# 2008| m2008_4(unknown) = Chi : total:m2008_2, partial:m2008_3 -# 2008| r2008_5(glval<bool>) = VariableAddress[a] : -# 2008| m2008_6(bool) = InitializeParameter[a] : &:r2008_5 -# 2008| r2008_7(glval<TernaryPodObj>) = VariableAddress[x] : -# 2008| m2008_8(TernaryPodObj) = InitializeParameter[x] : &:r2008_7 -# 2008| r2008_9(glval<TernaryPodObj>) = VariableAddress[y] : -# 2008| m2008_10(TernaryPodObj) = InitializeParameter[y] : &:r2008_9 -# 2008| r2008_11(glval<TernaryPodObj>) = VariableAddress[z] : -# 2008| m2008_12(TernaryPodObj) = InitializeParameter[z] : &:r2008_11 -# 2009| r2009_1(glval<bool>) = VariableAddress[a] : -# 2009| r2009_2(bool) = Load[a] : &:r2009_1, m2008_6 -# 2009| v2009_3(void) = ConditionalBranch : r2009_2 +# 2055| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) +# 2055| Block 0 +# 2055| v2055_1(void) = EnterFunction : +# 2055| m2055_2(unknown) = AliasedDefinition : +# 2055| m2055_3(unknown) = InitializeNonLocal : +# 2055| m2055_4(unknown) = Chi : total:m2055_2, partial:m2055_3 +# 2055| r2055_5(glval<bool>) = VariableAddress[a] : +# 2055| m2055_6(bool) = InitializeParameter[a] : &:r2055_5 +# 2055| r2055_7(glval<TernaryPodObj>) = VariableAddress[x] : +# 2055| m2055_8(TernaryPodObj) = InitializeParameter[x] : &:r2055_7 +# 2055| r2055_9(glval<TernaryPodObj>) = VariableAddress[y] : +# 2055| m2055_10(TernaryPodObj) = InitializeParameter[y] : &:r2055_9 +# 2055| r2055_11(glval<TernaryPodObj>) = VariableAddress[z] : +# 2055| m2055_12(TernaryPodObj) = InitializeParameter[z] : &:r2055_11 +# 2056| r2056_1(glval<bool>) = VariableAddress[a] : +# 2056| r2056_2(bool) = Load[a] : &:r2056_1, m2055_6 +# 2056| v2056_3(void) = ConditionalBranch : r2056_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2009| Block 1 -# 2009| m2009_4(TernaryPodObj) = Phi : from 2:m2009_12, from 3:m2009_16 -# 2009| r2009_5(glval<TernaryPodObj>) = VariableAddress[#temp2009:9] : -# 2009| r2009_6(TernaryPodObj) = Load[#temp2009:9] : &:r2009_5, m2009_4 -# 2009| r2009_7(glval<TernaryPodObj>) = VariableAddress[z] : -# 2009| m2009_8(TernaryPodObj) = Store[z] : &:r2009_7, r2009_6 -# 2010| r2010_1(glval<TernaryPodObj>) = VariableAddress[#temp2010:9] : -# 2010| r2010_2(glval<bool>) = VariableAddress[a] : -# 2010| r2010_3(bool) = Load[a] : &:r2010_2, m2008_6 -# 2010| v2010_4(void) = ConditionalBranch : r2010_3 +# 2056| Block 1 +# 2056| m2056_4(TernaryPodObj) = Phi : from 2:m2056_12, from 3:m2056_16 +# 2056| r2056_5(glval<TernaryPodObj>) = VariableAddress[#temp2056:9] : +# 2056| r2056_6(TernaryPodObj) = Load[#temp2056:9] : &:r2056_5, m2056_4 +# 2056| r2056_7(glval<TernaryPodObj>) = VariableAddress[z] : +# 2056| m2056_8(TernaryPodObj) = Store[z] : &:r2056_7, r2056_6 +# 2057| r2057_1(glval<TernaryPodObj>) = VariableAddress[#temp2057:9] : +# 2057| r2057_2(glval<bool>) = VariableAddress[a] : +# 2057| r2057_3(bool) = Load[a] : &:r2057_2, m2055_6 +# 2057| v2057_4(void) = ConditionalBranch : r2057_3 #-----| False -> Block 6 #-----| True -> Block 5 -# 2009| Block 2 -# 2009| r2009_9(glval<TernaryPodObj>) = VariableAddress[x] : -# 2009| r2009_10(TernaryPodObj) = Load[x] : &:r2009_9, m2008_8 -# 2009| r2009_11(glval<TernaryPodObj>) = VariableAddress[#temp2009:9] : -# 2009| m2009_12(TernaryPodObj) = Store[#temp2009:9] : &:r2009_11, r2009_10 +# 2056| Block 2 +# 2056| r2056_9(glval<TernaryPodObj>) = VariableAddress[x] : +# 2056| r2056_10(TernaryPodObj) = Load[x] : &:r2056_9, m2055_8 +# 2056| r2056_11(glval<TernaryPodObj>) = VariableAddress[#temp2056:9] : +# 2056| m2056_12(TernaryPodObj) = Store[#temp2056:9] : &:r2056_11, r2056_10 #-----| Goto -> Block 1 -# 2009| Block 3 -# 2009| r2009_13(glval<TernaryPodObj>) = VariableAddress[y] : -# 2009| r2009_14(TernaryPodObj) = Load[y] : &:r2009_13, m2008_10 -# 2009| r2009_15(glval<TernaryPodObj>) = VariableAddress[#temp2009:9] : -# 2009| m2009_16(TernaryPodObj) = Store[#temp2009:9] : &:r2009_15, r2009_14 +# 2056| Block 3 +# 2056| r2056_13(glval<TernaryPodObj>) = VariableAddress[y] : +# 2056| r2056_14(TernaryPodObj) = Load[y] : &:r2056_13, m2055_10 +# 2056| r2056_15(glval<TernaryPodObj>) = VariableAddress[#temp2056:9] : +# 2056| m2056_16(TernaryPodObj) = Store[#temp2056:9] : &:r2056_15, r2056_14 #-----| Goto -> Block 1 -# 2010| Block 4 -# 2010| m2010_5(TernaryPodObj) = Phi : from 5:m2010_18, from 6:m2010_24 -# 2010| r2010_6(glval<TernaryPodObj>) = VariableAddress[#temp2010:9] : -# 2010| r2010_7(TernaryPodObj) = Load[#temp2010:9] : &:r2010_6, m2010_5 -# 2010| m2010_8(TernaryPodObj) = Store[#temp2010:9] : &:r2010_1, r2010_7 -# 2010| r2010_9(TernaryPodObj) = Load[#temp2010:9] : &:r2010_1, m2010_8 -# 2010| r2010_10(glval<TernaryPodObj>) = VariableAddress[z] : -# 2010| m2010_11(TernaryPodObj) = Store[z] : &:r2010_10, r2010_9 -# 2011| r2011_1(glval<TernaryPodObj>) = VariableAddress[#temp2011:9] : -# 2011| r2011_2(glval<bool>) = VariableAddress[a] : -# 2011| r2011_3(bool) = Load[a] : &:r2011_2, m2008_6 -# 2011| v2011_4(void) = ConditionalBranch : r2011_3 +# 2057| Block 4 +# 2057| m2057_5(TernaryPodObj) = Phi : from 5:m2057_18, from 6:m2057_24 +# 2057| r2057_6(glval<TernaryPodObj>) = VariableAddress[#temp2057:9] : +# 2057| r2057_7(TernaryPodObj) = Load[#temp2057:9] : &:r2057_6, m2057_5 +# 2057| m2057_8(TernaryPodObj) = Store[#temp2057:9] : &:r2057_1, r2057_7 +# 2057| r2057_9(TernaryPodObj) = Load[#temp2057:9] : &:r2057_1, m2057_8 +# 2057| r2057_10(glval<TernaryPodObj>) = VariableAddress[z] : +# 2057| m2057_11(TernaryPodObj) = Store[z] : &:r2057_10, r2057_9 +# 2058| r2058_1(glval<TernaryPodObj>) = VariableAddress[#temp2058:9] : +# 2058| r2058_2(glval<bool>) = VariableAddress[a] : +# 2058| r2058_3(bool) = Load[a] : &:r2058_2, m2055_6 +# 2058| v2058_4(void) = ConditionalBranch : r2058_3 #-----| False -> Block 9 #-----| True -> Block 8 -# 2010| Block 5 -# 2010| r2010_12(glval<TernaryPodObj>) = VariableAddress[#temp2010:13] : -# 2010| r2010_13(glval<TernaryPodObj>) = VariableAddress[x] : -# 2010| r2010_14(TernaryPodObj) = Load[x] : &:r2010_13, m2008_8 -# 2010| m2010_15(TernaryPodObj) = Store[#temp2010:13] : &:r2010_12, r2010_14 -# 2010| r2010_16(TernaryPodObj) = Load[#temp2010:13] : &:r2010_12, m2010_15 -# 2010| r2010_17(glval<TernaryPodObj>) = VariableAddress[#temp2010:9] : -# 2010| m2010_18(TernaryPodObj) = Store[#temp2010:9] : &:r2010_17, r2010_16 +# 2057| Block 5 +# 2057| r2057_12(glval<TernaryPodObj>) = VariableAddress[#temp2057:13] : +# 2057| r2057_13(glval<TernaryPodObj>) = VariableAddress[x] : +# 2057| r2057_14(TernaryPodObj) = Load[x] : &:r2057_13, m2055_8 +# 2057| m2057_15(TernaryPodObj) = Store[#temp2057:13] : &:r2057_12, r2057_14 +# 2057| r2057_16(TernaryPodObj) = Load[#temp2057:13] : &:r2057_12, m2057_15 +# 2057| r2057_17(glval<TernaryPodObj>) = VariableAddress[#temp2057:9] : +# 2057| m2057_18(TernaryPodObj) = Store[#temp2057:9] : &:r2057_17, r2057_16 #-----| Goto -> Block 4 -# 2010| Block 6 -# 2010| r2010_19(glval<TernaryPodObj>) = VariableAddress[#temp2010:17] : -# 2010| r2010_20(TernaryPodObj) = Constant[0] : -# 2010| m2010_21(TernaryPodObj) = Store[#temp2010:17] : &:r2010_19, r2010_20 -# 2010| r2010_22(TernaryPodObj) = Load[#temp2010:17] : &:r2010_19, m2010_21 -# 2010| r2010_23(glval<TernaryPodObj>) = VariableAddress[#temp2010:9] : -# 2010| m2010_24(TernaryPodObj) = Store[#temp2010:9] : &:r2010_23, r2010_22 +# 2057| Block 6 +# 2057| r2057_19(glval<TernaryPodObj>) = VariableAddress[#temp2057:17] : +# 2057| r2057_20(TernaryPodObj) = Constant[0] : +# 2057| m2057_21(TernaryPodObj) = Store[#temp2057:17] : &:r2057_19, r2057_20 +# 2057| r2057_22(TernaryPodObj) = Load[#temp2057:17] : &:r2057_19, m2057_21 +# 2057| r2057_23(glval<TernaryPodObj>) = VariableAddress[#temp2057:9] : +# 2057| m2057_24(TernaryPodObj) = Store[#temp2057:9] : &:r2057_23, r2057_22 #-----| Goto -> Block 4 -# 2011| Block 7 -# 2011| m2011_5(TernaryPodObj) = Phi : from 8:m2011_17, from 9:m2011_23 -# 2011| r2011_6(glval<TernaryPodObj>) = VariableAddress[#temp2011:9] : -# 2011| r2011_7(TernaryPodObj) = Load[#temp2011:9] : &:r2011_6, m2011_5 -# 2011| m2011_8(TernaryPodObj) = Store[#temp2011:9] : &:r2011_1, r2011_7 -# 2011| r2011_9(TernaryPodObj) = Load[#temp2011:9] : &:r2011_1, m2011_8 -# 2011| r2011_10(glval<TernaryPodObj>) = VariableAddress[z] : -# 2011| m2011_11(TernaryPodObj) = Store[z] : &:r2011_10, r2011_9 -# 2012| r2012_1(glval<TernaryPodObj>) = VariableAddress[#temp2012:23] : -# 2012| r2012_2(TernaryPodObj) = Constant[0] : -# 2012| m2012_3(TernaryPodObj) = Store[#temp2012:23] : &:r2012_1, r2012_2 -# 2012| r2012_4(TernaryPodObj) = Load[#temp2012:23] : &:r2012_1, m2012_3 -# 2012| r2012_5(glval<bool>) = VariableAddress[a] : -# 2012| r2012_6(bool) = Load[a] : &:r2012_5, m2008_6 -# 2012| v2012_7(void) = ConditionalBranch : r2012_6 +# 2058| Block 7 +# 2058| m2058_5(TernaryPodObj) = Phi : from 8:m2058_17, from 9:m2058_23 +# 2058| r2058_6(glval<TernaryPodObj>) = VariableAddress[#temp2058:9] : +# 2058| r2058_7(TernaryPodObj) = Load[#temp2058:9] : &:r2058_6, m2058_5 +# 2058| m2058_8(TernaryPodObj) = Store[#temp2058:9] : &:r2058_1, r2058_7 +# 2058| r2058_9(TernaryPodObj) = Load[#temp2058:9] : &:r2058_1, m2058_8 +# 2058| r2058_10(glval<TernaryPodObj>) = VariableAddress[z] : +# 2058| m2058_11(TernaryPodObj) = Store[z] : &:r2058_10, r2058_9 +# 2059| r2059_1(glval<TernaryPodObj>) = VariableAddress[#temp2059:23] : +# 2059| r2059_2(TernaryPodObj) = Constant[0] : +# 2059| m2059_3(TernaryPodObj) = Store[#temp2059:23] : &:r2059_1, r2059_2 +# 2059| r2059_4(TernaryPodObj) = Load[#temp2059:23] : &:r2059_1, m2059_3 +# 2059| r2059_5(glval<bool>) = VariableAddress[a] : +# 2059| r2059_6(bool) = Load[a] : &:r2059_5, m2055_6 +# 2059| v2059_7(void) = ConditionalBranch : r2059_6 #-----| False -> Block 12 #-----| True -> Block 11 -# 2011| Block 8 -# 2011| r2011_12(glval<TernaryPodObj>) = VariableAddress[#temp2011:13] : -# 2011| r2011_13(TernaryPodObj) = Constant[0] : -# 2011| m2011_14(TernaryPodObj) = Store[#temp2011:13] : &:r2011_12, r2011_13 -# 2011| r2011_15(TernaryPodObj) = Load[#temp2011:13] : &:r2011_12, m2011_14 -# 2011| r2011_16(glval<TernaryPodObj>) = VariableAddress[#temp2011:9] : -# 2011| m2011_17(TernaryPodObj) = Store[#temp2011:9] : &:r2011_16, r2011_15 +# 2058| Block 8 +# 2058| r2058_12(glval<TernaryPodObj>) = VariableAddress[#temp2058:13] : +# 2058| r2058_13(TernaryPodObj) = Constant[0] : +# 2058| m2058_14(TernaryPodObj) = Store[#temp2058:13] : &:r2058_12, r2058_13 +# 2058| r2058_15(TernaryPodObj) = Load[#temp2058:13] : &:r2058_12, m2058_14 +# 2058| r2058_16(glval<TernaryPodObj>) = VariableAddress[#temp2058:9] : +# 2058| m2058_17(TernaryPodObj) = Store[#temp2058:9] : &:r2058_16, r2058_15 #-----| Goto -> Block 7 -# 2011| Block 9 -# 2011| r2011_18(glval<TernaryPodObj>) = VariableAddress[#temp2011:31] : -# 2011| r2011_19(TernaryPodObj) = Constant[0] : -# 2011| m2011_20(TernaryPodObj) = Store[#temp2011:31] : &:r2011_18, r2011_19 -# 2011| r2011_21(TernaryPodObj) = Load[#temp2011:31] : &:r2011_18, m2011_20 -# 2011| r2011_22(glval<TernaryPodObj>) = VariableAddress[#temp2011:9] : -# 2011| m2011_23(TernaryPodObj) = Store[#temp2011:9] : &:r2011_22, r2011_21 +# 2058| Block 9 +# 2058| r2058_18(glval<TernaryPodObj>) = VariableAddress[#temp2058:31] : +# 2058| r2058_19(TernaryPodObj) = Constant[0] : +# 2058| m2058_20(TernaryPodObj) = Store[#temp2058:31] : &:r2058_18, r2058_19 +# 2058| r2058_21(TernaryPodObj) = Load[#temp2058:31] : &:r2058_18, m2058_20 +# 2058| r2058_22(glval<TernaryPodObj>) = VariableAddress[#temp2058:9] : +# 2058| m2058_23(TernaryPodObj) = Store[#temp2058:9] : &:r2058_22, r2058_21 #-----| Goto -> Block 7 -# 2012| Block 10 -# 2012| m2012_8(TernaryPodObj) = Phi : from 11:m2012_18, from 12:m2012_22 -# 2012| r2012_9(glval<TernaryPodObj>) = VariableAddress[#temp2012:10] : -# 2012| r2012_10(TernaryPodObj) = Load[#temp2012:10] : &:r2012_9, m2012_8 -# 2012| r2012_11(glval<TernaryPodObj>) = VariableAddress[z] : -# 2012| m2012_12(TernaryPodObj) = Store[z] : &:r2012_11, r2012_10 -# 2012| r2012_13(glval<TernaryPodObj>) = CopyValue : r2012_11 -# 2012| m2012_14(TernaryPodObj) = Store[?] : &:r2012_13, r2012_4 -# 2013| v2013_1(void) = NoOp : -# 2008| v2008_13(void) = ReturnVoid : -# 2008| v2008_14(void) = AliasedUse : m2008_3 -# 2008| v2008_15(void) = ExitFunction : +# 2059| Block 10 +# 2059| m2059_8(TernaryPodObj) = Phi : from 11:m2059_18, from 12:m2059_22 +# 2059| r2059_9(glval<TernaryPodObj>) = VariableAddress[#temp2059:10] : +# 2059| r2059_10(TernaryPodObj) = Load[#temp2059:10] : &:r2059_9, m2059_8 +# 2059| r2059_11(glval<TernaryPodObj>) = VariableAddress[z] : +# 2059| m2059_12(TernaryPodObj) = Store[z] : &:r2059_11, r2059_10 +# 2059| r2059_13(glval<TernaryPodObj>) = CopyValue : r2059_11 +# 2059| m2059_14(TernaryPodObj) = Store[?] : &:r2059_13, r2059_4 +# 2060| v2060_1(void) = NoOp : +# 2055| v2055_13(void) = ReturnVoid : +# 2055| v2055_14(void) = AliasedUse : m2055_3 +# 2055| v2055_15(void) = ExitFunction : -# 2012| Block 11 -# 2012| r2012_15(glval<TernaryPodObj>) = VariableAddress[x] : -# 2012| r2012_16(TernaryPodObj) = Load[x] : &:r2012_15, m2008_8 -# 2012| r2012_17(glval<TernaryPodObj>) = VariableAddress[#temp2012:10] : -# 2012| m2012_18(TernaryPodObj) = Store[#temp2012:10] : &:r2012_17, r2012_16 +# 2059| Block 11 +# 2059| r2059_15(glval<TernaryPodObj>) = VariableAddress[x] : +# 2059| r2059_16(TernaryPodObj) = Load[x] : &:r2059_15, m2055_8 +# 2059| r2059_17(glval<TernaryPodObj>) = VariableAddress[#temp2059:10] : +# 2059| m2059_18(TernaryPodObj) = Store[#temp2059:10] : &:r2059_17, r2059_16 #-----| Goto -> Block 10 -# 2012| Block 12 -# 2012| r2012_19(glval<TernaryPodObj>) = VariableAddress[y] : -# 2012| r2012_20(TernaryPodObj) = Load[y] : &:r2012_19, m2008_10 -# 2012| r2012_21(glval<TernaryPodObj>) = VariableAddress[#temp2012:10] : -# 2012| m2012_22(TernaryPodObj) = Store[#temp2012:10] : &:r2012_21, r2012_20 +# 2059| Block 12 +# 2059| r2059_19(glval<TernaryPodObj>) = VariableAddress[y] : +# 2059| r2059_20(TernaryPodObj) = Load[y] : &:r2059_19, m2055_10 +# 2059| r2059_21(glval<TernaryPodObj>) = VariableAddress[#temp2059:10] : +# 2059| m2059_22(TernaryPodObj) = Store[#temp2059:10] : &:r2059_21, r2059_20 #-----| Goto -> Block 10 -# 2015| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) -# 2015| Block 0 -# 2015| v2015_1(void) = EnterFunction : -# 2015| m2015_2(unknown) = AliasedDefinition : -# 2015| m2015_3(unknown) = InitializeNonLocal : -# 2015| m2015_4(unknown) = Chi : total:m2015_2, partial:m2015_3 -# 2015| r2015_5(glval<unknown>) = VariableAddress[#this] : -# 2015| m2015_6(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2015_5 -# 2015| r2015_7(glval<TernaryNonPodObj>) = Load[#this] : &:r2015_5, m2015_6 -# 2015| m2015_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2015_7 +# 2062| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) +# 2062| Block 0 +# 2062| v2062_1(void) = EnterFunction : +# 2062| m2062_2(unknown) = AliasedDefinition : +# 2062| m2062_3(unknown) = InitializeNonLocal : +# 2062| m2062_4(unknown) = Chi : total:m2062_2, partial:m2062_3 +# 2062| r2062_5(glval<unknown>) = VariableAddress[#this] : +# 2062| m2062_6(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2062_5 +# 2062| r2062_7(glval<TernaryNonPodObj>) = Load[#this] : &:r2062_5, m2062_6 +# 2062| m2062_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2062_7 #-----| r0_1(glval<TernaryNonPodObj &>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 #-----| r0_5(glval<TernaryNonPodObj &>) = VariableAddress[#return] : #-----| r0_6(glval<unknown>) = VariableAddress[#this] : -#-----| r0_7(TernaryNonPodObj *) = Load[#this] : &:r0_6, m2015_6 +#-----| r0_7(TernaryNonPodObj *) = Load[#this] : &:r0_6, m2062_6 #-----| r0_8(glval<TernaryNonPodObj>) = CopyValue : r0_7 #-----| r0_9(TernaryNonPodObj &) = CopyValue : r0_8 #-----| m0_10(TernaryNonPodObj &) = Store[#return] : &:r0_5, r0_9 -# 2015| v2015_9(void) = ReturnIndirection[#this] : &:r2015_7, m2015_8 +# 2062| v2062_9(void) = ReturnIndirection[#this] : &:r2062_7, m2062_8 #-----| v0_11(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 2015| r2015_10(glval<TernaryNonPodObj &>) = VariableAddress[#return] : -# 2015| v2015_11(void) = ReturnValue : &:r2015_10, m0_10 -# 2015| v2015_12(void) = AliasedUse : m2015_3 -# 2015| v2015_13(void) = ExitFunction : +# 2062| r2062_10(glval<TernaryNonPodObj &>) = VariableAddress[#return] : +# 2062| v2062_11(void) = ReturnValue : &:r2062_10, m0_10 +# 2062| v2062_12(void) = AliasedUse : m2062_3 +# 2062| v2062_13(void) = ExitFunction : -# 2015| void TernaryNonPodObj::TernaryNonPodObj() -# 2015| Block 0 -# 2015| v2015_1(void) = EnterFunction : -# 2015| m2015_2(unknown) = AliasedDefinition : -# 2015| m2015_3(unknown) = InitializeNonLocal : -# 2015| m2015_4(unknown) = Chi : total:m2015_2, partial:m2015_3 -# 2015| r2015_5(glval<unknown>) = VariableAddress[#this] : -# 2015| m2015_6(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2015_5 -# 2015| r2015_7(glval<TernaryNonPodObj>) = Load[#this] : &:r2015_5, m2015_6 -# 2015| m2015_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2015_7 -# 2015| v2015_9(void) = NoOp : -# 2015| v2015_10(void) = ReturnIndirection[#this] : &:r2015_7, m2015_8 -# 2015| v2015_11(void) = ReturnVoid : -# 2015| v2015_12(void) = AliasedUse : m2015_3 -# 2015| v2015_13(void) = ExitFunction : +# 2062| void TernaryNonPodObj::TernaryNonPodObj() +# 2062| Block 0 +# 2062| v2062_1(void) = EnterFunction : +# 2062| m2062_2(unknown) = AliasedDefinition : +# 2062| m2062_3(unknown) = InitializeNonLocal : +# 2062| m2062_4(unknown) = Chi : total:m2062_2, partial:m2062_3 +# 2062| r2062_5(glval<unknown>) = VariableAddress[#this] : +# 2062| m2062_6(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2062_5 +# 2062| r2062_7(glval<TernaryNonPodObj>) = Load[#this] : &:r2062_5, m2062_6 +# 2062| m2062_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2062_7 +# 2062| v2062_9(void) = NoOp : +# 2062| v2062_10(void) = ReturnIndirection[#this] : &:r2062_7, m2062_8 +# 2062| v2062_11(void) = ReturnVoid : +# 2062| v2062_12(void) = AliasedUse : m2062_3 +# 2062| v2062_13(void) = ExitFunction : -# 2015| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) -# 2015| Block 0 -# 2015| v2015_1(void) = EnterFunction : -# 2015| m2015_2(unknown) = AliasedDefinition : -# 2015| m2015_3(unknown) = InitializeNonLocal : -# 2015| m2015_4(unknown) = Chi : total:m2015_2, partial:m2015_3 -# 2015| r2015_5(glval<unknown>) = VariableAddress[#this] : -# 2015| m2015_6(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2015_5 -# 2015| r2015_7(glval<TernaryNonPodObj>) = Load[#this] : &:r2015_5, m2015_6 -# 2015| m2015_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2015_7 +# 2062| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) +# 2062| Block 0 +# 2062| v2062_1(void) = EnterFunction : +# 2062| m2062_2(unknown) = AliasedDefinition : +# 2062| m2062_3(unknown) = InitializeNonLocal : +# 2062| m2062_4(unknown) = Chi : total:m2062_2, partial:m2062_3 +# 2062| r2062_5(glval<unknown>) = VariableAddress[#this] : +# 2062| m2062_6(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2062_5 +# 2062| r2062_7(glval<TernaryNonPodObj>) = Load[#this] : &:r2062_5, m2062_6 +# 2062| m2062_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2062_7 #-----| r0_1(glval<TernaryNonPodObj &>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2015| v2015_9(void) = NoOp : -# 2015| v2015_10(void) = ReturnIndirection[#this] : &:r2015_7, m2015_8 +# 2062| v2062_9(void) = NoOp : +# 2062| v2062_10(void) = ReturnIndirection[#this] : &:r2062_7, m2062_8 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 2015| v2015_11(void) = ReturnVoid : -# 2015| v2015_12(void) = AliasedUse : m2015_3 -# 2015| v2015_13(void) = ExitFunction : +# 2062| v2062_11(void) = ReturnVoid : +# 2062| v2062_12(void) = AliasedUse : m2062_3 +# 2062| v2062_13(void) = ExitFunction : -# 2016| void TernaryNonPodObj::~TernaryNonPodObj() -# 2016| Block 0 -# 2016| v2016_1(void) = EnterFunction : -# 2016| m2016_2(unknown) = AliasedDefinition : -# 2016| m2016_3(unknown) = InitializeNonLocal : -# 2016| m2016_4(unknown) = Chi : total:m2016_2, partial:m2016_3 -# 2016| r2016_5(glval<unknown>) = VariableAddress[#this] : -# 2016| m2016_6(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2016_5 -# 2016| r2016_7(glval<TernaryNonPodObj>) = Load[#this] : &:r2016_5, m2016_6 -# 2016| m2016_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2016_7 -# 2016| v2016_9(void) = NoOp : -# 2016| v2016_10(void) = ReturnIndirection[#this] : &:r2016_7, m2016_8 -# 2016| v2016_11(void) = ReturnVoid : -# 2016| v2016_12(void) = AliasedUse : m2016_3 -# 2016| v2016_13(void) = ExitFunction : +# 2063| void TernaryNonPodObj::~TernaryNonPodObj() +# 2063| Block 0 +# 2063| v2063_1(void) = EnterFunction : +# 2063| m2063_2(unknown) = AliasedDefinition : +# 2063| m2063_3(unknown) = InitializeNonLocal : +# 2063| m2063_4(unknown) = Chi : total:m2063_2, partial:m2063_3 +# 2063| r2063_5(glval<unknown>) = VariableAddress[#this] : +# 2063| m2063_6(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2063_5 +# 2063| r2063_7(glval<TernaryNonPodObj>) = Load[#this] : &:r2063_5, m2063_6 +# 2063| m2063_8(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2063_7 +# 2063| v2063_9(void) = NoOp : +# 2063| v2063_10(void) = ReturnIndirection[#this] : &:r2063_7, m2063_8 +# 2063| v2063_11(void) = ReturnVoid : +# 2063| v2063_12(void) = AliasedUse : m2063_3 +# 2063| v2063_13(void) = ExitFunction : -# 2019| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) -# 2019| Block 0 -# 2019| v2019_1(void) = EnterFunction : -# 2019| m2019_2(unknown) = AliasedDefinition : -# 2019| m2019_3(unknown) = InitializeNonLocal : -# 2019| m2019_4(unknown) = Chi : total:m2019_2, partial:m2019_3 -# 2019| r2019_5(glval<bool>) = VariableAddress[a] : -# 2019| m2019_6(bool) = InitializeParameter[a] : &:r2019_5 -# 2019| r2019_7(glval<TernaryNonPodObj>) = VariableAddress[x] : -# 2019| m2019_8(TernaryNonPodObj) = InitializeParameter[x] : &:r2019_7 -# 2019| r2019_9(glval<TernaryNonPodObj>) = VariableAddress[y] : -# 2019| m2019_10(TernaryNonPodObj) = InitializeParameter[y] : &:r2019_9 -# 2019| r2019_11(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2019| m2019_12(TernaryNonPodObj) = InitializeParameter[z] : &:r2019_11 -# 2020| r2020_1(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2020| r2020_2(glval<unknown>) = FunctionAddress[operator=] : -# 2020| r2020_3(glval<bool>) = VariableAddress[a] : -# 2020| r2020_4(bool) = Load[a] : &:r2020_3, m2019_6 -# 2020| v2020_5(void) = ConditionalBranch : r2020_4 +# 2066| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) +# 2066| Block 0 +# 2066| v2066_1(void) = EnterFunction : +# 2066| m2066_2(unknown) = AliasedDefinition : +# 2066| m2066_3(unknown) = InitializeNonLocal : +# 2066| m2066_4(unknown) = Chi : total:m2066_2, partial:m2066_3 +# 2066| r2066_5(glval<bool>) = VariableAddress[a] : +# 2066| m2066_6(bool) = InitializeParameter[a] : &:r2066_5 +# 2066| r2066_7(glval<TernaryNonPodObj>) = VariableAddress[x] : +# 2066| m2066_8(TernaryNonPodObj) = InitializeParameter[x] : &:r2066_7 +# 2066| r2066_9(glval<TernaryNonPodObj>) = VariableAddress[y] : +# 2066| m2066_10(TernaryNonPodObj) = InitializeParameter[y] : &:r2066_9 +# 2066| r2066_11(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2066| m2066_12(TernaryNonPodObj) = InitializeParameter[z] : &:r2066_11 +# 2067| r2067_1(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2067| r2067_2(glval<unknown>) = FunctionAddress[operator=] : +# 2067| r2067_3(glval<bool>) = VariableAddress[a] : +# 2067| r2067_4(bool) = Load[a] : &:r2067_3, m2066_6 +# 2067| v2067_5(void) = ConditionalBranch : r2067_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2020| Block 1 -# 2020| m2020_6(glval<TernaryNonPodObj>) = Phi : from 2:m2020_21, from 3:m2020_24 -# 2020| r2020_7(glval<unknown>) = VariableAddress[#temp2020:9] : -# 2020| r2020_8(glval<TernaryNonPodObj>) = Load[#temp2020:9] : &:r2020_7, m2020_6 -# 2020| r2020_9(glval<TernaryNonPodObj>) = Convert : r2020_8 -# 2020| r2020_10(TernaryNonPodObj &) = CopyValue : r2020_9 -# 2020| r2020_11(TernaryNonPodObj &) = Call[operator=] : func:r2020_2, this:r2020_1, 0:r2020_10 -# 2020| m2020_12(unknown) = ^CallSideEffect : ~m2019_4 -# 2020| m2020_13(unknown) = Chi : total:m2019_4, partial:m2020_12 -# 2020| v2020_14(void) = ^IndirectReadSideEffect[-1] : &:r2020_1, m2019_12 -# 2020| v2020_15(void) = ^BufferReadSideEffect[0] : &:r2020_10, ~m2020_13 -# 2020| m2020_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2020_1 -# 2020| m2020_17(TernaryNonPodObj) = Chi : total:m2019_12, partial:m2020_16 -# 2020| r2020_18(glval<TernaryNonPodObj>) = CopyValue : r2020_11 -# 2021| r2021_1(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2021| r2021_2(glval<unknown>) = FunctionAddress[operator=] : -# 2021| r2021_3(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:9] : -# 2021| r2021_4(glval<bool>) = VariableAddress[a] : -# 2021| r2021_5(bool) = Load[a] : &:r2021_4, m2019_6 -# 2021| v2021_6(void) = ConditionalBranch : r2021_5 +# 2067| Block 1 +# 2067| m2067_6(glval<TernaryNonPodObj>) = Phi : from 2:m2067_21, from 3:m2067_24 +# 2067| r2067_7(glval<unknown>) = VariableAddress[#temp2067:9] : +# 2067| r2067_8(glval<TernaryNonPodObj>) = Load[#temp2067:9] : &:r2067_7, m2067_6 +# 2067| r2067_9(glval<TernaryNonPodObj>) = Convert : r2067_8 +# 2067| r2067_10(TernaryNonPodObj &) = CopyValue : r2067_9 +# 2067| r2067_11(TernaryNonPodObj &) = Call[operator=] : func:r2067_2, this:r2067_1, 0:r2067_10 +# 2067| m2067_12(unknown) = ^CallSideEffect : ~m2066_4 +# 2067| m2067_13(unknown) = Chi : total:m2066_4, partial:m2067_12 +# 2067| v2067_14(void) = ^IndirectReadSideEffect[-1] : &:r2067_1, m2066_12 +# 2067| v2067_15(void) = ^BufferReadSideEffect[0] : &:r2067_10, ~m2067_13 +# 2067| m2067_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2067_1 +# 2067| m2067_17(TernaryNonPodObj) = Chi : total:m2066_12, partial:m2067_16 +# 2067| r2067_18(glval<TernaryNonPodObj>) = CopyValue : r2067_11 +# 2068| r2068_1(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2068| r2068_2(glval<unknown>) = FunctionAddress[operator=] : +# 2068| r2068_3(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:9] : +# 2068| r2068_4(glval<bool>) = VariableAddress[a] : +# 2068| r2068_5(bool) = Load[a] : &:r2068_4, m2066_6 +# 2068| v2068_6(void) = ConditionalBranch : r2068_5 #-----| False -> Block 6 #-----| True -> Block 5 -# 2020| Block 2 -# 2020| r2020_19(glval<TernaryNonPodObj>) = VariableAddress[x] : -# 2020| r2020_20(glval<unknown>) = VariableAddress[#temp2020:9] : -# 2020| m2020_21(glval<TernaryNonPodObj>) = Store[#temp2020:9] : &:r2020_20, r2020_19 +# 2067| Block 2 +# 2067| r2067_19(glval<TernaryNonPodObj>) = VariableAddress[x] : +# 2067| r2067_20(glval<unknown>) = VariableAddress[#temp2067:9] : +# 2067| m2067_21(glval<TernaryNonPodObj>) = Store[#temp2067:9] : &:r2067_20, r2067_19 #-----| Goto -> Block 1 -# 2020| Block 3 -# 2020| r2020_22(glval<TernaryNonPodObj>) = VariableAddress[y] : -# 2020| r2020_23(glval<unknown>) = VariableAddress[#temp2020:9] : -# 2020| m2020_24(glval<TernaryNonPodObj>) = Store[#temp2020:9] : &:r2020_23, r2020_22 +# 2067| Block 3 +# 2067| r2067_22(glval<TernaryNonPodObj>) = VariableAddress[y] : +# 2067| r2067_23(glval<unknown>) = VariableAddress[#temp2067:9] : +# 2067| m2067_24(glval<TernaryNonPodObj>) = Store[#temp2067:9] : &:r2067_23, r2067_22 #-----| Goto -> Block 1 -# 2021| Block 4 -# 2021| m2021_7(unknown) = Phi : from 5:~m2021_30, from 6:~m2021_42 -# 2021| m2021_8(TernaryNonPodObj) = Phi : from 5:m2021_36, from 6:m2021_47 -# 2021| r2021_9(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:9] : -# 2021| r2021_10(TernaryNonPodObj) = Load[#temp2021:9] : &:r2021_9, m2021_8 -# 2021| m2021_11(TernaryNonPodObj) = Store[#temp2021:9] : &:r2021_3, r2021_10 -# 2021| r2021_12(glval<TernaryNonPodObj>) = Convert : r2021_3 -# 2021| r2021_13(TernaryNonPodObj &) = CopyValue : r2021_12 -# 2021| r2021_14(TernaryNonPodObj &) = Call[operator=] : func:r2021_2, this:r2021_1, 0:r2021_13 -# 2021| m2021_15(unknown) = ^CallSideEffect : ~m2021_7 -# 2021| m2021_16(unknown) = Chi : total:m2021_7, partial:m2021_15 -# 2021| v2021_17(void) = ^IndirectReadSideEffect[-1] : &:r2021_1, m2020_17 -# 2021| v2021_18(void) = ^BufferReadSideEffect[0] : &:r2021_13, ~m2021_11 -# 2021| m2021_19(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_1 -# 2021| m2021_20(TernaryNonPodObj) = Chi : total:m2020_17, partial:m2021_19 -# 2021| r2021_21(glval<TernaryNonPodObj>) = CopyValue : r2021_14 -# 2022| r2022_1(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2022| r2022_2(glval<unknown>) = FunctionAddress[operator=] : -# 2022| r2022_3(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:9] : -# 2022| r2022_4(glval<bool>) = VariableAddress[a] : -# 2022| r2022_5(bool) = Load[a] : &:r2022_4, m2019_6 -# 2022| v2022_6(void) = ConditionalBranch : r2022_5 +# 2068| Block 4 +# 2068| m2068_7(unknown) = Phi : from 5:~m2068_30, from 6:~m2068_42 +# 2068| m2068_8(TernaryNonPodObj) = Phi : from 5:m2068_36, from 6:m2068_47 +# 2068| r2068_9(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:9] : +# 2068| r2068_10(TernaryNonPodObj) = Load[#temp2068:9] : &:r2068_9, m2068_8 +# 2068| m2068_11(TernaryNonPodObj) = Store[#temp2068:9] : &:r2068_3, r2068_10 +# 2068| r2068_12(glval<TernaryNonPodObj>) = Convert : r2068_3 +# 2068| r2068_13(TernaryNonPodObj &) = CopyValue : r2068_12 +# 2068| r2068_14(TernaryNonPodObj &) = Call[operator=] : func:r2068_2, this:r2068_1, 0:r2068_13 +# 2068| m2068_15(unknown) = ^CallSideEffect : ~m2068_7 +# 2068| m2068_16(unknown) = Chi : total:m2068_7, partial:m2068_15 +# 2068| v2068_17(void) = ^IndirectReadSideEffect[-1] : &:r2068_1, m2067_17 +# 2068| v2068_18(void) = ^BufferReadSideEffect[0] : &:r2068_13, ~m2068_11 +# 2068| m2068_19(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2068_1 +# 2068| m2068_20(TernaryNonPodObj) = Chi : total:m2067_17, partial:m2068_19 +# 2068| r2068_21(glval<TernaryNonPodObj>) = CopyValue : r2068_14 +# 2069| r2069_1(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2069| r2069_2(glval<unknown>) = FunctionAddress[operator=] : +# 2069| r2069_3(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:9] : +# 2069| r2069_4(glval<bool>) = VariableAddress[a] : +# 2069| r2069_5(bool) = Load[a] : &:r2069_4, m2066_6 +# 2069| v2069_6(void) = ConditionalBranch : r2069_5 #-----| False -> Block 9 #-----| True -> Block 8 -# 2021| Block 5 -# 2021| r2021_22(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:13] : -# 2021| m2021_23(TernaryNonPodObj) = Uninitialized[#temp2021:13] : &:r2021_22 -# 2021| r2021_24(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2021| r2021_25(glval<TernaryNonPodObj>) = VariableAddress[x] : -# 2021| r2021_26(glval<TernaryNonPodObj>) = Convert : r2021_25 -# 2021| r2021_27(TernaryNonPodObj &) = CopyValue : r2021_26 -# 2021| v2021_28(void) = Call[TernaryNonPodObj] : func:r2021_24, this:r2021_22, 0:r2021_27 -# 2021| m2021_29(unknown) = ^CallSideEffect : ~m2020_13 -# 2021| m2021_30(unknown) = Chi : total:m2020_13, partial:m2021_29 -# 2021| v2021_31(void) = ^BufferReadSideEffect[0] : &:r2021_27, ~m2019_8 -# 2021| m2021_32(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_22 -# 2021| m2021_33(TernaryNonPodObj) = Chi : total:m2021_23, partial:m2021_32 -# 2021| r2021_34(TernaryNonPodObj) = Load[#temp2021:13] : &:r2021_22, m2021_33 -# 2021| r2021_35(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:9] : -# 2021| m2021_36(TernaryNonPodObj) = Store[#temp2021:9] : &:r2021_35, r2021_34 +# 2068| Block 5 +# 2068| r2068_22(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:13] : +# 2068| m2068_23(TernaryNonPodObj) = Uninitialized[#temp2068:13] : &:r2068_22 +# 2068| r2068_24(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2068| r2068_25(glval<TernaryNonPodObj>) = VariableAddress[x] : +# 2068| r2068_26(glval<TernaryNonPodObj>) = Convert : r2068_25 +# 2068| r2068_27(TernaryNonPodObj &) = CopyValue : r2068_26 +# 2068| v2068_28(void) = Call[TernaryNonPodObj] : func:r2068_24, this:r2068_22, 0:r2068_27 +# 2068| m2068_29(unknown) = ^CallSideEffect : ~m2067_13 +# 2068| m2068_30(unknown) = Chi : total:m2067_13, partial:m2068_29 +# 2068| v2068_31(void) = ^BufferReadSideEffect[0] : &:r2068_27, ~m2066_8 +# 2068| m2068_32(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2068_22 +# 2068| m2068_33(TernaryNonPodObj) = Chi : total:m2068_23, partial:m2068_32 +# 2068| r2068_34(TernaryNonPodObj) = Load[#temp2068:13] : &:r2068_22, m2068_33 +# 2068| r2068_35(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:9] : +# 2068| m2068_36(TernaryNonPodObj) = Store[#temp2068:9] : &:r2068_35, r2068_34 #-----| Goto -> Block 4 -# 2021| Block 6 -# 2021| r2021_37(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:17] : -# 2021| m2021_38(TernaryNonPodObj) = Uninitialized[#temp2021:17] : &:r2021_37 -# 2021| r2021_39(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2021| v2021_40(void) = Call[TernaryNonPodObj] : func:r2021_39, this:r2021_37 -# 2021| m2021_41(unknown) = ^CallSideEffect : ~m2020_13 -# 2021| m2021_42(unknown) = Chi : total:m2020_13, partial:m2021_41 -# 2021| m2021_43(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_37 -# 2021| m2021_44(TernaryNonPodObj) = Chi : total:m2021_38, partial:m2021_43 -# 2021| r2021_45(TernaryNonPodObj) = Load[#temp2021:17] : &:r2021_37, m2021_44 -# 2021| r2021_46(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:9] : -# 2021| m2021_47(TernaryNonPodObj) = Store[#temp2021:9] : &:r2021_46, r2021_45 +# 2068| Block 6 +# 2068| r2068_37(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:17] : +# 2068| m2068_38(TernaryNonPodObj) = Uninitialized[#temp2068:17] : &:r2068_37 +# 2068| r2068_39(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2068| v2068_40(void) = Call[TernaryNonPodObj] : func:r2068_39, this:r2068_37 +# 2068| m2068_41(unknown) = ^CallSideEffect : ~m2067_13 +# 2068| m2068_42(unknown) = Chi : total:m2067_13, partial:m2068_41 +# 2068| m2068_43(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2068_37 +# 2068| m2068_44(TernaryNonPodObj) = Chi : total:m2068_38, partial:m2068_43 +# 2068| r2068_45(TernaryNonPodObj) = Load[#temp2068:17] : &:r2068_37, m2068_44 +# 2068| r2068_46(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:9] : +# 2068| m2068_47(TernaryNonPodObj) = Store[#temp2068:9] : &:r2068_46, r2068_45 #-----| Goto -> Block 4 -# 2022| Block 7 -# 2022| m2022_7(unknown) = Phi : from 8:~m2022_27, from 9:~m2022_38 -# 2022| m2022_8(TernaryNonPodObj) = Phi : from 8:m2022_32, from 9:m2022_43 -# 2022| r2022_9(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:9] : -# 2022| r2022_10(TernaryNonPodObj) = Load[#temp2022:9] : &:r2022_9, m2022_8 -# 2022| m2022_11(TernaryNonPodObj) = Store[#temp2022:9] : &:r2022_3, r2022_10 -# 2022| r2022_12(glval<TernaryNonPodObj>) = Convert : r2022_3 -# 2022| r2022_13(TernaryNonPodObj &) = CopyValue : r2022_12 -# 2022| r2022_14(TernaryNonPodObj &) = Call[operator=] : func:r2022_2, this:r2022_1, 0:r2022_13 -# 2022| m2022_15(unknown) = ^CallSideEffect : ~m2022_7 -# 2022| m2022_16(unknown) = Chi : total:m2022_7, partial:m2022_15 -# 2022| v2022_17(void) = ^IndirectReadSideEffect[-1] : &:r2022_1, m2021_20 -# 2022| v2022_18(void) = ^BufferReadSideEffect[0] : &:r2022_13, ~m2022_11 -# 2022| m2022_19(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2022_1 -# 2022| m2022_20(TernaryNonPodObj) = Chi : total:m2021_20, partial:m2022_19 -# 2022| r2022_21(glval<TernaryNonPodObj>) = CopyValue : r2022_14 -# 2023| r2023_1(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2023| r2023_2(glval<unknown>) = FunctionAddress[operator=] : -# 2023| r2023_3(glval<bool>) = VariableAddress[a] : -# 2023| r2023_4(bool) = Load[a] : &:r2023_3, m2019_6 -# 2023| v2023_5(void) = ConditionalBranch : r2023_4 +# 2069| Block 7 +# 2069| m2069_7(unknown) = Phi : from 8:~m2069_27, from 9:~m2069_38 +# 2069| m2069_8(TernaryNonPodObj) = Phi : from 8:m2069_32, from 9:m2069_43 +# 2069| r2069_9(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:9] : +# 2069| r2069_10(TernaryNonPodObj) = Load[#temp2069:9] : &:r2069_9, m2069_8 +# 2069| m2069_11(TernaryNonPodObj) = Store[#temp2069:9] : &:r2069_3, r2069_10 +# 2069| r2069_12(glval<TernaryNonPodObj>) = Convert : r2069_3 +# 2069| r2069_13(TernaryNonPodObj &) = CopyValue : r2069_12 +# 2069| r2069_14(TernaryNonPodObj &) = Call[operator=] : func:r2069_2, this:r2069_1, 0:r2069_13 +# 2069| m2069_15(unknown) = ^CallSideEffect : ~m2069_7 +# 2069| m2069_16(unknown) = Chi : total:m2069_7, partial:m2069_15 +# 2069| v2069_17(void) = ^IndirectReadSideEffect[-1] : &:r2069_1, m2068_20 +# 2069| v2069_18(void) = ^BufferReadSideEffect[0] : &:r2069_13, ~m2069_11 +# 2069| m2069_19(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2069_1 +# 2069| m2069_20(TernaryNonPodObj) = Chi : total:m2068_20, partial:m2069_19 +# 2069| r2069_21(glval<TernaryNonPodObj>) = CopyValue : r2069_14 +# 2070| r2070_1(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2070| r2070_2(glval<unknown>) = FunctionAddress[operator=] : +# 2070| r2070_3(glval<bool>) = VariableAddress[a] : +# 2070| r2070_4(bool) = Load[a] : &:r2070_3, m2066_6 +# 2070| v2070_5(void) = ConditionalBranch : r2070_4 #-----| False -> Block 12 #-----| True -> Block 11 -# 2022| Block 8 -# 2022| r2022_22(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:13] : -# 2022| m2022_23(TernaryNonPodObj) = Uninitialized[#temp2022:13] : &:r2022_22 -# 2022| r2022_24(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2022| v2022_25(void) = Call[TernaryNonPodObj] : func:r2022_24, this:r2022_22 -# 2022| m2022_26(unknown) = ^CallSideEffect : ~m2021_16 -# 2022| m2022_27(unknown) = Chi : total:m2021_16, partial:m2022_26 -# 2022| m2022_28(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2022_22 -# 2022| m2022_29(TernaryNonPodObj) = Chi : total:m2022_23, partial:m2022_28 -# 2022| r2022_30(TernaryNonPodObj) = Load[#temp2022:13] : &:r2022_22, m2022_29 -# 2022| r2022_31(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:9] : -# 2022| m2022_32(TernaryNonPodObj) = Store[#temp2022:9] : &:r2022_31, r2022_30 +# 2069| Block 8 +# 2069| r2069_22(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:13] : +# 2069| m2069_23(TernaryNonPodObj) = Uninitialized[#temp2069:13] : &:r2069_22 +# 2069| r2069_24(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2069| v2069_25(void) = Call[TernaryNonPodObj] : func:r2069_24, this:r2069_22 +# 2069| m2069_26(unknown) = ^CallSideEffect : ~m2068_16 +# 2069| m2069_27(unknown) = Chi : total:m2068_16, partial:m2069_26 +# 2069| m2069_28(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2069_22 +# 2069| m2069_29(TernaryNonPodObj) = Chi : total:m2069_23, partial:m2069_28 +# 2069| r2069_30(TernaryNonPodObj) = Load[#temp2069:13] : &:r2069_22, m2069_29 +# 2069| r2069_31(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:9] : +# 2069| m2069_32(TernaryNonPodObj) = Store[#temp2069:9] : &:r2069_31, r2069_30 #-----| Goto -> Block 7 -# 2022| Block 9 -# 2022| r2022_33(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:34] : -# 2022| m2022_34(TernaryNonPodObj) = Uninitialized[#temp2022:34] : &:r2022_33 -# 2022| r2022_35(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2022| v2022_36(void) = Call[TernaryNonPodObj] : func:r2022_35, this:r2022_33 -# 2022| m2022_37(unknown) = ^CallSideEffect : ~m2021_16 -# 2022| m2022_38(unknown) = Chi : total:m2021_16, partial:m2022_37 -# 2022| m2022_39(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2022_33 -# 2022| m2022_40(TernaryNonPodObj) = Chi : total:m2022_34, partial:m2022_39 -# 2022| r2022_41(TernaryNonPodObj) = Load[#temp2022:34] : &:r2022_33, m2022_40 -# 2022| r2022_42(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:9] : -# 2022| m2022_43(TernaryNonPodObj) = Store[#temp2022:9] : &:r2022_42, r2022_41 +# 2069| Block 9 +# 2069| r2069_33(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:34] : +# 2069| m2069_34(TernaryNonPodObj) = Uninitialized[#temp2069:34] : &:r2069_33 +# 2069| r2069_35(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2069| v2069_36(void) = Call[TernaryNonPodObj] : func:r2069_35, this:r2069_33 +# 2069| m2069_37(unknown) = ^CallSideEffect : ~m2068_16 +# 2069| m2069_38(unknown) = Chi : total:m2068_16, partial:m2069_37 +# 2069| m2069_39(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2069_33 +# 2069| m2069_40(TernaryNonPodObj) = Chi : total:m2069_34, partial:m2069_39 +# 2069| r2069_41(TernaryNonPodObj) = Load[#temp2069:34] : &:r2069_33, m2069_40 +# 2069| r2069_42(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:9] : +# 2069| m2069_43(TernaryNonPodObj) = Store[#temp2069:9] : &:r2069_42, r2069_41 #-----| Goto -> Block 7 -# 2023| Block 10 -# 2023| m2023_6(glval<TernaryNonPodObj>) = Phi : from 11:m2023_40, from 12:m2023_43 -# 2023| r2023_7(glval<unknown>) = VariableAddress[#temp2023:10] : -# 2023| r2023_8(glval<TernaryNonPodObj>) = Load[#temp2023:10] : &:r2023_7, m2023_6 -# 2023| r2023_9(glval<TernaryNonPodObj>) = Convert : r2023_8 -# 2023| r2023_10(TernaryNonPodObj &) = CopyValue : r2023_9 -# 2023| r2023_11(TernaryNonPodObj &) = Call[operator=] : func:r2023_2, this:r2023_1, 0:r2023_10 -# 2023| m2023_12(unknown) = ^CallSideEffect : ~m2022_16 -# 2023| m2023_13(unknown) = Chi : total:m2022_16, partial:m2023_12 -# 2023| v2023_14(void) = ^IndirectReadSideEffect[-1] : &:r2023_1, m2022_20 -# 2023| v2023_15(void) = ^BufferReadSideEffect[0] : &:r2023_10, ~m2023_13 -# 2023| m2023_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2023_1 -# 2023| m2023_17(TernaryNonPodObj) = Chi : total:m2022_20, partial:m2023_16 -# 2023| r2023_18(glval<TernaryNonPodObj>) = CopyValue : r2023_11 -# 2023| r2023_19(glval<unknown>) = FunctionAddress[operator=] : -# 2023| r2023_20(glval<TernaryNonPodObj>) = VariableAddress[#temp2023:23] : -# 2023| m2023_21(TernaryNonPodObj) = Uninitialized[#temp2023:23] : &:r2023_20 -# 2023| r2023_22(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2023| v2023_23(void) = Call[TernaryNonPodObj] : func:r2023_22, this:r2023_20 -# 2023| m2023_24(unknown) = ^CallSideEffect : ~m2023_13 -# 2023| m2023_25(unknown) = Chi : total:m2023_13, partial:m2023_24 -# 2023| m2023_26(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2023_20 -# 2023| m2023_27(TernaryNonPodObj) = Chi : total:m2023_21, partial:m2023_26 -# 2023| r2023_28(glval<TernaryNonPodObj>) = Convert : r2023_20 -# 2023| r2023_29(TernaryNonPodObj &) = CopyValue : r2023_28 -# 2023| r2023_30(TernaryNonPodObj &) = Call[operator=] : func:r2023_19, this:r2023_18, 0:r2023_29 -# 2023| m2023_31(unknown) = ^CallSideEffect : ~m2023_25 -# 2023| m2023_32(unknown) = Chi : total:m2023_25, partial:m2023_31 -# 2023| v2023_33(void) = ^IndirectReadSideEffect[-1] : &:r2023_18, m2023_17 -# 2023| v2023_34(void) = ^BufferReadSideEffect[0] : &:r2023_29, ~m2023_27 -# 2023| m2023_35(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2023_18 -# 2023| m2023_36(TernaryNonPodObj) = Chi : total:m2023_17, partial:m2023_35 -# 2023| r2023_37(glval<TernaryNonPodObj>) = CopyValue : r2023_30 -# 2024| v2024_1(void) = NoOp : -# 2019| v2019_13(void) = ReturnVoid : -# 2019| v2019_14(void) = AliasedUse : ~m2023_32 -# 2019| v2019_15(void) = ExitFunction : +# 2070| Block 10 +# 2070| m2070_6(glval<TernaryNonPodObj>) = Phi : from 11:m2070_40, from 12:m2070_43 +# 2070| r2070_7(glval<unknown>) = VariableAddress[#temp2070:10] : +# 2070| r2070_8(glval<TernaryNonPodObj>) = Load[#temp2070:10] : &:r2070_7, m2070_6 +# 2070| r2070_9(glval<TernaryNonPodObj>) = Convert : r2070_8 +# 2070| r2070_10(TernaryNonPodObj &) = CopyValue : r2070_9 +# 2070| r2070_11(TernaryNonPodObj &) = Call[operator=] : func:r2070_2, this:r2070_1, 0:r2070_10 +# 2070| m2070_12(unknown) = ^CallSideEffect : ~m2069_16 +# 2070| m2070_13(unknown) = Chi : total:m2069_16, partial:m2070_12 +# 2070| v2070_14(void) = ^IndirectReadSideEffect[-1] : &:r2070_1, m2069_20 +# 2070| v2070_15(void) = ^BufferReadSideEffect[0] : &:r2070_10, ~m2070_13 +# 2070| m2070_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2070_1 +# 2070| m2070_17(TernaryNonPodObj) = Chi : total:m2069_20, partial:m2070_16 +# 2070| r2070_18(glval<TernaryNonPodObj>) = CopyValue : r2070_11 +# 2070| r2070_19(glval<unknown>) = FunctionAddress[operator=] : +# 2070| r2070_20(glval<TernaryNonPodObj>) = VariableAddress[#temp2070:23] : +# 2070| m2070_21(TernaryNonPodObj) = Uninitialized[#temp2070:23] : &:r2070_20 +# 2070| r2070_22(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2070| v2070_23(void) = Call[TernaryNonPodObj] : func:r2070_22, this:r2070_20 +# 2070| m2070_24(unknown) = ^CallSideEffect : ~m2070_13 +# 2070| m2070_25(unknown) = Chi : total:m2070_13, partial:m2070_24 +# 2070| m2070_26(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2070_20 +# 2070| m2070_27(TernaryNonPodObj) = Chi : total:m2070_21, partial:m2070_26 +# 2070| r2070_28(glval<TernaryNonPodObj>) = Convert : r2070_20 +# 2070| r2070_29(TernaryNonPodObj &) = CopyValue : r2070_28 +# 2070| r2070_30(TernaryNonPodObj &) = Call[operator=] : func:r2070_19, this:r2070_18, 0:r2070_29 +# 2070| m2070_31(unknown) = ^CallSideEffect : ~m2070_25 +# 2070| m2070_32(unknown) = Chi : total:m2070_25, partial:m2070_31 +# 2070| v2070_33(void) = ^IndirectReadSideEffect[-1] : &:r2070_18, m2070_17 +# 2070| v2070_34(void) = ^BufferReadSideEffect[0] : &:r2070_29, ~m2070_27 +# 2070| m2070_35(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2070_18 +# 2070| m2070_36(TernaryNonPodObj) = Chi : total:m2070_17, partial:m2070_35 +# 2070| r2070_37(glval<TernaryNonPodObj>) = CopyValue : r2070_30 +# 2071| v2071_1(void) = NoOp : +# 2066| v2066_13(void) = ReturnVoid : +# 2066| v2066_14(void) = AliasedUse : ~m2070_32 +# 2066| v2066_15(void) = ExitFunction : -# 2023| Block 11 -# 2023| r2023_38(glval<TernaryNonPodObj>) = VariableAddress[x] : -# 2023| r2023_39(glval<unknown>) = VariableAddress[#temp2023:10] : -# 2023| m2023_40(glval<TernaryNonPodObj>) = Store[#temp2023:10] : &:r2023_39, r2023_38 +# 2070| Block 11 +# 2070| r2070_38(glval<TernaryNonPodObj>) = VariableAddress[x] : +# 2070| r2070_39(glval<unknown>) = VariableAddress[#temp2070:10] : +# 2070| m2070_40(glval<TernaryNonPodObj>) = Store[#temp2070:10] : &:r2070_39, r2070_38 #-----| Goto -> Block 10 -# 2023| Block 12 -# 2023| r2023_41(glval<TernaryNonPodObj>) = VariableAddress[y] : -# 2023| r2023_42(glval<unknown>) = VariableAddress[#temp2023:10] : -# 2023| m2023_43(glval<TernaryNonPodObj>) = Store[#temp2023:10] : &:r2023_42, r2023_41 +# 2070| Block 12 +# 2070| r2070_41(glval<TernaryNonPodObj>) = VariableAddress[y] : +# 2070| r2070_42(glval<unknown>) = VariableAddress[#temp2070:10] : +# 2070| m2070_43(glval<TernaryNonPodObj>) = Store[#temp2070:10] : &:r2070_42, r2070_41 #-----| Goto -> Block 10 -# 2028| unsigned int CommaTest(unsigned int) -# 2028| Block 0 -# 2028| v2028_1(void) = EnterFunction : -# 2028| m2028_2(unknown) = AliasedDefinition : -# 2028| m2028_3(unknown) = InitializeNonLocal : -# 2028| m2028_4(unknown) = Chi : total:m2028_2, partial:m2028_3 -# 2028| r2028_5(glval<unsigned int>) = VariableAddress[x] : -# 2028| m2028_6(unsigned int) = InitializeParameter[x] : &:r2028_5 -# 2029| r2029_1(glval<unsigned int>) = VariableAddress[y] : -# 2029| m2029_2(unsigned int) = Uninitialized[y] : &:r2029_1 -# 2030| r2030_1(glval<unsigned int>) = VariableAddress[x] : -# 2030| r2030_2(unsigned int) = Load[x] : &:r2030_1, m2028_6 -# 2030| r2030_3(unsigned int) = Constant[100] : -# 2030| r2030_4(bool) = CompareLT : r2030_2, r2030_3 -# 2030| v2030_5(void) = ConditionalBranch : r2030_4 +# 2075| unsigned int CommaTest(unsigned int) +# 2075| Block 0 +# 2075| v2075_1(void) = EnterFunction : +# 2075| m2075_2(unknown) = AliasedDefinition : +# 2075| m2075_3(unknown) = InitializeNonLocal : +# 2075| m2075_4(unknown) = Chi : total:m2075_2, partial:m2075_3 +# 2075| r2075_5(glval<unsigned int>) = VariableAddress[x] : +# 2075| m2075_6(unsigned int) = InitializeParameter[x] : &:r2075_5 +# 2076| r2076_1(glval<unsigned int>) = VariableAddress[y] : +# 2076| m2076_2(unsigned int) = Uninitialized[y] : &:r2076_1 +# 2077| r2077_1(glval<unsigned int>) = VariableAddress[x] : +# 2077| r2077_2(unsigned int) = Load[x] : &:r2077_1, m2075_6 +# 2077| r2077_3(unsigned int) = Constant[100] : +# 2077| r2077_4(bool) = CompareLT : r2077_2, r2077_3 +# 2077| v2077_5(void) = ConditionalBranch : r2077_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2030| Block 1 -# 2030| m2030_6(unknown) = Phi : from 2:~m2031_6, from 3:~m2032_6 -# 2030| m2030_7(unsigned int) = Phi : from 2:m2030_13, from 3:m2030_15 -# 2030| r2030_8(glval<unsigned int>) = VariableAddress[#temp2030:7] : -# 2030| r2030_9(unsigned int) = Load[#temp2030:7] : &:r2030_8, m2030_7 -# 2030| r2030_10(glval<unsigned int>) = VariableAddress[y] : -# 2030| m2030_11(unsigned int) = Store[y] : &:r2030_10, r2030_9 -# 2033| r2033_1(glval<unsigned int>) = VariableAddress[#return] : -# 2033| m2033_2(unsigned int) = Uninitialized[#return] : &:r2033_1 -# 2028| r2028_7(glval<unsigned int>) = VariableAddress[#return] : -# 2028| v2028_8(void) = ReturnValue : &:r2028_7, m2033_2 -# 2028| v2028_9(void) = AliasedUse : ~m2030_6 -# 2028| v2028_10(void) = ExitFunction : +# 2077| Block 1 +# 2077| m2077_6(unknown) = Phi : from 2:~m2078_6, from 3:~m2079_6 +# 2077| m2077_7(unsigned int) = Phi : from 2:m2077_13, from 3:m2077_15 +# 2077| r2077_8(glval<unsigned int>) = VariableAddress[#temp2077:7] : +# 2077| r2077_9(unsigned int) = Load[#temp2077:7] : &:r2077_8, m2077_7 +# 2077| r2077_10(glval<unsigned int>) = VariableAddress[y] : +# 2077| m2077_11(unsigned int) = Store[y] : &:r2077_10, r2077_9 +# 2080| r2080_1(glval<unsigned int>) = VariableAddress[#return] : +# 2080| m2080_2(unsigned int) = Uninitialized[#return] : &:r2080_1 +# 2075| r2075_7(glval<unsigned int>) = VariableAddress[#return] : +# 2075| v2075_8(void) = ReturnValue : &:r2075_7, m2080_2 +# 2075| v2075_9(void) = AliasedUse : ~m2077_6 +# 2075| v2075_10(void) = ExitFunction : -# 2031| Block 2 -# 2031| r2031_1(glval<unknown>) = FunctionAddress[CommaTestHelper] : -# 2031| r2031_2(glval<unsigned int>) = VariableAddress[x] : -# 2031| r2031_3(unsigned int) = Load[x] : &:r2031_2, m2028_6 -# 2031| v2031_4(void) = Call[CommaTestHelper] : func:r2031_1, 0:r2031_3 -# 2031| m2031_5(unknown) = ^CallSideEffect : ~m2028_4 -# 2031| m2031_6(unknown) = Chi : total:m2028_4, partial:m2031_5 -# 2031| r2031_7(glval<unsigned int>) = VariableAddress[x] : -# 2031| r2031_8(unsigned int) = Load[x] : &:r2031_7, m2028_6 -# 2031| r2031_9(unsigned int) = CopyValue : r2031_8 -# 2030| r2030_12(glval<unsigned int>) = VariableAddress[#temp2030:7] : -# 2030| m2030_13(unsigned int) = Store[#temp2030:7] : &:r2030_12, r2031_9 +# 2078| Block 2 +# 2078| r2078_1(glval<unknown>) = FunctionAddress[CommaTestHelper] : +# 2078| r2078_2(glval<unsigned int>) = VariableAddress[x] : +# 2078| r2078_3(unsigned int) = Load[x] : &:r2078_2, m2075_6 +# 2078| v2078_4(void) = Call[CommaTestHelper] : func:r2078_1, 0:r2078_3 +# 2078| m2078_5(unknown) = ^CallSideEffect : ~m2075_4 +# 2078| m2078_6(unknown) = Chi : total:m2075_4, partial:m2078_5 +# 2078| r2078_7(glval<unsigned int>) = VariableAddress[x] : +# 2078| r2078_8(unsigned int) = Load[x] : &:r2078_7, m2075_6 +# 2078| r2078_9(unsigned int) = CopyValue : r2078_8 +# 2077| r2077_12(glval<unsigned int>) = VariableAddress[#temp2077:7] : +# 2077| m2077_13(unsigned int) = Store[#temp2077:7] : &:r2077_12, r2078_9 #-----| Goto -> Block 1 -# 2032| Block 3 -# 2032| r2032_1(glval<unknown>) = FunctionAddress[CommaTestHelper] : -# 2032| r2032_2(glval<unsigned int>) = VariableAddress[x] : -# 2032| r2032_3(unsigned int) = Load[x] : &:r2032_2, m2028_6 -# 2032| v2032_4(void) = Call[CommaTestHelper] : func:r2032_1, 0:r2032_3 -# 2032| m2032_5(unknown) = ^CallSideEffect : ~m2028_4 -# 2032| m2032_6(unknown) = Chi : total:m2028_4, partial:m2032_5 -# 2032| r2032_7(int) = Constant[10] : -# 2032| r2032_8(int) = CopyValue : r2032_7 -# 2032| r2032_9(unsigned int) = Convert : r2032_8 -# 2030| r2030_14(glval<unsigned int>) = VariableAddress[#temp2030:7] : -# 2030| m2030_15(unsigned int) = Store[#temp2030:7] : &:r2030_14, r2032_9 +# 2079| Block 3 +# 2079| r2079_1(glval<unknown>) = FunctionAddress[CommaTestHelper] : +# 2079| r2079_2(glval<unsigned int>) = VariableAddress[x] : +# 2079| r2079_3(unsigned int) = Load[x] : &:r2079_2, m2075_6 +# 2079| v2079_4(void) = Call[CommaTestHelper] : func:r2079_1, 0:r2079_3 +# 2079| m2079_5(unknown) = ^CallSideEffect : ~m2075_4 +# 2079| m2079_6(unknown) = Chi : total:m2075_4, partial:m2079_5 +# 2079| r2079_7(int) = Constant[10] : +# 2079| r2079_8(int) = CopyValue : r2079_7 +# 2079| r2079_9(unsigned int) = Convert : r2079_8 +# 2077| r2077_14(glval<unsigned int>) = VariableAddress[#temp2077:7] : +# 2077| m2077_15(unsigned int) = Store[#temp2077:7] : &:r2077_14, r2079_9 #-----| Goto -> Block 1 -# 2035| void NewDeleteMem() -# 2035| Block 0 -# 2035| v2035_1(void) = EnterFunction : -# 2035| m2035_2(unknown) = AliasedDefinition : -# 2035| m2035_3(unknown) = InitializeNonLocal : -# 2035| m2035_4(unknown) = Chi : total:m2035_2, partial:m2035_3 -# 2036| r2036_1(glval<int *>) = VariableAddress[x] : -# 2036| r2036_2(glval<unknown>) = FunctionAddress[operator new] : -# 2036| r2036_3(unsigned long) = Constant[4] : -# 2036| r2036_4(void *) = Call[operator new] : func:r2036_2, 0:r2036_3 -# 2036| m2036_5(unknown) = ^CallSideEffect : ~m2035_4 -# 2036| m2036_6(unknown) = Chi : total:m2035_4, partial:m2036_5 -# 2036| m2036_7(unknown) = ^InitializeDynamicAllocation : &:r2036_4 -# 2036| r2036_8(int *) = Convert : r2036_4 -# 2036| m2036_9(int *) = Store[x] : &:r2036_1, r2036_8 -# 2037| r2037_1(int) = Constant[6] : -# 2037| r2037_2(glval<int *>) = VariableAddress[x] : -# 2037| r2037_3(int *) = Load[x] : &:r2037_2, m2036_9 -# 2037| r2037_4(glval<int>) = CopyValue : r2037_3 -# 2037| m2037_5(int) = Store[?] : &:r2037_4, r2037_1 -# 2037| m2037_6(unknown) = Chi : total:m2036_7, partial:m2037_5 -# 2038| r2038_1(glval<unknown>) = FunctionAddress[operator delete] : -# 2038| r2038_2(glval<int *>) = VariableAddress[x] : -# 2038| r2038_3(int *) = Load[x] : &:r2038_2, m2036_9 -# 2038| v2038_4(void) = Call[operator delete] : func:r2038_1, 0:r2038_3 -# 2038| m2038_5(unknown) = ^CallSideEffect : ~m2036_6 -# 2038| m2038_6(unknown) = Chi : total:m2036_6, partial:m2038_5 -# 2039| v2039_1(void) = NoOp : -# 2035| v2035_5(void) = ReturnVoid : -# 2035| v2035_6(void) = AliasedUse : ~m2038_6 -# 2035| v2035_7(void) = ExitFunction : +# 2082| void NewDeleteMem() +# 2082| Block 0 +# 2082| v2082_1(void) = EnterFunction : +# 2082| m2082_2(unknown) = AliasedDefinition : +# 2082| m2082_3(unknown) = InitializeNonLocal : +# 2082| m2082_4(unknown) = Chi : total:m2082_2, partial:m2082_3 +# 2083| r2083_1(glval<int *>) = VariableAddress[x] : +# 2083| r2083_2(glval<unknown>) = FunctionAddress[operator new] : +# 2083| r2083_3(unsigned long) = Constant[4] : +# 2083| r2083_4(void *) = Call[operator new] : func:r2083_2, 0:r2083_3 +# 2083| m2083_5(unknown) = ^CallSideEffect : ~m2082_4 +# 2083| m2083_6(unknown) = Chi : total:m2082_4, partial:m2083_5 +# 2083| m2083_7(unknown) = ^InitializeDynamicAllocation : &:r2083_4 +# 2083| r2083_8(int *) = Convert : r2083_4 +# 2083| m2083_9(int *) = Store[x] : &:r2083_1, r2083_8 +# 2084| r2084_1(int) = Constant[6] : +# 2084| r2084_2(glval<int *>) = VariableAddress[x] : +# 2084| r2084_3(int *) = Load[x] : &:r2084_2, m2083_9 +# 2084| r2084_4(glval<int>) = CopyValue : r2084_3 +# 2084| m2084_5(int) = Store[?] : &:r2084_4, r2084_1 +# 2084| m2084_6(unknown) = Chi : total:m2083_7, partial:m2084_5 +# 2085| r2085_1(glval<unknown>) = FunctionAddress[operator delete] : +# 2085| r2085_2(glval<int *>) = VariableAddress[x] : +# 2085| r2085_3(int *) = Load[x] : &:r2085_2, m2083_9 +# 2085| v2085_4(void) = Call[operator delete] : func:r2085_1, 0:r2085_3 +# 2085| m2085_5(unknown) = ^CallSideEffect : ~m2083_6 +# 2085| m2085_6(unknown) = Chi : total:m2083_6, partial:m2085_5 +# 2086| v2086_1(void) = NoOp : +# 2082| v2082_5(void) = ReturnVoid : +# 2082| v2082_6(void) = AliasedUse : ~m2085_6 +# 2082| v2082_7(void) = ExitFunction : -# 2041| void Base2::Base2() -# 2041| Block 0 -# 2041| v2041_1(void) = EnterFunction : -# 2041| m2041_2(unknown) = AliasedDefinition : -# 2041| m2041_3(unknown) = InitializeNonLocal : -# 2041| m2041_4(unknown) = Chi : total:m2041_2, partial:m2041_3 -# 2041| r2041_5(glval<unknown>) = VariableAddress[#this] : -# 2041| m2041_6(glval<Base2>) = InitializeParameter[#this] : &:r2041_5 -# 2041| r2041_7(glval<Base2>) = Load[#this] : &:r2041_5, m2041_6 -# 2041| m2041_8(Base2) = InitializeIndirection[#this] : &:r2041_7 -# 2041| v2041_9(void) = NoOp : -# 2041| v2041_10(void) = ReturnIndirection[#this] : &:r2041_7, m2041_8 -# 2041| v2041_11(void) = ReturnVoid : -# 2041| v2041_12(void) = AliasedUse : m2041_3 -# 2041| v2041_13(void) = ExitFunction : +# 2088| void Base2::Base2() +# 2088| Block 0 +# 2088| v2088_1(void) = EnterFunction : +# 2088| m2088_2(unknown) = AliasedDefinition : +# 2088| m2088_3(unknown) = InitializeNonLocal : +# 2088| m2088_4(unknown) = Chi : total:m2088_2, partial:m2088_3 +# 2088| r2088_5(glval<unknown>) = VariableAddress[#this] : +# 2088| m2088_6(glval<Base2>) = InitializeParameter[#this] : &:r2088_5 +# 2088| r2088_7(glval<Base2>) = Load[#this] : &:r2088_5, m2088_6 +# 2088| m2088_8(Base2) = InitializeIndirection[#this] : &:r2088_7 +# 2088| v2088_9(void) = NoOp : +# 2088| v2088_10(void) = ReturnIndirection[#this] : &:r2088_7, m2088_8 +# 2088| v2088_11(void) = ReturnVoid : +# 2088| v2088_12(void) = AliasedUse : m2088_3 +# 2088| v2088_13(void) = ExitFunction : -# 2043| void Base2::operator delete(void*) -# 2043| Block 0 -# 2043| v2043_1(void) = EnterFunction : -# 2043| m2043_2(unknown) = AliasedDefinition : -# 2043| m2043_3(unknown) = InitializeNonLocal : -# 2043| m2043_4(unknown) = Chi : total:m2043_2, partial:m2043_3 -# 2043| r2043_5(glval<void *>) = VariableAddress[p] : -# 2043| m2043_6(void *) = InitializeParameter[p] : &:r2043_5 -# 2043| r2043_7(void *) = Load[p] : &:r2043_5, m2043_6 -# 2043| m2043_8(unknown) = InitializeIndirection[p] : &:r2043_7 -# 2044| v2044_1(void) = NoOp : -# 2043| v2043_9(void) = ReturnIndirection[p] : &:r2043_7, m2043_8 -# 2043| v2043_10(void) = ReturnVoid : -# 2043| v2043_11(void) = AliasedUse : m2043_3 -# 2043| v2043_12(void) = ExitFunction : +# 2090| void Base2::operator delete(void*) +# 2090| Block 0 +# 2090| v2090_1(void) = EnterFunction : +# 2090| m2090_2(unknown) = AliasedDefinition : +# 2090| m2090_3(unknown) = InitializeNonLocal : +# 2090| m2090_4(unknown) = Chi : total:m2090_2, partial:m2090_3 +# 2090| r2090_5(glval<void *>) = VariableAddress[p] : +# 2090| m2090_6(void *) = InitializeParameter[p] : &:r2090_5 +# 2090| r2090_7(void *) = Load[p] : &:r2090_5, m2090_6 +# 2090| m2090_8(unknown) = InitializeIndirection[p] : &:r2090_7 +# 2091| v2091_1(void) = NoOp : +# 2090| v2090_9(void) = ReturnIndirection[p] : &:r2090_7, m2090_8 +# 2090| v2090_10(void) = ReturnVoid : +# 2090| v2090_11(void) = AliasedUse : m2090_3 +# 2090| v2090_12(void) = ExitFunction : -# 2045| void Base2::~Base2() -# 2045| Block 0 -# 2045| v2045_1(void) = EnterFunction : -# 2045| m2045_2(unknown) = AliasedDefinition : -# 2045| m2045_3(unknown) = InitializeNonLocal : -# 2045| m2045_4(unknown) = Chi : total:m2045_2, partial:m2045_3 -# 2045| r2045_5(glval<unknown>) = VariableAddress[#this] : -# 2045| m2045_6(glval<Base2>) = InitializeParameter[#this] : &:r2045_5 -# 2045| r2045_7(glval<Base2>) = Load[#this] : &:r2045_5, m2045_6 -# 2045| m2045_8(Base2) = InitializeIndirection[#this] : &:r2045_7 -# 2045| v2045_9(void) = NoOp : -# 2045| v2045_10(void) = ReturnIndirection[#this] : &:r2045_7, m2045_8 -# 2045| v2045_11(void) = ReturnVoid : -# 2045| v2045_12(void) = AliasedUse : m2045_3 -# 2045| v2045_13(void) = ExitFunction : - -# 2048| void Derived2::Derived2() -# 2048| Block 0 -# 2048| v2048_1(void) = EnterFunction : -# 2048| m2048_2(unknown) = AliasedDefinition : -# 2048| m2048_3(unknown) = InitializeNonLocal : -# 2048| m2048_4(unknown) = Chi : total:m2048_2, partial:m2048_3 -# 2048| r2048_5(glval<unknown>) = VariableAddress[#this] : -# 2048| m2048_6(glval<Derived2>) = InitializeParameter[#this] : &:r2048_5 -# 2048| r2048_7(glval<Derived2>) = Load[#this] : &:r2048_5, m2048_6 -# 2048| m2048_8(Derived2) = InitializeIndirection[#this] : &:r2048_7 -# 2048| r2048_9(glval<Base2>) = ConvertToNonVirtualBase[Derived2 : Base2] : m2048_6 -# 2048| r2048_10(glval<unknown>) = FunctionAddress[Base2] : -# 2048| v2048_11(void) = Call[Base2] : func:r2048_10, this:r2048_9 -# 2048| m2048_12(unknown) = ^CallSideEffect : ~m2048_4 -# 2048| m2048_13(unknown) = Chi : total:m2048_4, partial:m2048_12 -# 2048| m2048_14(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2048_9 -# 2048| m2048_15(unknown) = Chi : total:m2048_8, partial:m2048_14 -# 2048| v2048_16(void) = NoOp : -# 2048| v2048_17(void) = ReturnIndirection[#this] : &:r2048_7, m2048_15 -# 2048| v2048_18(void) = ReturnVoid : -# 2048| v2048_19(void) = AliasedUse : ~m2048_13 -# 2048| v2048_20(void) = ExitFunction : - -# 2051| void Derived2::~Derived2() -# 2051| Block 0 -# 2051| v2051_1(void) = EnterFunction : -# 2051| m2051_2(unknown) = AliasedDefinition : -# 2051| m2051_3(unknown) = InitializeNonLocal : -# 2051| m2051_4(unknown) = Chi : total:m2051_2, partial:m2051_3 -# 2051| r2051_5(glval<unknown>) = VariableAddress[#this] : -# 2051| m2051_6(glval<Derived2>) = InitializeParameter[#this] : &:r2051_5 -# 2051| r2051_7(glval<Derived2>) = Load[#this] : &:r2051_5, m2051_6 -# 2051| m2051_8(Derived2) = InitializeIndirection[#this] : &:r2051_7 -# 2051| v2051_9(void) = NoOp : -# 2051| r2051_10(glval<Base2>) = ConvertToNonVirtualBase[Derived2 : Base2] : m2051_6 -# 2051| r2051_11(glval<unknown>) = FunctionAddress[~Base2] : -# 2051| v2051_12(void) = Call[~Base2] : func:r2051_11, this:r2051_10 -# 2051| m2051_13(unknown) = ^CallSideEffect : ~m2051_4 -# 2051| m2051_14(unknown) = Chi : total:m2051_4, partial:m2051_13 -# 2051| v2051_15(void) = ReturnIndirection[#this] : &:r2051_7, m2051_8 -# 2051| v2051_16(void) = ReturnVoid : -# 2051| v2051_17(void) = AliasedUse : ~m2051_14 -# 2051| v2051_18(void) = ExitFunction : - -# 2053| void Derived2::operator delete(void*) -# 2053| Block 0 -# 2053| v2053_1(void) = EnterFunction : -# 2053| m2053_2(unknown) = AliasedDefinition : -# 2053| m2053_3(unknown) = InitializeNonLocal : -# 2053| m2053_4(unknown) = Chi : total:m2053_2, partial:m2053_3 -# 2053| r2053_5(glval<void *>) = VariableAddress[p] : -# 2053| m2053_6(void *) = InitializeParameter[p] : &:r2053_5 -# 2053| r2053_7(void *) = Load[p] : &:r2053_5, m2053_6 -# 2053| m2053_8(unknown) = InitializeIndirection[p] : &:r2053_7 -# 2054| v2054_1(void) = NoOp : -# 2053| v2053_9(void) = ReturnIndirection[p] : &:r2053_7, m2053_8 -# 2053| v2053_10(void) = ReturnVoid : -# 2053| v2053_11(void) = AliasedUse : m2053_3 -# 2053| v2053_12(void) = ExitFunction : - -# 2058| int virtual_delete() -# 2058| Block 0 -# 2058| v2058_1(void) = EnterFunction : -# 2058| m2058_2(unknown) = AliasedDefinition : -# 2058| m2058_3(unknown) = InitializeNonLocal : -# 2058| m2058_4(unknown) = Chi : total:m2058_2, partial:m2058_3 -# 2060| r2060_1(glval<Base2 *>) = VariableAddress[b1] : -# 2060| r2060_2(glval<unknown>) = FunctionAddress[operator new] : -# 2060| r2060_3(unsigned long) = Constant[8] : -# 2060| r2060_4(void *) = Call[operator new] : func:r2060_2, 0:r2060_3 -# 2060| m2060_5(unknown) = ^CallSideEffect : ~m2058_4 -# 2060| m2060_6(unknown) = Chi : total:m2058_4, partial:m2060_5 -# 2060| m2060_7(unknown) = ^InitializeDynamicAllocation : &:r2060_4 -# 2060| r2060_8(Base2 *) = Convert : r2060_4 -# 2060| r2060_9(glval<unknown>) = FunctionAddress[Base2] : -# 2060| v2060_10(void) = Call[Base2] : func:r2060_9, this:r2060_8 -# 2060| m2060_11(unknown) = ^CallSideEffect : ~m2060_6 -# 2060| m2060_12(unknown) = Chi : total:m2060_6, partial:m2060_11 -# 2060| m2060_13(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2060_8 -# 2060| m2060_14(unknown) = Chi : total:m2060_7, partial:m2060_13 -# 2060| m2060_15(Base2 *) = Store[b1] : &:r2060_1, r2060_8 -# 2061| r2061_1(glval<unknown>) = VirtualDeleteFunctionAddress : -# 2061| r2061_2(glval<Base2 *>) = VariableAddress[b1] : -# 2061| r2061_3(Base2 *) = Load[b1] : &:r2061_2, m2060_15 -# 2061| v2061_4(void) = Call[?] : func:r2061_1, 0:r2061_3 -# 2061| m2061_5(unknown) = ^CallSideEffect : ~m2060_12 -# 2061| m2061_6(unknown) = Chi : total:m2060_12, partial:m2061_5 -# 2063| r2063_1(glval<Base2 *>) = VariableAddress[b2] : -# 2063| r2063_2(glval<unknown>) = FunctionAddress[operator new] : -# 2063| r2063_3(unsigned long) = Constant[16] : -# 2063| r2063_4(void *) = Call[operator new] : func:r2063_2, 0:r2063_3 -# 2063| m2063_5(unknown) = ^CallSideEffect : ~m2061_6 -# 2063| m2063_6(unknown) = Chi : total:m2061_6, partial:m2063_5 -# 2063| m2063_7(unknown) = ^InitializeDynamicAllocation : &:r2063_4 -# 2063| r2063_8(Derived2 *) = Convert : r2063_4 -# 2063| r2063_9(glval<unknown>) = FunctionAddress[Derived2] : -# 2063| v2063_10(void) = Call[Derived2] : func:r2063_9, this:r2063_8 -# 2063| m2063_11(unknown) = ^CallSideEffect : ~m2063_6 -# 2063| m2063_12(unknown) = Chi : total:m2063_6, partial:m2063_11 -# 2063| m2063_13(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2063_8 -# 2063| m2063_14(unknown) = Chi : total:m2063_7, partial:m2063_13 -# 2063| r2063_15(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2063_8 -# 2063| m2063_16(Base2 *) = Store[b2] : &:r2063_1, r2063_15 -# 2064| r2064_1(glval<unknown>) = VirtualDeleteFunctionAddress : -# 2064| r2064_2(glval<Base2 *>) = VariableAddress[b2] : -# 2064| r2064_3(Base2 *) = Load[b2] : &:r2064_2, m2063_16 -# 2064| v2064_4(void) = Call[?] : func:r2064_1, 0:r2064_3 -# 2064| m2064_5(unknown) = ^CallSideEffect : ~m2063_12 -# 2064| m2064_6(unknown) = Chi : total:m2063_12, partial:m2064_5 -# 2066| r2066_1(glval<Derived2 *>) = VariableAddress[d] : -# 2066| r2066_2(glval<unknown>) = FunctionAddress[operator new] : -# 2066| r2066_3(unsigned long) = Constant[16] : -# 2066| r2066_4(void *) = Call[operator new] : func:r2066_2, 0:r2066_3 -# 2066| m2066_5(unknown) = ^CallSideEffect : ~m2064_6 -# 2066| m2066_6(unknown) = Chi : total:m2064_6, partial:m2066_5 -# 2066| m2066_7(unknown) = ^InitializeDynamicAllocation : &:r2066_4 -# 2066| r2066_8(Derived2 *) = Convert : r2066_4 -# 2066| r2066_9(glval<unknown>) = FunctionAddress[Derived2] : -# 2066| v2066_10(void) = Call[Derived2] : func:r2066_9, this:r2066_8 -# 2066| m2066_11(unknown) = ^CallSideEffect : ~m2066_6 -# 2066| m2066_12(unknown) = Chi : total:m2066_6, partial:m2066_11 -# 2066| m2066_13(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2066_8 -# 2066| m2066_14(unknown) = Chi : total:m2066_7, partial:m2066_13 -# 2066| m2066_15(Derived2 *) = Store[d] : &:r2066_1, r2066_8 -# 2067| r2067_1(glval<unknown>) = VirtualDeleteFunctionAddress : -# 2067| r2067_2(glval<Derived2 *>) = VariableAddress[d] : -# 2067| r2067_3(Derived2 *) = Load[d] : &:r2067_2, m2066_15 -# 2067| v2067_4(void) = Call[?] : func:r2067_1, 0:r2067_3 -# 2067| m2067_5(unknown) = ^CallSideEffect : ~m2066_12 -# 2067| m2067_6(unknown) = Chi : total:m2066_12, partial:m2067_5 -# 2068| r2068_1(glval<int>) = VariableAddress[#return] : -# 2068| m2068_2(int) = Uninitialized[#return] : &:r2068_1 -# 2058| r2058_5(glval<int>) = VariableAddress[#return] : -# 2058| v2058_6(void) = ReturnValue : &:r2058_5, m2068_2 -# 2058| v2058_7(void) = AliasedUse : ~m2067_6 -# 2058| v2058_8(void) = ExitFunction : - -# 2072| void test_constant_folding() -# 2072| Block 0 -# 2072| v2072_1(void) = EnterFunction : -# 2072| m2072_2(unknown) = AliasedDefinition : -# 2072| m2072_3(unknown) = InitializeNonLocal : -# 2072| m2072_4(unknown) = Chi : total:m2072_2, partial:m2072_3 -# 2073| r2073_1(glval<int>) = VariableAddress[x] : -# 2073| r2073_2(int) = Constant[116] : -# 2073| m2073_3(int) = Store[x] : &:r2073_1, r2073_2 -# 2074| r2074_1(glval<unknown>) = FunctionAddress[test_constant_folding_use] : -# 2074| r2074_2(int) = Constant[116] : -# 2074| v2074_3(void) = Call[test_constant_folding_use] : func:r2074_1, 0:r2074_2 -# 2074| m2074_4(unknown) = ^CallSideEffect : ~m2072_4 -# 2074| m2074_5(unknown) = Chi : total:m2072_4, partial:m2074_4 -# 2075| v2075_1(void) = NoOp : -# 2072| v2072_5(void) = ReturnVoid : -# 2072| v2072_6(void) = AliasedUse : ~m2074_5 -# 2072| v2072_7(void) = ExitFunction : - -# 2079| int NonExit() -# 2079| Block 0 -# 2079| v2079_1(void) = EnterFunction : -# 2079| m2079_2(unknown) = AliasedDefinition : -# 2079| m2079_3(unknown) = InitializeNonLocal : -# 2079| m2079_4(unknown) = Chi : total:m2079_2, partial:m2079_3 -# 2080| r2080_1(glval<int>) = VariableAddress[x] : -# 2080| r2080_2(glval<unknown>) = FunctionAddress[Add] : -# 2080| r2080_3(int) = Constant[3] : -# 2080| r2080_4(int) = Constant[4] : -# 2080| r2080_5(int) = Call[Add] : func:r2080_2, 0:r2080_3, 1:r2080_4 -# 2080| m2080_6(unknown) = ^CallSideEffect : ~m2079_4 -# 2080| m2080_7(unknown) = Chi : total:m2079_4, partial:m2080_6 -# 2080| m2080_8(int) = Store[x] : &:r2080_1, r2080_5 -# 2081| r2081_1(glval<int>) = VariableAddress[x] : -# 2081| r2081_2(int) = Load[x] : &:r2081_1, m2080_8 -# 2081| r2081_3(int) = Constant[7] : -# 2081| r2081_4(bool) = CompareEQ : r2081_2, r2081_3 -# 2081| v2081_5(void) = ConditionalBranch : r2081_4 -#-----| False -> Block 2 -#-----| True -> Block 1 - -# 2082| Block 1 -# 2082| r2082_1(glval<unknown>) = FunctionAddress[exit] : -# 2082| r2082_2(int) = Constant[3] : -# 2082| v2082_3(void) = Call[exit] : func:r2082_1, 0:r2082_2 -# 2082| m2082_4(unknown) = ^CallSideEffect : ~m2080_7 -# 2082| m2082_5(unknown) = Chi : total:m2080_7, partial:m2082_4 -# 2079| v2079_5(void) = Unreached : - -# 2083| Block 2 -# 2083| r2083_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2083| v2083_2(void) = Call[VoidFunc] : func:r2083_1 -# 2083| m2083_3(unknown) = ^CallSideEffect : ~m2080_7 -# 2083| m2083_4(unknown) = Chi : total:m2080_7, partial:m2083_3 -# 2084| r2084_1(glval<int>) = VariableAddress[#return] : -# 2084| r2084_2(glval<int>) = VariableAddress[x] : -# 2084| r2084_3(int) = Load[x] : &:r2084_2, m2080_8 -# 2084| m2084_4(int) = Store[#return] : &:r2084_1, r2084_3 -# 2079| r2079_6(glval<int>) = VariableAddress[#return] : -# 2079| v2079_7(void) = ReturnValue : &:r2079_6, m2084_4 -# 2079| v2079_8(void) = AliasedUse : ~m2083_4 -# 2079| v2079_9(void) = ExitFunction : - -# 2087| void CallsNonExit() -# 2087| Block 0 -# 2087| v2087_1(void) = EnterFunction : -# 2087| m2087_2(unknown) = AliasedDefinition : -# 2087| m2087_3(unknown) = InitializeNonLocal : -# 2087| m2087_4(unknown) = Chi : total:m2087_2, partial:m2087_3 -# 2088| r2088_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2088| v2088_2(void) = Call[VoidFunc] : func:r2088_1 -# 2088| m2088_3(unknown) = ^CallSideEffect : ~m2087_4 -# 2088| m2088_4(unknown) = Chi : total:m2087_4, partial:m2088_3 -# 2089| r2089_1(glval<unknown>) = FunctionAddress[exit] : -# 2089| r2089_2(int) = Constant[3] : -# 2089| v2089_3(void) = Call[exit] : func:r2089_1, 0:r2089_2 -# 2089| m2089_4(unknown) = ^CallSideEffect : ~m2088_4 -# 2089| m2089_5(unknown) = Chi : total:m2088_4, partial:m2089_4 -# 2087| v2087_5(void) = Unreached : - -# 2092| int TransNonExit() +# 2092| void Base2::~Base2() # 2092| Block 0 -# 2092| v2092_1(void) = EnterFunction : -# 2092| m2092_2(unknown) = AliasedDefinition : -# 2092| m2092_3(unknown) = InitializeNonLocal : -# 2092| m2092_4(unknown) = Chi : total:m2092_2, partial:m2092_3 -# 2093| r2093_1(glval<int>) = VariableAddress[x] : -# 2093| r2093_2(glval<unknown>) = FunctionAddress[Add] : -# 2093| r2093_3(int) = Constant[3] : -# 2093| r2093_4(int) = Constant[4] : -# 2093| r2093_5(int) = Call[Add] : func:r2093_2, 0:r2093_3, 1:r2093_4 -# 2093| m2093_6(unknown) = ^CallSideEffect : ~m2092_4 -# 2093| m2093_7(unknown) = Chi : total:m2092_4, partial:m2093_6 -# 2093| m2093_8(int) = Store[x] : &:r2093_1, r2093_5 -# 2094| r2094_1(glval<int>) = VariableAddress[x] : -# 2094| r2094_2(int) = Load[x] : &:r2094_1, m2093_8 -# 2094| r2094_3(int) = Constant[7] : -# 2094| r2094_4(bool) = CompareEQ : r2094_2, r2094_3 -# 2094| v2094_5(void) = ConditionalBranch : r2094_4 -#-----| False -> Block 2 -#-----| True -> Block 1 +# 2092| v2092_1(void) = EnterFunction : +# 2092| m2092_2(unknown) = AliasedDefinition : +# 2092| m2092_3(unknown) = InitializeNonLocal : +# 2092| m2092_4(unknown) = Chi : total:m2092_2, partial:m2092_3 +# 2092| r2092_5(glval<unknown>) = VariableAddress[#this] : +# 2092| m2092_6(glval<Base2>) = InitializeParameter[#this] : &:r2092_5 +# 2092| r2092_7(glval<Base2>) = Load[#this] : &:r2092_5, m2092_6 +# 2092| m2092_8(Base2) = InitializeIndirection[#this] : &:r2092_7 +# 2092| v2092_9(void) = NoOp : +# 2092| v2092_10(void) = ReturnIndirection[#this] : &:r2092_7, m2092_8 +# 2092| v2092_11(void) = ReturnVoid : +# 2092| v2092_12(void) = AliasedUse : m2092_3 +# 2092| v2092_13(void) = ExitFunction : -# 2095| Block 1 -# 2095| r2095_1(glval<unknown>) = FunctionAddress[CallsNonExit] : -# 2095| v2095_2(void) = Call[CallsNonExit] : func:r2095_1 -# 2092| v2092_5(void) = Unreached : +# 2095| void Derived2::Derived2() +# 2095| Block 0 +# 2095| v2095_1(void) = EnterFunction : +# 2095| m2095_2(unknown) = AliasedDefinition : +# 2095| m2095_3(unknown) = InitializeNonLocal : +# 2095| m2095_4(unknown) = Chi : total:m2095_2, partial:m2095_3 +# 2095| r2095_5(glval<unknown>) = VariableAddress[#this] : +# 2095| m2095_6(glval<Derived2>) = InitializeParameter[#this] : &:r2095_5 +# 2095| r2095_7(glval<Derived2>) = Load[#this] : &:r2095_5, m2095_6 +# 2095| m2095_8(Derived2) = InitializeIndirection[#this] : &:r2095_7 +# 2095| r2095_9(glval<Base2>) = ConvertToNonVirtualBase[Derived2 : Base2] : m2095_6 +# 2095| r2095_10(glval<unknown>) = FunctionAddress[Base2] : +# 2095| v2095_11(void) = Call[Base2] : func:r2095_10, this:r2095_9 +# 2095| m2095_12(unknown) = ^CallSideEffect : ~m2095_4 +# 2095| m2095_13(unknown) = Chi : total:m2095_4, partial:m2095_12 +# 2095| m2095_14(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2095_9 +# 2095| m2095_15(unknown) = Chi : total:m2095_8, partial:m2095_14 +# 2095| v2095_16(void) = NoOp : +# 2095| v2095_17(void) = ReturnIndirection[#this] : &:r2095_7, m2095_15 +# 2095| v2095_18(void) = ReturnVoid : +# 2095| v2095_19(void) = AliasedUse : ~m2095_13 +# 2095| v2095_20(void) = ExitFunction : -# 2096| Block 2 -# 2096| r2096_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2096| v2096_2(void) = Call[VoidFunc] : func:r2096_1 -# 2096| m2096_3(unknown) = ^CallSideEffect : ~m2093_7 -# 2096| m2096_4(unknown) = Chi : total:m2093_7, partial:m2096_3 -# 2097| r2097_1(glval<int>) = VariableAddress[#return] : -# 2097| r2097_2(glval<int>) = VariableAddress[x] : -# 2097| r2097_3(int) = Load[x] : &:r2097_2, m2093_8 -# 2097| m2097_4(int) = Store[#return] : &:r2097_1, r2097_3 -# 2092| r2092_6(glval<int>) = VariableAddress[#return] : -# 2092| v2092_7(void) = ReturnValue : &:r2092_6, m2097_4 -# 2092| v2092_8(void) = AliasedUse : ~m2096_4 -# 2092| v2092_9(void) = ExitFunction : +# 2098| void Derived2::~Derived2() +# 2098| Block 0 +# 2098| v2098_1(void) = EnterFunction : +# 2098| m2098_2(unknown) = AliasedDefinition : +# 2098| m2098_3(unknown) = InitializeNonLocal : +# 2098| m2098_4(unknown) = Chi : total:m2098_2, partial:m2098_3 +# 2098| r2098_5(glval<unknown>) = VariableAddress[#this] : +# 2098| m2098_6(glval<Derived2>) = InitializeParameter[#this] : &:r2098_5 +# 2098| r2098_7(glval<Derived2>) = Load[#this] : &:r2098_5, m2098_6 +# 2098| m2098_8(Derived2) = InitializeIndirection[#this] : &:r2098_7 +# 2098| v2098_9(void) = NoOp : +# 2098| r2098_10(glval<Base2>) = ConvertToNonVirtualBase[Derived2 : Base2] : m2098_6 +# 2098| r2098_11(glval<unknown>) = FunctionAddress[~Base2] : +# 2098| v2098_12(void) = Call[~Base2] : func:r2098_11, this:r2098_10 +# 2098| m2098_13(unknown) = ^CallSideEffect : ~m2098_4 +# 2098| m2098_14(unknown) = Chi : total:m2098_4, partial:m2098_13 +# 2098| v2098_15(void) = ReturnIndirection[#this] : &:r2098_7, m2098_8 +# 2098| v2098_16(void) = ReturnVoid : +# 2098| v2098_17(void) = AliasedUse : ~m2098_14 +# 2098| v2098_18(void) = ExitFunction : -# 2100| void newArrayCorrectType(size_t) +# 2100| void Derived2::operator delete(void*) # 2100| Block 0 -# 2100| v2100_1(void) = EnterFunction : -# 2100| m2100_2(unknown) = AliasedDefinition : -# 2100| m2100_3(unknown) = InitializeNonLocal : -# 2100| m2100_4(unknown) = Chi : total:m2100_2, partial:m2100_3 -# 2100| r2100_5(glval<unsigned long>) = VariableAddress[n] : -# 2100| m2100_6(unsigned long) = InitializeParameter[n] : &:r2100_5 -# 2101| r2101_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2101| r2101_2(glval<unsigned long>) = VariableAddress[n] : -# 2101| r2101_3(unsigned long) = Load[n] : &:r2101_2, m2100_6 -# 2101| r2101_4(unsigned long) = Constant[4] : -# 2101| r2101_5(unsigned long) = Mul : r2101_3, r2101_4 -# 2101| r2101_6(void *) = Call[operator new[]] : func:r2101_1, 0:r2101_5 -# 2101| m2101_7(unknown) = ^CallSideEffect : ~m2100_4 -# 2101| m2101_8(unknown) = Chi : total:m2100_4, partial:m2101_7 -# 2101| m2101_9(unknown) = ^InitializeDynamicAllocation : &:r2101_6 -# 2101| r2101_10(int *) = Convert : r2101_6 -# 2102| r2102_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2102| r2102_2(glval<unsigned long>) = VariableAddress[n] : -# 2102| r2102_3(unsigned long) = Load[n] : &:r2102_2, m2100_6 -# 2102| r2102_4(unsigned long) = Constant[4] : -# 2102| r2102_5(unsigned long) = Mul : r2102_3, r2102_4 -# 2102| r2102_6(float) = Constant[1.0] : -# 2102| r2102_7(void *) = Call[operator new[]] : func:r2102_1, 0:r2102_5, 1:r2102_6 -# 2102| m2102_8(unknown) = ^CallSideEffect : ~m2101_8 -# 2102| m2102_9(unknown) = Chi : total:m2101_8, partial:m2102_8 -# 2102| m2102_10(unknown) = ^InitializeDynamicAllocation : &:r2102_7 -# 2102| r2102_11(int *) = Convert : r2102_7 -# 2103| r2103_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2103| r2103_2(glval<unsigned long>) = VariableAddress[n] : -# 2103| r2103_3(unsigned long) = Load[n] : &:r2103_2, m2100_6 -# 2103| r2103_4(unsigned long) = Constant[8] : -# 2103| r2103_5(unsigned long) = Mul : r2103_3, r2103_4 -# 2103| r2103_6(void *) = Call[operator new[]] : func:r2103_1, 0:r2103_5 -# 2103| m2103_7(unknown) = ^CallSideEffect : ~m2102_9 -# 2103| m2103_8(unknown) = Chi : total:m2102_9, partial:m2103_7 -# 2103| m2103_9(unknown) = ^InitializeDynamicAllocation : &:r2103_6 -# 2103| r2103_10(String *) = Convert : r2103_6 -# 2104| r2104_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2104| r2104_2(glval<unsigned long>) = VariableAddress[n] : -# 2104| r2104_3(unsigned long) = Load[n] : &:r2104_2, m2100_6 -# 2104| r2104_4(unsigned long) = Constant[256] : -# 2104| r2104_5(unsigned long) = Mul : r2104_3, r2104_4 -# 2104| r2104_6(align_val_t) = Constant[128] : -# 2104| r2104_7(void *) = Call[operator new[]] : func:r2104_1, 0:r2104_5, 1:r2104_6 -# 2104| m2104_8(unknown) = ^CallSideEffect : ~m2103_8 -# 2104| m2104_9(unknown) = Chi : total:m2103_8, partial:m2104_8 -# 2104| m2104_10(unknown) = ^InitializeDynamicAllocation : &:r2104_7 -# 2104| r2104_11(Overaligned *) = Convert : r2104_7 -# 2105| r2105_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2105| r2105_2(glval<unsigned long>) = VariableAddress[n] : -# 2105| r2105_3(unsigned long) = Load[n] : &:r2105_2, m2100_6 -# 2105| r2105_4(unsigned long) = Constant[1] : -# 2105| r2105_5(unsigned long) = Mul : r2105_3, r2105_4 -# 2105| r2105_6(void *) = Call[operator new[]] : func:r2105_1, 0:r2105_5 -# 2105| m2105_7(unknown) = ^CallSideEffect : ~m2104_9 -# 2105| m2105_8(unknown) = Chi : total:m2104_9, partial:m2105_7 -# 2105| m2105_9(unknown) = ^InitializeDynamicAllocation : &:r2105_6 -# 2105| r2105_10(DefaultCtorWithDefaultParam *) = Convert : r2105_6 -# 2106| r2106_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2106| r2106_2(glval<unsigned long>) = VariableAddress[n] : -# 2106| r2106_3(unsigned long) = Load[n] : &:r2106_2, m2100_6 -# 2106| r2106_4(unsigned long) = Constant[4] : -# 2106| r2106_5(unsigned long) = Mul : r2106_3, r2106_4 -# 2106| r2106_6(void *) = Call[operator new[]] : func:r2106_1, 0:r2106_5 -# 2106| m2106_7(unknown) = ^CallSideEffect : ~m2105_8 -# 2106| m2106_8(unknown) = Chi : total:m2105_8, partial:m2106_7 -# 2106| m2106_9(unknown) = ^InitializeDynamicAllocation : &:r2106_6 -# 2106| r2106_10(int *) = Convert : r2106_6 -# 2107| v2107_1(void) = NoOp : -# 2100| v2100_7(void) = ReturnVoid : -# 2100| v2100_8(void) = AliasedUse : ~m2106_8 -# 2100| v2100_9(void) = ExitFunction : +# 2100| v2100_1(void) = EnterFunction : +# 2100| m2100_2(unknown) = AliasedDefinition : +# 2100| m2100_3(unknown) = InitializeNonLocal : +# 2100| m2100_4(unknown) = Chi : total:m2100_2, partial:m2100_3 +# 2100| r2100_5(glval<void *>) = VariableAddress[p] : +# 2100| m2100_6(void *) = InitializeParameter[p] : &:r2100_5 +# 2100| r2100_7(void *) = Load[p] : &:r2100_5, m2100_6 +# 2100| m2100_8(unknown) = InitializeIndirection[p] : &:r2100_7 +# 2101| v2101_1(void) = NoOp : +# 2100| v2100_9(void) = ReturnIndirection[p] : &:r2100_7, m2100_8 +# 2100| v2100_10(void) = ReturnVoid : +# 2100| v2100_11(void) = AliasedUse : m2100_3 +# 2100| v2100_12(void) = ExitFunction : -# 2111| char* test_strtod(char*) -# 2111| Block 0 -# 2111| v2111_1(void) = EnterFunction : -# 2111| m2111_2(unknown) = AliasedDefinition : -# 2111| m2111_3(unknown) = InitializeNonLocal : -# 2111| m2111_4(unknown) = Chi : total:m2111_2, partial:m2111_3 -# 2111| r2111_5(glval<char *>) = VariableAddress[s] : -# 2111| m2111_6(char *) = InitializeParameter[s] : &:r2111_5 -# 2111| r2111_7(char *) = Load[s] : &:r2111_5, m2111_6 -# 2111| m2111_8(unknown) = InitializeIndirection[s] : &:r2111_7 -# 2112| r2112_1(glval<char *>) = VariableAddress[end] : -# 2112| m2112_2(char *) = Uninitialized[end] : &:r2112_1 -# 2113| r2113_1(glval<double>) = VariableAddress[d] : -# 2113| r2113_2(glval<unknown>) = FunctionAddress[strtod] : -# 2113| r2113_3(glval<char *>) = VariableAddress[s] : -# 2113| r2113_4(char *) = Load[s] : &:r2113_3, m2111_6 -# 2113| r2113_5(char *) = Convert : r2113_4 -# 2113| r2113_6(glval<char *>) = VariableAddress[end] : -# 2113| r2113_7(char **) = CopyValue : r2113_6 -# 2113| r2113_8(double) = Call[strtod] : func:r2113_2, 0:r2113_5, 1:r2113_7 -# 2113| v2113_9(void) = ^BufferReadSideEffect[0] : &:r2113_5, ~m2111_8 -# 2113| m2113_10(char *) = ^IndirectMayWriteSideEffect[1] : &:r2113_7 -# 2113| m2113_11(char *) = Chi : total:m2112_2, partial:m2113_10 -# 2113| m2113_12(double) = Store[d] : &:r2113_1, r2113_8 -# 2114| r2114_1(glval<char *>) = VariableAddress[#return] : -# 2114| r2114_2(glval<char *>) = VariableAddress[end] : -# 2114| r2114_3(char *) = Load[end] : &:r2114_2, m2113_11 -# 2114| m2114_4(char *) = Store[#return] : &:r2114_1, r2114_3 -# 2111| v2111_9(void) = ReturnIndirection[s] : &:r2111_7, m2111_8 -# 2111| r2111_10(glval<char *>) = VariableAddress[#return] : -# 2111| v2111_11(void) = ReturnValue : &:r2111_10, m2114_4 -# 2111| v2111_12(void) = AliasedUse : m2111_3 -# 2111| v2111_13(void) = ExitFunction : +# 2105| int virtual_delete() +# 2105| Block 0 +# 2105| v2105_1(void) = EnterFunction : +# 2105| m2105_2(unknown) = AliasedDefinition : +# 2105| m2105_3(unknown) = InitializeNonLocal : +# 2105| m2105_4(unknown) = Chi : total:m2105_2, partial:m2105_3 +# 2107| r2107_1(glval<Base2 *>) = VariableAddress[b1] : +# 2107| r2107_2(glval<unknown>) = FunctionAddress[operator new] : +# 2107| r2107_3(unsigned long) = Constant[8] : +# 2107| r2107_4(void *) = Call[operator new] : func:r2107_2, 0:r2107_3 +# 2107| m2107_5(unknown) = ^CallSideEffect : ~m2105_4 +# 2107| m2107_6(unknown) = Chi : total:m2105_4, partial:m2107_5 +# 2107| m2107_7(unknown) = ^InitializeDynamicAllocation : &:r2107_4 +# 2107| r2107_8(Base2 *) = Convert : r2107_4 +# 2107| r2107_9(glval<unknown>) = FunctionAddress[Base2] : +# 2107| v2107_10(void) = Call[Base2] : func:r2107_9, this:r2107_8 +# 2107| m2107_11(unknown) = ^CallSideEffect : ~m2107_6 +# 2107| m2107_12(unknown) = Chi : total:m2107_6, partial:m2107_11 +# 2107| m2107_13(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2107_8 +# 2107| m2107_14(unknown) = Chi : total:m2107_7, partial:m2107_13 +# 2107| m2107_15(Base2 *) = Store[b1] : &:r2107_1, r2107_8 +# 2108| r2108_1(glval<unknown>) = VirtualDeleteFunctionAddress : +# 2108| r2108_2(glval<Base2 *>) = VariableAddress[b1] : +# 2108| r2108_3(Base2 *) = Load[b1] : &:r2108_2, m2107_15 +# 2108| v2108_4(void) = Call[?] : func:r2108_1, 0:r2108_3 +# 2108| m2108_5(unknown) = ^CallSideEffect : ~m2107_12 +# 2108| m2108_6(unknown) = Chi : total:m2107_12, partial:m2108_5 +# 2110| r2110_1(glval<Base2 *>) = VariableAddress[b2] : +# 2110| r2110_2(glval<unknown>) = FunctionAddress[operator new] : +# 2110| r2110_3(unsigned long) = Constant[16] : +# 2110| r2110_4(void *) = Call[operator new] : func:r2110_2, 0:r2110_3 +# 2110| m2110_5(unknown) = ^CallSideEffect : ~m2108_6 +# 2110| m2110_6(unknown) = Chi : total:m2108_6, partial:m2110_5 +# 2110| m2110_7(unknown) = ^InitializeDynamicAllocation : &:r2110_4 +# 2110| r2110_8(Derived2 *) = Convert : r2110_4 +# 2110| r2110_9(glval<unknown>) = FunctionAddress[Derived2] : +# 2110| v2110_10(void) = Call[Derived2] : func:r2110_9, this:r2110_8 +# 2110| m2110_11(unknown) = ^CallSideEffect : ~m2110_6 +# 2110| m2110_12(unknown) = Chi : total:m2110_6, partial:m2110_11 +# 2110| m2110_13(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2110_8 +# 2110| m2110_14(unknown) = Chi : total:m2110_7, partial:m2110_13 +# 2110| r2110_15(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2110_8 +# 2110| m2110_16(Base2 *) = Store[b2] : &:r2110_1, r2110_15 +# 2111| r2111_1(glval<unknown>) = VirtualDeleteFunctionAddress : +# 2111| r2111_2(glval<Base2 *>) = VariableAddress[b2] : +# 2111| r2111_3(Base2 *) = Load[b2] : &:r2111_2, m2110_16 +# 2111| v2111_4(void) = Call[?] : func:r2111_1, 0:r2111_3 +# 2111| m2111_5(unknown) = ^CallSideEffect : ~m2110_12 +# 2111| m2111_6(unknown) = Chi : total:m2110_12, partial:m2111_5 +# 2113| r2113_1(glval<Derived2 *>) = VariableAddress[d] : +# 2113| r2113_2(glval<unknown>) = FunctionAddress[operator new] : +# 2113| r2113_3(unsigned long) = Constant[16] : +# 2113| r2113_4(void *) = Call[operator new] : func:r2113_2, 0:r2113_3 +# 2113| m2113_5(unknown) = ^CallSideEffect : ~m2111_6 +# 2113| m2113_6(unknown) = Chi : total:m2111_6, partial:m2113_5 +# 2113| m2113_7(unknown) = ^InitializeDynamicAllocation : &:r2113_4 +# 2113| r2113_8(Derived2 *) = Convert : r2113_4 +# 2113| r2113_9(glval<unknown>) = FunctionAddress[Derived2] : +# 2113| v2113_10(void) = Call[Derived2] : func:r2113_9, this:r2113_8 +# 2113| m2113_11(unknown) = ^CallSideEffect : ~m2113_6 +# 2113| m2113_12(unknown) = Chi : total:m2113_6, partial:m2113_11 +# 2113| m2113_13(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2113_8 +# 2113| m2113_14(unknown) = Chi : total:m2113_7, partial:m2113_13 +# 2113| m2113_15(Derived2 *) = Store[d] : &:r2113_1, r2113_8 +# 2114| r2114_1(glval<unknown>) = VirtualDeleteFunctionAddress : +# 2114| r2114_2(glval<Derived2 *>) = VariableAddress[d] : +# 2114| r2114_3(Derived2 *) = Load[d] : &:r2114_2, m2113_15 +# 2114| v2114_4(void) = Call[?] : func:r2114_1, 0:r2114_3 +# 2114| m2114_5(unknown) = ^CallSideEffect : ~m2113_12 +# 2114| m2114_6(unknown) = Chi : total:m2113_12, partial:m2114_5 +# 2115| r2115_1(glval<int>) = VariableAddress[#return] : +# 2115| m2115_2(int) = Uninitialized[#return] : &:r2115_1 +# 2105| r2105_5(glval<int>) = VariableAddress[#return] : +# 2105| v2105_6(void) = ReturnValue : &:r2105_5, m2115_2 +# 2105| v2105_7(void) = AliasedUse : ~m2114_6 +# 2105| v2105_8(void) = ExitFunction : -# 2121| void call_as_child_of_ConditionDeclExpr() -# 2121| Block 0 -# 2121| v2121_1(void) = EnterFunction : -# 2121| m2121_2(unknown) = AliasedDefinition : -# 2121| m2121_3(unknown) = InitializeNonLocal : -# 2121| m2121_4(unknown) = Chi : total:m2121_2, partial:m2121_3 -# 2122| r2122_1(glval<HasOperatorBool>) = VariableAddress[b] : -# 2122| r2122_2(HasOperatorBool) = Constant[0] : -# 2122| m2122_3(HasOperatorBool) = Store[b] : &:r2122_1, r2122_2 -# 2122| r2122_4(glval<HasOperatorBool>) = VariableAddress[b] : -# 2122| r2122_5(glval<unknown>) = FunctionAddress[operator bool] : -# 2122| r2122_6(bool) = Call[operator bool] : func:r2122_5, this:r2122_4 -# 2122| m2122_7(unknown) = ^CallSideEffect : ~m2121_4 -# 2122| m2122_8(unknown) = Chi : total:m2121_4, partial:m2122_7 -# 2122| v2122_9(void) = ^IndirectReadSideEffect[-1] : &:r2122_4, m2122_3 -# 2122| m2122_10(HasOperatorBool) = ^IndirectMayWriteSideEffect[-1] : &:r2122_4 -# 2122| m2122_11(HasOperatorBool) = Chi : total:m2122_3, partial:m2122_10 -# 2122| r2122_12(bool) = CopyValue : r2122_6 -# 2122| v2122_13(void) = ConditionalBranch : r2122_12 +# 2119| void test_constant_folding() +# 2119| Block 0 +# 2119| v2119_1(void) = EnterFunction : +# 2119| m2119_2(unknown) = AliasedDefinition : +# 2119| m2119_3(unknown) = InitializeNonLocal : +# 2119| m2119_4(unknown) = Chi : total:m2119_2, partial:m2119_3 +# 2120| r2120_1(glval<int>) = VariableAddress[x] : +# 2120| r2120_2(int) = Constant[116] : +# 2120| m2120_3(int) = Store[x] : &:r2120_1, r2120_2 +# 2121| r2121_1(glval<unknown>) = FunctionAddress[test_constant_folding_use] : +# 2121| r2121_2(int) = Constant[116] : +# 2121| v2121_3(void) = Call[test_constant_folding_use] : func:r2121_1, 0:r2121_2 +# 2121| m2121_4(unknown) = ^CallSideEffect : ~m2119_4 +# 2121| m2121_5(unknown) = Chi : total:m2119_4, partial:m2121_4 +# 2122| v2122_1(void) = NoOp : +# 2119| v2119_5(void) = ReturnVoid : +# 2119| v2119_6(void) = AliasedUse : ~m2121_5 +# 2119| v2119_7(void) = ExitFunction : + +# 2126| int NonExit() +# 2126| Block 0 +# 2126| v2126_1(void) = EnterFunction : +# 2126| m2126_2(unknown) = AliasedDefinition : +# 2126| m2126_3(unknown) = InitializeNonLocal : +# 2126| m2126_4(unknown) = Chi : total:m2126_2, partial:m2126_3 +# 2127| r2127_1(glval<int>) = VariableAddress[x] : +# 2127| r2127_2(glval<unknown>) = FunctionAddress[Add] : +# 2127| r2127_3(int) = Constant[3] : +# 2127| r2127_4(int) = Constant[4] : +# 2127| r2127_5(int) = Call[Add] : func:r2127_2, 0:r2127_3, 1:r2127_4 +# 2127| m2127_6(unknown) = ^CallSideEffect : ~m2126_4 +# 2127| m2127_7(unknown) = Chi : total:m2126_4, partial:m2127_6 +# 2127| m2127_8(int) = Store[x] : &:r2127_1, r2127_5 +# 2128| r2128_1(glval<int>) = VariableAddress[x] : +# 2128| r2128_2(int) = Load[x] : &:r2128_1, m2127_8 +# 2128| r2128_3(int) = Constant[7] : +# 2128| r2128_4(bool) = CompareEQ : r2128_2, r2128_3 +# 2128| v2128_5(void) = ConditionalBranch : r2128_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 2122| Block 1 -# 2122| v2122_14(void) = NoOp : +# 2129| Block 1 +# 2129| r2129_1(glval<unknown>) = FunctionAddress[exit] : +# 2129| r2129_2(int) = Constant[3] : +# 2129| v2129_3(void) = Call[exit] : func:r2129_1, 0:r2129_2 +# 2129| m2129_4(unknown) = ^CallSideEffect : ~m2127_7 +# 2129| m2129_5(unknown) = Chi : total:m2127_7, partial:m2129_4 +# 2126| v2126_5(void) = Unreached : + +# 2130| Block 2 +# 2130| r2130_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2130| v2130_2(void) = Call[VoidFunc] : func:r2130_1 +# 2130| m2130_3(unknown) = ^CallSideEffect : ~m2127_7 +# 2130| m2130_4(unknown) = Chi : total:m2127_7, partial:m2130_3 +# 2131| r2131_1(glval<int>) = VariableAddress[#return] : +# 2131| r2131_2(glval<int>) = VariableAddress[x] : +# 2131| r2131_3(int) = Load[x] : &:r2131_2, m2127_8 +# 2131| m2131_4(int) = Store[#return] : &:r2131_1, r2131_3 +# 2126| r2126_6(glval<int>) = VariableAddress[#return] : +# 2126| v2126_7(void) = ReturnValue : &:r2126_6, m2131_4 +# 2126| v2126_8(void) = AliasedUse : ~m2130_4 +# 2126| v2126_9(void) = ExitFunction : + +# 2134| void CallsNonExit() +# 2134| Block 0 +# 2134| v2134_1(void) = EnterFunction : +# 2134| m2134_2(unknown) = AliasedDefinition : +# 2134| m2134_3(unknown) = InitializeNonLocal : +# 2134| m2134_4(unknown) = Chi : total:m2134_2, partial:m2134_3 +# 2135| r2135_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2135| v2135_2(void) = Call[VoidFunc] : func:r2135_1 +# 2135| m2135_3(unknown) = ^CallSideEffect : ~m2134_4 +# 2135| m2135_4(unknown) = Chi : total:m2134_4, partial:m2135_3 +# 2136| r2136_1(glval<unknown>) = FunctionAddress[exit] : +# 2136| r2136_2(int) = Constant[3] : +# 2136| v2136_3(void) = Call[exit] : func:r2136_1, 0:r2136_2 +# 2136| m2136_4(unknown) = ^CallSideEffect : ~m2135_4 +# 2136| m2136_5(unknown) = Chi : total:m2135_4, partial:m2136_4 +# 2134| v2134_5(void) = Unreached : + +# 2139| int TransNonExit() +# 2139| Block 0 +# 2139| v2139_1(void) = EnterFunction : +# 2139| m2139_2(unknown) = AliasedDefinition : +# 2139| m2139_3(unknown) = InitializeNonLocal : +# 2139| m2139_4(unknown) = Chi : total:m2139_2, partial:m2139_3 +# 2140| r2140_1(glval<int>) = VariableAddress[x] : +# 2140| r2140_2(glval<unknown>) = FunctionAddress[Add] : +# 2140| r2140_3(int) = Constant[3] : +# 2140| r2140_4(int) = Constant[4] : +# 2140| r2140_5(int) = Call[Add] : func:r2140_2, 0:r2140_3, 1:r2140_4 +# 2140| m2140_6(unknown) = ^CallSideEffect : ~m2139_4 +# 2140| m2140_7(unknown) = Chi : total:m2139_4, partial:m2140_6 +# 2140| m2140_8(int) = Store[x] : &:r2140_1, r2140_5 +# 2141| r2141_1(glval<int>) = VariableAddress[x] : +# 2141| r2141_2(int) = Load[x] : &:r2141_1, m2140_8 +# 2141| r2141_3(int) = Constant[7] : +# 2141| r2141_4(bool) = CompareEQ : r2141_2, r2141_3 +# 2141| v2141_5(void) = ConditionalBranch : r2141_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2142| Block 1 +# 2142| r2142_1(glval<unknown>) = FunctionAddress[CallsNonExit] : +# 2142| v2142_2(void) = Call[CallsNonExit] : func:r2142_1 +# 2139| v2139_5(void) = Unreached : + +# 2143| Block 2 +# 2143| r2143_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2143| v2143_2(void) = Call[VoidFunc] : func:r2143_1 +# 2143| m2143_3(unknown) = ^CallSideEffect : ~m2140_7 +# 2143| m2143_4(unknown) = Chi : total:m2140_7, partial:m2143_3 +# 2144| r2144_1(glval<int>) = VariableAddress[#return] : +# 2144| r2144_2(glval<int>) = VariableAddress[x] : +# 2144| r2144_3(int) = Load[x] : &:r2144_2, m2140_8 +# 2144| m2144_4(int) = Store[#return] : &:r2144_1, r2144_3 +# 2139| r2139_6(glval<int>) = VariableAddress[#return] : +# 2139| v2139_7(void) = ReturnValue : &:r2139_6, m2144_4 +# 2139| v2139_8(void) = AliasedUse : ~m2143_4 +# 2139| v2139_9(void) = ExitFunction : + +# 2147| void newArrayCorrectType(size_t) +# 2147| Block 0 +# 2147| v2147_1(void) = EnterFunction : +# 2147| m2147_2(unknown) = AliasedDefinition : +# 2147| m2147_3(unknown) = InitializeNonLocal : +# 2147| m2147_4(unknown) = Chi : total:m2147_2, partial:m2147_3 +# 2147| r2147_5(glval<unsigned long>) = VariableAddress[n] : +# 2147| m2147_6(unsigned long) = InitializeParameter[n] : &:r2147_5 +# 2148| r2148_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2148| r2148_2(glval<unsigned long>) = VariableAddress[n] : +# 2148| r2148_3(unsigned long) = Load[n] : &:r2148_2, m2147_6 +# 2148| r2148_4(unsigned long) = Constant[4] : +# 2148| r2148_5(unsigned long) = Mul : r2148_3, r2148_4 +# 2148| r2148_6(void *) = Call[operator new[]] : func:r2148_1, 0:r2148_5 +# 2148| m2148_7(unknown) = ^CallSideEffect : ~m2147_4 +# 2148| m2148_8(unknown) = Chi : total:m2147_4, partial:m2148_7 +# 2148| m2148_9(unknown) = ^InitializeDynamicAllocation : &:r2148_6 +# 2148| r2148_10(int *) = Convert : r2148_6 +# 2149| r2149_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2149| r2149_2(glval<unsigned long>) = VariableAddress[n] : +# 2149| r2149_3(unsigned long) = Load[n] : &:r2149_2, m2147_6 +# 2149| r2149_4(unsigned long) = Constant[4] : +# 2149| r2149_5(unsigned long) = Mul : r2149_3, r2149_4 +# 2149| r2149_6(float) = Constant[1.0] : +# 2149| r2149_7(void *) = Call[operator new[]] : func:r2149_1, 0:r2149_5, 1:r2149_6 +# 2149| m2149_8(unknown) = ^CallSideEffect : ~m2148_8 +# 2149| m2149_9(unknown) = Chi : total:m2148_8, partial:m2149_8 +# 2149| m2149_10(unknown) = ^InitializeDynamicAllocation : &:r2149_7 +# 2149| r2149_11(int *) = Convert : r2149_7 +# 2150| r2150_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2150| r2150_2(glval<unsigned long>) = VariableAddress[n] : +# 2150| r2150_3(unsigned long) = Load[n] : &:r2150_2, m2147_6 +# 2150| r2150_4(unsigned long) = Constant[8] : +# 2150| r2150_5(unsigned long) = Mul : r2150_3, r2150_4 +# 2150| r2150_6(void *) = Call[operator new[]] : func:r2150_1, 0:r2150_5 +# 2150| m2150_7(unknown) = ^CallSideEffect : ~m2149_9 +# 2150| m2150_8(unknown) = Chi : total:m2149_9, partial:m2150_7 +# 2150| m2150_9(unknown) = ^InitializeDynamicAllocation : &:r2150_6 +# 2150| r2150_10(String *) = Convert : r2150_6 +# 2151| r2151_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2151| r2151_2(glval<unsigned long>) = VariableAddress[n] : +# 2151| r2151_3(unsigned long) = Load[n] : &:r2151_2, m2147_6 +# 2151| r2151_4(unsigned long) = Constant[256] : +# 2151| r2151_5(unsigned long) = Mul : r2151_3, r2151_4 +# 2151| r2151_6(align_val_t) = Constant[128] : +# 2151| r2151_7(void *) = Call[operator new[]] : func:r2151_1, 0:r2151_5, 1:r2151_6 +# 2151| m2151_8(unknown) = ^CallSideEffect : ~m2150_8 +# 2151| m2151_9(unknown) = Chi : total:m2150_8, partial:m2151_8 +# 2151| m2151_10(unknown) = ^InitializeDynamicAllocation : &:r2151_7 +# 2151| r2151_11(Overaligned *) = Convert : r2151_7 +# 2152| r2152_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2152| r2152_2(glval<unsigned long>) = VariableAddress[n] : +# 2152| r2152_3(unsigned long) = Load[n] : &:r2152_2, m2147_6 +# 2152| r2152_4(unsigned long) = Constant[1] : +# 2152| r2152_5(unsigned long) = Mul : r2152_3, r2152_4 +# 2152| r2152_6(void *) = Call[operator new[]] : func:r2152_1, 0:r2152_5 +# 2152| m2152_7(unknown) = ^CallSideEffect : ~m2151_9 +# 2152| m2152_8(unknown) = Chi : total:m2151_9, partial:m2152_7 +# 2152| m2152_9(unknown) = ^InitializeDynamicAllocation : &:r2152_6 +# 2152| r2152_10(DefaultCtorWithDefaultParam *) = Convert : r2152_6 +# 2153| r2153_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2153| r2153_2(glval<unsigned long>) = VariableAddress[n] : +# 2153| r2153_3(unsigned long) = Load[n] : &:r2153_2, m2147_6 +# 2153| r2153_4(unsigned long) = Constant[4] : +# 2153| r2153_5(unsigned long) = Mul : r2153_3, r2153_4 +# 2153| r2153_6(void *) = Call[operator new[]] : func:r2153_1, 0:r2153_5 +# 2153| m2153_7(unknown) = ^CallSideEffect : ~m2152_8 +# 2153| m2153_8(unknown) = Chi : total:m2152_8, partial:m2153_7 +# 2153| m2153_9(unknown) = ^InitializeDynamicAllocation : &:r2153_6 +# 2153| r2153_10(int *) = Convert : r2153_6 +# 2154| v2154_1(void) = NoOp : +# 2147| v2147_7(void) = ReturnVoid : +# 2147| v2147_8(void) = AliasedUse : ~m2153_8 +# 2147| v2147_9(void) = ExitFunction : + +# 2158| char* test_strtod(char*) +# 2158| Block 0 +# 2158| v2158_1(void) = EnterFunction : +# 2158| m2158_2(unknown) = AliasedDefinition : +# 2158| m2158_3(unknown) = InitializeNonLocal : +# 2158| m2158_4(unknown) = Chi : total:m2158_2, partial:m2158_3 +# 2158| r2158_5(glval<char *>) = VariableAddress[s] : +# 2158| m2158_6(char *) = InitializeParameter[s] : &:r2158_5 +# 2158| r2158_7(char *) = Load[s] : &:r2158_5, m2158_6 +# 2158| m2158_8(unknown) = InitializeIndirection[s] : &:r2158_7 +# 2159| r2159_1(glval<char *>) = VariableAddress[end] : +# 2159| m2159_2(char *) = Uninitialized[end] : &:r2159_1 +# 2160| r2160_1(glval<double>) = VariableAddress[d] : +# 2160| r2160_2(glval<unknown>) = FunctionAddress[strtod] : +# 2160| r2160_3(glval<char *>) = VariableAddress[s] : +# 2160| r2160_4(char *) = Load[s] : &:r2160_3, m2158_6 +# 2160| r2160_5(char *) = Convert : r2160_4 +# 2160| r2160_6(glval<char *>) = VariableAddress[end] : +# 2160| r2160_7(char **) = CopyValue : r2160_6 +# 2160| r2160_8(double) = Call[strtod] : func:r2160_2, 0:r2160_5, 1:r2160_7 +# 2160| v2160_9(void) = ^BufferReadSideEffect[0] : &:r2160_5, ~m2158_8 +# 2160| m2160_10(char *) = ^IndirectMayWriteSideEffect[1] : &:r2160_7 +# 2160| m2160_11(char *) = Chi : total:m2159_2, partial:m2160_10 +# 2160| m2160_12(double) = Store[d] : &:r2160_1, r2160_8 +# 2161| r2161_1(glval<char *>) = VariableAddress[#return] : +# 2161| r2161_2(glval<char *>) = VariableAddress[end] : +# 2161| r2161_3(char *) = Load[end] : &:r2161_2, m2160_11 +# 2161| m2161_4(char *) = Store[#return] : &:r2161_1, r2161_3 +# 2158| v2158_9(void) = ReturnIndirection[s] : &:r2158_7, m2158_8 +# 2158| r2158_10(glval<char *>) = VariableAddress[#return] : +# 2158| v2158_11(void) = ReturnValue : &:r2158_10, m2161_4 +# 2158| v2158_12(void) = AliasedUse : m2158_3 +# 2158| v2158_13(void) = ExitFunction : + +# 2168| void call_as_child_of_ConditionDeclExpr() +# 2168| Block 0 +# 2168| v2168_1(void) = EnterFunction : +# 2168| m2168_2(unknown) = AliasedDefinition : +# 2168| m2168_3(unknown) = InitializeNonLocal : +# 2168| m2168_4(unknown) = Chi : total:m2168_2, partial:m2168_3 +# 2169| r2169_1(glval<HasOperatorBool>) = VariableAddress[b] : +# 2169| r2169_2(HasOperatorBool) = Constant[0] : +# 2169| m2169_3(HasOperatorBool) = Store[b] : &:r2169_1, r2169_2 +# 2169| r2169_4(glval<HasOperatorBool>) = VariableAddress[b] : +# 2169| r2169_5(glval<unknown>) = FunctionAddress[operator bool] : +# 2169| r2169_6(bool) = Call[operator bool] : func:r2169_5, this:r2169_4 +# 2169| m2169_7(unknown) = ^CallSideEffect : ~m2168_4 +# 2169| m2169_8(unknown) = Chi : total:m2168_4, partial:m2169_7 +# 2169| v2169_9(void) = ^IndirectReadSideEffect[-1] : &:r2169_4, m2169_3 +# 2169| m2169_10(HasOperatorBool) = ^IndirectMayWriteSideEffect[-1] : &:r2169_4 +# 2169| m2169_11(HasOperatorBool) = Chi : total:m2169_3, partial:m2169_10 +# 2169| r2169_12(bool) = CopyValue : r2169_6 +# 2169| v2169_13(void) = ConditionalBranch : r2169_12 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2169| Block 1 +# 2169| v2169_14(void) = NoOp : #-----| Goto -> Block 2 -# 2123| Block 2 -# 2123| v2123_1(void) = NoOp : -# 2121| v2121_5(void) = ReturnVoid : -# 2121| v2121_6(void) = AliasedUse : ~m2122_8 -# 2121| v2121_7(void) = ExitFunction : +# 2170| Block 2 +# 2170| v2170_1(void) = NoOp : +# 2168| v2168_5(void) = ReturnVoid : +# 2168| v2168_6(void) = AliasedUse : ~m2169_8 +# 2168| v2168_7(void) = ExitFunction : -# 2125| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) -# 2125| Block 0 -# 2125| v2125_1(void) = EnterFunction : -# 2125| m2125_2(unknown) = AliasedDefinition : -# 2125| m2125_3(unknown) = InitializeNonLocal : -# 2125| m2125_4(unknown) = Chi : total:m2125_2, partial:m2125_3 -# 2125| r2125_5(glval<unknown>) = VariableAddress[#this] : -# 2125| m2125_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2125_5 -# 2125| r2125_7(glval<ClassWithDestructor>) = Load[#this] : &:r2125_5, m2125_6 -# 2125| m2125_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2125_7 +# 2172| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) +# 2172| Block 0 +# 2172| v2172_1(void) = EnterFunction : +# 2172| m2172_2(unknown) = AliasedDefinition : +# 2172| m2172_3(unknown) = InitializeNonLocal : +# 2172| m2172_4(unknown) = Chi : total:m2172_2, partial:m2172_3 +# 2172| r2172_5(glval<unknown>) = VariableAddress[#this] : +# 2172| m2172_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2172_5 +# 2172| r2172_7(glval<ClassWithDestructor>) = Load[#this] : &:r2172_5, m2172_6 +# 2172| m2172_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2172_7 #-----| r0_1(glval<ClassWithDestructor &>) = VariableAddress[(unnamed parameter 0)] : #-----| m0_2(ClassWithDestructor &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2 #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2125| r2125_9(glval<char *>) = FieldAddress[x] : m2125_6 -# 2125| r2125_10(glval<ClassWithDestructor &>) = VariableAddress[(unnamed parameter 0)] : -# 2125| r2125_11(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2125_10, m0_2 -# 2125| r2125_12(glval<ClassWithDestructor>) = CopyValue : r2125_11 -# 2125| r2125_13(glval<char *>) = FieldAddress[x] : r2125_12 -# 2125| r2125_14(char *) = Load[?] : &:r2125_13, ~m0_4 -# 2125| m2125_15(char *) = Store[?] : &:r2125_9, r2125_14 -# 2125| m2125_16(unknown) = Chi : total:m2125_8, partial:m2125_15 -# 2125| v2125_17(void) = NoOp : -# 2125| v2125_18(void) = ReturnIndirection[#this] : &:r2125_7, m2125_16 +# 2172| r2172_9(glval<char *>) = FieldAddress[x] : m2172_6 +# 2172| r2172_10(glval<ClassWithDestructor &>) = VariableAddress[(unnamed parameter 0)] : +# 2172| r2172_11(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2172_10, m0_2 +# 2172| r2172_12(glval<ClassWithDestructor>) = CopyValue : r2172_11 +# 2172| r2172_13(glval<char *>) = FieldAddress[x] : r2172_12 +# 2172| r2172_14(char *) = Load[?] : &:r2172_13, ~m0_4 +# 2172| m2172_15(char *) = Store[?] : &:r2172_9, r2172_14 +# 2172| m2172_16(unknown) = Chi : total:m2172_8, partial:m2172_15 +# 2172| v2172_17(void) = NoOp : +# 2172| v2172_18(void) = ReturnIndirection[#this] : &:r2172_7, m2172_16 #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4 -# 2125| v2125_19(void) = ReturnVoid : -# 2125| v2125_20(void) = AliasedUse : m2125_3 -# 2125| v2125_21(void) = ExitFunction : +# 2172| v2172_19(void) = ReturnVoid : +# 2172| v2172_20(void) = AliasedUse : m2172_3 +# 2172| v2172_21(void) = ExitFunction : -# 2128| void ClassWithDestructor::ClassWithDestructor() -# 2128| Block 0 -# 2128| v2128_1(void) = EnterFunction : -# 2128| m2128_2(unknown) = AliasedDefinition : -# 2128| m2128_3(unknown) = InitializeNonLocal : -# 2128| m2128_4(unknown) = Chi : total:m2128_2, partial:m2128_3 -# 2128| r2128_5(glval<unknown>) = VariableAddress[#this] : -# 2128| m2128_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2128_5 -# 2128| r2128_7(glval<ClassWithDestructor>) = Load[#this] : &:r2128_5, m2128_6 -# 2128| m2128_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2128_7 -# 2128| r2128_9(glval<unknown>) = FunctionAddress[operator new] : -# 2128| r2128_10(unsigned long) = Constant[1] : -# 2128| r2128_11(void *) = Call[operator new] : func:r2128_9, 0:r2128_10 -# 2128| m2128_12(unknown) = ^CallSideEffect : ~m2128_4 -# 2128| m2128_13(unknown) = Chi : total:m2128_4, partial:m2128_12 -# 2128| m2128_14(unknown) = ^InitializeDynamicAllocation : &:r2128_11 -# 2128| r2128_15(char *) = Convert : r2128_11 -# 2128| r2128_16(glval<unknown>) = VariableAddress[#this] : -# 2128| r2128_17(ClassWithDestructor *) = Load[#this] : &:r2128_16, m2128_6 -# 2128| r2128_18(glval<char *>) = FieldAddress[x] : r2128_17 -# 2128| m2128_19(char *) = Store[?] : &:r2128_18, r2128_15 -# 2128| m2128_20(unknown) = Chi : total:m2128_8, partial:m2128_19 -# 2128| v2128_21(void) = NoOp : -# 2128| v2128_22(void) = ReturnIndirection[#this] : &:r2128_7, m2128_20 -# 2128| v2128_23(void) = ReturnVoid : -# 2128| v2128_24(void) = AliasedUse : ~m2128_13 -# 2128| v2128_25(void) = ExitFunction : +# 2175| void ClassWithDestructor::ClassWithDestructor() +# 2175| Block 0 +# 2175| v2175_1(void) = EnterFunction : +# 2175| m2175_2(unknown) = AliasedDefinition : +# 2175| m2175_3(unknown) = InitializeNonLocal : +# 2175| m2175_4(unknown) = Chi : total:m2175_2, partial:m2175_3 +# 2175| r2175_5(glval<unknown>) = VariableAddress[#this] : +# 2175| m2175_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2175_5 +# 2175| r2175_7(glval<ClassWithDestructor>) = Load[#this] : &:r2175_5, m2175_6 +# 2175| m2175_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2175_7 +# 2175| r2175_9(glval<unknown>) = FunctionAddress[operator new] : +# 2175| r2175_10(unsigned long) = Constant[1] : +# 2175| r2175_11(void *) = Call[operator new] : func:r2175_9, 0:r2175_10 +# 2175| m2175_12(unknown) = ^CallSideEffect : ~m2175_4 +# 2175| m2175_13(unknown) = Chi : total:m2175_4, partial:m2175_12 +# 2175| m2175_14(unknown) = ^InitializeDynamicAllocation : &:r2175_11 +# 2175| r2175_15(char *) = Convert : r2175_11 +# 2175| r2175_16(glval<unknown>) = VariableAddress[#this] : +# 2175| r2175_17(ClassWithDestructor *) = Load[#this] : &:r2175_16, m2175_6 +# 2175| r2175_18(glval<char *>) = FieldAddress[x] : r2175_17 +# 2175| m2175_19(char *) = Store[?] : &:r2175_18, r2175_15 +# 2175| m2175_20(unknown) = Chi : total:m2175_8, partial:m2175_19 +# 2175| v2175_21(void) = NoOp : +# 2175| v2175_22(void) = ReturnIndirection[#this] : &:r2175_7, m2175_20 +# 2175| v2175_23(void) = ReturnVoid : +# 2175| v2175_24(void) = AliasedUse : ~m2175_13 +# 2175| v2175_25(void) = ExitFunction : -# 2129| void ClassWithDestructor::~ClassWithDestructor() -# 2129| Block 0 -# 2129| v2129_1(void) = EnterFunction : -# 2129| m2129_2(unknown) = AliasedDefinition : -# 2129| m2129_3(unknown) = InitializeNonLocal : -# 2129| m2129_4(unknown) = Chi : total:m2129_2, partial:m2129_3 -# 2129| r2129_5(glval<unknown>) = VariableAddress[#this] : -# 2129| m2129_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2129_5 -# 2129| r2129_7(glval<ClassWithDestructor>) = Load[#this] : &:r2129_5, m2129_6 -# 2129| m2129_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2129_7 -# 2129| r2129_9(glval<unknown>) = FunctionAddress[operator delete] : -# 2129| r2129_10(glval<unknown>) = VariableAddress[#this] : -# 2129| r2129_11(ClassWithDestructor *) = Load[#this] : &:r2129_10, m2129_6 -# 2129| r2129_12(glval<char *>) = FieldAddress[x] : r2129_11 -# 2129| r2129_13(char *) = Load[?] : &:r2129_12, ~m2129_8 -# 2129| v2129_14(void) = Call[operator delete] : func:r2129_9, 0:r2129_13 -# 2129| m2129_15(unknown) = ^CallSideEffect : ~m2129_4 -# 2129| m2129_16(unknown) = Chi : total:m2129_4, partial:m2129_15 -# 2129| v2129_17(void) = NoOp : -# 2129| v2129_18(void) = ReturnIndirection[#this] : &:r2129_7, m2129_8 -# 2129| v2129_19(void) = ReturnVoid : -# 2129| v2129_20(void) = AliasedUse : ~m2129_16 -# 2129| v2129_21(void) = ExitFunction : +# 2176| void ClassWithDestructor::~ClassWithDestructor() +# 2176| Block 0 +# 2176| v2176_1(void) = EnterFunction : +# 2176| m2176_2(unknown) = AliasedDefinition : +# 2176| m2176_3(unknown) = InitializeNonLocal : +# 2176| m2176_4(unknown) = Chi : total:m2176_2, partial:m2176_3 +# 2176| r2176_5(glval<unknown>) = VariableAddress[#this] : +# 2176| m2176_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2176_5 +# 2176| r2176_7(glval<ClassWithDestructor>) = Load[#this] : &:r2176_5, m2176_6 +# 2176| m2176_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2176_7 +# 2176| r2176_9(glval<unknown>) = FunctionAddress[operator delete] : +# 2176| r2176_10(glval<unknown>) = VariableAddress[#this] : +# 2176| r2176_11(ClassWithDestructor *) = Load[#this] : &:r2176_10, m2176_6 +# 2176| r2176_12(glval<char *>) = FieldAddress[x] : r2176_11 +# 2176| r2176_13(char *) = Load[?] : &:r2176_12, ~m2176_8 +# 2176| v2176_14(void) = Call[operator delete] : func:r2176_9, 0:r2176_13 +# 2176| m2176_15(unknown) = ^CallSideEffect : ~m2176_4 +# 2176| m2176_16(unknown) = Chi : total:m2176_4, partial:m2176_15 +# 2176| v2176_17(void) = NoOp : +# 2176| v2176_18(void) = ReturnIndirection[#this] : &:r2176_7, m2176_8 +# 2176| v2176_19(void) = ReturnVoid : +# 2176| v2176_20(void) = AliasedUse : ~m2176_16 +# 2176| v2176_21(void) = ExitFunction : -# 2131| void ClassWithDestructor::set_x(char) -# 2131| Block 0 -# 2131| v2131_1(void) = EnterFunction : -# 2131| m2131_2(unknown) = AliasedDefinition : -# 2131| m2131_3(unknown) = InitializeNonLocal : -# 2131| m2131_4(unknown) = Chi : total:m2131_2, partial:m2131_3 -# 2131| r2131_5(glval<unknown>) = VariableAddress[#this] : -# 2131| m2131_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2131_5 -# 2131| r2131_7(glval<ClassWithDestructor>) = Load[#this] : &:r2131_5, m2131_6 -# 2131| m2131_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2131_7 -# 2131| r2131_9(glval<char>) = VariableAddress[y] : -# 2131| m2131_10(char) = InitializeParameter[y] : &:r2131_9 -# 2131| r2131_11(glval<char>) = VariableAddress[y] : -# 2131| r2131_12(char) = Load[y] : &:r2131_11, m2131_10 -# 2131| r2131_13(glval<unknown>) = VariableAddress[#this] : -# 2131| r2131_14(ClassWithDestructor *) = Load[#this] : &:r2131_13, m2131_6 -# 2131| r2131_15(glval<char *>) = FieldAddress[x] : r2131_14 -# 2131| r2131_16(char *) = Load[?] : &:r2131_15, ~m2131_8 -# 2131| r2131_17(glval<char>) = CopyValue : r2131_16 -# 2131| m2131_18(char) = Store[?] : &:r2131_17, r2131_12 -# 2131| m2131_19(unknown) = Chi : total:m2131_4, partial:m2131_18 -# 2131| v2131_20(void) = NoOp : -# 2131| v2131_21(void) = ReturnIndirection[#this] : &:r2131_7, m2131_8 -# 2131| v2131_22(void) = ReturnVoid : -# 2131| v2131_23(void) = AliasedUse : ~m2131_19 -# 2131| v2131_24(void) = ExitFunction : +# 2178| void ClassWithDestructor::set_x(char) +# 2178| Block 0 +# 2178| v2178_1(void) = EnterFunction : +# 2178| m2178_2(unknown) = AliasedDefinition : +# 2178| m2178_3(unknown) = InitializeNonLocal : +# 2178| m2178_4(unknown) = Chi : total:m2178_2, partial:m2178_3 +# 2178| r2178_5(glval<unknown>) = VariableAddress[#this] : +# 2178| m2178_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2178_5 +# 2178| r2178_7(glval<ClassWithDestructor>) = Load[#this] : &:r2178_5, m2178_6 +# 2178| m2178_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2178_7 +# 2178| r2178_9(glval<char>) = VariableAddress[y] : +# 2178| m2178_10(char) = InitializeParameter[y] : &:r2178_9 +# 2178| r2178_11(glval<char>) = VariableAddress[y] : +# 2178| r2178_12(char) = Load[y] : &:r2178_11, m2178_10 +# 2178| r2178_13(glval<unknown>) = VariableAddress[#this] : +# 2178| r2178_14(ClassWithDestructor *) = Load[#this] : &:r2178_13, m2178_6 +# 2178| r2178_15(glval<char *>) = FieldAddress[x] : r2178_14 +# 2178| r2178_16(char *) = Load[?] : &:r2178_15, ~m2178_8 +# 2178| r2178_17(glval<char>) = CopyValue : r2178_16 +# 2178| m2178_18(char) = Store[?] : &:r2178_17, r2178_12 +# 2178| m2178_19(unknown) = Chi : total:m2178_4, partial:m2178_18 +# 2178| v2178_20(void) = NoOp : +# 2178| v2178_21(void) = ReturnIndirection[#this] : &:r2178_7, m2178_8 +# 2178| v2178_22(void) = ReturnVoid : +# 2178| v2178_23(void) = AliasedUse : ~m2178_19 +# 2178| v2178_24(void) = ExitFunction : -# 2132| char ClassWithDestructor::get_x() -# 2132| Block 0 -# 2132| v2132_1(void) = EnterFunction : -# 2132| m2132_2(unknown) = AliasedDefinition : -# 2132| m2132_3(unknown) = InitializeNonLocal : -# 2132| m2132_4(unknown) = Chi : total:m2132_2, partial:m2132_3 -# 2132| r2132_5(glval<unknown>) = VariableAddress[#this] : -# 2132| m2132_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2132_5 -# 2132| r2132_7(glval<ClassWithDestructor>) = Load[#this] : &:r2132_5, m2132_6 -# 2132| m2132_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2132_7 -# 2132| r2132_9(glval<char>) = VariableAddress[#return] : -# 2132| r2132_10(glval<unknown>) = VariableAddress[#this] : -# 2132| r2132_11(ClassWithDestructor *) = Load[#this] : &:r2132_10, m2132_6 -# 2132| r2132_12(glval<char *>) = FieldAddress[x] : r2132_11 -# 2132| r2132_13(char *) = Load[?] : &:r2132_12, ~m2132_8 -# 2132| r2132_14(char) = Load[?] : &:r2132_13, ~m2132_4 -# 2132| m2132_15(char) = Store[#return] : &:r2132_9, r2132_14 -# 2132| v2132_16(void) = ReturnIndirection[#this] : &:r2132_7, m2132_8 -# 2132| r2132_17(glval<char>) = VariableAddress[#return] : -# 2132| v2132_18(void) = ReturnValue : &:r2132_17, m2132_15 -# 2132| v2132_19(void) = AliasedUse : m2132_3 -# 2132| v2132_20(void) = ExitFunction : - -# 2135| bool initialization_with_destructor_bool -# 2135| Block 0 -# 2135| v2135_1(void) = EnterFunction : -# 2135| m2135_2(unknown) = AliasedDefinition : -# 2135| r2135_3(glval<bool>) = VariableAddress[initialization_with_destructor_bool] : -# 2135| r2135_4(bool) = Constant[1] : -# 2135| m2135_5(bool) = Store[initialization_with_destructor_bool] : &:r2135_3, r2135_4 -# 2135| m2135_6(unknown) = Chi : total:m2135_2, partial:m2135_5 -# 2135| v2135_7(void) = ReturnVoid : -# 2135| v2135_8(void) = AliasedUse : ~m2135_6 -# 2135| v2135_9(void) = ExitFunction : - -# 2137| void initialization_with_destructor(bool, char) -# 2137| Block 0 -# 2137| v2137_1(void) = EnterFunction : -# 2137| m2137_2(unknown) = AliasedDefinition : -# 2137| m2137_3(unknown) = InitializeNonLocal : -# 2137| m2137_4(unknown) = Chi : total:m2137_2, partial:m2137_3 -# 2137| r2137_5(glval<bool>) = VariableAddress[b] : -# 2137| m2137_6(bool) = InitializeParameter[b] : &:r2137_5 -# 2137| r2137_7(glval<char>) = VariableAddress[c] : -# 2137| m2137_8(char) = InitializeParameter[c] : &:r2137_7 -# 2138| r2138_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2138| m2138_2(ClassWithDestructor) = Uninitialized[x] : &:r2138_1 -# 2138| r2138_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2138| v2138_4(void) = Call[ClassWithDestructor] : func:r2138_3, this:r2138_1 -# 2138| m2138_5(unknown) = ^CallSideEffect : ~m2137_4 -# 2138| m2138_6(unknown) = Chi : total:m2137_4, partial:m2138_5 -# 2138| m2138_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2138_1 -# 2138| m2138_8(ClassWithDestructor) = Chi : total:m2138_2, partial:m2138_7 -# 2138| r2138_9(glval<bool>) = VariableAddress[b] : -# 2138| r2138_10(bool) = Load[b] : &:r2138_9, m2137_6 -# 2138| v2138_11(void) = ConditionalBranch : r2138_10 -#-----| False -> Block 3 -#-----| True -> Block 2 - -# 2137| Block 1 -# 2137| m2137_9(unknown) = Phi : from 13:~m2172_5, from 19:~m2172_13, from 23:~m2172_22 -# 2137| v2137_10(void) = ReturnVoid : -# 2137| v2137_11(void) = AliasedUse : ~m2137_9 -# 2137| v2137_12(void) = ExitFunction : - -# 2139| Block 2 -# 2139| r2139_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2139| r2139_2(glval<unknown>) = FunctionAddress[set_x] : -# 2139| r2139_3(char) = Constant[97] : -# 2139| v2139_4(void) = Call[set_x] : func:r2139_2, this:r2139_1, 0:r2139_3 -# 2139| m2139_5(unknown) = ^CallSideEffect : ~m2138_6 -# 2139| m2139_6(unknown) = Chi : total:m2138_6, partial:m2139_5 -# 2139| v2139_7(void) = ^IndirectReadSideEffect[-1] : &:r2139_1, m2138_8 -# 2139| m2139_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2139_1 -# 2139| m2139_9(ClassWithDestructor) = Chi : total:m2138_8, partial:m2139_8 -# 2139| r2139_10(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2139| r2139_11(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2139| v2139_12(void) = Call[~ClassWithDestructor] : func:r2139_11, this:r2139_10 -# 2139| m2139_13(unknown) = ^CallSideEffect : ~m2139_6 -# 2139| m2139_14(unknown) = Chi : total:m2139_6, partial:m2139_13 -# 2139| v2139_15(void) = ^IndirectReadSideEffect[-1] : &:r2139_10, m2139_9 -# 2139| m2139_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2139_10 -# 2139| m2139_17(ClassWithDestructor) = Chi : total:m2139_9, partial:m2139_16 -#-----| Goto -> Block 3 - -# 2141| Block 3 -# 2141| m2141_1(unknown) = Phi : from 0:~m2138_6, from 2:~m2139_14 -# 2141| r2141_2(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2141| m2141_3(ClassWithDestructor) = Uninitialized[x] : &:r2141_2 -# 2141| r2141_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2141| v2141_5(void) = Call[ClassWithDestructor] : func:r2141_4, this:r2141_2 -# 2141| m2141_6(unknown) = ^CallSideEffect : ~m2141_1 -# 2141| m2141_7(unknown) = Chi : total:m2141_1, partial:m2141_6 -# 2141| m2141_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2141_2 -# 2141| m2141_9(ClassWithDestructor) = Chi : total:m2141_3, partial:m2141_8 -# 2141| r2141_10(bool) = Constant[1] : -# 2141| v2141_11(void) = ConditionalBranch : r2141_10 -#-----| False -> Block 24 -#-----| True -> Block 4 - -# 2142| Block 4 -# 2142| r2142_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2142| r2142_2(glval<unknown>) = FunctionAddress[set_x] : -# 2142| r2142_3(char) = Constant[97] : -# 2142| v2142_4(void) = Call[set_x] : func:r2142_2, this:r2142_1, 0:r2142_3 -# 2142| m2142_5(unknown) = ^CallSideEffect : ~m2141_7 -# 2142| m2142_6(unknown) = Chi : total:m2141_7, partial:m2142_5 -# 2142| v2142_7(void) = ^IndirectReadSideEffect[-1] : &:r2142_1, m2141_9 -# 2142| m2142_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2142_1 -# 2142| m2142_9(ClassWithDestructor) = Chi : total:m2141_9, partial:m2142_8 -# 2144| r2144_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2144| m2144_2(ClassWithDestructor) = Uninitialized[x] : &:r2144_1 -# 2144| r2144_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2144| v2144_4(void) = Call[ClassWithDestructor] : func:r2144_3, this:r2144_1 -# 2144| m2144_5(unknown) = ^CallSideEffect : ~m2142_6 -# 2144| m2144_6(unknown) = Chi : total:m2142_6, partial:m2144_5 -# 2144| m2144_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2144_1 -# 2144| m2144_8(ClassWithDestructor) = Chi : total:m2144_2, partial:m2144_7 -# 2144| r2144_9(glval<char>) = VariableAddress[c] : -# 2144| r2144_10(char) = Load[c] : &:r2144_9, m2137_8 -# 2144| r2144_11(int) = Convert : r2144_10 -# 2144| v2144_12(void) = Switch : r2144_11 -#-----| Case[97] -> Block 5 -#-----| Default -> Block 6 - -# 2145| Block 5 -# 2145| v2145_1(void) = NoOp : -# 2146| r2146_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2146| r2146_2(glval<unknown>) = FunctionAddress[set_x] : -# 2146| r2146_3(char) = Constant[97] : -# 2146| v2146_4(void) = Call[set_x] : func:r2146_2, this:r2146_1, 0:r2146_3 -# 2146| m2146_5(unknown) = ^CallSideEffect : ~m2144_6 -# 2146| m2146_6(unknown) = Chi : total:m2144_6, partial:m2146_5 -# 2146| v2146_7(void) = ^IndirectReadSideEffect[-1] : &:r2146_1, m2144_8 -# 2146| m2146_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2146_1 -# 2146| m2146_9(ClassWithDestructor) = Chi : total:m2144_8, partial:m2146_8 -# 2147| v2147_1(void) = NoOp : -#-----| Goto -> Block 7 - -# 2148| Block 6 -# 2148| v2148_1(void) = NoOp : -# 2149| r2149_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2149| r2149_2(glval<unknown>) = FunctionAddress[set_x] : -# 2149| r2149_3(char) = Constant[98] : -# 2149| v2149_4(void) = Call[set_x] : func:r2149_2, this:r2149_1, 0:r2149_3 -# 2149| m2149_5(unknown) = ^CallSideEffect : ~m2144_6 -# 2149| m2149_6(unknown) = Chi : total:m2144_6, partial:m2149_5 -# 2149| v2149_7(void) = ^IndirectReadSideEffect[-1] : &:r2149_1, m2144_8 -# 2149| m2149_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2149_1 -# 2149| m2149_9(ClassWithDestructor) = Chi : total:m2144_8, partial:m2149_8 -# 2150| v2150_1(void) = NoOp : -#-----| Goto -> Block 7 - -# 2151| Block 7 -# 2151| m2151_1(unknown) = Phi : from 5:~m2146_6, from 6:~m2149_6 -# 2151| v2151_2(void) = NoOp : -# 2153| r2153_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2153| m2153_2(ClassWithDestructor) = Uninitialized[x] : &:r2153_1 -# 2153| r2153_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2153| v2153_4(void) = Call[ClassWithDestructor] : func:r2153_3, this:r2153_1 -# 2153| m2153_5(unknown) = ^CallSideEffect : ~m2151_1 -# 2153| m2153_6(unknown) = Chi : total:m2151_1, partial:m2153_5 -# 2153| m2153_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2153_1 -# 2153| m2153_8(ClassWithDestructor) = Chi : total:m2153_2, partial:m2153_7 -# 2154| r2154_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2154| m2154_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2154_1 -# 2154| r2154_3(glval<unknown>) = FunctionAddress[vector] : -# 2154| r2154_4(glval<ClassWithDestructor>) = VariableAddress[#temp2154:40] : -# 2154| r2154_5(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2154| r2154_6(ClassWithDestructor) = Load[x] : &:r2154_5, m2153_8 -# 2154| m2154_7(ClassWithDestructor) = Store[#temp2154:40] : &:r2154_4, r2154_6 -# 2154| r2154_8(ClassWithDestructor) = Load[#temp2154:40] : &:r2154_4, m2154_7 -# 2154| v2154_9(void) = Call[vector] : func:r2154_3, this:r2154_1, 0:r2154_8 -# 2154| m2154_10(unknown) = ^CallSideEffect : ~m2153_6 -# 2154| m2154_11(unknown) = Chi : total:m2153_6, partial:m2154_10 -# 2154| m2154_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2154_1 -# 2154| m2154_13(vector<ClassWithDestructor>) = Chi : total:m2154_2, partial:m2154_12 -# 2154| r2154_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2154| r2154_15(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2154| r2154_16(vector<ClassWithDestructor> &) = CopyValue : r2154_15 -# 2154| m2154_17(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2154_14, r2154_16 -# 2154| r2154_18(glval<iterator>) = VariableAddress[(__begin)] : -# 2154| r2154_19(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2154| r2154_20(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2154_19, m2154_17 -#-----| r0_1(glval<vector<ClassWithDestructor>>) = CopyValue : r2154_20 -#-----| r0_2(glval<vector<ClassWithDestructor>>) = Convert : r0_1 -# 2154| r2154_21(glval<unknown>) = FunctionAddress[begin] : -# 2154| r2154_22(iterator) = Call[begin] : func:r2154_21, this:r0_2 -# 2154| m2154_23(unknown) = ^CallSideEffect : ~m2154_11 -# 2154| m2154_24(unknown) = Chi : total:m2154_11, partial:m2154_23 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2154_13 -# 2154| m2154_25(iterator) = Store[(__begin)] : &:r2154_18, r2154_22 -# 2154| r2154_26(glval<iterator>) = VariableAddress[(__end)] : -# 2154| r2154_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2154| r2154_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2154_27, m2154_17 -#-----| r0_4(glval<vector<ClassWithDestructor>>) = CopyValue : r2154_28 -#-----| r0_5(glval<vector<ClassWithDestructor>>) = Convert : r0_4 -# 2154| r2154_29(glval<unknown>) = FunctionAddress[end] : -# 2154| r2154_30(iterator) = Call[end] : func:r2154_29, this:r0_5 -# 2154| m2154_31(unknown) = ^CallSideEffect : ~m2154_24 -# 2154| m2154_32(unknown) = Chi : total:m2154_24, partial:m2154_31 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2154_13 -# 2154| m2154_33(iterator) = Store[(__end)] : &:r2154_26, r2154_30 -#-----| Goto -> Block 8 - -# 2154| Block 8 -# 2154| m2154_34(iterator) = Phi : from 7:m2154_25, from 9:m2154_67 -# 2154| m2154_35(unknown) = Phi : from 7:~m2154_32, from 9:~m2154_64 -# 2154| r2154_36(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator>) = Convert : r2154_36 -# 2154| r2154_37(glval<unknown>) = FunctionAddress[operator!=] : -# 2154| r2154_38(glval<iterator>) = VariableAddress[(__end)] : -# 2154| r2154_39(iterator) = Load[(__end)] : &:r2154_38, m2154_33 -# 2154| r2154_40(bool) = Call[operator!=] : func:r2154_37, this:r0_7, 0:r2154_39 -# 2154| m2154_41(unknown) = ^CallSideEffect : ~m2154_35 -# 2154| m2154_42(unknown) = Chi : total:m2154_35, partial:m2154_41 -#-----| v0_8(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2154_34 -# 2154| v2154_43(void) = ConditionalBranch : r2154_40 -#-----| False -> Block 10 -#-----| True -> Block 9 - -# 2154| Block 9 -# 2154| r2154_44(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2154| r2154_45(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_9(glval<iterator>) = Convert : r2154_45 -# 2154| r2154_46(glval<unknown>) = FunctionAddress[operator*] : -# 2154| r2154_47(ClassWithDestructor &) = Call[operator*] : func:r2154_46, this:r0_9 -# 2154| m2154_48(unknown) = ^CallSideEffect : ~m2154_42 -# 2154| m2154_49(unknown) = Chi : total:m2154_42, partial:m2154_48 -#-----| v0_10(void) = ^IndirectReadSideEffect[-1] : &:r0_9, m2154_34 -# 2154| r2154_50(ClassWithDestructor) = Load[?] : &:r2154_47, ~m2154_49 -# 2154| m2154_51(ClassWithDestructor) = Store[y] : &:r2154_44, r2154_50 -# 2155| r2155_1(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2155| r2155_2(glval<unknown>) = FunctionAddress[set_x] : -# 2155| r2155_3(char) = Constant[97] : -# 2155| v2155_4(void) = Call[set_x] : func:r2155_2, this:r2155_1, 0:r2155_3 -# 2155| m2155_5(unknown) = ^CallSideEffect : ~m2154_49 -# 2155| m2155_6(unknown) = Chi : total:m2154_49, partial:m2155_5 -# 2155| v2155_7(void) = ^IndirectReadSideEffect[-1] : &:r2155_1, m2154_51 -# 2155| m2155_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2155_1 -# 2155| m2155_9(ClassWithDestructor) = Chi : total:m2154_51, partial:m2155_8 -# 2154| r2154_52(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2154| r2154_53(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2154| v2154_54(void) = Call[~ClassWithDestructor] : func:r2154_53, this:r2154_52 -# 2154| m2154_55(unknown) = ^CallSideEffect : ~m2155_6 -# 2154| m2154_56(unknown) = Chi : total:m2155_6, partial:m2154_55 -# 2154| v2154_57(void) = ^IndirectReadSideEffect[-1] : &:r2154_52, m2155_9 -# 2154| m2154_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2154_52 -# 2154| m2154_59(ClassWithDestructor) = Chi : total:m2155_9, partial:m2154_58 -# 2154| r2154_60(glval<iterator>) = VariableAddress[(__begin)] : -# 2154| r2154_61(glval<unknown>) = FunctionAddress[operator++] : -# 2154| r2154_62(iterator &) = Call[operator++] : func:r2154_61, this:r2154_60 -# 2154| m2154_63(unknown) = ^CallSideEffect : ~m2154_56 -# 2154| m2154_64(unknown) = Chi : total:m2154_56, partial:m2154_63 -# 2154| v2154_65(void) = ^IndirectReadSideEffect[-1] : &:r2154_60, m2154_34 -# 2154| m2154_66(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2154_60 -# 2154| m2154_67(iterator) = Chi : total:m2154_34, partial:m2154_66 -# 2154| r2154_68(glval<iterator>) = CopyValue : r2154_62 -#-----| Goto (back edge) -> Block 8 - -# 2157| Block 10 -# 2157| r2157_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2157| m2157_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2157_1 -# 2157| r2157_3(glval<unknown>) = FunctionAddress[vector] : -# 2157| r2157_4(glval<ClassWithDestructor>) = VariableAddress[#temp2157:40] : -# 2157| r2157_5(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2157| r2157_6(ClassWithDestructor) = Load[x] : &:r2157_5, m2153_8 -# 2157| m2157_7(ClassWithDestructor) = Store[#temp2157:40] : &:r2157_4, r2157_6 -# 2157| r2157_8(ClassWithDestructor) = Load[#temp2157:40] : &:r2157_4, m2157_7 -# 2157| v2157_9(void) = Call[vector] : func:r2157_3, this:r2157_1, 0:r2157_8 -# 2157| m2157_10(unknown) = ^CallSideEffect : ~m2154_42 -# 2157| m2157_11(unknown) = Chi : total:m2154_42, partial:m2157_10 -# 2157| m2157_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2157_1 -# 2157| m2157_13(vector<ClassWithDestructor>) = Chi : total:m2157_2, partial:m2157_12 -# 2157| r2157_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2157| r2157_15(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2157| r2157_16(vector<ClassWithDestructor> &) = CopyValue : r2157_15 -# 2157| m2157_17(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2157_14, r2157_16 -# 2157| r2157_18(glval<iterator>) = VariableAddress[(__begin)] : -# 2157| r2157_19(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2157| r2157_20(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2157_19, m2157_17 -#-----| r0_11(glval<vector<ClassWithDestructor>>) = CopyValue : r2157_20 -#-----| r0_12(glval<vector<ClassWithDestructor>>) = Convert : r0_11 -# 2157| r2157_21(glval<unknown>) = FunctionAddress[begin] : -# 2157| r2157_22(iterator) = Call[begin] : func:r2157_21, this:r0_12 -# 2157| m2157_23(unknown) = ^CallSideEffect : ~m2157_11 -# 2157| m2157_24(unknown) = Chi : total:m2157_11, partial:m2157_23 -#-----| v0_13(void) = ^IndirectReadSideEffect[-1] : &:r0_12, m2157_13 -# 2157| m2157_25(iterator) = Store[(__begin)] : &:r2157_18, r2157_22 -# 2157| r2157_26(glval<iterator>) = VariableAddress[(__end)] : -# 2157| r2157_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2157| r2157_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2157_27, m2157_17 -#-----| r0_14(glval<vector<ClassWithDestructor>>) = CopyValue : r2157_28 -#-----| r0_15(glval<vector<ClassWithDestructor>>) = Convert : r0_14 -# 2157| r2157_29(glval<unknown>) = FunctionAddress[end] : -# 2157| r2157_30(iterator) = Call[end] : func:r2157_29, this:r0_15 -# 2157| m2157_31(unknown) = ^CallSideEffect : ~m2157_24 -# 2157| m2157_32(unknown) = Chi : total:m2157_24, partial:m2157_31 -#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m2157_13 -# 2157| m2157_33(iterator) = Store[(__end)] : &:r2157_26, r2157_30 -#-----| Goto -> Block 11 - -# 2157| Block 11 -# 2157| m2157_34(iterator) = Phi : from 10:m2157_25, from 14:m2157_83 -# 2157| m2157_35(unknown) = Phi : from 10:~m2157_32, from 14:~m2157_80 -# 2157| r2157_36(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_17(glval<iterator>) = Convert : r2157_36 -# 2157| r2157_37(glval<unknown>) = FunctionAddress[operator!=] : -# 2157| r2157_38(glval<iterator>) = VariableAddress[(__end)] : -# 2157| r2157_39(iterator) = Load[(__end)] : &:r2157_38, m2157_33 -# 2157| r2157_40(bool) = Call[operator!=] : func:r2157_37, this:r0_17, 0:r2157_39 -# 2157| m2157_41(unknown) = ^CallSideEffect : ~m2157_35 -# 2157| m2157_42(unknown) = Chi : total:m2157_35, partial:m2157_41 -#-----| v0_18(void) = ^IndirectReadSideEffect[-1] : &:r0_17, m2157_34 -# 2157| v2157_43(void) = ConditionalBranch : r2157_40 -#-----| False -> Block 15 -#-----| True -> Block 12 - -# 2157| Block 12 -# 2157| r2157_44(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2157| r2157_45(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_19(glval<iterator>) = Convert : r2157_45 -# 2157| r2157_46(glval<unknown>) = FunctionAddress[operator*] : -# 2157| r2157_47(ClassWithDestructor &) = Call[operator*] : func:r2157_46, this:r0_19 -# 2157| m2157_48(unknown) = ^CallSideEffect : ~m2157_42 -# 2157| m2157_49(unknown) = Chi : total:m2157_42, partial:m2157_48 -#-----| v0_20(void) = ^IndirectReadSideEffect[-1] : &:r0_19, m2157_34 -# 2157| r2157_50(ClassWithDestructor) = Load[?] : &:r2157_47, ~m2157_49 -# 2157| m2157_51(ClassWithDestructor) = Store[y] : &:r2157_44, r2157_50 -# 2158| r2158_1(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2158| r2158_2(glval<unknown>) = FunctionAddress[set_x] : -# 2158| r2158_3(char) = Constant[97] : -# 2158| v2158_4(void) = Call[set_x] : func:r2158_2, this:r2158_1, 0:r2158_3 -# 2158| m2158_5(unknown) = ^CallSideEffect : ~m2157_49 -# 2158| m2158_6(unknown) = Chi : total:m2157_49, partial:m2158_5 -# 2158| v2158_7(void) = ^IndirectReadSideEffect[-1] : &:r2158_1, m2157_51 -# 2158| m2158_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2158_1 -# 2158| m2158_9(ClassWithDestructor) = Chi : total:m2157_51, partial:m2158_8 -# 2159| r2159_1(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2159| r2159_2(glval<unknown>) = FunctionAddress[get_x] : -# 2159| r2159_3(char) = Call[get_x] : func:r2159_2, this:r2159_1 -# 2159| m2159_4(unknown) = ^CallSideEffect : ~m2158_6 -# 2159| m2159_5(unknown) = Chi : total:m2158_6, partial:m2159_4 -# 2159| v2159_6(void) = ^IndirectReadSideEffect[-1] : &:r2159_1, m2158_9 -# 2159| m2159_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2159_1 -# 2159| m2159_8(ClassWithDestructor) = Chi : total:m2158_9, partial:m2159_7 -# 2159| r2159_9(int) = Convert : r2159_3 -# 2159| r2159_10(int) = Constant[98] : -# 2159| r2159_11(bool) = CompareEQ : r2159_9, r2159_10 -# 2159| v2159_12(void) = ConditionalBranch : r2159_11 -#-----| False -> Block 14 -#-----| True -> Block 13 - -# 2160| Block 13 -# 2160| v2160_1(void) = NoOp : -# 2157| r2157_52(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2157| r2157_53(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2157| v2157_54(void) = Call[~ClassWithDestructor] : func:r2157_53, this:r2157_52 -# 2157| m2157_55(unknown) = ^CallSideEffect : ~m2159_5 -# 2157| m2157_56(unknown) = Chi : total:m2159_5, partial:m2157_55 -# 2157| v2157_57(void) = ^IndirectReadSideEffect[-1] : &:r2157_52, m2159_8 -# 2157| m2157_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2157_52 -# 2157| m2157_59(ClassWithDestructor) = Chi : total:m2159_8, partial:m2157_58 -# 2157| r2157_60(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2157| r2157_61(glval<unknown>) = FunctionAddress[~vector] : -# 2157| v2157_62(void) = Call[~vector] : func:r2157_61, this:r2157_60 -# 2157| m2157_63(unknown) = ^CallSideEffect : ~m2157_56 -# 2157| m2157_64(unknown) = Chi : total:m2157_56, partial:m2157_63 -# 2157| v2157_65(void) = ^IndirectReadSideEffect[-1] : &:r2157_60, m2157_13 -# 2157| m2157_66(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2157_60 -# 2157| m2157_67(vector<ClassWithDestructor>) = Chi : total:m2157_13, partial:m2157_66 -# 2172| r2172_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2172| r2172_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2172| v2172_3(void) = Call[~ClassWithDestructor] : func:r2172_2, this:r2172_1 -# 2172| m2172_4(unknown) = ^CallSideEffect : ~m2157_64 -# 2172| m2172_5(unknown) = Chi : total:m2157_64, partial:m2172_4 -# 2172| v2172_6(void) = ^IndirectReadSideEffect[-1] : &:r2172_1, m2153_8 -# 2172| m2172_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2172_1 -# 2172| m2172_8(ClassWithDestructor) = Chi : total:m2153_8, partial:m2172_7 -#-----| Goto -> Block 1 - -# 2157| Block 14 -# 2157| r2157_68(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2157| r2157_69(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2157| v2157_70(void) = Call[~ClassWithDestructor] : func:r2157_69, this:r2157_68 -# 2157| m2157_71(unknown) = ^CallSideEffect : ~m2159_5 -# 2157| m2157_72(unknown) = Chi : total:m2159_5, partial:m2157_71 -# 2157| v2157_73(void) = ^IndirectReadSideEffect[-1] : &:r2157_68, m2159_8 -# 2157| m2157_74(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2157_68 -# 2157| m2157_75(ClassWithDestructor) = Chi : total:m2159_8, partial:m2157_74 -# 2157| r2157_76(glval<iterator>) = VariableAddress[(__begin)] : -# 2157| r2157_77(glval<unknown>) = FunctionAddress[operator++] : -# 2157| r2157_78(iterator &) = Call[operator++] : func:r2157_77, this:r2157_76 -# 2157| m2157_79(unknown) = ^CallSideEffect : ~m2157_72 -# 2157| m2157_80(unknown) = Chi : total:m2157_72, partial:m2157_79 -# 2157| v2157_81(void) = ^IndirectReadSideEffect[-1] : &:r2157_76, m2157_34 -# 2157| m2157_82(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2157_76 -# 2157| m2157_83(iterator) = Chi : total:m2157_34, partial:m2157_82 -# 2157| r2157_84(glval<iterator>) = CopyValue : r2157_78 -#-----| Goto (back edge) -> Block 11 - -# 2163| Block 15 -# 2163| r2163_1(glval<vector<int>>) = VariableAddress[ys] : -# 2163| m2163_2(vector<int>) = Uninitialized[ys] : &:r2163_1 -# 2163| r2163_3(glval<unknown>) = FunctionAddress[vector] : -# 2163| r2163_4(int) = Constant[1] : -# 2163| v2163_5(void) = Call[vector] : func:r2163_3, this:r2163_1, 0:r2163_4 -# 2163| m2163_6(unknown) = ^CallSideEffect : ~m2157_42 -# 2163| m2163_7(unknown) = Chi : total:m2157_42, partial:m2163_6 -# 2163| m2163_8(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2163_1 -# 2163| m2163_9(vector<int>) = Chi : total:m2163_2, partial:m2163_8 -# 2163| r2163_10(glval<vector<int> &>) = VariableAddress[(__range)] : -# 2163| r2163_11(glval<vector<int>>) = VariableAddress[ys] : -# 2163| r2163_12(vector<int> &) = CopyValue : r2163_11 -# 2163| m2163_13(vector<int> &) = Store[(__range)] : &:r2163_10, r2163_12 -# 2163| r2163_14(glval<iterator>) = VariableAddress[(__begin)] : -# 2163| r2163_15(glval<vector<int> &>) = VariableAddress[(__range)] : -# 2163| r2163_16(vector<int> &) = Load[(__range)] : &:r2163_15, m2163_13 -#-----| r0_21(glval<vector<int>>) = CopyValue : r2163_16 -#-----| r0_22(glval<vector<int>>) = Convert : r0_21 -# 2163| r2163_17(glval<unknown>) = FunctionAddress[begin] : -# 2163| r2163_18(iterator) = Call[begin] : func:r2163_17, this:r0_22 -# 2163| m2163_19(unknown) = ^CallSideEffect : ~m2163_7 -# 2163| m2163_20(unknown) = Chi : total:m2163_7, partial:m2163_19 -#-----| v0_23(void) = ^IndirectReadSideEffect[-1] : &:r0_22, m2163_9 -# 2163| m2163_21(iterator) = Store[(__begin)] : &:r2163_14, r2163_18 -# 2163| r2163_22(glval<iterator>) = VariableAddress[(__end)] : -# 2163| r2163_23(glval<vector<int> &>) = VariableAddress[(__range)] : -# 2163| r2163_24(vector<int> &) = Load[(__range)] : &:r2163_23, m2163_13 -#-----| r0_24(glval<vector<int>>) = CopyValue : r2163_24 -#-----| r0_25(glval<vector<int>>) = Convert : r0_24 -# 2163| r2163_25(glval<unknown>) = FunctionAddress[end] : -# 2163| r2163_26(iterator) = Call[end] : func:r2163_25, this:r0_25 -# 2163| m2163_27(unknown) = ^CallSideEffect : ~m2163_20 -# 2163| m2163_28(unknown) = Chi : total:m2163_20, partial:m2163_27 -#-----| v0_26(void) = ^IndirectReadSideEffect[-1] : &:r0_25, m2163_9 -# 2163| m2163_29(iterator) = Store[(__end)] : &:r2163_22, r2163_26 -#-----| Goto -> Block 16 - -# 2163| Block 16 -# 2163| m2163_30(iterator) = Phi : from 15:m2163_21, from 17:m2163_47 -# 2163| m2163_31(unknown) = Phi : from 15:~m2163_28, from 17:~m2163_44 -# 2163| r2163_32(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_27(glval<iterator>) = Convert : r2163_32 -# 2163| r2163_33(glval<unknown>) = FunctionAddress[operator!=] : -# 2163| r2163_34(glval<iterator>) = VariableAddress[(__end)] : -# 2163| r2163_35(iterator) = Load[(__end)] : &:r2163_34, m2163_29 -# 2163| r2163_36(bool) = Call[operator!=] : func:r2163_33, this:r0_27, 0:r2163_35 -# 2163| m2163_37(unknown) = ^CallSideEffect : ~m2163_31 -# 2163| m2163_38(unknown) = Chi : total:m2163_31, partial:m2163_37 -#-----| v0_28(void) = ^IndirectReadSideEffect[-1] : &:r0_27, m2163_30 -# 2163| v2163_39(void) = ConditionalBranch : r2163_36 -#-----| False -> Block 20 -#-----| True -> Block 18 - -# 2163| Block 17 -# 2163| r2163_40(glval<iterator>) = VariableAddress[(__begin)] : -# 2163| r2163_41(glval<unknown>) = FunctionAddress[operator++] : -# 2163| r2163_42(iterator &) = Call[operator++] : func:r2163_41, this:r2163_40 -# 2163| m2163_43(unknown) = ^CallSideEffect : ~m2163_54 -# 2163| m2163_44(unknown) = Chi : total:m2163_54, partial:m2163_43 -# 2163| v2163_45(void) = ^IndirectReadSideEffect[-1] : &:r2163_40, m2163_30 -# 2163| m2163_46(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2163_40 -# 2163| m2163_47(iterator) = Chi : total:m2163_30, partial:m2163_46 -# 2163| r2163_48(glval<iterator>) = CopyValue : r2163_42 -#-----| Goto (back edge) -> Block 16 - -# 2163| Block 18 -# 2163| r2163_49(glval<int>) = VariableAddress[y] : -# 2163| r2163_50(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_29(glval<iterator>) = Convert : r2163_50 -# 2163| r2163_51(glval<unknown>) = FunctionAddress[operator*] : -# 2163| r2163_52(int &) = Call[operator*] : func:r2163_51, this:r0_29 -# 2163| m2163_53(unknown) = ^CallSideEffect : ~m2163_38 -# 2163| m2163_54(unknown) = Chi : total:m2163_38, partial:m2163_53 -#-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_29, m2163_30 -# 2163| r2163_55(int) = Load[?] : &:r2163_52, ~m2163_54 -# 2163| m2163_56(int) = Store[y] : &:r2163_49, r2163_55 -# 2164| r2164_1(glval<int>) = VariableAddress[y] : -# 2164| r2164_2(int) = Load[y] : &:r2164_1, m2163_56 -# 2164| r2164_3(int) = Constant[1] : -# 2164| r2164_4(bool) = CompareEQ : r2164_2, r2164_3 -# 2164| v2164_5(void) = ConditionalBranch : r2164_4 -#-----| False -> Block 17 -#-----| True -> Block 19 - -# 2165| Block 19 -# 2165| v2165_1(void) = NoOp : -# 2163| r2163_57(glval<vector<int>>) = VariableAddress[ys] : -# 2163| r2163_58(glval<unknown>) = FunctionAddress[~vector] : -# 2163| v2163_59(void) = Call[~vector] : func:r2163_58, this:r2163_57 -# 2163| m2163_60(unknown) = ^CallSideEffect : ~m2163_54 -# 2163| m2163_61(unknown) = Chi : total:m2163_54, partial:m2163_60 -# 2163| v2163_62(void) = ^IndirectReadSideEffect[-1] : &:r2163_57, m2163_9 -# 2163| m2163_63(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2163_57 -# 2163| m2163_64(vector<int>) = Chi : total:m2163_9, partial:m2163_63 -# 2172| r2172_9(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2172| r2172_10(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2172| v2172_11(void) = Call[~ClassWithDestructor] : func:r2172_10, this:r2172_9 -# 2172| m2172_12(unknown) = ^CallSideEffect : ~m2163_61 -# 2172| m2172_13(unknown) = Chi : total:m2163_61, partial:m2172_12 -# 2172| v2172_14(void) = ^IndirectReadSideEffect[-1] : &:r2172_9, m2153_8 -# 2172| m2172_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2172_9 -# 2172| m2172_16(ClassWithDestructor) = Chi : total:m2153_8, partial:m2172_15 -#-----| Goto -> Block 1 - -# 2168| Block 20 -# 2168| r2168_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2168| m2168_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2168_1 -# 2168| r2168_3(glval<unknown>) = FunctionAddress[vector] : -# 2168| r2168_4(glval<ClassWithDestructor>) = VariableAddress[#temp2168:40] : -# 2168| r2168_5(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2168| r2168_6(ClassWithDestructor) = Load[x] : &:r2168_5, m2153_8 -# 2168| m2168_7(ClassWithDestructor) = Store[#temp2168:40] : &:r2168_4, r2168_6 -# 2168| r2168_8(ClassWithDestructor) = Load[#temp2168:40] : &:r2168_4, m2168_7 -# 2168| v2168_9(void) = Call[vector] : func:r2168_3, this:r2168_1, 0:r2168_8 -# 2168| m2168_10(unknown) = ^CallSideEffect : ~m2163_38 -# 2168| m2168_11(unknown) = Chi : total:m2163_38, partial:m2168_10 -# 2168| m2168_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2168_1 -# 2168| m2168_13(vector<ClassWithDestructor>) = Chi : total:m2168_2, partial:m2168_12 -# 2168| r2168_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2168| r2168_15(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2168| r2168_16(vector<ClassWithDestructor> &) = CopyValue : r2168_15 -# 2168| m2168_17(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2168_14, r2168_16 -# 2168| r2168_18(glval<iterator>) = VariableAddress[(__begin)] : -# 2168| r2168_19(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2168| r2168_20(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2168_19, m2168_17 -#-----| r0_31(glval<vector<ClassWithDestructor>>) = CopyValue : r2168_20 -#-----| r0_32(glval<vector<ClassWithDestructor>>) = Convert : r0_31 -# 2168| r2168_21(glval<unknown>) = FunctionAddress[begin] : -# 2168| r2168_22(iterator) = Call[begin] : func:r2168_21, this:r0_32 -# 2168| m2168_23(unknown) = ^CallSideEffect : ~m2168_11 -# 2168| m2168_24(unknown) = Chi : total:m2168_11, partial:m2168_23 -#-----| v0_33(void) = ^IndirectReadSideEffect[-1] : &:r0_32, m2168_13 -# 2168| m2168_25(iterator) = Store[(__begin)] : &:r2168_18, r2168_22 -# 2168| r2168_26(glval<iterator>) = VariableAddress[(__end)] : -# 2168| r2168_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2168| r2168_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2168_27, m2168_17 -#-----| r0_34(glval<vector<ClassWithDestructor>>) = CopyValue : r2168_28 -#-----| r0_35(glval<vector<ClassWithDestructor>>) = Convert : r0_34 -# 2168| r2168_29(glval<unknown>) = FunctionAddress[end] : -# 2168| r2168_30(iterator) = Call[end] : func:r2168_29, this:r0_35 -# 2168| m2168_31(unknown) = ^CallSideEffect : ~m2168_24 -# 2168| m2168_32(unknown) = Chi : total:m2168_24, partial:m2168_31 -#-----| v0_36(void) = ^IndirectReadSideEffect[-1] : &:r0_35, m2168_13 -# 2168| m2168_33(iterator) = Store[(__end)] : &:r2168_26, r2168_30 -#-----| Goto -> Block 21 - -# 2168| Block 21 -# 2168| m2168_34(iterator) = Phi : from 20:m2168_25, from 22:m2168_67 -# 2168| m2168_35(unknown) = Phi : from 20:~m2168_32, from 22:~m2168_64 -# 2168| r2168_36(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_37(glval<iterator>) = Convert : r2168_36 -# 2168| r2168_37(glval<unknown>) = FunctionAddress[operator!=] : -# 2168| r2168_38(glval<iterator>) = VariableAddress[(__end)] : -# 2168| r2168_39(iterator) = Load[(__end)] : &:r2168_38, m2168_33 -# 2168| r2168_40(bool) = Call[operator!=] : func:r2168_37, this:r0_37, 0:r2168_39 -# 2168| m2168_41(unknown) = ^CallSideEffect : ~m2168_35 -# 2168| m2168_42(unknown) = Chi : total:m2168_35, partial:m2168_41 -#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, m2168_34 -# 2168| v2168_43(void) = ConditionalBranch : r2168_40 -#-----| False -> Block 23 -#-----| True -> Block 22 - -# 2168| Block 22 -# 2168| r2168_44(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2168| r2168_45(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_39(glval<iterator>) = Convert : r2168_45 -# 2168| r2168_46(glval<unknown>) = FunctionAddress[operator*] : -# 2168| r2168_47(ClassWithDestructor &) = Call[operator*] : func:r2168_46, this:r0_39 -# 2168| m2168_48(unknown) = ^CallSideEffect : ~m2168_42 -# 2168| m2168_49(unknown) = Chi : total:m2168_42, partial:m2168_48 -#-----| v0_40(void) = ^IndirectReadSideEffect[-1] : &:r0_39, m2168_34 -# 2168| r2168_50(ClassWithDestructor) = Load[?] : &:r2168_47, ~m2168_49 -# 2168| m2168_51(ClassWithDestructor) = Store[y] : &:r2168_44, r2168_50 -# 2169| r2169_1(glval<ClassWithDestructor>) = VariableAddress[z1] : -# 2169| m2169_2(ClassWithDestructor) = Uninitialized[z1] : &:r2169_1 -# 2169| r2169_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2169| v2169_4(void) = Call[ClassWithDestructor] : func:r2169_3, this:r2169_1 -# 2169| m2169_5(unknown) = ^CallSideEffect : ~m2168_49 -# 2169| m2169_6(unknown) = Chi : total:m2168_49, partial:m2169_5 -# 2169| m2169_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2169_1 -# 2169| m2169_8(ClassWithDestructor) = Chi : total:m2169_2, partial:m2169_7 -# 2170| r2170_1(glval<ClassWithDestructor>) = VariableAddress[z2] : -# 2170| m2170_2(ClassWithDestructor) = Uninitialized[z2] : &:r2170_1 -# 2170| r2170_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2170| v2170_4(void) = Call[ClassWithDestructor] : func:r2170_3, this:r2170_1 -# 2170| m2170_5(unknown) = ^CallSideEffect : ~m2169_6 -# 2170| m2170_6(unknown) = Chi : total:m2169_6, partial:m2170_5 -# 2170| m2170_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1 -# 2170| m2170_8(ClassWithDestructor) = Chi : total:m2170_2, partial:m2170_7 -# 2171| r2171_1(glval<ClassWithDestructor>) = VariableAddress[z2] : -# 2171| r2171_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2171| v2171_3(void) = Call[~ClassWithDestructor] : func:r2171_2, this:r2171_1 -# 2171| m2171_4(unknown) = ^CallSideEffect : ~m2170_6 -# 2171| m2171_5(unknown) = Chi : total:m2170_6, partial:m2171_4 -# 2171| v2171_6(void) = ^IndirectReadSideEffect[-1] : &:r2171_1, m2170_8 -# 2171| m2171_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2171_1 -# 2171| m2171_8(ClassWithDestructor) = Chi : total:m2170_8, partial:m2171_7 -# 2171| r2171_9(glval<ClassWithDestructor>) = VariableAddress[z1] : -# 2171| r2171_10(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2171| v2171_11(void) = Call[~ClassWithDestructor] : func:r2171_10, this:r2171_9 -# 2171| m2171_12(unknown) = ^CallSideEffect : ~m2171_5 -# 2171| m2171_13(unknown) = Chi : total:m2171_5, partial:m2171_12 -# 2171| v2171_14(void) = ^IndirectReadSideEffect[-1] : &:r2171_9, m2169_8 -# 2171| m2171_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2171_9 -# 2171| m2171_16(ClassWithDestructor) = Chi : total:m2169_8, partial:m2171_15 -# 2168| r2168_52(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2168| r2168_53(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2168| v2168_54(void) = Call[~ClassWithDestructor] : func:r2168_53, this:r2168_52 -# 2168| m2168_55(unknown) = ^CallSideEffect : ~m2171_13 -# 2168| m2168_56(unknown) = Chi : total:m2171_13, partial:m2168_55 -# 2168| v2168_57(void) = ^IndirectReadSideEffect[-1] : &:r2168_52, m2168_51 -# 2168| m2168_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2168_52 -# 2168| m2168_59(ClassWithDestructor) = Chi : total:m2168_51, partial:m2168_58 -# 2168| r2168_60(glval<iterator>) = VariableAddress[(__begin)] : -# 2168| r2168_61(glval<unknown>) = FunctionAddress[operator++] : -# 2168| r2168_62(iterator &) = Call[operator++] : func:r2168_61, this:r2168_60 -# 2168| m2168_63(unknown) = ^CallSideEffect : ~m2168_56 -# 2168| m2168_64(unknown) = Chi : total:m2168_56, partial:m2168_63 -# 2168| v2168_65(void) = ^IndirectReadSideEffect[-1] : &:r2168_60, m2168_34 -# 2168| m2168_66(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2168_60 -# 2168| m2168_67(iterator) = Chi : total:m2168_34, partial:m2168_66 -# 2168| r2168_68(glval<iterator>) = CopyValue : r2168_62 -#-----| Goto (back edge) -> Block 21 - -# 2172| Block 23 -# 2172| v2172_17(void) = NoOp : -# 2172| r2172_18(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2172| r2172_19(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2172| v2172_20(void) = Call[~ClassWithDestructor] : func:r2172_19, this:r2172_18 -# 2172| m2172_21(unknown) = ^CallSideEffect : ~m2168_42 -# 2172| m2172_22(unknown) = Chi : total:m2168_42, partial:m2172_21 -# 2172| v2172_23(void) = ^IndirectReadSideEffect[-1] : &:r2172_18, m2153_8 -# 2172| m2172_24(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2172_18 -# 2172| m2172_25(ClassWithDestructor) = Chi : total:m2153_8, partial:m2172_24 -#-----| Goto -> Block 1 - -# 2137| Block 24 -# 2137| v2137_13(void) = Unreached : - -# 2174| void static_variable_with_destructor_1() -# 2174| Block 0 -# 2174| v2174_1(void) = EnterFunction : -# 2174| m2174_2(unknown) = AliasedDefinition : -# 2174| m2174_3(unknown) = InitializeNonLocal : -# 2174| m2174_4(unknown) = Chi : total:m2174_2, partial:m2174_3 -# 2175| r2175_1(glval<ClassWithDestructor>) = VariableAddress[a] : -# 2175| m2175_2(ClassWithDestructor) = Uninitialized[a] : &:r2175_1 -# 2175| r2175_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2175| v2175_4(void) = Call[ClassWithDestructor] : func:r2175_3, this:r2175_1 -# 2175| m2175_5(unknown) = ^CallSideEffect : ~m2174_4 -# 2175| m2175_6(unknown) = Chi : total:m2174_4, partial:m2175_5 -# 2175| m2175_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2175_1 -# 2175| m2175_8(ClassWithDestructor) = Chi : total:m2175_2, partial:m2175_7 -# 2176| r2176_1(glval<bool>) = VariableAddress[b#init] : -# 2176| r2176_2(bool) = Load[b#init] : &:r2176_1, ~m2175_6 -# 2176| v2176_3(void) = ConditionalBranch : r2176_2 -#-----| False -> Block 1 -#-----| True -> Block 2 - -# 2176| Block 1 -# 2176| r2176_4(glval<ClassWithDestructor>) = VariableAddress[b] : -#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2176_4 -#-----| m0_3(unknown) = ^CallSideEffect : ~m2175_6 -#-----| m0_4(unknown) = Chi : total:m2175_6, partial:m0_3 -#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2176_4 -#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 -# 2176| r2176_5(bool) = Constant[1] : -# 2176| m2176_6(bool) = Store[b#init] : &:r2176_1, r2176_5 -# 2176| m2176_7(unknown) = Chi : total:m0_6, partial:m2176_6 -#-----| Goto -> Block 2 - -# 2177| Block 2 -# 2177| m2177_1(unknown) = Phi : from 0:~m2175_6, from 1:~m2176_7 -# 2177| v2177_2(void) = NoOp : -# 2177| r2177_3(glval<ClassWithDestructor>) = VariableAddress[a] : -# 2177| r2177_4(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2177| v2177_5(void) = Call[~ClassWithDestructor] : func:r2177_4, this:r2177_3 -# 2177| m2177_6(unknown) = ^CallSideEffect : ~m2177_1 -# 2177| m2177_7(unknown) = Chi : total:m2177_1, partial:m2177_6 -# 2177| v2177_8(void) = ^IndirectReadSideEffect[-1] : &:r2177_3, m2175_8 -# 2177| m2177_9(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2177_3 -# 2177| m2177_10(ClassWithDestructor) = Chi : total:m2175_8, partial:m2177_9 -# 2174| v2174_5(void) = ReturnVoid : -# 2174| v2174_6(void) = AliasedUse : ~m2177_7 -# 2174| v2174_7(void) = ExitFunction : - -# 2179| void static_variable_with_destructor_2() +# 2179| char ClassWithDestructor::get_x() # 2179| Block 0 -# 2179| v2179_1(void) = EnterFunction : -# 2179| m2179_2(unknown) = AliasedDefinition : -# 2179| m2179_3(unknown) = InitializeNonLocal : -# 2179| m2179_4(unknown) = Chi : total:m2179_2, partial:m2179_3 -# 2180| r2180_1(glval<bool>) = VariableAddress[a#init] : -# 2180| r2180_2(bool) = Load[a#init] : &:r2180_1, ~m2179_3 -# 2180| v2180_3(void) = ConditionalBranch : r2180_2 -#-----| False -> Block 1 -#-----| True -> Block 2 +# 2179| v2179_1(void) = EnterFunction : +# 2179| m2179_2(unknown) = AliasedDefinition : +# 2179| m2179_3(unknown) = InitializeNonLocal : +# 2179| m2179_4(unknown) = Chi : total:m2179_2, partial:m2179_3 +# 2179| r2179_5(glval<unknown>) = VariableAddress[#this] : +# 2179| m2179_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2179_5 +# 2179| r2179_7(glval<ClassWithDestructor>) = Load[#this] : &:r2179_5, m2179_6 +# 2179| m2179_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2179_7 +# 2179| r2179_9(glval<char>) = VariableAddress[#return] : +# 2179| r2179_10(glval<unknown>) = VariableAddress[#this] : +# 2179| r2179_11(ClassWithDestructor *) = Load[#this] : &:r2179_10, m2179_6 +# 2179| r2179_12(glval<char *>) = FieldAddress[x] : r2179_11 +# 2179| r2179_13(char *) = Load[?] : &:r2179_12, ~m2179_8 +# 2179| r2179_14(char) = Load[?] : &:r2179_13, ~m2179_4 +# 2179| m2179_15(char) = Store[#return] : &:r2179_9, r2179_14 +# 2179| v2179_16(void) = ReturnIndirection[#this] : &:r2179_7, m2179_8 +# 2179| r2179_17(glval<char>) = VariableAddress[#return] : +# 2179| v2179_18(void) = ReturnValue : &:r2179_17, m2179_15 +# 2179| v2179_19(void) = AliasedUse : m2179_3 +# 2179| v2179_20(void) = ExitFunction : -# 2180| Block 1 -# 2180| r2180_4(glval<ClassWithDestructor>) = VariableAddress[a] : -#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2180_4 -#-----| m0_3(unknown) = ^CallSideEffect : ~m2179_4 -#-----| m0_4(unknown) = Chi : total:m2179_4, partial:m0_3 -#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2180_4 -#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 -# 2180| r2180_5(bool) = Constant[1] : -# 2180| m2180_6(bool) = Store[a#init] : &:r2180_1, r2180_5 -# 2180| m2180_7(unknown) = Chi : total:m0_6, partial:m2180_6 -#-----| Goto -> Block 2 +# 2182| bool initialization_with_destructor_bool +# 2182| Block 0 +# 2182| v2182_1(void) = EnterFunction : +# 2182| m2182_2(unknown) = AliasedDefinition : +# 2182| r2182_3(glval<bool>) = VariableAddress[initialization_with_destructor_bool] : +# 2182| r2182_4(bool) = Constant[1] : +# 2182| m2182_5(bool) = Store[initialization_with_destructor_bool] : &:r2182_3, r2182_4 +# 2182| m2182_6(unknown) = Chi : total:m2182_2, partial:m2182_5 +# 2182| v2182_7(void) = ReturnVoid : +# 2182| v2182_8(void) = AliasedUse : ~m2182_6 +# 2182| v2182_9(void) = ExitFunction : -# 2181| Block 2 -# 2181| m2181_1(unknown) = Phi : from 0:~m2179_4, from 1:~m2180_7 -# 2181| r2181_2(glval<ClassWithDestructor>) = VariableAddress[b] : -# 2181| m2181_3(ClassWithDestructor) = Uninitialized[b] : &:r2181_2 -# 2181| r2181_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2181| v2181_5(void) = Call[ClassWithDestructor] : func:r2181_4, this:r2181_2 -# 2181| m2181_6(unknown) = ^CallSideEffect : ~m2181_1 -# 2181| m2181_7(unknown) = Chi : total:m2181_1, partial:m2181_6 -# 2181| m2181_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2181_2 -# 2181| m2181_9(ClassWithDestructor) = Chi : total:m2181_3, partial:m2181_8 -# 2182| v2182_1(void) = NoOp : -# 2182| r2182_2(glval<ClassWithDestructor>) = VariableAddress[b] : -# 2182| r2182_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2182| v2182_4(void) = Call[~ClassWithDestructor] : func:r2182_3, this:r2182_2 -# 2182| m2182_5(unknown) = ^CallSideEffect : ~m2181_7 -# 2182| m2182_6(unknown) = Chi : total:m2181_7, partial:m2182_5 -# 2182| v2182_7(void) = ^IndirectReadSideEffect[-1] : &:r2182_2, m2181_9 -# 2182| m2182_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2182_2 -# 2182| m2182_9(ClassWithDestructor) = Chi : total:m2181_9, partial:m2182_8 -# 2179| v2179_5(void) = ReturnVoid : -# 2179| v2179_6(void) = AliasedUse : ~m2182_6 -# 2179| v2179_7(void) = ExitFunction : - -# 2184| void static_variable_with_destructor_3() +# 2184| void initialization_with_destructor(bool, char) # 2184| Block 0 # 2184| v2184_1(void) = EnterFunction : # 2184| m2184_2(unknown) = AliasedDefinition : # 2184| m2184_3(unknown) = InitializeNonLocal : # 2184| m2184_4(unknown) = Chi : total:m2184_2, partial:m2184_3 -# 2185| r2185_1(glval<ClassWithDestructor>) = VariableAddress[a] : -# 2185| m2185_2(ClassWithDestructor) = Uninitialized[a] : &:r2185_1 +# 2184| r2184_5(glval<bool>) = VariableAddress[b] : +# 2184| m2184_6(bool) = InitializeParameter[b] : &:r2184_5 +# 2184| r2184_7(glval<char>) = VariableAddress[c] : +# 2184| m2184_8(char) = InitializeParameter[c] : &:r2184_7 +# 2185| r2185_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2185| m2185_2(ClassWithDestructor) = Uninitialized[x] : &:r2185_1 # 2185| r2185_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : # 2185| v2185_4(void) = Call[ClassWithDestructor] : func:r2185_3, this:r2185_1 # 2185| m2185_5(unknown) = ^CallSideEffect : ~m2184_4 # 2185| m2185_6(unknown) = Chi : total:m2184_4, partial:m2185_5 # 2185| m2185_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2185_1 # 2185| m2185_8(ClassWithDestructor) = Chi : total:m2185_2, partial:m2185_7 -# 2186| r2186_1(glval<ClassWithDestructor>) = VariableAddress[b] : -# 2186| m2186_2(ClassWithDestructor) = Uninitialized[b] : &:r2186_1 -# 2186| r2186_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2186| v2186_4(void) = Call[ClassWithDestructor] : func:r2186_3, this:r2186_1 -# 2186| m2186_5(unknown) = ^CallSideEffect : ~m2185_6 -# 2186| m2186_6(unknown) = Chi : total:m2185_6, partial:m2186_5 -# 2186| m2186_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1 -# 2186| m2186_8(ClassWithDestructor) = Chi : total:m2186_2, partial:m2186_7 -# 2187| r2187_1(glval<bool>) = VariableAddress[c#init] : -# 2187| r2187_2(bool) = Load[c#init] : &:r2187_1, ~m2186_6 -# 2187| v2187_3(void) = ConditionalBranch : r2187_2 +# 2185| r2185_9(glval<bool>) = VariableAddress[b] : +# 2185| r2185_10(bool) = Load[b] : &:r2185_9, m2184_6 +# 2185| v2185_11(void) = ConditionalBranch : r2185_10 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 2184| Block 1 +# 2184| m2184_9(unknown) = Phi : from 13:~m2219_5, from 19:~m2219_13, from 23:~m2219_22 +# 2184| v2184_10(void) = ReturnVoid : +# 2184| v2184_11(void) = AliasedUse : ~m2184_9 +# 2184| v2184_12(void) = ExitFunction : + +# 2186| Block 2 +# 2186| r2186_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2186| r2186_2(glval<unknown>) = FunctionAddress[set_x] : +# 2186| r2186_3(char) = Constant[97] : +# 2186| v2186_4(void) = Call[set_x] : func:r2186_2, this:r2186_1, 0:r2186_3 +# 2186| m2186_5(unknown) = ^CallSideEffect : ~m2185_6 +# 2186| m2186_6(unknown) = Chi : total:m2185_6, partial:m2186_5 +# 2186| v2186_7(void) = ^IndirectReadSideEffect[-1] : &:r2186_1, m2185_8 +# 2186| m2186_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1 +# 2186| m2186_9(ClassWithDestructor) = Chi : total:m2185_8, partial:m2186_8 +# 2186| r2186_10(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2186| r2186_11(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2186| v2186_12(void) = Call[~ClassWithDestructor] : func:r2186_11, this:r2186_10 +# 2186| m2186_13(unknown) = ^CallSideEffect : ~m2186_6 +# 2186| m2186_14(unknown) = Chi : total:m2186_6, partial:m2186_13 +# 2186| v2186_15(void) = ^IndirectReadSideEffect[-1] : &:r2186_10, m2186_9 +# 2186| m2186_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2186_10 +# 2186| m2186_17(ClassWithDestructor) = Chi : total:m2186_9, partial:m2186_16 +#-----| Goto -> Block 3 + +# 2188| Block 3 +# 2188| m2188_1(unknown) = Phi : from 0:~m2185_6, from 2:~m2186_14 +# 2188| r2188_2(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2188| m2188_3(ClassWithDestructor) = Uninitialized[x] : &:r2188_2 +# 2188| r2188_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2188| v2188_5(void) = Call[ClassWithDestructor] : func:r2188_4, this:r2188_2 +# 2188| m2188_6(unknown) = ^CallSideEffect : ~m2188_1 +# 2188| m2188_7(unknown) = Chi : total:m2188_1, partial:m2188_6 +# 2188| m2188_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2188_2 +# 2188| m2188_9(ClassWithDestructor) = Chi : total:m2188_3, partial:m2188_8 +# 2188| r2188_10(bool) = Constant[1] : +# 2188| v2188_11(void) = ConditionalBranch : r2188_10 +#-----| False -> Block 24 +#-----| True -> Block 4 + +# 2189| Block 4 +# 2189| r2189_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2189| r2189_2(glval<unknown>) = FunctionAddress[set_x] : +# 2189| r2189_3(char) = Constant[97] : +# 2189| v2189_4(void) = Call[set_x] : func:r2189_2, this:r2189_1, 0:r2189_3 +# 2189| m2189_5(unknown) = ^CallSideEffect : ~m2188_7 +# 2189| m2189_6(unknown) = Chi : total:m2188_7, partial:m2189_5 +# 2189| v2189_7(void) = ^IndirectReadSideEffect[-1] : &:r2189_1, m2188_9 +# 2189| m2189_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2189_1 +# 2189| m2189_9(ClassWithDestructor) = Chi : total:m2188_9, partial:m2189_8 +# 2191| r2191_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2191| m2191_2(ClassWithDestructor) = Uninitialized[x] : &:r2191_1 +# 2191| r2191_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2191| v2191_4(void) = Call[ClassWithDestructor] : func:r2191_3, this:r2191_1 +# 2191| m2191_5(unknown) = ^CallSideEffect : ~m2189_6 +# 2191| m2191_6(unknown) = Chi : total:m2189_6, partial:m2191_5 +# 2191| m2191_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2191_1 +# 2191| m2191_8(ClassWithDestructor) = Chi : total:m2191_2, partial:m2191_7 +# 2191| r2191_9(glval<char>) = VariableAddress[c] : +# 2191| r2191_10(char) = Load[c] : &:r2191_9, m2184_8 +# 2191| r2191_11(int) = Convert : r2191_10 +# 2191| v2191_12(void) = Switch : r2191_11 +#-----| Case[97] -> Block 5 +#-----| Default -> Block 6 + +# 2192| Block 5 +# 2192| v2192_1(void) = NoOp : +# 2193| r2193_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2193| r2193_2(glval<unknown>) = FunctionAddress[set_x] : +# 2193| r2193_3(char) = Constant[97] : +# 2193| v2193_4(void) = Call[set_x] : func:r2193_2, this:r2193_1, 0:r2193_3 +# 2193| m2193_5(unknown) = ^CallSideEffect : ~m2191_6 +# 2193| m2193_6(unknown) = Chi : total:m2191_6, partial:m2193_5 +# 2193| v2193_7(void) = ^IndirectReadSideEffect[-1] : &:r2193_1, m2191_8 +# 2193| m2193_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2193_1 +# 2193| m2193_9(ClassWithDestructor) = Chi : total:m2191_8, partial:m2193_8 +# 2194| v2194_1(void) = NoOp : +#-----| Goto -> Block 7 + +# 2195| Block 6 +# 2195| v2195_1(void) = NoOp : +# 2196| r2196_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2196| r2196_2(glval<unknown>) = FunctionAddress[set_x] : +# 2196| r2196_3(char) = Constant[98] : +# 2196| v2196_4(void) = Call[set_x] : func:r2196_2, this:r2196_1, 0:r2196_3 +# 2196| m2196_5(unknown) = ^CallSideEffect : ~m2191_6 +# 2196| m2196_6(unknown) = Chi : total:m2191_6, partial:m2196_5 +# 2196| v2196_7(void) = ^IndirectReadSideEffect[-1] : &:r2196_1, m2191_8 +# 2196| m2196_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2196_1 +# 2196| m2196_9(ClassWithDestructor) = Chi : total:m2191_8, partial:m2196_8 +# 2197| v2197_1(void) = NoOp : +#-----| Goto -> Block 7 + +# 2198| Block 7 +# 2198| m2198_1(unknown) = Phi : from 5:~m2193_6, from 6:~m2196_6 +# 2198| v2198_2(void) = NoOp : +# 2200| r2200_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2200| m2200_2(ClassWithDestructor) = Uninitialized[x] : &:r2200_1 +# 2200| r2200_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2200| v2200_4(void) = Call[ClassWithDestructor] : func:r2200_3, this:r2200_1 +# 2200| m2200_5(unknown) = ^CallSideEffect : ~m2198_1 +# 2200| m2200_6(unknown) = Chi : total:m2198_1, partial:m2200_5 +# 2200| m2200_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2200_1 +# 2200| m2200_8(ClassWithDestructor) = Chi : total:m2200_2, partial:m2200_7 +# 2201| r2201_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2201| m2201_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2201_1 +# 2201| r2201_3(glval<unknown>) = FunctionAddress[vector] : +# 2201| r2201_4(glval<ClassWithDestructor>) = VariableAddress[#temp2201:45] : +# 2201| r2201_5(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2201| r2201_6(ClassWithDestructor) = Load[x] : &:r2201_5, m2200_8 +# 2201| m2201_7(ClassWithDestructor) = Store[#temp2201:45] : &:r2201_4, r2201_6 +# 2201| r2201_8(ClassWithDestructor) = Load[#temp2201:45] : &:r2201_4, m2201_7 +# 2201| v2201_9(void) = Call[vector] : func:r2201_3, this:r2201_1, 0:r2201_8 +# 2201| m2201_10(unknown) = ^CallSideEffect : ~m2200_6 +# 2201| m2201_11(unknown) = Chi : total:m2200_6, partial:m2201_10 +# 2201| m2201_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_1 +# 2201| m2201_13(vector<ClassWithDestructor>) = Chi : total:m2201_2, partial:m2201_12 +# 2201| r2201_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2201| r2201_15(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2201| r2201_16(vector<ClassWithDestructor> &) = CopyValue : r2201_15 +# 2201| m2201_17(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2201_14, r2201_16 +# 2201| r2201_18(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2201| r2201_19(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2201| r2201_20(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2201_19, m2201_17 +#-----| r0_1(glval<vector<ClassWithDestructor>>) = CopyValue : r2201_20 +#-----| r0_2(glval<vector<ClassWithDestructor>>) = Convert : r0_1 +# 2201| r2201_21(glval<unknown>) = FunctionAddress[begin] : +# 2201| r2201_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2201_21, this:r0_2 +# 2201| m2201_23(unknown) = ^CallSideEffect : ~m2201_11 +# 2201| m2201_24(unknown) = Chi : total:m2201_11, partial:m2201_23 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2201_13 +# 2201| m2201_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2201_18, r2201_22 +# 2201| r2201_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2201| r2201_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2201| r2201_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2201_27, m2201_17 +#-----| r0_4(glval<vector<ClassWithDestructor>>) = CopyValue : r2201_28 +#-----| r0_5(glval<vector<ClassWithDestructor>>) = Convert : r0_4 +# 2201| r2201_29(glval<unknown>) = FunctionAddress[end] : +# 2201| r2201_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2201_29, this:r0_5 +# 2201| m2201_31(unknown) = ^CallSideEffect : ~m2201_24 +# 2201| m2201_32(unknown) = Chi : total:m2201_24, partial:m2201_31 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2201_13 +# 2201| m2201_33(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2201_26, r2201_30 +#-----| Goto -> Block 8 + +# 2201| Block 8 +# 2201| m2201_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 7:m2201_25, from 9:m2201_72 +# 2201| m2201_35(unknown) = Phi : from 7:~m2201_32, from 9:~m2201_69 +# 2201| r2201_36(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_36 +# 2201| r2201_37(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : +#-----| m0_9(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_8 +# 2201| r2201_38(glval<unknown>) = FunctionAddress[iterator] : +# 2201| r2201_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_39 +#-----| r0_11(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_10 +# 2201| v2201_40(void) = Call[iterator] : func:r2201_38, this:r0_8, 0:r0_11 +# 2201| m2201_41(unknown) = ^CallSideEffect : ~m2201_35 +# 2201| m2201_42(unknown) = Chi : total:m2201_35, partial:m2201_41 +#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m2201_33 +# 2201| m2201_43(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2201| m2201_44(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_9, partial:m2201_43 +#-----| r0_13(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_8, m2201_44 +# 2201| r2201_45(bool) = Call[operator!=] : func:r2201_37, this:r0_7, 0:r0_13 +# 2201| m2201_46(unknown) = ^CallSideEffect : ~m2201_42 +# 2201| m2201_47(unknown) = Chi : total:m2201_42, partial:m2201_46 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2201_34 +# 2201| v2201_48(void) = ConditionalBranch : r2201_45 +#-----| False -> Block 10 +#-----| True -> Block 9 + +# 2201| Block 9 +# 2201| r2201_49(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2201| r2201_50(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_50 +# 2201| r2201_51(glval<unknown>) = FunctionAddress[operator*] : +# 2201| r2201_52(ClassWithDestructor &) = Call[operator*] : func:r2201_51, this:r0_15 +# 2201| m2201_53(unknown) = ^CallSideEffect : ~m2201_47 +# 2201| m2201_54(unknown) = Chi : total:m2201_47, partial:m2201_53 +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m2201_34 +# 2201| r2201_55(ClassWithDestructor) = Load[?] : &:r2201_52, ~m2201_54 +# 2201| m2201_56(ClassWithDestructor) = Store[y] : &:r2201_49, r2201_55 +# 2202| r2202_1(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2202| r2202_2(glval<unknown>) = FunctionAddress[set_x] : +# 2202| r2202_3(char) = Constant[97] : +# 2202| v2202_4(void) = Call[set_x] : func:r2202_2, this:r2202_1, 0:r2202_3 +# 2202| m2202_5(unknown) = ^CallSideEffect : ~m2201_54 +# 2202| m2202_6(unknown) = Chi : total:m2201_54, partial:m2202_5 +# 2202| v2202_7(void) = ^IndirectReadSideEffect[-1] : &:r2202_1, m2201_56 +# 2202| m2202_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2202_1 +# 2202| m2202_9(ClassWithDestructor) = Chi : total:m2201_56, partial:m2202_8 +# 2201| r2201_57(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2201| r2201_58(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2201| v2201_59(void) = Call[~ClassWithDestructor] : func:r2201_58, this:r2201_57 +# 2201| m2201_60(unknown) = ^CallSideEffect : ~m2202_6 +# 2201| m2201_61(unknown) = Chi : total:m2202_6, partial:m2201_60 +# 2201| v2201_62(void) = ^IndirectReadSideEffect[-1] : &:r2201_57, m2202_9 +# 2201| m2201_63(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_57 +# 2201| m2201_64(ClassWithDestructor) = Chi : total:m2202_9, partial:m2201_63 +# 2201| r2201_65(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2201| r2201_66(glval<unknown>) = FunctionAddress[operator++] : +# 2201| r2201_67(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2201_66, this:r2201_65 +# 2201| m2201_68(unknown) = ^CallSideEffect : ~m2201_61 +# 2201| m2201_69(unknown) = Chi : total:m2201_61, partial:m2201_68 +# 2201| v2201_70(void) = ^IndirectReadSideEffect[-1] : &:r2201_65, m2201_34 +# 2201| m2201_71(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_65 +# 2201| m2201_72(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2201_34, partial:m2201_71 +# 2201| r2201_73(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2201_67 +#-----| Goto (back edge) -> Block 8 + +# 2204| Block 10 +# 2204| r2204_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| m2204_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2204_1 +# 2204| r2204_3(glval<unknown>) = FunctionAddress[vector] : +# 2204| r2204_4(glval<ClassWithDestructor>) = VariableAddress[#temp2204:45] : +# 2204| r2204_5(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2204| r2204_6(ClassWithDestructor) = Load[x] : &:r2204_5, m2200_8 +# 2204| m2204_7(ClassWithDestructor) = Store[#temp2204:45] : &:r2204_4, r2204_6 +# 2204| r2204_8(ClassWithDestructor) = Load[#temp2204:45] : &:r2204_4, m2204_7 +# 2204| v2204_9(void) = Call[vector] : func:r2204_3, this:r2204_1, 0:r2204_8 +# 2204| m2204_10(unknown) = ^CallSideEffect : ~m2201_47 +# 2204| m2204_11(unknown) = Chi : total:m2201_47, partial:m2204_10 +# 2204| m2204_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_1 +# 2204| m2204_13(vector<ClassWithDestructor>) = Chi : total:m2204_2, partial:m2204_12 +# 2204| r2204_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2204| r2204_15(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| r2204_16(vector<ClassWithDestructor> &) = CopyValue : r2204_15 +# 2204| m2204_17(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2204_14, r2204_16 +# 2204| r2204_18(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2204| r2204_19(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2204| r2204_20(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2204_19, m2204_17 +#-----| r0_17(glval<vector<ClassWithDestructor>>) = CopyValue : r2204_20 +#-----| r0_18(glval<vector<ClassWithDestructor>>) = Convert : r0_17 +# 2204| r2204_21(glval<unknown>) = FunctionAddress[begin] : +# 2204| r2204_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2204_21, this:r0_18 +# 2204| m2204_23(unknown) = ^CallSideEffect : ~m2204_11 +# 2204| m2204_24(unknown) = Chi : total:m2204_11, partial:m2204_23 +#-----| v0_19(void) = ^IndirectReadSideEffect[-1] : &:r0_18, m2204_13 +# 2204| m2204_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2204_18, r2204_22 +# 2204| r2204_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2204| r2204_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2204| r2204_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2204_27, m2204_17 +#-----| r0_20(glval<vector<ClassWithDestructor>>) = CopyValue : r2204_28 +#-----| r0_21(glval<vector<ClassWithDestructor>>) = Convert : r0_20 +# 2204| r2204_29(glval<unknown>) = FunctionAddress[end] : +# 2204| r2204_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2204_29, this:r0_21 +# 2204| m2204_31(unknown) = ^CallSideEffect : ~m2204_24 +# 2204| m2204_32(unknown) = Chi : total:m2204_24, partial:m2204_31 +#-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_21, m2204_13 +# 2204| m2204_33(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2204_26, r2204_30 +#-----| Goto -> Block 11 + +# 2204| Block 11 +# 2204| m2204_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 10:m2204_25, from 14:m2204_88 +# 2204| m2204_35(unknown) = Phi : from 10:~m2204_32, from 14:~m2204_85 +# 2204| r2204_36(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_36 +# 2204| r2204_37(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_24(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : +#-----| m0_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_24 +# 2204| r2204_38(glval<unknown>) = FunctionAddress[iterator] : +# 2204| r2204_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_39 +#-----| r0_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_26 +# 2204| v2204_40(void) = Call[iterator] : func:r2204_38, this:r0_24, 0:r0_27 +# 2204| m2204_41(unknown) = ^CallSideEffect : ~m2204_35 +# 2204| m2204_42(unknown) = Chi : total:m2204_35, partial:m2204_41 +#-----| v0_28(void) = ^BufferReadSideEffect[0] : &:r0_27, ~m2204_33 +# 2204| m2204_43(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 +# 2204| m2204_44(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_25, partial:m2204_43 +#-----| r0_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_24, m2204_44 +# 2204| r2204_45(bool) = Call[operator!=] : func:r2204_37, this:r0_23, 0:r0_29 +# 2204| m2204_46(unknown) = ^CallSideEffect : ~m2204_42 +# 2204| m2204_47(unknown) = Chi : total:m2204_42, partial:m2204_46 +#-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_23, m2204_34 +# 2204| v2204_48(void) = ConditionalBranch : r2204_45 +#-----| False -> Block 15 +#-----| True -> Block 12 + +# 2204| Block 12 +# 2204| r2204_49(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_50(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_50 +# 2204| r2204_51(glval<unknown>) = FunctionAddress[operator*] : +# 2204| r2204_52(ClassWithDestructor &) = Call[operator*] : func:r2204_51, this:r0_31 +# 2204| m2204_53(unknown) = ^CallSideEffect : ~m2204_47 +# 2204| m2204_54(unknown) = Chi : total:m2204_47, partial:m2204_53 +#-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_31, m2204_34 +# 2204| r2204_55(ClassWithDestructor) = Load[?] : &:r2204_52, ~m2204_54 +# 2204| m2204_56(ClassWithDestructor) = Store[y] : &:r2204_49, r2204_55 +# 2205| r2205_1(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2205| r2205_2(glval<unknown>) = FunctionAddress[set_x] : +# 2205| r2205_3(char) = Constant[97] : +# 2205| v2205_4(void) = Call[set_x] : func:r2205_2, this:r2205_1, 0:r2205_3 +# 2205| m2205_5(unknown) = ^CallSideEffect : ~m2204_54 +# 2205| m2205_6(unknown) = Chi : total:m2204_54, partial:m2205_5 +# 2205| v2205_7(void) = ^IndirectReadSideEffect[-1] : &:r2205_1, m2204_56 +# 2205| m2205_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2205_1 +# 2205| m2205_9(ClassWithDestructor) = Chi : total:m2204_56, partial:m2205_8 +# 2206| r2206_1(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2206| r2206_2(glval<unknown>) = FunctionAddress[get_x] : +# 2206| r2206_3(char) = Call[get_x] : func:r2206_2, this:r2206_1 +# 2206| m2206_4(unknown) = ^CallSideEffect : ~m2205_6 +# 2206| m2206_5(unknown) = Chi : total:m2205_6, partial:m2206_4 +# 2206| v2206_6(void) = ^IndirectReadSideEffect[-1] : &:r2206_1, m2205_9 +# 2206| m2206_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2206_1 +# 2206| m2206_8(ClassWithDestructor) = Chi : total:m2205_9, partial:m2206_7 +# 2206| r2206_9(int) = Convert : r2206_3 +# 2206| r2206_10(int) = Constant[98] : +# 2206| r2206_11(bool) = CompareEQ : r2206_9, r2206_10 +# 2206| v2206_12(void) = ConditionalBranch : r2206_11 +#-----| False -> Block 14 +#-----| True -> Block 13 + +# 2207| Block 13 +# 2207| v2207_1(void) = NoOp : +# 2204| r2204_57(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_58(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2204| v2204_59(void) = Call[~ClassWithDestructor] : func:r2204_58, this:r2204_57 +# 2204| m2204_60(unknown) = ^CallSideEffect : ~m2206_5 +# 2204| m2204_61(unknown) = Chi : total:m2206_5, partial:m2204_60 +# 2204| v2204_62(void) = ^IndirectReadSideEffect[-1] : &:r2204_57, m2206_8 +# 2204| m2204_63(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_57 +# 2204| m2204_64(ClassWithDestructor) = Chi : total:m2206_8, partial:m2204_63 +# 2204| r2204_65(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| r2204_66(glval<unknown>) = FunctionAddress[~vector] : +# 2204| v2204_67(void) = Call[~vector] : func:r2204_66, this:r2204_65 +# 2204| m2204_68(unknown) = ^CallSideEffect : ~m2204_61 +# 2204| m2204_69(unknown) = Chi : total:m2204_61, partial:m2204_68 +# 2204| v2204_70(void) = ^IndirectReadSideEffect[-1] : &:r2204_65, m2204_13 +# 2204| m2204_71(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_65 +# 2204| m2204_72(vector<ClassWithDestructor>) = Chi : total:m2204_13, partial:m2204_71 +# 2219| r2219_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2219| r2219_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_3(void) = Call[~ClassWithDestructor] : func:r2219_2, this:r2219_1 +# 2219| m2219_4(unknown) = ^CallSideEffect : ~m2204_69 +# 2219| m2219_5(unknown) = Chi : total:m2204_69, partial:m2219_4 +# 2219| v2219_6(void) = ^IndirectReadSideEffect[-1] : &:r2219_1, m2200_8 +# 2219| m2219_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 +# 2219| m2219_8(ClassWithDestructor) = Chi : total:m2200_8, partial:m2219_7 +#-----| Goto -> Block 1 + +# 2204| Block 14 +# 2204| r2204_73(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_74(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2204| v2204_75(void) = Call[~ClassWithDestructor] : func:r2204_74, this:r2204_73 +# 2204| m2204_76(unknown) = ^CallSideEffect : ~m2206_5 +# 2204| m2204_77(unknown) = Chi : total:m2206_5, partial:m2204_76 +# 2204| v2204_78(void) = ^IndirectReadSideEffect[-1] : &:r2204_73, m2206_8 +# 2204| m2204_79(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_73 +# 2204| m2204_80(ClassWithDestructor) = Chi : total:m2206_8, partial:m2204_79 +# 2204| r2204_81(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2204| r2204_82(glval<unknown>) = FunctionAddress[operator++] : +# 2204| r2204_83(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2204_82, this:r2204_81 +# 2204| m2204_84(unknown) = ^CallSideEffect : ~m2204_77 +# 2204| m2204_85(unknown) = Chi : total:m2204_77, partial:m2204_84 +# 2204| v2204_86(void) = ^IndirectReadSideEffect[-1] : &:r2204_81, m2204_34 +# 2204| m2204_87(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_81 +# 2204| m2204_88(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2204_34, partial:m2204_87 +# 2204| r2204_89(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2204_83 +#-----| Goto (back edge) -> Block 11 + +# 2210| Block 15 +# 2210| r2210_1(glval<vector<int>>) = VariableAddress[ys] : +# 2210| m2210_2(vector<int>) = Uninitialized[ys] : &:r2210_1 +# 2210| r2210_3(glval<unknown>) = FunctionAddress[vector] : +# 2210| r2210_4(int) = Constant[1] : +# 2210| v2210_5(void) = Call[vector] : func:r2210_3, this:r2210_1, 0:r2210_4 +# 2210| m2210_6(unknown) = ^CallSideEffect : ~m2204_47 +# 2210| m2210_7(unknown) = Chi : total:m2204_47, partial:m2210_6 +# 2210| m2210_8(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_1 +# 2210| m2210_9(vector<int>) = Chi : total:m2210_2, partial:m2210_8 +# 2210| r2210_10(glval<vector<int> &>) = VariableAddress[(__range)] : +# 2210| r2210_11(glval<vector<int>>) = VariableAddress[ys] : +# 2210| r2210_12(vector<int> &) = CopyValue : r2210_11 +# 2210| m2210_13(vector<int> &) = Store[(__range)] : &:r2210_10, r2210_12 +# 2210| r2210_14(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 2210| r2210_15(glval<vector<int> &>) = VariableAddress[(__range)] : +# 2210| r2210_16(vector<int> &) = Load[(__range)] : &:r2210_15, m2210_13 +#-----| r0_33(glval<vector<int>>) = CopyValue : r2210_16 +#-----| r0_34(glval<vector<int>>) = Convert : r0_33 +# 2210| r2210_17(glval<unknown>) = FunctionAddress[begin] : +# 2210| r2210_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r2210_17, this:r0_34 +# 2210| m2210_19(unknown) = ^CallSideEffect : ~m2210_7 +# 2210| m2210_20(unknown) = Chi : total:m2210_7, partial:m2210_19 +#-----| v0_35(void) = ^IndirectReadSideEffect[-1] : &:r0_34, m2210_9 +# 2210| m2210_21(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r2210_14, r2210_18 +# 2210| r2210_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 2210| r2210_23(glval<vector<int> &>) = VariableAddress[(__range)] : +# 2210| r2210_24(vector<int> &) = Load[(__range)] : &:r2210_23, m2210_13 +#-----| r0_36(glval<vector<int>>) = CopyValue : r2210_24 +#-----| r0_37(glval<vector<int>>) = Convert : r0_36 +# 2210| r2210_25(glval<unknown>) = FunctionAddress[end] : +# 2210| r2210_26(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r2210_25, this:r0_37 +# 2210| m2210_27(unknown) = ^CallSideEffect : ~m2210_20 +# 2210| m2210_28(unknown) = Chi : total:m2210_20, partial:m2210_27 +#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, m2210_9 +# 2210| m2210_29(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r2210_22, r2210_26 +#-----| Goto -> Block 16 + +# 2210| Block 16 +# 2210| m2210_30(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 15:m2210_21, from 17:m2210_52 +# 2210| m2210_31(unknown) = Phi : from 15:~m2210_28, from 17:~m2210_49 +# 2210| r2210_32(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_32 +# 2210| r2210_33(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_40(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : +#-----| m0_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_40 +# 2210| r2210_34(glval<unknown>) = FunctionAddress[iterator] : +# 2210| r2210_35(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_35 +#-----| r0_43(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_42 +# 2210| v2210_36(void) = Call[iterator] : func:r2210_34, this:r0_40, 0:r0_43 +# 2210| m2210_37(unknown) = ^CallSideEffect : ~m2210_31 +# 2210| m2210_38(unknown) = Chi : total:m2210_31, partial:m2210_37 +#-----| v0_44(void) = ^BufferReadSideEffect[0] : &:r0_43, ~m2210_29 +# 2210| m2210_39(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 +# 2210| m2210_40(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_41, partial:m2210_39 +#-----| r0_45(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_40, m2210_40 +# 2210| r2210_41(bool) = Call[operator!=] : func:r2210_33, this:r0_39, 0:r0_45 +# 2210| m2210_42(unknown) = ^CallSideEffect : ~m2210_38 +# 2210| m2210_43(unknown) = Chi : total:m2210_38, partial:m2210_42 +#-----| v0_46(void) = ^IndirectReadSideEffect[-1] : &:r0_39, m2210_30 +# 2210| v2210_44(void) = ConditionalBranch : r2210_41 +#-----| False -> Block 20 +#-----| True -> Block 18 + +# 2210| Block 17 +# 2210| r2210_45(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 2210| r2210_46(glval<unknown>) = FunctionAddress[operator++] : +# 2210| r2210_47(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r2210_46, this:r2210_45 +# 2210| m2210_48(unknown) = ^CallSideEffect : ~m2210_59 +# 2210| m2210_49(unknown) = Chi : total:m2210_59, partial:m2210_48 +# 2210| v2210_50(void) = ^IndirectReadSideEffect[-1] : &:r2210_45, m2210_30 +# 2210| m2210_51(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_45 +# 2210| m2210_52(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m2210_30, partial:m2210_51 +# 2210| r2210_53(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r2210_47 +#-----| Goto (back edge) -> Block 16 + +# 2210| Block 18 +# 2210| r2210_54(glval<int>) = VariableAddress[y] : +# 2210| r2210_55(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_47(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_55 +# 2210| r2210_56(glval<unknown>) = FunctionAddress[operator*] : +# 2210| r2210_57(int &) = Call[operator*] : func:r2210_56, this:r0_47 +# 2210| m2210_58(unknown) = ^CallSideEffect : ~m2210_43 +# 2210| m2210_59(unknown) = Chi : total:m2210_43, partial:m2210_58 +#-----| v0_48(void) = ^IndirectReadSideEffect[-1] : &:r0_47, m2210_30 +# 2210| r2210_60(int) = Load[?] : &:r2210_57, ~m2210_59 +# 2210| m2210_61(int) = Store[y] : &:r2210_54, r2210_60 +# 2211| r2211_1(glval<int>) = VariableAddress[y] : +# 2211| r2211_2(int) = Load[y] : &:r2211_1, m2210_61 +# 2211| r2211_3(int) = Constant[1] : +# 2211| r2211_4(bool) = CompareEQ : r2211_2, r2211_3 +# 2211| v2211_5(void) = ConditionalBranch : r2211_4 +#-----| False -> Block 17 +#-----| True -> Block 19 + +# 2212| Block 19 +# 2212| v2212_1(void) = NoOp : +# 2210| r2210_62(glval<vector<int>>) = VariableAddress[ys] : +# 2210| r2210_63(glval<unknown>) = FunctionAddress[~vector] : +# 2210| v2210_64(void) = Call[~vector] : func:r2210_63, this:r2210_62 +# 2210| m2210_65(unknown) = ^CallSideEffect : ~m2210_59 +# 2210| m2210_66(unknown) = Chi : total:m2210_59, partial:m2210_65 +# 2210| v2210_67(void) = ^IndirectReadSideEffect[-1] : &:r2210_62, m2210_9 +# 2210| m2210_68(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_62 +# 2210| m2210_69(vector<int>) = Chi : total:m2210_9, partial:m2210_68 +# 2219| r2219_9(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2219| r2219_10(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_11(void) = Call[~ClassWithDestructor] : func:r2219_10, this:r2219_9 +# 2219| m2219_12(unknown) = ^CallSideEffect : ~m2210_66 +# 2219| m2219_13(unknown) = Chi : total:m2210_66, partial:m2219_12 +# 2219| v2219_14(void) = ^IndirectReadSideEffect[-1] : &:r2219_9, m2200_8 +# 2219| m2219_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_9 +# 2219| m2219_16(ClassWithDestructor) = Chi : total:m2200_8, partial:m2219_15 +#-----| Goto -> Block 1 + +# 2215| Block 20 +# 2215| r2215_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2215| m2215_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2215_1 +# 2215| r2215_3(glval<unknown>) = FunctionAddress[vector] : +# 2215| r2215_4(glval<ClassWithDestructor>) = VariableAddress[#temp2215:45] : +# 2215| r2215_5(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2215| r2215_6(ClassWithDestructor) = Load[x] : &:r2215_5, m2200_8 +# 2215| m2215_7(ClassWithDestructor) = Store[#temp2215:45] : &:r2215_4, r2215_6 +# 2215| r2215_8(ClassWithDestructor) = Load[#temp2215:45] : &:r2215_4, m2215_7 +# 2215| v2215_9(void) = Call[vector] : func:r2215_3, this:r2215_1, 0:r2215_8 +# 2215| m2215_10(unknown) = ^CallSideEffect : ~m2210_43 +# 2215| m2215_11(unknown) = Chi : total:m2210_43, partial:m2215_10 +# 2215| m2215_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 +# 2215| m2215_13(vector<ClassWithDestructor>) = Chi : total:m2215_2, partial:m2215_12 +# 2215| r2215_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2215| r2215_15(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2215| r2215_16(vector<ClassWithDestructor> &) = CopyValue : r2215_15 +# 2215| m2215_17(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2215_14, r2215_16 +# 2215| r2215_18(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2215| r2215_19(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2215| r2215_20(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2215_19, m2215_17 +#-----| r0_49(glval<vector<ClassWithDestructor>>) = CopyValue : r2215_20 +#-----| r0_50(glval<vector<ClassWithDestructor>>) = Convert : r0_49 +# 2215| r2215_21(glval<unknown>) = FunctionAddress[begin] : +# 2215| r2215_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2215_21, this:r0_50 +# 2215| m2215_23(unknown) = ^CallSideEffect : ~m2215_11 +# 2215| m2215_24(unknown) = Chi : total:m2215_11, partial:m2215_23 +#-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, m2215_13 +# 2215| m2215_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2215_18, r2215_22 +# 2215| r2215_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2215| r2215_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2215| r2215_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2215_27, m2215_17 +#-----| r0_52(glval<vector<ClassWithDestructor>>) = CopyValue : r2215_28 +#-----| r0_53(glval<vector<ClassWithDestructor>>) = Convert : r0_52 +# 2215| r2215_29(glval<unknown>) = FunctionAddress[end] : +# 2215| r2215_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2215_29, this:r0_53 +# 2215| m2215_31(unknown) = ^CallSideEffect : ~m2215_24 +# 2215| m2215_32(unknown) = Chi : total:m2215_24, partial:m2215_31 +#-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, m2215_13 +# 2215| m2215_33(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2215_26, r2215_30 +#-----| Goto -> Block 21 + +# 2215| Block 21 +# 2215| m2215_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 20:m2215_25, from 22:m2215_72 +# 2215| m2215_35(unknown) = Phi : from 20:~m2215_32, from 22:~m2215_69 +# 2215| r2215_36(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_55(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_36 +# 2215| r2215_37(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_56(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : +#-----| m0_57(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_56 +# 2215| r2215_38(glval<unknown>) = FunctionAddress[iterator] : +# 2215| r2215_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_58(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_39 +#-----| r0_59(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_58 +# 2215| v2215_40(void) = Call[iterator] : func:r2215_38, this:r0_56, 0:r0_59 +# 2215| m2215_41(unknown) = ^CallSideEffect : ~m2215_35 +# 2215| m2215_42(unknown) = Chi : total:m2215_35, partial:m2215_41 +#-----| v0_60(void) = ^BufferReadSideEffect[0] : &:r0_59, ~m2215_33 +# 2215| m2215_43(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 +# 2215| m2215_44(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_57, partial:m2215_43 +#-----| r0_61(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_56, m2215_44 +# 2215| r2215_45(bool) = Call[operator!=] : func:r2215_37, this:r0_55, 0:r0_61 +# 2215| m2215_46(unknown) = ^CallSideEffect : ~m2215_42 +# 2215| m2215_47(unknown) = Chi : total:m2215_42, partial:m2215_46 +#-----| v0_62(void) = ^IndirectReadSideEffect[-1] : &:r0_55, m2215_34 +# 2215| v2215_48(void) = ConditionalBranch : r2215_45 +#-----| False -> Block 23 +#-----| True -> Block 22 + +# 2215| Block 22 +# 2215| r2215_49(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2215| r2215_50(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_63(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_50 +# 2215| r2215_51(glval<unknown>) = FunctionAddress[operator*] : +# 2215| r2215_52(ClassWithDestructor &) = Call[operator*] : func:r2215_51, this:r0_63 +# 2215| m2215_53(unknown) = ^CallSideEffect : ~m2215_47 +# 2215| m2215_54(unknown) = Chi : total:m2215_47, partial:m2215_53 +#-----| v0_64(void) = ^IndirectReadSideEffect[-1] : &:r0_63, m2215_34 +# 2215| r2215_55(ClassWithDestructor) = Load[?] : &:r2215_52, ~m2215_54 +# 2215| m2215_56(ClassWithDestructor) = Store[y] : &:r2215_49, r2215_55 +# 2216| r2216_1(glval<ClassWithDestructor>) = VariableAddress[z1] : +# 2216| m2216_2(ClassWithDestructor) = Uninitialized[z1] : &:r2216_1 +# 2216| r2216_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2216| v2216_4(void) = Call[ClassWithDestructor] : func:r2216_3, this:r2216_1 +# 2216| m2216_5(unknown) = ^CallSideEffect : ~m2215_54 +# 2216| m2216_6(unknown) = Chi : total:m2215_54, partial:m2216_5 +# 2216| m2216_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_1 +# 2216| m2216_8(ClassWithDestructor) = Chi : total:m2216_2, partial:m2216_7 +# 2217| r2217_1(glval<ClassWithDestructor>) = VariableAddress[z2] : +# 2217| m2217_2(ClassWithDestructor) = Uninitialized[z2] : &:r2217_1 +# 2217| r2217_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2217| v2217_4(void) = Call[ClassWithDestructor] : func:r2217_3, this:r2217_1 +# 2217| m2217_5(unknown) = ^CallSideEffect : ~m2216_6 +# 2217| m2217_6(unknown) = Chi : total:m2216_6, partial:m2217_5 +# 2217| m2217_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2217_1 +# 2217| m2217_8(ClassWithDestructor) = Chi : total:m2217_2, partial:m2217_7 +# 2218| r2218_1(glval<ClassWithDestructor>) = VariableAddress[z2] : +# 2218| r2218_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2218| v2218_3(void) = Call[~ClassWithDestructor] : func:r2218_2, this:r2218_1 +# 2218| m2218_4(unknown) = ^CallSideEffect : ~m2217_6 +# 2218| m2218_5(unknown) = Chi : total:m2217_6, partial:m2218_4 +# 2218| v2218_6(void) = ^IndirectReadSideEffect[-1] : &:r2218_1, m2217_8 +# 2218| m2218_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_1 +# 2218| m2218_8(ClassWithDestructor) = Chi : total:m2217_8, partial:m2218_7 +# 2218| r2218_9(glval<ClassWithDestructor>) = VariableAddress[z1] : +# 2218| r2218_10(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2218| v2218_11(void) = Call[~ClassWithDestructor] : func:r2218_10, this:r2218_9 +# 2218| m2218_12(unknown) = ^CallSideEffect : ~m2218_5 +# 2218| m2218_13(unknown) = Chi : total:m2218_5, partial:m2218_12 +# 2218| v2218_14(void) = ^IndirectReadSideEffect[-1] : &:r2218_9, m2216_8 +# 2218| m2218_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_9 +# 2218| m2218_16(ClassWithDestructor) = Chi : total:m2216_8, partial:m2218_15 +# 2215| r2215_57(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2215| r2215_58(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_59(void) = Call[~ClassWithDestructor] : func:r2215_58, this:r2215_57 +# 2215| m2215_60(unknown) = ^CallSideEffect : ~m2218_13 +# 2215| m2215_61(unknown) = Chi : total:m2218_13, partial:m2215_60 +# 2215| v2215_62(void) = ^IndirectReadSideEffect[-1] : &:r2215_57, m2215_56 +# 2215| m2215_63(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_57 +# 2215| m2215_64(ClassWithDestructor) = Chi : total:m2215_56, partial:m2215_63 +# 2215| r2215_65(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2215| r2215_66(glval<unknown>) = FunctionAddress[operator++] : +# 2215| r2215_67(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2215_66, this:r2215_65 +# 2215| m2215_68(unknown) = ^CallSideEffect : ~m2215_61 +# 2215| m2215_69(unknown) = Chi : total:m2215_61, partial:m2215_68 +# 2215| v2215_70(void) = ^IndirectReadSideEffect[-1] : &:r2215_65, m2215_34 +# 2215| m2215_71(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_65 +# 2215| m2215_72(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2215_34, partial:m2215_71 +# 2215| r2215_73(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2215_67 +#-----| Goto (back edge) -> Block 21 + +# 2219| Block 23 +# 2219| v2219_17(void) = NoOp : +# 2219| r2219_18(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2219| r2219_19(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_20(void) = Call[~ClassWithDestructor] : func:r2219_19, this:r2219_18 +# 2219| m2219_21(unknown) = ^CallSideEffect : ~m2215_47 +# 2219| m2219_22(unknown) = Chi : total:m2215_47, partial:m2219_21 +# 2219| v2219_23(void) = ^IndirectReadSideEffect[-1] : &:r2219_18, m2200_8 +# 2219| m2219_24(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_18 +# 2219| m2219_25(ClassWithDestructor) = Chi : total:m2200_8, partial:m2219_24 +#-----| Goto -> Block 1 + +# 2184| Block 24 +# 2184| v2184_13(void) = Unreached : + +# 2221| void static_variable_with_destructor_1() +# 2221| Block 0 +# 2221| v2221_1(void) = EnterFunction : +# 2221| m2221_2(unknown) = AliasedDefinition : +# 2221| m2221_3(unknown) = InitializeNonLocal : +# 2221| m2221_4(unknown) = Chi : total:m2221_2, partial:m2221_3 +# 2222| r2222_1(glval<ClassWithDestructor>) = VariableAddress[a] : +# 2222| m2222_2(ClassWithDestructor) = Uninitialized[a] : &:r2222_1 +# 2222| r2222_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2222| v2222_4(void) = Call[ClassWithDestructor] : func:r2222_3, this:r2222_1 +# 2222| m2222_5(unknown) = ^CallSideEffect : ~m2221_4 +# 2222| m2222_6(unknown) = Chi : total:m2221_4, partial:m2222_5 +# 2222| m2222_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2222_1 +# 2222| m2222_8(ClassWithDestructor) = Chi : total:m2222_2, partial:m2222_7 +# 2223| r2223_1(glval<bool>) = VariableAddress[b#init] : +# 2223| r2223_2(bool) = Load[b#init] : &:r2223_1, ~m2222_6 +# 2223| v2223_3(void) = ConditionalBranch : r2223_2 #-----| False -> Block 1 #-----| True -> Block 2 -# 2187| Block 1 -# 2187| r2187_4(glval<ClassWithDestructor>) = VariableAddress[c] : +# 2223| Block 1 +# 2223| r2223_4(glval<ClassWithDestructor>) = VariableAddress[b] : #-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2187_4 -#-----| m0_3(unknown) = ^CallSideEffect : ~m2186_6 -#-----| m0_4(unknown) = Chi : total:m2186_6, partial:m0_3 -#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2187_4 +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2223_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m2222_6 +#-----| m0_4(unknown) = Chi : total:m2222_6, partial:m0_3 +#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2223_4 #-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 -# 2187| r2187_5(bool) = Constant[1] : -# 2187| m2187_6(bool) = Store[c#init] : &:r2187_1, r2187_5 -# 2187| m2187_7(unknown) = Chi : total:m0_6, partial:m2187_6 +# 2223| r2223_5(bool) = Constant[1] : +# 2223| m2223_6(bool) = Store[b#init] : &:r2223_1, r2223_5 +# 2223| m2223_7(unknown) = Chi : total:m0_6, partial:m2223_6 #-----| Goto -> Block 2 -# 2188| Block 2 -# 2188| m2188_1(unknown) = Phi : from 0:~m2186_6, from 1:~m2187_7 -# 2188| v2188_2(void) = NoOp : -# 2188| r2188_3(glval<ClassWithDestructor>) = VariableAddress[b] : -# 2188| r2188_4(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2188| v2188_5(void) = Call[~ClassWithDestructor] : func:r2188_4, this:r2188_3 -# 2188| m2188_6(unknown) = ^CallSideEffect : ~m2188_1 -# 2188| m2188_7(unknown) = Chi : total:m2188_1, partial:m2188_6 -# 2188| v2188_8(void) = ^IndirectReadSideEffect[-1] : &:r2188_3, m2186_8 -# 2188| m2188_9(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2188_3 -# 2188| m2188_10(ClassWithDestructor) = Chi : total:m2186_8, partial:m2188_9 -# 2188| r2188_11(glval<ClassWithDestructor>) = VariableAddress[a] : -# 2188| r2188_12(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2188| v2188_13(void) = Call[~ClassWithDestructor] : func:r2188_12, this:r2188_11 -# 2188| m2188_14(unknown) = ^CallSideEffect : ~m2188_7 -# 2188| m2188_15(unknown) = Chi : total:m2188_7, partial:m2188_14 -# 2188| v2188_16(void) = ^IndirectReadSideEffect[-1] : &:r2188_11, m2185_8 -# 2188| m2188_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2188_11 -# 2188| m2188_18(ClassWithDestructor) = Chi : total:m2185_8, partial:m2188_17 -# 2184| v2184_5(void) = ReturnVoid : -# 2184| v2184_6(void) = AliasedUse : ~m2188_15 -# 2184| v2184_7(void) = ExitFunction : +# 2224| Block 2 +# 2224| m2224_1(unknown) = Phi : from 0:~m2222_6, from 1:~m2223_7 +# 2224| v2224_2(void) = NoOp : +# 2224| r2224_3(glval<ClassWithDestructor>) = VariableAddress[a] : +# 2224| r2224_4(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2224| v2224_5(void) = Call[~ClassWithDestructor] : func:r2224_4, this:r2224_3 +# 2224| m2224_6(unknown) = ^CallSideEffect : ~m2224_1 +# 2224| m2224_7(unknown) = Chi : total:m2224_1, partial:m2224_6 +# 2224| v2224_8(void) = ^IndirectReadSideEffect[-1] : &:r2224_3, m2222_8 +# 2224| m2224_9(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2224_3 +# 2224| m2224_10(ClassWithDestructor) = Chi : total:m2222_8, partial:m2224_9 +# 2221| v2221_5(void) = ReturnVoid : +# 2221| v2221_6(void) = AliasedUse : ~m2224_7 +# 2221| v2221_7(void) = ExitFunction : -# 2190| ClassWithDestructor global_class_with_destructor -# 2190| Block 0 -# 2190| v2190_1(void) = EnterFunction : -# 2190| m2190_2(unknown) = AliasedDefinition : -# 2190| r2190_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] : -# 2190| r2190_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2190| v2190_5(void) = Call[ClassWithDestructor] : func:r2190_4, this:r2190_3 -# 2190| m2190_6(unknown) = ^CallSideEffect : ~m2190_2 -# 2190| m2190_7(unknown) = Chi : total:m2190_2, partial:m2190_6 -# 2190| m2190_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2190_3 -# 2190| m2190_9(unknown) = Chi : total:m2190_7, partial:m2190_8 -# 2190| v2190_10(void) = ReturnVoid : -# 2190| v2190_11(void) = AliasedUse : ~m2190_9 -# 2190| v2190_12(void) = ExitFunction : +# 2226| void static_variable_with_destructor_2() +# 2226| Block 0 +# 2226| v2226_1(void) = EnterFunction : +# 2226| m2226_2(unknown) = AliasedDefinition : +# 2226| m2226_3(unknown) = InitializeNonLocal : +# 2226| m2226_4(unknown) = Chi : total:m2226_2, partial:m2226_3 +# 2227| r2227_1(glval<bool>) = VariableAddress[a#init] : +# 2227| r2227_2(bool) = Load[a#init] : &:r2227_1, ~m2226_3 +# 2227| v2227_3(void) = ConditionalBranch : r2227_2 +#-----| False -> Block 1 +#-----| True -> Block 2 -# 2194| ClassWithDestructor& vacuous_destructor_call::get<ClassWithDestructor>(ClassWithDestructor&) -# 2194| Block 0 -# 2194| v2194_1(void) = EnterFunction : -# 2194| m2194_2(unknown) = AliasedDefinition : -# 2194| m2194_3(unknown) = InitializeNonLocal : -# 2194| m2194_4(unknown) = Chi : total:m2194_2, partial:m2194_3 -# 2194| r2194_5(glval<ClassWithDestructor &>) = VariableAddress[t] : -# 2194| m2194_6(ClassWithDestructor &) = InitializeParameter[t] : &:r2194_5 -# 2194| r2194_7(ClassWithDestructor &) = Load[t] : &:r2194_5, m2194_6 -# 2194| m2194_8(unknown) = InitializeIndirection[t] : &:r2194_7 -# 2194| r2194_9(glval<ClassWithDestructor &>) = VariableAddress[#return] : -# 2194| r2194_10(glval<ClassWithDestructor &>) = VariableAddress[t] : -# 2194| r2194_11(ClassWithDestructor &) = Load[t] : &:r2194_10, m2194_6 -# 2194| r2194_12(glval<ClassWithDestructor>) = CopyValue : r2194_11 -# 2194| r2194_13(ClassWithDestructor &) = CopyValue : r2194_12 -# 2194| m2194_14(ClassWithDestructor &) = Store[#return] : &:r2194_9, r2194_13 -# 2194| v2194_15(void) = ReturnIndirection[t] : &:r2194_7, m2194_8 -# 2194| r2194_16(glval<ClassWithDestructor &>) = VariableAddress[#return] : -# 2194| v2194_17(void) = ReturnValue : &:r2194_16, m2194_14 -# 2194| v2194_18(void) = AliasedUse : m2194_3 -# 2194| v2194_19(void) = ExitFunction : +# 2227| Block 1 +# 2227| r2227_4(glval<ClassWithDestructor>) = VariableAddress[a] : +#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2227_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m2226_4 +#-----| m0_4(unknown) = Chi : total:m2226_4, partial:m0_3 +#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2227_4 +#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 +# 2227| r2227_5(bool) = Constant[1] : +# 2227| m2227_6(bool) = Store[a#init] : &:r2227_1, r2227_5 +# 2227| m2227_7(unknown) = Chi : total:m0_6, partial:m2227_6 +#-----| Goto -> Block 2 -# 2194| int& vacuous_destructor_call::get<int>(int&) -# 2194| Block 0 -# 2194| v2194_1(void) = EnterFunction : -# 2194| m2194_2(unknown) = AliasedDefinition : -# 2194| m2194_3(unknown) = InitializeNonLocal : -# 2194| m2194_4(unknown) = Chi : total:m2194_2, partial:m2194_3 -# 2194| r2194_5(glval<int &>) = VariableAddress[t] : -# 2194| m2194_6(int &) = InitializeParameter[t] : &:r2194_5 -# 2194| r2194_7(int &) = Load[t] : &:r2194_5, m2194_6 -# 2194| m2194_8(unknown) = InitializeIndirection[t] : &:r2194_7 -# 2194| r2194_9(glval<int &>) = VariableAddress[#return] : -# 2194| r2194_10(glval<int &>) = VariableAddress[t] : -# 2194| r2194_11(int &) = Load[t] : &:r2194_10, m2194_6 -# 2194| r2194_12(glval<int>) = CopyValue : r2194_11 -# 2194| r2194_13(int &) = CopyValue : r2194_12 -# 2194| m2194_14(int &) = Store[#return] : &:r2194_9, r2194_13 -# 2194| v2194_15(void) = ReturnIndirection[t] : &:r2194_7, m2194_8 -# 2194| r2194_16(glval<int &>) = VariableAddress[#return] : -# 2194| v2194_17(void) = ReturnValue : &:r2194_16, m2194_14 -# 2194| v2194_18(void) = AliasedUse : m2194_3 -# 2194| v2194_19(void) = ExitFunction : +# 2228| Block 2 +# 2228| m2228_1(unknown) = Phi : from 0:~m2226_4, from 1:~m2227_7 +# 2228| r2228_2(glval<ClassWithDestructor>) = VariableAddress[b] : +# 2228| m2228_3(ClassWithDestructor) = Uninitialized[b] : &:r2228_2 +# 2228| r2228_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2228| v2228_5(void) = Call[ClassWithDestructor] : func:r2228_4, this:r2228_2 +# 2228| m2228_6(unknown) = ^CallSideEffect : ~m2228_1 +# 2228| m2228_7(unknown) = Chi : total:m2228_1, partial:m2228_6 +# 2228| m2228_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2228_2 +# 2228| m2228_9(ClassWithDestructor) = Chi : total:m2228_3, partial:m2228_8 +# 2229| v2229_1(void) = NoOp : +# 2229| r2229_2(glval<ClassWithDestructor>) = VariableAddress[b] : +# 2229| r2229_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2229| v2229_4(void) = Call[~ClassWithDestructor] : func:r2229_3, this:r2229_2 +# 2229| m2229_5(unknown) = ^CallSideEffect : ~m2228_7 +# 2229| m2229_6(unknown) = Chi : total:m2228_7, partial:m2229_5 +# 2229| v2229_7(void) = ^IndirectReadSideEffect[-1] : &:r2229_2, m2228_9 +# 2229| m2229_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2229_2 +# 2229| m2229_9(ClassWithDestructor) = Chi : total:m2228_9, partial:m2229_8 +# 2226| v2226_5(void) = ReturnVoid : +# 2226| v2226_6(void) = AliasedUse : ~m2229_6 +# 2226| v2226_7(void) = ExitFunction : -# 2197| void vacuous_destructor_call::call_destructor<ClassWithDestructor>(ClassWithDestructor&) -# 2197| Block 0 -# 2197| v2197_1(void) = EnterFunction : -# 2197| m2197_2(unknown) = AliasedDefinition : -# 2197| m2197_3(unknown) = InitializeNonLocal : -# 2197| m2197_4(unknown) = Chi : total:m2197_2, partial:m2197_3 -# 2197| r2197_5(glval<ClassWithDestructor &>) = VariableAddress[t] : -# 2197| m2197_6(ClassWithDestructor &) = InitializeParameter[t] : &:r2197_5 -# 2197| r2197_7(ClassWithDestructor &) = Load[t] : &:r2197_5, m2197_6 -# 2197| m2197_8(unknown) = InitializeIndirection[t] : &:r2197_7 -# 2198| r2198_1(glval<unknown>) = FunctionAddress[get] : -# 2198| r2198_2(glval<ClassWithDestructor &>) = VariableAddress[t] : -# 2198| r2198_3(ClassWithDestructor &) = Load[t] : &:r2198_2, m2197_6 -# 2198| r2198_4(glval<ClassWithDestructor>) = CopyValue : r2198_3 -# 2198| r2198_5(ClassWithDestructor &) = CopyValue : r2198_4 -# 2198| r2198_6(ClassWithDestructor &) = Call[get] : func:r2198_1, 0:r2198_5 -# 2198| m2198_7(unknown) = ^CallSideEffect : ~m2197_4 -# 2198| m2198_8(unknown) = Chi : total:m2197_4, partial:m2198_7 -# 2198| v2198_9(void) = ^BufferReadSideEffect[0] : &:r2198_5, ~m2197_8 -# 2198| m2198_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2198_5 -# 2198| m2198_11(unknown) = Chi : total:m2197_8, partial:m2198_10 -# 2198| r2198_12(glval<ClassWithDestructor>) = CopyValue : r2198_6 -# 2198| r2198_13(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2198| v2198_14(void) = Call[~ClassWithDestructor] : func:r2198_13 -# 2198| m2198_15(unknown) = ^CallSideEffect : ~m2198_8 -# 2198| m2198_16(unknown) = Chi : total:m2198_8, partial:m2198_15 -# 2198| v2198_17(void) = ^IndirectReadSideEffect[-1] : &:r2198_12, ~m2198_11 -# 2198| m2198_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2198_12 -# 2198| m2198_19(unknown) = Chi : total:m2198_11, partial:m2198_18 -# 2199| v2199_1(void) = NoOp : -# 2197| v2197_9(void) = ReturnIndirection[t] : &:r2197_7, m2198_19 -# 2197| v2197_10(void) = ReturnVoid : -# 2197| v2197_11(void) = AliasedUse : ~m2198_16 -# 2197| v2197_12(void) = ExitFunction : +# 2231| void static_variable_with_destructor_3() +# 2231| Block 0 +# 2231| v2231_1(void) = EnterFunction : +# 2231| m2231_2(unknown) = AliasedDefinition : +# 2231| m2231_3(unknown) = InitializeNonLocal : +# 2231| m2231_4(unknown) = Chi : total:m2231_2, partial:m2231_3 +# 2232| r2232_1(glval<ClassWithDestructor>) = VariableAddress[a] : +# 2232| m2232_2(ClassWithDestructor) = Uninitialized[a] : &:r2232_1 +# 2232| r2232_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2232| v2232_4(void) = Call[ClassWithDestructor] : func:r2232_3, this:r2232_1 +# 2232| m2232_5(unknown) = ^CallSideEffect : ~m2231_4 +# 2232| m2232_6(unknown) = Chi : total:m2231_4, partial:m2232_5 +# 2232| m2232_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2232_1 +# 2232| m2232_8(ClassWithDestructor) = Chi : total:m2232_2, partial:m2232_7 +# 2233| r2233_1(glval<ClassWithDestructor>) = VariableAddress[b] : +# 2233| m2233_2(ClassWithDestructor) = Uninitialized[b] : &:r2233_1 +# 2233| r2233_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2233| v2233_4(void) = Call[ClassWithDestructor] : func:r2233_3, this:r2233_1 +# 2233| m2233_5(unknown) = ^CallSideEffect : ~m2232_6 +# 2233| m2233_6(unknown) = Chi : total:m2232_6, partial:m2233_5 +# 2233| m2233_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2233_1 +# 2233| m2233_8(ClassWithDestructor) = Chi : total:m2233_2, partial:m2233_7 +# 2234| r2234_1(glval<bool>) = VariableAddress[c#init] : +# 2234| r2234_2(bool) = Load[c#init] : &:r2234_1, ~m2233_6 +# 2234| v2234_3(void) = ConditionalBranch : r2234_2 +#-----| False -> Block 1 +#-----| True -> Block 2 -# 2197| void vacuous_destructor_call::call_destructor<int>(int&) -# 2197| Block 0 -# 2197| v2197_1(void) = EnterFunction : -# 2197| m2197_2(unknown) = AliasedDefinition : -# 2197| m2197_3(unknown) = InitializeNonLocal : -# 2197| m2197_4(unknown) = Chi : total:m2197_2, partial:m2197_3 -# 2197| r2197_5(glval<int &>) = VariableAddress[t] : -# 2197| m2197_6(int &) = InitializeParameter[t] : &:r2197_5 -# 2197| r2197_7(int &) = Load[t] : &:r2197_5, m2197_6 -# 2197| m2197_8(unknown) = InitializeIndirection[t] : &:r2197_7 -# 2198| r2198_1(glval<unknown>) = FunctionAddress[get] : -# 2198| r2198_2(glval<int &>) = VariableAddress[t] : -# 2198| r2198_3(int &) = Load[t] : &:r2198_2, m2197_6 -# 2198| r2198_4(glval<int>) = CopyValue : r2198_3 -# 2198| r2198_5(int &) = CopyValue : r2198_4 -# 2198| r2198_6(int &) = Call[get] : func:r2198_1, 0:r2198_5 -# 2198| m2198_7(unknown) = ^CallSideEffect : ~m2197_4 -# 2198| m2198_8(unknown) = Chi : total:m2197_4, partial:m2198_7 -# 2198| v2198_9(void) = ^BufferReadSideEffect[0] : &:r2198_5, ~m2197_8 -# 2198| m2198_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2198_5 -# 2198| m2198_11(unknown) = Chi : total:m2197_8, partial:m2198_10 -# 2198| r2198_12(glval<int>) = CopyValue : r2198_6 -# 2199| v2199_1(void) = NoOp : -# 2197| v2197_9(void) = ReturnIndirection[t] : &:r2197_7, m2198_11 -# 2197| v2197_10(void) = ReturnVoid : -# 2197| v2197_11(void) = AliasedUse : ~m2198_8 -# 2197| v2197_12(void) = ExitFunction : +# 2234| Block 1 +# 2234| r2234_4(glval<ClassWithDestructor>) = VariableAddress[c] : +#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2234_4 +#-----| m0_3(unknown) = ^CallSideEffect : ~m2233_6 +#-----| m0_4(unknown) = Chi : total:m2233_6, partial:m0_3 +#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_4 +#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5 +# 2234| r2234_5(bool) = Constant[1] : +# 2234| m2234_6(bool) = Store[c#init] : &:r2234_1, r2234_5 +# 2234| m2234_7(unknown) = Chi : total:m0_6, partial:m2234_6 +#-----| Goto -> Block 2 -# 2201| void vacuous_destructor_call::non_vacuous_destructor_call() -# 2201| Block 0 -# 2201| v2201_1(void) = EnterFunction : -# 2201| m2201_2(unknown) = AliasedDefinition : -# 2201| m2201_3(unknown) = InitializeNonLocal : -# 2201| m2201_4(unknown) = Chi : total:m2201_2, partial:m2201_3 -# 2202| r2202_1(glval<ClassWithDestructor>) = VariableAddress[c] : -# 2202| m2202_2(ClassWithDestructor) = Uninitialized[c] : &:r2202_1 -# 2202| r2202_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2202| v2202_4(void) = Call[ClassWithDestructor] : func:r2202_3, this:r2202_1 -# 2202| m2202_5(unknown) = ^CallSideEffect : ~m2201_4 -# 2202| m2202_6(unknown) = Chi : total:m2201_4, partial:m2202_5 -# 2202| m2202_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2202_1 -# 2202| m2202_8(ClassWithDestructor) = Chi : total:m2202_2, partial:m2202_7 -# 2203| r2203_1(glval<unknown>) = FunctionAddress[call_destructor] : -# 2203| r2203_2(glval<ClassWithDestructor>) = VariableAddress[c] : -# 2203| r2203_3(ClassWithDestructor &) = CopyValue : r2203_2 -# 2203| v2203_4(void) = Call[call_destructor] : func:r2203_1, 0:r2203_3 -# 2203| m2203_5(unknown) = ^CallSideEffect : ~m2202_6 -# 2203| m2203_6(unknown) = Chi : total:m2202_6, partial:m2203_5 -# 2203| v2203_7(void) = ^BufferReadSideEffect[0] : &:r2203_3, ~m2202_8 -# 2203| m2203_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r2203_3 -# 2203| m2203_9(ClassWithDestructor) = Chi : total:m2202_8, partial:m2203_8 -# 2204| v2204_1(void) = NoOp : -# 2204| r2204_2(glval<ClassWithDestructor>) = VariableAddress[c] : -# 2204| r2204_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2204| v2204_4(void) = Call[~ClassWithDestructor] : func:r2204_3, this:r2204_2 -# 2204| m2204_5(unknown) = ^CallSideEffect : ~m2203_6 -# 2204| m2204_6(unknown) = Chi : total:m2203_6, partial:m2204_5 -# 2204| v2204_7(void) = ^IndirectReadSideEffect[-1] : &:r2204_2, m2203_9 -# 2204| m2204_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_2 -# 2204| m2204_9(ClassWithDestructor) = Chi : total:m2203_9, partial:m2204_8 -# 2201| v2201_5(void) = ReturnVoid : -# 2201| v2201_6(void) = AliasedUse : ~m2204_6 -# 2201| v2201_7(void) = ExitFunction : +# 2235| Block 2 +# 2235| m2235_1(unknown) = Phi : from 0:~m2233_6, from 1:~m2234_7 +# 2235| v2235_2(void) = NoOp : +# 2235| r2235_3(glval<ClassWithDestructor>) = VariableAddress[b] : +# 2235| r2235_4(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2235| v2235_5(void) = Call[~ClassWithDestructor] : func:r2235_4, this:r2235_3 +# 2235| m2235_6(unknown) = ^CallSideEffect : ~m2235_1 +# 2235| m2235_7(unknown) = Chi : total:m2235_1, partial:m2235_6 +# 2235| v2235_8(void) = ^IndirectReadSideEffect[-1] : &:r2235_3, m2233_8 +# 2235| m2235_9(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2235_3 +# 2235| m2235_10(ClassWithDestructor) = Chi : total:m2233_8, partial:m2235_9 +# 2235| r2235_11(glval<ClassWithDestructor>) = VariableAddress[a] : +# 2235| r2235_12(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2235| v2235_13(void) = Call[~ClassWithDestructor] : func:r2235_12, this:r2235_11 +# 2235| m2235_14(unknown) = ^CallSideEffect : ~m2235_7 +# 2235| m2235_15(unknown) = Chi : total:m2235_7, partial:m2235_14 +# 2235| v2235_16(void) = ^IndirectReadSideEffect[-1] : &:r2235_11, m2232_8 +# 2235| m2235_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2235_11 +# 2235| m2235_18(ClassWithDestructor) = Chi : total:m2232_8, partial:m2235_17 +# 2231| v2231_5(void) = ReturnVoid : +# 2231| v2231_6(void) = AliasedUse : ~m2235_15 +# 2231| v2231_7(void) = ExitFunction : -# 2206| void vacuous_destructor_call::vacuous_destructor_call() -# 2206| Block 0 -# 2206| v2206_1(void) = EnterFunction : -# 2206| m2206_2(unknown) = AliasedDefinition : -# 2206| m2206_3(unknown) = InitializeNonLocal : -# 2206| m2206_4(unknown) = Chi : total:m2206_2, partial:m2206_3 -# 2207| r2207_1(glval<int>) = VariableAddress[i] : -# 2207| m2207_2(int) = Uninitialized[i] : &:r2207_1 -# 2208| r2208_1(glval<unknown>) = FunctionAddress[call_destructor] : -# 2208| r2208_2(glval<int>) = VariableAddress[i] : -# 2208| r2208_3(int &) = CopyValue : r2208_2 -# 2208| v2208_4(void) = Call[call_destructor] : func:r2208_1, 0:r2208_3 -# 2208| m2208_5(unknown) = ^CallSideEffect : ~m2206_4 -# 2208| m2208_6(unknown) = Chi : total:m2206_4, partial:m2208_5 -# 2208| v2208_7(void) = ^BufferReadSideEffect[0] : &:r2208_3, ~m2207_2 -# 2208| m2208_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r2208_3 -# 2208| m2208_9(int) = Chi : total:m2207_2, partial:m2208_8 -# 2209| v2209_1(void) = NoOp : -# 2206| v2206_5(void) = ReturnVoid : -# 2206| v2206_6(void) = AliasedUse : ~m2208_6 -# 2206| v2206_7(void) = ExitFunction : +# 2237| ClassWithDestructor global_class_with_destructor +# 2237| Block 0 +# 2237| v2237_1(void) = EnterFunction : +# 2237| m2237_2(unknown) = AliasedDefinition : +# 2237| r2237_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] : +# 2237| r2237_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2237| v2237_5(void) = Call[ClassWithDestructor] : func:r2237_4, this:r2237_3 +# 2237| m2237_6(unknown) = ^CallSideEffect : ~m2237_2 +# 2237| m2237_7(unknown) = Chi : total:m2237_2, partial:m2237_6 +# 2237| m2237_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2237_3 +# 2237| m2237_9(unknown) = Chi : total:m2237_7, partial:m2237_8 +# 2237| v2237_10(void) = ReturnVoid : +# 2237| v2237_11(void) = AliasedUse : ~m2237_9 +# 2237| v2237_12(void) = ExitFunction : -# 2212| void TryCatchDestructors(bool) -# 2212| Block 0 -# 2212| v2212_1(void) = EnterFunction : -# 2212| m2212_2(unknown) = AliasedDefinition : -# 2212| m2212_3(unknown) = InitializeNonLocal : -# 2212| m2212_4(unknown) = Chi : total:m2212_2, partial:m2212_3 -# 2212| r2212_5(glval<bool>) = VariableAddress[b] : -# 2212| m2212_6(bool) = InitializeParameter[b] : &:r2212_5 -# 2214| r2214_1(glval<String>) = VariableAddress[s] : -# 2214| m2214_2(String) = Uninitialized[s] : &:r2214_1 -# 2214| r2214_3(glval<unknown>) = FunctionAddress[String] : -# 2214| v2214_4(void) = Call[String] : func:r2214_3, this:r2214_1 -# 2214| m2214_5(unknown) = ^CallSideEffect : ~m2212_4 -# 2214| m2214_6(unknown) = Chi : total:m2212_4, partial:m2214_5 -# 2214| m2214_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2214_1 -# 2214| m2214_8(String) = Chi : total:m2214_2, partial:m2214_7 -# 2215| r2215_1(glval<bool>) = VariableAddress[b] : -# 2215| r2215_2(bool) = Load[b] : &:r2215_1, m2212_6 -# 2215| v2215_3(void) = ConditionalBranch : r2215_2 +# 2241| ClassWithDestructor& vacuous_destructor_call::get<ClassWithDestructor>(ClassWithDestructor&) +# 2241| Block 0 +# 2241| v2241_1(void) = EnterFunction : +# 2241| m2241_2(unknown) = AliasedDefinition : +# 2241| m2241_3(unknown) = InitializeNonLocal : +# 2241| m2241_4(unknown) = Chi : total:m2241_2, partial:m2241_3 +# 2241| r2241_5(glval<ClassWithDestructor &>) = VariableAddress[t] : +# 2241| m2241_6(ClassWithDestructor &) = InitializeParameter[t] : &:r2241_5 +# 2241| r2241_7(ClassWithDestructor &) = Load[t] : &:r2241_5, m2241_6 +# 2241| m2241_8(unknown) = InitializeIndirection[t] : &:r2241_7 +# 2241| r2241_9(glval<ClassWithDestructor &>) = VariableAddress[#return] : +# 2241| r2241_10(glval<ClassWithDestructor &>) = VariableAddress[t] : +# 2241| r2241_11(ClassWithDestructor &) = Load[t] : &:r2241_10, m2241_6 +# 2241| r2241_12(glval<ClassWithDestructor>) = CopyValue : r2241_11 +# 2241| r2241_13(ClassWithDestructor &) = CopyValue : r2241_12 +# 2241| m2241_14(ClassWithDestructor &) = Store[#return] : &:r2241_9, r2241_13 +# 2241| v2241_15(void) = ReturnIndirection[t] : &:r2241_7, m2241_8 +# 2241| r2241_16(glval<ClassWithDestructor &>) = VariableAddress[#return] : +# 2241| v2241_17(void) = ReturnValue : &:r2241_16, m2241_14 +# 2241| v2241_18(void) = AliasedUse : m2241_3 +# 2241| v2241_19(void) = ExitFunction : + +# 2241| int& vacuous_destructor_call::get<int>(int&) +# 2241| Block 0 +# 2241| v2241_1(void) = EnterFunction : +# 2241| m2241_2(unknown) = AliasedDefinition : +# 2241| m2241_3(unknown) = InitializeNonLocal : +# 2241| m2241_4(unknown) = Chi : total:m2241_2, partial:m2241_3 +# 2241| r2241_5(glval<int &>) = VariableAddress[t] : +# 2241| m2241_6(int &) = InitializeParameter[t] : &:r2241_5 +# 2241| r2241_7(int &) = Load[t] : &:r2241_5, m2241_6 +# 2241| m2241_8(unknown) = InitializeIndirection[t] : &:r2241_7 +# 2241| r2241_9(glval<int &>) = VariableAddress[#return] : +# 2241| r2241_10(glval<int &>) = VariableAddress[t] : +# 2241| r2241_11(int &) = Load[t] : &:r2241_10, m2241_6 +# 2241| r2241_12(glval<int>) = CopyValue : r2241_11 +# 2241| r2241_13(int &) = CopyValue : r2241_12 +# 2241| m2241_14(int &) = Store[#return] : &:r2241_9, r2241_13 +# 2241| v2241_15(void) = ReturnIndirection[t] : &:r2241_7, m2241_8 +# 2241| r2241_16(glval<int &>) = VariableAddress[#return] : +# 2241| v2241_17(void) = ReturnValue : &:r2241_16, m2241_14 +# 2241| v2241_18(void) = AliasedUse : m2241_3 +# 2241| v2241_19(void) = ExitFunction : + +# 2244| void vacuous_destructor_call::call_destructor<ClassWithDestructor>(ClassWithDestructor&) +# 2244| Block 0 +# 2244| v2244_1(void) = EnterFunction : +# 2244| m2244_2(unknown) = AliasedDefinition : +# 2244| m2244_3(unknown) = InitializeNonLocal : +# 2244| m2244_4(unknown) = Chi : total:m2244_2, partial:m2244_3 +# 2244| r2244_5(glval<ClassWithDestructor &>) = VariableAddress[t] : +# 2244| m2244_6(ClassWithDestructor &) = InitializeParameter[t] : &:r2244_5 +# 2244| r2244_7(ClassWithDestructor &) = Load[t] : &:r2244_5, m2244_6 +# 2244| m2244_8(unknown) = InitializeIndirection[t] : &:r2244_7 +# 2245| r2245_1(glval<unknown>) = FunctionAddress[get] : +# 2245| r2245_2(glval<ClassWithDestructor &>) = VariableAddress[t] : +# 2245| r2245_3(ClassWithDestructor &) = Load[t] : &:r2245_2, m2244_6 +# 2245| r2245_4(glval<ClassWithDestructor>) = CopyValue : r2245_3 +# 2245| r2245_5(ClassWithDestructor &) = CopyValue : r2245_4 +# 2245| r2245_6(ClassWithDestructor &) = Call[get] : func:r2245_1, 0:r2245_5 +# 2245| m2245_7(unknown) = ^CallSideEffect : ~m2244_4 +# 2245| m2245_8(unknown) = Chi : total:m2244_4, partial:m2245_7 +# 2245| v2245_9(void) = ^BufferReadSideEffect[0] : &:r2245_5, ~m2244_8 +# 2245| m2245_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2245_5 +# 2245| m2245_11(unknown) = Chi : total:m2244_8, partial:m2245_10 +# 2245| r2245_12(glval<ClassWithDestructor>) = CopyValue : r2245_6 +# 2245| r2245_13(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2245| v2245_14(void) = Call[~ClassWithDestructor] : func:r2245_13 +# 2245| m2245_15(unknown) = ^CallSideEffect : ~m2245_8 +# 2245| m2245_16(unknown) = Chi : total:m2245_8, partial:m2245_15 +# 2245| v2245_17(void) = ^IndirectReadSideEffect[-1] : &:r2245_12, ~m2245_11 +# 2245| m2245_18(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2245_12 +# 2245| m2245_19(unknown) = Chi : total:m2245_11, partial:m2245_18 +# 2246| v2246_1(void) = NoOp : +# 2244| v2244_9(void) = ReturnIndirection[t] : &:r2244_7, m2245_19 +# 2244| v2244_10(void) = ReturnVoid : +# 2244| v2244_11(void) = AliasedUse : ~m2245_16 +# 2244| v2244_12(void) = ExitFunction : + +# 2244| void vacuous_destructor_call::call_destructor<int>(int&) +# 2244| Block 0 +# 2244| v2244_1(void) = EnterFunction : +# 2244| m2244_2(unknown) = AliasedDefinition : +# 2244| m2244_3(unknown) = InitializeNonLocal : +# 2244| m2244_4(unknown) = Chi : total:m2244_2, partial:m2244_3 +# 2244| r2244_5(glval<int &>) = VariableAddress[t] : +# 2244| m2244_6(int &) = InitializeParameter[t] : &:r2244_5 +# 2244| r2244_7(int &) = Load[t] : &:r2244_5, m2244_6 +# 2244| m2244_8(unknown) = InitializeIndirection[t] : &:r2244_7 +# 2245| r2245_1(glval<unknown>) = FunctionAddress[get] : +# 2245| r2245_2(glval<int &>) = VariableAddress[t] : +# 2245| r2245_3(int &) = Load[t] : &:r2245_2, m2244_6 +# 2245| r2245_4(glval<int>) = CopyValue : r2245_3 +# 2245| r2245_5(int &) = CopyValue : r2245_4 +# 2245| r2245_6(int &) = Call[get] : func:r2245_1, 0:r2245_5 +# 2245| m2245_7(unknown) = ^CallSideEffect : ~m2244_4 +# 2245| m2245_8(unknown) = Chi : total:m2244_4, partial:m2245_7 +# 2245| v2245_9(void) = ^BufferReadSideEffect[0] : &:r2245_5, ~m2244_8 +# 2245| m2245_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r2245_5 +# 2245| m2245_11(unknown) = Chi : total:m2244_8, partial:m2245_10 +# 2245| r2245_12(glval<int>) = CopyValue : r2245_6 +# 2246| v2246_1(void) = NoOp : +# 2244| v2244_9(void) = ReturnIndirection[t] : &:r2244_7, m2245_11 +# 2244| v2244_10(void) = ReturnVoid : +# 2244| v2244_11(void) = AliasedUse : ~m2245_8 +# 2244| v2244_12(void) = ExitFunction : + +# 2248| void vacuous_destructor_call::non_vacuous_destructor_call() +# 2248| Block 0 +# 2248| v2248_1(void) = EnterFunction : +# 2248| m2248_2(unknown) = AliasedDefinition : +# 2248| m2248_3(unknown) = InitializeNonLocal : +# 2248| m2248_4(unknown) = Chi : total:m2248_2, partial:m2248_3 +# 2249| r2249_1(glval<ClassWithDestructor>) = VariableAddress[c] : +# 2249| m2249_2(ClassWithDestructor) = Uninitialized[c] : &:r2249_1 +# 2249| r2249_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2249| v2249_4(void) = Call[ClassWithDestructor] : func:r2249_3, this:r2249_1 +# 2249| m2249_5(unknown) = ^CallSideEffect : ~m2248_4 +# 2249| m2249_6(unknown) = Chi : total:m2248_4, partial:m2249_5 +# 2249| m2249_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2249_1 +# 2249| m2249_8(ClassWithDestructor) = Chi : total:m2249_2, partial:m2249_7 +# 2250| r2250_1(glval<unknown>) = FunctionAddress[call_destructor] : +# 2250| r2250_2(glval<ClassWithDestructor>) = VariableAddress[c] : +# 2250| r2250_3(ClassWithDestructor &) = CopyValue : r2250_2 +# 2250| v2250_4(void) = Call[call_destructor] : func:r2250_1, 0:r2250_3 +# 2250| m2250_5(unknown) = ^CallSideEffect : ~m2249_6 +# 2250| m2250_6(unknown) = Chi : total:m2249_6, partial:m2250_5 +# 2250| v2250_7(void) = ^BufferReadSideEffect[0] : &:r2250_3, ~m2249_8 +# 2250| m2250_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r2250_3 +# 2250| m2250_9(ClassWithDestructor) = Chi : total:m2249_8, partial:m2250_8 +# 2251| v2251_1(void) = NoOp : +# 2251| r2251_2(glval<ClassWithDestructor>) = VariableAddress[c] : +# 2251| r2251_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2251| v2251_4(void) = Call[~ClassWithDestructor] : func:r2251_3, this:r2251_2 +# 2251| m2251_5(unknown) = ^CallSideEffect : ~m2250_6 +# 2251| m2251_6(unknown) = Chi : total:m2250_6, partial:m2251_5 +# 2251| v2251_7(void) = ^IndirectReadSideEffect[-1] : &:r2251_2, m2250_9 +# 2251| m2251_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2251_2 +# 2251| m2251_9(ClassWithDestructor) = Chi : total:m2250_9, partial:m2251_8 +# 2248| v2248_5(void) = ReturnVoid : +# 2248| v2248_6(void) = AliasedUse : ~m2251_6 +# 2248| v2248_7(void) = ExitFunction : + +# 2253| void vacuous_destructor_call::vacuous_destructor_call() +# 2253| Block 0 +# 2253| v2253_1(void) = EnterFunction : +# 2253| m2253_2(unknown) = AliasedDefinition : +# 2253| m2253_3(unknown) = InitializeNonLocal : +# 2253| m2253_4(unknown) = Chi : total:m2253_2, partial:m2253_3 +# 2254| r2254_1(glval<int>) = VariableAddress[i] : +# 2254| m2254_2(int) = Uninitialized[i] : &:r2254_1 +# 2255| r2255_1(glval<unknown>) = FunctionAddress[call_destructor] : +# 2255| r2255_2(glval<int>) = VariableAddress[i] : +# 2255| r2255_3(int &) = CopyValue : r2255_2 +# 2255| v2255_4(void) = Call[call_destructor] : func:r2255_1, 0:r2255_3 +# 2255| m2255_5(unknown) = ^CallSideEffect : ~m2253_4 +# 2255| m2255_6(unknown) = Chi : total:m2253_4, partial:m2255_5 +# 2255| v2255_7(void) = ^BufferReadSideEffect[0] : &:r2255_3, ~m2254_2 +# 2255| m2255_8(unknown) = ^BufferMayWriteSideEffect[0] : &:r2255_3 +# 2255| m2255_9(int) = Chi : total:m2254_2, partial:m2255_8 +# 2256| v2256_1(void) = NoOp : +# 2253| v2253_5(void) = ReturnVoid : +# 2253| v2253_6(void) = AliasedUse : ~m2255_6 +# 2253| v2253_7(void) = ExitFunction : + +# 2259| void TryCatchDestructors(bool) +# 2259| Block 0 +# 2259| v2259_1(void) = EnterFunction : +# 2259| m2259_2(unknown) = AliasedDefinition : +# 2259| m2259_3(unknown) = InitializeNonLocal : +# 2259| m2259_4(unknown) = Chi : total:m2259_2, partial:m2259_3 +# 2259| r2259_5(glval<bool>) = VariableAddress[b] : +# 2259| m2259_6(bool) = InitializeParameter[b] : &:r2259_5 +# 2261| r2261_1(glval<String>) = VariableAddress[s] : +# 2261| m2261_2(String) = Uninitialized[s] : &:r2261_1 +# 2261| r2261_3(glval<unknown>) = FunctionAddress[String] : +# 2261| v2261_4(void) = Call[String] : func:r2261_3, this:r2261_1 +# 2261| m2261_5(unknown) = ^CallSideEffect : ~m2259_4 +# 2261| m2261_6(unknown) = Chi : total:m2259_4, partial:m2261_5 +# 2261| m2261_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2261_1 +# 2261| m2261_8(String) = Chi : total:m2261_2, partial:m2261_7 +# 2262| r2262_1(glval<bool>) = VariableAddress[b] : +# 2262| r2262_2(bool) = Load[b] : &:r2262_1, m2259_6 +# 2262| v2262_3(void) = ConditionalBranch : r2262_2 #-----| False -> Block 4 #-----| True -> Block 3 -# 2212| Block 1 -# 2212| m2212_7(unknown) = Phi : from 2:~m2212_10, from 10:~m2228_1 -# 2212| v2212_8(void) = AliasedUse : ~m2212_7 -# 2212| v2212_9(void) = ExitFunction : +# 2259| Block 1 +# 2259| m2259_7(unknown) = Phi : from 2:~m2259_10, from 10:~m2275_1 +# 2259| v2259_8(void) = AliasedUse : ~m2259_7 +# 2259| v2259_9(void) = ExitFunction : -# 2212| Block 2 -# 2212| m2212_10(unknown) = Phi : from 6:~m2221_8, from 9:~m2214_6 -# 2212| v2212_11(void) = Unwind : +# 2259| Block 2 +# 2259| m2259_10(unknown) = Phi : from 6:~m2268_8, from 9:~m2261_6 +# 2259| v2259_11(void) = Unwind : #-----| Goto -> Block 1 -# 2216| Block 3 -# 2216| r2216_1(glval<char *>) = VariableAddress[#throw2216:7] : -# 2216| r2216_2(glval<char[15]>) = StringConstant["string literal"] : -# 2216| r2216_3(char *) = Convert : r2216_2 -# 2216| m2216_4(char *) = Store[#throw2216:7] : &:r2216_1, r2216_3 -# 2216| v2216_5(void) = ThrowValue : &:r2216_1, m2216_4 +# 2263| Block 3 +# 2263| r2263_1(glval<char *>) = VariableAddress[#throw2263:7] : +# 2263| r2263_2(glval<char[15]>) = StringConstant["string literal"] : +# 2263| r2263_3(char *) = Convert : r2263_2 +# 2263| m2263_4(char *) = Store[#throw2263:7] : &:r2263_1, r2263_3 +# 2263| v2263_5(void) = ThrowValue : &:r2263_1, m2263_4 #-----| Exception -> Block 5 -# 2218| Block 4 -# 2218| r2218_1(glval<String>) = VariableAddress[s2] : -# 2218| m2218_2(String) = Uninitialized[s2] : &:r2218_1 -# 2218| r2218_3(glval<unknown>) = FunctionAddress[String] : -# 2218| v2218_4(void) = Call[String] : func:r2218_3, this:r2218_1 -# 2218| m2218_5(unknown) = ^CallSideEffect : ~m2214_6 -# 2218| m2218_6(unknown) = Chi : total:m2214_6, partial:m2218_5 -# 2218| m2218_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2218_1 -# 2218| m2218_8(String) = Chi : total:m2218_2, partial:m2218_7 -# 2219| r2219_1(glval<String>) = VariableAddress[s2] : -# 2219| r2219_2(glval<unknown>) = FunctionAddress[~String] : -# 2219| v2219_3(void) = Call[~String] : func:r2219_2, this:r2219_1 -# 2219| m2219_4(unknown) = ^CallSideEffect : ~m2218_6 -# 2219| m2219_5(unknown) = Chi : total:m2218_6, partial:m2219_4 -# 2219| v2219_6(void) = ^IndirectReadSideEffect[-1] : &:r2219_1, m2218_8 -# 2219| m2219_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 -# 2219| m2219_8(String) = Chi : total:m2218_8, partial:m2219_7 -# 2219| r2219_9(glval<String>) = VariableAddress[s] : -# 2219| r2219_10(glval<unknown>) = FunctionAddress[~String] : -# 2219| v2219_11(void) = Call[~String] : func:r2219_10, this:r2219_9 -# 2219| m2219_12(unknown) = ^CallSideEffect : ~m2219_5 -# 2219| m2219_13(unknown) = Chi : total:m2219_5, partial:m2219_12 -# 2219| v2219_14(void) = ^IndirectReadSideEffect[-1] : &:r2219_9, m2214_8 -# 2219| m2219_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2219_9 -# 2219| m2219_16(String) = Chi : total:m2214_8, partial:m2219_15 +# 2265| Block 4 +# 2265| r2265_1(glval<String>) = VariableAddress[s2] : +# 2265| m2265_2(String) = Uninitialized[s2] : &:r2265_1 +# 2265| r2265_3(glval<unknown>) = FunctionAddress[String] : +# 2265| v2265_4(void) = Call[String] : func:r2265_3, this:r2265_1 +# 2265| m2265_5(unknown) = ^CallSideEffect : ~m2261_6 +# 2265| m2265_6(unknown) = Chi : total:m2261_6, partial:m2265_5 +# 2265| m2265_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2265_1 +# 2265| m2265_8(String) = Chi : total:m2265_2, partial:m2265_7 +# 2266| r2266_1(glval<String>) = VariableAddress[s2] : +# 2266| r2266_2(glval<unknown>) = FunctionAddress[~String] : +# 2266| v2266_3(void) = Call[~String] : func:r2266_2, this:r2266_1 +# 2266| m2266_4(unknown) = ^CallSideEffect : ~m2265_6 +# 2266| m2266_5(unknown) = Chi : total:m2265_6, partial:m2266_4 +# 2266| v2266_6(void) = ^IndirectReadSideEffect[-1] : &:r2266_1, m2265_8 +# 2266| m2266_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2266_1 +# 2266| m2266_8(String) = Chi : total:m2265_8, partial:m2266_7 +# 2266| r2266_9(glval<String>) = VariableAddress[s] : +# 2266| r2266_10(glval<unknown>) = FunctionAddress[~String] : +# 2266| v2266_11(void) = Call[~String] : func:r2266_10, this:r2266_9 +# 2266| m2266_12(unknown) = ^CallSideEffect : ~m2266_5 +# 2266| m2266_13(unknown) = Chi : total:m2266_5, partial:m2266_12 +# 2266| v2266_14(void) = ^IndirectReadSideEffect[-1] : &:r2266_9, m2261_8 +# 2266| m2266_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2266_9 +# 2266| m2266_16(String) = Chi : total:m2261_8, partial:m2266_15 #-----| Goto -> Block 10 -# 2220| Block 5 -# 2220| v2220_1(void) = CatchByType[const char *] : +# 2267| Block 5 +# 2267| v2267_1(void) = CatchByType[const char *] : #-----| Exception -> Block 7 #-----| Goto -> Block 6 -# 2220| Block 6 -# 2220| r2220_2(glval<char *>) = VariableAddress[s] : -# 2220| m2220_3(char *) = InitializeParameter[s] : &:r2220_2 -# 2220| r2220_4(char *) = Load[s] : &:r2220_2, m2220_3 -# 2220| m2220_5(unknown) = InitializeIndirection[s] : &:r2220_4 -# 2221| r2221_1(glval<String>) = VariableAddress[#throw2221:5] : -# 2221| m2221_2(String) = Uninitialized[#throw2221:5] : &:r2221_1 -# 2221| r2221_3(glval<unknown>) = FunctionAddress[String] : -# 2221| r2221_4(glval<char *>) = VariableAddress[s] : -# 2221| r2221_5(char *) = Load[s] : &:r2221_4, m2220_3 -# 2221| v2221_6(void) = Call[String] : func:r2221_3, this:r2221_1, 0:r2221_5 -# 2221| m2221_7(unknown) = ^CallSideEffect : ~m2214_6 -# 2221| m2221_8(unknown) = Chi : total:m2214_6, partial:m2221_7 -# 2221| v2221_9(void) = ^BufferReadSideEffect[0] : &:r2221_5, ~m2220_5 -# 2221| m2221_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2221_1 -# 2221| m2221_11(String) = Chi : total:m2221_2, partial:m2221_10 -# 2221| v2221_12(void) = ThrowValue : &:r2221_1, m2221_11 +# 2267| Block 6 +# 2267| r2267_2(glval<char *>) = VariableAddress[s] : +# 2267| m2267_3(char *) = InitializeParameter[s] : &:r2267_2 +# 2267| r2267_4(char *) = Load[s] : &:r2267_2, m2267_3 +# 2267| m2267_5(unknown) = InitializeIndirection[s] : &:r2267_4 +# 2268| r2268_1(glval<String>) = VariableAddress[#throw2268:5] : +# 2268| m2268_2(String) = Uninitialized[#throw2268:5] : &:r2268_1 +# 2268| r2268_3(glval<unknown>) = FunctionAddress[String] : +# 2268| r2268_4(glval<char *>) = VariableAddress[s] : +# 2268| r2268_5(char *) = Load[s] : &:r2268_4, m2267_3 +# 2268| v2268_6(void) = Call[String] : func:r2268_3, this:r2268_1, 0:r2268_5 +# 2268| m2268_7(unknown) = ^CallSideEffect : ~m2261_6 +# 2268| m2268_8(unknown) = Chi : total:m2261_6, partial:m2268_7 +# 2268| v2268_9(void) = ^BufferReadSideEffect[0] : &:r2268_5, ~m2267_5 +# 2268| m2268_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2268_1 +# 2268| m2268_11(String) = Chi : total:m2268_2, partial:m2268_10 +# 2268| v2268_12(void) = ThrowValue : &:r2268_1, m2268_11 #-----| Exception -> Block 2 -# 2223| Block 7 -# 2223| v2223_1(void) = CatchByType[const String &] : +# 2270| Block 7 +# 2270| v2270_1(void) = CatchByType[const String &] : #-----| Exception -> Block 9 #-----| Goto -> Block 8 -# 2223| Block 8 -# 2223| r2223_2(glval<String &>) = VariableAddress[e] : -# 2223| m2223_3(String &) = InitializeParameter[e] : &:r2223_2 -# 2223| r2223_4(String &) = Load[e] : &:r2223_2, m2223_3 -# 2223| m2223_5(unknown) = InitializeIndirection[e] : &:r2223_4 -# 2223| v2223_6(void) = NoOp : +# 2270| Block 8 +# 2270| r2270_2(glval<String &>) = VariableAddress[e] : +# 2270| m2270_3(String &) = InitializeParameter[e] : &:r2270_2 +# 2270| r2270_4(String &) = Load[e] : &:r2270_2, m2270_3 +# 2270| m2270_5(unknown) = InitializeIndirection[e] : &:r2270_4 +# 2270| v2270_6(void) = NoOp : #-----| Goto -> Block 10 -# 2225| Block 9 -# 2225| v2225_1(void) = CatchAny : -# 2226| v2226_1(void) = ReThrow : +# 2272| Block 9 +# 2272| v2272_1(void) = CatchAny : +# 2273| v2273_1(void) = ReThrow : #-----| Exception -> Block 2 -# 2228| Block 10 -# 2228| m2228_1(unknown) = Phi : from 4:~m2219_13, from 8:~m2214_6 -# 2228| v2228_2(void) = NoOp : -# 2212| v2212_12(void) = ReturnVoid : +# 2275| Block 10 +# 2275| m2275_1(unknown) = Phi : from 4:~m2266_13, from 8:~m2261_6 +# 2275| v2275_2(void) = NoOp : +# 2259| v2259_12(void) = ReturnVoid : #-----| Goto -> Block 1 -# 2230| void IfDestructors(bool) -# 2230| Block 0 -# 2230| v2230_1(void) = EnterFunction : -# 2230| m2230_2(unknown) = AliasedDefinition : -# 2230| m2230_3(unknown) = InitializeNonLocal : -# 2230| m2230_4(unknown) = Chi : total:m2230_2, partial:m2230_3 -# 2230| r2230_5(glval<bool>) = VariableAddress[b] : -# 2230| m2230_6(bool) = InitializeParameter[b] : &:r2230_5 -# 2231| r2231_1(glval<String>) = VariableAddress[s1] : -# 2231| m2231_2(String) = Uninitialized[s1] : &:r2231_1 -# 2231| r2231_3(glval<unknown>) = FunctionAddress[String] : -# 2231| v2231_4(void) = Call[String] : func:r2231_3, this:r2231_1 -# 2231| m2231_5(unknown) = ^CallSideEffect : ~m2230_4 -# 2231| m2231_6(unknown) = Chi : total:m2230_4, partial:m2231_5 -# 2231| m2231_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2231_1 -# 2231| m2231_8(String) = Chi : total:m2231_2, partial:m2231_7 -# 2232| r2232_1(glval<bool>) = VariableAddress[b] : -# 2232| r2232_2(bool) = Load[b] : &:r2232_1, m2230_6 -# 2232| v2232_3(void) = ConditionalBranch : r2232_2 +# 2277| void IfDestructors(bool) +# 2277| Block 0 +# 2277| v2277_1(void) = EnterFunction : +# 2277| m2277_2(unknown) = AliasedDefinition : +# 2277| m2277_3(unknown) = InitializeNonLocal : +# 2277| m2277_4(unknown) = Chi : total:m2277_2, partial:m2277_3 +# 2277| r2277_5(glval<bool>) = VariableAddress[b] : +# 2277| m2277_6(bool) = InitializeParameter[b] : &:r2277_5 +# 2278| r2278_1(glval<String>) = VariableAddress[s1] : +# 2278| m2278_2(String) = Uninitialized[s1] : &:r2278_1 +# 2278| r2278_3(glval<unknown>) = FunctionAddress[String] : +# 2278| v2278_4(void) = Call[String] : func:r2278_3, this:r2278_1 +# 2278| m2278_5(unknown) = ^CallSideEffect : ~m2277_4 +# 2278| m2278_6(unknown) = Chi : total:m2277_4, partial:m2278_5 +# 2278| m2278_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2278_1 +# 2278| m2278_8(String) = Chi : total:m2278_2, partial:m2278_7 +# 2279| r2279_1(glval<bool>) = VariableAddress[b] : +# 2279| r2279_2(bool) = Load[b] : &:r2279_1, m2277_6 +# 2279| v2279_3(void) = ConditionalBranch : r2279_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2233| Block 1 -# 2233| r2233_1(glval<String>) = VariableAddress[s2] : -# 2233| m2233_2(String) = Uninitialized[s2] : &:r2233_1 -# 2233| r2233_3(glval<unknown>) = FunctionAddress[String] : -# 2233| v2233_4(void) = Call[String] : func:r2233_3, this:r2233_1 -# 2233| m2233_5(unknown) = ^CallSideEffect : ~m2231_6 -# 2233| m2233_6(unknown) = Chi : total:m2231_6, partial:m2233_5 -# 2233| m2233_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2233_1 -# 2233| m2233_8(String) = Chi : total:m2233_2, partial:m2233_7 -# 2234| r2234_1(glval<String>) = VariableAddress[s2] : -# 2234| r2234_2(glval<unknown>) = FunctionAddress[~String] : -# 2234| v2234_3(void) = Call[~String] : func:r2234_2, this:r2234_1 -# 2234| m2234_4(unknown) = ^CallSideEffect : ~m2233_6 -# 2234| m2234_5(unknown) = Chi : total:m2233_6, partial:m2234_4 -# 2234| v2234_6(void) = ^IndirectReadSideEffect[-1] : &:r2234_1, m2233_8 -# 2234| m2234_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2234_1 -# 2234| m2234_8(String) = Chi : total:m2233_8, partial:m2234_7 +# 2280| Block 1 +# 2280| r2280_1(glval<String>) = VariableAddress[s2] : +# 2280| m2280_2(String) = Uninitialized[s2] : &:r2280_1 +# 2280| r2280_3(glval<unknown>) = FunctionAddress[String] : +# 2280| v2280_4(void) = Call[String] : func:r2280_3, this:r2280_1 +# 2280| m2280_5(unknown) = ^CallSideEffect : ~m2278_6 +# 2280| m2280_6(unknown) = Chi : total:m2278_6, partial:m2280_5 +# 2280| m2280_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2280_1 +# 2280| m2280_8(String) = Chi : total:m2280_2, partial:m2280_7 +# 2281| r2281_1(glval<String>) = VariableAddress[s2] : +# 2281| r2281_2(glval<unknown>) = FunctionAddress[~String] : +# 2281| v2281_3(void) = Call[~String] : func:r2281_2, this:r2281_1 +# 2281| m2281_4(unknown) = ^CallSideEffect : ~m2280_6 +# 2281| m2281_5(unknown) = Chi : total:m2280_6, partial:m2281_4 +# 2281| v2281_6(void) = ^IndirectReadSideEffect[-1] : &:r2281_1, m2280_8 +# 2281| m2281_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_1 +# 2281| m2281_8(String) = Chi : total:m2280_8, partial:m2281_7 #-----| Goto -> Block 3 -# 2235| Block 2 -# 2235| r2235_1(glval<String>) = VariableAddress[s3] : -# 2235| m2235_2(String) = Uninitialized[s3] : &:r2235_1 -# 2235| r2235_3(glval<unknown>) = FunctionAddress[String] : -# 2235| v2235_4(void) = Call[String] : func:r2235_3, this:r2235_1 -# 2235| m2235_5(unknown) = ^CallSideEffect : ~m2231_6 -# 2235| m2235_6(unknown) = Chi : total:m2231_6, partial:m2235_5 -# 2235| m2235_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2235_1 -# 2235| m2235_8(String) = Chi : total:m2235_2, partial:m2235_7 -# 2236| r2236_1(glval<String>) = VariableAddress[s3] : -# 2236| r2236_2(glval<unknown>) = FunctionAddress[~String] : -# 2236| v2236_3(void) = Call[~String] : func:r2236_2, this:r2236_1 -# 2236| m2236_4(unknown) = ^CallSideEffect : ~m2235_6 -# 2236| m2236_5(unknown) = Chi : total:m2235_6, partial:m2236_4 -# 2236| v2236_6(void) = ^IndirectReadSideEffect[-1] : &:r2236_1, m2235_8 -# 2236| m2236_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2236_1 -# 2236| m2236_8(String) = Chi : total:m2235_8, partial:m2236_7 +# 2282| Block 2 +# 2282| r2282_1(glval<String>) = VariableAddress[s3] : +# 2282| m2282_2(String) = Uninitialized[s3] : &:r2282_1 +# 2282| r2282_3(glval<unknown>) = FunctionAddress[String] : +# 2282| v2282_4(void) = Call[String] : func:r2282_3, this:r2282_1 +# 2282| m2282_5(unknown) = ^CallSideEffect : ~m2278_6 +# 2282| m2282_6(unknown) = Chi : total:m2278_6, partial:m2282_5 +# 2282| m2282_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2282_1 +# 2282| m2282_8(String) = Chi : total:m2282_2, partial:m2282_7 +# 2283| r2283_1(glval<String>) = VariableAddress[s3] : +# 2283| r2283_2(glval<unknown>) = FunctionAddress[~String] : +# 2283| v2283_3(void) = Call[~String] : func:r2283_2, this:r2283_1 +# 2283| m2283_4(unknown) = ^CallSideEffect : ~m2282_6 +# 2283| m2283_5(unknown) = Chi : total:m2282_6, partial:m2283_4 +# 2283| v2283_6(void) = ^IndirectReadSideEffect[-1] : &:r2283_1, m2282_8 +# 2283| m2283_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_1 +# 2283| m2283_8(String) = Chi : total:m2282_8, partial:m2283_7 #-----| Goto -> Block 3 -# 2237| Block 3 -# 2237| m2237_1(unknown) = Phi : from 1:~m2234_5, from 2:~m2236_5 -# 2237| r2237_2(glval<String>) = VariableAddress[s4] : -# 2237| m2237_3(String) = Uninitialized[s4] : &:r2237_2 -# 2237| r2237_4(glval<unknown>) = FunctionAddress[String] : -# 2237| v2237_5(void) = Call[String] : func:r2237_4, this:r2237_2 -# 2237| m2237_6(unknown) = ^CallSideEffect : ~m2237_1 -# 2237| m2237_7(unknown) = Chi : total:m2237_1, partial:m2237_6 -# 2237| m2237_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2237_2 -# 2237| m2237_9(String) = Chi : total:m2237_3, partial:m2237_8 -# 2238| v2238_1(void) = NoOp : -# 2238| r2238_2(glval<String>) = VariableAddress[s4] : -# 2238| r2238_3(glval<unknown>) = FunctionAddress[~String] : -# 2238| v2238_4(void) = Call[~String] : func:r2238_3, this:r2238_2 -# 2238| m2238_5(unknown) = ^CallSideEffect : ~m2237_7 -# 2238| m2238_6(unknown) = Chi : total:m2237_7, partial:m2238_5 -# 2238| v2238_7(void) = ^IndirectReadSideEffect[-1] : &:r2238_2, m2237_9 -# 2238| m2238_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2238_2 -# 2238| m2238_9(String) = Chi : total:m2237_9, partial:m2238_8 -# 2238| r2238_10(glval<String>) = VariableAddress[s1] : -# 2238| r2238_11(glval<unknown>) = FunctionAddress[~String] : -# 2238| v2238_12(void) = Call[~String] : func:r2238_11, this:r2238_10 -# 2238| m2238_13(unknown) = ^CallSideEffect : ~m2238_6 -# 2238| m2238_14(unknown) = Chi : total:m2238_6, partial:m2238_13 -# 2238| v2238_15(void) = ^IndirectReadSideEffect[-1] : &:r2238_10, m2231_8 -# 2238| m2238_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r2238_10 -# 2238| m2238_17(String) = Chi : total:m2231_8, partial:m2238_16 -# 2230| v2230_7(void) = ReturnVoid : -# 2230| v2230_8(void) = AliasedUse : ~m2238_14 -# 2230| v2230_9(void) = ExitFunction : +# 2284| Block 3 +# 2284| m2284_1(unknown) = Phi : from 1:~m2281_5, from 2:~m2283_5 +# 2284| r2284_2(glval<String>) = VariableAddress[s4] : +# 2284| m2284_3(String) = Uninitialized[s4] : &:r2284_2 +# 2284| r2284_4(glval<unknown>) = FunctionAddress[String] : +# 2284| v2284_5(void) = Call[String] : func:r2284_4, this:r2284_2 +# 2284| m2284_6(unknown) = ^CallSideEffect : ~m2284_1 +# 2284| m2284_7(unknown) = Chi : total:m2284_1, partial:m2284_6 +# 2284| m2284_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_2 +# 2284| m2284_9(String) = Chi : total:m2284_3, partial:m2284_8 +# 2285| v2285_1(void) = NoOp : +# 2285| r2285_2(glval<String>) = VariableAddress[s4] : +# 2285| r2285_3(glval<unknown>) = FunctionAddress[~String] : +# 2285| v2285_4(void) = Call[~String] : func:r2285_3, this:r2285_2 +# 2285| m2285_5(unknown) = ^CallSideEffect : ~m2284_7 +# 2285| m2285_6(unknown) = Chi : total:m2284_7, partial:m2285_5 +# 2285| v2285_7(void) = ^IndirectReadSideEffect[-1] : &:r2285_2, m2284_9 +# 2285| m2285_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2285_2 +# 2285| m2285_9(String) = Chi : total:m2284_9, partial:m2285_8 +# 2285| r2285_10(glval<String>) = VariableAddress[s1] : +# 2285| r2285_11(glval<unknown>) = FunctionAddress[~String] : +# 2285| v2285_12(void) = Call[~String] : func:r2285_11, this:r2285_10 +# 2285| m2285_13(unknown) = ^CallSideEffect : ~m2285_6 +# 2285| m2285_14(unknown) = Chi : total:m2285_6, partial:m2285_13 +# 2285| v2285_15(void) = ^IndirectReadSideEffect[-1] : &:r2285_10, m2278_8 +# 2285| m2285_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r2285_10 +# 2285| m2285_17(String) = Chi : total:m2278_8, partial:m2285_16 +# 2277| v2277_7(void) = ReturnVoid : +# 2277| v2277_8(void) = AliasedUse : ~m2285_14 +# 2277| v2277_9(void) = ExitFunction : -# 2240| void ForDestructors() -# 2240| Block 0 -# 2240| v2240_1(void) = EnterFunction : -# 2240| m2240_2(unknown) = AliasedDefinition : -# 2240| m2240_3(unknown) = InitializeNonLocal : -# 2240| m2240_4(unknown) = Chi : total:m2240_2, partial:m2240_3 -# 2241| r2241_1(glval<char>) = VariableAddress[c] : -# 2241| r2241_2(char) = Constant[97] : -# 2241| m2241_3(char) = Store[c] : &:r2241_1, r2241_2 -# 2242| r2242_1(glval<String>) = VariableAddress[s] : -# 2242| m2242_2(String) = Uninitialized[s] : &:r2242_1 -# 2242| r2242_3(glval<unknown>) = FunctionAddress[String] : -# 2242| r2242_4(glval<char[6]>) = StringConstant["hello"] : -# 2242| r2242_5(char *) = Convert : r2242_4 -# 2242| v2242_6(void) = Call[String] : func:r2242_3, this:r2242_1, 0:r2242_5 -# 2242| m2242_7(unknown) = ^CallSideEffect : ~m2240_4 -# 2242| m2242_8(unknown) = Chi : total:m2240_4, partial:m2242_7 -# 2242| v2242_9(void) = ^BufferReadSideEffect[0] : &:r2242_5, ~m2240_3 -# 2242| m2242_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2242_1 -# 2242| m2242_11(String) = Chi : total:m2242_2, partial:m2242_10 +# 2287| void ForDestructors() +# 2287| Block 0 +# 2287| v2287_1(void) = EnterFunction : +# 2287| m2287_2(unknown) = AliasedDefinition : +# 2287| m2287_3(unknown) = InitializeNonLocal : +# 2287| m2287_4(unknown) = Chi : total:m2287_2, partial:m2287_3 +# 2288| r2288_1(glval<char>) = VariableAddress[c] : +# 2288| r2288_2(char) = Constant[97] : +# 2288| m2288_3(char) = Store[c] : &:r2288_1, r2288_2 +# 2289| r2289_1(glval<String>) = VariableAddress[s] : +# 2289| m2289_2(String) = Uninitialized[s] : &:r2289_1 +# 2289| r2289_3(glval<unknown>) = FunctionAddress[String] : +# 2289| r2289_4(glval<char[6]>) = StringConstant["hello"] : +# 2289| r2289_5(char *) = Convert : r2289_4 +# 2289| v2289_6(void) = Call[String] : func:r2289_3, this:r2289_1, 0:r2289_5 +# 2289| m2289_7(unknown) = ^CallSideEffect : ~m2287_4 +# 2289| m2289_8(unknown) = Chi : total:m2287_4, partial:m2289_7 +# 2289| v2289_9(void) = ^BufferReadSideEffect[0] : &:r2289_5, ~m2287_3 +# 2289| m2289_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2289_1 +# 2289| m2289_11(String) = Chi : total:m2289_2, partial:m2289_10 #-----| Goto -> Block 1 -# 2242| Block 1 -# 2242| m2242_12(String) = Phi : from 0:m2242_11, from 2:m2242_28 -# 2242| m2242_13(unknown) = Phi : from 0:~m2242_8, from 2:~m2242_25 -# 2242| m2242_14(char) = Phi : from 0:m2241_3, from 2:m2242_30 -# 2242| r2242_15(glval<char>) = VariableAddress[c] : -# 2242| r2242_16(char) = Load[c] : &:r2242_15, m2242_14 -# 2242| r2242_17(int) = Convert : r2242_16 -# 2242| r2242_18(int) = Constant[0] : -# 2242| r2242_19(bool) = CompareNE : r2242_17, r2242_18 -# 2242| v2242_20(void) = ConditionalBranch : r2242_19 +# 2289| Block 1 +# 2289| m2289_12(String) = Phi : from 0:m2289_11, from 2:m2289_28 +# 2289| m2289_13(unknown) = Phi : from 0:~m2289_8, from 2:~m2289_25 +# 2289| m2289_14(char) = Phi : from 0:m2288_3, from 2:m2289_30 +# 2289| r2289_15(glval<char>) = VariableAddress[c] : +# 2289| r2289_16(char) = Load[c] : &:r2289_15, m2289_14 +# 2289| r2289_17(int) = Convert : r2289_16 +# 2289| r2289_18(int) = Constant[0] : +# 2289| r2289_19(bool) = CompareNE : r2289_17, r2289_18 +# 2289| v2289_20(void) = ConditionalBranch : r2289_19 #-----| False -> Block 3 #-----| True -> Block 2 -# 2243| Block 2 -# 2243| r2243_1(glval<String>) = VariableAddress[s2] : -# 2243| m2243_2(String) = Uninitialized[s2] : &:r2243_1 -# 2243| r2243_3(glval<unknown>) = FunctionAddress[String] : -# 2243| v2243_4(void) = Call[String] : func:r2243_3, this:r2243_1 -# 2243| m2243_5(unknown) = ^CallSideEffect : ~m2242_13 -# 2243| m2243_6(unknown) = Chi : total:m2242_13, partial:m2243_5 -# 2243| m2243_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2243_1 -# 2243| m2243_8(String) = Chi : total:m2243_2, partial:m2243_7 -# 2244| r2244_1(glval<String>) = VariableAddress[s2] : -# 2244| r2244_2(glval<unknown>) = FunctionAddress[~String] : -# 2244| v2244_3(void) = Call[~String] : func:r2244_2, this:r2244_1 -# 2244| m2244_4(unknown) = ^CallSideEffect : ~m2243_6 -# 2244| m2244_5(unknown) = Chi : total:m2243_6, partial:m2244_4 -# 2244| v2244_6(void) = ^IndirectReadSideEffect[-1] : &:r2244_1, m2243_8 -# 2244| m2244_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2244_1 -# 2244| m2244_8(String) = Chi : total:m2243_8, partial:m2244_7 -# 2242| r2242_21(glval<String>) = VariableAddress[s] : -# 2242| r2242_22(glval<unknown>) = FunctionAddress[pop_back] : -# 2242| r2242_23(char) = Call[pop_back] : func:r2242_22, this:r2242_21 -# 2242| m2242_24(unknown) = ^CallSideEffect : ~m2244_5 -# 2242| m2242_25(unknown) = Chi : total:m2244_5, partial:m2242_24 -# 2242| v2242_26(void) = ^IndirectReadSideEffect[-1] : &:r2242_21, m2242_12 -# 2242| m2242_27(String) = ^IndirectMayWriteSideEffect[-1] : &:r2242_21 -# 2242| m2242_28(String) = Chi : total:m2242_12, partial:m2242_27 -# 2242| r2242_29(glval<char>) = VariableAddress[c] : -# 2242| m2242_30(char) = Store[c] : &:r2242_29, r2242_23 +# 2290| Block 2 +# 2290| r2290_1(glval<String>) = VariableAddress[s2] : +# 2290| m2290_2(String) = Uninitialized[s2] : &:r2290_1 +# 2290| r2290_3(glval<unknown>) = FunctionAddress[String] : +# 2290| v2290_4(void) = Call[String] : func:r2290_3, this:r2290_1 +# 2290| m2290_5(unknown) = ^CallSideEffect : ~m2289_13 +# 2290| m2290_6(unknown) = Chi : total:m2289_13, partial:m2290_5 +# 2290| m2290_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2290_1 +# 2290| m2290_8(String) = Chi : total:m2290_2, partial:m2290_7 +# 2291| r2291_1(glval<String>) = VariableAddress[s2] : +# 2291| r2291_2(glval<unknown>) = FunctionAddress[~String] : +# 2291| v2291_3(void) = Call[~String] : func:r2291_2, this:r2291_1 +# 2291| m2291_4(unknown) = ^CallSideEffect : ~m2290_6 +# 2291| m2291_5(unknown) = Chi : total:m2290_6, partial:m2291_4 +# 2291| v2291_6(void) = ^IndirectReadSideEffect[-1] : &:r2291_1, m2290_8 +# 2291| m2291_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2291_1 +# 2291| m2291_8(String) = Chi : total:m2290_8, partial:m2291_7 +# 2289| r2289_21(glval<String>) = VariableAddress[s] : +# 2289| r2289_22(glval<unknown>) = FunctionAddress[pop_back] : +# 2289| r2289_23(char) = Call[pop_back] : func:r2289_22, this:r2289_21 +# 2289| m2289_24(unknown) = ^CallSideEffect : ~m2291_5 +# 2289| m2289_25(unknown) = Chi : total:m2291_5, partial:m2289_24 +# 2289| v2289_26(void) = ^IndirectReadSideEffect[-1] : &:r2289_21, m2289_12 +# 2289| m2289_27(String) = ^IndirectMayWriteSideEffect[-1] : &:r2289_21 +# 2289| m2289_28(String) = Chi : total:m2289_12, partial:m2289_27 +# 2289| r2289_29(glval<char>) = VariableAddress[c] : +# 2289| m2289_30(char) = Store[c] : &:r2289_29, r2289_23 #-----| Goto (back edge) -> Block 1 -# 2242| Block 3 -# 2242| r2242_31(glval<String>) = VariableAddress[s] : -# 2242| r2242_32(glval<unknown>) = FunctionAddress[~String] : -# 2242| v2242_33(void) = Call[~String] : func:r2242_32, this:r2242_31 -# 2242| m2242_34(unknown) = ^CallSideEffect : ~m2242_13 -# 2242| m2242_35(unknown) = Chi : total:m2242_13, partial:m2242_34 -# 2242| v2242_36(void) = ^IndirectReadSideEffect[-1] : &:r2242_31, m2242_12 -# 2242| m2242_37(String) = ^IndirectMayWriteSideEffect[-1] : &:r2242_31 -# 2242| m2242_38(String) = Chi : total:m2242_12, partial:m2242_37 -# 2246| r2246_1(glval<vector<String> &&>) = VariableAddress[(__range)] : -# 2246| r2246_2(glval<vector<String>>) = VariableAddress[#temp2246:20] : -# 2246| m2246_3(vector<String>) = Uninitialized[#temp2246:20] : &:r2246_2 -# 2246| r2246_4(glval<unknown>) = FunctionAddress[vector] : -# 2246| r2246_5(glval<String>) = VariableAddress[#temp2246:35] : -# 2246| m2246_6(String) = Uninitialized[#temp2246:35] : &:r2246_5 -# 2246| r2246_7(glval<unknown>) = FunctionAddress[String] : -# 2246| r2246_8(glval<char[6]>) = StringConstant["hello"] : -# 2246| r2246_9(char *) = Convert : r2246_8 -# 2246| v2246_10(void) = Call[String] : func:r2246_7, this:r2246_5, 0:r2246_9 -# 2246| m2246_11(unknown) = ^CallSideEffect : ~m2242_35 -# 2246| m2246_12(unknown) = Chi : total:m2242_35, partial:m2246_11 -# 2246| v2246_13(void) = ^BufferReadSideEffect[0] : &:r2246_9, ~m2240_3 -# 2246| m2246_14(String) = ^IndirectMayWriteSideEffect[-1] : &:r2246_5 -# 2246| m2246_15(String) = Chi : total:m2246_6, partial:m2246_14 -# 2246| r2246_16(String) = Load[#temp2246:35] : &:r2246_5, m2246_15 -# 2246| v2246_17(void) = Call[vector] : func:r2246_4, this:r2246_2, 0:r2246_16 -# 2246| m2246_18(unknown) = ^CallSideEffect : ~m2246_12 -# 2246| m2246_19(unknown) = Chi : total:m2246_12, partial:m2246_18 -# 2246| m2246_20(vector<String>) = ^IndirectMayWriteSideEffect[-1] : &:r2246_2 -# 2246| m2246_21(vector<String>) = Chi : total:m2246_3, partial:m2246_20 -# 2246| r2246_22(vector<String> &) = CopyValue : r2246_2 -# 2246| m2246_23(vector<String> &&) = Store[(__range)] : &:r2246_1, r2246_22 -# 2246| r2246_24(glval<iterator>) = VariableAddress[(__begin)] : -# 2246| r2246_25(glval<vector<String> &&>) = VariableAddress[(__range)] : -# 2246| r2246_26(vector<String> &&) = Load[(__range)] : &:r2246_25, m2246_23 -#-----| r0_1(glval<vector<String>>) = CopyValue : r2246_26 -#-----| r0_2(glval<vector<String>>) = Convert : r0_1 -# 2246| r2246_27(glval<unknown>) = FunctionAddress[begin] : -# 2246| r2246_28(iterator) = Call[begin] : func:r2246_27, this:r0_2 -# 2246| m2246_29(unknown) = ^CallSideEffect : ~m2246_19 -# 2246| m2246_30(unknown) = Chi : total:m2246_19, partial:m2246_29 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2246_21 -# 2246| m2246_31(iterator) = Store[(__begin)] : &:r2246_24, r2246_28 -# 2246| r2246_32(glval<iterator>) = VariableAddress[(__end)] : -# 2246| r2246_33(glval<vector<String> &&>) = VariableAddress[(__range)] : -# 2246| r2246_34(vector<String> &&) = Load[(__range)] : &:r2246_33, m2246_23 -#-----| r0_4(glval<vector<String>>) = CopyValue : r2246_34 -#-----| r0_5(glval<vector<String>>) = Convert : r0_4 -# 2246| r2246_35(glval<unknown>) = FunctionAddress[end] : -# 2246| r2246_36(iterator) = Call[end] : func:r2246_35, this:r0_5 -# 2246| m2246_37(unknown) = ^CallSideEffect : ~m2246_30 -# 2246| m2246_38(unknown) = Chi : total:m2246_30, partial:m2246_37 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2246_21 -# 2246| m2246_39(iterator) = Store[(__end)] : &:r2246_32, r2246_36 +# 2289| Block 3 +# 2289| r2289_31(glval<String>) = VariableAddress[s] : +# 2289| r2289_32(glval<unknown>) = FunctionAddress[~String] : +# 2289| v2289_33(void) = Call[~String] : func:r2289_32, this:r2289_31 +# 2289| m2289_34(unknown) = ^CallSideEffect : ~m2289_13 +# 2289| m2289_35(unknown) = Chi : total:m2289_13, partial:m2289_34 +# 2289| v2289_36(void) = ^IndirectReadSideEffect[-1] : &:r2289_31, m2289_12 +# 2289| m2289_37(String) = ^IndirectMayWriteSideEffect[-1] : &:r2289_31 +# 2289| m2289_38(String) = Chi : total:m2289_12, partial:m2289_37 +# 2293| r2293_1(glval<vector<String> &&>) = VariableAddress[(__range)] : +# 2293| r2293_2(glval<vector<String>>) = VariableAddress[#temp2293:20] : +# 2293| m2293_3(vector<String>) = Uninitialized[#temp2293:20] : &:r2293_2 +# 2293| r2293_4(glval<unknown>) = FunctionAddress[vector] : +# 2293| r2293_5(glval<String>) = VariableAddress[#temp2293:40] : +# 2293| m2293_6(String) = Uninitialized[#temp2293:40] : &:r2293_5 +# 2293| r2293_7(glval<unknown>) = FunctionAddress[String] : +# 2293| r2293_8(glval<char[6]>) = StringConstant["hello"] : +# 2293| r2293_9(char *) = Convert : r2293_8 +# 2293| v2293_10(void) = Call[String] : func:r2293_7, this:r2293_5, 0:r2293_9 +# 2293| m2293_11(unknown) = ^CallSideEffect : ~m2289_35 +# 2293| m2293_12(unknown) = Chi : total:m2289_35, partial:m2293_11 +# 2293| v2293_13(void) = ^BufferReadSideEffect[0] : &:r2293_9, ~m2287_3 +# 2293| m2293_14(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_5 +# 2293| m2293_15(String) = Chi : total:m2293_6, partial:m2293_14 +# 2293| r2293_16(String) = Load[#temp2293:40] : &:r2293_5, m2293_15 +# 2293| v2293_17(void) = Call[vector] : func:r2293_4, this:r2293_2, 0:r2293_16 +# 2293| m2293_18(unknown) = ^CallSideEffect : ~m2293_12 +# 2293| m2293_19(unknown) = Chi : total:m2293_12, partial:m2293_18 +# 2293| m2293_20(vector<String>) = ^IndirectMayWriteSideEffect[-1] : &:r2293_2 +# 2293| m2293_21(vector<String>) = Chi : total:m2293_3, partial:m2293_20 +# 2293| r2293_22(vector<String> &) = CopyValue : r2293_2 +# 2293| m2293_23(vector<String> &&) = Store[(__range)] : &:r2293_1, r2293_22 +# 2293| r2293_24(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +# 2293| r2293_25(glval<vector<String> &&>) = VariableAddress[(__range)] : +# 2293| r2293_26(vector<String> &&) = Load[(__range)] : &:r2293_25, m2293_23 +#-----| r0_1(glval<vector<String>>) = CopyValue : r2293_26 +#-----| r0_2(glval<vector<String>>) = Convert : r0_1 +# 2293| r2293_27(glval<unknown>) = FunctionAddress[begin] : +# 2293| r2293_28(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[begin] : func:r2293_27, this:r0_2 +# 2293| m2293_29(unknown) = ^CallSideEffect : ~m2293_19 +# 2293| m2293_30(unknown) = Chi : total:m2293_19, partial:m2293_29 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2293_21 +# 2293| m2293_31(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__begin)] : &:r2293_24, r2293_28 +# 2293| r2293_32(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : +# 2293| r2293_33(glval<vector<String> &&>) = VariableAddress[(__range)] : +# 2293| r2293_34(vector<String> &&) = Load[(__range)] : &:r2293_33, m2293_23 +#-----| r0_4(glval<vector<String>>) = CopyValue : r2293_34 +#-----| r0_5(glval<vector<String>>) = Convert : r0_4 +# 2293| r2293_35(glval<unknown>) = FunctionAddress[end] : +# 2293| r2293_36(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[end] : func:r2293_35, this:r0_5 +# 2293| m2293_37(unknown) = ^CallSideEffect : ~m2293_30 +# 2293| m2293_38(unknown) = Chi : total:m2293_30, partial:m2293_37 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2293_21 +# 2293| m2293_39(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__end)] : &:r2293_32, r2293_36 #-----| Goto -> Block 4 -# 2246| Block 4 -# 2246| m2246_40(iterator) = Phi : from 3:m2246_31, from 5:m2246_82 -# 2246| m2246_41(unknown) = Phi : from 3:~m2246_38, from 5:~m2246_79 -# 2246| r2246_42(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator>) = Convert : r2246_42 -# 2246| r2246_43(glval<unknown>) = FunctionAddress[operator!=] : -# 2246| r2246_44(glval<iterator>) = VariableAddress[(__end)] : -# 2246| r2246_45(iterator) = Load[(__end)] : &:r2246_44, m2246_39 -# 2246| r2246_46(bool) = Call[operator!=] : func:r2246_43, this:r0_7, 0:r2246_45 -# 2246| m2246_47(unknown) = ^CallSideEffect : ~m2246_41 -# 2246| m2246_48(unknown) = Chi : total:m2246_41, partial:m2246_47 -#-----| v0_8(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2246_40 -# 2246| v2246_49(void) = ConditionalBranch : r2246_46 +# 2293| Block 4 +# 2293| m2293_40(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Phi : from 3:m2293_31, from 5:m2293_87 +# 2293| m2293_41(unknown) = Phi : from 3:~m2293_38, from 5:~m2293_84 +# 2293| r2293_42(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_42 +# 2293| r2293_43(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[#temp0:0] : +#-----| m0_9(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Uninitialized[#temp0:0] : &:r0_8 +# 2293| r2293_44(glval<unknown>) = FunctionAddress[iterator] : +# 2293| r2293_45(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_45 +#-----| r0_11(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = CopyValue : r0_10 +# 2293| v2293_46(void) = Call[iterator] : func:r2293_44, this:r0_8, 0:r0_11 +# 2293| m2293_47(unknown) = ^CallSideEffect : ~m2293_41 +# 2293| m2293_48(unknown) = Chi : total:m2293_41, partial:m2293_47 +#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m2293_39 +# 2293| m2293_49(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2293| m2293_50(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Chi : total:m0_9, partial:m2293_49 +#-----| r0_13(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Load[#temp0:0] : &:r0_8, m2293_50 +# 2293| r2293_51(bool) = Call[operator!=] : func:r2293_43, this:r0_7, 0:r0_13 +# 2293| m2293_52(unknown) = ^CallSideEffect : ~m2293_48 +# 2293| m2293_53(unknown) = Chi : total:m2293_48, partial:m2293_52 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2293_40 +# 2293| v2293_54(void) = ConditionalBranch : r2293_51 #-----| False -> Block 6 #-----| True -> Block 5 -# 2246| Block 5 -# 2246| r2246_50(glval<String>) = VariableAddress[s] : -# 2246| m2246_51(String) = Uninitialized[s] : &:r2246_50 -# 2246| r2246_52(glval<unknown>) = FunctionAddress[String] : -# 2246| r2246_53(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_9(glval<iterator>) = Convert : r2246_53 -# 2246| r2246_54(glval<unknown>) = FunctionAddress[operator*] : -# 2246| r2246_55(String &) = Call[operator*] : func:r2246_54, this:r0_9 -# 2246| m2246_56(unknown) = ^CallSideEffect : ~m2246_48 -# 2246| m2246_57(unknown) = Chi : total:m2246_48, partial:m2246_56 -#-----| v0_10(void) = ^IndirectReadSideEffect[-1] : &:r0_9, m2246_40 -# 2246| r2246_58(glval<String>) = CopyValue : r2246_55 -# 2246| r2246_59(glval<String>) = Convert : r2246_58 -# 2246| r2246_60(String &) = CopyValue : r2246_59 -# 2246| v2246_61(void) = Call[String] : func:r2246_52, this:r2246_50, 0:r2246_60 -# 2246| m2246_62(unknown) = ^CallSideEffect : ~m2246_57 -# 2246| m2246_63(unknown) = Chi : total:m2246_57, partial:m2246_62 -# 2246| v2246_64(void) = ^BufferReadSideEffect[0] : &:r2246_60, ~m2246_63 -# 2246| m2246_65(String) = ^IndirectMayWriteSideEffect[-1] : &:r2246_50 -# 2246| m2246_66(String) = Chi : total:m2246_51, partial:m2246_65 -# 2247| r2247_1(glval<String>) = VariableAddress[s2] : -# 2247| m2247_2(String) = Uninitialized[s2] : &:r2247_1 -# 2247| r2247_3(glval<unknown>) = FunctionAddress[String] : -# 2247| v2247_4(void) = Call[String] : func:r2247_3, this:r2247_1 -# 2247| m2247_5(unknown) = ^CallSideEffect : ~m2246_63 -# 2247| m2247_6(unknown) = Chi : total:m2246_63, partial:m2247_5 -# 2247| m2247_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2247_1 -# 2247| m2247_8(String) = Chi : total:m2247_2, partial:m2247_7 -# 2248| r2248_1(glval<String>) = VariableAddress[s2] : -# 2248| r2248_2(glval<unknown>) = FunctionAddress[~String] : -# 2248| v2248_3(void) = Call[~String] : func:r2248_2, this:r2248_1 -# 2248| m2248_4(unknown) = ^CallSideEffect : ~m2247_6 -# 2248| m2248_5(unknown) = Chi : total:m2247_6, partial:m2248_4 -# 2248| v2248_6(void) = ^IndirectReadSideEffect[-1] : &:r2248_1, m2247_8 -# 2248| m2248_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2248_1 -# 2248| m2248_8(String) = Chi : total:m2247_8, partial:m2248_7 -# 2246| r2246_67(glval<String>) = VariableAddress[s] : -# 2246| r2246_68(glval<unknown>) = FunctionAddress[~String] : -# 2246| v2246_69(void) = Call[~String] : func:r2246_68, this:r2246_67 -# 2246| m2246_70(unknown) = ^CallSideEffect : ~m2248_5 -# 2246| m2246_71(unknown) = Chi : total:m2248_5, partial:m2246_70 -# 2246| v2246_72(void) = ^IndirectReadSideEffect[-1] : &:r2246_67, m2246_66 -# 2246| m2246_73(String) = ^IndirectMayWriteSideEffect[-1] : &:r2246_67 -# 2246| m2246_74(String) = Chi : total:m2246_66, partial:m2246_73 -# 2246| r2246_75(glval<iterator>) = VariableAddress[(__begin)] : -# 2246| r2246_76(glval<unknown>) = FunctionAddress[operator++] : -# 2246| r2246_77(iterator &) = Call[operator++] : func:r2246_76, this:r2246_75 -# 2246| m2246_78(unknown) = ^CallSideEffect : ~m2246_71 -# 2246| m2246_79(unknown) = Chi : total:m2246_71, partial:m2246_78 -# 2246| v2246_80(void) = ^IndirectReadSideEffect[-1] : &:r2246_75, m2246_40 -# 2246| m2246_81(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2246_75 -# 2246| m2246_82(iterator) = Chi : total:m2246_40, partial:m2246_81 -# 2246| r2246_83(glval<iterator>) = CopyValue : r2246_77 +# 2293| Block 5 +# 2293| r2293_55(glval<String>) = VariableAddress[s] : +# 2293| m2293_56(String) = Uninitialized[s] : &:r2293_55 +# 2293| r2293_57(glval<unknown>) = FunctionAddress[String] : +# 2293| r2293_58(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_58 +# 2293| r2293_59(glval<unknown>) = FunctionAddress[operator*] : +# 2293| r2293_60(String &) = Call[operator*] : func:r2293_59, this:r0_15 +# 2293| m2293_61(unknown) = ^CallSideEffect : ~m2293_53 +# 2293| m2293_62(unknown) = Chi : total:m2293_53, partial:m2293_61 +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m2293_40 +# 2293| r2293_63(glval<String>) = CopyValue : r2293_60 +# 2293| r2293_64(glval<String>) = Convert : r2293_63 +# 2293| r2293_65(String &) = CopyValue : r2293_64 +# 2293| v2293_66(void) = Call[String] : func:r2293_57, this:r2293_55, 0:r2293_65 +# 2293| m2293_67(unknown) = ^CallSideEffect : ~m2293_62 +# 2293| m2293_68(unknown) = Chi : total:m2293_62, partial:m2293_67 +# 2293| v2293_69(void) = ^BufferReadSideEffect[0] : &:r2293_65, ~m2293_68 +# 2293| m2293_70(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_55 +# 2293| m2293_71(String) = Chi : total:m2293_56, partial:m2293_70 +# 2294| r2294_1(glval<String>) = VariableAddress[s2] : +# 2294| m2294_2(String) = Uninitialized[s2] : &:r2294_1 +# 2294| r2294_3(glval<unknown>) = FunctionAddress[String] : +# 2294| v2294_4(void) = Call[String] : func:r2294_3, this:r2294_1 +# 2294| m2294_5(unknown) = ^CallSideEffect : ~m2293_68 +# 2294| m2294_6(unknown) = Chi : total:m2293_68, partial:m2294_5 +# 2294| m2294_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2294_1 +# 2294| m2294_8(String) = Chi : total:m2294_2, partial:m2294_7 +# 2295| r2295_1(glval<String>) = VariableAddress[s2] : +# 2295| r2295_2(glval<unknown>) = FunctionAddress[~String] : +# 2295| v2295_3(void) = Call[~String] : func:r2295_2, this:r2295_1 +# 2295| m2295_4(unknown) = ^CallSideEffect : ~m2294_6 +# 2295| m2295_5(unknown) = Chi : total:m2294_6, partial:m2295_4 +# 2295| v2295_6(void) = ^IndirectReadSideEffect[-1] : &:r2295_1, m2294_8 +# 2295| m2295_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2295_1 +# 2295| m2295_8(String) = Chi : total:m2294_8, partial:m2295_7 +# 2293| r2293_72(glval<String>) = VariableAddress[s] : +# 2293| r2293_73(glval<unknown>) = FunctionAddress[~String] : +# 2293| v2293_74(void) = Call[~String] : func:r2293_73, this:r2293_72 +# 2293| m2293_75(unknown) = ^CallSideEffect : ~m2295_5 +# 2293| m2293_76(unknown) = Chi : total:m2295_5, partial:m2293_75 +# 2293| v2293_77(void) = ^IndirectReadSideEffect[-1] : &:r2293_72, m2293_71 +# 2293| m2293_78(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_72 +# 2293| m2293_79(String) = Chi : total:m2293_71, partial:m2293_78 +# 2293| r2293_80(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +# 2293| r2293_81(glval<unknown>) = FunctionAddress[operator++] : +# 2293| r2293_82(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = Call[operator++] : func:r2293_81, this:r2293_80 +# 2293| m2293_83(unknown) = ^CallSideEffect : ~m2293_76 +# 2293| m2293_84(unknown) = Chi : total:m2293_76, partial:m2293_83 +# 2293| v2293_85(void) = ^IndirectReadSideEffect[-1] : &:r2293_80, m2293_40 +# 2293| m2293_86(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r2293_80 +# 2293| m2293_87(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Chi : total:m2293_40, partial:m2293_86 +# 2293| r2293_88(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = CopyValue : r2293_82 #-----| Goto (back edge) -> Block 4 -# 2250| Block 6 -# 2250| r2250_1(glval<String>) = VariableAddress[s] : -# 2250| m2250_2(String) = Uninitialized[s] : &:r2250_1 -# 2250| r2250_3(glval<unknown>) = FunctionAddress[String] : -# 2250| r2250_4(glval<char[6]>) = StringConstant["hello"] : -# 2250| r2250_5(char *) = Convert : r2250_4 -# 2250| v2250_6(void) = Call[String] : func:r2250_3, this:r2250_1, 0:r2250_5 -# 2250| m2250_7(unknown) = ^CallSideEffect : ~m2246_48 -# 2250| m2250_8(unknown) = Chi : total:m2246_48, partial:m2250_7 -# 2250| v2250_9(void) = ^BufferReadSideEffect[0] : &:r2250_5, ~m2240_3 -# 2250| m2250_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_1 -# 2250| m2250_11(String) = Chi : total:m2250_2, partial:m2250_10 -# 2250| r2250_12(glval<String>) = VariableAddress[s2] : -# 2250| m2250_13(String) = Uninitialized[s2] : &:r2250_12 -# 2250| r2250_14(glval<unknown>) = FunctionAddress[String] : -# 2250| r2250_15(glval<char[6]>) = StringConstant["world"] : -# 2250| r2250_16(char *) = Convert : r2250_15 -# 2250| v2250_17(void) = Call[String] : func:r2250_14, this:r2250_12, 0:r2250_16 -# 2250| m2250_18(unknown) = ^CallSideEffect : ~m2250_8 -# 2250| m2250_19(unknown) = Chi : total:m2250_8, partial:m2250_18 -# 2250| v2250_20(void) = ^BufferReadSideEffect[0] : &:r2250_16, ~m2240_3 -# 2250| m2250_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_12 -# 2250| m2250_22(String) = Chi : total:m2250_13, partial:m2250_21 +# 2297| Block 6 +# 2297| r2297_1(glval<String>) = VariableAddress[s] : +# 2297| m2297_2(String) = Uninitialized[s] : &:r2297_1 +# 2297| r2297_3(glval<unknown>) = FunctionAddress[String] : +# 2297| r2297_4(glval<char[6]>) = StringConstant["hello"] : +# 2297| r2297_5(char *) = Convert : r2297_4 +# 2297| v2297_6(void) = Call[String] : func:r2297_3, this:r2297_1, 0:r2297_5 +# 2297| m2297_7(unknown) = ^CallSideEffect : ~m2293_53 +# 2297| m2297_8(unknown) = Chi : total:m2293_53, partial:m2297_7 +# 2297| v2297_9(void) = ^BufferReadSideEffect[0] : &:r2297_5, ~m2287_3 +# 2297| m2297_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1 +# 2297| m2297_11(String) = Chi : total:m2297_2, partial:m2297_10 +# 2297| r2297_12(glval<String>) = VariableAddress[s2] : +# 2297| m2297_13(String) = Uninitialized[s2] : &:r2297_12 +# 2297| r2297_14(glval<unknown>) = FunctionAddress[String] : +# 2297| r2297_15(glval<char[6]>) = StringConstant["world"] : +# 2297| r2297_16(char *) = Convert : r2297_15 +# 2297| v2297_17(void) = Call[String] : func:r2297_14, this:r2297_12, 0:r2297_16 +# 2297| m2297_18(unknown) = ^CallSideEffect : ~m2297_8 +# 2297| m2297_19(unknown) = Chi : total:m2297_8, partial:m2297_18 +# 2297| v2297_20(void) = ^BufferReadSideEffect[0] : &:r2297_16, ~m2287_3 +# 2297| m2297_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_12 +# 2297| m2297_22(String) = Chi : total:m2297_13, partial:m2297_21 #-----| Goto -> Block 7 -# 2250| Block 7 -# 2250| m2250_23(String) = Phi : from 6:m2250_11, from 8:m2250_39 -# 2250| m2250_24(unknown) = Phi : from 6:~m2250_19, from 8:~m2250_36 -# 2250| m2250_25(char) = Phi : from 6:m2242_14, from 8:m2250_41 -# 2250| r2250_26(glval<char>) = VariableAddress[c] : -# 2250| r2250_27(char) = Load[c] : &:r2250_26, m2250_25 -# 2250| r2250_28(int) = Convert : r2250_27 -# 2250| r2250_29(int) = Constant[0] : -# 2250| r2250_30(bool) = CompareNE : r2250_28, r2250_29 -# 2250| v2250_31(void) = ConditionalBranch : r2250_30 +# 2297| Block 7 +# 2297| m2297_23(String) = Phi : from 6:m2297_11, from 8:m2297_39 +# 2297| m2297_24(unknown) = Phi : from 6:~m2297_19, from 8:~m2297_36 +# 2297| m2297_25(char) = Phi : from 6:m2289_14, from 8:m2297_41 +# 2297| r2297_26(glval<char>) = VariableAddress[c] : +# 2297| r2297_27(char) = Load[c] : &:r2297_26, m2297_25 +# 2297| r2297_28(int) = Convert : r2297_27 +# 2297| r2297_29(int) = Constant[0] : +# 2297| r2297_30(bool) = CompareNE : r2297_28, r2297_29 +# 2297| v2297_31(void) = ConditionalBranch : r2297_30 #-----| False -> Block 9 #-----| True -> Block 8 -# 2251| Block 8 -# 2251| r2251_1(char) = Constant[0] : -# 2251| r2251_2(glval<char>) = VariableAddress[c] : -# 2251| m2251_3(char) = Store[c] : &:r2251_2, r2251_1 -# 2250| r2250_32(glval<String>) = VariableAddress[s] : -# 2250| r2250_33(glval<unknown>) = FunctionAddress[pop_back] : -# 2250| r2250_34(char) = Call[pop_back] : func:r2250_33, this:r2250_32 -# 2250| m2250_35(unknown) = ^CallSideEffect : ~m2250_24 -# 2250| m2250_36(unknown) = Chi : total:m2250_24, partial:m2250_35 -# 2250| v2250_37(void) = ^IndirectReadSideEffect[-1] : &:r2250_32, m2250_23 -# 2250| m2250_38(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_32 -# 2250| m2250_39(String) = Chi : total:m2250_23, partial:m2250_38 -# 2250| r2250_40(glval<char>) = VariableAddress[c] : -# 2250| m2250_41(char) = Store[c] : &:r2250_40, r2250_34 +# 2298| Block 8 +# 2298| r2298_1(char) = Constant[0] : +# 2298| r2298_2(glval<char>) = VariableAddress[c] : +# 2298| m2298_3(char) = Store[c] : &:r2298_2, r2298_1 +# 2297| r2297_32(glval<String>) = VariableAddress[s] : +# 2297| r2297_33(glval<unknown>) = FunctionAddress[pop_back] : +# 2297| r2297_34(char) = Call[pop_back] : func:r2297_33, this:r2297_32 +# 2297| m2297_35(unknown) = ^CallSideEffect : ~m2297_24 +# 2297| m2297_36(unknown) = Chi : total:m2297_24, partial:m2297_35 +# 2297| v2297_37(void) = ^IndirectReadSideEffect[-1] : &:r2297_32, m2297_23 +# 2297| m2297_38(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_32 +# 2297| m2297_39(String) = Chi : total:m2297_23, partial:m2297_38 +# 2297| r2297_40(glval<char>) = VariableAddress[c] : +# 2297| m2297_41(char) = Store[c] : &:r2297_40, r2297_34 #-----| Goto (back edge) -> Block 7 -# 2250| Block 9 -# 2250| r2250_42(glval<String>) = VariableAddress[s2] : -# 2250| r2250_43(glval<unknown>) = FunctionAddress[~String] : -# 2250| v2250_44(void) = Call[~String] : func:r2250_43, this:r2250_42 -# 2250| m2250_45(unknown) = ^CallSideEffect : ~m2250_24 -# 2250| m2250_46(unknown) = Chi : total:m2250_24, partial:m2250_45 -# 2250| v2250_47(void) = ^IndirectReadSideEffect[-1] : &:r2250_42, m2250_22 -# 2250| m2250_48(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_42 -# 2250| m2250_49(String) = Chi : total:m2250_22, partial:m2250_48 -# 2250| r2250_50(glval<String>) = VariableAddress[s] : -# 2250| r2250_51(glval<unknown>) = FunctionAddress[~String] : -# 2250| v2250_52(void) = Call[~String] : func:r2250_51, this:r2250_50 -# 2250| m2250_53(unknown) = ^CallSideEffect : ~m2250_46 -# 2250| m2250_54(unknown) = Chi : total:m2250_46, partial:m2250_53 -# 2250| v2250_55(void) = ^IndirectReadSideEffect[-1] : &:r2250_50, m2250_23 -# 2250| m2250_56(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_50 -# 2250| m2250_57(String) = Chi : total:m2250_23, partial:m2250_56 -# 2253| v2253_1(void) = NoOp : -# 2240| v2240_5(void) = ReturnVoid : -# 2240| v2240_6(void) = AliasedUse : ~m2250_54 -# 2240| v2240_7(void) = ExitFunction : +# 2297| Block 9 +# 2297| r2297_42(glval<String>) = VariableAddress[s2] : +# 2297| r2297_43(glval<unknown>) = FunctionAddress[~String] : +# 2297| v2297_44(void) = Call[~String] : func:r2297_43, this:r2297_42 +# 2297| m2297_45(unknown) = ^CallSideEffect : ~m2297_24 +# 2297| m2297_46(unknown) = Chi : total:m2297_24, partial:m2297_45 +# 2297| v2297_47(void) = ^IndirectReadSideEffect[-1] : &:r2297_42, m2297_22 +# 2297| m2297_48(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_42 +# 2297| m2297_49(String) = Chi : total:m2297_22, partial:m2297_48 +# 2297| r2297_50(glval<String>) = VariableAddress[s] : +# 2297| r2297_51(glval<unknown>) = FunctionAddress[~String] : +# 2297| v2297_52(void) = Call[~String] : func:r2297_51, this:r2297_50 +# 2297| m2297_53(unknown) = ^CallSideEffect : ~m2297_46 +# 2297| m2297_54(unknown) = Chi : total:m2297_46, partial:m2297_53 +# 2297| v2297_55(void) = ^IndirectReadSideEffect[-1] : &:r2297_50, m2297_23 +# 2297| m2297_56(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_50 +# 2297| m2297_57(String) = Chi : total:m2297_23, partial:m2297_56 +# 2300| v2300_1(void) = NoOp : +# 2287| v2287_5(void) = ReturnVoid : +# 2287| v2287_6(void) = AliasedUse : ~m2297_54 +# 2287| v2287_7(void) = ExitFunction : -# 2255| void IfDestructors2(bool) -# 2255| Block 0 -# 2255| v2255_1(void) = EnterFunction : -# 2255| m2255_2(unknown) = AliasedDefinition : -# 2255| m2255_3(unknown) = InitializeNonLocal : -# 2255| m2255_4(unknown) = Chi : total:m2255_2, partial:m2255_3 -# 2255| r2255_5(glval<bool>) = VariableAddress[b] : -# 2255| m2255_6(bool) = InitializeParameter[b] : &:r2255_5 -# 2256| r2256_1(glval<String>) = VariableAddress[s] : -# 2256| m2256_2(String) = Uninitialized[s] : &:r2256_1 -# 2256| r2256_3(glval<unknown>) = FunctionAddress[String] : -# 2256| r2256_4(glval<char[6]>) = StringConstant["hello"] : -# 2256| r2256_5(char *) = Convert : r2256_4 -# 2256| v2256_6(void) = Call[String] : func:r2256_3, this:r2256_1, 0:r2256_5 -# 2256| m2256_7(unknown) = ^CallSideEffect : ~m2255_4 -# 2256| m2256_8(unknown) = Chi : total:m2255_4, partial:m2256_7 -# 2256| v2256_9(void) = ^BufferReadSideEffect[0] : &:r2256_5, ~m2255_3 -# 2256| m2256_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2256_1 -# 2256| m2256_11(String) = Chi : total:m2256_2, partial:m2256_10 -# 2256| r2256_12(glval<bool>) = VariableAddress[b] : -# 2256| r2256_13(bool) = Load[b] : &:r2256_12, m2255_6 -# 2256| v2256_14(void) = ConditionalBranch : r2256_13 +# 2302| void IfDestructors2(bool) +# 2302| Block 0 +# 2302| v2302_1(void) = EnterFunction : +# 2302| m2302_2(unknown) = AliasedDefinition : +# 2302| m2302_3(unknown) = InitializeNonLocal : +# 2302| m2302_4(unknown) = Chi : total:m2302_2, partial:m2302_3 +# 2302| r2302_5(glval<bool>) = VariableAddress[b] : +# 2302| m2302_6(bool) = InitializeParameter[b] : &:r2302_5 +# 2303| r2303_1(glval<String>) = VariableAddress[s] : +# 2303| m2303_2(String) = Uninitialized[s] : &:r2303_1 +# 2303| r2303_3(glval<unknown>) = FunctionAddress[String] : +# 2303| r2303_4(glval<char[6]>) = StringConstant["hello"] : +# 2303| r2303_5(char *) = Convert : r2303_4 +# 2303| v2303_6(void) = Call[String] : func:r2303_3, this:r2303_1, 0:r2303_5 +# 2303| m2303_7(unknown) = ^CallSideEffect : ~m2302_4 +# 2303| m2303_8(unknown) = Chi : total:m2302_4, partial:m2303_7 +# 2303| v2303_9(void) = ^BufferReadSideEffect[0] : &:r2303_5, ~m2302_3 +# 2303| m2303_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2303_1 +# 2303| m2303_11(String) = Chi : total:m2303_2, partial:m2303_10 +# 2303| r2303_12(glval<bool>) = VariableAddress[b] : +# 2303| r2303_13(bool) = Load[b] : &:r2303_12, m2302_6 +# 2303| v2303_14(void) = ConditionalBranch : r2303_13 #-----| False -> Block 2 #-----| True -> Block 1 -# 2257| Block 1 -# 2257| r2257_1(glval<int>) = VariableAddress[x] : -# 2257| r2257_2(int) = Constant[0] : -# 2257| m2257_3(int) = Store[x] : &:r2257_1, r2257_2 +# 2304| Block 1 +# 2304| r2304_1(glval<int>) = VariableAddress[x] : +# 2304| r2304_2(int) = Constant[0] : +# 2304| m2304_3(int) = Store[x] : &:r2304_1, r2304_2 #-----| Goto -> Block 3 -# 2259| Block 2 -# 2259| r2259_1(glval<int>) = VariableAddress[y] : -# 2259| r2259_2(int) = Constant[0] : -# 2259| m2259_3(int) = Store[y] : &:r2259_1, r2259_2 +# 2306| Block 2 +# 2306| r2306_1(glval<int>) = VariableAddress[y] : +# 2306| r2306_2(int) = Constant[0] : +# 2306| m2306_3(int) = Store[y] : &:r2306_1, r2306_2 #-----| Goto -> Block 3 -# 2260| Block 3 -# 2260| r2260_1(glval<String>) = VariableAddress[s] : -# 2260| r2260_2(glval<unknown>) = FunctionAddress[~String] : -# 2260| v2260_3(void) = Call[~String] : func:r2260_2, this:r2260_1 -# 2260| m2260_4(unknown) = ^CallSideEffect : ~m2256_8 -# 2260| m2260_5(unknown) = Chi : total:m2256_8, partial:m2260_4 -# 2260| v2260_6(void) = ^IndirectReadSideEffect[-1] : &:r2260_1, m2256_11 -# 2260| m2260_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2260_1 -# 2260| m2260_8(String) = Chi : total:m2256_11, partial:m2260_7 -# 2261| v2261_1(void) = NoOp : -# 2255| v2255_7(void) = ReturnVoid : -# 2255| v2255_8(void) = AliasedUse : ~m2260_5 -# 2255| v2255_9(void) = ExitFunction : +# 2307| Block 3 +# 2307| r2307_1(glval<String>) = VariableAddress[s] : +# 2307| r2307_2(glval<unknown>) = FunctionAddress[~String] : +# 2307| v2307_3(void) = Call[~String] : func:r2307_2, this:r2307_1 +# 2307| m2307_4(unknown) = ^CallSideEffect : ~m2303_8 +# 2307| m2307_5(unknown) = Chi : total:m2303_8, partial:m2307_4 +# 2307| v2307_6(void) = ^IndirectReadSideEffect[-1] : &:r2307_1, m2303_11 +# 2307| m2307_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2307_1 +# 2307| m2307_8(String) = Chi : total:m2303_11, partial:m2307_7 +# 2308| v2308_1(void) = NoOp : +# 2302| v2302_7(void) = ReturnVoid : +# 2302| v2302_8(void) = AliasedUse : ~m2307_5 +# 2302| v2302_9(void) = ExitFunction : -# 2270| void IfDestructors3(bool) -# 2270| Block 0 -# 2270| v2270_1(void) = EnterFunction : -# 2270| m2270_2(unknown) = AliasedDefinition : -# 2270| m2270_3(unknown) = InitializeNonLocal : -# 2270| m2270_4(unknown) = Chi : total:m2270_2, partial:m2270_3 -# 2270| r2270_5(glval<bool>) = VariableAddress[b] : -# 2270| m2270_6(bool) = InitializeParameter[b] : &:r2270_5 -# 2271| r2271_1(glval<Bool>) = VariableAddress[B] : -# 2271| m2271_2(Bool) = Uninitialized[B] : &:r2271_1 -# 2271| r2271_3(glval<unknown>) = FunctionAddress[Bool] : -# 2271| r2271_4(glval<bool>) = VariableAddress[b] : -# 2271| r2271_5(bool) = Load[b] : &:r2271_4, m2270_6 -# 2271| v2271_6(void) = Call[Bool] : func:r2271_3, this:r2271_1, 0:r2271_5 -# 2271| m2271_7(unknown) = ^CallSideEffect : ~m2270_4 -# 2271| m2271_8(unknown) = Chi : total:m2270_4, partial:m2271_7 -# 2271| m2271_9(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2271_1 -# 2271| m2271_10(Bool) = Chi : total:m2271_2, partial:m2271_9 -# 2271| r2271_11(glval<Bool>) = VariableAddress[B] : -# 2271| r2271_12(glval<unknown>) = FunctionAddress[operator bool] : -# 2271| r2271_13(bool) = Call[operator bool] : func:r2271_12, this:r2271_11 -# 2271| m2271_14(unknown) = ^CallSideEffect : ~m2271_8 -# 2271| m2271_15(unknown) = Chi : total:m2271_8, partial:m2271_14 -# 2271| v2271_16(void) = ^IndirectReadSideEffect[-1] : &:r2271_11, m2271_10 -# 2271| m2271_17(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2271_11 -# 2271| m2271_18(Bool) = Chi : total:m2271_10, partial:m2271_17 -# 2271| r2271_19(bool) = CopyValue : r2271_13 -# 2271| v2271_20(void) = ConditionalBranch : r2271_19 +# 2317| void IfDestructors3(bool) +# 2317| Block 0 +# 2317| v2317_1(void) = EnterFunction : +# 2317| m2317_2(unknown) = AliasedDefinition : +# 2317| m2317_3(unknown) = InitializeNonLocal : +# 2317| m2317_4(unknown) = Chi : total:m2317_2, partial:m2317_3 +# 2317| r2317_5(glval<bool>) = VariableAddress[b] : +# 2317| m2317_6(bool) = InitializeParameter[b] : &:r2317_5 +# 2318| r2318_1(glval<Bool>) = VariableAddress[B] : +# 2318| m2318_2(Bool) = Uninitialized[B] : &:r2318_1 +# 2318| r2318_3(glval<unknown>) = FunctionAddress[Bool] : +# 2318| r2318_4(glval<bool>) = VariableAddress[b] : +# 2318| r2318_5(bool) = Load[b] : &:r2318_4, m2317_6 +# 2318| v2318_6(void) = Call[Bool] : func:r2318_3, this:r2318_1, 0:r2318_5 +# 2318| m2318_7(unknown) = ^CallSideEffect : ~m2317_4 +# 2318| m2318_8(unknown) = Chi : total:m2317_4, partial:m2318_7 +# 2318| m2318_9(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2318_1 +# 2318| m2318_10(Bool) = Chi : total:m2318_2, partial:m2318_9 +# 2318| r2318_11(glval<Bool>) = VariableAddress[B] : +# 2318| r2318_12(glval<unknown>) = FunctionAddress[operator bool] : +# 2318| r2318_13(bool) = Call[operator bool] : func:r2318_12, this:r2318_11 +# 2318| m2318_14(unknown) = ^CallSideEffect : ~m2318_8 +# 2318| m2318_15(unknown) = Chi : total:m2318_8, partial:m2318_14 +# 2318| v2318_16(void) = ^IndirectReadSideEffect[-1] : &:r2318_11, m2318_10 +# 2318| m2318_17(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2318_11 +# 2318| m2318_18(Bool) = Chi : total:m2318_10, partial:m2318_17 +# 2318| r2318_19(bool) = CopyValue : r2318_13 +# 2318| v2318_20(void) = ConditionalBranch : r2318_19 #-----| False -> Block 2 #-----| True -> Block 1 -# 2272| Block 1 -# 2272| r2272_1(glval<String>) = VariableAddress[s1] : -# 2272| m2272_2(String) = Uninitialized[s1] : &:r2272_1 -# 2272| r2272_3(glval<unknown>) = FunctionAddress[String] : -# 2272| v2272_4(void) = Call[String] : func:r2272_3, this:r2272_1 -# 2272| m2272_5(unknown) = ^CallSideEffect : ~m2271_15 -# 2272| m2272_6(unknown) = Chi : total:m2271_15, partial:m2272_5 -# 2272| m2272_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2272_1 -# 2272| m2272_8(String) = Chi : total:m2272_2, partial:m2272_7 -# 2273| r2273_1(glval<String>) = VariableAddress[s1] : -# 2273| r2273_2(glval<unknown>) = FunctionAddress[~String] : -# 2273| v2273_3(void) = Call[~String] : func:r2273_2, this:r2273_1 -# 2273| m2273_4(unknown) = ^CallSideEffect : ~m2272_6 -# 2273| m2273_5(unknown) = Chi : total:m2272_6, partial:m2273_4 -# 2273| v2273_6(void) = ^IndirectReadSideEffect[-1] : &:r2273_1, m2272_8 -# 2273| m2273_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2273_1 -# 2273| m2273_8(String) = Chi : total:m2272_8, partial:m2273_7 +# 2319| Block 1 +# 2319| r2319_1(glval<String>) = VariableAddress[s1] : +# 2319| m2319_2(String) = Uninitialized[s1] : &:r2319_1 +# 2319| r2319_3(glval<unknown>) = FunctionAddress[String] : +# 2319| v2319_4(void) = Call[String] : func:r2319_3, this:r2319_1 +# 2319| m2319_5(unknown) = ^CallSideEffect : ~m2318_15 +# 2319| m2319_6(unknown) = Chi : total:m2318_15, partial:m2319_5 +# 2319| m2319_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2319_1 +# 2319| m2319_8(String) = Chi : total:m2319_2, partial:m2319_7 +# 2320| r2320_1(glval<String>) = VariableAddress[s1] : +# 2320| r2320_2(glval<unknown>) = FunctionAddress[~String] : +# 2320| v2320_3(void) = Call[~String] : func:r2320_2, this:r2320_1 +# 2320| m2320_4(unknown) = ^CallSideEffect : ~m2319_6 +# 2320| m2320_5(unknown) = Chi : total:m2319_6, partial:m2320_4 +# 2320| v2320_6(void) = ^IndirectReadSideEffect[-1] : &:r2320_1, m2319_8 +# 2320| m2320_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2320_1 +# 2320| m2320_8(String) = Chi : total:m2319_8, partial:m2320_7 #-----| Goto -> Block 3 -# 2274| Block 2 -# 2274| r2274_1(glval<String>) = VariableAddress[s2] : -# 2274| m2274_2(String) = Uninitialized[s2] : &:r2274_1 -# 2274| r2274_3(glval<unknown>) = FunctionAddress[String] : -# 2274| v2274_4(void) = Call[String] : func:r2274_3, this:r2274_1 -# 2274| m2274_5(unknown) = ^CallSideEffect : ~m2271_15 -# 2274| m2274_6(unknown) = Chi : total:m2271_15, partial:m2274_5 -# 2274| m2274_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2274_1 -# 2274| m2274_8(String) = Chi : total:m2274_2, partial:m2274_7 -# 2275| r2275_1(glval<String>) = VariableAddress[s2] : -# 2275| r2275_2(glval<unknown>) = FunctionAddress[~String] : -# 2275| v2275_3(void) = Call[~String] : func:r2275_2, this:r2275_1 -# 2275| m2275_4(unknown) = ^CallSideEffect : ~m2274_6 -# 2275| m2275_5(unknown) = Chi : total:m2274_6, partial:m2275_4 -# 2275| v2275_6(void) = ^IndirectReadSideEffect[-1] : &:r2275_1, m2274_8 -# 2275| m2275_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2275_1 -# 2275| m2275_8(String) = Chi : total:m2274_8, partial:m2275_7 +# 2321| Block 2 +# 2321| r2321_1(glval<String>) = VariableAddress[s2] : +# 2321| m2321_2(String) = Uninitialized[s2] : &:r2321_1 +# 2321| r2321_3(glval<unknown>) = FunctionAddress[String] : +# 2321| v2321_4(void) = Call[String] : func:r2321_3, this:r2321_1 +# 2321| m2321_5(unknown) = ^CallSideEffect : ~m2318_15 +# 2321| m2321_6(unknown) = Chi : total:m2318_15, partial:m2321_5 +# 2321| m2321_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2321_1 +# 2321| m2321_8(String) = Chi : total:m2321_2, partial:m2321_7 +# 2322| r2322_1(glval<String>) = VariableAddress[s2] : +# 2322| r2322_2(glval<unknown>) = FunctionAddress[~String] : +# 2322| v2322_3(void) = Call[~String] : func:r2322_2, this:r2322_1 +# 2322| m2322_4(unknown) = ^CallSideEffect : ~m2321_6 +# 2322| m2322_5(unknown) = Chi : total:m2321_6, partial:m2322_4 +# 2322| v2322_6(void) = ^IndirectReadSideEffect[-1] : &:r2322_1, m2321_8 +# 2322| m2322_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2322_1 +# 2322| m2322_8(String) = Chi : total:m2321_8, partial:m2322_7 #-----| Goto -> Block 3 -# 2275| Block 3 -# 2275| m2275_9(unknown) = Phi : from 1:~m2273_5, from 2:~m2275_5 -# 2275| r2275_10(glval<Bool>) = VariableAddress[B] : -# 2275| r2275_11(glval<unknown>) = FunctionAddress[~Bool] : -# 2275| v2275_12(void) = Call[~Bool] : func:r2275_11, this:r2275_10 -# 2275| m2275_13(unknown) = ^CallSideEffect : ~m2275_9 -# 2275| m2275_14(unknown) = Chi : total:m2275_9, partial:m2275_13 -# 2275| v2275_15(void) = ^IndirectReadSideEffect[-1] : &:r2275_10, m2271_18 -# 2275| m2275_16(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2275_10 -# 2275| m2275_17(Bool) = Chi : total:m2271_18, partial:m2275_16 -# 2276| v2276_1(void) = NoOp : -# 2270| v2270_7(void) = ReturnVoid : -# 2270| v2270_8(void) = AliasedUse : ~m2275_14 -# 2270| v2270_9(void) = ExitFunction : +# 2322| Block 3 +# 2322| m2322_9(unknown) = Phi : from 1:~m2320_5, from 2:~m2322_5 +# 2322| r2322_10(glval<Bool>) = VariableAddress[B] : +# 2322| r2322_11(glval<unknown>) = FunctionAddress[~Bool] : +# 2322| v2322_12(void) = Call[~Bool] : func:r2322_11, this:r2322_10 +# 2322| m2322_13(unknown) = ^CallSideEffect : ~m2322_9 +# 2322| m2322_14(unknown) = Chi : total:m2322_9, partial:m2322_13 +# 2322| v2322_15(void) = ^IndirectReadSideEffect[-1] : &:r2322_10, m2318_18 +# 2322| m2322_16(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2322_10 +# 2322| m2322_17(Bool) = Chi : total:m2318_18, partial:m2322_16 +# 2323| v2323_1(void) = NoOp : +# 2317| v2317_7(void) = ReturnVoid : +# 2317| v2317_8(void) = AliasedUse : ~m2322_14 +# 2317| v2317_9(void) = ExitFunction : -# 2278| void WhileLoopDestructors(bool) -# 2278| Block 0 -# 2278| v2278_1(void) = EnterFunction : -# 2278| m2278_2(unknown) = AliasedDefinition : -# 2278| m2278_3(unknown) = InitializeNonLocal : -# 2278| m2278_4(unknown) = Chi : total:m2278_2, partial:m2278_3 -# 2278| r2278_5(glval<bool>) = VariableAddress[b] : -# 2278| m2278_6(bool) = InitializeParameter[b] : &:r2278_5 -# 2280| r2280_1(glval<String>) = VariableAddress[s] : -# 2280| m2280_2(String) = Uninitialized[s] : &:r2280_1 -# 2280| r2280_3(glval<unknown>) = FunctionAddress[String] : -# 2280| v2280_4(void) = Call[String] : func:r2280_3, this:r2280_1 -# 2280| m2280_5(unknown) = ^CallSideEffect : ~m2278_4 -# 2280| m2280_6(unknown) = Chi : total:m2278_4, partial:m2280_5 -# 2280| m2280_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2280_1 -# 2280| m2280_8(String) = Chi : total:m2280_2, partial:m2280_7 +# 2325| void WhileLoopDestructors(bool) +# 2325| Block 0 +# 2325| v2325_1(void) = EnterFunction : +# 2325| m2325_2(unknown) = AliasedDefinition : +# 2325| m2325_3(unknown) = InitializeNonLocal : +# 2325| m2325_4(unknown) = Chi : total:m2325_2, partial:m2325_3 +# 2325| r2325_5(glval<bool>) = VariableAddress[b] : +# 2325| m2325_6(bool) = InitializeParameter[b] : &:r2325_5 +# 2327| r2327_1(glval<String>) = VariableAddress[s] : +# 2327| m2327_2(String) = Uninitialized[s] : &:r2327_1 +# 2327| r2327_3(glval<unknown>) = FunctionAddress[String] : +# 2327| v2327_4(void) = Call[String] : func:r2327_3, this:r2327_1 +# 2327| m2327_5(unknown) = ^CallSideEffect : ~m2325_4 +# 2327| m2327_6(unknown) = Chi : total:m2325_4, partial:m2327_5 +# 2327| m2327_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2327_1 +# 2327| m2327_8(String) = Chi : total:m2327_2, partial:m2327_7 #-----| Goto -> Block 1 -# 2281| Block 1 -# 2281| m2281_1(bool) = Phi : from 0:m2278_6, from 2:m2282_3 -# 2281| r2281_2(glval<bool>) = VariableAddress[b] : -# 2281| r2281_3(bool) = Load[b] : &:r2281_2, m2281_1 -# 2281| v2281_4(void) = ConditionalBranch : r2281_3 +# 2328| Block 1 +# 2328| m2328_1(bool) = Phi : from 0:m2325_6, from 2:m2329_3 +# 2328| r2328_2(glval<bool>) = VariableAddress[b] : +# 2328| r2328_3(bool) = Load[b] : &:r2328_2, m2328_1 +# 2328| v2328_4(void) = ConditionalBranch : r2328_3 #-----| False -> Block 3 #-----| True -> Block 2 -# 2282| Block 2 -# 2282| r2282_1(bool) = Constant[0] : -# 2282| r2282_2(glval<bool>) = VariableAddress[b] : -# 2282| m2282_3(bool) = Store[b] : &:r2282_2, r2282_1 +# 2329| Block 2 +# 2329| r2329_1(bool) = Constant[0] : +# 2329| r2329_2(glval<bool>) = VariableAddress[b] : +# 2329| m2329_3(bool) = Store[b] : &:r2329_2, r2329_1 #-----| Goto (back edge) -> Block 1 -# 2284| Block 3 -# 2284| r2284_1(glval<String>) = VariableAddress[s] : -# 2284| r2284_2(glval<unknown>) = FunctionAddress[~String] : -# 2284| v2284_3(void) = Call[~String] : func:r2284_2, this:r2284_1 -# 2284| m2284_4(unknown) = ^CallSideEffect : ~m2280_6 -# 2284| m2284_5(unknown) = Chi : total:m2280_6, partial:m2284_4 -# 2284| v2284_6(void) = ^IndirectReadSideEffect[-1] : &:r2284_1, m2280_8 -# 2284| m2284_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1 -# 2284| m2284_8(String) = Chi : total:m2280_8, partial:m2284_7 +# 2331| Block 3 +# 2331| r2331_1(glval<String>) = VariableAddress[s] : +# 2331| r2331_2(glval<unknown>) = FunctionAddress[~String] : +# 2331| v2331_3(void) = Call[~String] : func:r2331_2, this:r2331_1 +# 2331| m2331_4(unknown) = ^CallSideEffect : ~m2327_6 +# 2331| m2331_5(unknown) = Chi : total:m2327_6, partial:m2331_4 +# 2331| v2331_6(void) = ^IndirectReadSideEffect[-1] : &:r2331_1, m2327_8 +# 2331| m2331_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2331_1 +# 2331| m2331_8(String) = Chi : total:m2327_8, partial:m2331_7 #-----| Goto -> Block 4 -# 2287| Block 4 -# 2287| m2287_1(unknown) = Phi : from 3:~m2284_5, from 5:~m2289_5 -# 2287| m2287_2(bool) = Phi : from 3:m2281_1, from 5:m2288_3 -# 2287| r2287_3(glval<Bool>) = VariableAddress[B] : -# 2287| m2287_4(Bool) = Uninitialized[B] : &:r2287_3 -# 2287| r2287_5(glval<unknown>) = FunctionAddress[Bool] : -# 2287| r2287_6(glval<bool>) = VariableAddress[b] : -# 2287| r2287_7(bool) = Load[b] : &:r2287_6, m2287_2 -# 2287| v2287_8(void) = Call[Bool] : func:r2287_5, this:r2287_3, 0:r2287_7 -# 2287| m2287_9(unknown) = ^CallSideEffect : ~m2287_1 -# 2287| m2287_10(unknown) = Chi : total:m2287_1, partial:m2287_9 -# 2287| m2287_11(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2287_3 -# 2287| m2287_12(Bool) = Chi : total:m2287_4, partial:m2287_11 -# 2287| r2287_13(glval<Bool>) = VariableAddress[B] : -# 2287| r2287_14(glval<unknown>) = FunctionAddress[operator bool] : -# 2287| r2287_15(bool) = Call[operator bool] : func:r2287_14, this:r2287_13 -# 2287| m2287_16(unknown) = ^CallSideEffect : ~m2287_10 -# 2287| m2287_17(unknown) = Chi : total:m2287_10, partial:m2287_16 -# 2287| v2287_18(void) = ^IndirectReadSideEffect[-1] : &:r2287_13, m2287_12 -# 2287| m2287_19(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2287_13 -# 2287| m2287_20(Bool) = Chi : total:m2287_12, partial:m2287_19 -# 2287| r2287_21(bool) = CopyValue : r2287_15 -# 2287| v2287_22(void) = ConditionalBranch : r2287_21 +# 2334| Block 4 +# 2334| m2334_1(unknown) = Phi : from 3:~m2331_5, from 5:~m2336_5 +# 2334| m2334_2(bool) = Phi : from 3:m2328_1, from 5:m2335_3 +# 2334| r2334_3(glval<Bool>) = VariableAddress[B] : +# 2334| m2334_4(Bool) = Uninitialized[B] : &:r2334_3 +# 2334| r2334_5(glval<unknown>) = FunctionAddress[Bool] : +# 2334| r2334_6(glval<bool>) = VariableAddress[b] : +# 2334| r2334_7(bool) = Load[b] : &:r2334_6, m2334_2 +# 2334| v2334_8(void) = Call[Bool] : func:r2334_5, this:r2334_3, 0:r2334_7 +# 2334| m2334_9(unknown) = ^CallSideEffect : ~m2334_1 +# 2334| m2334_10(unknown) = Chi : total:m2334_1, partial:m2334_9 +# 2334| m2334_11(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2334_3 +# 2334| m2334_12(Bool) = Chi : total:m2334_4, partial:m2334_11 +# 2334| r2334_13(glval<Bool>) = VariableAddress[B] : +# 2334| r2334_14(glval<unknown>) = FunctionAddress[operator bool] : +# 2334| r2334_15(bool) = Call[operator bool] : func:r2334_14, this:r2334_13 +# 2334| m2334_16(unknown) = ^CallSideEffect : ~m2334_10 +# 2334| m2334_17(unknown) = Chi : total:m2334_10, partial:m2334_16 +# 2334| v2334_18(void) = ^IndirectReadSideEffect[-1] : &:r2334_13, m2334_12 +# 2334| m2334_19(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2334_13 +# 2334| m2334_20(Bool) = Chi : total:m2334_12, partial:m2334_19 +# 2334| r2334_21(bool) = CopyValue : r2334_15 +# 2334| v2334_22(void) = ConditionalBranch : r2334_21 #-----| False -> Block 6 #-----| True -> Block 5 -# 2288| Block 5 -# 2288| r2288_1(bool) = Constant[0] : -# 2288| r2288_2(glval<bool>) = VariableAddress[b] : -# 2288| m2288_3(bool) = Store[b] : &:r2288_2, r2288_1 -# 2289| r2289_1(glval<Bool>) = VariableAddress[B] : -# 2289| r2289_2(glval<unknown>) = FunctionAddress[~Bool] : -# 2289| v2289_3(void) = Call[~Bool] : func:r2289_2, this:r2289_1 -# 2289| m2289_4(unknown) = ^CallSideEffect : ~m2287_17 -# 2289| m2289_5(unknown) = Chi : total:m2287_17, partial:m2289_4 -# 2289| v2289_6(void) = ^IndirectReadSideEffect[-1] : &:r2289_1, m2287_20 -# 2289| m2289_7(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2289_1 -# 2289| m2289_8(Bool) = Chi : total:m2287_20, partial:m2289_7 +# 2335| Block 5 +# 2335| r2335_1(bool) = Constant[0] : +# 2335| r2335_2(glval<bool>) = VariableAddress[b] : +# 2335| m2335_3(bool) = Store[b] : &:r2335_2, r2335_1 +# 2336| r2336_1(glval<Bool>) = VariableAddress[B] : +# 2336| r2336_2(glval<unknown>) = FunctionAddress[~Bool] : +# 2336| v2336_3(void) = Call[~Bool] : func:r2336_2, this:r2336_1 +# 2336| m2336_4(unknown) = ^CallSideEffect : ~m2334_17 +# 2336| m2336_5(unknown) = Chi : total:m2334_17, partial:m2336_4 +# 2336| v2336_6(void) = ^IndirectReadSideEffect[-1] : &:r2336_1, m2334_20 +# 2336| m2336_7(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2336_1 +# 2336| m2336_8(Bool) = Chi : total:m2334_20, partial:m2336_7 #-----| Goto (back edge) -> Block 4 -# 2289| Block 6 -# 2289| r2289_9(glval<Bool>) = VariableAddress[B] : -# 2289| r2289_10(glval<unknown>) = FunctionAddress[~Bool] : -# 2289| v2289_11(void) = Call[~Bool] : func:r2289_10, this:r2289_9 -# 2289| m2289_12(unknown) = ^CallSideEffect : ~m2287_17 -# 2289| m2289_13(unknown) = Chi : total:m2287_17, partial:m2289_12 -# 2289| v2289_14(void) = ^IndirectReadSideEffect[-1] : &:r2289_9, m2287_20 -# 2289| m2289_15(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2289_9 -# 2289| m2289_16(Bool) = Chi : total:m2287_20, partial:m2289_15 -# 2291| v2291_1(void) = NoOp : -# 2278| v2278_7(void) = ReturnVoid : -# 2278| v2278_8(void) = AliasedUse : ~m2289_13 -# 2278| v2278_9(void) = ExitFunction : +# 2336| Block 6 +# 2336| r2336_9(glval<Bool>) = VariableAddress[B] : +# 2336| r2336_10(glval<unknown>) = FunctionAddress[~Bool] : +# 2336| v2336_11(void) = Call[~Bool] : func:r2336_10, this:r2336_9 +# 2336| m2336_12(unknown) = ^CallSideEffect : ~m2334_17 +# 2336| m2336_13(unknown) = Chi : total:m2334_17, partial:m2336_12 +# 2336| v2336_14(void) = ^IndirectReadSideEffect[-1] : &:r2336_9, m2334_20 +# 2336| m2336_15(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2336_9 +# 2336| m2336_16(Bool) = Chi : total:m2334_20, partial:m2336_15 +# 2338| v2338_1(void) = NoOp : +# 2325| v2325_7(void) = ReturnVoid : +# 2325| v2325_8(void) = AliasedUse : ~m2336_13 +# 2325| v2325_9(void) = ExitFunction : -# 2293| void VoidFunc() -# 2293| Block 0 -# 2293| v2293_1(void) = EnterFunction : -# 2293| m2293_2(unknown) = AliasedDefinition : -# 2293| m2293_3(unknown) = InitializeNonLocal : -# 2293| m2293_4(unknown) = Chi : total:m2293_2, partial:m2293_3 -# 2293| v2293_5(void) = NoOp : -# 2293| v2293_6(void) = ReturnVoid : -# 2293| v2293_7(void) = AliasedUse : m2293_3 -# 2293| v2293_8(void) = ExitFunction : +# 2340| void VoidFunc() +# 2340| Block 0 +# 2340| v2340_1(void) = EnterFunction : +# 2340| m2340_2(unknown) = AliasedDefinition : +# 2340| m2340_3(unknown) = InitializeNonLocal : +# 2340| m2340_4(unknown) = Chi : total:m2340_2, partial:m2340_3 +# 2340| v2340_5(void) = NoOp : +# 2340| v2340_6(void) = ReturnVoid : +# 2340| v2340_7(void) = AliasedUse : m2340_3 +# 2340| v2340_8(void) = ExitFunction : -# 2295| void IfReturnDestructors(bool) -# 2295| Block 0 -# 2295| v2295_1(void) = EnterFunction : -# 2295| m2295_2(unknown) = AliasedDefinition : -# 2295| m2295_3(unknown) = InitializeNonLocal : -# 2295| m2295_4(unknown) = Chi : total:m2295_2, partial:m2295_3 -# 2295| r2295_5(glval<bool>) = VariableAddress[b] : -# 2295| m2295_6(bool) = InitializeParameter[b] : &:r2295_5 -# 2296| r2296_1(glval<String>) = VariableAddress[s] : -# 2296| m2296_2(String) = Uninitialized[s] : &:r2296_1 -# 2296| r2296_3(glval<unknown>) = FunctionAddress[String] : -# 2296| v2296_4(void) = Call[String] : func:r2296_3, this:r2296_1 -# 2296| m2296_5(unknown) = ^CallSideEffect : ~m2295_4 -# 2296| m2296_6(unknown) = Chi : total:m2295_4, partial:m2296_5 -# 2296| m2296_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2296_1 -# 2296| m2296_8(String) = Chi : total:m2296_2, partial:m2296_7 -# 2297| r2297_1(glval<bool>) = VariableAddress[b] : -# 2297| r2297_2(bool) = Load[b] : &:r2297_1, m2295_6 -# 2297| v2297_3(void) = ConditionalBranch : r2297_2 +# 2342| void IfReturnDestructors(bool) +# 2342| Block 0 +# 2342| v2342_1(void) = EnterFunction : +# 2342| m2342_2(unknown) = AliasedDefinition : +# 2342| m2342_3(unknown) = InitializeNonLocal : +# 2342| m2342_4(unknown) = Chi : total:m2342_2, partial:m2342_3 +# 2342| r2342_5(glval<bool>) = VariableAddress[b] : +# 2342| m2342_6(bool) = InitializeParameter[b] : &:r2342_5 +# 2343| r2343_1(glval<String>) = VariableAddress[s] : +# 2343| m2343_2(String) = Uninitialized[s] : &:r2343_1 +# 2343| r2343_3(glval<unknown>) = FunctionAddress[String] : +# 2343| v2343_4(void) = Call[String] : func:r2343_3, this:r2343_1 +# 2343| m2343_5(unknown) = ^CallSideEffect : ~m2342_4 +# 2343| m2343_6(unknown) = Chi : total:m2342_4, partial:m2343_5 +# 2343| m2343_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2343_1 +# 2343| m2343_8(String) = Chi : total:m2343_2, partial:m2343_7 +# 2344| r2344_1(glval<bool>) = VariableAddress[b] : +# 2344| r2344_2(bool) = Load[b] : &:r2344_1, m2342_6 +# 2344| v2344_3(void) = ConditionalBranch : r2344_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2295| Block 1 -# 2295| m2295_7(unknown) = Phi : from 2:~m2304_5, from 4:~m2304_13, from 5:~m2304_22 -# 2295| v2295_8(void) = ReturnVoid : -# 2295| v2295_9(void) = AliasedUse : ~m2295_7 -# 2295| v2295_10(void) = ExitFunction : +# 2342| Block 1 +# 2342| m2342_7(unknown) = Phi : from 2:~m2351_5, from 4:~m2351_13, from 5:~m2351_22 +# 2342| v2342_8(void) = ReturnVoid : +# 2342| v2342_9(void) = AliasedUse : ~m2342_7 +# 2342| v2342_10(void) = ExitFunction : -# 2298| Block 2 -# 2298| v2298_1(void) = NoOp : -# 2304| r2304_1(glval<String>) = VariableAddress[s] : -# 2304| r2304_2(glval<unknown>) = FunctionAddress[~String] : -# 2304| v2304_3(void) = Call[~String] : func:r2304_2, this:r2304_1 -# 2304| m2304_4(unknown) = ^CallSideEffect : ~m2296_6 -# 2304| m2304_5(unknown) = Chi : total:m2296_6, partial:m2304_4 -# 2304| v2304_6(void) = ^IndirectReadSideEffect[-1] : &:r2304_1, m2296_8 -# 2304| m2304_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_1 -# 2304| m2304_8(String) = Chi : total:m2296_8, partial:m2304_7 +# 2345| Block 2 +# 2345| v2345_1(void) = NoOp : +# 2351| r2351_1(glval<String>) = VariableAddress[s] : +# 2351| r2351_2(glval<unknown>) = FunctionAddress[~String] : +# 2351| v2351_3(void) = Call[~String] : func:r2351_2, this:r2351_1 +# 2351| m2351_4(unknown) = ^CallSideEffect : ~m2343_6 +# 2351| m2351_5(unknown) = Chi : total:m2343_6, partial:m2351_4 +# 2351| v2351_6(void) = ^IndirectReadSideEffect[-1] : &:r2351_1, m2343_8 +# 2351| m2351_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2351_1 +# 2351| m2351_8(String) = Chi : total:m2343_8, partial:m2351_7 #-----| Goto -> Block 1 -# 2300| Block 3 -# 2300| r2300_1(glval<bool>) = VariableAddress[b] : -# 2300| r2300_2(bool) = Load[b] : &:r2300_1, m2295_6 -# 2300| v2300_3(void) = ConditionalBranch : r2300_2 +# 2347| Block 3 +# 2347| r2347_1(glval<bool>) = VariableAddress[b] : +# 2347| r2347_2(bool) = Load[b] : &:r2347_1, m2342_6 +# 2347| v2347_3(void) = ConditionalBranch : r2347_2 #-----| False -> Block 5 #-----| True -> Block 4 -# 2301| Block 4 -# 2301| r2301_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2301| v2301_2(void) = Call[VoidFunc] : func:r2301_1 -# 2301| m2301_3(unknown) = ^CallSideEffect : ~m2296_6 -# 2301| m2301_4(unknown) = Chi : total:m2296_6, partial:m2301_3 -# 2301| v2301_5(void) = NoOp : -# 2304| r2304_9(glval<String>) = VariableAddress[s] : -# 2304| r2304_10(glval<unknown>) = FunctionAddress[~String] : -# 2304| v2304_11(void) = Call[~String] : func:r2304_10, this:r2304_9 -# 2304| m2304_12(unknown) = ^CallSideEffect : ~m2301_4 -# 2304| m2304_13(unknown) = Chi : total:m2301_4, partial:m2304_12 -# 2304| v2304_14(void) = ^IndirectReadSideEffect[-1] : &:r2304_9, m2296_8 -# 2304| m2304_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_9 -# 2304| m2304_16(String) = Chi : total:m2296_8, partial:m2304_15 +# 2348| Block 4 +# 2348| r2348_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2348| v2348_2(void) = Call[VoidFunc] : func:r2348_1 +# 2348| m2348_3(unknown) = ^CallSideEffect : ~m2343_6 +# 2348| m2348_4(unknown) = Chi : total:m2343_6, partial:m2348_3 +# 2348| v2348_5(void) = NoOp : +# 2351| r2351_9(glval<String>) = VariableAddress[s] : +# 2351| r2351_10(glval<unknown>) = FunctionAddress[~String] : +# 2351| v2351_11(void) = Call[~String] : func:r2351_10, this:r2351_9 +# 2351| m2351_12(unknown) = ^CallSideEffect : ~m2348_4 +# 2351| m2351_13(unknown) = Chi : total:m2348_4, partial:m2351_12 +# 2351| v2351_14(void) = ^IndirectReadSideEffect[-1] : &:r2351_9, m2343_8 +# 2351| m2351_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2351_9 +# 2351| m2351_16(String) = Chi : total:m2343_8, partial:m2351_15 #-----| Goto -> Block 1 -# 2303| Block 5 -# 2303| r2303_1(glval<String>) = VariableAddress[s] : -# 2304| v2304_17(void) = NoOp : -# 2304| r2304_18(glval<String>) = VariableAddress[s] : -# 2304| r2304_19(glval<unknown>) = FunctionAddress[~String] : -# 2304| v2304_20(void) = Call[~String] : func:r2304_19, this:r2304_18 -# 2304| m2304_21(unknown) = ^CallSideEffect : ~m2296_6 -# 2304| m2304_22(unknown) = Chi : total:m2296_6, partial:m2304_21 -# 2304| v2304_23(void) = ^IndirectReadSideEffect[-1] : &:r2304_18, m2296_8 -# 2304| m2304_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_18 -# 2304| m2304_25(String) = Chi : total:m2296_8, partial:m2304_24 +# 2350| Block 5 +# 2350| r2350_1(glval<String>) = VariableAddress[s] : +# 2351| v2351_17(void) = NoOp : +# 2351| r2351_18(glval<String>) = VariableAddress[s] : +# 2351| r2351_19(glval<unknown>) = FunctionAddress[~String] : +# 2351| v2351_20(void) = Call[~String] : func:r2351_19, this:r2351_18 +# 2351| m2351_21(unknown) = ^CallSideEffect : ~m2343_6 +# 2351| m2351_22(unknown) = Chi : total:m2343_6, partial:m2351_21 +# 2351| v2351_23(void) = ^IndirectReadSideEffect[-1] : &:r2351_18, m2343_8 +# 2351| m2351_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r2351_18 +# 2351| m2351_25(String) = Chi : total:m2343_8, partial:m2351_24 #-----| Goto -> Block 1 -# 2306| int IfReturnDestructors3(bool) -# 2306| Block 0 -# 2306| v2306_1(void) = EnterFunction : -# 2306| m2306_2(unknown) = AliasedDefinition : -# 2306| m2306_3(unknown) = InitializeNonLocal : -# 2306| m2306_4(unknown) = Chi : total:m2306_2, partial:m2306_3 -# 2306| r2306_5(glval<bool>) = VariableAddress[b] : -# 2306| m2306_6(bool) = InitializeParameter[b] : &:r2306_5 -# 2307| r2307_1(glval<String>) = VariableAddress[s] : -# 2307| m2307_2(String) = Uninitialized[s] : &:r2307_1 -# 2307| r2307_3(glval<unknown>) = FunctionAddress[String] : -# 2307| v2307_4(void) = Call[String] : func:r2307_3, this:r2307_1 -# 2307| m2307_5(unknown) = ^CallSideEffect : ~m2306_4 -# 2307| m2307_6(unknown) = Chi : total:m2306_4, partial:m2307_5 -# 2307| m2307_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2307_1 -# 2307| m2307_8(String) = Chi : total:m2307_2, partial:m2307_7 -# 2308| r2308_1(glval<bool>) = VariableAddress[b] : -# 2308| r2308_2(bool) = Load[b] : &:r2308_1, m2306_6 -# 2308| v2308_3(void) = ConditionalBranch : r2308_2 +# 2353| int IfReturnDestructors3(bool) +# 2353| Block 0 +# 2353| v2353_1(void) = EnterFunction : +# 2353| m2353_2(unknown) = AliasedDefinition : +# 2353| m2353_3(unknown) = InitializeNonLocal : +# 2353| m2353_4(unknown) = Chi : total:m2353_2, partial:m2353_3 +# 2353| r2353_5(glval<bool>) = VariableAddress[b] : +# 2353| m2353_6(bool) = InitializeParameter[b] : &:r2353_5 +# 2354| r2354_1(glval<String>) = VariableAddress[s] : +# 2354| m2354_2(String) = Uninitialized[s] : &:r2354_1 +# 2354| r2354_3(glval<unknown>) = FunctionAddress[String] : +# 2354| v2354_4(void) = Call[String] : func:r2354_3, this:r2354_1 +# 2354| m2354_5(unknown) = ^CallSideEffect : ~m2353_4 +# 2354| m2354_6(unknown) = Chi : total:m2353_4, partial:m2354_5 +# 2354| m2354_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2354_1 +# 2354| m2354_8(String) = Chi : total:m2354_2, partial:m2354_7 +# 2355| r2355_1(glval<bool>) = VariableAddress[b] : +# 2355| r2355_2(bool) = Load[b] : &:r2355_1, m2353_6 +# 2355| v2355_3(void) = ConditionalBranch : r2355_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2306| Block 1 -# 2306| m2306_7(unknown) = Phi : from 2:~m2312_5, from 3:~m2312_13 -# 2306| m2306_8(int) = Phi : from 2:m2309_3, from 3:m2311_3 -# 2306| r2306_9(glval<int>) = VariableAddress[#return] : -# 2306| v2306_10(void) = ReturnValue : &:r2306_9, m2306_8 -# 2306| v2306_11(void) = AliasedUse : ~m2306_7 -# 2306| v2306_12(void) = ExitFunction : +# 2353| Block 1 +# 2353| m2353_7(unknown) = Phi : from 2:~m2359_5, from 3:~m2359_13 +# 2353| m2353_8(int) = Phi : from 2:m2356_3, from 3:m2358_3 +# 2353| r2353_9(glval<int>) = VariableAddress[#return] : +# 2353| v2353_10(void) = ReturnValue : &:r2353_9, m2353_8 +# 2353| v2353_11(void) = AliasedUse : ~m2353_7 +# 2353| v2353_12(void) = ExitFunction : -# 2309| Block 2 -# 2309| r2309_1(glval<int>) = VariableAddress[#return] : -# 2309| r2309_2(int) = Constant[1] : -# 2309| m2309_3(int) = Store[#return] : &:r2309_1, r2309_2 -# 2312| r2312_1(glval<String>) = VariableAddress[s] : -# 2312| r2312_2(glval<unknown>) = FunctionAddress[~String] : -# 2312| v2312_3(void) = Call[~String] : func:r2312_2, this:r2312_1 -# 2312| m2312_4(unknown) = ^CallSideEffect : ~m2307_6 -# 2312| m2312_5(unknown) = Chi : total:m2307_6, partial:m2312_4 -# 2312| v2312_6(void) = ^IndirectReadSideEffect[-1] : &:r2312_1, m2307_8 -# 2312| m2312_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 -# 2312| m2312_8(String) = Chi : total:m2307_8, partial:m2312_7 +# 2356| Block 2 +# 2356| r2356_1(glval<int>) = VariableAddress[#return] : +# 2356| r2356_2(int) = Constant[1] : +# 2356| m2356_3(int) = Store[#return] : &:r2356_1, r2356_2 +# 2359| r2359_1(glval<String>) = VariableAddress[s] : +# 2359| r2359_2(glval<unknown>) = FunctionAddress[~String] : +# 2359| v2359_3(void) = Call[~String] : func:r2359_2, this:r2359_1 +# 2359| m2359_4(unknown) = ^CallSideEffect : ~m2354_6 +# 2359| m2359_5(unknown) = Chi : total:m2354_6, partial:m2359_4 +# 2359| v2359_6(void) = ^IndirectReadSideEffect[-1] : &:r2359_1, m2354_8 +# 2359| m2359_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2359_1 +# 2359| m2359_8(String) = Chi : total:m2354_8, partial:m2359_7 #-----| Goto -> Block 1 -# 2311| Block 3 -# 2311| r2311_1(glval<int>) = VariableAddress[#return] : -# 2311| r2311_2(int) = Constant[0] : -# 2311| m2311_3(int) = Store[#return] : &:r2311_1, r2311_2 -# 2312| r2312_9(glval<String>) = VariableAddress[s] : -# 2312| r2312_10(glval<unknown>) = FunctionAddress[~String] : -# 2312| v2312_11(void) = Call[~String] : func:r2312_10, this:r2312_9 -# 2312| m2312_12(unknown) = ^CallSideEffect : ~m2307_6 -# 2312| m2312_13(unknown) = Chi : total:m2307_6, partial:m2312_12 -# 2312| v2312_14(void) = ^IndirectReadSideEffect[-1] : &:r2312_9, m2307_8 -# 2312| m2312_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_9 -# 2312| m2312_16(String) = Chi : total:m2307_8, partial:m2312_15 +# 2358| Block 3 +# 2358| r2358_1(glval<int>) = VariableAddress[#return] : +# 2358| r2358_2(int) = Constant[0] : +# 2358| m2358_3(int) = Store[#return] : &:r2358_1, r2358_2 +# 2359| r2359_9(glval<String>) = VariableAddress[s] : +# 2359| r2359_10(glval<unknown>) = FunctionAddress[~String] : +# 2359| v2359_11(void) = Call[~String] : func:r2359_10, this:r2359_9 +# 2359| m2359_12(unknown) = ^CallSideEffect : ~m2354_6 +# 2359| m2359_13(unknown) = Chi : total:m2354_6, partial:m2359_12 +# 2359| v2359_14(void) = ^IndirectReadSideEffect[-1] : &:r2359_9, m2354_8 +# 2359| m2359_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2359_9 +# 2359| m2359_16(String) = Chi : total:m2354_8, partial:m2359_15 #-----| Goto -> Block 1 -# 2314| void VoidReturnDestructors() -# 2314| Block 0 -# 2314| v2314_1(void) = EnterFunction : -# 2314| m2314_2(unknown) = AliasedDefinition : -# 2314| m2314_3(unknown) = InitializeNonLocal : -# 2314| m2314_4(unknown) = Chi : total:m2314_2, partial:m2314_3 -# 2315| r2315_1(glval<String>) = VariableAddress[s] : -# 2315| m2315_2(String) = Uninitialized[s] : &:r2315_1 -# 2315| r2315_3(glval<unknown>) = FunctionAddress[String] : -# 2315| v2315_4(void) = Call[String] : func:r2315_3, this:r2315_1 -# 2315| m2315_5(unknown) = ^CallSideEffect : ~m2314_4 -# 2315| m2315_6(unknown) = Chi : total:m2314_4, partial:m2315_5 -# 2315| m2315_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2315_1 -# 2315| m2315_8(String) = Chi : total:m2315_2, partial:m2315_7 -# 2316| r2316_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2316| v2316_2(void) = Call[VoidFunc] : func:r2316_1 -# 2316| m2316_3(unknown) = ^CallSideEffect : ~m2315_6 -# 2316| m2316_4(unknown) = Chi : total:m2315_6, partial:m2316_3 -# 2316| v2316_5(void) = NoOp : -# 2317| r2317_1(glval<String>) = VariableAddress[s] : -# 2317| r2317_2(glval<unknown>) = FunctionAddress[~String] : -# 2317| v2317_3(void) = Call[~String] : func:r2317_2, this:r2317_1 -# 2317| m2317_4(unknown) = ^CallSideEffect : ~m2316_4 -# 2317| m2317_5(unknown) = Chi : total:m2316_4, partial:m2317_4 -# 2317| v2317_6(void) = ^IndirectReadSideEffect[-1] : &:r2317_1, m2315_8 -# 2317| m2317_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2317_1 -# 2317| m2317_8(String) = Chi : total:m2315_8, partial:m2317_7 -# 2314| v2314_5(void) = ReturnVoid : -# 2314| v2314_6(void) = AliasedUse : ~m2317_5 -# 2314| v2314_7(void) = ExitFunction : +# 2361| void VoidReturnDestructors() +# 2361| Block 0 +# 2361| v2361_1(void) = EnterFunction : +# 2361| m2361_2(unknown) = AliasedDefinition : +# 2361| m2361_3(unknown) = InitializeNonLocal : +# 2361| m2361_4(unknown) = Chi : total:m2361_2, partial:m2361_3 +# 2362| r2362_1(glval<String>) = VariableAddress[s] : +# 2362| m2362_2(String) = Uninitialized[s] : &:r2362_1 +# 2362| r2362_3(glval<unknown>) = FunctionAddress[String] : +# 2362| v2362_4(void) = Call[String] : func:r2362_3, this:r2362_1 +# 2362| m2362_5(unknown) = ^CallSideEffect : ~m2361_4 +# 2362| m2362_6(unknown) = Chi : total:m2361_4, partial:m2362_5 +# 2362| m2362_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2362_1 +# 2362| m2362_8(String) = Chi : total:m2362_2, partial:m2362_7 +# 2363| r2363_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2363| v2363_2(void) = Call[VoidFunc] : func:r2363_1 +# 2363| m2363_3(unknown) = ^CallSideEffect : ~m2362_6 +# 2363| m2363_4(unknown) = Chi : total:m2362_6, partial:m2363_3 +# 2363| v2363_5(void) = NoOp : +# 2364| r2364_1(glval<String>) = VariableAddress[s] : +# 2364| r2364_2(glval<unknown>) = FunctionAddress[~String] : +# 2364| v2364_3(void) = Call[~String] : func:r2364_2, this:r2364_1 +# 2364| m2364_4(unknown) = ^CallSideEffect : ~m2363_4 +# 2364| m2364_5(unknown) = Chi : total:m2363_4, partial:m2364_4 +# 2364| v2364_6(void) = ^IndirectReadSideEffect[-1] : &:r2364_1, m2362_8 +# 2364| m2364_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2364_1 +# 2364| m2364_8(String) = Chi : total:m2362_8, partial:m2364_7 +# 2361| v2361_5(void) = ReturnVoid : +# 2361| v2361_6(void) = AliasedUse : ~m2364_5 +# 2361| v2361_7(void) = ExitFunction : -# 2327| return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() -# 2327| Block 0 -# 2327| v2327_1(void) = EnterFunction : -# 2327| m2327_2(unknown) = AliasedDefinition : -# 2327| m2327_3(unknown) = InitializeNonLocal : -# 2327| m2327_4(unknown) = Chi : total:m2327_2, partial:m2327_3 -# 2329| r2329_1(glval<..:: *>) = VariableAddress[#return] : -# 2329| r2329_2(..()(..)) = FunctionAddress[VoidToInt] : -# 2329| m2329_3(..:: *) = Store[#return] : &:r2329_1, r2329_2 -# 2327| r2327_5(glval<..:: *>) = VariableAddress[#return] : -# 2327| v2327_6(void) = ReturnValue : &:r2327_5, m2329_3 -# 2327| v2327_7(void) = AliasedUse : m2327_3 -# 2327| v2327_8(void) = ExitFunction : +# 2374| return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() +# 2374| Block 0 +# 2374| v2374_1(void) = EnterFunction : +# 2374| m2374_2(unknown) = AliasedDefinition : +# 2374| m2374_3(unknown) = InitializeNonLocal : +# 2374| m2374_4(unknown) = Chi : total:m2374_2, partial:m2374_3 +# 2376| r2376_1(glval<..:: *>) = VariableAddress[#return] : +# 2376| r2376_2(..()(..)) = FunctionAddress[VoidToInt] : +# 2376| m2376_3(..:: *) = Store[#return] : &:r2376_1, r2376_2 +# 2374| r2374_5(glval<..:: *>) = VariableAddress[#return] : +# 2374| v2374_6(void) = ReturnValue : &:r2374_5, m2376_3 +# 2374| v2374_7(void) = AliasedUse : m2374_3 +# 2374| v2374_8(void) = ExitFunction : perf-regression.cpp: # 6| void Big::Big() diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index b63449d96f0..01d6b268102 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -1055,28 +1055,75 @@ void Lambda(int x, const String& s) { lambda_inits(6); } -template<typename T> -struct vector { - struct iterator { - T* p; - iterator& operator++(); - T& operator*() const; +namespace std { + template<class T> + struct remove_const { typedef T type; }; - bool operator!=(iterator right) const; + template<class T> + struct remove_const<const T> { typedef T type; }; + + // `remove_const_t<T>` removes any `const` specifier from `T` + template<class T> + using remove_const_t = typename remove_const<T>::type; + + struct ptrdiff_t; + + template<class I> struct iterator_traits; + + template <class Category, + class value_type, + class difference_type = ptrdiff_t, + class pointer_type = value_type*, + class reference_type = value_type&> + struct iterator { + typedef Category iterator_category; + + iterator(); + iterator(iterator<Category, remove_const_t<value_type> > const &other); // non-const -> const conversion constructor + + iterator &operator++(); + iterator operator++(int); + iterator &operator--(); + iterator operator--(int); + bool operator==(iterator other) const; + bool operator!=(iterator other) const; + reference_type operator*() const; + pointer_type operator->() const; + iterator operator+(int); + iterator operator-(int); + iterator &operator+=(int); + iterator &operator-=(int); + int operator-(iterator); + reference_type operator[](int); + }; + + struct input_iterator_tag {}; + struct forward_iterator_tag : public input_iterator_tag {}; + struct bidirectional_iterator_tag : public forward_iterator_tag {}; + struct random_access_iterator_tag : public bidirectional_iterator_tag {}; + + struct output_iterator_tag {}; + + template<typename T> + struct vector { + vector(T); + ~vector(); + + using iterator = std::iterator<random_access_iterator_tag, T>; + using const_iterator = std::iterator<random_access_iterator_tag, const T>; + + iterator begin() const; + iterator end() const; }; - vector(T); - ~vector(); - iterator begin() const; - iterator end() const; -}; + template<typename T> + bool operator==(typename vector<T>::iterator left, typename vector<T>::iterator right); + template<typename T> + bool operator!=(typename vector<T>::iterator left, typename vector<T>::iterator right); -template<typename T> -bool operator==(typename vector<T>::iterator left, typename vector<T>::iterator right); -template<typename T> -bool operator!=(typename vector<T>::iterator left, typename vector<T>::iterator right); +} -void RangeBasedFor(const vector<int>& v) { +void RangeBasedFor(const std::vector<int>& v) { for (int e : v) { if (e > 0) { continue; @@ -2151,21 +2198,21 @@ void initialization_with_destructor(bool b, char c) { } ClassWithDestructor x; - for(vector<ClassWithDestructor> ys(x); ClassWithDestructor y : ys) + for(std::vector<ClassWithDestructor> ys(x); ClassWithDestructor y : ys) y.set_x('a'); - for(vector<ClassWithDestructor> ys(x); ClassWithDestructor y : ys) { + for(std::vector<ClassWithDestructor> ys(x); ClassWithDestructor y : ys) { y.set_x('a'); if (y.get_x() == 'b') return; } - for(vector<int> ys(1); int y : ys) { + for(std::vector<int> ys(1); int y : ys) { if (y == 1) return; } - for(vector<ClassWithDestructor> ys(x); ClassWithDestructor y : ys) { + for(std::vector<ClassWithDestructor> ys(x); ClassWithDestructor y : ys) { ClassWithDestructor z1; ClassWithDestructor z2; } @@ -2243,7 +2290,7 @@ void ForDestructors() { String s2; } - for(String s : vector<String>(String("hello"))) { + for(String s : std::vector<String>(String("hello"))) { String s2; } @@ -2331,4 +2378,18 @@ namespace return_routine_type { } + +using size_t = decltype(sizeof(0)); + +template<class T> +struct remove_const { typedef T type; }; + +template<class T> +struct remove_const<const T> { typedef T type; }; + +// `remove_const_t<T>` removes any `const` specifier from `T` +template<class T> +using remove_const_t = typename remove_const<T>::type; + + // semmle-extractor-options: -std=c++20 --clang diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index 7f606978b58..aa2496f19f2 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -1178,7 +1178,9 @@ | file://:0:0:0:0 | Address | &:r0_5 | | file://:0:0:0:0 | Address | &:r0_6 | | file://:0:0:0:0 | Address | &:r0_6 | -| file://:0:0:0:0 | Address | &:r0_7 | +| file://:0:0:0:0 | Address | &:r0_6 | +| file://:0:0:0:0 | Address | &:r0_6 | +| file://:0:0:0:0 | Address | &:r0_6 | | file://:0:0:0:0 | Address | &:r0_7 | | file://:0:0:0:0 | Address | &:r0_7 | | file://:0:0:0:0 | Address | &:r0_7 | @@ -1191,8 +1193,12 @@ | file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_8 | -| file://:0:0:0:0 | Address | &:r0_9 | -| file://:0:0:0:0 | Address | &:r0_9 | +| file://:0:0:0:0 | Address | &:r0_8 | +| file://:0:0:0:0 | Address | &:r0_8 | +| file://:0:0:0:0 | Address | &:r0_8 | +| file://:0:0:0:0 | Address | &:r0_8 | +| file://:0:0:0:0 | Address | &:r0_8 | +| file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_9 | | file://:0:0:0:0 | Address | &:r0_9 | | file://:0:0:0:0 | Address | &:r0_10 | @@ -1201,7 +1207,7 @@ | file://:0:0:0:0 | Address | &:r0_11 | | file://:0:0:0:0 | Address | &:r0_11 | | file://:0:0:0:0 | Address | &:r0_11 | -| file://:0:0:0:0 | Address | &:r0_12 | +| file://:0:0:0:0 | Address | &:r0_11 | | file://:0:0:0:0 | Address | &:r0_13 | | file://:0:0:0:0 | Address | &:r0_13 | | file://:0:0:0:0 | Address | &:r0_13 | @@ -1210,6 +1216,7 @@ | file://:0:0:0:0 | Address | &:r0_15 | | file://:0:0:0:0 | Address | &:r0_15 | | file://:0:0:0:0 | Address | &:r0_15 | +| file://:0:0:0:0 | Address | &:r0_15 | | file://:0:0:0:0 | Address | &:r0_16 | | file://:0:0:0:0 | Address | &:r0_16 | | file://:0:0:0:0 | Address | &:r0_16 | @@ -1218,23 +1225,58 @@ | file://:0:0:0:0 | Address | &:r0_17 | | file://:0:0:0:0 | Address | &:r0_18 | | file://:0:0:0:0 | Address | &:r0_18 | +| file://:0:0:0:0 | Address | &:r0_18 | | file://:0:0:0:0 | Address | &:r0_19 | | file://:0:0:0:0 | Address | &:r0_19 | | file://:0:0:0:0 | Address | &:r0_19 | -| file://:0:0:0:0 | Address | &:r0_22 | -| file://:0:0:0:0 | Address | &:r0_25 | +| file://:0:0:0:0 | Address | &:r0_20 | +| file://:0:0:0:0 | Address | &:r0_20 | +| file://:0:0:0:0 | Address | &:r0_20 | +| file://:0:0:0:0 | Address | &:r0_21 | +| file://:0:0:0:0 | Address | &:r0_23 | +| file://:0:0:0:0 | Address | &:r0_23 | +| file://:0:0:0:0 | Address | &:r0_24 | +| file://:0:0:0:0 | Address | &:r0_24 | +| file://:0:0:0:0 | Address | &:r0_24 | | file://:0:0:0:0 | Address | &:r0_27 | -| file://:0:0:0:0 | Address | &:r0_29 | -| file://:0:0:0:0 | Address | &:r0_32 | -| file://:0:0:0:0 | Address | &:r0_35 | +| file://:0:0:0:0 | Address | &:r0_27 | +| file://:0:0:0:0 | Address | &:r0_31 | +| file://:0:0:0:0 | Address | &:r0_34 | | file://:0:0:0:0 | Address | &:r0_37 | | file://:0:0:0:0 | Address | &:r0_39 | +| file://:0:0:0:0 | Address | &:r0_40 | +| file://:0:0:0:0 | Address | &:r0_40 | +| file://:0:0:0:0 | Address | &:r0_40 | +| file://:0:0:0:0 | Address | &:r0_43 | +| file://:0:0:0:0 | Address | &:r0_47 | +| file://:0:0:0:0 | Address | &:r0_50 | +| file://:0:0:0:0 | Address | &:r0_53 | +| file://:0:0:0:0 | Address | &:r0_55 | +| file://:0:0:0:0 | Address | &:r0_56 | +| file://:0:0:0:0 | Address | &:r0_56 | +| file://:0:0:0:0 | Address | &:r0_56 | +| file://:0:0:0:0 | Address | &:r0_59 | +| file://:0:0:0:0 | Address | &:r0_63 | | file://:0:0:0:0 | Arg(0) | 0:r0_6 | | file://:0:0:0:0 | Arg(0) | 0:r0_8 | | file://:0:0:0:0 | Arg(0) | 0:r0_8 | | file://:0:0:0:0 | Arg(0) | 0:r0_8 | +| file://:0:0:0:0 | Arg(0) | 0:r0_9 | +| file://:0:0:0:0 | Arg(0) | 0:r0_11 | +| file://:0:0:0:0 | Arg(0) | 0:r0_11 | +| file://:0:0:0:0 | Arg(0) | 0:r0_11 | +| file://:0:0:0:0 | Arg(0) | 0:r0_13 | +| file://:0:0:0:0 | Arg(0) | 0:r0_13 | | file://:0:0:0:0 | Arg(0) | 0:r0_15 | | file://:0:0:0:0 | Arg(0) | 0:r0_15 | +| file://:0:0:0:0 | Arg(0) | 0:r0_23 | +| file://:0:0:0:0 | Arg(0) | 0:r0_25 | +| file://:0:0:0:0 | Arg(0) | 0:r0_27 | +| file://:0:0:0:0 | Arg(0) | 0:r0_29 | +| file://:0:0:0:0 | Arg(0) | 0:r0_43 | +| file://:0:0:0:0 | Arg(0) | 0:r0_45 | +| file://:0:0:0:0 | Arg(0) | 0:r0_59 | +| file://:0:0:0:0 | Arg(0) | 0:r0_61 | | file://:0:0:0:0 | CallTarget | func:r0_1 | | file://:0:0:0:0 | CallTarget | func:r0_1 | | file://:0:0:0:0 | CallTarget | func:r0_1 | @@ -1266,15 +1308,15 @@ | file://:0:0:0:0 | ChiTotal | total:m754_8 | | file://:0:0:0:0 | ChiTotal | total:m763_8 | | file://:0:0:0:0 | ChiTotal | total:m1043_10 | -| file://:0:0:0:0 | ChiTotal | total:m1242_4 | -| file://:0:0:0:0 | ChiTotal | total:m1690_3 | -| file://:0:0:0:0 | ChiTotal | total:m1718_8 | -| file://:0:0:0:0 | ChiTotal | total:m1718_19 | -| file://:0:0:0:0 | ChiTotal | total:m1836_8 | -| file://:0:0:0:0 | ChiTotal | total:m1841_8 | -| file://:0:0:0:0 | ChiTotal | total:m2175_6 | -| file://:0:0:0:0 | ChiTotal | total:m2179_4 | -| file://:0:0:0:0 | ChiTotal | total:m2186_6 | +| file://:0:0:0:0 | ChiTotal | total:m1289_4 | +| file://:0:0:0:0 | ChiTotal | total:m1737_3 | +| file://:0:0:0:0 | ChiTotal | total:m1765_8 | +| file://:0:0:0:0 | ChiTotal | total:m1765_19 | +| file://:0:0:0:0 | ChiTotal | total:m1883_8 | +| file://:0:0:0:0 | ChiTotal | total:m1888_8 | +| file://:0:0:0:0 | ChiTotal | total:m2222_6 | +| file://:0:0:0:0 | ChiTotal | total:m2226_4 | +| file://:0:0:0:0 | ChiTotal | total:m2233_6 | | file://:0:0:0:0 | Left | r0_2 | | file://:0:0:0:0 | Left | r0_4 | | file://:0:0:0:0 | Left | r0_7 | @@ -1306,18 +1348,25 @@ | file://:0:0:0:0 | Load | m745_6 | | file://:0:0:0:0 | Load | m754_6 | | file://:0:0:0:0 | Load | m763_6 | -| file://:0:0:0:0 | Load | m1468_4 | -| file://:0:0:0:0 | Load | m1468_4 | -| file://:0:0:0:0 | Load | m1687_9 | -| file://:0:0:0:0 | Load | m1716_4 | -| file://:0:0:0:0 | Load | m1836_6 | -| file://:0:0:0:0 | Load | m1836_6 | -| file://:0:0:0:0 | Load | m1841_6 | -| file://:0:0:0:0 | Load | m2015_6 | +| file://:0:0:0:0 | Load | m1127_33 | +| file://:0:0:0:0 | Load | m1133_33 | +| file://:0:0:0:0 | Load | m1515_4 | +| file://:0:0:0:0 | Load | m1515_4 | +| file://:0:0:0:0 | Load | m1734_9 | +| file://:0:0:0:0 | Load | m1763_4 | +| file://:0:0:0:0 | Load | m1883_6 | +| file://:0:0:0:0 | Load | m1883_6 | +| file://:0:0:0:0 | Load | m1888_6 | +| file://:0:0:0:0 | Load | m2062_6 | +| file://:0:0:0:0 | Load | m2201_44 | +| file://:0:0:0:0 | Load | m2204_44 | +| file://:0:0:0:0 | Load | m2210_40 | +| file://:0:0:0:0 | Load | m2215_44 | +| file://:0:0:0:0 | Load | m2293_50 | | file://:0:0:0:0 | Load | ~m0_4 | -| file://:0:0:0:0 | Load | ~m1446_6 | -| file://:0:0:0:0 | Load | ~m1714_10 | -| file://:0:0:0:0 | Load | ~m1714_14 | +| file://:0:0:0:0 | Load | ~m1493_6 | +| file://:0:0:0:0 | Load | ~m1761_10 | +| file://:0:0:0:0 | Load | ~m1761_14 | | file://:0:0:0:0 | Right | r0_3 | | file://:0:0:0:0 | Right | r0_5 | | file://:0:0:0:0 | Right | r0_8 | @@ -1339,30 +1388,30 @@ | file://:0:0:0:0 | SideEffect | m0_4 | | file://:0:0:0:0 | SideEffect | m0_4 | | file://:0:0:0:0 | SideEffect | m0_14 | -| file://:0:0:0:0 | SideEffect | m1080_23 | -| file://:0:0:0:0 | SideEffect | m1080_23 | -| file://:0:0:0:0 | SideEffect | m1086_23 | -| file://:0:0:0:0 | SideEffect | m1086_23 | -| file://:0:0:0:0 | SideEffect | m2154_13 | -| file://:0:0:0:0 | SideEffect | m2154_13 | -| file://:0:0:0:0 | SideEffect | m2154_34 | -| file://:0:0:0:0 | SideEffect | m2154_34 | -| file://:0:0:0:0 | SideEffect | m2157_13 | -| file://:0:0:0:0 | SideEffect | m2157_13 | -| file://:0:0:0:0 | SideEffect | m2157_34 | -| file://:0:0:0:0 | SideEffect | m2157_34 | -| file://:0:0:0:0 | SideEffect | m2163_9 | -| file://:0:0:0:0 | SideEffect | m2163_9 | -| file://:0:0:0:0 | SideEffect | m2163_30 | -| file://:0:0:0:0 | SideEffect | m2163_30 | -| file://:0:0:0:0 | SideEffect | m2168_13 | -| file://:0:0:0:0 | SideEffect | m2168_13 | -| file://:0:0:0:0 | SideEffect | m2168_34 | -| file://:0:0:0:0 | SideEffect | m2168_34 | -| file://:0:0:0:0 | SideEffect | m2246_21 | -| file://:0:0:0:0 | SideEffect | m2246_21 | -| file://:0:0:0:0 | SideEffect | m2246_40 | -| file://:0:0:0:0 | SideEffect | m2246_40 | +| file://:0:0:0:0 | SideEffect | m1127_23 | +| file://:0:0:0:0 | SideEffect | m1127_23 | +| file://:0:0:0:0 | SideEffect | m1133_23 | +| file://:0:0:0:0 | SideEffect | m1133_23 | +| file://:0:0:0:0 | SideEffect | m2201_13 | +| file://:0:0:0:0 | SideEffect | m2201_13 | +| file://:0:0:0:0 | SideEffect | m2201_34 | +| file://:0:0:0:0 | SideEffect | m2201_34 | +| file://:0:0:0:0 | SideEffect | m2204_13 | +| file://:0:0:0:0 | SideEffect | m2204_13 | +| file://:0:0:0:0 | SideEffect | m2204_34 | +| file://:0:0:0:0 | SideEffect | m2204_34 | +| file://:0:0:0:0 | SideEffect | m2210_9 | +| file://:0:0:0:0 | SideEffect | m2210_9 | +| file://:0:0:0:0 | SideEffect | m2210_30 | +| file://:0:0:0:0 | SideEffect | m2210_30 | +| file://:0:0:0:0 | SideEffect | m2215_13 | +| file://:0:0:0:0 | SideEffect | m2215_13 | +| file://:0:0:0:0 | SideEffect | m2215_34 | +| file://:0:0:0:0 | SideEffect | m2215_34 | +| file://:0:0:0:0 | SideEffect | m2293_21 | +| file://:0:0:0:0 | SideEffect | m2293_21 | +| file://:0:0:0:0 | SideEffect | m2293_40 | +| file://:0:0:0:0 | SideEffect | m2293_40 | | file://:0:0:0:0 | SideEffect | ~m0_4 | | file://:0:0:0:0 | SideEffect | ~m0_4 | | file://:0:0:0:0 | SideEffect | ~m0_4 | @@ -1372,16 +1421,23 @@ | file://:0:0:0:0 | SideEffect | ~m96_8 | | file://:0:0:0:0 | SideEffect | ~m754_8 | | file://:0:0:0:0 | SideEffect | ~m763_8 | -| file://:0:0:0:0 | SideEffect | ~m1079_8 | -| file://:0:0:0:0 | SideEffect | ~m1079_8 | -| file://:0:0:0:0 | SideEffect | ~m1079_8 | -| file://:0:0:0:0 | SideEffect | ~m1079_8 | -| file://:0:0:0:0 | SideEffect | ~m1242_4 | -| file://:0:0:0:0 | SideEffect | ~m1449_6 | -| file://:0:0:0:0 | SideEffect | ~m1841_8 | -| file://:0:0:0:0 | SideEffect | ~m2175_6 | -| file://:0:0:0:0 | SideEffect | ~m2179_4 | -| file://:0:0:0:0 | SideEffect | ~m2186_6 | +| file://:0:0:0:0 | SideEffect | ~m1126_8 | +| file://:0:0:0:0 | SideEffect | ~m1126_8 | +| file://:0:0:0:0 | SideEffect | ~m1126_8 | +| file://:0:0:0:0 | SideEffect | ~m1126_8 | +| file://:0:0:0:0 | SideEffect | ~m1127_22 | +| file://:0:0:0:0 | SideEffect | ~m1133_22 | +| file://:0:0:0:0 | SideEffect | ~m1289_4 | +| file://:0:0:0:0 | SideEffect | ~m1496_6 | +| file://:0:0:0:0 | SideEffect | ~m1888_8 | +| file://:0:0:0:0 | SideEffect | ~m2201_33 | +| file://:0:0:0:0 | SideEffect | ~m2204_33 | +| file://:0:0:0:0 | SideEffect | ~m2210_29 | +| file://:0:0:0:0 | SideEffect | ~m2215_33 | +| file://:0:0:0:0 | SideEffect | ~m2222_6 | +| file://:0:0:0:0 | SideEffect | ~m2226_4 | +| file://:0:0:0:0 | SideEffect | ~m2233_6 | +| file://:0:0:0:0 | SideEffect | ~m2293_39 | | file://:0:0:0:0 | StoreValue | r0_1 | | file://:0:0:0:0 | StoreValue | r0_1 | | file://:0:0:0:0 | StoreValue | r0_1 | @@ -1432,30 +1488,37 @@ | file://:0:0:0:0 | Unary | r0_7 | | file://:0:0:0:0 | Unary | r0_8 | | file://:0:0:0:0 | Unary | r0_8 | +| file://:0:0:0:0 | Unary | r0_8 | | file://:0:0:0:0 | Unary | r0_9 | | file://:0:0:0:0 | Unary | r0_9 | | file://:0:0:0:0 | Unary | r0_9 | | file://:0:0:0:0 | Unary | r0_10 | | file://:0:0:0:0 | Unary | r0_10 | | file://:0:0:0:0 | Unary | r0_10 | -| file://:0:0:0:0 | Unary | r0_11 | +| file://:0:0:0:0 | Unary | r0_10 | +| file://:0:0:0:0 | Unary | r0_10 | | file://:0:0:0:0 | Unary | r0_11 | | file://:0:0:0:0 | Unary | r0_12 | | file://:0:0:0:0 | Unary | r0_14 | | file://:0:0:0:0 | Unary | r0_14 | -| file://:0:0:0:0 | Unary | r0_14 | +| file://:0:0:0:0 | Unary | r0_17 | | file://:0:0:0:0 | Unary | r0_17 | | file://:0:0:0:0 | Unary | r0_18 | | file://:0:0:0:0 | Unary | r0_18 | | file://:0:0:0:0 | Unary | r0_19 | | file://:0:0:0:0 | Unary | r0_20 | | file://:0:0:0:0 | Unary | r0_20 | +| file://:0:0:0:0 | Unary | r0_20 | | file://:0:0:0:0 | Unary | r0_21 | | file://:0:0:0:0 | Unary | r0_21 | -| file://:0:0:0:0 | Unary | r0_21 | -| file://:0:0:0:0 | Unary | r0_24 | -| file://:0:0:0:0 | Unary | r0_31 | -| file://:0:0:0:0 | Unary | r0_34 | +| file://:0:0:0:0 | Unary | r0_22 | +| file://:0:0:0:0 | Unary | r0_26 | +| file://:0:0:0:0 | Unary | r0_33 | +| file://:0:0:0:0 | Unary | r0_36 | +| file://:0:0:0:0 | Unary | r0_42 | +| file://:0:0:0:0 | Unary | r0_49 | +| file://:0:0:0:0 | Unary | r0_52 | +| file://:0:0:0:0 | Unary | r0_58 | | ir.c:7:6:7:17 | ChiPartial | partial:m7_3 | | ir.c:7:6:7:17 | ChiTotal | total:m7_2 | | ir.c:7:6:7:17 | SideEffect | ~m10_6 | @@ -6147,6333 +6210,6368 @@ | ir.cpp:1056:1:1056:1 | SideEffect | m1049_12 | | ir.cpp:1056:1:1056:1 | SideEffect | ~m1055_7 | | ir.cpp:1056:1:1056:1 | SideEffect | ~m1056_6 | -| ir.cpp:1079:6:1079:18 | ChiPartial | partial:m1079_3 | -| ir.cpp:1079:6:1079:18 | ChiTotal | total:m1079_2 | -| ir.cpp:1079:6:1079:18 | SideEffect | ~m1090_1 | -| ir.cpp:1079:39:1079:39 | Address | &:r1079_5 | -| ir.cpp:1079:39:1079:39 | Address | &:r1079_5 | -| ir.cpp:1079:39:1079:39 | Address | &:r1079_7 | -| ir.cpp:1079:39:1079:39 | Address | &:r1079_7 | -| ir.cpp:1079:39:1079:39 | Load | m1079_6 | -| ir.cpp:1079:39:1079:39 | SideEffect | m1079_8 | -| ir.cpp:1080:5:1080:5 | Address | &:r1080_1 | -| ir.cpp:1080:5:1080:5 | Address | &:r1080_7 | -| ir.cpp:1080:5:1080:5 | Address | &:r1080_15 | -| ir.cpp:1080:14:1080:14 | Address | &:r1080_33 | -| ir.cpp:1080:18:1080:18 | Address | &:r1080_2 | -| ir.cpp:1080:18:1080:18 | Address | &:r1080_8 | -| ir.cpp:1080:18:1080:18 | Address | &:r1080_16 | -| ir.cpp:1080:18:1080:18 | Address | &:r1080_27 | -| ir.cpp:1080:18:1080:18 | Address | &:r1080_36 | -| ir.cpp:1080:18:1080:18 | Address | &:r1080_42 | -| ir.cpp:1080:18:1080:18 | Address | &:r1080_42 | -| ir.cpp:1080:18:1080:18 | Arg(0) | 0:r1080_28 | -| ir.cpp:1080:18:1080:18 | Arg(this) | this:r0_1 | -| ir.cpp:1080:18:1080:18 | Arg(this) | this:r0_3 | -| ir.cpp:1080:18:1080:18 | Arg(this) | this:r0_5 | -| ir.cpp:1080:18:1080:18 | Arg(this) | this:r0_7 | -| ir.cpp:1080:18:1080:18 | Arg(this) | this:r1080_42 | -| ir.cpp:1080:18:1080:18 | CallTarget | func:r1080_10 | -| ir.cpp:1080:18:1080:18 | CallTarget | func:r1080_18 | -| ir.cpp:1080:18:1080:18 | CallTarget | func:r1080_26 | -| ir.cpp:1080:18:1080:18 | CallTarget | func:r1080_35 | -| ir.cpp:1080:18:1080:18 | CallTarget | func:r1080_43 | -| ir.cpp:1080:18:1080:18 | ChiPartial | partial:m1080_12 | -| ir.cpp:1080:18:1080:18 | ChiPartial | partial:m1080_20 | -| ir.cpp:1080:18:1080:18 | ChiPartial | partial:m1080_30 | -| ir.cpp:1080:18:1080:18 | ChiPartial | partial:m1080_37 | -| ir.cpp:1080:18:1080:18 | ChiPartial | partial:m1080_45 | -| ir.cpp:1080:18:1080:18 | ChiPartial | partial:m1080_48 | -| ir.cpp:1080:18:1080:18 | ChiTotal | total:m1079_4 | -| ir.cpp:1080:18:1080:18 | ChiTotal | total:m1080_13 | -| ir.cpp:1080:18:1080:18 | ChiTotal | total:m1080_23 | -| ir.cpp:1080:18:1080:18 | ChiTotal | total:m1080_24 | -| ir.cpp:1080:18:1080:18 | ChiTotal | total:m1080_31 | -| ir.cpp:1080:18:1080:18 | ChiTotal | total:m1080_38 | -| ir.cpp:1080:18:1080:18 | Condition | r1080_29 | -| ir.cpp:1080:18:1080:18 | Load | m1079_6 | -| ir.cpp:1080:18:1080:18 | Load | m1080_6 | -| ir.cpp:1080:18:1080:18 | Load | m1080_6 | -| ir.cpp:1080:18:1080:18 | Load | m1080_22 | -| ir.cpp:1080:18:1080:18 | Phi | from 0:m1080_14 | -| ir.cpp:1080:18:1080:18 | Phi | from 0:~m1080_21 | -| ir.cpp:1080:18:1080:18 | Phi | from 4:m1080_49 | -| ir.cpp:1080:18:1080:18 | Phi | from 4:~m1080_46 | -| ir.cpp:1080:18:1080:18 | SideEffect | m1080_23 | -| ir.cpp:1080:18:1080:18 | SideEffect | ~m1079_4 | -| ir.cpp:1080:18:1080:18 | SideEffect | ~m1080_13 | -| ir.cpp:1080:18:1080:18 | SideEffect | ~m1080_24 | -| ir.cpp:1080:18:1080:18 | SideEffect | ~m1080_31 | -| ir.cpp:1080:18:1080:18 | SideEffect | ~m1080_38 | -| ir.cpp:1080:18:1080:18 | StoreValue | r1080_5 | -| ir.cpp:1080:18:1080:18 | StoreValue | r1080_11 | -| ir.cpp:1080:18:1080:18 | StoreValue | r1080_19 | -| ir.cpp:1080:18:1080:18 | Unary | r1080_3 | -| ir.cpp:1080:18:1080:18 | Unary | r1080_4 | -| ir.cpp:1080:18:1080:18 | Unary | r1080_9 | -| ir.cpp:1080:18:1080:18 | Unary | r1080_17 | -| ir.cpp:1080:18:1080:18 | Unary | r1080_25 | -| ir.cpp:1080:18:1080:18 | Unary | r1080_34 | -| ir.cpp:1080:18:1080:18 | Unary | r1080_44 | -| ir.cpp:1080:18:1080:19 | Load | ~m1080_38 | -| ir.cpp:1080:18:1080:19 | StoreValue | r1080_39 | -| ir.cpp:1081:13:1081:13 | Address | &:r1081_1 | -| ir.cpp:1081:13:1081:13 | Left | r1081_2 | -| ir.cpp:1081:13:1081:13 | Load | m1080_40 | -| ir.cpp:1081:13:1081:17 | Condition | r1081_4 | -| ir.cpp:1081:17:1081:17 | Right | r1081_3 | -| ir.cpp:1086:5:1086:5 | Address | &:r1086_1 | -| ir.cpp:1086:5:1086:5 | Address | &:r1086_7 | -| ir.cpp:1086:5:1086:5 | Address | &:r1086_15 | -| ir.cpp:1086:21:1086:21 | Address | &:r1086_42 | -| ir.cpp:1086:25:1086:25 | Address | &:r1086_2 | -| ir.cpp:1086:25:1086:25 | Address | &:r1086_8 | -| ir.cpp:1086:25:1086:25 | Address | &:r1086_16 | -| ir.cpp:1086:25:1086:25 | Address | &:r1086_27 | -| ir.cpp:1086:25:1086:25 | Address | &:r1086_33 | -| ir.cpp:1086:25:1086:25 | Address | &:r1086_33 | -| ir.cpp:1086:25:1086:25 | Arg(0) | 0:r1086_28 | -| ir.cpp:1086:25:1086:25 | Arg(this) | this:r0_9 | -| ir.cpp:1086:25:1086:25 | Arg(this) | this:r0_11 | -| ir.cpp:1086:25:1086:25 | Arg(this) | this:r0_13 | -| ir.cpp:1086:25:1086:25 | Arg(this) | this:r0_15 | -| ir.cpp:1086:25:1086:25 | Arg(this) | this:r1086_33 | -| ir.cpp:1086:25:1086:25 | CallTarget | func:r1086_10 | -| ir.cpp:1086:25:1086:25 | CallTarget | func:r1086_18 | -| ir.cpp:1086:25:1086:25 | CallTarget | func:r1086_26 | -| ir.cpp:1086:25:1086:25 | CallTarget | func:r1086_34 | -| ir.cpp:1086:25:1086:25 | CallTarget | func:r1086_44 | -| ir.cpp:1086:25:1086:25 | ChiPartial | partial:m1086_12 | -| ir.cpp:1086:25:1086:25 | ChiPartial | partial:m1086_20 | -| ir.cpp:1086:25:1086:25 | ChiPartial | partial:m1086_30 | -| ir.cpp:1086:25:1086:25 | ChiPartial | partial:m1086_36 | -| ir.cpp:1086:25:1086:25 | ChiPartial | partial:m1086_39 | -| ir.cpp:1086:25:1086:25 | ChiPartial | partial:m1086_46 | -| ir.cpp:1086:25:1086:25 | ChiTotal | total:m1080_31 | -| ir.cpp:1086:25:1086:25 | ChiTotal | total:m1086_13 | -| ir.cpp:1086:25:1086:25 | ChiTotal | total:m1086_23 | -| ir.cpp:1086:25:1086:25 | ChiTotal | total:m1086_24 | -| ir.cpp:1086:25:1086:25 | ChiTotal | total:m1086_31 | -| ir.cpp:1086:25:1086:25 | ChiTotal | total:m1086_47 | -| ir.cpp:1086:25:1086:25 | Condition | r1086_29 | -| ir.cpp:1086:25:1086:25 | Load | m1079_6 | -| ir.cpp:1086:25:1086:25 | Load | m1086_6 | -| ir.cpp:1086:25:1086:25 | Load | m1086_6 | -| ir.cpp:1086:25:1086:25 | Load | m1086_22 | -| ir.cpp:1086:25:1086:25 | Phi | from 5:m1086_14 | -| ir.cpp:1086:25:1086:25 | Phi | from 5:~m1086_21 | -| ir.cpp:1086:25:1086:25 | Phi | from 7:m1086_40 | -| ir.cpp:1086:25:1086:25 | Phi | from 7:~m1086_37 | -| ir.cpp:1086:25:1086:25 | SideEffect | m1086_23 | -| ir.cpp:1086:25:1086:25 | SideEffect | ~m1080_31 | -| ir.cpp:1086:25:1086:25 | SideEffect | ~m1086_13 | -| ir.cpp:1086:25:1086:25 | SideEffect | ~m1086_24 | -| ir.cpp:1086:25:1086:25 | SideEffect | ~m1086_31 | -| ir.cpp:1086:25:1086:25 | SideEffect | ~m1086_47 | -| ir.cpp:1086:25:1086:25 | StoreValue | r1086_5 | -| ir.cpp:1086:25:1086:25 | StoreValue | r1086_11 | -| ir.cpp:1086:25:1086:25 | StoreValue | r1086_19 | -| ir.cpp:1086:25:1086:25 | Unary | r1086_3 | -| ir.cpp:1086:25:1086:25 | Unary | r1086_4 | -| ir.cpp:1086:25:1086:25 | Unary | r1086_9 | -| ir.cpp:1086:25:1086:25 | Unary | r1086_17 | -| ir.cpp:1086:25:1086:25 | Unary | r1086_25 | -| ir.cpp:1086:25:1086:25 | Unary | r1086_35 | -| ir.cpp:1086:25:1086:25 | Unary | r1086_43 | -| ir.cpp:1086:25:1086:25 | Unary | r1086_45 | -| ir.cpp:1086:25:1086:26 | StoreValue | r1086_50 | -| ir.cpp:1086:25:1086:26 | Unary | r1086_48 | -| ir.cpp:1086:25:1086:26 | Unary | r1086_49 | -| ir.cpp:1087:13:1087:13 | Address | &:r1087_1 | -| ir.cpp:1087:13:1087:13 | Address | &:r1087_2 | -| ir.cpp:1087:13:1087:13 | Left | r1087_3 | -| ir.cpp:1087:13:1087:13 | Load | m1086_51 | -| ir.cpp:1087:13:1087:13 | Load | ~m1086_47 | -| ir.cpp:1087:13:1087:17 | Condition | r1087_5 | -| ir.cpp:1087:17:1087:17 | Right | r1087_4 | -| ir.cpp:1090:5:1090:5 | Phi | from 6:~m1086_31 | -| ir.cpp:1090:5:1090:5 | Phi | from 9:~m1086_47 | -| ir.cpp:1110:5:1110:11 | Address | &:r1110_7 | -| ir.cpp:1110:5:1110:11 | ChiPartial | partial:m1110_3 | -| ir.cpp:1110:5:1110:11 | ChiTotal | total:m1110_2 | -| ir.cpp:1110:5:1110:11 | Load | m1112_4 | -| ir.cpp:1110:5:1110:11 | SideEffect | ~m1111_2 | -| ir.cpp:1110:17:1110:17 | Address | &:r1110_5 | -| ir.cpp:1111:3:1111:14 | ChiPartial | partial:m1111_1 | -| ir.cpp:1111:3:1111:14 | ChiTotal | total:m1110_4 | -| ir.cpp:1111:3:1111:14 | SideEffect | ~m1110_4 | -| ir.cpp:1112:3:1112:11 | Address | &:r1112_1 | -| ir.cpp:1112:10:1112:10 | Address | &:r1112_2 | -| ir.cpp:1112:10:1112:10 | Load | m1110_6 | -| ir.cpp:1112:10:1112:10 | StoreValue | r1112_3 | -| ir.cpp:1115:13:1115:30 | ChiPartial | partial:m1115_3 | -| ir.cpp:1115:13:1115:30 | ChiTotal | total:m1115_2 | -| ir.cpp:1115:13:1115:30 | SideEffect | ~m1117_2 | -| ir.cpp:1115:46:1115:46 | Address | &:r1115_5 | -| ir.cpp:1115:46:1115:46 | Address | &:r1115_5 | -| ir.cpp:1115:46:1115:46 | Address | &:r1115_7 | -| ir.cpp:1115:46:1115:46 | Address | &:r1115_7 | -| ir.cpp:1115:46:1115:46 | Load | m1115_6 | -| ir.cpp:1115:46:1115:46 | SideEffect | m1115_8 | -| ir.cpp:1115:62:1115:62 | Address | &:r1115_9 | -| ir.cpp:1115:79:1115:79 | Address | &:r1115_11 | -| ir.cpp:1115:79:1115:79 | Address | &:r1115_11 | -| ir.cpp:1115:79:1115:79 | Address | &:r1115_13 | -| ir.cpp:1115:79:1115:79 | Address | &:r1115_13 | -| ir.cpp:1115:79:1115:79 | Load | m1115_12 | -| ir.cpp:1115:79:1115:79 | SideEffect | m1115_14 | -| ir.cpp:1115:95:1115:95 | Address | &:r1115_15 | -| ir.cpp:1117:3:1121:6 | ChiPartial | partial:m1117_1 | -| ir.cpp:1117:3:1121:6 | ChiTotal | total:m1115_4 | -| ir.cpp:1117:3:1121:6 | SideEffect | ~m1115_4 | -| ir.cpp:1120:13:1120:13 | Address | &:r1120_1 | -| ir.cpp:1120:13:1120:13 | AsmOperand(0) | 0:r1120_3 | -| ir.cpp:1120:13:1120:13 | Load | m1115_6 | -| ir.cpp:1120:13:1120:13 | Unary | r1120_2 | -| ir.cpp:1120:23:1120:23 | AsmOperand(1) | 1:r1120_4 | -| ir.cpp:1120:33:1120:33 | Address | &:r1120_5 | -| ir.cpp:1120:33:1120:33 | Address | &:r1120_6 | -| ir.cpp:1120:33:1120:33 | AsmOperand(2) | 2:r1120_7 | -| ir.cpp:1120:33:1120:33 | Load | m1115_12 | -| ir.cpp:1120:33:1120:33 | Load | ~m1115_14 | -| ir.cpp:1120:42:1120:42 | Address | &:r1120_8 | -| ir.cpp:1120:42:1120:42 | AsmOperand(3) | 3:r1120_9 | -| ir.cpp:1120:42:1120:42 | Load | m1115_16 | -| ir.cpp:1124:6:1124:23 | ChiPartial | partial:m1124_3 | -| ir.cpp:1124:6:1124:23 | ChiTotal | total:m1124_2 | -| ir.cpp:1124:6:1124:23 | SideEffect | m1124_3 | -| ir.cpp:1127:9:1127:9 | Address | &:r1127_1 | -| ir.cpp:1128:9:1128:9 | Address | &:r1128_1 | -| ir.cpp:1129:29:1129:29 | Address | &:r1129_1 | -| ir.cpp:1139:6:1139:30 | ChiPartial | partial:m1139_3 | -| ir.cpp:1139:6:1139:30 | ChiTotal | total:m1139_2 | -| ir.cpp:1139:6:1139:30 | SideEffect | m1139_3 | -| ir.cpp:1141:5:1141:20 | Address | &:r1141_1 | -| ir.cpp:1141:5:1141:20 | Address | &:r1141_5 | -| ir.cpp:1141:5:1141:20 | Address | &:r1141_10 | -| ir.cpp:1141:5:1141:20 | Address | &:r1141_10 | -| ir.cpp:1141:5:1141:20 | Condition | r1141_8 | -| ir.cpp:1141:5:1141:20 | Left | r1141_6 | -| ir.cpp:1141:5:1141:20 | Left | r1141_11 | -| ir.cpp:1141:5:1141:20 | Load | m1141_4 | -| ir.cpp:1141:5:1141:20 | Load | m1141_4 | -| ir.cpp:1141:5:1141:20 | Phi | from 0:m1141_3 | -| ir.cpp:1141:5:1141:20 | Phi | from 2:m1141_14 | -| ir.cpp:1141:5:1141:20 | Right | r1141_7 | -| ir.cpp:1141:5:1141:20 | Right | r1141_12 | -| ir.cpp:1141:5:1141:20 | StoreValue | r1141_2 | -| ir.cpp:1141:5:1141:20 | StoreValue | r1141_13 | -| ir.cpp:1144:6:1144:23 | ChiPartial | partial:m1144_3 | -| ir.cpp:1144:6:1144:23 | ChiTotal | total:m1144_2 | -| ir.cpp:1144:6:1144:23 | Phi | from 2:~m1144_10 | -| ir.cpp:1144:6:1144:23 | Phi | from 7:~m1156_8 | -| ir.cpp:1144:6:1144:23 | Phi | from 8:~m1144_4 | -| ir.cpp:1144:6:1144:23 | Phi | from 10:~m1144_4 | -| ir.cpp:1144:6:1144:23 | SideEffect | ~m1144_7 | -| ir.cpp:1144:30:1144:30 | Address | &:r1144_5 | -| ir.cpp:1146:9:1146:9 | Address | &:r1146_1 | -| ir.cpp:1146:12:1146:13 | StoreValue | r1146_2 | -| ir.cpp:1147:9:1147:9 | Address | &:r1147_1 | -| ir.cpp:1147:9:1147:9 | Condition | r1147_2 | -| ir.cpp:1147:9:1147:9 | Load | m1144_6 | -| ir.cpp:1148:7:1148:28 | Address | &:r1148_1 | -| ir.cpp:1148:7:1148:28 | Address | &:r1148_1 | -| ir.cpp:1148:7:1148:28 | Load | m1148_4 | -| ir.cpp:1148:13:1148:28 | StoreValue | r1148_3 | -| ir.cpp:1148:13:1148:28 | Unary | r1148_2 | -| ir.cpp:1150:14:1150:14 | Address | &:r1150_1 | -| ir.cpp:1150:14:1150:14 | Left | r1150_2 | -| ir.cpp:1150:14:1150:14 | Load | m1146_3 | -| ir.cpp:1150:14:1150:18 | Condition | r1150_4 | -| ir.cpp:1150:18:1150:18 | Right | r1150_3 | -| ir.cpp:1153:5:1153:5 | Address | &:r1153_2 | -| ir.cpp:1153:9:1153:9 | StoreValue | r1153_1 | -| ir.cpp:1155:22:1155:22 | Address | &:r1155_2 | -| ir.cpp:1155:22:1155:22 | Address | &:r1155_2 | -| ir.cpp:1155:22:1155:22 | Address | &:r1155_4 | -| ir.cpp:1155:22:1155:22 | Load | m1155_3 | -| ir.cpp:1156:5:1156:19 | Address | &:r1156_1 | -| ir.cpp:1156:5:1156:19 | Address | &:r1156_1 | -| ir.cpp:1156:5:1156:19 | Address | &:r1156_1 | -| ir.cpp:1156:5:1156:19 | Arg(this) | this:r1156_1 | -| ir.cpp:1156:5:1156:19 | CallTarget | func:r1156_3 | -| ir.cpp:1156:5:1156:19 | ChiPartial | partial:m1156_7 | -| ir.cpp:1156:5:1156:19 | ChiPartial | partial:m1156_10 | -| ir.cpp:1156:5:1156:19 | ChiTotal | total:m1144_4 | -| ir.cpp:1156:5:1156:19 | ChiTotal | total:m1156_2 | -| ir.cpp:1156:5:1156:19 | Load | m1156_11 | -| ir.cpp:1156:5:1156:19 | SideEffect | ~m1144_4 | -| ir.cpp:1156:18:1156:18 | Address | &:r1156_4 | -| ir.cpp:1156:18:1156:18 | Address | &:r1156_5 | -| ir.cpp:1156:18:1156:18 | Arg(0) | 0:r1156_5 | -| ir.cpp:1156:18:1156:18 | Load | m1155_3 | -| ir.cpp:1156:18:1156:18 | SideEffect | ~m1155_5 | -| ir.cpp:1158:24:1158:24 | Address | &:r1158_2 | -| ir.cpp:1158:24:1158:24 | Address | &:r1158_2 | -| ir.cpp:1158:24:1158:24 | Address | &:r1158_4 | -| ir.cpp:1158:24:1158:24 | Load | m1158_3 | -| ir.cpp:1164:6:1164:16 | ChiPartial | partial:m1164_3 | -| ir.cpp:1164:6:1164:16 | ChiTotal | total:m1164_2 | -| ir.cpp:1164:6:1164:16 | SideEffect | m1164_3 | -| ir.cpp:1164:22:1164:22 | Address | &:r1164_5 | -| ir.cpp:1165:18:1165:20 | Address | &:r1165_1 | -| ir.cpp:1165:18:1165:20 | Left | r1165_1 | -| ir.cpp:1165:18:1165:20 | Left | r1165_1 | -| ir.cpp:1165:18:1165:20 | Left | r1165_1 | -| ir.cpp:1165:18:1165:20 | Left | r1165_1 | -| ir.cpp:1165:23:1165:37 | Address | &:r1165_4 | -| ir.cpp:1165:23:1165:37 | Address | &:r1165_9 | -| ir.cpp:1165:23:1165:37 | Address | &:r1165_14 | -| ir.cpp:1165:23:1165:37 | Address | &:r1165_19 | -| ir.cpp:1165:23:1165:37 | Right | r1165_3 | -| ir.cpp:1165:23:1165:37 | Right | r1165_8 | -| ir.cpp:1165:23:1165:37 | Right | r1165_13 | -| ir.cpp:1165:23:1165:37 | Right | r1165_18 | -| ir.cpp:1165:26:1165:26 | ChiPartial | partial:m1165_6 | -| ir.cpp:1165:26:1165:26 | ChiTotal | total:m1165_2 | -| ir.cpp:1165:26:1165:26 | StoreValue | r1165_5 | -| ir.cpp:1165:29:1165:29 | ChiPartial | partial:m1165_11 | -| ir.cpp:1165:29:1165:29 | ChiTotal | total:m1165_7 | -| ir.cpp:1165:29:1165:29 | StoreValue | r1165_10 | -| ir.cpp:1165:32:1165:32 | ChiPartial | partial:m1165_16 | -| ir.cpp:1165:32:1165:32 | ChiTotal | total:m1165_12 | -| ir.cpp:1165:32:1165:32 | StoreValue | r1165_15 | -| ir.cpp:1165:35:1165:35 | ChiPartial | partial:m1165_21 | -| ir.cpp:1165:35:1165:35 | ChiTotal | total:m1165_17 | -| ir.cpp:1165:35:1165:35 | StoreValue | r1165_20 | -| ir.cpp:1166:7:1166:7 | Address | &:r1166_1 | -| ir.cpp:1166:11:1166:13 | Left | r1166_2 | -| ir.cpp:1166:11:1166:16 | Address | &:r1166_5 | -| ir.cpp:1166:11:1166:16 | Load | ~m1165_22 | -| ir.cpp:1166:11:1166:16 | StoreValue | r1166_6 | -| ir.cpp:1166:15:1166:15 | Address | &:r1166_3 | -| ir.cpp:1166:15:1166:15 | Load | m1164_6 | -| ir.cpp:1166:15:1166:15 | Right | r1166_4 | -| ir.cpp:1167:3:1167:5 | Left | r1167_3 | -| ir.cpp:1167:3:1167:8 | Address | &:r1167_6 | -| ir.cpp:1167:3:1167:12 | ChiPartial | partial:m1167_7 | -| ir.cpp:1167:3:1167:12 | ChiTotal | total:m1165_22 | -| ir.cpp:1167:7:1167:7 | Address | &:r1167_4 | -| ir.cpp:1167:7:1167:7 | Load | m1164_6 | -| ir.cpp:1167:7:1167:7 | Right | r1167_5 | -| ir.cpp:1167:12:1167:12 | Address | &:r1167_1 | -| ir.cpp:1167:12:1167:12 | Load | m1166_7 | -| ir.cpp:1167:12:1167:12 | StoreValue | r1167_2 | -| ir.cpp:1168:18:1168:28 | Address | &:r1168_1 | -| ir.cpp:1168:32:1168:78 | Arg(2) | 2:r1168_6 | -| ir.cpp:1168:32:1168:78 | StoreValue | r1168_10 | -| ir.cpp:1168:56:1168:58 | Address | &:r1168_2 | -| ir.cpp:1168:56:1168:58 | Arg(0) | 0:r1168_3 | -| ir.cpp:1168:56:1168:58 | Load | m1167_8 | -| ir.cpp:1168:61:1168:63 | Address | &:r1168_4 | -| ir.cpp:1168:61:1168:63 | Arg(1) | 1:r1168_5 | -| ir.cpp:1168:61:1168:63 | Load | m1167_8 | -| ir.cpp:1168:71:1168:71 | Arg(3) | 3:r1168_7 | -| ir.cpp:1168:74:1168:74 | Arg(4) | 4:r1168_8 | -| ir.cpp:1168:77:1168:77 | Arg(5) | 5:r1168_9 | -| ir.cpp:1169:3:1169:5 | Address | &:r1169_6 | -| ir.cpp:1169:9:1169:11 | Address | &:r1169_1 | -| ir.cpp:1169:9:1169:11 | Left | r1169_2 | -| ir.cpp:1169:9:1169:11 | Load | m1167_8 | -| ir.cpp:1169:9:1169:25 | StoreValue | r1169_5 | -| ir.cpp:1169:15:1169:25 | Address | &:r1169_3 | -| ir.cpp:1169:15:1169:25 | Load | m1168_11 | -| ir.cpp:1169:15:1169:25 | Right | r1169_4 | -| ir.cpp:1174:5:1174:21 | Address | &:r1174_7 | -| ir.cpp:1174:5:1174:21 | ChiPartial | partial:m1174_3 | -| ir.cpp:1174:5:1174:21 | ChiTotal | total:m1174_2 | -| ir.cpp:1174:5:1174:21 | Load | m1177_4 | -| ir.cpp:1174:5:1174:21 | SideEffect | m1174_3 | -| ir.cpp:1174:27:1174:27 | Address | &:r1174_5 | -| ir.cpp:1175:7:1175:7 | Address | &:r1175_1 | -| ir.cpp:1176:3:1176:8 | CallTarget | func:r1176_1 | -| ir.cpp:1176:10:1176:11 | Address | &:r1176_4 | -| ir.cpp:1176:10:1176:11 | Arg(0) | 0:r1176_4 | -| ir.cpp:1176:10:1176:11 | ChiPartial | partial:m1176_11 | -| ir.cpp:1176:10:1176:11 | ChiTotal | total:m1175_2 | -| ir.cpp:1176:10:1176:11 | Unary | r1176_3 | -| ir.cpp:1176:11:1176:11 | Unary | r1176_2 | -| ir.cpp:1176:14:1176:15 | Address | &:r1176_7 | -| ir.cpp:1176:14:1176:15 | Arg(1) | 1:r1176_7 | -| ir.cpp:1176:14:1176:15 | SideEffect | ~m1174_6 | -| ir.cpp:1176:14:1176:15 | Unary | r1176_6 | -| ir.cpp:1176:15:1176:15 | Unary | r1176_5 | -| ir.cpp:1176:18:1176:28 | Arg(2) | 2:r1176_8 | -| ir.cpp:1176:18:1176:28 | BufferSize | r1176_8 | -| ir.cpp:1176:18:1176:28 | BufferSize | r1176_8 | -| ir.cpp:1177:3:1177:11 | Address | &:r1177_1 | -| ir.cpp:1177:10:1177:10 | Address | &:r1177_2 | -| ir.cpp:1177:10:1177:10 | Load | m1176_12 | -| ir.cpp:1177:10:1177:10 | StoreValue | r1177_3 | -| ir.cpp:1180:8:1180:23 | Address | &:r1180_5 | -| ir.cpp:1180:8:1180:23 | ChiPartial | partial:m1180_3 | -| ir.cpp:1180:8:1180:23 | ChiTotal | total:m1180_2 | -| ir.cpp:1180:8:1180:23 | Load | m1181_11 | -| ir.cpp:1180:8:1180:23 | SideEffect | ~m1181_8 | -| ir.cpp:1181:3:1181:23 | Address | &:r1181_1 | -| ir.cpp:1181:3:1181:23 | Address | &:r1181_1 | -| ir.cpp:1181:3:1181:23 | Arg(this) | this:r1181_1 | -| ir.cpp:1181:3:1181:23 | CallTarget | func:r1181_3 | -| ir.cpp:1181:3:1181:23 | ChiPartial | partial:m1181_7 | -| ir.cpp:1181:3:1181:23 | ChiPartial | partial:m1181_10 | -| ir.cpp:1181:3:1181:23 | ChiTotal | total:m1180_4 | -| ir.cpp:1181:3:1181:23 | ChiTotal | total:m1181_2 | -| ir.cpp:1181:3:1181:23 | SideEffect | ~m1180_4 | -| ir.cpp:1181:17:1181:21 | Address | &:r1181_5 | -| ir.cpp:1181:17:1181:21 | Arg(0) | 0:r1181_5 | -| ir.cpp:1181:17:1181:21 | SideEffect | ~m1180_3 | -| ir.cpp:1181:17:1181:21 | Unary | r1181_4 | -| ir.cpp:1184:6:1184:16 | ChiPartial | partial:m1184_3 | -| ir.cpp:1184:6:1184:16 | ChiTotal | total:m1184_2 | -| ir.cpp:1184:6:1184:16 | SideEffect | m1184_3 | -| ir.cpp:1184:22:1184:22 | Address | &:r1184_5 | -| ir.cpp:1185:9:1185:9 | Address | &:r1185_1 | -| ir.cpp:1185:12:1185:13 | StoreValue | r1185_2 | -| ir.cpp:1186:12:1186:12 | Address | &:r1186_1 | -| ir.cpp:1186:12:1186:12 | Condition | r1186_2 | -| ir.cpp:1186:12:1186:12 | Load | m1184_6 | -| ir.cpp:1188:9:1188:9 | Address | &:r1188_2 | -| ir.cpp:1188:13:1188:13 | StoreValue | r1188_1 | -| ir.cpp:1190:9:1190:9 | Address | &:r1190_2 | -| ir.cpp:1190:9:1190:9 | Phi | from 0:m1185_3 | -| ir.cpp:1190:9:1190:9 | Phi | from 1:m1188_3 | -| ir.cpp:1190:13:1190:13 | Address | &:r1190_3 | -| ir.cpp:1190:13:1190:13 | Load | m1190_1 | -| ir.cpp:1190:13:1190:13 | StoreValue | r1190_4 | -| ir.cpp:1193:6:1193:28 | ChiPartial | partial:m1193_3 | -| ir.cpp:1193:6:1193:28 | ChiTotal | total:m1193_2 | -| ir.cpp:1193:6:1193:28 | SideEffect | m1193_3 | -| ir.cpp:1193:34:1193:34 | Address | &:r1193_5 | +| ir.cpp:1126:6:1126:18 | ChiPartial | partial:m1126_3 | +| ir.cpp:1126:6:1126:18 | ChiTotal | total:m1126_2 | +| ir.cpp:1126:6:1126:18 | SideEffect | ~m1137_1 | +| ir.cpp:1126:44:1126:44 | Address | &:r1126_5 | +| ir.cpp:1126:44:1126:44 | Address | &:r1126_5 | +| ir.cpp:1126:44:1126:44 | Address | &:r1126_7 | +| ir.cpp:1126:44:1126:44 | Address | &:r1126_7 | +| ir.cpp:1126:44:1126:44 | Load | m1126_6 | +| ir.cpp:1126:44:1126:44 | SideEffect | m1126_8 | +| ir.cpp:1127:5:1127:5 | Address | &:r1127_1 | +| ir.cpp:1127:5:1127:5 | Address | &:r1127_7 | +| ir.cpp:1127:5:1127:5 | Address | &:r1127_15 | +| ir.cpp:1127:14:1127:14 | Address | &:r1127_38 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_2 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_8 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_16 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_41 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_47 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_47 | +| ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_1 | +| ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_3 | +| ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_5 | +| ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_6 | +| ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_13 | +| ir.cpp:1127:18:1127:18 | Arg(this) | this:r1127_47 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_10 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_18 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_26 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_27 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_40 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_48 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_12 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_20 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_30 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_32 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_35 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_42 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_50 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_53 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m0_7 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1126_4 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_13 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_23 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_24 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_31 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_36 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_43 | +| ir.cpp:1127:18:1127:18 | Condition | r1127_34 | +| ir.cpp:1127:18:1127:18 | Load | m1126_6 | +| ir.cpp:1127:18:1127:18 | Load | m1127_6 | +| ir.cpp:1127:18:1127:18 | Load | m1127_6 | +| ir.cpp:1127:18:1127:18 | Phi | from 0:m1127_14 | +| ir.cpp:1127:18:1127:18 | Phi | from 0:~m1127_21 | +| ir.cpp:1127:18:1127:18 | Phi | from 4:m1127_54 | +| ir.cpp:1127:18:1127:18 | Phi | from 4:~m1127_51 | +| ir.cpp:1127:18:1127:18 | SideEffect | m1127_23 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1126_4 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_13 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_24 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_31 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_36 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_43 | +| ir.cpp:1127:18:1127:18 | StoreValue | r1127_5 | +| ir.cpp:1127:18:1127:18 | StoreValue | r1127_11 | +| ir.cpp:1127:18:1127:18 | StoreValue | r1127_19 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_3 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_4 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_9 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_17 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_25 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_28 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_39 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_49 | +| ir.cpp:1127:18:1127:19 | Load | ~m1127_43 | +| ir.cpp:1127:18:1127:19 | StoreValue | r1127_44 | +| ir.cpp:1128:13:1128:13 | Address | &:r1128_1 | +| ir.cpp:1128:13:1128:13 | Left | r1128_2 | +| ir.cpp:1128:13:1128:13 | Load | m1127_45 | +| ir.cpp:1128:13:1128:17 | Condition | r1128_4 | +| ir.cpp:1128:17:1128:17 | Right | r1128_3 | +| ir.cpp:1133:5:1133:5 | Address | &:r1133_1 | +| ir.cpp:1133:5:1133:5 | Address | &:r1133_7 | +| ir.cpp:1133:5:1133:5 | Address | &:r1133_15 | +| ir.cpp:1133:21:1133:21 | Address | &:r1133_47 | +| ir.cpp:1133:25:1133:25 | Address | &:r1133_2 | +| ir.cpp:1133:25:1133:25 | Address | &:r1133_8 | +| ir.cpp:1133:25:1133:25 | Address | &:r1133_16 | +| ir.cpp:1133:25:1133:25 | Address | &:r1133_38 | +| ir.cpp:1133:25:1133:25 | Address | &:r1133_38 | +| ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_15 | +| ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_17 | +| ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_19 | +| ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_20 | +| ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_27 | +| ir.cpp:1133:25:1133:25 | Arg(this) | this:r1133_38 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_10 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_18 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_26 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_27 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_39 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_49 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_12 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_20 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_30 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_32 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_35 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_41 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_44 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_51 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m0_21 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1127_36 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_13 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_23 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_24 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_31 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_36 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_52 | +| ir.cpp:1133:25:1133:25 | Condition | r1133_34 | +| ir.cpp:1133:25:1133:25 | Load | m1126_6 | +| ir.cpp:1133:25:1133:25 | Load | m1133_6 | +| ir.cpp:1133:25:1133:25 | Load | m1133_6 | +| ir.cpp:1133:25:1133:25 | Phi | from 5:m1133_14 | +| ir.cpp:1133:25:1133:25 | Phi | from 5:~m1133_21 | +| ir.cpp:1133:25:1133:25 | Phi | from 7:m1133_45 | +| ir.cpp:1133:25:1133:25 | Phi | from 7:~m1133_42 | +| ir.cpp:1133:25:1133:25 | SideEffect | m1133_23 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1127_36 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_13 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_24 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_31 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_36 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_52 | +| ir.cpp:1133:25:1133:25 | StoreValue | r1133_5 | +| ir.cpp:1133:25:1133:25 | StoreValue | r1133_11 | +| ir.cpp:1133:25:1133:25 | StoreValue | r1133_19 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_3 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_4 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_9 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_17 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_25 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_28 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_40 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_48 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_50 | +| ir.cpp:1133:25:1133:26 | StoreValue | r1133_55 | +| ir.cpp:1133:25:1133:26 | Unary | r1133_53 | +| ir.cpp:1133:25:1133:26 | Unary | r1133_54 | +| ir.cpp:1134:13:1134:13 | Address | &:r1134_1 | +| ir.cpp:1134:13:1134:13 | Address | &:r1134_2 | +| ir.cpp:1134:13:1134:13 | Left | r1134_3 | +| ir.cpp:1134:13:1134:13 | Load | m1133_56 | +| ir.cpp:1134:13:1134:13 | Load | ~m1133_52 | +| ir.cpp:1134:13:1134:17 | Condition | r1134_5 | +| ir.cpp:1134:17:1134:17 | Right | r1134_4 | +| ir.cpp:1137:5:1137:5 | Phi | from 6:~m1133_36 | +| ir.cpp:1137:5:1137:5 | Phi | from 9:~m1133_52 | +| ir.cpp:1157:5:1157:11 | Address | &:r1157_7 | +| ir.cpp:1157:5:1157:11 | ChiPartial | partial:m1157_3 | +| ir.cpp:1157:5:1157:11 | ChiTotal | total:m1157_2 | +| ir.cpp:1157:5:1157:11 | Load | m1159_4 | +| ir.cpp:1157:5:1157:11 | SideEffect | ~m1158_2 | +| ir.cpp:1157:17:1157:17 | Address | &:r1157_5 | +| ir.cpp:1158:3:1158:14 | ChiPartial | partial:m1158_1 | +| ir.cpp:1158:3:1158:14 | ChiTotal | total:m1157_4 | +| ir.cpp:1158:3:1158:14 | SideEffect | ~m1157_4 | +| ir.cpp:1159:3:1159:11 | Address | &:r1159_1 | +| ir.cpp:1159:10:1159:10 | Address | &:r1159_2 | +| ir.cpp:1159:10:1159:10 | Load | m1157_6 | +| ir.cpp:1159:10:1159:10 | StoreValue | r1159_3 | +| ir.cpp:1162:13:1162:30 | ChiPartial | partial:m1162_3 | +| ir.cpp:1162:13:1162:30 | ChiTotal | total:m1162_2 | +| ir.cpp:1162:13:1162:30 | SideEffect | ~m1164_2 | +| ir.cpp:1162:46:1162:46 | Address | &:r1162_5 | +| ir.cpp:1162:46:1162:46 | Address | &:r1162_5 | +| ir.cpp:1162:46:1162:46 | Address | &:r1162_7 | +| ir.cpp:1162:46:1162:46 | Address | &:r1162_7 | +| ir.cpp:1162:46:1162:46 | Load | m1162_6 | +| ir.cpp:1162:46:1162:46 | SideEffect | m1162_8 | +| ir.cpp:1162:62:1162:62 | Address | &:r1162_9 | +| ir.cpp:1162:79:1162:79 | Address | &:r1162_11 | +| ir.cpp:1162:79:1162:79 | Address | &:r1162_11 | +| ir.cpp:1162:79:1162:79 | Address | &:r1162_13 | +| ir.cpp:1162:79:1162:79 | Address | &:r1162_13 | +| ir.cpp:1162:79:1162:79 | Load | m1162_12 | +| ir.cpp:1162:79:1162:79 | SideEffect | m1162_14 | +| ir.cpp:1162:95:1162:95 | Address | &:r1162_15 | +| ir.cpp:1164:3:1168:6 | ChiPartial | partial:m1164_1 | +| ir.cpp:1164:3:1168:6 | ChiTotal | total:m1162_4 | +| ir.cpp:1164:3:1168:6 | SideEffect | ~m1162_4 | +| ir.cpp:1167:13:1167:13 | Address | &:r1167_1 | +| ir.cpp:1167:13:1167:13 | AsmOperand(0) | 0:r1167_3 | +| ir.cpp:1167:13:1167:13 | Load | m1162_6 | +| ir.cpp:1167:13:1167:13 | Unary | r1167_2 | +| ir.cpp:1167:23:1167:23 | AsmOperand(1) | 1:r1167_4 | +| ir.cpp:1167:33:1167:33 | Address | &:r1167_5 | +| ir.cpp:1167:33:1167:33 | Address | &:r1167_6 | +| ir.cpp:1167:33:1167:33 | AsmOperand(2) | 2:r1167_7 | +| ir.cpp:1167:33:1167:33 | Load | m1162_12 | +| ir.cpp:1167:33:1167:33 | Load | ~m1162_14 | +| ir.cpp:1167:42:1167:42 | Address | &:r1167_8 | +| ir.cpp:1167:42:1167:42 | AsmOperand(3) | 3:r1167_9 | +| ir.cpp:1167:42:1167:42 | Load | m1162_16 | +| ir.cpp:1171:6:1171:23 | ChiPartial | partial:m1171_3 | +| ir.cpp:1171:6:1171:23 | ChiTotal | total:m1171_2 | +| ir.cpp:1171:6:1171:23 | SideEffect | m1171_3 | +| ir.cpp:1174:9:1174:9 | Address | &:r1174_1 | +| ir.cpp:1175:9:1175:9 | Address | &:r1175_1 | +| ir.cpp:1176:29:1176:29 | Address | &:r1176_1 | +| ir.cpp:1186:6:1186:30 | ChiPartial | partial:m1186_3 | +| ir.cpp:1186:6:1186:30 | ChiTotal | total:m1186_2 | +| ir.cpp:1186:6:1186:30 | SideEffect | m1186_3 | +| ir.cpp:1188:5:1188:20 | Address | &:r1188_1 | +| ir.cpp:1188:5:1188:20 | Address | &:r1188_5 | +| ir.cpp:1188:5:1188:20 | Address | &:r1188_10 | +| ir.cpp:1188:5:1188:20 | Address | &:r1188_10 | +| ir.cpp:1188:5:1188:20 | Condition | r1188_8 | +| ir.cpp:1188:5:1188:20 | Left | r1188_6 | +| ir.cpp:1188:5:1188:20 | Left | r1188_11 | +| ir.cpp:1188:5:1188:20 | Load | m1188_4 | +| ir.cpp:1188:5:1188:20 | Load | m1188_4 | +| ir.cpp:1188:5:1188:20 | Phi | from 0:m1188_3 | +| ir.cpp:1188:5:1188:20 | Phi | from 2:m1188_14 | +| ir.cpp:1188:5:1188:20 | Right | r1188_7 | +| ir.cpp:1188:5:1188:20 | Right | r1188_12 | +| ir.cpp:1188:5:1188:20 | StoreValue | r1188_2 | +| ir.cpp:1188:5:1188:20 | StoreValue | r1188_13 | +| ir.cpp:1191:6:1191:23 | ChiPartial | partial:m1191_3 | +| ir.cpp:1191:6:1191:23 | ChiTotal | total:m1191_2 | +| ir.cpp:1191:6:1191:23 | Phi | from 2:~m1191_10 | +| ir.cpp:1191:6:1191:23 | Phi | from 7:~m1203_8 | +| ir.cpp:1191:6:1191:23 | Phi | from 8:~m1191_4 | +| ir.cpp:1191:6:1191:23 | Phi | from 10:~m1191_4 | +| ir.cpp:1191:6:1191:23 | SideEffect | ~m1191_7 | +| ir.cpp:1191:30:1191:30 | Address | &:r1191_5 | +| ir.cpp:1193:9:1193:9 | Address | &:r1193_1 | +| ir.cpp:1193:12:1193:13 | StoreValue | r1193_2 | | ir.cpp:1194:9:1194:9 | Address | &:r1194_1 | -| ir.cpp:1194:12:1194:13 | StoreValue | r1194_2 | -| ir.cpp:1195:12:1195:12 | Address | &:r1195_1 | -| ir.cpp:1195:12:1195:12 | Condition | r1195_2 | -| ir.cpp:1195:12:1195:12 | Load | m1193_6 | -| ir.cpp:1197:9:1197:9 | Address | &:r1197_2 | -| ir.cpp:1197:13:1197:13 | StoreValue | r1197_1 | -| ir.cpp:1199:9:1199:9 | Address | &:r1199_2 | -| ir.cpp:1199:13:1199:13 | StoreValue | r1199_1 | -| ir.cpp:1201:9:1201:9 | Address | &:r1201_2 | -| ir.cpp:1201:9:1201:9 | Phi | from 0:m1194_3 | -| ir.cpp:1201:9:1201:9 | Phi | from 2:m1199_3 | -| ir.cpp:1201:13:1201:13 | Address | &:r1201_3 | -| ir.cpp:1201:13:1201:13 | Load | m1201_1 | -| ir.cpp:1201:13:1201:13 | StoreValue | r1201_4 | -| ir.cpp:1204:6:1204:16 | ChiPartial | partial:m1204_3 | -| ir.cpp:1204:6:1204:16 | ChiTotal | total:m1204_2 | -| ir.cpp:1204:6:1204:16 | SideEffect | m1204_3 | -| ir.cpp:1204:22:1204:22 | Address | &:r1204_5 | -| ir.cpp:1205:9:1205:9 | Address | &:r1205_1 | -| ir.cpp:1205:12:1205:13 | StoreValue | r1205_2 | -| ir.cpp:1206:12:1206:12 | Address | &:r1206_1 | -| ir.cpp:1206:12:1206:12 | Condition | r1206_2 | -| ir.cpp:1206:12:1206:12 | Load | m1204_6 | -| ir.cpp:1208:9:1208:9 | Address | &:r1208_2 | -| ir.cpp:1208:13:1208:13 | StoreValue | r1208_1 | -| ir.cpp:1211:9:1211:9 | Address | &:r1211_2 | -| ir.cpp:1211:13:1211:13 | StoreValue | r1211_1 | -| ir.cpp:1212:5:1212:5 | Phi | from 0:m1205_3 | -| ir.cpp:1212:5:1212:5 | Phi | from 1:m1208_3 | -| ir.cpp:1212:5:1212:5 | Phi | from 2:m1211_3 | -| ir.cpp:1213:9:1213:9 | Address | &:r1213_1 | -| ir.cpp:1213:13:1213:13 | Address | &:r1213_2 | -| ir.cpp:1213:13:1213:13 | Load | m1212_1 | -| ir.cpp:1213:13:1213:13 | StoreValue | r1213_3 | -| ir.cpp:1216:6:1216:24 | ChiPartial | partial:m1216_3 | -| ir.cpp:1216:6:1216:24 | ChiTotal | total:m1216_2 | -| ir.cpp:1216:6:1216:24 | SideEffect | m1216_3 | -| ir.cpp:1216:30:1216:30 | Address | &:r1216_5 | -| ir.cpp:1217:9:1217:9 | Address | &:r1217_1 | -| ir.cpp:1217:12:1217:13 | StoreValue | r1217_2 | -| ir.cpp:1218:12:1218:12 | Address | &:r1218_1 | -| ir.cpp:1218:12:1218:12 | Condition | r1218_2 | -| ir.cpp:1218:12:1218:12 | Load | m1216_6 | -| ir.cpp:1220:13:1220:13 | Address | &:r1220_2 | -| ir.cpp:1220:17:1220:17 | StoreValue | r1220_1 | -| ir.cpp:1224:13:1224:13 | Address | &:r1224_2 | -| ir.cpp:1224:17:1224:17 | StoreValue | r1224_1 | -| ir.cpp:1228:13:1228:13 | Address | &:r1228_2 | -| ir.cpp:1228:17:1228:17 | StoreValue | r1228_1 | -| ir.cpp:1229:5:1229:5 | Phi | from 1:m1220_3 | -| ir.cpp:1229:5:1229:5 | Phi | from 2:m1224_3 | -| ir.cpp:1229:5:1229:5 | Phi | from 3:m1228_3 | -| ir.cpp:1230:9:1230:9 | Address | &:r1230_1 | -| ir.cpp:1230:13:1230:13 | Address | &:r1230_2 | -| ir.cpp:1230:13:1230:13 | Load | m1229_1 | -| ir.cpp:1230:13:1230:13 | StoreValue | r1230_3 | -| ir.cpp:1233:5:1233:19 | Address | &:r1233_7 | -| ir.cpp:1233:5:1233:19 | ChiPartial | partial:m1233_3 | -| ir.cpp:1233:5:1233:19 | ChiTotal | total:m1233_2 | -| ir.cpp:1233:5:1233:19 | Load | m1239_15 | -| ir.cpp:1233:5:1233:19 | SideEffect | ~m1239_2 | -| ir.cpp:1233:25:1233:25 | Address | &:r1233_5 | -| ir.cpp:1234:16:1234:16 | Address | &:r1234_3 | -| ir.cpp:1234:16:1234:16 | SideEffect | ~m1234_6 | -| ir.cpp:1234:20:1234:20 | ChiPartial | partial:m1234_5 | -| ir.cpp:1234:20:1234:20 | ChiTotal | total:m1234_2 | -| ir.cpp:1234:20:1234:20 | StoreValue | r1234_4 | -| ir.cpp:1235:16:1235:16 | Address | &:r1235_3 | -| ir.cpp:1235:16:1235:16 | SideEffect | ~m1235_6 | -| ir.cpp:1235:20:1235:28 | ChiPartial | partial:m1235_5 | -| ir.cpp:1235:20:1235:28 | ChiTotal | total:m1235_2 | -| ir.cpp:1235:20:1235:28 | StoreValue | r1235_4 | -| ir.cpp:1236:16:1236:16 | Address | &:r1236_1 | -| ir.cpp:1236:16:1236:16 | Address | &:r1236_1 | -| ir.cpp:1236:16:1236:16 | Address | &:r1236_4 | -| ir.cpp:1236:16:1236:16 | ChiPartial | partial:m1236_10 | -| ir.cpp:1236:16:1236:16 | ChiTotal | total:m1236_8 | -| ir.cpp:1236:16:1236:16 | Condition | r1236_2 | -| ir.cpp:1236:16:1236:16 | Load | ~m1233_3 | -| ir.cpp:1236:16:1236:16 | StoreValue | r1236_9 | -| ir.cpp:1236:20:1236:20 | Address | &:r1236_5 | -| ir.cpp:1236:20:1236:20 | ChiPartial | partial:m1236_7 | -| ir.cpp:1236:20:1236:20 | ChiTotal | total:m1233_4 | -| ir.cpp:1236:20:1236:20 | Load | m1233_6 | -| ir.cpp:1236:20:1236:20 | StoreValue | r1236_6 | -| ir.cpp:1239:5:1239:25 | Address | &:r1239_3 | -| ir.cpp:1239:5:1239:25 | Phi | from 0:~m1233_3 | -| ir.cpp:1239:5:1239:25 | Phi | from 0:~m1233_4 | -| ir.cpp:1239:5:1239:25 | Phi | from 1:m1236_7 | -| ir.cpp:1239:5:1239:25 | Phi | from 1:~m1236_11 | -| ir.cpp:1239:12:1239:12 | Address | &:r1239_4 | -| ir.cpp:1239:12:1239:12 | Left | r1239_5 | -| ir.cpp:1239:12:1239:12 | Load | ~m1239_2 | -| ir.cpp:1239:12:1239:16 | Left | r1239_8 | -| ir.cpp:1239:12:1239:20 | Left | r1239_11 | -| ir.cpp:1239:12:1239:24 | StoreValue | r1239_14 | -| ir.cpp:1239:16:1239:16 | Address | &:r1239_6 | -| ir.cpp:1239:16:1239:16 | Load | ~m1239_2 | -| ir.cpp:1239:16:1239:16 | Right | r1239_7 | -| ir.cpp:1239:20:1239:20 | Address | &:r1239_9 | -| ir.cpp:1239:20:1239:20 | Load | m1239_1 | -| ir.cpp:1239:20:1239:20 | Right | r1239_10 | -| ir.cpp:1239:24:1239:24 | Address | &:r1239_12 | -| ir.cpp:1239:24:1239:24 | Load | ~m1239_2 | -| ir.cpp:1239:24:1239:24 | Right | r1239_13 | -| ir.cpp:1242:6:1242:31 | ChiPartial | partial:m1242_3 | -| ir.cpp:1242:6:1242:31 | ChiTotal | total:m1242_2 | -| ir.cpp:1242:6:1242:31 | SideEffect | ~m1246_1 | -| ir.cpp:1242:45:1242:51 | Address | &:r1242_5 | -| ir.cpp:1242:45:1242:51 | Address | &:r1242_5 | -| ir.cpp:1242:45:1242:51 | Address | &:r1242_7 | -| ir.cpp:1242:45:1242:51 | Address | &:r1242_7 | -| ir.cpp:1242:45:1242:51 | Load | m1242_6 | -| ir.cpp:1242:45:1242:51 | SideEffect | m1242_8 | -| ir.cpp:1243:19:1243:19 | Address | &:r1243_1 | -| ir.cpp:1243:19:1243:19 | Address | &:r1243_1 | -| ir.cpp:1243:19:1243:19 | Address | &:r1243_4 | -| ir.cpp:1243:19:1243:19 | Arg(this) | this:r1243_4 | -| ir.cpp:1243:19:1243:19 | ChiPartial | partial:m1243_6 | -| ir.cpp:1243:19:1243:19 | ChiTotal | total:m0_6 | -| ir.cpp:1243:19:1243:19 | Condition | r1243_2 | -| ir.cpp:1243:19:1243:19 | Load | ~m1242_3 | -| ir.cpp:1243:19:1243:19 | StoreValue | r1243_5 | -| ir.cpp:1244:19:1244:19 | Address | &:r1244_2 | -| ir.cpp:1244:19:1244:19 | Address | &:r1244_2 | -| ir.cpp:1244:19:1244:19 | Address | &:r1244_5 | -| ir.cpp:1244:19:1244:19 | Arg(this) | this:r1244_5 | -| ir.cpp:1244:19:1244:19 | ChiPartial | partial:m1244_16 | -| ir.cpp:1244:19:1244:19 | ChiTotal | total:m1244_14 | -| ir.cpp:1244:19:1244:19 | Condition | r1244_3 | -| ir.cpp:1244:19:1244:19 | Load | ~m1244_1 | -| ir.cpp:1244:19:1244:19 | Phi | from 0:~m1242_4 | -| ir.cpp:1244:19:1244:19 | Phi | from 1:~m1243_7 | -| ir.cpp:1244:19:1244:19 | StoreValue | r1244_15 | -| ir.cpp:1244:20:1244:29 | CallTarget | func:r1244_6 | -| ir.cpp:1244:20:1244:29 | ChiPartial | partial:m1244_10 | -| ir.cpp:1244:20:1244:29 | ChiPartial | partial:m1244_13 | -| ir.cpp:1244:20:1244:29 | ChiTotal | total:m1244_1 | -| ir.cpp:1244:20:1244:29 | ChiTotal | total:m1244_11 | -| ir.cpp:1244:20:1244:29 | SideEffect | ~m1244_1 | -| ir.cpp:1244:21:1244:28 | Address | &:r1244_8 | -| ir.cpp:1244:21:1244:28 | Arg(0) | 0:r1244_8 | -| ir.cpp:1244:21:1244:28 | SideEffect | ~m1242_3 | -| ir.cpp:1244:21:1244:28 | Unary | r1244_7 | -| ir.cpp:1245:19:1245:19 | Address | &:r1245_2 | -| ir.cpp:1245:19:1245:19 | Address | &:r1245_2 | -| ir.cpp:1245:19:1245:19 | Address | &:r1245_5 | -| ir.cpp:1245:19:1245:19 | Arg(this) | this:r1245_5 | -| ir.cpp:1245:19:1245:19 | ChiPartial | partial:m1245_16 | -| ir.cpp:1245:19:1245:19 | ChiTotal | total:m1245_14 | -| ir.cpp:1245:19:1245:19 | Condition | r1245_3 | -| ir.cpp:1245:19:1245:19 | Load | ~m1245_1 | -| ir.cpp:1245:19:1245:19 | Phi | from 2:~m1244_1 | -| ir.cpp:1245:19:1245:19 | Phi | from 3:~m1244_17 | -| ir.cpp:1245:19:1245:19 | StoreValue | r1245_15 | -| ir.cpp:1245:20:1245:28 | CallTarget | func:r1245_6 | -| ir.cpp:1245:20:1245:28 | ChiPartial | partial:m1245_10 | -| ir.cpp:1245:20:1245:28 | ChiPartial | partial:m1245_13 | -| ir.cpp:1245:20:1245:28 | ChiTotal | total:m1245_1 | -| ir.cpp:1245:20:1245:28 | ChiTotal | total:m1245_11 | -| ir.cpp:1245:20:1245:28 | SideEffect | ~m1245_1 | -| ir.cpp:1245:21:1245:27 | Address | &:r1245_7 | -| ir.cpp:1245:21:1245:27 | Address | &:r1245_8 | -| ir.cpp:1245:21:1245:27 | Arg(0) | 0:r1245_8 | -| ir.cpp:1245:21:1245:27 | Load | m1242_6 | -| ir.cpp:1245:21:1245:27 | SideEffect | ~m1242_8 | -| ir.cpp:1246:1:1246:1 | Phi | from 4:~m1245_1 | -| ir.cpp:1246:1:1246:1 | Phi | from 5:~m1245_17 | -| ir.cpp:1253:6:1253:17 | ChiPartial | partial:m1253_3 | -| ir.cpp:1253:6:1253:17 | ChiTotal | total:m1253_2 | -| ir.cpp:1253:6:1253:17 | SideEffect | m1253_3 | -| ir.cpp:1253:25:1253:26 | Address | &:r1253_5 | -| ir.cpp:1253:25:1253:26 | Address | &:r1253_5 | -| ir.cpp:1253:25:1253:26 | Address | &:r1253_7 | -| ir.cpp:1253:25:1253:26 | Address | &:r1253_7 | -| ir.cpp:1253:25:1253:26 | Load | m1253_6 | -| ir.cpp:1253:25:1253:26 | SideEffect | m1253_8 | -| ir.cpp:1253:35:1253:36 | Address | &:r1253_9 | -| ir.cpp:1253:35:1253:36 | Address | &:r1253_9 | -| ir.cpp:1253:35:1253:36 | Address | &:r1253_11 | -| ir.cpp:1253:35:1253:36 | Address | &:r1253_11 | -| ir.cpp:1253:35:1253:36 | Load | m1253_10 | -| ir.cpp:1253:35:1253:36 | SideEffect | m1253_12 | -| ir.cpp:1254:10:1254:15 | Address | &:r1254_1 | -| ir.cpp:1254:10:1254:15 | Left | r1254_1 | -| ir.cpp:1254:10:1254:15 | Left | r1254_1 | -| ir.cpp:1254:24:1254:27 | Address | &:r1254_4 | -| ir.cpp:1254:24:1254:27 | Address | &:r1254_9 | -| ir.cpp:1254:24:1254:27 | ChiPartial | partial:m1254_11 | -| ir.cpp:1254:24:1254:27 | ChiTotal | total:m1254_7 | -| ir.cpp:1254:24:1254:27 | Right | r1254_3 | -| ir.cpp:1254:24:1254:27 | Right | r1254_8 | -| ir.cpp:1254:24:1254:27 | StoreValue | r1254_10 | -| ir.cpp:1254:26:1254:26 | ChiPartial | partial:m1254_6 | -| ir.cpp:1254:26:1254:26 | ChiTotal | total:m1254_2 | -| ir.cpp:1254:26:1254:26 | StoreValue | r1254_5 | -| ir.cpp:1256:5:1256:10 | CallTarget | func:r1256_1 | -| ir.cpp:1256:12:1256:17 | Address | &:r1256_3 | -| ir.cpp:1256:12:1256:17 | Arg(0) | 0:r1256_3 | -| ir.cpp:1256:12:1256:17 | ChiPartial | partial:m1256_9 | -| ir.cpp:1256:12:1256:17 | ChiTotal | total:m1254_12 | -| ir.cpp:1256:12:1256:17 | Unary | r1256_2 | -| ir.cpp:1256:20:1256:21 | Address | &:r1256_4 | -| ir.cpp:1256:20:1256:21 | Address | &:r1256_6 | -| ir.cpp:1256:20:1256:21 | Arg(1) | 1:r1256_6 | -| ir.cpp:1256:20:1256:21 | Load | m1253_6 | -| ir.cpp:1256:20:1256:21 | SideEffect | ~m1253_8 | -| ir.cpp:1256:20:1256:21 | Unary | r1256_5 | -| ir.cpp:1257:5:1257:10 | CallTarget | func:r1257_1 | -| ir.cpp:1257:12:1257:17 | Address | &:r1257_3 | -| ir.cpp:1257:12:1257:17 | Address | &:r1257_3 | -| ir.cpp:1257:12:1257:17 | Arg(0) | 0:r1257_3 | -| ir.cpp:1257:12:1257:17 | ChiPartial | partial:m1257_10 | -| ir.cpp:1257:12:1257:17 | ChiTotal | total:m1256_10 | -| ir.cpp:1257:12:1257:17 | SideEffect | ~m1256_10 | -| ir.cpp:1257:12:1257:17 | Unary | r1257_2 | -| ir.cpp:1257:20:1257:21 | Address | &:r1257_4 | -| ir.cpp:1257:20:1257:21 | Address | &:r1257_6 | -| ir.cpp:1257:20:1257:21 | Arg(1) | 1:r1257_6 | -| ir.cpp:1257:20:1257:21 | Load | m1253_10 | -| ir.cpp:1257:20:1257:21 | SideEffect | ~m1253_12 | -| ir.cpp:1257:20:1257:21 | Unary | r1257_5 | -| ir.cpp:1263:17:1263:29 | ChiPartial | partial:m1263_3 | -| ir.cpp:1263:17:1263:29 | ChiTotal | total:m1263_2 | -| ir.cpp:1263:17:1263:29 | SideEffect | m1263_3 | -| ir.cpp:1263:34:1263:34 | Address | &:r1263_5 | -| ir.cpp:1263:34:1263:34 | Address | &:r1263_5 | -| ir.cpp:1263:34:1263:34 | Address | &:r1263_7 | -| ir.cpp:1263:34:1263:34 | Address | &:r1263_7 | -| ir.cpp:1263:34:1263:34 | Load | m1263_6 | -| ir.cpp:1263:34:1263:34 | SideEffect | m1264_7 | -| ir.cpp:1263:41:1263:41 | Address | &:r1263_9 | -| ir.cpp:1264:9:1264:9 | Address | &:r1264_3 | -| ir.cpp:1264:9:1264:9 | Load | m1263_6 | -| ir.cpp:1264:9:1264:9 | Unary | r1264_4 | -| ir.cpp:1264:9:1264:21 | ChiPartial | partial:m1264_6 | -| ir.cpp:1264:9:1264:21 | ChiTotal | total:m1263_8 | -| ir.cpp:1264:12:1264:17 | Address | &:r1264_5 | -| ir.cpp:1264:21:1264:21 | Address | &:r1264_1 | -| ir.cpp:1264:21:1264:21 | Load | m1263_10 | -| ir.cpp:1264:21:1264:21 | StoreValue | r1264_2 | -| ir.cpp:1272:6:1272:33 | ChiPartial | partial:m1272_3 | -| ir.cpp:1272:6:1272:33 | ChiTotal | total:m1272_2 | -| ir.cpp:1272:6:1272:33 | SideEffect | ~m1289_6 | -| ir.cpp:1272:39:1272:45 | Address | &:r1272_5 | -| ir.cpp:1272:51:1272:55 | Address | &:r1272_7 | -| ir.cpp:1272:51:1272:55 | Address | &:r1272_7 | -| ir.cpp:1272:51:1272:55 | Address | &:r1272_9 | -| ir.cpp:1272:51:1272:55 | Address | &:r1272_9 | -| ir.cpp:1272:51:1272:55 | Load | m1272_8 | -| ir.cpp:1272:51:1272:55 | SideEffect | m1283_12 | -| ir.cpp:1273:7:1273:7 | Address | &:r1273_1 | -| ir.cpp:1273:7:1273:7 | Address | &:r1273_1 | -| ir.cpp:1273:7:1273:7 | Arg(this) | this:r1273_1 | -| ir.cpp:1273:7:1273:7 | CallTarget | func:r1273_3 | -| ir.cpp:1273:7:1273:7 | ChiPartial | partial:m1273_5 | -| ir.cpp:1273:7:1273:7 | ChiPartial | partial:m1273_7 | -| ir.cpp:1273:7:1273:7 | ChiTotal | total:m1272_4 | -| ir.cpp:1273:7:1273:7 | ChiTotal | total:m1273_2 | -| ir.cpp:1273:7:1273:7 | SideEffect | ~m1272_4 | -| ir.cpp:1274:7:1274:26 | CallTarget | func:r1274_2 | -| ir.cpp:1274:7:1274:26 | ChiPartial | partial:m1274_5 | -| ir.cpp:1274:7:1274:26 | ChiTotal | total:m1273_6 | -| ir.cpp:1274:7:1274:26 | SideEffect | ~m1273_6 | -| ir.cpp:1274:28:1274:29 | Arg(0) | 0:r1274_3 | -| ir.cpp:1275:5:1275:27 | CallTarget | func:r1275_1 | -| ir.cpp:1275:5:1275:27 | ChiPartial | partial:m1275_4 | -| ir.cpp:1275:5:1275:27 | ChiTotal | total:m1274_6 | -| ir.cpp:1275:5:1275:27 | SideEffect | ~m1274_6 | -| ir.cpp:1275:29:1275:30 | Arg(0) | 0:r1275_2 | -| ir.cpp:1277:7:1277:7 | Address | &:r1277_1 | -| ir.cpp:1278:7:1278:19 | CallTarget | func:r1278_2 | -| ir.cpp:1278:7:1278:19 | ChiPartial | partial:m1278_8 | -| ir.cpp:1278:7:1278:19 | ChiTotal | total:m1275_5 | -| ir.cpp:1278:7:1278:19 | SideEffect | ~m1275_5 | -| ir.cpp:1278:21:1278:22 | Address | &:r1278_4 | -| ir.cpp:1278:21:1278:22 | Address | &:r1278_4 | -| ir.cpp:1278:21:1278:22 | Arg(0) | 0:r1278_4 | -| ir.cpp:1278:21:1278:22 | ChiPartial | partial:m1278_11 | -| ir.cpp:1278:21:1278:22 | ChiTotal | total:m1277_2 | -| ir.cpp:1278:21:1278:22 | SideEffect | ~m1277_2 | -| ir.cpp:1278:22:1278:22 | Unary | r1278_3 | -| ir.cpp:1278:25:1278:31 | Address | &:r1278_5 | -| ir.cpp:1278:25:1278:31 | Arg(1) | 1:r1278_6 | -| ir.cpp:1278:25:1278:31 | Load | m1272_6 | -| ir.cpp:1279:5:1279:20 | CallTarget | func:r1279_1 | -| ir.cpp:1279:5:1279:20 | ChiPartial | partial:m1279_7 | -| ir.cpp:1279:5:1279:20 | ChiTotal | total:m1278_9 | -| ir.cpp:1279:5:1279:20 | SideEffect | ~m1278_9 | -| ir.cpp:1279:22:1279:23 | Address | &:r1279_3 | -| ir.cpp:1279:22:1279:23 | Address | &:r1279_3 | -| ir.cpp:1279:22:1279:23 | Arg(0) | 0:r1279_3 | -| ir.cpp:1279:22:1279:23 | ChiPartial | partial:m1279_10 | -| ir.cpp:1279:22:1279:23 | ChiTotal | total:m1278_12 | -| ir.cpp:1279:22:1279:23 | SideEffect | ~m1278_12 | -| ir.cpp:1279:23:1279:23 | Unary | r1279_2 | -| ir.cpp:1279:26:1279:32 | Address | &:r1279_4 | -| ir.cpp:1279:26:1279:32 | Arg(1) | 1:r1279_5 | -| ir.cpp:1279:26:1279:32 | Load | m1272_6 | -| ir.cpp:1281:7:1281:7 | Unary | r1281_1 | -| ir.cpp:1281:11:1281:23 | CallTarget | func:r1281_3 | -| ir.cpp:1281:11:1281:23 | ChiPartial | partial:m1281_11 | -| ir.cpp:1281:11:1281:23 | ChiTotal | total:m1279_8 | -| ir.cpp:1281:11:1281:23 | SideEffect | ~m1279_8 | -| ir.cpp:1281:25:1281:29 | Address | &:r1281_4 | -| ir.cpp:1281:25:1281:29 | Address | &:r1281_5 | -| ir.cpp:1281:25:1281:29 | Address | &:r1281_5 | -| ir.cpp:1281:25:1281:29 | Arg(0) | 0:r1281_5 | -| ir.cpp:1281:25:1281:29 | ChiPartial | partial:m1281_14 | -| ir.cpp:1281:25:1281:29 | ChiTotal | total:m1272_10 | -| ir.cpp:1281:25:1281:29 | Load | m1272_8 | -| ir.cpp:1281:25:1281:29 | SideEffect | ~m1272_10 | -| ir.cpp:1281:32:1281:38 | Address | &:r1281_6 | -| ir.cpp:1281:32:1281:38 | Left | r1281_7 | -| ir.cpp:1281:32:1281:38 | Load | m1272_6 | -| ir.cpp:1281:32:1281:42 | Arg(1) | 1:r1281_9 | -| ir.cpp:1281:42:1281:42 | Right | r1281_8 | -| ir.cpp:1282:7:1282:11 | Address | &:r1282_1 | -| ir.cpp:1282:7:1282:11 | Load | m1272_8 | -| ir.cpp:1282:7:1282:11 | Unary | r1282_2 | -| ir.cpp:1282:14:1282:26 | CallTarget | func:r1282_4 | -| ir.cpp:1282:14:1282:26 | ChiPartial | partial:m1282_9 | -| ir.cpp:1282:14:1282:26 | ChiTotal | total:m1281_12 | -| ir.cpp:1282:14:1282:26 | SideEffect | ~m1281_12 | -| ir.cpp:1282:28:1282:29 | Address | &:r1282_6 | -| ir.cpp:1282:28:1282:29 | Address | &:r1282_6 | -| ir.cpp:1282:28:1282:29 | Arg(0) | 0:r1282_6 | -| ir.cpp:1282:28:1282:29 | ChiPartial | partial:m1282_12 | -| ir.cpp:1282:28:1282:29 | ChiTotal | total:m1279_11 | -| ir.cpp:1282:28:1282:29 | SideEffect | ~m1279_11 | -| ir.cpp:1282:29:1282:29 | Unary | r1282_5 | -| ir.cpp:1282:32:1282:33 | Arg(1) | 1:r1282_7 | -| ir.cpp:1283:5:1283:9 | Address | &:r1283_1 | -| ir.cpp:1283:5:1283:9 | Load | m1272_8 | -| ir.cpp:1283:12:1283:24 | CallTarget | func:r1283_3 | -| ir.cpp:1283:12:1283:24 | ChiPartial | partial:m1283_8 | -| ir.cpp:1283:12:1283:24 | ChiTotal | total:m1282_10 | -| ir.cpp:1283:12:1283:24 | SideEffect | ~m1282_10 | -| ir.cpp:1283:26:1283:30 | Address | &:r1283_4 | -| ir.cpp:1283:26:1283:30 | Address | &:r1283_5 | -| ir.cpp:1283:26:1283:30 | Address | &:r1283_5 | -| ir.cpp:1283:26:1283:30 | Arg(0) | 0:r1283_5 | -| ir.cpp:1283:26:1283:30 | ChiPartial | partial:m1283_11 | -| ir.cpp:1283:26:1283:30 | ChiTotal | total:m1281_15 | -| ir.cpp:1283:26:1283:30 | Load | m1272_8 | -| ir.cpp:1283:26:1283:30 | SideEffect | ~m1281_15 | -| ir.cpp:1283:33:1283:34 | Arg(1) | 1:r1283_6 | -| ir.cpp:1285:7:1285:31 | CallTarget | func:r1285_2 | -| ir.cpp:1285:7:1285:31 | ChiPartial | partial:m1285_4 | -| ir.cpp:1285:7:1285:31 | ChiTotal | total:m1283_9 | -| ir.cpp:1285:7:1285:31 | SideEffect | ~m1283_9 | -| ir.cpp:1286:5:1286:32 | CallTarget | func:r1286_1 | -| ir.cpp:1286:5:1286:32 | ChiPartial | partial:m1286_3 | -| ir.cpp:1286:5:1286:32 | ChiTotal | total:m1285_5 | -| ir.cpp:1286:5:1286:32 | SideEffect | ~m1285_5 | -| ir.cpp:1288:5:1288:20 | CallTarget | func:r1288_1 | -| ir.cpp:1288:5:1288:20 | ChiPartial | partial:m1288_3 | -| ir.cpp:1288:5:1288:20 | ChiTotal | total:m1286_4 | -| ir.cpp:1288:5:1288:20 | SideEffect | ~m1286_4 | -| ir.cpp:1288:25:1288:49 | CallTarget | func:r1288_5 | -| ir.cpp:1288:25:1288:49 | ChiPartial | partial:m1288_7 | -| ir.cpp:1288:25:1288:49 | ChiTotal | total:m1288_4 | -| ir.cpp:1288:25:1288:49 | SideEffect | ~m1288_4 | -| ir.cpp:1289:1:1289:1 | Address | &:r1289_2 | -| ir.cpp:1289:1:1289:1 | Address | &:r1289_2 | -| ir.cpp:1289:1:1289:1 | Arg(this) | this:r1289_2 | -| ir.cpp:1289:1:1289:1 | CallTarget | func:r1289_3 | -| ir.cpp:1289:1:1289:1 | ChiPartial | partial:m1289_5 | -| ir.cpp:1289:1:1289:1 | ChiPartial | partial:m1289_8 | -| ir.cpp:1289:1:1289:1 | ChiTotal | total:m1273_8 | -| ir.cpp:1289:1:1289:1 | ChiTotal | total:m1288_8 | -| ir.cpp:1289:1:1289:1 | SideEffect | m1273_8 | -| ir.cpp:1289:1:1289:1 | SideEffect | ~m1288_8 | -| ir.cpp:1291:5:1291:22 | Address | &:r1291_10 | -| ir.cpp:1291:5:1291:22 | ChiPartial | partial:m1291_3 | -| ir.cpp:1291:5:1291:22 | ChiTotal | total:m1291_2 | -| ir.cpp:1291:5:1291:22 | Load | m1291_9 | -| ir.cpp:1291:5:1291:22 | Phi | from 2:m1293_4 | -| ir.cpp:1291:5:1291:22 | Phi | from 3:m1295_2 | -| ir.cpp:1291:5:1291:22 | SideEffect | m1291_3 | -| ir.cpp:1291:29:1291:29 | Address | &:r1291_5 | -| ir.cpp:1291:36:1291:36 | Address | &:r1291_7 | -| ir.cpp:1292:9:1292:9 | Address | &:r1292_1 | -| ir.cpp:1292:9:1292:9 | Condition | r1292_2 | -| ir.cpp:1292:9:1292:9 | Load | m1291_6 | -| ir.cpp:1293:9:1293:17 | Address | &:r1293_1 | -| ir.cpp:1293:16:1293:16 | Address | &:r1293_2 | -| ir.cpp:1293:16:1293:16 | Load | m1291_8 | -| ir.cpp:1293:16:1293:16 | StoreValue | r1293_3 | -| ir.cpp:1295:1:1295:1 | Address | &:r1295_1 | -| ir.cpp:1297:6:1297:15 | ChiPartial | partial:m1297_3 | -| ir.cpp:1297:6:1297:15 | ChiTotal | total:m1297_2 | -| ir.cpp:1297:6:1297:15 | SideEffect | ~m1298_8 | -| ir.cpp:1297:21:1297:21 | Address | &:r1297_5 | -| ir.cpp:1297:28:1297:28 | Address | &:r1297_7 | -| ir.cpp:1298:12:1298:21 | CallTarget | func:r1298_1 | -| ir.cpp:1298:12:1298:21 | ChiPartial | partial:m1298_7 | -| ir.cpp:1298:12:1298:21 | ChiTotal | total:m1297_4 | -| ir.cpp:1298:12:1298:21 | SideEffect | ~m1297_4 | -| ir.cpp:1298:23:1298:23 | Address | &:r1298_2 | -| ir.cpp:1298:23:1298:23 | Arg(0) | 0:r1298_3 | -| ir.cpp:1298:23:1298:23 | Load | m1297_6 | -| ir.cpp:1298:26:1298:26 | Address | &:r1298_4 | -| ir.cpp:1298:26:1298:26 | Arg(1) | 1:r1298_5 | -| ir.cpp:1298:26:1298:26 | Load | m1297_8 | -| ir.cpp:1301:6:1301:25 | ChiPartial | partial:m1301_3 | -| ir.cpp:1301:6:1301:25 | ChiTotal | total:m1301_2 | -| ir.cpp:1301:6:1301:25 | SideEffect | m1301_3 | -| ir.cpp:1301:32:1301:32 | Address | &:r1301_5 | -| ir.cpp:1301:39:1301:39 | Address | &:r1301_7 | -| ir.cpp:1301:47:1301:47 | Address | &:r1301_9 | -| ir.cpp:1302:9:1302:9 | Address | &:r1302_1 | -| ir.cpp:1302:13:1302:13 | Address | &:r1302_2 | -| ir.cpp:1302:13:1302:13 | Load | m1301_8 | -| ir.cpp:1302:13:1302:13 | StoreValue | r1302_3 | -| ir.cpp:1303:5:1303:5 | Address | &:r1303_7 | -| ir.cpp:1303:9:1303:9 | Address | &:r1303_1 | -| ir.cpp:1303:9:1303:9 | Condition | r1303_2 | -| ir.cpp:1303:9:1303:9 | Load | m1301_6 | -| ir.cpp:1303:9:1303:9 | StoreValue | r1303_2 | -| ir.cpp:1303:9:1303:14 | Address | &:r1303_5 | -| ir.cpp:1303:9:1303:14 | Address | &:r1303_9 | -| ir.cpp:1303:9:1303:14 | Address | &:r1303_13 | -| ir.cpp:1303:9:1303:14 | Load | m1303_4 | -| ir.cpp:1303:9:1303:14 | Phi | from 2:m1303_10 | -| ir.cpp:1303:9:1303:14 | Phi | from 3:m1303_14 | -| ir.cpp:1303:9:1303:14 | StoreValue | r1303_6 | -| ir.cpp:1303:14:1303:14 | Address | &:r1303_11 | -| ir.cpp:1303:14:1303:14 | Load | m1301_8 | -| ir.cpp:1303:14:1303:14 | StoreValue | r1303_12 | -| ir.cpp:1304:5:1304:5 | Address | &:r1304_8 | -| ir.cpp:1304:9:1304:9 | Address | &:r1304_1 | -| ir.cpp:1304:9:1304:9 | Condition | r1304_2 | -| ir.cpp:1304:9:1304:9 | Load | m1301_6 | -| ir.cpp:1304:9:1304:9 | StoreValue | r1304_2 | -| ir.cpp:1304:9:1304:14 | Address | &:r1304_5 | -| ir.cpp:1304:9:1304:14 | Address | &:r1304_10 | -| ir.cpp:1304:9:1304:14 | Address | &:r1304_14 | -| ir.cpp:1304:9:1304:14 | Load | m1304_4 | -| ir.cpp:1304:9:1304:14 | Phi | from 5:m1304_11 | -| ir.cpp:1304:9:1304:14 | Phi | from 6:m1304_15 | -| ir.cpp:1304:9:1304:14 | StoreValue | r1304_7 | -| ir.cpp:1304:9:1304:14 | Unary | r1304_6 | -| ir.cpp:1304:14:1304:14 | Address | &:r1304_12 | -| ir.cpp:1304:14:1304:14 | Load | m1301_10 | -| ir.cpp:1304:14:1304:14 | StoreValue | r1304_13 | -| ir.cpp:1305:5:1305:5 | Address | &:r1305_9 | -| ir.cpp:1305:9:1305:9 | Address | &:r1305_1 | -| ir.cpp:1305:9:1305:9 | Condition | r1305_4 | -| ir.cpp:1305:9:1305:9 | Left | r1305_2 | -| ir.cpp:1305:9:1305:9 | Load | m1301_8 | -| ir.cpp:1305:9:1305:9 | Right | r1305_3 | -| ir.cpp:1305:9:1305:9 | StoreValue | r1305_2 | -| ir.cpp:1305:9:1305:14 | Address | &:r1305_7 | -| ir.cpp:1305:9:1305:14 | Address | &:r1305_11 | -| ir.cpp:1305:9:1305:14 | Address | &:r1305_15 | -| ir.cpp:1305:9:1305:14 | Load | m1305_6 | -| ir.cpp:1305:9:1305:14 | Phi | from 8:m1305_12 | -| ir.cpp:1305:9:1305:14 | Phi | from 9:m1305_16 | -| ir.cpp:1305:9:1305:14 | StoreValue | r1305_8 | -| ir.cpp:1305:14:1305:14 | Address | &:r1305_13 | -| ir.cpp:1305:14:1305:14 | Load | m1301_8 | -| ir.cpp:1305:14:1305:14 | StoreValue | r1305_14 | -| ir.cpp:1306:5:1306:5 | Address | &:r1306_10 | -| ir.cpp:1306:9:1306:9 | Address | &:r1306_1 | -| ir.cpp:1306:9:1306:9 | Condition | r1306_4 | -| ir.cpp:1306:9:1306:9 | Left | r1306_2 | -| ir.cpp:1306:9:1306:9 | Load | m1301_8 | -| ir.cpp:1306:9:1306:9 | Right | r1306_3 | -| ir.cpp:1306:9:1306:9 | StoreValue | r1306_2 | -| ir.cpp:1306:9:1306:14 | Address | &:r1306_7 | -| ir.cpp:1306:9:1306:14 | Address | &:r1306_12 | -| ir.cpp:1306:9:1306:14 | Address | &:r1306_16 | -| ir.cpp:1306:9:1306:14 | Load | m1306_6 | -| ir.cpp:1306:9:1306:14 | Phi | from 11:m1306_13 | -| ir.cpp:1306:9:1306:14 | Phi | from 12:m1306_17 | -| ir.cpp:1306:9:1306:14 | StoreValue | r1306_9 | -| ir.cpp:1306:9:1306:14 | Unary | r1306_8 | -| ir.cpp:1306:14:1306:14 | Address | &:r1306_14 | -| ir.cpp:1306:14:1306:14 | Load | m1301_10 | -| ir.cpp:1306:14:1306:14 | StoreValue | r1306_15 | -| ir.cpp:1307:5:1307:5 | Address | &:r1307_10 | -| ir.cpp:1307:9:1307:9 | Address | &:r1307_1 | -| ir.cpp:1307:9:1307:9 | Condition | r1307_4 | -| ir.cpp:1307:9:1307:9 | Left | r1307_2 | -| ir.cpp:1307:9:1307:9 | Load | m1301_10 | -| ir.cpp:1307:9:1307:9 | Right | r1307_3 | -| ir.cpp:1307:9:1307:9 | StoreValue | r1307_2 | -| ir.cpp:1307:9:1307:14 | Address | &:r1307_7 | -| ir.cpp:1307:9:1307:14 | Address | &:r1307_12 | -| ir.cpp:1307:9:1307:14 | Address | &:r1307_17 | -| ir.cpp:1307:9:1307:14 | Load | m1307_6 | -| ir.cpp:1307:9:1307:14 | Phi | from 14:m1307_13 | -| ir.cpp:1307:9:1307:14 | Phi | from 15:m1307_18 | -| ir.cpp:1307:9:1307:14 | StoreValue | r1307_9 | -| ir.cpp:1307:9:1307:14 | Unary | r1307_8 | -| ir.cpp:1307:14:1307:14 | Address | &:r1307_14 | -| ir.cpp:1307:14:1307:14 | Load | m1301_8 | -| ir.cpp:1307:14:1307:14 | StoreValue | r1307_16 | -| ir.cpp:1307:14:1307:14 | Unary | r1307_15 | -| ir.cpp:1308:5:1308:5 | Address | &:r1308_10 | -| ir.cpp:1308:9:1308:9 | Address | &:r1308_1 | -| ir.cpp:1308:9:1308:9 | Condition | r1308_4 | -| ir.cpp:1308:9:1308:9 | Left | r1308_2 | -| ir.cpp:1308:9:1308:9 | Load | m1301_10 | -| ir.cpp:1308:9:1308:9 | Right | r1308_3 | -| ir.cpp:1308:9:1308:9 | StoreValue | r1308_2 | -| ir.cpp:1308:9:1308:14 | Address | &:r1308_7 | -| ir.cpp:1308:9:1308:14 | Address | &:r1308_12 | -| ir.cpp:1308:9:1308:14 | Address | &:r1308_16 | -| ir.cpp:1308:9:1308:14 | Load | m1308_6 | -| ir.cpp:1308:9:1308:14 | Phi | from 17:m1308_13 | -| ir.cpp:1308:9:1308:14 | Phi | from 18:m1308_17 | -| ir.cpp:1308:9:1308:14 | StoreValue | r1308_9 | -| ir.cpp:1308:9:1308:14 | Unary | r1308_8 | -| ir.cpp:1308:14:1308:14 | Address | &:r1308_14 | -| ir.cpp:1308:14:1308:14 | Load | m1301_10 | -| ir.cpp:1308:14:1308:14 | StoreValue | r1308_15 | -| ir.cpp:1310:5:1310:5 | Address | &:r1310_9 | -| ir.cpp:1310:9:1310:26 | Address | &:r1310_7 | -| ir.cpp:1310:9:1310:26 | Address | &:r1310_11 | -| ir.cpp:1310:9:1310:26 | Address | &:r1310_33 | -| ir.cpp:1310:9:1310:26 | Load | m1310_6 | -| ir.cpp:1310:9:1310:26 | Phi | from 20:m1310_12 | -| ir.cpp:1310:9:1310:26 | Phi | from 26:m1310_34 | -| ir.cpp:1310:9:1310:26 | StoreValue | r1310_8 | -| ir.cpp:1310:10:1310:10 | Address | &:r1310_1 | -| ir.cpp:1310:10:1310:10 | Condition | r1310_4 | -| ir.cpp:1310:10:1310:10 | Left | r1310_2 | -| ir.cpp:1310:10:1310:10 | Load | m1301_8 | -| ir.cpp:1310:10:1310:10 | Right | r1310_3 | -| ir.cpp:1310:10:1310:20 | Address | &:r1310_13 | -| ir.cpp:1310:10:1310:20 | Address | &:r1310_17 | -| ir.cpp:1310:10:1310:20 | Address | &:r1310_20 | -| ir.cpp:1310:10:1310:20 | Condition | r1310_18 | -| ir.cpp:1310:10:1310:20 | Load | m1310_16 | -| ir.cpp:1310:10:1310:20 | Phi | from 21:m1310_15 | -| ir.cpp:1310:10:1310:20 | Phi | from 23:m1310_22 | -| ir.cpp:1310:10:1310:20 | StoreValue | r1310_14 | -| ir.cpp:1310:10:1310:20 | StoreValue | r1310_18 | -| ir.cpp:1310:10:1310:20 | StoreValue | r1310_21 | -| ir.cpp:1310:15:1310:15 | Address | &:r1310_23 | -| ir.cpp:1310:15:1310:15 | Condition | r1310_24 | -| ir.cpp:1310:15:1310:15 | Load | m1301_6 | -| ir.cpp:1310:20:1310:20 | Address | &:r1310_26 | -| ir.cpp:1310:20:1310:20 | Condition | r1310_29 | -| ir.cpp:1310:20:1310:20 | Left | r1310_27 | -| ir.cpp:1310:20:1310:20 | Load | m1301_10 | -| ir.cpp:1310:20:1310:20 | Right | r1310_28 | -| ir.cpp:1310:26:1310:26 | Address | &:r1310_31 | -| ir.cpp:1310:26:1310:26 | Load | m1301_8 | -| ir.cpp:1310:26:1310:26 | StoreValue | r1310_32 | -| ir.cpp:1316:5:1316:27 | Address | &:r1316_9 | -| ir.cpp:1316:5:1316:27 | ChiPartial | partial:m1316_3 | -| ir.cpp:1316:5:1316:27 | ChiTotal | total:m1316_2 | -| ir.cpp:1316:5:1316:27 | Load | m1317_11 | -| ir.cpp:1316:5:1316:27 | SideEffect | ~m1317_7 | -| ir.cpp:1316:33:1316:33 | Address | &:r1316_5 | -| ir.cpp:1316:40:1316:40 | Address | &:r1316_7 | -| ir.cpp:1317:5:1317:48 | Address | &:r1317_1 | -| ir.cpp:1317:12:1317:21 | CallTarget | func:r1317_2 | -| ir.cpp:1317:12:1317:21 | ChiPartial | partial:m1317_4 | -| ir.cpp:1317:12:1317:21 | ChiTotal | total:m1316_4 | -| ir.cpp:1317:12:1317:21 | Condition | r1317_3 | -| ir.cpp:1317:12:1317:21 | SideEffect | ~m1316_4 | -| ir.cpp:1317:12:1317:47 | Address | &:r1317_9 | -| ir.cpp:1317:12:1317:47 | Address | &:r1317_19 | -| ir.cpp:1317:12:1317:47 | Address | &:r1317_24 | -| ir.cpp:1317:12:1317:47 | Load | m1317_8 | -| ir.cpp:1317:12:1317:47 | Phi | from 3:m1317_20 | -| ir.cpp:1317:12:1317:47 | Phi | from 3:~m1317_15 | -| ir.cpp:1317:12:1317:47 | Phi | from 4:m1317_25 | -| ir.cpp:1317:12:1317:47 | Phi | from 4:~m1317_21 | -| ir.cpp:1317:12:1317:47 | StoreValue | r1317_10 | -| ir.cpp:1317:28:1317:37 | CallTarget | func:r1317_12 | -| ir.cpp:1317:28:1317:37 | ChiPartial | partial:m1317_14 | -| ir.cpp:1317:28:1317:37 | ChiTotal | total:m1317_5 | -| ir.cpp:1317:28:1317:37 | Condition | r1317_13 | -| ir.cpp:1317:28:1317:37 | SideEffect | ~m1317_5 | -| ir.cpp:1317:43:1317:43 | Address | &:r1317_17 | -| ir.cpp:1317:43:1317:43 | Load | m1316_6 | -| ir.cpp:1317:43:1317:43 | StoreValue | r1317_18 | -| ir.cpp:1317:47:1317:47 | Address | &:r1317_22 | -| ir.cpp:1317:47:1317:47 | Load | m1316_8 | -| ir.cpp:1317:47:1317:47 | Phi | from 0:~m1317_5 | -| ir.cpp:1317:47:1317:47 | Phi | from 2:~m1317_15 | -| ir.cpp:1317:47:1317:47 | StoreValue | r1317_23 | -| ir.cpp:1322:6:1322:6 | ChiPartial | partial:m1322_3 | -| ir.cpp:1322:6:1322:6 | ChiTotal | total:m1322_2 | -| ir.cpp:1322:6:1322:6 | SideEffect | ~m1324_8 | -| ir.cpp:1322:13:1322:13 | Address | &:r1322_5 | -| ir.cpp:1322:13:1322:13 | Address | &:r1322_5 | -| ir.cpp:1322:13:1322:13 | Address | &:r1322_7 | -| ir.cpp:1322:13:1322:13 | Address | &:r1322_7 | -| ir.cpp:1322:13:1322:13 | Load | m1322_6 | -| ir.cpp:1322:13:1322:13 | SideEffect | m1322_8 | -| ir.cpp:1324:3:1324:13 | Address | &:r1324_6 | -| ir.cpp:1324:3:1324:13 | Arg(0) | 0:r1324_2 | -| ir.cpp:1324:3:1324:13 | CallTarget | func:r1324_1 | -| ir.cpp:1324:3:1324:13 | ChiPartial | partial:m1324_7 | -| ir.cpp:1324:3:1324:13 | ChiTotal | total:m1322_4 | -| ir.cpp:1324:3:1324:13 | SideEffect | ~m1322_4 | -| ir.cpp:1324:3:1324:13 | Unary | r1324_6 | -| ir.cpp:1324:8:1324:8 | Address | &:r1324_3 | -| ir.cpp:1324:8:1324:8 | Arg(1) | 1:r1324_5 | -| ir.cpp:1324:8:1324:8 | Load | m1322_6 | -| ir.cpp:1324:8:1324:8 | Unary | r1324_4 | -| ir.cpp:1328:3:1328:3 | Address | &:r1328_5 | -| ir.cpp:1328:3:1328:3 | Address | &:r1328_5 | -| ir.cpp:1328:3:1328:3 | Address | &:r1328_5 | -| ir.cpp:1328:3:1328:3 | Address | &:r1328_5 | -| ir.cpp:1328:3:1328:3 | ChiPartial | partial:m1328_3 | -| ir.cpp:1328:3:1328:3 | ChiPartial | partial:m1328_3 | -| ir.cpp:1328:3:1328:3 | ChiPartial | partial:m1328_3 | -| ir.cpp:1328:3:1328:3 | ChiPartial | partial:m1328_3 | -| ir.cpp:1328:3:1328:3 | ChiTotal | total:m1328_2 | -| ir.cpp:1328:3:1328:3 | ChiTotal | total:m1328_2 | -| ir.cpp:1328:3:1328:3 | ChiTotal | total:m1328_2 | -| ir.cpp:1328:3:1328:3 | ChiTotal | total:m1328_2 | -| ir.cpp:1328:3:1328:3 | Load | m1329_3 | -| ir.cpp:1328:3:1328:3 | Load | m1329_3 | -| ir.cpp:1328:3:1328:3 | Load | m1329_8 | -| ir.cpp:1328:3:1328:3 | Load | m1329_8 | -| ir.cpp:1328:3:1328:3 | SideEffect | m1328_3 | -| ir.cpp:1328:3:1328:3 | SideEffect | m1328_3 | -| ir.cpp:1328:3:1328:3 | SideEffect | ~m1329_6 | -| ir.cpp:1328:3:1328:3 | SideEffect | ~m1329_6 | -| ir.cpp:1329:5:1329:15 | Address | &:r1329_1 | -| ir.cpp:1329:5:1329:15 | Address | &:r1329_1 | -| ir.cpp:1329:5:1329:15 | Address | &:r1329_1 | -| ir.cpp:1329:5:1329:15 | Address | &:r1329_1 | -| ir.cpp:1329:5:1329:15 | Address | &:r1329_1 | -| ir.cpp:1329:5:1329:15 | Address | &:r1329_1 | -| ir.cpp:1329:5:1329:15 | Arg(this) | this:r1329_1 | -| ir.cpp:1329:5:1329:15 | Arg(this) | this:r1329_1 | -| ir.cpp:1329:5:1329:15 | CallTarget | func:r1329_3 | -| ir.cpp:1329:5:1329:15 | CallTarget | func:r1329_3 | -| ir.cpp:1329:5:1329:15 | ChiPartial | partial:m1329_5 | -| ir.cpp:1329:5:1329:15 | ChiPartial | partial:m1329_5 | -| ir.cpp:1329:5:1329:15 | ChiPartial | partial:m1329_7 | -| ir.cpp:1329:5:1329:15 | ChiPartial | partial:m1329_7 | -| ir.cpp:1329:5:1329:15 | ChiTotal | total:m1328_4 | -| ir.cpp:1329:5:1329:15 | ChiTotal | total:m1328_4 | -| ir.cpp:1329:5:1329:15 | ChiTotal | total:m1329_2 | -| ir.cpp:1329:5:1329:15 | ChiTotal | total:m1329_2 | -| ir.cpp:1329:5:1329:15 | SideEffect | ~m1328_4 | -| ir.cpp:1329:5:1329:15 | SideEffect | ~m1328_4 | -| ir.cpp:1329:5:1329:15 | StoreValue | r1329_2 | -| ir.cpp:1329:5:1329:15 | StoreValue | r1329_2 | -| ir.cpp:1367:6:1367:21 | ChiPartial | partial:m1367_3 | -| ir.cpp:1367:6:1367:21 | ChiTotal | total:m1367_2 | -| ir.cpp:1367:6:1367:21 | SideEffect | ~m1379_6 | -| ir.cpp:1368:12:1368:12 | Address | &:r1368_1 | -| ir.cpp:1368:16:1368:34 | CallTarget | func:r1368_2 | -| ir.cpp:1368:16:1368:34 | ChiPartial | partial:m1368_4 | -| ir.cpp:1368:16:1368:34 | ChiTotal | total:m1367_4 | -| ir.cpp:1368:16:1368:34 | SideEffect | ~m1367_4 | -| ir.cpp:1368:16:1368:34 | StoreValue | r1368_3 | -| ir.cpp:1369:19:1369:20 | Address | &:r1369_1 | -| ir.cpp:1369:24:1369:42 | CallTarget | func:r1369_3 | -| ir.cpp:1369:24:1369:42 | ChiPartial | partial:m1369_5 | -| ir.cpp:1369:24:1369:42 | ChiTotal | total:m1368_5 | -| ir.cpp:1369:24:1369:42 | SideEffect | ~m1368_5 | -| ir.cpp:1369:24:1369:42 | StoreValue | r1369_4 | -| ir.cpp:1369:24:1369:44 | Address | &:r1369_2 | -| ir.cpp:1369:24:1369:44 | StoreValue | r1369_9 | -| ir.cpp:1369:24:1369:44 | Unary | r1369_2 | -| ir.cpp:1369:24:1369:44 | Unary | r1369_8 | -| ir.cpp:1371:5:1371:13 | CallTarget | func:r1371_1 | -| ir.cpp:1371:5:1371:13 | ChiPartial | partial:m1371_6 | -| ir.cpp:1371:5:1371:13 | ChiTotal | total:m1369_6 | -| ir.cpp:1371:5:1371:13 | SideEffect | ~m1369_6 | -| ir.cpp:1371:15:1371:15 | Address | &:r1371_4 | -| ir.cpp:1371:15:1371:15 | Arg(0) | 0:r1371_4 | -| ir.cpp:1371:15:1371:15 | SideEffect | ~m1368_6 | -| ir.cpp:1371:15:1371:15 | Unary | r1371_2 | -| ir.cpp:1371:15:1371:15 | Unary | r1371_3 | -| ir.cpp:1372:5:1372:21 | CallTarget | func:r1372_1 | -| ir.cpp:1372:5:1372:21 | ChiPartial | partial:m1372_15 | -| ir.cpp:1372:5:1372:21 | ChiTotal | total:m1372_9 | -| ir.cpp:1372:5:1372:21 | SideEffect | ~m1372_9 | -| ir.cpp:1372:23:1372:27 | Address | &:r1372_2 | -| ir.cpp:1372:23:1372:27 | Address | &:r1372_2 | -| ir.cpp:1372:23:1372:27 | Address | &:r1372_6 | -| ir.cpp:1372:23:1372:27 | Address | &:r1372_13 | -| ir.cpp:1372:23:1372:27 | Arg(0) | 0:r1372_6 | -| ir.cpp:1372:23:1372:27 | Arg(0) | 0:r1372_13 | -| ir.cpp:1372:23:1372:27 | Arg(this) | this:r1372_2 | -| ir.cpp:1372:23:1372:27 | CallTarget | func:r1372_4 | -| ir.cpp:1372:23:1372:27 | ChiPartial | partial:m1372_8 | -| ir.cpp:1372:23:1372:27 | ChiPartial | partial:m1372_11 | -| ir.cpp:1372:23:1372:27 | ChiTotal | total:m1371_7 | -| ir.cpp:1372:23:1372:27 | ChiTotal | total:m1372_3 | -| ir.cpp:1372:23:1372:27 | SideEffect | ~m1367_3 | -| ir.cpp:1372:23:1372:27 | SideEffect | ~m1371_7 | -| ir.cpp:1372:23:1372:27 | SideEffect | ~m1372_12 | -| ir.cpp:1372:23:1372:27 | Unary | r1372_2 | -| ir.cpp:1372:23:1372:27 | Unary | r1372_5 | -| ir.cpp:1373:5:1373:15 | CallTarget | func:r1373_1 | -| ir.cpp:1373:5:1373:15 | ChiPartial | partial:m1373_16 | -| ir.cpp:1373:5:1373:15 | ChiTotal | total:m1373_10 | -| ir.cpp:1373:5:1373:15 | SideEffect | ~m1373_10 | -| ir.cpp:1373:17:1373:17 | Address | &:r1373_2 | -| ir.cpp:1373:17:1373:17 | Address | &:r1373_2 | -| ir.cpp:1373:17:1373:17 | Address | &:r1373_2 | -| ir.cpp:1373:17:1373:17 | Address | &:r1373_7 | -| ir.cpp:1373:17:1373:17 | Arg(0) | 0:r1373_7 | -| ir.cpp:1373:17:1373:17 | Arg(0) | 0:r1373_14 | -| ir.cpp:1373:17:1373:17 | Arg(this) | this:r1373_2 | -| ir.cpp:1373:17:1373:17 | CallTarget | func:r1373_4 | -| ir.cpp:1373:17:1373:17 | ChiPartial | partial:m1373_9 | -| ir.cpp:1373:17:1373:17 | ChiPartial | partial:m1373_12 | -| ir.cpp:1373:17:1373:17 | ChiTotal | total:m1372_16 | -| ir.cpp:1373:17:1373:17 | ChiTotal | total:m1373_3 | -| ir.cpp:1373:17:1373:17 | Load | m1373_13 | -| ir.cpp:1373:17:1373:17 | SideEffect | ~m1368_6 | -| ir.cpp:1373:17:1373:17 | SideEffect | ~m1372_16 | -| ir.cpp:1373:17:1373:17 | Unary | r1373_5 | -| ir.cpp:1373:17:1373:17 | Unary | r1373_6 | -| ir.cpp:1374:5:1374:23 | CallTarget | func:r1374_1 | -| ir.cpp:1374:5:1374:23 | ChiPartial | partial:m1374_15 | -| ir.cpp:1374:5:1374:23 | ChiTotal | total:m1374_9 | -| ir.cpp:1374:5:1374:23 | SideEffect | ~m1374_9 | -| ir.cpp:1374:25:1374:29 | Address | &:r1374_2 | -| ir.cpp:1374:25:1374:29 | Address | &:r1374_2 | -| ir.cpp:1374:25:1374:29 | Address | &:r1374_2 | -| ir.cpp:1374:25:1374:29 | Address | &:r1374_6 | -| ir.cpp:1374:25:1374:29 | Arg(0) | 0:r1374_6 | -| ir.cpp:1374:25:1374:29 | Arg(0) | 0:r1374_13 | -| ir.cpp:1374:25:1374:29 | Arg(this) | this:r1374_2 | -| ir.cpp:1374:25:1374:29 | CallTarget | func:r1374_4 | -| ir.cpp:1374:25:1374:29 | ChiPartial | partial:m1374_8 | -| ir.cpp:1374:25:1374:29 | ChiPartial | partial:m1374_11 | -| ir.cpp:1374:25:1374:29 | ChiTotal | total:m1373_17 | -| ir.cpp:1374:25:1374:29 | ChiTotal | total:m1374_3 | -| ir.cpp:1374:25:1374:29 | Load | m1374_12 | -| ir.cpp:1374:25:1374:29 | SideEffect | ~m1367_3 | -| ir.cpp:1374:25:1374:29 | SideEffect | ~m1373_17 | -| ir.cpp:1374:25:1374:29 | Unary | r1374_5 | -| ir.cpp:1375:5:1375:12 | Address | &:r1375_1 | -| ir.cpp:1375:5:1375:12 | Address | &:r1375_1 | -| ir.cpp:1375:5:1375:12 | Address | &:r1375_9 | -| ir.cpp:1375:5:1375:12 | Arg(this) | this:r1375_1 | -| ir.cpp:1375:5:1375:12 | Arg(this) | this:r1375_9 | -| ir.cpp:1375:5:1375:12 | CallTarget | func:r1375_3 | -| ir.cpp:1375:5:1375:12 | ChiPartial | partial:m1375_5 | -| ir.cpp:1375:5:1375:12 | ChiPartial | partial:m1375_7 | -| ir.cpp:1375:5:1375:12 | ChiTotal | total:m1374_16 | -| ir.cpp:1375:5:1375:12 | ChiTotal | total:m1375_2 | -| ir.cpp:1375:5:1375:12 | SideEffect | m1375_8 | -| ir.cpp:1375:5:1375:12 | SideEffect | ~m1374_16 | -| ir.cpp:1375:5:1375:12 | Unary | r1375_1 | -| ir.cpp:1375:14:1375:18 | CallTarget | func:r1375_10 | -| ir.cpp:1375:14:1375:18 | ChiPartial | partial:m1375_12 | -| ir.cpp:1375:14:1375:18 | ChiTotal | total:m1375_6 | -| ir.cpp:1375:14:1375:18 | SideEffect | ~m1375_6 | -| ir.cpp:1376:5:1376:23 | CallTarget | func:r1376_2 | -| ir.cpp:1376:5:1376:23 | ChiPartial | partial:m1376_4 | -| ir.cpp:1376:5:1376:23 | ChiTotal | total:m1375_13 | -| ir.cpp:1376:5:1376:23 | SideEffect | ~m1375_13 | -| ir.cpp:1376:5:1376:23 | StoreValue | r1376_3 | -| ir.cpp:1376:5:1376:25 | Address | &:r1376_1 | -| ir.cpp:1376:5:1376:25 | Address | &:r1376_7 | -| ir.cpp:1376:5:1376:25 | Arg(this) | this:r1376_7 | -| ir.cpp:1376:5:1376:25 | SideEffect | m1376_6 | -| ir.cpp:1376:5:1376:25 | Unary | r1376_1 | -| ir.cpp:1376:27:1376:31 | CallTarget | func:r1376_8 | -| ir.cpp:1376:27:1376:31 | ChiPartial | partial:m1376_10 | -| ir.cpp:1376:27:1376:31 | ChiTotal | total:m1376_5 | -| ir.cpp:1376:27:1376:31 | SideEffect | ~m1376_5 | -| ir.cpp:1378:5:1378:28 | CallTarget | func:r1378_2 | -| ir.cpp:1378:5:1378:28 | ChiPartial | partial:m1378_4 | -| ir.cpp:1378:5:1378:28 | ChiTotal | total:m1376_11 | -| ir.cpp:1378:5:1378:28 | SideEffect | ~m1376_11 | -| ir.cpp:1378:5:1378:28 | StoreValue | r1378_3 | -| ir.cpp:1378:5:1378:30 | Address | &:r1378_1 | -| ir.cpp:1379:1:1379:1 | Address | &:r1379_2 | -| ir.cpp:1379:1:1379:1 | Address | &:r1379_2 | -| ir.cpp:1379:1:1379:1 | Arg(this) | this:r1379_2 | -| ir.cpp:1379:1:1379:1 | CallTarget | func:r1379_3 | -| ir.cpp:1379:1:1379:1 | ChiPartial | partial:m1379_5 | -| ir.cpp:1379:1:1379:1 | ChiPartial | partial:m1379_8 | -| ir.cpp:1379:1:1379:1 | ChiTotal | total:m1368_6 | -| ir.cpp:1379:1:1379:1 | ChiTotal | total:m1378_5 | -| ir.cpp:1379:1:1379:1 | SideEffect | m1368_6 | -| ir.cpp:1379:1:1379:1 | SideEffect | ~m1378_5 | -| ir.cpp:1381:6:1381:30 | ChiPartial | partial:m1381_3 | -| ir.cpp:1381:6:1381:30 | ChiTotal | total:m1381_2 | -| ir.cpp:1381:6:1381:30 | SideEffect | ~m1391_14 | -| ir.cpp:1382:21:1382:21 | Address | &:r1382_1 | -| ir.cpp:1382:25:1382:52 | CallTarget | func:r1382_2 | -| ir.cpp:1382:25:1382:52 | ChiPartial | partial:m1382_4 | -| ir.cpp:1382:25:1382:52 | ChiTotal | total:m1381_4 | -| ir.cpp:1382:25:1382:52 | SideEffect | ~m1381_4 | -| ir.cpp:1382:25:1382:52 | StoreValue | r1382_3 | -| ir.cpp:1383:28:1383:29 | Address | &:r1383_1 | -| ir.cpp:1383:33:1383:60 | CallTarget | func:r1383_3 | -| ir.cpp:1383:33:1383:60 | ChiPartial | partial:m1383_5 | -| ir.cpp:1383:33:1383:60 | ChiTotal | total:m1382_5 | -| ir.cpp:1383:33:1383:60 | SideEffect | ~m1382_5 | -| ir.cpp:1383:33:1383:60 | StoreValue | r1383_4 | -| ir.cpp:1383:33:1383:62 | Address | &:r1383_2 | -| ir.cpp:1383:33:1383:62 | StoreValue | r1383_9 | -| ir.cpp:1383:33:1383:62 | Unary | r1383_2 | -| ir.cpp:1383:33:1383:62 | Unary | r1383_8 | -| ir.cpp:1384:21:1384:22 | Address | &:r1384_1 | -| ir.cpp:1385:5:1385:13 | CallTarget | func:r1385_1 | -| ir.cpp:1385:5:1385:13 | ChiPartial | partial:m1385_6 | -| ir.cpp:1385:5:1385:13 | ChiTotal | total:m1383_6 | -| ir.cpp:1385:5:1385:13 | SideEffect | ~m1383_6 | -| ir.cpp:1385:15:1385:15 | Address | &:r1385_4 | -| ir.cpp:1385:15:1385:15 | Arg(0) | 0:r1385_4 | -| ir.cpp:1385:15:1385:15 | SideEffect | ~m1382_6 | -| ir.cpp:1385:15:1385:15 | Unary | r1385_2 | -| ir.cpp:1385:15:1385:15 | Unary | r1385_3 | -| ir.cpp:1386:5:1386:15 | CallTarget | func:r1386_1 | -| ir.cpp:1386:5:1386:15 | ChiPartial | partial:m1386_8 | -| ir.cpp:1386:5:1386:15 | ChiTotal | total:m1385_7 | -| ir.cpp:1386:5:1386:15 | SideEffect | ~m1385_7 | -| ir.cpp:1386:17:1386:17 | Address | &:r1386_2 | -| ir.cpp:1386:17:1386:17 | Address | &:r1386_2 | -| ir.cpp:1386:17:1386:17 | Address | &:r1386_3 | -| ir.cpp:1386:17:1386:17 | Arg(0) | 0:r1386_6 | -| ir.cpp:1386:17:1386:17 | Load | m1382_6 | -| ir.cpp:1386:17:1386:17 | Load | m1386_5 | -| ir.cpp:1386:17:1386:17 | StoreValue | r1386_4 | -| ir.cpp:1387:5:1387:21 | Address | &:r1387_1 | -| ir.cpp:1387:5:1387:21 | Address | &:r1387_1 | -| ir.cpp:1387:5:1387:21 | Address | &:r1387_1 | -| ir.cpp:1387:5:1387:21 | Arg(this) | this:r1387_1 | -| ir.cpp:1387:5:1387:21 | ChiPartial | partial:m1387_9 | -| ir.cpp:1387:5:1387:21 | ChiTotal | total:m1387_3 | -| ir.cpp:1387:5:1387:21 | SideEffect | m1387_3 | -| ir.cpp:1387:5:1387:21 | StoreValue | r1387_2 | -| ir.cpp:1387:23:1387:28 | CallTarget | func:r1387_4 | -| ir.cpp:1387:23:1387:28 | ChiPartial | partial:m1387_6 | -| ir.cpp:1387:23:1387:28 | ChiTotal | total:m1386_9 | -| ir.cpp:1387:23:1387:28 | SideEffect | ~m1386_9 | -| ir.cpp:1388:5:1388:32 | CallTarget | func:r1388_2 | -| ir.cpp:1388:5:1388:32 | ChiPartial | partial:m1388_4 | -| ir.cpp:1388:5:1388:32 | ChiTotal | total:m1387_7 | -| ir.cpp:1388:5:1388:32 | SideEffect | ~m1387_7 | -| ir.cpp:1388:5:1388:32 | StoreValue | r1388_3 | -| ir.cpp:1388:5:1388:34 | Address | &:r1388_1 | -| ir.cpp:1388:5:1388:34 | Address | &:r1388_1 | -| ir.cpp:1388:5:1388:34 | Address | &:r1388_1 | -| ir.cpp:1388:5:1388:34 | Arg(this) | this:r1388_1 | -| ir.cpp:1388:5:1388:34 | ChiPartial | partial:m1388_12 | -| ir.cpp:1388:5:1388:34 | ChiTotal | total:m1388_6 | -| ir.cpp:1388:5:1388:34 | SideEffect | m1388_6 | -| ir.cpp:1388:36:1388:41 | CallTarget | func:r1388_7 | -| ir.cpp:1388:36:1388:41 | ChiPartial | partial:m1388_9 | -| ir.cpp:1388:36:1388:41 | ChiTotal | total:m1388_5 | -| ir.cpp:1388:36:1388:41 | SideEffect | ~m1388_5 | -| ir.cpp:1390:5:1390:37 | CallTarget | func:r1390_2 | -| ir.cpp:1390:5:1390:37 | ChiPartial | partial:m1390_4 | -| ir.cpp:1390:5:1390:37 | ChiTotal | total:m1388_10 | -| ir.cpp:1390:5:1390:37 | SideEffect | ~m1388_10 | -| ir.cpp:1390:5:1390:37 | StoreValue | r1390_3 | -| ir.cpp:1390:5:1390:39 | Address | &:r1390_1 | -| ir.cpp:1391:1:1391:1 | Address | &:r1391_2 | -| ir.cpp:1391:1:1391:1 | Address | &:r1391_2 | -| ir.cpp:1391:1:1391:1 | Address | &:r1391_10 | -| ir.cpp:1391:1:1391:1 | Address | &:r1391_10 | -| ir.cpp:1391:1:1391:1 | Arg(this) | this:r1391_2 | -| ir.cpp:1391:1:1391:1 | Arg(this) | this:r1391_10 | -| ir.cpp:1391:1:1391:1 | CallTarget | func:r1391_3 | -| ir.cpp:1391:1:1391:1 | CallTarget | func:r1391_11 | -| ir.cpp:1391:1:1391:1 | ChiPartial | partial:m1391_5 | -| ir.cpp:1391:1:1391:1 | ChiPartial | partial:m1391_8 | -| ir.cpp:1391:1:1391:1 | ChiPartial | partial:m1391_13 | -| ir.cpp:1391:1:1391:1 | ChiPartial | partial:m1391_16 | -| ir.cpp:1391:1:1391:1 | ChiTotal | total:m1382_6 | -| ir.cpp:1391:1:1391:1 | ChiTotal | total:m1384_2 | -| ir.cpp:1391:1:1391:1 | ChiTotal | total:m1390_5 | -| ir.cpp:1391:1:1391:1 | ChiTotal | total:m1391_6 | -| ir.cpp:1391:1:1391:1 | SideEffect | m1382_6 | -| ir.cpp:1391:1:1391:1 | SideEffect | m1384_2 | -| ir.cpp:1391:1:1391:1 | SideEffect | ~m1390_5 | -| ir.cpp:1391:1:1391:1 | SideEffect | ~m1391_6 | -| ir.cpp:1393:6:1393:31 | ChiPartial | partial:m1393_3 | -| ir.cpp:1393:6:1393:31 | ChiTotal | total:m1393_2 | -| ir.cpp:1393:6:1393:31 | SideEffect | ~m1403_6 | -| ir.cpp:1394:22:1394:22 | Address | &:r1394_1 | -| ir.cpp:1394:26:1394:54 | CallTarget | func:r1394_2 | -| ir.cpp:1394:26:1394:54 | ChiPartial | partial:m1394_4 | -| ir.cpp:1394:26:1394:54 | ChiTotal | total:m1393_4 | -| ir.cpp:1394:26:1394:54 | SideEffect | ~m1393_4 | -| ir.cpp:1394:26:1394:54 | StoreValue | r1394_3 | -| ir.cpp:1395:29:1395:30 | Address | &:r1395_1 | -| ir.cpp:1395:34:1395:62 | CallTarget | func:r1395_3 | -| ir.cpp:1395:34:1395:62 | ChiPartial | partial:m1395_5 | -| ir.cpp:1395:34:1395:62 | ChiTotal | total:m1394_5 | -| ir.cpp:1395:34:1395:62 | SideEffect | ~m1394_5 | -| ir.cpp:1395:34:1395:62 | StoreValue | r1395_4 | -| ir.cpp:1395:34:1395:64 | Address | &:r1395_2 | -| ir.cpp:1395:34:1395:64 | StoreValue | r1395_9 | -| ir.cpp:1395:34:1395:64 | Unary | r1395_2 | -| ir.cpp:1395:34:1395:64 | Unary | r1395_8 | -| ir.cpp:1396:22:1396:23 | Address | &:r1396_1 | -| ir.cpp:1396:22:1396:23 | Address | &:r1396_1 | -| ir.cpp:1396:22:1396:23 | Arg(this) | this:r1396_1 | -| ir.cpp:1396:22:1396:23 | CallTarget | func:r1396_3 | -| ir.cpp:1396:22:1396:23 | ChiPartial | partial:m1396_5 | -| ir.cpp:1396:22:1396:23 | ChiPartial | partial:m1396_7 | -| ir.cpp:1396:22:1396:23 | ChiTotal | total:m1395_6 | -| ir.cpp:1396:22:1396:23 | ChiTotal | total:m1396_2 | -| ir.cpp:1396:22:1396:23 | SideEffect | ~m1395_6 | -| ir.cpp:1397:5:1397:13 | CallTarget | func:r1397_1 | -| ir.cpp:1397:5:1397:13 | ChiPartial | partial:m1397_6 | -| ir.cpp:1397:5:1397:13 | ChiTotal | total:m1396_6 | -| ir.cpp:1397:5:1397:13 | SideEffect | ~m1396_6 | -| ir.cpp:1397:15:1397:15 | Address | &:r1397_4 | -| ir.cpp:1397:15:1397:15 | Arg(0) | 0:r1397_4 | -| ir.cpp:1397:15:1397:15 | SideEffect | ~m1394_6 | -| ir.cpp:1397:15:1397:15 | Unary | r1397_2 | -| ir.cpp:1397:15:1397:15 | Unary | r1397_3 | -| ir.cpp:1398:5:1398:15 | CallTarget | func:r1398_1 | -| ir.cpp:1398:5:1398:15 | ChiPartial | partial:m1398_16 | -| ir.cpp:1398:5:1398:15 | ChiTotal | total:m1398_10 | -| ir.cpp:1398:5:1398:15 | SideEffect | ~m1398_10 | -| ir.cpp:1398:17:1398:17 | Address | &:r1398_2 | -| ir.cpp:1398:17:1398:17 | Address | &:r1398_2 | -| ir.cpp:1398:17:1398:17 | Address | &:r1398_2 | -| ir.cpp:1398:17:1398:17 | Address | &:r1398_7 | -| ir.cpp:1398:17:1398:17 | Arg(0) | 0:r1398_7 | -| ir.cpp:1398:17:1398:17 | Arg(0) | 0:r1398_14 | -| ir.cpp:1398:17:1398:17 | Arg(this) | this:r1398_2 | -| ir.cpp:1398:17:1398:17 | CallTarget | func:r1398_4 | -| ir.cpp:1398:17:1398:17 | ChiPartial | partial:m1398_9 | -| ir.cpp:1398:17:1398:17 | ChiPartial | partial:m1398_12 | -| ir.cpp:1398:17:1398:17 | ChiTotal | total:m1397_7 | -| ir.cpp:1398:17:1398:17 | ChiTotal | total:m1398_3 | -| ir.cpp:1398:17:1398:17 | Load | m1398_13 | -| ir.cpp:1398:17:1398:17 | SideEffect | ~m1394_6 | -| ir.cpp:1398:17:1398:17 | SideEffect | ~m1397_7 | -| ir.cpp:1398:17:1398:17 | Unary | r1398_5 | -| ir.cpp:1398:17:1398:17 | Unary | r1398_6 | -| ir.cpp:1399:5:1399:22 | Address | &:r1399_1 | -| ir.cpp:1399:5:1399:22 | Address | &:r1399_1 | -| ir.cpp:1399:5:1399:22 | Address | &:r1399_1 | -| ir.cpp:1399:5:1399:22 | Address | &:r1399_1 | -| ir.cpp:1399:5:1399:22 | Arg(this) | this:r1399_1 | -| ir.cpp:1399:5:1399:22 | Arg(this) | this:r1399_1 | -| ir.cpp:1399:5:1399:22 | CallTarget | func:r1399_3 | -| ir.cpp:1399:5:1399:22 | ChiPartial | partial:m1399_5 | -| ir.cpp:1399:5:1399:22 | ChiPartial | partial:m1399_7 | -| ir.cpp:1399:5:1399:22 | ChiPartial | partial:m1399_14 | -| ir.cpp:1399:5:1399:22 | ChiTotal | total:m1398_17 | -| ir.cpp:1399:5:1399:22 | ChiTotal | total:m1399_2 | -| ir.cpp:1399:5:1399:22 | ChiTotal | total:m1399_8 | -| ir.cpp:1399:5:1399:22 | SideEffect | m1399_8 | -| ir.cpp:1399:5:1399:22 | SideEffect | ~m1398_17 | -| ir.cpp:1399:24:1399:29 | CallTarget | func:r1399_9 | -| ir.cpp:1399:24:1399:29 | ChiPartial | partial:m1399_11 | -| ir.cpp:1399:24:1399:29 | ChiTotal | total:m1399_6 | -| ir.cpp:1399:24:1399:29 | SideEffect | ~m1399_6 | -| ir.cpp:1400:5:1400:33 | CallTarget | func:r1400_2 | -| ir.cpp:1400:5:1400:33 | ChiPartial | partial:m1400_4 | -| ir.cpp:1400:5:1400:33 | ChiTotal | total:m1399_12 | -| ir.cpp:1400:5:1400:33 | SideEffect | ~m1399_12 | -| ir.cpp:1400:5:1400:33 | StoreValue | r1400_3 | -| ir.cpp:1400:5:1400:35 | Address | &:r1400_1 | -| ir.cpp:1400:5:1400:35 | Address | &:r1400_1 | -| ir.cpp:1400:5:1400:35 | Address | &:r1400_1 | -| ir.cpp:1400:5:1400:35 | Arg(this) | this:r1400_1 | -| ir.cpp:1400:5:1400:35 | ChiPartial | partial:m1400_12 | -| ir.cpp:1400:5:1400:35 | ChiTotal | total:m1400_6 | -| ir.cpp:1400:5:1400:35 | SideEffect | m1400_6 | -| ir.cpp:1400:37:1400:42 | CallTarget | func:r1400_7 | -| ir.cpp:1400:37:1400:42 | ChiPartial | partial:m1400_9 | -| ir.cpp:1400:37:1400:42 | ChiTotal | total:m1400_5 | -| ir.cpp:1400:37:1400:42 | SideEffect | ~m1400_5 | -| ir.cpp:1401:5:1401:38 | CallTarget | func:r1401_2 | -| ir.cpp:1401:5:1401:38 | ChiPartial | partial:m1401_4 | -| ir.cpp:1401:5:1401:38 | ChiTotal | total:m1400_10 | -| ir.cpp:1401:5:1401:38 | SideEffect | ~m1400_10 | -| ir.cpp:1401:5:1401:38 | StoreValue | r1401_3 | -| ir.cpp:1401:5:1401:40 | Address | &:r1401_1 | -| ir.cpp:1403:9:1403:9 | Address | &:r1403_1 | -| ir.cpp:1403:13:1403:41 | CallTarget | func:r1403_3 | -| ir.cpp:1403:13:1403:41 | ChiPartial | partial:m1403_5 | -| ir.cpp:1403:13:1403:41 | ChiTotal | total:m1401_5 | -| ir.cpp:1403:13:1403:41 | SideEffect | ~m1401_5 | -| ir.cpp:1403:13:1403:41 | StoreValue | r1403_4 | -| ir.cpp:1403:13:1403:43 | Address | &:r1403_2 | -| ir.cpp:1403:13:1403:43 | Unary | r1403_2 | -| ir.cpp:1403:45:1403:45 | Address | &:r1403_8 | -| ir.cpp:1403:45:1403:45 | Load | ~m1403_7 | -| ir.cpp:1403:45:1403:45 | StoreValue | r1403_9 | -| ir.cpp:1406:6:1406:20 | ChiPartial | partial:m1406_3 | -| ir.cpp:1406:6:1406:20 | ChiTotal | total:m1406_2 | -| ir.cpp:1406:6:1406:20 | SideEffect | ~m1415_4 | -| ir.cpp:1407:11:1407:11 | Address | &:r1407_1 | -| ir.cpp:1407:15:1407:32 | CallTarget | func:r1407_2 | -| ir.cpp:1407:15:1407:32 | ChiPartial | partial:m1407_4 | -| ir.cpp:1407:15:1407:32 | ChiTotal | total:m1406_4 | -| ir.cpp:1407:15:1407:32 | SideEffect | ~m1406_4 | -| ir.cpp:1407:15:1407:32 | StoreValue | r1407_3 | -| ir.cpp:1408:18:1408:19 | Address | &:r1408_1 | -| ir.cpp:1408:23:1408:40 | CallTarget | func:r1408_3 | -| ir.cpp:1408:23:1408:40 | ChiPartial | partial:m1408_5 | -| ir.cpp:1408:23:1408:40 | ChiTotal | total:m1407_5 | -| ir.cpp:1408:23:1408:40 | SideEffect | ~m1407_5 | -| ir.cpp:1408:23:1408:40 | StoreValue | r1408_4 | -| ir.cpp:1408:23:1408:42 | Address | &:r1408_2 | -| ir.cpp:1408:23:1408:42 | StoreValue | r1408_9 | -| ir.cpp:1408:23:1408:42 | Unary | r1408_2 | -| ir.cpp:1408:23:1408:42 | Unary | r1408_8 | -| ir.cpp:1410:5:1410:13 | CallTarget | func:r1410_1 | -| ir.cpp:1410:5:1410:13 | ChiPartial | partial:m1410_6 | -| ir.cpp:1410:5:1410:13 | ChiTotal | total:m1408_6 | -| ir.cpp:1410:5:1410:13 | SideEffect | ~m1408_6 | -| ir.cpp:1410:15:1410:15 | Address | &:r1410_4 | -| ir.cpp:1410:15:1410:15 | Arg(0) | 0:r1410_4 | -| ir.cpp:1410:15:1410:15 | SideEffect | ~m1407_6 | -| ir.cpp:1410:15:1410:15 | Unary | r1410_2 | -| ir.cpp:1410:15:1410:15 | Unary | r1410_3 | -| ir.cpp:1411:5:1411:15 | CallTarget | func:r1411_1 | -| ir.cpp:1411:5:1411:15 | ChiPartial | partial:m1411_5 | -| ir.cpp:1411:5:1411:15 | ChiTotal | total:m1410_7 | -| ir.cpp:1411:5:1411:15 | SideEffect | ~m1410_7 | -| ir.cpp:1411:17:1411:17 | Address | &:r1411_2 | -| ir.cpp:1411:17:1411:17 | Arg(0) | 0:r1411_3 | -| ir.cpp:1411:17:1411:17 | Load | m1407_6 | -| ir.cpp:1413:9:1413:9 | Address | &:r1413_1 | -| ir.cpp:1413:13:1413:30 | Address | &:r1413_6 | -| ir.cpp:1413:13:1413:30 | CallTarget | func:r1413_2 | -| ir.cpp:1413:13:1413:30 | ChiPartial | partial:m1413_4 | -| ir.cpp:1413:13:1413:30 | ChiTotal | total:m1411_6 | -| ir.cpp:1413:13:1413:30 | SideEffect | ~m1411_6 | -| ir.cpp:1413:13:1413:30 | StoreValue | r1413_3 | -| ir.cpp:1413:13:1413:30 | Unary | r1413_6 | -| ir.cpp:1413:34:1413:34 | Address | &:r1413_8 | -| ir.cpp:1413:34:1413:34 | Load | ~m1413_7 | -| ir.cpp:1413:34:1413:34 | StoreValue | r1413_9 | -| ir.cpp:1415:5:1415:27 | CallTarget | func:r1415_1 | -| ir.cpp:1415:5:1415:27 | ChiPartial | partial:m1415_3 | -| ir.cpp:1415:5:1415:27 | ChiTotal | total:m1413_5 | -| ir.cpp:1415:5:1415:27 | SideEffect | ~m1413_5 | -| ir.cpp:1423:6:1423:29 | ChiPartial | partial:m1423_3 | -| ir.cpp:1423:6:1423:29 | ChiTotal | total:m1423_2 | -| ir.cpp:1423:6:1423:29 | SideEffect | ~m1428_5 | -| ir.cpp:1424:16:1424:17 | Address | &:r1424_1 | -| ir.cpp:1424:21:1424:46 | Address | &:r1424_6 | -| ir.cpp:1424:21:1424:46 | CallTarget | func:r1424_2 | -| ir.cpp:1424:21:1424:46 | ChiPartial | partial:m1424_4 | -| ir.cpp:1424:21:1424:46 | ChiTotal | total:m1423_4 | -| ir.cpp:1424:21:1424:46 | SideEffect | ~m1423_4 | -| ir.cpp:1424:21:1424:46 | StoreValue | r1424_3 | -| ir.cpp:1424:21:1424:46 | Unary | r1424_6 | -| ir.cpp:1424:21:1424:50 | StoreValue | r1424_12 | -| ir.cpp:1424:21:1424:50 | Unary | r1424_10 | -| ir.cpp:1424:21:1424:50 | Unary | r1424_11 | -| ir.cpp:1424:50:1424:50 | Address | &:r1424_8 | -| ir.cpp:1424:50:1424:50 | Load | ~m1424_7 | -| ir.cpp:1424:50:1424:50 | Unary | r1424_9 | -| ir.cpp:1425:9:1425:9 | Address | &:r1425_1 | -| ir.cpp:1425:13:1425:38 | Address | &:r1425_6 | -| ir.cpp:1425:13:1425:38 | CallTarget | func:r1425_2 | -| ir.cpp:1425:13:1425:38 | ChiPartial | partial:m1425_4 | -| ir.cpp:1425:13:1425:38 | ChiTotal | total:m1424_5 | -| ir.cpp:1425:13:1425:38 | SideEffect | ~m1424_5 | -| ir.cpp:1425:13:1425:38 | StoreValue | r1425_3 | -| ir.cpp:1425:13:1425:38 | Unary | r1425_6 | -| ir.cpp:1425:13:1425:42 | Load | ~m1425_5 | -| ir.cpp:1425:13:1425:42 | StoreValue | r1425_10 | -| ir.cpp:1425:42:1425:42 | Address | &:r1425_8 | -| ir.cpp:1425:42:1425:42 | Address | &:r1425_9 | -| ir.cpp:1425:42:1425:42 | Load | ~m1425_7 | -| ir.cpp:1427:18:1427:19 | Address | &:r1427_1 | -| ir.cpp:1427:23:1427:48 | Address | &:r1427_6 | -| ir.cpp:1427:23:1427:48 | CallTarget | func:r1427_2 | -| ir.cpp:1427:23:1427:48 | ChiPartial | partial:m1427_4 | -| ir.cpp:1427:23:1427:48 | ChiTotal | total:m1425_5 | -| ir.cpp:1427:23:1427:48 | SideEffect | ~m1425_5 | -| ir.cpp:1427:23:1427:48 | StoreValue | r1427_3 | -| ir.cpp:1427:23:1427:48 | Unary | r1427_6 | -| ir.cpp:1427:23:1427:52 | Left | r1427_9 | -| ir.cpp:1427:23:1427:55 | StoreValue | r1427_13 | -| ir.cpp:1427:23:1427:55 | Unary | r1427_11 | -| ir.cpp:1427:23:1427:55 | Unary | r1427_12 | -| ir.cpp:1427:52:1427:52 | Unary | r1427_8 | -| ir.cpp:1427:54:1427:54 | Right | r1427_10 | -| ir.cpp:1428:11:1428:11 | Address | &:r1428_1 | -| ir.cpp:1428:15:1428:40 | Address | &:r1428_6 | -| ir.cpp:1428:15:1428:40 | CallTarget | func:r1428_2 | -| ir.cpp:1428:15:1428:40 | ChiPartial | partial:m1428_4 | -| ir.cpp:1428:15:1428:40 | ChiTotal | total:m1427_5 | -| ir.cpp:1428:15:1428:40 | SideEffect | ~m1427_5 | -| ir.cpp:1428:15:1428:40 | StoreValue | r1428_3 | -| ir.cpp:1428:15:1428:40 | Unary | r1428_6 | -| ir.cpp:1428:15:1428:44 | Left | r1428_9 | -| ir.cpp:1428:15:1428:47 | Address | &:r1428_11 | -| ir.cpp:1428:15:1428:47 | Load | ~m1428_7 | -| ir.cpp:1428:15:1428:47 | StoreValue | r1428_12 | -| ir.cpp:1428:44:1428:44 | Unary | r1428_8 | -| ir.cpp:1428:46:1428:46 | Right | r1428_10 | -| ir.cpp:1445:6:1445:24 | ChiPartial | partial:m1445_3 | -| ir.cpp:1445:6:1445:24 | ChiTotal | total:m1445_2 | -| ir.cpp:1445:6:1445:24 | SideEffect | ~m1449_10 | -| ir.cpp:1446:14:1446:14 | Address | &:r1446_1 | -| ir.cpp:1446:18:1446:40 | CallTarget | func:r1446_2 | -| ir.cpp:1446:18:1446:40 | ChiPartial | partial:m1446_4 | -| ir.cpp:1446:18:1446:40 | ChiTotal | total:m1445_4 | -| ir.cpp:1446:18:1446:40 | SideEffect | ~m1445_4 | -| ir.cpp:1446:18:1446:40 | StoreValue | r1446_3 | -| ir.cpp:1447:5:1447:5 | Address | &:r1447_10 | -| ir.cpp:1447:9:1447:36 | Address | &:r1447_1 | -| ir.cpp:1447:9:1447:36 | Address | &:r1447_8 | -| ir.cpp:1447:9:1447:36 | Load | ~m1447_6 | -| ir.cpp:1447:9:1447:36 | StoreValue | r1447_9 | -| ir.cpp:1447:9:1447:36 | Unary | r1447_1 | -| ir.cpp:1447:9:1447:36 | Unary | r1447_7 | -| ir.cpp:1447:10:1447:33 | CallTarget | func:r1447_2 | -| ir.cpp:1447:10:1447:33 | ChiPartial | partial:m1447_4 | -| ir.cpp:1447:10:1447:33 | ChiTotal | total:m1446_5 | -| ir.cpp:1447:10:1447:33 | SideEffect | ~m1446_5 | -| ir.cpp:1447:10:1447:33 | StoreValue | r1447_3 | -| ir.cpp:1448:9:1448:9 | Address | &:r1448_1 | -| ir.cpp:1448:13:1448:36 | CallTarget | func:r1448_2 | -| ir.cpp:1448:13:1448:36 | ChiPartial | partial:m1448_4 | -| ir.cpp:1448:13:1448:36 | ChiTotal | total:m1447_5 | -| ir.cpp:1448:13:1448:36 | SideEffect | ~m1447_5 | -| ir.cpp:1448:13:1448:36 | StoreValue | r1448_3 | -| ir.cpp:1448:40:1448:40 | Address | &:r1448_7 | -| ir.cpp:1448:40:1448:40 | Load | ~m1448_6 | -| ir.cpp:1448:40:1448:40 | StoreValue | r1448_8 | -| ir.cpp:1449:11:1449:11 | Address | &:r1449_1 | -| ir.cpp:1449:16:1449:39 | CallTarget | func:r1449_2 | -| ir.cpp:1449:16:1449:39 | ChiPartial | partial:m1449_4 | -| ir.cpp:1449:16:1449:39 | ChiTotal | total:m1448_5 | -| ir.cpp:1449:16:1449:39 | SideEffect | ~m1448_5 | -| ir.cpp:1449:16:1449:39 | StoreValue | r1449_3 | -| ir.cpp:1449:44:1449:44 | Arg(this) | this:r0_11 | -| ir.cpp:1449:44:1449:44 | CallTarget | func:r1449_7 | -| ir.cpp:1449:44:1449:44 | ChiPartial | partial:m1449_9 | -| ir.cpp:1449:44:1449:44 | ChiTotal | total:m1449_5 | -| ir.cpp:1449:44:1449:44 | SideEffect | ~m1449_5 | -| ir.cpp:1449:44:1449:44 | StoreValue | r1449_8 | -| ir.cpp:1453:3:1453:21 | Address | &:r1453_5 | -| ir.cpp:1453:3:1453:21 | Address | &:r1453_5 | -| ir.cpp:1453:3:1453:21 | Address | &:r1453_7 | -| ir.cpp:1453:3:1453:21 | Address | &:r1453_7 | -| ir.cpp:1453:3:1453:21 | ChiPartial | partial:m1453_3 | -| ir.cpp:1453:3:1453:21 | ChiTotal | total:m1453_2 | -| ir.cpp:1453:3:1453:21 | Load | m1453_6 | -| ir.cpp:1453:3:1453:21 | SideEffect | m1453_3 | -| ir.cpp:1453:3:1453:21 | SideEffect | m1453_8 | -| ir.cpp:1459:3:1459:20 | Address | &:r1459_5 | -| ir.cpp:1459:3:1459:20 | Address | &:r1459_5 | -| ir.cpp:1459:3:1459:20 | Address | &:r1459_7 | -| ir.cpp:1459:3:1459:20 | Address | &:r1459_7 | -| ir.cpp:1459:3:1459:20 | ChiPartial | partial:m1459_3 | -| ir.cpp:1459:3:1459:20 | ChiTotal | total:m1459_2 | -| ir.cpp:1459:3:1459:20 | Load | m1459_6 | -| ir.cpp:1459:3:1459:20 | SideEffect | m1459_3 | -| ir.cpp:1459:3:1459:20 | SideEffect | m1460_6 | -| ir.cpp:1459:3:1459:20 | Unary | m1459_6 | -| ir.cpp:1459:26:1459:30 | Address | &:r1459_9 | -| ir.cpp:1459:26:1459:30 | ChiPartial | partial:m1459_11 | -| ir.cpp:1459:26:1459:30 | ChiTotal | total:m1459_8 | -| ir.cpp:1459:26:1459:30 | StoreValue | r1459_10 | -| ir.cpp:1460:5:1460:5 | Address | &:r1460_2 | -| ir.cpp:1460:5:1460:5 | Address | &:r1460_4 | -| ir.cpp:1460:5:1460:5 | Load | m1459_6 | -| ir.cpp:1460:5:1460:5 | Unary | r1460_3 | -| ir.cpp:1460:5:1460:9 | ChiPartial | partial:m1460_5 | -| ir.cpp:1460:5:1460:9 | ChiTotal | total:m1459_12 | -| ir.cpp:1460:9:1460:9 | StoreValue | r1460_1 | -| ir.cpp:1464:6:1464:29 | ChiPartial | partial:m1464_3 | -| ir.cpp:1464:6:1464:29 | ChiTotal | total:m1464_2 | -| ir.cpp:1464:6:1464:29 | SideEffect | m1464_3 | -| ir.cpp:1465:9:1465:10 | Address | &:r1465_1 | -| ir.cpp:1465:9:1465:10 | Left | r1465_1 | -| ir.cpp:1465:9:1465:10 | Left | r1465_1 | -| ir.cpp:1465:16:1465:22 | Address | &:r1465_4 | -| ir.cpp:1465:16:1465:22 | Address | &:r1465_9 | -| ir.cpp:1465:16:1465:22 | Right | r1465_3 | -| ir.cpp:1465:16:1465:22 | Right | r1465_8 | -| ir.cpp:1465:18:1465:18 | ChiPartial | partial:m1465_6 | -| ir.cpp:1465:18:1465:18 | ChiTotal | total:m1465_2 | -| ir.cpp:1465:18:1465:18 | StoreValue | r1465_5 | -| ir.cpp:1465:21:1465:21 | ChiPartial | partial:m1465_11 | -| ir.cpp:1465:21:1465:21 | ChiTotal | total:m1465_7 | -| ir.cpp:1465:21:1465:21 | StoreValue | r1465_10 | -| ir.cpp:1468:15:1468:15 | Address | &:r1468_1 | -| ir.cpp:1468:16:1468:16 | Address | &:r1468_5 | -| ir.cpp:1468:20:1468:20 | Address | &:r1468_6 | -| ir.cpp:1468:26:1468:27 | StoreValue | r1468_3 | -| ir.cpp:1468:26:1468:27 | Unary | r1468_2 | -| ir.cpp:1469:9:1469:10 | Address | &:r1469_2 | -| ir.cpp:1469:9:1469:10 | Address | &:r1469_3 | -| ir.cpp:1469:9:1469:10 | Load | m0_14 | -| ir.cpp:1469:9:1469:14 | ChiPartial | partial:m1469_4 | -| ir.cpp:1469:9:1469:14 | ChiTotal | total:m1465_12 | -| ir.cpp:1469:14:1469:14 | StoreValue | r1469_1 | -| ir.cpp:1470:14:1470:16 | Address | &:r1470_1 | -| ir.cpp:1470:20:1470:21 | Address | &:r1470_2 | -| ir.cpp:1470:20:1470:21 | Load | m0_14 | -| ir.cpp:1470:20:1470:21 | StoreValue | r1470_4 | -| ir.cpp:1470:20:1470:21 | Unary | r1470_3 | -| ir.cpp:1471:13:1471:13 | Address | &:r1471_1 | -| ir.cpp:1471:17:1471:18 | Address | &:r1471_2 | -| ir.cpp:1471:17:1471:18 | Address | &:r1471_3 | -| ir.cpp:1471:17:1471:18 | Load | m0_14 | -| ir.cpp:1471:17:1471:18 | Load | m1469_4 | -| ir.cpp:1471:17:1471:18 | StoreValue | r1471_4 | -| ir.cpp:1475:15:1475:36 | Address | &:r1475_1 | -| ir.cpp:1475:40:1475:41 | StoreValue | r1475_3 | -| ir.cpp:1475:40:1475:41 | Unary | r1475_2 | -| ir.cpp:1476:15:1476:16 | Address | &:r1476_1 | -| ir.cpp:1476:20:1476:41 | Address | &:r1476_2 | -| ir.cpp:1476:20:1476:41 | Left | r1476_5 | -| ir.cpp:1476:20:1476:41 | Load | m1475_4 | -| ir.cpp:1476:20:1476:41 | Unary | r1476_3 | -| ir.cpp:1476:20:1476:41 | Unary | r1476_4 | -| ir.cpp:1476:20:1476:44 | StoreValue | r1476_8 | -| ir.cpp:1476:20:1476:44 | Unary | r1476_7 | -| ir.cpp:1476:43:1476:43 | Right | r1476_6 | -| ir.cpp:1477:15:1477:16 | Address | &:r1477_1 | -| ir.cpp:1477:20:1477:41 | Address | &:r1477_2 | -| ir.cpp:1477:20:1477:41 | Left | r1477_5 | -| ir.cpp:1477:20:1477:41 | Load | m1475_4 | -| ir.cpp:1477:20:1477:41 | Unary | r1477_3 | -| ir.cpp:1477:20:1477:41 | Unary | r1477_4 | -| ir.cpp:1477:20:1477:44 | StoreValue | r1477_8 | -| ir.cpp:1477:20:1477:44 | Unary | r1477_7 | -| ir.cpp:1477:43:1477:43 | Right | r1477_6 | -| ir.cpp:1478:9:1478:10 | Address | &:r1478_2 | -| ir.cpp:1478:9:1478:10 | Address | &:r1478_4 | -| ir.cpp:1478:9:1478:10 | Load | m1477_9 | -| ir.cpp:1478:9:1478:10 | Unary | r1478_3 | -| ir.cpp:1478:9:1478:14 | ChiPartial | partial:m1478_5 | -| ir.cpp:1478:9:1478:14 | ChiTotal | total:m1469_5 | -| ir.cpp:1478:14:1478:14 | StoreValue | r1478_1 | -| ir.cpp:1479:14:1479:16 | Address | &:r1479_1 | -| ir.cpp:1479:20:1479:21 | Address | &:r1479_2 | -| ir.cpp:1479:20:1479:21 | Load | m1477_9 | -| ir.cpp:1479:20:1479:21 | StoreValue | r1479_5 | -| ir.cpp:1479:20:1479:21 | Unary | r1479_3 | -| ir.cpp:1479:20:1479:21 | Unary | r1479_4 | -| ir.cpp:1480:13:1480:13 | Address | &:r1480_1 | -| ir.cpp:1480:17:1480:18 | Address | &:r1480_2 | -| ir.cpp:1480:17:1480:18 | Address | &:r1480_3 | -| ir.cpp:1480:17:1480:18 | Load | m1477_9 | -| ir.cpp:1480:17:1480:18 | Load | m1478_5 | -| ir.cpp:1480:17:1480:18 | StoreValue | r1480_4 | -| ir.cpp:1484:8:1484:8 | Address | &:r1484_5 | -| ir.cpp:1484:8:1484:8 | Address | &:r1484_5 | -| ir.cpp:1484:8:1484:8 | Address | &:r1484_7 | -| ir.cpp:1484:8:1484:8 | Address | &:r1484_7 | -| ir.cpp:1484:8:1484:8 | ChiPartial | partial:m1484_3 | -| ir.cpp:1484:8:1484:8 | ChiTotal | total:m1484_2 | -| ir.cpp:1484:8:1484:8 | Load | m1484_6 | -| ir.cpp:1484:8:1484:8 | SideEffect | m1484_3 | -| ir.cpp:1484:8:1484:8 | SideEffect | m1484_8 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_5 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_5 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_5 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_5 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_7 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_7 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_7 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_7 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_9 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_10 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_13 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_17 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_18 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_21 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_25 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_26 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_29 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_33 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_34 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_37 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_41 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_42 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_45 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_49 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_50 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_53 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_57 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_58 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_61 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_65 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_66 | -| ir.cpp:1488:8:1488:8 | Address | &:r1488_69 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_3 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_3 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_15 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_23 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_31 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_39 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_47 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_55 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_63 | -| ir.cpp:1488:8:1488:8 | ChiPartial | partial:m1488_71 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_2 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_2 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_8 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_16 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_24 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_32 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_40 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_48 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_56 | -| ir.cpp:1488:8:1488:8 | ChiTotal | total:m1488_64 | -| ir.cpp:1488:8:1488:8 | Load | m0_2 | -| ir.cpp:1488:8:1488:8 | Load | m0_2 | -| ir.cpp:1488:8:1488:8 | Load | m0_2 | -| ir.cpp:1488:8:1488:8 | Load | m0_2 | -| ir.cpp:1488:8:1488:8 | Load | m0_2 | -| ir.cpp:1488:8:1488:8 | Load | m0_2 | -| ir.cpp:1488:8:1488:8 | Load | m0_2 | -| ir.cpp:1488:8:1488:8 | Load | m0_2 | -| ir.cpp:1488:8:1488:8 | Load | m1488_6 | -| ir.cpp:1488:8:1488:8 | Load | m1488_6 | -| ir.cpp:1488:8:1488:8 | Load | ~m0_4 | -| ir.cpp:1488:8:1488:8 | Load | ~m0_4 | -| ir.cpp:1488:8:1488:8 | Load | ~m0_4 | -| ir.cpp:1488:8:1488:8 | Load | ~m0_4 | -| ir.cpp:1488:8:1488:8 | Load | ~m0_4 | -| ir.cpp:1488:8:1488:8 | Load | ~m0_4 | -| ir.cpp:1488:8:1488:8 | Load | ~m0_4 | -| ir.cpp:1488:8:1488:8 | Load | ~m0_4 | -| ir.cpp:1488:8:1488:8 | SideEffect | m1488_3 | -| ir.cpp:1488:8:1488:8 | SideEffect | m1488_3 | -| ir.cpp:1488:8:1488:8 | SideEffect | m1488_8 | -| ir.cpp:1488:8:1488:8 | SideEffect | m1488_72 | -| ir.cpp:1488:8:1488:8 | StoreValue | r1488_14 | -| ir.cpp:1488:8:1488:8 | StoreValue | r1488_22 | -| ir.cpp:1488:8:1488:8 | StoreValue | r1488_30 | -| ir.cpp:1488:8:1488:8 | StoreValue | r1488_38 | -| ir.cpp:1488:8:1488:8 | StoreValue | r1488_46 | -| ir.cpp:1488:8:1488:8 | StoreValue | r1488_54 | -| ir.cpp:1488:8:1488:8 | StoreValue | r1488_62 | -| ir.cpp:1488:8:1488:8 | StoreValue | r1488_70 | -| ir.cpp:1488:8:1488:8 | Unary | m1488_6 | -| ir.cpp:1488:8:1488:8 | Unary | m1488_6 | -| ir.cpp:1488:8:1488:8 | Unary | m1488_6 | -| ir.cpp:1488:8:1488:8 | Unary | m1488_6 | -| ir.cpp:1488:8:1488:8 | Unary | m1488_6 | -| ir.cpp:1488:8:1488:8 | Unary | m1488_6 | -| ir.cpp:1488:8:1488:8 | Unary | m1488_6 | -| ir.cpp:1488:8:1488:8 | Unary | m1488_6 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_11 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_12 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_19 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_20 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_27 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_28 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_35 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_36 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_43 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_44 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_51 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_52 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_59 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_60 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_67 | -| ir.cpp:1488:8:1488:8 | Unary | r1488_68 | -| ir.cpp:1501:6:1501:35 | ChiPartial | partial:m1501_3 | -| ir.cpp:1501:6:1501:35 | ChiTotal | total:m1501_2 | -| ir.cpp:1501:6:1501:35 | SideEffect | ~m1527_7 | -| ir.cpp:1502:39:1502:39 | Address | &:r1502_1 | -| ir.cpp:1502:39:1502:39 | Address | &:r1502_1 | -| ir.cpp:1502:39:1502:39 | Arg(this) | this:r1502_1 | -| ir.cpp:1502:39:1502:39 | CallTarget | func:r1502_3 | -| ir.cpp:1502:39:1502:39 | ChiPartial | partial:m1502_5 | -| ir.cpp:1502:39:1502:39 | ChiPartial | partial:m1502_7 | -| ir.cpp:1502:39:1502:39 | ChiTotal | total:m1501_4 | -| ir.cpp:1502:39:1502:39 | ChiTotal | total:m1502_2 | -| ir.cpp:1502:39:1502:39 | SideEffect | ~m1501_4 | -| ir.cpp:1505:14:1505:14 | Address | &:r1505_1 | -| ir.cpp:1505:15:1505:15 | Address | &:r1505_5 | -| ir.cpp:1505:18:1505:18 | Address | &:r1505_9 | -| ir.cpp:1505:21:1505:21 | Address | &:r1505_13 | -| ir.cpp:1505:24:1505:24 | Address | &:r1505_17 | -| ir.cpp:1505:27:1505:27 | Address | &:r1505_23 | -| ir.cpp:1505:30:1505:30 | Address | &:r1505_27 | -| ir.cpp:1505:34:1505:34 | Address | &:r1505_31 | -| ir.cpp:1505:41:1505:41 | Address | &:r1505_37 | -| ir.cpp:1505:46:1505:46 | Address | &:r1505_2 | -| ir.cpp:1505:46:1505:46 | Load | m1502_8 | -| ir.cpp:1505:46:1505:46 | StoreValue | r1505_3 | -| ir.cpp:1505:47:1505:47 | Address | &:r1505_19 | -| ir.cpp:1505:47:1505:47 | Address | &:r1505_33 | -| ir.cpp:1505:47:1505:47 | Load | ~m1505_4 | -| ir.cpp:1505:47:1505:47 | Load | ~m1505_4 | -| ir.cpp:1505:47:1505:47 | StoreValue | r1505_7 | -| ir.cpp:1505:47:1505:47 | StoreValue | r1505_11 | -| ir.cpp:1505:47:1505:47 | StoreValue | r1505_15 | -| ir.cpp:1505:47:1505:47 | StoreValue | r1505_21 | -| ir.cpp:1505:47:1505:47 | StoreValue | r1505_25 | -| ir.cpp:1505:47:1505:47 | StoreValue | r1505_29 | -| ir.cpp:1505:47:1505:47 | StoreValue | r1505_35 | -| ir.cpp:1505:47:1505:47 | StoreValue | r1505_39 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_6 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_10 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_14 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_18 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_20 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_24 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_28 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_32 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_34 | -| ir.cpp:1505:47:1505:47 | Unary | r1505_38 | -| ir.cpp:1506:9:1506:9 | Address | &:r1506_2 | -| ir.cpp:1506:9:1506:9 | Address | &:r1506_3 | -| ir.cpp:1506:9:1506:9 | Load | m1505_12 | -| ir.cpp:1506:9:1506:15 | ChiPartial | partial:m1506_4 | -| ir.cpp:1506:9:1506:15 | ChiTotal | total:m1505_4 | -| ir.cpp:1506:13:1506:15 | StoreValue | r1506_1 | -| ir.cpp:1507:17:1507:18 | Address | &:r1507_1 | -| ir.cpp:1507:22:1507:22 | Address | &:r1507_2 | -| ir.cpp:1507:22:1507:22 | Load | m1505_12 | -| ir.cpp:1507:22:1507:22 | StoreValue | r1507_4 | -| ir.cpp:1507:22:1507:22 | Unary | r1507_3 | -| ir.cpp:1508:13:1508:13 | Address | &:r1508_1 | -| ir.cpp:1508:17:1508:17 | Address | &:r1508_2 | -| ir.cpp:1508:17:1508:17 | Address | &:r1508_3 | -| ir.cpp:1508:17:1508:17 | Load | m1505_8 | -| ir.cpp:1508:17:1508:17 | Load | ~m1505_4 | -| ir.cpp:1508:17:1508:17 | StoreValue | r1508_4 | -| ir.cpp:1509:9:1509:9 | Address | &:r1509_2 | -| ir.cpp:1509:9:1509:9 | Address | &:r1509_3 | -| ir.cpp:1509:9:1509:9 | Load | m1505_22 | -| ir.cpp:1509:9:1509:13 | ChiPartial | partial:m1509_4 | -| ir.cpp:1509:9:1509:13 | ChiTotal | total:m1502_6 | -| ir.cpp:1509:13:1509:13 | StoreValue | r1509_1 | -| ir.cpp:1510:9:1510:10 | Address | &:r1510_5 | -| ir.cpp:1510:9:1510:14 | ChiPartial | partial:m1510_6 | -| ir.cpp:1510:9:1510:14 | ChiTotal | total:m1509_5 | -| ir.cpp:1510:10:1510:10 | Address | &:r1510_2 | -| ir.cpp:1510:10:1510:10 | Address | &:r1510_3 | -| ir.cpp:1510:10:1510:10 | Load | m1505_26 | -| ir.cpp:1510:10:1510:10 | Load | ~m1505_4 | -| ir.cpp:1510:10:1510:10 | Unary | r1510_4 | -| ir.cpp:1510:14:1510:14 | StoreValue | r1510_1 | -| ir.cpp:1511:14:1511:15 | Address | &:r1511_1 | -| ir.cpp:1511:19:1511:19 | Address | &:r1511_2 | -| ir.cpp:1511:19:1511:19 | Load | m1505_22 | -| ir.cpp:1511:19:1511:19 | StoreValue | r1511_4 | -| ir.cpp:1511:19:1511:19 | Unary | r1511_3 | -| ir.cpp:1512:14:1512:15 | Address | &:r1512_1 | -| ir.cpp:1512:19:1512:20 | StoreValue | r1512_4 | -| ir.cpp:1512:20:1512:20 | Address | &:r1512_2 | -| ir.cpp:1512:20:1512:20 | Load | m1505_22 | -| ir.cpp:1512:20:1512:20 | Unary | r1512_3 | -| ir.cpp:1513:13:1513:13 | Address | &:r1513_1 | -| ir.cpp:1513:17:1513:17 | Address | &:r1513_2 | -| ir.cpp:1513:17:1513:17 | Address | &:r1513_3 | -| ir.cpp:1513:17:1513:17 | Load | m1505_22 | -| ir.cpp:1513:17:1513:17 | Load | ~m1510_7 | -| ir.cpp:1513:17:1513:17 | StoreValue | r1513_4 | -| ir.cpp:1517:14:1517:35 | Address | &:r1517_1 | -| ir.cpp:1517:39:1517:39 | Address | &:r1517_2 | -| ir.cpp:1517:39:1517:39 | Load | m1502_8 | -| ir.cpp:1517:39:1517:39 | StoreValue | r1517_3 | -| ir.cpp:1518:15:1518:15 | Address | &:r1518_1 | -| ir.cpp:1518:19:1518:40 | Unary | r1518_2 | -| ir.cpp:1518:19:1518:42 | StoreValue | r1518_4 | -| ir.cpp:1518:42:1518:42 | Unary | r1518_3 | -| ir.cpp:1519:15:1519:15 | Address | &:r1519_1 | -| ir.cpp:1519:19:1519:40 | Unary | r1519_2 | -| ir.cpp:1519:19:1519:42 | StoreValue | r1519_4 | -| ir.cpp:1519:42:1519:42 | Unary | r1519_3 | -| ir.cpp:1521:15:1521:15 | Address | &:r1521_1 | -| ir.cpp:1521:19:1521:40 | Unary | r1521_2 | -| ir.cpp:1521:19:1521:42 | StoreValue | r1521_6 | -| ir.cpp:1521:19:1521:42 | Unary | r1521_5 | -| ir.cpp:1521:42:1521:42 | Address | &:r1521_3 | -| ir.cpp:1521:42:1521:42 | Load | ~m1517_4 | -| ir.cpp:1521:42:1521:42 | Unary | r1521_4 | -| ir.cpp:1522:15:1522:15 | Address | &:r1522_1 | -| ir.cpp:1522:19:1522:40 | Unary | r1522_2 | -| ir.cpp:1522:19:1522:42 | StoreValue | r1522_4 | -| ir.cpp:1522:42:1522:42 | Unary | r1522_3 | -| ir.cpp:1523:9:1523:9 | Address | &:r1523_2 | -| ir.cpp:1523:9:1523:9 | Address | &:r1523_4 | -| ir.cpp:1523:9:1523:9 | Load | m1519_5 | -| ir.cpp:1523:9:1523:9 | Unary | r1523_3 | -| ir.cpp:1523:9:1523:15 | ChiPartial | partial:m1523_5 | -| ir.cpp:1523:9:1523:15 | ChiTotal | total:m1517_4 | -| ir.cpp:1523:13:1523:15 | StoreValue | r1523_1 | -| ir.cpp:1524:17:1524:18 | Address | &:r1524_1 | -| ir.cpp:1524:22:1524:22 | Address | &:r1524_2 | -| ir.cpp:1524:22:1524:22 | Load | m1519_5 | -| ir.cpp:1524:22:1524:22 | StoreValue | r1524_5 | -| ir.cpp:1524:22:1524:22 | Unary | r1524_3 | -| ir.cpp:1524:22:1524:22 | Unary | r1524_4 | -| ir.cpp:1525:13:1525:13 | Address | &:r1525_1 | -| ir.cpp:1525:17:1525:17 | Address | &:r1525_2 | -| ir.cpp:1525:17:1525:17 | Address | &:r1525_3 | -| ir.cpp:1525:17:1525:17 | Load | m1518_5 | -| ir.cpp:1525:17:1525:17 | Load | ~m1517_4 | -| ir.cpp:1525:17:1525:17 | StoreValue | r1525_4 | -| ir.cpp:1526:9:1526:9 | Address | &:r1526_2 | -| ir.cpp:1526:9:1526:9 | Address | &:r1526_4 | -| ir.cpp:1526:9:1526:9 | Load | m1521_7 | -| ir.cpp:1526:9:1526:9 | Unary | r1526_3 | -| ir.cpp:1526:9:1526:13 | ChiPartial | partial:m1526_5 | -| ir.cpp:1526:9:1526:13 | ChiTotal | total:m1510_7 | -| ir.cpp:1526:13:1526:13 | StoreValue | r1526_1 | -| ir.cpp:1527:9:1527:10 | Address | &:r1527_5 | -| ir.cpp:1527:9:1527:14 | ChiPartial | partial:m1527_6 | -| ir.cpp:1527:9:1527:14 | ChiTotal | total:m1526_6 | -| ir.cpp:1527:10:1527:10 | Address | &:r1527_2 | -| ir.cpp:1527:10:1527:10 | Address | &:r1527_3 | -| ir.cpp:1527:10:1527:10 | Load | m1522_5 | -| ir.cpp:1527:10:1527:10 | Load | ~m1517_4 | -| ir.cpp:1527:10:1527:10 | Unary | r1527_4 | -| ir.cpp:1527:14:1527:14 | StoreValue | r1527_1 | -| ir.cpp:1528:14:1528:15 | Address | &:r1528_1 | -| ir.cpp:1528:19:1528:19 | Address | &:r1528_2 | -| ir.cpp:1528:19:1528:19 | Load | m1521_7 | -| ir.cpp:1528:19:1528:19 | StoreValue | r1528_5 | -| ir.cpp:1528:19:1528:19 | Unary | r1528_3 | -| ir.cpp:1528:19:1528:19 | Unary | r1528_4 | -| ir.cpp:1529:14:1529:15 | Address | &:r1529_1 | -| ir.cpp:1529:19:1529:20 | StoreValue | r1529_5 | -| ir.cpp:1529:20:1529:20 | Address | &:r1529_2 | -| ir.cpp:1529:20:1529:20 | Load | m1521_7 | -| ir.cpp:1529:20:1529:20 | Unary | r1529_3 | -| ir.cpp:1529:20:1529:20 | Unary | r1529_4 | -| ir.cpp:1530:13:1530:13 | Address | &:r1530_1 | -| ir.cpp:1530:17:1530:17 | Address | &:r1530_2 | -| ir.cpp:1530:17:1530:17 | Address | &:r1530_3 | -| ir.cpp:1530:17:1530:17 | Load | m1521_7 | -| ir.cpp:1530:17:1530:17 | Load | ~m1527_7 | -| ir.cpp:1530:17:1530:17 | StoreValue | r1530_4 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_5 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_5 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_5 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_5 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_7 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_7 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_7 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_7 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_9 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_10 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_13 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_17 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_18 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_21 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_25 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_26 | -| ir.cpp:1541:8:1541:8 | Address | &:r1541_29 | -| ir.cpp:1541:8:1541:8 | ChiPartial | partial:m1541_3 | -| ir.cpp:1541:8:1541:8 | ChiPartial | partial:m1541_3 | -| ir.cpp:1541:8:1541:8 | ChiPartial | partial:m1541_15 | -| ir.cpp:1541:8:1541:8 | ChiPartial | partial:m1541_23 | -| ir.cpp:1541:8:1541:8 | ChiPartial | partial:m1541_31 | -| ir.cpp:1541:8:1541:8 | ChiTotal | total:m1541_2 | -| ir.cpp:1541:8:1541:8 | ChiTotal | total:m1541_2 | -| ir.cpp:1541:8:1541:8 | ChiTotal | total:m1541_8 | -| ir.cpp:1541:8:1541:8 | ChiTotal | total:m1541_16 | -| ir.cpp:1541:8:1541:8 | ChiTotal | total:m1541_24 | -| ir.cpp:1541:8:1541:8 | Load | m0_2 | -| ir.cpp:1541:8:1541:8 | Load | m0_2 | -| ir.cpp:1541:8:1541:8 | Load | m0_2 | -| ir.cpp:1541:8:1541:8 | Load | m1541_6 | -| ir.cpp:1541:8:1541:8 | Load | m1541_6 | -| ir.cpp:1541:8:1541:8 | Load | ~m0_4 | -| ir.cpp:1541:8:1541:8 | Load | ~m0_4 | -| ir.cpp:1541:8:1541:8 | Load | ~m0_4 | -| ir.cpp:1541:8:1541:8 | SideEffect | m1541_3 | -| ir.cpp:1541:8:1541:8 | SideEffect | m1541_3 | -| ir.cpp:1541:8:1541:8 | SideEffect | m1541_8 | -| ir.cpp:1541:8:1541:8 | SideEffect | m1541_32 | -| ir.cpp:1541:8:1541:8 | StoreValue | r1541_14 | -| ir.cpp:1541:8:1541:8 | StoreValue | r1541_22 | -| ir.cpp:1541:8:1541:8 | StoreValue | r1541_30 | -| ir.cpp:1541:8:1541:8 | Unary | m1541_6 | -| ir.cpp:1541:8:1541:8 | Unary | m1541_6 | -| ir.cpp:1541:8:1541:8 | Unary | m1541_6 | -| ir.cpp:1541:8:1541:8 | Unary | r1541_11 | -| ir.cpp:1541:8:1541:8 | Unary | r1541_12 | -| ir.cpp:1541:8:1541:8 | Unary | r1541_19 | -| ir.cpp:1541:8:1541:8 | Unary | r1541_20 | -| ir.cpp:1541:8:1541:8 | Unary | r1541_27 | -| ir.cpp:1541:8:1541:8 | Unary | r1541_28 | -| ir.cpp:1569:60:1569:95 | Address | &:r1569_5 | -| ir.cpp:1569:60:1569:95 | Address | &:r1569_5 | -| ir.cpp:1569:60:1569:95 | Address | &:r1569_7 | -| ir.cpp:1569:60:1569:95 | Address | &:r1569_7 | -| ir.cpp:1569:60:1569:95 | Address | &:r1569_10 | -| ir.cpp:1569:60:1569:95 | ChiPartial | partial:m1569_3 | -| ir.cpp:1569:60:1569:95 | ChiTotal | total:m1569_2 | -| ir.cpp:1569:60:1569:95 | Load | m0_2 | -| ir.cpp:1569:60:1569:95 | Load | m1569_6 | -| ir.cpp:1569:60:1569:95 | SideEffect | m1569_3 | -| ir.cpp:1569:60:1569:95 | SideEffect | m1569_8 | -| ir.cpp:1570:5:1570:13 | Address | &:r1570_1 | -| ir.cpp:1570:12:1570:12 | Address | &:r1570_2 | -| ir.cpp:1570:12:1570:12 | Load | m1569_6 | -| ir.cpp:1570:12:1570:12 | Unary | r1570_3 | -| ir.cpp:1570:12:1570:12 | Unary | r1570_4 | -| ir.cpp:1573:60:1573:95 | Address | &:r1573_5 | -| ir.cpp:1573:60:1573:95 | Address | &:r1573_5 | -| ir.cpp:1573:60:1573:95 | Address | &:r1573_7 | -| ir.cpp:1573:60:1573:95 | Address | &:r1573_7 | -| ir.cpp:1573:60:1573:95 | Address | &:r1573_10 | -| ir.cpp:1573:60:1573:95 | ChiPartial | partial:m1573_3 | -| ir.cpp:1573:60:1573:95 | ChiTotal | total:m1573_2 | -| ir.cpp:1573:60:1573:95 | Load | m0_2 | -| ir.cpp:1573:60:1573:95 | Load | m1573_6 | -| ir.cpp:1573:60:1573:95 | SideEffect | m1573_3 | -| ir.cpp:1573:60:1573:95 | SideEffect | m1573_8 | -| ir.cpp:1574:5:1574:13 | Address | &:r1574_1 | -| ir.cpp:1574:12:1574:12 | Address | &:r1574_2 | -| ir.cpp:1574:12:1574:12 | Load | m1573_6 | -| ir.cpp:1574:12:1574:12 | Unary | r1574_3 | -| ir.cpp:1574:12:1574:12 | Unary | r1574_4 | -| ir.cpp:1577:60:1577:95 | Address | &:r1577_5 | -| ir.cpp:1577:60:1577:95 | Address | &:r1577_5 | -| ir.cpp:1577:60:1577:95 | Address | &:r1577_7 | -| ir.cpp:1577:60:1577:95 | Address | &:r1577_7 | -| ir.cpp:1577:60:1577:95 | Address | &:r1577_10 | -| ir.cpp:1577:60:1577:95 | ChiPartial | partial:m1577_3 | -| ir.cpp:1577:60:1577:95 | ChiTotal | total:m1577_2 | -| ir.cpp:1577:60:1577:95 | Load | m1577_6 | -| ir.cpp:1577:60:1577:95 | Load | m1578_8 | -| ir.cpp:1577:60:1577:95 | SideEffect | m1577_3 | -| ir.cpp:1577:60:1577:95 | SideEffect | m1577_8 | -| ir.cpp:1578:5:1578:13 | Address | &:r1578_1 | -| ir.cpp:1578:12:1578:12 | Address | &:r1578_2 | -| ir.cpp:1578:12:1578:12 | Address | &:r1578_4 | -| ir.cpp:1578:12:1578:12 | Load | m1577_6 | -| ir.cpp:1578:12:1578:12 | Load | ~m1577_8 | -| ir.cpp:1578:12:1578:12 | StoreValue | r1578_7 | -| ir.cpp:1578:12:1578:12 | Unary | r1578_3 | -| ir.cpp:1578:12:1578:12 | Unary | r1578_5 | -| ir.cpp:1578:12:1578:12 | Unary | r1578_6 | -| ir.cpp:1581:6:1581:37 | ChiPartial | partial:m1581_3 | -| ir.cpp:1581:6:1581:37 | ChiTotal | total:m1581_2 | -| ir.cpp:1581:6:1581:37 | SideEffect | ~m1602_6 | -| ir.cpp:1582:34:1582:34 | Address | &:r1582_1 | -| ir.cpp:1582:34:1582:34 | Address | &:r1582_1 | -| ir.cpp:1582:34:1582:34 | Arg(this) | this:r1582_1 | -| ir.cpp:1582:34:1582:34 | CallTarget | func:r1582_3 | -| ir.cpp:1582:34:1582:34 | ChiPartial | partial:m1582_5 | -| ir.cpp:1582:34:1582:34 | ChiPartial | partial:m1582_7 | -| ir.cpp:1582:34:1582:34 | ChiTotal | total:m1581_4 | -| ir.cpp:1582:34:1582:34 | ChiTotal | total:m1582_2 | -| ir.cpp:1582:34:1582:34 | SideEffect | ~m1581_4 | -| ir.cpp:1585:14:1585:14 | Address | &:r1585_1 | -| ir.cpp:1585:14:1585:14 | Address | &:r1585_6 | -| ir.cpp:1585:14:1585:14 | Address | &:r1585_6 | -| ir.cpp:1585:14:1585:14 | Address | &:r1585_18 | -| ir.cpp:1585:14:1585:14 | Address | &:r1585_18 | -| ir.cpp:1585:14:1585:14 | Address | &:r1585_30 | -| ir.cpp:1585:14:1585:14 | Address | &:r1585_30 | -| ir.cpp:1585:14:1585:14 | Arg(this) | this:r1585_6 | -| ir.cpp:1585:14:1585:14 | Arg(this) | this:r1585_18 | -| ir.cpp:1585:14:1585:14 | Arg(this) | this:r1585_30 | -| ir.cpp:1585:14:1585:14 | CallTarget | func:r1585_7 | -| ir.cpp:1585:14:1585:14 | CallTarget | func:r1585_19 | -| ir.cpp:1585:14:1585:14 | CallTarget | func:r1585_31 | -| ir.cpp:1585:14:1585:14 | ChiPartial | partial:m1585_9 | -| ir.cpp:1585:14:1585:14 | ChiPartial | partial:m1585_12 | -| ir.cpp:1585:14:1585:14 | ChiPartial | partial:m1585_21 | -| ir.cpp:1585:14:1585:14 | ChiPartial | partial:m1585_24 | -| ir.cpp:1585:14:1585:14 | ChiPartial | partial:m1585_33 | -| ir.cpp:1585:14:1585:14 | ChiPartial | partial:m1585_36 | -| ir.cpp:1585:14:1585:14 | ChiTotal | total:m1582_6 | -| ir.cpp:1585:14:1585:14 | ChiTotal | total:m1585_4 | -| ir.cpp:1585:14:1585:14 | ChiTotal | total:m1585_10 | -| ir.cpp:1585:14:1585:14 | ChiTotal | total:m1585_13 | -| ir.cpp:1585:14:1585:14 | ChiTotal | total:m1585_22 | -| ir.cpp:1585:14:1585:14 | ChiTotal | total:m1585_25 | -| ir.cpp:1585:14:1585:14 | SideEffect | m1585_4 | -| ir.cpp:1585:14:1585:14 | SideEffect | m1585_13 | -| ir.cpp:1585:14:1585:14 | SideEffect | m1585_25 | -| ir.cpp:1585:14:1585:14 | SideEffect | ~m1582_6 | -| ir.cpp:1585:14:1585:14 | SideEffect | ~m1585_10 | -| ir.cpp:1585:14:1585:14 | SideEffect | ~m1585_22 | -| ir.cpp:1585:14:1585:14 | Unary | r1585_8 | -| ir.cpp:1585:14:1585:14 | Unary | r1585_20 | -| ir.cpp:1585:14:1585:14 | Unary | r1585_32 | -| ir.cpp:1585:14:1585:27 | StoreValue | r1585_15 | -| ir.cpp:1585:14:1585:27 | StoreValue | r1585_27 | -| ir.cpp:1585:14:1585:27 | StoreValue | r1585_39 | -| ir.cpp:1585:14:1585:27 | Unary | r1585_14 | -| ir.cpp:1585:14:1585:27 | Unary | r1585_26 | -| ir.cpp:1585:14:1585:27 | Unary | r1585_38 | -| ir.cpp:1585:15:1585:15 | Address | &:r1585_5 | -| ir.cpp:1585:18:1585:18 | Address | &:r1585_17 | -| ir.cpp:1585:21:1585:21 | Address | &:r1585_29 | -| ir.cpp:1585:26:1585:26 | Address | &:r1585_2 | -| ir.cpp:1585:26:1585:26 | Load | m1582_8 | -| ir.cpp:1585:26:1585:26 | StoreValue | r1585_3 | -| ir.cpp:1586:9:1586:9 | Address | &:r1586_2 | -| ir.cpp:1586:9:1586:9 | Address | &:r1586_4 | -| ir.cpp:1586:9:1586:9 | Load | m1585_28 | -| ir.cpp:1586:9:1586:9 | Unary | r1586_3 | -| ir.cpp:1586:9:1586:15 | ChiPartial | partial:m1586_5 | -| ir.cpp:1586:9:1586:15 | ChiTotal | total:m1585_37 | -| ir.cpp:1586:13:1586:15 | StoreValue | r1586_1 | -| ir.cpp:1587:17:1587:18 | Address | &:r1587_1 | -| ir.cpp:1587:22:1587:22 | Address | &:r1587_2 | -| ir.cpp:1587:22:1587:22 | Load | m1585_28 | -| ir.cpp:1587:22:1587:22 | StoreValue | r1587_5 | -| ir.cpp:1587:22:1587:22 | Unary | r1587_3 | -| ir.cpp:1587:22:1587:22 | Unary | r1587_4 | -| ir.cpp:1588:13:1588:13 | Address | &:r1588_1 | -| ir.cpp:1588:17:1588:17 | Address | &:r1588_2 | -| ir.cpp:1588:17:1588:17 | Address | &:r1588_3 | -| ir.cpp:1588:17:1588:17 | Load | m1585_16 | -| ir.cpp:1588:17:1588:17 | Load | ~m1585_37 | -| ir.cpp:1588:17:1588:17 | StoreValue | r1588_4 | -| ir.cpp:1589:9:1589:9 | Address | &:r1589_2 | -| ir.cpp:1589:9:1589:9 | Address | &:r1589_4 | -| ir.cpp:1589:9:1589:9 | Load | m1585_40 | -| ir.cpp:1589:9:1589:9 | Unary | r1589_3 | -| ir.cpp:1589:9:1589:13 | ChiPartial | partial:m1589_5 | -| ir.cpp:1589:9:1589:13 | ChiTotal | total:m1585_34 | -| ir.cpp:1589:13:1589:13 | StoreValue | r1589_1 | -| ir.cpp:1590:14:1590:15 | Address | &:r1590_1 | -| ir.cpp:1590:19:1590:19 | Address | &:r1590_2 | -| ir.cpp:1590:19:1590:19 | Load | m1585_40 | -| ir.cpp:1590:19:1590:19 | StoreValue | r1590_5 | -| ir.cpp:1590:19:1590:19 | Unary | r1590_3 | -| ir.cpp:1590:19:1590:19 | Unary | r1590_4 | -| ir.cpp:1591:13:1591:13 | Address | &:r1591_1 | -| ir.cpp:1591:17:1591:17 | Address | &:r1591_2 | -| ir.cpp:1591:17:1591:17 | Address | &:r1591_3 | -| ir.cpp:1591:17:1591:17 | Load | m1585_40 | -| ir.cpp:1591:17:1591:17 | Load | ~m1589_6 | -| ir.cpp:1591:17:1591:17 | StoreValue | r1591_4 | -| ir.cpp:1595:14:1595:35 | Address | &:r1595_1 | -| ir.cpp:1595:39:1595:39 | Address | &:r1595_2 | -| ir.cpp:1595:39:1595:39 | Load | m1582_8 | -| ir.cpp:1595:39:1595:39 | StoreValue | r1595_3 | -| ir.cpp:1596:15:1596:15 | Address | &:r1596_1 | -| ir.cpp:1596:19:1596:40 | Address | &:r1596_2 | -| ir.cpp:1596:19:1596:40 | Address | &:r1596_2 | -| ir.cpp:1596:19:1596:40 | Arg(this) | this:r1596_2 | -| ir.cpp:1596:19:1596:40 | ChiPartial | partial:m1596_8 | -| ir.cpp:1596:19:1596:40 | ChiTotal | total:m1595_4 | -| ir.cpp:1596:19:1596:40 | SideEffect | m1595_4 | -| ir.cpp:1596:42:1596:47 | CallTarget | func:r1596_3 | -| ir.cpp:1596:42:1596:47 | ChiPartial | partial:m1596_5 | -| ir.cpp:1596:42:1596:47 | ChiTotal | total:m1589_6 | -| ir.cpp:1596:42:1596:47 | SideEffect | ~m1589_6 | -| ir.cpp:1596:42:1596:47 | Unary | r1596_4 | -| ir.cpp:1596:48:1596:50 | StoreValue | r1596_11 | -| ir.cpp:1596:48:1596:50 | Unary | r1596_10 | -| ir.cpp:1597:15:1597:15 | Address | &:r1597_1 | -| ir.cpp:1597:19:1597:40 | Address | &:r1597_2 | -| ir.cpp:1597:19:1597:40 | Address | &:r1597_2 | -| ir.cpp:1597:19:1597:40 | Arg(this) | this:r1597_2 | -| ir.cpp:1597:19:1597:40 | ChiPartial | partial:m1597_8 | -| ir.cpp:1597:19:1597:40 | ChiTotal | total:m1596_9 | -| ir.cpp:1597:19:1597:40 | SideEffect | m1596_9 | -| ir.cpp:1597:42:1597:47 | CallTarget | func:r1597_3 | -| ir.cpp:1597:42:1597:47 | ChiPartial | partial:m1597_5 | -| ir.cpp:1597:42:1597:47 | ChiTotal | total:m1596_6 | -| ir.cpp:1597:42:1597:47 | SideEffect | ~m1596_6 | -| ir.cpp:1597:42:1597:47 | Unary | r1597_4 | -| ir.cpp:1597:48:1597:50 | StoreValue | r1597_11 | -| ir.cpp:1597:48:1597:50 | Unary | r1597_10 | -| ir.cpp:1598:15:1598:15 | Address | &:r1598_1 | -| ir.cpp:1598:19:1598:40 | Address | &:r1598_2 | -| ir.cpp:1598:19:1598:40 | Address | &:r1598_2 | -| ir.cpp:1598:19:1598:40 | Arg(this) | this:r1598_2 | -| ir.cpp:1598:19:1598:40 | ChiPartial | partial:m1598_8 | -| ir.cpp:1598:19:1598:40 | ChiTotal | total:m1597_9 | -| ir.cpp:1598:19:1598:40 | SideEffect | m1597_9 | -| ir.cpp:1598:42:1598:47 | CallTarget | func:r1598_3 | -| ir.cpp:1598:42:1598:47 | ChiPartial | partial:m1598_5 | -| ir.cpp:1598:42:1598:47 | ChiTotal | total:m1597_6 | -| ir.cpp:1598:42:1598:47 | SideEffect | ~m1597_6 | -| ir.cpp:1598:42:1598:47 | Unary | r1598_4 | -| ir.cpp:1598:48:1598:50 | StoreValue | r1598_11 | -| ir.cpp:1598:48:1598:50 | Unary | r1598_10 | -| ir.cpp:1599:9:1599:9 | Address | &:r1599_2 | -| ir.cpp:1599:9:1599:9 | Address | &:r1599_4 | -| ir.cpp:1599:9:1599:9 | Load | m1597_12 | -| ir.cpp:1599:9:1599:9 | Unary | r1599_3 | -| ir.cpp:1599:9:1599:15 | ChiPartial | partial:m1599_5 | -| ir.cpp:1599:9:1599:15 | ChiTotal | total:m1598_9 | -| ir.cpp:1599:13:1599:15 | StoreValue | r1599_1 | -| ir.cpp:1600:17:1600:18 | Address | &:r1600_1 | -| ir.cpp:1600:22:1600:22 | Address | &:r1600_2 | -| ir.cpp:1600:22:1600:22 | Load | m1597_12 | -| ir.cpp:1600:22:1600:22 | StoreValue | r1600_5 | -| ir.cpp:1600:22:1600:22 | Unary | r1600_3 | -| ir.cpp:1600:22:1600:22 | Unary | r1600_4 | -| ir.cpp:1601:13:1601:13 | Address | &:r1601_1 | -| ir.cpp:1601:17:1601:17 | Address | &:r1601_2 | -| ir.cpp:1601:17:1601:17 | Address | &:r1601_3 | -| ir.cpp:1601:17:1601:17 | Load | m1596_12 | -| ir.cpp:1601:17:1601:17 | Load | ~m1598_9 | -| ir.cpp:1601:17:1601:17 | StoreValue | r1601_4 | -| ir.cpp:1602:9:1602:9 | Address | &:r1602_2 | -| ir.cpp:1602:9:1602:9 | Address | &:r1602_4 | -| ir.cpp:1602:9:1602:9 | Load | m1598_12 | -| ir.cpp:1602:9:1602:9 | Unary | r1602_3 | -| ir.cpp:1602:9:1602:13 | ChiPartial | partial:m1602_5 | -| ir.cpp:1602:9:1602:13 | ChiTotal | total:m1598_6 | -| ir.cpp:1602:13:1602:13 | StoreValue | r1602_1 | -| ir.cpp:1603:14:1603:15 | Address | &:r1603_1 | -| ir.cpp:1603:19:1603:19 | Address | &:r1603_2 | -| ir.cpp:1603:19:1603:19 | Load | m1598_12 | -| ir.cpp:1603:19:1603:19 | StoreValue | r1603_5 | -| ir.cpp:1603:19:1603:19 | Unary | r1603_3 | -| ir.cpp:1603:19:1603:19 | Unary | r1603_4 | -| ir.cpp:1604:13:1604:13 | Address | &:r1604_1 | -| ir.cpp:1604:17:1604:17 | Address | &:r1604_2 | -| ir.cpp:1604:17:1604:17 | Address | &:r1604_3 | -| ir.cpp:1604:17:1604:17 | Load | m1598_12 | -| ir.cpp:1604:17:1604:17 | Load | ~m1602_6 | -| ir.cpp:1604:17:1604:17 | StoreValue | r1604_4 | -| ir.cpp:1608:8:1608:8 | Address | &:r1608_5 | -| ir.cpp:1608:8:1608:8 | Address | &:r1608_5 | -| ir.cpp:1608:8:1608:8 | Address | &:r1608_7 | -| ir.cpp:1608:8:1608:8 | Address | &:r1608_7 | -| ir.cpp:1608:8:1608:8 | ChiPartial | partial:m1608_3 | -| ir.cpp:1608:8:1608:8 | ChiTotal | total:m1608_2 | -| ir.cpp:1608:8:1608:8 | Load | m1608_6 | -| ir.cpp:1608:8:1608:8 | SideEffect | m1608_3 | -| ir.cpp:1608:8:1608:8 | SideEffect | m1608_8 | -| ir.cpp:1635:61:1635:98 | Address | &:r1635_5 | -| ir.cpp:1635:61:1635:98 | Address | &:r1635_5 | -| ir.cpp:1635:61:1635:98 | Address | &:r1635_7 | -| ir.cpp:1635:61:1635:98 | Address | &:r1635_7 | -| ir.cpp:1635:61:1635:98 | Address | &:r1635_10 | -| ir.cpp:1635:61:1635:98 | ChiPartial | partial:m1635_3 | -| ir.cpp:1635:61:1635:98 | ChiTotal | total:m1635_2 | -| ir.cpp:1635:61:1635:98 | Load | m1635_6 | -| ir.cpp:1635:61:1635:98 | Load | m1636_6 | -| ir.cpp:1635:61:1635:98 | SideEffect | m1635_3 | -| ir.cpp:1635:61:1635:98 | SideEffect | m1635_8 | -| ir.cpp:1636:5:1636:13 | Address | &:r1636_1 | -| ir.cpp:1636:12:1636:12 | Address | &:r1636_2 | -| ir.cpp:1636:12:1636:12 | Address | &:r1636_4 | -| ir.cpp:1636:12:1636:12 | Load | m1635_6 | -| ir.cpp:1636:12:1636:12 | Load | ~m1635_8 | -| ir.cpp:1636:12:1636:12 | StoreValue | r1636_5 | -| ir.cpp:1636:12:1636:12 | Unary | r1636_3 | -| ir.cpp:1639:61:1639:98 | Address | &:r1639_5 | -| ir.cpp:1639:61:1639:98 | Address | &:r1639_5 | -| ir.cpp:1639:61:1639:98 | Address | &:r1639_7 | -| ir.cpp:1639:61:1639:98 | Address | &:r1639_7 | -| ir.cpp:1639:61:1639:98 | Address | &:r1639_10 | -| ir.cpp:1639:61:1639:98 | ChiPartial | partial:m1639_3 | -| ir.cpp:1639:61:1639:98 | ChiTotal | total:m1639_2 | -| ir.cpp:1639:61:1639:98 | Load | m1639_6 | -| ir.cpp:1639:61:1639:98 | Load | m1640_8 | -| ir.cpp:1639:61:1639:98 | SideEffect | m1639_3 | -| ir.cpp:1639:61:1639:98 | SideEffect | m1639_8 | -| ir.cpp:1640:5:1640:13 | Address | &:r1640_1 | -| ir.cpp:1640:12:1640:12 | Address | &:r1640_2 | -| ir.cpp:1640:12:1640:12 | Address | &:r1640_4 | -| ir.cpp:1640:12:1640:12 | Load | m1639_6 | -| ir.cpp:1640:12:1640:12 | Load | ~m1639_8 | -| ir.cpp:1640:12:1640:12 | StoreValue | r1640_7 | -| ir.cpp:1640:12:1640:12 | Unary | r1640_3 | -| ir.cpp:1640:12:1640:12 | Unary | r1640_5 | -| ir.cpp:1640:12:1640:12 | Unary | r1640_6 | -| ir.cpp:1643:61:1643:98 | Address | &:r1643_5 | -| ir.cpp:1643:61:1643:98 | Address | &:r1643_5 | -| ir.cpp:1643:61:1643:98 | Address | &:r1643_7 | -| ir.cpp:1643:61:1643:98 | Address | &:r1643_7 | -| ir.cpp:1643:61:1643:98 | Address | &:r1643_10 | -| ir.cpp:1643:61:1643:98 | ChiPartial | partial:m1643_3 | -| ir.cpp:1643:61:1643:98 | ChiTotal | total:m1643_2 | -| ir.cpp:1643:61:1643:98 | Load | m1643_6 | -| ir.cpp:1643:61:1643:98 | Load | m1644_6 | -| ir.cpp:1643:61:1643:98 | SideEffect | m1643_3 | -| ir.cpp:1643:61:1643:98 | SideEffect | m1643_8 | -| ir.cpp:1644:5:1644:13 | Address | &:r1644_1 | -| ir.cpp:1644:12:1644:12 | Address | &:r1644_2 | -| ir.cpp:1644:12:1644:12 | StoreValue | r1644_3 | -| ir.cpp:1644:12:1644:12 | StoreValue | r1644_5 | -| ir.cpp:1644:12:1644:12 | Unary | r1644_2 | -| ir.cpp:1647:6:1647:40 | ChiPartial | partial:m1647_3 | -| ir.cpp:1647:6:1647:40 | ChiTotal | total:m1647_2 | -| ir.cpp:1647:6:1647:40 | SideEffect | ~m1668_6 | -| ir.cpp:1648:36:1648:36 | Address | &:r1648_1 | -| ir.cpp:1648:36:1648:36 | Address | &:r1648_1 | -| ir.cpp:1648:36:1648:36 | Arg(this) | this:r1648_1 | -| ir.cpp:1648:36:1648:36 | CallTarget | func:r1648_3 | -| ir.cpp:1648:36:1648:36 | ChiPartial | partial:m1648_5 | -| ir.cpp:1648:36:1648:36 | ChiPartial | partial:m1648_7 | -| ir.cpp:1648:36:1648:36 | ChiTotal | total:m1647_4 | -| ir.cpp:1648:36:1648:36 | ChiTotal | total:m1648_2 | -| ir.cpp:1648:36:1648:36 | SideEffect | ~m1647_4 | -| ir.cpp:1651:16:1651:16 | Address | &:r1651_1 | -| ir.cpp:1651:16:1651:16 | Address | &:r1651_7 | -| ir.cpp:1651:16:1651:16 | Address | &:r1651_21 | -| ir.cpp:1651:16:1651:16 | Address | &:r1651_35 | -| ir.cpp:1651:16:1651:16 | CallTarget | func:r1651_10 | -| ir.cpp:1651:16:1651:16 | CallTarget | func:r1651_24 | -| ir.cpp:1651:16:1651:16 | CallTarget | func:r1651_38 | -| ir.cpp:1651:16:1651:16 | ChiPartial | partial:m1651_12 | -| ir.cpp:1651:16:1651:16 | ChiPartial | partial:m1651_26 | -| ir.cpp:1651:16:1651:16 | ChiPartial | partial:m1651_40 | -| ir.cpp:1651:16:1651:16 | ChiTotal | total:m1648_6 | -| ir.cpp:1651:16:1651:16 | ChiTotal | total:m1651_13 | -| ir.cpp:1651:16:1651:16 | ChiTotal | total:m1651_27 | -| ir.cpp:1651:16:1651:16 | Load | m1651_4 | -| ir.cpp:1651:16:1651:16 | Load | m1651_4 | -| ir.cpp:1651:16:1651:16 | Load | m1651_4 | -| ir.cpp:1651:16:1651:16 | SideEffect | ~m1648_6 | -| ir.cpp:1651:16:1651:16 | SideEffect | ~m1651_13 | -| ir.cpp:1651:16:1651:16 | SideEffect | ~m1651_27 | -| ir.cpp:1651:16:1651:16 | StoreValue | r1651_11 | -| ir.cpp:1651:16:1651:16 | Unary | r1651_8 | -| ir.cpp:1651:16:1651:16 | Unary | r1651_22 | -| ir.cpp:1651:16:1651:16 | Unary | r1651_25 | -| ir.cpp:1651:16:1651:16 | Unary | r1651_36 | -| ir.cpp:1651:16:1651:16 | Unary | r1651_39 | -| ir.cpp:1651:16:1651:30 | Address | &:r1651_6 | -| ir.cpp:1651:16:1651:30 | StoreValue | r1651_18 | -| ir.cpp:1651:16:1651:30 | StoreValue | r1651_32 | -| ir.cpp:1651:16:1651:30 | StoreValue | r1651_46 | -| ir.cpp:1651:16:1651:30 | Unary | r1651_6 | -| ir.cpp:1651:16:1651:30 | Unary | r1651_31 | -| ir.cpp:1651:16:1651:30 | Unary | r1651_45 | -| ir.cpp:1651:17:1651:17 | Address | &:r1651_5 | -| ir.cpp:1651:20:1651:20 | Address | &:r1651_20 | -| ir.cpp:1651:23:1651:23 | Address | &:r1651_34 | -| ir.cpp:1651:29:1651:29 | StoreValue | r1651_3 | -| ir.cpp:1651:29:1651:29 | Unary | r1651_2 | -| ir.cpp:1651:30:1651:30 | Address | &:r1651_9 | -| ir.cpp:1651:30:1651:30 | Address | &:r1651_9 | -| ir.cpp:1651:30:1651:30 | Address | &:r1651_23 | -| ir.cpp:1651:30:1651:30 | Address | &:r1651_23 | -| ir.cpp:1651:30:1651:30 | Address | &:r1651_37 | -| ir.cpp:1651:30:1651:30 | Address | &:r1651_37 | -| ir.cpp:1651:30:1651:30 | Arg(this) | this:r1651_9 | -| ir.cpp:1651:30:1651:30 | Arg(this) | this:r1651_23 | -| ir.cpp:1651:30:1651:30 | Arg(this) | this:r1651_37 | -| ir.cpp:1651:30:1651:30 | ChiPartial | partial:m1651_15 | -| ir.cpp:1651:30:1651:30 | ChiPartial | partial:m1651_29 | -| ir.cpp:1651:30:1651:30 | ChiPartial | partial:m1651_43 | -| ir.cpp:1651:30:1651:30 | ChiTotal | total:m1648_8 | -| ir.cpp:1651:30:1651:30 | ChiTotal | total:m1651_16 | -| ir.cpp:1651:30:1651:30 | ChiTotal | total:m1651_30 | -| ir.cpp:1651:30:1651:30 | SideEffect | m1648_8 | -| ir.cpp:1651:30:1651:30 | SideEffect | m1651_16 | -| ir.cpp:1651:30:1651:30 | SideEffect | m1651_30 | -| ir.cpp:1652:9:1652:9 | Address | &:r1652_2 | -| ir.cpp:1652:9:1652:9 | Address | &:r1652_4 | -| ir.cpp:1652:9:1652:9 | Load | m1651_19 | -| ir.cpp:1652:9:1652:9 | Unary | r1652_3 | -| ir.cpp:1652:13:1652:13 | StoreValue | r1652_1 | -| ir.cpp:1653:14:1653:15 | Address | &:r1653_1 | -| ir.cpp:1653:19:1653:19 | Address | &:r1653_2 | -| ir.cpp:1653:19:1653:19 | Load | m1651_19 | -| ir.cpp:1653:19:1653:19 | StoreValue | r1653_5 | -| ir.cpp:1653:19:1653:19 | Unary | r1653_3 | -| ir.cpp:1653:19:1653:19 | Unary | r1653_4 | -| ir.cpp:1654:13:1654:13 | Address | &:r1654_1 | -| ir.cpp:1654:17:1654:17 | Address | &:r1654_2 | -| ir.cpp:1654:17:1654:17 | Address | &:r1654_3 | -| ir.cpp:1654:17:1654:17 | Load | m1651_19 | -| ir.cpp:1654:17:1654:17 | Load | m1652_5 | -| ir.cpp:1654:17:1654:17 | StoreValue | r1654_4 | -| ir.cpp:1655:9:1655:9 | Address | &:r1655_2 | -| ir.cpp:1655:9:1655:9 | Address | &:r1655_4 | -| ir.cpp:1655:9:1655:9 | Load | m1651_33 | -| ir.cpp:1655:9:1655:9 | Unary | r1655_3 | -| ir.cpp:1655:9:1655:13 | ChiPartial | partial:m1655_5 | -| ir.cpp:1655:9:1655:13 | ChiTotal | total:m1651_41 | -| ir.cpp:1655:13:1655:13 | StoreValue | r1655_1 | -| ir.cpp:1656:14:1656:15 | Address | &:r1656_1 | -| ir.cpp:1656:19:1656:19 | Address | &:r1656_2 | -| ir.cpp:1656:19:1656:19 | Load | m1651_33 | -| ir.cpp:1656:19:1656:19 | StoreValue | r1656_5 | -| ir.cpp:1656:19:1656:19 | Unary | r1656_3 | -| ir.cpp:1656:19:1656:19 | Unary | r1656_4 | -| ir.cpp:1657:13:1657:13 | Address | &:r1657_1 | -| ir.cpp:1657:17:1657:17 | Address | &:r1657_2 | -| ir.cpp:1657:17:1657:17 | Address | &:r1657_3 | -| ir.cpp:1657:17:1657:17 | Load | m1651_33 | -| ir.cpp:1657:17:1657:17 | Load | ~m1655_6 | -| ir.cpp:1657:17:1657:17 | StoreValue | r1657_4 | -| ir.cpp:1661:16:1661:37 | Address | &:r1661_1 | -| ir.cpp:1661:41:1661:41 | StoreValue | r1661_3 | -| ir.cpp:1661:41:1661:41 | Unary | r1661_2 | -| ir.cpp:1662:16:1662:16 | Address | &:r1662_1 | -| ir.cpp:1662:20:1662:41 | Address | &:r1662_3 | -| ir.cpp:1662:20:1662:41 | Address | &:r1662_5 | -| ir.cpp:1662:20:1662:41 | Address | &:r1662_5 | -| ir.cpp:1662:20:1662:41 | Arg(this) | this:r1662_5 | -| ir.cpp:1662:20:1662:41 | ChiPartial | partial:m1662_11 | -| ir.cpp:1662:20:1662:41 | ChiTotal | total:m1651_44 | -| ir.cpp:1662:20:1662:41 | Load | m1661_4 | -| ir.cpp:1662:20:1662:41 | SideEffect | m1651_44 | -| ir.cpp:1662:20:1662:41 | Unary | r1662_4 | -| ir.cpp:1662:20:1662:50 | Address | &:r1662_2 | -| ir.cpp:1662:20:1662:50 | StoreValue | r1662_14 | -| ir.cpp:1662:20:1662:50 | Unary | r1662_2 | -| ir.cpp:1662:43:1662:48 | CallTarget | func:r1662_6 | -| ir.cpp:1662:43:1662:48 | ChiPartial | partial:m1662_8 | -| ir.cpp:1662:43:1662:48 | ChiTotal | total:m1655_6 | -| ir.cpp:1662:43:1662:48 | SideEffect | ~m1655_6 | -| ir.cpp:1662:43:1662:48 | StoreValue | r1662_7 | -| ir.cpp:1663:15:1663:15 | Address | &:r1663_1 | -| ir.cpp:1663:19:1663:40 | Address | &:r1663_2 | -| ir.cpp:1663:19:1663:40 | Address | &:r1663_4 | -| ir.cpp:1663:19:1663:40 | Address | &:r1663_4 | -| ir.cpp:1663:19:1663:40 | Arg(this) | this:r1663_4 | -| ir.cpp:1663:19:1663:40 | ChiPartial | partial:m1663_10 | -| ir.cpp:1663:19:1663:40 | ChiTotal | total:m1662_12 | -| ir.cpp:1663:19:1663:40 | Load | m1661_4 | -| ir.cpp:1663:19:1663:40 | SideEffect | m1662_12 | -| ir.cpp:1663:19:1663:40 | Unary | r1663_3 | -| ir.cpp:1663:42:1663:47 | CallTarget | func:r1663_5 | -| ir.cpp:1663:42:1663:47 | ChiPartial | partial:m1663_7 | -| ir.cpp:1663:42:1663:47 | ChiTotal | total:m1662_9 | -| ir.cpp:1663:42:1663:47 | SideEffect | ~m1662_9 | -| ir.cpp:1663:42:1663:47 | Unary | r1663_6 | -| ir.cpp:1663:48:1663:50 | StoreValue | r1663_13 | -| ir.cpp:1663:48:1663:50 | Unary | r1663_12 | -| ir.cpp:1664:16:1664:17 | Address | &:r1664_1 | -| ir.cpp:1664:21:1664:42 | Address | &:r1664_2 | -| ir.cpp:1664:21:1664:42 | Address | &:r1664_4 | -| ir.cpp:1664:21:1664:42 | Address | &:r1664_4 | -| ir.cpp:1664:21:1664:42 | Arg(this) | this:r1664_4 | -| ir.cpp:1664:21:1664:42 | ChiPartial | partial:m1664_10 | -| ir.cpp:1664:21:1664:42 | ChiTotal | total:m1663_11 | -| ir.cpp:1664:21:1664:42 | Load | m1661_4 | -| ir.cpp:1664:21:1664:42 | SideEffect | m1663_11 | -| ir.cpp:1664:21:1664:42 | Unary | r1664_3 | -| ir.cpp:1664:44:1664:49 | CallTarget | func:r1664_5 | -| ir.cpp:1664:44:1664:49 | ChiPartial | partial:m1664_7 | -| ir.cpp:1664:44:1664:49 | ChiTotal | total:m1663_8 | -| ir.cpp:1664:44:1664:49 | SideEffect | ~m1663_8 | -| ir.cpp:1664:44:1664:49 | Unary | r1664_6 | -| ir.cpp:1664:50:1664:52 | StoreValue | r1664_13 | -| ir.cpp:1664:50:1664:52 | Unary | r1664_12 | -| ir.cpp:1665:9:1665:9 | Address | &:r1665_2 | -| ir.cpp:1665:9:1665:9 | Address | &:r1665_4 | -| ir.cpp:1665:9:1665:9 | Load | m1662_15 | -| ir.cpp:1665:9:1665:9 | Unary | r1665_3 | -| ir.cpp:1665:13:1665:13 | StoreValue | r1665_1 | -| ir.cpp:1666:14:1666:15 | Address | &:r1666_1 | -| ir.cpp:1666:19:1666:19 | Address | &:r1666_2 | -| ir.cpp:1666:19:1666:19 | Load | m1662_15 | -| ir.cpp:1666:19:1666:19 | StoreValue | r1666_5 | -| ir.cpp:1666:19:1666:19 | Unary | r1666_3 | -| ir.cpp:1666:19:1666:19 | Unary | r1666_4 | -| ir.cpp:1667:13:1667:13 | Address | &:r1667_1 | -| ir.cpp:1667:17:1667:17 | Address | &:r1667_2 | -| ir.cpp:1667:17:1667:17 | Address | &:r1667_3 | -| ir.cpp:1667:17:1667:17 | Load | m1662_15 | -| ir.cpp:1667:17:1667:17 | Load | m1665_5 | -| ir.cpp:1667:17:1667:17 | StoreValue | r1667_4 | -| ir.cpp:1668:9:1668:9 | Address | &:r1668_2 | -| ir.cpp:1668:9:1668:9 | Address | &:r1668_4 | -| ir.cpp:1668:9:1668:9 | Load | m1663_14 | -| ir.cpp:1668:9:1668:9 | Unary | r1668_3 | -| ir.cpp:1668:9:1668:13 | ChiPartial | partial:m1668_5 | -| ir.cpp:1668:9:1668:13 | ChiTotal | total:m1664_8 | -| ir.cpp:1668:13:1668:13 | StoreValue | r1668_1 | -| ir.cpp:1669:14:1669:15 | Address | &:r1669_1 | -| ir.cpp:1669:19:1669:19 | Address | &:r1669_2 | -| ir.cpp:1669:19:1669:19 | Load | m1663_14 | -| ir.cpp:1669:19:1669:19 | StoreValue | r1669_5 | -| ir.cpp:1669:19:1669:19 | Unary | r1669_3 | -| ir.cpp:1669:19:1669:19 | Unary | r1669_4 | -| ir.cpp:1670:13:1670:13 | Address | &:r1670_1 | -| ir.cpp:1670:17:1670:17 | Address | &:r1670_2 | -| ir.cpp:1670:17:1670:17 | Address | &:r1670_3 | -| ir.cpp:1670:17:1670:17 | Load | m1663_14 | -| ir.cpp:1670:17:1670:17 | Load | ~m1668_6 | -| ir.cpp:1670:17:1670:17 | StoreValue | r1670_4 | -| ir.cpp:1674:6:1674:42 | ChiPartial | partial:m1674_3 | -| ir.cpp:1674:6:1674:42 | ChiTotal | total:m1674_2 | -| ir.cpp:1674:6:1674:42 | SideEffect | m1674_3 | -| ir.cpp:1675:9:1675:10 | Address | &:r1675_1 | -| ir.cpp:1675:9:1675:10 | Left | r1675_1 | -| ir.cpp:1675:9:1675:10 | Left | r1675_1 | -| ir.cpp:1675:16:1675:22 | Address | &:r1675_4 | -| ir.cpp:1675:16:1675:22 | Address | &:r1675_9 | -| ir.cpp:1675:16:1675:22 | Right | r1675_3 | -| ir.cpp:1675:16:1675:22 | Right | r1675_8 | -| ir.cpp:1675:18:1675:18 | ChiPartial | partial:m1675_6 | -| ir.cpp:1675:18:1675:18 | ChiTotal | total:m1675_2 | -| ir.cpp:1675:18:1675:18 | StoreValue | r1675_5 | -| ir.cpp:1675:21:1675:21 | ChiPartial | partial:m1675_11 | -| ir.cpp:1675:21:1675:21 | ChiTotal | total:m1675_7 | -| ir.cpp:1675:21:1675:21 | StoreValue | r1675_10 | -| ir.cpp:1676:10:1676:10 | Address | &:r1676_1 | -| ir.cpp:1676:11:1676:11 | Address | &:r1676_5 | -| ir.cpp:1676:15:1676:15 | Address | &:r1676_6 | -| ir.cpp:1676:21:1676:22 | Address | &:r1676_2 | -| ir.cpp:1676:21:1676:22 | Load | m1675_12 | -| ir.cpp:1676:21:1676:22 | StoreValue | r1676_3 | -| ir.cpp:1682:5:1682:23 | Address | &:r1682_5 | -| ir.cpp:1682:5:1682:23 | Address | &:r1682_5 | -| ir.cpp:1682:5:1682:23 | Address | &:r1682_7 | -| ir.cpp:1682:5:1682:23 | Address | &:r1682_7 | -| ir.cpp:1682:5:1682:23 | ChiPartial | partial:m1682_3 | -| ir.cpp:1682:5:1682:23 | ChiTotal | total:m1682_2 | -| ir.cpp:1682:5:1682:23 | Load | m1682_6 | -| ir.cpp:1682:5:1682:23 | SideEffect | m1682_3 | -| ir.cpp:1682:5:1682:23 | SideEffect | m1682_8 | -| ir.cpp:1685:6:1685:20 | ChiPartial | partial:m1685_3 | -| ir.cpp:1685:6:1685:20 | ChiTotal | total:m1685_2 | -| ir.cpp:1685:6:1685:20 | SideEffect | ~m1688_6 | -| ir.cpp:1685:26:1685:26 | Address | &:r1685_5 | -| ir.cpp:1685:34:1685:34 | Address | &:r1685_7 | -| ir.cpp:1685:34:1685:34 | Address | &:r1685_7 | -| ir.cpp:1685:34:1685:34 | Address | &:r1685_9 | -| ir.cpp:1685:34:1685:34 | Address | &:r1685_9 | -| ir.cpp:1685:34:1685:34 | Load | m1685_8 | -| ir.cpp:1685:34:1685:34 | SideEffect | m1685_10 | -| ir.cpp:1685:43:1685:43 | Address | &:r1685_11 | -| ir.cpp:1685:43:1685:43 | Address | &:r1685_11 | -| ir.cpp:1685:43:1685:43 | Address | &:r1685_13 | -| ir.cpp:1685:43:1685:43 | Address | &:r1685_13 | -| ir.cpp:1685:43:1685:43 | Load | m1685_12 | -| ir.cpp:1685:43:1685:43 | SideEffect | m1685_14 | -| ir.cpp:1687:17:1687:20 | Address | &:r1687_1 | -| ir.cpp:1687:24:1687:44 | Address | &:r1687_2 | -| ir.cpp:1687:24:1687:44 | Address | &:r1687_2 | -| ir.cpp:1687:24:1687:44 | Arg(this) | this:r1687_2 | -| ir.cpp:1687:24:1687:44 | CallTarget | func:r1687_4 | -| ir.cpp:1687:24:1687:44 | ChiPartial | partial:m1687_6 | -| ir.cpp:1687:24:1687:44 | ChiPartial | partial:m1687_8 | -| ir.cpp:1687:24:1687:44 | ChiTotal | total:m1685_4 | -| ir.cpp:1687:24:1687:44 | ChiTotal | total:m1687_3 | -| ir.cpp:1687:24:1687:44 | SideEffect | ~m1685_4 | -| ir.cpp:1687:24:1687:44 | StoreValue | r1687_11 | -| ir.cpp:1687:24:1687:44 | Unary | r1687_2 | -| ir.cpp:1687:24:1687:44 | Unary | r1687_10 | -| ir.cpp:1688:10:1688:13 | Address | &:r1688_1 | -| ir.cpp:1688:10:1688:13 | Address | &:r1688_1 | -| ir.cpp:1688:10:1688:13 | Arg(this) | this:r1688_1 | -| ir.cpp:1688:16:1688:37 | CallTarget | func:r1688_3 | -| ir.cpp:1688:16:1688:37 | ChiPartial | partial:m1688_5 | -| ir.cpp:1688:16:1688:37 | ChiPartial | partial:m1688_7 | -| ir.cpp:1688:16:1688:37 | ChiTotal | total:m1687_7 | -| ir.cpp:1688:16:1688:37 | ChiTotal | total:m1688_2 | -| ir.cpp:1688:16:1688:37 | SideEffect | ~m1687_7 | -| ir.cpp:1690:10:1690:21 | Address | &:r1690_1 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_2 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_2 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_4 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_5 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_6 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_7 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_8 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_12 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_17 | -| ir.cpp:1690:24:1692:5 | Address | &:r1690_20 | -| ir.cpp:1690:24:1692:5 | ChiPartial | partial:m1690_10 | -| ir.cpp:1690:24:1692:5 | ChiTotal | total:m0_3 | -| ir.cpp:1690:24:1692:5 | Load | m1687_12 | -| ir.cpp:1690:24:1692:5 | Load | m1688_8 | -| ir.cpp:1690:24:1692:5 | Load | m1692_6 | -| ir.cpp:1690:24:1692:5 | StoreValue | r1690_9 | -| ir.cpp:1690:24:1692:5 | StoreValue | r1690_23 | -| ir.cpp:1690:24:1692:5 | Unary | r1690_2 | -| ir.cpp:1690:24:1692:5 | Unary | r1690_2 | -| ir.cpp:1690:24:1692:5 | Unary | r1690_2 | -| ir.cpp:1690:24:1692:5 | Unary | r1690_2 | -| ir.cpp:1690:24:1692:5 | Unary | r1690_2 | -| ir.cpp:1690:38:1690:38 | Address | &:r1690_13 | -| ir.cpp:1690:38:1690:38 | ChiPartial | partial:m1690_15 | -| ir.cpp:1690:38:1690:38 | ChiTotal | total:m1690_11 | -| ir.cpp:1690:38:1690:38 | Load | m1685_6 | -| ir.cpp:1690:38:1690:38 | StoreValue | r1690_14 | -| ir.cpp:1690:41:1690:41 | Address | &:r1690_18 | -| ir.cpp:1690:41:1690:41 | Address | &:r1690_19 | -| ir.cpp:1690:41:1690:41 | Load | m1685_8 | -| ir.cpp:1690:44:1690:44 | Address | &:r1690_21 | -| ir.cpp:1690:44:1690:44 | Address | &:r1690_22 | -| ir.cpp:1690:44:1690:44 | Load | m1685_12 | -| ir.cpp:1690:46:1690:46 | Address | &:r1690_5 | -| ir.cpp:1690:46:1690:46 | Address | &:r1690_5 | -| ir.cpp:1690:46:1690:46 | Address | &:r1690_7 | -| ir.cpp:1690:46:1690:46 | Address | &:r1690_7 | -| ir.cpp:1690:46:1690:46 | ChiPartial | partial:m1690_3 | -| ir.cpp:1690:46:1690:46 | ChiTotal | total:m1690_2 | -| ir.cpp:1690:46:1690:46 | Load | m1690_6 | -| ir.cpp:1690:46:1690:46 | SideEffect | m1690_3 | -| ir.cpp:1690:46:1690:46 | SideEffect | m1690_8 | -| ir.cpp:1691:14:1691:25 | Address | &:r1691_1 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_2 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_2 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_4 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_5 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_7 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_11 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_12 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_14 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_18 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_19 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_21 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_25 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_26 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_28 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_32 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_33 | -| ir.cpp:1691:28:1691:54 | Address | &:r1691_35 | -| ir.cpp:1691:28:1691:54 | ChiPartial | partial:m1691_9 | -| ir.cpp:1691:28:1691:54 | ChiPartial | partial:m1691_16 | -| ir.cpp:1691:28:1691:54 | ChiPartial | partial:m1691_23 | -| ir.cpp:1691:28:1691:54 | ChiPartial | partial:m1691_30 | -| ir.cpp:1691:28:1691:54 | ChiPartial | partial:m1691_37 | -| ir.cpp:1691:28:1691:54 | ChiTotal | total:m1691_3 | -| ir.cpp:1691:28:1691:54 | ChiTotal | total:m1691_10 | -| ir.cpp:1691:28:1691:54 | ChiTotal | total:m1691_17 | -| ir.cpp:1691:28:1691:54 | ChiTotal | total:m1691_24 | -| ir.cpp:1691:28:1691:54 | ChiTotal | total:m1691_31 | -| ir.cpp:1691:28:1691:54 | Load | m1690_6 | -| ir.cpp:1691:28:1691:54 | Load | m1690_6 | -| ir.cpp:1691:28:1691:54 | Load | m1690_6 | -| ir.cpp:1691:28:1691:54 | Load | m1690_6 | -| ir.cpp:1691:28:1691:54 | Load | m1690_6 | -| ir.cpp:1691:28:1691:54 | Load | m1691_38 | -| ir.cpp:1691:28:1691:54 | Load | ~m1690_8 | -| ir.cpp:1691:28:1691:54 | Load | ~m1690_8 | -| ir.cpp:1691:28:1691:54 | Load | ~m1690_8 | -| ir.cpp:1691:28:1691:54 | Load | ~m1690_8 | -| ir.cpp:1691:28:1691:54 | Load | ~m1690_8 | -| ir.cpp:1691:28:1691:54 | StoreValue | r1691_8 | -| ir.cpp:1691:28:1691:54 | StoreValue | r1691_15 | -| ir.cpp:1691:28:1691:54 | StoreValue | r1691_22 | -| ir.cpp:1691:28:1691:54 | StoreValue | r1691_29 | -| ir.cpp:1691:28:1691:54 | StoreValue | r1691_36 | -| ir.cpp:1691:28:1691:54 | StoreValue | r1691_39 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_2 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_2 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_2 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_2 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_2 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_6 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_13 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_20 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_27 | -| ir.cpp:1691:28:1691:54 | Unary | r1691_34 | -| ir.cpp:1691:50:1691:50 | Address | &:r1691_5 | -| ir.cpp:1691:50:1691:50 | Address | &:r1691_5 | -| ir.cpp:1691:50:1691:50 | Address | &:r1691_7 | -| ir.cpp:1691:50:1691:50 | Address | &:r1691_7 | -| ir.cpp:1691:50:1691:50 | ChiPartial | partial:m1691_3 | -| ir.cpp:1691:50:1691:50 | ChiTotal | total:m1691_2 | -| ir.cpp:1691:50:1691:50 | Load | m1691_6 | -| ir.cpp:1691:50:1691:50 | SideEffect | m1691_3 | -| ir.cpp:1691:50:1691:50 | SideEffect | m1691_8 | -| ir.cpp:1692:6:1692:6 | ChiPartial | partial:m1692_2 | -| ir.cpp:1692:6:1692:6 | ChiPartial | partial:m1692_5 | -| ir.cpp:1692:6:1692:6 | ChiTotal | total:m1690_16 | -| ir.cpp:1692:6:1692:6 | ChiTotal | total:m1692_3 | -| ir.cpp:1692:6:1692:6 | Load | ~m1685_10 | -| ir.cpp:1692:6:1692:6 | Load | ~m1685_14 | -| ir.cpp:1692:6:1692:6 | StoreValue | r1692_1 | -| ir.cpp:1692:6:1692:6 | StoreValue | r1692_4 | -| ir.cpp:1695:5:1695:21 | Address | &:r1695_5 | -| ir.cpp:1695:5:1695:21 | ChiPartial | partial:m1695_3 | -| ir.cpp:1695:5:1695:21 | ChiTotal | total:m1695_2 | -| ir.cpp:1695:5:1695:21 | Load | m1698_4 | -| ir.cpp:1695:5:1695:21 | SideEffect | m1695_3 | -| ir.cpp:1696:7:1696:7 | Address | &:r1696_1 | -| ir.cpp:1696:10:1696:12 | StoreValue | r1696_2 | -| ir.cpp:1698:3:1698:11 | Address | &:r1698_1 | -| ir.cpp:1698:10:1698:10 | Address | &:r1698_2 | -| ir.cpp:1698:10:1698:10 | Load | m1696_3 | -| ir.cpp:1698:10:1698:10 | StoreValue | r1698_3 | -| ir.cpp:1703:10:1703:10 | Address | &:r1703_5 | -| ir.cpp:1703:10:1703:10 | Address | &:r1703_5 | -| ir.cpp:1703:10:1703:10 | Address | &:r1703_7 | -| ir.cpp:1703:10:1703:10 | Address | &:r1703_7 | -| ir.cpp:1703:10:1703:10 | ChiPartial | partial:m1703_3 | -| ir.cpp:1703:10:1703:10 | ChiTotal | total:m1703_2 | -| ir.cpp:1703:10:1703:10 | Load | m1703_6 | -| ir.cpp:1703:10:1703:10 | SideEffect | m1703_3 | -| ir.cpp:1703:10:1703:10 | SideEffect | m1703_8 | -| ir.cpp:1704:14:1704:22 | Address | &:r1704_1 | -| ir.cpp:1704:25:1710:9 | Address | &:r1704_2 | -| ir.cpp:1704:25:1710:9 | Address | &:r1704_2 | -| ir.cpp:1704:25:1710:9 | Address | &:r1704_4 | -| ir.cpp:1704:25:1710:9 | Address | &:r1704_5 | -| ir.cpp:1704:25:1710:9 | Address | &:r1704_6 | -| ir.cpp:1704:25:1710:9 | Load | m1703_6 | -| ir.cpp:1704:25:1710:9 | Load | ~m1703_8 | -| ir.cpp:1704:25:1710:9 | Load | ~m1704_8 | -| ir.cpp:1704:25:1710:9 | StoreValue | r1704_7 | -| ir.cpp:1704:25:1710:9 | StoreValue | r1704_9 | -| ir.cpp:1704:25:1710:9 | Unary | r1704_2 | -| ir.cpp:1704:34:1704:34 | Address | &:r1704_5 | -| ir.cpp:1704:34:1704:34 | Address | &:r1704_5 | -| ir.cpp:1704:34:1704:34 | Address | &:r1704_7 | -| ir.cpp:1704:34:1704:34 | Address | &:r1704_7 | -| ir.cpp:1704:34:1704:34 | ChiPartial | partial:m1704_3 | -| ir.cpp:1704:34:1704:34 | ChiTotal | total:m1704_2 | -| ir.cpp:1704:34:1704:34 | Load | m1704_6 | -| ir.cpp:1704:34:1704:34 | SideEffect | m1704_8 | -| ir.cpp:1704:34:1704:34 | SideEffect | ~m1705_8 | -| ir.cpp:1705:13:1705:13 | Address | &:r1705_1 | -| ir.cpp:1705:13:1705:13 | Address | &:r1705_4 | -| ir.cpp:1705:13:1705:13 | Arg(this) | this:r1705_4 | -| ir.cpp:1705:13:1705:13 | CallTarget | func:r1705_5 | -| ir.cpp:1705:13:1705:13 | ChiPartial | partial:m1705_7 | -| ir.cpp:1705:13:1705:13 | ChiTotal | total:m1704_4 | -| ir.cpp:1705:13:1705:13 | Load | m1704_6 | -| ir.cpp:1705:13:1705:13 | SideEffect | ~m1704_4 | -| ir.cpp:1705:13:1705:13 | SideEffect | ~m1704_8 | -| ir.cpp:1705:13:1705:13 | Unary | r1705_2 | -| ir.cpp:1705:13:1705:13 | Unary | r1705_3 | -| ir.cpp:1707:18:1707:26 | Address | &:r1707_1 | -| ir.cpp:1707:29:1709:13 | Address | &:r1707_2 | -| ir.cpp:1707:29:1709:13 | Address | &:r1707_2 | -| ir.cpp:1707:29:1709:13 | Address | &:r1707_4 | -| ir.cpp:1707:29:1709:13 | Address | &:r1707_5 | -| ir.cpp:1707:29:1709:13 | Address | &:r1707_7 | -| ir.cpp:1707:29:1709:13 | Load | m1704_6 | -| ir.cpp:1707:29:1709:13 | Load | ~m1704_8 | -| ir.cpp:1707:29:1709:13 | Load | ~m1707_9 | -| ir.cpp:1707:29:1709:13 | StoreValue | r1707_8 | -| ir.cpp:1707:29:1709:13 | StoreValue | r1707_10 | -| ir.cpp:1707:29:1709:13 | Unary | r1707_2 | -| ir.cpp:1707:29:1709:13 | Unary | r1707_6 | -| ir.cpp:1707:38:1707:38 | Address | &:r1707_5 | -| ir.cpp:1707:38:1707:38 | Address | &:r1707_5 | -| ir.cpp:1707:38:1707:38 | Address | &:r1707_7 | -| ir.cpp:1707:38:1707:38 | Address | &:r1707_7 | -| ir.cpp:1707:38:1707:38 | ChiPartial | partial:m1707_3 | -| ir.cpp:1707:38:1707:38 | ChiTotal | total:m1707_2 | -| ir.cpp:1707:38:1707:38 | Load | m1707_6 | -| ir.cpp:1707:38:1707:38 | SideEffect | m1707_8 | -| ir.cpp:1707:38:1707:38 | SideEffect | ~m1708_8 | -| ir.cpp:1708:17:1708:17 | Address | &:r1708_1 | -| ir.cpp:1708:17:1708:17 | Address | &:r1708_4 | -| ir.cpp:1708:17:1708:17 | Arg(this) | this:r1708_4 | -| ir.cpp:1708:17:1708:17 | CallTarget | func:r1708_5 | -| ir.cpp:1708:17:1708:17 | ChiPartial | partial:m1708_7 | -| ir.cpp:1708:17:1708:17 | ChiTotal | total:m1707_4 | -| ir.cpp:1708:17:1708:17 | Load | m1707_6 | -| ir.cpp:1708:17:1708:17 | SideEffect | ~m1707_4 | -| ir.cpp:1708:17:1708:17 | SideEffect | ~m1707_8 | -| ir.cpp:1708:17:1708:17 | Unary | r1708_2 | -| ir.cpp:1708:17:1708:17 | Unary | r1708_3 | -| ir.cpp:1714:6:1714:21 | ChiPartial | partial:m1714_3 | -| ir.cpp:1714:6:1714:21 | ChiTotal | total:m1714_2 | -| ir.cpp:1714:6:1714:21 | SideEffect | m1714_3 | -| ir.cpp:1714:42:1714:43 | Address | &:r1714_5 | -| ir.cpp:1714:66:1714:67 | Address | &:r1714_7 | -| ir.cpp:1714:66:1714:67 | Address | &:r1714_7 | -| ir.cpp:1714:66:1714:67 | Address | &:r1714_9 | -| ir.cpp:1714:66:1714:67 | Address | &:r1714_9 | -| ir.cpp:1714:66:1714:67 | Load | m1714_8 | -| ir.cpp:1714:66:1714:67 | SideEffect | m1714_10 | -| ir.cpp:1714:91:1714:92 | Address | &:r1714_11 | -| ir.cpp:1714:91:1714:92 | Address | &:r1714_11 | -| ir.cpp:1714:91:1714:92 | Address | &:r1714_13 | -| ir.cpp:1714:91:1714:92 | Address | &:r1714_13 | -| ir.cpp:1714:91:1714:92 | Load | m1714_12 | -| ir.cpp:1714:91:1714:92 | SideEffect | m1714_14 | -| ir.cpp:1715:30:1715:31 | Address | &:r1715_1 | -| ir.cpp:1716:31:1716:32 | Address | &:r1716_1 | -| ir.cpp:1716:36:1716:55 | Address | &:r1716_2 | -| ir.cpp:1716:36:1716:55 | StoreValue | r1716_3 | -| ir.cpp:1716:36:1716:55 | StoreValue | r1716_6 | -| ir.cpp:1716:36:1716:55 | Unary | r1716_2 | -| ir.cpp:1716:36:1716:55 | Unary | r1716_5 | -| ir.cpp:1718:10:1718:17 | Address | &:r1718_1 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_2 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_2 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_4 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_5 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_9 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_10 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_11 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_12 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_13 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_14 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_15 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_16 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_20 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_21 | -| ir.cpp:1718:20:1720:5 | Address | &:r1718_22 | -| ir.cpp:1718:20:1720:5 | ChiPartial | partial:m1718_7 | -| ir.cpp:1718:20:1720:5 | ChiPartial | partial:m1718_18 | -| ir.cpp:1718:20:1720:5 | ChiTotal | total:m0_6 | -| ir.cpp:1718:20:1720:5 | ChiTotal | total:m1718_3 | -| ir.cpp:1718:20:1720:5 | Load | m0_9 | -| ir.cpp:1718:20:1720:5 | Load | m1714_6 | -| ir.cpp:1718:20:1720:5 | Load | m1714_8 | -| ir.cpp:1718:20:1720:5 | Load | m1714_12 | -| ir.cpp:1718:20:1720:5 | Load | m1715_2 | -| ir.cpp:1718:20:1720:5 | Load | m1716_7 | -| ir.cpp:1718:20:1720:5 | StoreValue | r1718_6 | -| ir.cpp:1718:20:1720:5 | StoreValue | r1718_17 | -| ir.cpp:1718:20:1720:5 | StoreValue | r1718_23 | -| ir.cpp:1718:20:1720:5 | Unary | r1718_2 | -| ir.cpp:1718:20:1720:5 | Unary | r1718_2 | -| ir.cpp:1718:20:1720:5 | Unary | r1718_2 | -| ir.cpp:1718:20:1720:5 | Unary | r1718_2 | -| ir.cpp:1718:20:1720:5 | Unary | r1718_2 | -| ir.cpp:1718:42:1718:42 | Address | &:r1718_5 | -| ir.cpp:1718:42:1718:42 | Address | &:r1718_5 | -| ir.cpp:1718:42:1718:42 | Address | &:r1718_7 | -| ir.cpp:1718:42:1718:42 | Address | &:r1718_7 | -| ir.cpp:1718:42:1718:42 | ChiPartial | partial:m1718_3 | -| ir.cpp:1718:42:1718:42 | ChiTotal | total:m1718_2 | -| ir.cpp:1718:42:1718:42 | Load | m1718_6 | -| ir.cpp:1718:42:1718:42 | SideEffect | m1718_3 | -| ir.cpp:1718:42:1718:42 | SideEffect | m1718_8 | -| ir.cpp:1719:14:1719:21 | Address | &:r1719_1 | -| ir.cpp:1719:24:1719:31 | Address | &:r1719_2 | -| ir.cpp:1719:24:1719:31 | Address | &:r1719_2 | -| ir.cpp:1719:24:1719:31 | Address | &:r1719_4 | -| ir.cpp:1719:24:1719:31 | Address | &:r1719_5 | -| ir.cpp:1719:24:1719:31 | Address | &:r1719_7 | -| ir.cpp:1719:24:1719:31 | Load | m1718_6 | -| ir.cpp:1719:24:1719:31 | Load | ~m1718_8 | -| ir.cpp:1719:24:1719:31 | Load | ~m1719_9 | -| ir.cpp:1719:24:1719:31 | StoreValue | r1719_8 | -| ir.cpp:1719:24:1719:31 | StoreValue | r1719_10 | -| ir.cpp:1719:24:1719:31 | Unary | r1719_2 | -| ir.cpp:1719:24:1719:31 | Unary | r1719_6 | -| ir.cpp:1719:30:1719:30 | Address | &:r1719_5 | -| ir.cpp:1719:30:1719:30 | Address | &:r1719_5 | -| ir.cpp:1719:30:1719:30 | Address | &:r1719_7 | -| ir.cpp:1719:30:1719:30 | Address | &:r1719_7 | -| ir.cpp:1719:30:1719:30 | ChiPartial | partial:m1719_3 | -| ir.cpp:1719:30:1719:30 | ChiTotal | total:m1719_2 | -| ir.cpp:1719:30:1719:30 | Load | m1719_6 | -| ir.cpp:1719:30:1719:30 | SideEffect | m1719_3 | -| ir.cpp:1719:30:1719:30 | SideEffect | m1719_8 | -| ir.cpp:1726:5:1726:44 | Address | &:r1726_5 | -| ir.cpp:1726:5:1726:44 | Address | &:r1726_5 | -| ir.cpp:1726:5:1726:44 | Address | &:r1726_7 | -| ir.cpp:1726:5:1726:44 | Address | &:r1726_7 | -| ir.cpp:1726:5:1726:44 | ChiPartial | partial:m1726_3 | -| ir.cpp:1726:5:1726:44 | ChiTotal | total:m1726_2 | -| ir.cpp:1726:5:1726:44 | Load | m1726_6 | -| ir.cpp:1726:5:1726:44 | SideEffect | m1726_3 | -| ir.cpp:1726:5:1726:44 | SideEffect | m1726_8 | -| ir.cpp:1727:5:1727:44 | Address | &:r1727_5 | -| ir.cpp:1727:5:1727:44 | Address | &:r1727_5 | -| ir.cpp:1727:5:1727:44 | Address | &:r1727_7 | -| ir.cpp:1727:5:1727:44 | Address | &:r1727_7 | -| ir.cpp:1727:5:1727:44 | ChiPartial | partial:m1727_3 | -| ir.cpp:1727:5:1727:44 | ChiTotal | total:m1727_2 | -| ir.cpp:1727:5:1727:44 | Load | m1727_6 | -| ir.cpp:1727:5:1727:44 | SideEffect | m1727_3 | -| ir.cpp:1727:5:1727:44 | SideEffect | m1728_10 | -| ir.cpp:1727:94:1727:94 | Address | &:r1727_9 | -| ir.cpp:1727:94:1727:94 | Address | &:r1727_9 | -| ir.cpp:1727:94:1727:94 | Address | &:r1727_11 | -| ir.cpp:1727:94:1727:94 | Address | &:r1727_11 | -| ir.cpp:1727:94:1727:94 | Load | m1727_10 | -| ir.cpp:1727:94:1727:94 | SideEffect | m1727_12 | -| ir.cpp:1728:9:1728:9 | Address | &:r1728_6 | -| ir.cpp:1728:9:1728:9 | Address | &:r1728_8 | -| ir.cpp:1728:9:1728:9 | Load | m1727_6 | -| ir.cpp:1728:9:1728:9 | Unary | r1728_7 | -| ir.cpp:1728:9:1728:15 | ChiPartial | partial:m1728_9 | -| ir.cpp:1728:9:1728:15 | ChiTotal | total:m1727_8 | -| ir.cpp:1728:13:1728:13 | Address | &:r1728_1 | -| ir.cpp:1728:13:1728:13 | Load | m1727_10 | -| ir.cpp:1728:13:1728:13 | Unary | r1728_2 | -| ir.cpp:1728:13:1728:13 | Unary | r1728_3 | -| ir.cpp:1728:15:1728:15 | Address | &:r1728_4 | -| ir.cpp:1728:15:1728:15 | Load | ~m1727_12 | -| ir.cpp:1728:15:1728:15 | StoreValue | r1728_5 | -| ir.cpp:1735:5:1735:39 | Address | &:r1735_5 | -| ir.cpp:1735:5:1735:39 | Address | &:r1735_5 | -| ir.cpp:1735:5:1735:39 | Address | &:r1735_7 | -| ir.cpp:1735:5:1735:39 | Address | &:r1735_7 | -| ir.cpp:1735:5:1735:39 | ChiPartial | partial:m1735_3 | -| ir.cpp:1735:5:1735:39 | ChiTotal | total:m1735_2 | -| ir.cpp:1735:5:1735:39 | Load | m1735_6 | -| ir.cpp:1735:5:1735:39 | SideEffect | m1735_3 | -| ir.cpp:1735:5:1735:39 | SideEffect | m1735_8 | -| ir.cpp:1738:7:1738:7 | Address | &:r1738_5 | -| ir.cpp:1738:7:1738:7 | Address | &:r1738_5 | -| ir.cpp:1738:7:1738:7 | Address | &:r1738_7 | -| ir.cpp:1738:7:1738:7 | Address | &:r1738_7 | -| ir.cpp:1738:7:1738:7 | Address | &:r1738_9 | -| ir.cpp:1738:7:1738:7 | Address | &:r1738_11 | -| ir.cpp:1738:7:1738:7 | Address | &:r1738_15 | -| ir.cpp:1738:7:1738:7 | Arg(0) | 0:r1738_15 | -| ir.cpp:1738:7:1738:7 | Arg(this) | this:r1738_9 | -| ir.cpp:1738:7:1738:7 | CallTarget | func:r1738_10 | -| ir.cpp:1738:7:1738:7 | ChiPartial | partial:m1738_3 | -| ir.cpp:1738:7:1738:7 | ChiPartial | partial:m1738_17 | -| ir.cpp:1738:7:1738:7 | ChiPartial | partial:m1738_20 | -| ir.cpp:1738:7:1738:7 | ChiTotal | total:m1738_2 | -| ir.cpp:1738:7:1738:7 | ChiTotal | total:m1738_4 | -| ir.cpp:1738:7:1738:7 | ChiTotal | total:m1738_8 | -| ir.cpp:1738:7:1738:7 | Load | m0_2 | -| ir.cpp:1738:7:1738:7 | Load | m1738_6 | -| ir.cpp:1738:7:1738:7 | SideEffect | m1738_21 | -| ir.cpp:1738:7:1738:7 | SideEffect | ~m0_4 | -| ir.cpp:1738:7:1738:7 | SideEffect | ~m1738_4 | -| ir.cpp:1738:7:1738:7 | SideEffect | ~m1738_18 | -| ir.cpp:1738:7:1738:7 | Unary | m1738_6 | -| ir.cpp:1738:7:1738:7 | Unary | r1738_12 | -| ir.cpp:1738:7:1738:7 | Unary | r1738_13 | -| ir.cpp:1738:7:1738:7 | Unary | r1738_14 | -| ir.cpp:1742:5:1742:38 | Address | &:r1742_5 | -| ir.cpp:1742:5:1742:38 | Address | &:r1742_5 | -| ir.cpp:1742:5:1742:38 | Address | &:r1742_7 | -| ir.cpp:1742:5:1742:38 | Address | &:r1742_7 | -| ir.cpp:1742:5:1742:38 | ChiPartial | partial:m1742_3 | -| ir.cpp:1742:5:1742:38 | ChiTotal | total:m1742_2 | -| ir.cpp:1742:5:1742:38 | Load | m1742_6 | -| ir.cpp:1742:5:1742:38 | SideEffect | m1742_22 | -| ir.cpp:1742:5:1742:38 | SideEffect | ~m1742_20 | -| ir.cpp:1742:5:1742:38 | Unary | m1742_6 | -| ir.cpp:1742:5:1742:38 | Unary | m1742_6 | -| ir.cpp:1742:42:1742:42 | Address | &:r1742_9 | -| ir.cpp:1742:42:1742:42 | Address | &:r1742_16 | -| ir.cpp:1742:42:1742:42 | Arg(this) | this:r1742_9 | -| ir.cpp:1742:42:1742:42 | Arg(this) | this:r1742_16 | -| ir.cpp:1742:42:1742:42 | CallTarget | func:r1742_10 | -| ir.cpp:1742:42:1742:42 | CallTarget | func:r1742_17 | -| ir.cpp:1742:42:1742:42 | ChiPartial | partial:m1742_12 | -| ir.cpp:1742:42:1742:42 | ChiPartial | partial:m1742_14 | -| ir.cpp:1742:42:1742:42 | ChiPartial | partial:m1742_19 | -| ir.cpp:1742:42:1742:42 | ChiPartial | partial:m1742_21 | -| ir.cpp:1742:42:1742:42 | ChiTotal | total:m1742_4 | -| ir.cpp:1742:42:1742:42 | ChiTotal | total:m1742_8 | -| ir.cpp:1742:42:1742:42 | ChiTotal | total:m1742_13 | -| ir.cpp:1742:42:1742:42 | ChiTotal | total:m1742_15 | -| ir.cpp:1742:42:1742:42 | SideEffect | ~m1742_4 | -| ir.cpp:1742:42:1742:42 | SideEffect | ~m1742_13 | -| ir.cpp:1745:7:1745:7 | Address | &:r1745_5 | -| ir.cpp:1745:7:1745:7 | Address | &:r1745_5 | -| ir.cpp:1745:7:1745:7 | Address | &:r1745_7 | -| ir.cpp:1745:7:1745:7 | Address | &:r1745_7 | -| ir.cpp:1745:7:1745:7 | Address | &:r1745_9 | -| ir.cpp:1745:7:1745:7 | Address | &:r1745_11 | -| ir.cpp:1745:7:1745:7 | Address | &:r1745_15 | -| ir.cpp:1745:7:1745:7 | Arg(0) | 0:r1745_15 | -| ir.cpp:1745:7:1745:7 | Arg(this) | this:r1745_9 | -| ir.cpp:1745:7:1745:7 | CallTarget | func:r1745_10 | -| ir.cpp:1745:7:1745:7 | ChiPartial | partial:m1745_3 | -| ir.cpp:1745:7:1745:7 | ChiPartial | partial:m1745_17 | -| ir.cpp:1745:7:1745:7 | ChiPartial | partial:m1745_20 | -| ir.cpp:1745:7:1745:7 | ChiTotal | total:m1745_2 | -| ir.cpp:1745:7:1745:7 | ChiTotal | total:m1745_4 | -| ir.cpp:1745:7:1745:7 | ChiTotal | total:m1745_18 | -| ir.cpp:1745:7:1745:7 | Load | m0_2 | -| ir.cpp:1745:7:1745:7 | Load | m1745_6 | -| ir.cpp:1745:7:1745:7 | SideEffect | m1745_8 | -| ir.cpp:1745:7:1745:7 | SideEffect | ~m0_4 | -| ir.cpp:1745:7:1745:7 | SideEffect | ~m1745_4 | -| ir.cpp:1745:7:1745:7 | SideEffect | ~m1745_21 | -| ir.cpp:1745:7:1745:7 | Unary | m1745_6 | -| ir.cpp:1745:7:1745:7 | Unary | r1745_12 | -| ir.cpp:1745:7:1745:7 | Unary | r1745_13 | -| ir.cpp:1745:7:1745:7 | Unary | r1745_14 | -| ir.cpp:1749:5:1749:35 | Address | &:r1749_5 | -| ir.cpp:1749:5:1749:35 | Address | &:r1749_5 | -| ir.cpp:1749:5:1749:35 | Address | &:r1749_7 | -| ir.cpp:1749:5:1749:35 | Address | &:r1749_7 | -| ir.cpp:1749:5:1749:35 | ChiPartial | partial:m1749_3 | -| ir.cpp:1749:5:1749:35 | ChiTotal | total:m1749_2 | -| ir.cpp:1749:5:1749:35 | Load | m1749_6 | -| ir.cpp:1749:5:1749:35 | SideEffect | m1749_8 | -| ir.cpp:1749:5:1749:35 | SideEffect | ~m1749_22 | -| ir.cpp:1749:5:1749:35 | Unary | m1749_6 | -| ir.cpp:1749:5:1749:35 | Unary | m1749_6 | -| ir.cpp:1749:39:1749:39 | Address | &:r1749_9 | -| ir.cpp:1749:39:1749:39 | Address | &:r1749_16 | -| ir.cpp:1749:39:1749:39 | Arg(this) | this:r1749_9 | -| ir.cpp:1749:39:1749:39 | Arg(this) | this:r1749_16 | -| ir.cpp:1749:39:1749:39 | CallTarget | func:r1749_10 | -| ir.cpp:1749:39:1749:39 | CallTarget | func:r1749_17 | -| ir.cpp:1749:39:1749:39 | ChiPartial | partial:m1749_12 | -| ir.cpp:1749:39:1749:39 | ChiPartial | partial:m1749_14 | -| ir.cpp:1749:39:1749:39 | ChiPartial | partial:m1749_19 | -| ir.cpp:1749:39:1749:39 | ChiPartial | partial:m1749_21 | -| ir.cpp:1749:39:1749:39 | ChiTotal | total:m1749_4 | -| ir.cpp:1749:39:1749:39 | ChiTotal | total:m1749_13 | -| ir.cpp:1749:39:1749:39 | ChiTotal | total:m1749_15 | -| ir.cpp:1749:39:1749:39 | ChiTotal | total:m1749_20 | -| ir.cpp:1749:39:1749:39 | SideEffect | ~m1749_4 | -| ir.cpp:1749:39:1749:39 | SideEffect | ~m1749_15 | -| ir.cpp:1752:5:1752:34 | Address | &:r1752_5 | -| ir.cpp:1752:5:1752:34 | ChiPartial | partial:m1752_3 | -| ir.cpp:1752:5:1752:34 | ChiTotal | total:m1752_2 | -| ir.cpp:1752:5:1752:34 | Load | m1757_2 | -| ir.cpp:1752:5:1752:34 | SideEffect | ~m1756_10 | -| ir.cpp:1753:51:1753:51 | Address | &:r1753_1 | -| ir.cpp:1753:51:1753:51 | Address | &:r1753_1 | -| ir.cpp:1753:51:1753:51 | Address | &:r1753_3 | -| ir.cpp:1753:51:1753:51 | Address | &:r1753_3 | -| ir.cpp:1753:51:1753:51 | Load | m1753_2 | -| ir.cpp:1753:51:1753:51 | SideEffect | m1753_4 | -| ir.cpp:1754:48:1754:48 | Address | &:r1754_1 | -| ir.cpp:1754:48:1754:48 | Address | &:r1754_1 | -| ir.cpp:1754:48:1754:48 | Address | &:r1754_3 | -| ir.cpp:1754:48:1754:48 | Address | &:r1754_3 | -| ir.cpp:1754:48:1754:48 | Load | m1754_2 | -| ir.cpp:1754:48:1754:48 | SideEffect | m1754_4 | -| ir.cpp:1755:40:1755:41 | Address | &:r1755_1 | -| ir.cpp:1755:40:1755:41 | Address | &:r1755_1 | -| ir.cpp:1755:40:1755:41 | Arg(this) | this:r1755_1 | -| ir.cpp:1755:44:1755:45 | CallTarget | func:r1755_3 | -| ir.cpp:1755:44:1755:45 | ChiPartial | partial:m1755_9 | -| ir.cpp:1755:44:1755:45 | ChiPartial | partial:m1755_12 | -| ir.cpp:1755:44:1755:45 | ChiTotal | total:m1752_4 | -| ir.cpp:1755:44:1755:45 | ChiTotal | total:m1755_2 | -| ir.cpp:1755:44:1755:45 | SideEffect | ~m1752_4 | -| ir.cpp:1755:45:1755:45 | Address | &:r1755_4 | -| ir.cpp:1755:45:1755:45 | Address | &:r1755_7 | -| ir.cpp:1755:45:1755:45 | Arg(0) | 0:r1755_7 | -| ir.cpp:1755:45:1755:45 | Load | m1753_2 | -| ir.cpp:1755:45:1755:45 | SideEffect | ~m1753_4 | -| ir.cpp:1755:45:1755:45 | Unary | r1755_5 | -| ir.cpp:1755:45:1755:45 | Unary | r1755_6 | -| ir.cpp:1756:37:1756:38 | Address | &:r1756_1 | -| ir.cpp:1756:37:1756:38 | Address | &:r1756_1 | -| ir.cpp:1756:37:1756:38 | Arg(this) | this:r1756_1 | -| ir.cpp:1756:41:1756:42 | CallTarget | func:r1756_3 | -| ir.cpp:1756:41:1756:42 | ChiPartial | partial:m1756_9 | -| ir.cpp:1756:41:1756:42 | ChiPartial | partial:m1756_12 | -| ir.cpp:1756:41:1756:42 | ChiTotal | total:m1755_10 | -| ir.cpp:1756:41:1756:42 | ChiTotal | total:m1756_2 | -| ir.cpp:1756:41:1756:42 | SideEffect | ~m1755_10 | -| ir.cpp:1756:42:1756:42 | Address | &:r1756_4 | -| ir.cpp:1756:42:1756:42 | Address | &:r1756_7 | -| ir.cpp:1756:42:1756:42 | Arg(0) | 0:r1756_7 | -| ir.cpp:1756:42:1756:42 | Load | m1754_2 | -| ir.cpp:1756:42:1756:42 | SideEffect | ~m1754_4 | -| ir.cpp:1756:42:1756:42 | Unary | r1756_5 | -| ir.cpp:1756:42:1756:42 | Unary | r1756_6 | -| ir.cpp:1757:1:1757:1 | Address | &:r1757_1 | -| ir.cpp:1759:6:1759:22 | ChiPartial | partial:m1759_3 | -| ir.cpp:1759:6:1759:22 | ChiTotal | total:m1759_2 | -| ir.cpp:1759:6:1759:22 | SideEffect | m1759_3 | -| ir.cpp:1759:28:1759:28 | Address | &:r1759_5 | -| ir.cpp:1760:13:1760:13 | Address | &:r1760_1 | -| ir.cpp:1760:17:1760:17 | Address | &:r1760_2 | -| ir.cpp:1760:17:1760:17 | Load | m1759_6 | -| ir.cpp:1760:17:1760:17 | StoreValue | r1760_3 | -| ir.cpp:1760:20:1760:20 | Address | &:r1760_5 | -| ir.cpp:1760:20:1760:20 | Left | r1760_6 | -| ir.cpp:1760:20:1760:20 | Load | m1759_6 | -| ir.cpp:1760:20:1760:24 | Condition | r1760_10 | -| ir.cpp:1760:20:1760:24 | Left | r1760_8 | -| ir.cpp:1760:20:1760:24 | Right | r1760_9 | -| ir.cpp:1760:24:1760:24 | Right | r1760_7 | -| ir.cpp:1761:9:1761:9 | Address | &:r1761_6 | -| ir.cpp:1761:13:1761:13 | Address | &:r1761_1 | -| ir.cpp:1761:13:1761:13 | Left | r1761_2 | -| ir.cpp:1761:13:1761:13 | Load | m1759_6 | -| ir.cpp:1761:13:1761:17 | StoreValue | r1761_5 | -| ir.cpp:1761:17:1761:17 | Address | &:r1761_3 | -| ir.cpp:1761:17:1761:17 | Load | m1760_4 | -| ir.cpp:1761:17:1761:17 | Right | r1761_4 | -| ir.cpp:1764:9:1764:9 | Address | &:r1764_2 | -| ir.cpp:1764:9:1764:9 | Phi | from 0:m1759_6 | -| ir.cpp:1764:9:1764:9 | Phi | from 1:m1761_7 | -| ir.cpp:1765:9:1765:9 | Address | &:r1765_3 | -| ir.cpp:1765:13:1765:13 | Address | &:r1765_1 | -| ir.cpp:1765:13:1765:13 | Load | m1764_1 | -| ir.cpp:1765:13:1765:13 | StoreValue | r1765_2 | -| ir.cpp:1765:16:1765:16 | Address | &:r1765_5 | -| ir.cpp:1765:16:1765:16 | Left | r1765_6 | -| ir.cpp:1765:16:1765:16 | Load | m1764_1 | -| ir.cpp:1765:16:1765:20 | Condition | r1765_10 | -| ir.cpp:1765:16:1765:20 | Left | r1765_8 | -| ir.cpp:1765:16:1765:20 | Right | r1765_9 | -| ir.cpp:1765:20:1765:20 | Right | r1765_7 | -| ir.cpp:1766:9:1766:9 | Address | &:r1766_6 | -| ir.cpp:1766:13:1766:13 | Address | &:r1766_1 | -| ir.cpp:1766:13:1766:13 | Left | r1766_2 | -| ir.cpp:1766:13:1766:13 | Load | m1764_1 | -| ir.cpp:1766:13:1766:17 | StoreValue | r1766_5 | -| ir.cpp:1766:17:1766:17 | Address | &:r1766_3 | -| ir.cpp:1766:17:1766:17 | Load | m1765_4 | -| ir.cpp:1766:17:1766:17 | Right | r1766_4 | -| ir.cpp:1769:9:1769:9 | Address | &:r1769_4 | -| ir.cpp:1769:13:1769:13 | Address | &:r1769_2 | -| ir.cpp:1769:13:1769:13 | Load | m1769_1 | -| ir.cpp:1769:13:1769:13 | Phi | from 2:m1764_1 | -| ir.cpp:1769:13:1769:13 | Phi | from 3:m1766_7 | -| ir.cpp:1769:13:1769:13 | StoreValue | r1769_3 | -| ir.cpp:1769:14:1769:25 | Address | &:r1769_6 | -| ir.cpp:1769:14:1769:25 | Condition | r1769_14 | -| ir.cpp:1769:20:1769:21 | Address | &:r1769_10 | -| ir.cpp:1769:20:1769:21 | Left | r1769_11 | -| ir.cpp:1769:20:1769:21 | Load | m1769_9 | -| ir.cpp:1769:20:1769:21 | Right | r1769_12 | -| ir.cpp:1769:20:1769:21 | Unary | r1769_13 | -| ir.cpp:1769:25:1769:25 | Address | &:r1769_7 | -| ir.cpp:1769:25:1769:25 | Load | m1769_5 | -| ir.cpp:1769:25:1769:25 | StoreValue | r1769_8 | -| ir.cpp:1770:9:1770:9 | Address | &:r1770_6 | -| ir.cpp:1770:13:1770:13 | Address | &:r1770_1 | -| ir.cpp:1770:13:1770:13 | Left | r1770_2 | -| ir.cpp:1770:13:1770:13 | Load | m1769_1 | -| ir.cpp:1770:13:1770:17 | StoreValue | r1770_5 | -| ir.cpp:1770:17:1770:17 | Address | &:r1770_3 | -| ir.cpp:1770:17:1770:17 | Load | m1769_5 | -| ir.cpp:1770:17:1770:17 | Right | r1770_4 | -| ir.cpp:1773:9:1773:29 | Address | &:r1773_6 | -| ir.cpp:1773:9:1773:29 | Condition | r1773_14 | -| ir.cpp:1773:13:1773:13 | Address | &:r1773_2 | -| ir.cpp:1773:13:1773:13 | Phi | from 4:m1769_1 | -| ir.cpp:1773:13:1773:13 | Phi | from 5:m1770_7 | -| ir.cpp:1773:17:1773:17 | Address | &:r1773_3 | -| ir.cpp:1773:17:1773:17 | Load | m1773_1 | -| ir.cpp:1773:17:1773:17 | StoreValue | r1773_4 | -| ir.cpp:1773:24:1773:25 | Address | &:r1773_10 | -| ir.cpp:1773:24:1773:25 | Left | r1773_11 | -| ir.cpp:1773:24:1773:25 | Load | m1773_9 | -| ir.cpp:1773:24:1773:25 | Right | r1773_12 | -| ir.cpp:1773:24:1773:25 | Unary | r1773_13 | -| ir.cpp:1773:29:1773:29 | Address | &:r1773_7 | -| ir.cpp:1773:29:1773:29 | Load | m1773_5 | -| ir.cpp:1773:29:1773:29 | StoreValue | r1773_8 | -| ir.cpp:1774:9:1774:9 | Address | &:r1774_6 | -| ir.cpp:1774:13:1774:13 | Address | &:r1774_1 | -| ir.cpp:1774:13:1774:13 | Left | r1774_2 | -| ir.cpp:1774:13:1774:13 | Load | m1773_1 | -| ir.cpp:1774:13:1774:17 | StoreValue | r1774_5 | -| ir.cpp:1774:17:1774:17 | Address | &:r1774_3 | -| ir.cpp:1774:17:1774:17 | Load | m1773_5 | -| ir.cpp:1774:17:1774:17 | Right | r1774_4 | -| ir.cpp:1777:9:1777:9 | Address | &:r1777_2 | -| ir.cpp:1777:9:1777:9 | Phi | from 6:m1773_1 | -| ir.cpp:1777:9:1777:9 | Phi | from 7:m1774_7 | -| ir.cpp:1777:13:1777:13 | Address | &:r1777_3 | -| ir.cpp:1777:13:1777:13 | Load | m1777_1 | -| ir.cpp:1777:13:1777:13 | StoreValue | r1777_4 | -| ir.cpp:1778:9:1778:9 | Address | &:r1778_1 | -| ir.cpp:1778:9:1778:9 | Condition | r1778_4 | -| ir.cpp:1778:9:1778:9 | Left | r1778_2 | -| ir.cpp:1778:9:1778:9 | Load | m1777_5 | -| ir.cpp:1778:9:1778:9 | Right | r1778_3 | -| ir.cpp:1779:9:1779:9 | Address | &:r1779_6 | -| ir.cpp:1779:13:1779:13 | Address | &:r1779_1 | -| ir.cpp:1779:13:1779:13 | Left | r1779_2 | -| ir.cpp:1779:13:1779:13 | Load | m1777_1 | -| ir.cpp:1779:13:1779:17 | StoreValue | r1779_5 | -| ir.cpp:1779:17:1779:17 | Address | &:r1779_3 | -| ir.cpp:1779:17:1779:17 | Load | m1777_5 | -| ir.cpp:1779:17:1779:17 | Right | r1779_4 | -| ir.cpp:1782:9:1782:18 | Address | &:r1782_2 | -| ir.cpp:1782:9:1782:18 | Condition | r1782_10 | -| ir.cpp:1782:9:1782:18 | Phi | from 8:m1777_1 | -| ir.cpp:1782:9:1782:18 | Phi | from 9:m1779_7 | -| ir.cpp:1782:13:1782:14 | Address | &:r1782_6 | -| ir.cpp:1782:13:1782:14 | Left | r1782_7 | -| ir.cpp:1782:13:1782:14 | Load | m1782_5 | -| ir.cpp:1782:13:1782:14 | Right | r1782_8 | -| ir.cpp:1782:13:1782:14 | Unary | r1782_9 | -| ir.cpp:1782:18:1782:18 | Address | &:r1782_3 | -| ir.cpp:1782:18:1782:18 | Load | m1777_5 | -| ir.cpp:1782:18:1782:18 | StoreValue | r1782_4 | -| ir.cpp:1783:9:1783:9 | Address | &:r1783_3 | -| ir.cpp:1783:9:1783:9 | Address | &:r1783_3 | -| ir.cpp:1783:9:1783:9 | Left | r1783_4 | -| ir.cpp:1783:9:1783:9 | Load | m1782_1 | -| ir.cpp:1783:9:1783:15 | StoreValue | r1783_5 | -| ir.cpp:1783:14:1783:15 | Address | &:r1783_1 | -| ir.cpp:1783:14:1783:15 | Load | m1782_5 | -| ir.cpp:1783:14:1783:15 | Right | r1783_2 | -| ir.cpp:1787:6:1787:26 | ChiPartial | partial:m1787_3 | -| ir.cpp:1787:6:1787:26 | ChiTotal | total:m1787_2 | -| ir.cpp:1787:6:1787:26 | SideEffect | m1787_3 | -| ir.cpp:1787:32:1787:32 | Address | &:r1787_5 | -| ir.cpp:1788:17:1788:17 | Address | &:r1788_1 | -| ir.cpp:1788:21:1788:21 | Address | &:r1788_2 | -| ir.cpp:1788:21:1788:21 | Load | m1787_6 | -| ir.cpp:1788:21:1788:21 | StoreValue | r1788_3 | -| ir.cpp:1788:24:1788:24 | Address | &:r1788_5 | -| ir.cpp:1788:24:1788:24 | Left | r1788_6 | -| ir.cpp:1788:24:1788:24 | Load | m1787_6 | -| ir.cpp:1788:24:1788:28 | Condition | r1788_8 | -| ir.cpp:1788:28:1788:28 | Right | r1788_7 | -| ir.cpp:1790:9:1790:9 | Address | &:r1790_6 | -| ir.cpp:1790:13:1790:13 | Address | &:r1790_1 | -| ir.cpp:1790:13:1790:13 | Left | r1790_2 | -| ir.cpp:1790:13:1790:13 | Load | m1787_6 | -| ir.cpp:1790:13:1790:17 | StoreValue | r1790_5 | -| ir.cpp:1790:17:1790:17 | Address | &:r1790_3 | -| ir.cpp:1790:17:1790:17 | Load | m1788_4 | -| ir.cpp:1790:17:1790:17 | Right | r1790_4 | -| ir.cpp:1793:9:1793:9 | Address | &:r1793_1 | -| ir.cpp:1794:13:1794:13 | Address | &:r1794_3 | -| ir.cpp:1794:17:1794:17 | Address | &:r1794_1 | -| ir.cpp:1794:17:1794:17 | Load | m1790_7 | -| ir.cpp:1794:17:1794:17 | StoreValue | r1794_2 | -| ir.cpp:1794:20:1794:20 | Address | &:r1794_5 | -| ir.cpp:1794:20:1794:20 | Left | r1794_6 | -| ir.cpp:1794:20:1794:20 | Load | m1790_7 | -| ir.cpp:1794:20:1794:24 | Condition | r1794_8 | -| ir.cpp:1794:24:1794:24 | Right | r1794_7 | -| ir.cpp:1796:9:1796:9 | Address | &:r1796_6 | -| ir.cpp:1796:13:1796:13 | Address | &:r1796_1 | -| ir.cpp:1796:13:1796:13 | Left | r1796_2 | -| ir.cpp:1796:13:1796:13 | Load | m1790_7 | -| ir.cpp:1796:13:1796:17 | StoreValue | r1796_5 | -| ir.cpp:1796:17:1796:17 | Address | &:r1796_3 | -| ir.cpp:1796:17:1796:17 | Load | m1794_4 | -| ir.cpp:1796:17:1796:17 | Right | r1796_4 | -| ir.cpp:1799:13:1799:13 | Address | &:r1799_3 | -| ir.cpp:1799:17:1799:17 | Address | &:r1799_1 | -| ir.cpp:1799:17:1799:17 | Load | m1796_7 | -| ir.cpp:1799:17:1799:17 | StoreValue | r1799_2 | -| ir.cpp:1799:18:1799:29 | Address | &:r1799_5 | -| ir.cpp:1799:18:1799:29 | Condition | r1799_11 | -| ir.cpp:1799:24:1799:25 | Address | &:r1799_9 | -| ir.cpp:1799:24:1799:25 | Load | m1799_8 | -| ir.cpp:1799:24:1799:25 | Unary | r1799_10 | -| ir.cpp:1799:29:1799:29 | Address | &:r1799_6 | -| ir.cpp:1799:29:1799:29 | Load | m1799_4 | -| ir.cpp:1799:29:1799:29 | StoreValue | r1799_7 | -| ir.cpp:1801:9:1801:9 | Address | &:r1801_6 | -| ir.cpp:1801:13:1801:13 | Address | &:r1801_1 | -| ir.cpp:1801:13:1801:13 | Left | r1801_2 | -| ir.cpp:1801:13:1801:13 | Load | m1796_7 | -| ir.cpp:1801:13:1801:17 | StoreValue | r1801_5 | -| ir.cpp:1801:17:1801:17 | Address | &:r1801_3 | -| ir.cpp:1801:17:1801:17 | Load | m1799_4 | -| ir.cpp:1801:17:1801:17 | Right | r1801_4 | -| ir.cpp:1804:13:1804:33 | Address | &:r1804_5 | -| ir.cpp:1804:13:1804:33 | Condition | r1804_11 | -| ir.cpp:1804:17:1804:17 | Address | &:r1804_1 | -| ir.cpp:1804:21:1804:21 | Address | &:r1804_2 | -| ir.cpp:1804:21:1804:21 | Load | m1801_7 | -| ir.cpp:1804:21:1804:21 | StoreValue | r1804_3 | -| ir.cpp:1804:28:1804:29 | Address | &:r1804_9 | -| ir.cpp:1804:28:1804:29 | Load | m1804_8 | -| ir.cpp:1804:28:1804:29 | Unary | r1804_10 | -| ir.cpp:1804:33:1804:33 | Address | &:r1804_6 | -| ir.cpp:1804:33:1804:33 | Load | m1804_4 | -| ir.cpp:1804:33:1804:33 | StoreValue | r1804_7 | -| ir.cpp:1806:9:1806:9 | Address | &:r1806_6 | -| ir.cpp:1806:13:1806:13 | Address | &:r1806_1 | -| ir.cpp:1806:13:1806:13 | Left | r1806_2 | -| ir.cpp:1806:13:1806:13 | Load | m1801_7 | -| ir.cpp:1806:13:1806:17 | StoreValue | r1806_5 | -| ir.cpp:1806:17:1806:17 | Address | &:r1806_3 | -| ir.cpp:1806:17:1806:17 | Load | m1804_4 | -| ir.cpp:1806:17:1806:17 | Right | r1806_4 | -| ir.cpp:1809:9:1809:9 | Address | &:r1809_1 | -| ir.cpp:1809:13:1809:13 | Address | &:r1809_2 | -| ir.cpp:1809:13:1809:13 | Load | m1806_7 | -| ir.cpp:1809:13:1809:13 | StoreValue | r1809_3 | -| ir.cpp:1810:13:1810:13 | Address | &:r1810_1 | -| ir.cpp:1810:13:1810:13 | Condition | r1810_2 | -| ir.cpp:1810:13:1810:13 | Load | m1809_4 | -| ir.cpp:1812:9:1812:9 | Address | &:r1812_6 | +| ir.cpp:1194:9:1194:9 | Condition | r1194_2 | +| ir.cpp:1194:9:1194:9 | Load | m1191_6 | +| ir.cpp:1195:7:1195:28 | Address | &:r1195_1 | +| ir.cpp:1195:7:1195:28 | Address | &:r1195_1 | +| ir.cpp:1195:7:1195:28 | Load | m1195_4 | +| ir.cpp:1195:13:1195:28 | StoreValue | r1195_3 | +| ir.cpp:1195:13:1195:28 | Unary | r1195_2 | +| ir.cpp:1197:14:1197:14 | Address | &:r1197_1 | +| ir.cpp:1197:14:1197:14 | Left | r1197_2 | +| ir.cpp:1197:14:1197:14 | Load | m1193_3 | +| ir.cpp:1197:14:1197:18 | Condition | r1197_4 | +| ir.cpp:1197:18:1197:18 | Right | r1197_3 | +| ir.cpp:1200:5:1200:5 | Address | &:r1200_2 | +| ir.cpp:1200:9:1200:9 | StoreValue | r1200_1 | +| ir.cpp:1202:22:1202:22 | Address | &:r1202_2 | +| ir.cpp:1202:22:1202:22 | Address | &:r1202_2 | +| ir.cpp:1202:22:1202:22 | Address | &:r1202_4 | +| ir.cpp:1202:22:1202:22 | Load | m1202_3 | +| ir.cpp:1203:5:1203:19 | Address | &:r1203_1 | +| ir.cpp:1203:5:1203:19 | Address | &:r1203_1 | +| ir.cpp:1203:5:1203:19 | Address | &:r1203_1 | +| ir.cpp:1203:5:1203:19 | Arg(this) | this:r1203_1 | +| ir.cpp:1203:5:1203:19 | CallTarget | func:r1203_3 | +| ir.cpp:1203:5:1203:19 | ChiPartial | partial:m1203_7 | +| ir.cpp:1203:5:1203:19 | ChiPartial | partial:m1203_10 | +| ir.cpp:1203:5:1203:19 | ChiTotal | total:m1191_4 | +| ir.cpp:1203:5:1203:19 | ChiTotal | total:m1203_2 | +| ir.cpp:1203:5:1203:19 | Load | m1203_11 | +| ir.cpp:1203:5:1203:19 | SideEffect | ~m1191_4 | +| ir.cpp:1203:18:1203:18 | Address | &:r1203_4 | +| ir.cpp:1203:18:1203:18 | Address | &:r1203_5 | +| ir.cpp:1203:18:1203:18 | Arg(0) | 0:r1203_5 | +| ir.cpp:1203:18:1203:18 | Load | m1202_3 | +| ir.cpp:1203:18:1203:18 | SideEffect | ~m1202_5 | +| ir.cpp:1205:24:1205:24 | Address | &:r1205_2 | +| ir.cpp:1205:24:1205:24 | Address | &:r1205_2 | +| ir.cpp:1205:24:1205:24 | Address | &:r1205_4 | +| ir.cpp:1205:24:1205:24 | Load | m1205_3 | +| ir.cpp:1211:6:1211:16 | ChiPartial | partial:m1211_3 | +| ir.cpp:1211:6:1211:16 | ChiTotal | total:m1211_2 | +| ir.cpp:1211:6:1211:16 | SideEffect | m1211_3 | +| ir.cpp:1211:22:1211:22 | Address | &:r1211_5 | +| ir.cpp:1212:18:1212:20 | Address | &:r1212_1 | +| ir.cpp:1212:18:1212:20 | Left | r1212_1 | +| ir.cpp:1212:18:1212:20 | Left | r1212_1 | +| ir.cpp:1212:18:1212:20 | Left | r1212_1 | +| ir.cpp:1212:18:1212:20 | Left | r1212_1 | +| ir.cpp:1212:23:1212:37 | Address | &:r1212_4 | +| ir.cpp:1212:23:1212:37 | Address | &:r1212_9 | +| ir.cpp:1212:23:1212:37 | Address | &:r1212_14 | +| ir.cpp:1212:23:1212:37 | Address | &:r1212_19 | +| ir.cpp:1212:23:1212:37 | Right | r1212_3 | +| ir.cpp:1212:23:1212:37 | Right | r1212_8 | +| ir.cpp:1212:23:1212:37 | Right | r1212_13 | +| ir.cpp:1212:23:1212:37 | Right | r1212_18 | +| ir.cpp:1212:26:1212:26 | ChiPartial | partial:m1212_6 | +| ir.cpp:1212:26:1212:26 | ChiTotal | total:m1212_2 | +| ir.cpp:1212:26:1212:26 | StoreValue | r1212_5 | +| ir.cpp:1212:29:1212:29 | ChiPartial | partial:m1212_11 | +| ir.cpp:1212:29:1212:29 | ChiTotal | total:m1212_7 | +| ir.cpp:1212:29:1212:29 | StoreValue | r1212_10 | +| ir.cpp:1212:32:1212:32 | ChiPartial | partial:m1212_16 | +| ir.cpp:1212:32:1212:32 | ChiTotal | total:m1212_12 | +| ir.cpp:1212:32:1212:32 | StoreValue | r1212_15 | +| ir.cpp:1212:35:1212:35 | ChiPartial | partial:m1212_21 | +| ir.cpp:1212:35:1212:35 | ChiTotal | total:m1212_17 | +| ir.cpp:1212:35:1212:35 | StoreValue | r1212_20 | +| ir.cpp:1213:7:1213:7 | Address | &:r1213_1 | +| ir.cpp:1213:11:1213:13 | Left | r1213_2 | +| ir.cpp:1213:11:1213:16 | Address | &:r1213_5 | +| ir.cpp:1213:11:1213:16 | Load | ~m1212_22 | +| ir.cpp:1213:11:1213:16 | StoreValue | r1213_6 | +| ir.cpp:1213:15:1213:15 | Address | &:r1213_3 | +| ir.cpp:1213:15:1213:15 | Load | m1211_6 | +| ir.cpp:1213:15:1213:15 | Right | r1213_4 | +| ir.cpp:1214:3:1214:5 | Left | r1214_3 | +| ir.cpp:1214:3:1214:8 | Address | &:r1214_6 | +| ir.cpp:1214:3:1214:12 | ChiPartial | partial:m1214_7 | +| ir.cpp:1214:3:1214:12 | ChiTotal | total:m1212_22 | +| ir.cpp:1214:7:1214:7 | Address | &:r1214_4 | +| ir.cpp:1214:7:1214:7 | Load | m1211_6 | +| ir.cpp:1214:7:1214:7 | Right | r1214_5 | +| ir.cpp:1214:12:1214:12 | Address | &:r1214_1 | +| ir.cpp:1214:12:1214:12 | Load | m1213_7 | +| ir.cpp:1214:12:1214:12 | StoreValue | r1214_2 | +| ir.cpp:1215:18:1215:28 | Address | &:r1215_1 | +| ir.cpp:1215:32:1215:78 | Arg(2) | 2:r1215_6 | +| ir.cpp:1215:32:1215:78 | StoreValue | r1215_10 | +| ir.cpp:1215:56:1215:58 | Address | &:r1215_2 | +| ir.cpp:1215:56:1215:58 | Arg(0) | 0:r1215_3 | +| ir.cpp:1215:56:1215:58 | Load | m1214_8 | +| ir.cpp:1215:61:1215:63 | Address | &:r1215_4 | +| ir.cpp:1215:61:1215:63 | Arg(1) | 1:r1215_5 | +| ir.cpp:1215:61:1215:63 | Load | m1214_8 | +| ir.cpp:1215:71:1215:71 | Arg(3) | 3:r1215_7 | +| ir.cpp:1215:74:1215:74 | Arg(4) | 4:r1215_8 | +| ir.cpp:1215:77:1215:77 | Arg(5) | 5:r1215_9 | +| ir.cpp:1216:3:1216:5 | Address | &:r1216_6 | +| ir.cpp:1216:9:1216:11 | Address | &:r1216_1 | +| ir.cpp:1216:9:1216:11 | Left | r1216_2 | +| ir.cpp:1216:9:1216:11 | Load | m1214_8 | +| ir.cpp:1216:9:1216:25 | StoreValue | r1216_5 | +| ir.cpp:1216:15:1216:25 | Address | &:r1216_3 | +| ir.cpp:1216:15:1216:25 | Load | m1215_11 | +| ir.cpp:1216:15:1216:25 | Right | r1216_4 | +| ir.cpp:1221:5:1221:21 | Address | &:r1221_7 | +| ir.cpp:1221:5:1221:21 | ChiPartial | partial:m1221_3 | +| ir.cpp:1221:5:1221:21 | ChiTotal | total:m1221_2 | +| ir.cpp:1221:5:1221:21 | Load | m1224_4 | +| ir.cpp:1221:5:1221:21 | SideEffect | m1221_3 | +| ir.cpp:1221:27:1221:27 | Address | &:r1221_5 | +| ir.cpp:1222:7:1222:7 | Address | &:r1222_1 | +| ir.cpp:1223:3:1223:8 | CallTarget | func:r1223_1 | +| ir.cpp:1223:10:1223:11 | Address | &:r1223_4 | +| ir.cpp:1223:10:1223:11 | Arg(0) | 0:r1223_4 | +| ir.cpp:1223:10:1223:11 | ChiPartial | partial:m1223_11 | +| ir.cpp:1223:10:1223:11 | ChiTotal | total:m1222_2 | +| ir.cpp:1223:10:1223:11 | Unary | r1223_3 | +| ir.cpp:1223:11:1223:11 | Unary | r1223_2 | +| ir.cpp:1223:14:1223:15 | Address | &:r1223_7 | +| ir.cpp:1223:14:1223:15 | Arg(1) | 1:r1223_7 | +| ir.cpp:1223:14:1223:15 | SideEffect | ~m1221_6 | +| ir.cpp:1223:14:1223:15 | Unary | r1223_6 | +| ir.cpp:1223:15:1223:15 | Unary | r1223_5 | +| ir.cpp:1223:18:1223:28 | Arg(2) | 2:r1223_8 | +| ir.cpp:1223:18:1223:28 | BufferSize | r1223_8 | +| ir.cpp:1223:18:1223:28 | BufferSize | r1223_8 | +| ir.cpp:1224:3:1224:11 | Address | &:r1224_1 | +| ir.cpp:1224:10:1224:10 | Address | &:r1224_2 | +| ir.cpp:1224:10:1224:10 | Load | m1223_12 | +| ir.cpp:1224:10:1224:10 | StoreValue | r1224_3 | +| ir.cpp:1227:8:1227:23 | Address | &:r1227_5 | +| ir.cpp:1227:8:1227:23 | ChiPartial | partial:m1227_3 | +| ir.cpp:1227:8:1227:23 | ChiTotal | total:m1227_2 | +| ir.cpp:1227:8:1227:23 | Load | m1228_11 | +| ir.cpp:1227:8:1227:23 | SideEffect | ~m1228_8 | +| ir.cpp:1228:3:1228:23 | Address | &:r1228_1 | +| ir.cpp:1228:3:1228:23 | Address | &:r1228_1 | +| ir.cpp:1228:3:1228:23 | Arg(this) | this:r1228_1 | +| ir.cpp:1228:3:1228:23 | CallTarget | func:r1228_3 | +| ir.cpp:1228:3:1228:23 | ChiPartial | partial:m1228_7 | +| ir.cpp:1228:3:1228:23 | ChiPartial | partial:m1228_10 | +| ir.cpp:1228:3:1228:23 | ChiTotal | total:m1227_4 | +| ir.cpp:1228:3:1228:23 | ChiTotal | total:m1228_2 | +| ir.cpp:1228:3:1228:23 | SideEffect | ~m1227_4 | +| ir.cpp:1228:17:1228:21 | Address | &:r1228_5 | +| ir.cpp:1228:17:1228:21 | Arg(0) | 0:r1228_5 | +| ir.cpp:1228:17:1228:21 | SideEffect | ~m1227_3 | +| ir.cpp:1228:17:1228:21 | Unary | r1228_4 | +| ir.cpp:1231:6:1231:16 | ChiPartial | partial:m1231_3 | +| ir.cpp:1231:6:1231:16 | ChiTotal | total:m1231_2 | +| ir.cpp:1231:6:1231:16 | SideEffect | m1231_3 | +| ir.cpp:1231:22:1231:22 | Address | &:r1231_5 | +| ir.cpp:1232:9:1232:9 | Address | &:r1232_1 | +| ir.cpp:1232:12:1232:13 | StoreValue | r1232_2 | +| ir.cpp:1233:12:1233:12 | Address | &:r1233_1 | +| ir.cpp:1233:12:1233:12 | Condition | r1233_2 | +| ir.cpp:1233:12:1233:12 | Load | m1231_6 | +| ir.cpp:1235:9:1235:9 | Address | &:r1235_2 | +| ir.cpp:1235:13:1235:13 | StoreValue | r1235_1 | +| ir.cpp:1237:9:1237:9 | Address | &:r1237_2 | +| ir.cpp:1237:9:1237:9 | Phi | from 0:m1232_3 | +| ir.cpp:1237:9:1237:9 | Phi | from 1:m1235_3 | +| ir.cpp:1237:13:1237:13 | Address | &:r1237_3 | +| ir.cpp:1237:13:1237:13 | Load | m1237_1 | +| ir.cpp:1237:13:1237:13 | StoreValue | r1237_4 | +| ir.cpp:1240:6:1240:28 | ChiPartial | partial:m1240_3 | +| ir.cpp:1240:6:1240:28 | ChiTotal | total:m1240_2 | +| ir.cpp:1240:6:1240:28 | SideEffect | m1240_3 | +| ir.cpp:1240:34:1240:34 | Address | &:r1240_5 | +| ir.cpp:1241:9:1241:9 | Address | &:r1241_1 | +| ir.cpp:1241:12:1241:13 | StoreValue | r1241_2 | +| ir.cpp:1242:12:1242:12 | Address | &:r1242_1 | +| ir.cpp:1242:12:1242:12 | Condition | r1242_2 | +| ir.cpp:1242:12:1242:12 | Load | m1240_6 | +| ir.cpp:1244:9:1244:9 | Address | &:r1244_2 | +| ir.cpp:1244:13:1244:13 | StoreValue | r1244_1 | +| ir.cpp:1246:9:1246:9 | Address | &:r1246_2 | +| ir.cpp:1246:13:1246:13 | StoreValue | r1246_1 | +| ir.cpp:1248:9:1248:9 | Address | &:r1248_2 | +| ir.cpp:1248:9:1248:9 | Phi | from 0:m1241_3 | +| ir.cpp:1248:9:1248:9 | Phi | from 2:m1246_3 | +| ir.cpp:1248:13:1248:13 | Address | &:r1248_3 | +| ir.cpp:1248:13:1248:13 | Load | m1248_1 | +| ir.cpp:1248:13:1248:13 | StoreValue | r1248_4 | +| ir.cpp:1251:6:1251:16 | ChiPartial | partial:m1251_3 | +| ir.cpp:1251:6:1251:16 | ChiTotal | total:m1251_2 | +| ir.cpp:1251:6:1251:16 | SideEffect | m1251_3 | +| ir.cpp:1251:22:1251:22 | Address | &:r1251_5 | +| ir.cpp:1252:9:1252:9 | Address | &:r1252_1 | +| ir.cpp:1252:12:1252:13 | StoreValue | r1252_2 | +| ir.cpp:1253:12:1253:12 | Address | &:r1253_1 | +| ir.cpp:1253:12:1253:12 | Condition | r1253_2 | +| ir.cpp:1253:12:1253:12 | Load | m1251_6 | +| ir.cpp:1255:9:1255:9 | Address | &:r1255_2 | +| ir.cpp:1255:13:1255:13 | StoreValue | r1255_1 | +| ir.cpp:1258:9:1258:9 | Address | &:r1258_2 | +| ir.cpp:1258:13:1258:13 | StoreValue | r1258_1 | +| ir.cpp:1259:5:1259:5 | Phi | from 0:m1252_3 | +| ir.cpp:1259:5:1259:5 | Phi | from 1:m1255_3 | +| ir.cpp:1259:5:1259:5 | Phi | from 2:m1258_3 | +| ir.cpp:1260:9:1260:9 | Address | &:r1260_1 | +| ir.cpp:1260:13:1260:13 | Address | &:r1260_2 | +| ir.cpp:1260:13:1260:13 | Load | m1259_1 | +| ir.cpp:1260:13:1260:13 | StoreValue | r1260_3 | +| ir.cpp:1263:6:1263:24 | ChiPartial | partial:m1263_3 | +| ir.cpp:1263:6:1263:24 | ChiTotal | total:m1263_2 | +| ir.cpp:1263:6:1263:24 | SideEffect | m1263_3 | +| ir.cpp:1263:30:1263:30 | Address | &:r1263_5 | +| ir.cpp:1264:9:1264:9 | Address | &:r1264_1 | +| ir.cpp:1264:12:1264:13 | StoreValue | r1264_2 | +| ir.cpp:1265:12:1265:12 | Address | &:r1265_1 | +| ir.cpp:1265:12:1265:12 | Condition | r1265_2 | +| ir.cpp:1265:12:1265:12 | Load | m1263_6 | +| ir.cpp:1267:13:1267:13 | Address | &:r1267_2 | +| ir.cpp:1267:17:1267:17 | StoreValue | r1267_1 | +| ir.cpp:1271:13:1271:13 | Address | &:r1271_2 | +| ir.cpp:1271:17:1271:17 | StoreValue | r1271_1 | +| ir.cpp:1275:13:1275:13 | Address | &:r1275_2 | +| ir.cpp:1275:17:1275:17 | StoreValue | r1275_1 | +| ir.cpp:1276:5:1276:5 | Phi | from 1:m1267_3 | +| ir.cpp:1276:5:1276:5 | Phi | from 2:m1271_3 | +| ir.cpp:1276:5:1276:5 | Phi | from 3:m1275_3 | +| ir.cpp:1277:9:1277:9 | Address | &:r1277_1 | +| ir.cpp:1277:13:1277:13 | Address | &:r1277_2 | +| ir.cpp:1277:13:1277:13 | Load | m1276_1 | +| ir.cpp:1277:13:1277:13 | StoreValue | r1277_3 | +| ir.cpp:1280:5:1280:19 | Address | &:r1280_7 | +| ir.cpp:1280:5:1280:19 | ChiPartial | partial:m1280_3 | +| ir.cpp:1280:5:1280:19 | ChiTotal | total:m1280_2 | +| ir.cpp:1280:5:1280:19 | Load | m1286_15 | +| ir.cpp:1280:5:1280:19 | SideEffect | ~m1286_2 | +| ir.cpp:1280:25:1280:25 | Address | &:r1280_5 | +| ir.cpp:1281:16:1281:16 | Address | &:r1281_3 | +| ir.cpp:1281:16:1281:16 | SideEffect | ~m1281_6 | +| ir.cpp:1281:20:1281:20 | ChiPartial | partial:m1281_5 | +| ir.cpp:1281:20:1281:20 | ChiTotal | total:m1281_2 | +| ir.cpp:1281:20:1281:20 | StoreValue | r1281_4 | +| ir.cpp:1282:16:1282:16 | Address | &:r1282_3 | +| ir.cpp:1282:16:1282:16 | SideEffect | ~m1282_6 | +| ir.cpp:1282:20:1282:28 | ChiPartial | partial:m1282_5 | +| ir.cpp:1282:20:1282:28 | ChiTotal | total:m1282_2 | +| ir.cpp:1282:20:1282:28 | StoreValue | r1282_4 | +| ir.cpp:1283:16:1283:16 | Address | &:r1283_1 | +| ir.cpp:1283:16:1283:16 | Address | &:r1283_1 | +| ir.cpp:1283:16:1283:16 | Address | &:r1283_4 | +| ir.cpp:1283:16:1283:16 | ChiPartial | partial:m1283_10 | +| ir.cpp:1283:16:1283:16 | ChiTotal | total:m1283_8 | +| ir.cpp:1283:16:1283:16 | Condition | r1283_2 | +| ir.cpp:1283:16:1283:16 | Load | ~m1280_3 | +| ir.cpp:1283:16:1283:16 | StoreValue | r1283_9 | +| ir.cpp:1283:20:1283:20 | Address | &:r1283_5 | +| ir.cpp:1283:20:1283:20 | ChiPartial | partial:m1283_7 | +| ir.cpp:1283:20:1283:20 | ChiTotal | total:m1280_4 | +| ir.cpp:1283:20:1283:20 | Load | m1280_6 | +| ir.cpp:1283:20:1283:20 | StoreValue | r1283_6 | +| ir.cpp:1286:5:1286:25 | Address | &:r1286_3 | +| ir.cpp:1286:5:1286:25 | Phi | from 0:~m1280_3 | +| ir.cpp:1286:5:1286:25 | Phi | from 0:~m1280_4 | +| ir.cpp:1286:5:1286:25 | Phi | from 1:m1283_7 | +| ir.cpp:1286:5:1286:25 | Phi | from 1:~m1283_11 | +| ir.cpp:1286:12:1286:12 | Address | &:r1286_4 | +| ir.cpp:1286:12:1286:12 | Left | r1286_5 | +| ir.cpp:1286:12:1286:12 | Load | ~m1286_2 | +| ir.cpp:1286:12:1286:16 | Left | r1286_8 | +| ir.cpp:1286:12:1286:20 | Left | r1286_11 | +| ir.cpp:1286:12:1286:24 | StoreValue | r1286_14 | +| ir.cpp:1286:16:1286:16 | Address | &:r1286_6 | +| ir.cpp:1286:16:1286:16 | Load | ~m1286_2 | +| ir.cpp:1286:16:1286:16 | Right | r1286_7 | +| ir.cpp:1286:20:1286:20 | Address | &:r1286_9 | +| ir.cpp:1286:20:1286:20 | Load | m1286_1 | +| ir.cpp:1286:20:1286:20 | Right | r1286_10 | +| ir.cpp:1286:24:1286:24 | Address | &:r1286_12 | +| ir.cpp:1286:24:1286:24 | Load | ~m1286_2 | +| ir.cpp:1286:24:1286:24 | Right | r1286_13 | +| ir.cpp:1289:6:1289:31 | ChiPartial | partial:m1289_3 | +| ir.cpp:1289:6:1289:31 | ChiTotal | total:m1289_2 | +| ir.cpp:1289:6:1289:31 | SideEffect | ~m1293_1 | +| ir.cpp:1289:45:1289:51 | Address | &:r1289_5 | +| ir.cpp:1289:45:1289:51 | Address | &:r1289_5 | +| ir.cpp:1289:45:1289:51 | Address | &:r1289_7 | +| ir.cpp:1289:45:1289:51 | Address | &:r1289_7 | +| ir.cpp:1289:45:1289:51 | Load | m1289_6 | +| ir.cpp:1289:45:1289:51 | SideEffect | m1289_8 | +| ir.cpp:1290:19:1290:19 | Address | &:r1290_1 | +| ir.cpp:1290:19:1290:19 | Address | &:r1290_1 | +| ir.cpp:1290:19:1290:19 | Address | &:r1290_4 | +| ir.cpp:1290:19:1290:19 | Arg(this) | this:r1290_4 | +| ir.cpp:1290:19:1290:19 | ChiPartial | partial:m1290_6 | +| ir.cpp:1290:19:1290:19 | ChiTotal | total:m0_6 | +| ir.cpp:1290:19:1290:19 | Condition | r1290_2 | +| ir.cpp:1290:19:1290:19 | Load | ~m1289_3 | +| ir.cpp:1290:19:1290:19 | StoreValue | r1290_5 | +| ir.cpp:1291:19:1291:19 | Address | &:r1291_2 | +| ir.cpp:1291:19:1291:19 | Address | &:r1291_2 | +| ir.cpp:1291:19:1291:19 | Address | &:r1291_5 | +| ir.cpp:1291:19:1291:19 | Arg(this) | this:r1291_5 | +| ir.cpp:1291:19:1291:19 | ChiPartial | partial:m1291_16 | +| ir.cpp:1291:19:1291:19 | ChiTotal | total:m1291_14 | +| ir.cpp:1291:19:1291:19 | Condition | r1291_3 | +| ir.cpp:1291:19:1291:19 | Load | ~m1291_1 | +| ir.cpp:1291:19:1291:19 | Phi | from 0:~m1289_4 | +| ir.cpp:1291:19:1291:19 | Phi | from 1:~m1290_7 | +| ir.cpp:1291:19:1291:19 | StoreValue | r1291_15 | +| ir.cpp:1291:20:1291:29 | CallTarget | func:r1291_6 | +| ir.cpp:1291:20:1291:29 | ChiPartial | partial:m1291_10 | +| ir.cpp:1291:20:1291:29 | ChiPartial | partial:m1291_13 | +| ir.cpp:1291:20:1291:29 | ChiTotal | total:m1291_1 | +| ir.cpp:1291:20:1291:29 | ChiTotal | total:m1291_11 | +| ir.cpp:1291:20:1291:29 | SideEffect | ~m1291_1 | +| ir.cpp:1291:21:1291:28 | Address | &:r1291_8 | +| ir.cpp:1291:21:1291:28 | Arg(0) | 0:r1291_8 | +| ir.cpp:1291:21:1291:28 | SideEffect | ~m1289_3 | +| ir.cpp:1291:21:1291:28 | Unary | r1291_7 | +| ir.cpp:1292:19:1292:19 | Address | &:r1292_2 | +| ir.cpp:1292:19:1292:19 | Address | &:r1292_2 | +| ir.cpp:1292:19:1292:19 | Address | &:r1292_5 | +| ir.cpp:1292:19:1292:19 | Arg(this) | this:r1292_5 | +| ir.cpp:1292:19:1292:19 | ChiPartial | partial:m1292_16 | +| ir.cpp:1292:19:1292:19 | ChiTotal | total:m1292_14 | +| ir.cpp:1292:19:1292:19 | Condition | r1292_3 | +| ir.cpp:1292:19:1292:19 | Load | ~m1292_1 | +| ir.cpp:1292:19:1292:19 | Phi | from 2:~m1291_1 | +| ir.cpp:1292:19:1292:19 | Phi | from 3:~m1291_17 | +| ir.cpp:1292:19:1292:19 | StoreValue | r1292_15 | +| ir.cpp:1292:20:1292:28 | CallTarget | func:r1292_6 | +| ir.cpp:1292:20:1292:28 | ChiPartial | partial:m1292_10 | +| ir.cpp:1292:20:1292:28 | ChiPartial | partial:m1292_13 | +| ir.cpp:1292:20:1292:28 | ChiTotal | total:m1292_1 | +| ir.cpp:1292:20:1292:28 | ChiTotal | total:m1292_11 | +| ir.cpp:1292:20:1292:28 | SideEffect | ~m1292_1 | +| ir.cpp:1292:21:1292:27 | Address | &:r1292_7 | +| ir.cpp:1292:21:1292:27 | Address | &:r1292_8 | +| ir.cpp:1292:21:1292:27 | Arg(0) | 0:r1292_8 | +| ir.cpp:1292:21:1292:27 | Load | m1289_6 | +| ir.cpp:1292:21:1292:27 | SideEffect | ~m1289_8 | +| ir.cpp:1293:1:1293:1 | Phi | from 4:~m1292_1 | +| ir.cpp:1293:1:1293:1 | Phi | from 5:~m1292_17 | +| ir.cpp:1300:6:1300:17 | ChiPartial | partial:m1300_3 | +| ir.cpp:1300:6:1300:17 | ChiTotal | total:m1300_2 | +| ir.cpp:1300:6:1300:17 | SideEffect | m1300_3 | +| ir.cpp:1300:25:1300:26 | Address | &:r1300_5 | +| ir.cpp:1300:25:1300:26 | Address | &:r1300_5 | +| ir.cpp:1300:25:1300:26 | Address | &:r1300_7 | +| ir.cpp:1300:25:1300:26 | Address | &:r1300_7 | +| ir.cpp:1300:25:1300:26 | Load | m1300_6 | +| ir.cpp:1300:25:1300:26 | SideEffect | m1300_8 | +| ir.cpp:1300:35:1300:36 | Address | &:r1300_9 | +| ir.cpp:1300:35:1300:36 | Address | &:r1300_9 | +| ir.cpp:1300:35:1300:36 | Address | &:r1300_11 | +| ir.cpp:1300:35:1300:36 | Address | &:r1300_11 | +| ir.cpp:1300:35:1300:36 | Load | m1300_10 | +| ir.cpp:1300:35:1300:36 | SideEffect | m1300_12 | +| ir.cpp:1301:10:1301:15 | Address | &:r1301_1 | +| ir.cpp:1301:10:1301:15 | Left | r1301_1 | +| ir.cpp:1301:10:1301:15 | Left | r1301_1 | +| ir.cpp:1301:24:1301:27 | Address | &:r1301_4 | +| ir.cpp:1301:24:1301:27 | Address | &:r1301_9 | +| ir.cpp:1301:24:1301:27 | ChiPartial | partial:m1301_11 | +| ir.cpp:1301:24:1301:27 | ChiTotal | total:m1301_7 | +| ir.cpp:1301:24:1301:27 | Right | r1301_3 | +| ir.cpp:1301:24:1301:27 | Right | r1301_8 | +| ir.cpp:1301:24:1301:27 | StoreValue | r1301_10 | +| ir.cpp:1301:26:1301:26 | ChiPartial | partial:m1301_6 | +| ir.cpp:1301:26:1301:26 | ChiTotal | total:m1301_2 | +| ir.cpp:1301:26:1301:26 | StoreValue | r1301_5 | +| ir.cpp:1303:5:1303:10 | CallTarget | func:r1303_1 | +| ir.cpp:1303:12:1303:17 | Address | &:r1303_3 | +| ir.cpp:1303:12:1303:17 | Arg(0) | 0:r1303_3 | +| ir.cpp:1303:12:1303:17 | ChiPartial | partial:m1303_9 | +| ir.cpp:1303:12:1303:17 | ChiTotal | total:m1301_12 | +| ir.cpp:1303:12:1303:17 | Unary | r1303_2 | +| ir.cpp:1303:20:1303:21 | Address | &:r1303_4 | +| ir.cpp:1303:20:1303:21 | Address | &:r1303_6 | +| ir.cpp:1303:20:1303:21 | Arg(1) | 1:r1303_6 | +| ir.cpp:1303:20:1303:21 | Load | m1300_6 | +| ir.cpp:1303:20:1303:21 | SideEffect | ~m1300_8 | +| ir.cpp:1303:20:1303:21 | Unary | r1303_5 | +| ir.cpp:1304:5:1304:10 | CallTarget | func:r1304_1 | +| ir.cpp:1304:12:1304:17 | Address | &:r1304_3 | +| ir.cpp:1304:12:1304:17 | Address | &:r1304_3 | +| ir.cpp:1304:12:1304:17 | Arg(0) | 0:r1304_3 | +| ir.cpp:1304:12:1304:17 | ChiPartial | partial:m1304_10 | +| ir.cpp:1304:12:1304:17 | ChiTotal | total:m1303_10 | +| ir.cpp:1304:12:1304:17 | SideEffect | ~m1303_10 | +| ir.cpp:1304:12:1304:17 | Unary | r1304_2 | +| ir.cpp:1304:20:1304:21 | Address | &:r1304_4 | +| ir.cpp:1304:20:1304:21 | Address | &:r1304_6 | +| ir.cpp:1304:20:1304:21 | Arg(1) | 1:r1304_6 | +| ir.cpp:1304:20:1304:21 | Load | m1300_10 | +| ir.cpp:1304:20:1304:21 | SideEffect | ~m1300_12 | +| ir.cpp:1304:20:1304:21 | Unary | r1304_5 | +| ir.cpp:1310:17:1310:29 | ChiPartial | partial:m1310_3 | +| ir.cpp:1310:17:1310:29 | ChiTotal | total:m1310_2 | +| ir.cpp:1310:17:1310:29 | SideEffect | m1310_3 | +| ir.cpp:1310:34:1310:34 | Address | &:r1310_5 | +| ir.cpp:1310:34:1310:34 | Address | &:r1310_5 | +| ir.cpp:1310:34:1310:34 | Address | &:r1310_7 | +| ir.cpp:1310:34:1310:34 | Address | &:r1310_7 | +| ir.cpp:1310:34:1310:34 | Load | m1310_6 | +| ir.cpp:1310:34:1310:34 | SideEffect | m1311_7 | +| ir.cpp:1310:41:1310:41 | Address | &:r1310_9 | +| ir.cpp:1311:9:1311:9 | Address | &:r1311_3 | +| ir.cpp:1311:9:1311:9 | Load | m1310_6 | +| ir.cpp:1311:9:1311:9 | Unary | r1311_4 | +| ir.cpp:1311:9:1311:21 | ChiPartial | partial:m1311_6 | +| ir.cpp:1311:9:1311:21 | ChiTotal | total:m1310_8 | +| ir.cpp:1311:12:1311:17 | Address | &:r1311_5 | +| ir.cpp:1311:21:1311:21 | Address | &:r1311_1 | +| ir.cpp:1311:21:1311:21 | Load | m1310_10 | +| ir.cpp:1311:21:1311:21 | StoreValue | r1311_2 | +| ir.cpp:1319:6:1319:33 | ChiPartial | partial:m1319_3 | +| ir.cpp:1319:6:1319:33 | ChiTotal | total:m1319_2 | +| ir.cpp:1319:6:1319:33 | SideEffect | ~m1336_6 | +| ir.cpp:1319:39:1319:45 | Address | &:r1319_5 | +| ir.cpp:1319:51:1319:55 | Address | &:r1319_7 | +| ir.cpp:1319:51:1319:55 | Address | &:r1319_7 | +| ir.cpp:1319:51:1319:55 | Address | &:r1319_9 | +| ir.cpp:1319:51:1319:55 | Address | &:r1319_9 | +| ir.cpp:1319:51:1319:55 | Load | m1319_8 | +| ir.cpp:1319:51:1319:55 | SideEffect | m1330_12 | +| ir.cpp:1320:7:1320:7 | Address | &:r1320_1 | +| ir.cpp:1320:7:1320:7 | Address | &:r1320_1 | +| ir.cpp:1320:7:1320:7 | Arg(this) | this:r1320_1 | +| ir.cpp:1320:7:1320:7 | CallTarget | func:r1320_3 | +| ir.cpp:1320:7:1320:7 | ChiPartial | partial:m1320_5 | +| ir.cpp:1320:7:1320:7 | ChiPartial | partial:m1320_7 | +| ir.cpp:1320:7:1320:7 | ChiTotal | total:m1319_4 | +| ir.cpp:1320:7:1320:7 | ChiTotal | total:m1320_2 | +| ir.cpp:1320:7:1320:7 | SideEffect | ~m1319_4 | +| ir.cpp:1321:7:1321:26 | CallTarget | func:r1321_2 | +| ir.cpp:1321:7:1321:26 | ChiPartial | partial:m1321_5 | +| ir.cpp:1321:7:1321:26 | ChiTotal | total:m1320_6 | +| ir.cpp:1321:7:1321:26 | SideEffect | ~m1320_6 | +| ir.cpp:1321:28:1321:29 | Arg(0) | 0:r1321_3 | +| ir.cpp:1322:5:1322:27 | CallTarget | func:r1322_1 | +| ir.cpp:1322:5:1322:27 | ChiPartial | partial:m1322_4 | +| ir.cpp:1322:5:1322:27 | ChiTotal | total:m1321_6 | +| ir.cpp:1322:5:1322:27 | SideEffect | ~m1321_6 | +| ir.cpp:1322:29:1322:30 | Arg(0) | 0:r1322_2 | +| ir.cpp:1324:7:1324:7 | Address | &:r1324_1 | +| ir.cpp:1325:7:1325:19 | CallTarget | func:r1325_2 | +| ir.cpp:1325:7:1325:19 | ChiPartial | partial:m1325_8 | +| ir.cpp:1325:7:1325:19 | ChiTotal | total:m1322_5 | +| ir.cpp:1325:7:1325:19 | SideEffect | ~m1322_5 | +| ir.cpp:1325:21:1325:22 | Address | &:r1325_4 | +| ir.cpp:1325:21:1325:22 | Address | &:r1325_4 | +| ir.cpp:1325:21:1325:22 | Arg(0) | 0:r1325_4 | +| ir.cpp:1325:21:1325:22 | ChiPartial | partial:m1325_11 | +| ir.cpp:1325:21:1325:22 | ChiTotal | total:m1324_2 | +| ir.cpp:1325:21:1325:22 | SideEffect | ~m1324_2 | +| ir.cpp:1325:22:1325:22 | Unary | r1325_3 | +| ir.cpp:1325:25:1325:31 | Address | &:r1325_5 | +| ir.cpp:1325:25:1325:31 | Arg(1) | 1:r1325_6 | +| ir.cpp:1325:25:1325:31 | Load | m1319_6 | +| ir.cpp:1326:5:1326:20 | CallTarget | func:r1326_1 | +| ir.cpp:1326:5:1326:20 | ChiPartial | partial:m1326_7 | +| ir.cpp:1326:5:1326:20 | ChiTotal | total:m1325_9 | +| ir.cpp:1326:5:1326:20 | SideEffect | ~m1325_9 | +| ir.cpp:1326:22:1326:23 | Address | &:r1326_3 | +| ir.cpp:1326:22:1326:23 | Address | &:r1326_3 | +| ir.cpp:1326:22:1326:23 | Arg(0) | 0:r1326_3 | +| ir.cpp:1326:22:1326:23 | ChiPartial | partial:m1326_10 | +| ir.cpp:1326:22:1326:23 | ChiTotal | total:m1325_12 | +| ir.cpp:1326:22:1326:23 | SideEffect | ~m1325_12 | +| ir.cpp:1326:23:1326:23 | Unary | r1326_2 | +| ir.cpp:1326:26:1326:32 | Address | &:r1326_4 | +| ir.cpp:1326:26:1326:32 | Arg(1) | 1:r1326_5 | +| ir.cpp:1326:26:1326:32 | Load | m1319_6 | +| ir.cpp:1328:7:1328:7 | Unary | r1328_1 | +| ir.cpp:1328:11:1328:23 | CallTarget | func:r1328_3 | +| ir.cpp:1328:11:1328:23 | ChiPartial | partial:m1328_11 | +| ir.cpp:1328:11:1328:23 | ChiTotal | total:m1326_8 | +| ir.cpp:1328:11:1328:23 | SideEffect | ~m1326_8 | +| ir.cpp:1328:25:1328:29 | Address | &:r1328_4 | +| ir.cpp:1328:25:1328:29 | Address | &:r1328_5 | +| ir.cpp:1328:25:1328:29 | Address | &:r1328_5 | +| ir.cpp:1328:25:1328:29 | Arg(0) | 0:r1328_5 | +| ir.cpp:1328:25:1328:29 | ChiPartial | partial:m1328_14 | +| ir.cpp:1328:25:1328:29 | ChiTotal | total:m1319_10 | +| ir.cpp:1328:25:1328:29 | Load | m1319_8 | +| ir.cpp:1328:25:1328:29 | SideEffect | ~m1319_10 | +| ir.cpp:1328:32:1328:38 | Address | &:r1328_6 | +| ir.cpp:1328:32:1328:38 | Left | r1328_7 | +| ir.cpp:1328:32:1328:38 | Load | m1319_6 | +| ir.cpp:1328:32:1328:42 | Arg(1) | 1:r1328_9 | +| ir.cpp:1328:42:1328:42 | Right | r1328_8 | +| ir.cpp:1329:7:1329:11 | Address | &:r1329_1 | +| ir.cpp:1329:7:1329:11 | Load | m1319_8 | +| ir.cpp:1329:7:1329:11 | Unary | r1329_2 | +| ir.cpp:1329:14:1329:26 | CallTarget | func:r1329_4 | +| ir.cpp:1329:14:1329:26 | ChiPartial | partial:m1329_9 | +| ir.cpp:1329:14:1329:26 | ChiTotal | total:m1328_12 | +| ir.cpp:1329:14:1329:26 | SideEffect | ~m1328_12 | +| ir.cpp:1329:28:1329:29 | Address | &:r1329_6 | +| ir.cpp:1329:28:1329:29 | Address | &:r1329_6 | +| ir.cpp:1329:28:1329:29 | Arg(0) | 0:r1329_6 | +| ir.cpp:1329:28:1329:29 | ChiPartial | partial:m1329_12 | +| ir.cpp:1329:28:1329:29 | ChiTotal | total:m1326_11 | +| ir.cpp:1329:28:1329:29 | SideEffect | ~m1326_11 | +| ir.cpp:1329:29:1329:29 | Unary | r1329_5 | +| ir.cpp:1329:32:1329:33 | Arg(1) | 1:r1329_7 | +| ir.cpp:1330:5:1330:9 | Address | &:r1330_1 | +| ir.cpp:1330:5:1330:9 | Load | m1319_8 | +| ir.cpp:1330:12:1330:24 | CallTarget | func:r1330_3 | +| ir.cpp:1330:12:1330:24 | ChiPartial | partial:m1330_8 | +| ir.cpp:1330:12:1330:24 | ChiTotal | total:m1329_10 | +| ir.cpp:1330:12:1330:24 | SideEffect | ~m1329_10 | +| ir.cpp:1330:26:1330:30 | Address | &:r1330_4 | +| ir.cpp:1330:26:1330:30 | Address | &:r1330_5 | +| ir.cpp:1330:26:1330:30 | Address | &:r1330_5 | +| ir.cpp:1330:26:1330:30 | Arg(0) | 0:r1330_5 | +| ir.cpp:1330:26:1330:30 | ChiPartial | partial:m1330_11 | +| ir.cpp:1330:26:1330:30 | ChiTotal | total:m1328_15 | +| ir.cpp:1330:26:1330:30 | Load | m1319_8 | +| ir.cpp:1330:26:1330:30 | SideEffect | ~m1328_15 | +| ir.cpp:1330:33:1330:34 | Arg(1) | 1:r1330_6 | +| ir.cpp:1332:7:1332:31 | CallTarget | func:r1332_2 | +| ir.cpp:1332:7:1332:31 | ChiPartial | partial:m1332_4 | +| ir.cpp:1332:7:1332:31 | ChiTotal | total:m1330_9 | +| ir.cpp:1332:7:1332:31 | SideEffect | ~m1330_9 | +| ir.cpp:1333:5:1333:32 | CallTarget | func:r1333_1 | +| ir.cpp:1333:5:1333:32 | ChiPartial | partial:m1333_3 | +| ir.cpp:1333:5:1333:32 | ChiTotal | total:m1332_5 | +| ir.cpp:1333:5:1333:32 | SideEffect | ~m1332_5 | +| ir.cpp:1335:5:1335:20 | CallTarget | func:r1335_1 | +| ir.cpp:1335:5:1335:20 | ChiPartial | partial:m1335_3 | +| ir.cpp:1335:5:1335:20 | ChiTotal | total:m1333_4 | +| ir.cpp:1335:5:1335:20 | SideEffect | ~m1333_4 | +| ir.cpp:1335:25:1335:49 | CallTarget | func:r1335_5 | +| ir.cpp:1335:25:1335:49 | ChiPartial | partial:m1335_7 | +| ir.cpp:1335:25:1335:49 | ChiTotal | total:m1335_4 | +| ir.cpp:1335:25:1335:49 | SideEffect | ~m1335_4 | +| ir.cpp:1336:1:1336:1 | Address | &:r1336_2 | +| ir.cpp:1336:1:1336:1 | Address | &:r1336_2 | +| ir.cpp:1336:1:1336:1 | Arg(this) | this:r1336_2 | +| ir.cpp:1336:1:1336:1 | CallTarget | func:r1336_3 | +| ir.cpp:1336:1:1336:1 | ChiPartial | partial:m1336_5 | +| ir.cpp:1336:1:1336:1 | ChiPartial | partial:m1336_8 | +| ir.cpp:1336:1:1336:1 | ChiTotal | total:m1320_8 | +| ir.cpp:1336:1:1336:1 | ChiTotal | total:m1335_8 | +| ir.cpp:1336:1:1336:1 | SideEffect | m1320_8 | +| ir.cpp:1336:1:1336:1 | SideEffect | ~m1335_8 | +| ir.cpp:1338:5:1338:22 | Address | &:r1338_10 | +| ir.cpp:1338:5:1338:22 | ChiPartial | partial:m1338_3 | +| ir.cpp:1338:5:1338:22 | ChiTotal | total:m1338_2 | +| ir.cpp:1338:5:1338:22 | Load | m1338_9 | +| ir.cpp:1338:5:1338:22 | Phi | from 2:m1340_4 | +| ir.cpp:1338:5:1338:22 | Phi | from 3:m1342_2 | +| ir.cpp:1338:5:1338:22 | SideEffect | m1338_3 | +| ir.cpp:1338:29:1338:29 | Address | &:r1338_5 | +| ir.cpp:1338:36:1338:36 | Address | &:r1338_7 | +| ir.cpp:1339:9:1339:9 | Address | &:r1339_1 | +| ir.cpp:1339:9:1339:9 | Condition | r1339_2 | +| ir.cpp:1339:9:1339:9 | Load | m1338_6 | +| ir.cpp:1340:9:1340:17 | Address | &:r1340_1 | +| ir.cpp:1340:16:1340:16 | Address | &:r1340_2 | +| ir.cpp:1340:16:1340:16 | Load | m1338_8 | +| ir.cpp:1340:16:1340:16 | StoreValue | r1340_3 | +| ir.cpp:1342:1:1342:1 | Address | &:r1342_1 | +| ir.cpp:1344:6:1344:15 | ChiPartial | partial:m1344_3 | +| ir.cpp:1344:6:1344:15 | ChiTotal | total:m1344_2 | +| ir.cpp:1344:6:1344:15 | SideEffect | ~m1345_8 | +| ir.cpp:1344:21:1344:21 | Address | &:r1344_5 | +| ir.cpp:1344:28:1344:28 | Address | &:r1344_7 | +| ir.cpp:1345:12:1345:21 | CallTarget | func:r1345_1 | +| ir.cpp:1345:12:1345:21 | ChiPartial | partial:m1345_7 | +| ir.cpp:1345:12:1345:21 | ChiTotal | total:m1344_4 | +| ir.cpp:1345:12:1345:21 | SideEffect | ~m1344_4 | +| ir.cpp:1345:23:1345:23 | Address | &:r1345_2 | +| ir.cpp:1345:23:1345:23 | Arg(0) | 0:r1345_3 | +| ir.cpp:1345:23:1345:23 | Load | m1344_6 | +| ir.cpp:1345:26:1345:26 | Address | &:r1345_4 | +| ir.cpp:1345:26:1345:26 | Arg(1) | 1:r1345_5 | +| ir.cpp:1345:26:1345:26 | Load | m1344_8 | +| ir.cpp:1348:6:1348:25 | ChiPartial | partial:m1348_3 | +| ir.cpp:1348:6:1348:25 | ChiTotal | total:m1348_2 | +| ir.cpp:1348:6:1348:25 | SideEffect | m1348_3 | +| ir.cpp:1348:32:1348:32 | Address | &:r1348_5 | +| ir.cpp:1348:39:1348:39 | Address | &:r1348_7 | +| ir.cpp:1348:47:1348:47 | Address | &:r1348_9 | +| ir.cpp:1349:9:1349:9 | Address | &:r1349_1 | +| ir.cpp:1349:13:1349:13 | Address | &:r1349_2 | +| ir.cpp:1349:13:1349:13 | Load | m1348_8 | +| ir.cpp:1349:13:1349:13 | StoreValue | r1349_3 | +| ir.cpp:1350:5:1350:5 | Address | &:r1350_7 | +| ir.cpp:1350:9:1350:9 | Address | &:r1350_1 | +| ir.cpp:1350:9:1350:9 | Condition | r1350_2 | +| ir.cpp:1350:9:1350:9 | Load | m1348_6 | +| ir.cpp:1350:9:1350:9 | StoreValue | r1350_2 | +| ir.cpp:1350:9:1350:14 | Address | &:r1350_5 | +| ir.cpp:1350:9:1350:14 | Address | &:r1350_9 | +| ir.cpp:1350:9:1350:14 | Address | &:r1350_13 | +| ir.cpp:1350:9:1350:14 | Load | m1350_4 | +| ir.cpp:1350:9:1350:14 | Phi | from 2:m1350_10 | +| ir.cpp:1350:9:1350:14 | Phi | from 3:m1350_14 | +| ir.cpp:1350:9:1350:14 | StoreValue | r1350_6 | +| ir.cpp:1350:14:1350:14 | Address | &:r1350_11 | +| ir.cpp:1350:14:1350:14 | Load | m1348_8 | +| ir.cpp:1350:14:1350:14 | StoreValue | r1350_12 | +| ir.cpp:1351:5:1351:5 | Address | &:r1351_8 | +| ir.cpp:1351:9:1351:9 | Address | &:r1351_1 | +| ir.cpp:1351:9:1351:9 | Condition | r1351_2 | +| ir.cpp:1351:9:1351:9 | Load | m1348_6 | +| ir.cpp:1351:9:1351:9 | StoreValue | r1351_2 | +| ir.cpp:1351:9:1351:14 | Address | &:r1351_5 | +| ir.cpp:1351:9:1351:14 | Address | &:r1351_10 | +| ir.cpp:1351:9:1351:14 | Address | &:r1351_14 | +| ir.cpp:1351:9:1351:14 | Load | m1351_4 | +| ir.cpp:1351:9:1351:14 | Phi | from 5:m1351_11 | +| ir.cpp:1351:9:1351:14 | Phi | from 6:m1351_15 | +| ir.cpp:1351:9:1351:14 | StoreValue | r1351_7 | +| ir.cpp:1351:9:1351:14 | Unary | r1351_6 | +| ir.cpp:1351:14:1351:14 | Address | &:r1351_12 | +| ir.cpp:1351:14:1351:14 | Load | m1348_10 | +| ir.cpp:1351:14:1351:14 | StoreValue | r1351_13 | +| ir.cpp:1352:5:1352:5 | Address | &:r1352_9 | +| ir.cpp:1352:9:1352:9 | Address | &:r1352_1 | +| ir.cpp:1352:9:1352:9 | Condition | r1352_4 | +| ir.cpp:1352:9:1352:9 | Left | r1352_2 | +| ir.cpp:1352:9:1352:9 | Load | m1348_8 | +| ir.cpp:1352:9:1352:9 | Right | r1352_3 | +| ir.cpp:1352:9:1352:9 | StoreValue | r1352_2 | +| ir.cpp:1352:9:1352:14 | Address | &:r1352_7 | +| ir.cpp:1352:9:1352:14 | Address | &:r1352_11 | +| ir.cpp:1352:9:1352:14 | Address | &:r1352_15 | +| ir.cpp:1352:9:1352:14 | Load | m1352_6 | +| ir.cpp:1352:9:1352:14 | Phi | from 8:m1352_12 | +| ir.cpp:1352:9:1352:14 | Phi | from 9:m1352_16 | +| ir.cpp:1352:9:1352:14 | StoreValue | r1352_8 | +| ir.cpp:1352:14:1352:14 | Address | &:r1352_13 | +| ir.cpp:1352:14:1352:14 | Load | m1348_8 | +| ir.cpp:1352:14:1352:14 | StoreValue | r1352_14 | +| ir.cpp:1353:5:1353:5 | Address | &:r1353_10 | +| ir.cpp:1353:9:1353:9 | Address | &:r1353_1 | +| ir.cpp:1353:9:1353:9 | Condition | r1353_4 | +| ir.cpp:1353:9:1353:9 | Left | r1353_2 | +| ir.cpp:1353:9:1353:9 | Load | m1348_8 | +| ir.cpp:1353:9:1353:9 | Right | r1353_3 | +| ir.cpp:1353:9:1353:9 | StoreValue | r1353_2 | +| ir.cpp:1353:9:1353:14 | Address | &:r1353_7 | +| ir.cpp:1353:9:1353:14 | Address | &:r1353_12 | +| ir.cpp:1353:9:1353:14 | Address | &:r1353_16 | +| ir.cpp:1353:9:1353:14 | Load | m1353_6 | +| ir.cpp:1353:9:1353:14 | Phi | from 11:m1353_13 | +| ir.cpp:1353:9:1353:14 | Phi | from 12:m1353_17 | +| ir.cpp:1353:9:1353:14 | StoreValue | r1353_9 | +| ir.cpp:1353:9:1353:14 | Unary | r1353_8 | +| ir.cpp:1353:14:1353:14 | Address | &:r1353_14 | +| ir.cpp:1353:14:1353:14 | Load | m1348_10 | +| ir.cpp:1353:14:1353:14 | StoreValue | r1353_15 | +| ir.cpp:1354:5:1354:5 | Address | &:r1354_10 | +| ir.cpp:1354:9:1354:9 | Address | &:r1354_1 | +| ir.cpp:1354:9:1354:9 | Condition | r1354_4 | +| ir.cpp:1354:9:1354:9 | Left | r1354_2 | +| ir.cpp:1354:9:1354:9 | Load | m1348_10 | +| ir.cpp:1354:9:1354:9 | Right | r1354_3 | +| ir.cpp:1354:9:1354:9 | StoreValue | r1354_2 | +| ir.cpp:1354:9:1354:14 | Address | &:r1354_7 | +| ir.cpp:1354:9:1354:14 | Address | &:r1354_12 | +| ir.cpp:1354:9:1354:14 | Address | &:r1354_17 | +| ir.cpp:1354:9:1354:14 | Load | m1354_6 | +| ir.cpp:1354:9:1354:14 | Phi | from 14:m1354_13 | +| ir.cpp:1354:9:1354:14 | Phi | from 15:m1354_18 | +| ir.cpp:1354:9:1354:14 | StoreValue | r1354_9 | +| ir.cpp:1354:9:1354:14 | Unary | r1354_8 | +| ir.cpp:1354:14:1354:14 | Address | &:r1354_14 | +| ir.cpp:1354:14:1354:14 | Load | m1348_8 | +| ir.cpp:1354:14:1354:14 | StoreValue | r1354_16 | +| ir.cpp:1354:14:1354:14 | Unary | r1354_15 | +| ir.cpp:1355:5:1355:5 | Address | &:r1355_10 | +| ir.cpp:1355:9:1355:9 | Address | &:r1355_1 | +| ir.cpp:1355:9:1355:9 | Condition | r1355_4 | +| ir.cpp:1355:9:1355:9 | Left | r1355_2 | +| ir.cpp:1355:9:1355:9 | Load | m1348_10 | +| ir.cpp:1355:9:1355:9 | Right | r1355_3 | +| ir.cpp:1355:9:1355:9 | StoreValue | r1355_2 | +| ir.cpp:1355:9:1355:14 | Address | &:r1355_7 | +| ir.cpp:1355:9:1355:14 | Address | &:r1355_12 | +| ir.cpp:1355:9:1355:14 | Address | &:r1355_16 | +| ir.cpp:1355:9:1355:14 | Load | m1355_6 | +| ir.cpp:1355:9:1355:14 | Phi | from 17:m1355_13 | +| ir.cpp:1355:9:1355:14 | Phi | from 18:m1355_17 | +| ir.cpp:1355:9:1355:14 | StoreValue | r1355_9 | +| ir.cpp:1355:9:1355:14 | Unary | r1355_8 | +| ir.cpp:1355:14:1355:14 | Address | &:r1355_14 | +| ir.cpp:1355:14:1355:14 | Load | m1348_10 | +| ir.cpp:1355:14:1355:14 | StoreValue | r1355_15 | +| ir.cpp:1357:5:1357:5 | Address | &:r1357_9 | +| ir.cpp:1357:9:1357:26 | Address | &:r1357_7 | +| ir.cpp:1357:9:1357:26 | Address | &:r1357_11 | +| ir.cpp:1357:9:1357:26 | Address | &:r1357_33 | +| ir.cpp:1357:9:1357:26 | Load | m1357_6 | +| ir.cpp:1357:9:1357:26 | Phi | from 20:m1357_12 | +| ir.cpp:1357:9:1357:26 | Phi | from 26:m1357_34 | +| ir.cpp:1357:9:1357:26 | StoreValue | r1357_8 | +| ir.cpp:1357:10:1357:10 | Address | &:r1357_1 | +| ir.cpp:1357:10:1357:10 | Condition | r1357_4 | +| ir.cpp:1357:10:1357:10 | Left | r1357_2 | +| ir.cpp:1357:10:1357:10 | Load | m1348_8 | +| ir.cpp:1357:10:1357:10 | Right | r1357_3 | +| ir.cpp:1357:10:1357:20 | Address | &:r1357_13 | +| ir.cpp:1357:10:1357:20 | Address | &:r1357_17 | +| ir.cpp:1357:10:1357:20 | Address | &:r1357_20 | +| ir.cpp:1357:10:1357:20 | Condition | r1357_18 | +| ir.cpp:1357:10:1357:20 | Load | m1357_16 | +| ir.cpp:1357:10:1357:20 | Phi | from 21:m1357_15 | +| ir.cpp:1357:10:1357:20 | Phi | from 23:m1357_22 | +| ir.cpp:1357:10:1357:20 | StoreValue | r1357_14 | +| ir.cpp:1357:10:1357:20 | StoreValue | r1357_18 | +| ir.cpp:1357:10:1357:20 | StoreValue | r1357_21 | +| ir.cpp:1357:15:1357:15 | Address | &:r1357_23 | +| ir.cpp:1357:15:1357:15 | Condition | r1357_24 | +| ir.cpp:1357:15:1357:15 | Load | m1348_6 | +| ir.cpp:1357:20:1357:20 | Address | &:r1357_26 | +| ir.cpp:1357:20:1357:20 | Condition | r1357_29 | +| ir.cpp:1357:20:1357:20 | Left | r1357_27 | +| ir.cpp:1357:20:1357:20 | Load | m1348_10 | +| ir.cpp:1357:20:1357:20 | Right | r1357_28 | +| ir.cpp:1357:26:1357:26 | Address | &:r1357_31 | +| ir.cpp:1357:26:1357:26 | Load | m1348_8 | +| ir.cpp:1357:26:1357:26 | StoreValue | r1357_32 | +| ir.cpp:1363:5:1363:27 | Address | &:r1363_9 | +| ir.cpp:1363:5:1363:27 | ChiPartial | partial:m1363_3 | +| ir.cpp:1363:5:1363:27 | ChiTotal | total:m1363_2 | +| ir.cpp:1363:5:1363:27 | Load | m1364_11 | +| ir.cpp:1363:5:1363:27 | SideEffect | ~m1364_7 | +| ir.cpp:1363:33:1363:33 | Address | &:r1363_5 | +| ir.cpp:1363:40:1363:40 | Address | &:r1363_7 | +| ir.cpp:1364:5:1364:48 | Address | &:r1364_1 | +| ir.cpp:1364:12:1364:21 | CallTarget | func:r1364_2 | +| ir.cpp:1364:12:1364:21 | ChiPartial | partial:m1364_4 | +| ir.cpp:1364:12:1364:21 | ChiTotal | total:m1363_4 | +| ir.cpp:1364:12:1364:21 | Condition | r1364_3 | +| ir.cpp:1364:12:1364:21 | SideEffect | ~m1363_4 | +| ir.cpp:1364:12:1364:47 | Address | &:r1364_9 | +| ir.cpp:1364:12:1364:47 | Address | &:r1364_19 | +| ir.cpp:1364:12:1364:47 | Address | &:r1364_24 | +| ir.cpp:1364:12:1364:47 | Load | m1364_8 | +| ir.cpp:1364:12:1364:47 | Phi | from 3:m1364_20 | +| ir.cpp:1364:12:1364:47 | Phi | from 3:~m1364_15 | +| ir.cpp:1364:12:1364:47 | Phi | from 4:m1364_25 | +| ir.cpp:1364:12:1364:47 | Phi | from 4:~m1364_21 | +| ir.cpp:1364:12:1364:47 | StoreValue | r1364_10 | +| ir.cpp:1364:28:1364:37 | CallTarget | func:r1364_12 | +| ir.cpp:1364:28:1364:37 | ChiPartial | partial:m1364_14 | +| ir.cpp:1364:28:1364:37 | ChiTotal | total:m1364_5 | +| ir.cpp:1364:28:1364:37 | Condition | r1364_13 | +| ir.cpp:1364:28:1364:37 | SideEffect | ~m1364_5 | +| ir.cpp:1364:43:1364:43 | Address | &:r1364_17 | +| ir.cpp:1364:43:1364:43 | Load | m1363_6 | +| ir.cpp:1364:43:1364:43 | StoreValue | r1364_18 | +| ir.cpp:1364:47:1364:47 | Address | &:r1364_22 | +| ir.cpp:1364:47:1364:47 | Load | m1363_8 | +| ir.cpp:1364:47:1364:47 | Phi | from 0:~m1364_5 | +| ir.cpp:1364:47:1364:47 | Phi | from 2:~m1364_15 | +| ir.cpp:1364:47:1364:47 | StoreValue | r1364_23 | +| ir.cpp:1369:6:1369:6 | ChiPartial | partial:m1369_3 | +| ir.cpp:1369:6:1369:6 | ChiTotal | total:m1369_2 | +| ir.cpp:1369:6:1369:6 | SideEffect | ~m1371_8 | +| ir.cpp:1369:13:1369:13 | Address | &:r1369_5 | +| ir.cpp:1369:13:1369:13 | Address | &:r1369_5 | +| ir.cpp:1369:13:1369:13 | Address | &:r1369_7 | +| ir.cpp:1369:13:1369:13 | Address | &:r1369_7 | +| ir.cpp:1369:13:1369:13 | Load | m1369_6 | +| ir.cpp:1369:13:1369:13 | SideEffect | m1369_8 | +| ir.cpp:1371:3:1371:13 | Address | &:r1371_6 | +| ir.cpp:1371:3:1371:13 | Arg(0) | 0:r1371_2 | +| ir.cpp:1371:3:1371:13 | CallTarget | func:r1371_1 | +| ir.cpp:1371:3:1371:13 | ChiPartial | partial:m1371_7 | +| ir.cpp:1371:3:1371:13 | ChiTotal | total:m1369_4 | +| ir.cpp:1371:3:1371:13 | SideEffect | ~m1369_4 | +| ir.cpp:1371:3:1371:13 | Unary | r1371_6 | +| ir.cpp:1371:8:1371:8 | Address | &:r1371_3 | +| ir.cpp:1371:8:1371:8 | Arg(1) | 1:r1371_5 | +| ir.cpp:1371:8:1371:8 | Load | m1369_6 | +| ir.cpp:1371:8:1371:8 | Unary | r1371_4 | +| ir.cpp:1375:3:1375:3 | Address | &:r1375_5 | +| ir.cpp:1375:3:1375:3 | Address | &:r1375_5 | +| ir.cpp:1375:3:1375:3 | Address | &:r1375_5 | +| ir.cpp:1375:3:1375:3 | Address | &:r1375_5 | +| ir.cpp:1375:3:1375:3 | ChiPartial | partial:m1375_3 | +| ir.cpp:1375:3:1375:3 | ChiPartial | partial:m1375_3 | +| ir.cpp:1375:3:1375:3 | ChiPartial | partial:m1375_3 | +| ir.cpp:1375:3:1375:3 | ChiPartial | partial:m1375_3 | +| ir.cpp:1375:3:1375:3 | ChiTotal | total:m1375_2 | +| ir.cpp:1375:3:1375:3 | ChiTotal | total:m1375_2 | +| ir.cpp:1375:3:1375:3 | ChiTotal | total:m1375_2 | +| ir.cpp:1375:3:1375:3 | ChiTotal | total:m1375_2 | +| ir.cpp:1375:3:1375:3 | Load | m1376_3 | +| ir.cpp:1375:3:1375:3 | Load | m1376_3 | +| ir.cpp:1375:3:1375:3 | Load | m1376_8 | +| ir.cpp:1375:3:1375:3 | Load | m1376_8 | +| ir.cpp:1375:3:1375:3 | SideEffect | m1375_3 | +| ir.cpp:1375:3:1375:3 | SideEffect | m1375_3 | +| ir.cpp:1375:3:1375:3 | SideEffect | ~m1376_6 | +| ir.cpp:1375:3:1375:3 | SideEffect | ~m1376_6 | +| ir.cpp:1376:5:1376:15 | Address | &:r1376_1 | +| ir.cpp:1376:5:1376:15 | Address | &:r1376_1 | +| ir.cpp:1376:5:1376:15 | Address | &:r1376_1 | +| ir.cpp:1376:5:1376:15 | Address | &:r1376_1 | +| ir.cpp:1376:5:1376:15 | Address | &:r1376_1 | +| ir.cpp:1376:5:1376:15 | Address | &:r1376_1 | +| ir.cpp:1376:5:1376:15 | Arg(this) | this:r1376_1 | +| ir.cpp:1376:5:1376:15 | Arg(this) | this:r1376_1 | +| ir.cpp:1376:5:1376:15 | CallTarget | func:r1376_3 | +| ir.cpp:1376:5:1376:15 | CallTarget | func:r1376_3 | +| ir.cpp:1376:5:1376:15 | ChiPartial | partial:m1376_5 | +| ir.cpp:1376:5:1376:15 | ChiPartial | partial:m1376_5 | +| ir.cpp:1376:5:1376:15 | ChiPartial | partial:m1376_7 | +| ir.cpp:1376:5:1376:15 | ChiPartial | partial:m1376_7 | +| ir.cpp:1376:5:1376:15 | ChiTotal | total:m1375_4 | +| ir.cpp:1376:5:1376:15 | ChiTotal | total:m1375_4 | +| ir.cpp:1376:5:1376:15 | ChiTotal | total:m1376_2 | +| ir.cpp:1376:5:1376:15 | ChiTotal | total:m1376_2 | +| ir.cpp:1376:5:1376:15 | SideEffect | ~m1375_4 | +| ir.cpp:1376:5:1376:15 | SideEffect | ~m1375_4 | +| ir.cpp:1376:5:1376:15 | StoreValue | r1376_2 | +| ir.cpp:1376:5:1376:15 | StoreValue | r1376_2 | +| ir.cpp:1414:6:1414:21 | ChiPartial | partial:m1414_3 | +| ir.cpp:1414:6:1414:21 | ChiTotal | total:m1414_2 | +| ir.cpp:1414:6:1414:21 | SideEffect | ~m1426_6 | +| ir.cpp:1415:12:1415:12 | Address | &:r1415_1 | +| ir.cpp:1415:16:1415:34 | CallTarget | func:r1415_2 | +| ir.cpp:1415:16:1415:34 | ChiPartial | partial:m1415_4 | +| ir.cpp:1415:16:1415:34 | ChiTotal | total:m1414_4 | +| ir.cpp:1415:16:1415:34 | SideEffect | ~m1414_4 | +| ir.cpp:1415:16:1415:34 | StoreValue | r1415_3 | +| ir.cpp:1416:19:1416:20 | Address | &:r1416_1 | +| ir.cpp:1416:24:1416:42 | CallTarget | func:r1416_3 | +| ir.cpp:1416:24:1416:42 | ChiPartial | partial:m1416_5 | +| ir.cpp:1416:24:1416:42 | ChiTotal | total:m1415_5 | +| ir.cpp:1416:24:1416:42 | SideEffect | ~m1415_5 | +| ir.cpp:1416:24:1416:42 | StoreValue | r1416_4 | +| ir.cpp:1416:24:1416:44 | Address | &:r1416_2 | +| ir.cpp:1416:24:1416:44 | StoreValue | r1416_9 | +| ir.cpp:1416:24:1416:44 | Unary | r1416_2 | +| ir.cpp:1416:24:1416:44 | Unary | r1416_8 | +| ir.cpp:1418:5:1418:13 | CallTarget | func:r1418_1 | +| ir.cpp:1418:5:1418:13 | ChiPartial | partial:m1418_6 | +| ir.cpp:1418:5:1418:13 | ChiTotal | total:m1416_6 | +| ir.cpp:1418:5:1418:13 | SideEffect | ~m1416_6 | +| ir.cpp:1418:15:1418:15 | Address | &:r1418_4 | +| ir.cpp:1418:15:1418:15 | Arg(0) | 0:r1418_4 | +| ir.cpp:1418:15:1418:15 | SideEffect | ~m1415_6 | +| ir.cpp:1418:15:1418:15 | Unary | r1418_2 | +| ir.cpp:1418:15:1418:15 | Unary | r1418_3 | +| ir.cpp:1419:5:1419:21 | CallTarget | func:r1419_1 | +| ir.cpp:1419:5:1419:21 | ChiPartial | partial:m1419_15 | +| ir.cpp:1419:5:1419:21 | ChiTotal | total:m1419_9 | +| ir.cpp:1419:5:1419:21 | SideEffect | ~m1419_9 | +| ir.cpp:1419:23:1419:27 | Address | &:r1419_2 | +| ir.cpp:1419:23:1419:27 | Address | &:r1419_2 | +| ir.cpp:1419:23:1419:27 | Address | &:r1419_6 | +| ir.cpp:1419:23:1419:27 | Address | &:r1419_13 | +| ir.cpp:1419:23:1419:27 | Arg(0) | 0:r1419_6 | +| ir.cpp:1419:23:1419:27 | Arg(0) | 0:r1419_13 | +| ir.cpp:1419:23:1419:27 | Arg(this) | this:r1419_2 | +| ir.cpp:1419:23:1419:27 | CallTarget | func:r1419_4 | +| ir.cpp:1419:23:1419:27 | ChiPartial | partial:m1419_8 | +| ir.cpp:1419:23:1419:27 | ChiPartial | partial:m1419_11 | +| ir.cpp:1419:23:1419:27 | ChiTotal | total:m1418_7 | +| ir.cpp:1419:23:1419:27 | ChiTotal | total:m1419_3 | +| ir.cpp:1419:23:1419:27 | SideEffect | ~m1414_3 | +| ir.cpp:1419:23:1419:27 | SideEffect | ~m1418_7 | +| ir.cpp:1419:23:1419:27 | SideEffect | ~m1419_12 | +| ir.cpp:1419:23:1419:27 | Unary | r1419_2 | +| ir.cpp:1419:23:1419:27 | Unary | r1419_5 | +| ir.cpp:1420:5:1420:15 | CallTarget | func:r1420_1 | +| ir.cpp:1420:5:1420:15 | ChiPartial | partial:m1420_16 | +| ir.cpp:1420:5:1420:15 | ChiTotal | total:m1420_10 | +| ir.cpp:1420:5:1420:15 | SideEffect | ~m1420_10 | +| ir.cpp:1420:17:1420:17 | Address | &:r1420_2 | +| ir.cpp:1420:17:1420:17 | Address | &:r1420_2 | +| ir.cpp:1420:17:1420:17 | Address | &:r1420_2 | +| ir.cpp:1420:17:1420:17 | Address | &:r1420_7 | +| ir.cpp:1420:17:1420:17 | Arg(0) | 0:r1420_7 | +| ir.cpp:1420:17:1420:17 | Arg(0) | 0:r1420_14 | +| ir.cpp:1420:17:1420:17 | Arg(this) | this:r1420_2 | +| ir.cpp:1420:17:1420:17 | CallTarget | func:r1420_4 | +| ir.cpp:1420:17:1420:17 | ChiPartial | partial:m1420_9 | +| ir.cpp:1420:17:1420:17 | ChiPartial | partial:m1420_12 | +| ir.cpp:1420:17:1420:17 | ChiTotal | total:m1419_16 | +| ir.cpp:1420:17:1420:17 | ChiTotal | total:m1420_3 | +| ir.cpp:1420:17:1420:17 | Load | m1420_13 | +| ir.cpp:1420:17:1420:17 | SideEffect | ~m1415_6 | +| ir.cpp:1420:17:1420:17 | SideEffect | ~m1419_16 | +| ir.cpp:1420:17:1420:17 | Unary | r1420_5 | +| ir.cpp:1420:17:1420:17 | Unary | r1420_6 | +| ir.cpp:1421:5:1421:23 | CallTarget | func:r1421_1 | +| ir.cpp:1421:5:1421:23 | ChiPartial | partial:m1421_15 | +| ir.cpp:1421:5:1421:23 | ChiTotal | total:m1421_9 | +| ir.cpp:1421:5:1421:23 | SideEffect | ~m1421_9 | +| ir.cpp:1421:25:1421:29 | Address | &:r1421_2 | +| ir.cpp:1421:25:1421:29 | Address | &:r1421_2 | +| ir.cpp:1421:25:1421:29 | Address | &:r1421_2 | +| ir.cpp:1421:25:1421:29 | Address | &:r1421_6 | +| ir.cpp:1421:25:1421:29 | Arg(0) | 0:r1421_6 | +| ir.cpp:1421:25:1421:29 | Arg(0) | 0:r1421_13 | +| ir.cpp:1421:25:1421:29 | Arg(this) | this:r1421_2 | +| ir.cpp:1421:25:1421:29 | CallTarget | func:r1421_4 | +| ir.cpp:1421:25:1421:29 | ChiPartial | partial:m1421_8 | +| ir.cpp:1421:25:1421:29 | ChiPartial | partial:m1421_11 | +| ir.cpp:1421:25:1421:29 | ChiTotal | total:m1420_17 | +| ir.cpp:1421:25:1421:29 | ChiTotal | total:m1421_3 | +| ir.cpp:1421:25:1421:29 | Load | m1421_12 | +| ir.cpp:1421:25:1421:29 | SideEffect | ~m1414_3 | +| ir.cpp:1421:25:1421:29 | SideEffect | ~m1420_17 | +| ir.cpp:1421:25:1421:29 | Unary | r1421_5 | +| ir.cpp:1422:5:1422:12 | Address | &:r1422_1 | +| ir.cpp:1422:5:1422:12 | Address | &:r1422_1 | +| ir.cpp:1422:5:1422:12 | Address | &:r1422_9 | +| ir.cpp:1422:5:1422:12 | Arg(this) | this:r1422_1 | +| ir.cpp:1422:5:1422:12 | Arg(this) | this:r1422_9 | +| ir.cpp:1422:5:1422:12 | CallTarget | func:r1422_3 | +| ir.cpp:1422:5:1422:12 | ChiPartial | partial:m1422_5 | +| ir.cpp:1422:5:1422:12 | ChiPartial | partial:m1422_7 | +| ir.cpp:1422:5:1422:12 | ChiTotal | total:m1421_16 | +| ir.cpp:1422:5:1422:12 | ChiTotal | total:m1422_2 | +| ir.cpp:1422:5:1422:12 | SideEffect | m1422_8 | +| ir.cpp:1422:5:1422:12 | SideEffect | ~m1421_16 | +| ir.cpp:1422:5:1422:12 | Unary | r1422_1 | +| ir.cpp:1422:14:1422:18 | CallTarget | func:r1422_10 | +| ir.cpp:1422:14:1422:18 | ChiPartial | partial:m1422_12 | +| ir.cpp:1422:14:1422:18 | ChiTotal | total:m1422_6 | +| ir.cpp:1422:14:1422:18 | SideEffect | ~m1422_6 | +| ir.cpp:1423:5:1423:23 | CallTarget | func:r1423_2 | +| ir.cpp:1423:5:1423:23 | ChiPartial | partial:m1423_4 | +| ir.cpp:1423:5:1423:23 | ChiTotal | total:m1422_13 | +| ir.cpp:1423:5:1423:23 | SideEffect | ~m1422_13 | +| ir.cpp:1423:5:1423:23 | StoreValue | r1423_3 | +| ir.cpp:1423:5:1423:25 | Address | &:r1423_1 | +| ir.cpp:1423:5:1423:25 | Address | &:r1423_7 | +| ir.cpp:1423:5:1423:25 | Arg(this) | this:r1423_7 | +| ir.cpp:1423:5:1423:25 | SideEffect | m1423_6 | +| ir.cpp:1423:5:1423:25 | Unary | r1423_1 | +| ir.cpp:1423:27:1423:31 | CallTarget | func:r1423_8 | +| ir.cpp:1423:27:1423:31 | ChiPartial | partial:m1423_10 | +| ir.cpp:1423:27:1423:31 | ChiTotal | total:m1423_5 | +| ir.cpp:1423:27:1423:31 | SideEffect | ~m1423_5 | +| ir.cpp:1425:5:1425:28 | CallTarget | func:r1425_2 | +| ir.cpp:1425:5:1425:28 | ChiPartial | partial:m1425_4 | +| ir.cpp:1425:5:1425:28 | ChiTotal | total:m1423_11 | +| ir.cpp:1425:5:1425:28 | SideEffect | ~m1423_11 | +| ir.cpp:1425:5:1425:28 | StoreValue | r1425_3 | +| ir.cpp:1425:5:1425:30 | Address | &:r1425_1 | +| ir.cpp:1426:1:1426:1 | Address | &:r1426_2 | +| ir.cpp:1426:1:1426:1 | Address | &:r1426_2 | +| ir.cpp:1426:1:1426:1 | Arg(this) | this:r1426_2 | +| ir.cpp:1426:1:1426:1 | CallTarget | func:r1426_3 | +| ir.cpp:1426:1:1426:1 | ChiPartial | partial:m1426_5 | +| ir.cpp:1426:1:1426:1 | ChiPartial | partial:m1426_8 | +| ir.cpp:1426:1:1426:1 | ChiTotal | total:m1415_6 | +| ir.cpp:1426:1:1426:1 | ChiTotal | total:m1425_5 | +| ir.cpp:1426:1:1426:1 | SideEffect | m1415_6 | +| ir.cpp:1426:1:1426:1 | SideEffect | ~m1425_5 | +| ir.cpp:1428:6:1428:30 | ChiPartial | partial:m1428_3 | +| ir.cpp:1428:6:1428:30 | ChiTotal | total:m1428_2 | +| ir.cpp:1428:6:1428:30 | SideEffect | ~m1438_14 | +| ir.cpp:1429:21:1429:21 | Address | &:r1429_1 | +| ir.cpp:1429:25:1429:52 | CallTarget | func:r1429_2 | +| ir.cpp:1429:25:1429:52 | ChiPartial | partial:m1429_4 | +| ir.cpp:1429:25:1429:52 | ChiTotal | total:m1428_4 | +| ir.cpp:1429:25:1429:52 | SideEffect | ~m1428_4 | +| ir.cpp:1429:25:1429:52 | StoreValue | r1429_3 | +| ir.cpp:1430:28:1430:29 | Address | &:r1430_1 | +| ir.cpp:1430:33:1430:60 | CallTarget | func:r1430_3 | +| ir.cpp:1430:33:1430:60 | ChiPartial | partial:m1430_5 | +| ir.cpp:1430:33:1430:60 | ChiTotal | total:m1429_5 | +| ir.cpp:1430:33:1430:60 | SideEffect | ~m1429_5 | +| ir.cpp:1430:33:1430:60 | StoreValue | r1430_4 | +| ir.cpp:1430:33:1430:62 | Address | &:r1430_2 | +| ir.cpp:1430:33:1430:62 | StoreValue | r1430_9 | +| ir.cpp:1430:33:1430:62 | Unary | r1430_2 | +| ir.cpp:1430:33:1430:62 | Unary | r1430_8 | +| ir.cpp:1431:21:1431:22 | Address | &:r1431_1 | +| ir.cpp:1432:5:1432:13 | CallTarget | func:r1432_1 | +| ir.cpp:1432:5:1432:13 | ChiPartial | partial:m1432_6 | +| ir.cpp:1432:5:1432:13 | ChiTotal | total:m1430_6 | +| ir.cpp:1432:5:1432:13 | SideEffect | ~m1430_6 | +| ir.cpp:1432:15:1432:15 | Address | &:r1432_4 | +| ir.cpp:1432:15:1432:15 | Arg(0) | 0:r1432_4 | +| ir.cpp:1432:15:1432:15 | SideEffect | ~m1429_6 | +| ir.cpp:1432:15:1432:15 | Unary | r1432_2 | +| ir.cpp:1432:15:1432:15 | Unary | r1432_3 | +| ir.cpp:1433:5:1433:15 | CallTarget | func:r1433_1 | +| ir.cpp:1433:5:1433:15 | ChiPartial | partial:m1433_8 | +| ir.cpp:1433:5:1433:15 | ChiTotal | total:m1432_7 | +| ir.cpp:1433:5:1433:15 | SideEffect | ~m1432_7 | +| ir.cpp:1433:17:1433:17 | Address | &:r1433_2 | +| ir.cpp:1433:17:1433:17 | Address | &:r1433_2 | +| ir.cpp:1433:17:1433:17 | Address | &:r1433_3 | +| ir.cpp:1433:17:1433:17 | Arg(0) | 0:r1433_6 | +| ir.cpp:1433:17:1433:17 | Load | m1429_6 | +| ir.cpp:1433:17:1433:17 | Load | m1433_5 | +| ir.cpp:1433:17:1433:17 | StoreValue | r1433_4 | +| ir.cpp:1434:5:1434:21 | Address | &:r1434_1 | +| ir.cpp:1434:5:1434:21 | Address | &:r1434_1 | +| ir.cpp:1434:5:1434:21 | Address | &:r1434_1 | +| ir.cpp:1434:5:1434:21 | Arg(this) | this:r1434_1 | +| ir.cpp:1434:5:1434:21 | ChiPartial | partial:m1434_9 | +| ir.cpp:1434:5:1434:21 | ChiTotal | total:m1434_3 | +| ir.cpp:1434:5:1434:21 | SideEffect | m1434_3 | +| ir.cpp:1434:5:1434:21 | StoreValue | r1434_2 | +| ir.cpp:1434:23:1434:28 | CallTarget | func:r1434_4 | +| ir.cpp:1434:23:1434:28 | ChiPartial | partial:m1434_6 | +| ir.cpp:1434:23:1434:28 | ChiTotal | total:m1433_9 | +| ir.cpp:1434:23:1434:28 | SideEffect | ~m1433_9 | +| ir.cpp:1435:5:1435:32 | CallTarget | func:r1435_2 | +| ir.cpp:1435:5:1435:32 | ChiPartial | partial:m1435_4 | +| ir.cpp:1435:5:1435:32 | ChiTotal | total:m1434_7 | +| ir.cpp:1435:5:1435:32 | SideEffect | ~m1434_7 | +| ir.cpp:1435:5:1435:32 | StoreValue | r1435_3 | +| ir.cpp:1435:5:1435:34 | Address | &:r1435_1 | +| ir.cpp:1435:5:1435:34 | Address | &:r1435_1 | +| ir.cpp:1435:5:1435:34 | Address | &:r1435_1 | +| ir.cpp:1435:5:1435:34 | Arg(this) | this:r1435_1 | +| ir.cpp:1435:5:1435:34 | ChiPartial | partial:m1435_12 | +| ir.cpp:1435:5:1435:34 | ChiTotal | total:m1435_6 | +| ir.cpp:1435:5:1435:34 | SideEffect | m1435_6 | +| ir.cpp:1435:36:1435:41 | CallTarget | func:r1435_7 | +| ir.cpp:1435:36:1435:41 | ChiPartial | partial:m1435_9 | +| ir.cpp:1435:36:1435:41 | ChiTotal | total:m1435_5 | +| ir.cpp:1435:36:1435:41 | SideEffect | ~m1435_5 | +| ir.cpp:1437:5:1437:37 | CallTarget | func:r1437_2 | +| ir.cpp:1437:5:1437:37 | ChiPartial | partial:m1437_4 | +| ir.cpp:1437:5:1437:37 | ChiTotal | total:m1435_10 | +| ir.cpp:1437:5:1437:37 | SideEffect | ~m1435_10 | +| ir.cpp:1437:5:1437:37 | StoreValue | r1437_3 | +| ir.cpp:1437:5:1437:39 | Address | &:r1437_1 | +| ir.cpp:1438:1:1438:1 | Address | &:r1438_2 | +| ir.cpp:1438:1:1438:1 | Address | &:r1438_2 | +| ir.cpp:1438:1:1438:1 | Address | &:r1438_10 | +| ir.cpp:1438:1:1438:1 | Address | &:r1438_10 | +| ir.cpp:1438:1:1438:1 | Arg(this) | this:r1438_2 | +| ir.cpp:1438:1:1438:1 | Arg(this) | this:r1438_10 | +| ir.cpp:1438:1:1438:1 | CallTarget | func:r1438_3 | +| ir.cpp:1438:1:1438:1 | CallTarget | func:r1438_11 | +| ir.cpp:1438:1:1438:1 | ChiPartial | partial:m1438_5 | +| ir.cpp:1438:1:1438:1 | ChiPartial | partial:m1438_8 | +| ir.cpp:1438:1:1438:1 | ChiPartial | partial:m1438_13 | +| ir.cpp:1438:1:1438:1 | ChiPartial | partial:m1438_16 | +| ir.cpp:1438:1:1438:1 | ChiTotal | total:m1429_6 | +| ir.cpp:1438:1:1438:1 | ChiTotal | total:m1431_2 | +| ir.cpp:1438:1:1438:1 | ChiTotal | total:m1437_5 | +| ir.cpp:1438:1:1438:1 | ChiTotal | total:m1438_6 | +| ir.cpp:1438:1:1438:1 | SideEffect | m1429_6 | +| ir.cpp:1438:1:1438:1 | SideEffect | m1431_2 | +| ir.cpp:1438:1:1438:1 | SideEffect | ~m1437_5 | +| ir.cpp:1438:1:1438:1 | SideEffect | ~m1438_6 | +| ir.cpp:1440:6:1440:31 | ChiPartial | partial:m1440_3 | +| ir.cpp:1440:6:1440:31 | ChiTotal | total:m1440_2 | +| ir.cpp:1440:6:1440:31 | SideEffect | ~m1450_6 | +| ir.cpp:1441:22:1441:22 | Address | &:r1441_1 | +| ir.cpp:1441:26:1441:54 | CallTarget | func:r1441_2 | +| ir.cpp:1441:26:1441:54 | ChiPartial | partial:m1441_4 | +| ir.cpp:1441:26:1441:54 | ChiTotal | total:m1440_4 | +| ir.cpp:1441:26:1441:54 | SideEffect | ~m1440_4 | +| ir.cpp:1441:26:1441:54 | StoreValue | r1441_3 | +| ir.cpp:1442:29:1442:30 | Address | &:r1442_1 | +| ir.cpp:1442:34:1442:62 | CallTarget | func:r1442_3 | +| ir.cpp:1442:34:1442:62 | ChiPartial | partial:m1442_5 | +| ir.cpp:1442:34:1442:62 | ChiTotal | total:m1441_5 | +| ir.cpp:1442:34:1442:62 | SideEffect | ~m1441_5 | +| ir.cpp:1442:34:1442:62 | StoreValue | r1442_4 | +| ir.cpp:1442:34:1442:64 | Address | &:r1442_2 | +| ir.cpp:1442:34:1442:64 | StoreValue | r1442_9 | +| ir.cpp:1442:34:1442:64 | Unary | r1442_2 | +| ir.cpp:1442:34:1442:64 | Unary | r1442_8 | +| ir.cpp:1443:22:1443:23 | Address | &:r1443_1 | +| ir.cpp:1443:22:1443:23 | Address | &:r1443_1 | +| ir.cpp:1443:22:1443:23 | Arg(this) | this:r1443_1 | +| ir.cpp:1443:22:1443:23 | CallTarget | func:r1443_3 | +| ir.cpp:1443:22:1443:23 | ChiPartial | partial:m1443_5 | +| ir.cpp:1443:22:1443:23 | ChiPartial | partial:m1443_7 | +| ir.cpp:1443:22:1443:23 | ChiTotal | total:m1442_6 | +| ir.cpp:1443:22:1443:23 | ChiTotal | total:m1443_2 | +| ir.cpp:1443:22:1443:23 | SideEffect | ~m1442_6 | +| ir.cpp:1444:5:1444:13 | CallTarget | func:r1444_1 | +| ir.cpp:1444:5:1444:13 | ChiPartial | partial:m1444_6 | +| ir.cpp:1444:5:1444:13 | ChiTotal | total:m1443_6 | +| ir.cpp:1444:5:1444:13 | SideEffect | ~m1443_6 | +| ir.cpp:1444:15:1444:15 | Address | &:r1444_4 | +| ir.cpp:1444:15:1444:15 | Arg(0) | 0:r1444_4 | +| ir.cpp:1444:15:1444:15 | SideEffect | ~m1441_6 | +| ir.cpp:1444:15:1444:15 | Unary | r1444_2 | +| ir.cpp:1444:15:1444:15 | Unary | r1444_3 | +| ir.cpp:1445:5:1445:15 | CallTarget | func:r1445_1 | +| ir.cpp:1445:5:1445:15 | ChiPartial | partial:m1445_16 | +| ir.cpp:1445:5:1445:15 | ChiTotal | total:m1445_10 | +| ir.cpp:1445:5:1445:15 | SideEffect | ~m1445_10 | +| ir.cpp:1445:17:1445:17 | Address | &:r1445_2 | +| ir.cpp:1445:17:1445:17 | Address | &:r1445_2 | +| ir.cpp:1445:17:1445:17 | Address | &:r1445_2 | +| ir.cpp:1445:17:1445:17 | Address | &:r1445_7 | +| ir.cpp:1445:17:1445:17 | Arg(0) | 0:r1445_7 | +| ir.cpp:1445:17:1445:17 | Arg(0) | 0:r1445_14 | +| ir.cpp:1445:17:1445:17 | Arg(this) | this:r1445_2 | +| ir.cpp:1445:17:1445:17 | CallTarget | func:r1445_4 | +| ir.cpp:1445:17:1445:17 | ChiPartial | partial:m1445_9 | +| ir.cpp:1445:17:1445:17 | ChiPartial | partial:m1445_12 | +| ir.cpp:1445:17:1445:17 | ChiTotal | total:m1444_7 | +| ir.cpp:1445:17:1445:17 | ChiTotal | total:m1445_3 | +| ir.cpp:1445:17:1445:17 | Load | m1445_13 | +| ir.cpp:1445:17:1445:17 | SideEffect | ~m1441_6 | +| ir.cpp:1445:17:1445:17 | SideEffect | ~m1444_7 | +| ir.cpp:1445:17:1445:17 | Unary | r1445_5 | +| ir.cpp:1445:17:1445:17 | Unary | r1445_6 | +| ir.cpp:1446:5:1446:22 | Address | &:r1446_1 | +| ir.cpp:1446:5:1446:22 | Address | &:r1446_1 | +| ir.cpp:1446:5:1446:22 | Address | &:r1446_1 | +| ir.cpp:1446:5:1446:22 | Address | &:r1446_1 | +| ir.cpp:1446:5:1446:22 | Arg(this) | this:r1446_1 | +| ir.cpp:1446:5:1446:22 | Arg(this) | this:r1446_1 | +| ir.cpp:1446:5:1446:22 | CallTarget | func:r1446_3 | +| ir.cpp:1446:5:1446:22 | ChiPartial | partial:m1446_5 | +| ir.cpp:1446:5:1446:22 | ChiPartial | partial:m1446_7 | +| ir.cpp:1446:5:1446:22 | ChiPartial | partial:m1446_14 | +| ir.cpp:1446:5:1446:22 | ChiTotal | total:m1445_17 | +| ir.cpp:1446:5:1446:22 | ChiTotal | total:m1446_2 | +| ir.cpp:1446:5:1446:22 | ChiTotal | total:m1446_8 | +| ir.cpp:1446:5:1446:22 | SideEffect | m1446_8 | +| ir.cpp:1446:5:1446:22 | SideEffect | ~m1445_17 | +| ir.cpp:1446:24:1446:29 | CallTarget | func:r1446_9 | +| ir.cpp:1446:24:1446:29 | ChiPartial | partial:m1446_11 | +| ir.cpp:1446:24:1446:29 | ChiTotal | total:m1446_6 | +| ir.cpp:1446:24:1446:29 | SideEffect | ~m1446_6 | +| ir.cpp:1447:5:1447:33 | CallTarget | func:r1447_2 | +| ir.cpp:1447:5:1447:33 | ChiPartial | partial:m1447_4 | +| ir.cpp:1447:5:1447:33 | ChiTotal | total:m1446_12 | +| ir.cpp:1447:5:1447:33 | SideEffect | ~m1446_12 | +| ir.cpp:1447:5:1447:33 | StoreValue | r1447_3 | +| ir.cpp:1447:5:1447:35 | Address | &:r1447_1 | +| ir.cpp:1447:5:1447:35 | Address | &:r1447_1 | +| ir.cpp:1447:5:1447:35 | Address | &:r1447_1 | +| ir.cpp:1447:5:1447:35 | Arg(this) | this:r1447_1 | +| ir.cpp:1447:5:1447:35 | ChiPartial | partial:m1447_12 | +| ir.cpp:1447:5:1447:35 | ChiTotal | total:m1447_6 | +| ir.cpp:1447:5:1447:35 | SideEffect | m1447_6 | +| ir.cpp:1447:37:1447:42 | CallTarget | func:r1447_7 | +| ir.cpp:1447:37:1447:42 | ChiPartial | partial:m1447_9 | +| ir.cpp:1447:37:1447:42 | ChiTotal | total:m1447_5 | +| ir.cpp:1447:37:1447:42 | SideEffect | ~m1447_5 | +| ir.cpp:1448:5:1448:38 | CallTarget | func:r1448_2 | +| ir.cpp:1448:5:1448:38 | ChiPartial | partial:m1448_4 | +| ir.cpp:1448:5:1448:38 | ChiTotal | total:m1447_10 | +| ir.cpp:1448:5:1448:38 | SideEffect | ~m1447_10 | +| ir.cpp:1448:5:1448:38 | StoreValue | r1448_3 | +| ir.cpp:1448:5:1448:40 | Address | &:r1448_1 | +| ir.cpp:1450:9:1450:9 | Address | &:r1450_1 | +| ir.cpp:1450:13:1450:41 | CallTarget | func:r1450_3 | +| ir.cpp:1450:13:1450:41 | ChiPartial | partial:m1450_5 | +| ir.cpp:1450:13:1450:41 | ChiTotal | total:m1448_5 | +| ir.cpp:1450:13:1450:41 | SideEffect | ~m1448_5 | +| ir.cpp:1450:13:1450:41 | StoreValue | r1450_4 | +| ir.cpp:1450:13:1450:43 | Address | &:r1450_2 | +| ir.cpp:1450:13:1450:43 | Unary | r1450_2 | +| ir.cpp:1450:45:1450:45 | Address | &:r1450_8 | +| ir.cpp:1450:45:1450:45 | Load | ~m1450_7 | +| ir.cpp:1450:45:1450:45 | StoreValue | r1450_9 | +| ir.cpp:1453:6:1453:20 | ChiPartial | partial:m1453_3 | +| ir.cpp:1453:6:1453:20 | ChiTotal | total:m1453_2 | +| ir.cpp:1453:6:1453:20 | SideEffect | ~m1462_4 | +| ir.cpp:1454:11:1454:11 | Address | &:r1454_1 | +| ir.cpp:1454:15:1454:32 | CallTarget | func:r1454_2 | +| ir.cpp:1454:15:1454:32 | ChiPartial | partial:m1454_4 | +| ir.cpp:1454:15:1454:32 | ChiTotal | total:m1453_4 | +| ir.cpp:1454:15:1454:32 | SideEffect | ~m1453_4 | +| ir.cpp:1454:15:1454:32 | StoreValue | r1454_3 | +| ir.cpp:1455:18:1455:19 | Address | &:r1455_1 | +| ir.cpp:1455:23:1455:40 | CallTarget | func:r1455_3 | +| ir.cpp:1455:23:1455:40 | ChiPartial | partial:m1455_5 | +| ir.cpp:1455:23:1455:40 | ChiTotal | total:m1454_5 | +| ir.cpp:1455:23:1455:40 | SideEffect | ~m1454_5 | +| ir.cpp:1455:23:1455:40 | StoreValue | r1455_4 | +| ir.cpp:1455:23:1455:42 | Address | &:r1455_2 | +| ir.cpp:1455:23:1455:42 | StoreValue | r1455_9 | +| ir.cpp:1455:23:1455:42 | Unary | r1455_2 | +| ir.cpp:1455:23:1455:42 | Unary | r1455_8 | +| ir.cpp:1457:5:1457:13 | CallTarget | func:r1457_1 | +| ir.cpp:1457:5:1457:13 | ChiPartial | partial:m1457_6 | +| ir.cpp:1457:5:1457:13 | ChiTotal | total:m1455_6 | +| ir.cpp:1457:5:1457:13 | SideEffect | ~m1455_6 | +| ir.cpp:1457:15:1457:15 | Address | &:r1457_4 | +| ir.cpp:1457:15:1457:15 | Arg(0) | 0:r1457_4 | +| ir.cpp:1457:15:1457:15 | SideEffect | ~m1454_6 | +| ir.cpp:1457:15:1457:15 | Unary | r1457_2 | +| ir.cpp:1457:15:1457:15 | Unary | r1457_3 | +| ir.cpp:1458:5:1458:15 | CallTarget | func:r1458_1 | +| ir.cpp:1458:5:1458:15 | ChiPartial | partial:m1458_5 | +| ir.cpp:1458:5:1458:15 | ChiTotal | total:m1457_7 | +| ir.cpp:1458:5:1458:15 | SideEffect | ~m1457_7 | +| ir.cpp:1458:17:1458:17 | Address | &:r1458_2 | +| ir.cpp:1458:17:1458:17 | Arg(0) | 0:r1458_3 | +| ir.cpp:1458:17:1458:17 | Load | m1454_6 | +| ir.cpp:1460:9:1460:9 | Address | &:r1460_1 | +| ir.cpp:1460:13:1460:30 | Address | &:r1460_6 | +| ir.cpp:1460:13:1460:30 | CallTarget | func:r1460_2 | +| ir.cpp:1460:13:1460:30 | ChiPartial | partial:m1460_4 | +| ir.cpp:1460:13:1460:30 | ChiTotal | total:m1458_6 | +| ir.cpp:1460:13:1460:30 | SideEffect | ~m1458_6 | +| ir.cpp:1460:13:1460:30 | StoreValue | r1460_3 | +| ir.cpp:1460:13:1460:30 | Unary | r1460_6 | +| ir.cpp:1460:34:1460:34 | Address | &:r1460_8 | +| ir.cpp:1460:34:1460:34 | Load | ~m1460_7 | +| ir.cpp:1460:34:1460:34 | StoreValue | r1460_9 | +| ir.cpp:1462:5:1462:27 | CallTarget | func:r1462_1 | +| ir.cpp:1462:5:1462:27 | ChiPartial | partial:m1462_3 | +| ir.cpp:1462:5:1462:27 | ChiTotal | total:m1460_5 | +| ir.cpp:1462:5:1462:27 | SideEffect | ~m1460_5 | +| ir.cpp:1470:6:1470:29 | ChiPartial | partial:m1470_3 | +| ir.cpp:1470:6:1470:29 | ChiTotal | total:m1470_2 | +| ir.cpp:1470:6:1470:29 | SideEffect | ~m1475_5 | +| ir.cpp:1471:16:1471:17 | Address | &:r1471_1 | +| ir.cpp:1471:21:1471:46 | Address | &:r1471_6 | +| ir.cpp:1471:21:1471:46 | CallTarget | func:r1471_2 | +| ir.cpp:1471:21:1471:46 | ChiPartial | partial:m1471_4 | +| ir.cpp:1471:21:1471:46 | ChiTotal | total:m1470_4 | +| ir.cpp:1471:21:1471:46 | SideEffect | ~m1470_4 | +| ir.cpp:1471:21:1471:46 | StoreValue | r1471_3 | +| ir.cpp:1471:21:1471:46 | Unary | r1471_6 | +| ir.cpp:1471:21:1471:50 | StoreValue | r1471_12 | +| ir.cpp:1471:21:1471:50 | Unary | r1471_10 | +| ir.cpp:1471:21:1471:50 | Unary | r1471_11 | +| ir.cpp:1471:50:1471:50 | Address | &:r1471_8 | +| ir.cpp:1471:50:1471:50 | Load | ~m1471_7 | +| ir.cpp:1471:50:1471:50 | Unary | r1471_9 | +| ir.cpp:1472:9:1472:9 | Address | &:r1472_1 | +| ir.cpp:1472:13:1472:38 | Address | &:r1472_6 | +| ir.cpp:1472:13:1472:38 | CallTarget | func:r1472_2 | +| ir.cpp:1472:13:1472:38 | ChiPartial | partial:m1472_4 | +| ir.cpp:1472:13:1472:38 | ChiTotal | total:m1471_5 | +| ir.cpp:1472:13:1472:38 | SideEffect | ~m1471_5 | +| ir.cpp:1472:13:1472:38 | StoreValue | r1472_3 | +| ir.cpp:1472:13:1472:38 | Unary | r1472_6 | +| ir.cpp:1472:13:1472:42 | Load | ~m1472_5 | +| ir.cpp:1472:13:1472:42 | StoreValue | r1472_10 | +| ir.cpp:1472:42:1472:42 | Address | &:r1472_8 | +| ir.cpp:1472:42:1472:42 | Address | &:r1472_9 | +| ir.cpp:1472:42:1472:42 | Load | ~m1472_7 | +| ir.cpp:1474:18:1474:19 | Address | &:r1474_1 | +| ir.cpp:1474:23:1474:48 | Address | &:r1474_6 | +| ir.cpp:1474:23:1474:48 | CallTarget | func:r1474_2 | +| ir.cpp:1474:23:1474:48 | ChiPartial | partial:m1474_4 | +| ir.cpp:1474:23:1474:48 | ChiTotal | total:m1472_5 | +| ir.cpp:1474:23:1474:48 | SideEffect | ~m1472_5 | +| ir.cpp:1474:23:1474:48 | StoreValue | r1474_3 | +| ir.cpp:1474:23:1474:48 | Unary | r1474_6 | +| ir.cpp:1474:23:1474:52 | Left | r1474_9 | +| ir.cpp:1474:23:1474:55 | StoreValue | r1474_13 | +| ir.cpp:1474:23:1474:55 | Unary | r1474_11 | +| ir.cpp:1474:23:1474:55 | Unary | r1474_12 | +| ir.cpp:1474:52:1474:52 | Unary | r1474_8 | +| ir.cpp:1474:54:1474:54 | Right | r1474_10 | +| ir.cpp:1475:11:1475:11 | Address | &:r1475_1 | +| ir.cpp:1475:15:1475:40 | Address | &:r1475_6 | +| ir.cpp:1475:15:1475:40 | CallTarget | func:r1475_2 | +| ir.cpp:1475:15:1475:40 | ChiPartial | partial:m1475_4 | +| ir.cpp:1475:15:1475:40 | ChiTotal | total:m1474_5 | +| ir.cpp:1475:15:1475:40 | SideEffect | ~m1474_5 | +| ir.cpp:1475:15:1475:40 | StoreValue | r1475_3 | +| ir.cpp:1475:15:1475:40 | Unary | r1475_6 | +| ir.cpp:1475:15:1475:44 | Left | r1475_9 | +| ir.cpp:1475:15:1475:47 | Address | &:r1475_11 | +| ir.cpp:1475:15:1475:47 | Load | ~m1475_7 | +| ir.cpp:1475:15:1475:47 | StoreValue | r1475_12 | +| ir.cpp:1475:44:1475:44 | Unary | r1475_8 | +| ir.cpp:1475:46:1475:46 | Right | r1475_10 | +| ir.cpp:1492:6:1492:24 | ChiPartial | partial:m1492_3 | +| ir.cpp:1492:6:1492:24 | ChiTotal | total:m1492_2 | +| ir.cpp:1492:6:1492:24 | SideEffect | ~m1496_10 | +| ir.cpp:1493:14:1493:14 | Address | &:r1493_1 | +| ir.cpp:1493:18:1493:40 | CallTarget | func:r1493_2 | +| ir.cpp:1493:18:1493:40 | ChiPartial | partial:m1493_4 | +| ir.cpp:1493:18:1493:40 | ChiTotal | total:m1492_4 | +| ir.cpp:1493:18:1493:40 | SideEffect | ~m1492_4 | +| ir.cpp:1493:18:1493:40 | StoreValue | r1493_3 | +| ir.cpp:1494:5:1494:5 | Address | &:r1494_10 | +| ir.cpp:1494:9:1494:36 | Address | &:r1494_1 | +| ir.cpp:1494:9:1494:36 | Address | &:r1494_8 | +| ir.cpp:1494:9:1494:36 | Load | ~m1494_6 | +| ir.cpp:1494:9:1494:36 | StoreValue | r1494_9 | +| ir.cpp:1494:9:1494:36 | Unary | r1494_1 | +| ir.cpp:1494:9:1494:36 | Unary | r1494_7 | +| ir.cpp:1494:10:1494:33 | CallTarget | func:r1494_2 | +| ir.cpp:1494:10:1494:33 | ChiPartial | partial:m1494_4 | +| ir.cpp:1494:10:1494:33 | ChiTotal | total:m1493_5 | +| ir.cpp:1494:10:1494:33 | SideEffect | ~m1493_5 | +| ir.cpp:1494:10:1494:33 | StoreValue | r1494_3 | +| ir.cpp:1495:9:1495:9 | Address | &:r1495_1 | +| ir.cpp:1495:13:1495:36 | CallTarget | func:r1495_2 | +| ir.cpp:1495:13:1495:36 | ChiPartial | partial:m1495_4 | +| ir.cpp:1495:13:1495:36 | ChiTotal | total:m1494_5 | +| ir.cpp:1495:13:1495:36 | SideEffect | ~m1494_5 | +| ir.cpp:1495:13:1495:36 | StoreValue | r1495_3 | +| ir.cpp:1495:40:1495:40 | Address | &:r1495_7 | +| ir.cpp:1495:40:1495:40 | Load | ~m1495_6 | +| ir.cpp:1495:40:1495:40 | StoreValue | r1495_8 | +| ir.cpp:1496:11:1496:11 | Address | &:r1496_1 | +| ir.cpp:1496:16:1496:39 | CallTarget | func:r1496_2 | +| ir.cpp:1496:16:1496:39 | ChiPartial | partial:m1496_4 | +| ir.cpp:1496:16:1496:39 | ChiTotal | total:m1495_5 | +| ir.cpp:1496:16:1496:39 | SideEffect | ~m1495_5 | +| ir.cpp:1496:16:1496:39 | StoreValue | r1496_3 | +| ir.cpp:1496:44:1496:44 | Arg(this) | this:r0_11 | +| ir.cpp:1496:44:1496:44 | CallTarget | func:r1496_7 | +| ir.cpp:1496:44:1496:44 | ChiPartial | partial:m1496_9 | +| ir.cpp:1496:44:1496:44 | ChiTotal | total:m1496_5 | +| ir.cpp:1496:44:1496:44 | SideEffect | ~m1496_5 | +| ir.cpp:1496:44:1496:44 | StoreValue | r1496_8 | +| ir.cpp:1500:3:1500:21 | Address | &:r1500_5 | +| ir.cpp:1500:3:1500:21 | Address | &:r1500_5 | +| ir.cpp:1500:3:1500:21 | Address | &:r1500_7 | +| ir.cpp:1500:3:1500:21 | Address | &:r1500_7 | +| ir.cpp:1500:3:1500:21 | ChiPartial | partial:m1500_3 | +| ir.cpp:1500:3:1500:21 | ChiTotal | total:m1500_2 | +| ir.cpp:1500:3:1500:21 | Load | m1500_6 | +| ir.cpp:1500:3:1500:21 | SideEffect | m1500_3 | +| ir.cpp:1500:3:1500:21 | SideEffect | m1500_8 | +| ir.cpp:1506:3:1506:20 | Address | &:r1506_5 | +| ir.cpp:1506:3:1506:20 | Address | &:r1506_5 | +| ir.cpp:1506:3:1506:20 | Address | &:r1506_7 | +| ir.cpp:1506:3:1506:20 | Address | &:r1506_7 | +| ir.cpp:1506:3:1506:20 | ChiPartial | partial:m1506_3 | +| ir.cpp:1506:3:1506:20 | ChiTotal | total:m1506_2 | +| ir.cpp:1506:3:1506:20 | Load | m1506_6 | +| ir.cpp:1506:3:1506:20 | SideEffect | m1506_3 | +| ir.cpp:1506:3:1506:20 | SideEffect | m1507_6 | +| ir.cpp:1506:3:1506:20 | Unary | m1506_6 | +| ir.cpp:1506:26:1506:30 | Address | &:r1506_9 | +| ir.cpp:1506:26:1506:30 | ChiPartial | partial:m1506_11 | +| ir.cpp:1506:26:1506:30 | ChiTotal | total:m1506_8 | +| ir.cpp:1506:26:1506:30 | StoreValue | r1506_10 | +| ir.cpp:1507:5:1507:5 | Address | &:r1507_2 | +| ir.cpp:1507:5:1507:5 | Address | &:r1507_4 | +| ir.cpp:1507:5:1507:5 | Load | m1506_6 | +| ir.cpp:1507:5:1507:5 | Unary | r1507_3 | +| ir.cpp:1507:5:1507:9 | ChiPartial | partial:m1507_5 | +| ir.cpp:1507:5:1507:9 | ChiTotal | total:m1506_12 | +| ir.cpp:1507:9:1507:9 | StoreValue | r1507_1 | +| ir.cpp:1511:6:1511:29 | ChiPartial | partial:m1511_3 | +| ir.cpp:1511:6:1511:29 | ChiTotal | total:m1511_2 | +| ir.cpp:1511:6:1511:29 | SideEffect | m1511_3 | +| ir.cpp:1512:9:1512:10 | Address | &:r1512_1 | +| ir.cpp:1512:9:1512:10 | Left | r1512_1 | +| ir.cpp:1512:9:1512:10 | Left | r1512_1 | +| ir.cpp:1512:16:1512:22 | Address | &:r1512_4 | +| ir.cpp:1512:16:1512:22 | Address | &:r1512_9 | +| ir.cpp:1512:16:1512:22 | Right | r1512_3 | +| ir.cpp:1512:16:1512:22 | Right | r1512_8 | +| ir.cpp:1512:18:1512:18 | ChiPartial | partial:m1512_6 | +| ir.cpp:1512:18:1512:18 | ChiTotal | total:m1512_2 | +| ir.cpp:1512:18:1512:18 | StoreValue | r1512_5 | +| ir.cpp:1512:21:1512:21 | ChiPartial | partial:m1512_11 | +| ir.cpp:1512:21:1512:21 | ChiTotal | total:m1512_7 | +| ir.cpp:1512:21:1512:21 | StoreValue | r1512_10 | +| ir.cpp:1515:15:1515:15 | Address | &:r1515_1 | +| ir.cpp:1515:16:1515:16 | Address | &:r1515_5 | +| ir.cpp:1515:20:1515:20 | Address | &:r1515_6 | +| ir.cpp:1515:26:1515:27 | StoreValue | r1515_3 | +| ir.cpp:1515:26:1515:27 | Unary | r1515_2 | +| ir.cpp:1516:9:1516:10 | Address | &:r1516_2 | +| ir.cpp:1516:9:1516:10 | Address | &:r1516_3 | +| ir.cpp:1516:9:1516:10 | Load | m0_14 | +| ir.cpp:1516:9:1516:14 | ChiPartial | partial:m1516_4 | +| ir.cpp:1516:9:1516:14 | ChiTotal | total:m1512_12 | +| ir.cpp:1516:14:1516:14 | StoreValue | r1516_1 | +| ir.cpp:1517:14:1517:16 | Address | &:r1517_1 | +| ir.cpp:1517:20:1517:21 | Address | &:r1517_2 | +| ir.cpp:1517:20:1517:21 | Load | m0_14 | +| ir.cpp:1517:20:1517:21 | StoreValue | r1517_4 | +| ir.cpp:1517:20:1517:21 | Unary | r1517_3 | +| ir.cpp:1518:13:1518:13 | Address | &:r1518_1 | +| ir.cpp:1518:17:1518:18 | Address | &:r1518_2 | +| ir.cpp:1518:17:1518:18 | Address | &:r1518_3 | +| ir.cpp:1518:17:1518:18 | Load | m0_14 | +| ir.cpp:1518:17:1518:18 | Load | m1516_4 | +| ir.cpp:1518:17:1518:18 | StoreValue | r1518_4 | +| ir.cpp:1522:15:1522:36 | Address | &:r1522_1 | +| ir.cpp:1522:40:1522:41 | StoreValue | r1522_3 | +| ir.cpp:1522:40:1522:41 | Unary | r1522_2 | +| ir.cpp:1523:15:1523:16 | Address | &:r1523_1 | +| ir.cpp:1523:20:1523:41 | Address | &:r1523_2 | +| ir.cpp:1523:20:1523:41 | Left | r1523_5 | +| ir.cpp:1523:20:1523:41 | Load | m1522_4 | +| ir.cpp:1523:20:1523:41 | Unary | r1523_3 | +| ir.cpp:1523:20:1523:41 | Unary | r1523_4 | +| ir.cpp:1523:20:1523:44 | StoreValue | r1523_8 | +| ir.cpp:1523:20:1523:44 | Unary | r1523_7 | +| ir.cpp:1523:43:1523:43 | Right | r1523_6 | +| ir.cpp:1524:15:1524:16 | Address | &:r1524_1 | +| ir.cpp:1524:20:1524:41 | Address | &:r1524_2 | +| ir.cpp:1524:20:1524:41 | Left | r1524_5 | +| ir.cpp:1524:20:1524:41 | Load | m1522_4 | +| ir.cpp:1524:20:1524:41 | Unary | r1524_3 | +| ir.cpp:1524:20:1524:41 | Unary | r1524_4 | +| ir.cpp:1524:20:1524:44 | StoreValue | r1524_8 | +| ir.cpp:1524:20:1524:44 | Unary | r1524_7 | +| ir.cpp:1524:43:1524:43 | Right | r1524_6 | +| ir.cpp:1525:9:1525:10 | Address | &:r1525_2 | +| ir.cpp:1525:9:1525:10 | Address | &:r1525_4 | +| ir.cpp:1525:9:1525:10 | Load | m1524_9 | +| ir.cpp:1525:9:1525:10 | Unary | r1525_3 | +| ir.cpp:1525:9:1525:14 | ChiPartial | partial:m1525_5 | +| ir.cpp:1525:9:1525:14 | ChiTotal | total:m1516_5 | +| ir.cpp:1525:14:1525:14 | StoreValue | r1525_1 | +| ir.cpp:1526:14:1526:16 | Address | &:r1526_1 | +| ir.cpp:1526:20:1526:21 | Address | &:r1526_2 | +| ir.cpp:1526:20:1526:21 | Load | m1524_9 | +| ir.cpp:1526:20:1526:21 | StoreValue | r1526_5 | +| ir.cpp:1526:20:1526:21 | Unary | r1526_3 | +| ir.cpp:1526:20:1526:21 | Unary | r1526_4 | +| ir.cpp:1527:13:1527:13 | Address | &:r1527_1 | +| ir.cpp:1527:17:1527:18 | Address | &:r1527_2 | +| ir.cpp:1527:17:1527:18 | Address | &:r1527_3 | +| ir.cpp:1527:17:1527:18 | Load | m1524_9 | +| ir.cpp:1527:17:1527:18 | Load | m1525_5 | +| ir.cpp:1527:17:1527:18 | StoreValue | r1527_4 | +| ir.cpp:1531:8:1531:8 | Address | &:r1531_5 | +| ir.cpp:1531:8:1531:8 | Address | &:r1531_5 | +| ir.cpp:1531:8:1531:8 | Address | &:r1531_7 | +| ir.cpp:1531:8:1531:8 | Address | &:r1531_7 | +| ir.cpp:1531:8:1531:8 | ChiPartial | partial:m1531_3 | +| ir.cpp:1531:8:1531:8 | ChiTotal | total:m1531_2 | +| ir.cpp:1531:8:1531:8 | Load | m1531_6 | +| ir.cpp:1531:8:1531:8 | SideEffect | m1531_3 | +| ir.cpp:1531:8:1531:8 | SideEffect | m1531_8 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_5 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_5 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_5 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_5 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_7 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_7 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_7 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_7 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_9 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_10 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_13 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_17 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_18 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_21 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_25 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_26 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_29 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_33 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_34 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_37 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_41 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_42 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_45 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_49 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_50 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_53 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_57 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_58 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_61 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_65 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_66 | +| ir.cpp:1535:8:1535:8 | Address | &:r1535_69 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_3 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_3 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_15 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_23 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_31 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_39 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_47 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_55 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_63 | +| ir.cpp:1535:8:1535:8 | ChiPartial | partial:m1535_71 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_2 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_2 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_8 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_16 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_24 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_32 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_40 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_48 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_56 | +| ir.cpp:1535:8:1535:8 | ChiTotal | total:m1535_64 | +| ir.cpp:1535:8:1535:8 | Load | m0_2 | +| ir.cpp:1535:8:1535:8 | Load | m0_2 | +| ir.cpp:1535:8:1535:8 | Load | m0_2 | +| ir.cpp:1535:8:1535:8 | Load | m0_2 | +| ir.cpp:1535:8:1535:8 | Load | m0_2 | +| ir.cpp:1535:8:1535:8 | Load | m0_2 | +| ir.cpp:1535:8:1535:8 | Load | m0_2 | +| ir.cpp:1535:8:1535:8 | Load | m0_2 | +| ir.cpp:1535:8:1535:8 | Load | m1535_6 | +| ir.cpp:1535:8:1535:8 | Load | m1535_6 | +| ir.cpp:1535:8:1535:8 | Load | ~m0_4 | +| ir.cpp:1535:8:1535:8 | Load | ~m0_4 | +| ir.cpp:1535:8:1535:8 | Load | ~m0_4 | +| ir.cpp:1535:8:1535:8 | Load | ~m0_4 | +| ir.cpp:1535:8:1535:8 | Load | ~m0_4 | +| ir.cpp:1535:8:1535:8 | Load | ~m0_4 | +| ir.cpp:1535:8:1535:8 | Load | ~m0_4 | +| ir.cpp:1535:8:1535:8 | Load | ~m0_4 | +| ir.cpp:1535:8:1535:8 | SideEffect | m1535_3 | +| ir.cpp:1535:8:1535:8 | SideEffect | m1535_3 | +| ir.cpp:1535:8:1535:8 | SideEffect | m1535_8 | +| ir.cpp:1535:8:1535:8 | SideEffect | m1535_72 | +| ir.cpp:1535:8:1535:8 | StoreValue | r1535_14 | +| ir.cpp:1535:8:1535:8 | StoreValue | r1535_22 | +| ir.cpp:1535:8:1535:8 | StoreValue | r1535_30 | +| ir.cpp:1535:8:1535:8 | StoreValue | r1535_38 | +| ir.cpp:1535:8:1535:8 | StoreValue | r1535_46 | +| ir.cpp:1535:8:1535:8 | StoreValue | r1535_54 | +| ir.cpp:1535:8:1535:8 | StoreValue | r1535_62 | +| ir.cpp:1535:8:1535:8 | StoreValue | r1535_70 | +| ir.cpp:1535:8:1535:8 | Unary | m1535_6 | +| ir.cpp:1535:8:1535:8 | Unary | m1535_6 | +| ir.cpp:1535:8:1535:8 | Unary | m1535_6 | +| ir.cpp:1535:8:1535:8 | Unary | m1535_6 | +| ir.cpp:1535:8:1535:8 | Unary | m1535_6 | +| ir.cpp:1535:8:1535:8 | Unary | m1535_6 | +| ir.cpp:1535:8:1535:8 | Unary | m1535_6 | +| ir.cpp:1535:8:1535:8 | Unary | m1535_6 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_11 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_12 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_19 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_20 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_27 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_28 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_35 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_36 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_43 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_44 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_51 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_52 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_59 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_60 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_67 | +| ir.cpp:1535:8:1535:8 | Unary | r1535_68 | +| ir.cpp:1548:6:1548:35 | ChiPartial | partial:m1548_3 | +| ir.cpp:1548:6:1548:35 | ChiTotal | total:m1548_2 | +| ir.cpp:1548:6:1548:35 | SideEffect | ~m1574_7 | +| ir.cpp:1549:39:1549:39 | Address | &:r1549_1 | +| ir.cpp:1549:39:1549:39 | Address | &:r1549_1 | +| ir.cpp:1549:39:1549:39 | Arg(this) | this:r1549_1 | +| ir.cpp:1549:39:1549:39 | CallTarget | func:r1549_3 | +| ir.cpp:1549:39:1549:39 | ChiPartial | partial:m1549_5 | +| ir.cpp:1549:39:1549:39 | ChiPartial | partial:m1549_7 | +| ir.cpp:1549:39:1549:39 | ChiTotal | total:m1548_4 | +| ir.cpp:1549:39:1549:39 | ChiTotal | total:m1549_2 | +| ir.cpp:1549:39:1549:39 | SideEffect | ~m1548_4 | +| ir.cpp:1552:14:1552:14 | Address | &:r1552_1 | +| ir.cpp:1552:15:1552:15 | Address | &:r1552_5 | +| ir.cpp:1552:18:1552:18 | Address | &:r1552_9 | +| ir.cpp:1552:21:1552:21 | Address | &:r1552_13 | +| ir.cpp:1552:24:1552:24 | Address | &:r1552_17 | +| ir.cpp:1552:27:1552:27 | Address | &:r1552_23 | +| ir.cpp:1552:30:1552:30 | Address | &:r1552_27 | +| ir.cpp:1552:34:1552:34 | Address | &:r1552_31 | +| ir.cpp:1552:41:1552:41 | Address | &:r1552_37 | +| ir.cpp:1552:46:1552:46 | Address | &:r1552_2 | +| ir.cpp:1552:46:1552:46 | Load | m1549_8 | +| ir.cpp:1552:46:1552:46 | StoreValue | r1552_3 | +| ir.cpp:1552:47:1552:47 | Address | &:r1552_19 | +| ir.cpp:1552:47:1552:47 | Address | &:r1552_33 | +| ir.cpp:1552:47:1552:47 | Load | ~m1552_4 | +| ir.cpp:1552:47:1552:47 | Load | ~m1552_4 | +| ir.cpp:1552:47:1552:47 | StoreValue | r1552_7 | +| ir.cpp:1552:47:1552:47 | StoreValue | r1552_11 | +| ir.cpp:1552:47:1552:47 | StoreValue | r1552_15 | +| ir.cpp:1552:47:1552:47 | StoreValue | r1552_21 | +| ir.cpp:1552:47:1552:47 | StoreValue | r1552_25 | +| ir.cpp:1552:47:1552:47 | StoreValue | r1552_29 | +| ir.cpp:1552:47:1552:47 | StoreValue | r1552_35 | +| ir.cpp:1552:47:1552:47 | StoreValue | r1552_39 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_6 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_10 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_14 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_18 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_20 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_24 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_28 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_32 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_34 | +| ir.cpp:1552:47:1552:47 | Unary | r1552_38 | +| ir.cpp:1553:9:1553:9 | Address | &:r1553_2 | +| ir.cpp:1553:9:1553:9 | Address | &:r1553_3 | +| ir.cpp:1553:9:1553:9 | Load | m1552_12 | +| ir.cpp:1553:9:1553:15 | ChiPartial | partial:m1553_4 | +| ir.cpp:1553:9:1553:15 | ChiTotal | total:m1552_4 | +| ir.cpp:1553:13:1553:15 | StoreValue | r1553_1 | +| ir.cpp:1554:17:1554:18 | Address | &:r1554_1 | +| ir.cpp:1554:22:1554:22 | Address | &:r1554_2 | +| ir.cpp:1554:22:1554:22 | Load | m1552_12 | +| ir.cpp:1554:22:1554:22 | StoreValue | r1554_4 | +| ir.cpp:1554:22:1554:22 | Unary | r1554_3 | +| ir.cpp:1555:13:1555:13 | Address | &:r1555_1 | +| ir.cpp:1555:17:1555:17 | Address | &:r1555_2 | +| ir.cpp:1555:17:1555:17 | Address | &:r1555_3 | +| ir.cpp:1555:17:1555:17 | Load | m1552_8 | +| ir.cpp:1555:17:1555:17 | Load | ~m1552_4 | +| ir.cpp:1555:17:1555:17 | StoreValue | r1555_4 | +| ir.cpp:1556:9:1556:9 | Address | &:r1556_2 | +| ir.cpp:1556:9:1556:9 | Address | &:r1556_3 | +| ir.cpp:1556:9:1556:9 | Load | m1552_22 | +| ir.cpp:1556:9:1556:13 | ChiPartial | partial:m1556_4 | +| ir.cpp:1556:9:1556:13 | ChiTotal | total:m1549_6 | +| ir.cpp:1556:13:1556:13 | StoreValue | r1556_1 | +| ir.cpp:1557:9:1557:10 | Address | &:r1557_5 | +| ir.cpp:1557:9:1557:14 | ChiPartial | partial:m1557_6 | +| ir.cpp:1557:9:1557:14 | ChiTotal | total:m1556_5 | +| ir.cpp:1557:10:1557:10 | Address | &:r1557_2 | +| ir.cpp:1557:10:1557:10 | Address | &:r1557_3 | +| ir.cpp:1557:10:1557:10 | Load | m1552_26 | +| ir.cpp:1557:10:1557:10 | Load | ~m1552_4 | +| ir.cpp:1557:10:1557:10 | Unary | r1557_4 | +| ir.cpp:1557:14:1557:14 | StoreValue | r1557_1 | +| ir.cpp:1558:14:1558:15 | Address | &:r1558_1 | +| ir.cpp:1558:19:1558:19 | Address | &:r1558_2 | +| ir.cpp:1558:19:1558:19 | Load | m1552_22 | +| ir.cpp:1558:19:1558:19 | StoreValue | r1558_4 | +| ir.cpp:1558:19:1558:19 | Unary | r1558_3 | +| ir.cpp:1559:14:1559:15 | Address | &:r1559_1 | +| ir.cpp:1559:19:1559:20 | StoreValue | r1559_4 | +| ir.cpp:1559:20:1559:20 | Address | &:r1559_2 | +| ir.cpp:1559:20:1559:20 | Load | m1552_22 | +| ir.cpp:1559:20:1559:20 | Unary | r1559_3 | +| ir.cpp:1560:13:1560:13 | Address | &:r1560_1 | +| ir.cpp:1560:17:1560:17 | Address | &:r1560_2 | +| ir.cpp:1560:17:1560:17 | Address | &:r1560_3 | +| ir.cpp:1560:17:1560:17 | Load | m1552_22 | +| ir.cpp:1560:17:1560:17 | Load | ~m1557_7 | +| ir.cpp:1560:17:1560:17 | StoreValue | r1560_4 | +| ir.cpp:1564:14:1564:35 | Address | &:r1564_1 | +| ir.cpp:1564:39:1564:39 | Address | &:r1564_2 | +| ir.cpp:1564:39:1564:39 | Load | m1549_8 | +| ir.cpp:1564:39:1564:39 | StoreValue | r1564_3 | +| ir.cpp:1565:15:1565:15 | Address | &:r1565_1 | +| ir.cpp:1565:19:1565:40 | Unary | r1565_2 | +| ir.cpp:1565:19:1565:42 | StoreValue | r1565_4 | +| ir.cpp:1565:42:1565:42 | Unary | r1565_3 | +| ir.cpp:1566:15:1566:15 | Address | &:r1566_1 | +| ir.cpp:1566:19:1566:40 | Unary | r1566_2 | +| ir.cpp:1566:19:1566:42 | StoreValue | r1566_4 | +| ir.cpp:1566:42:1566:42 | Unary | r1566_3 | +| ir.cpp:1568:15:1568:15 | Address | &:r1568_1 | +| ir.cpp:1568:19:1568:40 | Unary | r1568_2 | +| ir.cpp:1568:19:1568:42 | StoreValue | r1568_6 | +| ir.cpp:1568:19:1568:42 | Unary | r1568_5 | +| ir.cpp:1568:42:1568:42 | Address | &:r1568_3 | +| ir.cpp:1568:42:1568:42 | Load | ~m1564_4 | +| ir.cpp:1568:42:1568:42 | Unary | r1568_4 | +| ir.cpp:1569:15:1569:15 | Address | &:r1569_1 | +| ir.cpp:1569:19:1569:40 | Unary | r1569_2 | +| ir.cpp:1569:19:1569:42 | StoreValue | r1569_4 | +| ir.cpp:1569:42:1569:42 | Unary | r1569_3 | +| ir.cpp:1570:9:1570:9 | Address | &:r1570_2 | +| ir.cpp:1570:9:1570:9 | Address | &:r1570_4 | +| ir.cpp:1570:9:1570:9 | Load | m1566_5 | +| ir.cpp:1570:9:1570:9 | Unary | r1570_3 | +| ir.cpp:1570:9:1570:15 | ChiPartial | partial:m1570_5 | +| ir.cpp:1570:9:1570:15 | ChiTotal | total:m1564_4 | +| ir.cpp:1570:13:1570:15 | StoreValue | r1570_1 | +| ir.cpp:1571:17:1571:18 | Address | &:r1571_1 | +| ir.cpp:1571:22:1571:22 | Address | &:r1571_2 | +| ir.cpp:1571:22:1571:22 | Load | m1566_5 | +| ir.cpp:1571:22:1571:22 | StoreValue | r1571_5 | +| ir.cpp:1571:22:1571:22 | Unary | r1571_3 | +| ir.cpp:1571:22:1571:22 | Unary | r1571_4 | +| ir.cpp:1572:13:1572:13 | Address | &:r1572_1 | +| ir.cpp:1572:17:1572:17 | Address | &:r1572_2 | +| ir.cpp:1572:17:1572:17 | Address | &:r1572_3 | +| ir.cpp:1572:17:1572:17 | Load | m1565_5 | +| ir.cpp:1572:17:1572:17 | Load | ~m1564_4 | +| ir.cpp:1572:17:1572:17 | StoreValue | r1572_4 | +| ir.cpp:1573:9:1573:9 | Address | &:r1573_2 | +| ir.cpp:1573:9:1573:9 | Address | &:r1573_4 | +| ir.cpp:1573:9:1573:9 | Load | m1568_7 | +| ir.cpp:1573:9:1573:9 | Unary | r1573_3 | +| ir.cpp:1573:9:1573:13 | ChiPartial | partial:m1573_5 | +| ir.cpp:1573:9:1573:13 | ChiTotal | total:m1557_7 | +| ir.cpp:1573:13:1573:13 | StoreValue | r1573_1 | +| ir.cpp:1574:9:1574:10 | Address | &:r1574_5 | +| ir.cpp:1574:9:1574:14 | ChiPartial | partial:m1574_6 | +| ir.cpp:1574:9:1574:14 | ChiTotal | total:m1573_6 | +| ir.cpp:1574:10:1574:10 | Address | &:r1574_2 | +| ir.cpp:1574:10:1574:10 | Address | &:r1574_3 | +| ir.cpp:1574:10:1574:10 | Load | m1569_5 | +| ir.cpp:1574:10:1574:10 | Load | ~m1564_4 | +| ir.cpp:1574:10:1574:10 | Unary | r1574_4 | +| ir.cpp:1574:14:1574:14 | StoreValue | r1574_1 | +| ir.cpp:1575:14:1575:15 | Address | &:r1575_1 | +| ir.cpp:1575:19:1575:19 | Address | &:r1575_2 | +| ir.cpp:1575:19:1575:19 | Load | m1568_7 | +| ir.cpp:1575:19:1575:19 | StoreValue | r1575_5 | +| ir.cpp:1575:19:1575:19 | Unary | r1575_3 | +| ir.cpp:1575:19:1575:19 | Unary | r1575_4 | +| ir.cpp:1576:14:1576:15 | Address | &:r1576_1 | +| ir.cpp:1576:19:1576:20 | StoreValue | r1576_5 | +| ir.cpp:1576:20:1576:20 | Address | &:r1576_2 | +| ir.cpp:1576:20:1576:20 | Load | m1568_7 | +| ir.cpp:1576:20:1576:20 | Unary | r1576_3 | +| ir.cpp:1576:20:1576:20 | Unary | r1576_4 | +| ir.cpp:1577:13:1577:13 | Address | &:r1577_1 | +| ir.cpp:1577:17:1577:17 | Address | &:r1577_2 | +| ir.cpp:1577:17:1577:17 | Address | &:r1577_3 | +| ir.cpp:1577:17:1577:17 | Load | m1568_7 | +| ir.cpp:1577:17:1577:17 | Load | ~m1574_7 | +| ir.cpp:1577:17:1577:17 | StoreValue | r1577_4 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_5 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_5 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_5 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_5 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_7 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_7 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_7 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_7 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_9 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_10 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_13 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_17 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_18 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_21 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_25 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_26 | +| ir.cpp:1588:8:1588:8 | Address | &:r1588_29 | +| ir.cpp:1588:8:1588:8 | ChiPartial | partial:m1588_3 | +| ir.cpp:1588:8:1588:8 | ChiPartial | partial:m1588_3 | +| ir.cpp:1588:8:1588:8 | ChiPartial | partial:m1588_15 | +| ir.cpp:1588:8:1588:8 | ChiPartial | partial:m1588_23 | +| ir.cpp:1588:8:1588:8 | ChiPartial | partial:m1588_31 | +| ir.cpp:1588:8:1588:8 | ChiTotal | total:m1588_2 | +| ir.cpp:1588:8:1588:8 | ChiTotal | total:m1588_2 | +| ir.cpp:1588:8:1588:8 | ChiTotal | total:m1588_8 | +| ir.cpp:1588:8:1588:8 | ChiTotal | total:m1588_16 | +| ir.cpp:1588:8:1588:8 | ChiTotal | total:m1588_24 | +| ir.cpp:1588:8:1588:8 | Load | m0_2 | +| ir.cpp:1588:8:1588:8 | Load | m0_2 | +| ir.cpp:1588:8:1588:8 | Load | m0_2 | +| ir.cpp:1588:8:1588:8 | Load | m1588_6 | +| ir.cpp:1588:8:1588:8 | Load | m1588_6 | +| ir.cpp:1588:8:1588:8 | Load | ~m0_4 | +| ir.cpp:1588:8:1588:8 | Load | ~m0_4 | +| ir.cpp:1588:8:1588:8 | Load | ~m0_4 | +| ir.cpp:1588:8:1588:8 | SideEffect | m1588_3 | +| ir.cpp:1588:8:1588:8 | SideEffect | m1588_3 | +| ir.cpp:1588:8:1588:8 | SideEffect | m1588_8 | +| ir.cpp:1588:8:1588:8 | SideEffect | m1588_32 | +| ir.cpp:1588:8:1588:8 | StoreValue | r1588_14 | +| ir.cpp:1588:8:1588:8 | StoreValue | r1588_22 | +| ir.cpp:1588:8:1588:8 | StoreValue | r1588_30 | +| ir.cpp:1588:8:1588:8 | Unary | m1588_6 | +| ir.cpp:1588:8:1588:8 | Unary | m1588_6 | +| ir.cpp:1588:8:1588:8 | Unary | m1588_6 | +| ir.cpp:1588:8:1588:8 | Unary | r1588_11 | +| ir.cpp:1588:8:1588:8 | Unary | r1588_12 | +| ir.cpp:1588:8:1588:8 | Unary | r1588_19 | +| ir.cpp:1588:8:1588:8 | Unary | r1588_20 | +| ir.cpp:1588:8:1588:8 | Unary | r1588_27 | +| ir.cpp:1588:8:1588:8 | Unary | r1588_28 | +| ir.cpp:1616:60:1616:95 | Address | &:r1616_5 | +| ir.cpp:1616:60:1616:95 | Address | &:r1616_5 | +| ir.cpp:1616:60:1616:95 | Address | &:r1616_7 | +| ir.cpp:1616:60:1616:95 | Address | &:r1616_7 | +| ir.cpp:1616:60:1616:95 | Address | &:r1616_10 | +| ir.cpp:1616:60:1616:95 | ChiPartial | partial:m1616_3 | +| ir.cpp:1616:60:1616:95 | ChiTotal | total:m1616_2 | +| ir.cpp:1616:60:1616:95 | Load | m0_2 | +| ir.cpp:1616:60:1616:95 | Load | m1616_6 | +| ir.cpp:1616:60:1616:95 | SideEffect | m1616_3 | +| ir.cpp:1616:60:1616:95 | SideEffect | m1616_8 | +| ir.cpp:1617:5:1617:13 | Address | &:r1617_1 | +| ir.cpp:1617:12:1617:12 | Address | &:r1617_2 | +| ir.cpp:1617:12:1617:12 | Load | m1616_6 | +| ir.cpp:1617:12:1617:12 | Unary | r1617_3 | +| ir.cpp:1617:12:1617:12 | Unary | r1617_4 | +| ir.cpp:1620:60:1620:95 | Address | &:r1620_5 | +| ir.cpp:1620:60:1620:95 | Address | &:r1620_5 | +| ir.cpp:1620:60:1620:95 | Address | &:r1620_7 | +| ir.cpp:1620:60:1620:95 | Address | &:r1620_7 | +| ir.cpp:1620:60:1620:95 | Address | &:r1620_10 | +| ir.cpp:1620:60:1620:95 | ChiPartial | partial:m1620_3 | +| ir.cpp:1620:60:1620:95 | ChiTotal | total:m1620_2 | +| ir.cpp:1620:60:1620:95 | Load | m0_2 | +| ir.cpp:1620:60:1620:95 | Load | m1620_6 | +| ir.cpp:1620:60:1620:95 | SideEffect | m1620_3 | +| ir.cpp:1620:60:1620:95 | SideEffect | m1620_8 | +| ir.cpp:1621:5:1621:13 | Address | &:r1621_1 | +| ir.cpp:1621:12:1621:12 | Address | &:r1621_2 | +| ir.cpp:1621:12:1621:12 | Load | m1620_6 | +| ir.cpp:1621:12:1621:12 | Unary | r1621_3 | +| ir.cpp:1621:12:1621:12 | Unary | r1621_4 | +| ir.cpp:1624:60:1624:95 | Address | &:r1624_5 | +| ir.cpp:1624:60:1624:95 | Address | &:r1624_5 | +| ir.cpp:1624:60:1624:95 | Address | &:r1624_7 | +| ir.cpp:1624:60:1624:95 | Address | &:r1624_7 | +| ir.cpp:1624:60:1624:95 | Address | &:r1624_10 | +| ir.cpp:1624:60:1624:95 | ChiPartial | partial:m1624_3 | +| ir.cpp:1624:60:1624:95 | ChiTotal | total:m1624_2 | +| ir.cpp:1624:60:1624:95 | Load | m1624_6 | +| ir.cpp:1624:60:1624:95 | Load | m1625_8 | +| ir.cpp:1624:60:1624:95 | SideEffect | m1624_3 | +| ir.cpp:1624:60:1624:95 | SideEffect | m1624_8 | +| ir.cpp:1625:5:1625:13 | Address | &:r1625_1 | +| ir.cpp:1625:12:1625:12 | Address | &:r1625_2 | +| ir.cpp:1625:12:1625:12 | Address | &:r1625_4 | +| ir.cpp:1625:12:1625:12 | Load | m1624_6 | +| ir.cpp:1625:12:1625:12 | Load | ~m1624_8 | +| ir.cpp:1625:12:1625:12 | StoreValue | r1625_7 | +| ir.cpp:1625:12:1625:12 | Unary | r1625_3 | +| ir.cpp:1625:12:1625:12 | Unary | r1625_5 | +| ir.cpp:1625:12:1625:12 | Unary | r1625_6 | +| ir.cpp:1628:6:1628:37 | ChiPartial | partial:m1628_3 | +| ir.cpp:1628:6:1628:37 | ChiTotal | total:m1628_2 | +| ir.cpp:1628:6:1628:37 | SideEffect | ~m1649_6 | +| ir.cpp:1629:34:1629:34 | Address | &:r1629_1 | +| ir.cpp:1629:34:1629:34 | Address | &:r1629_1 | +| ir.cpp:1629:34:1629:34 | Arg(this) | this:r1629_1 | +| ir.cpp:1629:34:1629:34 | CallTarget | func:r1629_3 | +| ir.cpp:1629:34:1629:34 | ChiPartial | partial:m1629_5 | +| ir.cpp:1629:34:1629:34 | ChiPartial | partial:m1629_7 | +| ir.cpp:1629:34:1629:34 | ChiTotal | total:m1628_4 | +| ir.cpp:1629:34:1629:34 | ChiTotal | total:m1629_2 | +| ir.cpp:1629:34:1629:34 | SideEffect | ~m1628_4 | +| ir.cpp:1632:14:1632:14 | Address | &:r1632_1 | +| ir.cpp:1632:14:1632:14 | Address | &:r1632_6 | +| ir.cpp:1632:14:1632:14 | Address | &:r1632_6 | +| ir.cpp:1632:14:1632:14 | Address | &:r1632_18 | +| ir.cpp:1632:14:1632:14 | Address | &:r1632_18 | +| ir.cpp:1632:14:1632:14 | Address | &:r1632_30 | +| ir.cpp:1632:14:1632:14 | Address | &:r1632_30 | +| ir.cpp:1632:14:1632:14 | Arg(this) | this:r1632_6 | +| ir.cpp:1632:14:1632:14 | Arg(this) | this:r1632_18 | +| ir.cpp:1632:14:1632:14 | Arg(this) | this:r1632_30 | +| ir.cpp:1632:14:1632:14 | CallTarget | func:r1632_7 | +| ir.cpp:1632:14:1632:14 | CallTarget | func:r1632_19 | +| ir.cpp:1632:14:1632:14 | CallTarget | func:r1632_31 | +| ir.cpp:1632:14:1632:14 | ChiPartial | partial:m1632_9 | +| ir.cpp:1632:14:1632:14 | ChiPartial | partial:m1632_12 | +| ir.cpp:1632:14:1632:14 | ChiPartial | partial:m1632_21 | +| ir.cpp:1632:14:1632:14 | ChiPartial | partial:m1632_24 | +| ir.cpp:1632:14:1632:14 | ChiPartial | partial:m1632_33 | +| ir.cpp:1632:14:1632:14 | ChiPartial | partial:m1632_36 | +| ir.cpp:1632:14:1632:14 | ChiTotal | total:m1629_6 | +| ir.cpp:1632:14:1632:14 | ChiTotal | total:m1632_4 | +| ir.cpp:1632:14:1632:14 | ChiTotal | total:m1632_10 | +| ir.cpp:1632:14:1632:14 | ChiTotal | total:m1632_13 | +| ir.cpp:1632:14:1632:14 | ChiTotal | total:m1632_22 | +| ir.cpp:1632:14:1632:14 | ChiTotal | total:m1632_25 | +| ir.cpp:1632:14:1632:14 | SideEffect | m1632_4 | +| ir.cpp:1632:14:1632:14 | SideEffect | m1632_13 | +| ir.cpp:1632:14:1632:14 | SideEffect | m1632_25 | +| ir.cpp:1632:14:1632:14 | SideEffect | ~m1629_6 | +| ir.cpp:1632:14:1632:14 | SideEffect | ~m1632_10 | +| ir.cpp:1632:14:1632:14 | SideEffect | ~m1632_22 | +| ir.cpp:1632:14:1632:14 | Unary | r1632_8 | +| ir.cpp:1632:14:1632:14 | Unary | r1632_20 | +| ir.cpp:1632:14:1632:14 | Unary | r1632_32 | +| ir.cpp:1632:14:1632:27 | StoreValue | r1632_15 | +| ir.cpp:1632:14:1632:27 | StoreValue | r1632_27 | +| ir.cpp:1632:14:1632:27 | StoreValue | r1632_39 | +| ir.cpp:1632:14:1632:27 | Unary | r1632_14 | +| ir.cpp:1632:14:1632:27 | Unary | r1632_26 | +| ir.cpp:1632:14:1632:27 | Unary | r1632_38 | +| ir.cpp:1632:15:1632:15 | Address | &:r1632_5 | +| ir.cpp:1632:18:1632:18 | Address | &:r1632_17 | +| ir.cpp:1632:21:1632:21 | Address | &:r1632_29 | +| ir.cpp:1632:26:1632:26 | Address | &:r1632_2 | +| ir.cpp:1632:26:1632:26 | Load | m1629_8 | +| ir.cpp:1632:26:1632:26 | StoreValue | r1632_3 | +| ir.cpp:1633:9:1633:9 | Address | &:r1633_2 | +| ir.cpp:1633:9:1633:9 | Address | &:r1633_4 | +| ir.cpp:1633:9:1633:9 | Load | m1632_28 | +| ir.cpp:1633:9:1633:9 | Unary | r1633_3 | +| ir.cpp:1633:9:1633:15 | ChiPartial | partial:m1633_5 | +| ir.cpp:1633:9:1633:15 | ChiTotal | total:m1632_37 | +| ir.cpp:1633:13:1633:15 | StoreValue | r1633_1 | +| ir.cpp:1634:17:1634:18 | Address | &:r1634_1 | +| ir.cpp:1634:22:1634:22 | Address | &:r1634_2 | +| ir.cpp:1634:22:1634:22 | Load | m1632_28 | +| ir.cpp:1634:22:1634:22 | StoreValue | r1634_5 | +| ir.cpp:1634:22:1634:22 | Unary | r1634_3 | +| ir.cpp:1634:22:1634:22 | Unary | r1634_4 | +| ir.cpp:1635:13:1635:13 | Address | &:r1635_1 | +| ir.cpp:1635:17:1635:17 | Address | &:r1635_2 | +| ir.cpp:1635:17:1635:17 | Address | &:r1635_3 | +| ir.cpp:1635:17:1635:17 | Load | m1632_16 | +| ir.cpp:1635:17:1635:17 | Load | ~m1632_37 | +| ir.cpp:1635:17:1635:17 | StoreValue | r1635_4 | +| ir.cpp:1636:9:1636:9 | Address | &:r1636_2 | +| ir.cpp:1636:9:1636:9 | Address | &:r1636_4 | +| ir.cpp:1636:9:1636:9 | Load | m1632_40 | +| ir.cpp:1636:9:1636:9 | Unary | r1636_3 | +| ir.cpp:1636:9:1636:13 | ChiPartial | partial:m1636_5 | +| ir.cpp:1636:9:1636:13 | ChiTotal | total:m1632_34 | +| ir.cpp:1636:13:1636:13 | StoreValue | r1636_1 | +| ir.cpp:1637:14:1637:15 | Address | &:r1637_1 | +| ir.cpp:1637:19:1637:19 | Address | &:r1637_2 | +| ir.cpp:1637:19:1637:19 | Load | m1632_40 | +| ir.cpp:1637:19:1637:19 | StoreValue | r1637_5 | +| ir.cpp:1637:19:1637:19 | Unary | r1637_3 | +| ir.cpp:1637:19:1637:19 | Unary | r1637_4 | +| ir.cpp:1638:13:1638:13 | Address | &:r1638_1 | +| ir.cpp:1638:17:1638:17 | Address | &:r1638_2 | +| ir.cpp:1638:17:1638:17 | Address | &:r1638_3 | +| ir.cpp:1638:17:1638:17 | Load | m1632_40 | +| ir.cpp:1638:17:1638:17 | Load | ~m1636_6 | +| ir.cpp:1638:17:1638:17 | StoreValue | r1638_4 | +| ir.cpp:1642:14:1642:35 | Address | &:r1642_1 | +| ir.cpp:1642:39:1642:39 | Address | &:r1642_2 | +| ir.cpp:1642:39:1642:39 | Load | m1629_8 | +| ir.cpp:1642:39:1642:39 | StoreValue | r1642_3 | +| ir.cpp:1643:15:1643:15 | Address | &:r1643_1 | +| ir.cpp:1643:19:1643:40 | Address | &:r1643_2 | +| ir.cpp:1643:19:1643:40 | Address | &:r1643_2 | +| ir.cpp:1643:19:1643:40 | Arg(this) | this:r1643_2 | +| ir.cpp:1643:19:1643:40 | ChiPartial | partial:m1643_8 | +| ir.cpp:1643:19:1643:40 | ChiTotal | total:m1642_4 | +| ir.cpp:1643:19:1643:40 | SideEffect | m1642_4 | +| ir.cpp:1643:42:1643:47 | CallTarget | func:r1643_3 | +| ir.cpp:1643:42:1643:47 | ChiPartial | partial:m1643_5 | +| ir.cpp:1643:42:1643:47 | ChiTotal | total:m1636_6 | +| ir.cpp:1643:42:1643:47 | SideEffect | ~m1636_6 | +| ir.cpp:1643:42:1643:47 | Unary | r1643_4 | +| ir.cpp:1643:48:1643:50 | StoreValue | r1643_11 | +| ir.cpp:1643:48:1643:50 | Unary | r1643_10 | +| ir.cpp:1644:15:1644:15 | Address | &:r1644_1 | +| ir.cpp:1644:19:1644:40 | Address | &:r1644_2 | +| ir.cpp:1644:19:1644:40 | Address | &:r1644_2 | +| ir.cpp:1644:19:1644:40 | Arg(this) | this:r1644_2 | +| ir.cpp:1644:19:1644:40 | ChiPartial | partial:m1644_8 | +| ir.cpp:1644:19:1644:40 | ChiTotal | total:m1643_9 | +| ir.cpp:1644:19:1644:40 | SideEffect | m1643_9 | +| ir.cpp:1644:42:1644:47 | CallTarget | func:r1644_3 | +| ir.cpp:1644:42:1644:47 | ChiPartial | partial:m1644_5 | +| ir.cpp:1644:42:1644:47 | ChiTotal | total:m1643_6 | +| ir.cpp:1644:42:1644:47 | SideEffect | ~m1643_6 | +| ir.cpp:1644:42:1644:47 | Unary | r1644_4 | +| ir.cpp:1644:48:1644:50 | StoreValue | r1644_11 | +| ir.cpp:1644:48:1644:50 | Unary | r1644_10 | +| ir.cpp:1645:15:1645:15 | Address | &:r1645_1 | +| ir.cpp:1645:19:1645:40 | Address | &:r1645_2 | +| ir.cpp:1645:19:1645:40 | Address | &:r1645_2 | +| ir.cpp:1645:19:1645:40 | Arg(this) | this:r1645_2 | +| ir.cpp:1645:19:1645:40 | ChiPartial | partial:m1645_8 | +| ir.cpp:1645:19:1645:40 | ChiTotal | total:m1644_9 | +| ir.cpp:1645:19:1645:40 | SideEffect | m1644_9 | +| ir.cpp:1645:42:1645:47 | CallTarget | func:r1645_3 | +| ir.cpp:1645:42:1645:47 | ChiPartial | partial:m1645_5 | +| ir.cpp:1645:42:1645:47 | ChiTotal | total:m1644_6 | +| ir.cpp:1645:42:1645:47 | SideEffect | ~m1644_6 | +| ir.cpp:1645:42:1645:47 | Unary | r1645_4 | +| ir.cpp:1645:48:1645:50 | StoreValue | r1645_11 | +| ir.cpp:1645:48:1645:50 | Unary | r1645_10 | +| ir.cpp:1646:9:1646:9 | Address | &:r1646_2 | +| ir.cpp:1646:9:1646:9 | Address | &:r1646_4 | +| ir.cpp:1646:9:1646:9 | Load | m1644_12 | +| ir.cpp:1646:9:1646:9 | Unary | r1646_3 | +| ir.cpp:1646:9:1646:15 | ChiPartial | partial:m1646_5 | +| ir.cpp:1646:9:1646:15 | ChiTotal | total:m1645_9 | +| ir.cpp:1646:13:1646:15 | StoreValue | r1646_1 | +| ir.cpp:1647:17:1647:18 | Address | &:r1647_1 | +| ir.cpp:1647:22:1647:22 | Address | &:r1647_2 | +| ir.cpp:1647:22:1647:22 | Load | m1644_12 | +| ir.cpp:1647:22:1647:22 | StoreValue | r1647_5 | +| ir.cpp:1647:22:1647:22 | Unary | r1647_3 | +| ir.cpp:1647:22:1647:22 | Unary | r1647_4 | +| ir.cpp:1648:13:1648:13 | Address | &:r1648_1 | +| ir.cpp:1648:17:1648:17 | Address | &:r1648_2 | +| ir.cpp:1648:17:1648:17 | Address | &:r1648_3 | +| ir.cpp:1648:17:1648:17 | Load | m1643_12 | +| ir.cpp:1648:17:1648:17 | Load | ~m1645_9 | +| ir.cpp:1648:17:1648:17 | StoreValue | r1648_4 | +| ir.cpp:1649:9:1649:9 | Address | &:r1649_2 | +| ir.cpp:1649:9:1649:9 | Address | &:r1649_4 | +| ir.cpp:1649:9:1649:9 | Load | m1645_12 | +| ir.cpp:1649:9:1649:9 | Unary | r1649_3 | +| ir.cpp:1649:9:1649:13 | ChiPartial | partial:m1649_5 | +| ir.cpp:1649:9:1649:13 | ChiTotal | total:m1645_6 | +| ir.cpp:1649:13:1649:13 | StoreValue | r1649_1 | +| ir.cpp:1650:14:1650:15 | Address | &:r1650_1 | +| ir.cpp:1650:19:1650:19 | Address | &:r1650_2 | +| ir.cpp:1650:19:1650:19 | Load | m1645_12 | +| ir.cpp:1650:19:1650:19 | StoreValue | r1650_5 | +| ir.cpp:1650:19:1650:19 | Unary | r1650_3 | +| ir.cpp:1650:19:1650:19 | Unary | r1650_4 | +| ir.cpp:1651:13:1651:13 | Address | &:r1651_1 | +| ir.cpp:1651:17:1651:17 | Address | &:r1651_2 | +| ir.cpp:1651:17:1651:17 | Address | &:r1651_3 | +| ir.cpp:1651:17:1651:17 | Load | m1645_12 | +| ir.cpp:1651:17:1651:17 | Load | ~m1649_6 | +| ir.cpp:1651:17:1651:17 | StoreValue | r1651_4 | +| ir.cpp:1655:8:1655:8 | Address | &:r1655_5 | +| ir.cpp:1655:8:1655:8 | Address | &:r1655_5 | +| ir.cpp:1655:8:1655:8 | Address | &:r1655_7 | +| ir.cpp:1655:8:1655:8 | Address | &:r1655_7 | +| ir.cpp:1655:8:1655:8 | ChiPartial | partial:m1655_3 | +| ir.cpp:1655:8:1655:8 | ChiTotal | total:m1655_2 | +| ir.cpp:1655:8:1655:8 | Load | m1655_6 | +| ir.cpp:1655:8:1655:8 | SideEffect | m1655_3 | +| ir.cpp:1655:8:1655:8 | SideEffect | m1655_8 | +| ir.cpp:1682:61:1682:98 | Address | &:r1682_5 | +| ir.cpp:1682:61:1682:98 | Address | &:r1682_5 | +| ir.cpp:1682:61:1682:98 | Address | &:r1682_7 | +| ir.cpp:1682:61:1682:98 | Address | &:r1682_7 | +| ir.cpp:1682:61:1682:98 | Address | &:r1682_10 | +| ir.cpp:1682:61:1682:98 | ChiPartial | partial:m1682_3 | +| ir.cpp:1682:61:1682:98 | ChiTotal | total:m1682_2 | +| ir.cpp:1682:61:1682:98 | Load | m1682_6 | +| ir.cpp:1682:61:1682:98 | Load | m1683_6 | +| ir.cpp:1682:61:1682:98 | SideEffect | m1682_3 | +| ir.cpp:1682:61:1682:98 | SideEffect | m1682_8 | +| ir.cpp:1683:5:1683:13 | Address | &:r1683_1 | +| ir.cpp:1683:12:1683:12 | Address | &:r1683_2 | +| ir.cpp:1683:12:1683:12 | Address | &:r1683_4 | +| ir.cpp:1683:12:1683:12 | Load | m1682_6 | +| ir.cpp:1683:12:1683:12 | Load | ~m1682_8 | +| ir.cpp:1683:12:1683:12 | StoreValue | r1683_5 | +| ir.cpp:1683:12:1683:12 | Unary | r1683_3 | +| ir.cpp:1686:61:1686:98 | Address | &:r1686_5 | +| ir.cpp:1686:61:1686:98 | Address | &:r1686_5 | +| ir.cpp:1686:61:1686:98 | Address | &:r1686_7 | +| ir.cpp:1686:61:1686:98 | Address | &:r1686_7 | +| ir.cpp:1686:61:1686:98 | Address | &:r1686_10 | +| ir.cpp:1686:61:1686:98 | ChiPartial | partial:m1686_3 | +| ir.cpp:1686:61:1686:98 | ChiTotal | total:m1686_2 | +| ir.cpp:1686:61:1686:98 | Load | m1686_6 | +| ir.cpp:1686:61:1686:98 | Load | m1687_8 | +| ir.cpp:1686:61:1686:98 | SideEffect | m1686_3 | +| ir.cpp:1686:61:1686:98 | SideEffect | m1686_8 | +| ir.cpp:1687:5:1687:13 | Address | &:r1687_1 | +| ir.cpp:1687:12:1687:12 | Address | &:r1687_2 | +| ir.cpp:1687:12:1687:12 | Address | &:r1687_4 | +| ir.cpp:1687:12:1687:12 | Load | m1686_6 | +| ir.cpp:1687:12:1687:12 | Load | ~m1686_8 | +| ir.cpp:1687:12:1687:12 | StoreValue | r1687_7 | +| ir.cpp:1687:12:1687:12 | Unary | r1687_3 | +| ir.cpp:1687:12:1687:12 | Unary | r1687_5 | +| ir.cpp:1687:12:1687:12 | Unary | r1687_6 | +| ir.cpp:1690:61:1690:98 | Address | &:r1690_5 | +| ir.cpp:1690:61:1690:98 | Address | &:r1690_5 | +| ir.cpp:1690:61:1690:98 | Address | &:r1690_7 | +| ir.cpp:1690:61:1690:98 | Address | &:r1690_7 | +| ir.cpp:1690:61:1690:98 | Address | &:r1690_10 | +| ir.cpp:1690:61:1690:98 | ChiPartial | partial:m1690_3 | +| ir.cpp:1690:61:1690:98 | ChiTotal | total:m1690_2 | +| ir.cpp:1690:61:1690:98 | Load | m1690_6 | +| ir.cpp:1690:61:1690:98 | Load | m1691_6 | +| ir.cpp:1690:61:1690:98 | SideEffect | m1690_3 | +| ir.cpp:1690:61:1690:98 | SideEffect | m1690_8 | +| ir.cpp:1691:5:1691:13 | Address | &:r1691_1 | +| ir.cpp:1691:12:1691:12 | Address | &:r1691_2 | +| ir.cpp:1691:12:1691:12 | StoreValue | r1691_3 | +| ir.cpp:1691:12:1691:12 | StoreValue | r1691_5 | +| ir.cpp:1691:12:1691:12 | Unary | r1691_2 | +| ir.cpp:1694:6:1694:40 | ChiPartial | partial:m1694_3 | +| ir.cpp:1694:6:1694:40 | ChiTotal | total:m1694_2 | +| ir.cpp:1694:6:1694:40 | SideEffect | ~m1715_6 | +| ir.cpp:1695:36:1695:36 | Address | &:r1695_1 | +| ir.cpp:1695:36:1695:36 | Address | &:r1695_1 | +| ir.cpp:1695:36:1695:36 | Arg(this) | this:r1695_1 | +| ir.cpp:1695:36:1695:36 | CallTarget | func:r1695_3 | +| ir.cpp:1695:36:1695:36 | ChiPartial | partial:m1695_5 | +| ir.cpp:1695:36:1695:36 | ChiPartial | partial:m1695_7 | +| ir.cpp:1695:36:1695:36 | ChiTotal | total:m1694_4 | +| ir.cpp:1695:36:1695:36 | ChiTotal | total:m1695_2 | +| ir.cpp:1695:36:1695:36 | SideEffect | ~m1694_4 | +| ir.cpp:1698:16:1698:16 | Address | &:r1698_1 | +| ir.cpp:1698:16:1698:16 | Address | &:r1698_7 | +| ir.cpp:1698:16:1698:16 | Address | &:r1698_21 | +| ir.cpp:1698:16:1698:16 | Address | &:r1698_35 | +| ir.cpp:1698:16:1698:16 | CallTarget | func:r1698_10 | +| ir.cpp:1698:16:1698:16 | CallTarget | func:r1698_24 | +| ir.cpp:1698:16:1698:16 | CallTarget | func:r1698_38 | +| ir.cpp:1698:16:1698:16 | ChiPartial | partial:m1698_12 | +| ir.cpp:1698:16:1698:16 | ChiPartial | partial:m1698_26 | +| ir.cpp:1698:16:1698:16 | ChiPartial | partial:m1698_40 | +| ir.cpp:1698:16:1698:16 | ChiTotal | total:m1695_6 | +| ir.cpp:1698:16:1698:16 | ChiTotal | total:m1698_13 | +| ir.cpp:1698:16:1698:16 | ChiTotal | total:m1698_27 | +| ir.cpp:1698:16:1698:16 | Load | m1698_4 | +| ir.cpp:1698:16:1698:16 | Load | m1698_4 | +| ir.cpp:1698:16:1698:16 | Load | m1698_4 | +| ir.cpp:1698:16:1698:16 | SideEffect | ~m1695_6 | +| ir.cpp:1698:16:1698:16 | SideEffect | ~m1698_13 | +| ir.cpp:1698:16:1698:16 | SideEffect | ~m1698_27 | +| ir.cpp:1698:16:1698:16 | StoreValue | r1698_11 | +| ir.cpp:1698:16:1698:16 | Unary | r1698_8 | +| ir.cpp:1698:16:1698:16 | Unary | r1698_22 | +| ir.cpp:1698:16:1698:16 | Unary | r1698_25 | +| ir.cpp:1698:16:1698:16 | Unary | r1698_36 | +| ir.cpp:1698:16:1698:16 | Unary | r1698_39 | +| ir.cpp:1698:16:1698:30 | Address | &:r1698_6 | +| ir.cpp:1698:16:1698:30 | StoreValue | r1698_18 | +| ir.cpp:1698:16:1698:30 | StoreValue | r1698_32 | +| ir.cpp:1698:16:1698:30 | StoreValue | r1698_46 | +| ir.cpp:1698:16:1698:30 | Unary | r1698_6 | +| ir.cpp:1698:16:1698:30 | Unary | r1698_31 | +| ir.cpp:1698:16:1698:30 | Unary | r1698_45 | +| ir.cpp:1698:17:1698:17 | Address | &:r1698_5 | +| ir.cpp:1698:20:1698:20 | Address | &:r1698_20 | +| ir.cpp:1698:23:1698:23 | Address | &:r1698_34 | +| ir.cpp:1698:29:1698:29 | StoreValue | r1698_3 | +| ir.cpp:1698:29:1698:29 | Unary | r1698_2 | +| ir.cpp:1698:30:1698:30 | Address | &:r1698_9 | +| ir.cpp:1698:30:1698:30 | Address | &:r1698_9 | +| ir.cpp:1698:30:1698:30 | Address | &:r1698_23 | +| ir.cpp:1698:30:1698:30 | Address | &:r1698_23 | +| ir.cpp:1698:30:1698:30 | Address | &:r1698_37 | +| ir.cpp:1698:30:1698:30 | Address | &:r1698_37 | +| ir.cpp:1698:30:1698:30 | Arg(this) | this:r1698_9 | +| ir.cpp:1698:30:1698:30 | Arg(this) | this:r1698_23 | +| ir.cpp:1698:30:1698:30 | Arg(this) | this:r1698_37 | +| ir.cpp:1698:30:1698:30 | ChiPartial | partial:m1698_15 | +| ir.cpp:1698:30:1698:30 | ChiPartial | partial:m1698_29 | +| ir.cpp:1698:30:1698:30 | ChiPartial | partial:m1698_43 | +| ir.cpp:1698:30:1698:30 | ChiTotal | total:m1695_8 | +| ir.cpp:1698:30:1698:30 | ChiTotal | total:m1698_16 | +| ir.cpp:1698:30:1698:30 | ChiTotal | total:m1698_30 | +| ir.cpp:1698:30:1698:30 | SideEffect | m1695_8 | +| ir.cpp:1698:30:1698:30 | SideEffect | m1698_16 | +| ir.cpp:1698:30:1698:30 | SideEffect | m1698_30 | +| ir.cpp:1699:9:1699:9 | Address | &:r1699_2 | +| ir.cpp:1699:9:1699:9 | Address | &:r1699_4 | +| ir.cpp:1699:9:1699:9 | Load | m1698_19 | +| ir.cpp:1699:9:1699:9 | Unary | r1699_3 | +| ir.cpp:1699:13:1699:13 | StoreValue | r1699_1 | +| ir.cpp:1700:14:1700:15 | Address | &:r1700_1 | +| ir.cpp:1700:19:1700:19 | Address | &:r1700_2 | +| ir.cpp:1700:19:1700:19 | Load | m1698_19 | +| ir.cpp:1700:19:1700:19 | StoreValue | r1700_5 | +| ir.cpp:1700:19:1700:19 | Unary | r1700_3 | +| ir.cpp:1700:19:1700:19 | Unary | r1700_4 | +| ir.cpp:1701:13:1701:13 | Address | &:r1701_1 | +| ir.cpp:1701:17:1701:17 | Address | &:r1701_2 | +| ir.cpp:1701:17:1701:17 | Address | &:r1701_3 | +| ir.cpp:1701:17:1701:17 | Load | m1698_19 | +| ir.cpp:1701:17:1701:17 | Load | m1699_5 | +| ir.cpp:1701:17:1701:17 | StoreValue | r1701_4 | +| ir.cpp:1702:9:1702:9 | Address | &:r1702_2 | +| ir.cpp:1702:9:1702:9 | Address | &:r1702_4 | +| ir.cpp:1702:9:1702:9 | Load | m1698_33 | +| ir.cpp:1702:9:1702:9 | Unary | r1702_3 | +| ir.cpp:1702:9:1702:13 | ChiPartial | partial:m1702_5 | +| ir.cpp:1702:9:1702:13 | ChiTotal | total:m1698_41 | +| ir.cpp:1702:13:1702:13 | StoreValue | r1702_1 | +| ir.cpp:1703:14:1703:15 | Address | &:r1703_1 | +| ir.cpp:1703:19:1703:19 | Address | &:r1703_2 | +| ir.cpp:1703:19:1703:19 | Load | m1698_33 | +| ir.cpp:1703:19:1703:19 | StoreValue | r1703_5 | +| ir.cpp:1703:19:1703:19 | Unary | r1703_3 | +| ir.cpp:1703:19:1703:19 | Unary | r1703_4 | +| ir.cpp:1704:13:1704:13 | Address | &:r1704_1 | +| ir.cpp:1704:17:1704:17 | Address | &:r1704_2 | +| ir.cpp:1704:17:1704:17 | Address | &:r1704_3 | +| ir.cpp:1704:17:1704:17 | Load | m1698_33 | +| ir.cpp:1704:17:1704:17 | Load | ~m1702_6 | +| ir.cpp:1704:17:1704:17 | StoreValue | r1704_4 | +| ir.cpp:1708:16:1708:37 | Address | &:r1708_1 | +| ir.cpp:1708:41:1708:41 | StoreValue | r1708_3 | +| ir.cpp:1708:41:1708:41 | Unary | r1708_2 | +| ir.cpp:1709:16:1709:16 | Address | &:r1709_1 | +| ir.cpp:1709:20:1709:41 | Address | &:r1709_3 | +| ir.cpp:1709:20:1709:41 | Address | &:r1709_5 | +| ir.cpp:1709:20:1709:41 | Address | &:r1709_5 | +| ir.cpp:1709:20:1709:41 | Arg(this) | this:r1709_5 | +| ir.cpp:1709:20:1709:41 | ChiPartial | partial:m1709_11 | +| ir.cpp:1709:20:1709:41 | ChiTotal | total:m1698_44 | +| ir.cpp:1709:20:1709:41 | Load | m1708_4 | +| ir.cpp:1709:20:1709:41 | SideEffect | m1698_44 | +| ir.cpp:1709:20:1709:41 | Unary | r1709_4 | +| ir.cpp:1709:20:1709:50 | Address | &:r1709_2 | +| ir.cpp:1709:20:1709:50 | StoreValue | r1709_14 | +| ir.cpp:1709:20:1709:50 | Unary | r1709_2 | +| ir.cpp:1709:43:1709:48 | CallTarget | func:r1709_6 | +| ir.cpp:1709:43:1709:48 | ChiPartial | partial:m1709_8 | +| ir.cpp:1709:43:1709:48 | ChiTotal | total:m1702_6 | +| ir.cpp:1709:43:1709:48 | SideEffect | ~m1702_6 | +| ir.cpp:1709:43:1709:48 | StoreValue | r1709_7 | +| ir.cpp:1710:15:1710:15 | Address | &:r1710_1 | +| ir.cpp:1710:19:1710:40 | Address | &:r1710_2 | +| ir.cpp:1710:19:1710:40 | Address | &:r1710_4 | +| ir.cpp:1710:19:1710:40 | Address | &:r1710_4 | +| ir.cpp:1710:19:1710:40 | Arg(this) | this:r1710_4 | +| ir.cpp:1710:19:1710:40 | ChiPartial | partial:m1710_10 | +| ir.cpp:1710:19:1710:40 | ChiTotal | total:m1709_12 | +| ir.cpp:1710:19:1710:40 | Load | m1708_4 | +| ir.cpp:1710:19:1710:40 | SideEffect | m1709_12 | +| ir.cpp:1710:19:1710:40 | Unary | r1710_3 | +| ir.cpp:1710:42:1710:47 | CallTarget | func:r1710_5 | +| ir.cpp:1710:42:1710:47 | ChiPartial | partial:m1710_7 | +| ir.cpp:1710:42:1710:47 | ChiTotal | total:m1709_9 | +| ir.cpp:1710:42:1710:47 | SideEffect | ~m1709_9 | +| ir.cpp:1710:42:1710:47 | Unary | r1710_6 | +| ir.cpp:1710:48:1710:50 | StoreValue | r1710_13 | +| ir.cpp:1710:48:1710:50 | Unary | r1710_12 | +| ir.cpp:1711:16:1711:17 | Address | &:r1711_1 | +| ir.cpp:1711:21:1711:42 | Address | &:r1711_2 | +| ir.cpp:1711:21:1711:42 | Address | &:r1711_4 | +| ir.cpp:1711:21:1711:42 | Address | &:r1711_4 | +| ir.cpp:1711:21:1711:42 | Arg(this) | this:r1711_4 | +| ir.cpp:1711:21:1711:42 | ChiPartial | partial:m1711_10 | +| ir.cpp:1711:21:1711:42 | ChiTotal | total:m1710_11 | +| ir.cpp:1711:21:1711:42 | Load | m1708_4 | +| ir.cpp:1711:21:1711:42 | SideEffect | m1710_11 | +| ir.cpp:1711:21:1711:42 | Unary | r1711_3 | +| ir.cpp:1711:44:1711:49 | CallTarget | func:r1711_5 | +| ir.cpp:1711:44:1711:49 | ChiPartial | partial:m1711_7 | +| ir.cpp:1711:44:1711:49 | ChiTotal | total:m1710_8 | +| ir.cpp:1711:44:1711:49 | SideEffect | ~m1710_8 | +| ir.cpp:1711:44:1711:49 | Unary | r1711_6 | +| ir.cpp:1711:50:1711:52 | StoreValue | r1711_13 | +| ir.cpp:1711:50:1711:52 | Unary | r1711_12 | +| ir.cpp:1712:9:1712:9 | Address | &:r1712_2 | +| ir.cpp:1712:9:1712:9 | Address | &:r1712_4 | +| ir.cpp:1712:9:1712:9 | Load | m1709_15 | +| ir.cpp:1712:9:1712:9 | Unary | r1712_3 | +| ir.cpp:1712:13:1712:13 | StoreValue | r1712_1 | +| ir.cpp:1713:14:1713:15 | Address | &:r1713_1 | +| ir.cpp:1713:19:1713:19 | Address | &:r1713_2 | +| ir.cpp:1713:19:1713:19 | Load | m1709_15 | +| ir.cpp:1713:19:1713:19 | StoreValue | r1713_5 | +| ir.cpp:1713:19:1713:19 | Unary | r1713_3 | +| ir.cpp:1713:19:1713:19 | Unary | r1713_4 | +| ir.cpp:1714:13:1714:13 | Address | &:r1714_1 | +| ir.cpp:1714:17:1714:17 | Address | &:r1714_2 | +| ir.cpp:1714:17:1714:17 | Address | &:r1714_3 | +| ir.cpp:1714:17:1714:17 | Load | m1709_15 | +| ir.cpp:1714:17:1714:17 | Load | m1712_5 | +| ir.cpp:1714:17:1714:17 | StoreValue | r1714_4 | +| ir.cpp:1715:9:1715:9 | Address | &:r1715_2 | +| ir.cpp:1715:9:1715:9 | Address | &:r1715_4 | +| ir.cpp:1715:9:1715:9 | Load | m1710_14 | +| ir.cpp:1715:9:1715:9 | Unary | r1715_3 | +| ir.cpp:1715:9:1715:13 | ChiPartial | partial:m1715_5 | +| ir.cpp:1715:9:1715:13 | ChiTotal | total:m1711_8 | +| ir.cpp:1715:13:1715:13 | StoreValue | r1715_1 | +| ir.cpp:1716:14:1716:15 | Address | &:r1716_1 | +| ir.cpp:1716:19:1716:19 | Address | &:r1716_2 | +| ir.cpp:1716:19:1716:19 | Load | m1710_14 | +| ir.cpp:1716:19:1716:19 | StoreValue | r1716_5 | +| ir.cpp:1716:19:1716:19 | Unary | r1716_3 | +| ir.cpp:1716:19:1716:19 | Unary | r1716_4 | +| ir.cpp:1717:13:1717:13 | Address | &:r1717_1 | +| ir.cpp:1717:17:1717:17 | Address | &:r1717_2 | +| ir.cpp:1717:17:1717:17 | Address | &:r1717_3 | +| ir.cpp:1717:17:1717:17 | Load | m1710_14 | +| ir.cpp:1717:17:1717:17 | Load | ~m1715_6 | +| ir.cpp:1717:17:1717:17 | StoreValue | r1717_4 | +| ir.cpp:1721:6:1721:42 | ChiPartial | partial:m1721_3 | +| ir.cpp:1721:6:1721:42 | ChiTotal | total:m1721_2 | +| ir.cpp:1721:6:1721:42 | SideEffect | m1721_3 | +| ir.cpp:1722:9:1722:10 | Address | &:r1722_1 | +| ir.cpp:1722:9:1722:10 | Left | r1722_1 | +| ir.cpp:1722:9:1722:10 | Left | r1722_1 | +| ir.cpp:1722:16:1722:22 | Address | &:r1722_4 | +| ir.cpp:1722:16:1722:22 | Address | &:r1722_9 | +| ir.cpp:1722:16:1722:22 | Right | r1722_3 | +| ir.cpp:1722:16:1722:22 | Right | r1722_8 | +| ir.cpp:1722:18:1722:18 | ChiPartial | partial:m1722_6 | +| ir.cpp:1722:18:1722:18 | ChiTotal | total:m1722_2 | +| ir.cpp:1722:18:1722:18 | StoreValue | r1722_5 | +| ir.cpp:1722:21:1722:21 | ChiPartial | partial:m1722_11 | +| ir.cpp:1722:21:1722:21 | ChiTotal | total:m1722_7 | +| ir.cpp:1722:21:1722:21 | StoreValue | r1722_10 | +| ir.cpp:1723:10:1723:10 | Address | &:r1723_1 | +| ir.cpp:1723:11:1723:11 | Address | &:r1723_5 | +| ir.cpp:1723:15:1723:15 | Address | &:r1723_6 | +| ir.cpp:1723:21:1723:22 | Address | &:r1723_2 | +| ir.cpp:1723:21:1723:22 | Load | m1722_12 | +| ir.cpp:1723:21:1723:22 | StoreValue | r1723_3 | +| ir.cpp:1729:5:1729:23 | Address | &:r1729_5 | +| ir.cpp:1729:5:1729:23 | Address | &:r1729_5 | +| ir.cpp:1729:5:1729:23 | Address | &:r1729_7 | +| ir.cpp:1729:5:1729:23 | Address | &:r1729_7 | +| ir.cpp:1729:5:1729:23 | ChiPartial | partial:m1729_3 | +| ir.cpp:1729:5:1729:23 | ChiTotal | total:m1729_2 | +| ir.cpp:1729:5:1729:23 | Load | m1729_6 | +| ir.cpp:1729:5:1729:23 | SideEffect | m1729_3 | +| ir.cpp:1729:5:1729:23 | SideEffect | m1729_8 | +| ir.cpp:1732:6:1732:20 | ChiPartial | partial:m1732_3 | +| ir.cpp:1732:6:1732:20 | ChiTotal | total:m1732_2 | +| ir.cpp:1732:6:1732:20 | SideEffect | ~m1735_6 | +| ir.cpp:1732:26:1732:26 | Address | &:r1732_5 | +| ir.cpp:1732:34:1732:34 | Address | &:r1732_7 | +| ir.cpp:1732:34:1732:34 | Address | &:r1732_7 | +| ir.cpp:1732:34:1732:34 | Address | &:r1732_9 | +| ir.cpp:1732:34:1732:34 | Address | &:r1732_9 | +| ir.cpp:1732:34:1732:34 | Load | m1732_8 | +| ir.cpp:1732:34:1732:34 | SideEffect | m1732_10 | +| ir.cpp:1732:43:1732:43 | Address | &:r1732_11 | +| ir.cpp:1732:43:1732:43 | Address | &:r1732_11 | +| ir.cpp:1732:43:1732:43 | Address | &:r1732_13 | +| ir.cpp:1732:43:1732:43 | Address | &:r1732_13 | +| ir.cpp:1732:43:1732:43 | Load | m1732_12 | +| ir.cpp:1732:43:1732:43 | SideEffect | m1732_14 | +| ir.cpp:1734:17:1734:20 | Address | &:r1734_1 | +| ir.cpp:1734:24:1734:44 | Address | &:r1734_2 | +| ir.cpp:1734:24:1734:44 | Address | &:r1734_2 | +| ir.cpp:1734:24:1734:44 | Arg(this) | this:r1734_2 | +| ir.cpp:1734:24:1734:44 | CallTarget | func:r1734_4 | +| ir.cpp:1734:24:1734:44 | ChiPartial | partial:m1734_6 | +| ir.cpp:1734:24:1734:44 | ChiPartial | partial:m1734_8 | +| ir.cpp:1734:24:1734:44 | ChiTotal | total:m1732_4 | +| ir.cpp:1734:24:1734:44 | ChiTotal | total:m1734_3 | +| ir.cpp:1734:24:1734:44 | SideEffect | ~m1732_4 | +| ir.cpp:1734:24:1734:44 | StoreValue | r1734_11 | +| ir.cpp:1734:24:1734:44 | Unary | r1734_2 | +| ir.cpp:1734:24:1734:44 | Unary | r1734_10 | +| ir.cpp:1735:10:1735:13 | Address | &:r1735_1 | +| ir.cpp:1735:10:1735:13 | Address | &:r1735_1 | +| ir.cpp:1735:10:1735:13 | Arg(this) | this:r1735_1 | +| ir.cpp:1735:16:1735:37 | CallTarget | func:r1735_3 | +| ir.cpp:1735:16:1735:37 | ChiPartial | partial:m1735_5 | +| ir.cpp:1735:16:1735:37 | ChiPartial | partial:m1735_7 | +| ir.cpp:1735:16:1735:37 | ChiTotal | total:m1734_7 | +| ir.cpp:1735:16:1735:37 | ChiTotal | total:m1735_2 | +| ir.cpp:1735:16:1735:37 | SideEffect | ~m1734_7 | +| ir.cpp:1737:10:1737:21 | Address | &:r1737_1 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_2 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_2 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_4 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_5 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_6 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_7 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_8 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_12 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_17 | +| ir.cpp:1737:24:1739:5 | Address | &:r1737_20 | +| ir.cpp:1737:24:1739:5 | ChiPartial | partial:m1737_10 | +| ir.cpp:1737:24:1739:5 | ChiTotal | total:m0_3 | +| ir.cpp:1737:24:1739:5 | Load | m1734_12 | +| ir.cpp:1737:24:1739:5 | Load | m1735_8 | +| ir.cpp:1737:24:1739:5 | Load | m1739_6 | +| ir.cpp:1737:24:1739:5 | StoreValue | r1737_9 | +| ir.cpp:1737:24:1739:5 | StoreValue | r1737_23 | +| ir.cpp:1737:24:1739:5 | Unary | r1737_2 | +| ir.cpp:1737:24:1739:5 | Unary | r1737_2 | +| ir.cpp:1737:24:1739:5 | Unary | r1737_2 | +| ir.cpp:1737:24:1739:5 | Unary | r1737_2 | +| ir.cpp:1737:24:1739:5 | Unary | r1737_2 | +| ir.cpp:1737:38:1737:38 | Address | &:r1737_13 | +| ir.cpp:1737:38:1737:38 | ChiPartial | partial:m1737_15 | +| ir.cpp:1737:38:1737:38 | ChiTotal | total:m1737_11 | +| ir.cpp:1737:38:1737:38 | Load | m1732_6 | +| ir.cpp:1737:38:1737:38 | StoreValue | r1737_14 | +| ir.cpp:1737:41:1737:41 | Address | &:r1737_18 | +| ir.cpp:1737:41:1737:41 | Address | &:r1737_19 | +| ir.cpp:1737:41:1737:41 | Load | m1732_8 | +| ir.cpp:1737:44:1737:44 | Address | &:r1737_21 | +| ir.cpp:1737:44:1737:44 | Address | &:r1737_22 | +| ir.cpp:1737:44:1737:44 | Load | m1732_12 | +| ir.cpp:1737:46:1737:46 | Address | &:r1737_5 | +| ir.cpp:1737:46:1737:46 | Address | &:r1737_5 | +| ir.cpp:1737:46:1737:46 | Address | &:r1737_7 | +| ir.cpp:1737:46:1737:46 | Address | &:r1737_7 | +| ir.cpp:1737:46:1737:46 | ChiPartial | partial:m1737_3 | +| ir.cpp:1737:46:1737:46 | ChiTotal | total:m1737_2 | +| ir.cpp:1737:46:1737:46 | Load | m1737_6 | +| ir.cpp:1737:46:1737:46 | SideEffect | m1737_3 | +| ir.cpp:1737:46:1737:46 | SideEffect | m1737_8 | +| ir.cpp:1738:14:1738:25 | Address | &:r1738_1 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_2 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_2 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_4 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_5 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_7 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_11 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_12 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_14 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_18 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_19 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_21 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_25 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_26 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_28 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_32 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_33 | +| ir.cpp:1738:28:1738:54 | Address | &:r1738_35 | +| ir.cpp:1738:28:1738:54 | ChiPartial | partial:m1738_9 | +| ir.cpp:1738:28:1738:54 | ChiPartial | partial:m1738_16 | +| ir.cpp:1738:28:1738:54 | ChiPartial | partial:m1738_23 | +| ir.cpp:1738:28:1738:54 | ChiPartial | partial:m1738_30 | +| ir.cpp:1738:28:1738:54 | ChiPartial | partial:m1738_37 | +| ir.cpp:1738:28:1738:54 | ChiTotal | total:m1738_3 | +| ir.cpp:1738:28:1738:54 | ChiTotal | total:m1738_10 | +| ir.cpp:1738:28:1738:54 | ChiTotal | total:m1738_17 | +| ir.cpp:1738:28:1738:54 | ChiTotal | total:m1738_24 | +| ir.cpp:1738:28:1738:54 | ChiTotal | total:m1738_31 | +| ir.cpp:1738:28:1738:54 | Load | m1737_6 | +| ir.cpp:1738:28:1738:54 | Load | m1737_6 | +| ir.cpp:1738:28:1738:54 | Load | m1737_6 | +| ir.cpp:1738:28:1738:54 | Load | m1737_6 | +| ir.cpp:1738:28:1738:54 | Load | m1737_6 | +| ir.cpp:1738:28:1738:54 | Load | m1738_38 | +| ir.cpp:1738:28:1738:54 | Load | ~m1737_8 | +| ir.cpp:1738:28:1738:54 | Load | ~m1737_8 | +| ir.cpp:1738:28:1738:54 | Load | ~m1737_8 | +| ir.cpp:1738:28:1738:54 | Load | ~m1737_8 | +| ir.cpp:1738:28:1738:54 | Load | ~m1737_8 | +| ir.cpp:1738:28:1738:54 | StoreValue | r1738_8 | +| ir.cpp:1738:28:1738:54 | StoreValue | r1738_15 | +| ir.cpp:1738:28:1738:54 | StoreValue | r1738_22 | +| ir.cpp:1738:28:1738:54 | StoreValue | r1738_29 | +| ir.cpp:1738:28:1738:54 | StoreValue | r1738_36 | +| ir.cpp:1738:28:1738:54 | StoreValue | r1738_39 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_2 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_2 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_2 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_2 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_2 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_6 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_13 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_20 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_27 | +| ir.cpp:1738:28:1738:54 | Unary | r1738_34 | +| ir.cpp:1738:50:1738:50 | Address | &:r1738_5 | +| ir.cpp:1738:50:1738:50 | Address | &:r1738_5 | +| ir.cpp:1738:50:1738:50 | Address | &:r1738_7 | +| ir.cpp:1738:50:1738:50 | Address | &:r1738_7 | +| ir.cpp:1738:50:1738:50 | ChiPartial | partial:m1738_3 | +| ir.cpp:1738:50:1738:50 | ChiTotal | total:m1738_2 | +| ir.cpp:1738:50:1738:50 | Load | m1738_6 | +| ir.cpp:1738:50:1738:50 | SideEffect | m1738_3 | +| ir.cpp:1738:50:1738:50 | SideEffect | m1738_8 | +| ir.cpp:1739:6:1739:6 | ChiPartial | partial:m1739_2 | +| ir.cpp:1739:6:1739:6 | ChiPartial | partial:m1739_5 | +| ir.cpp:1739:6:1739:6 | ChiTotal | total:m1737_16 | +| ir.cpp:1739:6:1739:6 | ChiTotal | total:m1739_3 | +| ir.cpp:1739:6:1739:6 | Load | ~m1732_10 | +| ir.cpp:1739:6:1739:6 | Load | ~m1732_14 | +| ir.cpp:1739:6:1739:6 | StoreValue | r1739_1 | +| ir.cpp:1739:6:1739:6 | StoreValue | r1739_4 | +| ir.cpp:1742:5:1742:21 | Address | &:r1742_5 | +| ir.cpp:1742:5:1742:21 | ChiPartial | partial:m1742_3 | +| ir.cpp:1742:5:1742:21 | ChiTotal | total:m1742_2 | +| ir.cpp:1742:5:1742:21 | Load | m1745_4 | +| ir.cpp:1742:5:1742:21 | SideEffect | m1742_3 | +| ir.cpp:1743:7:1743:7 | Address | &:r1743_1 | +| ir.cpp:1743:10:1743:12 | StoreValue | r1743_2 | +| ir.cpp:1745:3:1745:11 | Address | &:r1745_1 | +| ir.cpp:1745:10:1745:10 | Address | &:r1745_2 | +| ir.cpp:1745:10:1745:10 | Load | m1743_3 | +| ir.cpp:1745:10:1745:10 | StoreValue | r1745_3 | +| ir.cpp:1750:10:1750:10 | Address | &:r1750_5 | +| ir.cpp:1750:10:1750:10 | Address | &:r1750_5 | +| ir.cpp:1750:10:1750:10 | Address | &:r1750_7 | +| ir.cpp:1750:10:1750:10 | Address | &:r1750_7 | +| ir.cpp:1750:10:1750:10 | ChiPartial | partial:m1750_3 | +| ir.cpp:1750:10:1750:10 | ChiTotal | total:m1750_2 | +| ir.cpp:1750:10:1750:10 | Load | m1750_6 | +| ir.cpp:1750:10:1750:10 | SideEffect | m1750_3 | +| ir.cpp:1750:10:1750:10 | SideEffect | m1750_8 | +| ir.cpp:1751:14:1751:22 | Address | &:r1751_1 | +| ir.cpp:1751:25:1757:9 | Address | &:r1751_2 | +| ir.cpp:1751:25:1757:9 | Address | &:r1751_2 | +| ir.cpp:1751:25:1757:9 | Address | &:r1751_4 | +| ir.cpp:1751:25:1757:9 | Address | &:r1751_5 | +| ir.cpp:1751:25:1757:9 | Address | &:r1751_6 | +| ir.cpp:1751:25:1757:9 | Load | m1750_6 | +| ir.cpp:1751:25:1757:9 | Load | ~m1750_8 | +| ir.cpp:1751:25:1757:9 | Load | ~m1751_8 | +| ir.cpp:1751:25:1757:9 | StoreValue | r1751_7 | +| ir.cpp:1751:25:1757:9 | StoreValue | r1751_9 | +| ir.cpp:1751:25:1757:9 | Unary | r1751_2 | +| ir.cpp:1751:34:1751:34 | Address | &:r1751_5 | +| ir.cpp:1751:34:1751:34 | Address | &:r1751_5 | +| ir.cpp:1751:34:1751:34 | Address | &:r1751_7 | +| ir.cpp:1751:34:1751:34 | Address | &:r1751_7 | +| ir.cpp:1751:34:1751:34 | ChiPartial | partial:m1751_3 | +| ir.cpp:1751:34:1751:34 | ChiTotal | total:m1751_2 | +| ir.cpp:1751:34:1751:34 | Load | m1751_6 | +| ir.cpp:1751:34:1751:34 | SideEffect | m1751_8 | +| ir.cpp:1751:34:1751:34 | SideEffect | ~m1752_8 | +| ir.cpp:1752:13:1752:13 | Address | &:r1752_1 | +| ir.cpp:1752:13:1752:13 | Address | &:r1752_4 | +| ir.cpp:1752:13:1752:13 | Arg(this) | this:r1752_4 | +| ir.cpp:1752:13:1752:13 | CallTarget | func:r1752_5 | +| ir.cpp:1752:13:1752:13 | ChiPartial | partial:m1752_7 | +| ir.cpp:1752:13:1752:13 | ChiTotal | total:m1751_4 | +| ir.cpp:1752:13:1752:13 | Load | m1751_6 | +| ir.cpp:1752:13:1752:13 | SideEffect | ~m1751_4 | +| ir.cpp:1752:13:1752:13 | SideEffect | ~m1751_8 | +| ir.cpp:1752:13:1752:13 | Unary | r1752_2 | +| ir.cpp:1752:13:1752:13 | Unary | r1752_3 | +| ir.cpp:1754:18:1754:26 | Address | &:r1754_1 | +| ir.cpp:1754:29:1756:13 | Address | &:r1754_2 | +| ir.cpp:1754:29:1756:13 | Address | &:r1754_2 | +| ir.cpp:1754:29:1756:13 | Address | &:r1754_4 | +| ir.cpp:1754:29:1756:13 | Address | &:r1754_5 | +| ir.cpp:1754:29:1756:13 | Address | &:r1754_7 | +| ir.cpp:1754:29:1756:13 | Load | m1751_6 | +| ir.cpp:1754:29:1756:13 | Load | ~m1751_8 | +| ir.cpp:1754:29:1756:13 | Load | ~m1754_9 | +| ir.cpp:1754:29:1756:13 | StoreValue | r1754_8 | +| ir.cpp:1754:29:1756:13 | StoreValue | r1754_10 | +| ir.cpp:1754:29:1756:13 | Unary | r1754_2 | +| ir.cpp:1754:29:1756:13 | Unary | r1754_6 | +| ir.cpp:1754:38:1754:38 | Address | &:r1754_5 | +| ir.cpp:1754:38:1754:38 | Address | &:r1754_5 | +| ir.cpp:1754:38:1754:38 | Address | &:r1754_7 | +| ir.cpp:1754:38:1754:38 | Address | &:r1754_7 | +| ir.cpp:1754:38:1754:38 | ChiPartial | partial:m1754_3 | +| ir.cpp:1754:38:1754:38 | ChiTotal | total:m1754_2 | +| ir.cpp:1754:38:1754:38 | Load | m1754_6 | +| ir.cpp:1754:38:1754:38 | SideEffect | m1754_8 | +| ir.cpp:1754:38:1754:38 | SideEffect | ~m1755_8 | +| ir.cpp:1755:17:1755:17 | Address | &:r1755_1 | +| ir.cpp:1755:17:1755:17 | Address | &:r1755_4 | +| ir.cpp:1755:17:1755:17 | Arg(this) | this:r1755_4 | +| ir.cpp:1755:17:1755:17 | CallTarget | func:r1755_5 | +| ir.cpp:1755:17:1755:17 | ChiPartial | partial:m1755_7 | +| ir.cpp:1755:17:1755:17 | ChiTotal | total:m1754_4 | +| ir.cpp:1755:17:1755:17 | Load | m1754_6 | +| ir.cpp:1755:17:1755:17 | SideEffect | ~m1754_4 | +| ir.cpp:1755:17:1755:17 | SideEffect | ~m1754_8 | +| ir.cpp:1755:17:1755:17 | Unary | r1755_2 | +| ir.cpp:1755:17:1755:17 | Unary | r1755_3 | +| ir.cpp:1761:6:1761:21 | ChiPartial | partial:m1761_3 | +| ir.cpp:1761:6:1761:21 | ChiTotal | total:m1761_2 | +| ir.cpp:1761:6:1761:21 | SideEffect | m1761_3 | +| ir.cpp:1761:42:1761:43 | Address | &:r1761_5 | +| ir.cpp:1761:66:1761:67 | Address | &:r1761_7 | +| ir.cpp:1761:66:1761:67 | Address | &:r1761_7 | +| ir.cpp:1761:66:1761:67 | Address | &:r1761_9 | +| ir.cpp:1761:66:1761:67 | Address | &:r1761_9 | +| ir.cpp:1761:66:1761:67 | Load | m1761_8 | +| ir.cpp:1761:66:1761:67 | SideEffect | m1761_10 | +| ir.cpp:1761:91:1761:92 | Address | &:r1761_11 | +| ir.cpp:1761:91:1761:92 | Address | &:r1761_11 | +| ir.cpp:1761:91:1761:92 | Address | &:r1761_13 | +| ir.cpp:1761:91:1761:92 | Address | &:r1761_13 | +| ir.cpp:1761:91:1761:92 | Load | m1761_12 | +| ir.cpp:1761:91:1761:92 | SideEffect | m1761_14 | +| ir.cpp:1762:30:1762:31 | Address | &:r1762_1 | +| ir.cpp:1763:31:1763:32 | Address | &:r1763_1 | +| ir.cpp:1763:36:1763:55 | Address | &:r1763_2 | +| ir.cpp:1763:36:1763:55 | StoreValue | r1763_3 | +| ir.cpp:1763:36:1763:55 | StoreValue | r1763_6 | +| ir.cpp:1763:36:1763:55 | Unary | r1763_2 | +| ir.cpp:1763:36:1763:55 | Unary | r1763_5 | +| ir.cpp:1765:10:1765:17 | Address | &:r1765_1 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_2 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_2 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_4 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_5 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_9 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_10 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_11 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_12 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_13 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_14 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_15 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_16 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_20 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_21 | +| ir.cpp:1765:20:1767:5 | Address | &:r1765_22 | +| ir.cpp:1765:20:1767:5 | ChiPartial | partial:m1765_7 | +| ir.cpp:1765:20:1767:5 | ChiPartial | partial:m1765_18 | +| ir.cpp:1765:20:1767:5 | ChiTotal | total:m0_6 | +| ir.cpp:1765:20:1767:5 | ChiTotal | total:m1765_3 | +| ir.cpp:1765:20:1767:5 | Load | m0_9 | +| ir.cpp:1765:20:1767:5 | Load | m1761_6 | +| ir.cpp:1765:20:1767:5 | Load | m1761_8 | +| ir.cpp:1765:20:1767:5 | Load | m1761_12 | +| ir.cpp:1765:20:1767:5 | Load | m1762_2 | +| ir.cpp:1765:20:1767:5 | Load | m1763_7 | +| ir.cpp:1765:20:1767:5 | StoreValue | r1765_6 | +| ir.cpp:1765:20:1767:5 | StoreValue | r1765_17 | +| ir.cpp:1765:20:1767:5 | StoreValue | r1765_23 | +| ir.cpp:1765:20:1767:5 | Unary | r1765_2 | +| ir.cpp:1765:20:1767:5 | Unary | r1765_2 | +| ir.cpp:1765:20:1767:5 | Unary | r1765_2 | +| ir.cpp:1765:20:1767:5 | Unary | r1765_2 | +| ir.cpp:1765:20:1767:5 | Unary | r1765_2 | +| ir.cpp:1765:42:1765:42 | Address | &:r1765_5 | +| ir.cpp:1765:42:1765:42 | Address | &:r1765_5 | +| ir.cpp:1765:42:1765:42 | Address | &:r1765_7 | +| ir.cpp:1765:42:1765:42 | Address | &:r1765_7 | +| ir.cpp:1765:42:1765:42 | ChiPartial | partial:m1765_3 | +| ir.cpp:1765:42:1765:42 | ChiTotal | total:m1765_2 | +| ir.cpp:1765:42:1765:42 | Load | m1765_6 | +| ir.cpp:1765:42:1765:42 | SideEffect | m1765_3 | +| ir.cpp:1765:42:1765:42 | SideEffect | m1765_8 | +| ir.cpp:1766:14:1766:21 | Address | &:r1766_1 | +| ir.cpp:1766:24:1766:31 | Address | &:r1766_2 | +| ir.cpp:1766:24:1766:31 | Address | &:r1766_2 | +| ir.cpp:1766:24:1766:31 | Address | &:r1766_4 | +| ir.cpp:1766:24:1766:31 | Address | &:r1766_5 | +| ir.cpp:1766:24:1766:31 | Address | &:r1766_7 | +| ir.cpp:1766:24:1766:31 | Load | m1765_6 | +| ir.cpp:1766:24:1766:31 | Load | ~m1765_8 | +| ir.cpp:1766:24:1766:31 | Load | ~m1766_9 | +| ir.cpp:1766:24:1766:31 | StoreValue | r1766_8 | +| ir.cpp:1766:24:1766:31 | StoreValue | r1766_10 | +| ir.cpp:1766:24:1766:31 | Unary | r1766_2 | +| ir.cpp:1766:24:1766:31 | Unary | r1766_6 | +| ir.cpp:1766:30:1766:30 | Address | &:r1766_5 | +| ir.cpp:1766:30:1766:30 | Address | &:r1766_5 | +| ir.cpp:1766:30:1766:30 | Address | &:r1766_7 | +| ir.cpp:1766:30:1766:30 | Address | &:r1766_7 | +| ir.cpp:1766:30:1766:30 | ChiPartial | partial:m1766_3 | +| ir.cpp:1766:30:1766:30 | ChiTotal | total:m1766_2 | +| ir.cpp:1766:30:1766:30 | Load | m1766_6 | +| ir.cpp:1766:30:1766:30 | SideEffect | m1766_3 | +| ir.cpp:1766:30:1766:30 | SideEffect | m1766_8 | +| ir.cpp:1773:5:1773:44 | Address | &:r1773_5 | +| ir.cpp:1773:5:1773:44 | Address | &:r1773_5 | +| ir.cpp:1773:5:1773:44 | Address | &:r1773_7 | +| ir.cpp:1773:5:1773:44 | Address | &:r1773_7 | +| ir.cpp:1773:5:1773:44 | ChiPartial | partial:m1773_3 | +| ir.cpp:1773:5:1773:44 | ChiTotal | total:m1773_2 | +| ir.cpp:1773:5:1773:44 | Load | m1773_6 | +| ir.cpp:1773:5:1773:44 | SideEffect | m1773_3 | +| ir.cpp:1773:5:1773:44 | SideEffect | m1773_8 | +| ir.cpp:1774:5:1774:44 | Address | &:r1774_5 | +| ir.cpp:1774:5:1774:44 | Address | &:r1774_5 | +| ir.cpp:1774:5:1774:44 | Address | &:r1774_7 | +| ir.cpp:1774:5:1774:44 | Address | &:r1774_7 | +| ir.cpp:1774:5:1774:44 | ChiPartial | partial:m1774_3 | +| ir.cpp:1774:5:1774:44 | ChiTotal | total:m1774_2 | +| ir.cpp:1774:5:1774:44 | Load | m1774_6 | +| ir.cpp:1774:5:1774:44 | SideEffect | m1774_3 | +| ir.cpp:1774:5:1774:44 | SideEffect | m1775_10 | +| ir.cpp:1774:94:1774:94 | Address | &:r1774_9 | +| ir.cpp:1774:94:1774:94 | Address | &:r1774_9 | +| ir.cpp:1774:94:1774:94 | Address | &:r1774_11 | +| ir.cpp:1774:94:1774:94 | Address | &:r1774_11 | +| ir.cpp:1774:94:1774:94 | Load | m1774_10 | +| ir.cpp:1774:94:1774:94 | SideEffect | m1774_12 | +| ir.cpp:1775:9:1775:9 | Address | &:r1775_6 | +| ir.cpp:1775:9:1775:9 | Address | &:r1775_8 | +| ir.cpp:1775:9:1775:9 | Load | m1774_6 | +| ir.cpp:1775:9:1775:9 | Unary | r1775_7 | +| ir.cpp:1775:9:1775:15 | ChiPartial | partial:m1775_9 | +| ir.cpp:1775:9:1775:15 | ChiTotal | total:m1774_8 | +| ir.cpp:1775:13:1775:13 | Address | &:r1775_1 | +| ir.cpp:1775:13:1775:13 | Load | m1774_10 | +| ir.cpp:1775:13:1775:13 | Unary | r1775_2 | +| ir.cpp:1775:13:1775:13 | Unary | r1775_3 | +| ir.cpp:1775:15:1775:15 | Address | &:r1775_4 | +| ir.cpp:1775:15:1775:15 | Load | ~m1774_12 | +| ir.cpp:1775:15:1775:15 | StoreValue | r1775_5 | +| ir.cpp:1782:5:1782:39 | Address | &:r1782_5 | +| ir.cpp:1782:5:1782:39 | Address | &:r1782_5 | +| ir.cpp:1782:5:1782:39 | Address | &:r1782_7 | +| ir.cpp:1782:5:1782:39 | Address | &:r1782_7 | +| ir.cpp:1782:5:1782:39 | ChiPartial | partial:m1782_3 | +| ir.cpp:1782:5:1782:39 | ChiTotal | total:m1782_2 | +| ir.cpp:1782:5:1782:39 | Load | m1782_6 | +| ir.cpp:1782:5:1782:39 | SideEffect | m1782_3 | +| ir.cpp:1782:5:1782:39 | SideEffect | m1782_8 | +| ir.cpp:1785:7:1785:7 | Address | &:r1785_5 | +| ir.cpp:1785:7:1785:7 | Address | &:r1785_5 | +| ir.cpp:1785:7:1785:7 | Address | &:r1785_7 | +| ir.cpp:1785:7:1785:7 | Address | &:r1785_7 | +| ir.cpp:1785:7:1785:7 | Address | &:r1785_9 | +| ir.cpp:1785:7:1785:7 | Address | &:r1785_11 | +| ir.cpp:1785:7:1785:7 | Address | &:r1785_15 | +| ir.cpp:1785:7:1785:7 | Arg(0) | 0:r1785_15 | +| ir.cpp:1785:7:1785:7 | Arg(this) | this:r1785_9 | +| ir.cpp:1785:7:1785:7 | CallTarget | func:r1785_10 | +| ir.cpp:1785:7:1785:7 | ChiPartial | partial:m1785_3 | +| ir.cpp:1785:7:1785:7 | ChiPartial | partial:m1785_17 | +| ir.cpp:1785:7:1785:7 | ChiPartial | partial:m1785_20 | +| ir.cpp:1785:7:1785:7 | ChiTotal | total:m1785_2 | +| ir.cpp:1785:7:1785:7 | ChiTotal | total:m1785_4 | +| ir.cpp:1785:7:1785:7 | ChiTotal | total:m1785_8 | +| ir.cpp:1785:7:1785:7 | Load | m0_2 | +| ir.cpp:1785:7:1785:7 | Load | m1785_6 | +| ir.cpp:1785:7:1785:7 | SideEffect | m1785_21 | +| ir.cpp:1785:7:1785:7 | SideEffect | ~m0_4 | +| ir.cpp:1785:7:1785:7 | SideEffect | ~m1785_4 | +| ir.cpp:1785:7:1785:7 | SideEffect | ~m1785_18 | +| ir.cpp:1785:7:1785:7 | Unary | m1785_6 | +| ir.cpp:1785:7:1785:7 | Unary | r1785_12 | +| ir.cpp:1785:7:1785:7 | Unary | r1785_13 | +| ir.cpp:1785:7:1785:7 | Unary | r1785_14 | +| ir.cpp:1789:5:1789:38 | Address | &:r1789_5 | +| ir.cpp:1789:5:1789:38 | Address | &:r1789_5 | +| ir.cpp:1789:5:1789:38 | Address | &:r1789_7 | +| ir.cpp:1789:5:1789:38 | Address | &:r1789_7 | +| ir.cpp:1789:5:1789:38 | ChiPartial | partial:m1789_3 | +| ir.cpp:1789:5:1789:38 | ChiTotal | total:m1789_2 | +| ir.cpp:1789:5:1789:38 | Load | m1789_6 | +| ir.cpp:1789:5:1789:38 | SideEffect | m1789_22 | +| ir.cpp:1789:5:1789:38 | SideEffect | ~m1789_20 | +| ir.cpp:1789:5:1789:38 | Unary | m1789_6 | +| ir.cpp:1789:5:1789:38 | Unary | m1789_6 | +| ir.cpp:1789:42:1789:42 | Address | &:r1789_9 | +| ir.cpp:1789:42:1789:42 | Address | &:r1789_16 | +| ir.cpp:1789:42:1789:42 | Arg(this) | this:r1789_9 | +| ir.cpp:1789:42:1789:42 | Arg(this) | this:r1789_16 | +| ir.cpp:1789:42:1789:42 | CallTarget | func:r1789_10 | +| ir.cpp:1789:42:1789:42 | CallTarget | func:r1789_17 | +| ir.cpp:1789:42:1789:42 | ChiPartial | partial:m1789_12 | +| ir.cpp:1789:42:1789:42 | ChiPartial | partial:m1789_14 | +| ir.cpp:1789:42:1789:42 | ChiPartial | partial:m1789_19 | +| ir.cpp:1789:42:1789:42 | ChiPartial | partial:m1789_21 | +| ir.cpp:1789:42:1789:42 | ChiTotal | total:m1789_4 | +| ir.cpp:1789:42:1789:42 | ChiTotal | total:m1789_8 | +| ir.cpp:1789:42:1789:42 | ChiTotal | total:m1789_13 | +| ir.cpp:1789:42:1789:42 | ChiTotal | total:m1789_15 | +| ir.cpp:1789:42:1789:42 | SideEffect | ~m1789_4 | +| ir.cpp:1789:42:1789:42 | SideEffect | ~m1789_13 | +| ir.cpp:1792:7:1792:7 | Address | &:r1792_5 | +| ir.cpp:1792:7:1792:7 | Address | &:r1792_5 | +| ir.cpp:1792:7:1792:7 | Address | &:r1792_7 | +| ir.cpp:1792:7:1792:7 | Address | &:r1792_7 | +| ir.cpp:1792:7:1792:7 | Address | &:r1792_9 | +| ir.cpp:1792:7:1792:7 | Address | &:r1792_11 | +| ir.cpp:1792:7:1792:7 | Address | &:r1792_15 | +| ir.cpp:1792:7:1792:7 | Arg(0) | 0:r1792_15 | +| ir.cpp:1792:7:1792:7 | Arg(this) | this:r1792_9 | +| ir.cpp:1792:7:1792:7 | CallTarget | func:r1792_10 | +| ir.cpp:1792:7:1792:7 | ChiPartial | partial:m1792_3 | +| ir.cpp:1792:7:1792:7 | ChiPartial | partial:m1792_17 | +| ir.cpp:1792:7:1792:7 | ChiPartial | partial:m1792_20 | +| ir.cpp:1792:7:1792:7 | ChiTotal | total:m1792_2 | +| ir.cpp:1792:7:1792:7 | ChiTotal | total:m1792_4 | +| ir.cpp:1792:7:1792:7 | ChiTotal | total:m1792_18 | +| ir.cpp:1792:7:1792:7 | Load | m0_2 | +| ir.cpp:1792:7:1792:7 | Load | m1792_6 | +| ir.cpp:1792:7:1792:7 | SideEffect | m1792_8 | +| ir.cpp:1792:7:1792:7 | SideEffect | ~m0_4 | +| ir.cpp:1792:7:1792:7 | SideEffect | ~m1792_4 | +| ir.cpp:1792:7:1792:7 | SideEffect | ~m1792_21 | +| ir.cpp:1792:7:1792:7 | Unary | m1792_6 | +| ir.cpp:1792:7:1792:7 | Unary | r1792_12 | +| ir.cpp:1792:7:1792:7 | Unary | r1792_13 | +| ir.cpp:1792:7:1792:7 | Unary | r1792_14 | +| ir.cpp:1796:5:1796:35 | Address | &:r1796_5 | +| ir.cpp:1796:5:1796:35 | Address | &:r1796_5 | +| ir.cpp:1796:5:1796:35 | Address | &:r1796_7 | +| ir.cpp:1796:5:1796:35 | Address | &:r1796_7 | +| ir.cpp:1796:5:1796:35 | ChiPartial | partial:m1796_3 | +| ir.cpp:1796:5:1796:35 | ChiTotal | total:m1796_2 | +| ir.cpp:1796:5:1796:35 | Load | m1796_6 | +| ir.cpp:1796:5:1796:35 | SideEffect | m1796_8 | +| ir.cpp:1796:5:1796:35 | SideEffect | ~m1796_22 | +| ir.cpp:1796:5:1796:35 | Unary | m1796_6 | +| ir.cpp:1796:5:1796:35 | Unary | m1796_6 | +| ir.cpp:1796:39:1796:39 | Address | &:r1796_9 | +| ir.cpp:1796:39:1796:39 | Address | &:r1796_16 | +| ir.cpp:1796:39:1796:39 | Arg(this) | this:r1796_9 | +| ir.cpp:1796:39:1796:39 | Arg(this) | this:r1796_16 | +| ir.cpp:1796:39:1796:39 | CallTarget | func:r1796_10 | +| ir.cpp:1796:39:1796:39 | CallTarget | func:r1796_17 | +| ir.cpp:1796:39:1796:39 | ChiPartial | partial:m1796_12 | +| ir.cpp:1796:39:1796:39 | ChiPartial | partial:m1796_14 | +| ir.cpp:1796:39:1796:39 | ChiPartial | partial:m1796_19 | +| ir.cpp:1796:39:1796:39 | ChiPartial | partial:m1796_21 | +| ir.cpp:1796:39:1796:39 | ChiTotal | total:m1796_4 | +| ir.cpp:1796:39:1796:39 | ChiTotal | total:m1796_13 | +| ir.cpp:1796:39:1796:39 | ChiTotal | total:m1796_15 | +| ir.cpp:1796:39:1796:39 | ChiTotal | total:m1796_20 | +| ir.cpp:1796:39:1796:39 | SideEffect | ~m1796_4 | +| ir.cpp:1796:39:1796:39 | SideEffect | ~m1796_15 | +| ir.cpp:1799:5:1799:34 | Address | &:r1799_5 | +| ir.cpp:1799:5:1799:34 | ChiPartial | partial:m1799_3 | +| ir.cpp:1799:5:1799:34 | ChiTotal | total:m1799_2 | +| ir.cpp:1799:5:1799:34 | Load | m1804_2 | +| ir.cpp:1799:5:1799:34 | SideEffect | ~m1803_10 | +| ir.cpp:1800:51:1800:51 | Address | &:r1800_1 | +| ir.cpp:1800:51:1800:51 | Address | &:r1800_1 | +| ir.cpp:1800:51:1800:51 | Address | &:r1800_3 | +| ir.cpp:1800:51:1800:51 | Address | &:r1800_3 | +| ir.cpp:1800:51:1800:51 | Load | m1800_2 | +| ir.cpp:1800:51:1800:51 | SideEffect | m1800_4 | +| ir.cpp:1801:48:1801:48 | Address | &:r1801_1 | +| ir.cpp:1801:48:1801:48 | Address | &:r1801_1 | +| ir.cpp:1801:48:1801:48 | Address | &:r1801_3 | +| ir.cpp:1801:48:1801:48 | Address | &:r1801_3 | +| ir.cpp:1801:48:1801:48 | Load | m1801_2 | +| ir.cpp:1801:48:1801:48 | SideEffect | m1801_4 | +| ir.cpp:1802:40:1802:41 | Address | &:r1802_1 | +| ir.cpp:1802:40:1802:41 | Address | &:r1802_1 | +| ir.cpp:1802:40:1802:41 | Arg(this) | this:r1802_1 | +| ir.cpp:1802:44:1802:45 | CallTarget | func:r1802_3 | +| ir.cpp:1802:44:1802:45 | ChiPartial | partial:m1802_9 | +| ir.cpp:1802:44:1802:45 | ChiPartial | partial:m1802_12 | +| ir.cpp:1802:44:1802:45 | ChiTotal | total:m1799_4 | +| ir.cpp:1802:44:1802:45 | ChiTotal | total:m1802_2 | +| ir.cpp:1802:44:1802:45 | SideEffect | ~m1799_4 | +| ir.cpp:1802:45:1802:45 | Address | &:r1802_4 | +| ir.cpp:1802:45:1802:45 | Address | &:r1802_7 | +| ir.cpp:1802:45:1802:45 | Arg(0) | 0:r1802_7 | +| ir.cpp:1802:45:1802:45 | Load | m1800_2 | +| ir.cpp:1802:45:1802:45 | SideEffect | ~m1800_4 | +| ir.cpp:1802:45:1802:45 | Unary | r1802_5 | +| ir.cpp:1802:45:1802:45 | Unary | r1802_6 | +| ir.cpp:1803:37:1803:38 | Address | &:r1803_1 | +| ir.cpp:1803:37:1803:38 | Address | &:r1803_1 | +| ir.cpp:1803:37:1803:38 | Arg(this) | this:r1803_1 | +| ir.cpp:1803:41:1803:42 | CallTarget | func:r1803_3 | +| ir.cpp:1803:41:1803:42 | ChiPartial | partial:m1803_9 | +| ir.cpp:1803:41:1803:42 | ChiPartial | partial:m1803_12 | +| ir.cpp:1803:41:1803:42 | ChiTotal | total:m1802_10 | +| ir.cpp:1803:41:1803:42 | ChiTotal | total:m1803_2 | +| ir.cpp:1803:41:1803:42 | SideEffect | ~m1802_10 | +| ir.cpp:1803:42:1803:42 | Address | &:r1803_4 | +| ir.cpp:1803:42:1803:42 | Address | &:r1803_7 | +| ir.cpp:1803:42:1803:42 | Arg(0) | 0:r1803_7 | +| ir.cpp:1803:42:1803:42 | Load | m1801_2 | +| ir.cpp:1803:42:1803:42 | SideEffect | ~m1801_4 | +| ir.cpp:1803:42:1803:42 | Unary | r1803_5 | +| ir.cpp:1803:42:1803:42 | Unary | r1803_6 | +| ir.cpp:1804:1:1804:1 | Address | &:r1804_1 | +| ir.cpp:1806:6:1806:22 | ChiPartial | partial:m1806_3 | +| ir.cpp:1806:6:1806:22 | ChiTotal | total:m1806_2 | +| ir.cpp:1806:6:1806:22 | SideEffect | m1806_3 | +| ir.cpp:1806:28:1806:28 | Address | &:r1806_5 | +| ir.cpp:1807:13:1807:13 | Address | &:r1807_1 | +| ir.cpp:1807:17:1807:17 | Address | &:r1807_2 | +| ir.cpp:1807:17:1807:17 | Load | m1806_6 | +| ir.cpp:1807:17:1807:17 | StoreValue | r1807_3 | +| ir.cpp:1807:20:1807:20 | Address | &:r1807_5 | +| ir.cpp:1807:20:1807:20 | Left | r1807_6 | +| ir.cpp:1807:20:1807:20 | Load | m1806_6 | +| ir.cpp:1807:20:1807:24 | Condition | r1807_10 | +| ir.cpp:1807:20:1807:24 | Left | r1807_8 | +| ir.cpp:1807:20:1807:24 | Right | r1807_9 | +| ir.cpp:1807:24:1807:24 | Right | r1807_7 | +| ir.cpp:1808:9:1808:9 | Address | &:r1808_6 | +| ir.cpp:1808:13:1808:13 | Address | &:r1808_1 | +| ir.cpp:1808:13:1808:13 | Left | r1808_2 | +| ir.cpp:1808:13:1808:13 | Load | m1806_6 | +| ir.cpp:1808:13:1808:17 | StoreValue | r1808_5 | +| ir.cpp:1808:17:1808:17 | Address | &:r1808_3 | +| ir.cpp:1808:17:1808:17 | Load | m1807_4 | +| ir.cpp:1808:17:1808:17 | Right | r1808_4 | +| ir.cpp:1811:9:1811:9 | Address | &:r1811_2 | +| ir.cpp:1811:9:1811:9 | Phi | from 0:m1806_6 | +| ir.cpp:1811:9:1811:9 | Phi | from 1:m1808_7 | +| ir.cpp:1812:9:1812:9 | Address | &:r1812_3 | | ir.cpp:1812:13:1812:13 | Address | &:r1812_1 | -| ir.cpp:1812:13:1812:13 | Left | r1812_2 | -| ir.cpp:1812:13:1812:13 | Load | m1806_7 | -| ir.cpp:1812:13:1812:17 | StoreValue | r1812_5 | -| ir.cpp:1812:17:1812:17 | Address | &:r1812_3 | -| ir.cpp:1812:17:1812:17 | Load | m1809_4 | -| ir.cpp:1812:17:1812:17 | Right | r1812_4 | -| ir.cpp:1815:13:1815:22 | Address | &:r1815_1 | -| ir.cpp:1815:13:1815:22 | Condition | r1815_7 | -| ir.cpp:1815:17:1815:18 | Address | &:r1815_5 | -| ir.cpp:1815:17:1815:18 | Load | m1815_4 | -| ir.cpp:1815:17:1815:18 | Unary | r1815_6 | -| ir.cpp:1815:22:1815:22 | Address | &:r1815_2 | -| ir.cpp:1815:22:1815:22 | Load | m1809_4 | -| ir.cpp:1815:22:1815:22 | StoreValue | r1815_3 | -| ir.cpp:1817:9:1817:9 | Address | &:r1817_3 | -| ir.cpp:1817:9:1817:9 | Address | &:r1817_3 | -| ir.cpp:1817:9:1817:9 | Left | r1817_4 | -| ir.cpp:1817:9:1817:9 | Load | m1812_7 | -| ir.cpp:1817:9:1817:15 | StoreValue | r1817_5 | -| ir.cpp:1817:14:1817:15 | Address | &:r1817_1 | -| ir.cpp:1817:14:1817:15 | Load | m1815_4 | -| ir.cpp:1817:14:1817:15 | Right | r1817_2 | -| ir.cpp:1823:5:1823:12 | Address | &:r1823_3 | -| ir.cpp:1823:5:1823:12 | SideEffect | ~m1823_6 | -| ir.cpp:1823:16:1823:16 | ChiPartial | partial:m1823_5 | -| ir.cpp:1823:16:1823:16 | ChiTotal | total:m1823_2 | -| ir.cpp:1823:16:1823:16 | StoreValue | r1823_4 | -| ir.cpp:1827:18:1827:25 | Address | &:r1827_3 | -| ir.cpp:1827:18:1827:25 | Arg(this) | this:r1827_3 | -| ir.cpp:1827:18:1827:25 | SideEffect | ~m1827_10 | -| ir.cpp:1827:27:1827:27 | Arg(0) | 0:r1827_5 | -| ir.cpp:1827:27:1827:28 | CallTarget | func:r1827_4 | -| ir.cpp:1827:27:1827:28 | ChiPartial | partial:m1827_7 | -| ir.cpp:1827:27:1827:28 | ChiPartial | partial:m1827_9 | -| ir.cpp:1827:27:1827:28 | ChiTotal | total:m1827_2 | -| ir.cpp:1827:27:1827:28 | ChiTotal | total:m1827_8 | -| ir.cpp:1827:27:1827:28 | SideEffect | ~m1827_2 | -| ir.cpp:1829:18:1829:25 | Address | &:r1829_3 | -| ir.cpp:1829:18:1829:25 | Arg(this) | this:r1829_3 | -| ir.cpp:1829:18:1829:25 | SideEffect | ~m1829_10 | -| ir.cpp:1829:28:1829:47 | CallTarget | func:r1829_4 | -| ir.cpp:1829:28:1829:47 | ChiPartial | partial:m1829_7 | -| ir.cpp:1829:28:1829:47 | ChiPartial | partial:m1829_9 | -| ir.cpp:1829:28:1829:47 | ChiTotal | total:m1829_2 | -| ir.cpp:1829:28:1829:47 | ChiTotal | total:m1829_8 | -| ir.cpp:1829:28:1829:47 | SideEffect | ~m1829_2 | -| ir.cpp:1829:46:1829:46 | Arg(0) | 0:r1829_5 | -| ir.cpp:1831:7:1831:19 | Address | &:r1831_3 | -| ir.cpp:1831:7:1831:19 | SideEffect | ~m1831_8 | -| ir.cpp:1831:23:1831:37 | ChiPartial | partial:m1831_7 | -| ir.cpp:1831:23:1831:37 | ChiTotal | total:m1831_2 | -| ir.cpp:1831:23:1831:37 | StoreValue | r1831_6 | -| ir.cpp:1831:23:1831:37 | Unary | r1831_4 | -| ir.cpp:1831:23:1831:37 | Unary | r1831_5 | -| ir.cpp:1833:5:1833:12 | Address | &:r1833_3 | -| ir.cpp:1833:5:1833:12 | SideEffect | ~m1833_7 | -| ir.cpp:1833:16:1833:23 | Address | &:r1833_4 | -| ir.cpp:1833:16:1833:23 | ChiPartial | partial:m1833_6 | -| ir.cpp:1833:16:1833:23 | ChiTotal | total:m1833_2 | -| ir.cpp:1833:16:1833:23 | Load | ~m1833_2 | -| ir.cpp:1833:16:1833:23 | StoreValue | r1833_5 | -| ir.cpp:1836:11:1836:11 | Address | &:r1836_5 | -| ir.cpp:1836:11:1836:11 | Address | &:r1836_5 | -| ir.cpp:1836:11:1836:11 | Address | &:r1836_7 | -| ir.cpp:1836:11:1836:11 | Address | &:r1836_7 | -| ir.cpp:1836:11:1836:11 | Address | &:r1836_10 | -| ir.cpp:1836:11:1836:11 | ChiPartial | partial:m1836_3 | -| ir.cpp:1836:11:1836:11 | ChiTotal | total:m1836_2 | -| ir.cpp:1836:11:1836:11 | Load | m0_20 | -| ir.cpp:1836:11:1836:11 | Load | m1836_6 | -| ir.cpp:1836:11:1836:11 | SideEffect | m0_14 | -| ir.cpp:1836:11:1836:11 | SideEffect | m1836_3 | -| ir.cpp:1841:12:1841:12 | Address | &:r1841_5 | -| ir.cpp:1841:12:1841:12 | Address | &:r1841_5 | -| ir.cpp:1841:12:1841:12 | Address | &:r1841_7 | -| ir.cpp:1841:12:1841:12 | Address | &:r1841_7 | -| ir.cpp:1841:12:1841:12 | Address | &:r1841_9 | -| ir.cpp:1841:12:1841:12 | Address | &:r1841_12 | -| ir.cpp:1841:12:1841:12 | Address | &:r1841_20 | -| ir.cpp:1841:12:1841:12 | Arg(this) | this:r0_5 | -| ir.cpp:1841:12:1841:12 | CallTarget | func:r1841_11 | -| ir.cpp:1841:12:1841:12 | ChiPartial | partial:m1841_3 | -| ir.cpp:1841:12:1841:12 | ChiPartial | partial:m1841_17 | -| ir.cpp:1841:12:1841:12 | ChiTotal | total:m1841_2 | -| ir.cpp:1841:12:1841:12 | ChiTotal | total:m1841_4 | -| ir.cpp:1841:12:1841:12 | Load | m0_2 | -| ir.cpp:1841:12:1841:12 | Load | m0_21 | -| ir.cpp:1841:12:1841:12 | Load | m1841_6 | -| ir.cpp:1841:12:1841:12 | Load | m1841_6 | -| ir.cpp:1841:12:1841:12 | SideEffect | m0_12 | -| ir.cpp:1841:12:1841:12 | SideEffect | ~m1841_4 | -| ir.cpp:1841:12:1841:12 | SideEffect | ~m1841_18 | -| ir.cpp:1841:12:1841:12 | Unary | r1841_10 | -| ir.cpp:1841:12:1841:12 | Unary | r1841_13 | -| ir.cpp:1841:12:1841:12 | Unary | r1841_14 | -| ir.cpp:1841:12:1841:12 | Unary | r1841_15 | -| ir.cpp:1841:12:1841:12 | Unary | r1841_16 | -| ir.cpp:1845:10:1845:12 | ChiPartial | partial:m1845_3 | -| ir.cpp:1845:10:1845:12 | ChiTotal | total:m1845_2 | -| ir.cpp:1845:10:1845:12 | SideEffect | ~m1847_18 | -| ir.cpp:1846:11:1846:11 | Address | &:r1846_1 | -| ir.cpp:1846:11:1846:11 | Address | &:r1846_1 | -| ir.cpp:1846:11:1846:11 | Arg(this) | this:r1846_1 | -| ir.cpp:1846:13:1846:13 | Address | &:r1846_4 | -| ir.cpp:1846:13:1846:13 | Address | &:r1846_4 | -| ir.cpp:1846:13:1846:13 | Arg(0) | 0:r1846_4 | -| ir.cpp:1846:13:1846:13 | ChiPartial | partial:m1846_11 | -| ir.cpp:1846:13:1846:13 | ChiTotal | total:m1846_7 | -| ir.cpp:1846:13:1846:13 | SideEffect | ~m1846_7 | -| ir.cpp:1846:13:1846:14 | CallTarget | func:r1846_3 | -| ir.cpp:1846:13:1846:14 | ChiPartial | partial:m1846_6 | -| ir.cpp:1846:13:1846:14 | ChiPartial | partial:m1846_9 | -| ir.cpp:1846:13:1846:14 | ChiTotal | total:m1845_4 | -| ir.cpp:1846:13:1846:14 | ChiTotal | total:m1846_2 | -| ir.cpp:1846:13:1846:14 | SideEffect | ~m1845_4 | -| ir.cpp:1847:9:1847:9 | Address | &:r1847_1 | -| ir.cpp:1847:9:1847:9 | Address | &:r1847_1 | -| ir.cpp:1847:9:1847:9 | Arg(this) | this:r1847_1 | -| ir.cpp:1847:9:1847:9 | ChiPartial | partial:m1847_21 | -| ir.cpp:1847:9:1847:9 | ChiTotal | total:m1846_10 | -| ir.cpp:1847:9:1847:9 | SideEffect | m1846_10 | -| ir.cpp:1847:11:1847:11 | CallTarget | func:r1847_2 | -| ir.cpp:1847:11:1847:11 | ChiPartial | partial:m1847_17 | -| ir.cpp:1847:11:1847:11 | ChiTotal | total:m1847_14 | -| ir.cpp:1847:11:1847:11 | SideEffect | ~m1847_14 | -| ir.cpp:1847:11:1847:11 | Unary | r1847_16 | -| ir.cpp:1847:13:1847:13 | Address | &:r1847_3 | -| ir.cpp:1847:13:1847:13 | Address | &:r1847_3 | -| ir.cpp:1847:13:1847:13 | Address | &:r1847_6 | -| ir.cpp:1847:13:1847:13 | Address | &:r1847_6 | -| ir.cpp:1847:13:1847:13 | Address | &:r1847_15 | -| ir.cpp:1847:13:1847:13 | Address | &:r1847_15 | -| ir.cpp:1847:13:1847:13 | Arg(0) | 0:r1847_6 | -| ir.cpp:1847:13:1847:13 | Arg(0) | 0:r1847_15 | -| ir.cpp:1847:13:1847:13 | Arg(this) | this:r1847_3 | -| ir.cpp:1847:13:1847:13 | CallTarget | func:r1847_5 | -| ir.cpp:1847:13:1847:13 | ChiPartial | partial:m1847_8 | -| ir.cpp:1847:13:1847:13 | ChiPartial | partial:m1847_11 | -| ir.cpp:1847:13:1847:13 | ChiPartial | partial:m1847_13 | -| ir.cpp:1847:13:1847:13 | ChiPartial | partial:m1847_23 | -| ir.cpp:1847:13:1847:13 | ChiTotal | total:m1846_12 | -| ir.cpp:1847:13:1847:13 | ChiTotal | total:m1847_4 | -| ir.cpp:1847:13:1847:13 | ChiTotal | total:m1847_9 | -| ir.cpp:1847:13:1847:13 | ChiTotal | total:m1847_12 | -| ir.cpp:1847:13:1847:13 | SideEffect | ~m1846_12 | -| ir.cpp:1847:13:1847:13 | SideEffect | ~m1847_9 | -| ir.cpp:1847:13:1847:13 | SideEffect | ~m1847_12 | -| ir.cpp:1847:13:1847:13 | Unary | r1847_3 | -| ir.cpp:1851:6:1851:14 | ChiPartial | partial:m1851_3 | -| ir.cpp:1851:6:1851:14 | ChiTotal | total:m1851_2 | -| ir.cpp:1851:6:1851:14 | SideEffect | m1851_3 | -| ir.cpp:1852:17:1852:18 | Address | &:r1852_1 | -| ir.cpp:1852:22:1852:40 | StoreValue | r1852_3 | -| ir.cpp:1852:22:1852:40 | Unary | r1852_2 | -| ir.cpp:1853:17:1853:23 | Address | &:r1853_1 | -| ir.cpp:1853:27:1853:34 | StoreValue | r1853_3 | -| ir.cpp:1853:27:1853:34 | Unary | r1853_2 | -| ir.cpp:1864:15:1864:15 | Address | &:r1864_5 | -| ir.cpp:1864:15:1864:15 | Address | &:r1864_5 | -| ir.cpp:1864:15:1864:15 | Address | &:r1864_7 | -| ir.cpp:1864:15:1864:15 | Address | &:r1864_7 | -| ir.cpp:1864:15:1864:15 | Address | &:r1864_15 | -| ir.cpp:1864:15:1864:15 | ChiPartial | partial:m1864_3 | -| ir.cpp:1864:15:1864:15 | ChiTotal | total:m1864_2 | -| ir.cpp:1864:15:1864:15 | Load | m1864_6 | -| ir.cpp:1864:15:1864:15 | Load | m1866_5 | -| ir.cpp:1864:15:1864:15 | SideEffect | m1864_3 | -| ir.cpp:1864:15:1864:15 | SideEffect | m1864_8 | -| ir.cpp:1864:47:1864:47 | Address | &:r1864_9 | -| ir.cpp:1864:47:1864:47 | Address | &:r1864_9 | -| ir.cpp:1864:47:1864:47 | Address | &:r1864_11 | -| ir.cpp:1864:47:1864:47 | Address | &:r1864_11 | -| ir.cpp:1864:47:1864:47 | Load | m1864_10 | -| ir.cpp:1864:47:1864:47 | SideEffect | m1864_12 | -| ir.cpp:1866:13:1866:21 | Address | &:r1866_1 | -| ir.cpp:1866:20:1866:20 | Address | &:r1866_2 | -| ir.cpp:1866:20:1866:20 | Load | m1864_10 | -| ir.cpp:1866:20:1866:20 | StoreValue | r1866_4 | -| ir.cpp:1866:20:1866:20 | Unary | r1866_3 | -| ir.cpp:1870:10:1870:14 | ChiPartial | partial:m1870_3 | -| ir.cpp:1870:10:1870:14 | ChiTotal | total:m1870_2 | -| ir.cpp:1870:10:1870:14 | SideEffect | ~m1872_12 | -| ir.cpp:1871:19:1871:19 | Address | &:r1871_1 | -| ir.cpp:1872:9:1872:9 | Address | &:r1872_1 | -| ir.cpp:1872:9:1872:9 | Address | &:r1872_1 | -| ir.cpp:1872:9:1872:9 | Arg(this) | this:r1872_1 | -| ir.cpp:1872:9:1872:9 | ChiPartial | partial:m1872_9 | -| ir.cpp:1872:9:1872:9 | ChiTotal | total:m1871_2 | -| ir.cpp:1872:9:1872:9 | SideEffect | m1871_2 | -| ir.cpp:1872:11:1872:33 | CallTarget | func:r1872_2 | -| ir.cpp:1872:11:1872:33 | ChiPartial | partial:m1872_5 | -| ir.cpp:1872:11:1872:33 | ChiTotal | total:m1870_4 | -| ir.cpp:1872:11:1872:33 | SideEffect | ~m1870_4 | -| ir.cpp:1872:35:1872:41 | Address | &:r1872_3 | -| ir.cpp:1872:35:1872:41 | Address | &:r1872_3 | -| ir.cpp:1872:35:1872:41 | Arg(0) | 0:r1872_3 | -| ir.cpp:1872:35:1872:41 | ChiPartial | partial:m1872_11 | -| ir.cpp:1872:35:1872:41 | ChiTotal | total:m1872_6 | -| ir.cpp:1872:35:1872:41 | SideEffect | ~m1872_6 | -| ir.cpp:1877:13:1877:13 | Address | &:r1877_5 | -| ir.cpp:1877:13:1877:13 | Address | &:r1877_5 | -| ir.cpp:1877:13:1877:13 | Address | &:r1877_7 | -| ir.cpp:1877:13:1877:13 | Address | &:r1877_7 | -| ir.cpp:1877:13:1877:13 | Address | &:r1877_10 | -| ir.cpp:1877:13:1877:13 | ChiPartial | partial:m1877_3 | -| ir.cpp:1877:13:1877:13 | ChiTotal | total:m1877_2 | -| ir.cpp:1877:13:1877:13 | Load | m1877_6 | -| ir.cpp:1877:13:1877:13 | Load | m1881_9 | -| ir.cpp:1877:13:1877:13 | SideEffect | m1877_3 | -| ir.cpp:1877:13:1877:13 | SideEffect | m1877_8 | -| ir.cpp:1878:13:1878:29 | Address | &:r1878_1 | -| ir.cpp:1878:13:1878:29 | Address | &:r1878_3 | -| ir.cpp:1879:13:1879:14 | Address | &:r1879_4 | -| ir.cpp:1879:13:1879:19 | ChiPartial | partial:m1879_5 | -| ir.cpp:1879:13:1879:19 | ChiTotal | total:m1878_2 | -| ir.cpp:1879:14:1879:14 | Unary | r1879_2 | -| ir.cpp:1879:14:1879:14 | Unary | r1879_3 | -| ir.cpp:1879:18:1879:19 | StoreValue | r1879_1 | -| ir.cpp:1880:13:1880:14 | Address | &:r1880_4 | -| ir.cpp:1880:13:1880:19 | ChiPartial | partial:m1880_5 | -| ir.cpp:1880:13:1880:19 | ChiTotal | total:m1878_4 | -| ir.cpp:1880:14:1880:14 | Unary | r1880_2 | -| ir.cpp:1880:14:1880:14 | Unary | r1880_3 | -| ir.cpp:1880:18:1880:19 | StoreValue | r1880_1 | -| ir.cpp:1881:13:1881:27 | Address | &:r1881_1 | -| ir.cpp:1881:20:1881:21 | Left | r1881_4 | -| ir.cpp:1881:20:1881:21 | Load | m1879_5 | -| ir.cpp:1881:20:1881:26 | StoreValue | r1881_8 | -| ir.cpp:1881:21:1881:21 | Address | &:r1881_3 | -| ir.cpp:1881:21:1881:21 | Unary | r1881_2 | -| ir.cpp:1881:25:1881:26 | Load | m1880_5 | -| ir.cpp:1881:25:1881:26 | Right | r1881_7 | -| ir.cpp:1881:26:1881:26 | Address | &:r1881_6 | -| ir.cpp:1881:26:1881:26 | Unary | r1881_5 | -| ir.cpp:1885:10:1885:14 | ChiPartial | partial:m1885_3 | -| ir.cpp:1885:10:1885:14 | ChiTotal | total:m1885_2 | -| ir.cpp:1885:10:1885:14 | SideEffect | ~m1887_5 | -| ir.cpp:1886:19:1886:19 | Address | &:r1886_1 | -| ir.cpp:1887:9:1887:9 | Address | &:r1887_1 | -| ir.cpp:1887:9:1887:9 | Address | &:r1887_1 | -| ir.cpp:1887:9:1887:9 | Arg(this) | this:r1887_1 | -| ir.cpp:1887:9:1887:9 | ChiPartial | partial:m1887_7 | -| ir.cpp:1887:9:1887:9 | ChiTotal | total:m1886_2 | -| ir.cpp:1887:9:1887:9 | SideEffect | m1886_2 | -| ir.cpp:1887:11:1887:50 | CallTarget | func:r1887_2 | -| ir.cpp:1887:11:1887:50 | ChiPartial | partial:m1887_4 | -| ir.cpp:1887:11:1887:50 | ChiTotal | total:m1885_4 | -| ir.cpp:1887:11:1887:50 | SideEffect | ~m1885_4 | -| ir.cpp:1891:24:1891:24 | Address | &:r1891_3 | -| ir.cpp:1891:24:1891:24 | Address | &:r1891_3 | -| ir.cpp:1891:24:1891:24 | SideEffect | ~m1891_6 | -| ir.cpp:1891:24:1891:24 | SideEffect | ~m1891_6 | -| ir.cpp:1891:42:1891:43 | ChiPartial | partial:m1891_5 | -| ir.cpp:1891:42:1891:43 | ChiPartial | partial:m1891_5 | -| ir.cpp:1891:42:1891:43 | ChiTotal | total:m1891_2 | -| ir.cpp:1891:42:1891:43 | ChiTotal | total:m1891_2 | -| ir.cpp:1891:42:1891:43 | StoreValue | r1891_4 | -| ir.cpp:1891:42:1891:43 | StoreValue | r1891_4 | -| ir.cpp:1893:5:1893:28 | Address | &:r1893_5 | -| ir.cpp:1893:5:1893:28 | ChiPartial | partial:m1893_3 | -| ir.cpp:1893:5:1893:28 | ChiTotal | total:m1893_2 | -| ir.cpp:1893:5:1893:28 | Load | m1896_8 | -| ir.cpp:1893:5:1893:28 | SideEffect | m1893_3 | -| ir.cpp:1894:9:1894:17 | Address | &:r1894_1 | -| ir.cpp:1894:21:1894:40 | Address | &:r1894_2 | -| ir.cpp:1894:21:1894:40 | Load | ~m1893_3 | -| ir.cpp:1894:21:1894:40 | StoreValue | r1894_3 | -| ir.cpp:1895:10:1895:19 | Address | &:r1895_1 | -| ir.cpp:1895:23:1895:43 | Address | &:r1895_2 | -| ir.cpp:1895:23:1895:43 | Load | ~m1893_3 | -| ir.cpp:1895:23:1895:43 | StoreValue | r1895_3 | -| ir.cpp:1896:5:1896:39 | Address | &:r1896_1 | -| ir.cpp:1896:12:1896:20 | Address | &:r1896_2 | -| ir.cpp:1896:12:1896:20 | Left | r1896_3 | -| ir.cpp:1896:12:1896:20 | Load | m1894_4 | -| ir.cpp:1896:12:1896:38 | StoreValue | r1896_7 | -| ir.cpp:1896:24:1896:38 | Right | r1896_6 | -| ir.cpp:1896:29:1896:38 | Address | &:r1896_4 | -| ir.cpp:1896:29:1896:38 | Load | m1895_4 | -| ir.cpp:1896:29:1896:38 | Unary | r1896_5 | -| ir.cpp:1901:5:1901:16 | Address | &:r1901_7 | -| ir.cpp:1901:5:1901:16 | ChiPartial | partial:m1901_3 | -| ir.cpp:1901:5:1901:16 | ChiTotal | total:m1901_2 | -| ir.cpp:1901:5:1901:16 | Load | m1903_4 | -| ir.cpp:1901:5:1901:16 | SideEffect | m1901_3 | -| ir.cpp:1901:22:1901:22 | Address | &:r1901_5 | -| ir.cpp:1902:9:1902:9 | Address | &:r1902_1 | -| ir.cpp:1902:9:1902:9 | Left | r1902_2 | -| ir.cpp:1902:9:1902:9 | Load | m1901_6 | -| ir.cpp:1902:9:1902:14 | Condition | r1902_4 | -| ir.cpp:1902:13:1902:14 | Right | r1902_3 | -| ir.cpp:1903:9:1903:17 | Address | &:r1903_1 | -| ir.cpp:1903:16:1903:16 | Address | &:r1903_2 | -| ir.cpp:1903:16:1903:16 | Load | m1901_6 | -| ir.cpp:1903:16:1903:16 | StoreValue | r1903_3 | -| ir.cpp:1905:9:1905:20 | CallTarget | func:r1905_1 | -| ir.cpp:1905:9:1905:20 | ChiPartial | partial:m1905_3 | -| ir.cpp:1905:9:1905:20 | ChiTotal | total:m1901_4 | -| ir.cpp:1905:9:1905:20 | SideEffect | ~m1901_4 | -| ir.cpp:1909:5:1909:17 | Address | &:r1909_8 | -| ir.cpp:1909:5:1909:17 | ChiPartial | partial:m1909_3 | -| ir.cpp:1909:5:1909:17 | ChiTotal | total:m1909_2 | -| ir.cpp:1909:5:1909:17 | Load | m1913_4 | -| ir.cpp:1909:5:1909:17 | SideEffect | m1909_3 | -| ir.cpp:1909:23:1909:23 | Address | &:r1909_5 | -| ir.cpp:1910:9:1910:9 | Address | &:r1910_1 | -| ir.cpp:1910:9:1910:9 | Left | r1910_2 | -| ir.cpp:1910:9:1910:9 | Load | m1909_6 | -| ir.cpp:1910:9:1910:14 | Condition | r1910_4 | -| ir.cpp:1910:13:1910:14 | Right | r1910_3 | -| ir.cpp:1911:9:1911:20 | CallTarget | func:r1911_1 | -| ir.cpp:1911:9:1911:20 | ChiPartial | partial:m1911_3 | -| ir.cpp:1911:9:1911:20 | ChiTotal | total:m1909_4 | -| ir.cpp:1911:9:1911:20 | SideEffect | ~m1909_4 | -| ir.cpp:1913:5:1913:13 | Address | &:r1913_1 | -| ir.cpp:1913:12:1913:12 | Address | &:r1913_2 | -| ir.cpp:1913:12:1913:12 | Load | m1909_6 | -| ir.cpp:1913:12:1913:12 | StoreValue | r1913_3 | -| ir.cpp:1916:5:1916:19 | Address | &:r1916_7 | -| ir.cpp:1916:5:1916:19 | ChiPartial | partial:m1916_3 | -| ir.cpp:1916:5:1916:19 | ChiTotal | total:m1916_2 | -| ir.cpp:1916:5:1916:19 | Load | m1917_4 | -| ir.cpp:1916:5:1916:19 | SideEffect | m1916_3 | -| ir.cpp:1916:25:1916:25 | Address | &:r1916_5 | -| ir.cpp:1917:5:1917:13 | Address | &:r1917_1 | -| ir.cpp:1917:12:1917:12 | Address | &:r1917_2 | -| ir.cpp:1917:12:1917:12 | Load | m1916_6 | -| ir.cpp:1917:12:1917:12 | StoreValue | r1917_3 | -| ir.cpp:1920:6:1920:43 | ChiPartial | partial:m1920_3 | -| ir.cpp:1920:6:1920:43 | ChiTotal | total:m1920_2 | -| ir.cpp:1920:6:1920:43 | SideEffect | ~m1928_6 | -| ir.cpp:1921:7:1921:7 | Address | &:r1921_1 | -| ir.cpp:1921:7:1921:7 | Address | &:r1921_1 | -| ir.cpp:1921:7:1921:7 | Arg(this) | this:r1921_1 | -| ir.cpp:1921:7:1921:7 | CallTarget | func:r1921_3 | -| ir.cpp:1921:7:1921:7 | ChiPartial | partial:m1921_5 | -| ir.cpp:1921:7:1921:7 | ChiPartial | partial:m1921_7 | -| ir.cpp:1921:7:1921:7 | ChiTotal | total:m1920_4 | -| ir.cpp:1921:7:1921:7 | ChiTotal | total:m1921_2 | -| ir.cpp:1921:7:1921:7 | SideEffect | ~m1920_4 | -| ir.cpp:1922:9:1922:9 | Address | &:r1922_1 | -| ir.cpp:1923:5:1923:5 | Address | &:r1923_7 | -| ir.cpp:1923:11:1923:30 | CallTarget | func:r1923_2 | -| ir.cpp:1923:11:1923:30 | ChiPartial | partial:m1923_5 | -| ir.cpp:1923:11:1923:30 | ChiTotal | total:m1921_6 | -| ir.cpp:1923:11:1923:30 | SideEffect | ~m1921_6 | -| ir.cpp:1923:11:1923:30 | StoreValue | r1923_4 | -| ir.cpp:1923:32:1923:33 | Arg(0) | 0:r1923_3 | -| ir.cpp:1924:9:1924:9 | Address | &:r1924_1 | -| ir.cpp:1925:5:1925:5 | Address | &:r1925_6 | -| ir.cpp:1925:9:1925:31 | CallTarget | func:r1925_1 | -| ir.cpp:1925:9:1925:31 | ChiPartial | partial:m1925_4 | -| ir.cpp:1925:9:1925:31 | ChiTotal | total:m1923_6 | -| ir.cpp:1925:9:1925:31 | SideEffect | ~m1923_6 | -| ir.cpp:1925:9:1925:31 | StoreValue | r1925_3 | -| ir.cpp:1925:33:1925:34 | Arg(0) | 0:r1925_2 | -| ir.cpp:1926:9:1926:9 | Address | &:r1926_1 | -| ir.cpp:1927:5:1927:5 | Address | &:r1927_6 | -| ir.cpp:1927:9:1927:23 | CallTarget | func:r1927_1 | -| ir.cpp:1927:9:1927:23 | ChiPartial | partial:m1927_4 | -| ir.cpp:1927:9:1927:23 | ChiTotal | total:m1925_5 | -| ir.cpp:1927:9:1927:23 | SideEffect | ~m1925_5 | -| ir.cpp:1927:9:1927:23 | StoreValue | r1927_3 | -| ir.cpp:1927:25:1927:26 | Arg(0) | 0:r1927_2 | -| ir.cpp:1928:1:1928:1 | Address | &:r1928_2 | -| ir.cpp:1928:1:1928:1 | Address | &:r1928_2 | -| ir.cpp:1928:1:1928:1 | Arg(this) | this:r1928_2 | -| ir.cpp:1928:1:1928:1 | CallTarget | func:r1928_3 | -| ir.cpp:1928:1:1928:1 | ChiPartial | partial:m1928_5 | -| ir.cpp:1928:1:1928:1 | ChiPartial | partial:m1928_8 | -| ir.cpp:1928:1:1928:1 | ChiTotal | total:m1921_8 | -| ir.cpp:1928:1:1928:1 | ChiTotal | total:m1927_5 | -| ir.cpp:1928:1:1928:1 | SideEffect | m1921_8 | -| ir.cpp:1928:1:1928:1 | SideEffect | ~m1927_5 | -| ir.cpp:1930:6:1930:23 | ChiPartial | partial:m1930_3 | -| ir.cpp:1930:6:1930:23 | ChiTotal | total:m1930_2 | -| ir.cpp:1930:6:1930:23 | SideEffect | m1930_3 | -| ir.cpp:1931:7:1931:7 | Address | &:r1931_1 | -| ir.cpp:1931:10:1931:10 | Address | &:r1931_3 | -| ir.cpp:1932:3:1932:3 | Address | &:r1932_5 | -| ir.cpp:1932:7:1932:7 | Address | &:r1932_2 | -| ir.cpp:1932:7:1932:7 | Address | &:r1932_2 | -| ir.cpp:1932:7:1932:12 | Load | m1932_3 | -| ir.cpp:1932:7:1932:12 | StoreValue | r1932_4 | -| ir.cpp:1932:11:1932:12 | StoreValue | r1932_1 | -| ir.cpp:1935:6:1935:38 | ChiPartial | partial:m1935_3 | -| ir.cpp:1935:6:1935:38 | ChiTotal | total:m1935_2 | -| ir.cpp:1935:6:1935:38 | SideEffect | m1935_3 | -| ir.cpp:1936:7:1936:7 | Address | &:r1936_1 | -| ir.cpp:1936:10:1936:10 | Address | &:r1936_3 | -| ir.cpp:1936:13:1936:14 | StoreValue | r1936_4 | -| ir.cpp:1937:3:1937:3 | Address | &:r1937_7 | -| ir.cpp:1937:8:1937:8 | Address | &:r1937_2 | -| ir.cpp:1937:8:1937:8 | Address | &:r1937_2 | -| ir.cpp:1937:8:1937:8 | Address | &:r1937_2 | -| ir.cpp:1937:8:1937:8 | Left | r1937_3 | -| ir.cpp:1937:8:1937:8 | Load | m1936_5 | -| ir.cpp:1937:8:1937:14 | Load | m1937_5 | -| ir.cpp:1937:8:1937:14 | StoreValue | r1937_4 | -| ir.cpp:1937:8:1937:14 | StoreValue | r1937_6 | -| ir.cpp:1937:13:1937:14 | Right | r1937_1 | -| ir.cpp:1944:15:1944:43 | Address | &:r1944_5 | -| ir.cpp:1944:15:1944:43 | ChiPartial | partial:m1944_3 | -| ir.cpp:1944:15:1944:43 | ChiTotal | total:m1944_2 | -| ir.cpp:1944:15:1944:43 | Load | m1945_4 | -| ir.cpp:1944:15:1944:43 | SideEffect | m1944_3 | -| ir.cpp:1945:9:1945:17 | Address | &:r1945_1 | -| ir.cpp:1945:16:1945:16 | StoreValue | r1945_3 | -| ir.cpp:1945:16:1945:16 | Unary | r1945_2 | -| ir.cpp:1947:14:1947:39 | Address | &:r1947_5 | -| ir.cpp:1947:14:1947:39 | ChiPartial | partial:m1947_3 | -| ir.cpp:1947:14:1947:39 | ChiTotal | total:m1947_2 | -| ir.cpp:1947:14:1947:39 | Load | m1948_4 | -| ir.cpp:1947:14:1947:39 | SideEffect | m1947_3 | -| ir.cpp:1948:9:1948:17 | Address | &:r1948_1 | -| ir.cpp:1948:16:1948:16 | Address | &:r1948_2 | -| ir.cpp:1948:16:1948:16 | Load | ~m1947_3 | -| ir.cpp:1948:16:1948:16 | StoreValue | r1948_3 | -| ir.cpp:1952:6:1952:55 | ChiPartial | partial:m1952_3 | -| ir.cpp:1952:6:1952:55 | ChiTotal | total:m1952_2 | -| ir.cpp:1952:6:1952:55 | SideEffect | ~m1967_4 | -| ir.cpp:1953:7:1953:7 | Address | &:r1953_1 | -| ir.cpp:1955:7:1955:35 | CallTarget | func:r1955_2 | -| ir.cpp:1955:7:1955:35 | ChiPartial | partial:m1955_4 | -| ir.cpp:1955:7:1955:35 | ChiTotal | total:m1952_4 | -| ir.cpp:1955:7:1955:35 | SideEffect | ~m1952_4 | -| ir.cpp:1955:7:1955:35 | Unary | r1955_3 | -| ir.cpp:1956:5:1956:36 | CallTarget | func:r1956_1 | -| ir.cpp:1956:5:1956:36 | ChiPartial | partial:m1956_3 | -| ir.cpp:1956:5:1956:36 | ChiTotal | total:m1955_5 | -| ir.cpp:1956:5:1956:36 | SideEffect | ~m1955_5 | -| ir.cpp:1956:5:1956:36 | Unary | r1956_2 | -| ir.cpp:1957:7:1957:32 | CallTarget | func:r1957_2 | -| ir.cpp:1957:7:1957:32 | ChiPartial | partial:m1957_4 | -| ir.cpp:1957:7:1957:32 | ChiTotal | total:m1956_4 | -| ir.cpp:1957:7:1957:32 | SideEffect | ~m1956_4 | -| ir.cpp:1958:5:1958:33 | CallTarget | func:r1958_1 | -| ir.cpp:1958:5:1958:33 | ChiPartial | partial:m1958_3 | -| ir.cpp:1958:5:1958:33 | ChiTotal | total:m1957_5 | -| ir.cpp:1958:5:1958:33 | SideEffect | ~m1957_5 | -| ir.cpp:1960:7:1960:7 | Address | &:r1960_1 | -| ir.cpp:1961:5:1961:5 | Address | &:r1961_7 | -| ir.cpp:1961:11:1961:39 | Address | &:r1961_3 | -| ir.cpp:1961:11:1961:39 | CallTarget | func:r1961_2 | -| ir.cpp:1961:11:1961:39 | ChiPartial | partial:m1961_4 | -| ir.cpp:1961:11:1961:39 | ChiTotal | total:m1958_4 | -| ir.cpp:1961:11:1961:39 | SideEffect | ~m1958_4 | -| ir.cpp:1961:40:1961:42 | Load | ~m1961_5 | -| ir.cpp:1961:40:1961:42 | StoreValue | r1961_6 | -| ir.cpp:1962:7:1962:7 | Address | &:r1962_1 | -| ir.cpp:1963:5:1963:5 | Address | &:r1963_6 | -| ir.cpp:1963:9:1963:40 | Address | &:r1963_2 | -| ir.cpp:1963:9:1963:40 | CallTarget | func:r1963_1 | -| ir.cpp:1963:9:1963:40 | ChiPartial | partial:m1963_3 | -| ir.cpp:1963:9:1963:40 | ChiTotal | total:m1961_5 | -| ir.cpp:1963:9:1963:40 | SideEffect | ~m1961_5 | -| ir.cpp:1963:41:1963:43 | Load | ~m1963_4 | -| ir.cpp:1963:41:1963:43 | StoreValue | r1963_5 | -| ir.cpp:1964:7:1964:7 | Address | &:r1964_1 | -| ir.cpp:1965:5:1965:5 | Address | &:r1965_6 | -| ir.cpp:1965:11:1965:36 | CallTarget | func:r1965_2 | -| ir.cpp:1965:11:1965:36 | ChiPartial | partial:m1965_4 | -| ir.cpp:1965:11:1965:36 | ChiTotal | total:m1963_4 | -| ir.cpp:1965:11:1965:36 | SideEffect | ~m1963_4 | -| ir.cpp:1965:11:1965:36 | StoreValue | r1965_3 | -| ir.cpp:1966:7:1966:7 | Address | &:r1966_1 | -| ir.cpp:1967:5:1967:5 | Address | &:r1967_5 | -| ir.cpp:1967:9:1967:37 | CallTarget | func:r1967_1 | -| ir.cpp:1967:9:1967:37 | ChiPartial | partial:m1967_3 | -| ir.cpp:1967:9:1967:37 | ChiTotal | total:m1965_5 | -| ir.cpp:1967:9:1967:37 | SideEffect | ~m1965_5 | -| ir.cpp:1967:9:1967:37 | StoreValue | r1967_2 | -| ir.cpp:1970:6:1970:18 | ChiPartial | partial:m1970_3 | -| ir.cpp:1970:6:1970:18 | ChiTotal | total:m1970_2 | -| ir.cpp:1970:6:1970:18 | SideEffect | m1970_3 | -| ir.cpp:1971:18:1971:18 | Address | &:r1971_1 | -| ir.cpp:1972:5:1972:5 | Address | &:r1972_1 | -| ir.cpp:1972:5:1972:5 | Load | m1971_2 | -| ir.cpp:1981:6:1981:24 | ChiPartial | partial:m1981_3 | -| ir.cpp:1981:6:1981:24 | ChiTotal | total:m1981_2 | -| ir.cpp:1981:6:1981:24 | SideEffect | ~m1989_5 | -| ir.cpp:1982:12:1982:12 | Address | &:r1982_1 | -| ir.cpp:1984:5:1984:19 | ChiPartial | partial:m1984_7 | -| ir.cpp:1984:5:1984:19 | ChiTotal | total:m1984_5 | -| ir.cpp:1984:7:1984:12 | CallTarget | func:r1984_2 | -| ir.cpp:1984:7:1984:12 | ChiPartial | partial:m1984_4 | -| ir.cpp:1984:7:1984:12 | ChiTotal | total:m1981_4 | -| ir.cpp:1984:7:1984:12 | SideEffect | ~m1981_4 | -| ir.cpp:1984:7:1984:12 | Unary | r1984_3 | -| ir.cpp:1984:13:1984:16 | Address | &:r1984_6 | -| ir.cpp:1985:5:1985:19 | ChiPartial | partial:m1985_7 | -| ir.cpp:1985:5:1985:19 | ChiTotal | total:m1985_5 | -| ir.cpp:1985:7:1985:12 | CallTarget | func:r1985_2 | -| ir.cpp:1985:7:1985:12 | ChiPartial | partial:m1985_4 | -| ir.cpp:1985:7:1985:12 | ChiTotal | total:m1984_8 | -| ir.cpp:1985:7:1985:12 | SideEffect | ~m1984_8 | -| ir.cpp:1985:7:1985:12 | Unary | r1985_3 | -| ir.cpp:1985:13:1985:16 | Address | &:r1985_6 | -| ir.cpp:1986:5:1986:15 | Address | &:r1986_1 | -| ir.cpp:1986:5:1986:15 | Address | &:r1986_1 | -| ir.cpp:1986:7:1986:13 | CallTarget | func:r1986_3 | -| ir.cpp:1986:7:1986:13 | ChiPartial | partial:m1986_5 | -| ir.cpp:1986:7:1986:13 | ChiTotal | total:m1985_8 | -| ir.cpp:1986:7:1986:13 | SideEffect | ~m1985_8 | -| ir.cpp:1986:7:1986:13 | StoreValue | r1986_4 | -| ir.cpp:1987:5:1987:18 | CallTarget | func:r1987_1 | -| ir.cpp:1987:5:1987:18 | ChiPartial | partial:m1987_3 | -| ir.cpp:1987:5:1987:18 | ChiTotal | total:m1986_6 | -| ir.cpp:1987:5:1987:18 | SideEffect | ~m1986_6 | -| ir.cpp:1987:5:1987:18 | Unary | r1987_2 | -| ir.cpp:1987:5:1987:25 | ChiPartial | partial:m1987_6 | -| ir.cpp:1987:5:1987:25 | ChiTotal | total:m1987_4 | -| ir.cpp:1987:19:1987:22 | Address | &:r1987_5 | -| ir.cpp:1988:5:1988:18 | CallTarget | func:r1988_1 | -| ir.cpp:1988:5:1988:18 | ChiPartial | partial:m1988_3 | -| ir.cpp:1988:5:1988:18 | ChiTotal | total:m1987_7 | -| ir.cpp:1988:5:1988:18 | SideEffect | ~m1987_7 | -| ir.cpp:1988:5:1988:18 | Unary | r1988_2 | -| ir.cpp:1988:5:1988:25 | ChiPartial | partial:m1988_6 | -| ir.cpp:1988:5:1988:25 | ChiTotal | total:m1988_4 | -| ir.cpp:1988:19:1988:22 | Address | &:r1988_5 | -| ir.cpp:1989:5:1989:19 | CallTarget | func:r1989_2 | -| ir.cpp:1989:5:1989:19 | ChiPartial | partial:m1989_4 | -| ir.cpp:1989:5:1989:19 | ChiTotal | total:m1988_7 | -| ir.cpp:1989:5:1989:19 | SideEffect | ~m1988_7 | -| ir.cpp:1989:5:1989:19 | StoreValue | r1989_3 | -| ir.cpp:1989:5:1989:21 | Address | &:r1989_1 | -| ir.cpp:1989:5:1989:21 | Address | &:r1989_1 | -| ir.cpp:1992:6:1992:21 | ChiPartial | partial:m1992_3 | -| ir.cpp:1992:6:1992:21 | ChiTotal | total:m1992_2 | -| ir.cpp:1992:6:1992:21 | SideEffect | ~m1996_6 | -| ir.cpp:1993:7:1993:7 | Address | &:r1993_1 | -| ir.cpp:1993:7:1993:7 | Address | &:r1993_1 | -| ir.cpp:1993:7:1993:7 | Arg(this) | this:r1993_1 | -| ir.cpp:1993:7:1993:7 | CallTarget | func:r1993_3 | -| ir.cpp:1993:7:1993:7 | ChiPartial | partial:m1993_5 | -| ir.cpp:1993:7:1993:7 | ChiPartial | partial:m1993_7 | -| ir.cpp:1993:7:1993:7 | ChiTotal | total:m1992_4 | -| ir.cpp:1993:7:1993:7 | ChiTotal | total:m1993_2 | -| ir.cpp:1993:7:1993:7 | SideEffect | ~m1992_4 | -| ir.cpp:1994:11:1994:13 | Address | &:r1994_1 | -| ir.cpp:1994:23:1994:45 | StoreValue | r1994_2 | -| ir.cpp:1995:5:1995:7 | Address | &:r1995_3 | -| ir.cpp:1995:13:1995:32 | StoreValue | r1995_2 | -| ir.cpp:1996:1:1996:1 | Address | &:r1996_2 | -| ir.cpp:1996:1:1996:1 | Address | &:r1996_2 | -| ir.cpp:1996:1:1996:1 | Arg(this) | this:r1996_2 | -| ir.cpp:1996:1:1996:1 | CallTarget | func:r1996_3 | -| ir.cpp:1996:1:1996:1 | ChiPartial | partial:m1996_5 | -| ir.cpp:1996:1:1996:1 | ChiPartial | partial:m1996_8 | -| ir.cpp:1996:1:1996:1 | ChiTotal | total:m1993_6 | -| ir.cpp:1996:1:1996:1 | ChiTotal | total:m1993_8 | -| ir.cpp:1996:1:1996:1 | SideEffect | m1993_8 | -| ir.cpp:1996:1:1996:1 | SideEffect | ~m1993_6 | -| ir.cpp:1998:6:1998:19 | ChiPartial | partial:m1998_3 | -| ir.cpp:1998:6:1998:19 | ChiTotal | total:m1998_2 | -| ir.cpp:1998:6:1998:19 | SideEffect | ~m2002_9 | -| ir.cpp:1998:26:1998:26 | Address | &:r1998_5 | -| ir.cpp:1998:33:1998:33 | Address | &:r1998_7 | -| ir.cpp:1998:40:1998:40 | Address | &:r1998_9 | -| ir.cpp:1998:47:1998:47 | Address | &:r1998_11 | -| ir.cpp:1999:5:1999:5 | Address | &:r1999_7 | -| ir.cpp:1999:9:1999:9 | Address | &:r1999_1 | -| ir.cpp:1999:9:1999:9 | Condition | r1999_2 | -| ir.cpp:1999:9:1999:9 | Load | m1998_6 | -| ir.cpp:1999:9:1999:17 | Address | &:r1999_5 | -| ir.cpp:1999:9:1999:17 | Address | &:r1999_11 | -| ir.cpp:1999:9:1999:17 | Address | &:r1999_15 | -| ir.cpp:1999:9:1999:17 | Load | m1999_4 | -| ir.cpp:1999:9:1999:17 | Phi | from 2:m1999_12 | -| ir.cpp:1999:9:1999:17 | Phi | from 3:m1999_16 | -| ir.cpp:1999:9:1999:17 | StoreValue | r1999_6 | -| ir.cpp:1999:13:1999:13 | Address | &:r1999_9 | -| ir.cpp:1999:13:1999:13 | Load | m1998_8 | -| ir.cpp:1999:13:1999:13 | StoreValue | r1999_10 | -| ir.cpp:1999:17:1999:17 | Address | &:r1999_13 | -| ir.cpp:1999:17:1999:17 | Load | m1998_10 | -| ir.cpp:1999:17:1999:17 | StoreValue | r1999_14 | -| ir.cpp:2000:5:2000:5 | Address | &:r2000_7 | -| ir.cpp:2000:9:2000:9 | Address | &:r2000_1 | -| ir.cpp:2000:9:2000:9 | Condition | r2000_2 | -| ir.cpp:2000:9:2000:9 | Load | m1998_6 | -| ir.cpp:2000:9:2000:17 | Address | &:r2000_5 | -| ir.cpp:2000:9:2000:17 | Address | &:r2000_11 | -| ir.cpp:2000:9:2000:17 | Address | &:r2000_14 | -| ir.cpp:2000:9:2000:17 | Load | m2000_4 | -| ir.cpp:2000:9:2000:17 | Phi | from 5:m2000_12 | -| ir.cpp:2000:9:2000:17 | Phi | from 6:m2000_15 | -| ir.cpp:2000:9:2000:17 | StoreValue | r2000_6 | -| ir.cpp:2000:13:2000:13 | Address | &:r2000_9 | -| ir.cpp:2000:13:2000:13 | Load | m1998_8 | -| ir.cpp:2000:13:2000:13 | StoreValue | r2000_10 | -| ir.cpp:2000:17:2000:17 | StoreValue | r2000_13 | -| ir.cpp:2001:5:2001:5 | Address | &:r2001_7 | -| ir.cpp:2001:9:2001:9 | Address | &:r2001_1 | -| ir.cpp:2001:9:2001:9 | Condition | r2001_2 | -| ir.cpp:2001:9:2001:9 | Load | m1998_6 | -| ir.cpp:2001:9:2001:17 | Address | &:r2001_5 | -| ir.cpp:2001:9:2001:17 | Address | &:r2001_10 | -| ir.cpp:2001:9:2001:17 | Address | &:r2001_13 | -| ir.cpp:2001:9:2001:17 | Load | m2001_4 | -| ir.cpp:2001:9:2001:17 | Phi | from 8:m2001_11 | -| ir.cpp:2001:9:2001:17 | Phi | from 9:m2001_14 | -| ir.cpp:2001:9:2001:17 | StoreValue | r2001_6 | -| ir.cpp:2001:13:2001:13 | StoreValue | r2001_9 | -| ir.cpp:2001:17:2001:17 | StoreValue | r2001_12 | -| ir.cpp:2002:5:2002:19 | ChiPartial | partial:m2002_8 | -| ir.cpp:2002:5:2002:19 | ChiTotal | total:m1998_4 | -| ir.cpp:2002:6:2002:6 | Address | &:r2002_2 | -| ir.cpp:2002:6:2002:6 | Condition | r2002_3 | -| ir.cpp:2002:6:2002:6 | Load | m1998_6 | -| ir.cpp:2002:6:2002:14 | Address | &:r2002_6 | -| ir.cpp:2002:6:2002:14 | Address | &:r2002_7 | -| ir.cpp:2002:6:2002:14 | Address | &:r2002_11 | -| ir.cpp:2002:6:2002:14 | Address | &:r2002_14 | -| ir.cpp:2002:6:2002:14 | Load | m2002_5 | -| ir.cpp:2002:6:2002:14 | Phi | from 11:m2002_12 | -| ir.cpp:2002:6:2002:14 | Phi | from 12:m2002_15 | -| ir.cpp:2002:10:2002:10 | StoreValue | r2002_10 | -| ir.cpp:2002:14:2002:14 | StoreValue | r2002_13 | -| ir.cpp:2002:19:2002:19 | StoreValue | r2002_1 | -| ir.cpp:2008:6:2008:22 | ChiPartial | partial:m2008_3 | -| ir.cpp:2008:6:2008:22 | ChiTotal | total:m2008_2 | -| ir.cpp:2008:6:2008:22 | SideEffect | m2008_3 | -| ir.cpp:2008:29:2008:29 | Address | &:r2008_5 | -| ir.cpp:2008:46:2008:46 | Address | &:r2008_7 | -| ir.cpp:2008:63:2008:63 | Address | &:r2008_9 | -| ir.cpp:2008:80:2008:80 | Address | &:r2008_11 | -| ir.cpp:2009:5:2009:5 | Address | &:r2009_7 | -| ir.cpp:2009:9:2009:9 | Address | &:r2009_1 | -| ir.cpp:2009:9:2009:9 | Condition | r2009_2 | -| ir.cpp:2009:9:2009:9 | Load | m2008_6 | -| ir.cpp:2009:9:2009:17 | Address | &:r2009_5 | -| ir.cpp:2009:9:2009:17 | Address | &:r2009_11 | -| ir.cpp:2009:9:2009:17 | Address | &:r2009_15 | -| ir.cpp:2009:9:2009:17 | Load | m2009_4 | -| ir.cpp:2009:9:2009:17 | Phi | from 2:m2009_12 | -| ir.cpp:2009:9:2009:17 | Phi | from 3:m2009_16 | -| ir.cpp:2009:9:2009:17 | StoreValue | r2009_6 | -| ir.cpp:2009:13:2009:13 | Address | &:r2009_9 | -| ir.cpp:2009:13:2009:13 | Load | m2008_8 | -| ir.cpp:2009:13:2009:13 | StoreValue | r2009_10 | -| ir.cpp:2009:17:2009:17 | Address | &:r2009_13 | -| ir.cpp:2009:17:2009:17 | Load | m2008_10 | -| ir.cpp:2009:17:2009:17 | StoreValue | r2009_14 | -| ir.cpp:2010:5:2010:5 | Address | &:r2010_10 | -| ir.cpp:2010:9:2010:9 | Address | &:r2010_2 | -| ir.cpp:2010:9:2010:9 | Address | &:r2010_6 | -| ir.cpp:2010:9:2010:9 | Address | &:r2010_17 | -| ir.cpp:2010:9:2010:9 | Address | &:r2010_23 | -| ir.cpp:2010:9:2010:9 | Condition | r2010_3 | -| ir.cpp:2010:9:2010:9 | Load | m2008_6 | -| ir.cpp:2010:9:2010:9 | Load | m2010_5 | -| ir.cpp:2010:9:2010:9 | Phi | from 5:m2010_18 | -| ir.cpp:2010:9:2010:9 | Phi | from 6:m2010_24 | -| ir.cpp:2010:9:2010:9 | StoreValue | r2010_7 | -| ir.cpp:2010:9:2010:31 | Address | &:r2010_1 | -| ir.cpp:2010:9:2010:31 | Address | &:r2010_1 | -| ir.cpp:2010:9:2010:31 | Load | m2010_8 | -| ir.cpp:2010:9:2010:31 | StoreValue | r2010_9 | -| ir.cpp:2010:13:2010:13 | Address | &:r2010_12 | -| ir.cpp:2010:13:2010:13 | Address | &:r2010_12 | -| ir.cpp:2010:13:2010:13 | Address | &:r2010_13 | -| ir.cpp:2010:13:2010:13 | Load | m2008_8 | -| ir.cpp:2010:13:2010:13 | Load | m2010_15 | -| ir.cpp:2010:13:2010:13 | StoreValue | r2010_14 | -| ir.cpp:2010:13:2010:13 | StoreValue | r2010_16 | -| ir.cpp:2010:17:2010:31 | Address | &:r2010_19 | -| ir.cpp:2010:17:2010:31 | Address | &:r2010_19 | -| ir.cpp:2010:17:2010:31 | Load | m2010_21 | -| ir.cpp:2010:17:2010:31 | StoreValue | r2010_20 | -| ir.cpp:2010:17:2010:31 | StoreValue | r2010_22 | -| ir.cpp:2011:5:2011:5 | Address | &:r2011_10 | -| ir.cpp:2011:9:2011:9 | Address | &:r2011_2 | -| ir.cpp:2011:9:2011:9 | Address | &:r2011_6 | -| ir.cpp:2011:9:2011:9 | Address | &:r2011_16 | -| ir.cpp:2011:9:2011:9 | Address | &:r2011_22 | -| ir.cpp:2011:9:2011:9 | Condition | r2011_3 | -| ir.cpp:2011:9:2011:9 | Load | m2008_6 | -| ir.cpp:2011:9:2011:9 | Load | m2011_5 | -| ir.cpp:2011:9:2011:9 | Phi | from 8:m2011_17 | -| ir.cpp:2011:9:2011:9 | Phi | from 9:m2011_23 | -| ir.cpp:2011:9:2011:9 | StoreValue | r2011_7 | -| ir.cpp:2011:9:2011:45 | Address | &:r2011_1 | -| ir.cpp:2011:9:2011:45 | Address | &:r2011_1 | -| ir.cpp:2011:9:2011:45 | Load | m2011_8 | -| ir.cpp:2011:9:2011:45 | StoreValue | r2011_9 | -| ir.cpp:2011:13:2011:27 | Address | &:r2011_12 | -| ir.cpp:2011:13:2011:27 | Address | &:r2011_12 | -| ir.cpp:2011:13:2011:27 | Load | m2011_14 | -| ir.cpp:2011:13:2011:27 | StoreValue | r2011_13 | -| ir.cpp:2011:13:2011:27 | StoreValue | r2011_15 | -| ir.cpp:2011:31:2011:45 | Address | &:r2011_18 | -| ir.cpp:2011:31:2011:45 | Address | &:r2011_18 | -| ir.cpp:2011:31:2011:45 | Load | m2011_20 | -| ir.cpp:2011:31:2011:45 | StoreValue | r2011_19 | -| ir.cpp:2011:31:2011:45 | StoreValue | r2011_21 | -| ir.cpp:2012:6:2012:6 | Address | &:r2012_11 | -| ir.cpp:2012:6:2012:6 | Unary | r2012_11 | -| ir.cpp:2012:6:2012:18 | Address | &:r2012_13 | -| ir.cpp:2012:10:2012:10 | Address | &:r2012_5 | -| ir.cpp:2012:10:2012:10 | Condition | r2012_6 | -| ir.cpp:2012:10:2012:10 | Load | m2008_6 | -| ir.cpp:2012:10:2012:18 | Address | &:r2012_9 | -| ir.cpp:2012:10:2012:18 | Address | &:r2012_17 | -| ir.cpp:2012:10:2012:18 | Address | &:r2012_21 | -| ir.cpp:2012:10:2012:18 | Load | m2012_8 | -| ir.cpp:2012:10:2012:18 | Phi | from 11:m2012_18 | -| ir.cpp:2012:10:2012:18 | Phi | from 12:m2012_22 | -| ir.cpp:2012:10:2012:18 | StoreValue | r2012_10 | -| ir.cpp:2012:14:2012:14 | Address | &:r2012_15 | -| ir.cpp:2012:14:2012:14 | Load | m2008_8 | -| ir.cpp:2012:14:2012:14 | StoreValue | r2012_16 | -| ir.cpp:2012:18:2012:18 | Address | &:r2012_19 | -| ir.cpp:2012:18:2012:18 | Load | m2008_10 | -| ir.cpp:2012:18:2012:18 | StoreValue | r2012_20 | -| ir.cpp:2012:23:2012:37 | Address | &:r2012_1 | -| ir.cpp:2012:23:2012:37 | Address | &:r2012_1 | -| ir.cpp:2012:23:2012:37 | Load | m2012_3 | -| ir.cpp:2012:23:2012:37 | StoreValue | r2012_2 | -| ir.cpp:2012:23:2012:37 | StoreValue | r2012_4 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_5 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_5 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_5 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_5 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_5 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_5 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_7 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_7 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_7 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_7 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_7 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_7 | -| ir.cpp:2015:8:2015:8 | Address | &:r2015_10 | -| ir.cpp:2015:8:2015:8 | ChiPartial | partial:m2015_3 | -| ir.cpp:2015:8:2015:8 | ChiPartial | partial:m2015_3 | -| ir.cpp:2015:8:2015:8 | ChiPartial | partial:m2015_3 | -| ir.cpp:2015:8:2015:8 | ChiTotal | total:m2015_2 | -| ir.cpp:2015:8:2015:8 | ChiTotal | total:m2015_2 | -| ir.cpp:2015:8:2015:8 | ChiTotal | total:m2015_2 | -| ir.cpp:2015:8:2015:8 | Load | m0_10 | -| ir.cpp:2015:8:2015:8 | Load | m2015_6 | -| ir.cpp:2015:8:2015:8 | Load | m2015_6 | -| ir.cpp:2015:8:2015:8 | Load | m2015_6 | -| ir.cpp:2015:8:2015:8 | SideEffect | m2015_3 | -| ir.cpp:2015:8:2015:8 | SideEffect | m2015_3 | -| ir.cpp:2015:8:2015:8 | SideEffect | m2015_3 | -| ir.cpp:2015:8:2015:8 | SideEffect | m2015_8 | -| ir.cpp:2015:8:2015:8 | SideEffect | m2015_8 | -| ir.cpp:2015:8:2015:8 | SideEffect | m2015_8 | -| ir.cpp:2016:13:2016:29 | Address | &:r2016_5 | -| ir.cpp:2016:13:2016:29 | Address | &:r2016_5 | -| ir.cpp:2016:13:2016:29 | Address | &:r2016_7 | -| ir.cpp:2016:13:2016:29 | Address | &:r2016_7 | -| ir.cpp:2016:13:2016:29 | ChiPartial | partial:m2016_3 | -| ir.cpp:2016:13:2016:29 | ChiTotal | total:m2016_2 | -| ir.cpp:2016:13:2016:29 | Load | m2016_6 | -| ir.cpp:2016:13:2016:29 | SideEffect | m2016_3 | -| ir.cpp:2016:13:2016:29 | SideEffect | m2016_8 | -| ir.cpp:2019:6:2019:25 | ChiPartial | partial:m2019_3 | -| ir.cpp:2019:6:2019:25 | ChiTotal | total:m2019_2 | -| ir.cpp:2019:6:2019:25 | SideEffect | ~m2023_32 | -| ir.cpp:2019:32:2019:32 | Address | &:r2019_5 | -| ir.cpp:2019:52:2019:52 | Address | &:r2019_7 | -| ir.cpp:2019:72:2019:72 | Address | &:r2019_9 | -| ir.cpp:2019:92:2019:92 | Address | &:r2019_11 | -| ir.cpp:2020:5:2020:5 | Address | &:r2020_1 | -| ir.cpp:2020:5:2020:5 | Address | &:r2020_1 | -| ir.cpp:2020:5:2020:5 | Arg(this) | this:r2020_1 | -| ir.cpp:2020:5:2020:5 | ChiPartial | partial:m2020_16 | -| ir.cpp:2020:5:2020:5 | ChiTotal | total:m2019_12 | -| ir.cpp:2020:5:2020:5 | SideEffect | m2019_12 | -| ir.cpp:2020:7:2020:7 | CallTarget | func:r2020_2 | -| ir.cpp:2020:7:2020:7 | ChiPartial | partial:m2020_12 | -| ir.cpp:2020:7:2020:7 | ChiTotal | total:m2019_4 | -| ir.cpp:2020:7:2020:7 | SideEffect | ~m2019_4 | -| ir.cpp:2020:7:2020:7 | Unary | r2020_11 | -| ir.cpp:2020:9:2020:9 | Address | &:r2020_3 | -| ir.cpp:2020:9:2020:9 | Condition | r2020_4 | -| ir.cpp:2020:9:2020:9 | Load | m2019_6 | -| ir.cpp:2020:9:2020:17 | Address | &:r2020_7 | -| ir.cpp:2020:9:2020:17 | Address | &:r2020_10 | -| ir.cpp:2020:9:2020:17 | Address | &:r2020_20 | -| ir.cpp:2020:9:2020:17 | Address | &:r2020_23 | -| ir.cpp:2020:9:2020:17 | Arg(0) | 0:r2020_10 | -| ir.cpp:2020:9:2020:17 | Load | m2020_6 | -| ir.cpp:2020:9:2020:17 | Phi | from 2:m2020_21 | -| ir.cpp:2020:9:2020:17 | Phi | from 3:m2020_24 | -| ir.cpp:2020:9:2020:17 | SideEffect | ~m2020_13 | -| ir.cpp:2020:9:2020:17 | Unary | r2020_8 | -| ir.cpp:2020:9:2020:17 | Unary | r2020_9 | -| ir.cpp:2020:13:2020:13 | StoreValue | r2020_19 | -| ir.cpp:2020:17:2020:17 | StoreValue | r2020_22 | -| ir.cpp:2021:5:2021:5 | Address | &:r2021_1 | -| ir.cpp:2021:5:2021:5 | Address | &:r2021_1 | -| ir.cpp:2021:5:2021:5 | Arg(this) | this:r2021_1 | -| ir.cpp:2021:5:2021:5 | ChiPartial | partial:m2021_19 | -| ir.cpp:2021:5:2021:5 | ChiTotal | total:m2020_17 | -| ir.cpp:2021:5:2021:5 | SideEffect | m2020_17 | -| ir.cpp:2021:7:2021:7 | CallTarget | func:r2021_2 | -| ir.cpp:2021:7:2021:7 | ChiPartial | partial:m2021_15 | -| ir.cpp:2021:7:2021:7 | ChiTotal | total:m2021_7 | -| ir.cpp:2021:7:2021:7 | SideEffect | ~m2021_7 | -| ir.cpp:2021:7:2021:7 | Unary | r2021_14 | -| ir.cpp:2021:9:2021:9 | Address | &:r2021_4 | -| ir.cpp:2021:9:2021:9 | Address | &:r2021_9 | -| ir.cpp:2021:9:2021:9 | Address | &:r2021_35 | -| ir.cpp:2021:9:2021:9 | Address | &:r2021_46 | -| ir.cpp:2021:9:2021:9 | Condition | r2021_5 | -| ir.cpp:2021:9:2021:9 | Load | m2019_6 | -| ir.cpp:2021:9:2021:9 | Load | m2021_8 | -| ir.cpp:2021:9:2021:9 | Phi | from 5:m2021_36 | -| ir.cpp:2021:9:2021:9 | Phi | from 5:~m2021_30 | -| ir.cpp:2021:9:2021:9 | Phi | from 6:m2021_47 | -| ir.cpp:2021:9:2021:9 | Phi | from 6:~m2021_42 | -| ir.cpp:2021:9:2021:9 | StoreValue | r2021_10 | -| ir.cpp:2021:9:2021:34 | Address | &:r2021_3 | -| ir.cpp:2021:9:2021:34 | Address | &:r2021_13 | -| ir.cpp:2021:9:2021:34 | Arg(0) | 0:r2021_13 | -| ir.cpp:2021:9:2021:34 | SideEffect | ~m2021_11 | -| ir.cpp:2021:9:2021:34 | Unary | r2021_3 | -| ir.cpp:2021:9:2021:34 | Unary | r2021_12 | -| ir.cpp:2021:13:2021:13 | Address | &:r2021_22 | -| ir.cpp:2021:13:2021:13 | Address | &:r2021_22 | -| ir.cpp:2021:13:2021:13 | Address | &:r2021_22 | -| ir.cpp:2021:13:2021:13 | Address | &:r2021_27 | -| ir.cpp:2021:13:2021:13 | Arg(0) | 0:r2021_27 | -| ir.cpp:2021:13:2021:13 | Arg(this) | this:r2021_22 | -| ir.cpp:2021:13:2021:13 | CallTarget | func:r2021_24 | -| ir.cpp:2021:13:2021:13 | ChiPartial | partial:m2021_29 | -| ir.cpp:2021:13:2021:13 | ChiPartial | partial:m2021_32 | -| ir.cpp:2021:13:2021:13 | ChiTotal | total:m2020_13 | -| ir.cpp:2021:13:2021:13 | ChiTotal | total:m2021_23 | -| ir.cpp:2021:13:2021:13 | Load | m2021_33 | -| ir.cpp:2021:13:2021:13 | SideEffect | ~m2019_8 | -| ir.cpp:2021:13:2021:13 | SideEffect | ~m2020_13 | -| ir.cpp:2021:13:2021:13 | StoreValue | r2021_34 | -| ir.cpp:2021:13:2021:13 | Unary | r2021_25 | -| ir.cpp:2021:13:2021:13 | Unary | r2021_26 | -| ir.cpp:2021:17:2021:34 | Address | &:r2021_37 | -| ir.cpp:2021:17:2021:34 | Address | &:r2021_37 | -| ir.cpp:2021:17:2021:34 | Address | &:r2021_37 | -| ir.cpp:2021:17:2021:34 | Arg(this) | this:r2021_37 | -| ir.cpp:2021:17:2021:34 | CallTarget | func:r2021_39 | -| ir.cpp:2021:17:2021:34 | ChiPartial | partial:m2021_41 | -| ir.cpp:2021:17:2021:34 | ChiPartial | partial:m2021_43 | -| ir.cpp:2021:17:2021:34 | ChiTotal | total:m2020_13 | -| ir.cpp:2021:17:2021:34 | ChiTotal | total:m2021_38 | -| ir.cpp:2021:17:2021:34 | Load | m2021_44 | -| ir.cpp:2021:17:2021:34 | SideEffect | ~m2020_13 | -| ir.cpp:2021:17:2021:34 | StoreValue | r2021_45 | -| ir.cpp:2022:5:2022:5 | Address | &:r2022_1 | -| ir.cpp:2022:5:2022:5 | Address | &:r2022_1 | -| ir.cpp:2022:5:2022:5 | Arg(this) | this:r2022_1 | -| ir.cpp:2022:5:2022:5 | ChiPartial | partial:m2022_19 | -| ir.cpp:2022:5:2022:5 | ChiTotal | total:m2021_20 | -| ir.cpp:2022:5:2022:5 | SideEffect | m2021_20 | -| ir.cpp:2022:7:2022:7 | CallTarget | func:r2022_2 | -| ir.cpp:2022:7:2022:7 | ChiPartial | partial:m2022_15 | -| ir.cpp:2022:7:2022:7 | ChiTotal | total:m2022_7 | -| ir.cpp:2022:7:2022:7 | SideEffect | ~m2022_7 | -| ir.cpp:2022:7:2022:7 | Unary | r2022_14 | -| ir.cpp:2022:9:2022:9 | Address | &:r2022_4 | -| ir.cpp:2022:9:2022:9 | Address | &:r2022_9 | -| ir.cpp:2022:9:2022:9 | Address | &:r2022_31 | -| ir.cpp:2022:9:2022:9 | Address | &:r2022_42 | -| ir.cpp:2022:9:2022:9 | Condition | r2022_5 | -| ir.cpp:2022:9:2022:9 | Load | m2019_6 | -| ir.cpp:2022:9:2022:9 | Load | m2022_8 | -| ir.cpp:2022:9:2022:9 | Phi | from 8:m2022_32 | -| ir.cpp:2022:9:2022:9 | Phi | from 8:~m2022_27 | -| ir.cpp:2022:9:2022:9 | Phi | from 9:m2022_43 | -| ir.cpp:2022:9:2022:9 | Phi | from 9:~m2022_38 | -| ir.cpp:2022:9:2022:9 | StoreValue | r2022_10 | -| ir.cpp:2022:9:2022:51 | Address | &:r2022_3 | -| ir.cpp:2022:9:2022:51 | Address | &:r2022_13 | -| ir.cpp:2022:9:2022:51 | Arg(0) | 0:r2022_13 | -| ir.cpp:2022:9:2022:51 | SideEffect | ~m2022_11 | -| ir.cpp:2022:9:2022:51 | Unary | r2022_3 | -| ir.cpp:2022:9:2022:51 | Unary | r2022_12 | -| ir.cpp:2022:13:2022:30 | Address | &:r2022_22 | -| ir.cpp:2022:13:2022:30 | Address | &:r2022_22 | -| ir.cpp:2022:13:2022:30 | Address | &:r2022_22 | -| ir.cpp:2022:13:2022:30 | Arg(this) | this:r2022_22 | -| ir.cpp:2022:13:2022:30 | CallTarget | func:r2022_24 | -| ir.cpp:2022:13:2022:30 | ChiPartial | partial:m2022_26 | -| ir.cpp:2022:13:2022:30 | ChiPartial | partial:m2022_28 | -| ir.cpp:2022:13:2022:30 | ChiTotal | total:m2021_16 | -| ir.cpp:2022:13:2022:30 | ChiTotal | total:m2022_23 | -| ir.cpp:2022:13:2022:30 | Load | m2022_29 | -| ir.cpp:2022:13:2022:30 | SideEffect | ~m2021_16 | -| ir.cpp:2022:13:2022:30 | StoreValue | r2022_30 | -| ir.cpp:2022:34:2022:51 | Address | &:r2022_33 | -| ir.cpp:2022:34:2022:51 | Address | &:r2022_33 | -| ir.cpp:2022:34:2022:51 | Address | &:r2022_33 | -| ir.cpp:2022:34:2022:51 | Arg(this) | this:r2022_33 | -| ir.cpp:2022:34:2022:51 | CallTarget | func:r2022_35 | -| ir.cpp:2022:34:2022:51 | ChiPartial | partial:m2022_37 | -| ir.cpp:2022:34:2022:51 | ChiPartial | partial:m2022_39 | -| ir.cpp:2022:34:2022:51 | ChiTotal | total:m2021_16 | -| ir.cpp:2022:34:2022:51 | ChiTotal | total:m2022_34 | -| ir.cpp:2022:34:2022:51 | Load | m2022_40 | -| ir.cpp:2022:34:2022:51 | SideEffect | ~m2021_16 | -| ir.cpp:2022:34:2022:51 | StoreValue | r2022_41 | -| ir.cpp:2023:5:2023:19 | ChiPartial | partial:m2023_35 | -| ir.cpp:2023:5:2023:19 | ChiTotal | total:m2023_17 | -| ir.cpp:2023:5:2023:19 | SideEffect | m2023_17 | -| ir.cpp:2023:6:2023:6 | Address | &:r2023_1 | -| ir.cpp:2023:6:2023:6 | Address | &:r2023_1 | -| ir.cpp:2023:6:2023:6 | Arg(this) | this:r2023_1 | -| ir.cpp:2023:6:2023:6 | ChiPartial | partial:m2023_16 | -| ir.cpp:2023:6:2023:6 | ChiTotal | total:m2022_20 | -| ir.cpp:2023:6:2023:6 | SideEffect | m2022_20 | -| ir.cpp:2023:8:2023:8 | CallTarget | func:r2023_2 | -| ir.cpp:2023:8:2023:8 | ChiPartial | partial:m2023_12 | -| ir.cpp:2023:8:2023:8 | ChiTotal | total:m2022_16 | -| ir.cpp:2023:8:2023:8 | SideEffect | ~m2022_16 | -| ir.cpp:2023:8:2023:8 | Unary | r2023_11 | -| ir.cpp:2023:8:2023:19 | Address | &:r2023_18 | -| ir.cpp:2023:8:2023:19 | Address | &:r2023_18 | -| ir.cpp:2023:8:2023:19 | Arg(this) | this:r2023_18 | -| ir.cpp:2023:10:2023:10 | Address | &:r2023_3 | -| ir.cpp:2023:10:2023:10 | Condition | r2023_4 | -| ir.cpp:2023:10:2023:10 | Load | m2019_6 | -| ir.cpp:2023:10:2023:18 | Address | &:r2023_7 | -| ir.cpp:2023:10:2023:18 | Address | &:r2023_10 | -| ir.cpp:2023:10:2023:18 | Address | &:r2023_39 | -| ir.cpp:2023:10:2023:18 | Address | &:r2023_42 | -| ir.cpp:2023:10:2023:18 | Arg(0) | 0:r2023_10 | -| ir.cpp:2023:10:2023:18 | Load | m2023_6 | -| ir.cpp:2023:10:2023:18 | Phi | from 11:m2023_40 | -| ir.cpp:2023:10:2023:18 | Phi | from 12:m2023_43 | -| ir.cpp:2023:10:2023:18 | SideEffect | ~m2023_13 | -| ir.cpp:2023:10:2023:18 | Unary | r2023_8 | -| ir.cpp:2023:10:2023:18 | Unary | r2023_9 | -| ir.cpp:2023:14:2023:14 | StoreValue | r2023_38 | -| ir.cpp:2023:18:2023:18 | StoreValue | r2023_41 | -| ir.cpp:2023:21:2023:21 | CallTarget | func:r2023_19 | -| ir.cpp:2023:21:2023:21 | ChiPartial | partial:m2023_31 | -| ir.cpp:2023:21:2023:21 | ChiTotal | total:m2023_25 | -| ir.cpp:2023:21:2023:21 | SideEffect | ~m2023_25 | -| ir.cpp:2023:21:2023:21 | Unary | r2023_30 | -| ir.cpp:2023:23:2023:40 | Address | &:r2023_20 | -| ir.cpp:2023:23:2023:40 | Address | &:r2023_20 | -| ir.cpp:2023:23:2023:40 | Address | &:r2023_29 | -| ir.cpp:2023:23:2023:40 | Arg(0) | 0:r2023_29 | -| ir.cpp:2023:23:2023:40 | Arg(this) | this:r2023_20 | -| ir.cpp:2023:23:2023:40 | CallTarget | func:r2023_22 | -| ir.cpp:2023:23:2023:40 | ChiPartial | partial:m2023_24 | -| ir.cpp:2023:23:2023:40 | ChiPartial | partial:m2023_26 | -| ir.cpp:2023:23:2023:40 | ChiTotal | total:m2023_13 | -| ir.cpp:2023:23:2023:40 | ChiTotal | total:m2023_21 | -| ir.cpp:2023:23:2023:40 | SideEffect | ~m2023_13 | -| ir.cpp:2023:23:2023:40 | SideEffect | ~m2023_27 | -| ir.cpp:2023:23:2023:40 | Unary | r2023_20 | -| ir.cpp:2023:23:2023:40 | Unary | r2023_28 | -| ir.cpp:2028:14:2028:22 | Address | &:r2028_7 | -| ir.cpp:2028:14:2028:22 | ChiPartial | partial:m2028_3 | -| ir.cpp:2028:14:2028:22 | ChiTotal | total:m2028_2 | -| ir.cpp:2028:14:2028:22 | Load | m2033_2 | -| ir.cpp:2028:14:2028:22 | SideEffect | ~m2030_6 | -| ir.cpp:2028:37:2028:37 | Address | &:r2028_5 | -| ir.cpp:2029:16:2029:16 | Address | &:r2029_1 | -| ir.cpp:2030:3:2030:3 | Address | &:r2030_10 | -| ir.cpp:2030:7:2030:7 | Address | &:r2030_1 | -| ir.cpp:2030:7:2030:7 | Left | r2030_2 | -| ir.cpp:2030:7:2030:7 | Load | m2028_6 | -| ir.cpp:2030:7:2030:13 | Condition | r2030_4 | -| ir.cpp:2030:7:2032:28 | Address | &:r2030_8 | -| ir.cpp:2030:7:2032:28 | Address | &:r2030_12 | -| ir.cpp:2030:7:2032:28 | Address | &:r2030_14 | -| ir.cpp:2030:7:2032:28 | Load | m2030_7 | -| ir.cpp:2030:7:2032:28 | Phi | from 2:m2030_13 | -| ir.cpp:2030:7:2032:28 | Phi | from 2:~m2031_6 | -| ir.cpp:2030:7:2032:28 | Phi | from 3:m2030_15 | -| ir.cpp:2030:7:2032:28 | Phi | from 3:~m2032_6 | -| ir.cpp:2030:7:2032:28 | StoreValue | r2030_9 | -| ir.cpp:2030:11:2030:13 | Right | r2030_3 | -| ir.cpp:2031:6:2031:20 | CallTarget | func:r2031_1 | -| ir.cpp:2031:6:2031:20 | ChiPartial | partial:m2031_5 | -| ir.cpp:2031:6:2031:20 | ChiTotal | total:m2028_4 | -| ir.cpp:2031:6:2031:20 | SideEffect | ~m2028_4 | -| ir.cpp:2031:6:2031:26 | StoreValue | r2031_9 | -| ir.cpp:2031:22:2031:22 | Address | &:r2031_2 | -| ir.cpp:2031:22:2031:22 | Arg(0) | 0:r2031_3 | -| ir.cpp:2031:22:2031:22 | Load | m2028_6 | -| ir.cpp:2031:26:2031:26 | Address | &:r2031_7 | -| ir.cpp:2031:26:2031:26 | Load | m2028_6 | -| ir.cpp:2031:26:2031:26 | Unary | r2031_8 | -| ir.cpp:2032:5:2032:28 | StoreValue | r2032_9 | -| ir.cpp:2032:6:2032:20 | CallTarget | func:r2032_1 | -| ir.cpp:2032:6:2032:20 | ChiPartial | partial:m2032_5 | -| ir.cpp:2032:6:2032:20 | ChiTotal | total:m2028_4 | -| ir.cpp:2032:6:2032:20 | SideEffect | ~m2028_4 | -| ir.cpp:2032:6:2032:27 | Unary | r2032_8 | -| ir.cpp:2032:22:2032:22 | Address | &:r2032_2 | -| ir.cpp:2032:22:2032:22 | Arg(0) | 0:r2032_3 | -| ir.cpp:2032:22:2032:22 | Load | m2028_6 | -| ir.cpp:2032:26:2032:27 | Unary | r2032_7 | -| ir.cpp:2033:1:2033:1 | Address | &:r2033_1 | -| ir.cpp:2035:6:2035:17 | ChiPartial | partial:m2035_3 | -| ir.cpp:2035:6:2035:17 | ChiTotal | total:m2035_2 | -| ir.cpp:2035:6:2035:17 | SideEffect | ~m2038_6 | -| ir.cpp:2036:8:2036:8 | Address | &:r2036_1 | -| ir.cpp:2036:12:2036:18 | Address | &:r2036_4 | -| ir.cpp:2036:12:2036:18 | Arg(0) | 0:r2036_3 | -| ir.cpp:2036:12:2036:18 | CallTarget | func:r2036_2 | -| ir.cpp:2036:12:2036:18 | ChiPartial | partial:m2036_5 | -| ir.cpp:2036:12:2036:18 | ChiTotal | total:m2035_4 | -| ir.cpp:2036:12:2036:18 | SideEffect | ~m2035_4 | -| ir.cpp:2036:12:2036:18 | StoreValue | r2036_8 | -| ir.cpp:2036:12:2036:18 | Unary | r2036_4 | -| ir.cpp:2037:3:2037:4 | Address | &:r2037_4 | -| ir.cpp:2037:3:2037:8 | ChiPartial | partial:m2037_5 | -| ir.cpp:2037:3:2037:8 | ChiTotal | total:m2036_7 | -| ir.cpp:2037:4:2037:4 | Address | &:r2037_2 | -| ir.cpp:2037:4:2037:4 | Load | m2036_9 | -| ir.cpp:2037:4:2037:4 | Unary | r2037_3 | -| ir.cpp:2037:8:2037:8 | StoreValue | r2037_1 | -| ir.cpp:2038:3:2038:10 | CallTarget | func:r2038_1 | -| ir.cpp:2038:3:2038:10 | ChiPartial | partial:m2038_5 | -| ir.cpp:2038:3:2038:10 | ChiTotal | total:m2036_6 | -| ir.cpp:2038:3:2038:10 | SideEffect | ~m2036_6 | -| ir.cpp:2038:10:2038:10 | Address | &:r2038_2 | -| ir.cpp:2038:10:2038:10 | Arg(0) | 0:r2038_3 | -| ir.cpp:2038:10:2038:10 | Load | m2036_9 | -| ir.cpp:2041:7:2041:7 | Address | &:r2041_5 | -| ir.cpp:2041:7:2041:7 | Address | &:r2041_5 | -| ir.cpp:2041:7:2041:7 | Address | &:r2041_7 | -| ir.cpp:2041:7:2041:7 | Address | &:r2041_7 | -| ir.cpp:2041:7:2041:7 | ChiPartial | partial:m2041_3 | -| ir.cpp:2041:7:2041:7 | ChiTotal | total:m2041_2 | -| ir.cpp:2041:7:2041:7 | Load | m2041_6 | -| ir.cpp:2041:7:2041:7 | SideEffect | m2041_3 | -| ir.cpp:2041:7:2041:7 | SideEffect | m2041_8 | -| ir.cpp:2043:10:2043:24 | ChiPartial | partial:m2043_3 | -| ir.cpp:2043:10:2043:24 | ChiTotal | total:m2043_2 | -| ir.cpp:2043:10:2043:24 | SideEffect | m2043_3 | -| ir.cpp:2043:32:2043:32 | Address | &:r2043_5 | -| ir.cpp:2043:32:2043:32 | Address | &:r2043_5 | -| ir.cpp:2043:32:2043:32 | Address | &:r2043_7 | -| ir.cpp:2043:32:2043:32 | Address | &:r2043_7 | -| ir.cpp:2043:32:2043:32 | Load | m2043_6 | -| ir.cpp:2043:32:2043:32 | SideEffect | m2043_8 | -| ir.cpp:2045:13:2045:18 | Address | &:r2045_5 | -| ir.cpp:2045:13:2045:18 | Address | &:r2045_5 | -| ir.cpp:2045:13:2045:18 | Address | &:r2045_7 | -| ir.cpp:2045:13:2045:18 | Address | &:r2045_7 | -| ir.cpp:2045:13:2045:18 | ChiPartial | partial:m2045_3 | -| ir.cpp:2045:13:2045:18 | ChiTotal | total:m2045_2 | -| ir.cpp:2045:13:2045:18 | Load | m2045_6 | -| ir.cpp:2045:13:2045:18 | SideEffect | m2045_3 | -| ir.cpp:2045:13:2045:18 | SideEffect | m2045_8 | -| ir.cpp:2048:7:2048:7 | Address | &:r2048_5 | -| ir.cpp:2048:7:2048:7 | Address | &:r2048_5 | -| ir.cpp:2048:7:2048:7 | Address | &:r2048_7 | -| ir.cpp:2048:7:2048:7 | Address | &:r2048_7 | -| ir.cpp:2048:7:2048:7 | Address | &:r2048_9 | -| ir.cpp:2048:7:2048:7 | Arg(this) | this:r2048_9 | -| ir.cpp:2048:7:2048:7 | CallTarget | func:r2048_10 | -| ir.cpp:2048:7:2048:7 | ChiPartial | partial:m2048_3 | -| ir.cpp:2048:7:2048:7 | ChiPartial | partial:m2048_12 | -| ir.cpp:2048:7:2048:7 | ChiPartial | partial:m2048_14 | -| ir.cpp:2048:7:2048:7 | ChiTotal | total:m2048_2 | -| ir.cpp:2048:7:2048:7 | ChiTotal | total:m2048_4 | -| ir.cpp:2048:7:2048:7 | ChiTotal | total:m2048_8 | -| ir.cpp:2048:7:2048:7 | Load | m2048_6 | -| ir.cpp:2048:7:2048:7 | SideEffect | m2048_15 | -| ir.cpp:2048:7:2048:7 | SideEffect | ~m2048_4 | -| ir.cpp:2048:7:2048:7 | SideEffect | ~m2048_13 | -| ir.cpp:2048:7:2048:7 | Unary | m2048_6 | -| ir.cpp:2051:5:2051:13 | Address | &:r2051_5 | -| ir.cpp:2051:5:2051:13 | Address | &:r2051_5 | -| ir.cpp:2051:5:2051:13 | Address | &:r2051_7 | -| ir.cpp:2051:5:2051:13 | Address | &:r2051_7 | -| ir.cpp:2051:5:2051:13 | ChiPartial | partial:m2051_3 | -| ir.cpp:2051:5:2051:13 | ChiTotal | total:m2051_2 | -| ir.cpp:2051:5:2051:13 | Load | m2051_6 | -| ir.cpp:2051:5:2051:13 | SideEffect | m2051_8 | -| ir.cpp:2051:5:2051:13 | SideEffect | ~m2051_14 | -| ir.cpp:2051:5:2051:13 | Unary | m2051_6 | -| ir.cpp:2051:18:2051:18 | Arg(this) | this:r2051_10 | -| ir.cpp:2051:18:2051:18 | CallTarget | func:r2051_11 | -| ir.cpp:2051:18:2051:18 | ChiPartial | partial:m2051_13 | -| ir.cpp:2051:18:2051:18 | ChiTotal | total:m2051_4 | -| ir.cpp:2051:18:2051:18 | SideEffect | ~m2051_4 | -| ir.cpp:2053:10:2053:24 | ChiPartial | partial:m2053_3 | -| ir.cpp:2053:10:2053:24 | ChiTotal | total:m2053_2 | -| ir.cpp:2053:10:2053:24 | SideEffect | m2053_3 | -| ir.cpp:2053:32:2053:32 | Address | &:r2053_5 | -| ir.cpp:2053:32:2053:32 | Address | &:r2053_5 | -| ir.cpp:2053:32:2053:32 | Address | &:r2053_7 | -| ir.cpp:2053:32:2053:32 | Address | &:r2053_7 | -| ir.cpp:2053:32:2053:32 | Load | m2053_6 | -| ir.cpp:2053:32:2053:32 | SideEffect | m2053_8 | -| ir.cpp:2058:5:2058:18 | Address | &:r2058_5 | -| ir.cpp:2058:5:2058:18 | ChiPartial | partial:m2058_3 | -| ir.cpp:2058:5:2058:18 | ChiTotal | total:m2058_2 | -| ir.cpp:2058:5:2058:18 | Load | m2068_2 | -| ir.cpp:2058:5:2058:18 | SideEffect | ~m2067_6 | -| ir.cpp:2060:12:2060:13 | Address | &:r2060_1 | -| ir.cpp:2060:17:2060:27 | Address | &:r2060_4 | -| ir.cpp:2060:17:2060:27 | Address | &:r2060_8 | -| ir.cpp:2060:17:2060:27 | Arg(0) | 0:r2060_3 | -| ir.cpp:2060:17:2060:27 | Arg(this) | this:r2060_8 | -| ir.cpp:2060:17:2060:27 | CallTarget | func:r2060_2 | -| ir.cpp:2060:17:2060:27 | CallTarget | func:r2060_9 | -| ir.cpp:2060:17:2060:27 | ChiPartial | partial:m2060_5 | -| ir.cpp:2060:17:2060:27 | ChiPartial | partial:m2060_11 | -| ir.cpp:2060:17:2060:27 | ChiPartial | partial:m2060_13 | -| ir.cpp:2060:17:2060:27 | ChiTotal | total:m2058_4 | -| ir.cpp:2060:17:2060:27 | ChiTotal | total:m2060_6 | -| ir.cpp:2060:17:2060:27 | ChiTotal | total:m2060_7 | -| ir.cpp:2060:17:2060:27 | SideEffect | ~m2058_4 | -| ir.cpp:2060:17:2060:27 | SideEffect | ~m2060_6 | -| ir.cpp:2060:17:2060:27 | StoreValue | r2060_8 | -| ir.cpp:2060:17:2060:27 | Unary | r2060_4 | -| ir.cpp:2061:5:2061:13 | CallTarget | func:r2061_1 | -| ir.cpp:2061:5:2061:13 | ChiPartial | partial:m2061_5 | -| ir.cpp:2061:5:2061:13 | ChiTotal | total:m2060_12 | -| ir.cpp:2061:5:2061:13 | SideEffect | ~m2060_12 | -| ir.cpp:2061:12:2061:13 | Address | &:r2061_2 | -| ir.cpp:2061:12:2061:13 | Arg(0) | 0:r2061_3 | -| ir.cpp:2061:12:2061:13 | Load | m2060_15 | -| ir.cpp:2063:12:2063:13 | Address | &:r2063_1 | -| ir.cpp:2063:17:2063:30 | Address | &:r2063_4 | -| ir.cpp:2063:17:2063:30 | Address | &:r2063_8 | -| ir.cpp:2063:17:2063:30 | Arg(0) | 0:r2063_3 | -| ir.cpp:2063:17:2063:30 | Arg(this) | this:r2063_8 | -| ir.cpp:2063:17:2063:30 | CallTarget | func:r2063_2 | -| ir.cpp:2063:17:2063:30 | CallTarget | func:r2063_9 | -| ir.cpp:2063:17:2063:30 | ChiPartial | partial:m2063_5 | -| ir.cpp:2063:17:2063:30 | ChiPartial | partial:m2063_11 | -| ir.cpp:2063:17:2063:30 | ChiPartial | partial:m2063_13 | -| ir.cpp:2063:17:2063:30 | ChiTotal | total:m2061_6 | -| ir.cpp:2063:17:2063:30 | ChiTotal | total:m2063_6 | -| ir.cpp:2063:17:2063:30 | ChiTotal | total:m2063_7 | -| ir.cpp:2063:17:2063:30 | SideEffect | ~m2061_6 | -| ir.cpp:2063:17:2063:30 | SideEffect | ~m2063_6 | -| ir.cpp:2063:17:2063:30 | StoreValue | r2063_15 | -| ir.cpp:2063:17:2063:30 | Unary | r2063_4 | -| ir.cpp:2063:17:2063:30 | Unary | r2063_8 | -| ir.cpp:2064:5:2064:13 | CallTarget | func:r2064_1 | -| ir.cpp:2064:5:2064:13 | ChiPartial | partial:m2064_5 | -| ir.cpp:2064:5:2064:13 | ChiTotal | total:m2063_12 | -| ir.cpp:2064:5:2064:13 | SideEffect | ~m2063_12 | -| ir.cpp:2064:12:2064:13 | Address | &:r2064_2 | -| ir.cpp:2064:12:2064:13 | Arg(0) | 0:r2064_3 | -| ir.cpp:2064:12:2064:13 | Load | m2063_16 | -| ir.cpp:2066:15:2066:15 | Address | &:r2066_1 | -| ir.cpp:2066:19:2066:32 | Address | &:r2066_4 | -| ir.cpp:2066:19:2066:32 | Address | &:r2066_8 | -| ir.cpp:2066:19:2066:32 | Arg(0) | 0:r2066_3 | -| ir.cpp:2066:19:2066:32 | Arg(this) | this:r2066_8 | -| ir.cpp:2066:19:2066:32 | CallTarget | func:r2066_2 | -| ir.cpp:2066:19:2066:32 | CallTarget | func:r2066_9 | -| ir.cpp:2066:19:2066:32 | ChiPartial | partial:m2066_5 | -| ir.cpp:2066:19:2066:32 | ChiPartial | partial:m2066_11 | -| ir.cpp:2066:19:2066:32 | ChiPartial | partial:m2066_13 | -| ir.cpp:2066:19:2066:32 | ChiTotal | total:m2064_6 | -| ir.cpp:2066:19:2066:32 | ChiTotal | total:m2066_6 | -| ir.cpp:2066:19:2066:32 | ChiTotal | total:m2066_7 | -| ir.cpp:2066:19:2066:32 | SideEffect | ~m2064_6 | -| ir.cpp:2066:19:2066:32 | SideEffect | ~m2066_6 | -| ir.cpp:2066:19:2066:32 | StoreValue | r2066_8 | -| ir.cpp:2066:19:2066:32 | Unary | r2066_4 | -| ir.cpp:2067:5:2067:12 | CallTarget | func:r2067_1 | -| ir.cpp:2067:5:2067:12 | ChiPartial | partial:m2067_5 | -| ir.cpp:2067:5:2067:12 | ChiTotal | total:m2066_12 | -| ir.cpp:2067:5:2067:12 | SideEffect | ~m2066_12 | -| ir.cpp:2067:12:2067:12 | Address | &:r2067_2 | -| ir.cpp:2067:12:2067:12 | Arg(0) | 0:r2067_3 | -| ir.cpp:2067:12:2067:12 | Load | m2066_15 | -| ir.cpp:2068:1:2068:1 | Address | &:r2068_1 | -| ir.cpp:2072:6:2072:26 | ChiPartial | partial:m2072_3 | -| ir.cpp:2072:6:2072:26 | ChiTotal | total:m2072_2 | -| ir.cpp:2072:6:2072:26 | SideEffect | ~m2074_5 | -| ir.cpp:2073:13:2073:13 | Address | &:r2073_1 | -| ir.cpp:2073:16:2073:19 | StoreValue | r2073_2 | -| ir.cpp:2074:3:2074:27 | CallTarget | func:r2074_1 | -| ir.cpp:2074:3:2074:27 | ChiPartial | partial:m2074_4 | -| ir.cpp:2074:3:2074:27 | ChiTotal | total:m2072_4 | -| ir.cpp:2074:3:2074:27 | SideEffect | ~m2072_4 | -| ir.cpp:2074:29:2074:29 | Arg(0) | 0:r2074_2 | -| ir.cpp:2079:5:2079:11 | Address | &:r2079_6 | -| ir.cpp:2079:5:2079:11 | ChiPartial | partial:m2079_3 | -| ir.cpp:2079:5:2079:11 | ChiTotal | total:m2079_2 | -| ir.cpp:2079:5:2079:11 | Load | m2084_4 | -| ir.cpp:2079:5:2079:11 | SideEffect | ~m2083_4 | -| ir.cpp:2080:9:2080:9 | Address | &:r2080_1 | -| ir.cpp:2080:13:2080:15 | CallTarget | func:r2080_2 | -| ir.cpp:2080:13:2080:15 | ChiPartial | partial:m2080_6 | -| ir.cpp:2080:13:2080:15 | ChiTotal | total:m2079_4 | -| ir.cpp:2080:13:2080:15 | SideEffect | ~m2079_4 | -| ir.cpp:2080:13:2080:15 | StoreValue | r2080_5 | -| ir.cpp:2080:17:2080:17 | Arg(0) | 0:r2080_3 | -| ir.cpp:2080:19:2080:19 | Arg(1) | 1:r2080_4 | -| ir.cpp:2081:9:2081:9 | Address | &:r2081_1 | -| ir.cpp:2081:9:2081:9 | Left | r2081_2 | -| ir.cpp:2081:9:2081:9 | Load | m2080_8 | -| ir.cpp:2081:9:2081:14 | Condition | r2081_4 | -| ir.cpp:2081:14:2081:14 | Right | r2081_3 | -| ir.cpp:2082:9:2082:12 | CallTarget | func:r2082_1 | -| ir.cpp:2082:9:2082:12 | ChiPartial | partial:m2082_4 | -| ir.cpp:2082:9:2082:12 | ChiTotal | total:m2080_7 | -| ir.cpp:2082:9:2082:12 | SideEffect | ~m2080_7 | -| ir.cpp:2082:14:2082:14 | Arg(0) | 0:r2082_2 | -| ir.cpp:2083:5:2083:12 | CallTarget | func:r2083_1 | -| ir.cpp:2083:5:2083:12 | ChiPartial | partial:m2083_3 | -| ir.cpp:2083:5:2083:12 | ChiTotal | total:m2080_7 | -| ir.cpp:2083:5:2083:12 | SideEffect | ~m2080_7 | -| ir.cpp:2084:5:2084:13 | Address | &:r2084_1 | -| ir.cpp:2084:12:2084:12 | Address | &:r2084_2 | -| ir.cpp:2084:12:2084:12 | Load | m2080_8 | -| ir.cpp:2084:12:2084:12 | StoreValue | r2084_3 | -| ir.cpp:2087:6:2087:17 | ChiPartial | partial:m2087_3 | -| ir.cpp:2087:6:2087:17 | ChiTotal | total:m2087_2 | -| ir.cpp:2088:5:2088:12 | CallTarget | func:r2088_1 | -| ir.cpp:2088:5:2088:12 | ChiPartial | partial:m2088_3 | -| ir.cpp:2088:5:2088:12 | ChiTotal | total:m2087_4 | -| ir.cpp:2088:5:2088:12 | SideEffect | ~m2087_4 | -| ir.cpp:2089:5:2089:8 | CallTarget | func:r2089_1 | -| ir.cpp:2089:5:2089:8 | ChiPartial | partial:m2089_4 | -| ir.cpp:2089:5:2089:8 | ChiTotal | total:m2088_4 | -| ir.cpp:2089:5:2089:8 | SideEffect | ~m2088_4 | -| ir.cpp:2089:10:2089:10 | Arg(0) | 0:r2089_2 | -| ir.cpp:2092:5:2092:16 | Address | &:r2092_6 | -| ir.cpp:2092:5:2092:16 | ChiPartial | partial:m2092_3 | -| ir.cpp:2092:5:2092:16 | ChiTotal | total:m2092_2 | -| ir.cpp:2092:5:2092:16 | Load | m2097_4 | -| ir.cpp:2092:5:2092:16 | SideEffect | ~m2096_4 | -| ir.cpp:2093:9:2093:9 | Address | &:r2093_1 | -| ir.cpp:2093:13:2093:15 | CallTarget | func:r2093_2 | -| ir.cpp:2093:13:2093:15 | ChiPartial | partial:m2093_6 | -| ir.cpp:2093:13:2093:15 | ChiTotal | total:m2092_4 | -| ir.cpp:2093:13:2093:15 | SideEffect | ~m2092_4 | -| ir.cpp:2093:13:2093:15 | StoreValue | r2093_5 | -| ir.cpp:2093:17:2093:17 | Arg(0) | 0:r2093_3 | -| ir.cpp:2093:19:2093:19 | Arg(1) | 1:r2093_4 | -| ir.cpp:2094:9:2094:9 | Address | &:r2094_1 | -| ir.cpp:2094:9:2094:9 | Left | r2094_2 | -| ir.cpp:2094:9:2094:9 | Load | m2093_8 | -| ir.cpp:2094:9:2094:14 | Condition | r2094_4 | -| ir.cpp:2094:14:2094:14 | Right | r2094_3 | -| ir.cpp:2095:9:2095:20 | CallTarget | func:r2095_1 | -| ir.cpp:2096:5:2096:12 | CallTarget | func:r2096_1 | -| ir.cpp:2096:5:2096:12 | ChiPartial | partial:m2096_3 | -| ir.cpp:2096:5:2096:12 | ChiTotal | total:m2093_7 | -| ir.cpp:2096:5:2096:12 | SideEffect | ~m2093_7 | -| ir.cpp:2097:5:2097:13 | Address | &:r2097_1 | -| ir.cpp:2097:12:2097:12 | Address | &:r2097_2 | -| ir.cpp:2097:12:2097:12 | Load | m2093_8 | -| ir.cpp:2097:12:2097:12 | StoreValue | r2097_3 | -| ir.cpp:2100:6:2100:24 | ChiPartial | partial:m2100_3 | -| ir.cpp:2100:6:2100:24 | ChiTotal | total:m2100_2 | -| ir.cpp:2100:6:2100:24 | SideEffect | ~m2106_8 | -| ir.cpp:2100:33:2100:33 | Address | &:r2100_5 | -| ir.cpp:2101:3:2101:12 | Address | &:r2101_6 | -| ir.cpp:2101:3:2101:12 | Arg(0) | 0:r2101_5 | -| ir.cpp:2101:3:2101:12 | CallTarget | func:r2101_1 | -| ir.cpp:2101:3:2101:12 | ChiPartial | partial:m2101_7 | -| ir.cpp:2101:3:2101:12 | ChiTotal | total:m2100_4 | -| ir.cpp:2101:3:2101:12 | Right | r2101_4 | -| ir.cpp:2101:3:2101:12 | SideEffect | ~m2100_4 | -| ir.cpp:2101:3:2101:12 | Unary | r2101_6 | -| ir.cpp:2101:11:2101:11 | Address | &:r2101_2 | -| ir.cpp:2101:11:2101:11 | Left | r2101_3 | -| ir.cpp:2101:11:2101:11 | Load | m2100_6 | -| ir.cpp:2102:3:2102:18 | Address | &:r2102_7 | -| ir.cpp:2102:3:2102:18 | Arg(0) | 0:r2102_5 | -| ir.cpp:2102:3:2102:18 | CallTarget | func:r2102_1 | -| ir.cpp:2102:3:2102:18 | ChiPartial | partial:m2102_8 | -| ir.cpp:2102:3:2102:18 | ChiTotal | total:m2101_8 | -| ir.cpp:2102:3:2102:18 | Right | r2102_4 | -| ir.cpp:2102:3:2102:18 | SideEffect | ~m2101_8 | -| ir.cpp:2102:3:2102:18 | Unary | r2102_7 | -| ir.cpp:2102:7:2102:10 | Arg(1) | 1:r2102_6 | -| ir.cpp:2102:17:2102:17 | Address | &:r2102_2 | -| ir.cpp:2102:17:2102:17 | Left | r2102_3 | -| ir.cpp:2102:17:2102:17 | Load | m2100_6 | -| ir.cpp:2103:3:2103:15 | Address | &:r2103_6 | -| ir.cpp:2103:3:2103:15 | Arg(0) | 0:r2103_5 | -| ir.cpp:2103:3:2103:15 | CallTarget | func:r2103_1 | -| ir.cpp:2103:3:2103:15 | ChiPartial | partial:m2103_7 | -| ir.cpp:2103:3:2103:15 | ChiTotal | total:m2102_9 | -| ir.cpp:2103:3:2103:15 | Right | r2103_4 | -| ir.cpp:2103:3:2103:15 | SideEffect | ~m2102_9 | -| ir.cpp:2103:3:2103:15 | Unary | r2103_6 | -| ir.cpp:2103:14:2103:14 | Address | &:r2103_2 | -| ir.cpp:2103:14:2103:14 | Left | r2103_3 | -| ir.cpp:2103:14:2103:14 | Load | m2100_6 | -| ir.cpp:2104:3:2104:20 | Address | &:r2104_7 | -| ir.cpp:2104:3:2104:20 | Arg(0) | 0:r2104_5 | -| ir.cpp:2104:3:2104:20 | CallTarget | func:r2104_1 | -| ir.cpp:2104:3:2104:20 | ChiPartial | partial:m2104_8 | -| ir.cpp:2104:3:2104:20 | ChiTotal | total:m2103_8 | -| ir.cpp:2104:3:2104:20 | Right | r2104_4 | -| ir.cpp:2104:3:2104:20 | SideEffect | ~m2103_8 | -| ir.cpp:2104:3:2104:20 | Unary | r2104_7 | -| ir.cpp:2104:19:2104:19 | Address | &:r2104_2 | -| ir.cpp:2104:19:2104:19 | Left | r2104_3 | -| ir.cpp:2104:19:2104:19 | Load | m2100_6 | -| ir.cpp:2104:21:2104:21 | Arg(1) | 1:r2104_6 | -| ir.cpp:2105:3:2105:36 | Address | &:r2105_6 | -| ir.cpp:2105:3:2105:36 | Arg(0) | 0:r2105_5 | -| ir.cpp:2105:3:2105:36 | CallTarget | func:r2105_1 | -| ir.cpp:2105:3:2105:36 | ChiPartial | partial:m2105_7 | -| ir.cpp:2105:3:2105:36 | ChiTotal | total:m2104_9 | -| ir.cpp:2105:3:2105:36 | Right | r2105_4 | -| ir.cpp:2105:3:2105:36 | SideEffect | ~m2104_9 | -| ir.cpp:2105:3:2105:36 | Unary | r2105_6 | -| ir.cpp:2105:35:2105:35 | Address | &:r2105_2 | -| ir.cpp:2105:35:2105:35 | Left | r2105_3 | -| ir.cpp:2105:35:2105:35 | Load | m2100_6 | -| ir.cpp:2106:3:2106:24 | Address | &:r2106_6 | -| ir.cpp:2106:3:2106:24 | Arg(0) | 0:r2106_5 | -| ir.cpp:2106:3:2106:24 | CallTarget | func:r2106_1 | -| ir.cpp:2106:3:2106:24 | ChiPartial | partial:m2106_7 | -| ir.cpp:2106:3:2106:24 | ChiTotal | total:m2105_8 | -| ir.cpp:2106:3:2106:24 | Right | r2106_4 | -| ir.cpp:2106:3:2106:24 | SideEffect | ~m2105_8 | -| ir.cpp:2106:3:2106:24 | Unary | r2106_6 | -| ir.cpp:2106:11:2106:11 | Address | &:r2106_2 | -| ir.cpp:2106:11:2106:11 | Left | r2106_3 | -| ir.cpp:2106:11:2106:11 | Load | m2100_6 | -| ir.cpp:2111:7:2111:17 | Address | &:r2111_10 | -| ir.cpp:2111:7:2111:17 | ChiPartial | partial:m2111_3 | -| ir.cpp:2111:7:2111:17 | ChiTotal | total:m2111_2 | -| ir.cpp:2111:7:2111:17 | Load | m2114_4 | -| ir.cpp:2111:7:2111:17 | SideEffect | m2111_3 | -| ir.cpp:2111:25:2111:25 | Address | &:r2111_5 | -| ir.cpp:2111:25:2111:25 | Address | &:r2111_5 | -| ir.cpp:2111:25:2111:25 | Address | &:r2111_7 | -| ir.cpp:2111:25:2111:25 | Address | &:r2111_7 | -| ir.cpp:2111:25:2111:25 | Load | m2111_6 | -| ir.cpp:2111:25:2111:25 | SideEffect | m2111_8 | -| ir.cpp:2112:9:2112:11 | Address | &:r2112_1 | -| ir.cpp:2113:10:2113:10 | Address | &:r2113_1 | -| ir.cpp:2113:14:2113:19 | CallTarget | func:r2113_2 | -| ir.cpp:2113:14:2113:19 | StoreValue | r2113_8 | -| ir.cpp:2113:21:2113:21 | Address | &:r2113_3 | -| ir.cpp:2113:21:2113:21 | Address | &:r2113_5 | -| ir.cpp:2113:21:2113:21 | Arg(0) | 0:r2113_5 | -| ir.cpp:2113:21:2113:21 | Load | m2111_6 | -| ir.cpp:2113:21:2113:21 | SideEffect | ~m2111_8 | -| ir.cpp:2113:21:2113:21 | Unary | r2113_4 | -| ir.cpp:2113:24:2113:27 | Address | &:r2113_7 | -| ir.cpp:2113:24:2113:27 | Arg(1) | 1:r2113_7 | -| ir.cpp:2113:24:2113:27 | ChiPartial | partial:m2113_10 | -| ir.cpp:2113:24:2113:27 | ChiTotal | total:m2112_2 | -| ir.cpp:2113:25:2113:27 | Unary | r2113_6 | -| ir.cpp:2114:3:2114:13 | Address | &:r2114_1 | -| ir.cpp:2114:10:2114:12 | Address | &:r2114_2 | -| ir.cpp:2114:10:2114:12 | Load | m2113_11 | -| ir.cpp:2114:10:2114:12 | StoreValue | r2114_3 | -| ir.cpp:2121:6:2121:39 | ChiPartial | partial:m2121_3 | -| ir.cpp:2121:6:2121:39 | ChiTotal | total:m2121_2 | -| ir.cpp:2121:6:2121:39 | SideEffect | ~m2122_8 | -| ir.cpp:2122:6:2122:42 | Address | &:r2122_1 | -| ir.cpp:2122:6:2122:42 | Condition | r2122_12 | -| ir.cpp:2122:22:2122:22 | Address | &:r2122_4 | -| ir.cpp:2122:22:2122:22 | Address | &:r2122_4 | -| ir.cpp:2122:22:2122:22 | Arg(this) | this:r2122_4 | -| ir.cpp:2122:22:2122:22 | CallTarget | func:r2122_5 | -| ir.cpp:2122:22:2122:22 | ChiPartial | partial:m2122_7 | -| ir.cpp:2122:22:2122:22 | ChiPartial | partial:m2122_10 | -| ir.cpp:2122:22:2122:22 | ChiTotal | total:m2121_4 | -| ir.cpp:2122:22:2122:22 | ChiTotal | total:m2122_3 | -| ir.cpp:2122:22:2122:22 | SideEffect | m2122_3 | -| ir.cpp:2122:22:2122:22 | SideEffect | ~m2121_4 | -| ir.cpp:2122:22:2122:22 | Unary | r2122_6 | -| ir.cpp:2122:25:2122:42 | StoreValue | r2122_2 | -| ir.cpp:2125:7:2125:7 | Address | &:r2125_5 | -| ir.cpp:2125:7:2125:7 | Address | &:r2125_5 | -| ir.cpp:2125:7:2125:7 | Address | &:r2125_7 | -| ir.cpp:2125:7:2125:7 | Address | &:r2125_7 | -| ir.cpp:2125:7:2125:7 | Address | &:r2125_9 | -| ir.cpp:2125:7:2125:7 | Address | &:r2125_10 | -| ir.cpp:2125:7:2125:7 | Address | &:r2125_13 | -| ir.cpp:2125:7:2125:7 | ChiPartial | partial:m2125_3 | -| ir.cpp:2125:7:2125:7 | ChiPartial | partial:m2125_15 | -| ir.cpp:2125:7:2125:7 | ChiTotal | total:m2125_2 | -| ir.cpp:2125:7:2125:7 | ChiTotal | total:m2125_8 | -| ir.cpp:2125:7:2125:7 | Load | m0_2 | -| ir.cpp:2125:7:2125:7 | Load | m2125_6 | -| ir.cpp:2125:7:2125:7 | Load | ~m0_4 | -| ir.cpp:2125:7:2125:7 | SideEffect | m2125_3 | -| ir.cpp:2125:7:2125:7 | SideEffect | m2125_16 | -| ir.cpp:2125:7:2125:7 | StoreValue | r2125_14 | -| ir.cpp:2125:7:2125:7 | Unary | m2125_6 | -| ir.cpp:2125:7:2125:7 | Unary | r2125_11 | -| ir.cpp:2125:7:2125:7 | Unary | r2125_12 | -| ir.cpp:2128:5:2128:23 | Address | &:r2128_5 | -| ir.cpp:2128:5:2128:23 | Address | &:r2128_5 | -| ir.cpp:2128:5:2128:23 | Address | &:r2128_7 | -| ir.cpp:2128:5:2128:23 | Address | &:r2128_7 | -| ir.cpp:2128:5:2128:23 | ChiPartial | partial:m2128_3 | -| ir.cpp:2128:5:2128:23 | ChiTotal | total:m2128_2 | -| ir.cpp:2128:5:2128:23 | Load | m2128_6 | -| ir.cpp:2128:5:2128:23 | SideEffect | m2128_20 | -| ir.cpp:2128:5:2128:23 | SideEffect | ~m2128_13 | -| ir.cpp:2128:29:2128:29 | Address | &:r2128_16 | -| ir.cpp:2128:29:2128:29 | Address | &:r2128_18 | -| ir.cpp:2128:29:2128:29 | Load | m2128_6 | -| ir.cpp:2128:29:2128:29 | Unary | r2128_17 | -| ir.cpp:2128:29:2128:40 | ChiPartial | partial:m2128_19 | -| ir.cpp:2128:29:2128:40 | ChiTotal | total:m2128_8 | -| ir.cpp:2128:33:2128:40 | Address | &:r2128_11 | -| ir.cpp:2128:33:2128:40 | Arg(0) | 0:r2128_10 | -| ir.cpp:2128:33:2128:40 | CallTarget | func:r2128_9 | -| ir.cpp:2128:33:2128:40 | ChiPartial | partial:m2128_12 | -| ir.cpp:2128:33:2128:40 | ChiTotal | total:m2128_4 | -| ir.cpp:2128:33:2128:40 | SideEffect | ~m2128_4 | -| ir.cpp:2128:33:2128:40 | StoreValue | r2128_15 | -| ir.cpp:2128:33:2128:40 | Unary | r2128_11 | -| ir.cpp:2129:5:2129:24 | Address | &:r2129_5 | -| ir.cpp:2129:5:2129:24 | Address | &:r2129_5 | -| ir.cpp:2129:5:2129:24 | Address | &:r2129_7 | -| ir.cpp:2129:5:2129:24 | Address | &:r2129_7 | -| ir.cpp:2129:5:2129:24 | ChiPartial | partial:m2129_3 | -| ir.cpp:2129:5:2129:24 | ChiTotal | total:m2129_2 | -| ir.cpp:2129:5:2129:24 | Load | m2129_6 | -| ir.cpp:2129:5:2129:24 | SideEffect | m2129_8 | -| ir.cpp:2129:5:2129:24 | SideEffect | ~m2129_16 | -| ir.cpp:2129:30:2129:37 | CallTarget | func:r2129_9 | -| ir.cpp:2129:30:2129:37 | ChiPartial | partial:m2129_15 | -| ir.cpp:2129:30:2129:37 | ChiTotal | total:m2129_4 | -| ir.cpp:2129:30:2129:37 | SideEffect | ~m2129_4 | -| ir.cpp:2129:37:2129:37 | Address | &:r2129_10 | -| ir.cpp:2129:37:2129:37 | Address | &:r2129_12 | -| ir.cpp:2129:37:2129:37 | Arg(0) | 0:r2129_13 | -| ir.cpp:2129:37:2129:37 | Load | m2129_6 | -| ir.cpp:2129:37:2129:37 | Load | ~m2129_8 | -| ir.cpp:2129:37:2129:37 | Unary | r2129_11 | -| ir.cpp:2131:10:2131:14 | Address | &:r2131_5 | -| ir.cpp:2131:10:2131:14 | Address | &:r2131_5 | -| ir.cpp:2131:10:2131:14 | Address | &:r2131_7 | -| ir.cpp:2131:10:2131:14 | Address | &:r2131_7 | -| ir.cpp:2131:10:2131:14 | ChiPartial | partial:m2131_3 | -| ir.cpp:2131:10:2131:14 | ChiTotal | total:m2131_2 | -| ir.cpp:2131:10:2131:14 | Load | m2131_6 | -| ir.cpp:2131:10:2131:14 | SideEffect | m2131_8 | -| ir.cpp:2131:10:2131:14 | SideEffect | ~m2131_19 | -| ir.cpp:2131:21:2131:21 | Address | &:r2131_9 | -| ir.cpp:2131:26:2131:27 | Address | &:r2131_17 | -| ir.cpp:2131:26:2131:31 | ChiPartial | partial:m2131_18 | -| ir.cpp:2131:26:2131:31 | ChiTotal | total:m2131_4 | -| ir.cpp:2131:27:2131:27 | Address | &:r2131_13 | -| ir.cpp:2131:27:2131:27 | Address | &:r2131_15 | -| ir.cpp:2131:27:2131:27 | Load | m2131_6 | -| ir.cpp:2131:27:2131:27 | Load | ~m2131_8 | -| ir.cpp:2131:27:2131:27 | Unary | r2131_14 | -| ir.cpp:2131:27:2131:27 | Unary | r2131_16 | -| ir.cpp:2131:31:2131:31 | Address | &:r2131_11 | -| ir.cpp:2131:31:2131:31 | Load | m2131_10 | -| ir.cpp:2131:31:2131:31 | StoreValue | r2131_12 | -| ir.cpp:2132:10:2132:14 | Address | &:r2132_5 | -| ir.cpp:2132:10:2132:14 | Address | &:r2132_5 | -| ir.cpp:2132:10:2132:14 | Address | &:r2132_7 | -| ir.cpp:2132:10:2132:14 | Address | &:r2132_7 | -| ir.cpp:2132:10:2132:14 | Address | &:r2132_17 | -| ir.cpp:2132:10:2132:14 | ChiPartial | partial:m2132_3 | -| ir.cpp:2132:10:2132:14 | ChiTotal | total:m2132_2 | -| ir.cpp:2132:10:2132:14 | Load | m2132_6 | -| ir.cpp:2132:10:2132:14 | Load | m2132_15 | -| ir.cpp:2132:10:2132:14 | SideEffect | m2132_3 | -| ir.cpp:2132:10:2132:14 | SideEffect | m2132_8 | -| ir.cpp:2132:20:2132:29 | Address | &:r2132_9 | -| ir.cpp:2132:27:2132:28 | Load | ~m2132_4 | -| ir.cpp:2132:27:2132:28 | StoreValue | r2132_14 | -| ir.cpp:2132:28:2132:28 | Address | &:r2132_10 | -| ir.cpp:2132:28:2132:28 | Address | &:r2132_12 | -| ir.cpp:2132:28:2132:28 | Address | &:r2132_13 | -| ir.cpp:2132:28:2132:28 | Load | m2132_6 | -| ir.cpp:2132:28:2132:28 | Load | ~m2132_8 | -| ir.cpp:2132:28:2132:28 | Unary | r2132_11 | -| ir.cpp:2135:16:2135:50 | Address | &:r2135_3 | -| ir.cpp:2135:16:2135:50 | SideEffect | ~m2135_6 | -| ir.cpp:2135:54:2135:57 | ChiPartial | partial:m2135_5 | -| ir.cpp:2135:54:2135:57 | ChiTotal | total:m2135_2 | -| ir.cpp:2135:54:2135:57 | StoreValue | r2135_4 | -| ir.cpp:2137:6:2137:35 | ChiPartial | partial:m2137_3 | -| ir.cpp:2137:6:2137:35 | ChiTotal | total:m2137_2 | -| ir.cpp:2137:6:2137:35 | Phi | from 13:~m2172_5 | -| ir.cpp:2137:6:2137:35 | Phi | from 19:~m2172_13 | -| ir.cpp:2137:6:2137:35 | Phi | from 23:~m2172_22 | -| ir.cpp:2137:6:2137:35 | SideEffect | ~m2137_9 | -| ir.cpp:2137:42:2137:42 | Address | &:r2137_5 | -| ir.cpp:2137:50:2137:50 | Address | &:r2137_7 | -| ir.cpp:2138:29:2138:29 | Address | &:r2138_1 | -| ir.cpp:2138:29:2138:29 | Address | &:r2138_1 | -| ir.cpp:2138:29:2138:29 | Arg(this) | this:r2138_1 | -| ir.cpp:2138:29:2138:29 | CallTarget | func:r2138_3 | -| ir.cpp:2138:29:2138:29 | ChiPartial | partial:m2138_5 | -| ir.cpp:2138:29:2138:29 | ChiPartial | partial:m2138_7 | -| ir.cpp:2138:29:2138:29 | ChiTotal | total:m2137_4 | -| ir.cpp:2138:29:2138:29 | ChiTotal | total:m2138_2 | -| ir.cpp:2138:29:2138:29 | SideEffect | ~m2137_4 | -| ir.cpp:2138:32:2138:32 | Address | &:r2138_9 | -| ir.cpp:2138:32:2138:32 | Condition | r2138_10 | -| ir.cpp:2138:32:2138:32 | Load | m2137_6 | -| ir.cpp:2139:9:2139:9 | Address | &:r2139_1 | -| ir.cpp:2139:9:2139:9 | Address | &:r2139_1 | -| ir.cpp:2139:9:2139:9 | Arg(this) | this:r2139_1 | -| ir.cpp:2139:9:2139:9 | ChiPartial | partial:m2139_8 | -| ir.cpp:2139:9:2139:9 | ChiTotal | total:m2138_8 | -| ir.cpp:2139:9:2139:9 | SideEffect | m2138_8 | -| ir.cpp:2139:11:2139:15 | CallTarget | func:r2139_2 | -| ir.cpp:2139:11:2139:15 | ChiPartial | partial:m2139_5 | -| ir.cpp:2139:11:2139:15 | ChiTotal | total:m2138_6 | -| ir.cpp:2139:11:2139:15 | SideEffect | ~m2138_6 | -| ir.cpp:2139:17:2139:19 | Arg(0) | 0:r2139_3 | -| ir.cpp:2139:21:2139:21 | Address | &:r2139_10 | -| ir.cpp:2139:21:2139:21 | Address | &:r2139_10 | -| ir.cpp:2139:21:2139:21 | Arg(this) | this:r2139_10 | -| ir.cpp:2139:21:2139:21 | CallTarget | func:r2139_11 | -| ir.cpp:2139:21:2139:21 | ChiPartial | partial:m2139_13 | -| ir.cpp:2139:21:2139:21 | ChiPartial | partial:m2139_16 | -| ir.cpp:2139:21:2139:21 | ChiTotal | total:m2139_6 | -| ir.cpp:2139:21:2139:21 | ChiTotal | total:m2139_9 | -| ir.cpp:2139:21:2139:21 | SideEffect | m2139_9 | -| ir.cpp:2139:21:2139:21 | SideEffect | ~m2139_6 | -| ir.cpp:2141:39:2141:39 | Address | &:r2141_2 | -| ir.cpp:2141:39:2141:39 | Address | &:r2141_2 | -| ir.cpp:2141:39:2141:39 | Arg(this) | this:r2141_2 | -| ir.cpp:2141:39:2141:39 | CallTarget | func:r2141_4 | -| ir.cpp:2141:39:2141:39 | ChiPartial | partial:m2141_6 | -| ir.cpp:2141:39:2141:39 | ChiPartial | partial:m2141_8 | -| ir.cpp:2141:39:2141:39 | ChiTotal | total:m2141_1 | -| ir.cpp:2141:39:2141:39 | ChiTotal | total:m2141_3 | -| ir.cpp:2141:39:2141:39 | Phi | from 0:~m2138_6 | -| ir.cpp:2141:39:2141:39 | Phi | from 2:~m2139_14 | -| ir.cpp:2141:39:2141:39 | SideEffect | ~m2141_1 | -| ir.cpp:2141:42:2141:76 | Condition | r2141_10 | -| ir.cpp:2142:9:2142:9 | Address | &:r2142_1 | -| ir.cpp:2142:9:2142:9 | Address | &:r2142_1 | -| ir.cpp:2142:9:2142:9 | Arg(this) | this:r2142_1 | -| ir.cpp:2142:9:2142:9 | ChiPartial | partial:m2142_8 | -| ir.cpp:2142:9:2142:9 | ChiTotal | total:m2141_9 | -| ir.cpp:2142:9:2142:9 | SideEffect | m2141_9 | -| ir.cpp:2142:11:2142:15 | CallTarget | func:r2142_2 | -| ir.cpp:2142:11:2142:15 | ChiPartial | partial:m2142_5 | -| ir.cpp:2142:11:2142:15 | ChiTotal | total:m2141_7 | -| ir.cpp:2142:11:2142:15 | SideEffect | ~m2141_7 | -| ir.cpp:2142:17:2142:19 | Arg(0) | 0:r2142_3 | -| ir.cpp:2144:32:2144:32 | Address | &:r2144_1 | -| ir.cpp:2144:32:2144:32 | Address | &:r2144_1 | -| ir.cpp:2144:32:2144:32 | Arg(this) | this:r2144_1 | -| ir.cpp:2144:32:2144:32 | CallTarget | func:r2144_3 | -| ir.cpp:2144:32:2144:32 | ChiPartial | partial:m2144_5 | -| ir.cpp:2144:32:2144:32 | ChiPartial | partial:m2144_7 | -| ir.cpp:2144:32:2144:32 | ChiTotal | total:m2142_6 | -| ir.cpp:2144:32:2144:32 | ChiTotal | total:m2144_2 | -| ir.cpp:2144:32:2144:32 | SideEffect | ~m2142_6 | -| ir.cpp:2144:35:2144:35 | Address | &:r2144_9 | -| ir.cpp:2144:35:2144:35 | Condition | r2144_11 | -| ir.cpp:2144:35:2144:35 | Load | m2137_8 | -| ir.cpp:2144:35:2144:35 | Unary | r2144_10 | -| ir.cpp:2146:11:2146:11 | Address | &:r2146_1 | -| ir.cpp:2146:11:2146:11 | Address | &:r2146_1 | -| ir.cpp:2146:11:2146:11 | Arg(this) | this:r2146_1 | -| ir.cpp:2146:11:2146:11 | ChiPartial | partial:m2146_8 | -| ir.cpp:2146:11:2146:11 | ChiTotal | total:m2144_8 | -| ir.cpp:2146:11:2146:11 | SideEffect | m2144_8 | -| ir.cpp:2146:13:2146:17 | CallTarget | func:r2146_2 | -| ir.cpp:2146:13:2146:17 | ChiPartial | partial:m2146_5 | -| ir.cpp:2146:13:2146:17 | ChiTotal | total:m2144_6 | -| ir.cpp:2146:13:2146:17 | SideEffect | ~m2144_6 | -| ir.cpp:2146:19:2146:21 | Arg(0) | 0:r2146_3 | -| ir.cpp:2149:11:2149:11 | Address | &:r2149_1 | -| ir.cpp:2149:11:2149:11 | Address | &:r2149_1 | -| ir.cpp:2149:11:2149:11 | Arg(this) | this:r2149_1 | -| ir.cpp:2149:11:2149:11 | ChiPartial | partial:m2149_8 | -| ir.cpp:2149:11:2149:11 | ChiTotal | total:m2144_8 | -| ir.cpp:2149:11:2149:11 | SideEffect | m2144_8 | -| ir.cpp:2149:13:2149:17 | CallTarget | func:r2149_2 | -| ir.cpp:2149:13:2149:17 | ChiPartial | partial:m2149_5 | -| ir.cpp:2149:13:2149:17 | ChiTotal | total:m2144_6 | -| ir.cpp:2149:13:2149:17 | SideEffect | ~m2144_6 | -| ir.cpp:2149:19:2149:21 | Arg(0) | 0:r2149_3 | -| ir.cpp:2151:5:2151:5 | Phi | from 5:~m2146_6 | -| ir.cpp:2151:5:2151:5 | Phi | from 6:~m2149_6 | -| ir.cpp:2153:25:2153:25 | Address | &:r2153_1 | -| ir.cpp:2153:25:2153:25 | Address | &:r2153_1 | -| ir.cpp:2153:25:2153:25 | Arg(this) | this:r2153_1 | -| ir.cpp:2153:25:2153:25 | CallTarget | func:r2153_3 | -| ir.cpp:2153:25:2153:25 | ChiPartial | partial:m2153_5 | -| ir.cpp:2153:25:2153:25 | ChiPartial | partial:m2153_7 | -| ir.cpp:2153:25:2153:25 | ChiTotal | total:m2151_1 | -| ir.cpp:2153:25:2153:25 | ChiTotal | total:m2153_2 | -| ir.cpp:2153:25:2153:25 | SideEffect | ~m2151_1 | -| ir.cpp:2154:5:2154:5 | Address | &:r2154_14 | -| ir.cpp:2154:5:2154:5 | Address | &:r2154_18 | -| ir.cpp:2154:5:2154:5 | Address | &:r2154_26 | -| ir.cpp:2154:37:2154:38 | Address | &:r2154_1 | -| ir.cpp:2154:37:2154:38 | Address | &:r2154_1 | -| ir.cpp:2154:37:2154:38 | Arg(this) | this:r2154_1 | -| ir.cpp:2154:40:2154:40 | Address | &:r2154_4 | -| ir.cpp:2154:40:2154:40 | Address | &:r2154_4 | -| ir.cpp:2154:40:2154:40 | Address | &:r2154_5 | -| ir.cpp:2154:40:2154:40 | Arg(0) | 0:r2154_8 | -| ir.cpp:2154:40:2154:40 | Load | m2153_8 | -| ir.cpp:2154:40:2154:40 | Load | m2154_7 | -| ir.cpp:2154:40:2154:40 | StoreValue | r2154_6 | -| ir.cpp:2154:40:2154:41 | CallTarget | func:r2154_3 | -| ir.cpp:2154:40:2154:41 | ChiPartial | partial:m2154_10 | -| ir.cpp:2154:40:2154:41 | ChiPartial | partial:m2154_12 | -| ir.cpp:2154:40:2154:41 | ChiTotal | total:m2153_6 | -| ir.cpp:2154:40:2154:41 | ChiTotal | total:m2154_2 | -| ir.cpp:2154:40:2154:41 | SideEffect | ~m2153_6 | -| ir.cpp:2154:64:2154:64 | Address | &:r2154_44 | -| ir.cpp:2154:64:2154:64 | Address | &:r2154_52 | -| ir.cpp:2154:64:2154:64 | Address | &:r2154_52 | -| ir.cpp:2154:64:2154:64 | Arg(this) | this:r2154_52 | -| ir.cpp:2154:64:2154:64 | CallTarget | func:r2154_53 | -| ir.cpp:2154:64:2154:64 | ChiPartial | partial:m2154_55 | -| ir.cpp:2154:64:2154:64 | ChiPartial | partial:m2154_58 | -| ir.cpp:2154:64:2154:64 | ChiTotal | total:m2155_6 | -| ir.cpp:2154:64:2154:64 | ChiTotal | total:m2155_9 | -| ir.cpp:2154:64:2154:64 | SideEffect | m2155_9 | -| ir.cpp:2154:64:2154:64 | SideEffect | ~m2155_6 | -| ir.cpp:2154:68:2154:68 | Address | &:r2154_19 | -| ir.cpp:2154:68:2154:68 | Address | &:r2154_27 | -| ir.cpp:2154:68:2154:68 | Address | &:r2154_38 | -| ir.cpp:2154:68:2154:68 | Address | &:r2154_47 | -| ir.cpp:2154:68:2154:68 | Address | &:r2154_60 | -| ir.cpp:2154:68:2154:68 | Address | &:r2154_60 | -| ir.cpp:2154:68:2154:68 | Arg(0) | 0:r2154_39 | -| ir.cpp:2154:68:2154:68 | Arg(this) | this:r0_2 | -| ir.cpp:2154:68:2154:68 | Arg(this) | this:r0_5 | -| ir.cpp:2154:68:2154:68 | Arg(this) | this:r0_7 | -| ir.cpp:2154:68:2154:68 | Arg(this) | this:r0_9 | -| ir.cpp:2154:68:2154:68 | Arg(this) | this:r2154_60 | -| ir.cpp:2154:68:2154:68 | CallTarget | func:r2154_21 | -| ir.cpp:2154:68:2154:68 | CallTarget | func:r2154_29 | -| ir.cpp:2154:68:2154:68 | CallTarget | func:r2154_37 | -| ir.cpp:2154:68:2154:68 | CallTarget | func:r2154_46 | -| ir.cpp:2154:68:2154:68 | CallTarget | func:r2154_61 | -| ir.cpp:2154:68:2154:68 | ChiPartial | partial:m2154_23 | -| ir.cpp:2154:68:2154:68 | ChiPartial | partial:m2154_31 | -| ir.cpp:2154:68:2154:68 | ChiPartial | partial:m2154_41 | -| ir.cpp:2154:68:2154:68 | ChiPartial | partial:m2154_48 | -| ir.cpp:2154:68:2154:68 | ChiPartial | partial:m2154_63 | -| ir.cpp:2154:68:2154:68 | ChiPartial | partial:m2154_66 | -| ir.cpp:2154:68:2154:68 | ChiTotal | total:m2154_11 | -| ir.cpp:2154:68:2154:68 | ChiTotal | total:m2154_24 | -| ir.cpp:2154:68:2154:68 | ChiTotal | total:m2154_34 | -| ir.cpp:2154:68:2154:68 | ChiTotal | total:m2154_35 | -| ir.cpp:2154:68:2154:68 | ChiTotal | total:m2154_42 | -| ir.cpp:2154:68:2154:68 | ChiTotal | total:m2154_56 | -| ir.cpp:2154:68:2154:68 | Condition | r2154_40 | -| ir.cpp:2154:68:2154:68 | Load | m2154_17 | -| ir.cpp:2154:68:2154:68 | Load | m2154_17 | -| ir.cpp:2154:68:2154:68 | Load | m2154_33 | -| ir.cpp:2154:68:2154:68 | Phi | from 7:m2154_25 | -| ir.cpp:2154:68:2154:68 | Phi | from 7:~m2154_32 | -| ir.cpp:2154:68:2154:68 | Phi | from 9:m2154_67 | -| ir.cpp:2154:68:2154:68 | Phi | from 9:~m2154_64 | -| ir.cpp:2154:68:2154:68 | SideEffect | m2154_34 | -| ir.cpp:2154:68:2154:68 | SideEffect | ~m2154_11 | -| ir.cpp:2154:68:2154:68 | SideEffect | ~m2154_24 | -| ir.cpp:2154:68:2154:68 | SideEffect | ~m2154_35 | -| ir.cpp:2154:68:2154:68 | SideEffect | ~m2154_42 | -| ir.cpp:2154:68:2154:68 | SideEffect | ~m2154_56 | -| ir.cpp:2154:68:2154:68 | StoreValue | r2154_22 | -| ir.cpp:2154:68:2154:68 | StoreValue | r2154_30 | -| ir.cpp:2154:68:2154:68 | Unary | r2154_20 | -| ir.cpp:2154:68:2154:68 | Unary | r2154_28 | -| ir.cpp:2154:68:2154:68 | Unary | r2154_36 | -| ir.cpp:2154:68:2154:68 | Unary | r2154_45 | -| ir.cpp:2154:68:2154:68 | Unary | r2154_62 | -| ir.cpp:2154:68:2154:69 | StoreValue | r2154_16 | -| ir.cpp:2154:68:2154:69 | Unary | r2154_15 | -| ir.cpp:2154:68:2154:70 | Load | ~m2154_49 | -| ir.cpp:2154:68:2154:70 | StoreValue | r2154_50 | -| ir.cpp:2155:7:2155:7 | Address | &:r2155_1 | -| ir.cpp:2155:7:2155:7 | Address | &:r2155_1 | -| ir.cpp:2155:7:2155:7 | Arg(this) | this:r2155_1 | -| ir.cpp:2155:7:2155:7 | ChiPartial | partial:m2155_8 | -| ir.cpp:2155:7:2155:7 | ChiTotal | total:m2154_51 | -| ir.cpp:2155:7:2155:7 | SideEffect | m2154_51 | -| ir.cpp:2155:9:2155:13 | CallTarget | func:r2155_2 | -| ir.cpp:2155:9:2155:13 | ChiPartial | partial:m2155_5 | -| ir.cpp:2155:9:2155:13 | ChiTotal | total:m2154_49 | -| ir.cpp:2155:9:2155:13 | SideEffect | ~m2154_49 | -| ir.cpp:2155:15:2155:17 | Arg(0) | 0:r2155_3 | -| ir.cpp:2157:5:2157:5 | Address | &:r2157_14 | -| ir.cpp:2157:5:2157:5 | Address | &:r2157_18 | -| ir.cpp:2157:5:2157:5 | Address | &:r2157_26 | -| ir.cpp:2157:37:2157:38 | Address | &:r2157_1 | -| ir.cpp:2157:37:2157:38 | Address | &:r2157_1 | -| ir.cpp:2157:37:2157:38 | Address | &:r2157_60 | -| ir.cpp:2157:37:2157:38 | Address | &:r2157_60 | -| ir.cpp:2157:37:2157:38 | Arg(this) | this:r2157_1 | -| ir.cpp:2157:37:2157:38 | Arg(this) | this:r2157_60 | -| ir.cpp:2157:37:2157:38 | CallTarget | func:r2157_61 | -| ir.cpp:2157:37:2157:38 | ChiPartial | partial:m2157_63 | -| ir.cpp:2157:37:2157:38 | ChiPartial | partial:m2157_66 | -| ir.cpp:2157:37:2157:38 | ChiTotal | total:m2157_13 | -| ir.cpp:2157:37:2157:38 | ChiTotal | total:m2157_56 | -| ir.cpp:2157:37:2157:38 | SideEffect | m2157_13 | -| ir.cpp:2157:37:2157:38 | SideEffect | ~m2157_56 | -| ir.cpp:2157:40:2157:40 | Address | &:r2157_4 | -| ir.cpp:2157:40:2157:40 | Address | &:r2157_4 | -| ir.cpp:2157:40:2157:40 | Address | &:r2157_5 | -| ir.cpp:2157:40:2157:40 | Arg(0) | 0:r2157_8 | -| ir.cpp:2157:40:2157:40 | Load | m2153_8 | -| ir.cpp:2157:40:2157:40 | Load | m2157_7 | -| ir.cpp:2157:40:2157:40 | StoreValue | r2157_6 | -| ir.cpp:2157:40:2157:41 | CallTarget | func:r2157_3 | -| ir.cpp:2157:40:2157:41 | ChiPartial | partial:m2157_10 | -| ir.cpp:2157:40:2157:41 | ChiPartial | partial:m2157_12 | -| ir.cpp:2157:40:2157:41 | ChiTotal | total:m2154_42 | -| ir.cpp:2157:40:2157:41 | ChiTotal | total:m2157_2 | -| ir.cpp:2157:40:2157:41 | SideEffect | ~m2154_42 | -| ir.cpp:2157:64:2157:64 | Address | &:r2157_44 | -| ir.cpp:2157:64:2157:64 | Address | &:r2157_52 | -| ir.cpp:2157:64:2157:64 | Address | &:r2157_52 | -| ir.cpp:2157:64:2157:64 | Address | &:r2157_68 | -| ir.cpp:2157:64:2157:64 | Address | &:r2157_68 | -| ir.cpp:2157:64:2157:64 | Arg(this) | this:r2157_52 | -| ir.cpp:2157:64:2157:64 | Arg(this) | this:r2157_68 | -| ir.cpp:2157:64:2157:64 | CallTarget | func:r2157_53 | -| ir.cpp:2157:64:2157:64 | CallTarget | func:r2157_69 | -| ir.cpp:2157:64:2157:64 | ChiPartial | partial:m2157_55 | -| ir.cpp:2157:64:2157:64 | ChiPartial | partial:m2157_58 | -| ir.cpp:2157:64:2157:64 | ChiPartial | partial:m2157_71 | -| ir.cpp:2157:64:2157:64 | ChiPartial | partial:m2157_74 | -| ir.cpp:2157:64:2157:64 | ChiTotal | total:m2159_5 | -| ir.cpp:2157:64:2157:64 | ChiTotal | total:m2159_5 | -| ir.cpp:2157:64:2157:64 | ChiTotal | total:m2159_8 | -| ir.cpp:2157:64:2157:64 | ChiTotal | total:m2159_8 | -| ir.cpp:2157:64:2157:64 | SideEffect | m2159_8 | -| ir.cpp:2157:64:2157:64 | SideEffect | m2159_8 | -| ir.cpp:2157:64:2157:64 | SideEffect | ~m2159_5 | -| ir.cpp:2157:64:2157:64 | SideEffect | ~m2159_5 | -| ir.cpp:2157:68:2157:68 | Address | &:r2157_19 | -| ir.cpp:2157:68:2157:68 | Address | &:r2157_27 | -| ir.cpp:2157:68:2157:68 | Address | &:r2157_38 | -| ir.cpp:2157:68:2157:68 | Address | &:r2157_47 | -| ir.cpp:2157:68:2157:68 | Address | &:r2157_76 | -| ir.cpp:2157:68:2157:68 | Address | &:r2157_76 | -| ir.cpp:2157:68:2157:68 | Arg(0) | 0:r2157_39 | -| ir.cpp:2157:68:2157:68 | Arg(this) | this:r0_12 | -| ir.cpp:2157:68:2157:68 | Arg(this) | this:r0_15 | -| ir.cpp:2157:68:2157:68 | Arg(this) | this:r0_17 | -| ir.cpp:2157:68:2157:68 | Arg(this) | this:r0_19 | -| ir.cpp:2157:68:2157:68 | Arg(this) | this:r2157_76 | -| ir.cpp:2157:68:2157:68 | CallTarget | func:r2157_21 | -| ir.cpp:2157:68:2157:68 | CallTarget | func:r2157_29 | -| ir.cpp:2157:68:2157:68 | CallTarget | func:r2157_37 | -| ir.cpp:2157:68:2157:68 | CallTarget | func:r2157_46 | -| ir.cpp:2157:68:2157:68 | CallTarget | func:r2157_77 | -| ir.cpp:2157:68:2157:68 | ChiPartial | partial:m2157_23 | -| ir.cpp:2157:68:2157:68 | ChiPartial | partial:m2157_31 | -| ir.cpp:2157:68:2157:68 | ChiPartial | partial:m2157_41 | -| ir.cpp:2157:68:2157:68 | ChiPartial | partial:m2157_48 | -| ir.cpp:2157:68:2157:68 | ChiPartial | partial:m2157_79 | -| ir.cpp:2157:68:2157:68 | ChiPartial | partial:m2157_82 | -| ir.cpp:2157:68:2157:68 | ChiTotal | total:m2157_11 | -| ir.cpp:2157:68:2157:68 | ChiTotal | total:m2157_24 | -| ir.cpp:2157:68:2157:68 | ChiTotal | total:m2157_34 | -| ir.cpp:2157:68:2157:68 | ChiTotal | total:m2157_35 | -| ir.cpp:2157:68:2157:68 | ChiTotal | total:m2157_42 | -| ir.cpp:2157:68:2157:68 | ChiTotal | total:m2157_72 | -| ir.cpp:2157:68:2157:68 | Condition | r2157_40 | -| ir.cpp:2157:68:2157:68 | Load | m2157_17 | -| ir.cpp:2157:68:2157:68 | Load | m2157_17 | -| ir.cpp:2157:68:2157:68 | Load | m2157_33 | -| ir.cpp:2157:68:2157:68 | Phi | from 10:m2157_25 | -| ir.cpp:2157:68:2157:68 | Phi | from 10:~m2157_32 | -| ir.cpp:2157:68:2157:68 | Phi | from 14:m2157_83 | -| ir.cpp:2157:68:2157:68 | Phi | from 14:~m2157_80 | -| ir.cpp:2157:68:2157:68 | SideEffect | m2157_34 | -| ir.cpp:2157:68:2157:68 | SideEffect | ~m2157_11 | -| ir.cpp:2157:68:2157:68 | SideEffect | ~m2157_24 | -| ir.cpp:2157:68:2157:68 | SideEffect | ~m2157_35 | -| ir.cpp:2157:68:2157:68 | SideEffect | ~m2157_42 | -| ir.cpp:2157:68:2157:68 | SideEffect | ~m2157_72 | -| ir.cpp:2157:68:2157:68 | StoreValue | r2157_22 | -| ir.cpp:2157:68:2157:68 | StoreValue | r2157_30 | -| ir.cpp:2157:68:2157:68 | Unary | r2157_20 | -| ir.cpp:2157:68:2157:68 | Unary | r2157_28 | -| ir.cpp:2157:68:2157:68 | Unary | r2157_36 | -| ir.cpp:2157:68:2157:68 | Unary | r2157_45 | -| ir.cpp:2157:68:2157:68 | Unary | r2157_78 | -| ir.cpp:2157:68:2157:69 | StoreValue | r2157_16 | -| ir.cpp:2157:68:2157:69 | Unary | r2157_15 | -| ir.cpp:2157:68:2157:70 | Load | ~m2157_49 | -| ir.cpp:2157:68:2157:70 | StoreValue | r2157_50 | -| ir.cpp:2158:7:2158:7 | Address | &:r2158_1 | -| ir.cpp:2158:7:2158:7 | Address | &:r2158_1 | -| ir.cpp:2158:7:2158:7 | Arg(this) | this:r2158_1 | -| ir.cpp:2158:7:2158:7 | ChiPartial | partial:m2158_8 | -| ir.cpp:2158:7:2158:7 | ChiTotal | total:m2157_51 | -| ir.cpp:2158:7:2158:7 | SideEffect | m2157_51 | -| ir.cpp:2158:9:2158:13 | CallTarget | func:r2158_2 | -| ir.cpp:2158:9:2158:13 | ChiPartial | partial:m2158_5 | -| ir.cpp:2158:9:2158:13 | ChiTotal | total:m2157_49 | -| ir.cpp:2158:9:2158:13 | SideEffect | ~m2157_49 | -| ir.cpp:2158:15:2158:17 | Arg(0) | 0:r2158_3 | -| ir.cpp:2159:11:2159:11 | Address | &:r2159_1 | -| ir.cpp:2159:11:2159:11 | Address | &:r2159_1 | -| ir.cpp:2159:11:2159:11 | Arg(this) | this:r2159_1 | -| ir.cpp:2159:11:2159:11 | ChiPartial | partial:m2159_7 | -| ir.cpp:2159:11:2159:11 | ChiTotal | total:m2158_9 | -| ir.cpp:2159:11:2159:11 | SideEffect | m2158_9 | -| ir.cpp:2159:11:2159:19 | Left | r2159_9 | -| ir.cpp:2159:11:2159:26 | Condition | r2159_11 | -| ir.cpp:2159:13:2159:17 | CallTarget | func:r2159_2 | -| ir.cpp:2159:13:2159:17 | ChiPartial | partial:m2159_4 | -| ir.cpp:2159:13:2159:17 | ChiTotal | total:m2158_6 | -| ir.cpp:2159:13:2159:17 | SideEffect | ~m2158_6 | -| ir.cpp:2159:13:2159:17 | Unary | r2159_3 | -| ir.cpp:2159:24:2159:26 | Right | r2159_10 | -| ir.cpp:2163:5:2163:5 | Address | &:r2163_10 | -| ir.cpp:2163:5:2163:5 | Address | &:r2163_14 | -| ir.cpp:2163:5:2163:5 | Address | &:r2163_22 | -| ir.cpp:2163:21:2163:22 | Address | &:r2163_1 | -| ir.cpp:2163:21:2163:22 | Address | &:r2163_1 | -| ir.cpp:2163:21:2163:22 | Address | &:r2163_57 | -| ir.cpp:2163:21:2163:22 | Address | &:r2163_57 | -| ir.cpp:2163:21:2163:22 | Arg(this) | this:r2163_1 | -| ir.cpp:2163:21:2163:22 | Arg(this) | this:r2163_57 | -| ir.cpp:2163:21:2163:22 | CallTarget | func:r2163_58 | -| ir.cpp:2163:21:2163:22 | ChiPartial | partial:m2163_60 | -| ir.cpp:2163:21:2163:22 | ChiPartial | partial:m2163_63 | -| ir.cpp:2163:21:2163:22 | ChiTotal | total:m2163_9 | -| ir.cpp:2163:21:2163:22 | ChiTotal | total:m2163_54 | -| ir.cpp:2163:21:2163:22 | SideEffect | m2163_9 | -| ir.cpp:2163:21:2163:22 | SideEffect | ~m2163_54 | -| ir.cpp:2163:24:2163:24 | Arg(0) | 0:r2163_4 | -| ir.cpp:2163:24:2163:25 | CallTarget | func:r2163_3 | -| ir.cpp:2163:24:2163:25 | ChiPartial | partial:m2163_6 | -| ir.cpp:2163:24:2163:25 | ChiPartial | partial:m2163_8 | -| ir.cpp:2163:24:2163:25 | ChiTotal | total:m2157_42 | -| ir.cpp:2163:24:2163:25 | ChiTotal | total:m2163_2 | -| ir.cpp:2163:24:2163:25 | SideEffect | ~m2157_42 | -| ir.cpp:2163:32:2163:32 | Address | &:r2163_49 | -| ir.cpp:2163:36:2163:36 | Address | &:r2163_15 | -| ir.cpp:2163:36:2163:36 | Address | &:r2163_23 | -| ir.cpp:2163:36:2163:36 | Address | &:r2163_34 | -| ir.cpp:2163:36:2163:36 | Address | &:r2163_40 | -| ir.cpp:2163:36:2163:36 | Address | &:r2163_40 | -| ir.cpp:2163:36:2163:36 | Address | &:r2163_52 | -| ir.cpp:2163:36:2163:36 | Arg(0) | 0:r2163_35 | -| ir.cpp:2163:36:2163:36 | Arg(this) | this:r0_22 | -| ir.cpp:2163:36:2163:36 | Arg(this) | this:r0_25 | -| ir.cpp:2163:36:2163:36 | Arg(this) | this:r0_27 | -| ir.cpp:2163:36:2163:36 | Arg(this) | this:r0_29 | -| ir.cpp:2163:36:2163:36 | Arg(this) | this:r2163_40 | -| ir.cpp:2163:36:2163:36 | CallTarget | func:r2163_17 | -| ir.cpp:2163:36:2163:36 | CallTarget | func:r2163_25 | -| ir.cpp:2163:36:2163:36 | CallTarget | func:r2163_33 | -| ir.cpp:2163:36:2163:36 | CallTarget | func:r2163_41 | -| ir.cpp:2163:36:2163:36 | CallTarget | func:r2163_51 | -| ir.cpp:2163:36:2163:36 | ChiPartial | partial:m2163_19 | -| ir.cpp:2163:36:2163:36 | ChiPartial | partial:m2163_27 | -| ir.cpp:2163:36:2163:36 | ChiPartial | partial:m2163_37 | -| ir.cpp:2163:36:2163:36 | ChiPartial | partial:m2163_43 | -| ir.cpp:2163:36:2163:36 | ChiPartial | partial:m2163_46 | -| ir.cpp:2163:36:2163:36 | ChiPartial | partial:m2163_53 | -| ir.cpp:2163:36:2163:36 | ChiTotal | total:m2163_7 | -| ir.cpp:2163:36:2163:36 | ChiTotal | total:m2163_20 | -| ir.cpp:2163:36:2163:36 | ChiTotal | total:m2163_30 | -| ir.cpp:2163:36:2163:36 | ChiTotal | total:m2163_31 | -| ir.cpp:2163:36:2163:36 | ChiTotal | total:m2163_38 | -| ir.cpp:2163:36:2163:36 | ChiTotal | total:m2163_54 | -| ir.cpp:2163:36:2163:36 | Condition | r2163_36 | -| ir.cpp:2163:36:2163:36 | Load | m2163_13 | -| ir.cpp:2163:36:2163:36 | Load | m2163_13 | -| ir.cpp:2163:36:2163:36 | Load | m2163_29 | -| ir.cpp:2163:36:2163:36 | Phi | from 15:m2163_21 | -| ir.cpp:2163:36:2163:36 | Phi | from 15:~m2163_28 | -| ir.cpp:2163:36:2163:36 | Phi | from 17:m2163_47 | -| ir.cpp:2163:36:2163:36 | Phi | from 17:~m2163_44 | -| ir.cpp:2163:36:2163:36 | SideEffect | m2163_30 | -| ir.cpp:2163:36:2163:36 | SideEffect | ~m2163_7 | -| ir.cpp:2163:36:2163:36 | SideEffect | ~m2163_20 | -| ir.cpp:2163:36:2163:36 | SideEffect | ~m2163_31 | -| ir.cpp:2163:36:2163:36 | SideEffect | ~m2163_38 | -| ir.cpp:2163:36:2163:36 | SideEffect | ~m2163_54 | -| ir.cpp:2163:36:2163:36 | StoreValue | r2163_18 | -| ir.cpp:2163:36:2163:36 | StoreValue | r2163_26 | -| ir.cpp:2163:36:2163:36 | Unary | r2163_16 | -| ir.cpp:2163:36:2163:36 | Unary | r2163_24 | -| ir.cpp:2163:36:2163:36 | Unary | r2163_32 | -| ir.cpp:2163:36:2163:36 | Unary | r2163_42 | -| ir.cpp:2163:36:2163:36 | Unary | r2163_50 | -| ir.cpp:2163:36:2163:37 | StoreValue | r2163_12 | -| ir.cpp:2163:36:2163:37 | Unary | r2163_11 | -| ir.cpp:2163:36:2163:38 | Load | ~m2163_54 | -| ir.cpp:2163:36:2163:38 | StoreValue | r2163_55 | -| ir.cpp:2164:11:2164:11 | Address | &:r2164_1 | -| ir.cpp:2164:11:2164:11 | Left | r2164_2 | -| ir.cpp:2164:11:2164:11 | Load | m2163_56 | -| ir.cpp:2164:11:2164:16 | Condition | r2164_4 | -| ir.cpp:2164:16:2164:16 | Right | r2164_3 | -| ir.cpp:2168:5:2168:5 | Address | &:r2168_14 | -| ir.cpp:2168:5:2168:5 | Address | &:r2168_18 | -| ir.cpp:2168:5:2168:5 | Address | &:r2168_26 | -| ir.cpp:2168:37:2168:38 | Address | &:r2168_1 | -| ir.cpp:2168:37:2168:38 | Address | &:r2168_1 | -| ir.cpp:2168:37:2168:38 | Arg(this) | this:r2168_1 | -| ir.cpp:2168:40:2168:40 | Address | &:r2168_4 | -| ir.cpp:2168:40:2168:40 | Address | &:r2168_4 | -| ir.cpp:2168:40:2168:40 | Address | &:r2168_5 | -| ir.cpp:2168:40:2168:40 | Arg(0) | 0:r2168_8 | -| ir.cpp:2168:40:2168:40 | Load | m2153_8 | -| ir.cpp:2168:40:2168:40 | Load | m2168_7 | -| ir.cpp:2168:40:2168:40 | StoreValue | r2168_6 | -| ir.cpp:2168:40:2168:41 | CallTarget | func:r2168_3 | -| ir.cpp:2168:40:2168:41 | ChiPartial | partial:m2168_10 | -| ir.cpp:2168:40:2168:41 | ChiPartial | partial:m2168_12 | -| ir.cpp:2168:40:2168:41 | ChiTotal | total:m2163_38 | -| ir.cpp:2168:40:2168:41 | ChiTotal | total:m2168_2 | -| ir.cpp:2168:40:2168:41 | SideEffect | ~m2163_38 | -| ir.cpp:2168:64:2168:64 | Address | &:r2168_44 | -| ir.cpp:2168:64:2168:64 | Address | &:r2168_52 | -| ir.cpp:2168:64:2168:64 | Address | &:r2168_52 | -| ir.cpp:2168:64:2168:64 | Arg(this) | this:r2168_52 | -| ir.cpp:2168:64:2168:64 | CallTarget | func:r2168_53 | -| ir.cpp:2168:64:2168:64 | ChiPartial | partial:m2168_55 | -| ir.cpp:2168:64:2168:64 | ChiPartial | partial:m2168_58 | -| ir.cpp:2168:64:2168:64 | ChiTotal | total:m2168_51 | -| ir.cpp:2168:64:2168:64 | ChiTotal | total:m2171_13 | -| ir.cpp:2168:64:2168:64 | SideEffect | m2168_51 | -| ir.cpp:2168:64:2168:64 | SideEffect | ~m2171_13 | -| ir.cpp:2168:68:2168:68 | Address | &:r2168_19 | -| ir.cpp:2168:68:2168:68 | Address | &:r2168_27 | -| ir.cpp:2168:68:2168:68 | Address | &:r2168_38 | -| ir.cpp:2168:68:2168:68 | Address | &:r2168_47 | -| ir.cpp:2168:68:2168:68 | Address | &:r2168_60 | -| ir.cpp:2168:68:2168:68 | Address | &:r2168_60 | -| ir.cpp:2168:68:2168:68 | Arg(0) | 0:r2168_39 | -| ir.cpp:2168:68:2168:68 | Arg(this) | this:r0_32 | -| ir.cpp:2168:68:2168:68 | Arg(this) | this:r0_35 | -| ir.cpp:2168:68:2168:68 | Arg(this) | this:r0_37 | -| ir.cpp:2168:68:2168:68 | Arg(this) | this:r0_39 | -| ir.cpp:2168:68:2168:68 | Arg(this) | this:r2168_60 | -| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_21 | -| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_29 | -| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_37 | -| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_46 | -| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_61 | -| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_23 | -| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_31 | -| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_41 | -| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_48 | -| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_63 | -| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_66 | -| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_11 | -| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_24 | -| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_34 | -| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_35 | -| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_42 | -| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_56 | -| ir.cpp:2168:68:2168:68 | Condition | r2168_40 | -| ir.cpp:2168:68:2168:68 | Load | m2168_17 | -| ir.cpp:2168:68:2168:68 | Load | m2168_17 | -| ir.cpp:2168:68:2168:68 | Load | m2168_33 | -| ir.cpp:2168:68:2168:68 | Phi | from 20:m2168_25 | -| ir.cpp:2168:68:2168:68 | Phi | from 20:~m2168_32 | -| ir.cpp:2168:68:2168:68 | Phi | from 22:m2168_67 | -| ir.cpp:2168:68:2168:68 | Phi | from 22:~m2168_64 | -| ir.cpp:2168:68:2168:68 | SideEffect | m2168_34 | -| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_11 | -| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_24 | -| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_35 | -| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_42 | -| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_56 | -| ir.cpp:2168:68:2168:68 | StoreValue | r2168_22 | -| ir.cpp:2168:68:2168:68 | StoreValue | r2168_30 | -| ir.cpp:2168:68:2168:68 | Unary | r2168_20 | -| ir.cpp:2168:68:2168:68 | Unary | r2168_28 | -| ir.cpp:2168:68:2168:68 | Unary | r2168_36 | -| ir.cpp:2168:68:2168:68 | Unary | r2168_45 | -| ir.cpp:2168:68:2168:68 | Unary | r2168_62 | -| ir.cpp:2168:68:2168:69 | StoreValue | r2168_16 | -| ir.cpp:2168:68:2168:69 | Unary | r2168_15 | -| ir.cpp:2168:68:2168:70 | Load | ~m2168_49 | -| ir.cpp:2168:68:2168:70 | StoreValue | r2168_50 | -| ir.cpp:2169:27:2169:28 | Address | &:r2169_1 | -| ir.cpp:2169:27:2169:28 | Address | &:r2169_1 | -| ir.cpp:2169:27:2169:28 | Arg(this) | this:r2169_1 | -| ir.cpp:2169:27:2169:28 | CallTarget | func:r2169_3 | -| ir.cpp:2169:27:2169:28 | ChiPartial | partial:m2169_5 | -| ir.cpp:2169:27:2169:28 | ChiPartial | partial:m2169_7 | -| ir.cpp:2169:27:2169:28 | ChiTotal | total:m2168_49 | -| ir.cpp:2169:27:2169:28 | ChiTotal | total:m2169_2 | -| ir.cpp:2169:27:2169:28 | SideEffect | ~m2168_49 | -| ir.cpp:2170:27:2170:28 | Address | &:r2170_1 | -| ir.cpp:2170:27:2170:28 | Address | &:r2170_1 | -| ir.cpp:2170:27:2170:28 | Arg(this) | this:r2170_1 | -| ir.cpp:2170:27:2170:28 | CallTarget | func:r2170_3 | -| ir.cpp:2170:27:2170:28 | ChiPartial | partial:m2170_5 | -| ir.cpp:2170:27:2170:28 | ChiPartial | partial:m2170_7 | -| ir.cpp:2170:27:2170:28 | ChiTotal | total:m2169_6 | -| ir.cpp:2170:27:2170:28 | ChiTotal | total:m2170_2 | -| ir.cpp:2170:27:2170:28 | SideEffect | ~m2169_6 | -| ir.cpp:2171:5:2171:5 | Address | &:r2171_1 | -| ir.cpp:2171:5:2171:5 | Address | &:r2171_1 | -| ir.cpp:2171:5:2171:5 | Address | &:r2171_9 | -| ir.cpp:2171:5:2171:5 | Address | &:r2171_9 | -| ir.cpp:2171:5:2171:5 | Arg(this) | this:r2171_1 | -| ir.cpp:2171:5:2171:5 | Arg(this) | this:r2171_9 | -| ir.cpp:2171:5:2171:5 | CallTarget | func:r2171_2 | -| ir.cpp:2171:5:2171:5 | CallTarget | func:r2171_10 | -| ir.cpp:2171:5:2171:5 | ChiPartial | partial:m2171_4 | -| ir.cpp:2171:5:2171:5 | ChiPartial | partial:m2171_7 | -| ir.cpp:2171:5:2171:5 | ChiPartial | partial:m2171_12 | -| ir.cpp:2171:5:2171:5 | ChiPartial | partial:m2171_15 | -| ir.cpp:2171:5:2171:5 | ChiTotal | total:m2169_8 | -| ir.cpp:2171:5:2171:5 | ChiTotal | total:m2170_6 | -| ir.cpp:2171:5:2171:5 | ChiTotal | total:m2170_8 | -| ir.cpp:2171:5:2171:5 | ChiTotal | total:m2171_5 | -| ir.cpp:2171:5:2171:5 | SideEffect | m2169_8 | -| ir.cpp:2171:5:2171:5 | SideEffect | m2170_8 | -| ir.cpp:2171:5:2171:5 | SideEffect | ~m2170_6 | -| ir.cpp:2171:5:2171:5 | SideEffect | ~m2171_5 | -| ir.cpp:2172:1:2172:1 | Address | &:r2172_1 | -| ir.cpp:2172:1:2172:1 | Address | &:r2172_1 | -| ir.cpp:2172:1:2172:1 | Address | &:r2172_9 | -| ir.cpp:2172:1:2172:1 | Address | &:r2172_9 | -| ir.cpp:2172:1:2172:1 | Address | &:r2172_18 | -| ir.cpp:2172:1:2172:1 | Address | &:r2172_18 | -| ir.cpp:2172:1:2172:1 | Arg(this) | this:r2172_1 | -| ir.cpp:2172:1:2172:1 | Arg(this) | this:r2172_9 | -| ir.cpp:2172:1:2172:1 | Arg(this) | this:r2172_18 | -| ir.cpp:2172:1:2172:1 | CallTarget | func:r2172_2 | -| ir.cpp:2172:1:2172:1 | CallTarget | func:r2172_10 | -| ir.cpp:2172:1:2172:1 | CallTarget | func:r2172_19 | -| ir.cpp:2172:1:2172:1 | ChiPartial | partial:m2172_4 | -| ir.cpp:2172:1:2172:1 | ChiPartial | partial:m2172_7 | -| ir.cpp:2172:1:2172:1 | ChiPartial | partial:m2172_12 | -| ir.cpp:2172:1:2172:1 | ChiPartial | partial:m2172_15 | -| ir.cpp:2172:1:2172:1 | ChiPartial | partial:m2172_21 | -| ir.cpp:2172:1:2172:1 | ChiPartial | partial:m2172_24 | -| ir.cpp:2172:1:2172:1 | ChiTotal | total:m2153_8 | -| ir.cpp:2172:1:2172:1 | ChiTotal | total:m2153_8 | -| ir.cpp:2172:1:2172:1 | ChiTotal | total:m2153_8 | -| ir.cpp:2172:1:2172:1 | ChiTotal | total:m2157_64 | -| ir.cpp:2172:1:2172:1 | ChiTotal | total:m2163_61 | -| ir.cpp:2172:1:2172:1 | ChiTotal | total:m2168_42 | -| ir.cpp:2172:1:2172:1 | SideEffect | m2153_8 | -| ir.cpp:2172:1:2172:1 | SideEffect | m2153_8 | -| ir.cpp:2172:1:2172:1 | SideEffect | m2153_8 | -| ir.cpp:2172:1:2172:1 | SideEffect | ~m2157_64 | -| ir.cpp:2172:1:2172:1 | SideEffect | ~m2163_61 | -| ir.cpp:2172:1:2172:1 | SideEffect | ~m2168_42 | -| ir.cpp:2174:6:2174:38 | ChiPartial | partial:m2174_3 | -| ir.cpp:2174:6:2174:38 | ChiTotal | total:m2174_2 | -| ir.cpp:2174:6:2174:38 | SideEffect | ~m2177_7 | -| ir.cpp:2175:25:2175:25 | Address | &:r2175_1 | -| ir.cpp:2175:25:2175:25 | Address | &:r2175_1 | -| ir.cpp:2175:25:2175:25 | Arg(this) | this:r2175_1 | -| ir.cpp:2175:25:2175:25 | CallTarget | func:r2175_3 | -| ir.cpp:2175:25:2175:25 | ChiPartial | partial:m2175_5 | -| ir.cpp:2175:25:2175:25 | ChiPartial | partial:m2175_7 | -| ir.cpp:2175:25:2175:25 | ChiTotal | total:m2174_4 | -| ir.cpp:2175:25:2175:25 | ChiTotal | total:m2175_2 | -| ir.cpp:2175:25:2175:25 | SideEffect | ~m2174_4 | -| ir.cpp:2176:32:2176:32 | Address | &:r2176_1 | -| ir.cpp:2176:32:2176:32 | Address | &:r2176_1 | -| ir.cpp:2176:32:2176:32 | Address | &:r2176_4 | -| ir.cpp:2176:32:2176:32 | Arg(this) | this:r2176_4 | -| ir.cpp:2176:32:2176:32 | ChiPartial | partial:m2176_6 | -| ir.cpp:2176:32:2176:32 | ChiTotal | total:m0_6 | -| ir.cpp:2176:32:2176:32 | Condition | r2176_2 | -| ir.cpp:2176:32:2176:32 | Load | ~m2175_6 | -| ir.cpp:2176:32:2176:32 | StoreValue | r2176_5 | -| ir.cpp:2177:1:2177:1 | Address | &:r2177_3 | -| ir.cpp:2177:1:2177:1 | Address | &:r2177_3 | -| ir.cpp:2177:1:2177:1 | Arg(this) | this:r2177_3 | -| ir.cpp:2177:1:2177:1 | CallTarget | func:r2177_4 | -| ir.cpp:2177:1:2177:1 | ChiPartial | partial:m2177_6 | -| ir.cpp:2177:1:2177:1 | ChiPartial | partial:m2177_9 | -| ir.cpp:2177:1:2177:1 | ChiTotal | total:m2175_8 | -| ir.cpp:2177:1:2177:1 | ChiTotal | total:m2177_1 | -| ir.cpp:2177:1:2177:1 | Phi | from 0:~m2175_6 | -| ir.cpp:2177:1:2177:1 | Phi | from 1:~m2176_7 | -| ir.cpp:2177:1:2177:1 | SideEffect | m2175_8 | -| ir.cpp:2177:1:2177:1 | SideEffect | ~m2177_1 | -| ir.cpp:2179:6:2179:38 | ChiPartial | partial:m2179_3 | -| ir.cpp:2179:6:2179:38 | ChiTotal | total:m2179_2 | -| ir.cpp:2179:6:2179:38 | SideEffect | ~m2182_6 | -| ir.cpp:2180:32:2180:32 | Address | &:r2180_1 | -| ir.cpp:2180:32:2180:32 | Address | &:r2180_1 | -| ir.cpp:2180:32:2180:32 | Address | &:r2180_4 | -| ir.cpp:2180:32:2180:32 | Arg(this) | this:r2180_4 | -| ir.cpp:2180:32:2180:32 | ChiPartial | partial:m2180_6 | -| ir.cpp:2180:32:2180:32 | ChiTotal | total:m0_6 | -| ir.cpp:2180:32:2180:32 | Condition | r2180_2 | -| ir.cpp:2180:32:2180:32 | Load | ~m2179_3 | -| ir.cpp:2180:32:2180:32 | StoreValue | r2180_5 | -| ir.cpp:2181:25:2181:25 | Address | &:r2181_2 | -| ir.cpp:2181:25:2181:25 | Address | &:r2181_2 | -| ir.cpp:2181:25:2181:25 | Arg(this) | this:r2181_2 | -| ir.cpp:2181:25:2181:25 | CallTarget | func:r2181_4 | -| ir.cpp:2181:25:2181:25 | ChiPartial | partial:m2181_6 | -| ir.cpp:2181:25:2181:25 | ChiPartial | partial:m2181_8 | -| ir.cpp:2181:25:2181:25 | ChiTotal | total:m2181_1 | -| ir.cpp:2181:25:2181:25 | ChiTotal | total:m2181_3 | -| ir.cpp:2181:25:2181:25 | Phi | from 0:~m2179_4 | -| ir.cpp:2181:25:2181:25 | Phi | from 1:~m2180_7 | -| ir.cpp:2181:25:2181:25 | SideEffect | ~m2181_1 | -| ir.cpp:2182:1:2182:1 | Address | &:r2182_2 | -| ir.cpp:2182:1:2182:1 | Address | &:r2182_2 | -| ir.cpp:2182:1:2182:1 | Arg(this) | this:r2182_2 | -| ir.cpp:2182:1:2182:1 | CallTarget | func:r2182_3 | -| ir.cpp:2182:1:2182:1 | ChiPartial | partial:m2182_5 | -| ir.cpp:2182:1:2182:1 | ChiPartial | partial:m2182_8 | -| ir.cpp:2182:1:2182:1 | ChiTotal | total:m2181_7 | -| ir.cpp:2182:1:2182:1 | ChiTotal | total:m2181_9 | -| ir.cpp:2182:1:2182:1 | SideEffect | m2181_9 | -| ir.cpp:2182:1:2182:1 | SideEffect | ~m2181_7 | -| ir.cpp:2184:6:2184:38 | ChiPartial | partial:m2184_3 | -| ir.cpp:2184:6:2184:38 | ChiTotal | total:m2184_2 | -| ir.cpp:2184:6:2184:38 | SideEffect | ~m2188_15 | -| ir.cpp:2185:25:2185:25 | Address | &:r2185_1 | -| ir.cpp:2185:25:2185:25 | Address | &:r2185_1 | -| ir.cpp:2185:25:2185:25 | Arg(this) | this:r2185_1 | -| ir.cpp:2185:25:2185:25 | CallTarget | func:r2185_3 | -| ir.cpp:2185:25:2185:25 | ChiPartial | partial:m2185_5 | -| ir.cpp:2185:25:2185:25 | ChiPartial | partial:m2185_7 | -| ir.cpp:2185:25:2185:25 | ChiTotal | total:m2184_4 | -| ir.cpp:2185:25:2185:25 | ChiTotal | total:m2185_2 | -| ir.cpp:2185:25:2185:25 | SideEffect | ~m2184_4 | -| ir.cpp:2186:25:2186:25 | Address | &:r2186_1 | -| ir.cpp:2186:25:2186:25 | Address | &:r2186_1 | -| ir.cpp:2186:25:2186:25 | Arg(this) | this:r2186_1 | -| ir.cpp:2186:25:2186:25 | CallTarget | func:r2186_3 | -| ir.cpp:2186:25:2186:25 | ChiPartial | partial:m2186_5 | -| ir.cpp:2186:25:2186:25 | ChiPartial | partial:m2186_7 | -| ir.cpp:2186:25:2186:25 | ChiTotal | total:m2185_6 | -| ir.cpp:2186:25:2186:25 | ChiTotal | total:m2186_2 | -| ir.cpp:2186:25:2186:25 | SideEffect | ~m2185_6 | -| ir.cpp:2187:32:2187:32 | Address | &:r2187_1 | -| ir.cpp:2187:32:2187:32 | Address | &:r2187_1 | -| ir.cpp:2187:32:2187:32 | Address | &:r2187_4 | -| ir.cpp:2187:32:2187:32 | Arg(this) | this:r2187_4 | -| ir.cpp:2187:32:2187:32 | ChiPartial | partial:m2187_6 | -| ir.cpp:2187:32:2187:32 | ChiTotal | total:m0_6 | -| ir.cpp:2187:32:2187:32 | Condition | r2187_2 | -| ir.cpp:2187:32:2187:32 | Load | ~m2186_6 | -| ir.cpp:2187:32:2187:32 | StoreValue | r2187_5 | -| ir.cpp:2188:1:2188:1 | Address | &:r2188_3 | -| ir.cpp:2188:1:2188:1 | Address | &:r2188_3 | -| ir.cpp:2188:1:2188:1 | Address | &:r2188_11 | -| ir.cpp:2188:1:2188:1 | Address | &:r2188_11 | -| ir.cpp:2188:1:2188:1 | Arg(this) | this:r2188_3 | -| ir.cpp:2188:1:2188:1 | Arg(this) | this:r2188_11 | -| ir.cpp:2188:1:2188:1 | CallTarget | func:r2188_4 | -| ir.cpp:2188:1:2188:1 | CallTarget | func:r2188_12 | -| ir.cpp:2188:1:2188:1 | ChiPartial | partial:m2188_6 | -| ir.cpp:2188:1:2188:1 | ChiPartial | partial:m2188_9 | -| ir.cpp:2188:1:2188:1 | ChiPartial | partial:m2188_14 | -| ir.cpp:2188:1:2188:1 | ChiPartial | partial:m2188_17 | -| ir.cpp:2188:1:2188:1 | ChiTotal | total:m2185_8 | -| ir.cpp:2188:1:2188:1 | ChiTotal | total:m2186_8 | -| ir.cpp:2188:1:2188:1 | ChiTotal | total:m2188_1 | -| ir.cpp:2188:1:2188:1 | ChiTotal | total:m2188_7 | -| ir.cpp:2188:1:2188:1 | Phi | from 0:~m2186_6 | -| ir.cpp:2188:1:2188:1 | Phi | from 1:~m2187_7 | -| ir.cpp:2188:1:2188:1 | SideEffect | m2185_8 | -| ir.cpp:2188:1:2188:1 | SideEffect | m2186_8 | -| ir.cpp:2188:1:2188:1 | SideEffect | ~m2188_1 | -| ir.cpp:2188:1:2188:1 | SideEffect | ~m2188_7 | -| ir.cpp:2190:28:2190:55 | Address | &:r2190_3 | -| ir.cpp:2190:28:2190:55 | Arg(this) | this:r2190_3 | -| ir.cpp:2190:28:2190:55 | CallTarget | func:r2190_4 | -| ir.cpp:2190:28:2190:55 | ChiPartial | partial:m2190_6 | -| ir.cpp:2190:28:2190:55 | ChiPartial | partial:m2190_8 | -| ir.cpp:2190:28:2190:55 | ChiTotal | total:m2190_2 | -| ir.cpp:2190:28:2190:55 | ChiTotal | total:m2190_7 | -| ir.cpp:2190:28:2190:55 | SideEffect | ~m2190_2 | -| ir.cpp:2190:28:2190:55 | SideEffect | ~m2190_9 | -| ir.cpp:2194:8:2194:8 | Address | &:r2194_16 | -| ir.cpp:2194:8:2194:8 | Address | &:r2194_16 | -| ir.cpp:2194:8:2194:8 | ChiPartial | partial:m2194_3 | -| ir.cpp:2194:8:2194:8 | ChiPartial | partial:m2194_3 | -| ir.cpp:2194:8:2194:8 | ChiTotal | total:m2194_2 | -| ir.cpp:2194:8:2194:8 | ChiTotal | total:m2194_2 | -| ir.cpp:2194:8:2194:8 | Load | m2194_14 | -| ir.cpp:2194:8:2194:8 | Load | m2194_14 | -| ir.cpp:2194:8:2194:8 | SideEffect | m2194_3 | -| ir.cpp:2194:8:2194:8 | SideEffect | m2194_3 | -| ir.cpp:2194:15:2194:15 | Address | &:r2194_5 | -| ir.cpp:2194:15:2194:15 | Address | &:r2194_5 | -| ir.cpp:2194:15:2194:15 | Address | &:r2194_5 | -| ir.cpp:2194:15:2194:15 | Address | &:r2194_5 | -| ir.cpp:2194:15:2194:15 | Address | &:r2194_7 | -| ir.cpp:2194:15:2194:15 | Address | &:r2194_7 | -| ir.cpp:2194:15:2194:15 | Address | &:r2194_7 | -| ir.cpp:2194:15:2194:15 | Address | &:r2194_7 | -| ir.cpp:2194:15:2194:15 | Load | m2194_6 | -| ir.cpp:2194:15:2194:15 | Load | m2194_6 | -| ir.cpp:2194:15:2194:15 | SideEffect | m2194_8 | -| ir.cpp:2194:15:2194:15 | SideEffect | m2194_8 | -| ir.cpp:2194:20:2194:28 | Address | &:r2194_9 | -| ir.cpp:2194:20:2194:28 | Address | &:r2194_9 | -| ir.cpp:2194:27:2194:27 | Address | &:r2194_10 | -| ir.cpp:2194:27:2194:27 | Address | &:r2194_10 | -| ir.cpp:2194:27:2194:27 | Load | m2194_6 | -| ir.cpp:2194:27:2194:27 | Load | m2194_6 | -| ir.cpp:2194:27:2194:27 | StoreValue | r2194_13 | -| ir.cpp:2194:27:2194:27 | StoreValue | r2194_13 | -| ir.cpp:2194:27:2194:27 | Unary | r2194_11 | -| ir.cpp:2194:27:2194:27 | Unary | r2194_11 | -| ir.cpp:2194:27:2194:27 | Unary | r2194_12 | -| ir.cpp:2194:27:2194:27 | Unary | r2194_12 | -| ir.cpp:2197:10:2197:10 | ChiPartial | partial:m2197_3 | -| ir.cpp:2197:10:2197:10 | ChiPartial | partial:m2197_3 | -| ir.cpp:2197:10:2197:10 | ChiTotal | total:m2197_2 | -| ir.cpp:2197:10:2197:10 | ChiTotal | total:m2197_2 | -| ir.cpp:2197:10:2197:10 | SideEffect | ~m2198_8 | -| ir.cpp:2197:10:2197:10 | SideEffect | ~m2198_16 | -| ir.cpp:2197:29:2197:29 | Address | &:r2197_5 | -| ir.cpp:2197:29:2197:29 | Address | &:r2197_5 | -| ir.cpp:2197:29:2197:29 | Address | &:r2197_5 | -| ir.cpp:2197:29:2197:29 | Address | &:r2197_5 | -| ir.cpp:2197:29:2197:29 | Address | &:r2197_7 | -| ir.cpp:2197:29:2197:29 | Address | &:r2197_7 | -| ir.cpp:2197:29:2197:29 | Address | &:r2197_7 | -| ir.cpp:2197:29:2197:29 | Address | &:r2197_7 | -| ir.cpp:2197:29:2197:29 | Load | m2197_6 | -| ir.cpp:2197:29:2197:29 | Load | m2197_6 | -| ir.cpp:2197:29:2197:29 | SideEffect | m2198_11 | -| ir.cpp:2197:29:2197:29 | SideEffect | m2198_19 | -| ir.cpp:2198:9:2198:11 | CallTarget | func:r2198_1 | -| ir.cpp:2198:9:2198:11 | CallTarget | func:r2198_1 | -| ir.cpp:2198:9:2198:11 | ChiPartial | partial:m2198_7 | -| ir.cpp:2198:9:2198:11 | ChiPartial | partial:m2198_7 | -| ir.cpp:2198:9:2198:11 | ChiTotal | total:m2197_4 | -| ir.cpp:2198:9:2198:11 | ChiTotal | total:m2197_4 | -| ir.cpp:2198:9:2198:11 | SideEffect | ~m2197_4 | -| ir.cpp:2198:9:2198:11 | SideEffect | ~m2197_4 | -| ir.cpp:2198:9:2198:11 | Unary | r2198_6 | -| ir.cpp:2198:9:2198:11 | Unary | r2198_6 | -| ir.cpp:2198:12:2198:15 | Address | &:r2198_12 | -| ir.cpp:2198:12:2198:15 | Address | &:r2198_12 | -| ir.cpp:2198:12:2198:15 | ChiPartial | partial:m2198_18 | -| ir.cpp:2198:12:2198:15 | ChiTotal | total:m2198_11 | -| ir.cpp:2198:12:2198:15 | SideEffect | ~m2198_11 | -| ir.cpp:2198:13:2198:13 | Address | &:r2198_2 | -| ir.cpp:2198:13:2198:13 | Address | &:r2198_2 | -| ir.cpp:2198:13:2198:13 | Address | &:r2198_5 | -| ir.cpp:2198:13:2198:13 | Address | &:r2198_5 | -| ir.cpp:2198:13:2198:13 | Address | &:r2198_5 | -| ir.cpp:2198:13:2198:13 | Address | &:r2198_5 | -| ir.cpp:2198:13:2198:13 | Arg(0) | 0:r2198_5 | -| ir.cpp:2198:13:2198:13 | Arg(0) | 0:r2198_5 | -| ir.cpp:2198:13:2198:13 | ChiPartial | partial:m2198_10 | -| ir.cpp:2198:13:2198:13 | ChiPartial | partial:m2198_10 | -| ir.cpp:2198:13:2198:13 | ChiTotal | total:m2197_8 | -| ir.cpp:2198:13:2198:13 | ChiTotal | total:m2197_8 | -| ir.cpp:2198:13:2198:13 | Load | m2197_6 | -| ir.cpp:2198:13:2198:13 | Load | m2197_6 | -| ir.cpp:2198:13:2198:13 | SideEffect | ~m2197_8 | -| ir.cpp:2198:13:2198:13 | SideEffect | ~m2197_8 | -| ir.cpp:2198:13:2198:13 | Unary | r2198_3 | -| ir.cpp:2198:13:2198:13 | Unary | r2198_3 | -| ir.cpp:2198:13:2198:13 | Unary | r2198_4 | -| ir.cpp:2198:13:2198:13 | Unary | r2198_4 | -| ir.cpp:2198:16:2198:17 | CallTarget | func:r2198_13 | -| ir.cpp:2198:16:2198:17 | ChiPartial | partial:m2198_15 | -| ir.cpp:2198:16:2198:17 | ChiTotal | total:m2198_8 | -| ir.cpp:2198:16:2198:17 | SideEffect | ~m2198_8 | -| ir.cpp:2201:10:2201:36 | ChiPartial | partial:m2201_3 | -| ir.cpp:2201:10:2201:36 | ChiTotal | total:m2201_2 | -| ir.cpp:2201:10:2201:36 | SideEffect | ~m2204_6 | -| ir.cpp:2202:29:2202:29 | Address | &:r2202_1 | -| ir.cpp:2202:29:2202:29 | Address | &:r2202_1 | -| ir.cpp:2202:29:2202:29 | Arg(this) | this:r2202_1 | -| ir.cpp:2202:29:2202:29 | CallTarget | func:r2202_3 | -| ir.cpp:2202:29:2202:29 | ChiPartial | partial:m2202_5 | -| ir.cpp:2202:29:2202:29 | ChiPartial | partial:m2202_7 | -| ir.cpp:2202:29:2202:29 | ChiTotal | total:m2201_4 | -| ir.cpp:2202:29:2202:29 | ChiTotal | total:m2202_2 | -| ir.cpp:2202:29:2202:29 | SideEffect | ~m2201_4 | -| ir.cpp:2203:9:2203:23 | CallTarget | func:r2203_1 | -| ir.cpp:2203:9:2203:23 | ChiPartial | partial:m2203_5 | -| ir.cpp:2203:9:2203:23 | ChiTotal | total:m2202_6 | -| ir.cpp:2203:9:2203:23 | SideEffect | ~m2202_6 | -| ir.cpp:2203:25:2203:25 | Address | &:r2203_3 | -| ir.cpp:2203:25:2203:25 | Address | &:r2203_3 | -| ir.cpp:2203:25:2203:25 | Arg(0) | 0:r2203_3 | -| ir.cpp:2203:25:2203:25 | ChiPartial | partial:m2203_8 | -| ir.cpp:2203:25:2203:25 | ChiTotal | total:m2202_8 | -| ir.cpp:2203:25:2203:25 | SideEffect | ~m2202_8 | -| ir.cpp:2203:25:2203:25 | Unary | r2203_2 | -| ir.cpp:2204:5:2204:5 | Address | &:r2204_2 | -| ir.cpp:2204:5:2204:5 | Address | &:r2204_2 | -| ir.cpp:2204:5:2204:5 | Arg(this) | this:r2204_2 | -| ir.cpp:2204:5:2204:5 | CallTarget | func:r2204_3 | -| ir.cpp:2204:5:2204:5 | ChiPartial | partial:m2204_5 | -| ir.cpp:2204:5:2204:5 | ChiPartial | partial:m2204_8 | -| ir.cpp:2204:5:2204:5 | ChiTotal | total:m2203_6 | -| ir.cpp:2204:5:2204:5 | ChiTotal | total:m2203_9 | -| ir.cpp:2204:5:2204:5 | SideEffect | m2203_9 | -| ir.cpp:2204:5:2204:5 | SideEffect | ~m2203_6 | -| ir.cpp:2206:10:2206:32 | ChiPartial | partial:m2206_3 | -| ir.cpp:2206:10:2206:32 | ChiTotal | total:m2206_2 | -| ir.cpp:2206:10:2206:32 | SideEffect | ~m2208_6 | -| ir.cpp:2207:13:2207:13 | Address | &:r2207_1 | -| ir.cpp:2208:9:2208:23 | CallTarget | func:r2208_1 | -| ir.cpp:2208:9:2208:23 | ChiPartial | partial:m2208_5 | -| ir.cpp:2208:9:2208:23 | ChiTotal | total:m2206_4 | -| ir.cpp:2208:9:2208:23 | SideEffect | ~m2206_4 | -| ir.cpp:2208:25:2208:25 | Address | &:r2208_3 | -| ir.cpp:2208:25:2208:25 | Address | &:r2208_3 | -| ir.cpp:2208:25:2208:25 | Arg(0) | 0:r2208_3 | -| ir.cpp:2208:25:2208:25 | ChiPartial | partial:m2208_8 | -| ir.cpp:2208:25:2208:25 | ChiTotal | total:m2207_2 | -| ir.cpp:2208:25:2208:25 | SideEffect | ~m2207_2 | -| ir.cpp:2208:25:2208:25 | Unary | r2208_2 | -| ir.cpp:2212:6:2212:24 | ChiPartial | partial:m2212_3 | -| ir.cpp:2212:6:2212:24 | ChiTotal | total:m2212_2 | -| ir.cpp:2212:6:2212:24 | Phi | from 2:~m2212_10 | -| ir.cpp:2212:6:2212:24 | Phi | from 6:~m2221_8 | -| ir.cpp:2212:6:2212:24 | Phi | from 9:~m2214_6 | -| ir.cpp:2212:6:2212:24 | Phi | from 10:~m2228_1 | -| ir.cpp:2212:6:2212:24 | SideEffect | ~m2212_7 | -| ir.cpp:2212:31:2212:31 | Address | &:r2212_5 | -| ir.cpp:2214:12:2214:12 | Address | &:r2214_1 | -| ir.cpp:2214:12:2214:12 | Address | &:r2214_1 | -| ir.cpp:2214:12:2214:12 | Arg(this) | this:r2214_1 | -| ir.cpp:2214:12:2214:12 | CallTarget | func:r2214_3 | -| ir.cpp:2214:12:2214:12 | ChiPartial | partial:m2214_5 | -| ir.cpp:2214:12:2214:12 | ChiPartial | partial:m2214_7 | -| ir.cpp:2214:12:2214:12 | ChiTotal | total:m2212_4 | -| ir.cpp:2214:12:2214:12 | ChiTotal | total:m2214_2 | -| ir.cpp:2214:12:2214:12 | SideEffect | ~m2212_4 | -| ir.cpp:2215:9:2215:9 | Address | &:r2215_1 | -| ir.cpp:2215:9:2215:9 | Condition | r2215_2 | -| ir.cpp:2215:9:2215:9 | Load | m2212_6 | -| ir.cpp:2216:7:2216:28 | Address | &:r2216_1 | -| ir.cpp:2216:7:2216:28 | Address | &:r2216_1 | -| ir.cpp:2216:7:2216:28 | Load | m2216_4 | -| ir.cpp:2216:13:2216:28 | StoreValue | r2216_3 | -| ir.cpp:2216:13:2216:28 | Unary | r2216_2 | -| ir.cpp:2218:12:2218:13 | Address | &:r2218_1 | -| ir.cpp:2218:12:2218:13 | Address | &:r2218_1 | -| ir.cpp:2218:12:2218:13 | Arg(this) | this:r2218_1 | -| ir.cpp:2218:12:2218:13 | CallTarget | func:r2218_3 | -| ir.cpp:2218:12:2218:13 | ChiPartial | partial:m2218_5 | -| ir.cpp:2218:12:2218:13 | ChiPartial | partial:m2218_7 | -| ir.cpp:2218:12:2218:13 | ChiTotal | total:m2214_6 | -| ir.cpp:2218:12:2218:13 | ChiTotal | total:m2218_2 | -| ir.cpp:2218:12:2218:13 | SideEffect | ~m2214_6 | -| ir.cpp:2219:3:2219:3 | Address | &:r2219_1 | -| ir.cpp:2219:3:2219:3 | Address | &:r2219_1 | -| ir.cpp:2219:3:2219:3 | Address | &:r2219_9 | -| ir.cpp:2219:3:2219:3 | Address | &:r2219_9 | -| ir.cpp:2219:3:2219:3 | Arg(this) | this:r2219_1 | -| ir.cpp:2219:3:2219:3 | Arg(this) | this:r2219_9 | -| ir.cpp:2219:3:2219:3 | CallTarget | func:r2219_2 | -| ir.cpp:2219:3:2219:3 | CallTarget | func:r2219_10 | -| ir.cpp:2219:3:2219:3 | ChiPartial | partial:m2219_4 | -| ir.cpp:2219:3:2219:3 | ChiPartial | partial:m2219_7 | -| ir.cpp:2219:3:2219:3 | ChiPartial | partial:m2219_12 | -| ir.cpp:2219:3:2219:3 | ChiPartial | partial:m2219_15 | -| ir.cpp:2219:3:2219:3 | ChiTotal | total:m2214_8 | -| ir.cpp:2219:3:2219:3 | ChiTotal | total:m2218_6 | -| ir.cpp:2219:3:2219:3 | ChiTotal | total:m2218_8 | -| ir.cpp:2219:3:2219:3 | ChiTotal | total:m2219_5 | -| ir.cpp:2219:3:2219:3 | SideEffect | m2214_8 | -| ir.cpp:2219:3:2219:3 | SideEffect | m2218_8 | -| ir.cpp:2219:3:2219:3 | SideEffect | ~m2218_6 | -| ir.cpp:2219:3:2219:3 | SideEffect | ~m2219_5 | -| ir.cpp:2220:22:2220:22 | Address | &:r2220_2 | -| ir.cpp:2220:22:2220:22 | Address | &:r2220_2 | -| ir.cpp:2220:22:2220:22 | Address | &:r2220_4 | -| ir.cpp:2220:22:2220:22 | Load | m2220_3 | -| ir.cpp:2221:5:2221:19 | Address | &:r2221_1 | -| ir.cpp:2221:5:2221:19 | Address | &:r2221_1 | -| ir.cpp:2221:5:2221:19 | Address | &:r2221_1 | -| ir.cpp:2221:5:2221:19 | Arg(this) | this:r2221_1 | -| ir.cpp:2221:5:2221:19 | CallTarget | func:r2221_3 | -| ir.cpp:2221:5:2221:19 | ChiPartial | partial:m2221_7 | -| ir.cpp:2221:5:2221:19 | ChiPartial | partial:m2221_10 | -| ir.cpp:2221:5:2221:19 | ChiTotal | total:m2214_6 | -| ir.cpp:2221:5:2221:19 | ChiTotal | total:m2221_2 | -| ir.cpp:2221:5:2221:19 | Load | m2221_11 | -| ir.cpp:2221:5:2221:19 | SideEffect | ~m2214_6 | -| ir.cpp:2221:18:2221:18 | Address | &:r2221_4 | -| ir.cpp:2221:18:2221:18 | Address | &:r2221_5 | -| ir.cpp:2221:18:2221:18 | Arg(0) | 0:r2221_5 | -| ir.cpp:2221:18:2221:18 | Load | m2220_3 | -| ir.cpp:2221:18:2221:18 | SideEffect | ~m2220_5 | -| ir.cpp:2223:24:2223:24 | Address | &:r2223_2 | -| ir.cpp:2223:24:2223:24 | Address | &:r2223_2 | -| ir.cpp:2223:24:2223:24 | Address | &:r2223_4 | -| ir.cpp:2223:24:2223:24 | Load | m2223_3 | -| ir.cpp:2228:1:2228:1 | Phi | from 4:~m2219_13 | -| ir.cpp:2228:1:2228:1 | Phi | from 8:~m2214_6 | -| ir.cpp:2230:6:2230:18 | ChiPartial | partial:m2230_3 | -| ir.cpp:2230:6:2230:18 | ChiTotal | total:m2230_2 | -| ir.cpp:2230:6:2230:18 | SideEffect | ~m2238_14 | -| ir.cpp:2230:25:2230:25 | Address | &:r2230_5 | -| ir.cpp:2231:12:2231:13 | Address | &:r2231_1 | -| ir.cpp:2231:12:2231:13 | Address | &:r2231_1 | -| ir.cpp:2231:12:2231:13 | Arg(this) | this:r2231_1 | -| ir.cpp:2231:12:2231:13 | CallTarget | func:r2231_3 | -| ir.cpp:2231:12:2231:13 | ChiPartial | partial:m2231_5 | -| ir.cpp:2231:12:2231:13 | ChiPartial | partial:m2231_7 | -| ir.cpp:2231:12:2231:13 | ChiTotal | total:m2230_4 | -| ir.cpp:2231:12:2231:13 | ChiTotal | total:m2231_2 | -| ir.cpp:2231:12:2231:13 | SideEffect | ~m2230_4 | -| ir.cpp:2232:8:2232:8 | Address | &:r2232_1 | -| ir.cpp:2232:8:2232:8 | Condition | r2232_2 | -| ir.cpp:2232:8:2232:8 | Load | m2230_6 | -| ir.cpp:2233:16:2233:17 | Address | &:r2233_1 | -| ir.cpp:2233:16:2233:17 | Address | &:r2233_1 | -| ir.cpp:2233:16:2233:17 | Arg(this) | this:r2233_1 | -| ir.cpp:2233:16:2233:17 | CallTarget | func:r2233_3 | -| ir.cpp:2233:16:2233:17 | ChiPartial | partial:m2233_5 | -| ir.cpp:2233:16:2233:17 | ChiPartial | partial:m2233_7 | -| ir.cpp:2233:16:2233:17 | ChiTotal | total:m2231_6 | -| ir.cpp:2233:16:2233:17 | ChiTotal | total:m2233_2 | -| ir.cpp:2233:16:2233:17 | SideEffect | ~m2231_6 | -| ir.cpp:2234:5:2234:5 | Address | &:r2234_1 | -| ir.cpp:2234:5:2234:5 | Address | &:r2234_1 | -| ir.cpp:2234:5:2234:5 | Arg(this) | this:r2234_1 | -| ir.cpp:2234:5:2234:5 | CallTarget | func:r2234_2 | -| ir.cpp:2234:5:2234:5 | ChiPartial | partial:m2234_4 | -| ir.cpp:2234:5:2234:5 | ChiPartial | partial:m2234_7 | -| ir.cpp:2234:5:2234:5 | ChiTotal | total:m2233_6 | -| ir.cpp:2234:5:2234:5 | ChiTotal | total:m2233_8 | -| ir.cpp:2234:5:2234:5 | SideEffect | m2233_8 | -| ir.cpp:2234:5:2234:5 | SideEffect | ~m2233_6 | -| ir.cpp:2235:16:2235:17 | Address | &:r2235_1 | -| ir.cpp:2235:16:2235:17 | Address | &:r2235_1 | -| ir.cpp:2235:16:2235:17 | Arg(this) | this:r2235_1 | -| ir.cpp:2235:16:2235:17 | CallTarget | func:r2235_3 | -| ir.cpp:2235:16:2235:17 | ChiPartial | partial:m2235_5 | -| ir.cpp:2235:16:2235:17 | ChiPartial | partial:m2235_7 | -| ir.cpp:2235:16:2235:17 | ChiTotal | total:m2231_6 | -| ir.cpp:2235:16:2235:17 | ChiTotal | total:m2235_2 | -| ir.cpp:2235:16:2235:17 | SideEffect | ~m2231_6 | -| ir.cpp:2236:5:2236:5 | Address | &:r2236_1 | -| ir.cpp:2236:5:2236:5 | Address | &:r2236_1 | -| ir.cpp:2236:5:2236:5 | Arg(this) | this:r2236_1 | -| ir.cpp:2236:5:2236:5 | CallTarget | func:r2236_2 | -| ir.cpp:2236:5:2236:5 | ChiPartial | partial:m2236_4 | -| ir.cpp:2236:5:2236:5 | ChiPartial | partial:m2236_7 | -| ir.cpp:2236:5:2236:5 | ChiTotal | total:m2235_6 | -| ir.cpp:2236:5:2236:5 | ChiTotal | total:m2235_8 | -| ir.cpp:2236:5:2236:5 | SideEffect | m2235_8 | -| ir.cpp:2236:5:2236:5 | SideEffect | ~m2235_6 | -| ir.cpp:2237:12:2237:13 | Address | &:r2237_2 | -| ir.cpp:2237:12:2237:13 | Address | &:r2237_2 | -| ir.cpp:2237:12:2237:13 | Arg(this) | this:r2237_2 | -| ir.cpp:2237:12:2237:13 | CallTarget | func:r2237_4 | -| ir.cpp:2237:12:2237:13 | ChiPartial | partial:m2237_6 | -| ir.cpp:2237:12:2237:13 | ChiPartial | partial:m2237_8 | -| ir.cpp:2237:12:2237:13 | ChiTotal | total:m2237_1 | -| ir.cpp:2237:12:2237:13 | ChiTotal | total:m2237_3 | -| ir.cpp:2237:12:2237:13 | Phi | from 1:~m2234_5 | -| ir.cpp:2237:12:2237:13 | Phi | from 2:~m2236_5 | -| ir.cpp:2237:12:2237:13 | SideEffect | ~m2237_1 | -| ir.cpp:2238:1:2238:1 | Address | &:r2238_2 | -| ir.cpp:2238:1:2238:1 | Address | &:r2238_2 | -| ir.cpp:2238:1:2238:1 | Address | &:r2238_10 | -| ir.cpp:2238:1:2238:1 | Address | &:r2238_10 | -| ir.cpp:2238:1:2238:1 | Arg(this) | this:r2238_2 | -| ir.cpp:2238:1:2238:1 | Arg(this) | this:r2238_10 | -| ir.cpp:2238:1:2238:1 | CallTarget | func:r2238_3 | -| ir.cpp:2238:1:2238:1 | CallTarget | func:r2238_11 | -| ir.cpp:2238:1:2238:1 | ChiPartial | partial:m2238_5 | -| ir.cpp:2238:1:2238:1 | ChiPartial | partial:m2238_8 | -| ir.cpp:2238:1:2238:1 | ChiPartial | partial:m2238_13 | -| ir.cpp:2238:1:2238:1 | ChiPartial | partial:m2238_16 | -| ir.cpp:2238:1:2238:1 | ChiTotal | total:m2231_8 | -| ir.cpp:2238:1:2238:1 | ChiTotal | total:m2237_7 | -| ir.cpp:2238:1:2238:1 | ChiTotal | total:m2237_9 | -| ir.cpp:2238:1:2238:1 | ChiTotal | total:m2238_6 | -| ir.cpp:2238:1:2238:1 | SideEffect | m2231_8 | -| ir.cpp:2238:1:2238:1 | SideEffect | m2237_9 | -| ir.cpp:2238:1:2238:1 | SideEffect | ~m2237_7 | -| ir.cpp:2238:1:2238:1 | SideEffect | ~m2238_6 | -| ir.cpp:2240:6:2240:19 | ChiPartial | partial:m2240_3 | -| ir.cpp:2240:6:2240:19 | ChiTotal | total:m2240_2 | -| ir.cpp:2240:6:2240:19 | SideEffect | ~m2250_54 | -| ir.cpp:2241:10:2241:10 | Address | &:r2241_1 | -| ir.cpp:2241:13:2241:16 | StoreValue | r2241_2 | -| ir.cpp:2242:16:2242:16 | Address | &:r2242_1 | -| ir.cpp:2242:16:2242:16 | Address | &:r2242_1 | -| ir.cpp:2242:16:2242:16 | Address | &:r2242_31 | -| ir.cpp:2242:16:2242:16 | Address | &:r2242_31 | -| ir.cpp:2242:16:2242:16 | Arg(this) | this:r2242_1 | -| ir.cpp:2242:16:2242:16 | Arg(this) | this:r2242_31 | -| ir.cpp:2242:16:2242:16 | CallTarget | func:r2242_32 | -| ir.cpp:2242:16:2242:16 | ChiPartial | partial:m2242_34 | -| ir.cpp:2242:16:2242:16 | ChiPartial | partial:m2242_37 | -| ir.cpp:2242:16:2242:16 | ChiTotal | total:m2242_12 | -| ir.cpp:2242:16:2242:16 | ChiTotal | total:m2242_13 | -| ir.cpp:2242:16:2242:16 | SideEffect | m2242_12 | -| ir.cpp:2242:16:2242:16 | SideEffect | ~m2242_13 | -| ir.cpp:2242:18:2242:24 | Address | &:r2242_5 | -| ir.cpp:2242:18:2242:24 | Arg(0) | 0:r2242_5 | -| ir.cpp:2242:18:2242:24 | SideEffect | ~m2240_3 | -| ir.cpp:2242:18:2242:24 | Unary | r2242_4 | -| ir.cpp:2242:18:2242:25 | CallTarget | func:r2242_3 | -| ir.cpp:2242:18:2242:25 | ChiPartial | partial:m2242_7 | -| ir.cpp:2242:18:2242:25 | ChiPartial | partial:m2242_10 | -| ir.cpp:2242:18:2242:25 | ChiTotal | total:m2240_4 | -| ir.cpp:2242:18:2242:25 | ChiTotal | total:m2242_2 | -| ir.cpp:2242:18:2242:25 | SideEffect | ~m2240_4 | -| ir.cpp:2242:28:2242:28 | Address | &:r2242_15 | -| ir.cpp:2242:28:2242:28 | Left | r2242_17 | -| ir.cpp:2242:28:2242:28 | Load | m2242_14 | -| ir.cpp:2242:28:2242:28 | Phi | from 0:m2241_3 | -| ir.cpp:2242:28:2242:28 | Phi | from 0:m2242_11 | -| ir.cpp:2242:28:2242:28 | Phi | from 0:~m2242_8 | -| ir.cpp:2242:28:2242:28 | Phi | from 2:m2242_28 | -| ir.cpp:2242:28:2242:28 | Phi | from 2:m2242_30 | -| ir.cpp:2242:28:2242:28 | Phi | from 2:~m2242_25 | -| ir.cpp:2242:28:2242:28 | Unary | r2242_16 | -| ir.cpp:2242:28:2242:33 | Condition | r2242_19 | -| ir.cpp:2242:33:2242:33 | Right | r2242_18 | -| ir.cpp:2242:36:2242:36 | Address | &:r2242_29 | -| ir.cpp:2242:40:2242:40 | Address | &:r2242_21 | -| ir.cpp:2242:40:2242:40 | Address | &:r2242_21 | -| ir.cpp:2242:40:2242:40 | Arg(this) | this:r2242_21 | -| ir.cpp:2242:40:2242:40 | ChiPartial | partial:m2242_27 | -| ir.cpp:2242:40:2242:40 | ChiTotal | total:m2242_12 | -| ir.cpp:2242:40:2242:40 | SideEffect | m2242_12 | -| ir.cpp:2242:42:2242:49 | CallTarget | func:r2242_22 | -| ir.cpp:2242:42:2242:49 | ChiPartial | partial:m2242_24 | -| ir.cpp:2242:42:2242:49 | ChiTotal | total:m2244_5 | -| ir.cpp:2242:42:2242:49 | SideEffect | ~m2244_5 | -| ir.cpp:2242:42:2242:49 | StoreValue | r2242_23 | -| ir.cpp:2243:16:2243:17 | Address | &:r2243_1 | -| ir.cpp:2243:16:2243:17 | Address | &:r2243_1 | -| ir.cpp:2243:16:2243:17 | Arg(this) | this:r2243_1 | -| ir.cpp:2243:16:2243:17 | CallTarget | func:r2243_3 | -| ir.cpp:2243:16:2243:17 | ChiPartial | partial:m2243_5 | -| ir.cpp:2243:16:2243:17 | ChiPartial | partial:m2243_7 | -| ir.cpp:2243:16:2243:17 | ChiTotal | total:m2242_13 | -| ir.cpp:2243:16:2243:17 | ChiTotal | total:m2243_2 | -| ir.cpp:2243:16:2243:17 | SideEffect | ~m2242_13 | -| ir.cpp:2244:5:2244:5 | Address | &:r2244_1 | -| ir.cpp:2244:5:2244:5 | Address | &:r2244_1 | -| ir.cpp:2244:5:2244:5 | Arg(this) | this:r2244_1 | -| ir.cpp:2244:5:2244:5 | CallTarget | func:r2244_2 | -| ir.cpp:2244:5:2244:5 | ChiPartial | partial:m2244_4 | -| ir.cpp:2244:5:2244:5 | ChiPartial | partial:m2244_7 | -| ir.cpp:2244:5:2244:5 | ChiTotal | total:m2243_6 | -| ir.cpp:2244:5:2244:5 | ChiTotal | total:m2243_8 | -| ir.cpp:2244:5:2244:5 | SideEffect | m2243_8 | -| ir.cpp:2244:5:2244:5 | SideEffect | ~m2243_6 | -| ir.cpp:2246:5:2246:5 | Address | &:r2246_1 | -| ir.cpp:2246:5:2246:5 | Address | &:r2246_24 | -| ir.cpp:2246:5:2246:5 | Address | &:r2246_32 | -| ir.cpp:2246:16:2246:16 | Address | &:r2246_50 | -| ir.cpp:2246:16:2246:16 | Address | &:r2246_50 | -| ir.cpp:2246:16:2246:16 | Address | &:r2246_67 | -| ir.cpp:2246:16:2246:16 | Address | &:r2246_67 | -| ir.cpp:2246:16:2246:16 | Arg(this) | this:r2246_50 | -| ir.cpp:2246:16:2246:16 | Arg(this) | this:r2246_67 | -| ir.cpp:2246:16:2246:16 | CallTarget | func:r2246_52 | -| ir.cpp:2246:16:2246:16 | CallTarget | func:r2246_68 | -| ir.cpp:2246:16:2246:16 | ChiPartial | partial:m2246_62 | -| ir.cpp:2246:16:2246:16 | ChiPartial | partial:m2246_65 | -| ir.cpp:2246:16:2246:16 | ChiPartial | partial:m2246_70 | -| ir.cpp:2246:16:2246:16 | ChiPartial | partial:m2246_73 | -| ir.cpp:2246:16:2246:16 | ChiTotal | total:m2246_51 | -| ir.cpp:2246:16:2246:16 | ChiTotal | total:m2246_57 | -| ir.cpp:2246:16:2246:16 | ChiTotal | total:m2246_66 | -| ir.cpp:2246:16:2246:16 | ChiTotal | total:m2248_5 | -| ir.cpp:2246:16:2246:16 | SideEffect | m2246_66 | -| ir.cpp:2246:16:2246:16 | SideEffect | ~m2246_57 | -| ir.cpp:2246:16:2246:16 | SideEffect | ~m2248_5 | -| ir.cpp:2246:20:2246:20 | Address | &:r2246_25 | -| ir.cpp:2246:20:2246:20 | Address | &:r2246_33 | -| ir.cpp:2246:20:2246:20 | Address | &:r2246_44 | -| ir.cpp:2246:20:2246:20 | Address | &:r2246_75 | -| ir.cpp:2246:20:2246:20 | Address | &:r2246_75 | -| ir.cpp:2246:20:2246:20 | Arg(0) | 0:r2246_45 | -| ir.cpp:2246:20:2246:20 | Arg(this) | this:r0_2 | -| ir.cpp:2246:20:2246:20 | Arg(this) | this:r0_5 | -| ir.cpp:2246:20:2246:20 | Arg(this) | this:r0_7 | -| ir.cpp:2246:20:2246:20 | Arg(this) | this:r0_9 | -| ir.cpp:2246:20:2246:20 | Arg(this) | this:r2246_75 | -| ir.cpp:2246:20:2246:20 | CallTarget | func:r2246_27 | -| ir.cpp:2246:20:2246:20 | CallTarget | func:r2246_35 | -| ir.cpp:2246:20:2246:20 | CallTarget | func:r2246_43 | -| ir.cpp:2246:20:2246:20 | CallTarget | func:r2246_54 | -| ir.cpp:2246:20:2246:20 | CallTarget | func:r2246_76 | -| ir.cpp:2246:20:2246:20 | ChiPartial | partial:m2246_29 | -| ir.cpp:2246:20:2246:20 | ChiPartial | partial:m2246_37 | -| ir.cpp:2246:20:2246:20 | ChiPartial | partial:m2246_47 | -| ir.cpp:2246:20:2246:20 | ChiPartial | partial:m2246_56 | -| ir.cpp:2246:20:2246:20 | ChiPartial | partial:m2246_78 | -| ir.cpp:2246:20:2246:20 | ChiPartial | partial:m2246_81 | -| ir.cpp:2246:20:2246:20 | ChiTotal | total:m2246_19 | -| ir.cpp:2246:20:2246:20 | ChiTotal | total:m2246_30 | -| ir.cpp:2246:20:2246:20 | ChiTotal | total:m2246_40 | -| ir.cpp:2246:20:2246:20 | ChiTotal | total:m2246_41 | -| ir.cpp:2246:20:2246:20 | ChiTotal | total:m2246_48 | -| ir.cpp:2246:20:2246:20 | ChiTotal | total:m2246_71 | -| ir.cpp:2246:20:2246:20 | Condition | r2246_46 | -| ir.cpp:2246:20:2246:20 | Load | m2246_23 | -| ir.cpp:2246:20:2246:20 | Load | m2246_23 | -| ir.cpp:2246:20:2246:20 | Load | m2246_39 | -| ir.cpp:2246:20:2246:20 | Phi | from 3:m2246_31 | -| ir.cpp:2246:20:2246:20 | Phi | from 3:~m2246_38 | -| ir.cpp:2246:20:2246:20 | Phi | from 5:m2246_82 | -| ir.cpp:2246:20:2246:20 | Phi | from 5:~m2246_79 | -| ir.cpp:2246:20:2246:20 | SideEffect | m2246_40 | -| ir.cpp:2246:20:2246:20 | SideEffect | ~m2246_19 | -| ir.cpp:2246:20:2246:20 | SideEffect | ~m2246_30 | -| ir.cpp:2246:20:2246:20 | SideEffect | ~m2246_41 | -| ir.cpp:2246:20:2246:20 | SideEffect | ~m2246_48 | -| ir.cpp:2246:20:2246:20 | SideEffect | ~m2246_71 | -| ir.cpp:2246:20:2246:20 | StoreValue | r2246_28 | -| ir.cpp:2246:20:2246:20 | StoreValue | r2246_36 | -| ir.cpp:2246:20:2246:20 | Unary | r2246_26 | -| ir.cpp:2246:20:2246:20 | Unary | r2246_34 | -| ir.cpp:2246:20:2246:20 | Unary | r2246_42 | -| ir.cpp:2246:20:2246:20 | Unary | r2246_53 | -| ir.cpp:2246:20:2246:20 | Unary | r2246_55 | -| ir.cpp:2246:20:2246:20 | Unary | r2246_77 | -| ir.cpp:2246:20:2246:50 | Address | &:r2246_2 | -| ir.cpp:2246:20:2246:50 | Address | &:r2246_2 | -| ir.cpp:2246:20:2246:50 | Arg(this) | this:r2246_2 | -| ir.cpp:2246:20:2246:50 | CallTarget | func:r2246_4 | -| ir.cpp:2246:20:2246:50 | ChiPartial | partial:m2246_18 | -| ir.cpp:2246:20:2246:50 | ChiPartial | partial:m2246_20 | -| ir.cpp:2246:20:2246:50 | ChiTotal | total:m2246_3 | -| ir.cpp:2246:20:2246:50 | ChiTotal | total:m2246_12 | -| ir.cpp:2246:20:2246:50 | SideEffect | ~m2246_12 | -| ir.cpp:2246:20:2246:50 | StoreValue | r2246_22 | -| ir.cpp:2246:20:2246:50 | Unary | r2246_2 | -| ir.cpp:2246:20:2246:51 | Address | &:r2246_60 | -| ir.cpp:2246:20:2246:51 | Arg(0) | 0:r2246_60 | -| ir.cpp:2246:20:2246:51 | SideEffect | ~m2246_63 | -| ir.cpp:2246:20:2246:51 | Unary | r2246_58 | -| ir.cpp:2246:20:2246:51 | Unary | r2246_59 | -| ir.cpp:2246:35:2246:49 | Address | &:r2246_5 | -| ir.cpp:2246:35:2246:49 | Address | &:r2246_5 | -| ir.cpp:2246:35:2246:49 | Address | &:r2246_5 | -| ir.cpp:2246:35:2246:49 | Arg(0) | 0:r2246_16 | -| ir.cpp:2246:35:2246:49 | Arg(this) | this:r2246_5 | -| ir.cpp:2246:35:2246:49 | CallTarget | func:r2246_7 | -| ir.cpp:2246:35:2246:49 | ChiPartial | partial:m2246_11 | -| ir.cpp:2246:35:2246:49 | ChiPartial | partial:m2246_14 | -| ir.cpp:2246:35:2246:49 | ChiTotal | total:m2242_35 | -| ir.cpp:2246:35:2246:49 | ChiTotal | total:m2246_6 | -| ir.cpp:2246:35:2246:49 | Load | m2246_15 | -| ir.cpp:2246:35:2246:49 | SideEffect | ~m2242_35 | -| ir.cpp:2246:42:2246:48 | Address | &:r2246_9 | -| ir.cpp:2246:42:2246:48 | Arg(0) | 0:r2246_9 | -| ir.cpp:2246:42:2246:48 | SideEffect | ~m2240_3 | -| ir.cpp:2246:42:2246:48 | Unary | r2246_8 | -| ir.cpp:2247:16:2247:17 | Address | &:r2247_1 | -| ir.cpp:2247:16:2247:17 | Address | &:r2247_1 | -| ir.cpp:2247:16:2247:17 | Arg(this) | this:r2247_1 | -| ir.cpp:2247:16:2247:17 | CallTarget | func:r2247_3 | -| ir.cpp:2247:16:2247:17 | ChiPartial | partial:m2247_5 | -| ir.cpp:2247:16:2247:17 | ChiPartial | partial:m2247_7 | -| ir.cpp:2247:16:2247:17 | ChiTotal | total:m2246_63 | -| ir.cpp:2247:16:2247:17 | ChiTotal | total:m2247_2 | -| ir.cpp:2247:16:2247:17 | SideEffect | ~m2246_63 | -| ir.cpp:2248:5:2248:5 | Address | &:r2248_1 | -| ir.cpp:2248:5:2248:5 | Address | &:r2248_1 | -| ir.cpp:2248:5:2248:5 | Arg(this) | this:r2248_1 | -| ir.cpp:2248:5:2248:5 | CallTarget | func:r2248_2 | -| ir.cpp:2248:5:2248:5 | ChiPartial | partial:m2248_4 | -| ir.cpp:2248:5:2248:5 | ChiPartial | partial:m2248_7 | -| ir.cpp:2248:5:2248:5 | ChiTotal | total:m2247_6 | -| ir.cpp:2248:5:2248:5 | ChiTotal | total:m2247_8 | -| ir.cpp:2248:5:2248:5 | SideEffect | m2247_8 | -| ir.cpp:2248:5:2248:5 | SideEffect | ~m2247_6 | -| ir.cpp:2250:16:2250:16 | Address | &:r2250_1 | -| ir.cpp:2250:16:2250:16 | Address | &:r2250_1 | -| ir.cpp:2250:16:2250:16 | Address | &:r2250_50 | -| ir.cpp:2250:16:2250:16 | Address | &:r2250_50 | -| ir.cpp:2250:16:2250:16 | Arg(this) | this:r2250_1 | -| ir.cpp:2250:16:2250:16 | Arg(this) | this:r2250_50 | -| ir.cpp:2250:16:2250:16 | CallTarget | func:r2250_51 | -| ir.cpp:2250:16:2250:16 | ChiPartial | partial:m2250_53 | -| ir.cpp:2250:16:2250:16 | ChiPartial | partial:m2250_56 | -| ir.cpp:2250:16:2250:16 | ChiTotal | total:m2250_23 | -| ir.cpp:2250:16:2250:16 | ChiTotal | total:m2250_46 | -| ir.cpp:2250:16:2250:16 | SideEffect | m2250_23 | -| ir.cpp:2250:16:2250:16 | SideEffect | ~m2250_46 | -| ir.cpp:2250:18:2250:24 | Address | &:r2250_5 | -| ir.cpp:2250:18:2250:24 | Arg(0) | 0:r2250_5 | -| ir.cpp:2250:18:2250:24 | SideEffect | ~m2240_3 | -| ir.cpp:2250:18:2250:24 | Unary | r2250_4 | -| ir.cpp:2250:18:2250:25 | CallTarget | func:r2250_3 | -| ir.cpp:2250:18:2250:25 | ChiPartial | partial:m2250_7 | -| ir.cpp:2250:18:2250:25 | ChiPartial | partial:m2250_10 | -| ir.cpp:2250:18:2250:25 | ChiTotal | total:m2246_48 | -| ir.cpp:2250:18:2250:25 | ChiTotal | total:m2250_2 | -| ir.cpp:2250:18:2250:25 | SideEffect | ~m2246_48 | -| ir.cpp:2250:28:2250:29 | Address | &:r2250_12 | -| ir.cpp:2250:28:2250:29 | Address | &:r2250_12 | -| ir.cpp:2250:28:2250:29 | Address | &:r2250_42 | -| ir.cpp:2250:28:2250:29 | Address | &:r2250_42 | -| ir.cpp:2250:28:2250:29 | Arg(this) | this:r2250_12 | -| ir.cpp:2250:28:2250:29 | Arg(this) | this:r2250_42 | -| ir.cpp:2250:28:2250:29 | CallTarget | func:r2250_43 | -| ir.cpp:2250:28:2250:29 | ChiPartial | partial:m2250_45 | -| ir.cpp:2250:28:2250:29 | ChiPartial | partial:m2250_48 | -| ir.cpp:2250:28:2250:29 | ChiTotal | total:m2250_22 | -| ir.cpp:2250:28:2250:29 | ChiTotal | total:m2250_24 | -| ir.cpp:2250:28:2250:29 | SideEffect | m2250_22 | -| ir.cpp:2250:28:2250:29 | SideEffect | ~m2250_24 | -| ir.cpp:2250:31:2250:37 | Address | &:r2250_16 | -| ir.cpp:2250:31:2250:37 | Arg(0) | 0:r2250_16 | -| ir.cpp:2250:31:2250:37 | SideEffect | ~m2240_3 | -| ir.cpp:2250:31:2250:37 | Unary | r2250_15 | -| ir.cpp:2250:31:2250:38 | CallTarget | func:r2250_14 | -| ir.cpp:2250:31:2250:38 | ChiPartial | partial:m2250_18 | -| ir.cpp:2250:31:2250:38 | ChiPartial | partial:m2250_21 | -| ir.cpp:2250:31:2250:38 | ChiTotal | total:m2250_8 | -| ir.cpp:2250:31:2250:38 | ChiTotal | total:m2250_13 | -| ir.cpp:2250:31:2250:38 | SideEffect | ~m2250_8 | -| ir.cpp:2250:41:2250:41 | Address | &:r2250_26 | -| ir.cpp:2250:41:2250:41 | Left | r2250_28 | -| ir.cpp:2250:41:2250:41 | Load | m2250_25 | -| ir.cpp:2250:41:2250:41 | Phi | from 6:m2242_14 | -| ir.cpp:2250:41:2250:41 | Phi | from 6:m2250_11 | -| ir.cpp:2250:41:2250:41 | Phi | from 6:~m2250_19 | -| ir.cpp:2250:41:2250:41 | Phi | from 8:m2250_39 | -| ir.cpp:2250:41:2250:41 | Phi | from 8:m2250_41 | -| ir.cpp:2250:41:2250:41 | Phi | from 8:~m2250_36 | -| ir.cpp:2250:41:2250:41 | Unary | r2250_27 | -| ir.cpp:2250:41:2250:46 | Condition | r2250_30 | -| ir.cpp:2250:46:2250:46 | Right | r2250_29 | -| ir.cpp:2250:49:2250:49 | Address | &:r2250_40 | -| ir.cpp:2250:53:2250:53 | Address | &:r2250_32 | -| ir.cpp:2250:53:2250:53 | Address | &:r2250_32 | -| ir.cpp:2250:53:2250:53 | Arg(this) | this:r2250_32 | -| ir.cpp:2250:53:2250:53 | ChiPartial | partial:m2250_38 | -| ir.cpp:2250:53:2250:53 | ChiTotal | total:m2250_23 | -| ir.cpp:2250:53:2250:53 | SideEffect | m2250_23 | -| ir.cpp:2250:55:2250:62 | CallTarget | func:r2250_33 | -| ir.cpp:2250:55:2250:62 | ChiPartial | partial:m2250_35 | -| ir.cpp:2250:55:2250:62 | ChiTotal | total:m2250_24 | -| ir.cpp:2250:55:2250:62 | SideEffect | ~m2250_24 | -| ir.cpp:2250:55:2250:62 | StoreValue | r2250_34 | -| ir.cpp:2251:9:2251:9 | Address | &:r2251_2 | -| ir.cpp:2251:13:2251:13 | StoreValue | r2251_1 | -| ir.cpp:2255:6:2255:19 | ChiPartial | partial:m2255_3 | -| ir.cpp:2255:6:2255:19 | ChiTotal | total:m2255_2 | -| ir.cpp:2255:6:2255:19 | SideEffect | ~m2260_5 | -| ir.cpp:2255:26:2255:26 | Address | &:r2255_5 | -| ir.cpp:2256:15:2256:15 | Address | &:r2256_1 | -| ir.cpp:2256:15:2256:15 | Address | &:r2256_1 | -| ir.cpp:2256:15:2256:15 | Arg(this) | this:r2256_1 | -| ir.cpp:2256:18:2256:33 | CallTarget | func:r2256_3 | -| ir.cpp:2256:18:2256:33 | ChiPartial | partial:m2256_7 | -| ir.cpp:2256:18:2256:33 | ChiPartial | partial:m2256_10 | -| ir.cpp:2256:18:2256:33 | ChiTotal | total:m2255_4 | -| ir.cpp:2256:18:2256:33 | ChiTotal | total:m2256_2 | -| ir.cpp:2256:18:2256:33 | SideEffect | ~m2255_4 | -| ir.cpp:2256:26:2256:32 | Address | &:r2256_5 | -| ir.cpp:2256:26:2256:32 | Arg(0) | 0:r2256_5 | -| ir.cpp:2256:26:2256:32 | SideEffect | ~m2255_3 | -| ir.cpp:2256:26:2256:32 | Unary | r2256_4 | -| ir.cpp:2256:36:2256:36 | Address | &:r2256_12 | -| ir.cpp:2256:36:2256:36 | Condition | r2256_13 | -| ir.cpp:2256:36:2256:36 | Load | m2255_6 | -| ir.cpp:2257:13:2257:13 | Address | &:r2257_1 | -| ir.cpp:2257:16:2257:17 | StoreValue | r2257_2 | -| ir.cpp:2259:13:2259:13 | Address | &:r2259_1 | -| ir.cpp:2259:16:2259:17 | StoreValue | r2259_2 | -| ir.cpp:2260:5:2260:5 | Address | &:r2260_1 | -| ir.cpp:2260:5:2260:5 | Address | &:r2260_1 | -| ir.cpp:2260:5:2260:5 | Arg(this) | this:r2260_1 | -| ir.cpp:2260:5:2260:5 | CallTarget | func:r2260_2 | -| ir.cpp:2260:5:2260:5 | ChiPartial | partial:m2260_4 | -| ir.cpp:2260:5:2260:5 | ChiPartial | partial:m2260_7 | -| ir.cpp:2260:5:2260:5 | ChiTotal | total:m2256_8 | -| ir.cpp:2260:5:2260:5 | ChiTotal | total:m2256_11 | -| ir.cpp:2260:5:2260:5 | SideEffect | m2256_11 | -| ir.cpp:2260:5:2260:5 | SideEffect | ~m2256_8 | -| ir.cpp:2270:6:2270:19 | ChiPartial | partial:m2270_3 | -| ir.cpp:2270:6:2270:19 | ChiTotal | total:m2270_2 | -| ir.cpp:2270:6:2270:19 | SideEffect | ~m2275_14 | -| ir.cpp:2270:26:2270:26 | Address | &:r2270_5 | -| ir.cpp:2271:8:2271:23 | Address | &:r2271_1 | -| ir.cpp:2271:8:2271:23 | Address | &:r2271_1 | -| ir.cpp:2271:8:2271:23 | Arg(this) | this:r2271_1 | -| ir.cpp:2271:8:2271:23 | Condition | r2271_19 | -| ir.cpp:2271:13:2271:13 | Address | &:r2271_11 | -| ir.cpp:2271:13:2271:13 | Address | &:r2271_11 | -| ir.cpp:2271:13:2271:13 | Arg(this) | this:r2271_11 | -| ir.cpp:2271:13:2271:13 | CallTarget | func:r2271_12 | -| ir.cpp:2271:13:2271:13 | ChiPartial | partial:m2271_14 | -| ir.cpp:2271:13:2271:13 | ChiPartial | partial:m2271_17 | -| ir.cpp:2271:13:2271:13 | ChiTotal | total:m2271_8 | -| ir.cpp:2271:13:2271:13 | ChiTotal | total:m2271_10 | -| ir.cpp:2271:13:2271:13 | SideEffect | m2271_10 | -| ir.cpp:2271:13:2271:13 | SideEffect | ~m2271_8 | -| ir.cpp:2271:13:2271:13 | Unary | r2271_13 | -| ir.cpp:2271:16:2271:23 | CallTarget | func:r2271_3 | -| ir.cpp:2271:16:2271:23 | ChiPartial | partial:m2271_7 | -| ir.cpp:2271:16:2271:23 | ChiPartial | partial:m2271_9 | -| ir.cpp:2271:16:2271:23 | ChiTotal | total:m2270_4 | -| ir.cpp:2271:16:2271:23 | ChiTotal | total:m2271_2 | -| ir.cpp:2271:16:2271:23 | SideEffect | ~m2270_4 | -| ir.cpp:2271:22:2271:22 | Address | &:r2271_4 | -| ir.cpp:2271:22:2271:22 | Arg(0) | 0:r2271_5 | -| ir.cpp:2271:22:2271:22 | Load | m2270_6 | -| ir.cpp:2272:16:2272:17 | Address | &:r2272_1 | -| ir.cpp:2272:16:2272:17 | Address | &:r2272_1 | -| ir.cpp:2272:16:2272:17 | Arg(this) | this:r2272_1 | -| ir.cpp:2272:16:2272:17 | CallTarget | func:r2272_3 | -| ir.cpp:2272:16:2272:17 | ChiPartial | partial:m2272_5 | -| ir.cpp:2272:16:2272:17 | ChiPartial | partial:m2272_7 | -| ir.cpp:2272:16:2272:17 | ChiTotal | total:m2271_15 | -| ir.cpp:2272:16:2272:17 | ChiTotal | total:m2272_2 | -| ir.cpp:2272:16:2272:17 | SideEffect | ~m2271_15 | -| ir.cpp:2273:5:2273:5 | Address | &:r2273_1 | -| ir.cpp:2273:5:2273:5 | Address | &:r2273_1 | -| ir.cpp:2273:5:2273:5 | Arg(this) | this:r2273_1 | -| ir.cpp:2273:5:2273:5 | CallTarget | func:r2273_2 | -| ir.cpp:2273:5:2273:5 | ChiPartial | partial:m2273_4 | -| ir.cpp:2273:5:2273:5 | ChiPartial | partial:m2273_7 | -| ir.cpp:2273:5:2273:5 | ChiTotal | total:m2272_6 | -| ir.cpp:2273:5:2273:5 | ChiTotal | total:m2272_8 | -| ir.cpp:2273:5:2273:5 | SideEffect | m2272_8 | -| ir.cpp:2273:5:2273:5 | SideEffect | ~m2272_6 | -| ir.cpp:2274:16:2274:17 | Address | &:r2274_1 | -| ir.cpp:2274:16:2274:17 | Address | &:r2274_1 | -| ir.cpp:2274:16:2274:17 | Arg(this) | this:r2274_1 | -| ir.cpp:2274:16:2274:17 | CallTarget | func:r2274_3 | -| ir.cpp:2274:16:2274:17 | ChiPartial | partial:m2274_5 | -| ir.cpp:2274:16:2274:17 | ChiPartial | partial:m2274_7 | -| ir.cpp:2274:16:2274:17 | ChiTotal | total:m2271_15 | -| ir.cpp:2274:16:2274:17 | ChiTotal | total:m2274_2 | -| ir.cpp:2274:16:2274:17 | SideEffect | ~m2271_15 | -| ir.cpp:2275:5:2275:5 | Address | &:r2275_1 | -| ir.cpp:2275:5:2275:5 | Address | &:r2275_1 | -| ir.cpp:2275:5:2275:5 | Address | &:r2275_10 | -| ir.cpp:2275:5:2275:5 | Address | &:r2275_10 | -| ir.cpp:2275:5:2275:5 | Arg(this) | this:r2275_1 | -| ir.cpp:2275:5:2275:5 | Arg(this) | this:r2275_10 | -| ir.cpp:2275:5:2275:5 | CallTarget | func:r2275_2 | -| ir.cpp:2275:5:2275:5 | CallTarget | func:r2275_11 | -| ir.cpp:2275:5:2275:5 | ChiPartial | partial:m2275_4 | -| ir.cpp:2275:5:2275:5 | ChiPartial | partial:m2275_7 | -| ir.cpp:2275:5:2275:5 | ChiPartial | partial:m2275_13 | -| ir.cpp:2275:5:2275:5 | ChiPartial | partial:m2275_16 | -| ir.cpp:2275:5:2275:5 | ChiTotal | total:m2271_18 | -| ir.cpp:2275:5:2275:5 | ChiTotal | total:m2274_6 | -| ir.cpp:2275:5:2275:5 | ChiTotal | total:m2274_8 | -| ir.cpp:2275:5:2275:5 | ChiTotal | total:m2275_9 | -| ir.cpp:2275:5:2275:5 | Phi | from 1:~m2273_5 | -| ir.cpp:2275:5:2275:5 | Phi | from 2:~m2275_5 | -| ir.cpp:2275:5:2275:5 | SideEffect | m2271_18 | -| ir.cpp:2275:5:2275:5 | SideEffect | m2274_8 | -| ir.cpp:2275:5:2275:5 | SideEffect | ~m2274_6 | -| ir.cpp:2275:5:2275:5 | SideEffect | ~m2275_9 | -| ir.cpp:2278:6:2278:25 | ChiPartial | partial:m2278_3 | -| ir.cpp:2278:6:2278:25 | ChiTotal | total:m2278_2 | -| ir.cpp:2278:6:2278:25 | SideEffect | ~m2289_13 | -| ir.cpp:2278:32:2278:32 | Address | &:r2278_5 | -| ir.cpp:2280:16:2280:16 | Address | &:r2280_1 | -| ir.cpp:2280:16:2280:16 | Address | &:r2280_1 | -| ir.cpp:2280:16:2280:16 | Arg(this) | this:r2280_1 | -| ir.cpp:2280:16:2280:16 | CallTarget | func:r2280_3 | -| ir.cpp:2280:16:2280:16 | ChiPartial | partial:m2280_5 | -| ir.cpp:2280:16:2280:16 | ChiPartial | partial:m2280_7 | -| ir.cpp:2280:16:2280:16 | ChiTotal | total:m2278_4 | -| ir.cpp:2280:16:2280:16 | ChiTotal | total:m2280_2 | -| ir.cpp:2280:16:2280:16 | SideEffect | ~m2278_4 | -| ir.cpp:2281:15:2281:15 | Address | &:r2281_2 | -| ir.cpp:2281:15:2281:15 | Condition | r2281_3 | -| ir.cpp:2281:15:2281:15 | Load | m2281_1 | -| ir.cpp:2281:15:2281:15 | Phi | from 0:m2278_6 | -| ir.cpp:2281:15:2281:15 | Phi | from 2:m2282_3 | -| ir.cpp:2282:13:2282:13 | Address | &:r2282_2 | -| ir.cpp:2282:17:2282:21 | StoreValue | r2282_1 | -| ir.cpp:2284:5:2284:5 | Address | &:r2284_1 | -| ir.cpp:2284:5:2284:5 | Address | &:r2284_1 | -| ir.cpp:2284:5:2284:5 | Arg(this) | this:r2284_1 | -| ir.cpp:2284:5:2284:5 | CallTarget | func:r2284_2 | -| ir.cpp:2284:5:2284:5 | ChiPartial | partial:m2284_4 | -| ir.cpp:2284:5:2284:5 | ChiPartial | partial:m2284_7 | -| ir.cpp:2284:5:2284:5 | ChiTotal | total:m2280_6 | -| ir.cpp:2284:5:2284:5 | ChiTotal | total:m2280_8 | -| ir.cpp:2284:5:2284:5 | SideEffect | m2280_8 | -| ir.cpp:2284:5:2284:5 | SideEffect | ~m2280_6 | -| ir.cpp:2287:16:2287:31 | Address | &:r2287_3 | -| ir.cpp:2287:16:2287:31 | Address | &:r2287_3 | -| ir.cpp:2287:16:2287:31 | Arg(this) | this:r2287_3 | -| ir.cpp:2287:16:2287:31 | Condition | r2287_21 | -| ir.cpp:2287:16:2287:31 | Phi | from 3:m2281_1 | -| ir.cpp:2287:16:2287:31 | Phi | from 3:~m2284_5 | -| ir.cpp:2287:16:2287:31 | Phi | from 5:m2288_3 | -| ir.cpp:2287:16:2287:31 | Phi | from 5:~m2289_5 | -| ir.cpp:2287:21:2287:21 | Address | &:r2287_13 | -| ir.cpp:2287:21:2287:21 | Address | &:r2287_13 | -| ir.cpp:2287:21:2287:21 | Arg(this) | this:r2287_13 | -| ir.cpp:2287:21:2287:21 | CallTarget | func:r2287_14 | -| ir.cpp:2287:21:2287:21 | ChiPartial | partial:m2287_16 | -| ir.cpp:2287:21:2287:21 | ChiPartial | partial:m2287_19 | -| ir.cpp:2287:21:2287:21 | ChiTotal | total:m2287_10 | -| ir.cpp:2287:21:2287:21 | ChiTotal | total:m2287_12 | -| ir.cpp:2287:21:2287:21 | SideEffect | m2287_12 | -| ir.cpp:2287:21:2287:21 | SideEffect | ~m2287_10 | -| ir.cpp:2287:21:2287:21 | Unary | r2287_15 | -| ir.cpp:2287:24:2287:31 | CallTarget | func:r2287_5 | -| ir.cpp:2287:24:2287:31 | ChiPartial | partial:m2287_9 | -| ir.cpp:2287:24:2287:31 | ChiPartial | partial:m2287_11 | -| ir.cpp:2287:24:2287:31 | ChiTotal | total:m2287_1 | -| ir.cpp:2287:24:2287:31 | ChiTotal | total:m2287_4 | -| ir.cpp:2287:24:2287:31 | SideEffect | ~m2287_1 | -| ir.cpp:2287:30:2287:30 | Address | &:r2287_6 | -| ir.cpp:2287:30:2287:30 | Arg(0) | 0:r2287_7 | -| ir.cpp:2287:30:2287:30 | Load | m2287_2 | -| ir.cpp:2288:13:2288:13 | Address | &:r2288_2 | -| ir.cpp:2288:17:2288:21 | StoreValue | r2288_1 | -| ir.cpp:2289:9:2289:9 | Address | &:r2289_1 | -| ir.cpp:2289:9:2289:9 | Address | &:r2289_1 | -| ir.cpp:2289:9:2289:9 | Address | &:r2289_9 | -| ir.cpp:2289:9:2289:9 | Address | &:r2289_9 | -| ir.cpp:2289:9:2289:9 | Arg(this) | this:r2289_1 | -| ir.cpp:2289:9:2289:9 | Arg(this) | this:r2289_9 | -| ir.cpp:2289:9:2289:9 | CallTarget | func:r2289_2 | -| ir.cpp:2289:9:2289:9 | CallTarget | func:r2289_10 | -| ir.cpp:2289:9:2289:9 | ChiPartial | partial:m2289_4 | -| ir.cpp:2289:9:2289:9 | ChiPartial | partial:m2289_7 | -| ir.cpp:2289:9:2289:9 | ChiPartial | partial:m2289_12 | -| ir.cpp:2289:9:2289:9 | ChiPartial | partial:m2289_15 | -| ir.cpp:2289:9:2289:9 | ChiTotal | total:m2287_17 | -| ir.cpp:2289:9:2289:9 | ChiTotal | total:m2287_17 | -| ir.cpp:2289:9:2289:9 | ChiTotal | total:m2287_20 | -| ir.cpp:2289:9:2289:9 | ChiTotal | total:m2287_20 | -| ir.cpp:2289:9:2289:9 | SideEffect | m2287_20 | -| ir.cpp:2289:9:2289:9 | SideEffect | m2287_20 | -| ir.cpp:2289:9:2289:9 | SideEffect | ~m2287_17 | -| ir.cpp:2289:9:2289:9 | SideEffect | ~m2287_17 | -| ir.cpp:2293:6:2293:13 | ChiPartial | partial:m2293_3 | -| ir.cpp:2293:6:2293:13 | ChiTotal | total:m2293_2 | -| ir.cpp:2293:6:2293:13 | SideEffect | m2293_3 | -| ir.cpp:2295:6:2295:24 | ChiPartial | partial:m2295_3 | -| ir.cpp:2295:6:2295:24 | ChiTotal | total:m2295_2 | -| ir.cpp:2295:6:2295:24 | Phi | from 2:~m2304_5 | -| ir.cpp:2295:6:2295:24 | Phi | from 4:~m2304_13 | -| ir.cpp:2295:6:2295:24 | Phi | from 5:~m2304_22 | -| ir.cpp:2295:6:2295:24 | SideEffect | ~m2295_7 | -| ir.cpp:2295:31:2295:31 | Address | &:r2295_5 | -| ir.cpp:2296:12:2296:12 | Address | &:r2296_1 | -| ir.cpp:2296:12:2296:12 | Address | &:r2296_1 | -| ir.cpp:2296:12:2296:12 | Arg(this) | this:r2296_1 | -| ir.cpp:2296:12:2296:12 | CallTarget | func:r2296_3 | -| ir.cpp:2296:12:2296:12 | ChiPartial | partial:m2296_5 | -| ir.cpp:2296:12:2296:12 | ChiPartial | partial:m2296_7 | -| ir.cpp:2296:12:2296:12 | ChiTotal | total:m2295_4 | -| ir.cpp:2296:12:2296:12 | ChiTotal | total:m2296_2 | -| ir.cpp:2296:12:2296:12 | SideEffect | ~m2295_4 | -| ir.cpp:2297:8:2297:8 | Address | &:r2297_1 | -| ir.cpp:2297:8:2297:8 | Condition | r2297_2 | -| ir.cpp:2297:8:2297:8 | Load | m2295_6 | -| ir.cpp:2300:8:2300:8 | Address | &:r2300_1 | -| ir.cpp:2300:8:2300:8 | Condition | r2300_2 | -| ir.cpp:2300:8:2300:8 | Load | m2295_6 | -| ir.cpp:2301:16:2301:23 | CallTarget | func:r2301_1 | -| ir.cpp:2301:16:2301:23 | ChiPartial | partial:m2301_3 | -| ir.cpp:2301:16:2301:23 | ChiTotal | total:m2296_6 | -| ir.cpp:2301:16:2301:23 | SideEffect | ~m2296_6 | -| ir.cpp:2304:1:2304:1 | Address | &:r2304_1 | -| ir.cpp:2304:1:2304:1 | Address | &:r2304_1 | -| ir.cpp:2304:1:2304:1 | Address | &:r2304_9 | -| ir.cpp:2304:1:2304:1 | Address | &:r2304_9 | -| ir.cpp:2304:1:2304:1 | Address | &:r2304_18 | -| ir.cpp:2304:1:2304:1 | Address | &:r2304_18 | -| ir.cpp:2304:1:2304:1 | Arg(this) | this:r2304_1 | -| ir.cpp:2304:1:2304:1 | Arg(this) | this:r2304_9 | -| ir.cpp:2304:1:2304:1 | Arg(this) | this:r2304_18 | -| ir.cpp:2304:1:2304:1 | CallTarget | func:r2304_2 | -| ir.cpp:2304:1:2304:1 | CallTarget | func:r2304_10 | -| ir.cpp:2304:1:2304:1 | CallTarget | func:r2304_19 | -| ir.cpp:2304:1:2304:1 | ChiPartial | partial:m2304_4 | -| ir.cpp:2304:1:2304:1 | ChiPartial | partial:m2304_7 | -| ir.cpp:2304:1:2304:1 | ChiPartial | partial:m2304_12 | -| ir.cpp:2304:1:2304:1 | ChiPartial | partial:m2304_15 | -| ir.cpp:2304:1:2304:1 | ChiPartial | partial:m2304_21 | -| ir.cpp:2304:1:2304:1 | ChiPartial | partial:m2304_24 | -| ir.cpp:2304:1:2304:1 | ChiTotal | total:m2296_6 | -| ir.cpp:2304:1:2304:1 | ChiTotal | total:m2296_6 | -| ir.cpp:2304:1:2304:1 | ChiTotal | total:m2296_8 | -| ir.cpp:2304:1:2304:1 | ChiTotal | total:m2296_8 | -| ir.cpp:2304:1:2304:1 | ChiTotal | total:m2296_8 | -| ir.cpp:2304:1:2304:1 | ChiTotal | total:m2301_4 | -| ir.cpp:2304:1:2304:1 | SideEffect | m2296_8 | -| ir.cpp:2304:1:2304:1 | SideEffect | m2296_8 | -| ir.cpp:2304:1:2304:1 | SideEffect | m2296_8 | -| ir.cpp:2304:1:2304:1 | SideEffect | ~m2296_6 | -| ir.cpp:2304:1:2304:1 | SideEffect | ~m2296_6 | -| ir.cpp:2304:1:2304:1 | SideEffect | ~m2301_4 | -| ir.cpp:2306:5:2306:24 | Address | &:r2306_9 | -| ir.cpp:2306:5:2306:24 | ChiPartial | partial:m2306_3 | -| ir.cpp:2306:5:2306:24 | ChiTotal | total:m2306_2 | -| ir.cpp:2306:5:2306:24 | Load | m2306_8 | -| ir.cpp:2306:5:2306:24 | Phi | from 2:m2309_3 | -| ir.cpp:2306:5:2306:24 | Phi | from 2:~m2312_5 | -| ir.cpp:2306:5:2306:24 | Phi | from 3:m2311_3 | -| ir.cpp:2306:5:2306:24 | Phi | from 3:~m2312_13 | -| ir.cpp:2306:5:2306:24 | SideEffect | ~m2306_7 | -| ir.cpp:2306:31:2306:31 | Address | &:r2306_5 | -| ir.cpp:2307:12:2307:12 | Address | &:r2307_1 | -| ir.cpp:2307:12:2307:12 | Address | &:r2307_1 | -| ir.cpp:2307:12:2307:12 | Arg(this) | this:r2307_1 | -| ir.cpp:2307:12:2307:12 | CallTarget | func:r2307_3 | -| ir.cpp:2307:12:2307:12 | ChiPartial | partial:m2307_5 | -| ir.cpp:2307:12:2307:12 | ChiPartial | partial:m2307_7 | -| ir.cpp:2307:12:2307:12 | ChiTotal | total:m2306_4 | -| ir.cpp:2307:12:2307:12 | ChiTotal | total:m2307_2 | -| ir.cpp:2307:12:2307:12 | SideEffect | ~m2306_4 | -| ir.cpp:2308:8:2308:8 | Address | &:r2308_1 | -| ir.cpp:2308:8:2308:8 | Condition | r2308_2 | -| ir.cpp:2308:8:2308:8 | Load | m2306_6 | -| ir.cpp:2309:9:2309:17 | Address | &:r2309_1 | -| ir.cpp:2309:16:2309:16 | StoreValue | r2309_2 | -| ir.cpp:2311:5:2311:13 | Address | &:r2311_1 | -| ir.cpp:2311:12:2311:12 | StoreValue | r2311_2 | -| ir.cpp:2312:1:2312:1 | Address | &:r2312_1 | -| ir.cpp:2312:1:2312:1 | Address | &:r2312_1 | -| ir.cpp:2312:1:2312:1 | Address | &:r2312_9 | -| ir.cpp:2312:1:2312:1 | Address | &:r2312_9 | -| ir.cpp:2312:1:2312:1 | Arg(this) | this:r2312_1 | -| ir.cpp:2312:1:2312:1 | Arg(this) | this:r2312_9 | -| ir.cpp:2312:1:2312:1 | CallTarget | func:r2312_2 | -| ir.cpp:2312:1:2312:1 | CallTarget | func:r2312_10 | -| ir.cpp:2312:1:2312:1 | ChiPartial | partial:m2312_4 | -| ir.cpp:2312:1:2312:1 | ChiPartial | partial:m2312_7 | -| ir.cpp:2312:1:2312:1 | ChiPartial | partial:m2312_12 | -| ir.cpp:2312:1:2312:1 | ChiPartial | partial:m2312_15 | -| ir.cpp:2312:1:2312:1 | ChiTotal | total:m2307_6 | -| ir.cpp:2312:1:2312:1 | ChiTotal | total:m2307_6 | -| ir.cpp:2312:1:2312:1 | ChiTotal | total:m2307_8 | -| ir.cpp:2312:1:2312:1 | ChiTotal | total:m2307_8 | -| ir.cpp:2312:1:2312:1 | SideEffect | m2307_8 | -| ir.cpp:2312:1:2312:1 | SideEffect | m2307_8 | -| ir.cpp:2312:1:2312:1 | SideEffect | ~m2307_6 | -| ir.cpp:2312:1:2312:1 | SideEffect | ~m2307_6 | -| ir.cpp:2314:6:2314:26 | ChiPartial | partial:m2314_3 | -| ir.cpp:2314:6:2314:26 | ChiTotal | total:m2314_2 | -| ir.cpp:2314:6:2314:26 | SideEffect | ~m2317_5 | -| ir.cpp:2315:12:2315:12 | Address | &:r2315_1 | -| ir.cpp:2315:12:2315:12 | Address | &:r2315_1 | -| ir.cpp:2315:12:2315:12 | Arg(this) | this:r2315_1 | -| ir.cpp:2315:12:2315:12 | CallTarget | func:r2315_3 | -| ir.cpp:2315:12:2315:12 | ChiPartial | partial:m2315_5 | -| ir.cpp:2315:12:2315:12 | ChiPartial | partial:m2315_7 | -| ir.cpp:2315:12:2315:12 | ChiTotal | total:m2314_4 | -| ir.cpp:2315:12:2315:12 | ChiTotal | total:m2315_2 | -| ir.cpp:2315:12:2315:12 | SideEffect | ~m2314_4 | -| ir.cpp:2316:12:2316:19 | CallTarget | func:r2316_1 | -| ir.cpp:2316:12:2316:19 | ChiPartial | partial:m2316_3 | -| ir.cpp:2316:12:2316:19 | ChiTotal | total:m2315_6 | -| ir.cpp:2316:12:2316:19 | SideEffect | ~m2315_6 | -| ir.cpp:2317:1:2317:1 | Address | &:r2317_1 | -| ir.cpp:2317:1:2317:1 | Address | &:r2317_1 | -| ir.cpp:2317:1:2317:1 | Arg(this) | this:r2317_1 | -| ir.cpp:2317:1:2317:1 | CallTarget | func:r2317_2 | -| ir.cpp:2317:1:2317:1 | ChiPartial | partial:m2317_4 | -| ir.cpp:2317:1:2317:1 | ChiPartial | partial:m2317_7 | -| ir.cpp:2317:1:2317:1 | ChiTotal | total:m2315_8 | -| ir.cpp:2317:1:2317:1 | ChiTotal | total:m2316_4 | -| ir.cpp:2317:1:2317:1 | SideEffect | m2315_8 | -| ir.cpp:2317:1:2317:1 | SideEffect | ~m2316_4 | -| ir.cpp:2327:32:2327:47 | Address | &:r2327_5 | -| ir.cpp:2327:32:2327:47 | ChiPartial | partial:m2327_3 | -| ir.cpp:2327:32:2327:47 | ChiTotal | total:m2327_2 | -| ir.cpp:2327:32:2327:47 | Load | m2329_3 | -| ir.cpp:2327:32:2327:47 | SideEffect | m2327_3 | -| ir.cpp:2329:9:2329:44 | Address | &:r2329_1 | -| ir.cpp:2329:16:2329:43 | StoreValue | r2329_2 | +| ir.cpp:1812:13:1812:13 | Load | m1811_1 | +| ir.cpp:1812:13:1812:13 | StoreValue | r1812_2 | +| ir.cpp:1812:16:1812:16 | Address | &:r1812_5 | +| ir.cpp:1812:16:1812:16 | Left | r1812_6 | +| ir.cpp:1812:16:1812:16 | Load | m1811_1 | +| ir.cpp:1812:16:1812:20 | Condition | r1812_10 | +| ir.cpp:1812:16:1812:20 | Left | r1812_8 | +| ir.cpp:1812:16:1812:20 | Right | r1812_9 | +| ir.cpp:1812:20:1812:20 | Right | r1812_7 | +| ir.cpp:1813:9:1813:9 | Address | &:r1813_6 | +| ir.cpp:1813:13:1813:13 | Address | &:r1813_1 | +| ir.cpp:1813:13:1813:13 | Left | r1813_2 | +| ir.cpp:1813:13:1813:13 | Load | m1811_1 | +| ir.cpp:1813:13:1813:17 | StoreValue | r1813_5 | +| ir.cpp:1813:17:1813:17 | Address | &:r1813_3 | +| ir.cpp:1813:17:1813:17 | Load | m1812_4 | +| ir.cpp:1813:17:1813:17 | Right | r1813_4 | +| ir.cpp:1816:9:1816:9 | Address | &:r1816_4 | +| ir.cpp:1816:13:1816:13 | Address | &:r1816_2 | +| ir.cpp:1816:13:1816:13 | Load | m1816_1 | +| ir.cpp:1816:13:1816:13 | Phi | from 2:m1811_1 | +| ir.cpp:1816:13:1816:13 | Phi | from 3:m1813_7 | +| ir.cpp:1816:13:1816:13 | StoreValue | r1816_3 | +| ir.cpp:1816:14:1816:25 | Address | &:r1816_6 | +| ir.cpp:1816:14:1816:25 | Condition | r1816_14 | +| ir.cpp:1816:20:1816:21 | Address | &:r1816_10 | +| ir.cpp:1816:20:1816:21 | Left | r1816_11 | +| ir.cpp:1816:20:1816:21 | Load | m1816_9 | +| ir.cpp:1816:20:1816:21 | Right | r1816_12 | +| ir.cpp:1816:20:1816:21 | Unary | r1816_13 | +| ir.cpp:1816:25:1816:25 | Address | &:r1816_7 | +| ir.cpp:1816:25:1816:25 | Load | m1816_5 | +| ir.cpp:1816:25:1816:25 | StoreValue | r1816_8 | +| ir.cpp:1817:9:1817:9 | Address | &:r1817_6 | +| ir.cpp:1817:13:1817:13 | Address | &:r1817_1 | +| ir.cpp:1817:13:1817:13 | Left | r1817_2 | +| ir.cpp:1817:13:1817:13 | Load | m1816_1 | +| ir.cpp:1817:13:1817:17 | StoreValue | r1817_5 | +| ir.cpp:1817:17:1817:17 | Address | &:r1817_3 | +| ir.cpp:1817:17:1817:17 | Load | m1816_5 | +| ir.cpp:1817:17:1817:17 | Right | r1817_4 | +| ir.cpp:1820:9:1820:29 | Address | &:r1820_6 | +| ir.cpp:1820:9:1820:29 | Condition | r1820_14 | +| ir.cpp:1820:13:1820:13 | Address | &:r1820_2 | +| ir.cpp:1820:13:1820:13 | Phi | from 4:m1816_1 | +| ir.cpp:1820:13:1820:13 | Phi | from 5:m1817_7 | +| ir.cpp:1820:17:1820:17 | Address | &:r1820_3 | +| ir.cpp:1820:17:1820:17 | Load | m1820_1 | +| ir.cpp:1820:17:1820:17 | StoreValue | r1820_4 | +| ir.cpp:1820:24:1820:25 | Address | &:r1820_10 | +| ir.cpp:1820:24:1820:25 | Left | r1820_11 | +| ir.cpp:1820:24:1820:25 | Load | m1820_9 | +| ir.cpp:1820:24:1820:25 | Right | r1820_12 | +| ir.cpp:1820:24:1820:25 | Unary | r1820_13 | +| ir.cpp:1820:29:1820:29 | Address | &:r1820_7 | +| ir.cpp:1820:29:1820:29 | Load | m1820_5 | +| ir.cpp:1820:29:1820:29 | StoreValue | r1820_8 | +| ir.cpp:1821:9:1821:9 | Address | &:r1821_6 | +| ir.cpp:1821:13:1821:13 | Address | &:r1821_1 | +| ir.cpp:1821:13:1821:13 | Left | r1821_2 | +| ir.cpp:1821:13:1821:13 | Load | m1820_1 | +| ir.cpp:1821:13:1821:17 | StoreValue | r1821_5 | +| ir.cpp:1821:17:1821:17 | Address | &:r1821_3 | +| ir.cpp:1821:17:1821:17 | Load | m1820_5 | +| ir.cpp:1821:17:1821:17 | Right | r1821_4 | +| ir.cpp:1824:9:1824:9 | Address | &:r1824_2 | +| ir.cpp:1824:9:1824:9 | Phi | from 6:m1820_1 | +| ir.cpp:1824:9:1824:9 | Phi | from 7:m1821_7 | +| ir.cpp:1824:13:1824:13 | Address | &:r1824_3 | +| ir.cpp:1824:13:1824:13 | Load | m1824_1 | +| ir.cpp:1824:13:1824:13 | StoreValue | r1824_4 | +| ir.cpp:1825:9:1825:9 | Address | &:r1825_1 | +| ir.cpp:1825:9:1825:9 | Condition | r1825_4 | +| ir.cpp:1825:9:1825:9 | Left | r1825_2 | +| ir.cpp:1825:9:1825:9 | Load | m1824_5 | +| ir.cpp:1825:9:1825:9 | Right | r1825_3 | +| ir.cpp:1826:9:1826:9 | Address | &:r1826_6 | +| ir.cpp:1826:13:1826:13 | Address | &:r1826_1 | +| ir.cpp:1826:13:1826:13 | Left | r1826_2 | +| ir.cpp:1826:13:1826:13 | Load | m1824_1 | +| ir.cpp:1826:13:1826:17 | StoreValue | r1826_5 | +| ir.cpp:1826:17:1826:17 | Address | &:r1826_3 | +| ir.cpp:1826:17:1826:17 | Load | m1824_5 | +| ir.cpp:1826:17:1826:17 | Right | r1826_4 | +| ir.cpp:1829:9:1829:18 | Address | &:r1829_2 | +| ir.cpp:1829:9:1829:18 | Condition | r1829_10 | +| ir.cpp:1829:9:1829:18 | Phi | from 8:m1824_1 | +| ir.cpp:1829:9:1829:18 | Phi | from 9:m1826_7 | +| ir.cpp:1829:13:1829:14 | Address | &:r1829_6 | +| ir.cpp:1829:13:1829:14 | Left | r1829_7 | +| ir.cpp:1829:13:1829:14 | Load | m1829_5 | +| ir.cpp:1829:13:1829:14 | Right | r1829_8 | +| ir.cpp:1829:13:1829:14 | Unary | r1829_9 | +| ir.cpp:1829:18:1829:18 | Address | &:r1829_3 | +| ir.cpp:1829:18:1829:18 | Load | m1824_5 | +| ir.cpp:1829:18:1829:18 | StoreValue | r1829_4 | +| ir.cpp:1830:9:1830:9 | Address | &:r1830_3 | +| ir.cpp:1830:9:1830:9 | Address | &:r1830_3 | +| ir.cpp:1830:9:1830:9 | Left | r1830_4 | +| ir.cpp:1830:9:1830:9 | Load | m1829_1 | +| ir.cpp:1830:9:1830:15 | StoreValue | r1830_5 | +| ir.cpp:1830:14:1830:15 | Address | &:r1830_1 | +| ir.cpp:1830:14:1830:15 | Load | m1829_5 | +| ir.cpp:1830:14:1830:15 | Right | r1830_2 | +| ir.cpp:1834:6:1834:26 | ChiPartial | partial:m1834_3 | +| ir.cpp:1834:6:1834:26 | ChiTotal | total:m1834_2 | +| ir.cpp:1834:6:1834:26 | SideEffect | m1834_3 | +| ir.cpp:1834:32:1834:32 | Address | &:r1834_5 | +| ir.cpp:1835:17:1835:17 | Address | &:r1835_1 | +| ir.cpp:1835:21:1835:21 | Address | &:r1835_2 | +| ir.cpp:1835:21:1835:21 | Load | m1834_6 | +| ir.cpp:1835:21:1835:21 | StoreValue | r1835_3 | +| ir.cpp:1835:24:1835:24 | Address | &:r1835_5 | +| ir.cpp:1835:24:1835:24 | Left | r1835_6 | +| ir.cpp:1835:24:1835:24 | Load | m1834_6 | +| ir.cpp:1835:24:1835:28 | Condition | r1835_8 | +| ir.cpp:1835:28:1835:28 | Right | r1835_7 | +| ir.cpp:1837:9:1837:9 | Address | &:r1837_6 | +| ir.cpp:1837:13:1837:13 | Address | &:r1837_1 | +| ir.cpp:1837:13:1837:13 | Left | r1837_2 | +| ir.cpp:1837:13:1837:13 | Load | m1834_6 | +| ir.cpp:1837:13:1837:17 | StoreValue | r1837_5 | +| ir.cpp:1837:17:1837:17 | Address | &:r1837_3 | +| ir.cpp:1837:17:1837:17 | Load | m1835_4 | +| ir.cpp:1837:17:1837:17 | Right | r1837_4 | +| ir.cpp:1840:9:1840:9 | Address | &:r1840_1 | +| ir.cpp:1841:13:1841:13 | Address | &:r1841_3 | +| ir.cpp:1841:17:1841:17 | Address | &:r1841_1 | +| ir.cpp:1841:17:1841:17 | Load | m1837_7 | +| ir.cpp:1841:17:1841:17 | StoreValue | r1841_2 | +| ir.cpp:1841:20:1841:20 | Address | &:r1841_5 | +| ir.cpp:1841:20:1841:20 | Left | r1841_6 | +| ir.cpp:1841:20:1841:20 | Load | m1837_7 | +| ir.cpp:1841:20:1841:24 | Condition | r1841_8 | +| ir.cpp:1841:24:1841:24 | Right | r1841_7 | +| ir.cpp:1843:9:1843:9 | Address | &:r1843_6 | +| ir.cpp:1843:13:1843:13 | Address | &:r1843_1 | +| ir.cpp:1843:13:1843:13 | Left | r1843_2 | +| ir.cpp:1843:13:1843:13 | Load | m1837_7 | +| ir.cpp:1843:13:1843:17 | StoreValue | r1843_5 | +| ir.cpp:1843:17:1843:17 | Address | &:r1843_3 | +| ir.cpp:1843:17:1843:17 | Load | m1841_4 | +| ir.cpp:1843:17:1843:17 | Right | r1843_4 | +| ir.cpp:1846:13:1846:13 | Address | &:r1846_3 | +| ir.cpp:1846:17:1846:17 | Address | &:r1846_1 | +| ir.cpp:1846:17:1846:17 | Load | m1843_7 | +| ir.cpp:1846:17:1846:17 | StoreValue | r1846_2 | +| ir.cpp:1846:18:1846:29 | Address | &:r1846_5 | +| ir.cpp:1846:18:1846:29 | Condition | r1846_11 | +| ir.cpp:1846:24:1846:25 | Address | &:r1846_9 | +| ir.cpp:1846:24:1846:25 | Load | m1846_8 | +| ir.cpp:1846:24:1846:25 | Unary | r1846_10 | +| ir.cpp:1846:29:1846:29 | Address | &:r1846_6 | +| ir.cpp:1846:29:1846:29 | Load | m1846_4 | +| ir.cpp:1846:29:1846:29 | StoreValue | r1846_7 | +| ir.cpp:1848:9:1848:9 | Address | &:r1848_6 | +| ir.cpp:1848:13:1848:13 | Address | &:r1848_1 | +| ir.cpp:1848:13:1848:13 | Left | r1848_2 | +| ir.cpp:1848:13:1848:13 | Load | m1843_7 | +| ir.cpp:1848:13:1848:17 | StoreValue | r1848_5 | +| ir.cpp:1848:17:1848:17 | Address | &:r1848_3 | +| ir.cpp:1848:17:1848:17 | Load | m1846_4 | +| ir.cpp:1848:17:1848:17 | Right | r1848_4 | +| ir.cpp:1851:13:1851:33 | Address | &:r1851_5 | +| ir.cpp:1851:13:1851:33 | Condition | r1851_11 | +| ir.cpp:1851:17:1851:17 | Address | &:r1851_1 | +| ir.cpp:1851:21:1851:21 | Address | &:r1851_2 | +| ir.cpp:1851:21:1851:21 | Load | m1848_7 | +| ir.cpp:1851:21:1851:21 | StoreValue | r1851_3 | +| ir.cpp:1851:28:1851:29 | Address | &:r1851_9 | +| ir.cpp:1851:28:1851:29 | Load | m1851_8 | +| ir.cpp:1851:28:1851:29 | Unary | r1851_10 | +| ir.cpp:1851:33:1851:33 | Address | &:r1851_6 | +| ir.cpp:1851:33:1851:33 | Load | m1851_4 | +| ir.cpp:1851:33:1851:33 | StoreValue | r1851_7 | +| ir.cpp:1853:9:1853:9 | Address | &:r1853_6 | +| ir.cpp:1853:13:1853:13 | Address | &:r1853_1 | +| ir.cpp:1853:13:1853:13 | Left | r1853_2 | +| ir.cpp:1853:13:1853:13 | Load | m1848_7 | +| ir.cpp:1853:13:1853:17 | StoreValue | r1853_5 | +| ir.cpp:1853:17:1853:17 | Address | &:r1853_3 | +| ir.cpp:1853:17:1853:17 | Load | m1851_4 | +| ir.cpp:1853:17:1853:17 | Right | r1853_4 | +| ir.cpp:1856:9:1856:9 | Address | &:r1856_1 | +| ir.cpp:1856:13:1856:13 | Address | &:r1856_2 | +| ir.cpp:1856:13:1856:13 | Load | m1853_7 | +| ir.cpp:1856:13:1856:13 | StoreValue | r1856_3 | +| ir.cpp:1857:13:1857:13 | Address | &:r1857_1 | +| ir.cpp:1857:13:1857:13 | Condition | r1857_2 | +| ir.cpp:1857:13:1857:13 | Load | m1856_4 | +| ir.cpp:1859:9:1859:9 | Address | &:r1859_6 | +| ir.cpp:1859:13:1859:13 | Address | &:r1859_1 | +| ir.cpp:1859:13:1859:13 | Left | r1859_2 | +| ir.cpp:1859:13:1859:13 | Load | m1853_7 | +| ir.cpp:1859:13:1859:17 | StoreValue | r1859_5 | +| ir.cpp:1859:17:1859:17 | Address | &:r1859_3 | +| ir.cpp:1859:17:1859:17 | Load | m1856_4 | +| ir.cpp:1859:17:1859:17 | Right | r1859_4 | +| ir.cpp:1862:13:1862:22 | Address | &:r1862_1 | +| ir.cpp:1862:13:1862:22 | Condition | r1862_7 | +| ir.cpp:1862:17:1862:18 | Address | &:r1862_5 | +| ir.cpp:1862:17:1862:18 | Load | m1862_4 | +| ir.cpp:1862:17:1862:18 | Unary | r1862_6 | +| ir.cpp:1862:22:1862:22 | Address | &:r1862_2 | +| ir.cpp:1862:22:1862:22 | Load | m1856_4 | +| ir.cpp:1862:22:1862:22 | StoreValue | r1862_3 | +| ir.cpp:1864:9:1864:9 | Address | &:r1864_3 | +| ir.cpp:1864:9:1864:9 | Address | &:r1864_3 | +| ir.cpp:1864:9:1864:9 | Left | r1864_4 | +| ir.cpp:1864:9:1864:9 | Load | m1859_7 | +| ir.cpp:1864:9:1864:15 | StoreValue | r1864_5 | +| ir.cpp:1864:14:1864:15 | Address | &:r1864_1 | +| ir.cpp:1864:14:1864:15 | Load | m1862_4 | +| ir.cpp:1864:14:1864:15 | Right | r1864_2 | +| ir.cpp:1870:5:1870:12 | Address | &:r1870_3 | +| ir.cpp:1870:5:1870:12 | SideEffect | ~m1870_6 | +| ir.cpp:1870:16:1870:16 | ChiPartial | partial:m1870_5 | +| ir.cpp:1870:16:1870:16 | ChiTotal | total:m1870_2 | +| ir.cpp:1870:16:1870:16 | StoreValue | r1870_4 | +| ir.cpp:1874:18:1874:25 | Address | &:r1874_3 | +| ir.cpp:1874:18:1874:25 | Arg(this) | this:r1874_3 | +| ir.cpp:1874:18:1874:25 | SideEffect | ~m1874_10 | +| ir.cpp:1874:27:1874:27 | Arg(0) | 0:r1874_5 | +| ir.cpp:1874:27:1874:28 | CallTarget | func:r1874_4 | +| ir.cpp:1874:27:1874:28 | ChiPartial | partial:m1874_7 | +| ir.cpp:1874:27:1874:28 | ChiPartial | partial:m1874_9 | +| ir.cpp:1874:27:1874:28 | ChiTotal | total:m1874_2 | +| ir.cpp:1874:27:1874:28 | ChiTotal | total:m1874_8 | +| ir.cpp:1874:27:1874:28 | SideEffect | ~m1874_2 | +| ir.cpp:1876:18:1876:25 | Address | &:r1876_3 | +| ir.cpp:1876:18:1876:25 | Arg(this) | this:r1876_3 | +| ir.cpp:1876:18:1876:25 | SideEffect | ~m1876_10 | +| ir.cpp:1876:28:1876:47 | CallTarget | func:r1876_4 | +| ir.cpp:1876:28:1876:47 | ChiPartial | partial:m1876_7 | +| ir.cpp:1876:28:1876:47 | ChiPartial | partial:m1876_9 | +| ir.cpp:1876:28:1876:47 | ChiTotal | total:m1876_2 | +| ir.cpp:1876:28:1876:47 | ChiTotal | total:m1876_8 | +| ir.cpp:1876:28:1876:47 | SideEffect | ~m1876_2 | +| ir.cpp:1876:46:1876:46 | Arg(0) | 0:r1876_5 | +| ir.cpp:1878:7:1878:19 | Address | &:r1878_3 | +| ir.cpp:1878:7:1878:19 | SideEffect | ~m1878_8 | +| ir.cpp:1878:23:1878:37 | ChiPartial | partial:m1878_7 | +| ir.cpp:1878:23:1878:37 | ChiTotal | total:m1878_2 | +| ir.cpp:1878:23:1878:37 | StoreValue | r1878_6 | +| ir.cpp:1878:23:1878:37 | Unary | r1878_4 | +| ir.cpp:1878:23:1878:37 | Unary | r1878_5 | +| ir.cpp:1880:5:1880:12 | Address | &:r1880_3 | +| ir.cpp:1880:5:1880:12 | SideEffect | ~m1880_7 | +| ir.cpp:1880:16:1880:23 | Address | &:r1880_4 | +| ir.cpp:1880:16:1880:23 | ChiPartial | partial:m1880_6 | +| ir.cpp:1880:16:1880:23 | ChiTotal | total:m1880_2 | +| ir.cpp:1880:16:1880:23 | Load | ~m1880_2 | +| ir.cpp:1880:16:1880:23 | StoreValue | r1880_5 | +| ir.cpp:1883:11:1883:11 | Address | &:r1883_5 | +| ir.cpp:1883:11:1883:11 | Address | &:r1883_5 | +| ir.cpp:1883:11:1883:11 | Address | &:r1883_7 | +| ir.cpp:1883:11:1883:11 | Address | &:r1883_7 | +| ir.cpp:1883:11:1883:11 | Address | &:r1883_10 | +| ir.cpp:1883:11:1883:11 | ChiPartial | partial:m1883_3 | +| ir.cpp:1883:11:1883:11 | ChiTotal | total:m1883_2 | +| ir.cpp:1883:11:1883:11 | Load | m0_20 | +| ir.cpp:1883:11:1883:11 | Load | m1883_6 | +| ir.cpp:1883:11:1883:11 | SideEffect | m0_14 | +| ir.cpp:1883:11:1883:11 | SideEffect | m1883_3 | +| ir.cpp:1888:12:1888:12 | Address | &:r1888_5 | +| ir.cpp:1888:12:1888:12 | Address | &:r1888_5 | +| ir.cpp:1888:12:1888:12 | Address | &:r1888_7 | +| ir.cpp:1888:12:1888:12 | Address | &:r1888_7 | +| ir.cpp:1888:12:1888:12 | Address | &:r1888_9 | +| ir.cpp:1888:12:1888:12 | Address | &:r1888_12 | +| ir.cpp:1888:12:1888:12 | Address | &:r1888_20 | +| ir.cpp:1888:12:1888:12 | Arg(this) | this:r0_5 | +| ir.cpp:1888:12:1888:12 | CallTarget | func:r1888_11 | +| ir.cpp:1888:12:1888:12 | ChiPartial | partial:m1888_3 | +| ir.cpp:1888:12:1888:12 | ChiPartial | partial:m1888_17 | +| ir.cpp:1888:12:1888:12 | ChiTotal | total:m1888_2 | +| ir.cpp:1888:12:1888:12 | ChiTotal | total:m1888_4 | +| ir.cpp:1888:12:1888:12 | Load | m0_2 | +| ir.cpp:1888:12:1888:12 | Load | m0_21 | +| ir.cpp:1888:12:1888:12 | Load | m1888_6 | +| ir.cpp:1888:12:1888:12 | Load | m1888_6 | +| ir.cpp:1888:12:1888:12 | SideEffect | m0_12 | +| ir.cpp:1888:12:1888:12 | SideEffect | ~m1888_4 | +| ir.cpp:1888:12:1888:12 | SideEffect | ~m1888_18 | +| ir.cpp:1888:12:1888:12 | Unary | r1888_10 | +| ir.cpp:1888:12:1888:12 | Unary | r1888_13 | +| ir.cpp:1888:12:1888:12 | Unary | r1888_14 | +| ir.cpp:1888:12:1888:12 | Unary | r1888_15 | +| ir.cpp:1888:12:1888:12 | Unary | r1888_16 | +| ir.cpp:1892:10:1892:12 | ChiPartial | partial:m1892_3 | +| ir.cpp:1892:10:1892:12 | ChiTotal | total:m1892_2 | +| ir.cpp:1892:10:1892:12 | SideEffect | ~m1894_18 | +| ir.cpp:1893:11:1893:11 | Address | &:r1893_1 | +| ir.cpp:1893:11:1893:11 | Address | &:r1893_1 | +| ir.cpp:1893:11:1893:11 | Arg(this) | this:r1893_1 | +| ir.cpp:1893:13:1893:13 | Address | &:r1893_4 | +| ir.cpp:1893:13:1893:13 | Address | &:r1893_4 | +| ir.cpp:1893:13:1893:13 | Arg(0) | 0:r1893_4 | +| ir.cpp:1893:13:1893:13 | ChiPartial | partial:m1893_11 | +| ir.cpp:1893:13:1893:13 | ChiTotal | total:m1893_7 | +| ir.cpp:1893:13:1893:13 | SideEffect | ~m1893_7 | +| ir.cpp:1893:13:1893:14 | CallTarget | func:r1893_3 | +| ir.cpp:1893:13:1893:14 | ChiPartial | partial:m1893_6 | +| ir.cpp:1893:13:1893:14 | ChiPartial | partial:m1893_9 | +| ir.cpp:1893:13:1893:14 | ChiTotal | total:m1892_4 | +| ir.cpp:1893:13:1893:14 | ChiTotal | total:m1893_2 | +| ir.cpp:1893:13:1893:14 | SideEffect | ~m1892_4 | +| ir.cpp:1894:9:1894:9 | Address | &:r1894_1 | +| ir.cpp:1894:9:1894:9 | Address | &:r1894_1 | +| ir.cpp:1894:9:1894:9 | Arg(this) | this:r1894_1 | +| ir.cpp:1894:9:1894:9 | ChiPartial | partial:m1894_21 | +| ir.cpp:1894:9:1894:9 | ChiTotal | total:m1893_10 | +| ir.cpp:1894:9:1894:9 | SideEffect | m1893_10 | +| ir.cpp:1894:11:1894:11 | CallTarget | func:r1894_2 | +| ir.cpp:1894:11:1894:11 | ChiPartial | partial:m1894_17 | +| ir.cpp:1894:11:1894:11 | ChiTotal | total:m1894_14 | +| ir.cpp:1894:11:1894:11 | SideEffect | ~m1894_14 | +| ir.cpp:1894:11:1894:11 | Unary | r1894_16 | +| ir.cpp:1894:13:1894:13 | Address | &:r1894_3 | +| ir.cpp:1894:13:1894:13 | Address | &:r1894_3 | +| ir.cpp:1894:13:1894:13 | Address | &:r1894_6 | +| ir.cpp:1894:13:1894:13 | Address | &:r1894_6 | +| ir.cpp:1894:13:1894:13 | Address | &:r1894_15 | +| ir.cpp:1894:13:1894:13 | Address | &:r1894_15 | +| ir.cpp:1894:13:1894:13 | Arg(0) | 0:r1894_6 | +| ir.cpp:1894:13:1894:13 | Arg(0) | 0:r1894_15 | +| ir.cpp:1894:13:1894:13 | Arg(this) | this:r1894_3 | +| ir.cpp:1894:13:1894:13 | CallTarget | func:r1894_5 | +| ir.cpp:1894:13:1894:13 | ChiPartial | partial:m1894_8 | +| ir.cpp:1894:13:1894:13 | ChiPartial | partial:m1894_11 | +| ir.cpp:1894:13:1894:13 | ChiPartial | partial:m1894_13 | +| ir.cpp:1894:13:1894:13 | ChiPartial | partial:m1894_23 | +| ir.cpp:1894:13:1894:13 | ChiTotal | total:m1893_12 | +| ir.cpp:1894:13:1894:13 | ChiTotal | total:m1894_4 | +| ir.cpp:1894:13:1894:13 | ChiTotal | total:m1894_9 | +| ir.cpp:1894:13:1894:13 | ChiTotal | total:m1894_12 | +| ir.cpp:1894:13:1894:13 | SideEffect | ~m1893_12 | +| ir.cpp:1894:13:1894:13 | SideEffect | ~m1894_9 | +| ir.cpp:1894:13:1894:13 | SideEffect | ~m1894_12 | +| ir.cpp:1894:13:1894:13 | Unary | r1894_3 | +| ir.cpp:1898:6:1898:14 | ChiPartial | partial:m1898_3 | +| ir.cpp:1898:6:1898:14 | ChiTotal | total:m1898_2 | +| ir.cpp:1898:6:1898:14 | SideEffect | m1898_3 | +| ir.cpp:1899:17:1899:18 | Address | &:r1899_1 | +| ir.cpp:1899:22:1899:40 | StoreValue | r1899_3 | +| ir.cpp:1899:22:1899:40 | Unary | r1899_2 | +| ir.cpp:1900:17:1900:23 | Address | &:r1900_1 | +| ir.cpp:1900:27:1900:34 | StoreValue | r1900_3 | +| ir.cpp:1900:27:1900:34 | Unary | r1900_2 | +| ir.cpp:1911:15:1911:15 | Address | &:r1911_5 | +| ir.cpp:1911:15:1911:15 | Address | &:r1911_5 | +| ir.cpp:1911:15:1911:15 | Address | &:r1911_7 | +| ir.cpp:1911:15:1911:15 | Address | &:r1911_7 | +| ir.cpp:1911:15:1911:15 | Address | &:r1911_15 | +| ir.cpp:1911:15:1911:15 | ChiPartial | partial:m1911_3 | +| ir.cpp:1911:15:1911:15 | ChiTotal | total:m1911_2 | +| ir.cpp:1911:15:1911:15 | Load | m1911_6 | +| ir.cpp:1911:15:1911:15 | Load | m1913_5 | +| ir.cpp:1911:15:1911:15 | SideEffect | m1911_3 | +| ir.cpp:1911:15:1911:15 | SideEffect | m1911_8 | +| ir.cpp:1911:47:1911:47 | Address | &:r1911_9 | +| ir.cpp:1911:47:1911:47 | Address | &:r1911_9 | +| ir.cpp:1911:47:1911:47 | Address | &:r1911_11 | +| ir.cpp:1911:47:1911:47 | Address | &:r1911_11 | +| ir.cpp:1911:47:1911:47 | Load | m1911_10 | +| ir.cpp:1911:47:1911:47 | SideEffect | m1911_12 | +| ir.cpp:1913:13:1913:21 | Address | &:r1913_1 | +| ir.cpp:1913:20:1913:20 | Address | &:r1913_2 | +| ir.cpp:1913:20:1913:20 | Load | m1911_10 | +| ir.cpp:1913:20:1913:20 | StoreValue | r1913_4 | +| ir.cpp:1913:20:1913:20 | Unary | r1913_3 | +| ir.cpp:1917:10:1917:14 | ChiPartial | partial:m1917_3 | +| ir.cpp:1917:10:1917:14 | ChiTotal | total:m1917_2 | +| ir.cpp:1917:10:1917:14 | SideEffect | ~m1919_12 | +| ir.cpp:1918:19:1918:19 | Address | &:r1918_1 | +| ir.cpp:1919:9:1919:9 | Address | &:r1919_1 | +| ir.cpp:1919:9:1919:9 | Address | &:r1919_1 | +| ir.cpp:1919:9:1919:9 | Arg(this) | this:r1919_1 | +| ir.cpp:1919:9:1919:9 | ChiPartial | partial:m1919_9 | +| ir.cpp:1919:9:1919:9 | ChiTotal | total:m1918_2 | +| ir.cpp:1919:9:1919:9 | SideEffect | m1918_2 | +| ir.cpp:1919:11:1919:33 | CallTarget | func:r1919_2 | +| ir.cpp:1919:11:1919:33 | ChiPartial | partial:m1919_5 | +| ir.cpp:1919:11:1919:33 | ChiTotal | total:m1917_4 | +| ir.cpp:1919:11:1919:33 | SideEffect | ~m1917_4 | +| ir.cpp:1919:35:1919:41 | Address | &:r1919_3 | +| ir.cpp:1919:35:1919:41 | Address | &:r1919_3 | +| ir.cpp:1919:35:1919:41 | Arg(0) | 0:r1919_3 | +| ir.cpp:1919:35:1919:41 | ChiPartial | partial:m1919_11 | +| ir.cpp:1919:35:1919:41 | ChiTotal | total:m1919_6 | +| ir.cpp:1919:35:1919:41 | SideEffect | ~m1919_6 | +| ir.cpp:1924:13:1924:13 | Address | &:r1924_5 | +| ir.cpp:1924:13:1924:13 | Address | &:r1924_5 | +| ir.cpp:1924:13:1924:13 | Address | &:r1924_7 | +| ir.cpp:1924:13:1924:13 | Address | &:r1924_7 | +| ir.cpp:1924:13:1924:13 | Address | &:r1924_10 | +| ir.cpp:1924:13:1924:13 | ChiPartial | partial:m1924_3 | +| ir.cpp:1924:13:1924:13 | ChiTotal | total:m1924_2 | +| ir.cpp:1924:13:1924:13 | Load | m1924_6 | +| ir.cpp:1924:13:1924:13 | Load | m1928_9 | +| ir.cpp:1924:13:1924:13 | SideEffect | m1924_3 | +| ir.cpp:1924:13:1924:13 | SideEffect | m1924_8 | +| ir.cpp:1925:13:1925:29 | Address | &:r1925_1 | +| ir.cpp:1925:13:1925:29 | Address | &:r1925_3 | +| ir.cpp:1926:13:1926:14 | Address | &:r1926_4 | +| ir.cpp:1926:13:1926:19 | ChiPartial | partial:m1926_5 | +| ir.cpp:1926:13:1926:19 | ChiTotal | total:m1925_2 | +| ir.cpp:1926:14:1926:14 | Unary | r1926_2 | +| ir.cpp:1926:14:1926:14 | Unary | r1926_3 | +| ir.cpp:1926:18:1926:19 | StoreValue | r1926_1 | +| ir.cpp:1927:13:1927:14 | Address | &:r1927_4 | +| ir.cpp:1927:13:1927:19 | ChiPartial | partial:m1927_5 | +| ir.cpp:1927:13:1927:19 | ChiTotal | total:m1925_4 | +| ir.cpp:1927:14:1927:14 | Unary | r1927_2 | +| ir.cpp:1927:14:1927:14 | Unary | r1927_3 | +| ir.cpp:1927:18:1927:19 | StoreValue | r1927_1 | +| ir.cpp:1928:13:1928:27 | Address | &:r1928_1 | +| ir.cpp:1928:20:1928:21 | Left | r1928_4 | +| ir.cpp:1928:20:1928:21 | Load | m1926_5 | +| ir.cpp:1928:20:1928:26 | StoreValue | r1928_8 | +| ir.cpp:1928:21:1928:21 | Address | &:r1928_3 | +| ir.cpp:1928:21:1928:21 | Unary | r1928_2 | +| ir.cpp:1928:25:1928:26 | Load | m1927_5 | +| ir.cpp:1928:25:1928:26 | Right | r1928_7 | +| ir.cpp:1928:26:1928:26 | Address | &:r1928_6 | +| ir.cpp:1928:26:1928:26 | Unary | r1928_5 | +| ir.cpp:1932:10:1932:14 | ChiPartial | partial:m1932_3 | +| ir.cpp:1932:10:1932:14 | ChiTotal | total:m1932_2 | +| ir.cpp:1932:10:1932:14 | SideEffect | ~m1934_5 | +| ir.cpp:1933:19:1933:19 | Address | &:r1933_1 | +| ir.cpp:1934:9:1934:9 | Address | &:r1934_1 | +| ir.cpp:1934:9:1934:9 | Address | &:r1934_1 | +| ir.cpp:1934:9:1934:9 | Arg(this) | this:r1934_1 | +| ir.cpp:1934:9:1934:9 | ChiPartial | partial:m1934_7 | +| ir.cpp:1934:9:1934:9 | ChiTotal | total:m1933_2 | +| ir.cpp:1934:9:1934:9 | SideEffect | m1933_2 | +| ir.cpp:1934:11:1934:50 | CallTarget | func:r1934_2 | +| ir.cpp:1934:11:1934:50 | ChiPartial | partial:m1934_4 | +| ir.cpp:1934:11:1934:50 | ChiTotal | total:m1932_4 | +| ir.cpp:1934:11:1934:50 | SideEffect | ~m1932_4 | +| ir.cpp:1938:24:1938:24 | Address | &:r1938_3 | +| ir.cpp:1938:24:1938:24 | Address | &:r1938_3 | +| ir.cpp:1938:24:1938:24 | SideEffect | ~m1938_6 | +| ir.cpp:1938:24:1938:24 | SideEffect | ~m1938_6 | +| ir.cpp:1938:42:1938:43 | ChiPartial | partial:m1938_5 | +| ir.cpp:1938:42:1938:43 | ChiPartial | partial:m1938_5 | +| ir.cpp:1938:42:1938:43 | ChiTotal | total:m1938_2 | +| ir.cpp:1938:42:1938:43 | ChiTotal | total:m1938_2 | +| ir.cpp:1938:42:1938:43 | StoreValue | r1938_4 | +| ir.cpp:1938:42:1938:43 | StoreValue | r1938_4 | +| ir.cpp:1940:5:1940:28 | Address | &:r1940_5 | +| ir.cpp:1940:5:1940:28 | ChiPartial | partial:m1940_3 | +| ir.cpp:1940:5:1940:28 | ChiTotal | total:m1940_2 | +| ir.cpp:1940:5:1940:28 | Load | m1943_8 | +| ir.cpp:1940:5:1940:28 | SideEffect | m1940_3 | +| ir.cpp:1941:9:1941:17 | Address | &:r1941_1 | +| ir.cpp:1941:21:1941:40 | Address | &:r1941_2 | +| ir.cpp:1941:21:1941:40 | Load | ~m1940_3 | +| ir.cpp:1941:21:1941:40 | StoreValue | r1941_3 | +| ir.cpp:1942:10:1942:19 | Address | &:r1942_1 | +| ir.cpp:1942:23:1942:43 | Address | &:r1942_2 | +| ir.cpp:1942:23:1942:43 | Load | ~m1940_3 | +| ir.cpp:1942:23:1942:43 | StoreValue | r1942_3 | +| ir.cpp:1943:5:1943:39 | Address | &:r1943_1 | +| ir.cpp:1943:12:1943:20 | Address | &:r1943_2 | +| ir.cpp:1943:12:1943:20 | Left | r1943_3 | +| ir.cpp:1943:12:1943:20 | Load | m1941_4 | +| ir.cpp:1943:12:1943:38 | StoreValue | r1943_7 | +| ir.cpp:1943:24:1943:38 | Right | r1943_6 | +| ir.cpp:1943:29:1943:38 | Address | &:r1943_4 | +| ir.cpp:1943:29:1943:38 | Load | m1942_4 | +| ir.cpp:1943:29:1943:38 | Unary | r1943_5 | +| ir.cpp:1948:5:1948:16 | Address | &:r1948_7 | +| ir.cpp:1948:5:1948:16 | ChiPartial | partial:m1948_3 | +| ir.cpp:1948:5:1948:16 | ChiTotal | total:m1948_2 | +| ir.cpp:1948:5:1948:16 | Load | m1950_4 | +| ir.cpp:1948:5:1948:16 | SideEffect | m1948_3 | +| ir.cpp:1948:22:1948:22 | Address | &:r1948_5 | +| ir.cpp:1949:9:1949:9 | Address | &:r1949_1 | +| ir.cpp:1949:9:1949:9 | Left | r1949_2 | +| ir.cpp:1949:9:1949:9 | Load | m1948_6 | +| ir.cpp:1949:9:1949:14 | Condition | r1949_4 | +| ir.cpp:1949:13:1949:14 | Right | r1949_3 | +| ir.cpp:1950:9:1950:17 | Address | &:r1950_1 | +| ir.cpp:1950:16:1950:16 | Address | &:r1950_2 | +| ir.cpp:1950:16:1950:16 | Load | m1948_6 | +| ir.cpp:1950:16:1950:16 | StoreValue | r1950_3 | +| ir.cpp:1952:9:1952:20 | CallTarget | func:r1952_1 | +| ir.cpp:1952:9:1952:20 | ChiPartial | partial:m1952_3 | +| ir.cpp:1952:9:1952:20 | ChiTotal | total:m1948_4 | +| ir.cpp:1952:9:1952:20 | SideEffect | ~m1948_4 | +| ir.cpp:1956:5:1956:17 | Address | &:r1956_8 | +| ir.cpp:1956:5:1956:17 | ChiPartial | partial:m1956_3 | +| ir.cpp:1956:5:1956:17 | ChiTotal | total:m1956_2 | +| ir.cpp:1956:5:1956:17 | Load | m1960_4 | +| ir.cpp:1956:5:1956:17 | SideEffect | m1956_3 | +| ir.cpp:1956:23:1956:23 | Address | &:r1956_5 | +| ir.cpp:1957:9:1957:9 | Address | &:r1957_1 | +| ir.cpp:1957:9:1957:9 | Left | r1957_2 | +| ir.cpp:1957:9:1957:9 | Load | m1956_6 | +| ir.cpp:1957:9:1957:14 | Condition | r1957_4 | +| ir.cpp:1957:13:1957:14 | Right | r1957_3 | +| ir.cpp:1958:9:1958:20 | CallTarget | func:r1958_1 | +| ir.cpp:1958:9:1958:20 | ChiPartial | partial:m1958_3 | +| ir.cpp:1958:9:1958:20 | ChiTotal | total:m1956_4 | +| ir.cpp:1958:9:1958:20 | SideEffect | ~m1956_4 | +| ir.cpp:1960:5:1960:13 | Address | &:r1960_1 | +| ir.cpp:1960:12:1960:12 | Address | &:r1960_2 | +| ir.cpp:1960:12:1960:12 | Load | m1956_6 | +| ir.cpp:1960:12:1960:12 | StoreValue | r1960_3 | +| ir.cpp:1963:5:1963:19 | Address | &:r1963_7 | +| ir.cpp:1963:5:1963:19 | ChiPartial | partial:m1963_3 | +| ir.cpp:1963:5:1963:19 | ChiTotal | total:m1963_2 | +| ir.cpp:1963:5:1963:19 | Load | m1964_4 | +| ir.cpp:1963:5:1963:19 | SideEffect | m1963_3 | +| ir.cpp:1963:25:1963:25 | Address | &:r1963_5 | +| ir.cpp:1964:5:1964:13 | Address | &:r1964_1 | +| ir.cpp:1964:12:1964:12 | Address | &:r1964_2 | +| ir.cpp:1964:12:1964:12 | Load | m1963_6 | +| ir.cpp:1964:12:1964:12 | StoreValue | r1964_3 | +| ir.cpp:1967:6:1967:43 | ChiPartial | partial:m1967_3 | +| ir.cpp:1967:6:1967:43 | ChiTotal | total:m1967_2 | +| ir.cpp:1967:6:1967:43 | SideEffect | ~m1975_6 | +| ir.cpp:1968:7:1968:7 | Address | &:r1968_1 | +| ir.cpp:1968:7:1968:7 | Address | &:r1968_1 | +| ir.cpp:1968:7:1968:7 | Arg(this) | this:r1968_1 | +| ir.cpp:1968:7:1968:7 | CallTarget | func:r1968_3 | +| ir.cpp:1968:7:1968:7 | ChiPartial | partial:m1968_5 | +| ir.cpp:1968:7:1968:7 | ChiPartial | partial:m1968_7 | +| ir.cpp:1968:7:1968:7 | ChiTotal | total:m1967_4 | +| ir.cpp:1968:7:1968:7 | ChiTotal | total:m1968_2 | +| ir.cpp:1968:7:1968:7 | SideEffect | ~m1967_4 | +| ir.cpp:1969:9:1969:9 | Address | &:r1969_1 | +| ir.cpp:1970:5:1970:5 | Address | &:r1970_7 | +| ir.cpp:1970:11:1970:30 | CallTarget | func:r1970_2 | +| ir.cpp:1970:11:1970:30 | ChiPartial | partial:m1970_5 | +| ir.cpp:1970:11:1970:30 | ChiTotal | total:m1968_6 | +| ir.cpp:1970:11:1970:30 | SideEffect | ~m1968_6 | +| ir.cpp:1970:11:1970:30 | StoreValue | r1970_4 | +| ir.cpp:1970:32:1970:33 | Arg(0) | 0:r1970_3 | +| ir.cpp:1971:9:1971:9 | Address | &:r1971_1 | +| ir.cpp:1972:5:1972:5 | Address | &:r1972_6 | +| ir.cpp:1972:9:1972:31 | CallTarget | func:r1972_1 | +| ir.cpp:1972:9:1972:31 | ChiPartial | partial:m1972_4 | +| ir.cpp:1972:9:1972:31 | ChiTotal | total:m1970_6 | +| ir.cpp:1972:9:1972:31 | SideEffect | ~m1970_6 | +| ir.cpp:1972:9:1972:31 | StoreValue | r1972_3 | +| ir.cpp:1972:33:1972:34 | Arg(0) | 0:r1972_2 | +| ir.cpp:1973:9:1973:9 | Address | &:r1973_1 | +| ir.cpp:1974:5:1974:5 | Address | &:r1974_6 | +| ir.cpp:1974:9:1974:23 | CallTarget | func:r1974_1 | +| ir.cpp:1974:9:1974:23 | ChiPartial | partial:m1974_4 | +| ir.cpp:1974:9:1974:23 | ChiTotal | total:m1972_5 | +| ir.cpp:1974:9:1974:23 | SideEffect | ~m1972_5 | +| ir.cpp:1974:9:1974:23 | StoreValue | r1974_3 | +| ir.cpp:1974:25:1974:26 | Arg(0) | 0:r1974_2 | +| ir.cpp:1975:1:1975:1 | Address | &:r1975_2 | +| ir.cpp:1975:1:1975:1 | Address | &:r1975_2 | +| ir.cpp:1975:1:1975:1 | Arg(this) | this:r1975_2 | +| ir.cpp:1975:1:1975:1 | CallTarget | func:r1975_3 | +| ir.cpp:1975:1:1975:1 | ChiPartial | partial:m1975_5 | +| ir.cpp:1975:1:1975:1 | ChiPartial | partial:m1975_8 | +| ir.cpp:1975:1:1975:1 | ChiTotal | total:m1968_8 | +| ir.cpp:1975:1:1975:1 | ChiTotal | total:m1974_5 | +| ir.cpp:1975:1:1975:1 | SideEffect | m1968_8 | +| ir.cpp:1975:1:1975:1 | SideEffect | ~m1974_5 | +| ir.cpp:1977:6:1977:23 | ChiPartial | partial:m1977_3 | +| ir.cpp:1977:6:1977:23 | ChiTotal | total:m1977_2 | +| ir.cpp:1977:6:1977:23 | SideEffect | m1977_3 | +| ir.cpp:1978:7:1978:7 | Address | &:r1978_1 | +| ir.cpp:1978:10:1978:10 | Address | &:r1978_3 | +| ir.cpp:1979:3:1979:3 | Address | &:r1979_5 | +| ir.cpp:1979:7:1979:7 | Address | &:r1979_2 | +| ir.cpp:1979:7:1979:7 | Address | &:r1979_2 | +| ir.cpp:1979:7:1979:12 | Load | m1979_3 | +| ir.cpp:1979:7:1979:12 | StoreValue | r1979_4 | +| ir.cpp:1979:11:1979:12 | StoreValue | r1979_1 | +| ir.cpp:1982:6:1982:38 | ChiPartial | partial:m1982_3 | +| ir.cpp:1982:6:1982:38 | ChiTotal | total:m1982_2 | +| ir.cpp:1982:6:1982:38 | SideEffect | m1982_3 | +| ir.cpp:1983:7:1983:7 | Address | &:r1983_1 | +| ir.cpp:1983:10:1983:10 | Address | &:r1983_3 | +| ir.cpp:1983:13:1983:14 | StoreValue | r1983_4 | +| ir.cpp:1984:3:1984:3 | Address | &:r1984_7 | +| ir.cpp:1984:8:1984:8 | Address | &:r1984_2 | +| ir.cpp:1984:8:1984:8 | Address | &:r1984_2 | +| ir.cpp:1984:8:1984:8 | Address | &:r1984_2 | +| ir.cpp:1984:8:1984:8 | Left | r1984_3 | +| ir.cpp:1984:8:1984:8 | Load | m1983_5 | +| ir.cpp:1984:8:1984:14 | Load | m1984_5 | +| ir.cpp:1984:8:1984:14 | StoreValue | r1984_4 | +| ir.cpp:1984:8:1984:14 | StoreValue | r1984_6 | +| ir.cpp:1984:13:1984:14 | Right | r1984_1 | +| ir.cpp:1991:15:1991:43 | Address | &:r1991_5 | +| ir.cpp:1991:15:1991:43 | ChiPartial | partial:m1991_3 | +| ir.cpp:1991:15:1991:43 | ChiTotal | total:m1991_2 | +| ir.cpp:1991:15:1991:43 | Load | m1992_4 | +| ir.cpp:1991:15:1991:43 | SideEffect | m1991_3 | +| ir.cpp:1992:9:1992:17 | Address | &:r1992_1 | +| ir.cpp:1992:16:1992:16 | StoreValue | r1992_3 | +| ir.cpp:1992:16:1992:16 | Unary | r1992_2 | +| ir.cpp:1994:14:1994:39 | Address | &:r1994_5 | +| ir.cpp:1994:14:1994:39 | ChiPartial | partial:m1994_3 | +| ir.cpp:1994:14:1994:39 | ChiTotal | total:m1994_2 | +| ir.cpp:1994:14:1994:39 | Load | m1995_4 | +| ir.cpp:1994:14:1994:39 | SideEffect | m1994_3 | +| ir.cpp:1995:9:1995:17 | Address | &:r1995_1 | +| ir.cpp:1995:16:1995:16 | Address | &:r1995_2 | +| ir.cpp:1995:16:1995:16 | Load | ~m1994_3 | +| ir.cpp:1995:16:1995:16 | StoreValue | r1995_3 | +| ir.cpp:1999:6:1999:55 | ChiPartial | partial:m1999_3 | +| ir.cpp:1999:6:1999:55 | ChiTotal | total:m1999_2 | +| ir.cpp:1999:6:1999:55 | SideEffect | ~m2014_4 | +| ir.cpp:2000:7:2000:7 | Address | &:r2000_1 | +| ir.cpp:2002:7:2002:35 | CallTarget | func:r2002_2 | +| ir.cpp:2002:7:2002:35 | ChiPartial | partial:m2002_4 | +| ir.cpp:2002:7:2002:35 | ChiTotal | total:m1999_4 | +| ir.cpp:2002:7:2002:35 | SideEffect | ~m1999_4 | +| ir.cpp:2002:7:2002:35 | Unary | r2002_3 | +| ir.cpp:2003:5:2003:36 | CallTarget | func:r2003_1 | +| ir.cpp:2003:5:2003:36 | ChiPartial | partial:m2003_3 | +| ir.cpp:2003:5:2003:36 | ChiTotal | total:m2002_5 | +| ir.cpp:2003:5:2003:36 | SideEffect | ~m2002_5 | +| ir.cpp:2003:5:2003:36 | Unary | r2003_2 | +| ir.cpp:2004:7:2004:32 | CallTarget | func:r2004_2 | +| ir.cpp:2004:7:2004:32 | ChiPartial | partial:m2004_4 | +| ir.cpp:2004:7:2004:32 | ChiTotal | total:m2003_4 | +| ir.cpp:2004:7:2004:32 | SideEffect | ~m2003_4 | +| ir.cpp:2005:5:2005:33 | CallTarget | func:r2005_1 | +| ir.cpp:2005:5:2005:33 | ChiPartial | partial:m2005_3 | +| ir.cpp:2005:5:2005:33 | ChiTotal | total:m2004_5 | +| ir.cpp:2005:5:2005:33 | SideEffect | ~m2004_5 | +| ir.cpp:2007:7:2007:7 | Address | &:r2007_1 | +| ir.cpp:2008:5:2008:5 | Address | &:r2008_7 | +| ir.cpp:2008:11:2008:39 | Address | &:r2008_3 | +| ir.cpp:2008:11:2008:39 | CallTarget | func:r2008_2 | +| ir.cpp:2008:11:2008:39 | ChiPartial | partial:m2008_4 | +| ir.cpp:2008:11:2008:39 | ChiTotal | total:m2005_4 | +| ir.cpp:2008:11:2008:39 | SideEffect | ~m2005_4 | +| ir.cpp:2008:40:2008:42 | Load | ~m2008_5 | +| ir.cpp:2008:40:2008:42 | StoreValue | r2008_6 | +| ir.cpp:2009:7:2009:7 | Address | &:r2009_1 | +| ir.cpp:2010:5:2010:5 | Address | &:r2010_6 | +| ir.cpp:2010:9:2010:40 | Address | &:r2010_2 | +| ir.cpp:2010:9:2010:40 | CallTarget | func:r2010_1 | +| ir.cpp:2010:9:2010:40 | ChiPartial | partial:m2010_3 | +| ir.cpp:2010:9:2010:40 | ChiTotal | total:m2008_5 | +| ir.cpp:2010:9:2010:40 | SideEffect | ~m2008_5 | +| ir.cpp:2010:41:2010:43 | Load | ~m2010_4 | +| ir.cpp:2010:41:2010:43 | StoreValue | r2010_5 | +| ir.cpp:2011:7:2011:7 | Address | &:r2011_1 | +| ir.cpp:2012:5:2012:5 | Address | &:r2012_6 | +| ir.cpp:2012:11:2012:36 | CallTarget | func:r2012_2 | +| ir.cpp:2012:11:2012:36 | ChiPartial | partial:m2012_4 | +| ir.cpp:2012:11:2012:36 | ChiTotal | total:m2010_4 | +| ir.cpp:2012:11:2012:36 | SideEffect | ~m2010_4 | +| ir.cpp:2012:11:2012:36 | StoreValue | r2012_3 | +| ir.cpp:2013:7:2013:7 | Address | &:r2013_1 | +| ir.cpp:2014:5:2014:5 | Address | &:r2014_5 | +| ir.cpp:2014:9:2014:37 | CallTarget | func:r2014_1 | +| ir.cpp:2014:9:2014:37 | ChiPartial | partial:m2014_3 | +| ir.cpp:2014:9:2014:37 | ChiTotal | total:m2012_5 | +| ir.cpp:2014:9:2014:37 | SideEffect | ~m2012_5 | +| ir.cpp:2014:9:2014:37 | StoreValue | r2014_2 | +| ir.cpp:2017:6:2017:18 | ChiPartial | partial:m2017_3 | +| ir.cpp:2017:6:2017:18 | ChiTotal | total:m2017_2 | +| ir.cpp:2017:6:2017:18 | SideEffect | m2017_3 | +| ir.cpp:2018:18:2018:18 | Address | &:r2018_1 | +| ir.cpp:2019:5:2019:5 | Address | &:r2019_1 | +| ir.cpp:2019:5:2019:5 | Load | m2018_2 | +| ir.cpp:2028:6:2028:24 | ChiPartial | partial:m2028_3 | +| ir.cpp:2028:6:2028:24 | ChiTotal | total:m2028_2 | +| ir.cpp:2028:6:2028:24 | SideEffect | ~m2036_5 | +| ir.cpp:2029:12:2029:12 | Address | &:r2029_1 | +| ir.cpp:2031:5:2031:19 | ChiPartial | partial:m2031_7 | +| ir.cpp:2031:5:2031:19 | ChiTotal | total:m2031_5 | +| ir.cpp:2031:7:2031:12 | CallTarget | func:r2031_2 | +| ir.cpp:2031:7:2031:12 | ChiPartial | partial:m2031_4 | +| ir.cpp:2031:7:2031:12 | ChiTotal | total:m2028_4 | +| ir.cpp:2031:7:2031:12 | SideEffect | ~m2028_4 | +| ir.cpp:2031:7:2031:12 | Unary | r2031_3 | +| ir.cpp:2031:13:2031:16 | Address | &:r2031_6 | +| ir.cpp:2032:5:2032:19 | ChiPartial | partial:m2032_7 | +| ir.cpp:2032:5:2032:19 | ChiTotal | total:m2032_5 | +| ir.cpp:2032:7:2032:12 | CallTarget | func:r2032_2 | +| ir.cpp:2032:7:2032:12 | ChiPartial | partial:m2032_4 | +| ir.cpp:2032:7:2032:12 | ChiTotal | total:m2031_8 | +| ir.cpp:2032:7:2032:12 | SideEffect | ~m2031_8 | +| ir.cpp:2032:7:2032:12 | Unary | r2032_3 | +| ir.cpp:2032:13:2032:16 | Address | &:r2032_6 | +| ir.cpp:2033:5:2033:15 | Address | &:r2033_1 | +| ir.cpp:2033:5:2033:15 | Address | &:r2033_1 | +| ir.cpp:2033:7:2033:13 | CallTarget | func:r2033_3 | +| ir.cpp:2033:7:2033:13 | ChiPartial | partial:m2033_5 | +| ir.cpp:2033:7:2033:13 | ChiTotal | total:m2032_8 | +| ir.cpp:2033:7:2033:13 | SideEffect | ~m2032_8 | +| ir.cpp:2033:7:2033:13 | StoreValue | r2033_4 | +| ir.cpp:2034:5:2034:18 | CallTarget | func:r2034_1 | +| ir.cpp:2034:5:2034:18 | ChiPartial | partial:m2034_3 | +| ir.cpp:2034:5:2034:18 | ChiTotal | total:m2033_6 | +| ir.cpp:2034:5:2034:18 | SideEffect | ~m2033_6 | +| ir.cpp:2034:5:2034:18 | Unary | r2034_2 | +| ir.cpp:2034:5:2034:25 | ChiPartial | partial:m2034_6 | +| ir.cpp:2034:5:2034:25 | ChiTotal | total:m2034_4 | +| ir.cpp:2034:19:2034:22 | Address | &:r2034_5 | +| ir.cpp:2035:5:2035:18 | CallTarget | func:r2035_1 | +| ir.cpp:2035:5:2035:18 | ChiPartial | partial:m2035_3 | +| ir.cpp:2035:5:2035:18 | ChiTotal | total:m2034_7 | +| ir.cpp:2035:5:2035:18 | SideEffect | ~m2034_7 | +| ir.cpp:2035:5:2035:18 | Unary | r2035_2 | +| ir.cpp:2035:5:2035:25 | ChiPartial | partial:m2035_6 | +| ir.cpp:2035:5:2035:25 | ChiTotal | total:m2035_4 | +| ir.cpp:2035:19:2035:22 | Address | &:r2035_5 | +| ir.cpp:2036:5:2036:19 | CallTarget | func:r2036_2 | +| ir.cpp:2036:5:2036:19 | ChiPartial | partial:m2036_4 | +| ir.cpp:2036:5:2036:19 | ChiTotal | total:m2035_7 | +| ir.cpp:2036:5:2036:19 | SideEffect | ~m2035_7 | +| ir.cpp:2036:5:2036:19 | StoreValue | r2036_3 | +| ir.cpp:2036:5:2036:21 | Address | &:r2036_1 | +| ir.cpp:2036:5:2036:21 | Address | &:r2036_1 | +| ir.cpp:2039:6:2039:21 | ChiPartial | partial:m2039_3 | +| ir.cpp:2039:6:2039:21 | ChiTotal | total:m2039_2 | +| ir.cpp:2039:6:2039:21 | SideEffect | ~m2043_6 | +| ir.cpp:2040:7:2040:7 | Address | &:r2040_1 | +| ir.cpp:2040:7:2040:7 | Address | &:r2040_1 | +| ir.cpp:2040:7:2040:7 | Arg(this) | this:r2040_1 | +| ir.cpp:2040:7:2040:7 | CallTarget | func:r2040_3 | +| ir.cpp:2040:7:2040:7 | ChiPartial | partial:m2040_5 | +| ir.cpp:2040:7:2040:7 | ChiPartial | partial:m2040_7 | +| ir.cpp:2040:7:2040:7 | ChiTotal | total:m2039_4 | +| ir.cpp:2040:7:2040:7 | ChiTotal | total:m2040_2 | +| ir.cpp:2040:7:2040:7 | SideEffect | ~m2039_4 | +| ir.cpp:2041:11:2041:13 | Address | &:r2041_1 | +| ir.cpp:2041:23:2041:45 | StoreValue | r2041_2 | +| ir.cpp:2042:5:2042:7 | Address | &:r2042_3 | +| ir.cpp:2042:13:2042:32 | StoreValue | r2042_2 | +| ir.cpp:2043:1:2043:1 | Address | &:r2043_2 | +| ir.cpp:2043:1:2043:1 | Address | &:r2043_2 | +| ir.cpp:2043:1:2043:1 | Arg(this) | this:r2043_2 | +| ir.cpp:2043:1:2043:1 | CallTarget | func:r2043_3 | +| ir.cpp:2043:1:2043:1 | ChiPartial | partial:m2043_5 | +| ir.cpp:2043:1:2043:1 | ChiPartial | partial:m2043_8 | +| ir.cpp:2043:1:2043:1 | ChiTotal | total:m2040_6 | +| ir.cpp:2043:1:2043:1 | ChiTotal | total:m2040_8 | +| ir.cpp:2043:1:2043:1 | SideEffect | m2040_8 | +| ir.cpp:2043:1:2043:1 | SideEffect | ~m2040_6 | +| ir.cpp:2045:6:2045:19 | ChiPartial | partial:m2045_3 | +| ir.cpp:2045:6:2045:19 | ChiTotal | total:m2045_2 | +| ir.cpp:2045:6:2045:19 | SideEffect | ~m2049_9 | +| ir.cpp:2045:26:2045:26 | Address | &:r2045_5 | +| ir.cpp:2045:33:2045:33 | Address | &:r2045_7 | +| ir.cpp:2045:40:2045:40 | Address | &:r2045_9 | +| ir.cpp:2045:47:2045:47 | Address | &:r2045_11 | +| ir.cpp:2046:5:2046:5 | Address | &:r2046_7 | +| ir.cpp:2046:9:2046:9 | Address | &:r2046_1 | +| ir.cpp:2046:9:2046:9 | Condition | r2046_2 | +| ir.cpp:2046:9:2046:9 | Load | m2045_6 | +| ir.cpp:2046:9:2046:17 | Address | &:r2046_5 | +| ir.cpp:2046:9:2046:17 | Address | &:r2046_11 | +| ir.cpp:2046:9:2046:17 | Address | &:r2046_15 | +| ir.cpp:2046:9:2046:17 | Load | m2046_4 | +| ir.cpp:2046:9:2046:17 | Phi | from 2:m2046_12 | +| ir.cpp:2046:9:2046:17 | Phi | from 3:m2046_16 | +| ir.cpp:2046:9:2046:17 | StoreValue | r2046_6 | +| ir.cpp:2046:13:2046:13 | Address | &:r2046_9 | +| ir.cpp:2046:13:2046:13 | Load | m2045_8 | +| ir.cpp:2046:13:2046:13 | StoreValue | r2046_10 | +| ir.cpp:2046:17:2046:17 | Address | &:r2046_13 | +| ir.cpp:2046:17:2046:17 | Load | m2045_10 | +| ir.cpp:2046:17:2046:17 | StoreValue | r2046_14 | +| ir.cpp:2047:5:2047:5 | Address | &:r2047_7 | +| ir.cpp:2047:9:2047:9 | Address | &:r2047_1 | +| ir.cpp:2047:9:2047:9 | Condition | r2047_2 | +| ir.cpp:2047:9:2047:9 | Load | m2045_6 | +| ir.cpp:2047:9:2047:17 | Address | &:r2047_5 | +| ir.cpp:2047:9:2047:17 | Address | &:r2047_11 | +| ir.cpp:2047:9:2047:17 | Address | &:r2047_14 | +| ir.cpp:2047:9:2047:17 | Load | m2047_4 | +| ir.cpp:2047:9:2047:17 | Phi | from 5:m2047_12 | +| ir.cpp:2047:9:2047:17 | Phi | from 6:m2047_15 | +| ir.cpp:2047:9:2047:17 | StoreValue | r2047_6 | +| ir.cpp:2047:13:2047:13 | Address | &:r2047_9 | +| ir.cpp:2047:13:2047:13 | Load | m2045_8 | +| ir.cpp:2047:13:2047:13 | StoreValue | r2047_10 | +| ir.cpp:2047:17:2047:17 | StoreValue | r2047_13 | +| ir.cpp:2048:5:2048:5 | Address | &:r2048_7 | +| ir.cpp:2048:9:2048:9 | Address | &:r2048_1 | +| ir.cpp:2048:9:2048:9 | Condition | r2048_2 | +| ir.cpp:2048:9:2048:9 | Load | m2045_6 | +| ir.cpp:2048:9:2048:17 | Address | &:r2048_5 | +| ir.cpp:2048:9:2048:17 | Address | &:r2048_10 | +| ir.cpp:2048:9:2048:17 | Address | &:r2048_13 | +| ir.cpp:2048:9:2048:17 | Load | m2048_4 | +| ir.cpp:2048:9:2048:17 | Phi | from 8:m2048_11 | +| ir.cpp:2048:9:2048:17 | Phi | from 9:m2048_14 | +| ir.cpp:2048:9:2048:17 | StoreValue | r2048_6 | +| ir.cpp:2048:13:2048:13 | StoreValue | r2048_9 | +| ir.cpp:2048:17:2048:17 | StoreValue | r2048_12 | +| ir.cpp:2049:5:2049:19 | ChiPartial | partial:m2049_8 | +| ir.cpp:2049:5:2049:19 | ChiTotal | total:m2045_4 | +| ir.cpp:2049:6:2049:6 | Address | &:r2049_2 | +| ir.cpp:2049:6:2049:6 | Condition | r2049_3 | +| ir.cpp:2049:6:2049:6 | Load | m2045_6 | +| ir.cpp:2049:6:2049:14 | Address | &:r2049_6 | +| ir.cpp:2049:6:2049:14 | Address | &:r2049_7 | +| ir.cpp:2049:6:2049:14 | Address | &:r2049_11 | +| ir.cpp:2049:6:2049:14 | Address | &:r2049_14 | +| ir.cpp:2049:6:2049:14 | Load | m2049_5 | +| ir.cpp:2049:6:2049:14 | Phi | from 11:m2049_12 | +| ir.cpp:2049:6:2049:14 | Phi | from 12:m2049_15 | +| ir.cpp:2049:10:2049:10 | StoreValue | r2049_10 | +| ir.cpp:2049:14:2049:14 | StoreValue | r2049_13 | +| ir.cpp:2049:19:2049:19 | StoreValue | r2049_1 | +| ir.cpp:2055:6:2055:22 | ChiPartial | partial:m2055_3 | +| ir.cpp:2055:6:2055:22 | ChiTotal | total:m2055_2 | +| ir.cpp:2055:6:2055:22 | SideEffect | m2055_3 | +| ir.cpp:2055:29:2055:29 | Address | &:r2055_5 | +| ir.cpp:2055:46:2055:46 | Address | &:r2055_7 | +| ir.cpp:2055:63:2055:63 | Address | &:r2055_9 | +| ir.cpp:2055:80:2055:80 | Address | &:r2055_11 | +| ir.cpp:2056:5:2056:5 | Address | &:r2056_7 | +| ir.cpp:2056:9:2056:9 | Address | &:r2056_1 | +| ir.cpp:2056:9:2056:9 | Condition | r2056_2 | +| ir.cpp:2056:9:2056:9 | Load | m2055_6 | +| ir.cpp:2056:9:2056:17 | Address | &:r2056_5 | +| ir.cpp:2056:9:2056:17 | Address | &:r2056_11 | +| ir.cpp:2056:9:2056:17 | Address | &:r2056_15 | +| ir.cpp:2056:9:2056:17 | Load | m2056_4 | +| ir.cpp:2056:9:2056:17 | Phi | from 2:m2056_12 | +| ir.cpp:2056:9:2056:17 | Phi | from 3:m2056_16 | +| ir.cpp:2056:9:2056:17 | StoreValue | r2056_6 | +| ir.cpp:2056:13:2056:13 | Address | &:r2056_9 | +| ir.cpp:2056:13:2056:13 | Load | m2055_8 | +| ir.cpp:2056:13:2056:13 | StoreValue | r2056_10 | +| ir.cpp:2056:17:2056:17 | Address | &:r2056_13 | +| ir.cpp:2056:17:2056:17 | Load | m2055_10 | +| ir.cpp:2056:17:2056:17 | StoreValue | r2056_14 | +| ir.cpp:2057:5:2057:5 | Address | &:r2057_10 | +| ir.cpp:2057:9:2057:9 | Address | &:r2057_2 | +| ir.cpp:2057:9:2057:9 | Address | &:r2057_6 | +| ir.cpp:2057:9:2057:9 | Address | &:r2057_17 | +| ir.cpp:2057:9:2057:9 | Address | &:r2057_23 | +| ir.cpp:2057:9:2057:9 | Condition | r2057_3 | +| ir.cpp:2057:9:2057:9 | Load | m2055_6 | +| ir.cpp:2057:9:2057:9 | Load | m2057_5 | +| ir.cpp:2057:9:2057:9 | Phi | from 5:m2057_18 | +| ir.cpp:2057:9:2057:9 | Phi | from 6:m2057_24 | +| ir.cpp:2057:9:2057:9 | StoreValue | r2057_7 | +| ir.cpp:2057:9:2057:31 | Address | &:r2057_1 | +| ir.cpp:2057:9:2057:31 | Address | &:r2057_1 | +| ir.cpp:2057:9:2057:31 | Load | m2057_8 | +| ir.cpp:2057:9:2057:31 | StoreValue | r2057_9 | +| ir.cpp:2057:13:2057:13 | Address | &:r2057_12 | +| ir.cpp:2057:13:2057:13 | Address | &:r2057_12 | +| ir.cpp:2057:13:2057:13 | Address | &:r2057_13 | +| ir.cpp:2057:13:2057:13 | Load | m2055_8 | +| ir.cpp:2057:13:2057:13 | Load | m2057_15 | +| ir.cpp:2057:13:2057:13 | StoreValue | r2057_14 | +| ir.cpp:2057:13:2057:13 | StoreValue | r2057_16 | +| ir.cpp:2057:17:2057:31 | Address | &:r2057_19 | +| ir.cpp:2057:17:2057:31 | Address | &:r2057_19 | +| ir.cpp:2057:17:2057:31 | Load | m2057_21 | +| ir.cpp:2057:17:2057:31 | StoreValue | r2057_20 | +| ir.cpp:2057:17:2057:31 | StoreValue | r2057_22 | +| ir.cpp:2058:5:2058:5 | Address | &:r2058_10 | +| ir.cpp:2058:9:2058:9 | Address | &:r2058_2 | +| ir.cpp:2058:9:2058:9 | Address | &:r2058_6 | +| ir.cpp:2058:9:2058:9 | Address | &:r2058_16 | +| ir.cpp:2058:9:2058:9 | Address | &:r2058_22 | +| ir.cpp:2058:9:2058:9 | Condition | r2058_3 | +| ir.cpp:2058:9:2058:9 | Load | m2055_6 | +| ir.cpp:2058:9:2058:9 | Load | m2058_5 | +| ir.cpp:2058:9:2058:9 | Phi | from 8:m2058_17 | +| ir.cpp:2058:9:2058:9 | Phi | from 9:m2058_23 | +| ir.cpp:2058:9:2058:9 | StoreValue | r2058_7 | +| ir.cpp:2058:9:2058:45 | Address | &:r2058_1 | +| ir.cpp:2058:9:2058:45 | Address | &:r2058_1 | +| ir.cpp:2058:9:2058:45 | Load | m2058_8 | +| ir.cpp:2058:9:2058:45 | StoreValue | r2058_9 | +| ir.cpp:2058:13:2058:27 | Address | &:r2058_12 | +| ir.cpp:2058:13:2058:27 | Address | &:r2058_12 | +| ir.cpp:2058:13:2058:27 | Load | m2058_14 | +| ir.cpp:2058:13:2058:27 | StoreValue | r2058_13 | +| ir.cpp:2058:13:2058:27 | StoreValue | r2058_15 | +| ir.cpp:2058:31:2058:45 | Address | &:r2058_18 | +| ir.cpp:2058:31:2058:45 | Address | &:r2058_18 | +| ir.cpp:2058:31:2058:45 | Load | m2058_20 | +| ir.cpp:2058:31:2058:45 | StoreValue | r2058_19 | +| ir.cpp:2058:31:2058:45 | StoreValue | r2058_21 | +| ir.cpp:2059:6:2059:6 | Address | &:r2059_11 | +| ir.cpp:2059:6:2059:6 | Unary | r2059_11 | +| ir.cpp:2059:6:2059:18 | Address | &:r2059_13 | +| ir.cpp:2059:10:2059:10 | Address | &:r2059_5 | +| ir.cpp:2059:10:2059:10 | Condition | r2059_6 | +| ir.cpp:2059:10:2059:10 | Load | m2055_6 | +| ir.cpp:2059:10:2059:18 | Address | &:r2059_9 | +| ir.cpp:2059:10:2059:18 | Address | &:r2059_17 | +| ir.cpp:2059:10:2059:18 | Address | &:r2059_21 | +| ir.cpp:2059:10:2059:18 | Load | m2059_8 | +| ir.cpp:2059:10:2059:18 | Phi | from 11:m2059_18 | +| ir.cpp:2059:10:2059:18 | Phi | from 12:m2059_22 | +| ir.cpp:2059:10:2059:18 | StoreValue | r2059_10 | +| ir.cpp:2059:14:2059:14 | Address | &:r2059_15 | +| ir.cpp:2059:14:2059:14 | Load | m2055_8 | +| ir.cpp:2059:14:2059:14 | StoreValue | r2059_16 | +| ir.cpp:2059:18:2059:18 | Address | &:r2059_19 | +| ir.cpp:2059:18:2059:18 | Load | m2055_10 | +| ir.cpp:2059:18:2059:18 | StoreValue | r2059_20 | +| ir.cpp:2059:23:2059:37 | Address | &:r2059_1 | +| ir.cpp:2059:23:2059:37 | Address | &:r2059_1 | +| ir.cpp:2059:23:2059:37 | Load | m2059_3 | +| ir.cpp:2059:23:2059:37 | StoreValue | r2059_2 | +| ir.cpp:2059:23:2059:37 | StoreValue | r2059_4 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_5 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_5 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_5 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_5 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_5 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_5 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_7 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_7 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_7 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_7 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_7 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_7 | +| ir.cpp:2062:8:2062:8 | Address | &:r2062_10 | +| ir.cpp:2062:8:2062:8 | ChiPartial | partial:m2062_3 | +| ir.cpp:2062:8:2062:8 | ChiPartial | partial:m2062_3 | +| ir.cpp:2062:8:2062:8 | ChiPartial | partial:m2062_3 | +| ir.cpp:2062:8:2062:8 | ChiTotal | total:m2062_2 | +| ir.cpp:2062:8:2062:8 | ChiTotal | total:m2062_2 | +| ir.cpp:2062:8:2062:8 | ChiTotal | total:m2062_2 | +| ir.cpp:2062:8:2062:8 | Load | m0_10 | +| ir.cpp:2062:8:2062:8 | Load | m2062_6 | +| ir.cpp:2062:8:2062:8 | Load | m2062_6 | +| ir.cpp:2062:8:2062:8 | Load | m2062_6 | +| ir.cpp:2062:8:2062:8 | SideEffect | m2062_3 | +| ir.cpp:2062:8:2062:8 | SideEffect | m2062_3 | +| ir.cpp:2062:8:2062:8 | SideEffect | m2062_3 | +| ir.cpp:2062:8:2062:8 | SideEffect | m2062_8 | +| ir.cpp:2062:8:2062:8 | SideEffect | m2062_8 | +| ir.cpp:2062:8:2062:8 | SideEffect | m2062_8 | +| ir.cpp:2063:13:2063:29 | Address | &:r2063_5 | +| ir.cpp:2063:13:2063:29 | Address | &:r2063_5 | +| ir.cpp:2063:13:2063:29 | Address | &:r2063_7 | +| ir.cpp:2063:13:2063:29 | Address | &:r2063_7 | +| ir.cpp:2063:13:2063:29 | ChiPartial | partial:m2063_3 | +| ir.cpp:2063:13:2063:29 | ChiTotal | total:m2063_2 | +| ir.cpp:2063:13:2063:29 | Load | m2063_6 | +| ir.cpp:2063:13:2063:29 | SideEffect | m2063_3 | +| ir.cpp:2063:13:2063:29 | SideEffect | m2063_8 | +| ir.cpp:2066:6:2066:25 | ChiPartial | partial:m2066_3 | +| ir.cpp:2066:6:2066:25 | ChiTotal | total:m2066_2 | +| ir.cpp:2066:6:2066:25 | SideEffect | ~m2070_32 | +| ir.cpp:2066:32:2066:32 | Address | &:r2066_5 | +| ir.cpp:2066:52:2066:52 | Address | &:r2066_7 | +| ir.cpp:2066:72:2066:72 | Address | &:r2066_9 | +| ir.cpp:2066:92:2066:92 | Address | &:r2066_11 | +| ir.cpp:2067:5:2067:5 | Address | &:r2067_1 | +| ir.cpp:2067:5:2067:5 | Address | &:r2067_1 | +| ir.cpp:2067:5:2067:5 | Arg(this) | this:r2067_1 | +| ir.cpp:2067:5:2067:5 | ChiPartial | partial:m2067_16 | +| ir.cpp:2067:5:2067:5 | ChiTotal | total:m2066_12 | +| ir.cpp:2067:5:2067:5 | SideEffect | m2066_12 | +| ir.cpp:2067:7:2067:7 | CallTarget | func:r2067_2 | +| ir.cpp:2067:7:2067:7 | ChiPartial | partial:m2067_12 | +| ir.cpp:2067:7:2067:7 | ChiTotal | total:m2066_4 | +| ir.cpp:2067:7:2067:7 | SideEffect | ~m2066_4 | +| ir.cpp:2067:7:2067:7 | Unary | r2067_11 | +| ir.cpp:2067:9:2067:9 | Address | &:r2067_3 | +| ir.cpp:2067:9:2067:9 | Condition | r2067_4 | +| ir.cpp:2067:9:2067:9 | Load | m2066_6 | +| ir.cpp:2067:9:2067:17 | Address | &:r2067_7 | +| ir.cpp:2067:9:2067:17 | Address | &:r2067_10 | +| ir.cpp:2067:9:2067:17 | Address | &:r2067_20 | +| ir.cpp:2067:9:2067:17 | Address | &:r2067_23 | +| ir.cpp:2067:9:2067:17 | Arg(0) | 0:r2067_10 | +| ir.cpp:2067:9:2067:17 | Load | m2067_6 | +| ir.cpp:2067:9:2067:17 | Phi | from 2:m2067_21 | +| ir.cpp:2067:9:2067:17 | Phi | from 3:m2067_24 | +| ir.cpp:2067:9:2067:17 | SideEffect | ~m2067_13 | +| ir.cpp:2067:9:2067:17 | Unary | r2067_8 | +| ir.cpp:2067:9:2067:17 | Unary | r2067_9 | +| ir.cpp:2067:13:2067:13 | StoreValue | r2067_19 | +| ir.cpp:2067:17:2067:17 | StoreValue | r2067_22 | +| ir.cpp:2068:5:2068:5 | Address | &:r2068_1 | +| ir.cpp:2068:5:2068:5 | Address | &:r2068_1 | +| ir.cpp:2068:5:2068:5 | Arg(this) | this:r2068_1 | +| ir.cpp:2068:5:2068:5 | ChiPartial | partial:m2068_19 | +| ir.cpp:2068:5:2068:5 | ChiTotal | total:m2067_17 | +| ir.cpp:2068:5:2068:5 | SideEffect | m2067_17 | +| ir.cpp:2068:7:2068:7 | CallTarget | func:r2068_2 | +| ir.cpp:2068:7:2068:7 | ChiPartial | partial:m2068_15 | +| ir.cpp:2068:7:2068:7 | ChiTotal | total:m2068_7 | +| ir.cpp:2068:7:2068:7 | SideEffect | ~m2068_7 | +| ir.cpp:2068:7:2068:7 | Unary | r2068_14 | +| ir.cpp:2068:9:2068:9 | Address | &:r2068_4 | +| ir.cpp:2068:9:2068:9 | Address | &:r2068_9 | +| ir.cpp:2068:9:2068:9 | Address | &:r2068_35 | +| ir.cpp:2068:9:2068:9 | Address | &:r2068_46 | +| ir.cpp:2068:9:2068:9 | Condition | r2068_5 | +| ir.cpp:2068:9:2068:9 | Load | m2066_6 | +| ir.cpp:2068:9:2068:9 | Load | m2068_8 | +| ir.cpp:2068:9:2068:9 | Phi | from 5:m2068_36 | +| ir.cpp:2068:9:2068:9 | Phi | from 5:~m2068_30 | +| ir.cpp:2068:9:2068:9 | Phi | from 6:m2068_47 | +| ir.cpp:2068:9:2068:9 | Phi | from 6:~m2068_42 | +| ir.cpp:2068:9:2068:9 | StoreValue | r2068_10 | +| ir.cpp:2068:9:2068:34 | Address | &:r2068_3 | +| ir.cpp:2068:9:2068:34 | Address | &:r2068_13 | +| ir.cpp:2068:9:2068:34 | Arg(0) | 0:r2068_13 | +| ir.cpp:2068:9:2068:34 | SideEffect | ~m2068_11 | +| ir.cpp:2068:9:2068:34 | Unary | r2068_3 | +| ir.cpp:2068:9:2068:34 | Unary | r2068_12 | +| ir.cpp:2068:13:2068:13 | Address | &:r2068_22 | +| ir.cpp:2068:13:2068:13 | Address | &:r2068_22 | +| ir.cpp:2068:13:2068:13 | Address | &:r2068_22 | +| ir.cpp:2068:13:2068:13 | Address | &:r2068_27 | +| ir.cpp:2068:13:2068:13 | Arg(0) | 0:r2068_27 | +| ir.cpp:2068:13:2068:13 | Arg(this) | this:r2068_22 | +| ir.cpp:2068:13:2068:13 | CallTarget | func:r2068_24 | +| ir.cpp:2068:13:2068:13 | ChiPartial | partial:m2068_29 | +| ir.cpp:2068:13:2068:13 | ChiPartial | partial:m2068_32 | +| ir.cpp:2068:13:2068:13 | ChiTotal | total:m2067_13 | +| ir.cpp:2068:13:2068:13 | ChiTotal | total:m2068_23 | +| ir.cpp:2068:13:2068:13 | Load | m2068_33 | +| ir.cpp:2068:13:2068:13 | SideEffect | ~m2066_8 | +| ir.cpp:2068:13:2068:13 | SideEffect | ~m2067_13 | +| ir.cpp:2068:13:2068:13 | StoreValue | r2068_34 | +| ir.cpp:2068:13:2068:13 | Unary | r2068_25 | +| ir.cpp:2068:13:2068:13 | Unary | r2068_26 | +| ir.cpp:2068:17:2068:34 | Address | &:r2068_37 | +| ir.cpp:2068:17:2068:34 | Address | &:r2068_37 | +| ir.cpp:2068:17:2068:34 | Address | &:r2068_37 | +| ir.cpp:2068:17:2068:34 | Arg(this) | this:r2068_37 | +| ir.cpp:2068:17:2068:34 | CallTarget | func:r2068_39 | +| ir.cpp:2068:17:2068:34 | ChiPartial | partial:m2068_41 | +| ir.cpp:2068:17:2068:34 | ChiPartial | partial:m2068_43 | +| ir.cpp:2068:17:2068:34 | ChiTotal | total:m2067_13 | +| ir.cpp:2068:17:2068:34 | ChiTotal | total:m2068_38 | +| ir.cpp:2068:17:2068:34 | Load | m2068_44 | +| ir.cpp:2068:17:2068:34 | SideEffect | ~m2067_13 | +| ir.cpp:2068:17:2068:34 | StoreValue | r2068_45 | +| ir.cpp:2069:5:2069:5 | Address | &:r2069_1 | +| ir.cpp:2069:5:2069:5 | Address | &:r2069_1 | +| ir.cpp:2069:5:2069:5 | Arg(this) | this:r2069_1 | +| ir.cpp:2069:5:2069:5 | ChiPartial | partial:m2069_19 | +| ir.cpp:2069:5:2069:5 | ChiTotal | total:m2068_20 | +| ir.cpp:2069:5:2069:5 | SideEffect | m2068_20 | +| ir.cpp:2069:7:2069:7 | CallTarget | func:r2069_2 | +| ir.cpp:2069:7:2069:7 | ChiPartial | partial:m2069_15 | +| ir.cpp:2069:7:2069:7 | ChiTotal | total:m2069_7 | +| ir.cpp:2069:7:2069:7 | SideEffect | ~m2069_7 | +| ir.cpp:2069:7:2069:7 | Unary | r2069_14 | +| ir.cpp:2069:9:2069:9 | Address | &:r2069_4 | +| ir.cpp:2069:9:2069:9 | Address | &:r2069_9 | +| ir.cpp:2069:9:2069:9 | Address | &:r2069_31 | +| ir.cpp:2069:9:2069:9 | Address | &:r2069_42 | +| ir.cpp:2069:9:2069:9 | Condition | r2069_5 | +| ir.cpp:2069:9:2069:9 | Load | m2066_6 | +| ir.cpp:2069:9:2069:9 | Load | m2069_8 | +| ir.cpp:2069:9:2069:9 | Phi | from 8:m2069_32 | +| ir.cpp:2069:9:2069:9 | Phi | from 8:~m2069_27 | +| ir.cpp:2069:9:2069:9 | Phi | from 9:m2069_43 | +| ir.cpp:2069:9:2069:9 | Phi | from 9:~m2069_38 | +| ir.cpp:2069:9:2069:9 | StoreValue | r2069_10 | +| ir.cpp:2069:9:2069:51 | Address | &:r2069_3 | +| ir.cpp:2069:9:2069:51 | Address | &:r2069_13 | +| ir.cpp:2069:9:2069:51 | Arg(0) | 0:r2069_13 | +| ir.cpp:2069:9:2069:51 | SideEffect | ~m2069_11 | +| ir.cpp:2069:9:2069:51 | Unary | r2069_3 | +| ir.cpp:2069:9:2069:51 | Unary | r2069_12 | +| ir.cpp:2069:13:2069:30 | Address | &:r2069_22 | +| ir.cpp:2069:13:2069:30 | Address | &:r2069_22 | +| ir.cpp:2069:13:2069:30 | Address | &:r2069_22 | +| ir.cpp:2069:13:2069:30 | Arg(this) | this:r2069_22 | +| ir.cpp:2069:13:2069:30 | CallTarget | func:r2069_24 | +| ir.cpp:2069:13:2069:30 | ChiPartial | partial:m2069_26 | +| ir.cpp:2069:13:2069:30 | ChiPartial | partial:m2069_28 | +| ir.cpp:2069:13:2069:30 | ChiTotal | total:m2068_16 | +| ir.cpp:2069:13:2069:30 | ChiTotal | total:m2069_23 | +| ir.cpp:2069:13:2069:30 | Load | m2069_29 | +| ir.cpp:2069:13:2069:30 | SideEffect | ~m2068_16 | +| ir.cpp:2069:13:2069:30 | StoreValue | r2069_30 | +| ir.cpp:2069:34:2069:51 | Address | &:r2069_33 | +| ir.cpp:2069:34:2069:51 | Address | &:r2069_33 | +| ir.cpp:2069:34:2069:51 | Address | &:r2069_33 | +| ir.cpp:2069:34:2069:51 | Arg(this) | this:r2069_33 | +| ir.cpp:2069:34:2069:51 | CallTarget | func:r2069_35 | +| ir.cpp:2069:34:2069:51 | ChiPartial | partial:m2069_37 | +| ir.cpp:2069:34:2069:51 | ChiPartial | partial:m2069_39 | +| ir.cpp:2069:34:2069:51 | ChiTotal | total:m2068_16 | +| ir.cpp:2069:34:2069:51 | ChiTotal | total:m2069_34 | +| ir.cpp:2069:34:2069:51 | Load | m2069_40 | +| ir.cpp:2069:34:2069:51 | SideEffect | ~m2068_16 | +| ir.cpp:2069:34:2069:51 | StoreValue | r2069_41 | +| ir.cpp:2070:5:2070:19 | ChiPartial | partial:m2070_35 | +| ir.cpp:2070:5:2070:19 | ChiTotal | total:m2070_17 | +| ir.cpp:2070:5:2070:19 | SideEffect | m2070_17 | +| ir.cpp:2070:6:2070:6 | Address | &:r2070_1 | +| ir.cpp:2070:6:2070:6 | Address | &:r2070_1 | +| ir.cpp:2070:6:2070:6 | Arg(this) | this:r2070_1 | +| ir.cpp:2070:6:2070:6 | ChiPartial | partial:m2070_16 | +| ir.cpp:2070:6:2070:6 | ChiTotal | total:m2069_20 | +| ir.cpp:2070:6:2070:6 | SideEffect | m2069_20 | +| ir.cpp:2070:8:2070:8 | CallTarget | func:r2070_2 | +| ir.cpp:2070:8:2070:8 | ChiPartial | partial:m2070_12 | +| ir.cpp:2070:8:2070:8 | ChiTotal | total:m2069_16 | +| ir.cpp:2070:8:2070:8 | SideEffect | ~m2069_16 | +| ir.cpp:2070:8:2070:8 | Unary | r2070_11 | +| ir.cpp:2070:8:2070:19 | Address | &:r2070_18 | +| ir.cpp:2070:8:2070:19 | Address | &:r2070_18 | +| ir.cpp:2070:8:2070:19 | Arg(this) | this:r2070_18 | +| ir.cpp:2070:10:2070:10 | Address | &:r2070_3 | +| ir.cpp:2070:10:2070:10 | Condition | r2070_4 | +| ir.cpp:2070:10:2070:10 | Load | m2066_6 | +| ir.cpp:2070:10:2070:18 | Address | &:r2070_7 | +| ir.cpp:2070:10:2070:18 | Address | &:r2070_10 | +| ir.cpp:2070:10:2070:18 | Address | &:r2070_39 | +| ir.cpp:2070:10:2070:18 | Address | &:r2070_42 | +| ir.cpp:2070:10:2070:18 | Arg(0) | 0:r2070_10 | +| ir.cpp:2070:10:2070:18 | Load | m2070_6 | +| ir.cpp:2070:10:2070:18 | Phi | from 11:m2070_40 | +| ir.cpp:2070:10:2070:18 | Phi | from 12:m2070_43 | +| ir.cpp:2070:10:2070:18 | SideEffect | ~m2070_13 | +| ir.cpp:2070:10:2070:18 | Unary | r2070_8 | +| ir.cpp:2070:10:2070:18 | Unary | r2070_9 | +| ir.cpp:2070:14:2070:14 | StoreValue | r2070_38 | +| ir.cpp:2070:18:2070:18 | StoreValue | r2070_41 | +| ir.cpp:2070:21:2070:21 | CallTarget | func:r2070_19 | +| ir.cpp:2070:21:2070:21 | ChiPartial | partial:m2070_31 | +| ir.cpp:2070:21:2070:21 | ChiTotal | total:m2070_25 | +| ir.cpp:2070:21:2070:21 | SideEffect | ~m2070_25 | +| ir.cpp:2070:21:2070:21 | Unary | r2070_30 | +| ir.cpp:2070:23:2070:40 | Address | &:r2070_20 | +| ir.cpp:2070:23:2070:40 | Address | &:r2070_20 | +| ir.cpp:2070:23:2070:40 | Address | &:r2070_29 | +| ir.cpp:2070:23:2070:40 | Arg(0) | 0:r2070_29 | +| ir.cpp:2070:23:2070:40 | Arg(this) | this:r2070_20 | +| ir.cpp:2070:23:2070:40 | CallTarget | func:r2070_22 | +| ir.cpp:2070:23:2070:40 | ChiPartial | partial:m2070_24 | +| ir.cpp:2070:23:2070:40 | ChiPartial | partial:m2070_26 | +| ir.cpp:2070:23:2070:40 | ChiTotal | total:m2070_13 | +| ir.cpp:2070:23:2070:40 | ChiTotal | total:m2070_21 | +| ir.cpp:2070:23:2070:40 | SideEffect | ~m2070_13 | +| ir.cpp:2070:23:2070:40 | SideEffect | ~m2070_27 | +| ir.cpp:2070:23:2070:40 | Unary | r2070_20 | +| ir.cpp:2070:23:2070:40 | Unary | r2070_28 | +| ir.cpp:2075:14:2075:22 | Address | &:r2075_7 | +| ir.cpp:2075:14:2075:22 | ChiPartial | partial:m2075_3 | +| ir.cpp:2075:14:2075:22 | ChiTotal | total:m2075_2 | +| ir.cpp:2075:14:2075:22 | Load | m2080_2 | +| ir.cpp:2075:14:2075:22 | SideEffect | ~m2077_6 | +| ir.cpp:2075:37:2075:37 | Address | &:r2075_5 | +| ir.cpp:2076:16:2076:16 | Address | &:r2076_1 | +| ir.cpp:2077:3:2077:3 | Address | &:r2077_10 | +| ir.cpp:2077:7:2077:7 | Address | &:r2077_1 | +| ir.cpp:2077:7:2077:7 | Left | r2077_2 | +| ir.cpp:2077:7:2077:7 | Load | m2075_6 | +| ir.cpp:2077:7:2077:13 | Condition | r2077_4 | +| ir.cpp:2077:7:2079:28 | Address | &:r2077_8 | +| ir.cpp:2077:7:2079:28 | Address | &:r2077_12 | +| ir.cpp:2077:7:2079:28 | Address | &:r2077_14 | +| ir.cpp:2077:7:2079:28 | Load | m2077_7 | +| ir.cpp:2077:7:2079:28 | Phi | from 2:m2077_13 | +| ir.cpp:2077:7:2079:28 | Phi | from 2:~m2078_6 | +| ir.cpp:2077:7:2079:28 | Phi | from 3:m2077_15 | +| ir.cpp:2077:7:2079:28 | Phi | from 3:~m2079_6 | +| ir.cpp:2077:7:2079:28 | StoreValue | r2077_9 | +| ir.cpp:2077:11:2077:13 | Right | r2077_3 | +| ir.cpp:2078:6:2078:20 | CallTarget | func:r2078_1 | +| ir.cpp:2078:6:2078:20 | ChiPartial | partial:m2078_5 | +| ir.cpp:2078:6:2078:20 | ChiTotal | total:m2075_4 | +| ir.cpp:2078:6:2078:20 | SideEffect | ~m2075_4 | +| ir.cpp:2078:6:2078:26 | StoreValue | r2078_9 | +| ir.cpp:2078:22:2078:22 | Address | &:r2078_2 | +| ir.cpp:2078:22:2078:22 | Arg(0) | 0:r2078_3 | +| ir.cpp:2078:22:2078:22 | Load | m2075_6 | +| ir.cpp:2078:26:2078:26 | Address | &:r2078_7 | +| ir.cpp:2078:26:2078:26 | Load | m2075_6 | +| ir.cpp:2078:26:2078:26 | Unary | r2078_8 | +| ir.cpp:2079:5:2079:28 | StoreValue | r2079_9 | +| ir.cpp:2079:6:2079:20 | CallTarget | func:r2079_1 | +| ir.cpp:2079:6:2079:20 | ChiPartial | partial:m2079_5 | +| ir.cpp:2079:6:2079:20 | ChiTotal | total:m2075_4 | +| ir.cpp:2079:6:2079:20 | SideEffect | ~m2075_4 | +| ir.cpp:2079:6:2079:27 | Unary | r2079_8 | +| ir.cpp:2079:22:2079:22 | Address | &:r2079_2 | +| ir.cpp:2079:22:2079:22 | Arg(0) | 0:r2079_3 | +| ir.cpp:2079:22:2079:22 | Load | m2075_6 | +| ir.cpp:2079:26:2079:27 | Unary | r2079_7 | +| ir.cpp:2080:1:2080:1 | Address | &:r2080_1 | +| ir.cpp:2082:6:2082:17 | ChiPartial | partial:m2082_3 | +| ir.cpp:2082:6:2082:17 | ChiTotal | total:m2082_2 | +| ir.cpp:2082:6:2082:17 | SideEffect | ~m2085_6 | +| ir.cpp:2083:8:2083:8 | Address | &:r2083_1 | +| ir.cpp:2083:12:2083:18 | Address | &:r2083_4 | +| ir.cpp:2083:12:2083:18 | Arg(0) | 0:r2083_3 | +| ir.cpp:2083:12:2083:18 | CallTarget | func:r2083_2 | +| ir.cpp:2083:12:2083:18 | ChiPartial | partial:m2083_5 | +| ir.cpp:2083:12:2083:18 | ChiTotal | total:m2082_4 | +| ir.cpp:2083:12:2083:18 | SideEffect | ~m2082_4 | +| ir.cpp:2083:12:2083:18 | StoreValue | r2083_8 | +| ir.cpp:2083:12:2083:18 | Unary | r2083_4 | +| ir.cpp:2084:3:2084:4 | Address | &:r2084_4 | +| ir.cpp:2084:3:2084:8 | ChiPartial | partial:m2084_5 | +| ir.cpp:2084:3:2084:8 | ChiTotal | total:m2083_7 | +| ir.cpp:2084:4:2084:4 | Address | &:r2084_2 | +| ir.cpp:2084:4:2084:4 | Load | m2083_9 | +| ir.cpp:2084:4:2084:4 | Unary | r2084_3 | +| ir.cpp:2084:8:2084:8 | StoreValue | r2084_1 | +| ir.cpp:2085:3:2085:10 | CallTarget | func:r2085_1 | +| ir.cpp:2085:3:2085:10 | ChiPartial | partial:m2085_5 | +| ir.cpp:2085:3:2085:10 | ChiTotal | total:m2083_6 | +| ir.cpp:2085:3:2085:10 | SideEffect | ~m2083_6 | +| ir.cpp:2085:10:2085:10 | Address | &:r2085_2 | +| ir.cpp:2085:10:2085:10 | Arg(0) | 0:r2085_3 | +| ir.cpp:2085:10:2085:10 | Load | m2083_9 | +| ir.cpp:2088:7:2088:7 | Address | &:r2088_5 | +| ir.cpp:2088:7:2088:7 | Address | &:r2088_5 | +| ir.cpp:2088:7:2088:7 | Address | &:r2088_7 | +| ir.cpp:2088:7:2088:7 | Address | &:r2088_7 | +| ir.cpp:2088:7:2088:7 | ChiPartial | partial:m2088_3 | +| ir.cpp:2088:7:2088:7 | ChiTotal | total:m2088_2 | +| ir.cpp:2088:7:2088:7 | Load | m2088_6 | +| ir.cpp:2088:7:2088:7 | SideEffect | m2088_3 | +| ir.cpp:2088:7:2088:7 | SideEffect | m2088_8 | +| ir.cpp:2090:10:2090:24 | ChiPartial | partial:m2090_3 | +| ir.cpp:2090:10:2090:24 | ChiTotal | total:m2090_2 | +| ir.cpp:2090:10:2090:24 | SideEffect | m2090_3 | +| ir.cpp:2090:32:2090:32 | Address | &:r2090_5 | +| ir.cpp:2090:32:2090:32 | Address | &:r2090_5 | +| ir.cpp:2090:32:2090:32 | Address | &:r2090_7 | +| ir.cpp:2090:32:2090:32 | Address | &:r2090_7 | +| ir.cpp:2090:32:2090:32 | Load | m2090_6 | +| ir.cpp:2090:32:2090:32 | SideEffect | m2090_8 | +| ir.cpp:2092:13:2092:18 | Address | &:r2092_5 | +| ir.cpp:2092:13:2092:18 | Address | &:r2092_5 | +| ir.cpp:2092:13:2092:18 | Address | &:r2092_7 | +| ir.cpp:2092:13:2092:18 | Address | &:r2092_7 | +| ir.cpp:2092:13:2092:18 | ChiPartial | partial:m2092_3 | +| ir.cpp:2092:13:2092:18 | ChiTotal | total:m2092_2 | +| ir.cpp:2092:13:2092:18 | Load | m2092_6 | +| ir.cpp:2092:13:2092:18 | SideEffect | m2092_3 | +| ir.cpp:2092:13:2092:18 | SideEffect | m2092_8 | +| ir.cpp:2095:7:2095:7 | Address | &:r2095_5 | +| ir.cpp:2095:7:2095:7 | Address | &:r2095_5 | +| ir.cpp:2095:7:2095:7 | Address | &:r2095_7 | +| ir.cpp:2095:7:2095:7 | Address | &:r2095_7 | +| ir.cpp:2095:7:2095:7 | Address | &:r2095_9 | +| ir.cpp:2095:7:2095:7 | Arg(this) | this:r2095_9 | +| ir.cpp:2095:7:2095:7 | CallTarget | func:r2095_10 | +| ir.cpp:2095:7:2095:7 | ChiPartial | partial:m2095_3 | +| ir.cpp:2095:7:2095:7 | ChiPartial | partial:m2095_12 | +| ir.cpp:2095:7:2095:7 | ChiPartial | partial:m2095_14 | +| ir.cpp:2095:7:2095:7 | ChiTotal | total:m2095_2 | +| ir.cpp:2095:7:2095:7 | ChiTotal | total:m2095_4 | +| ir.cpp:2095:7:2095:7 | ChiTotal | total:m2095_8 | +| ir.cpp:2095:7:2095:7 | Load | m2095_6 | +| ir.cpp:2095:7:2095:7 | SideEffect | m2095_15 | +| ir.cpp:2095:7:2095:7 | SideEffect | ~m2095_4 | +| ir.cpp:2095:7:2095:7 | SideEffect | ~m2095_13 | +| ir.cpp:2095:7:2095:7 | Unary | m2095_6 | +| ir.cpp:2098:5:2098:13 | Address | &:r2098_5 | +| ir.cpp:2098:5:2098:13 | Address | &:r2098_5 | +| ir.cpp:2098:5:2098:13 | Address | &:r2098_7 | +| ir.cpp:2098:5:2098:13 | Address | &:r2098_7 | +| ir.cpp:2098:5:2098:13 | ChiPartial | partial:m2098_3 | +| ir.cpp:2098:5:2098:13 | ChiTotal | total:m2098_2 | +| ir.cpp:2098:5:2098:13 | Load | m2098_6 | +| ir.cpp:2098:5:2098:13 | SideEffect | m2098_8 | +| ir.cpp:2098:5:2098:13 | SideEffect | ~m2098_14 | +| ir.cpp:2098:5:2098:13 | Unary | m2098_6 | +| ir.cpp:2098:18:2098:18 | Arg(this) | this:r2098_10 | +| ir.cpp:2098:18:2098:18 | CallTarget | func:r2098_11 | +| ir.cpp:2098:18:2098:18 | ChiPartial | partial:m2098_13 | +| ir.cpp:2098:18:2098:18 | ChiTotal | total:m2098_4 | +| ir.cpp:2098:18:2098:18 | SideEffect | ~m2098_4 | +| ir.cpp:2100:10:2100:24 | ChiPartial | partial:m2100_3 | +| ir.cpp:2100:10:2100:24 | ChiTotal | total:m2100_2 | +| ir.cpp:2100:10:2100:24 | SideEffect | m2100_3 | +| ir.cpp:2100:32:2100:32 | Address | &:r2100_5 | +| ir.cpp:2100:32:2100:32 | Address | &:r2100_5 | +| ir.cpp:2100:32:2100:32 | Address | &:r2100_7 | +| ir.cpp:2100:32:2100:32 | Address | &:r2100_7 | +| ir.cpp:2100:32:2100:32 | Load | m2100_6 | +| ir.cpp:2100:32:2100:32 | SideEffect | m2100_8 | +| ir.cpp:2105:5:2105:18 | Address | &:r2105_5 | +| ir.cpp:2105:5:2105:18 | ChiPartial | partial:m2105_3 | +| ir.cpp:2105:5:2105:18 | ChiTotal | total:m2105_2 | +| ir.cpp:2105:5:2105:18 | Load | m2115_2 | +| ir.cpp:2105:5:2105:18 | SideEffect | ~m2114_6 | +| ir.cpp:2107:12:2107:13 | Address | &:r2107_1 | +| ir.cpp:2107:17:2107:27 | Address | &:r2107_4 | +| ir.cpp:2107:17:2107:27 | Address | &:r2107_8 | +| ir.cpp:2107:17:2107:27 | Arg(0) | 0:r2107_3 | +| ir.cpp:2107:17:2107:27 | Arg(this) | this:r2107_8 | +| ir.cpp:2107:17:2107:27 | CallTarget | func:r2107_2 | +| ir.cpp:2107:17:2107:27 | CallTarget | func:r2107_9 | +| ir.cpp:2107:17:2107:27 | ChiPartial | partial:m2107_5 | +| ir.cpp:2107:17:2107:27 | ChiPartial | partial:m2107_11 | +| ir.cpp:2107:17:2107:27 | ChiPartial | partial:m2107_13 | +| ir.cpp:2107:17:2107:27 | ChiTotal | total:m2105_4 | +| ir.cpp:2107:17:2107:27 | ChiTotal | total:m2107_6 | +| ir.cpp:2107:17:2107:27 | ChiTotal | total:m2107_7 | +| ir.cpp:2107:17:2107:27 | SideEffect | ~m2105_4 | +| ir.cpp:2107:17:2107:27 | SideEffect | ~m2107_6 | +| ir.cpp:2107:17:2107:27 | StoreValue | r2107_8 | +| ir.cpp:2107:17:2107:27 | Unary | r2107_4 | +| ir.cpp:2108:5:2108:13 | CallTarget | func:r2108_1 | +| ir.cpp:2108:5:2108:13 | ChiPartial | partial:m2108_5 | +| ir.cpp:2108:5:2108:13 | ChiTotal | total:m2107_12 | +| ir.cpp:2108:5:2108:13 | SideEffect | ~m2107_12 | +| ir.cpp:2108:12:2108:13 | Address | &:r2108_2 | +| ir.cpp:2108:12:2108:13 | Arg(0) | 0:r2108_3 | +| ir.cpp:2108:12:2108:13 | Load | m2107_15 | +| ir.cpp:2110:12:2110:13 | Address | &:r2110_1 | +| ir.cpp:2110:17:2110:30 | Address | &:r2110_4 | +| ir.cpp:2110:17:2110:30 | Address | &:r2110_8 | +| ir.cpp:2110:17:2110:30 | Arg(0) | 0:r2110_3 | +| ir.cpp:2110:17:2110:30 | Arg(this) | this:r2110_8 | +| ir.cpp:2110:17:2110:30 | CallTarget | func:r2110_2 | +| ir.cpp:2110:17:2110:30 | CallTarget | func:r2110_9 | +| ir.cpp:2110:17:2110:30 | ChiPartial | partial:m2110_5 | +| ir.cpp:2110:17:2110:30 | ChiPartial | partial:m2110_11 | +| ir.cpp:2110:17:2110:30 | ChiPartial | partial:m2110_13 | +| ir.cpp:2110:17:2110:30 | ChiTotal | total:m2108_6 | +| ir.cpp:2110:17:2110:30 | ChiTotal | total:m2110_6 | +| ir.cpp:2110:17:2110:30 | ChiTotal | total:m2110_7 | +| ir.cpp:2110:17:2110:30 | SideEffect | ~m2108_6 | +| ir.cpp:2110:17:2110:30 | SideEffect | ~m2110_6 | +| ir.cpp:2110:17:2110:30 | StoreValue | r2110_15 | +| ir.cpp:2110:17:2110:30 | Unary | r2110_4 | +| ir.cpp:2110:17:2110:30 | Unary | r2110_8 | +| ir.cpp:2111:5:2111:13 | CallTarget | func:r2111_1 | +| ir.cpp:2111:5:2111:13 | ChiPartial | partial:m2111_5 | +| ir.cpp:2111:5:2111:13 | ChiTotal | total:m2110_12 | +| ir.cpp:2111:5:2111:13 | SideEffect | ~m2110_12 | +| ir.cpp:2111:12:2111:13 | Address | &:r2111_2 | +| ir.cpp:2111:12:2111:13 | Arg(0) | 0:r2111_3 | +| ir.cpp:2111:12:2111:13 | Load | m2110_16 | +| ir.cpp:2113:15:2113:15 | Address | &:r2113_1 | +| ir.cpp:2113:19:2113:32 | Address | &:r2113_4 | +| ir.cpp:2113:19:2113:32 | Address | &:r2113_8 | +| ir.cpp:2113:19:2113:32 | Arg(0) | 0:r2113_3 | +| ir.cpp:2113:19:2113:32 | Arg(this) | this:r2113_8 | +| ir.cpp:2113:19:2113:32 | CallTarget | func:r2113_2 | +| ir.cpp:2113:19:2113:32 | CallTarget | func:r2113_9 | +| ir.cpp:2113:19:2113:32 | ChiPartial | partial:m2113_5 | +| ir.cpp:2113:19:2113:32 | ChiPartial | partial:m2113_11 | +| ir.cpp:2113:19:2113:32 | ChiPartial | partial:m2113_13 | +| ir.cpp:2113:19:2113:32 | ChiTotal | total:m2111_6 | +| ir.cpp:2113:19:2113:32 | ChiTotal | total:m2113_6 | +| ir.cpp:2113:19:2113:32 | ChiTotal | total:m2113_7 | +| ir.cpp:2113:19:2113:32 | SideEffect | ~m2111_6 | +| ir.cpp:2113:19:2113:32 | SideEffect | ~m2113_6 | +| ir.cpp:2113:19:2113:32 | StoreValue | r2113_8 | +| ir.cpp:2113:19:2113:32 | Unary | r2113_4 | +| ir.cpp:2114:5:2114:12 | CallTarget | func:r2114_1 | +| ir.cpp:2114:5:2114:12 | ChiPartial | partial:m2114_5 | +| ir.cpp:2114:5:2114:12 | ChiTotal | total:m2113_12 | +| ir.cpp:2114:5:2114:12 | SideEffect | ~m2113_12 | +| ir.cpp:2114:12:2114:12 | Address | &:r2114_2 | +| ir.cpp:2114:12:2114:12 | Arg(0) | 0:r2114_3 | +| ir.cpp:2114:12:2114:12 | Load | m2113_15 | +| ir.cpp:2115:1:2115:1 | Address | &:r2115_1 | +| ir.cpp:2119:6:2119:26 | ChiPartial | partial:m2119_3 | +| ir.cpp:2119:6:2119:26 | ChiTotal | total:m2119_2 | +| ir.cpp:2119:6:2119:26 | SideEffect | ~m2121_5 | +| ir.cpp:2120:13:2120:13 | Address | &:r2120_1 | +| ir.cpp:2120:16:2120:19 | StoreValue | r2120_2 | +| ir.cpp:2121:3:2121:27 | CallTarget | func:r2121_1 | +| ir.cpp:2121:3:2121:27 | ChiPartial | partial:m2121_4 | +| ir.cpp:2121:3:2121:27 | ChiTotal | total:m2119_4 | +| ir.cpp:2121:3:2121:27 | SideEffect | ~m2119_4 | +| ir.cpp:2121:29:2121:29 | Arg(0) | 0:r2121_2 | +| ir.cpp:2126:5:2126:11 | Address | &:r2126_6 | +| ir.cpp:2126:5:2126:11 | ChiPartial | partial:m2126_3 | +| ir.cpp:2126:5:2126:11 | ChiTotal | total:m2126_2 | +| ir.cpp:2126:5:2126:11 | Load | m2131_4 | +| ir.cpp:2126:5:2126:11 | SideEffect | ~m2130_4 | +| ir.cpp:2127:9:2127:9 | Address | &:r2127_1 | +| ir.cpp:2127:13:2127:15 | CallTarget | func:r2127_2 | +| ir.cpp:2127:13:2127:15 | ChiPartial | partial:m2127_6 | +| ir.cpp:2127:13:2127:15 | ChiTotal | total:m2126_4 | +| ir.cpp:2127:13:2127:15 | SideEffect | ~m2126_4 | +| ir.cpp:2127:13:2127:15 | StoreValue | r2127_5 | +| ir.cpp:2127:17:2127:17 | Arg(0) | 0:r2127_3 | +| ir.cpp:2127:19:2127:19 | Arg(1) | 1:r2127_4 | +| ir.cpp:2128:9:2128:9 | Address | &:r2128_1 | +| ir.cpp:2128:9:2128:9 | Left | r2128_2 | +| ir.cpp:2128:9:2128:9 | Load | m2127_8 | +| ir.cpp:2128:9:2128:14 | Condition | r2128_4 | +| ir.cpp:2128:14:2128:14 | Right | r2128_3 | +| ir.cpp:2129:9:2129:12 | CallTarget | func:r2129_1 | +| ir.cpp:2129:9:2129:12 | ChiPartial | partial:m2129_4 | +| ir.cpp:2129:9:2129:12 | ChiTotal | total:m2127_7 | +| ir.cpp:2129:9:2129:12 | SideEffect | ~m2127_7 | +| ir.cpp:2129:14:2129:14 | Arg(0) | 0:r2129_2 | +| ir.cpp:2130:5:2130:12 | CallTarget | func:r2130_1 | +| ir.cpp:2130:5:2130:12 | ChiPartial | partial:m2130_3 | +| ir.cpp:2130:5:2130:12 | ChiTotal | total:m2127_7 | +| ir.cpp:2130:5:2130:12 | SideEffect | ~m2127_7 | +| ir.cpp:2131:5:2131:13 | Address | &:r2131_1 | +| ir.cpp:2131:12:2131:12 | Address | &:r2131_2 | +| ir.cpp:2131:12:2131:12 | Load | m2127_8 | +| ir.cpp:2131:12:2131:12 | StoreValue | r2131_3 | +| ir.cpp:2134:6:2134:17 | ChiPartial | partial:m2134_3 | +| ir.cpp:2134:6:2134:17 | ChiTotal | total:m2134_2 | +| ir.cpp:2135:5:2135:12 | CallTarget | func:r2135_1 | +| ir.cpp:2135:5:2135:12 | ChiPartial | partial:m2135_3 | +| ir.cpp:2135:5:2135:12 | ChiTotal | total:m2134_4 | +| ir.cpp:2135:5:2135:12 | SideEffect | ~m2134_4 | +| ir.cpp:2136:5:2136:8 | CallTarget | func:r2136_1 | +| ir.cpp:2136:5:2136:8 | ChiPartial | partial:m2136_4 | +| ir.cpp:2136:5:2136:8 | ChiTotal | total:m2135_4 | +| ir.cpp:2136:5:2136:8 | SideEffect | ~m2135_4 | +| ir.cpp:2136:10:2136:10 | Arg(0) | 0:r2136_2 | +| ir.cpp:2139:5:2139:16 | Address | &:r2139_6 | +| ir.cpp:2139:5:2139:16 | ChiPartial | partial:m2139_3 | +| ir.cpp:2139:5:2139:16 | ChiTotal | total:m2139_2 | +| ir.cpp:2139:5:2139:16 | Load | m2144_4 | +| ir.cpp:2139:5:2139:16 | SideEffect | ~m2143_4 | +| ir.cpp:2140:9:2140:9 | Address | &:r2140_1 | +| ir.cpp:2140:13:2140:15 | CallTarget | func:r2140_2 | +| ir.cpp:2140:13:2140:15 | ChiPartial | partial:m2140_6 | +| ir.cpp:2140:13:2140:15 | ChiTotal | total:m2139_4 | +| ir.cpp:2140:13:2140:15 | SideEffect | ~m2139_4 | +| ir.cpp:2140:13:2140:15 | StoreValue | r2140_5 | +| ir.cpp:2140:17:2140:17 | Arg(0) | 0:r2140_3 | +| ir.cpp:2140:19:2140:19 | Arg(1) | 1:r2140_4 | +| ir.cpp:2141:9:2141:9 | Address | &:r2141_1 | +| ir.cpp:2141:9:2141:9 | Left | r2141_2 | +| ir.cpp:2141:9:2141:9 | Load | m2140_8 | +| ir.cpp:2141:9:2141:14 | Condition | r2141_4 | +| ir.cpp:2141:14:2141:14 | Right | r2141_3 | +| ir.cpp:2142:9:2142:20 | CallTarget | func:r2142_1 | +| ir.cpp:2143:5:2143:12 | CallTarget | func:r2143_1 | +| ir.cpp:2143:5:2143:12 | ChiPartial | partial:m2143_3 | +| ir.cpp:2143:5:2143:12 | ChiTotal | total:m2140_7 | +| ir.cpp:2143:5:2143:12 | SideEffect | ~m2140_7 | +| ir.cpp:2144:5:2144:13 | Address | &:r2144_1 | +| ir.cpp:2144:12:2144:12 | Address | &:r2144_2 | +| ir.cpp:2144:12:2144:12 | Load | m2140_8 | +| ir.cpp:2144:12:2144:12 | StoreValue | r2144_3 | +| ir.cpp:2147:6:2147:24 | ChiPartial | partial:m2147_3 | +| ir.cpp:2147:6:2147:24 | ChiTotal | total:m2147_2 | +| ir.cpp:2147:6:2147:24 | SideEffect | ~m2153_8 | +| ir.cpp:2147:33:2147:33 | Address | &:r2147_5 | +| ir.cpp:2148:3:2148:12 | Address | &:r2148_6 | +| ir.cpp:2148:3:2148:12 | Arg(0) | 0:r2148_5 | +| ir.cpp:2148:3:2148:12 | CallTarget | func:r2148_1 | +| ir.cpp:2148:3:2148:12 | ChiPartial | partial:m2148_7 | +| ir.cpp:2148:3:2148:12 | ChiTotal | total:m2147_4 | +| ir.cpp:2148:3:2148:12 | Right | r2148_4 | +| ir.cpp:2148:3:2148:12 | SideEffect | ~m2147_4 | +| ir.cpp:2148:3:2148:12 | Unary | r2148_6 | +| ir.cpp:2148:11:2148:11 | Address | &:r2148_2 | +| ir.cpp:2148:11:2148:11 | Left | r2148_3 | +| ir.cpp:2148:11:2148:11 | Load | m2147_6 | +| ir.cpp:2149:3:2149:18 | Address | &:r2149_7 | +| ir.cpp:2149:3:2149:18 | Arg(0) | 0:r2149_5 | +| ir.cpp:2149:3:2149:18 | CallTarget | func:r2149_1 | +| ir.cpp:2149:3:2149:18 | ChiPartial | partial:m2149_8 | +| ir.cpp:2149:3:2149:18 | ChiTotal | total:m2148_8 | +| ir.cpp:2149:3:2149:18 | Right | r2149_4 | +| ir.cpp:2149:3:2149:18 | SideEffect | ~m2148_8 | +| ir.cpp:2149:3:2149:18 | Unary | r2149_7 | +| ir.cpp:2149:7:2149:10 | Arg(1) | 1:r2149_6 | +| ir.cpp:2149:17:2149:17 | Address | &:r2149_2 | +| ir.cpp:2149:17:2149:17 | Left | r2149_3 | +| ir.cpp:2149:17:2149:17 | Load | m2147_6 | +| ir.cpp:2150:3:2150:15 | Address | &:r2150_6 | +| ir.cpp:2150:3:2150:15 | Arg(0) | 0:r2150_5 | +| ir.cpp:2150:3:2150:15 | CallTarget | func:r2150_1 | +| ir.cpp:2150:3:2150:15 | ChiPartial | partial:m2150_7 | +| ir.cpp:2150:3:2150:15 | ChiTotal | total:m2149_9 | +| ir.cpp:2150:3:2150:15 | Right | r2150_4 | +| ir.cpp:2150:3:2150:15 | SideEffect | ~m2149_9 | +| ir.cpp:2150:3:2150:15 | Unary | r2150_6 | +| ir.cpp:2150:14:2150:14 | Address | &:r2150_2 | +| ir.cpp:2150:14:2150:14 | Left | r2150_3 | +| ir.cpp:2150:14:2150:14 | Load | m2147_6 | +| ir.cpp:2151:3:2151:20 | Address | &:r2151_7 | +| ir.cpp:2151:3:2151:20 | Arg(0) | 0:r2151_5 | +| ir.cpp:2151:3:2151:20 | CallTarget | func:r2151_1 | +| ir.cpp:2151:3:2151:20 | ChiPartial | partial:m2151_8 | +| ir.cpp:2151:3:2151:20 | ChiTotal | total:m2150_8 | +| ir.cpp:2151:3:2151:20 | Right | r2151_4 | +| ir.cpp:2151:3:2151:20 | SideEffect | ~m2150_8 | +| ir.cpp:2151:3:2151:20 | Unary | r2151_7 | +| ir.cpp:2151:19:2151:19 | Address | &:r2151_2 | +| ir.cpp:2151:19:2151:19 | Left | r2151_3 | +| ir.cpp:2151:19:2151:19 | Load | m2147_6 | +| ir.cpp:2151:21:2151:21 | Arg(1) | 1:r2151_6 | +| ir.cpp:2152:3:2152:36 | Address | &:r2152_6 | +| ir.cpp:2152:3:2152:36 | Arg(0) | 0:r2152_5 | +| ir.cpp:2152:3:2152:36 | CallTarget | func:r2152_1 | +| ir.cpp:2152:3:2152:36 | ChiPartial | partial:m2152_7 | +| ir.cpp:2152:3:2152:36 | ChiTotal | total:m2151_9 | +| ir.cpp:2152:3:2152:36 | Right | r2152_4 | +| ir.cpp:2152:3:2152:36 | SideEffect | ~m2151_9 | +| ir.cpp:2152:3:2152:36 | Unary | r2152_6 | +| ir.cpp:2152:35:2152:35 | Address | &:r2152_2 | +| ir.cpp:2152:35:2152:35 | Left | r2152_3 | +| ir.cpp:2152:35:2152:35 | Load | m2147_6 | +| ir.cpp:2153:3:2153:24 | Address | &:r2153_6 | +| ir.cpp:2153:3:2153:24 | Arg(0) | 0:r2153_5 | +| ir.cpp:2153:3:2153:24 | CallTarget | func:r2153_1 | +| ir.cpp:2153:3:2153:24 | ChiPartial | partial:m2153_7 | +| ir.cpp:2153:3:2153:24 | ChiTotal | total:m2152_8 | +| ir.cpp:2153:3:2153:24 | Right | r2153_4 | +| ir.cpp:2153:3:2153:24 | SideEffect | ~m2152_8 | +| ir.cpp:2153:3:2153:24 | Unary | r2153_6 | +| ir.cpp:2153:11:2153:11 | Address | &:r2153_2 | +| ir.cpp:2153:11:2153:11 | Left | r2153_3 | +| ir.cpp:2153:11:2153:11 | Load | m2147_6 | +| ir.cpp:2158:7:2158:17 | Address | &:r2158_10 | +| ir.cpp:2158:7:2158:17 | ChiPartial | partial:m2158_3 | +| ir.cpp:2158:7:2158:17 | ChiTotal | total:m2158_2 | +| ir.cpp:2158:7:2158:17 | Load | m2161_4 | +| ir.cpp:2158:7:2158:17 | SideEffect | m2158_3 | +| ir.cpp:2158:25:2158:25 | Address | &:r2158_5 | +| ir.cpp:2158:25:2158:25 | Address | &:r2158_5 | +| ir.cpp:2158:25:2158:25 | Address | &:r2158_7 | +| ir.cpp:2158:25:2158:25 | Address | &:r2158_7 | +| ir.cpp:2158:25:2158:25 | Load | m2158_6 | +| ir.cpp:2158:25:2158:25 | SideEffect | m2158_8 | +| ir.cpp:2159:9:2159:11 | Address | &:r2159_1 | +| ir.cpp:2160:10:2160:10 | Address | &:r2160_1 | +| ir.cpp:2160:14:2160:19 | CallTarget | func:r2160_2 | +| ir.cpp:2160:14:2160:19 | StoreValue | r2160_8 | +| ir.cpp:2160:21:2160:21 | Address | &:r2160_3 | +| ir.cpp:2160:21:2160:21 | Address | &:r2160_5 | +| ir.cpp:2160:21:2160:21 | Arg(0) | 0:r2160_5 | +| ir.cpp:2160:21:2160:21 | Load | m2158_6 | +| ir.cpp:2160:21:2160:21 | SideEffect | ~m2158_8 | +| ir.cpp:2160:21:2160:21 | Unary | r2160_4 | +| ir.cpp:2160:24:2160:27 | Address | &:r2160_7 | +| ir.cpp:2160:24:2160:27 | Arg(1) | 1:r2160_7 | +| ir.cpp:2160:24:2160:27 | ChiPartial | partial:m2160_10 | +| ir.cpp:2160:24:2160:27 | ChiTotal | total:m2159_2 | +| ir.cpp:2160:25:2160:27 | Unary | r2160_6 | +| ir.cpp:2161:3:2161:13 | Address | &:r2161_1 | +| ir.cpp:2161:10:2161:12 | Address | &:r2161_2 | +| ir.cpp:2161:10:2161:12 | Load | m2160_11 | +| ir.cpp:2161:10:2161:12 | StoreValue | r2161_3 | +| ir.cpp:2168:6:2168:39 | ChiPartial | partial:m2168_3 | +| ir.cpp:2168:6:2168:39 | ChiTotal | total:m2168_2 | +| ir.cpp:2168:6:2168:39 | SideEffect | ~m2169_8 | +| ir.cpp:2169:6:2169:42 | Address | &:r2169_1 | +| ir.cpp:2169:6:2169:42 | Condition | r2169_12 | +| ir.cpp:2169:22:2169:22 | Address | &:r2169_4 | +| ir.cpp:2169:22:2169:22 | Address | &:r2169_4 | +| ir.cpp:2169:22:2169:22 | Arg(this) | this:r2169_4 | +| ir.cpp:2169:22:2169:22 | CallTarget | func:r2169_5 | +| ir.cpp:2169:22:2169:22 | ChiPartial | partial:m2169_7 | +| ir.cpp:2169:22:2169:22 | ChiPartial | partial:m2169_10 | +| ir.cpp:2169:22:2169:22 | ChiTotal | total:m2168_4 | +| ir.cpp:2169:22:2169:22 | ChiTotal | total:m2169_3 | +| ir.cpp:2169:22:2169:22 | SideEffect | m2169_3 | +| ir.cpp:2169:22:2169:22 | SideEffect | ~m2168_4 | +| ir.cpp:2169:22:2169:22 | Unary | r2169_6 | +| ir.cpp:2169:25:2169:42 | StoreValue | r2169_2 | +| ir.cpp:2172:7:2172:7 | Address | &:r2172_5 | +| ir.cpp:2172:7:2172:7 | Address | &:r2172_5 | +| ir.cpp:2172:7:2172:7 | Address | &:r2172_7 | +| ir.cpp:2172:7:2172:7 | Address | &:r2172_7 | +| ir.cpp:2172:7:2172:7 | Address | &:r2172_9 | +| ir.cpp:2172:7:2172:7 | Address | &:r2172_10 | +| ir.cpp:2172:7:2172:7 | Address | &:r2172_13 | +| ir.cpp:2172:7:2172:7 | ChiPartial | partial:m2172_3 | +| ir.cpp:2172:7:2172:7 | ChiPartial | partial:m2172_15 | +| ir.cpp:2172:7:2172:7 | ChiTotal | total:m2172_2 | +| ir.cpp:2172:7:2172:7 | ChiTotal | total:m2172_8 | +| ir.cpp:2172:7:2172:7 | Load | m0_2 | +| ir.cpp:2172:7:2172:7 | Load | m2172_6 | +| ir.cpp:2172:7:2172:7 | Load | ~m0_4 | +| ir.cpp:2172:7:2172:7 | SideEffect | m2172_3 | +| ir.cpp:2172:7:2172:7 | SideEffect | m2172_16 | +| ir.cpp:2172:7:2172:7 | StoreValue | r2172_14 | +| ir.cpp:2172:7:2172:7 | Unary | m2172_6 | +| ir.cpp:2172:7:2172:7 | Unary | r2172_11 | +| ir.cpp:2172:7:2172:7 | Unary | r2172_12 | +| ir.cpp:2175:5:2175:23 | Address | &:r2175_5 | +| ir.cpp:2175:5:2175:23 | Address | &:r2175_5 | +| ir.cpp:2175:5:2175:23 | Address | &:r2175_7 | +| ir.cpp:2175:5:2175:23 | Address | &:r2175_7 | +| ir.cpp:2175:5:2175:23 | ChiPartial | partial:m2175_3 | +| ir.cpp:2175:5:2175:23 | ChiTotal | total:m2175_2 | +| ir.cpp:2175:5:2175:23 | Load | m2175_6 | +| ir.cpp:2175:5:2175:23 | SideEffect | m2175_20 | +| ir.cpp:2175:5:2175:23 | SideEffect | ~m2175_13 | +| ir.cpp:2175:29:2175:29 | Address | &:r2175_16 | +| ir.cpp:2175:29:2175:29 | Address | &:r2175_18 | +| ir.cpp:2175:29:2175:29 | Load | m2175_6 | +| ir.cpp:2175:29:2175:29 | Unary | r2175_17 | +| ir.cpp:2175:29:2175:40 | ChiPartial | partial:m2175_19 | +| ir.cpp:2175:29:2175:40 | ChiTotal | total:m2175_8 | +| ir.cpp:2175:33:2175:40 | Address | &:r2175_11 | +| ir.cpp:2175:33:2175:40 | Arg(0) | 0:r2175_10 | +| ir.cpp:2175:33:2175:40 | CallTarget | func:r2175_9 | +| ir.cpp:2175:33:2175:40 | ChiPartial | partial:m2175_12 | +| ir.cpp:2175:33:2175:40 | ChiTotal | total:m2175_4 | +| ir.cpp:2175:33:2175:40 | SideEffect | ~m2175_4 | +| ir.cpp:2175:33:2175:40 | StoreValue | r2175_15 | +| ir.cpp:2175:33:2175:40 | Unary | r2175_11 | +| ir.cpp:2176:5:2176:24 | Address | &:r2176_5 | +| ir.cpp:2176:5:2176:24 | Address | &:r2176_5 | +| ir.cpp:2176:5:2176:24 | Address | &:r2176_7 | +| ir.cpp:2176:5:2176:24 | Address | &:r2176_7 | +| ir.cpp:2176:5:2176:24 | ChiPartial | partial:m2176_3 | +| ir.cpp:2176:5:2176:24 | ChiTotal | total:m2176_2 | +| ir.cpp:2176:5:2176:24 | Load | m2176_6 | +| ir.cpp:2176:5:2176:24 | SideEffect | m2176_8 | +| ir.cpp:2176:5:2176:24 | SideEffect | ~m2176_16 | +| ir.cpp:2176:30:2176:37 | CallTarget | func:r2176_9 | +| ir.cpp:2176:30:2176:37 | ChiPartial | partial:m2176_15 | +| ir.cpp:2176:30:2176:37 | ChiTotal | total:m2176_4 | +| ir.cpp:2176:30:2176:37 | SideEffect | ~m2176_4 | +| ir.cpp:2176:37:2176:37 | Address | &:r2176_10 | +| ir.cpp:2176:37:2176:37 | Address | &:r2176_12 | +| ir.cpp:2176:37:2176:37 | Arg(0) | 0:r2176_13 | +| ir.cpp:2176:37:2176:37 | Load | m2176_6 | +| ir.cpp:2176:37:2176:37 | Load | ~m2176_8 | +| ir.cpp:2176:37:2176:37 | Unary | r2176_11 | +| ir.cpp:2178:10:2178:14 | Address | &:r2178_5 | +| ir.cpp:2178:10:2178:14 | Address | &:r2178_5 | +| ir.cpp:2178:10:2178:14 | Address | &:r2178_7 | +| ir.cpp:2178:10:2178:14 | Address | &:r2178_7 | +| ir.cpp:2178:10:2178:14 | ChiPartial | partial:m2178_3 | +| ir.cpp:2178:10:2178:14 | ChiTotal | total:m2178_2 | +| ir.cpp:2178:10:2178:14 | Load | m2178_6 | +| ir.cpp:2178:10:2178:14 | SideEffect | m2178_8 | +| ir.cpp:2178:10:2178:14 | SideEffect | ~m2178_19 | +| ir.cpp:2178:21:2178:21 | Address | &:r2178_9 | +| ir.cpp:2178:26:2178:27 | Address | &:r2178_17 | +| ir.cpp:2178:26:2178:31 | ChiPartial | partial:m2178_18 | +| ir.cpp:2178:26:2178:31 | ChiTotal | total:m2178_4 | +| ir.cpp:2178:27:2178:27 | Address | &:r2178_13 | +| ir.cpp:2178:27:2178:27 | Address | &:r2178_15 | +| ir.cpp:2178:27:2178:27 | Load | m2178_6 | +| ir.cpp:2178:27:2178:27 | Load | ~m2178_8 | +| ir.cpp:2178:27:2178:27 | Unary | r2178_14 | +| ir.cpp:2178:27:2178:27 | Unary | r2178_16 | +| ir.cpp:2178:31:2178:31 | Address | &:r2178_11 | +| ir.cpp:2178:31:2178:31 | Load | m2178_10 | +| ir.cpp:2178:31:2178:31 | StoreValue | r2178_12 | +| ir.cpp:2179:10:2179:14 | Address | &:r2179_5 | +| ir.cpp:2179:10:2179:14 | Address | &:r2179_5 | +| ir.cpp:2179:10:2179:14 | Address | &:r2179_7 | +| ir.cpp:2179:10:2179:14 | Address | &:r2179_7 | +| ir.cpp:2179:10:2179:14 | Address | &:r2179_17 | +| ir.cpp:2179:10:2179:14 | ChiPartial | partial:m2179_3 | +| ir.cpp:2179:10:2179:14 | ChiTotal | total:m2179_2 | +| ir.cpp:2179:10:2179:14 | Load | m2179_6 | +| ir.cpp:2179:10:2179:14 | Load | m2179_15 | +| ir.cpp:2179:10:2179:14 | SideEffect | m2179_3 | +| ir.cpp:2179:10:2179:14 | SideEffect | m2179_8 | +| ir.cpp:2179:20:2179:29 | Address | &:r2179_9 | +| ir.cpp:2179:27:2179:28 | Load | ~m2179_4 | +| ir.cpp:2179:27:2179:28 | StoreValue | r2179_14 | +| ir.cpp:2179:28:2179:28 | Address | &:r2179_10 | +| ir.cpp:2179:28:2179:28 | Address | &:r2179_12 | +| ir.cpp:2179:28:2179:28 | Address | &:r2179_13 | +| ir.cpp:2179:28:2179:28 | Load | m2179_6 | +| ir.cpp:2179:28:2179:28 | Load | ~m2179_8 | +| ir.cpp:2179:28:2179:28 | Unary | r2179_11 | +| ir.cpp:2182:16:2182:50 | Address | &:r2182_3 | +| ir.cpp:2182:16:2182:50 | SideEffect | ~m2182_6 | +| ir.cpp:2182:54:2182:57 | ChiPartial | partial:m2182_5 | +| ir.cpp:2182:54:2182:57 | ChiTotal | total:m2182_2 | +| ir.cpp:2182:54:2182:57 | StoreValue | r2182_4 | +| ir.cpp:2184:6:2184:35 | ChiPartial | partial:m2184_3 | +| ir.cpp:2184:6:2184:35 | ChiTotal | total:m2184_2 | +| ir.cpp:2184:6:2184:35 | Phi | from 13:~m2219_5 | +| ir.cpp:2184:6:2184:35 | Phi | from 19:~m2219_13 | +| ir.cpp:2184:6:2184:35 | Phi | from 23:~m2219_22 | +| ir.cpp:2184:6:2184:35 | SideEffect | ~m2184_9 | +| ir.cpp:2184:42:2184:42 | Address | &:r2184_5 | +| ir.cpp:2184:50:2184:50 | Address | &:r2184_7 | +| ir.cpp:2185:29:2185:29 | Address | &:r2185_1 | +| ir.cpp:2185:29:2185:29 | Address | &:r2185_1 | +| ir.cpp:2185:29:2185:29 | Arg(this) | this:r2185_1 | +| ir.cpp:2185:29:2185:29 | CallTarget | func:r2185_3 | +| ir.cpp:2185:29:2185:29 | ChiPartial | partial:m2185_5 | +| ir.cpp:2185:29:2185:29 | ChiPartial | partial:m2185_7 | +| ir.cpp:2185:29:2185:29 | ChiTotal | total:m2184_4 | +| ir.cpp:2185:29:2185:29 | ChiTotal | total:m2185_2 | +| ir.cpp:2185:29:2185:29 | SideEffect | ~m2184_4 | +| ir.cpp:2185:32:2185:32 | Address | &:r2185_9 | +| ir.cpp:2185:32:2185:32 | Condition | r2185_10 | +| ir.cpp:2185:32:2185:32 | Load | m2184_6 | +| ir.cpp:2186:9:2186:9 | Address | &:r2186_1 | +| ir.cpp:2186:9:2186:9 | Address | &:r2186_1 | +| ir.cpp:2186:9:2186:9 | Arg(this) | this:r2186_1 | +| ir.cpp:2186:9:2186:9 | ChiPartial | partial:m2186_8 | +| ir.cpp:2186:9:2186:9 | ChiTotal | total:m2185_8 | +| ir.cpp:2186:9:2186:9 | SideEffect | m2185_8 | +| ir.cpp:2186:11:2186:15 | CallTarget | func:r2186_2 | +| ir.cpp:2186:11:2186:15 | ChiPartial | partial:m2186_5 | +| ir.cpp:2186:11:2186:15 | ChiTotal | total:m2185_6 | +| ir.cpp:2186:11:2186:15 | SideEffect | ~m2185_6 | +| ir.cpp:2186:17:2186:19 | Arg(0) | 0:r2186_3 | +| ir.cpp:2186:21:2186:21 | Address | &:r2186_10 | +| ir.cpp:2186:21:2186:21 | Address | &:r2186_10 | +| ir.cpp:2186:21:2186:21 | Arg(this) | this:r2186_10 | +| ir.cpp:2186:21:2186:21 | CallTarget | func:r2186_11 | +| ir.cpp:2186:21:2186:21 | ChiPartial | partial:m2186_13 | +| ir.cpp:2186:21:2186:21 | ChiPartial | partial:m2186_16 | +| ir.cpp:2186:21:2186:21 | ChiTotal | total:m2186_6 | +| ir.cpp:2186:21:2186:21 | ChiTotal | total:m2186_9 | +| ir.cpp:2186:21:2186:21 | SideEffect | m2186_9 | +| ir.cpp:2186:21:2186:21 | SideEffect | ~m2186_6 | +| ir.cpp:2188:39:2188:39 | Address | &:r2188_2 | +| ir.cpp:2188:39:2188:39 | Address | &:r2188_2 | +| ir.cpp:2188:39:2188:39 | Arg(this) | this:r2188_2 | +| ir.cpp:2188:39:2188:39 | CallTarget | func:r2188_4 | +| ir.cpp:2188:39:2188:39 | ChiPartial | partial:m2188_6 | +| ir.cpp:2188:39:2188:39 | ChiPartial | partial:m2188_8 | +| ir.cpp:2188:39:2188:39 | ChiTotal | total:m2188_1 | +| ir.cpp:2188:39:2188:39 | ChiTotal | total:m2188_3 | +| ir.cpp:2188:39:2188:39 | Phi | from 0:~m2185_6 | +| ir.cpp:2188:39:2188:39 | Phi | from 2:~m2186_14 | +| ir.cpp:2188:39:2188:39 | SideEffect | ~m2188_1 | +| ir.cpp:2188:42:2188:76 | Condition | r2188_10 | +| ir.cpp:2189:9:2189:9 | Address | &:r2189_1 | +| ir.cpp:2189:9:2189:9 | Address | &:r2189_1 | +| ir.cpp:2189:9:2189:9 | Arg(this) | this:r2189_1 | +| ir.cpp:2189:9:2189:9 | ChiPartial | partial:m2189_8 | +| ir.cpp:2189:9:2189:9 | ChiTotal | total:m2188_9 | +| ir.cpp:2189:9:2189:9 | SideEffect | m2188_9 | +| ir.cpp:2189:11:2189:15 | CallTarget | func:r2189_2 | +| ir.cpp:2189:11:2189:15 | ChiPartial | partial:m2189_5 | +| ir.cpp:2189:11:2189:15 | ChiTotal | total:m2188_7 | +| ir.cpp:2189:11:2189:15 | SideEffect | ~m2188_7 | +| ir.cpp:2189:17:2189:19 | Arg(0) | 0:r2189_3 | +| ir.cpp:2191:32:2191:32 | Address | &:r2191_1 | +| ir.cpp:2191:32:2191:32 | Address | &:r2191_1 | +| ir.cpp:2191:32:2191:32 | Arg(this) | this:r2191_1 | +| ir.cpp:2191:32:2191:32 | CallTarget | func:r2191_3 | +| ir.cpp:2191:32:2191:32 | ChiPartial | partial:m2191_5 | +| ir.cpp:2191:32:2191:32 | ChiPartial | partial:m2191_7 | +| ir.cpp:2191:32:2191:32 | ChiTotal | total:m2189_6 | +| ir.cpp:2191:32:2191:32 | ChiTotal | total:m2191_2 | +| ir.cpp:2191:32:2191:32 | SideEffect | ~m2189_6 | +| ir.cpp:2191:35:2191:35 | Address | &:r2191_9 | +| ir.cpp:2191:35:2191:35 | Condition | r2191_11 | +| ir.cpp:2191:35:2191:35 | Load | m2184_8 | +| ir.cpp:2191:35:2191:35 | Unary | r2191_10 | +| ir.cpp:2193:11:2193:11 | Address | &:r2193_1 | +| ir.cpp:2193:11:2193:11 | Address | &:r2193_1 | +| ir.cpp:2193:11:2193:11 | Arg(this) | this:r2193_1 | +| ir.cpp:2193:11:2193:11 | ChiPartial | partial:m2193_8 | +| ir.cpp:2193:11:2193:11 | ChiTotal | total:m2191_8 | +| ir.cpp:2193:11:2193:11 | SideEffect | m2191_8 | +| ir.cpp:2193:13:2193:17 | CallTarget | func:r2193_2 | +| ir.cpp:2193:13:2193:17 | ChiPartial | partial:m2193_5 | +| ir.cpp:2193:13:2193:17 | ChiTotal | total:m2191_6 | +| ir.cpp:2193:13:2193:17 | SideEffect | ~m2191_6 | +| ir.cpp:2193:19:2193:21 | Arg(0) | 0:r2193_3 | +| ir.cpp:2196:11:2196:11 | Address | &:r2196_1 | +| ir.cpp:2196:11:2196:11 | Address | &:r2196_1 | +| ir.cpp:2196:11:2196:11 | Arg(this) | this:r2196_1 | +| ir.cpp:2196:11:2196:11 | ChiPartial | partial:m2196_8 | +| ir.cpp:2196:11:2196:11 | ChiTotal | total:m2191_8 | +| ir.cpp:2196:11:2196:11 | SideEffect | m2191_8 | +| ir.cpp:2196:13:2196:17 | CallTarget | func:r2196_2 | +| ir.cpp:2196:13:2196:17 | ChiPartial | partial:m2196_5 | +| ir.cpp:2196:13:2196:17 | ChiTotal | total:m2191_6 | +| ir.cpp:2196:13:2196:17 | SideEffect | ~m2191_6 | +| ir.cpp:2196:19:2196:21 | Arg(0) | 0:r2196_3 | +| ir.cpp:2198:5:2198:5 | Phi | from 5:~m2193_6 | +| ir.cpp:2198:5:2198:5 | Phi | from 6:~m2196_6 | +| ir.cpp:2200:25:2200:25 | Address | &:r2200_1 | +| ir.cpp:2200:25:2200:25 | Address | &:r2200_1 | +| ir.cpp:2200:25:2200:25 | Arg(this) | this:r2200_1 | +| ir.cpp:2200:25:2200:25 | CallTarget | func:r2200_3 | +| ir.cpp:2200:25:2200:25 | ChiPartial | partial:m2200_5 | +| ir.cpp:2200:25:2200:25 | ChiPartial | partial:m2200_7 | +| ir.cpp:2200:25:2200:25 | ChiTotal | total:m2198_1 | +| ir.cpp:2200:25:2200:25 | ChiTotal | total:m2200_2 | +| ir.cpp:2200:25:2200:25 | SideEffect | ~m2198_1 | +| ir.cpp:2201:5:2201:5 | Address | &:r2201_14 | +| ir.cpp:2201:5:2201:5 | Address | &:r2201_18 | +| ir.cpp:2201:5:2201:5 | Address | &:r2201_26 | +| ir.cpp:2201:42:2201:43 | Address | &:r2201_1 | +| ir.cpp:2201:42:2201:43 | Address | &:r2201_1 | +| ir.cpp:2201:42:2201:43 | Arg(this) | this:r2201_1 | +| ir.cpp:2201:45:2201:45 | Address | &:r2201_4 | +| ir.cpp:2201:45:2201:45 | Address | &:r2201_4 | +| ir.cpp:2201:45:2201:45 | Address | &:r2201_5 | +| ir.cpp:2201:45:2201:45 | Arg(0) | 0:r2201_8 | +| ir.cpp:2201:45:2201:45 | Load | m2200_8 | +| ir.cpp:2201:45:2201:45 | Load | m2201_7 | +| ir.cpp:2201:45:2201:45 | StoreValue | r2201_6 | +| ir.cpp:2201:45:2201:46 | CallTarget | func:r2201_3 | +| ir.cpp:2201:45:2201:46 | ChiPartial | partial:m2201_10 | +| ir.cpp:2201:45:2201:46 | ChiPartial | partial:m2201_12 | +| ir.cpp:2201:45:2201:46 | ChiTotal | total:m2200_6 | +| ir.cpp:2201:45:2201:46 | ChiTotal | total:m2201_2 | +| ir.cpp:2201:45:2201:46 | SideEffect | ~m2200_6 | +| ir.cpp:2201:69:2201:69 | Address | &:r2201_49 | +| ir.cpp:2201:69:2201:69 | Address | &:r2201_57 | +| ir.cpp:2201:69:2201:69 | Address | &:r2201_57 | +| ir.cpp:2201:69:2201:69 | Arg(this) | this:r2201_57 | +| ir.cpp:2201:69:2201:69 | CallTarget | func:r2201_58 | +| ir.cpp:2201:69:2201:69 | ChiPartial | partial:m2201_60 | +| ir.cpp:2201:69:2201:69 | ChiPartial | partial:m2201_63 | +| ir.cpp:2201:69:2201:69 | ChiTotal | total:m2202_6 | +| ir.cpp:2201:69:2201:69 | ChiTotal | total:m2202_9 | +| ir.cpp:2201:69:2201:69 | SideEffect | m2202_9 | +| ir.cpp:2201:69:2201:69 | SideEffect | ~m2202_6 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_19 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_27 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_52 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_65 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_65 | +| ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_2 | +| ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_5 | +| ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_7 | +| ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_8 | +| ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_15 | +| ir.cpp:2201:73:2201:73 | Arg(this) | this:r2201_65 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_21 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_29 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_37 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_38 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_51 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_66 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_23 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_31 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_41 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_43 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_46 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_53 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_68 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_71 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m0_9 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_11 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_24 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_34 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_35 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_42 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_47 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_61 | +| ir.cpp:2201:73:2201:73 | Condition | r2201_45 | +| ir.cpp:2201:73:2201:73 | Load | m2201_17 | +| ir.cpp:2201:73:2201:73 | Load | m2201_17 | +| ir.cpp:2201:73:2201:73 | Phi | from 7:m2201_25 | +| ir.cpp:2201:73:2201:73 | Phi | from 7:~m2201_32 | +| ir.cpp:2201:73:2201:73 | Phi | from 9:m2201_72 | +| ir.cpp:2201:73:2201:73 | Phi | from 9:~m2201_69 | +| ir.cpp:2201:73:2201:73 | SideEffect | m2201_34 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_11 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_24 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_35 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_42 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_47 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_61 | +| ir.cpp:2201:73:2201:73 | StoreValue | r2201_22 | +| ir.cpp:2201:73:2201:73 | StoreValue | r2201_30 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_20 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_28 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_36 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_39 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_50 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_67 | +| ir.cpp:2201:73:2201:74 | StoreValue | r2201_16 | +| ir.cpp:2201:73:2201:74 | Unary | r2201_15 | +| ir.cpp:2201:73:2201:75 | Load | ~m2201_54 | +| ir.cpp:2201:73:2201:75 | StoreValue | r2201_55 | +| ir.cpp:2202:7:2202:7 | Address | &:r2202_1 | +| ir.cpp:2202:7:2202:7 | Address | &:r2202_1 | +| ir.cpp:2202:7:2202:7 | Arg(this) | this:r2202_1 | +| ir.cpp:2202:7:2202:7 | ChiPartial | partial:m2202_8 | +| ir.cpp:2202:7:2202:7 | ChiTotal | total:m2201_56 | +| ir.cpp:2202:7:2202:7 | SideEffect | m2201_56 | +| ir.cpp:2202:9:2202:13 | CallTarget | func:r2202_2 | +| ir.cpp:2202:9:2202:13 | ChiPartial | partial:m2202_5 | +| ir.cpp:2202:9:2202:13 | ChiTotal | total:m2201_54 | +| ir.cpp:2202:9:2202:13 | SideEffect | ~m2201_54 | +| ir.cpp:2202:15:2202:17 | Arg(0) | 0:r2202_3 | +| ir.cpp:2204:5:2204:5 | Address | &:r2204_14 | +| ir.cpp:2204:5:2204:5 | Address | &:r2204_18 | +| ir.cpp:2204:5:2204:5 | Address | &:r2204_26 | +| ir.cpp:2204:42:2204:43 | Address | &:r2204_1 | +| ir.cpp:2204:42:2204:43 | Address | &:r2204_1 | +| ir.cpp:2204:42:2204:43 | Address | &:r2204_65 | +| ir.cpp:2204:42:2204:43 | Address | &:r2204_65 | +| ir.cpp:2204:42:2204:43 | Arg(this) | this:r2204_1 | +| ir.cpp:2204:42:2204:43 | Arg(this) | this:r2204_65 | +| ir.cpp:2204:42:2204:43 | CallTarget | func:r2204_66 | +| ir.cpp:2204:42:2204:43 | ChiPartial | partial:m2204_68 | +| ir.cpp:2204:42:2204:43 | ChiPartial | partial:m2204_71 | +| ir.cpp:2204:42:2204:43 | ChiTotal | total:m2204_13 | +| ir.cpp:2204:42:2204:43 | ChiTotal | total:m2204_61 | +| ir.cpp:2204:42:2204:43 | SideEffect | m2204_13 | +| ir.cpp:2204:42:2204:43 | SideEffect | ~m2204_61 | +| ir.cpp:2204:45:2204:45 | Address | &:r2204_4 | +| ir.cpp:2204:45:2204:45 | Address | &:r2204_4 | +| ir.cpp:2204:45:2204:45 | Address | &:r2204_5 | +| ir.cpp:2204:45:2204:45 | Arg(0) | 0:r2204_8 | +| ir.cpp:2204:45:2204:45 | Load | m2200_8 | +| ir.cpp:2204:45:2204:45 | Load | m2204_7 | +| ir.cpp:2204:45:2204:45 | StoreValue | r2204_6 | +| ir.cpp:2204:45:2204:46 | CallTarget | func:r2204_3 | +| ir.cpp:2204:45:2204:46 | ChiPartial | partial:m2204_10 | +| ir.cpp:2204:45:2204:46 | ChiPartial | partial:m2204_12 | +| ir.cpp:2204:45:2204:46 | ChiTotal | total:m2201_47 | +| ir.cpp:2204:45:2204:46 | ChiTotal | total:m2204_2 | +| ir.cpp:2204:45:2204:46 | SideEffect | ~m2201_47 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_49 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_57 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_57 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_73 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_73 | +| ir.cpp:2204:69:2204:69 | Arg(this) | this:r2204_57 | +| ir.cpp:2204:69:2204:69 | Arg(this) | this:r2204_73 | +| ir.cpp:2204:69:2204:69 | CallTarget | func:r2204_58 | +| ir.cpp:2204:69:2204:69 | CallTarget | func:r2204_74 | +| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_60 | +| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_63 | +| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_76 | +| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_79 | +| ir.cpp:2204:69:2204:69 | ChiTotal | total:m2206_5 | +| ir.cpp:2204:69:2204:69 | ChiTotal | total:m2206_5 | +| ir.cpp:2204:69:2204:69 | ChiTotal | total:m2206_8 | +| ir.cpp:2204:69:2204:69 | ChiTotal | total:m2206_8 | +| ir.cpp:2204:69:2204:69 | SideEffect | m2206_8 | +| ir.cpp:2204:69:2204:69 | SideEffect | m2206_8 | +| ir.cpp:2204:69:2204:69 | SideEffect | ~m2206_5 | +| ir.cpp:2204:69:2204:69 | SideEffect | ~m2206_5 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_19 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_27 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_52 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_81 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_81 | +| ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_18 | +| ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_21 | +| ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_23 | +| ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_24 | +| ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_31 | +| ir.cpp:2204:73:2204:73 | Arg(this) | this:r2204_81 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_21 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_29 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_37 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_38 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_51 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_82 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_23 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_31 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_41 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_43 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_46 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_53 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_84 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_87 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m0_25 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_11 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_24 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_34 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_35 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_42 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_47 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_77 | +| ir.cpp:2204:73:2204:73 | Condition | r2204_45 | +| ir.cpp:2204:73:2204:73 | Load | m2204_17 | +| ir.cpp:2204:73:2204:73 | Load | m2204_17 | +| ir.cpp:2204:73:2204:73 | Phi | from 10:m2204_25 | +| ir.cpp:2204:73:2204:73 | Phi | from 10:~m2204_32 | +| ir.cpp:2204:73:2204:73 | Phi | from 14:m2204_88 | +| ir.cpp:2204:73:2204:73 | Phi | from 14:~m2204_85 | +| ir.cpp:2204:73:2204:73 | SideEffect | m2204_34 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_11 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_24 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_35 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_42 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_47 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_77 | +| ir.cpp:2204:73:2204:73 | StoreValue | r2204_22 | +| ir.cpp:2204:73:2204:73 | StoreValue | r2204_30 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_20 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_28 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_36 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_39 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_50 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_83 | +| ir.cpp:2204:73:2204:74 | StoreValue | r2204_16 | +| ir.cpp:2204:73:2204:74 | Unary | r2204_15 | +| ir.cpp:2204:73:2204:75 | Load | ~m2204_54 | +| ir.cpp:2204:73:2204:75 | StoreValue | r2204_55 | +| ir.cpp:2205:7:2205:7 | Address | &:r2205_1 | +| ir.cpp:2205:7:2205:7 | Address | &:r2205_1 | +| ir.cpp:2205:7:2205:7 | Arg(this) | this:r2205_1 | +| ir.cpp:2205:7:2205:7 | ChiPartial | partial:m2205_8 | +| ir.cpp:2205:7:2205:7 | ChiTotal | total:m2204_56 | +| ir.cpp:2205:7:2205:7 | SideEffect | m2204_56 | +| ir.cpp:2205:9:2205:13 | CallTarget | func:r2205_2 | +| ir.cpp:2205:9:2205:13 | ChiPartial | partial:m2205_5 | +| ir.cpp:2205:9:2205:13 | ChiTotal | total:m2204_54 | +| ir.cpp:2205:9:2205:13 | SideEffect | ~m2204_54 | +| ir.cpp:2205:15:2205:17 | Arg(0) | 0:r2205_3 | +| ir.cpp:2206:11:2206:11 | Address | &:r2206_1 | +| ir.cpp:2206:11:2206:11 | Address | &:r2206_1 | +| ir.cpp:2206:11:2206:11 | Arg(this) | this:r2206_1 | +| ir.cpp:2206:11:2206:11 | ChiPartial | partial:m2206_7 | +| ir.cpp:2206:11:2206:11 | ChiTotal | total:m2205_9 | +| ir.cpp:2206:11:2206:11 | SideEffect | m2205_9 | +| ir.cpp:2206:11:2206:19 | Left | r2206_9 | +| ir.cpp:2206:11:2206:26 | Condition | r2206_11 | +| ir.cpp:2206:13:2206:17 | CallTarget | func:r2206_2 | +| ir.cpp:2206:13:2206:17 | ChiPartial | partial:m2206_4 | +| ir.cpp:2206:13:2206:17 | ChiTotal | total:m2205_6 | +| ir.cpp:2206:13:2206:17 | SideEffect | ~m2205_6 | +| ir.cpp:2206:13:2206:17 | Unary | r2206_3 | +| ir.cpp:2206:24:2206:26 | Right | r2206_10 | +| ir.cpp:2210:5:2210:5 | Address | &:r2210_10 | +| ir.cpp:2210:5:2210:5 | Address | &:r2210_14 | +| ir.cpp:2210:5:2210:5 | Address | &:r2210_22 | +| ir.cpp:2210:26:2210:27 | Address | &:r2210_1 | +| ir.cpp:2210:26:2210:27 | Address | &:r2210_1 | +| ir.cpp:2210:26:2210:27 | Address | &:r2210_62 | +| ir.cpp:2210:26:2210:27 | Address | &:r2210_62 | +| ir.cpp:2210:26:2210:27 | Arg(this) | this:r2210_1 | +| ir.cpp:2210:26:2210:27 | Arg(this) | this:r2210_62 | +| ir.cpp:2210:26:2210:27 | CallTarget | func:r2210_63 | +| ir.cpp:2210:26:2210:27 | ChiPartial | partial:m2210_65 | +| ir.cpp:2210:26:2210:27 | ChiPartial | partial:m2210_68 | +| ir.cpp:2210:26:2210:27 | ChiTotal | total:m2210_9 | +| ir.cpp:2210:26:2210:27 | ChiTotal | total:m2210_59 | +| ir.cpp:2210:26:2210:27 | SideEffect | m2210_9 | +| ir.cpp:2210:26:2210:27 | SideEffect | ~m2210_59 | +| ir.cpp:2210:29:2210:29 | Arg(0) | 0:r2210_4 | +| ir.cpp:2210:29:2210:30 | CallTarget | func:r2210_3 | +| ir.cpp:2210:29:2210:30 | ChiPartial | partial:m2210_6 | +| ir.cpp:2210:29:2210:30 | ChiPartial | partial:m2210_8 | +| ir.cpp:2210:29:2210:30 | ChiTotal | total:m2204_47 | +| ir.cpp:2210:29:2210:30 | ChiTotal | total:m2210_2 | +| ir.cpp:2210:29:2210:30 | SideEffect | ~m2204_47 | +| ir.cpp:2210:37:2210:37 | Address | &:r2210_54 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_15 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_23 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_45 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_45 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_57 | +| ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_34 | +| ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_37 | +| ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_39 | +| ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_40 | +| ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_47 | +| ir.cpp:2210:41:2210:41 | Arg(this) | this:r2210_45 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_17 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_25 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_33 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_34 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_46 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_56 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_19 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_27 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_37 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_39 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_42 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_48 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_51 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_58 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m0_41 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_7 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_20 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_30 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_31 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_38 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_43 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_59 | +| ir.cpp:2210:41:2210:41 | Condition | r2210_41 | +| ir.cpp:2210:41:2210:41 | Load | m2210_13 | +| ir.cpp:2210:41:2210:41 | Load | m2210_13 | +| ir.cpp:2210:41:2210:41 | Phi | from 15:m2210_21 | +| ir.cpp:2210:41:2210:41 | Phi | from 15:~m2210_28 | +| ir.cpp:2210:41:2210:41 | Phi | from 17:m2210_52 | +| ir.cpp:2210:41:2210:41 | Phi | from 17:~m2210_49 | +| ir.cpp:2210:41:2210:41 | SideEffect | m2210_30 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_7 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_20 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_31 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_38 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_43 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_59 | +| ir.cpp:2210:41:2210:41 | StoreValue | r2210_18 | +| ir.cpp:2210:41:2210:41 | StoreValue | r2210_26 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_16 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_24 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_32 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_35 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_47 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_55 | +| ir.cpp:2210:41:2210:42 | StoreValue | r2210_12 | +| ir.cpp:2210:41:2210:42 | Unary | r2210_11 | +| ir.cpp:2210:41:2210:43 | Load | ~m2210_59 | +| ir.cpp:2210:41:2210:43 | StoreValue | r2210_60 | +| ir.cpp:2211:11:2211:11 | Address | &:r2211_1 | +| ir.cpp:2211:11:2211:11 | Left | r2211_2 | +| ir.cpp:2211:11:2211:11 | Load | m2210_61 | +| ir.cpp:2211:11:2211:16 | Condition | r2211_4 | +| ir.cpp:2211:16:2211:16 | Right | r2211_3 | +| ir.cpp:2215:5:2215:5 | Address | &:r2215_14 | +| ir.cpp:2215:5:2215:5 | Address | &:r2215_18 | +| ir.cpp:2215:5:2215:5 | Address | &:r2215_26 | +| ir.cpp:2215:42:2215:43 | Address | &:r2215_1 | +| ir.cpp:2215:42:2215:43 | Address | &:r2215_1 | +| ir.cpp:2215:42:2215:43 | Arg(this) | this:r2215_1 | +| ir.cpp:2215:45:2215:45 | Address | &:r2215_4 | +| ir.cpp:2215:45:2215:45 | Address | &:r2215_4 | +| ir.cpp:2215:45:2215:45 | Address | &:r2215_5 | +| ir.cpp:2215:45:2215:45 | Arg(0) | 0:r2215_8 | +| ir.cpp:2215:45:2215:45 | Load | m2200_8 | +| ir.cpp:2215:45:2215:45 | Load | m2215_7 | +| ir.cpp:2215:45:2215:45 | StoreValue | r2215_6 | +| ir.cpp:2215:45:2215:46 | CallTarget | func:r2215_3 | +| ir.cpp:2215:45:2215:46 | ChiPartial | partial:m2215_10 | +| ir.cpp:2215:45:2215:46 | ChiPartial | partial:m2215_12 | +| ir.cpp:2215:45:2215:46 | ChiTotal | total:m2210_43 | +| ir.cpp:2215:45:2215:46 | ChiTotal | total:m2215_2 | +| ir.cpp:2215:45:2215:46 | SideEffect | ~m2210_43 | +| ir.cpp:2215:69:2215:69 | Address | &:r2215_49 | +| ir.cpp:2215:69:2215:69 | Address | &:r2215_57 | +| ir.cpp:2215:69:2215:69 | Address | &:r2215_57 | +| ir.cpp:2215:69:2215:69 | Arg(this) | this:r2215_57 | +| ir.cpp:2215:69:2215:69 | CallTarget | func:r2215_58 | +| ir.cpp:2215:69:2215:69 | ChiPartial | partial:m2215_60 | +| ir.cpp:2215:69:2215:69 | ChiPartial | partial:m2215_63 | +| ir.cpp:2215:69:2215:69 | ChiTotal | total:m2215_56 | +| ir.cpp:2215:69:2215:69 | ChiTotal | total:m2218_13 | +| ir.cpp:2215:69:2215:69 | SideEffect | m2215_56 | +| ir.cpp:2215:69:2215:69 | SideEffect | ~m2218_13 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_19 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_27 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_52 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_65 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_65 | +| ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_50 | +| ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_53 | +| ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_55 | +| ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_56 | +| ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_63 | +| ir.cpp:2215:73:2215:73 | Arg(this) | this:r2215_65 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_21 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_29 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_37 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_38 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_51 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_66 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_23 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_31 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_41 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_43 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_46 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_53 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_68 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_71 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m0_57 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_11 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_24 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_34 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_35 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_42 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_47 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_61 | +| ir.cpp:2215:73:2215:73 | Condition | r2215_45 | +| ir.cpp:2215:73:2215:73 | Load | m2215_17 | +| ir.cpp:2215:73:2215:73 | Load | m2215_17 | +| ir.cpp:2215:73:2215:73 | Phi | from 20:m2215_25 | +| ir.cpp:2215:73:2215:73 | Phi | from 20:~m2215_32 | +| ir.cpp:2215:73:2215:73 | Phi | from 22:m2215_72 | +| ir.cpp:2215:73:2215:73 | Phi | from 22:~m2215_69 | +| ir.cpp:2215:73:2215:73 | SideEffect | m2215_34 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_11 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_24 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_35 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_42 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_47 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_61 | +| ir.cpp:2215:73:2215:73 | StoreValue | r2215_22 | +| ir.cpp:2215:73:2215:73 | StoreValue | r2215_30 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_20 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_28 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_36 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_39 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_50 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_67 | +| ir.cpp:2215:73:2215:74 | StoreValue | r2215_16 | +| ir.cpp:2215:73:2215:74 | Unary | r2215_15 | +| ir.cpp:2215:73:2215:75 | Load | ~m2215_54 | +| ir.cpp:2215:73:2215:75 | StoreValue | r2215_55 | +| ir.cpp:2216:27:2216:28 | Address | &:r2216_1 | +| ir.cpp:2216:27:2216:28 | Address | &:r2216_1 | +| ir.cpp:2216:27:2216:28 | Arg(this) | this:r2216_1 | +| ir.cpp:2216:27:2216:28 | CallTarget | func:r2216_3 | +| ir.cpp:2216:27:2216:28 | ChiPartial | partial:m2216_5 | +| ir.cpp:2216:27:2216:28 | ChiPartial | partial:m2216_7 | +| ir.cpp:2216:27:2216:28 | ChiTotal | total:m2215_54 | +| ir.cpp:2216:27:2216:28 | ChiTotal | total:m2216_2 | +| ir.cpp:2216:27:2216:28 | SideEffect | ~m2215_54 | +| ir.cpp:2217:27:2217:28 | Address | &:r2217_1 | +| ir.cpp:2217:27:2217:28 | Address | &:r2217_1 | +| ir.cpp:2217:27:2217:28 | Arg(this) | this:r2217_1 | +| ir.cpp:2217:27:2217:28 | CallTarget | func:r2217_3 | +| ir.cpp:2217:27:2217:28 | ChiPartial | partial:m2217_5 | +| ir.cpp:2217:27:2217:28 | ChiPartial | partial:m2217_7 | +| ir.cpp:2217:27:2217:28 | ChiTotal | total:m2216_6 | +| ir.cpp:2217:27:2217:28 | ChiTotal | total:m2217_2 | +| ir.cpp:2217:27:2217:28 | SideEffect | ~m2216_6 | +| ir.cpp:2218:5:2218:5 | Address | &:r2218_1 | +| ir.cpp:2218:5:2218:5 | Address | &:r2218_1 | +| ir.cpp:2218:5:2218:5 | Address | &:r2218_9 | +| ir.cpp:2218:5:2218:5 | Address | &:r2218_9 | +| ir.cpp:2218:5:2218:5 | Arg(this) | this:r2218_1 | +| ir.cpp:2218:5:2218:5 | Arg(this) | this:r2218_9 | +| ir.cpp:2218:5:2218:5 | CallTarget | func:r2218_2 | +| ir.cpp:2218:5:2218:5 | CallTarget | func:r2218_10 | +| ir.cpp:2218:5:2218:5 | ChiPartial | partial:m2218_4 | +| ir.cpp:2218:5:2218:5 | ChiPartial | partial:m2218_7 | +| ir.cpp:2218:5:2218:5 | ChiPartial | partial:m2218_12 | +| ir.cpp:2218:5:2218:5 | ChiPartial | partial:m2218_15 | +| ir.cpp:2218:5:2218:5 | ChiTotal | total:m2216_8 | +| ir.cpp:2218:5:2218:5 | ChiTotal | total:m2217_6 | +| ir.cpp:2218:5:2218:5 | ChiTotal | total:m2217_8 | +| ir.cpp:2218:5:2218:5 | ChiTotal | total:m2218_5 | +| ir.cpp:2218:5:2218:5 | SideEffect | m2216_8 | +| ir.cpp:2218:5:2218:5 | SideEffect | m2217_8 | +| ir.cpp:2218:5:2218:5 | SideEffect | ~m2217_6 | +| ir.cpp:2218:5:2218:5 | SideEffect | ~m2218_5 | +| ir.cpp:2219:1:2219:1 | Address | &:r2219_1 | +| ir.cpp:2219:1:2219:1 | Address | &:r2219_1 | +| ir.cpp:2219:1:2219:1 | Address | &:r2219_9 | +| ir.cpp:2219:1:2219:1 | Address | &:r2219_9 | +| ir.cpp:2219:1:2219:1 | Address | &:r2219_18 | +| ir.cpp:2219:1:2219:1 | Address | &:r2219_18 | +| ir.cpp:2219:1:2219:1 | Arg(this) | this:r2219_1 | +| ir.cpp:2219:1:2219:1 | Arg(this) | this:r2219_9 | +| ir.cpp:2219:1:2219:1 | Arg(this) | this:r2219_18 | +| ir.cpp:2219:1:2219:1 | CallTarget | func:r2219_2 | +| ir.cpp:2219:1:2219:1 | CallTarget | func:r2219_10 | +| ir.cpp:2219:1:2219:1 | CallTarget | func:r2219_19 | +| ir.cpp:2219:1:2219:1 | ChiPartial | partial:m2219_4 | +| ir.cpp:2219:1:2219:1 | ChiPartial | partial:m2219_7 | +| ir.cpp:2219:1:2219:1 | ChiPartial | partial:m2219_12 | +| ir.cpp:2219:1:2219:1 | ChiPartial | partial:m2219_15 | +| ir.cpp:2219:1:2219:1 | ChiPartial | partial:m2219_21 | +| ir.cpp:2219:1:2219:1 | ChiPartial | partial:m2219_24 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2200_8 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2200_8 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2200_8 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2204_69 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2210_66 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2215_47 | +| ir.cpp:2219:1:2219:1 | SideEffect | m2200_8 | +| ir.cpp:2219:1:2219:1 | SideEffect | m2200_8 | +| ir.cpp:2219:1:2219:1 | SideEffect | m2200_8 | +| ir.cpp:2219:1:2219:1 | SideEffect | ~m2204_69 | +| ir.cpp:2219:1:2219:1 | SideEffect | ~m2210_66 | +| ir.cpp:2219:1:2219:1 | SideEffect | ~m2215_47 | +| ir.cpp:2221:6:2221:38 | ChiPartial | partial:m2221_3 | +| ir.cpp:2221:6:2221:38 | ChiTotal | total:m2221_2 | +| ir.cpp:2221:6:2221:38 | SideEffect | ~m2224_7 | +| ir.cpp:2222:25:2222:25 | Address | &:r2222_1 | +| ir.cpp:2222:25:2222:25 | Address | &:r2222_1 | +| ir.cpp:2222:25:2222:25 | Arg(this) | this:r2222_1 | +| ir.cpp:2222:25:2222:25 | CallTarget | func:r2222_3 | +| ir.cpp:2222:25:2222:25 | ChiPartial | partial:m2222_5 | +| ir.cpp:2222:25:2222:25 | ChiPartial | partial:m2222_7 | +| ir.cpp:2222:25:2222:25 | ChiTotal | total:m2221_4 | +| ir.cpp:2222:25:2222:25 | ChiTotal | total:m2222_2 | +| ir.cpp:2222:25:2222:25 | SideEffect | ~m2221_4 | +| ir.cpp:2223:32:2223:32 | Address | &:r2223_1 | +| ir.cpp:2223:32:2223:32 | Address | &:r2223_1 | +| ir.cpp:2223:32:2223:32 | Address | &:r2223_4 | +| ir.cpp:2223:32:2223:32 | Arg(this) | this:r2223_4 | +| ir.cpp:2223:32:2223:32 | ChiPartial | partial:m2223_6 | +| ir.cpp:2223:32:2223:32 | ChiTotal | total:m0_6 | +| ir.cpp:2223:32:2223:32 | Condition | r2223_2 | +| ir.cpp:2223:32:2223:32 | Load | ~m2222_6 | +| ir.cpp:2223:32:2223:32 | StoreValue | r2223_5 | +| ir.cpp:2224:1:2224:1 | Address | &:r2224_3 | +| ir.cpp:2224:1:2224:1 | Address | &:r2224_3 | +| ir.cpp:2224:1:2224:1 | Arg(this) | this:r2224_3 | +| ir.cpp:2224:1:2224:1 | CallTarget | func:r2224_4 | +| ir.cpp:2224:1:2224:1 | ChiPartial | partial:m2224_6 | +| ir.cpp:2224:1:2224:1 | ChiPartial | partial:m2224_9 | +| ir.cpp:2224:1:2224:1 | ChiTotal | total:m2222_8 | +| ir.cpp:2224:1:2224:1 | ChiTotal | total:m2224_1 | +| ir.cpp:2224:1:2224:1 | Phi | from 0:~m2222_6 | +| ir.cpp:2224:1:2224:1 | Phi | from 1:~m2223_7 | +| ir.cpp:2224:1:2224:1 | SideEffect | m2222_8 | +| ir.cpp:2224:1:2224:1 | SideEffect | ~m2224_1 | +| ir.cpp:2226:6:2226:38 | ChiPartial | partial:m2226_3 | +| ir.cpp:2226:6:2226:38 | ChiTotal | total:m2226_2 | +| ir.cpp:2226:6:2226:38 | SideEffect | ~m2229_6 | +| ir.cpp:2227:32:2227:32 | Address | &:r2227_1 | +| ir.cpp:2227:32:2227:32 | Address | &:r2227_1 | +| ir.cpp:2227:32:2227:32 | Address | &:r2227_4 | +| ir.cpp:2227:32:2227:32 | Arg(this) | this:r2227_4 | +| ir.cpp:2227:32:2227:32 | ChiPartial | partial:m2227_6 | +| ir.cpp:2227:32:2227:32 | ChiTotal | total:m0_6 | +| ir.cpp:2227:32:2227:32 | Condition | r2227_2 | +| ir.cpp:2227:32:2227:32 | Load | ~m2226_3 | +| ir.cpp:2227:32:2227:32 | StoreValue | r2227_5 | +| ir.cpp:2228:25:2228:25 | Address | &:r2228_2 | +| ir.cpp:2228:25:2228:25 | Address | &:r2228_2 | +| ir.cpp:2228:25:2228:25 | Arg(this) | this:r2228_2 | +| ir.cpp:2228:25:2228:25 | CallTarget | func:r2228_4 | +| ir.cpp:2228:25:2228:25 | ChiPartial | partial:m2228_6 | +| ir.cpp:2228:25:2228:25 | ChiPartial | partial:m2228_8 | +| ir.cpp:2228:25:2228:25 | ChiTotal | total:m2228_1 | +| ir.cpp:2228:25:2228:25 | ChiTotal | total:m2228_3 | +| ir.cpp:2228:25:2228:25 | Phi | from 0:~m2226_4 | +| ir.cpp:2228:25:2228:25 | Phi | from 1:~m2227_7 | +| ir.cpp:2228:25:2228:25 | SideEffect | ~m2228_1 | +| ir.cpp:2229:1:2229:1 | Address | &:r2229_2 | +| ir.cpp:2229:1:2229:1 | Address | &:r2229_2 | +| ir.cpp:2229:1:2229:1 | Arg(this) | this:r2229_2 | +| ir.cpp:2229:1:2229:1 | CallTarget | func:r2229_3 | +| ir.cpp:2229:1:2229:1 | ChiPartial | partial:m2229_5 | +| ir.cpp:2229:1:2229:1 | ChiPartial | partial:m2229_8 | +| ir.cpp:2229:1:2229:1 | ChiTotal | total:m2228_7 | +| ir.cpp:2229:1:2229:1 | ChiTotal | total:m2228_9 | +| ir.cpp:2229:1:2229:1 | SideEffect | m2228_9 | +| ir.cpp:2229:1:2229:1 | SideEffect | ~m2228_7 | +| ir.cpp:2231:6:2231:38 | ChiPartial | partial:m2231_3 | +| ir.cpp:2231:6:2231:38 | ChiTotal | total:m2231_2 | +| ir.cpp:2231:6:2231:38 | SideEffect | ~m2235_15 | +| ir.cpp:2232:25:2232:25 | Address | &:r2232_1 | +| ir.cpp:2232:25:2232:25 | Address | &:r2232_1 | +| ir.cpp:2232:25:2232:25 | Arg(this) | this:r2232_1 | +| ir.cpp:2232:25:2232:25 | CallTarget | func:r2232_3 | +| ir.cpp:2232:25:2232:25 | ChiPartial | partial:m2232_5 | +| ir.cpp:2232:25:2232:25 | ChiPartial | partial:m2232_7 | +| ir.cpp:2232:25:2232:25 | ChiTotal | total:m2231_4 | +| ir.cpp:2232:25:2232:25 | ChiTotal | total:m2232_2 | +| ir.cpp:2232:25:2232:25 | SideEffect | ~m2231_4 | +| ir.cpp:2233:25:2233:25 | Address | &:r2233_1 | +| ir.cpp:2233:25:2233:25 | Address | &:r2233_1 | +| ir.cpp:2233:25:2233:25 | Arg(this) | this:r2233_1 | +| ir.cpp:2233:25:2233:25 | CallTarget | func:r2233_3 | +| ir.cpp:2233:25:2233:25 | ChiPartial | partial:m2233_5 | +| ir.cpp:2233:25:2233:25 | ChiPartial | partial:m2233_7 | +| ir.cpp:2233:25:2233:25 | ChiTotal | total:m2232_6 | +| ir.cpp:2233:25:2233:25 | ChiTotal | total:m2233_2 | +| ir.cpp:2233:25:2233:25 | SideEffect | ~m2232_6 | +| ir.cpp:2234:32:2234:32 | Address | &:r2234_1 | +| ir.cpp:2234:32:2234:32 | Address | &:r2234_1 | +| ir.cpp:2234:32:2234:32 | Address | &:r2234_4 | +| ir.cpp:2234:32:2234:32 | Arg(this) | this:r2234_4 | +| ir.cpp:2234:32:2234:32 | ChiPartial | partial:m2234_6 | +| ir.cpp:2234:32:2234:32 | ChiTotal | total:m0_6 | +| ir.cpp:2234:32:2234:32 | Condition | r2234_2 | +| ir.cpp:2234:32:2234:32 | Load | ~m2233_6 | +| ir.cpp:2234:32:2234:32 | StoreValue | r2234_5 | +| ir.cpp:2235:1:2235:1 | Address | &:r2235_3 | +| ir.cpp:2235:1:2235:1 | Address | &:r2235_3 | +| ir.cpp:2235:1:2235:1 | Address | &:r2235_11 | +| ir.cpp:2235:1:2235:1 | Address | &:r2235_11 | +| ir.cpp:2235:1:2235:1 | Arg(this) | this:r2235_3 | +| ir.cpp:2235:1:2235:1 | Arg(this) | this:r2235_11 | +| ir.cpp:2235:1:2235:1 | CallTarget | func:r2235_4 | +| ir.cpp:2235:1:2235:1 | CallTarget | func:r2235_12 | +| ir.cpp:2235:1:2235:1 | ChiPartial | partial:m2235_6 | +| ir.cpp:2235:1:2235:1 | ChiPartial | partial:m2235_9 | +| ir.cpp:2235:1:2235:1 | ChiPartial | partial:m2235_14 | +| ir.cpp:2235:1:2235:1 | ChiPartial | partial:m2235_17 | +| ir.cpp:2235:1:2235:1 | ChiTotal | total:m2232_8 | +| ir.cpp:2235:1:2235:1 | ChiTotal | total:m2233_8 | +| ir.cpp:2235:1:2235:1 | ChiTotal | total:m2235_1 | +| ir.cpp:2235:1:2235:1 | ChiTotal | total:m2235_7 | +| ir.cpp:2235:1:2235:1 | Phi | from 0:~m2233_6 | +| ir.cpp:2235:1:2235:1 | Phi | from 1:~m2234_7 | +| ir.cpp:2235:1:2235:1 | SideEffect | m2232_8 | +| ir.cpp:2235:1:2235:1 | SideEffect | m2233_8 | +| ir.cpp:2235:1:2235:1 | SideEffect | ~m2235_1 | +| ir.cpp:2235:1:2235:1 | SideEffect | ~m2235_7 | +| ir.cpp:2237:28:2237:55 | Address | &:r2237_3 | +| ir.cpp:2237:28:2237:55 | Arg(this) | this:r2237_3 | +| ir.cpp:2237:28:2237:55 | CallTarget | func:r2237_4 | +| ir.cpp:2237:28:2237:55 | ChiPartial | partial:m2237_6 | +| ir.cpp:2237:28:2237:55 | ChiPartial | partial:m2237_8 | +| ir.cpp:2237:28:2237:55 | ChiTotal | total:m2237_2 | +| ir.cpp:2237:28:2237:55 | ChiTotal | total:m2237_7 | +| ir.cpp:2237:28:2237:55 | SideEffect | ~m2237_2 | +| ir.cpp:2237:28:2237:55 | SideEffect | ~m2237_9 | +| ir.cpp:2241:8:2241:8 | Address | &:r2241_16 | +| ir.cpp:2241:8:2241:8 | Address | &:r2241_16 | +| ir.cpp:2241:8:2241:8 | ChiPartial | partial:m2241_3 | +| ir.cpp:2241:8:2241:8 | ChiPartial | partial:m2241_3 | +| ir.cpp:2241:8:2241:8 | ChiTotal | total:m2241_2 | +| ir.cpp:2241:8:2241:8 | ChiTotal | total:m2241_2 | +| ir.cpp:2241:8:2241:8 | Load | m2241_14 | +| ir.cpp:2241:8:2241:8 | Load | m2241_14 | +| ir.cpp:2241:8:2241:8 | SideEffect | m2241_3 | +| ir.cpp:2241:8:2241:8 | SideEffect | m2241_3 | +| ir.cpp:2241:15:2241:15 | Address | &:r2241_5 | +| ir.cpp:2241:15:2241:15 | Address | &:r2241_5 | +| ir.cpp:2241:15:2241:15 | Address | &:r2241_5 | +| ir.cpp:2241:15:2241:15 | Address | &:r2241_5 | +| ir.cpp:2241:15:2241:15 | Address | &:r2241_7 | +| ir.cpp:2241:15:2241:15 | Address | &:r2241_7 | +| ir.cpp:2241:15:2241:15 | Address | &:r2241_7 | +| ir.cpp:2241:15:2241:15 | Address | &:r2241_7 | +| ir.cpp:2241:15:2241:15 | Load | m2241_6 | +| ir.cpp:2241:15:2241:15 | Load | m2241_6 | +| ir.cpp:2241:15:2241:15 | SideEffect | m2241_8 | +| ir.cpp:2241:15:2241:15 | SideEffect | m2241_8 | +| ir.cpp:2241:20:2241:28 | Address | &:r2241_9 | +| ir.cpp:2241:20:2241:28 | Address | &:r2241_9 | +| ir.cpp:2241:27:2241:27 | Address | &:r2241_10 | +| ir.cpp:2241:27:2241:27 | Address | &:r2241_10 | +| ir.cpp:2241:27:2241:27 | Load | m2241_6 | +| ir.cpp:2241:27:2241:27 | Load | m2241_6 | +| ir.cpp:2241:27:2241:27 | StoreValue | r2241_13 | +| ir.cpp:2241:27:2241:27 | StoreValue | r2241_13 | +| ir.cpp:2241:27:2241:27 | Unary | r2241_11 | +| ir.cpp:2241:27:2241:27 | Unary | r2241_11 | +| ir.cpp:2241:27:2241:27 | Unary | r2241_12 | +| ir.cpp:2241:27:2241:27 | Unary | r2241_12 | +| ir.cpp:2244:10:2244:10 | ChiPartial | partial:m2244_3 | +| ir.cpp:2244:10:2244:10 | ChiPartial | partial:m2244_3 | +| ir.cpp:2244:10:2244:10 | ChiTotal | total:m2244_2 | +| ir.cpp:2244:10:2244:10 | ChiTotal | total:m2244_2 | +| ir.cpp:2244:10:2244:10 | SideEffect | ~m2245_8 | +| ir.cpp:2244:10:2244:10 | SideEffect | ~m2245_16 | +| ir.cpp:2244:29:2244:29 | Address | &:r2244_5 | +| ir.cpp:2244:29:2244:29 | Address | &:r2244_5 | +| ir.cpp:2244:29:2244:29 | Address | &:r2244_5 | +| ir.cpp:2244:29:2244:29 | Address | &:r2244_5 | +| ir.cpp:2244:29:2244:29 | Address | &:r2244_7 | +| ir.cpp:2244:29:2244:29 | Address | &:r2244_7 | +| ir.cpp:2244:29:2244:29 | Address | &:r2244_7 | +| ir.cpp:2244:29:2244:29 | Address | &:r2244_7 | +| ir.cpp:2244:29:2244:29 | Load | m2244_6 | +| ir.cpp:2244:29:2244:29 | Load | m2244_6 | +| ir.cpp:2244:29:2244:29 | SideEffect | m2245_11 | +| ir.cpp:2244:29:2244:29 | SideEffect | m2245_19 | +| ir.cpp:2245:9:2245:11 | CallTarget | func:r2245_1 | +| ir.cpp:2245:9:2245:11 | CallTarget | func:r2245_1 | +| ir.cpp:2245:9:2245:11 | ChiPartial | partial:m2245_7 | +| ir.cpp:2245:9:2245:11 | ChiPartial | partial:m2245_7 | +| ir.cpp:2245:9:2245:11 | ChiTotal | total:m2244_4 | +| ir.cpp:2245:9:2245:11 | ChiTotal | total:m2244_4 | +| ir.cpp:2245:9:2245:11 | SideEffect | ~m2244_4 | +| ir.cpp:2245:9:2245:11 | SideEffect | ~m2244_4 | +| ir.cpp:2245:9:2245:11 | Unary | r2245_6 | +| ir.cpp:2245:9:2245:11 | Unary | r2245_6 | +| ir.cpp:2245:12:2245:15 | Address | &:r2245_12 | +| ir.cpp:2245:12:2245:15 | Address | &:r2245_12 | +| ir.cpp:2245:12:2245:15 | ChiPartial | partial:m2245_18 | +| ir.cpp:2245:12:2245:15 | ChiTotal | total:m2245_11 | +| ir.cpp:2245:12:2245:15 | SideEffect | ~m2245_11 | +| ir.cpp:2245:13:2245:13 | Address | &:r2245_2 | +| ir.cpp:2245:13:2245:13 | Address | &:r2245_2 | +| ir.cpp:2245:13:2245:13 | Address | &:r2245_5 | +| ir.cpp:2245:13:2245:13 | Address | &:r2245_5 | +| ir.cpp:2245:13:2245:13 | Address | &:r2245_5 | +| ir.cpp:2245:13:2245:13 | Address | &:r2245_5 | +| ir.cpp:2245:13:2245:13 | Arg(0) | 0:r2245_5 | +| ir.cpp:2245:13:2245:13 | Arg(0) | 0:r2245_5 | +| ir.cpp:2245:13:2245:13 | ChiPartial | partial:m2245_10 | +| ir.cpp:2245:13:2245:13 | ChiPartial | partial:m2245_10 | +| ir.cpp:2245:13:2245:13 | ChiTotal | total:m2244_8 | +| ir.cpp:2245:13:2245:13 | ChiTotal | total:m2244_8 | +| ir.cpp:2245:13:2245:13 | Load | m2244_6 | +| ir.cpp:2245:13:2245:13 | Load | m2244_6 | +| ir.cpp:2245:13:2245:13 | SideEffect | ~m2244_8 | +| ir.cpp:2245:13:2245:13 | SideEffect | ~m2244_8 | +| ir.cpp:2245:13:2245:13 | Unary | r2245_3 | +| ir.cpp:2245:13:2245:13 | Unary | r2245_3 | +| ir.cpp:2245:13:2245:13 | Unary | r2245_4 | +| ir.cpp:2245:13:2245:13 | Unary | r2245_4 | +| ir.cpp:2245:16:2245:17 | CallTarget | func:r2245_13 | +| ir.cpp:2245:16:2245:17 | ChiPartial | partial:m2245_15 | +| ir.cpp:2245:16:2245:17 | ChiTotal | total:m2245_8 | +| ir.cpp:2245:16:2245:17 | SideEffect | ~m2245_8 | +| ir.cpp:2248:10:2248:36 | ChiPartial | partial:m2248_3 | +| ir.cpp:2248:10:2248:36 | ChiTotal | total:m2248_2 | +| ir.cpp:2248:10:2248:36 | SideEffect | ~m2251_6 | +| ir.cpp:2249:29:2249:29 | Address | &:r2249_1 | +| ir.cpp:2249:29:2249:29 | Address | &:r2249_1 | +| ir.cpp:2249:29:2249:29 | Arg(this) | this:r2249_1 | +| ir.cpp:2249:29:2249:29 | CallTarget | func:r2249_3 | +| ir.cpp:2249:29:2249:29 | ChiPartial | partial:m2249_5 | +| ir.cpp:2249:29:2249:29 | ChiPartial | partial:m2249_7 | +| ir.cpp:2249:29:2249:29 | ChiTotal | total:m2248_4 | +| ir.cpp:2249:29:2249:29 | ChiTotal | total:m2249_2 | +| ir.cpp:2249:29:2249:29 | SideEffect | ~m2248_4 | +| ir.cpp:2250:9:2250:23 | CallTarget | func:r2250_1 | +| ir.cpp:2250:9:2250:23 | ChiPartial | partial:m2250_5 | +| ir.cpp:2250:9:2250:23 | ChiTotal | total:m2249_6 | +| ir.cpp:2250:9:2250:23 | SideEffect | ~m2249_6 | +| ir.cpp:2250:25:2250:25 | Address | &:r2250_3 | +| ir.cpp:2250:25:2250:25 | Address | &:r2250_3 | +| ir.cpp:2250:25:2250:25 | Arg(0) | 0:r2250_3 | +| ir.cpp:2250:25:2250:25 | ChiPartial | partial:m2250_8 | +| ir.cpp:2250:25:2250:25 | ChiTotal | total:m2249_8 | +| ir.cpp:2250:25:2250:25 | SideEffect | ~m2249_8 | +| ir.cpp:2250:25:2250:25 | Unary | r2250_2 | +| ir.cpp:2251:5:2251:5 | Address | &:r2251_2 | +| ir.cpp:2251:5:2251:5 | Address | &:r2251_2 | +| ir.cpp:2251:5:2251:5 | Arg(this) | this:r2251_2 | +| ir.cpp:2251:5:2251:5 | CallTarget | func:r2251_3 | +| ir.cpp:2251:5:2251:5 | ChiPartial | partial:m2251_5 | +| ir.cpp:2251:5:2251:5 | ChiPartial | partial:m2251_8 | +| ir.cpp:2251:5:2251:5 | ChiTotal | total:m2250_6 | +| ir.cpp:2251:5:2251:5 | ChiTotal | total:m2250_9 | +| ir.cpp:2251:5:2251:5 | SideEffect | m2250_9 | +| ir.cpp:2251:5:2251:5 | SideEffect | ~m2250_6 | +| ir.cpp:2253:10:2253:32 | ChiPartial | partial:m2253_3 | +| ir.cpp:2253:10:2253:32 | ChiTotal | total:m2253_2 | +| ir.cpp:2253:10:2253:32 | SideEffect | ~m2255_6 | +| ir.cpp:2254:13:2254:13 | Address | &:r2254_1 | +| ir.cpp:2255:9:2255:23 | CallTarget | func:r2255_1 | +| ir.cpp:2255:9:2255:23 | ChiPartial | partial:m2255_5 | +| ir.cpp:2255:9:2255:23 | ChiTotal | total:m2253_4 | +| ir.cpp:2255:9:2255:23 | SideEffect | ~m2253_4 | +| ir.cpp:2255:25:2255:25 | Address | &:r2255_3 | +| ir.cpp:2255:25:2255:25 | Address | &:r2255_3 | +| ir.cpp:2255:25:2255:25 | Arg(0) | 0:r2255_3 | +| ir.cpp:2255:25:2255:25 | ChiPartial | partial:m2255_8 | +| ir.cpp:2255:25:2255:25 | ChiTotal | total:m2254_2 | +| ir.cpp:2255:25:2255:25 | SideEffect | ~m2254_2 | +| ir.cpp:2255:25:2255:25 | Unary | r2255_2 | +| ir.cpp:2259:6:2259:24 | ChiPartial | partial:m2259_3 | +| ir.cpp:2259:6:2259:24 | ChiTotal | total:m2259_2 | +| ir.cpp:2259:6:2259:24 | Phi | from 2:~m2259_10 | +| ir.cpp:2259:6:2259:24 | Phi | from 6:~m2268_8 | +| ir.cpp:2259:6:2259:24 | Phi | from 9:~m2261_6 | +| ir.cpp:2259:6:2259:24 | Phi | from 10:~m2275_1 | +| ir.cpp:2259:6:2259:24 | SideEffect | ~m2259_7 | +| ir.cpp:2259:31:2259:31 | Address | &:r2259_5 | +| ir.cpp:2261:12:2261:12 | Address | &:r2261_1 | +| ir.cpp:2261:12:2261:12 | Address | &:r2261_1 | +| ir.cpp:2261:12:2261:12 | Arg(this) | this:r2261_1 | +| ir.cpp:2261:12:2261:12 | CallTarget | func:r2261_3 | +| ir.cpp:2261:12:2261:12 | ChiPartial | partial:m2261_5 | +| ir.cpp:2261:12:2261:12 | ChiPartial | partial:m2261_7 | +| ir.cpp:2261:12:2261:12 | ChiTotal | total:m2259_4 | +| ir.cpp:2261:12:2261:12 | ChiTotal | total:m2261_2 | +| ir.cpp:2261:12:2261:12 | SideEffect | ~m2259_4 | +| ir.cpp:2262:9:2262:9 | Address | &:r2262_1 | +| ir.cpp:2262:9:2262:9 | Condition | r2262_2 | +| ir.cpp:2262:9:2262:9 | Load | m2259_6 | +| ir.cpp:2263:7:2263:28 | Address | &:r2263_1 | +| ir.cpp:2263:7:2263:28 | Address | &:r2263_1 | +| ir.cpp:2263:7:2263:28 | Load | m2263_4 | +| ir.cpp:2263:13:2263:28 | StoreValue | r2263_3 | +| ir.cpp:2263:13:2263:28 | Unary | r2263_2 | +| ir.cpp:2265:12:2265:13 | Address | &:r2265_1 | +| ir.cpp:2265:12:2265:13 | Address | &:r2265_1 | +| ir.cpp:2265:12:2265:13 | Arg(this) | this:r2265_1 | +| ir.cpp:2265:12:2265:13 | CallTarget | func:r2265_3 | +| ir.cpp:2265:12:2265:13 | ChiPartial | partial:m2265_5 | +| ir.cpp:2265:12:2265:13 | ChiPartial | partial:m2265_7 | +| ir.cpp:2265:12:2265:13 | ChiTotal | total:m2261_6 | +| ir.cpp:2265:12:2265:13 | ChiTotal | total:m2265_2 | +| ir.cpp:2265:12:2265:13 | SideEffect | ~m2261_6 | +| ir.cpp:2266:3:2266:3 | Address | &:r2266_1 | +| ir.cpp:2266:3:2266:3 | Address | &:r2266_1 | +| ir.cpp:2266:3:2266:3 | Address | &:r2266_9 | +| ir.cpp:2266:3:2266:3 | Address | &:r2266_9 | +| ir.cpp:2266:3:2266:3 | Arg(this) | this:r2266_1 | +| ir.cpp:2266:3:2266:3 | Arg(this) | this:r2266_9 | +| ir.cpp:2266:3:2266:3 | CallTarget | func:r2266_2 | +| ir.cpp:2266:3:2266:3 | CallTarget | func:r2266_10 | +| ir.cpp:2266:3:2266:3 | ChiPartial | partial:m2266_4 | +| ir.cpp:2266:3:2266:3 | ChiPartial | partial:m2266_7 | +| ir.cpp:2266:3:2266:3 | ChiPartial | partial:m2266_12 | +| ir.cpp:2266:3:2266:3 | ChiPartial | partial:m2266_15 | +| ir.cpp:2266:3:2266:3 | ChiTotal | total:m2261_8 | +| ir.cpp:2266:3:2266:3 | ChiTotal | total:m2265_6 | +| ir.cpp:2266:3:2266:3 | ChiTotal | total:m2265_8 | +| ir.cpp:2266:3:2266:3 | ChiTotal | total:m2266_5 | +| ir.cpp:2266:3:2266:3 | SideEffect | m2261_8 | +| ir.cpp:2266:3:2266:3 | SideEffect | m2265_8 | +| ir.cpp:2266:3:2266:3 | SideEffect | ~m2265_6 | +| ir.cpp:2266:3:2266:3 | SideEffect | ~m2266_5 | +| ir.cpp:2267:22:2267:22 | Address | &:r2267_2 | +| ir.cpp:2267:22:2267:22 | Address | &:r2267_2 | +| ir.cpp:2267:22:2267:22 | Address | &:r2267_4 | +| ir.cpp:2267:22:2267:22 | Load | m2267_3 | +| ir.cpp:2268:5:2268:19 | Address | &:r2268_1 | +| ir.cpp:2268:5:2268:19 | Address | &:r2268_1 | +| ir.cpp:2268:5:2268:19 | Address | &:r2268_1 | +| ir.cpp:2268:5:2268:19 | Arg(this) | this:r2268_1 | +| ir.cpp:2268:5:2268:19 | CallTarget | func:r2268_3 | +| ir.cpp:2268:5:2268:19 | ChiPartial | partial:m2268_7 | +| ir.cpp:2268:5:2268:19 | ChiPartial | partial:m2268_10 | +| ir.cpp:2268:5:2268:19 | ChiTotal | total:m2261_6 | +| ir.cpp:2268:5:2268:19 | ChiTotal | total:m2268_2 | +| ir.cpp:2268:5:2268:19 | Load | m2268_11 | +| ir.cpp:2268:5:2268:19 | SideEffect | ~m2261_6 | +| ir.cpp:2268:18:2268:18 | Address | &:r2268_4 | +| ir.cpp:2268:18:2268:18 | Address | &:r2268_5 | +| ir.cpp:2268:18:2268:18 | Arg(0) | 0:r2268_5 | +| ir.cpp:2268:18:2268:18 | Load | m2267_3 | +| ir.cpp:2268:18:2268:18 | SideEffect | ~m2267_5 | +| ir.cpp:2270:24:2270:24 | Address | &:r2270_2 | +| ir.cpp:2270:24:2270:24 | Address | &:r2270_2 | +| ir.cpp:2270:24:2270:24 | Address | &:r2270_4 | +| ir.cpp:2270:24:2270:24 | Load | m2270_3 | +| ir.cpp:2275:1:2275:1 | Phi | from 4:~m2266_13 | +| ir.cpp:2275:1:2275:1 | Phi | from 8:~m2261_6 | +| ir.cpp:2277:6:2277:18 | ChiPartial | partial:m2277_3 | +| ir.cpp:2277:6:2277:18 | ChiTotal | total:m2277_2 | +| ir.cpp:2277:6:2277:18 | SideEffect | ~m2285_14 | +| ir.cpp:2277:25:2277:25 | Address | &:r2277_5 | +| ir.cpp:2278:12:2278:13 | Address | &:r2278_1 | +| ir.cpp:2278:12:2278:13 | Address | &:r2278_1 | +| ir.cpp:2278:12:2278:13 | Arg(this) | this:r2278_1 | +| ir.cpp:2278:12:2278:13 | CallTarget | func:r2278_3 | +| ir.cpp:2278:12:2278:13 | ChiPartial | partial:m2278_5 | +| ir.cpp:2278:12:2278:13 | ChiPartial | partial:m2278_7 | +| ir.cpp:2278:12:2278:13 | ChiTotal | total:m2277_4 | +| ir.cpp:2278:12:2278:13 | ChiTotal | total:m2278_2 | +| ir.cpp:2278:12:2278:13 | SideEffect | ~m2277_4 | +| ir.cpp:2279:8:2279:8 | Address | &:r2279_1 | +| ir.cpp:2279:8:2279:8 | Condition | r2279_2 | +| ir.cpp:2279:8:2279:8 | Load | m2277_6 | +| ir.cpp:2280:16:2280:17 | Address | &:r2280_1 | +| ir.cpp:2280:16:2280:17 | Address | &:r2280_1 | +| ir.cpp:2280:16:2280:17 | Arg(this) | this:r2280_1 | +| ir.cpp:2280:16:2280:17 | CallTarget | func:r2280_3 | +| ir.cpp:2280:16:2280:17 | ChiPartial | partial:m2280_5 | +| ir.cpp:2280:16:2280:17 | ChiPartial | partial:m2280_7 | +| ir.cpp:2280:16:2280:17 | ChiTotal | total:m2278_6 | +| ir.cpp:2280:16:2280:17 | ChiTotal | total:m2280_2 | +| ir.cpp:2280:16:2280:17 | SideEffect | ~m2278_6 | +| ir.cpp:2281:5:2281:5 | Address | &:r2281_1 | +| ir.cpp:2281:5:2281:5 | Address | &:r2281_1 | +| ir.cpp:2281:5:2281:5 | Arg(this) | this:r2281_1 | +| ir.cpp:2281:5:2281:5 | CallTarget | func:r2281_2 | +| ir.cpp:2281:5:2281:5 | ChiPartial | partial:m2281_4 | +| ir.cpp:2281:5:2281:5 | ChiPartial | partial:m2281_7 | +| ir.cpp:2281:5:2281:5 | ChiTotal | total:m2280_6 | +| ir.cpp:2281:5:2281:5 | ChiTotal | total:m2280_8 | +| ir.cpp:2281:5:2281:5 | SideEffect | m2280_8 | +| ir.cpp:2281:5:2281:5 | SideEffect | ~m2280_6 | +| ir.cpp:2282:16:2282:17 | Address | &:r2282_1 | +| ir.cpp:2282:16:2282:17 | Address | &:r2282_1 | +| ir.cpp:2282:16:2282:17 | Arg(this) | this:r2282_1 | +| ir.cpp:2282:16:2282:17 | CallTarget | func:r2282_3 | +| ir.cpp:2282:16:2282:17 | ChiPartial | partial:m2282_5 | +| ir.cpp:2282:16:2282:17 | ChiPartial | partial:m2282_7 | +| ir.cpp:2282:16:2282:17 | ChiTotal | total:m2278_6 | +| ir.cpp:2282:16:2282:17 | ChiTotal | total:m2282_2 | +| ir.cpp:2282:16:2282:17 | SideEffect | ~m2278_6 | +| ir.cpp:2283:5:2283:5 | Address | &:r2283_1 | +| ir.cpp:2283:5:2283:5 | Address | &:r2283_1 | +| ir.cpp:2283:5:2283:5 | Arg(this) | this:r2283_1 | +| ir.cpp:2283:5:2283:5 | CallTarget | func:r2283_2 | +| ir.cpp:2283:5:2283:5 | ChiPartial | partial:m2283_4 | +| ir.cpp:2283:5:2283:5 | ChiPartial | partial:m2283_7 | +| ir.cpp:2283:5:2283:5 | ChiTotal | total:m2282_6 | +| ir.cpp:2283:5:2283:5 | ChiTotal | total:m2282_8 | +| ir.cpp:2283:5:2283:5 | SideEffect | m2282_8 | +| ir.cpp:2283:5:2283:5 | SideEffect | ~m2282_6 | +| ir.cpp:2284:12:2284:13 | Address | &:r2284_2 | +| ir.cpp:2284:12:2284:13 | Address | &:r2284_2 | +| ir.cpp:2284:12:2284:13 | Arg(this) | this:r2284_2 | +| ir.cpp:2284:12:2284:13 | CallTarget | func:r2284_4 | +| ir.cpp:2284:12:2284:13 | ChiPartial | partial:m2284_6 | +| ir.cpp:2284:12:2284:13 | ChiPartial | partial:m2284_8 | +| ir.cpp:2284:12:2284:13 | ChiTotal | total:m2284_1 | +| ir.cpp:2284:12:2284:13 | ChiTotal | total:m2284_3 | +| ir.cpp:2284:12:2284:13 | Phi | from 1:~m2281_5 | +| ir.cpp:2284:12:2284:13 | Phi | from 2:~m2283_5 | +| ir.cpp:2284:12:2284:13 | SideEffect | ~m2284_1 | +| ir.cpp:2285:1:2285:1 | Address | &:r2285_2 | +| ir.cpp:2285:1:2285:1 | Address | &:r2285_2 | +| ir.cpp:2285:1:2285:1 | Address | &:r2285_10 | +| ir.cpp:2285:1:2285:1 | Address | &:r2285_10 | +| ir.cpp:2285:1:2285:1 | Arg(this) | this:r2285_2 | +| ir.cpp:2285:1:2285:1 | Arg(this) | this:r2285_10 | +| ir.cpp:2285:1:2285:1 | CallTarget | func:r2285_3 | +| ir.cpp:2285:1:2285:1 | CallTarget | func:r2285_11 | +| ir.cpp:2285:1:2285:1 | ChiPartial | partial:m2285_5 | +| ir.cpp:2285:1:2285:1 | ChiPartial | partial:m2285_8 | +| ir.cpp:2285:1:2285:1 | ChiPartial | partial:m2285_13 | +| ir.cpp:2285:1:2285:1 | ChiPartial | partial:m2285_16 | +| ir.cpp:2285:1:2285:1 | ChiTotal | total:m2278_8 | +| ir.cpp:2285:1:2285:1 | ChiTotal | total:m2284_7 | +| ir.cpp:2285:1:2285:1 | ChiTotal | total:m2284_9 | +| ir.cpp:2285:1:2285:1 | ChiTotal | total:m2285_6 | +| ir.cpp:2285:1:2285:1 | SideEffect | m2278_8 | +| ir.cpp:2285:1:2285:1 | SideEffect | m2284_9 | +| ir.cpp:2285:1:2285:1 | SideEffect | ~m2284_7 | +| ir.cpp:2285:1:2285:1 | SideEffect | ~m2285_6 | +| ir.cpp:2287:6:2287:19 | ChiPartial | partial:m2287_3 | +| ir.cpp:2287:6:2287:19 | ChiTotal | total:m2287_2 | +| ir.cpp:2287:6:2287:19 | SideEffect | ~m2297_54 | +| ir.cpp:2288:10:2288:10 | Address | &:r2288_1 | +| ir.cpp:2288:13:2288:16 | StoreValue | r2288_2 | +| ir.cpp:2289:16:2289:16 | Address | &:r2289_1 | +| ir.cpp:2289:16:2289:16 | Address | &:r2289_1 | +| ir.cpp:2289:16:2289:16 | Address | &:r2289_31 | +| ir.cpp:2289:16:2289:16 | Address | &:r2289_31 | +| ir.cpp:2289:16:2289:16 | Arg(this) | this:r2289_1 | +| ir.cpp:2289:16:2289:16 | Arg(this) | this:r2289_31 | +| ir.cpp:2289:16:2289:16 | CallTarget | func:r2289_32 | +| ir.cpp:2289:16:2289:16 | ChiPartial | partial:m2289_34 | +| ir.cpp:2289:16:2289:16 | ChiPartial | partial:m2289_37 | +| ir.cpp:2289:16:2289:16 | ChiTotal | total:m2289_12 | +| ir.cpp:2289:16:2289:16 | ChiTotal | total:m2289_13 | +| ir.cpp:2289:16:2289:16 | SideEffect | m2289_12 | +| ir.cpp:2289:16:2289:16 | SideEffect | ~m2289_13 | +| ir.cpp:2289:18:2289:24 | Address | &:r2289_5 | +| ir.cpp:2289:18:2289:24 | Arg(0) | 0:r2289_5 | +| ir.cpp:2289:18:2289:24 | SideEffect | ~m2287_3 | +| ir.cpp:2289:18:2289:24 | Unary | r2289_4 | +| ir.cpp:2289:18:2289:25 | CallTarget | func:r2289_3 | +| ir.cpp:2289:18:2289:25 | ChiPartial | partial:m2289_7 | +| ir.cpp:2289:18:2289:25 | ChiPartial | partial:m2289_10 | +| ir.cpp:2289:18:2289:25 | ChiTotal | total:m2287_4 | +| ir.cpp:2289:18:2289:25 | ChiTotal | total:m2289_2 | +| ir.cpp:2289:18:2289:25 | SideEffect | ~m2287_4 | +| ir.cpp:2289:28:2289:28 | Address | &:r2289_15 | +| ir.cpp:2289:28:2289:28 | Left | r2289_17 | +| ir.cpp:2289:28:2289:28 | Load | m2289_14 | +| ir.cpp:2289:28:2289:28 | Phi | from 0:m2288_3 | +| ir.cpp:2289:28:2289:28 | Phi | from 0:m2289_11 | +| ir.cpp:2289:28:2289:28 | Phi | from 0:~m2289_8 | +| ir.cpp:2289:28:2289:28 | Phi | from 2:m2289_28 | +| ir.cpp:2289:28:2289:28 | Phi | from 2:m2289_30 | +| ir.cpp:2289:28:2289:28 | Phi | from 2:~m2289_25 | +| ir.cpp:2289:28:2289:28 | Unary | r2289_16 | +| ir.cpp:2289:28:2289:33 | Condition | r2289_19 | +| ir.cpp:2289:33:2289:33 | Right | r2289_18 | +| ir.cpp:2289:36:2289:36 | Address | &:r2289_29 | +| ir.cpp:2289:40:2289:40 | Address | &:r2289_21 | +| ir.cpp:2289:40:2289:40 | Address | &:r2289_21 | +| ir.cpp:2289:40:2289:40 | Arg(this) | this:r2289_21 | +| ir.cpp:2289:40:2289:40 | ChiPartial | partial:m2289_27 | +| ir.cpp:2289:40:2289:40 | ChiTotal | total:m2289_12 | +| ir.cpp:2289:40:2289:40 | SideEffect | m2289_12 | +| ir.cpp:2289:42:2289:49 | CallTarget | func:r2289_22 | +| ir.cpp:2289:42:2289:49 | ChiPartial | partial:m2289_24 | +| ir.cpp:2289:42:2289:49 | ChiTotal | total:m2291_5 | +| ir.cpp:2289:42:2289:49 | SideEffect | ~m2291_5 | +| ir.cpp:2289:42:2289:49 | StoreValue | r2289_23 | +| ir.cpp:2290:16:2290:17 | Address | &:r2290_1 | +| ir.cpp:2290:16:2290:17 | Address | &:r2290_1 | +| ir.cpp:2290:16:2290:17 | Arg(this) | this:r2290_1 | +| ir.cpp:2290:16:2290:17 | CallTarget | func:r2290_3 | +| ir.cpp:2290:16:2290:17 | ChiPartial | partial:m2290_5 | +| ir.cpp:2290:16:2290:17 | ChiPartial | partial:m2290_7 | +| ir.cpp:2290:16:2290:17 | ChiTotal | total:m2289_13 | +| ir.cpp:2290:16:2290:17 | ChiTotal | total:m2290_2 | +| ir.cpp:2290:16:2290:17 | SideEffect | ~m2289_13 | +| ir.cpp:2291:5:2291:5 | Address | &:r2291_1 | +| ir.cpp:2291:5:2291:5 | Address | &:r2291_1 | +| ir.cpp:2291:5:2291:5 | Arg(this) | this:r2291_1 | +| ir.cpp:2291:5:2291:5 | CallTarget | func:r2291_2 | +| ir.cpp:2291:5:2291:5 | ChiPartial | partial:m2291_4 | +| ir.cpp:2291:5:2291:5 | ChiPartial | partial:m2291_7 | +| ir.cpp:2291:5:2291:5 | ChiTotal | total:m2290_6 | +| ir.cpp:2291:5:2291:5 | ChiTotal | total:m2290_8 | +| ir.cpp:2291:5:2291:5 | SideEffect | m2290_8 | +| ir.cpp:2291:5:2291:5 | SideEffect | ~m2290_6 | +| ir.cpp:2293:5:2293:5 | Address | &:r2293_1 | +| ir.cpp:2293:5:2293:5 | Address | &:r2293_24 | +| ir.cpp:2293:5:2293:5 | Address | &:r2293_32 | +| ir.cpp:2293:16:2293:16 | Address | &:r2293_55 | +| ir.cpp:2293:16:2293:16 | Address | &:r2293_55 | +| ir.cpp:2293:16:2293:16 | Address | &:r2293_72 | +| ir.cpp:2293:16:2293:16 | Address | &:r2293_72 | +| ir.cpp:2293:16:2293:16 | Arg(this) | this:r2293_55 | +| ir.cpp:2293:16:2293:16 | Arg(this) | this:r2293_72 | +| ir.cpp:2293:16:2293:16 | CallTarget | func:r2293_57 | +| ir.cpp:2293:16:2293:16 | CallTarget | func:r2293_73 | +| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_67 | +| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_70 | +| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_75 | +| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_78 | +| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_56 | +| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_62 | +| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_71 | +| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2295_5 | +| ir.cpp:2293:16:2293:16 | SideEffect | m2293_71 | +| ir.cpp:2293:16:2293:16 | SideEffect | ~m2293_62 | +| ir.cpp:2293:16:2293:16 | SideEffect | ~m2295_5 | +| ir.cpp:2293:20:2293:20 | Address | &:r2293_25 | +| ir.cpp:2293:20:2293:20 | Address | &:r2293_33 | +| ir.cpp:2293:20:2293:20 | Address | &:r2293_80 | +| ir.cpp:2293:20:2293:20 | Address | &:r2293_80 | +| ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_2 | +| ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_5 | +| ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_7 | +| ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_8 | +| ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_15 | +| ir.cpp:2293:20:2293:20 | Arg(this) | this:r2293_80 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_27 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_35 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_43 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_44 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_59 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_81 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_29 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_37 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_47 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_49 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_52 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_61 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_83 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_86 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m0_9 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_19 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_30 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_40 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_41 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_48 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_53 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_76 | +| ir.cpp:2293:20:2293:20 | Condition | r2293_51 | +| ir.cpp:2293:20:2293:20 | Load | m2293_23 | +| ir.cpp:2293:20:2293:20 | Load | m2293_23 | +| ir.cpp:2293:20:2293:20 | Phi | from 3:m2293_31 | +| ir.cpp:2293:20:2293:20 | Phi | from 3:~m2293_38 | +| ir.cpp:2293:20:2293:20 | Phi | from 5:m2293_87 | +| ir.cpp:2293:20:2293:20 | Phi | from 5:~m2293_84 | +| ir.cpp:2293:20:2293:20 | SideEffect | m2293_40 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_19 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_30 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_41 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_48 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_53 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_76 | +| ir.cpp:2293:20:2293:20 | StoreValue | r2293_28 | +| ir.cpp:2293:20:2293:20 | StoreValue | r2293_36 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_26 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_34 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_42 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_45 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_58 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_60 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_82 | +| ir.cpp:2293:20:2293:55 | Address | &:r2293_2 | +| ir.cpp:2293:20:2293:55 | Address | &:r2293_2 | +| ir.cpp:2293:20:2293:55 | Arg(this) | this:r2293_2 | +| ir.cpp:2293:20:2293:55 | CallTarget | func:r2293_4 | +| ir.cpp:2293:20:2293:55 | ChiPartial | partial:m2293_18 | +| ir.cpp:2293:20:2293:55 | ChiPartial | partial:m2293_20 | +| ir.cpp:2293:20:2293:55 | ChiTotal | total:m2293_3 | +| ir.cpp:2293:20:2293:55 | ChiTotal | total:m2293_12 | +| ir.cpp:2293:20:2293:55 | SideEffect | ~m2293_12 | +| ir.cpp:2293:20:2293:55 | StoreValue | r2293_22 | +| ir.cpp:2293:20:2293:55 | Unary | r2293_2 | +| ir.cpp:2293:20:2293:56 | Address | &:r2293_65 | +| ir.cpp:2293:20:2293:56 | Arg(0) | 0:r2293_65 | +| ir.cpp:2293:20:2293:56 | SideEffect | ~m2293_68 | +| ir.cpp:2293:20:2293:56 | Unary | r2293_63 | +| ir.cpp:2293:20:2293:56 | Unary | r2293_64 | +| ir.cpp:2293:40:2293:54 | Address | &:r2293_5 | +| ir.cpp:2293:40:2293:54 | Address | &:r2293_5 | +| ir.cpp:2293:40:2293:54 | Address | &:r2293_5 | +| ir.cpp:2293:40:2293:54 | Arg(0) | 0:r2293_16 | +| ir.cpp:2293:40:2293:54 | Arg(this) | this:r2293_5 | +| ir.cpp:2293:40:2293:54 | CallTarget | func:r2293_7 | +| ir.cpp:2293:40:2293:54 | ChiPartial | partial:m2293_11 | +| ir.cpp:2293:40:2293:54 | ChiPartial | partial:m2293_14 | +| ir.cpp:2293:40:2293:54 | ChiTotal | total:m2289_35 | +| ir.cpp:2293:40:2293:54 | ChiTotal | total:m2293_6 | +| ir.cpp:2293:40:2293:54 | Load | m2293_15 | +| ir.cpp:2293:40:2293:54 | SideEffect | ~m2289_35 | +| ir.cpp:2293:47:2293:53 | Address | &:r2293_9 | +| ir.cpp:2293:47:2293:53 | Arg(0) | 0:r2293_9 | +| ir.cpp:2293:47:2293:53 | SideEffect | ~m2287_3 | +| ir.cpp:2293:47:2293:53 | Unary | r2293_8 | +| ir.cpp:2294:16:2294:17 | Address | &:r2294_1 | +| ir.cpp:2294:16:2294:17 | Address | &:r2294_1 | +| ir.cpp:2294:16:2294:17 | Arg(this) | this:r2294_1 | +| ir.cpp:2294:16:2294:17 | CallTarget | func:r2294_3 | +| ir.cpp:2294:16:2294:17 | ChiPartial | partial:m2294_5 | +| ir.cpp:2294:16:2294:17 | ChiPartial | partial:m2294_7 | +| ir.cpp:2294:16:2294:17 | ChiTotal | total:m2293_68 | +| ir.cpp:2294:16:2294:17 | ChiTotal | total:m2294_2 | +| ir.cpp:2294:16:2294:17 | SideEffect | ~m2293_68 | +| ir.cpp:2295:5:2295:5 | Address | &:r2295_1 | +| ir.cpp:2295:5:2295:5 | Address | &:r2295_1 | +| ir.cpp:2295:5:2295:5 | Arg(this) | this:r2295_1 | +| ir.cpp:2295:5:2295:5 | CallTarget | func:r2295_2 | +| ir.cpp:2295:5:2295:5 | ChiPartial | partial:m2295_4 | +| ir.cpp:2295:5:2295:5 | ChiPartial | partial:m2295_7 | +| ir.cpp:2295:5:2295:5 | ChiTotal | total:m2294_6 | +| ir.cpp:2295:5:2295:5 | ChiTotal | total:m2294_8 | +| ir.cpp:2295:5:2295:5 | SideEffect | m2294_8 | +| ir.cpp:2295:5:2295:5 | SideEffect | ~m2294_6 | +| ir.cpp:2297:16:2297:16 | Address | &:r2297_1 | +| ir.cpp:2297:16:2297:16 | Address | &:r2297_1 | +| ir.cpp:2297:16:2297:16 | Address | &:r2297_50 | +| ir.cpp:2297:16:2297:16 | Address | &:r2297_50 | +| ir.cpp:2297:16:2297:16 | Arg(this) | this:r2297_1 | +| ir.cpp:2297:16:2297:16 | Arg(this) | this:r2297_50 | +| ir.cpp:2297:16:2297:16 | CallTarget | func:r2297_51 | +| ir.cpp:2297:16:2297:16 | ChiPartial | partial:m2297_53 | +| ir.cpp:2297:16:2297:16 | ChiPartial | partial:m2297_56 | +| ir.cpp:2297:16:2297:16 | ChiTotal | total:m2297_23 | +| ir.cpp:2297:16:2297:16 | ChiTotal | total:m2297_46 | +| ir.cpp:2297:16:2297:16 | SideEffect | m2297_23 | +| ir.cpp:2297:16:2297:16 | SideEffect | ~m2297_46 | +| ir.cpp:2297:18:2297:24 | Address | &:r2297_5 | +| ir.cpp:2297:18:2297:24 | Arg(0) | 0:r2297_5 | +| ir.cpp:2297:18:2297:24 | SideEffect | ~m2287_3 | +| ir.cpp:2297:18:2297:24 | Unary | r2297_4 | +| ir.cpp:2297:18:2297:25 | CallTarget | func:r2297_3 | +| ir.cpp:2297:18:2297:25 | ChiPartial | partial:m2297_7 | +| ir.cpp:2297:18:2297:25 | ChiPartial | partial:m2297_10 | +| ir.cpp:2297:18:2297:25 | ChiTotal | total:m2293_53 | +| ir.cpp:2297:18:2297:25 | ChiTotal | total:m2297_2 | +| ir.cpp:2297:18:2297:25 | SideEffect | ~m2293_53 | +| ir.cpp:2297:28:2297:29 | Address | &:r2297_12 | +| ir.cpp:2297:28:2297:29 | Address | &:r2297_12 | +| ir.cpp:2297:28:2297:29 | Address | &:r2297_42 | +| ir.cpp:2297:28:2297:29 | Address | &:r2297_42 | +| ir.cpp:2297:28:2297:29 | Arg(this) | this:r2297_12 | +| ir.cpp:2297:28:2297:29 | Arg(this) | this:r2297_42 | +| ir.cpp:2297:28:2297:29 | CallTarget | func:r2297_43 | +| ir.cpp:2297:28:2297:29 | ChiPartial | partial:m2297_45 | +| ir.cpp:2297:28:2297:29 | ChiPartial | partial:m2297_48 | +| ir.cpp:2297:28:2297:29 | ChiTotal | total:m2297_22 | +| ir.cpp:2297:28:2297:29 | ChiTotal | total:m2297_24 | +| ir.cpp:2297:28:2297:29 | SideEffect | m2297_22 | +| ir.cpp:2297:28:2297:29 | SideEffect | ~m2297_24 | +| ir.cpp:2297:31:2297:37 | Address | &:r2297_16 | +| ir.cpp:2297:31:2297:37 | Arg(0) | 0:r2297_16 | +| ir.cpp:2297:31:2297:37 | SideEffect | ~m2287_3 | +| ir.cpp:2297:31:2297:37 | Unary | r2297_15 | +| ir.cpp:2297:31:2297:38 | CallTarget | func:r2297_14 | +| ir.cpp:2297:31:2297:38 | ChiPartial | partial:m2297_18 | +| ir.cpp:2297:31:2297:38 | ChiPartial | partial:m2297_21 | +| ir.cpp:2297:31:2297:38 | ChiTotal | total:m2297_8 | +| ir.cpp:2297:31:2297:38 | ChiTotal | total:m2297_13 | +| ir.cpp:2297:31:2297:38 | SideEffect | ~m2297_8 | +| ir.cpp:2297:41:2297:41 | Address | &:r2297_26 | +| ir.cpp:2297:41:2297:41 | Left | r2297_28 | +| ir.cpp:2297:41:2297:41 | Load | m2297_25 | +| ir.cpp:2297:41:2297:41 | Phi | from 6:m2289_14 | +| ir.cpp:2297:41:2297:41 | Phi | from 6:m2297_11 | +| ir.cpp:2297:41:2297:41 | Phi | from 6:~m2297_19 | +| ir.cpp:2297:41:2297:41 | Phi | from 8:m2297_39 | +| ir.cpp:2297:41:2297:41 | Phi | from 8:m2297_41 | +| ir.cpp:2297:41:2297:41 | Phi | from 8:~m2297_36 | +| ir.cpp:2297:41:2297:41 | Unary | r2297_27 | +| ir.cpp:2297:41:2297:46 | Condition | r2297_30 | +| ir.cpp:2297:46:2297:46 | Right | r2297_29 | +| ir.cpp:2297:49:2297:49 | Address | &:r2297_40 | +| ir.cpp:2297:53:2297:53 | Address | &:r2297_32 | +| ir.cpp:2297:53:2297:53 | Address | &:r2297_32 | +| ir.cpp:2297:53:2297:53 | Arg(this) | this:r2297_32 | +| ir.cpp:2297:53:2297:53 | ChiPartial | partial:m2297_38 | +| ir.cpp:2297:53:2297:53 | ChiTotal | total:m2297_23 | +| ir.cpp:2297:53:2297:53 | SideEffect | m2297_23 | +| ir.cpp:2297:55:2297:62 | CallTarget | func:r2297_33 | +| ir.cpp:2297:55:2297:62 | ChiPartial | partial:m2297_35 | +| ir.cpp:2297:55:2297:62 | ChiTotal | total:m2297_24 | +| ir.cpp:2297:55:2297:62 | SideEffect | ~m2297_24 | +| ir.cpp:2297:55:2297:62 | StoreValue | r2297_34 | +| ir.cpp:2298:9:2298:9 | Address | &:r2298_2 | +| ir.cpp:2298:13:2298:13 | StoreValue | r2298_1 | +| ir.cpp:2302:6:2302:19 | ChiPartial | partial:m2302_3 | +| ir.cpp:2302:6:2302:19 | ChiTotal | total:m2302_2 | +| ir.cpp:2302:6:2302:19 | SideEffect | ~m2307_5 | +| ir.cpp:2302:26:2302:26 | Address | &:r2302_5 | +| ir.cpp:2303:15:2303:15 | Address | &:r2303_1 | +| ir.cpp:2303:15:2303:15 | Address | &:r2303_1 | +| ir.cpp:2303:15:2303:15 | Arg(this) | this:r2303_1 | +| ir.cpp:2303:18:2303:33 | CallTarget | func:r2303_3 | +| ir.cpp:2303:18:2303:33 | ChiPartial | partial:m2303_7 | +| ir.cpp:2303:18:2303:33 | ChiPartial | partial:m2303_10 | +| ir.cpp:2303:18:2303:33 | ChiTotal | total:m2302_4 | +| ir.cpp:2303:18:2303:33 | ChiTotal | total:m2303_2 | +| ir.cpp:2303:18:2303:33 | SideEffect | ~m2302_4 | +| ir.cpp:2303:26:2303:32 | Address | &:r2303_5 | +| ir.cpp:2303:26:2303:32 | Arg(0) | 0:r2303_5 | +| ir.cpp:2303:26:2303:32 | SideEffect | ~m2302_3 | +| ir.cpp:2303:26:2303:32 | Unary | r2303_4 | +| ir.cpp:2303:36:2303:36 | Address | &:r2303_12 | +| ir.cpp:2303:36:2303:36 | Condition | r2303_13 | +| ir.cpp:2303:36:2303:36 | Load | m2302_6 | +| ir.cpp:2304:13:2304:13 | Address | &:r2304_1 | +| ir.cpp:2304:16:2304:17 | StoreValue | r2304_2 | +| ir.cpp:2306:13:2306:13 | Address | &:r2306_1 | +| ir.cpp:2306:16:2306:17 | StoreValue | r2306_2 | +| ir.cpp:2307:5:2307:5 | Address | &:r2307_1 | +| ir.cpp:2307:5:2307:5 | Address | &:r2307_1 | +| ir.cpp:2307:5:2307:5 | Arg(this) | this:r2307_1 | +| ir.cpp:2307:5:2307:5 | CallTarget | func:r2307_2 | +| ir.cpp:2307:5:2307:5 | ChiPartial | partial:m2307_4 | +| ir.cpp:2307:5:2307:5 | ChiPartial | partial:m2307_7 | +| ir.cpp:2307:5:2307:5 | ChiTotal | total:m2303_8 | +| ir.cpp:2307:5:2307:5 | ChiTotal | total:m2303_11 | +| ir.cpp:2307:5:2307:5 | SideEffect | m2303_11 | +| ir.cpp:2307:5:2307:5 | SideEffect | ~m2303_8 | +| ir.cpp:2317:6:2317:19 | ChiPartial | partial:m2317_3 | +| ir.cpp:2317:6:2317:19 | ChiTotal | total:m2317_2 | +| ir.cpp:2317:6:2317:19 | SideEffect | ~m2322_14 | +| ir.cpp:2317:26:2317:26 | Address | &:r2317_5 | +| ir.cpp:2318:8:2318:23 | Address | &:r2318_1 | +| ir.cpp:2318:8:2318:23 | Address | &:r2318_1 | +| ir.cpp:2318:8:2318:23 | Arg(this) | this:r2318_1 | +| ir.cpp:2318:8:2318:23 | Condition | r2318_19 | +| ir.cpp:2318:13:2318:13 | Address | &:r2318_11 | +| ir.cpp:2318:13:2318:13 | Address | &:r2318_11 | +| ir.cpp:2318:13:2318:13 | Arg(this) | this:r2318_11 | +| ir.cpp:2318:13:2318:13 | CallTarget | func:r2318_12 | +| ir.cpp:2318:13:2318:13 | ChiPartial | partial:m2318_14 | +| ir.cpp:2318:13:2318:13 | ChiPartial | partial:m2318_17 | +| ir.cpp:2318:13:2318:13 | ChiTotal | total:m2318_8 | +| ir.cpp:2318:13:2318:13 | ChiTotal | total:m2318_10 | +| ir.cpp:2318:13:2318:13 | SideEffect | m2318_10 | +| ir.cpp:2318:13:2318:13 | SideEffect | ~m2318_8 | +| ir.cpp:2318:13:2318:13 | Unary | r2318_13 | +| ir.cpp:2318:16:2318:23 | CallTarget | func:r2318_3 | +| ir.cpp:2318:16:2318:23 | ChiPartial | partial:m2318_7 | +| ir.cpp:2318:16:2318:23 | ChiPartial | partial:m2318_9 | +| ir.cpp:2318:16:2318:23 | ChiTotal | total:m2317_4 | +| ir.cpp:2318:16:2318:23 | ChiTotal | total:m2318_2 | +| ir.cpp:2318:16:2318:23 | SideEffect | ~m2317_4 | +| ir.cpp:2318:22:2318:22 | Address | &:r2318_4 | +| ir.cpp:2318:22:2318:22 | Arg(0) | 0:r2318_5 | +| ir.cpp:2318:22:2318:22 | Load | m2317_6 | +| ir.cpp:2319:16:2319:17 | Address | &:r2319_1 | +| ir.cpp:2319:16:2319:17 | Address | &:r2319_1 | +| ir.cpp:2319:16:2319:17 | Arg(this) | this:r2319_1 | +| ir.cpp:2319:16:2319:17 | CallTarget | func:r2319_3 | +| ir.cpp:2319:16:2319:17 | ChiPartial | partial:m2319_5 | +| ir.cpp:2319:16:2319:17 | ChiPartial | partial:m2319_7 | +| ir.cpp:2319:16:2319:17 | ChiTotal | total:m2318_15 | +| ir.cpp:2319:16:2319:17 | ChiTotal | total:m2319_2 | +| ir.cpp:2319:16:2319:17 | SideEffect | ~m2318_15 | +| ir.cpp:2320:5:2320:5 | Address | &:r2320_1 | +| ir.cpp:2320:5:2320:5 | Address | &:r2320_1 | +| ir.cpp:2320:5:2320:5 | Arg(this) | this:r2320_1 | +| ir.cpp:2320:5:2320:5 | CallTarget | func:r2320_2 | +| ir.cpp:2320:5:2320:5 | ChiPartial | partial:m2320_4 | +| ir.cpp:2320:5:2320:5 | ChiPartial | partial:m2320_7 | +| ir.cpp:2320:5:2320:5 | ChiTotal | total:m2319_6 | +| ir.cpp:2320:5:2320:5 | ChiTotal | total:m2319_8 | +| ir.cpp:2320:5:2320:5 | SideEffect | m2319_8 | +| ir.cpp:2320:5:2320:5 | SideEffect | ~m2319_6 | +| ir.cpp:2321:16:2321:17 | Address | &:r2321_1 | +| ir.cpp:2321:16:2321:17 | Address | &:r2321_1 | +| ir.cpp:2321:16:2321:17 | Arg(this) | this:r2321_1 | +| ir.cpp:2321:16:2321:17 | CallTarget | func:r2321_3 | +| ir.cpp:2321:16:2321:17 | ChiPartial | partial:m2321_5 | +| ir.cpp:2321:16:2321:17 | ChiPartial | partial:m2321_7 | +| ir.cpp:2321:16:2321:17 | ChiTotal | total:m2318_15 | +| ir.cpp:2321:16:2321:17 | ChiTotal | total:m2321_2 | +| ir.cpp:2321:16:2321:17 | SideEffect | ~m2318_15 | +| ir.cpp:2322:5:2322:5 | Address | &:r2322_1 | +| ir.cpp:2322:5:2322:5 | Address | &:r2322_1 | +| ir.cpp:2322:5:2322:5 | Address | &:r2322_10 | +| ir.cpp:2322:5:2322:5 | Address | &:r2322_10 | +| ir.cpp:2322:5:2322:5 | Arg(this) | this:r2322_1 | +| ir.cpp:2322:5:2322:5 | Arg(this) | this:r2322_10 | +| ir.cpp:2322:5:2322:5 | CallTarget | func:r2322_2 | +| ir.cpp:2322:5:2322:5 | CallTarget | func:r2322_11 | +| ir.cpp:2322:5:2322:5 | ChiPartial | partial:m2322_4 | +| ir.cpp:2322:5:2322:5 | ChiPartial | partial:m2322_7 | +| ir.cpp:2322:5:2322:5 | ChiPartial | partial:m2322_13 | +| ir.cpp:2322:5:2322:5 | ChiPartial | partial:m2322_16 | +| ir.cpp:2322:5:2322:5 | ChiTotal | total:m2318_18 | +| ir.cpp:2322:5:2322:5 | ChiTotal | total:m2321_6 | +| ir.cpp:2322:5:2322:5 | ChiTotal | total:m2321_8 | +| ir.cpp:2322:5:2322:5 | ChiTotal | total:m2322_9 | +| ir.cpp:2322:5:2322:5 | Phi | from 1:~m2320_5 | +| ir.cpp:2322:5:2322:5 | Phi | from 2:~m2322_5 | +| ir.cpp:2322:5:2322:5 | SideEffect | m2318_18 | +| ir.cpp:2322:5:2322:5 | SideEffect | m2321_8 | +| ir.cpp:2322:5:2322:5 | SideEffect | ~m2321_6 | +| ir.cpp:2322:5:2322:5 | SideEffect | ~m2322_9 | +| ir.cpp:2325:6:2325:25 | ChiPartial | partial:m2325_3 | +| ir.cpp:2325:6:2325:25 | ChiTotal | total:m2325_2 | +| ir.cpp:2325:6:2325:25 | SideEffect | ~m2336_13 | +| ir.cpp:2325:32:2325:32 | Address | &:r2325_5 | +| ir.cpp:2327:16:2327:16 | Address | &:r2327_1 | +| ir.cpp:2327:16:2327:16 | Address | &:r2327_1 | +| ir.cpp:2327:16:2327:16 | Arg(this) | this:r2327_1 | +| ir.cpp:2327:16:2327:16 | CallTarget | func:r2327_3 | +| ir.cpp:2327:16:2327:16 | ChiPartial | partial:m2327_5 | +| ir.cpp:2327:16:2327:16 | ChiPartial | partial:m2327_7 | +| ir.cpp:2327:16:2327:16 | ChiTotal | total:m2325_4 | +| ir.cpp:2327:16:2327:16 | ChiTotal | total:m2327_2 | +| ir.cpp:2327:16:2327:16 | SideEffect | ~m2325_4 | +| ir.cpp:2328:15:2328:15 | Address | &:r2328_2 | +| ir.cpp:2328:15:2328:15 | Condition | r2328_3 | +| ir.cpp:2328:15:2328:15 | Load | m2328_1 | +| ir.cpp:2328:15:2328:15 | Phi | from 0:m2325_6 | +| ir.cpp:2328:15:2328:15 | Phi | from 2:m2329_3 | +| ir.cpp:2329:13:2329:13 | Address | &:r2329_2 | +| ir.cpp:2329:17:2329:21 | StoreValue | r2329_1 | +| ir.cpp:2331:5:2331:5 | Address | &:r2331_1 | +| ir.cpp:2331:5:2331:5 | Address | &:r2331_1 | +| ir.cpp:2331:5:2331:5 | Arg(this) | this:r2331_1 | +| ir.cpp:2331:5:2331:5 | CallTarget | func:r2331_2 | +| ir.cpp:2331:5:2331:5 | ChiPartial | partial:m2331_4 | +| ir.cpp:2331:5:2331:5 | ChiPartial | partial:m2331_7 | +| ir.cpp:2331:5:2331:5 | ChiTotal | total:m2327_6 | +| ir.cpp:2331:5:2331:5 | ChiTotal | total:m2327_8 | +| ir.cpp:2331:5:2331:5 | SideEffect | m2327_8 | +| ir.cpp:2331:5:2331:5 | SideEffect | ~m2327_6 | +| ir.cpp:2334:16:2334:31 | Address | &:r2334_3 | +| ir.cpp:2334:16:2334:31 | Address | &:r2334_3 | +| ir.cpp:2334:16:2334:31 | Arg(this) | this:r2334_3 | +| ir.cpp:2334:16:2334:31 | Condition | r2334_21 | +| ir.cpp:2334:16:2334:31 | Phi | from 3:m2328_1 | +| ir.cpp:2334:16:2334:31 | Phi | from 3:~m2331_5 | +| ir.cpp:2334:16:2334:31 | Phi | from 5:m2335_3 | +| ir.cpp:2334:16:2334:31 | Phi | from 5:~m2336_5 | +| ir.cpp:2334:21:2334:21 | Address | &:r2334_13 | +| ir.cpp:2334:21:2334:21 | Address | &:r2334_13 | +| ir.cpp:2334:21:2334:21 | Arg(this) | this:r2334_13 | +| ir.cpp:2334:21:2334:21 | CallTarget | func:r2334_14 | +| ir.cpp:2334:21:2334:21 | ChiPartial | partial:m2334_16 | +| ir.cpp:2334:21:2334:21 | ChiPartial | partial:m2334_19 | +| ir.cpp:2334:21:2334:21 | ChiTotal | total:m2334_10 | +| ir.cpp:2334:21:2334:21 | ChiTotal | total:m2334_12 | +| ir.cpp:2334:21:2334:21 | SideEffect | m2334_12 | +| ir.cpp:2334:21:2334:21 | SideEffect | ~m2334_10 | +| ir.cpp:2334:21:2334:21 | Unary | r2334_15 | +| ir.cpp:2334:24:2334:31 | CallTarget | func:r2334_5 | +| ir.cpp:2334:24:2334:31 | ChiPartial | partial:m2334_9 | +| ir.cpp:2334:24:2334:31 | ChiPartial | partial:m2334_11 | +| ir.cpp:2334:24:2334:31 | ChiTotal | total:m2334_1 | +| ir.cpp:2334:24:2334:31 | ChiTotal | total:m2334_4 | +| ir.cpp:2334:24:2334:31 | SideEffect | ~m2334_1 | +| ir.cpp:2334:30:2334:30 | Address | &:r2334_6 | +| ir.cpp:2334:30:2334:30 | Arg(0) | 0:r2334_7 | +| ir.cpp:2334:30:2334:30 | Load | m2334_2 | +| ir.cpp:2335:13:2335:13 | Address | &:r2335_2 | +| ir.cpp:2335:17:2335:21 | StoreValue | r2335_1 | +| ir.cpp:2336:9:2336:9 | Address | &:r2336_1 | +| ir.cpp:2336:9:2336:9 | Address | &:r2336_1 | +| ir.cpp:2336:9:2336:9 | Address | &:r2336_9 | +| ir.cpp:2336:9:2336:9 | Address | &:r2336_9 | +| ir.cpp:2336:9:2336:9 | Arg(this) | this:r2336_1 | +| ir.cpp:2336:9:2336:9 | Arg(this) | this:r2336_9 | +| ir.cpp:2336:9:2336:9 | CallTarget | func:r2336_2 | +| ir.cpp:2336:9:2336:9 | CallTarget | func:r2336_10 | +| ir.cpp:2336:9:2336:9 | ChiPartial | partial:m2336_4 | +| ir.cpp:2336:9:2336:9 | ChiPartial | partial:m2336_7 | +| ir.cpp:2336:9:2336:9 | ChiPartial | partial:m2336_12 | +| ir.cpp:2336:9:2336:9 | ChiPartial | partial:m2336_15 | +| ir.cpp:2336:9:2336:9 | ChiTotal | total:m2334_17 | +| ir.cpp:2336:9:2336:9 | ChiTotal | total:m2334_17 | +| ir.cpp:2336:9:2336:9 | ChiTotal | total:m2334_20 | +| ir.cpp:2336:9:2336:9 | ChiTotal | total:m2334_20 | +| ir.cpp:2336:9:2336:9 | SideEffect | m2334_20 | +| ir.cpp:2336:9:2336:9 | SideEffect | m2334_20 | +| ir.cpp:2336:9:2336:9 | SideEffect | ~m2334_17 | +| ir.cpp:2336:9:2336:9 | SideEffect | ~m2334_17 | +| ir.cpp:2340:6:2340:13 | ChiPartial | partial:m2340_3 | +| ir.cpp:2340:6:2340:13 | ChiTotal | total:m2340_2 | +| ir.cpp:2340:6:2340:13 | SideEffect | m2340_3 | +| ir.cpp:2342:6:2342:24 | ChiPartial | partial:m2342_3 | +| ir.cpp:2342:6:2342:24 | ChiTotal | total:m2342_2 | +| ir.cpp:2342:6:2342:24 | Phi | from 2:~m2351_5 | +| ir.cpp:2342:6:2342:24 | Phi | from 4:~m2351_13 | +| ir.cpp:2342:6:2342:24 | Phi | from 5:~m2351_22 | +| ir.cpp:2342:6:2342:24 | SideEffect | ~m2342_7 | +| ir.cpp:2342:31:2342:31 | Address | &:r2342_5 | +| ir.cpp:2343:12:2343:12 | Address | &:r2343_1 | +| ir.cpp:2343:12:2343:12 | Address | &:r2343_1 | +| ir.cpp:2343:12:2343:12 | Arg(this) | this:r2343_1 | +| ir.cpp:2343:12:2343:12 | CallTarget | func:r2343_3 | +| ir.cpp:2343:12:2343:12 | ChiPartial | partial:m2343_5 | +| ir.cpp:2343:12:2343:12 | ChiPartial | partial:m2343_7 | +| ir.cpp:2343:12:2343:12 | ChiTotal | total:m2342_4 | +| ir.cpp:2343:12:2343:12 | ChiTotal | total:m2343_2 | +| ir.cpp:2343:12:2343:12 | SideEffect | ~m2342_4 | +| ir.cpp:2344:8:2344:8 | Address | &:r2344_1 | +| ir.cpp:2344:8:2344:8 | Condition | r2344_2 | +| ir.cpp:2344:8:2344:8 | Load | m2342_6 | +| ir.cpp:2347:8:2347:8 | Address | &:r2347_1 | +| ir.cpp:2347:8:2347:8 | Condition | r2347_2 | +| ir.cpp:2347:8:2347:8 | Load | m2342_6 | +| ir.cpp:2348:16:2348:23 | CallTarget | func:r2348_1 | +| ir.cpp:2348:16:2348:23 | ChiPartial | partial:m2348_3 | +| ir.cpp:2348:16:2348:23 | ChiTotal | total:m2343_6 | +| ir.cpp:2348:16:2348:23 | SideEffect | ~m2343_6 | +| ir.cpp:2351:1:2351:1 | Address | &:r2351_1 | +| ir.cpp:2351:1:2351:1 | Address | &:r2351_1 | +| ir.cpp:2351:1:2351:1 | Address | &:r2351_9 | +| ir.cpp:2351:1:2351:1 | Address | &:r2351_9 | +| ir.cpp:2351:1:2351:1 | Address | &:r2351_18 | +| ir.cpp:2351:1:2351:1 | Address | &:r2351_18 | +| ir.cpp:2351:1:2351:1 | Arg(this) | this:r2351_1 | +| ir.cpp:2351:1:2351:1 | Arg(this) | this:r2351_9 | +| ir.cpp:2351:1:2351:1 | Arg(this) | this:r2351_18 | +| ir.cpp:2351:1:2351:1 | CallTarget | func:r2351_2 | +| ir.cpp:2351:1:2351:1 | CallTarget | func:r2351_10 | +| ir.cpp:2351:1:2351:1 | CallTarget | func:r2351_19 | +| ir.cpp:2351:1:2351:1 | ChiPartial | partial:m2351_4 | +| ir.cpp:2351:1:2351:1 | ChiPartial | partial:m2351_7 | +| ir.cpp:2351:1:2351:1 | ChiPartial | partial:m2351_12 | +| ir.cpp:2351:1:2351:1 | ChiPartial | partial:m2351_15 | +| ir.cpp:2351:1:2351:1 | ChiPartial | partial:m2351_21 | +| ir.cpp:2351:1:2351:1 | ChiPartial | partial:m2351_24 | +| ir.cpp:2351:1:2351:1 | ChiTotal | total:m2343_6 | +| ir.cpp:2351:1:2351:1 | ChiTotal | total:m2343_6 | +| ir.cpp:2351:1:2351:1 | ChiTotal | total:m2343_8 | +| ir.cpp:2351:1:2351:1 | ChiTotal | total:m2343_8 | +| ir.cpp:2351:1:2351:1 | ChiTotal | total:m2343_8 | +| ir.cpp:2351:1:2351:1 | ChiTotal | total:m2348_4 | +| ir.cpp:2351:1:2351:1 | SideEffect | m2343_8 | +| ir.cpp:2351:1:2351:1 | SideEffect | m2343_8 | +| ir.cpp:2351:1:2351:1 | SideEffect | m2343_8 | +| ir.cpp:2351:1:2351:1 | SideEffect | ~m2343_6 | +| ir.cpp:2351:1:2351:1 | SideEffect | ~m2343_6 | +| ir.cpp:2351:1:2351:1 | SideEffect | ~m2348_4 | +| ir.cpp:2353:5:2353:24 | Address | &:r2353_9 | +| ir.cpp:2353:5:2353:24 | ChiPartial | partial:m2353_3 | +| ir.cpp:2353:5:2353:24 | ChiTotal | total:m2353_2 | +| ir.cpp:2353:5:2353:24 | Load | m2353_8 | +| ir.cpp:2353:5:2353:24 | Phi | from 2:m2356_3 | +| ir.cpp:2353:5:2353:24 | Phi | from 2:~m2359_5 | +| ir.cpp:2353:5:2353:24 | Phi | from 3:m2358_3 | +| ir.cpp:2353:5:2353:24 | Phi | from 3:~m2359_13 | +| ir.cpp:2353:5:2353:24 | SideEffect | ~m2353_7 | +| ir.cpp:2353:31:2353:31 | Address | &:r2353_5 | +| ir.cpp:2354:12:2354:12 | Address | &:r2354_1 | +| ir.cpp:2354:12:2354:12 | Address | &:r2354_1 | +| ir.cpp:2354:12:2354:12 | Arg(this) | this:r2354_1 | +| ir.cpp:2354:12:2354:12 | CallTarget | func:r2354_3 | +| ir.cpp:2354:12:2354:12 | ChiPartial | partial:m2354_5 | +| ir.cpp:2354:12:2354:12 | ChiPartial | partial:m2354_7 | +| ir.cpp:2354:12:2354:12 | ChiTotal | total:m2353_4 | +| ir.cpp:2354:12:2354:12 | ChiTotal | total:m2354_2 | +| ir.cpp:2354:12:2354:12 | SideEffect | ~m2353_4 | +| ir.cpp:2355:8:2355:8 | Address | &:r2355_1 | +| ir.cpp:2355:8:2355:8 | Condition | r2355_2 | +| ir.cpp:2355:8:2355:8 | Load | m2353_6 | +| ir.cpp:2356:9:2356:17 | Address | &:r2356_1 | +| ir.cpp:2356:16:2356:16 | StoreValue | r2356_2 | +| ir.cpp:2358:5:2358:13 | Address | &:r2358_1 | +| ir.cpp:2358:12:2358:12 | StoreValue | r2358_2 | +| ir.cpp:2359:1:2359:1 | Address | &:r2359_1 | +| ir.cpp:2359:1:2359:1 | Address | &:r2359_1 | +| ir.cpp:2359:1:2359:1 | Address | &:r2359_9 | +| ir.cpp:2359:1:2359:1 | Address | &:r2359_9 | +| ir.cpp:2359:1:2359:1 | Arg(this) | this:r2359_1 | +| ir.cpp:2359:1:2359:1 | Arg(this) | this:r2359_9 | +| ir.cpp:2359:1:2359:1 | CallTarget | func:r2359_2 | +| ir.cpp:2359:1:2359:1 | CallTarget | func:r2359_10 | +| ir.cpp:2359:1:2359:1 | ChiPartial | partial:m2359_4 | +| ir.cpp:2359:1:2359:1 | ChiPartial | partial:m2359_7 | +| ir.cpp:2359:1:2359:1 | ChiPartial | partial:m2359_12 | +| ir.cpp:2359:1:2359:1 | ChiPartial | partial:m2359_15 | +| ir.cpp:2359:1:2359:1 | ChiTotal | total:m2354_6 | +| ir.cpp:2359:1:2359:1 | ChiTotal | total:m2354_6 | +| ir.cpp:2359:1:2359:1 | ChiTotal | total:m2354_8 | +| ir.cpp:2359:1:2359:1 | ChiTotal | total:m2354_8 | +| ir.cpp:2359:1:2359:1 | SideEffect | m2354_8 | +| ir.cpp:2359:1:2359:1 | SideEffect | m2354_8 | +| ir.cpp:2359:1:2359:1 | SideEffect | ~m2354_6 | +| ir.cpp:2359:1:2359:1 | SideEffect | ~m2354_6 | +| ir.cpp:2361:6:2361:26 | ChiPartial | partial:m2361_3 | +| ir.cpp:2361:6:2361:26 | ChiTotal | total:m2361_2 | +| ir.cpp:2361:6:2361:26 | SideEffect | ~m2364_5 | +| ir.cpp:2362:12:2362:12 | Address | &:r2362_1 | +| ir.cpp:2362:12:2362:12 | Address | &:r2362_1 | +| ir.cpp:2362:12:2362:12 | Arg(this) | this:r2362_1 | +| ir.cpp:2362:12:2362:12 | CallTarget | func:r2362_3 | +| ir.cpp:2362:12:2362:12 | ChiPartial | partial:m2362_5 | +| ir.cpp:2362:12:2362:12 | ChiPartial | partial:m2362_7 | +| ir.cpp:2362:12:2362:12 | ChiTotal | total:m2361_4 | +| ir.cpp:2362:12:2362:12 | ChiTotal | total:m2362_2 | +| ir.cpp:2362:12:2362:12 | SideEffect | ~m2361_4 | +| ir.cpp:2363:12:2363:19 | CallTarget | func:r2363_1 | +| ir.cpp:2363:12:2363:19 | ChiPartial | partial:m2363_3 | +| ir.cpp:2363:12:2363:19 | ChiTotal | total:m2362_6 | +| ir.cpp:2363:12:2363:19 | SideEffect | ~m2362_6 | +| ir.cpp:2364:1:2364:1 | Address | &:r2364_1 | +| ir.cpp:2364:1:2364:1 | Address | &:r2364_1 | +| ir.cpp:2364:1:2364:1 | Arg(this) | this:r2364_1 | +| ir.cpp:2364:1:2364:1 | CallTarget | func:r2364_2 | +| ir.cpp:2364:1:2364:1 | ChiPartial | partial:m2364_4 | +| ir.cpp:2364:1:2364:1 | ChiPartial | partial:m2364_7 | +| ir.cpp:2364:1:2364:1 | ChiTotal | total:m2362_8 | +| ir.cpp:2364:1:2364:1 | ChiTotal | total:m2363_4 | +| ir.cpp:2364:1:2364:1 | SideEffect | m2362_8 | +| ir.cpp:2364:1:2364:1 | SideEffect | ~m2363_4 | +| ir.cpp:2374:32:2374:47 | Address | &:r2374_5 | +| ir.cpp:2374:32:2374:47 | ChiPartial | partial:m2374_3 | +| ir.cpp:2374:32:2374:47 | ChiTotal | total:m2374_2 | +| ir.cpp:2374:32:2374:47 | Load | m2376_3 | +| ir.cpp:2374:32:2374:47 | SideEffect | m2374_3 | +| ir.cpp:2376:9:2376:44 | Address | &:r2376_1 | +| ir.cpp:2376:16:2376:43 | StoreValue | r2376_2 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | diff --git a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected index aefdbf9d134..356390f9b4f 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -20,7 +20,7 @@ multipleIRTypes lostReachability backEdgeCountMismatch useNotDominatedByDefinition -| ir.cpp:1488:8:1488:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1488:8:1488:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | +| ir.cpp:1535:8:1535:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1535:8:1535:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | | try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() | | try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() | | try_except.c:39:15:39:15 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) | 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 671a9f6a0d3..1ac2a6c9f8a 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -6825,3717 +6825,3735 @@ ir.cpp: # 1054| v1054_41(void) = AliasedUse : ~m? # 1054| v1054_42(void) = ExitFunction : -# 1079| void RangeBasedFor(vector<int> const&) -# 1079| Block 0 -# 1079| v1079_1(void) = EnterFunction : -# 1079| mu1079_2(unknown) = AliasedDefinition : -# 1079| mu1079_3(unknown) = InitializeNonLocal : -# 1079| r1079_4(glval<vector<int> &>) = VariableAddress[v] : -# 1079| mu1079_5(vector<int> &) = InitializeParameter[v] : &:r1079_4 -# 1079| r1079_6(vector<int> &) = Load[v] : &:r1079_4, ~m? -# 1079| mu1079_7(unknown) = InitializeIndirection[v] : &:r1079_6 -# 1080| r1080_1(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1080| r1080_2(glval<vector<int> &>) = VariableAddress[v] : -# 1080| r1080_3(vector<int> &) = Load[v] : &:r1080_2, ~m? -# 1080| r1080_4(glval<vector<int>>) = CopyValue : r1080_3 -# 1080| r1080_5(vector<int> &) = CopyValue : r1080_4 -# 1080| mu1080_6(vector<int> &) = Store[(__range)] : &:r1080_1, r1080_5 -# 1080| r1080_7(glval<iterator>) = VariableAddress[(__begin)] : -# 1080| r1080_8(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1080| r1080_9(vector<int> &) = Load[(__range)] : &:r1080_8, ~m? -#-----| r0_1(glval<vector<int>>) = CopyValue : r1080_9 -# 1080| r1080_10(glval<unknown>) = FunctionAddress[begin] : -# 1080| r1080_11(iterator) = Call[begin] : func:r1080_10, this:r0_1 -# 1080| mu1080_12(unknown) = ^CallSideEffect : ~m? -#-----| v0_2(void) = ^IndirectReadSideEffect[-1] : &:r0_1, ~m? -# 1080| mu1080_13(iterator) = Store[(__begin)] : &:r1080_7, r1080_11 -# 1080| r1080_14(glval<iterator>) = VariableAddress[(__end)] : -# 1080| r1080_15(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1080| r1080_16(vector<int> &) = Load[(__range)] : &:r1080_15, ~m? -#-----| r0_3(glval<vector<int>>) = CopyValue : r1080_16 -# 1080| r1080_17(glval<unknown>) = FunctionAddress[end] : -# 1080| r1080_18(iterator) = Call[end] : func:r1080_17, this:r0_3 -# 1080| mu1080_19(unknown) = ^CallSideEffect : ~m? -#-----| v0_4(void) = ^IndirectReadSideEffect[-1] : &:r0_3, ~m? -# 1080| mu1080_20(iterator) = Store[(__end)] : &:r1080_14, r1080_18 +# 1126| void RangeBasedFor(std::vector<int> const&) +# 1126| Block 0 +# 1126| v1126_1(void) = EnterFunction : +# 1126| mu1126_2(unknown) = AliasedDefinition : +# 1126| mu1126_3(unknown) = InitializeNonLocal : +# 1126| r1126_4(glval<vector<int> &>) = VariableAddress[v] : +# 1126| mu1126_5(vector<int> &) = InitializeParameter[v] : &:r1126_4 +# 1126| r1126_6(vector<int> &) = Load[v] : &:r1126_4, ~m? +# 1126| mu1126_7(unknown) = InitializeIndirection[v] : &:r1126_6 +# 1127| r1127_1(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1127| r1127_2(glval<vector<int> &>) = VariableAddress[v] : +# 1127| r1127_3(vector<int> &) = Load[v] : &:r1127_2, ~m? +# 1127| r1127_4(glval<vector<int>>) = CopyValue : r1127_3 +# 1127| r1127_5(vector<int> &) = CopyValue : r1127_4 +# 1127| mu1127_6(vector<int> &) = Store[(__range)] : &:r1127_1, r1127_5 +# 1127| r1127_7(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1127| r1127_8(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1127| r1127_9(vector<int> &) = Load[(__range)] : &:r1127_8, ~m? +#-----| r0_1(glval<vector<int>>) = CopyValue : r1127_9 +# 1127| r1127_10(glval<unknown>) = FunctionAddress[begin] : +# 1127| r1127_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r1127_10, this:r0_1 +# 1127| mu1127_12(unknown) = ^CallSideEffect : ~m? +#-----| v0_2(void) = ^IndirectReadSideEffect[-1] : &:r0_1, ~m? +# 1127| mu1127_13(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1127_7, r1127_11 +# 1127| r1127_14(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 1127| r1127_15(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1127| r1127_16(vector<int> &) = Load[(__range)] : &:r1127_15, ~m? +#-----| r0_3(glval<vector<int>>) = CopyValue : r1127_16 +# 1127| r1127_17(glval<unknown>) = FunctionAddress[end] : +# 1127| r1127_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1127_17, this:r0_3 +# 1127| mu1127_19(unknown) = ^CallSideEffect : ~m? +#-----| v0_4(void) = ^IndirectReadSideEffect[-1] : &:r0_3, ~m? +# 1127| mu1127_20(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1127_14, r1127_18 #-----| Goto -> Block 1 -# 1080| Block 1 -# 1080| r1080_21(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_5(glval<iterator>) = Convert : r1080_21 -# 1080| r1080_22(glval<unknown>) = FunctionAddress[operator!=] : -# 1080| r1080_23(glval<iterator>) = VariableAddress[(__end)] : -# 1080| r1080_24(iterator) = Load[(__end)] : &:r1080_23, ~m? -# 1080| r1080_25(bool) = Call[operator!=] : func:r1080_22, this:r0_5, 0:r1080_24 -# 1080| mu1080_26(unknown) = ^CallSideEffect : ~m? -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 1080| v1080_27(void) = ConditionalBranch : r1080_25 +# 1127| Block 1 +# 1127| r1127_21(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_5(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_21 +# 1127| r1127_22(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_6(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : +#-----| mu0_7(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_6 +# 1127| r1127_23(glval<unknown>) = FunctionAddress[iterator] : +# 1127| r1127_24(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_24 +#-----| r0_9(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_8 +# 1127| v1127_25(void) = Call[iterator] : func:r1127_23, this:r0_6, 0:r0_9 +# 1127| mu1127_26(unknown) = ^CallSideEffect : ~m? +#-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_9, ~m? +# 1127| mu1127_27(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_6 +#-----| r0_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_6, ~m? +# 1127| r1127_28(bool) = Call[operator!=] : func:r1127_22, this:r0_5, 0:r0_11 +# 1127| mu1127_29(unknown) = ^CallSideEffect : ~m? +#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? +# 1127| v1127_30(void) = ConditionalBranch : r1127_28 #-----| False -> Block 5 #-----| True -> Block 2 -# 1080| Block 2 -# 1080| r1080_28(glval<int>) = VariableAddress[e] : -# 1080| r1080_29(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator>) = Convert : r1080_29 -# 1080| r1080_30(glval<unknown>) = FunctionAddress[operator*] : -# 1080| r1080_31(int &) = Call[operator*] : func:r1080_30, this:r0_7 -# 1080| mu1080_32(unknown) = ^CallSideEffect : ~m? -#-----| v0_8(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 1080| r1080_33(int) = Load[?] : &:r1080_31, ~m? -# 1080| mu1080_34(int) = Store[e] : &:r1080_28, r1080_33 -# 1081| r1081_1(glval<int>) = VariableAddress[e] : -# 1081| r1081_2(int) = Load[e] : &:r1081_1, ~m? -# 1081| r1081_3(int) = Constant[0] : -# 1081| r1081_4(bool) = CompareGT : r1081_2, r1081_3 -# 1081| v1081_5(void) = ConditionalBranch : r1081_4 +# 1127| Block 2 +# 1127| r1127_31(glval<int>) = VariableAddress[e] : +# 1127| r1127_32(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_32 +# 1127| r1127_33(glval<unknown>) = FunctionAddress[operator*] : +# 1127| r1127_34(int &) = Call[operator*] : func:r1127_33, this:r0_13 +# 1127| mu1127_35(unknown) = ^CallSideEffect : ~m? +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_13, ~m? +# 1127| r1127_36(int) = Load[?] : &:r1127_34, ~m? +# 1127| mu1127_37(int) = Store[e] : &:r1127_31, r1127_36 +# 1128| r1128_1(glval<int>) = VariableAddress[e] : +# 1128| r1128_2(int) = Load[e] : &:r1128_1, ~m? +# 1128| r1128_3(int) = Constant[0] : +# 1128| r1128_4(bool) = CompareGT : r1128_2, r1128_3 +# 1128| v1128_5(void) = ConditionalBranch : r1128_4 #-----| False -> Block 4 #-----| True -> Block 3 -# 1082| Block 3 -# 1082| v1082_1(void) = NoOp : +# 1129| Block 3 +# 1129| v1129_1(void) = NoOp : #-----| Goto -> Block 4 -# 1080| Block 4 -# 1080| v1080_35(void) = NoOp : -# 1080| r1080_36(glval<iterator>) = VariableAddress[(__begin)] : -# 1080| r1080_37(glval<unknown>) = FunctionAddress[operator++] : -# 1080| r1080_38(iterator &) = Call[operator++] : func:r1080_37, this:r1080_36 -# 1080| mu1080_39(unknown) = ^CallSideEffect : ~m? -# 1080| v1080_40(void) = ^IndirectReadSideEffect[-1] : &:r1080_36, ~m? -# 1080| mu1080_41(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r1080_36 -# 1080| r1080_42(glval<iterator>) = CopyValue : r1080_38 +# 1127| Block 4 +# 1127| v1127_38(void) = NoOp : +# 1127| r1127_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1127| r1127_40(glval<unknown>) = FunctionAddress[operator++] : +# 1127| r1127_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1127_40, this:r1127_39 +# 1127| mu1127_42(unknown) = ^CallSideEffect : ~m? +# 1127| v1127_43(void) = ^IndirectReadSideEffect[-1] : &:r1127_39, ~m? +# 1127| mu1127_44(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1127_39 +# 1127| r1127_45(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1127_41 #-----| Goto (back edge) -> Block 1 -# 1086| Block 5 -# 1086| r1086_1(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1086| r1086_2(glval<vector<int> &>) = VariableAddress[v] : -# 1086| r1086_3(vector<int> &) = Load[v] : &:r1086_2, ~m? -# 1086| r1086_4(glval<vector<int>>) = CopyValue : r1086_3 -# 1086| r1086_5(vector<int> &) = CopyValue : r1086_4 -# 1086| mu1086_6(vector<int> &) = Store[(__range)] : &:r1086_1, r1086_5 -# 1086| r1086_7(glval<iterator>) = VariableAddress[(__begin)] : -# 1086| r1086_8(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1086| r1086_9(vector<int> &) = Load[(__range)] : &:r1086_8, ~m? -#-----| r0_9(glval<vector<int>>) = CopyValue : r1086_9 -# 1086| r1086_10(glval<unknown>) = FunctionAddress[begin] : -# 1086| r1086_11(iterator) = Call[begin] : func:r1086_10, this:r0_9 -# 1086| mu1086_12(unknown) = ^CallSideEffect : ~m? -#-----| v0_10(void) = ^IndirectReadSideEffect[-1] : &:r0_9, ~m? -# 1086| mu1086_13(iterator) = Store[(__begin)] : &:r1086_7, r1086_11 -# 1086| r1086_14(glval<iterator>) = VariableAddress[(__end)] : -# 1086| r1086_15(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1086| r1086_16(vector<int> &) = Load[(__range)] : &:r1086_15, ~m? -#-----| r0_11(glval<vector<int>>) = CopyValue : r1086_16 -# 1086| r1086_17(glval<unknown>) = FunctionAddress[end] : -# 1086| r1086_18(iterator) = Call[end] : func:r1086_17, this:r0_11 -# 1086| mu1086_19(unknown) = ^CallSideEffect : ~m? -#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m? -# 1086| mu1086_20(iterator) = Store[(__end)] : &:r1086_14, r1086_18 +# 1133| Block 5 +# 1133| r1133_1(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1133| r1133_2(glval<vector<int> &>) = VariableAddress[v] : +# 1133| r1133_3(vector<int> &) = Load[v] : &:r1133_2, ~m? +# 1133| r1133_4(glval<vector<int>>) = CopyValue : r1133_3 +# 1133| r1133_5(vector<int> &) = CopyValue : r1133_4 +# 1133| mu1133_6(vector<int> &) = Store[(__range)] : &:r1133_1, r1133_5 +# 1133| r1133_7(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1133| r1133_8(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1133| r1133_9(vector<int> &) = Load[(__range)] : &:r1133_8, ~m? +#-----| r0_15(glval<vector<int>>) = CopyValue : r1133_9 +# 1133| r1133_10(glval<unknown>) = FunctionAddress[begin] : +# 1133| r1133_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r1133_10, this:r0_15 +# 1133| mu1133_12(unknown) = ^CallSideEffect : ~m? +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? +# 1133| mu1133_13(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1133_7, r1133_11 +# 1133| r1133_14(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 1133| r1133_15(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1133| r1133_16(vector<int> &) = Load[(__range)] : &:r1133_15, ~m? +#-----| r0_17(glval<vector<int>>) = CopyValue : r1133_16 +# 1133| r1133_17(glval<unknown>) = FunctionAddress[end] : +# 1133| r1133_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1133_17, this:r0_17 +# 1133| mu1133_19(unknown) = ^CallSideEffect : ~m? +#-----| v0_18(void) = ^IndirectReadSideEffect[-1] : &:r0_17, ~m? +# 1133| mu1133_20(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1133_14, r1133_18 #-----| Goto -> Block 6 -# 1086| Block 6 -# 1086| r1086_21(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_13(glval<iterator>) = Convert : r1086_21 -# 1086| r1086_22(glval<unknown>) = FunctionAddress[operator!=] : -# 1086| r1086_23(glval<iterator>) = VariableAddress[(__end)] : -# 1086| r1086_24(iterator) = Load[(__end)] : &:r1086_23, ~m? -# 1086| r1086_25(bool) = Call[operator!=] : func:r1086_22, this:r0_13, 0:r1086_24 -# 1086| mu1086_26(unknown) = ^CallSideEffect : ~m? -#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_13, ~m? -# 1086| v1086_27(void) = ConditionalBranch : r1086_25 +# 1133| Block 6 +# 1133| r1133_21(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_21 +# 1133| r1133_22(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_20(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : +#-----| mu0_21(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_20 +# 1133| r1133_23(glval<unknown>) = FunctionAddress[iterator] : +# 1133| r1133_24(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_24 +#-----| r0_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_22 +# 1133| v1133_25(void) = Call[iterator] : func:r1133_23, this:r0_20, 0:r0_23 +# 1133| mu1133_26(unknown) = ^CallSideEffect : ~m? +#-----| v0_24(void) = ^BufferReadSideEffect[0] : &:r0_23, ~m? +# 1133| mu1133_27(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_20 +#-----| r0_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_20, ~m? +# 1133| r1133_28(bool) = Call[operator!=] : func:r1133_22, this:r0_19, 0:r0_25 +# 1133| mu1133_29(unknown) = ^CallSideEffect : ~m? +#-----| v0_26(void) = ^IndirectReadSideEffect[-1] : &:r0_19, ~m? +# 1133| v1133_30(void) = ConditionalBranch : r1133_28 #-----| False -> Block 10 #-----| True -> Block 8 -# 1086| Block 7 -# 1086| r1086_28(glval<iterator>) = VariableAddress[(__begin)] : -# 1086| r1086_29(glval<unknown>) = FunctionAddress[operator++] : -# 1086| r1086_30(iterator &) = Call[operator++] : func:r1086_29, this:r1086_28 -# 1086| mu1086_31(unknown) = ^CallSideEffect : ~m? -# 1086| v1086_32(void) = ^IndirectReadSideEffect[-1] : &:r1086_28, ~m? -# 1086| mu1086_33(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r1086_28 -# 1086| r1086_34(glval<iterator>) = CopyValue : r1086_30 +# 1133| Block 7 +# 1133| r1133_31(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1133| r1133_32(glval<unknown>) = FunctionAddress[operator++] : +# 1133| r1133_33(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1133_32, this:r1133_31 +# 1133| mu1133_34(unknown) = ^CallSideEffect : ~m? +# 1133| v1133_35(void) = ^IndirectReadSideEffect[-1] : &:r1133_31, ~m? +# 1133| mu1133_36(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1133_31 +# 1133| r1133_37(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1133_33 #-----| Goto (back edge) -> Block 6 -# 1086| Block 8 -# 1086| r1086_35(glval<int &>) = VariableAddress[e] : -# 1086| r1086_36(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_15(glval<iterator>) = Convert : r1086_36 -# 1086| r1086_37(glval<unknown>) = FunctionAddress[operator*] : -# 1086| r1086_38(int &) = Call[operator*] : func:r1086_37, this:r0_15 -# 1086| mu1086_39(unknown) = ^CallSideEffect : ~m? -#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 1086| r1086_40(glval<int>) = CopyValue : r1086_38 -# 1086| r1086_41(glval<int>) = Convert : r1086_40 -# 1086| r1086_42(int &) = CopyValue : r1086_41 -# 1086| mu1086_43(int &) = Store[e] : &:r1086_35, r1086_42 -# 1087| r1087_1(glval<int &>) = VariableAddress[e] : -# 1087| r1087_2(int &) = Load[e] : &:r1087_1, ~m? -# 1087| r1087_3(int) = Load[?] : &:r1087_2, ~m? -# 1087| r1087_4(int) = Constant[5] : -# 1087| r1087_5(bool) = CompareLT : r1087_3, r1087_4 -# 1087| v1087_6(void) = ConditionalBranch : r1087_5 +# 1133| Block 8 +# 1133| r1133_38(glval<int &>) = VariableAddress[e] : +# 1133| r1133_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_27(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_39 +# 1133| r1133_40(glval<unknown>) = FunctionAddress[operator*] : +# 1133| r1133_41(int &) = Call[operator*] : func:r1133_40, this:r0_27 +# 1133| mu1133_42(unknown) = ^CallSideEffect : ~m? +#-----| v0_28(void) = ^IndirectReadSideEffect[-1] : &:r0_27, ~m? +# 1133| r1133_43(glval<int>) = CopyValue : r1133_41 +# 1133| r1133_44(glval<int>) = Convert : r1133_43 +# 1133| r1133_45(int &) = CopyValue : r1133_44 +# 1133| mu1133_46(int &) = Store[e] : &:r1133_38, r1133_45 +# 1134| r1134_1(glval<int &>) = VariableAddress[e] : +# 1134| r1134_2(int &) = Load[e] : &:r1134_1, ~m? +# 1134| r1134_3(int) = Load[?] : &:r1134_2, ~m? +# 1134| r1134_4(int) = Constant[5] : +# 1134| r1134_5(bool) = CompareLT : r1134_3, r1134_4 +# 1134| v1134_6(void) = ConditionalBranch : r1134_5 #-----| False -> Block 7 #-----| True -> Block 9 -# 1088| Block 9 -# 1088| v1088_1(void) = NoOp : +# 1135| Block 9 +# 1135| v1135_1(void) = NoOp : #-----| Goto -> Block 10 -# 1090| Block 10 -# 1090| v1090_1(void) = NoOp : -# 1091| v1091_1(void) = NoOp : -# 1079| v1079_8(void) = ReturnIndirection[v] : &:r1079_6, ~m? -# 1079| v1079_9(void) = ReturnVoid : -# 1079| v1079_10(void) = AliasedUse : ~m? -# 1079| v1079_11(void) = ExitFunction : +# 1137| Block 10 +# 1137| v1137_1(void) = NoOp : +# 1138| v1138_1(void) = NoOp : +# 1126| v1126_8(void) = ReturnIndirection[v] : &:r1126_6, ~m? +# 1126| v1126_9(void) = ReturnVoid : +# 1126| v1126_10(void) = AliasedUse : ~m? +# 1126| v1126_11(void) = ExitFunction : -# 1110| int AsmStmt(int) -# 1110| Block 0 -# 1110| v1110_1(void) = EnterFunction : -# 1110| mu1110_2(unknown) = AliasedDefinition : -# 1110| mu1110_3(unknown) = InitializeNonLocal : -# 1110| r1110_4(glval<int>) = VariableAddress[x] : -# 1110| mu1110_5(int) = InitializeParameter[x] : &:r1110_4 -# 1111| mu1111_1(unknown) = InlineAsm : ~m? -# 1112| r1112_1(glval<int>) = VariableAddress[#return] : -# 1112| r1112_2(glval<int>) = VariableAddress[x] : -# 1112| r1112_3(int) = Load[x] : &:r1112_2, ~m? -# 1112| mu1112_4(int) = Store[#return] : &:r1112_1, r1112_3 -# 1110| r1110_6(glval<int>) = VariableAddress[#return] : -# 1110| v1110_7(void) = ReturnValue : &:r1110_6, ~m? -# 1110| v1110_8(void) = AliasedUse : ~m? -# 1110| v1110_9(void) = ExitFunction : +# 1157| int AsmStmt(int) +# 1157| Block 0 +# 1157| v1157_1(void) = EnterFunction : +# 1157| mu1157_2(unknown) = AliasedDefinition : +# 1157| mu1157_3(unknown) = InitializeNonLocal : +# 1157| r1157_4(glval<int>) = VariableAddress[x] : +# 1157| mu1157_5(int) = InitializeParameter[x] : &:r1157_4 +# 1158| mu1158_1(unknown) = InlineAsm : ~m? +# 1159| r1159_1(glval<int>) = VariableAddress[#return] : +# 1159| r1159_2(glval<int>) = VariableAddress[x] : +# 1159| r1159_3(int) = Load[x] : &:r1159_2, ~m? +# 1159| mu1159_4(int) = Store[#return] : &:r1159_1, r1159_3 +# 1157| r1157_6(glval<int>) = VariableAddress[#return] : +# 1157| v1157_7(void) = ReturnValue : &:r1157_6, ~m? +# 1157| v1157_8(void) = AliasedUse : ~m? +# 1157| v1157_9(void) = ExitFunction : -# 1115| void AsmStmtWithOutputs(unsigned int&, unsigned int, unsigned int&, unsigned int) -# 1115| Block 0 -# 1115| v1115_1(void) = EnterFunction : -# 1115| mu1115_2(unknown) = AliasedDefinition : -# 1115| mu1115_3(unknown) = InitializeNonLocal : -# 1115| r1115_4(glval<unsigned int &>) = VariableAddress[a] : -# 1115| mu1115_5(unsigned int &) = InitializeParameter[a] : &:r1115_4 -# 1115| r1115_6(unsigned int &) = Load[a] : &:r1115_4, ~m? -# 1115| mu1115_7(unknown) = InitializeIndirection[a] : &:r1115_6 -# 1115| r1115_8(glval<unsigned int>) = VariableAddress[b] : -# 1115| mu1115_9(unsigned int) = InitializeParameter[b] : &:r1115_8 -# 1115| r1115_10(glval<unsigned int &>) = VariableAddress[c] : -# 1115| mu1115_11(unsigned int &) = InitializeParameter[c] : &:r1115_10 -# 1115| r1115_12(unsigned int &) = Load[c] : &:r1115_10, ~m? -# 1115| mu1115_13(unknown) = InitializeIndirection[c] : &:r1115_12 -# 1115| r1115_14(glval<unsigned int>) = VariableAddress[d] : -# 1115| mu1115_15(unsigned int) = InitializeParameter[d] : &:r1115_14 -# 1120| r1120_1(glval<unsigned int &>) = VariableAddress[a] : -# 1120| r1120_2(unsigned int &) = Load[a] : &:r1120_1, ~m? -# 1120| r1120_3(glval<unsigned int>) = CopyValue : r1120_2 -# 1120| r1120_4(glval<unsigned int>) = VariableAddress[b] : -# 1120| r1120_5(glval<unsigned int &>) = VariableAddress[c] : -# 1120| r1120_6(unsigned int &) = Load[c] : &:r1120_5, ~m? -# 1120| r1120_7(unsigned int) = Load[?] : &:r1120_6, ~m? -# 1120| r1120_8(glval<unsigned int>) = VariableAddress[d] : -# 1120| r1120_9(unsigned int) = Load[d] : &:r1120_8, ~m? -# 1117| mu1117_1(unknown) = InlineAsm : ~m?, 0:r1120_3, 1:r1120_4, 2:r1120_7, 3:r1120_9 -# 1122| v1122_1(void) = NoOp : -# 1115| v1115_16(void) = ReturnIndirection[a] : &:r1115_6, ~m? -# 1115| v1115_17(void) = ReturnIndirection[c] : &:r1115_12, ~m? -# 1115| v1115_18(void) = ReturnVoid : -# 1115| v1115_19(void) = AliasedUse : ~m? -# 1115| v1115_20(void) = ExitFunction : +# 1162| void AsmStmtWithOutputs(unsigned int&, unsigned int, unsigned int&, unsigned int) +# 1162| Block 0 +# 1162| v1162_1(void) = EnterFunction : +# 1162| mu1162_2(unknown) = AliasedDefinition : +# 1162| mu1162_3(unknown) = InitializeNonLocal : +# 1162| r1162_4(glval<unsigned int &>) = VariableAddress[a] : +# 1162| mu1162_5(unsigned int &) = InitializeParameter[a] : &:r1162_4 +# 1162| r1162_6(unsigned int &) = Load[a] : &:r1162_4, ~m? +# 1162| mu1162_7(unknown) = InitializeIndirection[a] : &:r1162_6 +# 1162| r1162_8(glval<unsigned int>) = VariableAddress[b] : +# 1162| mu1162_9(unsigned int) = InitializeParameter[b] : &:r1162_8 +# 1162| r1162_10(glval<unsigned int &>) = VariableAddress[c] : +# 1162| mu1162_11(unsigned int &) = InitializeParameter[c] : &:r1162_10 +# 1162| r1162_12(unsigned int &) = Load[c] : &:r1162_10, ~m? +# 1162| mu1162_13(unknown) = InitializeIndirection[c] : &:r1162_12 +# 1162| r1162_14(glval<unsigned int>) = VariableAddress[d] : +# 1162| mu1162_15(unsigned int) = InitializeParameter[d] : &:r1162_14 +# 1167| r1167_1(glval<unsigned int &>) = VariableAddress[a] : +# 1167| r1167_2(unsigned int &) = Load[a] : &:r1167_1, ~m? +# 1167| r1167_3(glval<unsigned int>) = CopyValue : r1167_2 +# 1167| r1167_4(glval<unsigned int>) = VariableAddress[b] : +# 1167| r1167_5(glval<unsigned int &>) = VariableAddress[c] : +# 1167| r1167_6(unsigned int &) = Load[c] : &:r1167_5, ~m? +# 1167| r1167_7(unsigned int) = Load[?] : &:r1167_6, ~m? +# 1167| r1167_8(glval<unsigned int>) = VariableAddress[d] : +# 1167| r1167_9(unsigned int) = Load[d] : &:r1167_8, ~m? +# 1164| mu1164_1(unknown) = InlineAsm : ~m?, 0:r1167_3, 1:r1167_4, 2:r1167_7, 3:r1167_9 +# 1169| v1169_1(void) = NoOp : +# 1162| v1162_16(void) = ReturnIndirection[a] : &:r1162_6, ~m? +# 1162| v1162_17(void) = ReturnIndirection[c] : &:r1162_12, ~m? +# 1162| v1162_18(void) = ReturnVoid : +# 1162| v1162_19(void) = AliasedUse : ~m? +# 1162| v1162_20(void) = ExitFunction : -# 1124| void ExternDeclarations() -# 1124| Block 0 -# 1124| v1124_1(void) = EnterFunction : -# 1124| mu1124_2(unknown) = AliasedDefinition : -# 1124| mu1124_3(unknown) = InitializeNonLocal : -# 1127| r1127_1(glval<int>) = VariableAddress[x] : -# 1127| mu1127_2(int) = Uninitialized[x] : &:r1127_1 -# 1128| r1128_1(glval<int>) = VariableAddress[y] : -# 1128| mu1128_2(int) = Uninitialized[y] : &:r1128_1 -# 1129| r1129_1(glval<int>) = VariableAddress[h] : -# 1129| mu1129_2(int) = Uninitialized[h] : &:r1129_1 -# 1131| v1131_1(void) = NoOp : -# 1124| v1124_4(void) = ReturnVoid : -# 1124| v1124_5(void) = AliasedUse : ~m? -# 1124| v1124_6(void) = ExitFunction : +# 1171| void ExternDeclarations() +# 1171| Block 0 +# 1171| v1171_1(void) = EnterFunction : +# 1171| mu1171_2(unknown) = AliasedDefinition : +# 1171| mu1171_3(unknown) = InitializeNonLocal : +# 1174| r1174_1(glval<int>) = VariableAddress[x] : +# 1174| mu1174_2(int) = Uninitialized[x] : &:r1174_1 +# 1175| r1175_1(glval<int>) = VariableAddress[y] : +# 1175| mu1175_2(int) = Uninitialized[y] : &:r1175_1 +# 1176| r1176_1(glval<int>) = VariableAddress[h] : +# 1176| mu1176_2(int) = Uninitialized[h] : &:r1176_1 +# 1178| v1178_1(void) = NoOp : +# 1171| v1171_4(void) = ReturnVoid : +# 1171| v1171_5(void) = AliasedUse : ~m? +# 1171| v1171_6(void) = ExitFunction : -# 1139| void ExternDeclarationsInMacro() -# 1139| Block 0 -# 1139| v1139_1(void) = EnterFunction : -# 1139| mu1139_2(unknown) = AliasedDefinition : -# 1139| mu1139_3(unknown) = InitializeNonLocal : -# 1141| r1141_1(glval<int>) = VariableAddress[i] : -# 1141| r1141_2(int) = Constant[0] : -# 1141| mu1141_3(int) = Store[i] : &:r1141_1, r1141_2 +# 1186| void ExternDeclarationsInMacro() +# 1186| Block 0 +# 1186| v1186_1(void) = EnterFunction : +# 1186| mu1186_2(unknown) = AliasedDefinition : +# 1186| mu1186_3(unknown) = InitializeNonLocal : +# 1188| r1188_1(glval<int>) = VariableAddress[i] : +# 1188| r1188_2(int) = Constant[0] : +# 1188| mu1188_3(int) = Store[i] : &:r1188_1, r1188_2 #-----| Goto -> Block 1 -# 1141| Block 1 -# 1141| r1141_4(glval<int>) = VariableAddress[i] : -# 1141| r1141_5(int) = Load[i] : &:r1141_4, ~m? -# 1141| r1141_6(int) = Constant[10] : -# 1141| r1141_7(bool) = CompareLT : r1141_5, r1141_6 -# 1141| v1141_8(void) = ConditionalBranch : r1141_7 +# 1188| Block 1 +# 1188| r1188_4(glval<int>) = VariableAddress[i] : +# 1188| r1188_5(int) = Load[i] : &:r1188_4, ~m? +# 1188| r1188_6(int) = Constant[10] : +# 1188| r1188_7(bool) = CompareLT : r1188_5, r1188_6 +# 1188| v1188_8(void) = ConditionalBranch : r1188_7 #-----| False -> Block 3 #-----| True -> Block 2 -# 1141| Block 2 -# 1141| r1141_9(glval<int>) = VariableAddress[i] : -# 1141| r1141_10(int) = Load[i] : &:r1141_9, ~m? -# 1141| r1141_11(int) = Constant[1] : -# 1141| r1141_12(int) = Add : r1141_10, r1141_11 -# 1141| mu1141_13(int) = Store[i] : &:r1141_9, r1141_12 +# 1188| Block 2 +# 1188| r1188_9(glval<int>) = VariableAddress[i] : +# 1188| r1188_10(int) = Load[i] : &:r1188_9, ~m? +# 1188| r1188_11(int) = Constant[1] : +# 1188| r1188_12(int) = Add : r1188_10, r1188_11 +# 1188| mu1188_13(int) = Store[i] : &:r1188_9, r1188_12 #-----| Goto (back edge) -> Block 1 -# 1141| Block 3 -# 1141| v1141_14(void) = NoOp : -# 1142| v1142_1(void) = NoOp : -# 1139| v1139_4(void) = ReturnVoid : -# 1139| v1139_5(void) = AliasedUse : ~m? -# 1139| v1139_6(void) = ExitFunction : +# 1188| Block 3 +# 1188| v1188_14(void) = NoOp : +# 1189| v1189_1(void) = NoOp : +# 1186| v1186_4(void) = ReturnVoid : +# 1186| v1186_5(void) = AliasedUse : ~m? +# 1186| v1186_6(void) = ExitFunction : -# 1144| void TryCatchNoCatchAny(bool) -# 1144| Block 0 -# 1144| v1144_1(void) = EnterFunction : -# 1144| mu1144_2(unknown) = AliasedDefinition : -# 1144| mu1144_3(unknown) = InitializeNonLocal : -# 1144| r1144_4(glval<bool>) = VariableAddress[b] : -# 1144| mu1144_5(bool) = InitializeParameter[b] : &:r1144_4 -# 1146| r1146_1(glval<int>) = VariableAddress[x] : -# 1146| r1146_2(int) = Constant[5] : -# 1146| mu1146_3(int) = Store[x] : &:r1146_1, r1146_2 -# 1147| r1147_1(glval<bool>) = VariableAddress[b] : -# 1147| r1147_2(bool) = Load[b] : &:r1147_1, ~m? -# 1147| v1147_3(void) = ConditionalBranch : r1147_2 +# 1191| void TryCatchNoCatchAny(bool) +# 1191| Block 0 +# 1191| v1191_1(void) = EnterFunction : +# 1191| mu1191_2(unknown) = AliasedDefinition : +# 1191| mu1191_3(unknown) = InitializeNonLocal : +# 1191| r1191_4(glval<bool>) = VariableAddress[b] : +# 1191| mu1191_5(bool) = InitializeParameter[b] : &:r1191_4 +# 1193| r1193_1(glval<int>) = VariableAddress[x] : +# 1193| r1193_2(int) = Constant[5] : +# 1193| mu1193_3(int) = Store[x] : &:r1193_1, r1193_2 +# 1194| r1194_1(glval<bool>) = VariableAddress[b] : +# 1194| r1194_2(bool) = Load[b] : &:r1194_1, ~m? +# 1194| v1194_3(void) = ConditionalBranch : r1194_2 #-----| False -> Block 4 #-----| True -> Block 3 -# 1144| Block 1 -# 1144| v1144_6(void) = AliasedUse : ~m? -# 1144| v1144_7(void) = ExitFunction : +# 1191| Block 1 +# 1191| v1191_6(void) = AliasedUse : ~m? +# 1191| v1191_7(void) = ExitFunction : -# 1144| Block 2 -# 1144| v1144_8(void) = Unwind : +# 1191| Block 2 +# 1191| v1191_8(void) = Unwind : #-----| Goto -> Block 1 -# 1148| Block 3 -# 1148| r1148_1(glval<char *>) = VariableAddress[#throw1148:7] : -# 1148| r1148_2(glval<char[15]>) = StringConstant["string literal"] : -# 1148| r1148_3(char *) = Convert : r1148_2 -# 1148| mu1148_4(char *) = Store[#throw1148:7] : &:r1148_1, r1148_3 -# 1148| v1148_5(void) = ThrowValue : &:r1148_1, ~m? +# 1195| Block 3 +# 1195| r1195_1(glval<char *>) = VariableAddress[#throw1195:7] : +# 1195| r1195_2(glval<char[15]>) = StringConstant["string literal"] : +# 1195| r1195_3(char *) = Convert : r1195_2 +# 1195| mu1195_4(char *) = Store[#throw1195:7] : &:r1195_1, r1195_3 +# 1195| v1195_5(void) = ThrowValue : &:r1195_1, ~m? #-----| Exception -> Block 9 -# 1150| Block 4 -# 1150| r1150_1(glval<int>) = VariableAddress[x] : -# 1150| r1150_2(int) = Load[x] : &:r1150_1, ~m? -# 1150| r1150_3(int) = Constant[2] : -# 1150| r1150_4(bool) = CompareLT : r1150_2, r1150_3 -# 1150| v1150_5(void) = ConditionalBranch : r1150_4 +# 1197| Block 4 +# 1197| r1197_1(glval<int>) = VariableAddress[x] : +# 1197| r1197_2(int) = Load[x] : &:r1197_1, ~m? +# 1197| r1197_3(int) = Constant[2] : +# 1197| r1197_4(bool) = CompareLT : r1197_2, r1197_3 +# 1197| v1197_5(void) = ConditionalBranch : r1197_4 #-----| False -> Block 8 #-----| True -> Block 5 -# 1151| Block 5 -# 1151| r1151_1(glval<bool>) = VariableAddress[b] : -# 1151| r1151_2(bool) = Load[b] : &:r1151_1, ~m? -# 1151| v1151_3(void) = ConditionalBranch : r1151_2 +# 1198| Block 5 +# 1198| r1198_1(glval<bool>) = VariableAddress[b] : +# 1198| r1198_2(bool) = Load[b] : &:r1198_1, ~m? +# 1198| v1198_3(void) = ConditionalBranch : r1198_2 #-----| False -> Block 7 #-----| True -> Block 6 -# 1151| Block 6 -# 1151| r1151_4(int) = Constant[7] : -# 1151| r1151_5(glval<int>) = VariableAddress[#temp1151:11] : -# 1151| mu1151_6(int) = Store[#temp1151:11] : &:r1151_5, r1151_4 -# 1151| r1151_7(glval<int>) = VariableAddress[#temp1151:11] : -# 1151| r1151_8(int) = Load[#temp1151:11] : &:r1151_7, ~m? -# 1151| r1151_9(glval<int>) = VariableAddress[x] : -# 1151| mu1151_10(int) = Store[x] : &:r1151_9, r1151_8 +# 1198| Block 6 +# 1198| r1198_4(int) = Constant[7] : +# 1198| r1198_5(glval<int>) = VariableAddress[#temp1198:11] : +# 1198| mu1198_6(int) = Store[#temp1198:11] : &:r1198_5, r1198_4 +# 1198| r1198_7(glval<int>) = VariableAddress[#temp1198:11] : +# 1198| r1198_8(int) = Load[#temp1198:11] : &:r1198_7, ~m? +# 1198| r1198_9(glval<int>) = VariableAddress[x] : +# 1198| mu1198_10(int) = Store[x] : &:r1198_9, r1198_8 #-----| Goto -> Block 8 -# 1151| Block 7 -# 1151| r1151_11(glval<String>) = VariableAddress[#throw1151:19] : -# 1151| mu1151_12(String) = Uninitialized[#throw1151:19] : &:r1151_11 -# 1151| r1151_13(glval<unknown>) = FunctionAddress[String] : -# 1151| r1151_14(glval<char[14]>) = StringConstant["String object"] : -# 1151| r1151_15(char *) = Convert : r1151_14 -# 1151| v1151_16(void) = Call[String] : func:r1151_13, this:r1151_11, 0:r1151_15 -# 1151| mu1151_17(unknown) = ^CallSideEffect : ~m? -# 1151| v1151_18(void) = ^BufferReadSideEffect[0] : &:r1151_15, ~m? -# 1151| mu1151_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r1151_11 -# 1151| v1151_20(void) = ThrowValue : &:r1151_11, ~m? +# 1198| Block 7 +# 1198| r1198_11(glval<String>) = VariableAddress[#throw1198:19] : +# 1198| mu1198_12(String) = Uninitialized[#throw1198:19] : &:r1198_11 +# 1198| r1198_13(glval<unknown>) = FunctionAddress[String] : +# 1198| r1198_14(glval<char[14]>) = StringConstant["String object"] : +# 1198| r1198_15(char *) = Convert : r1198_14 +# 1198| v1198_16(void) = Call[String] : func:r1198_13, this:r1198_11, 0:r1198_15 +# 1198| mu1198_17(unknown) = ^CallSideEffect : ~m? +# 1198| v1198_18(void) = ^BufferReadSideEffect[0] : &:r1198_15, ~m? +# 1198| mu1198_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r1198_11 +# 1198| v1198_20(void) = ThrowValue : &:r1198_11, ~m? #-----| Exception -> Block 9 -# 1153| Block 8 -# 1153| r1153_1(int) = Constant[7] : -# 1153| r1153_2(glval<int>) = VariableAddress[x] : -# 1153| mu1153_3(int) = Store[x] : &:r1153_2, r1153_1 +# 1200| Block 8 +# 1200| r1200_1(int) = Constant[7] : +# 1200| r1200_2(glval<int>) = VariableAddress[x] : +# 1200| mu1200_3(int) = Store[x] : &:r1200_2, r1200_1 #-----| Goto -> Block 13 -# 1155| Block 9 -# 1155| v1155_1(void) = CatchByType[const char *] : +# 1202| Block 9 +# 1202| v1202_1(void) = CatchByType[const char *] : #-----| Exception -> Block 11 #-----| Goto -> Block 10 -# 1155| Block 10 -# 1155| r1155_2(glval<char *>) = VariableAddress[s] : -# 1155| mu1155_3(char *) = InitializeParameter[s] : &:r1155_2 -# 1155| r1155_4(char *) = Load[s] : &:r1155_2, ~m? -# 1155| mu1155_5(unknown) = InitializeIndirection[s] : &:r1155_4 -# 1156| r1156_1(glval<String>) = VariableAddress[#throw1156:5] : -# 1156| mu1156_2(String) = Uninitialized[#throw1156:5] : &:r1156_1 -# 1156| r1156_3(glval<unknown>) = FunctionAddress[String] : -# 1156| r1156_4(glval<char *>) = VariableAddress[s] : -# 1156| r1156_5(char *) = Load[s] : &:r1156_4, ~m? -# 1156| v1156_6(void) = Call[String] : func:r1156_3, this:r1156_1, 0:r1156_5 -# 1156| mu1156_7(unknown) = ^CallSideEffect : ~m? -# 1156| v1156_8(void) = ^BufferReadSideEffect[0] : &:r1156_5, ~m? -# 1156| mu1156_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1156_1 -# 1156| v1156_10(void) = ThrowValue : &:r1156_1, ~m? +# 1202| Block 10 +# 1202| r1202_2(glval<char *>) = VariableAddress[s] : +# 1202| mu1202_3(char *) = InitializeParameter[s] : &:r1202_2 +# 1202| r1202_4(char *) = Load[s] : &:r1202_2, ~m? +# 1202| mu1202_5(unknown) = InitializeIndirection[s] : &:r1202_4 +# 1203| r1203_1(glval<String>) = VariableAddress[#throw1203:5] : +# 1203| mu1203_2(String) = Uninitialized[#throw1203:5] : &:r1203_1 +# 1203| r1203_3(glval<unknown>) = FunctionAddress[String] : +# 1203| r1203_4(glval<char *>) = VariableAddress[s] : +# 1203| r1203_5(char *) = Load[s] : &:r1203_4, ~m? +# 1203| v1203_6(void) = Call[String] : func:r1203_3, this:r1203_1, 0:r1203_5 +# 1203| mu1203_7(unknown) = ^CallSideEffect : ~m? +# 1203| v1203_8(void) = ^BufferReadSideEffect[0] : &:r1203_5, ~m? +# 1203| mu1203_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1203_1 +# 1203| v1203_10(void) = ThrowValue : &:r1203_1, ~m? #-----| Exception -> Block 2 -# 1158| Block 11 -# 1158| v1158_1(void) = CatchByType[const String &] : +# 1205| Block 11 +# 1205| v1205_1(void) = CatchByType[const String &] : #-----| Exception -> Block 2 #-----| Goto -> Block 12 -# 1158| Block 12 -# 1158| r1158_2(glval<String &>) = VariableAddress[e] : -# 1158| mu1158_3(String &) = InitializeParameter[e] : &:r1158_2 -# 1158| r1158_4(String &) = Load[e] : &:r1158_2, ~m? -# 1158| mu1158_5(unknown) = InitializeIndirection[e] : &:r1158_4 -# 1158| v1158_6(void) = NoOp : +# 1205| Block 12 +# 1205| r1205_2(glval<String &>) = VariableAddress[e] : +# 1205| mu1205_3(String &) = InitializeParameter[e] : &:r1205_2 +# 1205| r1205_4(String &) = Load[e] : &:r1205_2, ~m? +# 1205| mu1205_5(unknown) = InitializeIndirection[e] : &:r1205_4 +# 1205| v1205_6(void) = NoOp : #-----| Goto -> Block 13 -# 1160| Block 13 -# 1160| v1160_1(void) = NoOp : -# 1144| v1144_9(void) = ReturnVoid : +# 1207| Block 13 +# 1207| v1207_1(void) = NoOp : +# 1191| v1191_9(void) = ReturnVoid : #-----| Goto -> Block 1 -# 1164| void VectorTypes(int) -# 1164| Block 0 -# 1164| v1164_1(void) = EnterFunction : -# 1164| mu1164_2(unknown) = AliasedDefinition : -# 1164| mu1164_3(unknown) = InitializeNonLocal : -# 1164| r1164_4(glval<int>) = VariableAddress[i] : -# 1164| mu1164_5(int) = InitializeParameter[i] : &:r1164_4 -# 1165| r1165_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1165| mu1165_2(__attribute((vector_size(16UL))) int) = Uninitialized[vi4] : &:r1165_1 -# 1165| r1165_3(int) = Constant[0] : -# 1165| r1165_4(glval<int>) = PointerAdd[4] : r1165_1, r1165_3 -# 1165| r1165_5(int) = Constant[0] : -# 1165| mu1165_6(int) = Store[?] : &:r1165_4, r1165_5 -# 1165| r1165_7(int) = Constant[1] : -# 1165| r1165_8(glval<int>) = PointerAdd[4] : r1165_1, r1165_7 -# 1165| r1165_9(int) = Constant[1] : -# 1165| mu1165_10(int) = Store[?] : &:r1165_8, r1165_9 -# 1165| r1165_11(int) = Constant[2] : -# 1165| r1165_12(glval<int>) = PointerAdd[4] : r1165_1, r1165_11 -# 1165| r1165_13(int) = Constant[2] : -# 1165| mu1165_14(int) = Store[?] : &:r1165_12, r1165_13 -# 1165| r1165_15(int) = Constant[3] : -# 1165| r1165_16(glval<int>) = PointerAdd[4] : r1165_1, r1165_15 -# 1165| r1165_17(int) = Constant[3] : -# 1165| mu1165_18(int) = Store[?] : &:r1165_16, r1165_17 -# 1166| r1166_1(glval<int>) = VariableAddress[x] : -# 1166| r1166_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1166| r1166_3(glval<int>) = VariableAddress[i] : -# 1166| r1166_4(int) = Load[i] : &:r1166_3, ~m? -# 1166| r1166_5(glval<int>) = PointerAdd[4] : r1166_2, r1166_4 -# 1166| r1166_6(int) = Load[?] : &:r1166_5, ~m? -# 1166| mu1166_7(int) = Store[x] : &:r1166_1, r1166_6 -# 1167| r1167_1(glval<int>) = VariableAddress[x] : -# 1167| r1167_2(int) = Load[x] : &:r1167_1, ~m? -# 1167| r1167_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1167| r1167_4(glval<int>) = VariableAddress[i] : -# 1167| r1167_5(int) = Load[i] : &:r1167_4, ~m? -# 1167| r1167_6(glval<int>) = PointerAdd[4] : r1167_3, r1167_5 -# 1167| mu1167_7(int) = Store[?] : &:r1167_6, r1167_2 -# 1168| r1168_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : -# 1168| r1168_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1168| r1168_3(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1168_2, ~m? -# 1168| r1168_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1168| r1168_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1168_4, ~m? -# 1168| r1168_6(int) = Constant[3] : -# 1168| r1168_7(int) = Constant[2] : -# 1168| r1168_8(int) = Constant[1] : -# 1168| r1168_9(int) = Constant[0] : -# 1168| r1168_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1168_3, 1:r1168_5, 2:r1168_6, 3:r1168_7, 4:r1168_8, 5:r1168_9 -# 1168| mu1168_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1168_1, r1168_10 -# 1169| r1169_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1169| r1169_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1169_1, ~m? -# 1169| r1169_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : -# 1169| r1169_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1169_3, ~m? -# 1169| r1169_5(__attribute((vector_size(16UL))) int) = Add : r1169_2, r1169_4 -# 1169| r1169_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : -# 1169| mu1169_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1169_6, r1169_5 -# 1170| v1170_1(void) = NoOp : -# 1164| v1164_6(void) = ReturnVoid : -# 1164| v1164_7(void) = AliasedUse : ~m? -# 1164| v1164_8(void) = ExitFunction : +# 1211| void VectorTypes(int) +# 1211| Block 0 +# 1211| v1211_1(void) = EnterFunction : +# 1211| mu1211_2(unknown) = AliasedDefinition : +# 1211| mu1211_3(unknown) = InitializeNonLocal : +# 1211| r1211_4(glval<int>) = VariableAddress[i] : +# 1211| mu1211_5(int) = InitializeParameter[i] : &:r1211_4 +# 1212| r1212_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1212| mu1212_2(__attribute((vector_size(16UL))) int) = Uninitialized[vi4] : &:r1212_1 +# 1212| r1212_3(int) = Constant[0] : +# 1212| r1212_4(glval<int>) = PointerAdd[4] : r1212_1, r1212_3 +# 1212| r1212_5(int) = Constant[0] : +# 1212| mu1212_6(int) = Store[?] : &:r1212_4, r1212_5 +# 1212| r1212_7(int) = Constant[1] : +# 1212| r1212_8(glval<int>) = PointerAdd[4] : r1212_1, r1212_7 +# 1212| r1212_9(int) = Constant[1] : +# 1212| mu1212_10(int) = Store[?] : &:r1212_8, r1212_9 +# 1212| r1212_11(int) = Constant[2] : +# 1212| r1212_12(glval<int>) = PointerAdd[4] : r1212_1, r1212_11 +# 1212| r1212_13(int) = Constant[2] : +# 1212| mu1212_14(int) = Store[?] : &:r1212_12, r1212_13 +# 1212| r1212_15(int) = Constant[3] : +# 1212| r1212_16(glval<int>) = PointerAdd[4] : r1212_1, r1212_15 +# 1212| r1212_17(int) = Constant[3] : +# 1212| mu1212_18(int) = Store[?] : &:r1212_16, r1212_17 +# 1213| r1213_1(glval<int>) = VariableAddress[x] : +# 1213| r1213_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1213| r1213_3(glval<int>) = VariableAddress[i] : +# 1213| r1213_4(int) = Load[i] : &:r1213_3, ~m? +# 1213| r1213_5(glval<int>) = PointerAdd[4] : r1213_2, r1213_4 +# 1213| r1213_6(int) = Load[?] : &:r1213_5, ~m? +# 1213| mu1213_7(int) = Store[x] : &:r1213_1, r1213_6 +# 1214| r1214_1(glval<int>) = VariableAddress[x] : +# 1214| r1214_2(int) = Load[x] : &:r1214_1, ~m? +# 1214| r1214_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1214| r1214_4(glval<int>) = VariableAddress[i] : +# 1214| r1214_5(int) = Load[i] : &:r1214_4, ~m? +# 1214| r1214_6(glval<int>) = PointerAdd[4] : r1214_3, r1214_5 +# 1214| mu1214_7(int) = Store[?] : &:r1214_6, r1214_2 +# 1215| r1215_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1215| r1215_2(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1215| r1215_3(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1215_2, ~m? +# 1215| r1215_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1215| r1215_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1215_4, ~m? +# 1215| r1215_6(int) = Constant[3] : +# 1215| r1215_7(int) = Constant[2] : +# 1215| r1215_8(int) = Constant[1] : +# 1215| r1215_9(int) = Constant[0] : +# 1215| r1215_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_6, 3:r1215_7, 4:r1215_8, 5:r1215_9 +# 1215| mu1215_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_10 +# 1216| r1216_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1216| r1216_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1216_1, ~m? +# 1216| r1216_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : +# 1216| r1216_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1216_3, ~m? +# 1216| r1216_5(__attribute((vector_size(16UL))) int) = Add : r1216_2, r1216_4 +# 1216| r1216_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : +# 1216| mu1216_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1216_6, r1216_5 +# 1217| v1217_1(void) = NoOp : +# 1211| v1211_6(void) = ReturnVoid : +# 1211| v1211_7(void) = AliasedUse : ~m? +# 1211| v1211_8(void) = ExitFunction : -# 1174| int ModeledCallTarget(int) -# 1174| Block 0 -# 1174| v1174_1(void) = EnterFunction : -# 1174| mu1174_2(unknown) = AliasedDefinition : -# 1174| mu1174_3(unknown) = InitializeNonLocal : -# 1174| r1174_4(glval<int>) = VariableAddress[x] : -# 1174| mu1174_5(int) = InitializeParameter[x] : &:r1174_4 -# 1175| r1175_1(glval<int>) = VariableAddress[y] : -# 1175| mu1175_2(int) = Uninitialized[y] : &:r1175_1 -# 1176| r1176_1(glval<unknown>) = FunctionAddress[memcpy] : -# 1176| r1176_2(glval<int>) = VariableAddress[y] : -# 1176| r1176_3(int *) = CopyValue : r1176_2 -# 1176| r1176_4(void *) = Convert : r1176_3 -# 1176| r1176_5(glval<int>) = VariableAddress[x] : -# 1176| r1176_6(int *) = CopyValue : r1176_5 -# 1176| r1176_7(void *) = Convert : r1176_6 -# 1176| r1176_8(int) = Constant[4] : -# 1176| r1176_9(void *) = Call[memcpy] : func:r1176_1, 0:r1176_4, 1:r1176_7, 2:r1176_8 -# 1176| v1176_10(void) = ^SizedBufferReadSideEffect[1] : &:r1176_7, r1176_8, ~m? -# 1176| mu1176_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1176_4, r1176_8 -# 1177| r1177_1(glval<int>) = VariableAddress[#return] : -# 1177| r1177_2(glval<int>) = VariableAddress[y] : -# 1177| r1177_3(int) = Load[y] : &:r1177_2, ~m? -# 1177| mu1177_4(int) = Store[#return] : &:r1177_1, r1177_3 -# 1174| r1174_6(glval<int>) = VariableAddress[#return] : -# 1174| v1174_7(void) = ReturnValue : &:r1174_6, ~m? -# 1174| v1174_8(void) = AliasedUse : ~m? -# 1174| v1174_9(void) = ExitFunction : +# 1221| int ModeledCallTarget(int) +# 1221| Block 0 +# 1221| v1221_1(void) = EnterFunction : +# 1221| mu1221_2(unknown) = AliasedDefinition : +# 1221| mu1221_3(unknown) = InitializeNonLocal : +# 1221| r1221_4(glval<int>) = VariableAddress[x] : +# 1221| mu1221_5(int) = InitializeParameter[x] : &:r1221_4 +# 1222| r1222_1(glval<int>) = VariableAddress[y] : +# 1222| mu1222_2(int) = Uninitialized[y] : &:r1222_1 +# 1223| r1223_1(glval<unknown>) = FunctionAddress[memcpy] : +# 1223| r1223_2(glval<int>) = VariableAddress[y] : +# 1223| r1223_3(int *) = CopyValue : r1223_2 +# 1223| r1223_4(void *) = Convert : r1223_3 +# 1223| r1223_5(glval<int>) = VariableAddress[x] : +# 1223| r1223_6(int *) = CopyValue : r1223_5 +# 1223| r1223_7(void *) = Convert : r1223_6 +# 1223| r1223_8(int) = Constant[4] : +# 1223| r1223_9(void *) = Call[memcpy] : func:r1223_1, 0:r1223_4, 1:r1223_7, 2:r1223_8 +# 1223| v1223_10(void) = ^SizedBufferReadSideEffect[1] : &:r1223_7, r1223_8, ~m? +# 1223| mu1223_11(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r1223_4, r1223_8 +# 1224| r1224_1(glval<int>) = VariableAddress[#return] : +# 1224| r1224_2(glval<int>) = VariableAddress[y] : +# 1224| r1224_3(int) = Load[y] : &:r1224_2, ~m? +# 1224| mu1224_4(int) = Store[#return] : &:r1224_1, r1224_3 +# 1221| r1221_6(glval<int>) = VariableAddress[#return] : +# 1221| v1221_7(void) = ReturnValue : &:r1221_6, ~m? +# 1221| v1221_8(void) = AliasedUse : ~m? +# 1221| v1221_9(void) = ExitFunction : -# 1180| String ReturnObjectImpl() -# 1180| Block 0 -# 1180| v1180_1(void) = EnterFunction : -# 1180| mu1180_2(unknown) = AliasedDefinition : -# 1180| mu1180_3(unknown) = InitializeNonLocal : -# 1181| r1181_1(glval<String>) = VariableAddress[#return] : -# 1181| mu1181_2(String) = Uninitialized[#return] : &:r1181_1 -# 1181| r1181_3(glval<unknown>) = FunctionAddress[String] : -# 1181| r1181_4(glval<char[4]>) = StringConstant["foo"] : -# 1181| r1181_5(char *) = Convert : r1181_4 -# 1181| v1181_6(void) = Call[String] : func:r1181_3, this:r1181_1, 0:r1181_5 -# 1181| mu1181_7(unknown) = ^CallSideEffect : ~m? -# 1181| v1181_8(void) = ^BufferReadSideEffect[0] : &:r1181_5, ~m? -# 1181| mu1181_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1181_1 -# 1180| r1180_4(glval<String>) = VariableAddress[#return] : -# 1180| v1180_5(void) = ReturnValue : &:r1180_4, ~m? -# 1180| v1180_6(void) = AliasedUse : ~m? -# 1180| v1180_7(void) = ExitFunction : +# 1227| String ReturnObjectImpl() +# 1227| Block 0 +# 1227| v1227_1(void) = EnterFunction : +# 1227| mu1227_2(unknown) = AliasedDefinition : +# 1227| mu1227_3(unknown) = InitializeNonLocal : +# 1228| r1228_1(glval<String>) = VariableAddress[#return] : +# 1228| mu1228_2(String) = Uninitialized[#return] : &:r1228_1 +# 1228| r1228_3(glval<unknown>) = FunctionAddress[String] : +# 1228| r1228_4(glval<char[4]>) = StringConstant["foo"] : +# 1228| r1228_5(char *) = Convert : r1228_4 +# 1228| v1228_6(void) = Call[String] : func:r1228_3, this:r1228_1, 0:r1228_5 +# 1228| mu1228_7(unknown) = ^CallSideEffect : ~m? +# 1228| v1228_8(void) = ^BufferReadSideEffect[0] : &:r1228_5, ~m? +# 1228| mu1228_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1228_1 +# 1227| r1227_4(glval<String>) = VariableAddress[#return] : +# 1227| v1227_5(void) = ReturnValue : &:r1227_4, ~m? +# 1227| v1227_6(void) = AliasedUse : ~m? +# 1227| v1227_7(void) = ExitFunction : -# 1184| void switch1Case(int) -# 1184| Block 0 -# 1184| v1184_1(void) = EnterFunction : -# 1184| mu1184_2(unknown) = AliasedDefinition : -# 1184| mu1184_3(unknown) = InitializeNonLocal : -# 1184| r1184_4(glval<int>) = VariableAddress[x] : -# 1184| mu1184_5(int) = InitializeParameter[x] : &:r1184_4 -# 1185| r1185_1(glval<int>) = VariableAddress[y] : -# 1185| r1185_2(int) = Constant[0] : -# 1185| mu1185_3(int) = Store[y] : &:r1185_1, r1185_2 -# 1186| r1186_1(glval<int>) = VariableAddress[x] : -# 1186| r1186_2(int) = Load[x] : &:r1186_1, ~m? -# 1186| v1186_3(void) = Switch : r1186_2 +# 1231| void switch1Case(int) +# 1231| Block 0 +# 1231| v1231_1(void) = EnterFunction : +# 1231| mu1231_2(unknown) = AliasedDefinition : +# 1231| mu1231_3(unknown) = InitializeNonLocal : +# 1231| r1231_4(glval<int>) = VariableAddress[x] : +# 1231| mu1231_5(int) = InitializeParameter[x] : &:r1231_4 +# 1232| r1232_1(glval<int>) = VariableAddress[y] : +# 1232| r1232_2(int) = Constant[0] : +# 1232| mu1232_3(int) = Store[y] : &:r1232_1, r1232_2 +# 1233| r1233_1(glval<int>) = VariableAddress[x] : +# 1233| r1233_2(int) = Load[x] : &:r1233_1, ~m? +# 1233| v1233_3(void) = Switch : r1233_2 #-----| Case[1] -> Block 1 #-----| Default -> Block 2 -# 1187| Block 1 -# 1187| v1187_1(void) = NoOp : -# 1188| r1188_1(int) = Constant[2] : -# 1188| r1188_2(glval<int>) = VariableAddress[y] : -# 1188| mu1188_3(int) = Store[y] : &:r1188_2, r1188_1 +# 1234| Block 1 +# 1234| v1234_1(void) = NoOp : +# 1235| r1235_1(int) = Constant[2] : +# 1235| r1235_2(glval<int>) = VariableAddress[y] : +# 1235| mu1235_3(int) = Store[y] : &:r1235_2, r1235_1 #-----| Goto -> Block 2 -# 1190| Block 2 -# 1190| r1190_1(glval<int>) = VariableAddress[z] : -# 1190| r1190_2(glval<int>) = VariableAddress[y] : -# 1190| r1190_3(int) = Load[y] : &:r1190_2, ~m? -# 1190| mu1190_4(int) = Store[z] : &:r1190_1, r1190_3 -# 1191| v1191_1(void) = NoOp : -# 1184| v1184_6(void) = ReturnVoid : -# 1184| v1184_7(void) = AliasedUse : ~m? -# 1184| v1184_8(void) = ExitFunction : +# 1237| Block 2 +# 1237| r1237_1(glval<int>) = VariableAddress[z] : +# 1237| r1237_2(glval<int>) = VariableAddress[y] : +# 1237| r1237_3(int) = Load[y] : &:r1237_2, ~m? +# 1237| mu1237_4(int) = Store[z] : &:r1237_1, r1237_3 +# 1238| v1238_1(void) = NoOp : +# 1231| v1231_6(void) = ReturnVoid : +# 1231| v1231_7(void) = AliasedUse : ~m? +# 1231| v1231_8(void) = ExitFunction : -# 1193| void switch2Case_fallthrough(int) -# 1193| Block 0 -# 1193| v1193_1(void) = EnterFunction : -# 1193| mu1193_2(unknown) = AliasedDefinition : -# 1193| mu1193_3(unknown) = InitializeNonLocal : -# 1193| r1193_4(glval<int>) = VariableAddress[x] : -# 1193| mu1193_5(int) = InitializeParameter[x] : &:r1193_4 -# 1194| r1194_1(glval<int>) = VariableAddress[y] : -# 1194| r1194_2(int) = Constant[0] : -# 1194| mu1194_3(int) = Store[y] : &:r1194_1, r1194_2 -# 1195| r1195_1(glval<int>) = VariableAddress[x] : -# 1195| r1195_2(int) = Load[x] : &:r1195_1, ~m? -# 1195| v1195_3(void) = Switch : r1195_2 +# 1240| void switch2Case_fallthrough(int) +# 1240| Block 0 +# 1240| v1240_1(void) = EnterFunction : +# 1240| mu1240_2(unknown) = AliasedDefinition : +# 1240| mu1240_3(unknown) = InitializeNonLocal : +# 1240| r1240_4(glval<int>) = VariableAddress[x] : +# 1240| mu1240_5(int) = InitializeParameter[x] : &:r1240_4 +# 1241| r1241_1(glval<int>) = VariableAddress[y] : +# 1241| r1241_2(int) = Constant[0] : +# 1241| mu1241_3(int) = Store[y] : &:r1241_1, r1241_2 +# 1242| r1242_1(glval<int>) = VariableAddress[x] : +# 1242| r1242_2(int) = Load[x] : &:r1242_1, ~m? +# 1242| v1242_3(void) = Switch : r1242_2 #-----| Case[1] -> Block 1 #-----| Case[2] -> Block 2 #-----| Default -> Block 3 -# 1196| Block 1 -# 1196| v1196_1(void) = NoOp : -# 1197| r1197_1(int) = Constant[2] : -# 1197| r1197_2(glval<int>) = VariableAddress[y] : -# 1197| mu1197_3(int) = Store[y] : &:r1197_2, r1197_1 -#-----| Goto -> Block 2 - -# 1198| Block 2 -# 1198| v1198_1(void) = NoOp : -# 1199| r1199_1(int) = Constant[3] : -# 1199| r1199_2(glval<int>) = VariableAddress[y] : -# 1199| mu1199_3(int) = Store[y] : &:r1199_2, r1199_1 -#-----| Goto -> Block 3 - -# 1201| Block 3 -# 1201| r1201_1(glval<int>) = VariableAddress[z] : -# 1201| r1201_2(glval<int>) = VariableAddress[y] : -# 1201| r1201_3(int) = Load[y] : &:r1201_2, ~m? -# 1201| mu1201_4(int) = Store[z] : &:r1201_1, r1201_3 -# 1202| v1202_1(void) = NoOp : -# 1193| v1193_6(void) = ReturnVoid : -# 1193| v1193_7(void) = AliasedUse : ~m? -# 1193| v1193_8(void) = ExitFunction : - -# 1204| void switch2Case(int) -# 1204| Block 0 -# 1204| v1204_1(void) = EnterFunction : -# 1204| mu1204_2(unknown) = AliasedDefinition : -# 1204| mu1204_3(unknown) = InitializeNonLocal : -# 1204| r1204_4(glval<int>) = VariableAddress[x] : -# 1204| mu1204_5(int) = InitializeParameter[x] : &:r1204_4 -# 1205| r1205_1(glval<int>) = VariableAddress[y] : -# 1205| r1205_2(int) = Constant[0] : -# 1205| mu1205_3(int) = Store[y] : &:r1205_1, r1205_2 -# 1206| r1206_1(glval<int>) = VariableAddress[x] : -# 1206| r1206_2(int) = Load[x] : &:r1206_1, ~m? -# 1206| v1206_3(void) = Switch : r1206_2 -#-----| Case[1] -> Block 1 -#-----| Case[2] -> Block 2 -#-----| Default -> Block 3 - -# 1207| Block 1 -# 1207| v1207_1(void) = NoOp : -# 1208| r1208_1(int) = Constant[2] : -# 1208| r1208_2(glval<int>) = VariableAddress[y] : -# 1208| mu1208_3(int) = Store[y] : &:r1208_2, r1208_1 -# 1209| v1209_1(void) = NoOp : -#-----| Goto -> Block 3 - -# 1210| Block 2 -# 1210| v1210_1(void) = NoOp : -# 1211| r1211_1(int) = Constant[3] : -# 1211| r1211_2(glval<int>) = VariableAddress[y] : -# 1211| mu1211_3(int) = Store[y] : &:r1211_2, r1211_1 -#-----| Goto -> Block 3 - -# 1212| Block 3 -# 1212| v1212_1(void) = NoOp : -# 1213| r1213_1(glval<int>) = VariableAddress[z] : -# 1213| r1213_2(glval<int>) = VariableAddress[y] : -# 1213| r1213_3(int) = Load[y] : &:r1213_2, ~m? -# 1213| mu1213_4(int) = Store[z] : &:r1213_1, r1213_3 -# 1214| v1214_1(void) = NoOp : -# 1204| v1204_6(void) = ReturnVoid : -# 1204| v1204_7(void) = AliasedUse : ~m? -# 1204| v1204_8(void) = ExitFunction : - -# 1216| void switch2Case_default(int) -# 1216| Block 0 -# 1216| v1216_1(void) = EnterFunction : -# 1216| mu1216_2(unknown) = AliasedDefinition : -# 1216| mu1216_3(unknown) = InitializeNonLocal : -# 1216| r1216_4(glval<int>) = VariableAddress[x] : -# 1216| mu1216_5(int) = InitializeParameter[x] : &:r1216_4 -# 1217| r1217_1(glval<int>) = VariableAddress[y] : -# 1217| r1217_2(int) = Constant[0] : -# 1217| mu1217_3(int) = Store[y] : &:r1217_1, r1217_2 -# 1218| r1218_1(glval<int>) = VariableAddress[x] : -# 1218| r1218_2(int) = Load[x] : &:r1218_1, ~m? -# 1218| v1218_3(void) = Switch : r1218_2 -#-----| Case[1] -> Block 1 -#-----| Case[2] -> Block 2 -#-----| Default -> Block 3 - -# 1219| Block 1 -# 1219| v1219_1(void) = NoOp : -# 1220| r1220_1(int) = Constant[2] : -# 1220| r1220_2(glval<int>) = VariableAddress[y] : -# 1220| mu1220_3(int) = Store[y] : &:r1220_2, r1220_1 -# 1221| v1221_1(void) = NoOp : -#-----| Goto -> Block 4 - -# 1223| Block 2 -# 1223| v1223_1(void) = NoOp : -# 1224| r1224_1(int) = Constant[3] : -# 1224| r1224_2(glval<int>) = VariableAddress[y] : -# 1224| mu1224_3(int) = Store[y] : &:r1224_2, r1224_1 -# 1225| v1225_1(void) = NoOp : -#-----| Goto -> Block 4 - -# 1227| Block 3 -# 1227| v1227_1(void) = NoOp : -# 1228| r1228_1(int) = Constant[4] : -# 1228| r1228_2(glval<int>) = VariableAddress[y] : -# 1228| mu1228_3(int) = Store[y] : &:r1228_2, r1228_1 -#-----| Goto -> Block 4 - -# 1229| Block 4 -# 1229| v1229_1(void) = NoOp : -# 1230| r1230_1(glval<int>) = VariableAddress[z] : -# 1230| r1230_2(glval<int>) = VariableAddress[y] : -# 1230| r1230_3(int) = Load[y] : &:r1230_2, ~m? -# 1230| mu1230_4(int) = Store[z] : &:r1230_1, r1230_3 -# 1231| v1231_1(void) = NoOp : -# 1216| v1216_6(void) = ReturnVoid : -# 1216| v1216_7(void) = AliasedUse : ~m? -# 1216| v1216_8(void) = ExitFunction : - -# 1233| int staticLocalInit(int) -# 1233| Block 0 -# 1233| v1233_1(void) = EnterFunction : -# 1233| mu1233_2(unknown) = AliasedDefinition : -# 1233| mu1233_3(unknown) = InitializeNonLocal : -# 1233| r1233_4(glval<int>) = VariableAddress[x] : -# 1233| mu1233_5(int) = InitializeParameter[x] : &:r1233_4 -# 1236| r1236_1(glval<bool>) = VariableAddress[c#init] : -# 1236| r1236_2(bool) = Load[c#init] : &:r1236_1, ~m? -# 1236| v1236_3(void) = ConditionalBranch : r1236_2 -#-----| False -> Block 1 -#-----| True -> Block 2 - -# 1236| Block 1 -# 1236| r1236_4(glval<int>) = VariableAddress[c] : -# 1236| r1236_5(glval<int>) = VariableAddress[x] : -# 1236| r1236_6(int) = Load[x] : &:r1236_5, ~m? -# 1236| mu1236_7(int) = Store[c] : &:r1236_4, r1236_6 -# 1236| r1236_8(bool) = Constant[1] : -# 1236| mu1236_9(bool) = Store[c#init] : &:r1236_1, r1236_8 -#-----| Goto -> Block 2 - -# 1239| Block 2 -# 1239| r1239_1(glval<int>) = VariableAddress[#return] : -# 1239| r1239_2(glval<int>) = VariableAddress[a] : -# 1239| r1239_3(int) = Load[a] : &:r1239_2, ~m? -# 1239| r1239_4(glval<int>) = VariableAddress[b] : -# 1239| r1239_5(int) = Load[b] : &:r1239_4, ~m? -# 1239| r1239_6(int) = Add : r1239_3, r1239_5 -# 1239| r1239_7(glval<int>) = VariableAddress[c] : -# 1239| r1239_8(int) = Load[c] : &:r1239_7, ~m? -# 1239| r1239_9(int) = Add : r1239_6, r1239_8 -# 1239| r1239_10(glval<int>) = VariableAddress[d] : -# 1239| r1239_11(int) = Load[d] : &:r1239_10, ~m? -# 1239| r1239_12(int) = Add : r1239_9, r1239_11 -# 1239| mu1239_13(int) = Store[#return] : &:r1239_1, r1239_12 -# 1233| r1233_6(glval<int>) = VariableAddress[#return] : -# 1233| v1233_7(void) = ReturnValue : &:r1233_6, ~m? -# 1233| v1233_8(void) = AliasedUse : ~m? -# 1233| v1233_9(void) = ExitFunction : - -# 1234| int a -# 1234| Block 0 -# 1234| v1234_1(void) = EnterFunction : -# 1234| mu1234_2(unknown) = AliasedDefinition : -# 1234| r1234_3(glval<int>) = VariableAddress[a] : -# 1234| r1234_4(int) = Constant[0] : -# 1234| mu1234_5(int) = Store[a] : &:r1234_3, r1234_4 -# 1234| v1234_6(void) = ReturnVoid : -# 1234| v1234_7(void) = AliasedUse : ~m? -# 1234| v1234_8(void) = ExitFunction : - -# 1235| int b -# 1235| Block 0 -# 1235| v1235_1(void) = EnterFunction : -# 1235| mu1235_2(unknown) = AliasedDefinition : -# 1235| r1235_3(glval<int>) = VariableAddress[b] : -# 1235| r1235_4(int) = Constant[4] : -# 1235| mu1235_5(int) = Store[b] : &:r1235_3, r1235_4 -# 1235| v1235_6(void) = ReturnVoid : -# 1235| v1235_7(void) = AliasedUse : ~m? -# 1235| v1235_8(void) = ExitFunction : - -# 1242| void staticLocalWithConstructor(char const*) -# 1242| Block 0 -# 1242| v1242_1(void) = EnterFunction : -# 1242| mu1242_2(unknown) = AliasedDefinition : -# 1242| mu1242_3(unknown) = InitializeNonLocal : -# 1242| r1242_4(glval<char *>) = VariableAddress[dynamic] : -# 1242| mu1242_5(char *) = InitializeParameter[dynamic] : &:r1242_4 -# 1242| r1242_6(char *) = Load[dynamic] : &:r1242_4, ~m? -# 1242| mu1242_7(unknown) = InitializeIndirection[dynamic] : &:r1242_6 -# 1243| r1243_1(glval<bool>) = VariableAddress[a#init] : -# 1243| r1243_2(bool) = Load[a#init] : &:r1243_1, ~m? -# 1243| v1243_3(void) = ConditionalBranch : r1243_2 -#-----| False -> Block 1 -#-----| True -> Block 2 - # 1243| Block 1 -# 1243| r1243_4(glval<String>) = VariableAddress[a] : -#-----| r0_1(glval<unknown>) = FunctionAddress[String] : -#-----| v0_2(void) = Call[String] : func:r0_1, this:r1243_4 -#-----| mu0_3(unknown) = ^CallSideEffect : ~m? -#-----| mu0_4(String) = ^IndirectMayWriteSideEffect[-1] : &:r1243_4 -# 1243| r1243_5(bool) = Constant[1] : -# 1243| mu1243_6(bool) = Store[a#init] : &:r1243_1, r1243_5 +# 1243| v1243_1(void) = NoOp : +# 1244| r1244_1(int) = Constant[2] : +# 1244| r1244_2(glval<int>) = VariableAddress[y] : +# 1244| mu1244_3(int) = Store[y] : &:r1244_2, r1244_1 #-----| Goto -> Block 2 -# 1244| Block 2 -# 1244| r1244_1(glval<bool>) = VariableAddress[b#init] : -# 1244| r1244_2(bool) = Load[b#init] : &:r1244_1, ~m? -# 1244| v1244_3(void) = ConditionalBranch : r1244_2 +# 1245| Block 2 +# 1245| v1245_1(void) = NoOp : +# 1246| r1246_1(int) = Constant[3] : +# 1246| r1246_2(glval<int>) = VariableAddress[y] : +# 1246| mu1246_3(int) = Store[y] : &:r1246_2, r1246_1 +#-----| Goto -> Block 3 + +# 1248| Block 3 +# 1248| r1248_1(glval<int>) = VariableAddress[z] : +# 1248| r1248_2(glval<int>) = VariableAddress[y] : +# 1248| r1248_3(int) = Load[y] : &:r1248_2, ~m? +# 1248| mu1248_4(int) = Store[z] : &:r1248_1, r1248_3 +# 1249| v1249_1(void) = NoOp : +# 1240| v1240_6(void) = ReturnVoid : +# 1240| v1240_7(void) = AliasedUse : ~m? +# 1240| v1240_8(void) = ExitFunction : + +# 1251| void switch2Case(int) +# 1251| Block 0 +# 1251| v1251_1(void) = EnterFunction : +# 1251| mu1251_2(unknown) = AliasedDefinition : +# 1251| mu1251_3(unknown) = InitializeNonLocal : +# 1251| r1251_4(glval<int>) = VariableAddress[x] : +# 1251| mu1251_5(int) = InitializeParameter[x] : &:r1251_4 +# 1252| r1252_1(glval<int>) = VariableAddress[y] : +# 1252| r1252_2(int) = Constant[0] : +# 1252| mu1252_3(int) = Store[y] : &:r1252_1, r1252_2 +# 1253| r1253_1(glval<int>) = VariableAddress[x] : +# 1253| r1253_2(int) = Load[x] : &:r1253_1, ~m? +# 1253| v1253_3(void) = Switch : r1253_2 +#-----| Case[1] -> Block 1 +#-----| Case[2] -> Block 2 +#-----| Default -> Block 3 + +# 1254| Block 1 +# 1254| v1254_1(void) = NoOp : +# 1255| r1255_1(int) = Constant[2] : +# 1255| r1255_2(glval<int>) = VariableAddress[y] : +# 1255| mu1255_3(int) = Store[y] : &:r1255_2, r1255_1 +# 1256| v1256_1(void) = NoOp : +#-----| Goto -> Block 3 + +# 1257| Block 2 +# 1257| v1257_1(void) = NoOp : +# 1258| r1258_1(int) = Constant[3] : +# 1258| r1258_2(glval<int>) = VariableAddress[y] : +# 1258| mu1258_3(int) = Store[y] : &:r1258_2, r1258_1 +#-----| Goto -> Block 3 + +# 1259| Block 3 +# 1259| v1259_1(void) = NoOp : +# 1260| r1260_1(glval<int>) = VariableAddress[z] : +# 1260| r1260_2(glval<int>) = VariableAddress[y] : +# 1260| r1260_3(int) = Load[y] : &:r1260_2, ~m? +# 1260| mu1260_4(int) = Store[z] : &:r1260_1, r1260_3 +# 1261| v1261_1(void) = NoOp : +# 1251| v1251_6(void) = ReturnVoid : +# 1251| v1251_7(void) = AliasedUse : ~m? +# 1251| v1251_8(void) = ExitFunction : + +# 1263| void switch2Case_default(int) +# 1263| Block 0 +# 1263| v1263_1(void) = EnterFunction : +# 1263| mu1263_2(unknown) = AliasedDefinition : +# 1263| mu1263_3(unknown) = InitializeNonLocal : +# 1263| r1263_4(glval<int>) = VariableAddress[x] : +# 1263| mu1263_5(int) = InitializeParameter[x] : &:r1263_4 +# 1264| r1264_1(glval<int>) = VariableAddress[y] : +# 1264| r1264_2(int) = Constant[0] : +# 1264| mu1264_3(int) = Store[y] : &:r1264_1, r1264_2 +# 1265| r1265_1(glval<int>) = VariableAddress[x] : +# 1265| r1265_2(int) = Load[x] : &:r1265_1, ~m? +# 1265| v1265_3(void) = Switch : r1265_2 +#-----| Case[1] -> Block 1 +#-----| Case[2] -> Block 2 +#-----| Default -> Block 3 + +# 1266| Block 1 +# 1266| v1266_1(void) = NoOp : +# 1267| r1267_1(int) = Constant[2] : +# 1267| r1267_2(glval<int>) = VariableAddress[y] : +# 1267| mu1267_3(int) = Store[y] : &:r1267_2, r1267_1 +# 1268| v1268_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 1270| Block 2 +# 1270| v1270_1(void) = NoOp : +# 1271| r1271_1(int) = Constant[3] : +# 1271| r1271_2(glval<int>) = VariableAddress[y] : +# 1271| mu1271_3(int) = Store[y] : &:r1271_2, r1271_1 +# 1272| v1272_1(void) = NoOp : +#-----| Goto -> Block 4 + +# 1274| Block 3 +# 1274| v1274_1(void) = NoOp : +# 1275| r1275_1(int) = Constant[4] : +# 1275| r1275_2(glval<int>) = VariableAddress[y] : +# 1275| mu1275_3(int) = Store[y] : &:r1275_2, r1275_1 +#-----| Goto -> Block 4 + +# 1276| Block 4 +# 1276| v1276_1(void) = NoOp : +# 1277| r1277_1(glval<int>) = VariableAddress[z] : +# 1277| r1277_2(glval<int>) = VariableAddress[y] : +# 1277| r1277_3(int) = Load[y] : &:r1277_2, ~m? +# 1277| mu1277_4(int) = Store[z] : &:r1277_1, r1277_3 +# 1278| v1278_1(void) = NoOp : +# 1263| v1263_6(void) = ReturnVoid : +# 1263| v1263_7(void) = AliasedUse : ~m? +# 1263| v1263_8(void) = ExitFunction : + +# 1280| int staticLocalInit(int) +# 1280| Block 0 +# 1280| v1280_1(void) = EnterFunction : +# 1280| mu1280_2(unknown) = AliasedDefinition : +# 1280| mu1280_3(unknown) = InitializeNonLocal : +# 1280| r1280_4(glval<int>) = VariableAddress[x] : +# 1280| mu1280_5(int) = InitializeParameter[x] : &:r1280_4 +# 1283| r1283_1(glval<bool>) = VariableAddress[c#init] : +# 1283| r1283_2(bool) = Load[c#init] : &:r1283_1, ~m? +# 1283| v1283_3(void) = ConditionalBranch : r1283_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 1283| Block 1 +# 1283| r1283_4(glval<int>) = VariableAddress[c] : +# 1283| r1283_5(glval<int>) = VariableAddress[x] : +# 1283| r1283_6(int) = Load[x] : &:r1283_5, ~m? +# 1283| mu1283_7(int) = Store[c] : &:r1283_4, r1283_6 +# 1283| r1283_8(bool) = Constant[1] : +# 1283| mu1283_9(bool) = Store[c#init] : &:r1283_1, r1283_8 +#-----| Goto -> Block 2 + +# 1286| Block 2 +# 1286| r1286_1(glval<int>) = VariableAddress[#return] : +# 1286| r1286_2(glval<int>) = VariableAddress[a] : +# 1286| r1286_3(int) = Load[a] : &:r1286_2, ~m? +# 1286| r1286_4(glval<int>) = VariableAddress[b] : +# 1286| r1286_5(int) = Load[b] : &:r1286_4, ~m? +# 1286| r1286_6(int) = Add : r1286_3, r1286_5 +# 1286| r1286_7(glval<int>) = VariableAddress[c] : +# 1286| r1286_8(int) = Load[c] : &:r1286_7, ~m? +# 1286| r1286_9(int) = Add : r1286_6, r1286_8 +# 1286| r1286_10(glval<int>) = VariableAddress[d] : +# 1286| r1286_11(int) = Load[d] : &:r1286_10, ~m? +# 1286| r1286_12(int) = Add : r1286_9, r1286_11 +# 1286| mu1286_13(int) = Store[#return] : &:r1286_1, r1286_12 +# 1280| r1280_6(glval<int>) = VariableAddress[#return] : +# 1280| v1280_7(void) = ReturnValue : &:r1280_6, ~m? +# 1280| v1280_8(void) = AliasedUse : ~m? +# 1280| v1280_9(void) = ExitFunction : + +# 1281| int a +# 1281| Block 0 +# 1281| v1281_1(void) = EnterFunction : +# 1281| mu1281_2(unknown) = AliasedDefinition : +# 1281| r1281_3(glval<int>) = VariableAddress[a] : +# 1281| r1281_4(int) = Constant[0] : +# 1281| mu1281_5(int) = Store[a] : &:r1281_3, r1281_4 +# 1281| v1281_6(void) = ReturnVoid : +# 1281| v1281_7(void) = AliasedUse : ~m? +# 1281| v1281_8(void) = ExitFunction : + +# 1282| int b +# 1282| Block 0 +# 1282| v1282_1(void) = EnterFunction : +# 1282| mu1282_2(unknown) = AliasedDefinition : +# 1282| r1282_3(glval<int>) = VariableAddress[b] : +# 1282| r1282_4(int) = Constant[4] : +# 1282| mu1282_5(int) = Store[b] : &:r1282_3, r1282_4 +# 1282| v1282_6(void) = ReturnVoid : +# 1282| v1282_7(void) = AliasedUse : ~m? +# 1282| v1282_8(void) = ExitFunction : + +# 1289| void staticLocalWithConstructor(char const*) +# 1289| Block 0 +# 1289| v1289_1(void) = EnterFunction : +# 1289| mu1289_2(unknown) = AliasedDefinition : +# 1289| mu1289_3(unknown) = InitializeNonLocal : +# 1289| r1289_4(glval<char *>) = VariableAddress[dynamic] : +# 1289| mu1289_5(char *) = InitializeParameter[dynamic] : &:r1289_4 +# 1289| r1289_6(char *) = Load[dynamic] : &:r1289_4, ~m? +# 1289| mu1289_7(unknown) = InitializeIndirection[dynamic] : &:r1289_6 +# 1290| r1290_1(glval<bool>) = VariableAddress[a#init] : +# 1290| r1290_2(bool) = Load[a#init] : &:r1290_1, ~m? +# 1290| v1290_3(void) = ConditionalBranch : r1290_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 1290| Block 1 +# 1290| r1290_4(glval<String>) = VariableAddress[a] : +#-----| r0_1(glval<unknown>) = FunctionAddress[String] : +#-----| v0_2(void) = Call[String] : func:r0_1, this:r1290_4 +#-----| mu0_3(unknown) = ^CallSideEffect : ~m? +#-----| mu0_4(String) = ^IndirectMayWriteSideEffect[-1] : &:r1290_4 +# 1290| r1290_5(bool) = Constant[1] : +# 1290| mu1290_6(bool) = Store[a#init] : &:r1290_1, r1290_5 +#-----| Goto -> Block 2 + +# 1291| Block 2 +# 1291| r1291_1(glval<bool>) = VariableAddress[b#init] : +# 1291| r1291_2(bool) = Load[b#init] : &:r1291_1, ~m? +# 1291| v1291_3(void) = ConditionalBranch : r1291_2 #-----| False -> Block 3 #-----| True -> Block 4 -# 1244| Block 3 -# 1244| r1244_4(glval<String>) = VariableAddress[b] : -# 1244| r1244_5(glval<unknown>) = FunctionAddress[String] : -# 1244| r1244_6(glval<char[7]>) = StringConstant["static"] : -# 1244| r1244_7(char *) = Convert : r1244_6 -# 1244| v1244_8(void) = Call[String] : func:r1244_5, this:r1244_4, 0:r1244_7 -# 1244| mu1244_9(unknown) = ^CallSideEffect : ~m? -# 1244| v1244_10(void) = ^BufferReadSideEffect[0] : &:r1244_7, ~m? -# 1244| mu1244_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1244_4 -# 1244| r1244_12(bool) = Constant[1] : -# 1244| mu1244_13(bool) = Store[b#init] : &:r1244_1, r1244_12 +# 1291| Block 3 +# 1291| r1291_4(glval<String>) = VariableAddress[b] : +# 1291| r1291_5(glval<unknown>) = FunctionAddress[String] : +# 1291| r1291_6(glval<char[7]>) = StringConstant["static"] : +# 1291| r1291_7(char *) = Convert : r1291_6 +# 1291| v1291_8(void) = Call[String] : func:r1291_5, this:r1291_4, 0:r1291_7 +# 1291| mu1291_9(unknown) = ^CallSideEffect : ~m? +# 1291| v1291_10(void) = ^BufferReadSideEffect[0] : &:r1291_7, ~m? +# 1291| mu1291_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1291_4 +# 1291| r1291_12(bool) = Constant[1] : +# 1291| mu1291_13(bool) = Store[b#init] : &:r1291_1, r1291_12 #-----| Goto -> Block 4 -# 1245| Block 4 -# 1245| r1245_1(glval<bool>) = VariableAddress[c#init] : -# 1245| r1245_2(bool) = Load[c#init] : &:r1245_1, ~m? -# 1245| v1245_3(void) = ConditionalBranch : r1245_2 +# 1292| Block 4 +# 1292| r1292_1(glval<bool>) = VariableAddress[c#init] : +# 1292| r1292_2(bool) = Load[c#init] : &:r1292_1, ~m? +# 1292| v1292_3(void) = ConditionalBranch : r1292_2 #-----| False -> Block 5 #-----| True -> Block 6 -# 1245| Block 5 -# 1245| r1245_4(glval<String>) = VariableAddress[c] : -# 1245| r1245_5(glval<unknown>) = FunctionAddress[String] : -# 1245| r1245_6(glval<char *>) = VariableAddress[dynamic] : -# 1245| r1245_7(char *) = Load[dynamic] : &:r1245_6, ~m? -# 1245| v1245_8(void) = Call[String] : func:r1245_5, this:r1245_4, 0:r1245_7 -# 1245| mu1245_9(unknown) = ^CallSideEffect : ~m? -# 1245| v1245_10(void) = ^BufferReadSideEffect[0] : &:r1245_7, ~m? -# 1245| mu1245_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1245_4 -# 1245| r1245_12(bool) = Constant[1] : -# 1245| mu1245_13(bool) = Store[c#init] : &:r1245_1, r1245_12 +# 1292| Block 5 +# 1292| r1292_4(glval<String>) = VariableAddress[c] : +# 1292| r1292_5(glval<unknown>) = FunctionAddress[String] : +# 1292| r1292_6(glval<char *>) = VariableAddress[dynamic] : +# 1292| r1292_7(char *) = Load[dynamic] : &:r1292_6, ~m? +# 1292| v1292_8(void) = Call[String] : func:r1292_5, this:r1292_4, 0:r1292_7 +# 1292| mu1292_9(unknown) = ^CallSideEffect : ~m? +# 1292| v1292_10(void) = ^BufferReadSideEffect[0] : &:r1292_7, ~m? +# 1292| mu1292_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1292_4 +# 1292| r1292_12(bool) = Constant[1] : +# 1292| mu1292_13(bool) = Store[c#init] : &:r1292_1, r1292_12 #-----| Goto -> Block 6 -# 1246| Block 6 -# 1246| v1246_1(void) = NoOp : -# 1242| v1242_8(void) = ReturnIndirection[dynamic] : &:r1242_6, ~m? -# 1242| v1242_9(void) = ReturnVoid : -# 1242| v1242_10(void) = AliasedUse : ~m? -# 1242| v1242_11(void) = ExitFunction : +# 1293| Block 6 +# 1293| v1293_1(void) = NoOp : +# 1289| v1289_8(void) = ReturnIndirection[dynamic] : &:r1289_6, ~m? +# 1289| v1289_9(void) = ReturnVoid : +# 1289| v1289_10(void) = AliasedUse : ~m? +# 1289| v1289_11(void) = ExitFunction : -# 1253| void test_strings(char*, char*) -# 1253| Block 0 -# 1253| v1253_1(void) = EnterFunction : -# 1253| mu1253_2(unknown) = AliasedDefinition : -# 1253| mu1253_3(unknown) = InitializeNonLocal : -# 1253| r1253_4(glval<char *>) = VariableAddress[s1] : -# 1253| mu1253_5(char *) = InitializeParameter[s1] : &:r1253_4 -# 1253| r1253_6(char *) = Load[s1] : &:r1253_4, ~m? -# 1253| mu1253_7(unknown) = InitializeIndirection[s1] : &:r1253_6 -# 1253| r1253_8(glval<char *>) = VariableAddress[s2] : -# 1253| mu1253_9(char *) = InitializeParameter[s2] : &:r1253_8 -# 1253| r1253_10(char *) = Load[s2] : &:r1253_8, ~m? -# 1253| mu1253_11(unknown) = InitializeIndirection[s2] : &:r1253_10 -# 1254| r1254_1(glval<char[1024]>) = VariableAddress[buffer] : -# 1254| mu1254_2(char[1024]) = Uninitialized[buffer] : &:r1254_1 -# 1254| r1254_3(int) = Constant[0] : -# 1254| r1254_4(glval<char>) = PointerAdd[1] : r1254_1, r1254_3 -# 1254| r1254_5(char) = Constant[0] : -# 1254| mu1254_6(char) = Store[?] : &:r1254_4, r1254_5 -# 1254| r1254_7(int) = Constant[1] : -# 1254| r1254_8(glval<char>) = PointerAdd[1] : r1254_1, r1254_7 -# 1254| r1254_9(unknown[1023]) = Constant[0] : -# 1254| mu1254_10(unknown[1023]) = Store[?] : &:r1254_8, r1254_9 -# 1256| r1256_1(glval<unknown>) = FunctionAddress[strcpy] : -# 1256| r1256_2(glval<char[1024]>) = VariableAddress[buffer] : -# 1256| r1256_3(char *) = Convert : r1256_2 -# 1256| r1256_4(glval<char *>) = VariableAddress[s1] : -# 1256| r1256_5(char *) = Load[s1] : &:r1256_4, ~m? -# 1256| r1256_6(char *) = Convert : r1256_5 -# 1256| r1256_7(char *) = Call[strcpy] : func:r1256_1, 0:r1256_3, 1:r1256_6 -# 1256| v1256_8(void) = ^BufferReadSideEffect[1] : &:r1256_6, ~m? -# 1256| mu1256_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1256_3 -# 1257| r1257_1(glval<unknown>) = FunctionAddress[strcat] : -# 1257| r1257_2(glval<char[1024]>) = VariableAddress[buffer] : -# 1257| r1257_3(char *) = Convert : r1257_2 -# 1257| r1257_4(glval<char *>) = VariableAddress[s2] : -# 1257| r1257_5(char *) = Load[s2] : &:r1257_4, ~m? -# 1257| r1257_6(char *) = Convert : r1257_5 -# 1257| r1257_7(char *) = Call[strcat] : func:r1257_1, 0:r1257_3, 1:r1257_6 -# 1257| v1257_8(void) = ^BufferReadSideEffect[0] : &:r1257_3, ~m? -# 1257| v1257_9(void) = ^BufferReadSideEffect[1] : &:r1257_6, ~m? -# 1257| mu1257_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1257_3 -# 1258| v1258_1(void) = NoOp : -# 1253| v1253_12(void) = ReturnIndirection[s1] : &:r1253_6, ~m? -# 1253| v1253_13(void) = ReturnIndirection[s2] : &:r1253_10, ~m? -# 1253| v1253_14(void) = ReturnVoid : -# 1253| v1253_15(void) = AliasedUse : ~m? -# 1253| v1253_16(void) = ExitFunction : +# 1300| void test_strings(char*, char*) +# 1300| Block 0 +# 1300| v1300_1(void) = EnterFunction : +# 1300| mu1300_2(unknown) = AliasedDefinition : +# 1300| mu1300_3(unknown) = InitializeNonLocal : +# 1300| r1300_4(glval<char *>) = VariableAddress[s1] : +# 1300| mu1300_5(char *) = InitializeParameter[s1] : &:r1300_4 +# 1300| r1300_6(char *) = Load[s1] : &:r1300_4, ~m? +# 1300| mu1300_7(unknown) = InitializeIndirection[s1] : &:r1300_6 +# 1300| r1300_8(glval<char *>) = VariableAddress[s2] : +# 1300| mu1300_9(char *) = InitializeParameter[s2] : &:r1300_8 +# 1300| r1300_10(char *) = Load[s2] : &:r1300_8, ~m? +# 1300| mu1300_11(unknown) = InitializeIndirection[s2] : &:r1300_10 +# 1301| r1301_1(glval<char[1024]>) = VariableAddress[buffer] : +# 1301| mu1301_2(char[1024]) = Uninitialized[buffer] : &:r1301_1 +# 1301| r1301_3(int) = Constant[0] : +# 1301| r1301_4(glval<char>) = PointerAdd[1] : r1301_1, r1301_3 +# 1301| r1301_5(char) = Constant[0] : +# 1301| mu1301_6(char) = Store[?] : &:r1301_4, r1301_5 +# 1301| r1301_7(int) = Constant[1] : +# 1301| r1301_8(glval<char>) = PointerAdd[1] : r1301_1, r1301_7 +# 1301| r1301_9(unknown[1023]) = Constant[0] : +# 1301| mu1301_10(unknown[1023]) = Store[?] : &:r1301_8, r1301_9 +# 1303| r1303_1(glval<unknown>) = FunctionAddress[strcpy] : +# 1303| r1303_2(glval<char[1024]>) = VariableAddress[buffer] : +# 1303| r1303_3(char *) = Convert : r1303_2 +# 1303| r1303_4(glval<char *>) = VariableAddress[s1] : +# 1303| r1303_5(char *) = Load[s1] : &:r1303_4, ~m? +# 1303| r1303_6(char *) = Convert : r1303_5 +# 1303| r1303_7(char *) = Call[strcpy] : func:r1303_1, 0:r1303_3, 1:r1303_6 +# 1303| v1303_8(void) = ^BufferReadSideEffect[1] : &:r1303_6, ~m? +# 1303| mu1303_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1303_3 +# 1304| r1304_1(glval<unknown>) = FunctionAddress[strcat] : +# 1304| r1304_2(glval<char[1024]>) = VariableAddress[buffer] : +# 1304| r1304_3(char *) = Convert : r1304_2 +# 1304| r1304_4(glval<char *>) = VariableAddress[s2] : +# 1304| r1304_5(char *) = Load[s2] : &:r1304_4, ~m? +# 1304| r1304_6(char *) = Convert : r1304_5 +# 1304| r1304_7(char *) = Call[strcat] : func:r1304_1, 0:r1304_3, 1:r1304_6 +# 1304| v1304_8(void) = ^BufferReadSideEffect[0] : &:r1304_3, ~m? +# 1304| v1304_9(void) = ^BufferReadSideEffect[1] : &:r1304_6, ~m? +# 1304| mu1304_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1304_3 +# 1305| v1305_1(void) = NoOp : +# 1300| v1300_12(void) = ReturnIndirection[s1] : &:r1300_6, ~m? +# 1300| v1300_13(void) = ReturnIndirection[s2] : &:r1300_10, ~m? +# 1300| v1300_14(void) = ReturnVoid : +# 1300| v1300_15(void) = AliasedUse : ~m? +# 1300| v1300_16(void) = ExitFunction : -# 1263| void A::static_member(A*, int) -# 1263| Block 0 -# 1263| v1263_1(void) = EnterFunction : -# 1263| mu1263_2(unknown) = AliasedDefinition : -# 1263| mu1263_3(unknown) = InitializeNonLocal : -# 1263| r1263_4(glval<A *>) = VariableAddress[a] : -# 1263| mu1263_5(A *) = InitializeParameter[a] : &:r1263_4 -# 1263| r1263_6(A *) = Load[a] : &:r1263_4, ~m? -# 1263| mu1263_7(unknown) = InitializeIndirection[a] : &:r1263_6 -# 1263| r1263_8(glval<int>) = VariableAddress[x] : -# 1263| mu1263_9(int) = InitializeParameter[x] : &:r1263_8 -# 1264| r1264_1(glval<int>) = VariableAddress[x] : -# 1264| r1264_2(int) = Load[x] : &:r1264_1, ~m? -# 1264| r1264_3(glval<A *>) = VariableAddress[a] : -# 1264| r1264_4(A *) = Load[a] : &:r1264_3, ~m? -# 1264| r1264_5(glval<int>) = FieldAddress[member] : r1264_4 -# 1264| mu1264_6(int) = Store[?] : &:r1264_5, r1264_2 -# 1265| v1265_1(void) = NoOp : -# 1263| v1263_10(void) = ReturnIndirection[a] : &:r1263_6, ~m? -# 1263| v1263_11(void) = ReturnVoid : -# 1263| v1263_12(void) = AliasedUse : ~m? -# 1263| v1263_13(void) = ExitFunction : +# 1310| void A::static_member(A*, int) +# 1310| Block 0 +# 1310| v1310_1(void) = EnterFunction : +# 1310| mu1310_2(unknown) = AliasedDefinition : +# 1310| mu1310_3(unknown) = InitializeNonLocal : +# 1310| r1310_4(glval<A *>) = VariableAddress[a] : +# 1310| mu1310_5(A *) = InitializeParameter[a] : &:r1310_4 +# 1310| r1310_6(A *) = Load[a] : &:r1310_4, ~m? +# 1310| mu1310_7(unknown) = InitializeIndirection[a] : &:r1310_6 +# 1310| r1310_8(glval<int>) = VariableAddress[x] : +# 1310| mu1310_9(int) = InitializeParameter[x] : &:r1310_8 +# 1311| r1311_1(glval<int>) = VariableAddress[x] : +# 1311| r1311_2(int) = Load[x] : &:r1311_1, ~m? +# 1311| r1311_3(glval<A *>) = VariableAddress[a] : +# 1311| r1311_4(A *) = Load[a] : &:r1311_3, ~m? +# 1311| r1311_5(glval<int>) = FieldAddress[member] : r1311_4 +# 1311| mu1311_6(int) = Store[?] : &:r1311_5, r1311_2 +# 1312| v1312_1(void) = NoOp : +# 1310| v1310_10(void) = ReturnIndirection[a] : &:r1310_6, ~m? +# 1310| v1310_11(void) = ReturnVoid : +# 1310| v1310_12(void) = AliasedUse : ~m? +# 1310| v1310_13(void) = ExitFunction : -# 1272| void test_static_member_functions(int, A*) -# 1272| Block 0 -# 1272| v1272_1(void) = EnterFunction : -# 1272| mu1272_2(unknown) = AliasedDefinition : -# 1272| mu1272_3(unknown) = InitializeNonLocal : -# 1272| r1272_4(glval<int>) = VariableAddress[int_arg] : -# 1272| mu1272_5(int) = InitializeParameter[int_arg] : &:r1272_4 -# 1272| r1272_6(glval<A *>) = VariableAddress[a_arg] : -# 1272| mu1272_7(A *) = InitializeParameter[a_arg] : &:r1272_6 -# 1272| r1272_8(A *) = Load[a_arg] : &:r1272_6, ~m? -# 1272| mu1272_9(unknown) = InitializeIndirection[a_arg] : &:r1272_8 -# 1273| r1273_1(glval<C>) = VariableAddress[c] : -# 1273| mu1273_2(C) = Uninitialized[c] : &:r1273_1 -# 1273| r1273_3(glval<unknown>) = FunctionAddress[C] : -# 1273| v1273_4(void) = Call[C] : func:r1273_3, this:r1273_1 -# 1273| mu1273_5(unknown) = ^CallSideEffect : ~m? -# 1273| mu1273_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1273_1 -# 1274| r1274_1(glval<C>) = VariableAddress[c] : -# 1274| r1274_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] : -# 1274| r1274_3(int) = Constant[10] : -# 1274| r1274_4(int) = Call[StaticMemberFunction] : func:r1274_2, 0:r1274_3 -# 1274| mu1274_5(unknown) = ^CallSideEffect : ~m? -# 1275| r1275_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] : -# 1275| r1275_2(int) = Constant[10] : -# 1275| r1275_3(int) = Call[StaticMemberFunction] : func:r1275_1, 0:r1275_2 -# 1275| mu1275_4(unknown) = ^CallSideEffect : ~m? -# 1277| r1277_1(glval<A>) = VariableAddress[a] : -# 1277| mu1277_2(A) = Uninitialized[a] : &:r1277_1 -# 1278| r1278_1(glval<A>) = VariableAddress[a] : -# 1278| r1278_2(glval<unknown>) = FunctionAddress[static_member] : -# 1278| r1278_3(glval<A>) = VariableAddress[a] : -# 1278| r1278_4(A *) = CopyValue : r1278_3 -# 1278| r1278_5(glval<int>) = VariableAddress[int_arg] : -# 1278| r1278_6(int) = Load[int_arg] : &:r1278_5, ~m? -# 1278| v1278_7(void) = Call[static_member] : func:r1278_2, 0:r1278_4, 1:r1278_6 -# 1278| mu1278_8(unknown) = ^CallSideEffect : ~m? -# 1278| v1278_9(void) = ^BufferReadSideEffect[0] : &:r1278_4, ~m? -# 1278| mu1278_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1278_4 -# 1279| r1279_1(glval<unknown>) = FunctionAddress[static_member] : -# 1279| r1279_2(glval<A>) = VariableAddress[a] : -# 1279| r1279_3(A *) = CopyValue : r1279_2 -# 1279| r1279_4(glval<int>) = VariableAddress[int_arg] : -# 1279| r1279_5(int) = Load[int_arg] : &:r1279_4, ~m? -# 1279| v1279_6(void) = Call[static_member] : func:r1279_1, 0:r1279_3, 1:r1279_5 -# 1279| mu1279_7(unknown) = ^CallSideEffect : ~m? -# 1279| v1279_8(void) = ^BufferReadSideEffect[0] : &:r1279_3, ~m? -# 1279| mu1279_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1279_3 -# 1281| r1281_1(glval<A>) = VariableAddress[a] : -# 1281| r1281_2(A *) = CopyValue : r1281_1 -# 1281| r1281_3(glval<unknown>) = FunctionAddress[static_member] : -# 1281| r1281_4(glval<A *>) = VariableAddress[a_arg] : -# 1281| r1281_5(A *) = Load[a_arg] : &:r1281_4, ~m? -# 1281| r1281_6(glval<int>) = VariableAddress[int_arg] : -# 1281| r1281_7(int) = Load[int_arg] : &:r1281_6, ~m? -# 1281| r1281_8(int) = Constant[2] : -# 1281| r1281_9(int) = Add : r1281_7, r1281_8 -# 1281| v1281_10(void) = Call[static_member] : func:r1281_3, 0:r1281_5, 1:r1281_9 -# 1281| mu1281_11(unknown) = ^CallSideEffect : ~m? -# 1281| v1281_12(void) = ^BufferReadSideEffect[0] : &:r1281_5, ~m? -# 1281| mu1281_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r1281_5 -# 1282| r1282_1(glval<A *>) = VariableAddress[a_arg] : -# 1282| r1282_2(A *) = Load[a_arg] : &:r1282_1, ~m? -# 1282| r1282_3(glval<A>) = CopyValue : r1282_2 -# 1282| r1282_4(glval<unknown>) = FunctionAddress[static_member] : -# 1282| r1282_5(glval<A>) = VariableAddress[a] : -# 1282| r1282_6(A *) = CopyValue : r1282_5 -# 1282| r1282_7(int) = Constant[99] : -# 1282| v1282_8(void) = Call[static_member] : func:r1282_4, 0:r1282_6, 1:r1282_7 -# 1282| mu1282_9(unknown) = ^CallSideEffect : ~m? -# 1282| v1282_10(void) = ^BufferReadSideEffect[0] : &:r1282_6, ~m? -# 1282| mu1282_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1282_6 -# 1283| r1283_1(glval<A *>) = VariableAddress[a_arg] : -# 1283| r1283_2(A *) = Load[a_arg] : &:r1283_1, ~m? -# 1283| r1283_3(glval<unknown>) = FunctionAddress[static_member] : -# 1283| r1283_4(glval<A *>) = VariableAddress[a_arg] : -# 1283| r1283_5(A *) = Load[a_arg] : &:r1283_4, ~m? -# 1283| r1283_6(int) = Constant[-1] : -# 1283| v1283_7(void) = Call[static_member] : func:r1283_3, 0:r1283_5, 1:r1283_6 -# 1283| mu1283_8(unknown) = ^CallSideEffect : ~m? -# 1283| v1283_9(void) = ^BufferReadSideEffect[0] : &:r1283_5, ~m? -# 1283| mu1283_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1283_5 -# 1285| r1285_1(glval<A>) = VariableAddress[a] : -# 1285| r1285_2(glval<unknown>) = FunctionAddress[static_member_without_def] : -# 1285| v1285_3(void) = Call[static_member_without_def] : func:r1285_2 -# 1285| mu1285_4(unknown) = ^CallSideEffect : ~m? -# 1286| r1286_1(glval<unknown>) = FunctionAddress[static_member_without_def] : -# 1286| v1286_2(void) = Call[static_member_without_def] : func:r1286_1 -# 1286| mu1286_3(unknown) = ^CallSideEffect : ~m? -# 1288| r1288_1(glval<unknown>) = FunctionAddress[getAnInstanceOfA] : -# 1288| r1288_2(A *) = Call[getAnInstanceOfA] : func:r1288_1 -# 1288| mu1288_3(unknown) = ^CallSideEffect : ~m? -# 1288| r1288_4(glval<unknown>) = FunctionAddress[static_member_without_def] : -# 1288| v1288_5(void) = Call[static_member_without_def] : func:r1288_4 -# 1288| mu1288_6(unknown) = ^CallSideEffect : ~m? -# 1289| v1289_1(void) = NoOp : -# 1289| r1289_2(glval<C>) = VariableAddress[c] : -# 1289| r1289_3(glval<unknown>) = FunctionAddress[~C] : -# 1289| v1289_4(void) = Call[~C] : func:r1289_3, this:r1289_2 -# 1289| mu1289_5(unknown) = ^CallSideEffect : ~m? -# 1289| v1289_6(void) = ^IndirectReadSideEffect[-1] : &:r1289_2, ~m? -# 1289| mu1289_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1289_2 -# 1272| v1272_10(void) = ReturnIndirection[a_arg] : &:r1272_8, ~m? -# 1272| v1272_11(void) = ReturnVoid : -# 1272| v1272_12(void) = AliasedUse : ~m? -# 1272| v1272_13(void) = ExitFunction : +# 1319| void test_static_member_functions(int, A*) +# 1319| Block 0 +# 1319| v1319_1(void) = EnterFunction : +# 1319| mu1319_2(unknown) = AliasedDefinition : +# 1319| mu1319_3(unknown) = InitializeNonLocal : +# 1319| r1319_4(glval<int>) = VariableAddress[int_arg] : +# 1319| mu1319_5(int) = InitializeParameter[int_arg] : &:r1319_4 +# 1319| r1319_6(glval<A *>) = VariableAddress[a_arg] : +# 1319| mu1319_7(A *) = InitializeParameter[a_arg] : &:r1319_6 +# 1319| r1319_8(A *) = Load[a_arg] : &:r1319_6, ~m? +# 1319| mu1319_9(unknown) = InitializeIndirection[a_arg] : &:r1319_8 +# 1320| r1320_1(glval<C>) = VariableAddress[c] : +# 1320| mu1320_2(C) = Uninitialized[c] : &:r1320_1 +# 1320| r1320_3(glval<unknown>) = FunctionAddress[C] : +# 1320| v1320_4(void) = Call[C] : func:r1320_3, this:r1320_1 +# 1320| mu1320_5(unknown) = ^CallSideEffect : ~m? +# 1320| mu1320_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1320_1 +# 1321| r1321_1(glval<C>) = VariableAddress[c] : +# 1321| r1321_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] : +# 1321| r1321_3(int) = Constant[10] : +# 1321| r1321_4(int) = Call[StaticMemberFunction] : func:r1321_2, 0:r1321_3 +# 1321| mu1321_5(unknown) = ^CallSideEffect : ~m? +# 1322| r1322_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] : +# 1322| r1322_2(int) = Constant[10] : +# 1322| r1322_3(int) = Call[StaticMemberFunction] : func:r1322_1, 0:r1322_2 +# 1322| mu1322_4(unknown) = ^CallSideEffect : ~m? +# 1324| r1324_1(glval<A>) = VariableAddress[a] : +# 1324| mu1324_2(A) = Uninitialized[a] : &:r1324_1 +# 1325| r1325_1(glval<A>) = VariableAddress[a] : +# 1325| r1325_2(glval<unknown>) = FunctionAddress[static_member] : +# 1325| r1325_3(glval<A>) = VariableAddress[a] : +# 1325| r1325_4(A *) = CopyValue : r1325_3 +# 1325| r1325_5(glval<int>) = VariableAddress[int_arg] : +# 1325| r1325_6(int) = Load[int_arg] : &:r1325_5, ~m? +# 1325| v1325_7(void) = Call[static_member] : func:r1325_2, 0:r1325_4, 1:r1325_6 +# 1325| mu1325_8(unknown) = ^CallSideEffect : ~m? +# 1325| v1325_9(void) = ^BufferReadSideEffect[0] : &:r1325_4, ~m? +# 1325| mu1325_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1325_4 +# 1326| r1326_1(glval<unknown>) = FunctionAddress[static_member] : +# 1326| r1326_2(glval<A>) = VariableAddress[a] : +# 1326| r1326_3(A *) = CopyValue : r1326_2 +# 1326| r1326_4(glval<int>) = VariableAddress[int_arg] : +# 1326| r1326_5(int) = Load[int_arg] : &:r1326_4, ~m? +# 1326| v1326_6(void) = Call[static_member] : func:r1326_1, 0:r1326_3, 1:r1326_5 +# 1326| mu1326_7(unknown) = ^CallSideEffect : ~m? +# 1326| v1326_8(void) = ^BufferReadSideEffect[0] : &:r1326_3, ~m? +# 1326| mu1326_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1326_3 +# 1328| r1328_1(glval<A>) = VariableAddress[a] : +# 1328| r1328_2(A *) = CopyValue : r1328_1 +# 1328| r1328_3(glval<unknown>) = FunctionAddress[static_member] : +# 1328| r1328_4(glval<A *>) = VariableAddress[a_arg] : +# 1328| r1328_5(A *) = Load[a_arg] : &:r1328_4, ~m? +# 1328| r1328_6(glval<int>) = VariableAddress[int_arg] : +# 1328| r1328_7(int) = Load[int_arg] : &:r1328_6, ~m? +# 1328| r1328_8(int) = Constant[2] : +# 1328| r1328_9(int) = Add : r1328_7, r1328_8 +# 1328| v1328_10(void) = Call[static_member] : func:r1328_3, 0:r1328_5, 1:r1328_9 +# 1328| mu1328_11(unknown) = ^CallSideEffect : ~m? +# 1328| v1328_12(void) = ^BufferReadSideEffect[0] : &:r1328_5, ~m? +# 1328| mu1328_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r1328_5 +# 1329| r1329_1(glval<A *>) = VariableAddress[a_arg] : +# 1329| r1329_2(A *) = Load[a_arg] : &:r1329_1, ~m? +# 1329| r1329_3(glval<A>) = CopyValue : r1329_2 +# 1329| r1329_4(glval<unknown>) = FunctionAddress[static_member] : +# 1329| r1329_5(glval<A>) = VariableAddress[a] : +# 1329| r1329_6(A *) = CopyValue : r1329_5 +# 1329| r1329_7(int) = Constant[99] : +# 1329| v1329_8(void) = Call[static_member] : func:r1329_4, 0:r1329_6, 1:r1329_7 +# 1329| mu1329_9(unknown) = ^CallSideEffect : ~m? +# 1329| v1329_10(void) = ^BufferReadSideEffect[0] : &:r1329_6, ~m? +# 1329| mu1329_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1329_6 +# 1330| r1330_1(glval<A *>) = VariableAddress[a_arg] : +# 1330| r1330_2(A *) = Load[a_arg] : &:r1330_1, ~m? +# 1330| r1330_3(glval<unknown>) = FunctionAddress[static_member] : +# 1330| r1330_4(glval<A *>) = VariableAddress[a_arg] : +# 1330| r1330_5(A *) = Load[a_arg] : &:r1330_4, ~m? +# 1330| r1330_6(int) = Constant[-1] : +# 1330| v1330_7(void) = Call[static_member] : func:r1330_3, 0:r1330_5, 1:r1330_6 +# 1330| mu1330_8(unknown) = ^CallSideEffect : ~m? +# 1330| v1330_9(void) = ^BufferReadSideEffect[0] : &:r1330_5, ~m? +# 1330| mu1330_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1330_5 +# 1332| r1332_1(glval<A>) = VariableAddress[a] : +# 1332| r1332_2(glval<unknown>) = FunctionAddress[static_member_without_def] : +# 1332| v1332_3(void) = Call[static_member_without_def] : func:r1332_2 +# 1332| mu1332_4(unknown) = ^CallSideEffect : ~m? +# 1333| r1333_1(glval<unknown>) = FunctionAddress[static_member_without_def] : +# 1333| v1333_2(void) = Call[static_member_without_def] : func:r1333_1 +# 1333| mu1333_3(unknown) = ^CallSideEffect : ~m? +# 1335| r1335_1(glval<unknown>) = FunctionAddress[getAnInstanceOfA] : +# 1335| r1335_2(A *) = Call[getAnInstanceOfA] : func:r1335_1 +# 1335| mu1335_3(unknown) = ^CallSideEffect : ~m? +# 1335| r1335_4(glval<unknown>) = FunctionAddress[static_member_without_def] : +# 1335| v1335_5(void) = Call[static_member_without_def] : func:r1335_4 +# 1335| mu1335_6(unknown) = ^CallSideEffect : ~m? +# 1336| v1336_1(void) = NoOp : +# 1336| r1336_2(glval<C>) = VariableAddress[c] : +# 1336| r1336_3(glval<unknown>) = FunctionAddress[~C] : +# 1336| v1336_4(void) = Call[~C] : func:r1336_3, this:r1336_2 +# 1336| mu1336_5(unknown) = ^CallSideEffect : ~m? +# 1336| v1336_6(void) = ^IndirectReadSideEffect[-1] : &:r1336_2, ~m? +# 1336| mu1336_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1336_2 +# 1319| v1319_10(void) = ReturnIndirection[a_arg] : &:r1319_8, ~m? +# 1319| v1319_11(void) = ReturnVoid : +# 1319| v1319_12(void) = AliasedUse : ~m? +# 1319| v1319_13(void) = ExitFunction : -# 1291| int missingReturnValue(bool, int) -# 1291| Block 0 -# 1291| v1291_1(void) = EnterFunction : -# 1291| mu1291_2(unknown) = AliasedDefinition : -# 1291| mu1291_3(unknown) = InitializeNonLocal : -# 1291| r1291_4(glval<bool>) = VariableAddress[b] : -# 1291| mu1291_5(bool) = InitializeParameter[b] : &:r1291_4 -# 1291| r1291_6(glval<int>) = VariableAddress[x] : -# 1291| mu1291_7(int) = InitializeParameter[x] : &:r1291_6 -# 1292| r1292_1(glval<bool>) = VariableAddress[b] : -# 1292| r1292_2(bool) = Load[b] : &:r1292_1, ~m? -# 1292| v1292_3(void) = ConditionalBranch : r1292_2 +# 1338| int missingReturnValue(bool, int) +# 1338| Block 0 +# 1338| v1338_1(void) = EnterFunction : +# 1338| mu1338_2(unknown) = AliasedDefinition : +# 1338| mu1338_3(unknown) = InitializeNonLocal : +# 1338| r1338_4(glval<bool>) = VariableAddress[b] : +# 1338| mu1338_5(bool) = InitializeParameter[b] : &:r1338_4 +# 1338| r1338_6(glval<int>) = VariableAddress[x] : +# 1338| mu1338_7(int) = InitializeParameter[x] : &:r1338_6 +# 1339| r1339_1(glval<bool>) = VariableAddress[b] : +# 1339| r1339_2(bool) = Load[b] : &:r1339_1, ~m? +# 1339| v1339_3(void) = ConditionalBranch : r1339_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1291| Block 1 -# 1291| r1291_8(glval<int>) = VariableAddress[#return] : -# 1291| v1291_9(void) = ReturnValue : &:r1291_8, ~m? -# 1291| v1291_10(void) = AliasedUse : ~m? -# 1291| v1291_11(void) = ExitFunction : +# 1338| Block 1 +# 1338| r1338_8(glval<int>) = VariableAddress[#return] : +# 1338| v1338_9(void) = ReturnValue : &:r1338_8, ~m? +# 1338| v1338_10(void) = AliasedUse : ~m? +# 1338| v1338_11(void) = ExitFunction : -# 1293| Block 2 -# 1293| r1293_1(glval<int>) = VariableAddress[#return] : -# 1293| r1293_2(glval<int>) = VariableAddress[x] : -# 1293| r1293_3(int) = Load[x] : &:r1293_2, ~m? -# 1293| mu1293_4(int) = Store[#return] : &:r1293_1, r1293_3 +# 1340| Block 2 +# 1340| r1340_1(glval<int>) = VariableAddress[#return] : +# 1340| r1340_2(glval<int>) = VariableAddress[x] : +# 1340| r1340_3(int) = Load[x] : &:r1340_2, ~m? +# 1340| mu1340_4(int) = Store[#return] : &:r1340_1, r1340_3 #-----| Goto -> Block 1 -# 1295| Block 3 -# 1295| r1295_1(glval<int>) = VariableAddress[#return] : -# 1295| mu1295_2(int) = Uninitialized[#return] : &:r1295_1 +# 1342| Block 3 +# 1342| r1342_1(glval<int>) = VariableAddress[#return] : +# 1342| mu1342_2(int) = Uninitialized[#return] : &:r1342_1 #-----| Goto -> Block 1 -# 1297| void returnVoid(int, int) -# 1297| Block 0 -# 1297| v1297_1(void) = EnterFunction : -# 1297| mu1297_2(unknown) = AliasedDefinition : -# 1297| mu1297_3(unknown) = InitializeNonLocal : -# 1297| r1297_4(glval<int>) = VariableAddress[x] : -# 1297| mu1297_5(int) = InitializeParameter[x] : &:r1297_4 -# 1297| r1297_6(glval<int>) = VariableAddress[y] : -# 1297| mu1297_7(int) = InitializeParameter[y] : &:r1297_6 -# 1298| r1298_1(glval<unknown>) = FunctionAddress[IntegerOps] : -# 1298| r1298_2(glval<int>) = VariableAddress[x] : -# 1298| r1298_3(int) = Load[x] : &:r1298_2, ~m? -# 1298| r1298_4(glval<int>) = VariableAddress[y] : -# 1298| r1298_5(int) = Load[y] : &:r1298_4, ~m? -# 1298| v1298_6(void) = Call[IntegerOps] : func:r1298_1, 0:r1298_3, 1:r1298_5 -# 1298| mu1298_7(unknown) = ^CallSideEffect : ~m? -# 1298| v1298_8(void) = NoOp : -# 1297| v1297_8(void) = ReturnVoid : -# 1297| v1297_9(void) = AliasedUse : ~m? -# 1297| v1297_10(void) = ExitFunction : +# 1344| void returnVoid(int, int) +# 1344| Block 0 +# 1344| v1344_1(void) = EnterFunction : +# 1344| mu1344_2(unknown) = AliasedDefinition : +# 1344| mu1344_3(unknown) = InitializeNonLocal : +# 1344| r1344_4(glval<int>) = VariableAddress[x] : +# 1344| mu1344_5(int) = InitializeParameter[x] : &:r1344_4 +# 1344| r1344_6(glval<int>) = VariableAddress[y] : +# 1344| mu1344_7(int) = InitializeParameter[y] : &:r1344_6 +# 1345| r1345_1(glval<unknown>) = FunctionAddress[IntegerOps] : +# 1345| r1345_2(glval<int>) = VariableAddress[x] : +# 1345| r1345_3(int) = Load[x] : &:r1345_2, ~m? +# 1345| r1345_4(glval<int>) = VariableAddress[y] : +# 1345| r1345_5(int) = Load[y] : &:r1345_4, ~m? +# 1345| v1345_6(void) = Call[IntegerOps] : func:r1345_1, 0:r1345_3, 1:r1345_5 +# 1345| mu1345_7(unknown) = ^CallSideEffect : ~m? +# 1345| v1345_8(void) = NoOp : +# 1344| v1344_8(void) = ReturnVoid : +# 1344| v1344_9(void) = AliasedUse : ~m? +# 1344| v1344_10(void) = ExitFunction : -# 1301| void gccBinaryConditional(bool, int, long) -# 1301| Block 0 -# 1301| v1301_1(void) = EnterFunction : -# 1301| mu1301_2(unknown) = AliasedDefinition : -# 1301| mu1301_3(unknown) = InitializeNonLocal : -# 1301| r1301_4(glval<bool>) = VariableAddress[b] : -# 1301| mu1301_5(bool) = InitializeParameter[b] : &:r1301_4 -# 1301| r1301_6(glval<int>) = VariableAddress[x] : -# 1301| mu1301_7(int) = InitializeParameter[x] : &:r1301_6 -# 1301| r1301_8(glval<long>) = VariableAddress[y] : -# 1301| mu1301_9(long) = InitializeParameter[y] : &:r1301_8 -# 1302| r1302_1(glval<int>) = VariableAddress[z] : -# 1302| r1302_2(glval<int>) = VariableAddress[x] : -# 1302| r1302_3(int) = Load[x] : &:r1302_2, ~m? -# 1302| mu1302_4(int) = Store[z] : &:r1302_1, r1302_3 -# 1303| r1303_1(glval<bool>) = VariableAddress[b] : -# 1303| r1303_2(bool) = Load[b] : &:r1303_1, ~m? -# 1303| v1303_3(void) = ConditionalBranch : r1303_2 +# 1348| void gccBinaryConditional(bool, int, long) +# 1348| Block 0 +# 1348| v1348_1(void) = EnterFunction : +# 1348| mu1348_2(unknown) = AliasedDefinition : +# 1348| mu1348_3(unknown) = InitializeNonLocal : +# 1348| r1348_4(glval<bool>) = VariableAddress[b] : +# 1348| mu1348_5(bool) = InitializeParameter[b] : &:r1348_4 +# 1348| r1348_6(glval<int>) = VariableAddress[x] : +# 1348| mu1348_7(int) = InitializeParameter[x] : &:r1348_6 +# 1348| r1348_8(glval<long>) = VariableAddress[y] : +# 1348| mu1348_9(long) = InitializeParameter[y] : &:r1348_8 +# 1349| r1349_1(glval<int>) = VariableAddress[z] : +# 1349| r1349_2(glval<int>) = VariableAddress[x] : +# 1349| r1349_3(int) = Load[x] : &:r1349_2, ~m? +# 1349| mu1349_4(int) = Store[z] : &:r1349_1, r1349_3 +# 1350| r1350_1(glval<bool>) = VariableAddress[b] : +# 1350| r1350_2(bool) = Load[b] : &:r1350_1, ~m? +# 1350| v1350_3(void) = ConditionalBranch : r1350_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1303| Block 1 -# 1303| r1303_4(glval<int>) = VariableAddress[#temp1303:9] : -# 1303| r1303_5(int) = Load[#temp1303:9] : &:r1303_4, ~m? -# 1303| r1303_6(glval<int>) = VariableAddress[z] : -# 1303| mu1303_7(int) = Store[z] : &:r1303_6, r1303_5 -# 1304| r1304_1(glval<bool>) = VariableAddress[b] : -# 1304| r1304_2(bool) = Load[b] : &:r1304_1, ~m? -# 1304| v1304_3(void) = ConditionalBranch : r1304_2 +# 1350| Block 1 +# 1350| r1350_4(glval<int>) = VariableAddress[#temp1350:9] : +# 1350| r1350_5(int) = Load[#temp1350:9] : &:r1350_4, ~m? +# 1350| r1350_6(glval<int>) = VariableAddress[z] : +# 1350| mu1350_7(int) = Store[z] : &:r1350_6, r1350_5 +# 1351| r1351_1(glval<bool>) = VariableAddress[b] : +# 1351| r1351_2(bool) = Load[b] : &:r1351_1, ~m? +# 1351| v1351_3(void) = ConditionalBranch : r1351_2 #-----| False -> Block 6 #-----| True -> Block 5 -# 1303| Block 2 -# 1303| r1303_8(glval<int>) = VariableAddress[#temp1303:9] : -# 1303| mu1303_9(int) = Store[#temp1303:9] : &:r1303_8, r1303_2 +# 1350| Block 2 +# 1350| r1350_8(glval<int>) = VariableAddress[#temp1350:9] : +# 1350| mu1350_9(int) = Store[#temp1350:9] : &:r1350_8, r1350_2 #-----| Goto -> Block 1 -# 1303| Block 3 -# 1303| r1303_10(glval<int>) = VariableAddress[x] : -# 1303| r1303_11(int) = Load[x] : &:r1303_10, ~m? -# 1303| r1303_12(glval<int>) = VariableAddress[#temp1303:9] : -# 1303| mu1303_13(int) = Store[#temp1303:9] : &:r1303_12, r1303_11 +# 1350| Block 3 +# 1350| r1350_10(glval<int>) = VariableAddress[x] : +# 1350| r1350_11(int) = Load[x] : &:r1350_10, ~m? +# 1350| r1350_12(glval<int>) = VariableAddress[#temp1350:9] : +# 1350| mu1350_13(int) = Store[#temp1350:9] : &:r1350_12, r1350_11 #-----| Goto -> Block 1 -# 1304| Block 4 -# 1304| r1304_4(glval<long>) = VariableAddress[#temp1304:9] : -# 1304| r1304_5(long) = Load[#temp1304:9] : &:r1304_4, ~m? -# 1304| r1304_6(int) = Convert : r1304_5 -# 1304| r1304_7(glval<int>) = VariableAddress[z] : -# 1304| mu1304_8(int) = Store[z] : &:r1304_7, r1304_6 -# 1305| r1305_1(glval<int>) = VariableAddress[x] : -# 1305| r1305_2(int) = Load[x] : &:r1305_1, ~m? -# 1305| r1305_3(int) = Constant[0] : -# 1305| r1305_4(bool) = CompareNE : r1305_2, r1305_3 -# 1305| v1305_5(void) = ConditionalBranch : r1305_4 +# 1351| Block 4 +# 1351| r1351_4(glval<long>) = VariableAddress[#temp1351:9] : +# 1351| r1351_5(long) = Load[#temp1351:9] : &:r1351_4, ~m? +# 1351| r1351_6(int) = Convert : r1351_5 +# 1351| r1351_7(glval<int>) = VariableAddress[z] : +# 1351| mu1351_8(int) = Store[z] : &:r1351_7, r1351_6 +# 1352| r1352_1(glval<int>) = VariableAddress[x] : +# 1352| r1352_2(int) = Load[x] : &:r1352_1, ~m? +# 1352| r1352_3(int) = Constant[0] : +# 1352| r1352_4(bool) = CompareNE : r1352_2, r1352_3 +# 1352| v1352_5(void) = ConditionalBranch : r1352_4 #-----| False -> Block 9 #-----| True -> Block 8 -# 1304| Block 5 -# 1304| r1304_9(glval<long>) = VariableAddress[#temp1304:9] : -# 1304| mu1304_10(long) = Store[#temp1304:9] : &:r1304_9, r1304_2 +# 1351| Block 5 +# 1351| r1351_9(glval<long>) = VariableAddress[#temp1351:9] : +# 1351| mu1351_10(long) = Store[#temp1351:9] : &:r1351_9, r1351_2 #-----| Goto -> Block 4 -# 1304| Block 6 -# 1304| r1304_11(glval<long>) = VariableAddress[y] : -# 1304| r1304_12(long) = Load[y] : &:r1304_11, ~m? -# 1304| r1304_13(glval<long>) = VariableAddress[#temp1304:9] : -# 1304| mu1304_14(long) = Store[#temp1304:9] : &:r1304_13, r1304_12 +# 1351| Block 6 +# 1351| r1351_11(glval<long>) = VariableAddress[y] : +# 1351| r1351_12(long) = Load[y] : &:r1351_11, ~m? +# 1351| r1351_13(glval<long>) = VariableAddress[#temp1351:9] : +# 1351| mu1351_14(long) = Store[#temp1351:9] : &:r1351_13, r1351_12 #-----| Goto -> Block 4 -# 1305| Block 7 -# 1305| r1305_6(glval<int>) = VariableAddress[#temp1305:9] : -# 1305| r1305_7(int) = Load[#temp1305:9] : &:r1305_6, ~m? -# 1305| r1305_8(glval<int>) = VariableAddress[z] : -# 1305| mu1305_9(int) = Store[z] : &:r1305_8, r1305_7 -# 1306| r1306_1(glval<int>) = VariableAddress[x] : -# 1306| r1306_2(int) = Load[x] : &:r1306_1, ~m? -# 1306| r1306_3(int) = Constant[0] : -# 1306| r1306_4(bool) = CompareNE : r1306_2, r1306_3 -# 1306| v1306_5(void) = ConditionalBranch : r1306_4 +# 1352| Block 7 +# 1352| r1352_6(glval<int>) = VariableAddress[#temp1352:9] : +# 1352| r1352_7(int) = Load[#temp1352:9] : &:r1352_6, ~m? +# 1352| r1352_8(glval<int>) = VariableAddress[z] : +# 1352| mu1352_9(int) = Store[z] : &:r1352_8, r1352_7 +# 1353| r1353_1(glval<int>) = VariableAddress[x] : +# 1353| r1353_2(int) = Load[x] : &:r1353_1, ~m? +# 1353| r1353_3(int) = Constant[0] : +# 1353| r1353_4(bool) = CompareNE : r1353_2, r1353_3 +# 1353| v1353_5(void) = ConditionalBranch : r1353_4 #-----| False -> Block 12 #-----| True -> Block 11 -# 1305| Block 8 -# 1305| r1305_10(glval<int>) = VariableAddress[#temp1305:9] : -# 1305| mu1305_11(int) = Store[#temp1305:9] : &:r1305_10, r1305_2 +# 1352| Block 8 +# 1352| r1352_10(glval<int>) = VariableAddress[#temp1352:9] : +# 1352| mu1352_11(int) = Store[#temp1352:9] : &:r1352_10, r1352_2 #-----| Goto -> Block 7 -# 1305| Block 9 -# 1305| r1305_12(glval<int>) = VariableAddress[x] : -# 1305| r1305_13(int) = Load[x] : &:r1305_12, ~m? -# 1305| r1305_14(glval<int>) = VariableAddress[#temp1305:9] : -# 1305| mu1305_15(int) = Store[#temp1305:9] : &:r1305_14, r1305_13 +# 1352| Block 9 +# 1352| r1352_12(glval<int>) = VariableAddress[x] : +# 1352| r1352_13(int) = Load[x] : &:r1352_12, ~m? +# 1352| r1352_14(glval<int>) = VariableAddress[#temp1352:9] : +# 1352| mu1352_15(int) = Store[#temp1352:9] : &:r1352_14, r1352_13 #-----| Goto -> Block 7 -# 1306| Block 10 -# 1306| r1306_6(glval<long>) = VariableAddress[#temp1306:9] : -# 1306| r1306_7(long) = Load[#temp1306:9] : &:r1306_6, ~m? -# 1306| r1306_8(int) = Convert : r1306_7 -# 1306| r1306_9(glval<int>) = VariableAddress[z] : -# 1306| mu1306_10(int) = Store[z] : &:r1306_9, r1306_8 -# 1307| r1307_1(glval<long>) = VariableAddress[y] : -# 1307| r1307_2(long) = Load[y] : &:r1307_1, ~m? -# 1307| r1307_3(long) = Constant[0] : -# 1307| r1307_4(bool) = CompareNE : r1307_2, r1307_3 -# 1307| v1307_5(void) = ConditionalBranch : r1307_4 +# 1353| Block 10 +# 1353| r1353_6(glval<long>) = VariableAddress[#temp1353:9] : +# 1353| r1353_7(long) = Load[#temp1353:9] : &:r1353_6, ~m? +# 1353| r1353_8(int) = Convert : r1353_7 +# 1353| r1353_9(glval<int>) = VariableAddress[z] : +# 1353| mu1353_10(int) = Store[z] : &:r1353_9, r1353_8 +# 1354| r1354_1(glval<long>) = VariableAddress[y] : +# 1354| r1354_2(long) = Load[y] : &:r1354_1, ~m? +# 1354| r1354_3(long) = Constant[0] : +# 1354| r1354_4(bool) = CompareNE : r1354_2, r1354_3 +# 1354| v1354_5(void) = ConditionalBranch : r1354_4 #-----| False -> Block 15 #-----| True -> Block 14 -# 1306| Block 11 -# 1306| r1306_11(glval<long>) = VariableAddress[#temp1306:9] : -# 1306| mu1306_12(long) = Store[#temp1306:9] : &:r1306_11, r1306_2 +# 1353| Block 11 +# 1353| r1353_11(glval<long>) = VariableAddress[#temp1353:9] : +# 1353| mu1353_12(long) = Store[#temp1353:9] : &:r1353_11, r1353_2 #-----| Goto -> Block 10 -# 1306| Block 12 -# 1306| r1306_13(glval<long>) = VariableAddress[y] : -# 1306| r1306_14(long) = Load[y] : &:r1306_13, ~m? -# 1306| r1306_15(glval<long>) = VariableAddress[#temp1306:9] : -# 1306| mu1306_16(long) = Store[#temp1306:9] : &:r1306_15, r1306_14 +# 1353| Block 12 +# 1353| r1353_13(glval<long>) = VariableAddress[y] : +# 1353| r1353_14(long) = Load[y] : &:r1353_13, ~m? +# 1353| r1353_15(glval<long>) = VariableAddress[#temp1353:9] : +# 1353| mu1353_16(long) = Store[#temp1353:9] : &:r1353_15, r1353_14 #-----| Goto -> Block 10 -# 1307| Block 13 -# 1307| r1307_6(glval<long>) = VariableAddress[#temp1307:9] : -# 1307| r1307_7(long) = Load[#temp1307:9] : &:r1307_6, ~m? -# 1307| r1307_8(int) = Convert : r1307_7 -# 1307| r1307_9(glval<int>) = VariableAddress[z] : -# 1307| mu1307_10(int) = Store[z] : &:r1307_9, r1307_8 -# 1308| r1308_1(glval<long>) = VariableAddress[y] : -# 1308| r1308_2(long) = Load[y] : &:r1308_1, ~m? -# 1308| r1308_3(long) = Constant[0] : -# 1308| r1308_4(bool) = CompareNE : r1308_2, r1308_3 -# 1308| v1308_5(void) = ConditionalBranch : r1308_4 +# 1354| Block 13 +# 1354| r1354_6(glval<long>) = VariableAddress[#temp1354:9] : +# 1354| r1354_7(long) = Load[#temp1354:9] : &:r1354_6, ~m? +# 1354| r1354_8(int) = Convert : r1354_7 +# 1354| r1354_9(glval<int>) = VariableAddress[z] : +# 1354| mu1354_10(int) = Store[z] : &:r1354_9, r1354_8 +# 1355| r1355_1(glval<long>) = VariableAddress[y] : +# 1355| r1355_2(long) = Load[y] : &:r1355_1, ~m? +# 1355| r1355_3(long) = Constant[0] : +# 1355| r1355_4(bool) = CompareNE : r1355_2, r1355_3 +# 1355| v1355_5(void) = ConditionalBranch : r1355_4 #-----| False -> Block 18 #-----| True -> Block 17 -# 1307| Block 14 -# 1307| r1307_11(glval<long>) = VariableAddress[#temp1307:9] : -# 1307| mu1307_12(long) = Store[#temp1307:9] : &:r1307_11, r1307_2 +# 1354| Block 14 +# 1354| r1354_11(glval<long>) = VariableAddress[#temp1354:9] : +# 1354| mu1354_12(long) = Store[#temp1354:9] : &:r1354_11, r1354_2 #-----| Goto -> Block 13 -# 1307| Block 15 -# 1307| r1307_13(glval<int>) = VariableAddress[x] : -# 1307| r1307_14(int) = Load[x] : &:r1307_13, ~m? -# 1307| r1307_15(long) = Convert : r1307_14 -# 1307| r1307_16(glval<long>) = VariableAddress[#temp1307:9] : -# 1307| mu1307_17(long) = Store[#temp1307:9] : &:r1307_16, r1307_15 +# 1354| Block 15 +# 1354| r1354_13(glval<int>) = VariableAddress[x] : +# 1354| r1354_14(int) = Load[x] : &:r1354_13, ~m? +# 1354| r1354_15(long) = Convert : r1354_14 +# 1354| r1354_16(glval<long>) = VariableAddress[#temp1354:9] : +# 1354| mu1354_17(long) = Store[#temp1354:9] : &:r1354_16, r1354_15 #-----| Goto -> Block 13 -# 1308| Block 16 -# 1308| r1308_6(glval<long>) = VariableAddress[#temp1308:9] : -# 1308| r1308_7(long) = Load[#temp1308:9] : &:r1308_6, ~m? -# 1308| r1308_8(int) = Convert : r1308_7 -# 1308| r1308_9(glval<int>) = VariableAddress[z] : -# 1308| mu1308_10(int) = Store[z] : &:r1308_9, r1308_8 -# 1310| r1310_1(glval<int>) = VariableAddress[x] : -# 1310| r1310_2(int) = Load[x] : &:r1310_1, ~m? -# 1310| r1310_3(int) = Constant[0] : -# 1310| r1310_4(bool) = CompareNE : r1310_2, r1310_3 -# 1310| v1310_5(void) = ConditionalBranch : r1310_4 +# 1355| Block 16 +# 1355| r1355_6(glval<long>) = VariableAddress[#temp1355:9] : +# 1355| r1355_7(long) = Load[#temp1355:9] : &:r1355_6, ~m? +# 1355| r1355_8(int) = Convert : r1355_7 +# 1355| r1355_9(glval<int>) = VariableAddress[z] : +# 1355| mu1355_10(int) = Store[z] : &:r1355_9, r1355_8 +# 1357| r1357_1(glval<int>) = VariableAddress[x] : +# 1357| r1357_2(int) = Load[x] : &:r1357_1, ~m? +# 1357| r1357_3(int) = Constant[0] : +# 1357| r1357_4(bool) = CompareNE : r1357_2, r1357_3 +# 1357| v1357_5(void) = ConditionalBranch : r1357_4 #-----| False -> Block 25 #-----| True -> Block 24 -# 1308| Block 17 -# 1308| r1308_11(glval<long>) = VariableAddress[#temp1308:9] : -# 1308| mu1308_12(long) = Store[#temp1308:9] : &:r1308_11, r1308_2 +# 1355| Block 17 +# 1355| r1355_11(glval<long>) = VariableAddress[#temp1355:9] : +# 1355| mu1355_12(long) = Store[#temp1355:9] : &:r1355_11, r1355_2 #-----| Goto -> Block 16 -# 1308| Block 18 -# 1308| r1308_13(glval<long>) = VariableAddress[y] : -# 1308| r1308_14(long) = Load[y] : &:r1308_13, ~m? -# 1308| r1308_15(glval<long>) = VariableAddress[#temp1308:9] : -# 1308| mu1308_16(long) = Store[#temp1308:9] : &:r1308_15, r1308_14 +# 1355| Block 18 +# 1355| r1355_13(glval<long>) = VariableAddress[y] : +# 1355| r1355_14(long) = Load[y] : &:r1355_13, ~m? +# 1355| r1355_15(glval<long>) = VariableAddress[#temp1355:9] : +# 1355| mu1355_16(long) = Store[#temp1355:9] : &:r1355_15, r1355_14 #-----| Goto -> Block 16 -# 1310| Block 19 -# 1310| r1310_6(glval<int>) = VariableAddress[#temp1310:9] : -# 1310| r1310_7(int) = Load[#temp1310:9] : &:r1310_6, ~m? -# 1310| r1310_8(glval<int>) = VariableAddress[z] : -# 1310| mu1310_9(int) = Store[z] : &:r1310_8, r1310_7 -# 1311| v1311_1(void) = NoOp : -# 1301| v1301_10(void) = ReturnVoid : -# 1301| v1301_11(void) = AliasedUse : ~m? -# 1301| v1301_12(void) = ExitFunction : +# 1357| Block 19 +# 1357| r1357_6(glval<int>) = VariableAddress[#temp1357:9] : +# 1357| r1357_7(int) = Load[#temp1357:9] : &:r1357_6, ~m? +# 1357| r1357_8(glval<int>) = VariableAddress[z] : +# 1357| mu1357_9(int) = Store[z] : &:r1357_8, r1357_7 +# 1358| v1358_1(void) = NoOp : +# 1348| v1348_10(void) = ReturnVoid : +# 1348| v1348_11(void) = AliasedUse : ~m? +# 1348| v1348_12(void) = ExitFunction : -# 1310| Block 20 -# 1310| r1310_10(glval<int>) = VariableAddress[#temp1310:9] : -# 1310| mu1310_11(int) = Store[#temp1310:9] : &:r1310_10, r1310_16 +# 1357| Block 20 +# 1357| r1357_10(glval<int>) = VariableAddress[#temp1357:9] : +# 1357| mu1357_11(int) = Store[#temp1357:9] : &:r1357_10, r1357_16 #-----| Goto -> Block 19 -# 1310| Block 21 -# 1310| r1310_12(glval<bool>) = VariableAddress[#temp1310:10] : -# 1310| r1310_13(bool) = Constant[0] : -# 1310| mu1310_14(bool) = Store[#temp1310:10] : &:r1310_12, r1310_13 +# 1357| Block 21 +# 1357| r1357_12(glval<bool>) = VariableAddress[#temp1357:10] : +# 1357| r1357_13(bool) = Constant[0] : +# 1357| mu1357_14(bool) = Store[#temp1357:10] : &:r1357_12, r1357_13 #-----| Goto -> Block 22 -# 1310| Block 22 -# 1310| r1310_15(glval<bool>) = VariableAddress[#temp1310:10] : -# 1310| r1310_16(bool) = Load[#temp1310:10] : &:r1310_15, ~m? -# 1310| v1310_17(void) = ConditionalBranch : r1310_16 +# 1357| Block 22 +# 1357| r1357_15(glval<bool>) = VariableAddress[#temp1357:10] : +# 1357| r1357_16(bool) = Load[#temp1357:10] : &:r1357_15, ~m? +# 1357| v1357_17(void) = ConditionalBranch : r1357_16 #-----| False -> Block 26 #-----| True -> Block 20 -# 1310| Block 23 -# 1310| r1310_18(glval<bool>) = VariableAddress[#temp1310:10] : -# 1310| r1310_19(bool) = Constant[1] : -# 1310| mu1310_20(bool) = Store[#temp1310:10] : &:r1310_18, r1310_19 +# 1357| Block 23 +# 1357| r1357_18(glval<bool>) = VariableAddress[#temp1357:10] : +# 1357| r1357_19(bool) = Constant[1] : +# 1357| mu1357_20(bool) = Store[#temp1357:10] : &:r1357_18, r1357_19 #-----| Goto -> Block 22 -# 1310| Block 24 -# 1310| r1310_21(glval<bool>) = VariableAddress[b] : -# 1310| r1310_22(bool) = Load[b] : &:r1310_21, ~m? -# 1310| v1310_23(void) = ConditionalBranch : r1310_22 +# 1357| Block 24 +# 1357| r1357_21(glval<bool>) = VariableAddress[b] : +# 1357| r1357_22(bool) = Load[b] : &:r1357_21, ~m? +# 1357| v1357_23(void) = ConditionalBranch : r1357_22 #-----| False -> Block 25 #-----| True -> Block 23 -# 1310| Block 25 -# 1310| r1310_24(glval<long>) = VariableAddress[y] : -# 1310| r1310_25(long) = Load[y] : &:r1310_24, ~m? -# 1310| r1310_26(long) = Constant[0] : -# 1310| r1310_27(bool) = CompareNE : r1310_25, r1310_26 -# 1310| v1310_28(void) = ConditionalBranch : r1310_27 +# 1357| Block 25 +# 1357| r1357_24(glval<long>) = VariableAddress[y] : +# 1357| r1357_25(long) = Load[y] : &:r1357_24, ~m? +# 1357| r1357_26(long) = Constant[0] : +# 1357| r1357_27(bool) = CompareNE : r1357_25, r1357_26 +# 1357| v1357_28(void) = ConditionalBranch : r1357_27 #-----| False -> Block 21 #-----| True -> Block 23 -# 1310| Block 26 -# 1310| r1310_29(glval<int>) = VariableAddress[x] : -# 1310| r1310_30(int) = Load[x] : &:r1310_29, ~m? -# 1310| r1310_31(glval<int>) = VariableAddress[#temp1310:9] : -# 1310| mu1310_32(int) = Store[#temp1310:9] : &:r1310_31, r1310_30 +# 1357| Block 26 +# 1357| r1357_29(glval<int>) = VariableAddress[x] : +# 1357| r1357_30(int) = Load[x] : &:r1357_29, ~m? +# 1357| r1357_31(glval<int>) = VariableAddress[#temp1357:9] : +# 1357| mu1357_32(int) = Store[#temp1357:9] : &:r1357_31, r1357_30 #-----| Goto -> Block 19 -# 1316| int shortCircuitConditional(int, int) -# 1316| Block 0 -# 1316| v1316_1(void) = EnterFunction : -# 1316| mu1316_2(unknown) = AliasedDefinition : -# 1316| mu1316_3(unknown) = InitializeNonLocal : -# 1316| r1316_4(glval<int>) = VariableAddress[x] : -# 1316| mu1316_5(int) = InitializeParameter[x] : &:r1316_4 -# 1316| r1316_6(glval<int>) = VariableAddress[y] : -# 1316| mu1316_7(int) = InitializeParameter[y] : &:r1316_6 -# 1317| r1317_1(glval<int>) = VariableAddress[#return] : -# 1317| r1317_2(glval<unknown>) = FunctionAddress[predicateA] : -# 1317| r1317_3(bool) = Call[predicateA] : func:r1317_2 -# 1317| mu1317_4(unknown) = ^CallSideEffect : ~m? -# 1317| v1317_5(void) = ConditionalBranch : r1317_3 +# 1363| int shortCircuitConditional(int, int) +# 1363| Block 0 +# 1363| v1363_1(void) = EnterFunction : +# 1363| mu1363_2(unknown) = AliasedDefinition : +# 1363| mu1363_3(unknown) = InitializeNonLocal : +# 1363| r1363_4(glval<int>) = VariableAddress[x] : +# 1363| mu1363_5(int) = InitializeParameter[x] : &:r1363_4 +# 1363| r1363_6(glval<int>) = VariableAddress[y] : +# 1363| mu1363_7(int) = InitializeParameter[y] : &:r1363_6 +# 1364| r1364_1(glval<int>) = VariableAddress[#return] : +# 1364| r1364_2(glval<unknown>) = FunctionAddress[predicateA] : +# 1364| r1364_3(bool) = Call[predicateA] : func:r1364_2 +# 1364| mu1364_4(unknown) = ^CallSideEffect : ~m? +# 1364| v1364_5(void) = ConditionalBranch : r1364_3 #-----| False -> Block 4 #-----| True -> Block 2 -# 1317| Block 1 -# 1317| r1317_6(glval<int>) = VariableAddress[#temp1317:12] : -# 1317| r1317_7(int) = Load[#temp1317:12] : &:r1317_6, ~m? -# 1317| mu1317_8(int) = Store[#return] : &:r1317_1, r1317_7 -# 1316| r1316_8(glval<int>) = VariableAddress[#return] : -# 1316| v1316_9(void) = ReturnValue : &:r1316_8, ~m? -# 1316| v1316_10(void) = AliasedUse : ~m? -# 1316| v1316_11(void) = ExitFunction : +# 1364| Block 1 +# 1364| r1364_6(glval<int>) = VariableAddress[#temp1364:12] : +# 1364| r1364_7(int) = Load[#temp1364:12] : &:r1364_6, ~m? +# 1364| mu1364_8(int) = Store[#return] : &:r1364_1, r1364_7 +# 1363| r1363_8(glval<int>) = VariableAddress[#return] : +# 1363| v1363_9(void) = ReturnValue : &:r1363_8, ~m? +# 1363| v1363_10(void) = AliasedUse : ~m? +# 1363| v1363_11(void) = ExitFunction : -# 1317| Block 2 -# 1317| r1317_9(glval<unknown>) = FunctionAddress[predicateB] : -# 1317| r1317_10(bool) = Call[predicateB] : func:r1317_9 -# 1317| mu1317_11(unknown) = ^CallSideEffect : ~m? -# 1317| v1317_12(void) = ConditionalBranch : r1317_10 +# 1364| Block 2 +# 1364| r1364_9(glval<unknown>) = FunctionAddress[predicateB] : +# 1364| r1364_10(bool) = Call[predicateB] : func:r1364_9 +# 1364| mu1364_11(unknown) = ^CallSideEffect : ~m? +# 1364| v1364_12(void) = ConditionalBranch : r1364_10 #-----| False -> Block 4 #-----| True -> Block 3 -# 1317| Block 3 -# 1317| r1317_13(glval<int>) = VariableAddress[x] : -# 1317| r1317_14(int) = Load[x] : &:r1317_13, ~m? -# 1317| r1317_15(glval<int>) = VariableAddress[#temp1317:12] : -# 1317| mu1317_16(int) = Store[#temp1317:12] : &:r1317_15, r1317_14 +# 1364| Block 3 +# 1364| r1364_13(glval<int>) = VariableAddress[x] : +# 1364| r1364_14(int) = Load[x] : &:r1364_13, ~m? +# 1364| r1364_15(glval<int>) = VariableAddress[#temp1364:12] : +# 1364| mu1364_16(int) = Store[#temp1364:12] : &:r1364_15, r1364_14 #-----| Goto -> Block 1 -# 1317| Block 4 -# 1317| r1317_17(glval<int>) = VariableAddress[y] : -# 1317| r1317_18(int) = Load[y] : &:r1317_17, ~m? -# 1317| r1317_19(glval<int>) = VariableAddress[#temp1317:12] : -# 1317| mu1317_20(int) = Store[#temp1317:12] : &:r1317_19, r1317_18 +# 1364| Block 4 +# 1364| r1364_17(glval<int>) = VariableAddress[y] : +# 1364| r1364_18(int) = Load[y] : &:r1364_17, ~m? +# 1364| r1364_19(glval<int>) = VariableAddress[#temp1364:12] : +# 1364| mu1364_20(int) = Store[#temp1364:12] : &:r1364_19, r1364_18 #-----| Goto -> Block 1 -# 1322| void f(int*) -# 1322| Block 0 -# 1322| v1322_1(void) = EnterFunction : -# 1322| mu1322_2(unknown) = AliasedDefinition : -# 1322| mu1322_3(unknown) = InitializeNonLocal : -# 1322| r1322_4(glval<int *>) = VariableAddress[p] : -# 1322| mu1322_5(int *) = InitializeParameter[p] : &:r1322_4 -# 1322| r1322_6(int *) = Load[p] : &:r1322_4, ~m? -# 1322| mu1322_7(unknown) = InitializeIndirection[p] : &:r1322_6 -# 1324| r1324_1(glval<unknown>) = FunctionAddress[operator new] : -# 1324| r1324_2(unsigned long) = Constant[4] : -# 1324| r1324_3(glval<int *>) = VariableAddress[p] : -# 1324| r1324_4(int *) = Load[p] : &:r1324_3, ~m? -# 1324| r1324_5(void *) = Convert : r1324_4 -# 1324| r1324_6(void *) = Call[operator new] : func:r1324_1, 0:r1324_2, 1:r1324_5 -# 1324| mu1324_7(unknown) = ^CallSideEffect : ~m? -# 1324| mu1324_8(unknown) = ^InitializeDynamicAllocation : &:r1324_6 -# 1324| r1324_9(int *) = Convert : r1324_6 -# 1325| v1325_1(void) = NoOp : -# 1322| v1322_8(void) = ReturnIndirection[p] : &:r1322_6, ~m? -# 1322| v1322_9(void) = ReturnVoid : -# 1322| v1322_10(void) = AliasedUse : ~m? -# 1322| v1322_11(void) = ExitFunction : +# 1369| void f(int*) +# 1369| Block 0 +# 1369| v1369_1(void) = EnterFunction : +# 1369| mu1369_2(unknown) = AliasedDefinition : +# 1369| mu1369_3(unknown) = InitializeNonLocal : +# 1369| r1369_4(glval<int *>) = VariableAddress[p] : +# 1369| mu1369_5(int *) = InitializeParameter[p] : &:r1369_4 +# 1369| r1369_6(int *) = Load[p] : &:r1369_4, ~m? +# 1369| mu1369_7(unknown) = InitializeIndirection[p] : &:r1369_6 +# 1371| r1371_1(glval<unknown>) = FunctionAddress[operator new] : +# 1371| r1371_2(unsigned long) = Constant[4] : +# 1371| r1371_3(glval<int *>) = VariableAddress[p] : +# 1371| r1371_4(int *) = Load[p] : &:r1371_3, ~m? +# 1371| r1371_5(void *) = Convert : r1371_4 +# 1371| r1371_6(void *) = Call[operator new] : func:r1371_1, 0:r1371_2, 1:r1371_5 +# 1371| mu1371_7(unknown) = ^CallSideEffect : ~m? +# 1371| mu1371_8(unknown) = ^InitializeDynamicAllocation : &:r1371_6 +# 1371| r1371_9(int *) = Convert : r1371_6 +# 1372| v1372_1(void) = NoOp : +# 1369| v1369_8(void) = ReturnIndirection[p] : &:r1369_6, ~m? +# 1369| v1369_9(void) = ReturnVoid : +# 1369| v1369_10(void) = AliasedUse : ~m? +# 1369| v1369_11(void) = ExitFunction : -# 1328| Point defaultConstruct<Point>() -# 1328| Block 0 -# 1328| v1328_1(void) = EnterFunction : -# 1328| mu1328_2(unknown) = AliasedDefinition : -# 1328| mu1328_3(unknown) = InitializeNonLocal : -# 1329| r1329_1(glval<Point>) = VariableAddress[#return] : -# 1329| r1329_2(Point) = Constant[0] : -# 1329| mu1329_3(Point) = Store[#return] : &:r1329_1, r1329_2 -# 1328| r1328_4(glval<Point>) = VariableAddress[#return] : -# 1328| v1328_5(void) = ReturnValue : &:r1328_4, ~m? -# 1328| v1328_6(void) = AliasedUse : ~m? -# 1328| v1328_7(void) = ExitFunction : +# 1375| Point defaultConstruct<Point>() +# 1375| Block 0 +# 1375| v1375_1(void) = EnterFunction : +# 1375| mu1375_2(unknown) = AliasedDefinition : +# 1375| mu1375_3(unknown) = InitializeNonLocal : +# 1376| r1376_1(glval<Point>) = VariableAddress[#return] : +# 1376| r1376_2(Point) = Constant[0] : +# 1376| mu1376_3(Point) = Store[#return] : &:r1376_1, r1376_2 +# 1375| r1375_4(glval<Point>) = VariableAddress[#return] : +# 1375| v1375_5(void) = ReturnValue : &:r1375_4, ~m? +# 1375| v1375_6(void) = AliasedUse : ~m? +# 1375| v1375_7(void) = ExitFunction : -# 1328| String defaultConstruct<String>() -# 1328| Block 0 -# 1328| v1328_1(void) = EnterFunction : -# 1328| mu1328_2(unknown) = AliasedDefinition : -# 1328| mu1328_3(unknown) = InitializeNonLocal : -# 1329| r1329_1(glval<String>) = VariableAddress[#return] : -# 1329| mu1329_2(String) = Uninitialized[#return] : &:r1329_1 -# 1329| r1329_3(glval<unknown>) = FunctionAddress[String] : -# 1329| v1329_4(void) = Call[String] : func:r1329_3, this:r1329_1 -# 1329| mu1329_5(unknown) = ^CallSideEffect : ~m? -# 1329| mu1329_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1329_1 -# 1328| r1328_4(glval<String>) = VariableAddress[#return] : -# 1328| v1328_5(void) = ReturnValue : &:r1328_4, ~m? -# 1328| v1328_6(void) = AliasedUse : ~m? -# 1328| v1328_7(void) = ExitFunction : +# 1375| String defaultConstruct<String>() +# 1375| Block 0 +# 1375| v1375_1(void) = EnterFunction : +# 1375| mu1375_2(unknown) = AliasedDefinition : +# 1375| mu1375_3(unknown) = InitializeNonLocal : +# 1376| r1376_1(glval<String>) = VariableAddress[#return] : +# 1376| mu1376_2(String) = Uninitialized[#return] : &:r1376_1 +# 1376| r1376_3(glval<unknown>) = FunctionAddress[String] : +# 1376| v1376_4(void) = Call[String] : func:r1376_3, this:r1376_1 +# 1376| mu1376_5(unknown) = ^CallSideEffect : ~m? +# 1376| mu1376_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 +# 1375| r1375_4(glval<String>) = VariableAddress[#return] : +# 1375| v1375_5(void) = ReturnValue : &:r1375_4, ~m? +# 1375| v1375_6(void) = AliasedUse : ~m? +# 1375| v1375_7(void) = ExitFunction : -# 1328| copy_constructor defaultConstruct<copy_constructor>() -# 1328| Block 0 -# 1328| v1328_1(void) = EnterFunction : -# 1328| mu1328_2(unknown) = AliasedDefinition : -# 1328| mu1328_3(unknown) = InitializeNonLocal : -# 1329| r1329_1(glval<copy_constructor>) = VariableAddress[#return] : -# 1329| mu1329_2(copy_constructor) = Uninitialized[#return] : &:r1329_1 -# 1329| r1329_3(glval<unknown>) = FunctionAddress[copy_constructor] : -# 1329| v1329_4(void) = Call[copy_constructor] : func:r1329_3, this:r1329_1 -# 1329| mu1329_5(unknown) = ^CallSideEffect : ~m? -# 1329| mu1329_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1329_1 -# 1328| r1328_4(glval<copy_constructor>) = VariableAddress[#return] : -# 1328| v1328_5(void) = ReturnValue : &:r1328_4, ~m? -# 1328| v1328_6(void) = AliasedUse : ~m? -# 1328| v1328_7(void) = ExitFunction : +# 1375| copy_constructor defaultConstruct<copy_constructor>() +# 1375| Block 0 +# 1375| v1375_1(void) = EnterFunction : +# 1375| mu1375_2(unknown) = AliasedDefinition : +# 1375| mu1375_3(unknown) = InitializeNonLocal : +# 1376| r1376_1(glval<copy_constructor>) = VariableAddress[#return] : +# 1376| mu1376_2(copy_constructor) = Uninitialized[#return] : &:r1376_1 +# 1376| r1376_3(glval<unknown>) = FunctionAddress[copy_constructor] : +# 1376| v1376_4(void) = Call[copy_constructor] : func:r1376_3, this:r1376_1 +# 1376| mu1376_5(unknown) = ^CallSideEffect : ~m? +# 1376| mu1376_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 +# 1375| r1375_4(glval<copy_constructor>) = VariableAddress[#return] : +# 1375| v1375_5(void) = ReturnValue : &:r1375_4, ~m? +# 1375| v1375_6(void) = AliasedUse : ~m? +# 1375| v1375_7(void) = ExitFunction : -# 1328| destructor_only defaultConstruct<destructor_only>() -# 1328| Block 0 -# 1328| v1328_1(void) = EnterFunction : -# 1328| mu1328_2(unknown) = AliasedDefinition : -# 1328| mu1328_3(unknown) = InitializeNonLocal : -# 1329| r1329_1(glval<destructor_only>) = VariableAddress[#return] : -# 1329| r1329_2(destructor_only) = Constant[0] : -# 1329| mu1329_3(destructor_only) = Store[#return] : &:r1329_1, r1329_2 -# 1328| r1328_4(glval<destructor_only>) = VariableAddress[#return] : -# 1328| v1328_5(void) = ReturnValue : &:r1328_4, ~m? -# 1328| v1328_6(void) = AliasedUse : ~m? -# 1328| v1328_7(void) = ExitFunction : +# 1375| destructor_only defaultConstruct<destructor_only>() +# 1375| Block 0 +# 1375| v1375_1(void) = EnterFunction : +# 1375| mu1375_2(unknown) = AliasedDefinition : +# 1375| mu1375_3(unknown) = InitializeNonLocal : +# 1376| r1376_1(glval<destructor_only>) = VariableAddress[#return] : +# 1376| r1376_2(destructor_only) = Constant[0] : +# 1376| mu1376_3(destructor_only) = Store[#return] : &:r1376_1, r1376_2 +# 1375| r1375_4(glval<destructor_only>) = VariableAddress[#return] : +# 1375| v1375_5(void) = ReturnValue : &:r1375_4, ~m? +# 1375| v1375_6(void) = AliasedUse : ~m? +# 1375| v1375_7(void) = ExitFunction : -# 1367| void temporary_string() -# 1367| Block 0 -# 1367| v1367_1(void) = EnterFunction : -# 1367| mu1367_2(unknown) = AliasedDefinition : -# 1367| mu1367_3(unknown) = InitializeNonLocal : -# 1368| r1368_1(glval<String>) = VariableAddress[s] : -# 1368| r1368_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1368| r1368_3(String) = Call[returnValue] : func:r1368_2 -# 1368| mu1368_4(unknown) = ^CallSideEffect : ~m? -# 1368| mu1368_5(String) = Store[s] : &:r1368_1, r1368_3 -# 1369| r1369_1(glval<String &>) = VariableAddress[rs] : -# 1369| r1369_2(glval<String>) = VariableAddress[#temp1369:24] : -# 1369| r1369_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1369| r1369_4(String) = Call[returnValue] : func:r1369_3 -# 1369| mu1369_5(unknown) = ^CallSideEffect : ~m? -# 1369| mu1369_6(String) = Store[#temp1369:24] : &:r1369_2, r1369_4 -# 1369| r1369_7(glval<String>) = Convert : r1369_2 -# 1369| r1369_8(String &) = CopyValue : r1369_7 -# 1369| mu1369_9(String &) = Store[rs] : &:r1369_1, r1369_8 -# 1371| r1371_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1371| r1371_2(glval<String>) = VariableAddress[s] : -# 1371| r1371_3(glval<String>) = Convert : r1371_2 -# 1371| r1371_4(String &) = CopyValue : r1371_3 -# 1371| v1371_5(void) = Call[acceptRef] : func:r1371_1, 0:r1371_4 -# 1371| mu1371_6(unknown) = ^CallSideEffect : ~m? -# 1371| v1371_7(void) = ^BufferReadSideEffect[0] : &:r1371_4, ~m? -# 1372| r1372_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1372| r1372_2(glval<String>) = VariableAddress[#temp1372:23] : -# 1372| mu1372_3(String) = Uninitialized[#temp1372:23] : &:r1372_2 -# 1372| r1372_4(glval<unknown>) = FunctionAddress[String] : -# 1372| r1372_5(glval<char[4]>) = StringConstant["foo"] : -# 1372| r1372_6(char *) = Convert : r1372_5 -# 1372| v1372_7(void) = Call[String] : func:r1372_4, this:r1372_2, 0:r1372_6 -# 1372| mu1372_8(unknown) = ^CallSideEffect : ~m? -# 1372| v1372_9(void) = ^BufferReadSideEffect[0] : &:r1372_6, ~m? -# 1372| mu1372_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1372_2 -# 1372| r1372_11(String &) = CopyValue : r1372_2 -# 1372| v1372_12(void) = Call[acceptRef] : func:r1372_1, 0:r1372_11 -# 1372| mu1372_13(unknown) = ^CallSideEffect : ~m? -# 1372| v1372_14(void) = ^BufferReadSideEffect[0] : &:r1372_11, ~m? -# 1373| r1373_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1373| r1373_2(glval<String>) = VariableAddress[#temp1373:17] : -# 1373| mu1373_3(String) = Uninitialized[#temp1373:17] : &:r1373_2 -# 1373| r1373_4(glval<unknown>) = FunctionAddress[String] : -# 1373| r1373_5(glval<String>) = VariableAddress[s] : -# 1373| r1373_6(glval<String>) = Convert : r1373_5 -# 1373| r1373_7(String &) = CopyValue : r1373_6 -# 1373| v1373_8(void) = Call[String] : func:r1373_4, this:r1373_2, 0:r1373_7 -# 1373| mu1373_9(unknown) = ^CallSideEffect : ~m? -# 1373| v1373_10(void) = ^BufferReadSideEffect[0] : &:r1373_7, ~m? -# 1373| mu1373_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1373_2 -# 1373| r1373_12(String) = Load[#temp1373:17] : &:r1373_2, ~m? -# 1373| v1373_13(void) = Call[acceptValue] : func:r1373_1, 0:r1373_12 -# 1373| mu1373_14(unknown) = ^CallSideEffect : ~m? -# 1374| r1374_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1374| r1374_2(glval<String>) = VariableAddress[#temp1374:25] : -# 1374| mu1374_3(String) = Uninitialized[#temp1374:25] : &:r1374_2 -# 1374| r1374_4(glval<unknown>) = FunctionAddress[String] : -# 1374| r1374_5(glval<char[4]>) = StringConstant["foo"] : -# 1374| r1374_6(char *) = Convert : r1374_5 -# 1374| v1374_7(void) = Call[String] : func:r1374_4, this:r1374_2, 0:r1374_6 -# 1374| mu1374_8(unknown) = ^CallSideEffect : ~m? -# 1374| v1374_9(void) = ^BufferReadSideEffect[0] : &:r1374_6, ~m? -# 1374| mu1374_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1374_2 -# 1374| r1374_11(String) = Load[#temp1374:25] : &:r1374_2, ~m? -# 1374| v1374_12(void) = Call[acceptValue] : func:r1374_1, 0:r1374_11 -# 1374| mu1374_13(unknown) = ^CallSideEffect : ~m? -# 1375| r1375_1(glval<String>) = VariableAddress[#temp1375:5] : -# 1375| mu1375_2(String) = Uninitialized[#temp1375:5] : &:r1375_1 -# 1375| r1375_3(glval<unknown>) = 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 -# 1375| r1375_7(glval<String>) = Convert : r1375_1 -# 1375| r1375_8(glval<unknown>) = FunctionAddress[c_str] : -# 1375| r1375_9(char *) = Call[c_str] : func:r1375_8, this:r1375_7 -# 1375| mu1375_10(unknown) = ^CallSideEffect : ~m? -# 1375| v1375_11(void) = ^IndirectReadSideEffect[-1] : &:r1375_7, ~m? -# 1376| r1376_1(glval<String>) = VariableAddress[#temp1376:5] : -# 1376| r1376_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1376| r1376_3(String) = Call[returnValue] : func:r1376_2 -# 1376| mu1376_4(unknown) = ^CallSideEffect : ~m? -# 1376| mu1376_5(String) = Store[#temp1376:5] : &:r1376_1, r1376_3 -# 1376| r1376_6(glval<String>) = Convert : r1376_1 -# 1376| r1376_7(glval<unknown>) = FunctionAddress[c_str] : -# 1376| r1376_8(char *) = Call[c_str] : func:r1376_7, this:r1376_6 -# 1376| mu1376_9(unknown) = ^CallSideEffect : ~m? -# 1376| v1376_10(void) = ^IndirectReadSideEffect[-1] : &:r1376_6, ~m? -# 1378| r1378_1(glval<String>) = VariableAddress[#temp1378:5] : -# 1378| r1378_2(glval<unknown>) = FunctionAddress[defaultConstruct] : -# 1378| r1378_3(String) = Call[defaultConstruct] : func:r1378_2 -# 1378| mu1378_4(unknown) = ^CallSideEffect : ~m? -# 1378| mu1378_5(String) = Store[#temp1378:5] : &:r1378_1, r1378_3 -# 1379| v1379_1(void) = NoOp : -# 1379| r1379_2(glval<String>) = VariableAddress[s] : -# 1379| r1379_3(glval<unknown>) = FunctionAddress[~String] : -# 1379| v1379_4(void) = Call[~String] : func:r1379_3, this:r1379_2 -# 1379| mu1379_5(unknown) = ^CallSideEffect : ~m? -# 1379| v1379_6(void) = ^IndirectReadSideEffect[-1] : &:r1379_2, ~m? -# 1379| mu1379_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1379_2 -# 1367| v1367_4(void) = ReturnVoid : -# 1367| v1367_5(void) = AliasedUse : ~m? -# 1367| v1367_6(void) = ExitFunction : +# 1414| void temporary_string() +# 1414| Block 0 +# 1414| v1414_1(void) = EnterFunction : +# 1414| mu1414_2(unknown) = AliasedDefinition : +# 1414| mu1414_3(unknown) = InitializeNonLocal : +# 1415| r1415_1(glval<String>) = VariableAddress[s] : +# 1415| r1415_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1415| r1415_3(String) = Call[returnValue] : func:r1415_2 +# 1415| mu1415_4(unknown) = ^CallSideEffect : ~m? +# 1415| mu1415_5(String) = Store[s] : &:r1415_1, r1415_3 +# 1416| r1416_1(glval<String &>) = VariableAddress[rs] : +# 1416| r1416_2(glval<String>) = VariableAddress[#temp1416:24] : +# 1416| r1416_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1416| r1416_4(String) = Call[returnValue] : func:r1416_3 +# 1416| mu1416_5(unknown) = ^CallSideEffect : ~m? +# 1416| mu1416_6(String) = Store[#temp1416:24] : &:r1416_2, r1416_4 +# 1416| r1416_7(glval<String>) = Convert : r1416_2 +# 1416| r1416_8(String &) = CopyValue : r1416_7 +# 1416| mu1416_9(String &) = Store[rs] : &:r1416_1, r1416_8 +# 1418| r1418_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1418| r1418_2(glval<String>) = VariableAddress[s] : +# 1418| r1418_3(glval<String>) = Convert : r1418_2 +# 1418| r1418_4(String &) = CopyValue : r1418_3 +# 1418| v1418_5(void) = Call[acceptRef] : func:r1418_1, 0:r1418_4 +# 1418| mu1418_6(unknown) = ^CallSideEffect : ~m? +# 1418| v1418_7(void) = ^BufferReadSideEffect[0] : &:r1418_4, ~m? +# 1419| r1419_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1419| r1419_2(glval<String>) = VariableAddress[#temp1419:23] : +# 1419| mu1419_3(String) = Uninitialized[#temp1419:23] : &:r1419_2 +# 1419| r1419_4(glval<unknown>) = FunctionAddress[String] : +# 1419| r1419_5(glval<char[4]>) = StringConstant["foo"] : +# 1419| r1419_6(char *) = Convert : r1419_5 +# 1419| v1419_7(void) = Call[String] : func:r1419_4, this:r1419_2, 0:r1419_6 +# 1419| mu1419_8(unknown) = ^CallSideEffect : ~m? +# 1419| v1419_9(void) = ^BufferReadSideEffect[0] : &:r1419_6, ~m? +# 1419| mu1419_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1419_2 +# 1419| r1419_11(String &) = CopyValue : r1419_2 +# 1419| v1419_12(void) = Call[acceptRef] : func:r1419_1, 0:r1419_11 +# 1419| mu1419_13(unknown) = ^CallSideEffect : ~m? +# 1419| v1419_14(void) = ^BufferReadSideEffect[0] : &:r1419_11, ~m? +# 1420| r1420_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1420| r1420_2(glval<String>) = VariableAddress[#temp1420:17] : +# 1420| mu1420_3(String) = Uninitialized[#temp1420:17] : &:r1420_2 +# 1420| r1420_4(glval<unknown>) = FunctionAddress[String] : +# 1420| r1420_5(glval<String>) = VariableAddress[s] : +# 1420| r1420_6(glval<String>) = Convert : r1420_5 +# 1420| r1420_7(String &) = CopyValue : r1420_6 +# 1420| v1420_8(void) = Call[String] : func:r1420_4, this:r1420_2, 0:r1420_7 +# 1420| mu1420_9(unknown) = ^CallSideEffect : ~m? +# 1420| v1420_10(void) = ^BufferReadSideEffect[0] : &:r1420_7, ~m? +# 1420| mu1420_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r1420_2 +# 1420| r1420_12(String) = Load[#temp1420:17] : &:r1420_2, ~m? +# 1420| v1420_13(void) = Call[acceptValue] : func:r1420_1, 0:r1420_12 +# 1420| mu1420_14(unknown) = ^CallSideEffect : ~m? +# 1421| r1421_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1421| r1421_2(glval<String>) = VariableAddress[#temp1421:25] : +# 1421| mu1421_3(String) = Uninitialized[#temp1421:25] : &:r1421_2 +# 1421| r1421_4(glval<unknown>) = FunctionAddress[String] : +# 1421| r1421_5(glval<char[4]>) = StringConstant["foo"] : +# 1421| r1421_6(char *) = Convert : r1421_5 +# 1421| v1421_7(void) = Call[String] : func:r1421_4, this:r1421_2, 0:r1421_6 +# 1421| mu1421_8(unknown) = ^CallSideEffect : ~m? +# 1421| v1421_9(void) = ^BufferReadSideEffect[0] : &:r1421_6, ~m? +# 1421| mu1421_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_2 +# 1421| r1421_11(String) = Load[#temp1421:25] : &:r1421_2, ~m? +# 1421| v1421_12(void) = Call[acceptValue] : func:r1421_1, 0:r1421_11 +# 1421| mu1421_13(unknown) = ^CallSideEffect : ~m? +# 1422| r1422_1(glval<String>) = VariableAddress[#temp1422:5] : +# 1422| mu1422_2(String) = Uninitialized[#temp1422:5] : &:r1422_1 +# 1422| r1422_3(glval<unknown>) = FunctionAddress[String] : +# 1422| v1422_4(void) = Call[String] : func:r1422_3, this:r1422_1 +# 1422| mu1422_5(unknown) = ^CallSideEffect : ~m? +# 1422| mu1422_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1422_1 +# 1422| r1422_7(glval<String>) = Convert : r1422_1 +# 1422| r1422_8(glval<unknown>) = FunctionAddress[c_str] : +# 1422| r1422_9(char *) = Call[c_str] : func:r1422_8, this:r1422_7 +# 1422| mu1422_10(unknown) = ^CallSideEffect : ~m? +# 1422| v1422_11(void) = ^IndirectReadSideEffect[-1] : &:r1422_7, ~m? +# 1423| r1423_1(glval<String>) = VariableAddress[#temp1423:5] : +# 1423| r1423_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1423| r1423_3(String) = Call[returnValue] : func:r1423_2 +# 1423| mu1423_4(unknown) = ^CallSideEffect : ~m? +# 1423| mu1423_5(String) = Store[#temp1423:5] : &:r1423_1, r1423_3 +# 1423| r1423_6(glval<String>) = Convert : r1423_1 +# 1423| r1423_7(glval<unknown>) = FunctionAddress[c_str] : +# 1423| r1423_8(char *) = Call[c_str] : func:r1423_7, this:r1423_6 +# 1423| mu1423_9(unknown) = ^CallSideEffect : ~m? +# 1423| v1423_10(void) = ^IndirectReadSideEffect[-1] : &:r1423_6, ~m? +# 1425| r1425_1(glval<String>) = VariableAddress[#temp1425:5] : +# 1425| r1425_2(glval<unknown>) = FunctionAddress[defaultConstruct] : +# 1425| r1425_3(String) = Call[defaultConstruct] : func:r1425_2 +# 1425| mu1425_4(unknown) = ^CallSideEffect : ~m? +# 1425| mu1425_5(String) = Store[#temp1425:5] : &:r1425_1, r1425_3 +# 1426| v1426_1(void) = NoOp : +# 1426| r1426_2(glval<String>) = VariableAddress[s] : +# 1426| r1426_3(glval<unknown>) = FunctionAddress[~String] : +# 1426| v1426_4(void) = Call[~String] : func:r1426_3, this:r1426_2 +# 1426| mu1426_5(unknown) = ^CallSideEffect : ~m? +# 1426| v1426_6(void) = ^IndirectReadSideEffect[-1] : &:r1426_2, ~m? +# 1426| mu1426_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_2 +# 1414| v1414_4(void) = ReturnVoid : +# 1414| v1414_5(void) = AliasedUse : ~m? +# 1414| v1414_6(void) = ExitFunction : -# 1381| void temporary_destructor_only() -# 1381| Block 0 -# 1381| v1381_1(void) = EnterFunction : -# 1381| mu1381_2(unknown) = AliasedDefinition : -# 1381| mu1381_3(unknown) = InitializeNonLocal : -# 1382| r1382_1(glval<destructor_only>) = VariableAddress[d] : -# 1382| r1382_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1382| r1382_3(destructor_only) = Call[returnValue] : func:r1382_2 -# 1382| mu1382_4(unknown) = ^CallSideEffect : ~m? -# 1382| mu1382_5(destructor_only) = Store[d] : &:r1382_1, r1382_3 -# 1383| r1383_1(glval<destructor_only &>) = VariableAddress[rd] : -# 1383| r1383_2(glval<destructor_only>) = VariableAddress[#temp1383:33] : -# 1383| r1383_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1383| r1383_4(destructor_only) = Call[returnValue] : func:r1383_3 -# 1383| mu1383_5(unknown) = ^CallSideEffect : ~m? -# 1383| mu1383_6(destructor_only) = Store[#temp1383:33] : &:r1383_2, r1383_4 -# 1383| r1383_7(glval<destructor_only>) = Convert : r1383_2 -# 1383| r1383_8(destructor_only &) = CopyValue : r1383_7 -# 1383| mu1383_9(destructor_only &) = Store[rd] : &:r1383_1, r1383_8 -# 1384| r1384_1(glval<destructor_only>) = VariableAddress[d2] : -# 1384| mu1384_2(destructor_only) = Uninitialized[d2] : &:r1384_1 -# 1385| r1385_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1385| r1385_2(glval<destructor_only>) = VariableAddress[d] : -# 1385| r1385_3(glval<destructor_only>) = Convert : r1385_2 -# 1385| r1385_4(destructor_only &) = CopyValue : r1385_3 -# 1385| v1385_5(void) = Call[acceptRef] : func:r1385_1, 0:r1385_4 -# 1385| mu1385_6(unknown) = ^CallSideEffect : ~m? -# 1385| v1385_7(void) = ^BufferReadSideEffect[0] : &:r1385_4, ~m? -# 1386| r1386_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1386| r1386_2(glval<destructor_only>) = VariableAddress[#temp1386:17] : -# 1386| r1386_3(glval<destructor_only>) = VariableAddress[d] : -# 1386| r1386_4(destructor_only) = Load[d] : &:r1386_3, ~m? -# 1386| mu1386_5(destructor_only) = Store[#temp1386:17] : &:r1386_2, r1386_4 -# 1386| r1386_6(destructor_only) = Load[#temp1386:17] : &:r1386_2, ~m? -# 1386| v1386_7(void) = Call[acceptValue] : func:r1386_1, 0:r1386_6 -# 1386| mu1386_8(unknown) = ^CallSideEffect : ~m? -# 1387| r1387_1(glval<destructor_only>) = VariableAddress[#temp1387:5] : -# 1387| r1387_2(destructor_only) = Constant[0] : -# 1387| mu1387_3(destructor_only) = Store[#temp1387:5] : &:r1387_1, r1387_2 -# 1387| r1387_4(glval<unknown>) = FunctionAddress[method] : -# 1387| v1387_5(void) = Call[method] : func:r1387_4, this:r1387_1 -# 1387| mu1387_6(unknown) = ^CallSideEffect : ~m? -# 1387| v1387_7(void) = ^IndirectReadSideEffect[-1] : &:r1387_1, ~m? -# 1387| mu1387_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1387_1 -# 1388| r1388_1(glval<destructor_only>) = VariableAddress[#temp1388:5] : -# 1388| r1388_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1388| r1388_3(destructor_only) = Call[returnValue] : func:r1388_2 -# 1388| mu1388_4(unknown) = ^CallSideEffect : ~m? -# 1388| mu1388_5(destructor_only) = Store[#temp1388:5] : &:r1388_1, r1388_3 -# 1388| r1388_6(glval<unknown>) = FunctionAddress[method] : -# 1388| v1388_7(void) = Call[method] : func:r1388_6, this:r1388_1 -# 1388| mu1388_8(unknown) = ^CallSideEffect : ~m? -# 1388| v1388_9(void) = ^IndirectReadSideEffect[-1] : &:r1388_1, ~m? -# 1388| mu1388_10(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1388_1 -# 1390| r1390_1(glval<destructor_only>) = VariableAddress[#temp1390:5] : -# 1390| r1390_2(glval<unknown>) = FunctionAddress[defaultConstruct] : -# 1390| r1390_3(destructor_only) = Call[defaultConstruct] : func:r1390_2 -# 1390| mu1390_4(unknown) = ^CallSideEffect : ~m? -# 1390| mu1390_5(destructor_only) = Store[#temp1390:5] : &:r1390_1, r1390_3 -# 1391| v1391_1(void) = NoOp : -# 1391| r1391_2(glval<destructor_only>) = VariableAddress[d2] : -# 1391| r1391_3(glval<unknown>) = FunctionAddress[~destructor_only] : -# 1391| v1391_4(void) = Call[~destructor_only] : func:r1391_3, this:r1391_2 -# 1391| mu1391_5(unknown) = ^CallSideEffect : ~m? -# 1391| v1391_6(void) = ^IndirectReadSideEffect[-1] : &:r1391_2, ~m? -# 1391| mu1391_7(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1391_2 -# 1391| r1391_8(glval<destructor_only>) = VariableAddress[d] : -# 1391| r1391_9(glval<unknown>) = FunctionAddress[~destructor_only] : -# 1391| v1391_10(void) = Call[~destructor_only] : func:r1391_9, this:r1391_8 -# 1391| mu1391_11(unknown) = ^CallSideEffect : ~m? -# 1391| v1391_12(void) = ^IndirectReadSideEffect[-1] : &:r1391_8, ~m? -# 1391| mu1391_13(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1391_8 -# 1381| v1381_4(void) = ReturnVoid : -# 1381| v1381_5(void) = AliasedUse : ~m? -# 1381| v1381_6(void) = ExitFunction : +# 1428| void temporary_destructor_only() +# 1428| Block 0 +# 1428| v1428_1(void) = EnterFunction : +# 1428| mu1428_2(unknown) = AliasedDefinition : +# 1428| mu1428_3(unknown) = InitializeNonLocal : +# 1429| r1429_1(glval<destructor_only>) = VariableAddress[d] : +# 1429| r1429_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1429| r1429_3(destructor_only) = Call[returnValue] : func:r1429_2 +# 1429| mu1429_4(unknown) = ^CallSideEffect : ~m? +# 1429| mu1429_5(destructor_only) = Store[d] : &:r1429_1, r1429_3 +# 1430| r1430_1(glval<destructor_only &>) = VariableAddress[rd] : +# 1430| r1430_2(glval<destructor_only>) = VariableAddress[#temp1430:33] : +# 1430| r1430_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1430| r1430_4(destructor_only) = Call[returnValue] : func:r1430_3 +# 1430| mu1430_5(unknown) = ^CallSideEffect : ~m? +# 1430| mu1430_6(destructor_only) = Store[#temp1430:33] : &:r1430_2, r1430_4 +# 1430| r1430_7(glval<destructor_only>) = Convert : r1430_2 +# 1430| r1430_8(destructor_only &) = CopyValue : r1430_7 +# 1430| mu1430_9(destructor_only &) = Store[rd] : &:r1430_1, r1430_8 +# 1431| r1431_1(glval<destructor_only>) = VariableAddress[d2] : +# 1431| mu1431_2(destructor_only) = Uninitialized[d2] : &:r1431_1 +# 1432| r1432_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1432| r1432_2(glval<destructor_only>) = VariableAddress[d] : +# 1432| r1432_3(glval<destructor_only>) = Convert : r1432_2 +# 1432| r1432_4(destructor_only &) = CopyValue : r1432_3 +# 1432| v1432_5(void) = Call[acceptRef] : func:r1432_1, 0:r1432_4 +# 1432| mu1432_6(unknown) = ^CallSideEffect : ~m? +# 1432| v1432_7(void) = ^BufferReadSideEffect[0] : &:r1432_4, ~m? +# 1433| r1433_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1433| r1433_2(glval<destructor_only>) = VariableAddress[#temp1433:17] : +# 1433| r1433_3(glval<destructor_only>) = VariableAddress[d] : +# 1433| r1433_4(destructor_only) = Load[d] : &:r1433_3, ~m? +# 1433| mu1433_5(destructor_only) = Store[#temp1433:17] : &:r1433_2, r1433_4 +# 1433| r1433_6(destructor_only) = Load[#temp1433:17] : &:r1433_2, ~m? +# 1433| v1433_7(void) = Call[acceptValue] : func:r1433_1, 0:r1433_6 +# 1433| mu1433_8(unknown) = ^CallSideEffect : ~m? +# 1434| r1434_1(glval<destructor_only>) = VariableAddress[#temp1434:5] : +# 1434| r1434_2(destructor_only) = Constant[0] : +# 1434| mu1434_3(destructor_only) = Store[#temp1434:5] : &:r1434_1, r1434_2 +# 1434| r1434_4(glval<unknown>) = FunctionAddress[method] : +# 1434| v1434_5(void) = Call[method] : func:r1434_4, this:r1434_1 +# 1434| mu1434_6(unknown) = ^CallSideEffect : ~m? +# 1434| v1434_7(void) = ^IndirectReadSideEffect[-1] : &:r1434_1, ~m? +# 1434| mu1434_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1434_1 +# 1435| r1435_1(glval<destructor_only>) = VariableAddress[#temp1435:5] : +# 1435| r1435_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1435| r1435_3(destructor_only) = Call[returnValue] : func:r1435_2 +# 1435| mu1435_4(unknown) = ^CallSideEffect : ~m? +# 1435| mu1435_5(destructor_only) = Store[#temp1435:5] : &:r1435_1, r1435_3 +# 1435| r1435_6(glval<unknown>) = FunctionAddress[method] : +# 1435| v1435_7(void) = Call[method] : func:r1435_6, this:r1435_1 +# 1435| mu1435_8(unknown) = ^CallSideEffect : ~m? +# 1435| v1435_9(void) = ^IndirectReadSideEffect[-1] : &:r1435_1, ~m? +# 1435| mu1435_10(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1435_1 +# 1437| r1437_1(glval<destructor_only>) = VariableAddress[#temp1437:5] : +# 1437| r1437_2(glval<unknown>) = FunctionAddress[defaultConstruct] : +# 1437| r1437_3(destructor_only) = Call[defaultConstruct] : func:r1437_2 +# 1437| mu1437_4(unknown) = ^CallSideEffect : ~m? +# 1437| mu1437_5(destructor_only) = Store[#temp1437:5] : &:r1437_1, r1437_3 +# 1438| v1438_1(void) = NoOp : +# 1438| r1438_2(glval<destructor_only>) = VariableAddress[d2] : +# 1438| r1438_3(glval<unknown>) = FunctionAddress[~destructor_only] : +# 1438| v1438_4(void) = Call[~destructor_only] : func:r1438_3, this:r1438_2 +# 1438| mu1438_5(unknown) = ^CallSideEffect : ~m? +# 1438| v1438_6(void) = ^IndirectReadSideEffect[-1] : &:r1438_2, ~m? +# 1438| mu1438_7(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_2 +# 1438| r1438_8(glval<destructor_only>) = VariableAddress[d] : +# 1438| r1438_9(glval<unknown>) = FunctionAddress[~destructor_only] : +# 1438| v1438_10(void) = Call[~destructor_only] : func:r1438_9, this:r1438_8 +# 1438| mu1438_11(unknown) = ^CallSideEffect : ~m? +# 1438| v1438_12(void) = ^IndirectReadSideEffect[-1] : &:r1438_8, ~m? +# 1438| mu1438_13(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1438_8 +# 1428| v1428_4(void) = ReturnVoid : +# 1428| v1428_5(void) = AliasedUse : ~m? +# 1428| v1428_6(void) = ExitFunction : -# 1393| void temporary_copy_constructor() -# 1393| Block 0 -# 1393| v1393_1(void) = EnterFunction : -# 1393| mu1393_2(unknown) = AliasedDefinition : -# 1393| mu1393_3(unknown) = InitializeNonLocal : -# 1394| r1394_1(glval<copy_constructor>) = VariableAddress[d] : -# 1394| r1394_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1394| r1394_3(copy_constructor) = Call[returnValue] : func:r1394_2 -# 1394| mu1394_4(unknown) = ^CallSideEffect : ~m? -# 1394| mu1394_5(copy_constructor) = Store[d] : &:r1394_1, r1394_3 -# 1395| r1395_1(glval<copy_constructor &>) = VariableAddress[rd] : -# 1395| r1395_2(glval<copy_constructor>) = VariableAddress[#temp1395:34] : -# 1395| r1395_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1395| r1395_4(copy_constructor) = Call[returnValue] : func:r1395_3 -# 1395| mu1395_5(unknown) = ^CallSideEffect : ~m? -# 1395| mu1395_6(copy_constructor) = Store[#temp1395:34] : &:r1395_2, r1395_4 -# 1395| r1395_7(glval<copy_constructor>) = Convert : r1395_2 -# 1395| r1395_8(copy_constructor &) = CopyValue : r1395_7 -# 1395| mu1395_9(copy_constructor &) = Store[rd] : &:r1395_1, r1395_8 -# 1396| r1396_1(glval<copy_constructor>) = VariableAddress[d2] : -# 1396| mu1396_2(copy_constructor) = Uninitialized[d2] : &:r1396_1 -# 1396| r1396_3(glval<unknown>) = FunctionAddress[copy_constructor] : -# 1396| v1396_4(void) = Call[copy_constructor] : func:r1396_3, this:r1396_1 -# 1396| mu1396_5(unknown) = ^CallSideEffect : ~m? -# 1396| mu1396_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1396_1 -# 1397| r1397_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1397| r1397_2(glval<copy_constructor>) = VariableAddress[d] : -# 1397| r1397_3(glval<copy_constructor>) = Convert : r1397_2 -# 1397| r1397_4(copy_constructor &) = CopyValue : r1397_3 -# 1397| v1397_5(void) = Call[acceptRef] : func:r1397_1, 0:r1397_4 -# 1397| mu1397_6(unknown) = ^CallSideEffect : ~m? -# 1397| v1397_7(void) = ^BufferReadSideEffect[0] : &:r1397_4, ~m? -# 1398| r1398_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1398| r1398_2(glval<copy_constructor>) = VariableAddress[#temp1398:17] : -# 1398| mu1398_3(copy_constructor) = Uninitialized[#temp1398:17] : &:r1398_2 -# 1398| r1398_4(glval<unknown>) = FunctionAddress[copy_constructor] : -# 1398| r1398_5(glval<copy_constructor>) = VariableAddress[d] : -# 1398| r1398_6(glval<copy_constructor>) = Convert : r1398_5 -# 1398| r1398_7(copy_constructor &) = CopyValue : r1398_6 -# 1398| v1398_8(void) = Call[copy_constructor] : func:r1398_4, this:r1398_2, 0:r1398_7 -# 1398| mu1398_9(unknown) = ^CallSideEffect : ~m? -# 1398| v1398_10(void) = ^BufferReadSideEffect[0] : &:r1398_7, ~m? -# 1398| mu1398_11(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1398_2 -# 1398| r1398_12(copy_constructor) = Load[#temp1398:17] : &:r1398_2, ~m? -# 1398| v1398_13(void) = Call[acceptValue] : func:r1398_1, 0:r1398_12 -# 1398| mu1398_14(unknown) = ^CallSideEffect : ~m? -# 1399| r1399_1(glval<copy_constructor>) = VariableAddress[#temp1399:5] : -# 1399| mu1399_2(copy_constructor) = Uninitialized[#temp1399:5] : &:r1399_1 -# 1399| r1399_3(glval<unknown>) = FunctionAddress[copy_constructor] : -# 1399| v1399_4(void) = Call[copy_constructor] : func:r1399_3, this:r1399_1 -# 1399| mu1399_5(unknown) = ^CallSideEffect : ~m? -# 1399| mu1399_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1399_1 -# 1399| r1399_7(glval<unknown>) = FunctionAddress[method] : -# 1399| v1399_8(void) = Call[method] : func:r1399_7, this:r1399_1 -# 1399| mu1399_9(unknown) = ^CallSideEffect : ~m? -# 1399| v1399_10(void) = ^IndirectReadSideEffect[-1] : &:r1399_1, ~m? -# 1399| mu1399_11(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1399_1 -# 1400| r1400_1(glval<copy_constructor>) = VariableAddress[#temp1400:5] : -# 1400| r1400_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1400| r1400_3(copy_constructor) = Call[returnValue] : func:r1400_2 -# 1400| mu1400_4(unknown) = ^CallSideEffect : ~m? -# 1400| mu1400_5(copy_constructor) = Store[#temp1400:5] : &:r1400_1, r1400_3 -# 1400| r1400_6(glval<unknown>) = FunctionAddress[method] : -# 1400| v1400_7(void) = Call[method] : func:r1400_6, this:r1400_1 -# 1400| mu1400_8(unknown) = ^CallSideEffect : ~m? -# 1400| v1400_9(void) = ^IndirectReadSideEffect[-1] : &:r1400_1, ~m? -# 1400| mu1400_10(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1400_1 -# 1401| r1401_1(glval<copy_constructor>) = VariableAddress[#temp1401:5] : -# 1401| r1401_2(glval<unknown>) = FunctionAddress[defaultConstruct] : -# 1401| r1401_3(copy_constructor) = Call[defaultConstruct] : func:r1401_2 -# 1401| mu1401_4(unknown) = ^CallSideEffect : ~m? -# 1401| mu1401_5(copy_constructor) = Store[#temp1401:5] : &:r1401_1, r1401_3 -# 1403| r1403_1(glval<int>) = VariableAddress[y] : -# 1403| r1403_2(glval<copy_constructor>) = VariableAddress[#temp1403:13] : -# 1403| r1403_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1403| r1403_4(copy_constructor) = Call[returnValue] : func:r1403_3 -# 1403| mu1403_5(unknown) = ^CallSideEffect : ~m? -# 1403| mu1403_6(copy_constructor) = Store[#temp1403:13] : &:r1403_2, r1403_4 -# 1403| r1403_7(glval<int>) = FieldAddress[y] : r1403_2 -# 1403| r1403_8(int) = Load[?] : &:r1403_7, ~m? -# 1403| mu1403_9(int) = Store[y] : &:r1403_1, r1403_8 -# 1404| v1404_1(void) = NoOp : -# 1393| v1393_4(void) = ReturnVoid : -# 1393| v1393_5(void) = AliasedUse : ~m? -# 1393| v1393_6(void) = ExitFunction : +# 1440| void temporary_copy_constructor() +# 1440| Block 0 +# 1440| v1440_1(void) = EnterFunction : +# 1440| mu1440_2(unknown) = AliasedDefinition : +# 1440| mu1440_3(unknown) = InitializeNonLocal : +# 1441| r1441_1(glval<copy_constructor>) = VariableAddress[d] : +# 1441| r1441_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1441| r1441_3(copy_constructor) = Call[returnValue] : func:r1441_2 +# 1441| mu1441_4(unknown) = ^CallSideEffect : ~m? +# 1441| mu1441_5(copy_constructor) = Store[d] : &:r1441_1, r1441_3 +# 1442| r1442_1(glval<copy_constructor &>) = VariableAddress[rd] : +# 1442| r1442_2(glval<copy_constructor>) = VariableAddress[#temp1442:34] : +# 1442| r1442_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1442| r1442_4(copy_constructor) = Call[returnValue] : func:r1442_3 +# 1442| mu1442_5(unknown) = ^CallSideEffect : ~m? +# 1442| mu1442_6(copy_constructor) = Store[#temp1442:34] : &:r1442_2, r1442_4 +# 1442| r1442_7(glval<copy_constructor>) = Convert : r1442_2 +# 1442| r1442_8(copy_constructor &) = CopyValue : r1442_7 +# 1442| mu1442_9(copy_constructor &) = Store[rd] : &:r1442_1, r1442_8 +# 1443| r1443_1(glval<copy_constructor>) = VariableAddress[d2] : +# 1443| mu1443_2(copy_constructor) = Uninitialized[d2] : &:r1443_1 +# 1443| r1443_3(glval<unknown>) = FunctionAddress[copy_constructor] : +# 1443| v1443_4(void) = Call[copy_constructor] : func:r1443_3, this:r1443_1 +# 1443| mu1443_5(unknown) = ^CallSideEffect : ~m? +# 1443| mu1443_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1443_1 +# 1444| r1444_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1444| r1444_2(glval<copy_constructor>) = VariableAddress[d] : +# 1444| r1444_3(glval<copy_constructor>) = Convert : r1444_2 +# 1444| r1444_4(copy_constructor &) = CopyValue : r1444_3 +# 1444| v1444_5(void) = Call[acceptRef] : func:r1444_1, 0:r1444_4 +# 1444| mu1444_6(unknown) = ^CallSideEffect : ~m? +# 1444| v1444_7(void) = ^BufferReadSideEffect[0] : &:r1444_4, ~m? +# 1445| r1445_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1445| r1445_2(glval<copy_constructor>) = VariableAddress[#temp1445:17] : +# 1445| mu1445_3(copy_constructor) = Uninitialized[#temp1445:17] : &:r1445_2 +# 1445| r1445_4(glval<unknown>) = FunctionAddress[copy_constructor] : +# 1445| r1445_5(glval<copy_constructor>) = VariableAddress[d] : +# 1445| r1445_6(glval<copy_constructor>) = Convert : r1445_5 +# 1445| r1445_7(copy_constructor &) = CopyValue : r1445_6 +# 1445| v1445_8(void) = Call[copy_constructor] : func:r1445_4, this:r1445_2, 0:r1445_7 +# 1445| mu1445_9(unknown) = ^CallSideEffect : ~m? +# 1445| v1445_10(void) = ^BufferReadSideEffect[0] : &:r1445_7, ~m? +# 1445| mu1445_11(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1445_2 +# 1445| r1445_12(copy_constructor) = Load[#temp1445:17] : &:r1445_2, ~m? +# 1445| v1445_13(void) = Call[acceptValue] : func:r1445_1, 0:r1445_12 +# 1445| mu1445_14(unknown) = ^CallSideEffect : ~m? +# 1446| r1446_1(glval<copy_constructor>) = VariableAddress[#temp1446:5] : +# 1446| mu1446_2(copy_constructor) = Uninitialized[#temp1446:5] : &:r1446_1 +# 1446| r1446_3(glval<unknown>) = FunctionAddress[copy_constructor] : +# 1446| v1446_4(void) = Call[copy_constructor] : func:r1446_3, this:r1446_1 +# 1446| mu1446_5(unknown) = ^CallSideEffect : ~m? +# 1446| mu1446_6(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1446_1 +# 1446| r1446_7(glval<unknown>) = FunctionAddress[method] : +# 1446| v1446_8(void) = Call[method] : func:r1446_7, this:r1446_1 +# 1446| mu1446_9(unknown) = ^CallSideEffect : ~m? +# 1446| v1446_10(void) = ^IndirectReadSideEffect[-1] : &:r1446_1, ~m? +# 1446| mu1446_11(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1446_1 +# 1447| r1447_1(glval<copy_constructor>) = VariableAddress[#temp1447:5] : +# 1447| r1447_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1447| r1447_3(copy_constructor) = Call[returnValue] : func:r1447_2 +# 1447| mu1447_4(unknown) = ^CallSideEffect : ~m? +# 1447| mu1447_5(copy_constructor) = Store[#temp1447:5] : &:r1447_1, r1447_3 +# 1447| r1447_6(glval<unknown>) = FunctionAddress[method] : +# 1447| v1447_7(void) = Call[method] : func:r1447_6, this:r1447_1 +# 1447| mu1447_8(unknown) = ^CallSideEffect : ~m? +# 1447| v1447_9(void) = ^IndirectReadSideEffect[-1] : &:r1447_1, ~m? +# 1447| mu1447_10(copy_constructor) = ^IndirectMayWriteSideEffect[-1] : &:r1447_1 +# 1448| r1448_1(glval<copy_constructor>) = VariableAddress[#temp1448:5] : +# 1448| r1448_2(glval<unknown>) = FunctionAddress[defaultConstruct] : +# 1448| r1448_3(copy_constructor) = Call[defaultConstruct] : func:r1448_2 +# 1448| mu1448_4(unknown) = ^CallSideEffect : ~m? +# 1448| mu1448_5(copy_constructor) = Store[#temp1448:5] : &:r1448_1, r1448_3 +# 1450| r1450_1(glval<int>) = VariableAddress[y] : +# 1450| r1450_2(glval<copy_constructor>) = VariableAddress[#temp1450:13] : +# 1450| r1450_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1450| r1450_4(copy_constructor) = Call[returnValue] : func:r1450_3 +# 1450| mu1450_5(unknown) = ^CallSideEffect : ~m? +# 1450| mu1450_6(copy_constructor) = Store[#temp1450:13] : &:r1450_2, r1450_4 +# 1450| r1450_7(glval<int>) = FieldAddress[y] : r1450_2 +# 1450| r1450_8(int) = Load[?] : &:r1450_7, ~m? +# 1450| mu1450_9(int) = Store[y] : &:r1450_1, r1450_8 +# 1451| v1451_1(void) = NoOp : +# 1440| v1440_4(void) = ReturnVoid : +# 1440| v1440_5(void) = AliasedUse : ~m? +# 1440| v1440_6(void) = ExitFunction : -# 1406| void temporary_point() -# 1406| Block 0 -# 1406| v1406_1(void) = EnterFunction : -# 1406| mu1406_2(unknown) = AliasedDefinition : -# 1406| mu1406_3(unknown) = InitializeNonLocal : -# 1407| r1407_1(glval<Point>) = VariableAddress[p] : -# 1407| r1407_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1407| r1407_3(Point) = Call[returnValue] : func:r1407_2 -# 1407| mu1407_4(unknown) = ^CallSideEffect : ~m? -# 1407| mu1407_5(Point) = Store[p] : &:r1407_1, r1407_3 -# 1408| r1408_1(glval<Point &>) = VariableAddress[rp] : -# 1408| r1408_2(glval<Point>) = VariableAddress[#temp1408:23] : -# 1408| r1408_3(glval<unknown>) = FunctionAddress[returnValue] : -# 1408| r1408_4(Point) = Call[returnValue] : func:r1408_3 -# 1408| mu1408_5(unknown) = ^CallSideEffect : ~m? -# 1408| mu1408_6(Point) = Store[#temp1408:23] : &:r1408_2, r1408_4 -# 1408| r1408_7(glval<Point>) = Convert : r1408_2 -# 1408| r1408_8(Point &) = CopyValue : r1408_7 -# 1408| mu1408_9(Point &) = Store[rp] : &:r1408_1, r1408_8 -# 1410| r1410_1(glval<unknown>) = FunctionAddress[acceptRef] : -# 1410| r1410_2(glval<Point>) = VariableAddress[p] : -# 1410| r1410_3(glval<Point>) = Convert : r1410_2 -# 1410| r1410_4(Point &) = CopyValue : r1410_3 -# 1410| v1410_5(void) = Call[acceptRef] : func:r1410_1, 0:r1410_4 -# 1410| mu1410_6(unknown) = ^CallSideEffect : ~m? -# 1410| v1410_7(void) = ^BufferReadSideEffect[0] : &:r1410_4, ~m? -# 1411| r1411_1(glval<unknown>) = FunctionAddress[acceptValue] : -# 1411| r1411_2(glval<Point>) = VariableAddress[p] : -# 1411| r1411_3(Point) = Load[p] : &:r1411_2, ~m? -# 1411| v1411_4(void) = Call[acceptValue] : func:r1411_1, 0:r1411_3 -# 1411| mu1411_5(unknown) = ^CallSideEffect : ~m? -# 1412| r1412_1(int) = Constant[0] : -# 1413| r1413_1(glval<int>) = VariableAddress[y] : -# 1413| r1413_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1413| r1413_3(Point) = Call[returnValue] : func:r1413_2 -# 1413| mu1413_4(unknown) = ^CallSideEffect : ~m? -# 1413| r1413_5(glval<Point>) = VariableAddress[#temp1413:13] : -# 1413| mu1413_6(Point) = Store[#temp1413:13] : &:r1413_5, r1413_3 -# 1413| r1413_7(glval<int>) = FieldAddress[y] : r1413_5 -# 1413| r1413_8(int) = Load[?] : &:r1413_7, ~m? -# 1413| mu1413_9(int) = Store[y] : &:r1413_1, r1413_8 -# 1415| r1415_1(glval<unknown>) = FunctionAddress[defaultConstruct] : -# 1415| r1415_2(Point) = Call[defaultConstruct] : func:r1415_1 -# 1415| mu1415_3(unknown) = ^CallSideEffect : ~m? -# 1416| v1416_1(void) = NoOp : -# 1406| v1406_4(void) = ReturnVoid : -# 1406| v1406_5(void) = AliasedUse : ~m? -# 1406| v1406_6(void) = ExitFunction : +# 1453| void temporary_point() +# 1453| Block 0 +# 1453| v1453_1(void) = EnterFunction : +# 1453| mu1453_2(unknown) = AliasedDefinition : +# 1453| mu1453_3(unknown) = InitializeNonLocal : +# 1454| r1454_1(glval<Point>) = VariableAddress[p] : +# 1454| r1454_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1454| r1454_3(Point) = Call[returnValue] : func:r1454_2 +# 1454| mu1454_4(unknown) = ^CallSideEffect : ~m? +# 1454| mu1454_5(Point) = Store[p] : &:r1454_1, r1454_3 +# 1455| r1455_1(glval<Point &>) = VariableAddress[rp] : +# 1455| r1455_2(glval<Point>) = VariableAddress[#temp1455:23] : +# 1455| r1455_3(glval<unknown>) = FunctionAddress[returnValue] : +# 1455| r1455_4(Point) = Call[returnValue] : func:r1455_3 +# 1455| mu1455_5(unknown) = ^CallSideEffect : ~m? +# 1455| mu1455_6(Point) = Store[#temp1455:23] : &:r1455_2, r1455_4 +# 1455| r1455_7(glval<Point>) = Convert : r1455_2 +# 1455| r1455_8(Point &) = CopyValue : r1455_7 +# 1455| mu1455_9(Point &) = Store[rp] : &:r1455_1, r1455_8 +# 1457| r1457_1(glval<unknown>) = FunctionAddress[acceptRef] : +# 1457| r1457_2(glval<Point>) = VariableAddress[p] : +# 1457| r1457_3(glval<Point>) = Convert : r1457_2 +# 1457| r1457_4(Point &) = CopyValue : r1457_3 +# 1457| v1457_5(void) = Call[acceptRef] : func:r1457_1, 0:r1457_4 +# 1457| mu1457_6(unknown) = ^CallSideEffect : ~m? +# 1457| v1457_7(void) = ^BufferReadSideEffect[0] : &:r1457_4, ~m? +# 1458| r1458_1(glval<unknown>) = FunctionAddress[acceptValue] : +# 1458| r1458_2(glval<Point>) = VariableAddress[p] : +# 1458| r1458_3(Point) = Load[p] : &:r1458_2, ~m? +# 1458| v1458_4(void) = Call[acceptValue] : func:r1458_1, 0:r1458_3 +# 1458| mu1458_5(unknown) = ^CallSideEffect : ~m? +# 1459| r1459_1(int) = Constant[0] : +# 1460| r1460_1(glval<int>) = VariableAddress[y] : +# 1460| r1460_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1460| r1460_3(Point) = Call[returnValue] : func:r1460_2 +# 1460| mu1460_4(unknown) = ^CallSideEffect : ~m? +# 1460| r1460_5(glval<Point>) = VariableAddress[#temp1460:13] : +# 1460| mu1460_6(Point) = Store[#temp1460:13] : &:r1460_5, r1460_3 +# 1460| r1460_7(glval<int>) = FieldAddress[y] : r1460_5 +# 1460| r1460_8(int) = Load[?] : &:r1460_7, ~m? +# 1460| mu1460_9(int) = Store[y] : &:r1460_1, r1460_8 +# 1462| r1462_1(glval<unknown>) = FunctionAddress[defaultConstruct] : +# 1462| r1462_2(Point) = Call[defaultConstruct] : func:r1462_1 +# 1462| mu1462_3(unknown) = ^CallSideEffect : ~m? +# 1463| v1463_1(void) = NoOp : +# 1453| v1453_4(void) = ReturnVoid : +# 1453| v1453_5(void) = AliasedUse : ~m? +# 1453| v1453_6(void) = ExitFunction : -# 1423| void temporary_unusual_fields() -# 1423| Block 0 -# 1423| v1423_1(void) = EnterFunction : -# 1423| mu1423_2(unknown) = AliasedDefinition : -# 1423| mu1423_3(unknown) = InitializeNonLocal : -# 1424| r1424_1(glval<int &>) = VariableAddress[rx] : -# 1424| r1424_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1424| r1424_3(UnusualFields) = Call[returnValue] : func:r1424_2 -# 1424| mu1424_4(unknown) = ^CallSideEffect : ~m? -# 1424| r1424_5(glval<UnusualFields>) = VariableAddress[#temp1424:21] : -# 1424| mu1424_6(UnusualFields) = Store[#temp1424:21] : &:r1424_5, r1424_3 -# 1424| r1424_7(glval<int &>) = FieldAddress[r] : r1424_5 -# 1424| r1424_8(int &) = Load[?] : &:r1424_7, ~m? -# 1424| r1424_9(glval<int>) = CopyValue : r1424_8 -# 1424| r1424_10(glval<int>) = Convert : r1424_9 -# 1424| r1424_11(int &) = CopyValue : r1424_10 -# 1424| mu1424_12(int &) = Store[rx] : &:r1424_1, r1424_11 -# 1425| r1425_1(glval<int>) = VariableAddress[x] : -# 1425| r1425_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1425| r1425_3(UnusualFields) = Call[returnValue] : func:r1425_2 -# 1425| mu1425_4(unknown) = ^CallSideEffect : ~m? -# 1425| r1425_5(glval<UnusualFields>) = VariableAddress[#temp1425:13] : -# 1425| mu1425_6(UnusualFields) = Store[#temp1425:13] : &:r1425_5, r1425_3 -# 1425| r1425_7(glval<int &>) = FieldAddress[r] : r1425_5 -# 1425| r1425_8(int &) = Load[?] : &:r1425_7, ~m? -# 1425| r1425_9(int) = Load[?] : &:r1425_8, ~m? -# 1425| mu1425_10(int) = Store[x] : &:r1425_1, r1425_9 -# 1427| r1427_1(glval<float &>) = VariableAddress[rf] : -# 1427| r1427_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1427| r1427_3(UnusualFields) = Call[returnValue] : func:r1427_2 -# 1427| mu1427_4(unknown) = ^CallSideEffect : ~m? -# 1427| r1427_5(glval<UnusualFields>) = VariableAddress[#temp1427:23] : -# 1427| mu1427_6(UnusualFields) = Store[#temp1427:23] : &:r1427_5, r1427_3 -# 1427| r1427_7(glval<float[10]>) = FieldAddress[a] : r1427_5 -# 1427| r1427_8(float *) = Convert : r1427_7 -# 1427| r1427_9(int) = Constant[3] : -# 1427| r1427_10(glval<float>) = PointerAdd[4] : r1427_8, r1427_9 -# 1427| r1427_11(glval<float>) = Convert : r1427_10 -# 1427| r1427_12(float &) = CopyValue : r1427_11 -# 1427| mu1427_13(float &) = Store[rf] : &:r1427_1, r1427_12 -# 1428| r1428_1(glval<float>) = VariableAddress[f] : -# 1428| r1428_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1428| r1428_3(UnusualFields) = Call[returnValue] : func:r1428_2 -# 1428| mu1428_4(unknown) = ^CallSideEffect : ~m? -# 1428| r1428_5(glval<UnusualFields>) = VariableAddress[#temp1428:15] : -# 1428| mu1428_6(UnusualFields) = Store[#temp1428:15] : &:r1428_5, r1428_3 -# 1428| r1428_7(glval<float[10]>) = FieldAddress[a] : r1428_5 -# 1428| r1428_8(float *) = Convert : r1428_7 -# 1428| r1428_9(int) = Constant[5] : -# 1428| r1428_10(glval<float>) = PointerAdd[4] : r1428_8, r1428_9 -# 1428| r1428_11(float) = Load[?] : &:r1428_10, ~m? -# 1428| mu1428_12(float) = Store[f] : &:r1428_1, r1428_11 -# 1429| v1429_1(void) = NoOp : -# 1423| v1423_4(void) = ReturnVoid : -# 1423| v1423_5(void) = AliasedUse : ~m? -# 1423| v1423_6(void) = ExitFunction : +# 1470| void temporary_unusual_fields() +# 1470| Block 0 +# 1470| v1470_1(void) = EnterFunction : +# 1470| mu1470_2(unknown) = AliasedDefinition : +# 1470| mu1470_3(unknown) = InitializeNonLocal : +# 1471| r1471_1(glval<int &>) = VariableAddress[rx] : +# 1471| r1471_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1471| r1471_3(UnusualFields) = Call[returnValue] : func:r1471_2 +# 1471| mu1471_4(unknown) = ^CallSideEffect : ~m? +# 1471| r1471_5(glval<UnusualFields>) = VariableAddress[#temp1471:21] : +# 1471| mu1471_6(UnusualFields) = Store[#temp1471:21] : &:r1471_5, r1471_3 +# 1471| r1471_7(glval<int &>) = FieldAddress[r] : r1471_5 +# 1471| r1471_8(int &) = Load[?] : &:r1471_7, ~m? +# 1471| r1471_9(glval<int>) = CopyValue : r1471_8 +# 1471| r1471_10(glval<int>) = Convert : r1471_9 +# 1471| r1471_11(int &) = CopyValue : r1471_10 +# 1471| mu1471_12(int &) = Store[rx] : &:r1471_1, r1471_11 +# 1472| r1472_1(glval<int>) = VariableAddress[x] : +# 1472| r1472_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1472| r1472_3(UnusualFields) = Call[returnValue] : func:r1472_2 +# 1472| mu1472_4(unknown) = ^CallSideEffect : ~m? +# 1472| r1472_5(glval<UnusualFields>) = VariableAddress[#temp1472:13] : +# 1472| mu1472_6(UnusualFields) = Store[#temp1472:13] : &:r1472_5, r1472_3 +# 1472| r1472_7(glval<int &>) = FieldAddress[r] : r1472_5 +# 1472| r1472_8(int &) = Load[?] : &:r1472_7, ~m? +# 1472| r1472_9(int) = Load[?] : &:r1472_8, ~m? +# 1472| mu1472_10(int) = Store[x] : &:r1472_1, r1472_9 +# 1474| r1474_1(glval<float &>) = VariableAddress[rf] : +# 1474| r1474_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1474| r1474_3(UnusualFields) = Call[returnValue] : func:r1474_2 +# 1474| mu1474_4(unknown) = ^CallSideEffect : ~m? +# 1474| r1474_5(glval<UnusualFields>) = VariableAddress[#temp1474:23] : +# 1474| mu1474_6(UnusualFields) = Store[#temp1474:23] : &:r1474_5, r1474_3 +# 1474| r1474_7(glval<float[10]>) = FieldAddress[a] : r1474_5 +# 1474| r1474_8(float *) = Convert : r1474_7 +# 1474| r1474_9(int) = Constant[3] : +# 1474| r1474_10(glval<float>) = PointerAdd[4] : r1474_8, r1474_9 +# 1474| r1474_11(glval<float>) = Convert : r1474_10 +# 1474| r1474_12(float &) = CopyValue : r1474_11 +# 1474| mu1474_13(float &) = Store[rf] : &:r1474_1, r1474_12 +# 1475| r1475_1(glval<float>) = VariableAddress[f] : +# 1475| r1475_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1475| r1475_3(UnusualFields) = Call[returnValue] : func:r1475_2 +# 1475| mu1475_4(unknown) = ^CallSideEffect : ~m? +# 1475| r1475_5(glval<UnusualFields>) = VariableAddress[#temp1475:15] : +# 1475| mu1475_6(UnusualFields) = Store[#temp1475:15] : &:r1475_5, r1475_3 +# 1475| r1475_7(glval<float[10]>) = FieldAddress[a] : r1475_5 +# 1475| r1475_8(float *) = Convert : r1475_7 +# 1475| r1475_9(int) = Constant[5] : +# 1475| r1475_10(glval<float>) = PointerAdd[4] : r1475_8, r1475_9 +# 1475| r1475_11(float) = Load[?] : &:r1475_10, ~m? +# 1475| mu1475_12(float) = Store[f] : &:r1475_1, r1475_11 +# 1476| v1476_1(void) = NoOp : +# 1470| v1470_4(void) = ReturnVoid : +# 1470| v1470_5(void) = AliasedUse : ~m? +# 1470| v1470_6(void) = ExitFunction : -# 1445| void temporary_hierarchy() -# 1445| Block 0 -# 1445| v1445_1(void) = EnterFunction : -# 1445| mu1445_2(unknown) = AliasedDefinition : -# 1445| mu1445_3(unknown) = InitializeNonLocal : -# 1446| r1446_1(glval<POD_Base>) = VariableAddress[b] : +# 1492| void temporary_hierarchy() +# 1492| Block 0 +# 1492| v1492_1(void) = EnterFunction : +# 1492| mu1492_2(unknown) = AliasedDefinition : +# 1492| mu1492_3(unknown) = InitializeNonLocal : +# 1493| r1493_1(glval<POD_Base>) = VariableAddress[b] : #-----| r0_1(glval<POD_Middle>) = VariableAddress[#temp0:0] : -# 1446| r1446_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1446| r1446_3(POD_Middle) = Call[returnValue] : func:r1446_2 -# 1446| mu1446_4(unknown) = ^CallSideEffect : ~m? -# 1446| mu1446_5(POD_Middle) = Store[#temp0:0] : &:r0_1, r1446_3 +# 1493| r1493_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1493| r1493_3(POD_Middle) = Call[returnValue] : func:r1493_2 +# 1493| mu1493_4(unknown) = ^CallSideEffect : ~m? +# 1493| mu1493_5(POD_Middle) = Store[#temp0:0] : &:r0_1, r1493_3 #-----| r0_2(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_1 #-----| r0_3(POD_Base) = Load[?] : &:r0_2, ~m? -#-----| mu0_4(POD_Base) = Store[b] : &:r1446_1, r0_3 -# 1447| r1447_1(glval<POD_Derived>) = VariableAddress[#temp1447:9] : -# 1447| r1447_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1447| r1447_3(POD_Derived) = Call[returnValue] : func:r1447_2 -# 1447| mu1447_4(unknown) = ^CallSideEffect : ~m? -# 1447| mu1447_5(POD_Derived) = Store[#temp1447:9] : &:r1447_1, r1447_3 -# 1447| r1447_6(glval<POD_Middle>) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1447_1 -# 1447| r1447_7(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1447_6 -# 1447| r1447_8(POD_Base) = Load[?] : &:r1447_7, ~m? -# 1447| r1447_9(glval<POD_Base>) = VariableAddress[b] : -# 1447| mu1447_10(POD_Base) = Store[b] : &:r1447_9, r1447_8 -# 1448| r1448_1(glval<int>) = VariableAddress[x] : +#-----| mu0_4(POD_Base) = Store[b] : &:r1493_1, r0_3 +# 1494| r1494_1(glval<POD_Derived>) = VariableAddress[#temp1494:9] : +# 1494| r1494_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1494| r1494_3(POD_Derived) = Call[returnValue] : func:r1494_2 +# 1494| mu1494_4(unknown) = ^CallSideEffect : ~m? +# 1494| mu1494_5(POD_Derived) = Store[#temp1494:9] : &:r1494_1, r1494_3 +# 1494| r1494_6(glval<POD_Middle>) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r1494_1 +# 1494| r1494_7(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r1494_6 +# 1494| r1494_8(POD_Base) = Load[?] : &:r1494_7, ~m? +# 1494| r1494_9(glval<POD_Base>) = VariableAddress[b] : +# 1494| mu1494_10(POD_Base) = Store[b] : &:r1494_9, r1494_8 +# 1495| r1495_1(glval<int>) = VariableAddress[x] : #-----| r0_5(glval<POD_Derived>) = VariableAddress[#temp0:0] : -# 1448| r1448_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1448| r1448_3(POD_Derived) = Call[returnValue] : func:r1448_2 -# 1448| mu1448_4(unknown) = ^CallSideEffect : ~m? -# 1448| mu1448_5(POD_Derived) = Store[#temp0:0] : &:r0_5, r1448_3 +# 1495| r1495_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1495| r1495_3(POD_Derived) = Call[returnValue] : func:r1495_2 +# 1495| mu1495_4(unknown) = ^CallSideEffect : ~m? +# 1495| mu1495_5(POD_Derived) = Store[#temp0:0] : &:r0_5, r1495_3 #-----| r0_6(glval<POD_Middle>) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_5 #-----| r0_7(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_6 -# 1448| r1448_6(glval<int>) = FieldAddress[x] : r0_7 -# 1448| r1448_7(int) = Load[?] : &:r1448_6, ~m? -# 1448| mu1448_8(int) = Store[x] : &:r1448_1, r1448_7 -# 1449| r1449_1(glval<float>) = VariableAddress[f] : +# 1495| r1495_6(glval<int>) = FieldAddress[x] : r0_7 +# 1495| r1495_7(int) = Load[?] : &:r1495_6, ~m? +# 1495| mu1495_8(int) = Store[x] : &:r1495_1, r1495_7 +# 1496| r1496_1(glval<float>) = VariableAddress[f] : #-----| r0_8(glval<POD_Derived>) = VariableAddress[#temp0:0] : -# 1449| r1449_2(glval<unknown>) = FunctionAddress[returnValue] : -# 1449| r1449_3(POD_Derived) = Call[returnValue] : func:r1449_2 -# 1449| mu1449_4(unknown) = ^CallSideEffect : ~m? -# 1449| mu1449_5(POD_Derived) = Store[#temp0:0] : &:r0_8, r1449_3 +# 1496| r1496_2(glval<unknown>) = FunctionAddress[returnValue] : +# 1496| r1496_3(POD_Derived) = Call[returnValue] : func:r1496_2 +# 1496| mu1496_4(unknown) = ^CallSideEffect : ~m? +# 1496| mu1496_5(POD_Derived) = Store[#temp0:0] : &:r0_8, r1496_3 #-----| r0_9(glval<POD_Middle>) = ConvertToNonVirtualBase[POD_Derived : POD_Middle] : r0_8 #-----| r0_10(glval<POD_Base>) = ConvertToNonVirtualBase[POD_Middle : POD_Base] : r0_9 #-----| r0_11(glval<POD_Base>) = Convert : r0_10 -# 1449| r1449_6(glval<unknown>) = FunctionAddress[f] : -# 1449| r1449_7(float) = Call[f] : func:r1449_6, this:r0_11 -# 1449| mu1449_8(unknown) = ^CallSideEffect : ~m? +# 1496| r1496_6(glval<unknown>) = FunctionAddress[f] : +# 1496| r1496_7(float) = Call[f] : func:r1496_6, this:r0_11 +# 1496| mu1496_8(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_11, ~m? -# 1449| mu1449_9(float) = Store[f] : &:r1449_1, r1449_7 -# 1450| v1450_1(void) = NoOp : -# 1445| v1445_4(void) = ReturnVoid : -# 1445| v1445_5(void) = AliasedUse : ~m? -# 1445| v1445_6(void) = ExitFunction : +# 1496| mu1496_9(float) = Store[f] : &:r1496_1, r1496_7 +# 1497| v1497_1(void) = NoOp : +# 1492| v1492_4(void) = ReturnVoid : +# 1492| v1492_5(void) = AliasedUse : ~m? +# 1492| v1492_6(void) = ExitFunction : -# 1453| void Inheritance_Test_B::~Inheritance_Test_B() -# 1453| Block 0 -# 1453| v1453_1(void) = EnterFunction : -# 1453| mu1453_2(unknown) = AliasedDefinition : -# 1453| mu1453_3(unknown) = InitializeNonLocal : -# 1453| r1453_4(glval<unknown>) = VariableAddress[#this] : -# 1453| mu1453_5(glval<Inheritance_Test_B>) = InitializeParameter[#this] : &:r1453_4 -# 1453| r1453_6(glval<Inheritance_Test_B>) = Load[#this] : &:r1453_4, ~m? -# 1453| mu1453_7(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1453_6 -# 1453| v1453_8(void) = NoOp : -# 1453| v1453_9(void) = ReturnIndirection[#this] : &:r1453_6, ~m? -# 1453| v1453_10(void) = ReturnVoid : -# 1453| v1453_11(void) = AliasedUse : ~m? -# 1453| v1453_12(void) = ExitFunction : +# 1500| void Inheritance_Test_B::~Inheritance_Test_B() +# 1500| Block 0 +# 1500| v1500_1(void) = EnterFunction : +# 1500| mu1500_2(unknown) = AliasedDefinition : +# 1500| mu1500_3(unknown) = InitializeNonLocal : +# 1500| r1500_4(glval<unknown>) = VariableAddress[#this] : +# 1500| mu1500_5(glval<Inheritance_Test_B>) = InitializeParameter[#this] : &:r1500_4 +# 1500| r1500_6(glval<Inheritance_Test_B>) = Load[#this] : &:r1500_4, ~m? +# 1500| mu1500_7(Inheritance_Test_B) = InitializeIndirection[#this] : &:r1500_6 +# 1500| v1500_8(void) = NoOp : +# 1500| v1500_9(void) = ReturnIndirection[#this] : &:r1500_6, ~m? +# 1500| v1500_10(void) = ReturnVoid : +# 1500| v1500_11(void) = AliasedUse : ~m? +# 1500| v1500_12(void) = ExitFunction : -# 1459| void Inheritance_Test_A::Inheritance_Test_A() -# 1459| Block 0 -# 1459| v1459_1(void) = EnterFunction : -# 1459| mu1459_2(unknown) = AliasedDefinition : -# 1459| mu1459_3(unknown) = InitializeNonLocal : -# 1459| r1459_4(glval<unknown>) = VariableAddress[#this] : -# 1459| mu1459_5(glval<Inheritance_Test_A>) = InitializeParameter[#this] : &:r1459_4 -# 1459| r1459_6(glval<Inheritance_Test_A>) = Load[#this] : &:r1459_4, ~m? -# 1459| mu1459_7(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1459_6 -# 1459| r1459_8(glval<int>) = FieldAddress[x] : mu1459_5 -# 1459| r1459_9(int) = Constant[42] : -# 1459| mu1459_10(int) = Store[?] : &:r1459_8, r1459_9 -# 1460| r1460_1(int) = Constant[3] : -# 1460| r1460_2(glval<unknown>) = VariableAddress[#this] : -# 1460| r1460_3(Inheritance_Test_A *) = Load[#this] : &:r1460_2, ~m? -# 1460| r1460_4(glval<int>) = FieldAddress[y] : r1460_3 -# 1460| mu1460_5(int) = Store[?] : &:r1460_4, r1460_1 -# 1461| v1461_1(void) = NoOp : -# 1459| v1459_11(void) = ReturnIndirection[#this] : &:r1459_6, ~m? -# 1459| v1459_12(void) = ReturnVoid : -# 1459| v1459_13(void) = AliasedUse : ~m? -# 1459| v1459_14(void) = ExitFunction : +# 1506| void Inheritance_Test_A::Inheritance_Test_A() +# 1506| Block 0 +# 1506| v1506_1(void) = EnterFunction : +# 1506| mu1506_2(unknown) = AliasedDefinition : +# 1506| mu1506_3(unknown) = InitializeNonLocal : +# 1506| r1506_4(glval<unknown>) = VariableAddress[#this] : +# 1506| mu1506_5(glval<Inheritance_Test_A>) = InitializeParameter[#this] : &:r1506_4 +# 1506| r1506_6(glval<Inheritance_Test_A>) = Load[#this] : &:r1506_4, ~m? +# 1506| mu1506_7(Inheritance_Test_A) = InitializeIndirection[#this] : &:r1506_6 +# 1506| r1506_8(glval<int>) = FieldAddress[x] : mu1506_5 +# 1506| r1506_9(int) = Constant[42] : +# 1506| mu1506_10(int) = Store[?] : &:r1506_8, r1506_9 +# 1507| r1507_1(int) = Constant[3] : +# 1507| r1507_2(glval<unknown>) = VariableAddress[#this] : +# 1507| r1507_3(Inheritance_Test_A *) = Load[#this] : &:r1507_2, ~m? +# 1507| r1507_4(glval<int>) = FieldAddress[y] : r1507_3 +# 1507| mu1507_5(int) = Store[?] : &:r1507_4, r1507_1 +# 1508| v1508_1(void) = NoOp : +# 1506| v1506_11(void) = ReturnIndirection[#this] : &:r1506_6, ~m? +# 1506| v1506_12(void) = ReturnVoid : +# 1506| v1506_13(void) = AliasedUse : ~m? +# 1506| v1506_14(void) = ExitFunction : -# 1464| void array_structured_binding() -# 1464| Block 0 -# 1464| v1464_1(void) = EnterFunction : -# 1464| mu1464_2(unknown) = AliasedDefinition : -# 1464| mu1464_3(unknown) = InitializeNonLocal : -# 1465| r1465_1(glval<int[2]>) = VariableAddress[xs] : -# 1465| mu1465_2(int[2]) = Uninitialized[xs] : &:r1465_1 -# 1465| r1465_3(int) = Constant[0] : -# 1465| r1465_4(glval<int>) = PointerAdd[4] : r1465_1, r1465_3 -# 1465| r1465_5(int) = Constant[1] : -# 1465| mu1465_6(int) = Store[?] : &:r1465_4, r1465_5 -# 1465| r1465_7(int) = Constant[1] : -# 1465| r1465_8(glval<int>) = PointerAdd[4] : r1465_1, r1465_7 -# 1465| r1465_9(int) = Constant[2] : -# 1465| mu1465_10(int) = Store[?] : &:r1465_8, r1465_9 -# 1468| r1468_1(glval<int(&)[2]>) = VariableAddress[(unnamed local variable)] : -# 1468| r1468_2(glval<int[2]>) = VariableAddress[xs] : -# 1468| r1468_3(int(&)[2]) = CopyValue : r1468_2 -# 1468| mu1468_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1468_1, r1468_3 -# 1468| r1468_5(glval<int &>) = VariableAddress[x0] : +# 1511| void array_structured_binding() +# 1511| Block 0 +# 1511| v1511_1(void) = EnterFunction : +# 1511| mu1511_2(unknown) = AliasedDefinition : +# 1511| mu1511_3(unknown) = InitializeNonLocal : +# 1512| r1512_1(glval<int[2]>) = VariableAddress[xs] : +# 1512| mu1512_2(int[2]) = Uninitialized[xs] : &:r1512_1 +# 1512| r1512_3(int) = Constant[0] : +# 1512| r1512_4(glval<int>) = PointerAdd[4] : r1512_1, r1512_3 +# 1512| r1512_5(int) = Constant[1] : +# 1512| mu1512_6(int) = Store[?] : &:r1512_4, r1512_5 +# 1512| r1512_7(int) = Constant[1] : +# 1512| r1512_8(glval<int>) = PointerAdd[4] : r1512_1, r1512_7 +# 1512| r1512_9(int) = Constant[2] : +# 1512| mu1512_10(int) = Store[?] : &:r1512_8, r1512_9 +# 1515| r1515_1(glval<int(&)[2]>) = VariableAddress[(unnamed local variable)] : +# 1515| r1515_2(glval<int[2]>) = VariableAddress[xs] : +# 1515| r1515_3(int(&)[2]) = CopyValue : r1515_2 +# 1515| mu1515_4(int(&)[2]) = Store[(unnamed local variable)] : &:r1515_1, r1515_3 +# 1515| r1515_5(glval<int &>) = VariableAddress[x0] : #-----| r0_1(glval<int(&)[2]>) = VariableAddress[(unnamed local variable)] : #-----| r0_2(int(&)[2]) = Load[(unnamed local variable)] : &:r0_1, ~m? #-----| r0_3(glval<int[2]>) = CopyValue : r0_2 #-----| r0_4(int *) = Convert : r0_3 #-----| r0_5(unsigned long) = Constant[0] : #-----| r0_6(glval<int>) = PointerAdd[4] : r0_4, r0_5 -#-----| mu0_7(int &) = Store[x0] : &:r1468_5, r0_6 -# 1468| r1468_6(glval<int &>) = VariableAddress[x1] : +#-----| mu0_7(int &) = Store[x0] : &:r1515_5, r0_6 +# 1515| r1515_6(glval<int &>) = VariableAddress[x1] : #-----| r0_8(glval<int(&)[2]>) = VariableAddress[(unnamed local variable)] : #-----| r0_9(int(&)[2]) = Load[(unnamed local variable)] : &:r0_8, ~m? #-----| r0_10(glval<int[2]>) = CopyValue : r0_9 #-----| r0_11(int *) = Convert : r0_10 #-----| r0_12(unsigned long) = Constant[1] : #-----| r0_13(glval<int>) = PointerAdd[4] : r0_11, r0_12 -#-----| mu0_14(int &) = Store[x1] : &:r1468_6, r0_13 -# 1469| r1469_1(int) = Constant[3] : -# 1469| r1469_2(glval<int &>) = VariableAddress[x1] : -# 1469| r1469_3(int &) = Load[x1] : &:r1469_2, ~m? -# 1469| mu1469_4(int) = Store[?] : &:r1469_3, r1469_1 -# 1470| r1470_1(glval<int &>) = VariableAddress[rx1] : -# 1470| r1470_2(glval<int &>) = VariableAddress[x1] : -# 1470| r1470_3(int &) = Load[x1] : &:r1470_2, ~m? -# 1470| r1470_4(int &) = CopyValue : r1470_3 -# 1470| mu1470_5(int &) = Store[rx1] : &:r1470_1, r1470_4 -# 1471| r1471_1(glval<int>) = VariableAddress[x] : -# 1471| r1471_2(glval<int &>) = VariableAddress[x1] : -# 1471| r1471_3(int &) = Load[x1] : &:r1471_2, ~m? -# 1471| r1471_4(int) = Load[?] : &:r1471_3, ~m? -# 1471| mu1471_5(int) = Store[x] : &:r1471_1, r1471_4 -# 1475| r1475_1(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : -# 1475| r1475_2(glval<int[2]>) = VariableAddress[xs] : -# 1475| r1475_3(int(&)[2]) = CopyValue : r1475_2 -# 1475| mu1475_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1475_1, r1475_3 -# 1476| r1476_1(glval<int &>) = VariableAddress[x0] : -# 1476| r1476_2(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : -# 1476| r1476_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1476_2, ~m? -# 1476| r1476_4(glval<int[2]>) = CopyValue : r1476_3 -# 1476| r1476_5(int *) = Convert : r1476_4 -# 1476| r1476_6(int) = Constant[0] : -# 1476| r1476_7(glval<int>) = PointerAdd[4] : r1476_5, r1476_6 -# 1476| r1476_8(int &) = CopyValue : r1476_7 -# 1476| mu1476_9(int &) = Store[x0] : &:r1476_1, r1476_8 -# 1477| r1477_1(glval<int &>) = VariableAddress[x1] : -# 1477| r1477_2(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : -# 1477| r1477_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1477_2, ~m? -# 1477| r1477_4(glval<int[2]>) = CopyValue : r1477_3 -# 1477| r1477_5(int *) = Convert : r1477_4 -# 1477| r1477_6(int) = Constant[1] : -# 1477| r1477_7(glval<int>) = PointerAdd[4] : r1477_5, r1477_6 -# 1477| r1477_8(int &) = CopyValue : r1477_7 -# 1477| mu1477_9(int &) = Store[x1] : &:r1477_1, r1477_8 -# 1478| r1478_1(int) = Constant[3] : -# 1478| r1478_2(glval<int &>) = VariableAddress[x1] : -# 1478| r1478_3(int &) = Load[x1] : &:r1478_2, ~m? -# 1478| r1478_4(glval<int>) = CopyValue : r1478_3 -# 1478| mu1478_5(int) = Store[?] : &:r1478_4, r1478_1 -# 1479| r1479_1(glval<int &>) = VariableAddress[rx1] : -# 1479| r1479_2(glval<int &>) = VariableAddress[x1] : -# 1479| r1479_3(int &) = Load[x1] : &:r1479_2, ~m? -# 1479| r1479_4(glval<int>) = CopyValue : r1479_3 -# 1479| r1479_5(int &) = CopyValue : r1479_4 -# 1479| mu1479_6(int &) = Store[rx1] : &:r1479_1, r1479_5 -# 1480| r1480_1(glval<int>) = VariableAddress[x] : -# 1480| r1480_2(glval<int &>) = VariableAddress[x1] : -# 1480| r1480_3(int &) = Load[x1] : &:r1480_2, ~m? -# 1480| r1480_4(int) = Load[?] : &:r1480_3, ~m? -# 1480| mu1480_5(int) = Store[x] : &:r1480_1, r1480_4 -# 1482| v1482_1(void) = NoOp : -# 1464| v1464_4(void) = ReturnVoid : -# 1464| v1464_5(void) = AliasedUse : ~m? -# 1464| v1464_6(void) = ExitFunction : +#-----| mu0_14(int &) = Store[x1] : &:r1515_6, r0_13 +# 1516| r1516_1(int) = Constant[3] : +# 1516| r1516_2(glval<int &>) = VariableAddress[x1] : +# 1516| r1516_3(int &) = Load[x1] : &:r1516_2, ~m? +# 1516| mu1516_4(int) = Store[?] : &:r1516_3, r1516_1 +# 1517| r1517_1(glval<int &>) = VariableAddress[rx1] : +# 1517| r1517_2(glval<int &>) = VariableAddress[x1] : +# 1517| r1517_3(int &) = Load[x1] : &:r1517_2, ~m? +# 1517| r1517_4(int &) = CopyValue : r1517_3 +# 1517| mu1517_5(int &) = Store[rx1] : &:r1517_1, r1517_4 +# 1518| r1518_1(glval<int>) = VariableAddress[x] : +# 1518| r1518_2(glval<int &>) = VariableAddress[x1] : +# 1518| r1518_3(int &) = Load[x1] : &:r1518_2, ~m? +# 1518| r1518_4(int) = Load[?] : &:r1518_3, ~m? +# 1518| mu1518_5(int) = Store[x] : &:r1518_1, r1518_4 +# 1522| r1522_1(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : +# 1522| r1522_2(glval<int[2]>) = VariableAddress[xs] : +# 1522| r1522_3(int(&)[2]) = CopyValue : r1522_2 +# 1522| mu1522_4(int(&)[2]) = Store[unnamed_local_variable] : &:r1522_1, r1522_3 +# 1523| r1523_1(glval<int &>) = VariableAddress[x0] : +# 1523| r1523_2(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : +# 1523| r1523_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1523_2, ~m? +# 1523| r1523_4(glval<int[2]>) = CopyValue : r1523_3 +# 1523| r1523_5(int *) = Convert : r1523_4 +# 1523| r1523_6(int) = Constant[0] : +# 1523| r1523_7(glval<int>) = PointerAdd[4] : r1523_5, r1523_6 +# 1523| r1523_8(int &) = CopyValue : r1523_7 +# 1523| mu1523_9(int &) = Store[x0] : &:r1523_1, r1523_8 +# 1524| r1524_1(glval<int &>) = VariableAddress[x1] : +# 1524| r1524_2(glval<int(&)[2]>) = VariableAddress[unnamed_local_variable] : +# 1524| r1524_3(int(&)[2]) = Load[unnamed_local_variable] : &:r1524_2, ~m? +# 1524| r1524_4(glval<int[2]>) = CopyValue : r1524_3 +# 1524| r1524_5(int *) = Convert : r1524_4 +# 1524| r1524_6(int) = Constant[1] : +# 1524| r1524_7(glval<int>) = PointerAdd[4] : r1524_5, r1524_6 +# 1524| r1524_8(int &) = CopyValue : r1524_7 +# 1524| mu1524_9(int &) = Store[x1] : &:r1524_1, r1524_8 +# 1525| r1525_1(int) = Constant[3] : +# 1525| r1525_2(glval<int &>) = VariableAddress[x1] : +# 1525| r1525_3(int &) = Load[x1] : &:r1525_2, ~m? +# 1525| r1525_4(glval<int>) = CopyValue : r1525_3 +# 1525| mu1525_5(int) = Store[?] : &:r1525_4, r1525_1 +# 1526| r1526_1(glval<int &>) = VariableAddress[rx1] : +# 1526| r1526_2(glval<int &>) = VariableAddress[x1] : +# 1526| r1526_3(int &) = Load[x1] : &:r1526_2, ~m? +# 1526| r1526_4(glval<int>) = CopyValue : r1526_3 +# 1526| r1526_5(int &) = CopyValue : r1526_4 +# 1526| mu1526_6(int &) = Store[rx1] : &:r1526_1, r1526_5 +# 1527| r1527_1(glval<int>) = VariableAddress[x] : +# 1527| r1527_2(glval<int &>) = VariableAddress[x1] : +# 1527| r1527_3(int &) = Load[x1] : &:r1527_2, ~m? +# 1527| r1527_4(int) = Load[?] : &:r1527_3, ~m? +# 1527| mu1527_5(int) = Store[x] : &:r1527_1, r1527_4 +# 1529| v1529_1(void) = NoOp : +# 1511| v1511_4(void) = ReturnVoid : +# 1511| v1511_5(void) = AliasedUse : ~m? +# 1511| v1511_6(void) = ExitFunction : -# 1484| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() -# 1484| Block 0 -# 1484| v1484_1(void) = EnterFunction : -# 1484| mu1484_2(unknown) = AliasedDefinition : -# 1484| mu1484_3(unknown) = InitializeNonLocal : -# 1484| r1484_4(glval<unknown>) = VariableAddress[#this] : -# 1484| mu1484_5(glval<StructuredBindingDataMemberMemberStruct>) = InitializeParameter[#this] : &:r1484_4 -# 1484| r1484_6(glval<StructuredBindingDataMemberMemberStruct>) = Load[#this] : &:r1484_4, ~m? -# 1484| mu1484_7(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1484_6 -# 1484| v1484_8(void) = NoOp : -# 1484| v1484_9(void) = ReturnIndirection[#this] : &:r1484_6, ~m? -# 1484| v1484_10(void) = ReturnVoid : -# 1484| v1484_11(void) = AliasedUse : ~m? -# 1484| v1484_12(void) = ExitFunction : +# 1531| void StructuredBindingDataMemberMemberStruct::StructuredBindingDataMemberMemberStruct() +# 1531| Block 0 +# 1531| v1531_1(void) = EnterFunction : +# 1531| mu1531_2(unknown) = AliasedDefinition : +# 1531| mu1531_3(unknown) = InitializeNonLocal : +# 1531| r1531_4(glval<unknown>) = VariableAddress[#this] : +# 1531| mu1531_5(glval<StructuredBindingDataMemberMemberStruct>) = InitializeParameter[#this] : &:r1531_4 +# 1531| r1531_6(glval<StructuredBindingDataMemberMemberStruct>) = Load[#this] : &:r1531_4, ~m? +# 1531| mu1531_7(StructuredBindingDataMemberMemberStruct) = InitializeIndirection[#this] : &:r1531_6 +# 1531| v1531_8(void) = NoOp : +# 1531| v1531_9(void) = ReturnIndirection[#this] : &:r1531_6, ~m? +# 1531| v1531_10(void) = ReturnVoid : +# 1531| v1531_11(void) = AliasedUse : ~m? +# 1531| v1531_12(void) = ExitFunction : -# 1488| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() -# 1488| Block 0 -# 1488| v1488_1(void) = EnterFunction : -# 1488| mu1488_2(unknown) = AliasedDefinition : -# 1488| mu1488_3(unknown) = InitializeNonLocal : -# 1488| r1488_4(glval<unknown>) = VariableAddress[#this] : -# 1488| mu1488_5(glval<StructuredBindingDataMemberStruct>) = InitializeParameter[#this] : &:r1488_4 -# 1488| r1488_6(glval<StructuredBindingDataMemberStruct>) = Load[#this] : &:r1488_4, ~m? -# 1488| mu1488_7(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1488_6 +# 1535| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() +# 1535| Block 0 +# 1535| v1535_1(void) = EnterFunction : +# 1535| mu1535_2(unknown) = AliasedDefinition : +# 1535| mu1535_3(unknown) = InitializeNonLocal : +# 1535| r1535_4(glval<unknown>) = VariableAddress[#this] : +# 1535| mu1535_5(glval<StructuredBindingDataMemberStruct>) = InitializeParameter[#this] : &:r1535_4 +# 1535| r1535_6(glval<StructuredBindingDataMemberStruct>) = Load[#this] : &:r1535_4, ~m? +# 1535| mu1535_7(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1535_6 #-----| Goto -> Block 2 -# 1488| Block 1 -# 1488| r1488_8(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : mu1488_5 -# 1488| r1488_9(glval<unknown>) = FunctionAddress[StructuredBindingDataMemberMemberStruct] : -# 1488| v1488_10(void) = Call[StructuredBindingDataMemberMemberStruct] : func:r1488_9, this:r1488_8 -# 1488| mu1488_11(unknown) = ^CallSideEffect : ~m? -# 1488| mu1488_12(StructuredBindingDataMemberMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1488_8 +# 1535| Block 1 +# 1535| r1535_8(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : mu1535_5 +# 1535| r1535_9(glval<unknown>) = FunctionAddress[StructuredBindingDataMemberMemberStruct] : +# 1535| v1535_10(void) = Call[StructuredBindingDataMemberMemberStruct] : func:r1535_9, this:r1535_8 +# 1535| mu1535_11(unknown) = ^CallSideEffect : ~m? +# 1535| mu1535_12(StructuredBindingDataMemberMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1535_8 #-----| Goto -> Block 2 -# 1488| Block 2 -# 1488| v1488_13(void) = NoOp : -# 1488| v1488_14(void) = ReturnIndirection[#this] : &:r1488_6, ~m? -# 1488| v1488_15(void) = ReturnVoid : -# 1488| v1488_16(void) = AliasedUse : ~m? -# 1488| v1488_17(void) = ExitFunction : +# 1535| Block 2 +# 1535| v1535_13(void) = NoOp : +# 1535| v1535_14(void) = ReturnIndirection[#this] : &:r1535_6, ~m? +# 1535| v1535_15(void) = ReturnVoid : +# 1535| v1535_16(void) = AliasedUse : ~m? +# 1535| v1535_17(void) = ExitFunction : -# 1488| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) -# 1488| Block 0 -# 1488| v1488_1(void) = EnterFunction : -# 1488| mu1488_2(unknown) = AliasedDefinition : -# 1488| mu1488_3(unknown) = InitializeNonLocal : -# 1488| r1488_4(glval<unknown>) = VariableAddress[#this] : -# 1488| mu1488_5(glval<StructuredBindingDataMemberStruct>) = InitializeParameter[#this] : &:r1488_4 -# 1488| r1488_6(glval<StructuredBindingDataMemberStruct>) = Load[#this] : &:r1488_4, ~m? -# 1488| mu1488_7(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1488_6 +# 1535| void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct(StructuredBindingDataMemberStruct const&) +# 1535| Block 0 +# 1535| v1535_1(void) = EnterFunction : +# 1535| mu1535_2(unknown) = AliasedDefinition : +# 1535| mu1535_3(unknown) = InitializeNonLocal : +# 1535| r1535_4(glval<unknown>) = VariableAddress[#this] : +# 1535| mu1535_5(glval<StructuredBindingDataMemberStruct>) = InitializeParameter[#this] : &:r1535_4 +# 1535| r1535_6(glval<StructuredBindingDataMemberStruct>) = Load[#this] : &:r1535_4, ~m? +# 1535| mu1535_7(StructuredBindingDataMemberStruct) = InitializeIndirection[#this] : &:r1535_6 #-----| r0_1(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(StructuredBindingDataMemberStruct &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1488| r1488_8(glval<int>) = FieldAddress[i] : mu1488_5 -# 1488| r1488_9(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_10(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_9, ~m? -# 1488| r1488_11(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_10 -# 1488| r1488_12(glval<int>) = FieldAddress[i] : r1488_11 -# 1488| r1488_13(int) = Load[?] : &:r1488_12, ~m? -# 1488| mu1488_14(int) = Store[?] : &:r1488_8, r1488_13 -# 1488| r1488_15(glval<double>) = FieldAddress[d] : mu1488_5 -# 1488| r1488_16(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_17(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_16, ~m? -# 1488| r1488_18(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_17 -# 1488| r1488_19(glval<double>) = FieldAddress[d] : r1488_18 -# 1488| r1488_20(double) = Load[?] : &:r1488_19, ~m? -# 1488| mu1488_21(double) = Store[?] : &:r1488_15, r1488_20 -# 1488| r1488_22(glval<unsigned int>) = FieldAddress[b] : mu1488_5 -# 1488| r1488_23(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_24(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_23, ~m? -# 1488| r1488_25(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_24 -# 1488| r1488_26(glval<unsigned int>) = FieldAddress[b] : r1488_25 -# 1488| r1488_27(unsigned int) = Load[?] : &:r1488_26, ~m? -# 1488| mu1488_28(unsigned int) = Store[?] : &:r1488_22, r1488_27 -# 1488| r1488_29(glval<int &>) = FieldAddress[r] : mu1488_5 -# 1488| r1488_30(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_31(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_30, ~m? -# 1488| r1488_32(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_31 -# 1488| r1488_33(glval<int &>) = FieldAddress[r] : r1488_32 -# 1488| r1488_34(int &) = Load[?] : &:r1488_33, ~m? -# 1488| mu1488_35(int &) = Store[?] : &:r1488_29, r1488_34 -# 1488| r1488_36(glval<int *>) = FieldAddress[p] : mu1488_5 -# 1488| r1488_37(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_38(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_37, ~m? -# 1488| r1488_39(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_38 -# 1488| r1488_40(glval<int *>) = FieldAddress[p] : r1488_39 -# 1488| r1488_41(int *) = Load[?] : &:r1488_40, ~m? -# 1488| mu1488_42(int *) = Store[?] : &:r1488_36, r1488_41 -# 1488| r1488_43(glval<int[2]>) = FieldAddress[xs] : mu1488_5 -# 1488| r1488_44(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_45(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_44, ~m? -# 1488| r1488_46(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_45 -# 1488| r1488_47(glval<int[2]>) = FieldAddress[xs] : r1488_46 -# 1488| r1488_48(int[2]) = Load[?] : &:r1488_47, ~m? -# 1488| mu1488_49(int[2]) = Store[?] : &:r1488_43, r1488_48 -# 1488| r1488_50(glval<int &>) = FieldAddress[r_alt] : mu1488_5 -# 1488| r1488_51(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_52(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_51, ~m? -# 1488| r1488_53(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_52 -# 1488| r1488_54(glval<int &>) = FieldAddress[r_alt] : r1488_53 -# 1488| r1488_55(int &) = Load[?] : &:r1488_54, ~m? -# 1488| mu1488_56(int &) = Store[?] : &:r1488_50, r1488_55 -# 1488| r1488_57(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : mu1488_5 -# 1488| r1488_58(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : -# 1488| r1488_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1488_58, ~m? -# 1488| r1488_60(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1488_59 -# 1488| r1488_61(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : r1488_60 -# 1488| r1488_62(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1488_61, ~m? -# 1488| mu1488_63(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1488_57, r1488_62 -# 1488| v1488_64(void) = NoOp : -# 1488| v1488_65(void) = ReturnIndirection[#this] : &:r1488_6, ~m? +# 1535| r1535_8(glval<int>) = FieldAddress[i] : mu1535_5 +# 1535| r1535_9(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_10(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_9, ~m? +# 1535| r1535_11(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_10 +# 1535| r1535_12(glval<int>) = FieldAddress[i] : r1535_11 +# 1535| r1535_13(int) = Load[?] : &:r1535_12, ~m? +# 1535| mu1535_14(int) = Store[?] : &:r1535_8, r1535_13 +# 1535| r1535_15(glval<double>) = FieldAddress[d] : mu1535_5 +# 1535| r1535_16(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_17(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_16, ~m? +# 1535| r1535_18(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_17 +# 1535| r1535_19(glval<double>) = FieldAddress[d] : r1535_18 +# 1535| r1535_20(double) = Load[?] : &:r1535_19, ~m? +# 1535| mu1535_21(double) = Store[?] : &:r1535_15, r1535_20 +# 1535| r1535_22(glval<unsigned int>) = FieldAddress[b] : mu1535_5 +# 1535| r1535_23(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_24(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_23, ~m? +# 1535| r1535_25(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_24 +# 1535| r1535_26(glval<unsigned int>) = FieldAddress[b] : r1535_25 +# 1535| r1535_27(unsigned int) = Load[?] : &:r1535_26, ~m? +# 1535| mu1535_28(unsigned int) = Store[?] : &:r1535_22, r1535_27 +# 1535| r1535_29(glval<int &>) = FieldAddress[r] : mu1535_5 +# 1535| r1535_30(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_31(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_30, ~m? +# 1535| r1535_32(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_31 +# 1535| r1535_33(glval<int &>) = FieldAddress[r] : r1535_32 +# 1535| r1535_34(int &) = Load[?] : &:r1535_33, ~m? +# 1535| mu1535_35(int &) = Store[?] : &:r1535_29, r1535_34 +# 1535| r1535_36(glval<int *>) = FieldAddress[p] : mu1535_5 +# 1535| r1535_37(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_38(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_37, ~m? +# 1535| r1535_39(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_38 +# 1535| r1535_40(glval<int *>) = FieldAddress[p] : r1535_39 +# 1535| r1535_41(int *) = Load[?] : &:r1535_40, ~m? +# 1535| mu1535_42(int *) = Store[?] : &:r1535_36, r1535_41 +# 1535| r1535_43(glval<int[2]>) = FieldAddress[xs] : mu1535_5 +# 1535| r1535_44(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_45(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_44, ~m? +# 1535| r1535_46(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_45 +# 1535| r1535_47(glval<int[2]>) = FieldAddress[xs] : r1535_46 +# 1535| r1535_48(int[2]) = Load[?] : &:r1535_47, ~m? +# 1535| mu1535_49(int[2]) = Store[?] : &:r1535_43, r1535_48 +# 1535| r1535_50(glval<int &>) = FieldAddress[r_alt] : mu1535_5 +# 1535| r1535_51(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_52(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_51, ~m? +# 1535| r1535_53(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_52 +# 1535| r1535_54(glval<int &>) = FieldAddress[r_alt] : r1535_53 +# 1535| r1535_55(int &) = Load[?] : &:r1535_54, ~m? +# 1535| mu1535_56(int &) = Store[?] : &:r1535_50, r1535_55 +# 1535| r1535_57(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : mu1535_5 +# 1535| r1535_58(glval<StructuredBindingDataMemberStruct &>) = VariableAddress[(unnamed parameter 0)] : +# 1535| r1535_59(StructuredBindingDataMemberStruct &) = Load[(unnamed parameter 0)] : &:r1535_58, ~m? +# 1535| r1535_60(glval<StructuredBindingDataMemberStruct>) = CopyValue : r1535_59 +# 1535| r1535_61(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : r1535_60 +# 1535| r1535_62(StructuredBindingDataMemberMemberStruct) = Load[?] : &:r1535_61, ~m? +# 1535| mu1535_63(StructuredBindingDataMemberMemberStruct) = Store[?] : &:r1535_57, r1535_62 +# 1535| v1535_64(void) = NoOp : +# 1535| v1535_65(void) = ReturnIndirection[#this] : &:r1535_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1488| v1488_66(void) = ReturnVoid : -# 1488| v1488_67(void) = AliasedUse : ~m? -# 1488| v1488_68(void) = ExitFunction : +# 1535| v1535_66(void) = ReturnVoid : +# 1535| v1535_67(void) = AliasedUse : ~m? +# 1535| v1535_68(void) = ExitFunction : -# 1501| void data_member_structured_binding() -# 1501| Block 0 -# 1501| v1501_1(void) = EnterFunction : -# 1501| mu1501_2(unknown) = AliasedDefinition : -# 1501| mu1501_3(unknown) = InitializeNonLocal : -# 1502| r1502_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : -# 1502| mu1502_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1502_1 -# 1502| r1502_3(glval<unknown>) = FunctionAddress[StructuredBindingDataMemberStruct] : -# 1502| v1502_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1502_3, this:r1502_1 -# 1502| mu1502_5(unknown) = ^CallSideEffect : ~m? -# 1502| mu1502_6(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1502_1 -# 1505| r1505_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : -# 1505| r1505_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1505_2, ~m? -# 1505| mu1505_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1505_1, r1505_3 -# 1505| r1505_5(glval<int &>) = VariableAddress[i] : -# 1505| r1505_6(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_7(glval<int>) = FieldAddress[i] : r1505_6 -# 1505| mu1505_8(int &) = Store[i] : &:r1505_5, r1505_7 -# 1505| r1505_9(glval<double &>) = VariableAddress[d] : -# 1505| r1505_10(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_11(glval<double>) = FieldAddress[d] : r1505_10 -# 1505| mu1505_12(double &) = Store[d] : &:r1505_9, r1505_11 -# 1505| r1505_13(glval<unsigned int &>) = VariableAddress[b] : -# 1505| r1505_14(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_15(glval<unsigned int>) = FieldAddress[b] : r1505_14 -# 1505| mu1505_16(unsigned int &) = Store[b] : &:r1505_13, r1505_15 -# 1505| r1505_17(glval<int &>) = VariableAddress[r] : -# 1505| r1505_18(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_19(glval<int &>) = FieldAddress[r] : r1505_18 -# 1505| r1505_20(int &) = Load[?] : &:r1505_19, ~m? -# 1505| r1505_21(glval<int>) = CopyValue : r1505_20 -# 1505| mu1505_22(int &) = Store[r] : &:r1505_17, r1505_21 -# 1505| r1505_23(glval<int *&>) = VariableAddress[p] : -# 1505| r1505_24(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_25(glval<int *>) = FieldAddress[p] : r1505_24 -# 1505| mu1505_26(int *&) = Store[p] : &:r1505_23, r1505_25 -# 1505| r1505_27(glval<int(&)[2]>) = VariableAddress[xs] : -# 1505| r1505_28(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_29(glval<int[2]>) = FieldAddress[xs] : r1505_28 -# 1505| mu1505_30(int(&)[2]) = Store[xs] : &:r1505_27, r1505_29 -# 1505| r1505_31(glval<int &>) = VariableAddress[r_alt] : -# 1505| r1505_32(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_33(glval<int &>) = FieldAddress[r_alt] : r1505_32 -# 1505| r1505_34(int &) = Load[?] : &:r1505_33, ~m? -# 1505| r1505_35(glval<int>) = CopyValue : r1505_34 -# 1505| mu1505_36(int &) = Store[r_alt] : &:r1505_31, r1505_35 -# 1505| r1505_37(glval<StructuredBindingDataMemberMemberStruct &>) = VariableAddress[m] : -# 1505| r1505_38(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : -# 1505| r1505_39(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : r1505_38 -# 1505| mu1505_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1505_37, r1505_39 -# 1506| r1506_1(double) = Constant[4.0] : -# 1506| r1506_2(glval<double &>) = VariableAddress[d] : -# 1506| r1506_3(double &) = Load[d] : &:r1506_2, ~m? -# 1506| mu1506_4(double) = Store[?] : &:r1506_3, r1506_1 -# 1507| r1507_1(glval<double &>) = VariableAddress[rd] : -# 1507| r1507_2(glval<double &>) = VariableAddress[d] : -# 1507| r1507_3(double &) = Load[d] : &:r1507_2, ~m? -# 1507| r1507_4(double &) = CopyValue : r1507_3 -# 1507| mu1507_5(double &) = Store[rd] : &:r1507_1, r1507_4 -# 1508| r1508_1(glval<int>) = VariableAddress[v] : -# 1508| r1508_2(glval<int &>) = VariableAddress[i] : -# 1508| r1508_3(int &) = Load[i] : &:r1508_2, ~m? -# 1508| r1508_4(int) = Load[?] : &:r1508_3, ~m? -# 1508| mu1508_5(int) = Store[v] : &:r1508_1, r1508_4 -# 1509| r1509_1(int) = Constant[5] : -# 1509| r1509_2(glval<int &>) = VariableAddress[r] : -# 1509| r1509_3(int &) = Load[r] : &:r1509_2, ~m? -# 1509| mu1509_4(int) = Store[?] : &:r1509_3, r1509_1 -# 1510| r1510_1(int) = Constant[6] : -# 1510| r1510_2(glval<int *&>) = VariableAddress[p] : -# 1510| r1510_3(int *&) = Load[p] : &:r1510_2, ~m? -# 1510| r1510_4(int *) = Load[?] : &:r1510_3, ~m? -# 1510| r1510_5(glval<int>) = CopyValue : r1510_4 -# 1510| mu1510_6(int) = Store[?] : &:r1510_5, r1510_1 -# 1511| r1511_1(glval<int &>) = VariableAddress[rr] : -# 1511| r1511_2(glval<int &>) = VariableAddress[r] : -# 1511| r1511_3(int &) = Load[r] : &:r1511_2, ~m? -# 1511| r1511_4(int &) = CopyValue : r1511_3 -# 1511| mu1511_5(int &) = Store[rr] : &:r1511_1, r1511_4 -# 1512| r1512_1(glval<int *>) = VariableAddress[pr] : -# 1512| r1512_2(glval<int &>) = VariableAddress[r] : -# 1512| r1512_3(int &) = Load[r] : &:r1512_2, ~m? -# 1512| r1512_4(int *) = CopyValue : r1512_3 -# 1512| mu1512_5(int *) = Store[pr] : &:r1512_1, r1512_4 -# 1513| r1513_1(glval<int>) = VariableAddress[w] : -# 1513| r1513_2(glval<int &>) = VariableAddress[r] : -# 1513| r1513_3(int &) = Load[r] : &:r1513_2, ~m? -# 1513| r1513_4(int) = Load[?] : &:r1513_3, ~m? -# 1513| mu1513_5(int) = Store[w] : &:r1513_1, r1513_4 -# 1517| r1517_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1517| r1517_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : -# 1517| r1517_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1517_2, ~m? -# 1517| mu1517_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1517_1, r1517_3 -# 1518| r1518_1(glval<int &>) = VariableAddress[i] : -# 1518| r1518_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1518| r1518_3(glval<int>) = FieldAddress[i] : r1518_2 -# 1518| r1518_4(int &) = CopyValue : r1518_3 -# 1518| mu1518_5(int &) = Store[i] : &:r1518_1, r1518_4 -# 1519| r1519_1(glval<double &>) = VariableAddress[d] : -# 1519| r1519_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1519| r1519_3(glval<double>) = FieldAddress[d] : r1519_2 -# 1519| r1519_4(double &) = CopyValue : r1519_3 -# 1519| mu1519_5(double &) = Store[d] : &:r1519_1, r1519_4 -# 1521| r1521_1(glval<int &>) = VariableAddress[r] : -# 1521| r1521_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1521| r1521_3(glval<int &>) = FieldAddress[r] : r1521_2 -# 1521| r1521_4(int &) = Load[?] : &:r1521_3, ~m? -# 1521| r1521_5(glval<int>) = CopyValue : r1521_4 -# 1521| r1521_6(int &) = CopyValue : r1521_5 -# 1521| mu1521_7(int &) = Store[r] : &:r1521_1, r1521_6 -# 1522| r1522_1(glval<int *&>) = VariableAddress[p] : -# 1522| r1522_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : -# 1522| r1522_3(glval<int *>) = FieldAddress[p] : r1522_2 -# 1522| r1522_4(int *&) = CopyValue : r1522_3 -# 1522| mu1522_5(int *&) = Store[p] : &:r1522_1, r1522_4 -# 1523| r1523_1(double) = Constant[4.0] : -# 1523| r1523_2(glval<double &>) = VariableAddress[d] : -# 1523| r1523_3(double &) = Load[d] : &:r1523_2, ~m? -# 1523| r1523_4(glval<double>) = CopyValue : r1523_3 -# 1523| mu1523_5(double) = Store[?] : &:r1523_4, r1523_1 -# 1524| r1524_1(glval<double &>) = VariableAddress[rd] : -# 1524| r1524_2(glval<double &>) = VariableAddress[d] : -# 1524| r1524_3(double &) = Load[d] : &:r1524_2, ~m? -# 1524| r1524_4(glval<double>) = CopyValue : r1524_3 -# 1524| r1524_5(double &) = CopyValue : r1524_4 -# 1524| mu1524_6(double &) = Store[rd] : &:r1524_1, r1524_5 -# 1525| r1525_1(glval<int>) = VariableAddress[v] : -# 1525| r1525_2(glval<int &>) = VariableAddress[i] : -# 1525| r1525_3(int &) = Load[i] : &:r1525_2, ~m? -# 1525| r1525_4(int) = Load[?] : &:r1525_3, ~m? -# 1525| mu1525_5(int) = Store[v] : &:r1525_1, r1525_4 -# 1526| r1526_1(int) = Constant[5] : -# 1526| r1526_2(glval<int &>) = VariableAddress[r] : -# 1526| r1526_3(int &) = Load[r] : &:r1526_2, ~m? -# 1526| r1526_4(glval<int>) = CopyValue : r1526_3 -# 1526| mu1526_5(int) = Store[?] : &:r1526_4, r1526_1 -# 1527| r1527_1(int) = Constant[6] : -# 1527| r1527_2(glval<int *&>) = VariableAddress[p] : -# 1527| r1527_3(int *&) = Load[p] : &:r1527_2, ~m? -# 1527| r1527_4(int *) = Load[?] : &:r1527_3, ~m? -# 1527| r1527_5(glval<int>) = CopyValue : r1527_4 -# 1527| mu1527_6(int) = Store[?] : &:r1527_5, r1527_1 -# 1528| r1528_1(glval<int &>) = VariableAddress[rr] : -# 1528| r1528_2(glval<int &>) = VariableAddress[r] : -# 1528| r1528_3(int &) = Load[r] : &:r1528_2, ~m? -# 1528| r1528_4(glval<int>) = CopyValue : r1528_3 -# 1528| r1528_5(int &) = CopyValue : r1528_4 -# 1528| mu1528_6(int &) = Store[rr] : &:r1528_1, r1528_5 -# 1529| r1529_1(glval<int *>) = VariableAddress[pr] : -# 1529| r1529_2(glval<int &>) = VariableAddress[r] : -# 1529| r1529_3(int &) = Load[r] : &:r1529_2, ~m? -# 1529| r1529_4(glval<int>) = CopyValue : r1529_3 -# 1529| r1529_5(int *) = CopyValue : r1529_4 -# 1529| mu1529_6(int *) = Store[pr] : &:r1529_1, r1529_5 -# 1530| r1530_1(glval<int>) = VariableAddress[w] : -# 1530| r1530_2(glval<int &>) = VariableAddress[r] : -# 1530| r1530_3(int &) = Load[r] : &:r1530_2, ~m? -# 1530| r1530_4(int) = Load[?] : &:r1530_3, ~m? -# 1530| mu1530_5(int) = Store[w] : &:r1530_1, r1530_4 -# 1532| v1532_1(void) = NoOp : -# 1501| v1501_4(void) = ReturnVoid : -# 1501| v1501_5(void) = AliasedUse : ~m? -# 1501| v1501_6(void) = ExitFunction : +# 1548| void data_member_structured_binding() +# 1548| Block 0 +# 1548| v1548_1(void) = EnterFunction : +# 1548| mu1548_2(unknown) = AliasedDefinition : +# 1548| mu1548_3(unknown) = InitializeNonLocal : +# 1549| r1549_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : +# 1549| mu1549_2(StructuredBindingDataMemberStruct) = Uninitialized[s] : &:r1549_1 +# 1549| r1549_3(glval<unknown>) = FunctionAddress[StructuredBindingDataMemberStruct] : +# 1549| v1549_4(void) = Call[StructuredBindingDataMemberStruct] : func:r1549_3, this:r1549_1 +# 1549| mu1549_5(unknown) = ^CallSideEffect : ~m? +# 1549| mu1549_6(StructuredBindingDataMemberStruct) = ^IndirectMayWriteSideEffect[-1] : &:r1549_1 +# 1552| r1552_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : +# 1552| r1552_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1552_2, ~m? +# 1552| mu1552_4(StructuredBindingDataMemberStruct) = Store[(unnamed local variable)] : &:r1552_1, r1552_3 +# 1552| r1552_5(glval<int &>) = VariableAddress[i] : +# 1552| r1552_6(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_7(glval<int>) = FieldAddress[i] : r1552_6 +# 1552| mu1552_8(int &) = Store[i] : &:r1552_5, r1552_7 +# 1552| r1552_9(glval<double &>) = VariableAddress[d] : +# 1552| r1552_10(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_11(glval<double>) = FieldAddress[d] : r1552_10 +# 1552| mu1552_12(double &) = Store[d] : &:r1552_9, r1552_11 +# 1552| r1552_13(glval<unsigned int &>) = VariableAddress[b] : +# 1552| r1552_14(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_15(glval<unsigned int>) = FieldAddress[b] : r1552_14 +# 1552| mu1552_16(unsigned int &) = Store[b] : &:r1552_13, r1552_15 +# 1552| r1552_17(glval<int &>) = VariableAddress[r] : +# 1552| r1552_18(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_19(glval<int &>) = FieldAddress[r] : r1552_18 +# 1552| r1552_20(int &) = Load[?] : &:r1552_19, ~m? +# 1552| r1552_21(glval<int>) = CopyValue : r1552_20 +# 1552| mu1552_22(int &) = Store[r] : &:r1552_17, r1552_21 +# 1552| r1552_23(glval<int *&>) = VariableAddress[p] : +# 1552| r1552_24(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_25(glval<int *>) = FieldAddress[p] : r1552_24 +# 1552| mu1552_26(int *&) = Store[p] : &:r1552_23, r1552_25 +# 1552| r1552_27(glval<int(&)[2]>) = VariableAddress[xs] : +# 1552| r1552_28(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_29(glval<int[2]>) = FieldAddress[xs] : r1552_28 +# 1552| mu1552_30(int(&)[2]) = Store[xs] : &:r1552_27, r1552_29 +# 1552| r1552_31(glval<int &>) = VariableAddress[r_alt] : +# 1552| r1552_32(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_33(glval<int &>) = FieldAddress[r_alt] : r1552_32 +# 1552| r1552_34(int &) = Load[?] : &:r1552_33, ~m? +# 1552| r1552_35(glval<int>) = CopyValue : r1552_34 +# 1552| mu1552_36(int &) = Store[r_alt] : &:r1552_31, r1552_35 +# 1552| r1552_37(glval<StructuredBindingDataMemberMemberStruct &>) = VariableAddress[m] : +# 1552| r1552_38(glval<StructuredBindingDataMemberStruct>) = VariableAddress[(unnamed local variable)] : +# 1552| r1552_39(glval<StructuredBindingDataMemberMemberStruct>) = FieldAddress[m] : r1552_38 +# 1552| mu1552_40(StructuredBindingDataMemberMemberStruct &) = Store[m] : &:r1552_37, r1552_39 +# 1553| r1553_1(double) = Constant[4.0] : +# 1553| r1553_2(glval<double &>) = VariableAddress[d] : +# 1553| r1553_3(double &) = Load[d] : &:r1553_2, ~m? +# 1553| mu1553_4(double) = Store[?] : &:r1553_3, r1553_1 +# 1554| r1554_1(glval<double &>) = VariableAddress[rd] : +# 1554| r1554_2(glval<double &>) = VariableAddress[d] : +# 1554| r1554_3(double &) = Load[d] : &:r1554_2, ~m? +# 1554| r1554_4(double &) = CopyValue : r1554_3 +# 1554| mu1554_5(double &) = Store[rd] : &:r1554_1, r1554_4 +# 1555| r1555_1(glval<int>) = VariableAddress[v] : +# 1555| r1555_2(glval<int &>) = VariableAddress[i] : +# 1555| r1555_3(int &) = Load[i] : &:r1555_2, ~m? +# 1555| r1555_4(int) = Load[?] : &:r1555_3, ~m? +# 1555| mu1555_5(int) = Store[v] : &:r1555_1, r1555_4 +# 1556| r1556_1(int) = Constant[5] : +# 1556| r1556_2(glval<int &>) = VariableAddress[r] : +# 1556| r1556_3(int &) = Load[r] : &:r1556_2, ~m? +# 1556| mu1556_4(int) = Store[?] : &:r1556_3, r1556_1 +# 1557| r1557_1(int) = Constant[6] : +# 1557| r1557_2(glval<int *&>) = VariableAddress[p] : +# 1557| r1557_3(int *&) = Load[p] : &:r1557_2, ~m? +# 1557| r1557_4(int *) = Load[?] : &:r1557_3, ~m? +# 1557| r1557_5(glval<int>) = CopyValue : r1557_4 +# 1557| mu1557_6(int) = Store[?] : &:r1557_5, r1557_1 +# 1558| r1558_1(glval<int &>) = VariableAddress[rr] : +# 1558| r1558_2(glval<int &>) = VariableAddress[r] : +# 1558| r1558_3(int &) = Load[r] : &:r1558_2, ~m? +# 1558| r1558_4(int &) = CopyValue : r1558_3 +# 1558| mu1558_5(int &) = Store[rr] : &:r1558_1, r1558_4 +# 1559| r1559_1(glval<int *>) = VariableAddress[pr] : +# 1559| r1559_2(glval<int &>) = VariableAddress[r] : +# 1559| r1559_3(int &) = Load[r] : &:r1559_2, ~m? +# 1559| r1559_4(int *) = CopyValue : r1559_3 +# 1559| mu1559_5(int *) = Store[pr] : &:r1559_1, r1559_4 +# 1560| r1560_1(glval<int>) = VariableAddress[w] : +# 1560| r1560_2(glval<int &>) = VariableAddress[r] : +# 1560| r1560_3(int &) = Load[r] : &:r1560_2, ~m? +# 1560| r1560_4(int) = Load[?] : &:r1560_3, ~m? +# 1560| mu1560_5(int) = Store[w] : &:r1560_1, r1560_4 +# 1564| r1564_1(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1564| r1564_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[s] : +# 1564| r1564_3(StructuredBindingDataMemberStruct) = Load[s] : &:r1564_2, ~m? +# 1564| mu1564_4(StructuredBindingDataMemberStruct) = Store[unnamed_local_variable] : &:r1564_1, r1564_3 +# 1565| r1565_1(glval<int &>) = VariableAddress[i] : +# 1565| r1565_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1565| r1565_3(glval<int>) = FieldAddress[i] : r1565_2 +# 1565| r1565_4(int &) = CopyValue : r1565_3 +# 1565| mu1565_5(int &) = Store[i] : &:r1565_1, r1565_4 +# 1566| r1566_1(glval<double &>) = VariableAddress[d] : +# 1566| r1566_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1566| r1566_3(glval<double>) = FieldAddress[d] : r1566_2 +# 1566| r1566_4(double &) = CopyValue : r1566_3 +# 1566| mu1566_5(double &) = Store[d] : &:r1566_1, r1566_4 +# 1568| r1568_1(glval<int &>) = VariableAddress[r] : +# 1568| r1568_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1568| r1568_3(glval<int &>) = FieldAddress[r] : r1568_2 +# 1568| r1568_4(int &) = Load[?] : &:r1568_3, ~m? +# 1568| r1568_5(glval<int>) = CopyValue : r1568_4 +# 1568| r1568_6(int &) = CopyValue : r1568_5 +# 1568| mu1568_7(int &) = Store[r] : &:r1568_1, r1568_6 +# 1569| r1569_1(glval<int *&>) = VariableAddress[p] : +# 1569| r1569_2(glval<StructuredBindingDataMemberStruct>) = VariableAddress[unnamed_local_variable] : +# 1569| r1569_3(glval<int *>) = FieldAddress[p] : r1569_2 +# 1569| r1569_4(int *&) = CopyValue : r1569_3 +# 1569| mu1569_5(int *&) = Store[p] : &:r1569_1, r1569_4 +# 1570| r1570_1(double) = Constant[4.0] : +# 1570| r1570_2(glval<double &>) = VariableAddress[d] : +# 1570| r1570_3(double &) = Load[d] : &:r1570_2, ~m? +# 1570| r1570_4(glval<double>) = CopyValue : r1570_3 +# 1570| mu1570_5(double) = Store[?] : &:r1570_4, r1570_1 +# 1571| r1571_1(glval<double &>) = VariableAddress[rd] : +# 1571| r1571_2(glval<double &>) = VariableAddress[d] : +# 1571| r1571_3(double &) = Load[d] : &:r1571_2, ~m? +# 1571| r1571_4(glval<double>) = CopyValue : r1571_3 +# 1571| r1571_5(double &) = CopyValue : r1571_4 +# 1571| mu1571_6(double &) = Store[rd] : &:r1571_1, r1571_5 +# 1572| r1572_1(glval<int>) = VariableAddress[v] : +# 1572| r1572_2(glval<int &>) = VariableAddress[i] : +# 1572| r1572_3(int &) = Load[i] : &:r1572_2, ~m? +# 1572| r1572_4(int) = Load[?] : &:r1572_3, ~m? +# 1572| mu1572_5(int) = Store[v] : &:r1572_1, r1572_4 +# 1573| r1573_1(int) = Constant[5] : +# 1573| r1573_2(glval<int &>) = VariableAddress[r] : +# 1573| r1573_3(int &) = Load[r] : &:r1573_2, ~m? +# 1573| r1573_4(glval<int>) = CopyValue : r1573_3 +# 1573| mu1573_5(int) = Store[?] : &:r1573_4, r1573_1 +# 1574| r1574_1(int) = Constant[6] : +# 1574| r1574_2(glval<int *&>) = VariableAddress[p] : +# 1574| r1574_3(int *&) = Load[p] : &:r1574_2, ~m? +# 1574| r1574_4(int *) = Load[?] : &:r1574_3, ~m? +# 1574| r1574_5(glval<int>) = CopyValue : r1574_4 +# 1574| mu1574_6(int) = Store[?] : &:r1574_5, r1574_1 +# 1575| r1575_1(glval<int &>) = VariableAddress[rr] : +# 1575| r1575_2(glval<int &>) = VariableAddress[r] : +# 1575| r1575_3(int &) = Load[r] : &:r1575_2, ~m? +# 1575| r1575_4(glval<int>) = CopyValue : r1575_3 +# 1575| r1575_5(int &) = CopyValue : r1575_4 +# 1575| mu1575_6(int &) = Store[rr] : &:r1575_1, r1575_5 +# 1576| r1576_1(glval<int *>) = VariableAddress[pr] : +# 1576| r1576_2(glval<int &>) = VariableAddress[r] : +# 1576| r1576_3(int &) = Load[r] : &:r1576_2, ~m? +# 1576| r1576_4(glval<int>) = CopyValue : r1576_3 +# 1576| r1576_5(int *) = CopyValue : r1576_4 +# 1576| mu1576_6(int *) = Store[pr] : &:r1576_1, r1576_5 +# 1577| r1577_1(glval<int>) = VariableAddress[w] : +# 1577| r1577_2(glval<int &>) = VariableAddress[r] : +# 1577| r1577_3(int &) = Load[r] : &:r1577_2, ~m? +# 1577| r1577_4(int) = Load[?] : &:r1577_3, ~m? +# 1577| mu1577_5(int) = Store[w] : &:r1577_1, r1577_4 +# 1579| v1579_1(void) = NoOp : +# 1548| v1548_4(void) = ReturnVoid : +# 1548| v1548_5(void) = AliasedUse : ~m? +# 1548| v1548_6(void) = ExitFunction : -# 1541| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() -# 1541| Block 0 -# 1541| v1541_1(void) = EnterFunction : -# 1541| mu1541_2(unknown) = AliasedDefinition : -# 1541| mu1541_3(unknown) = InitializeNonLocal : -# 1541| r1541_4(glval<unknown>) = VariableAddress[#this] : -# 1541| mu1541_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1541_4 -# 1541| r1541_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1541_4, ~m? -# 1541| mu1541_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1541_6 -# 1541| v1541_8(void) = NoOp : -# 1541| v1541_9(void) = ReturnIndirection[#this] : &:r1541_6, ~m? -# 1541| v1541_10(void) = ReturnVoid : -# 1541| v1541_11(void) = AliasedUse : ~m? -# 1541| v1541_12(void) = ExitFunction : +# 1588| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet() +# 1588| Block 0 +# 1588| v1588_1(void) = EnterFunction : +# 1588| mu1588_2(unknown) = AliasedDefinition : +# 1588| mu1588_3(unknown) = InitializeNonLocal : +# 1588| r1588_4(glval<unknown>) = VariableAddress[#this] : +# 1588| mu1588_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1588_4 +# 1588| r1588_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1588_4, ~m? +# 1588| mu1588_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1588_6 +# 1588| v1588_8(void) = NoOp : +# 1588| v1588_9(void) = ReturnIndirection[#this] : &:r1588_6, ~m? +# 1588| v1588_10(void) = ReturnVoid : +# 1588| v1588_11(void) = AliasedUse : ~m? +# 1588| v1588_12(void) = ExitFunction : -# 1541| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) -# 1541| Block 0 -# 1541| v1541_1(void) = EnterFunction : -# 1541| mu1541_2(unknown) = AliasedDefinition : -# 1541| mu1541_3(unknown) = InitializeNonLocal : -# 1541| r1541_4(glval<unknown>) = VariableAddress[#this] : -# 1541| mu1541_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1541_4 -# 1541| r1541_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1541_4, ~m? -# 1541| mu1541_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1541_6 +# 1588| void StructuredBindingTupleRefGet::StructuredBindingTupleRefGet(StructuredBindingTupleRefGet const&) +# 1588| Block 0 +# 1588| v1588_1(void) = EnterFunction : +# 1588| mu1588_2(unknown) = AliasedDefinition : +# 1588| mu1588_3(unknown) = InitializeNonLocal : +# 1588| r1588_4(glval<unknown>) = VariableAddress[#this] : +# 1588| mu1588_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1588_4 +# 1588| r1588_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1588_4, ~m? +# 1588| mu1588_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1588_6 #-----| r0_1(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(StructuredBindingTupleRefGet &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1541| r1541_8(glval<int>) = FieldAddress[i] : mu1541_5 -# 1541| r1541_9(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : -# 1541| r1541_10(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1541_9, ~m? -# 1541| r1541_11(glval<StructuredBindingTupleRefGet>) = CopyValue : r1541_10 -# 1541| r1541_12(glval<int>) = FieldAddress[i] : r1541_11 -# 1541| r1541_13(int) = Load[?] : &:r1541_12, ~m? -# 1541| mu1541_14(int) = Store[?] : &:r1541_8, r1541_13 -# 1541| r1541_15(glval<double>) = FieldAddress[d] : mu1541_5 -# 1541| r1541_16(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : -# 1541| r1541_17(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1541_16, ~m? -# 1541| r1541_18(glval<StructuredBindingTupleRefGet>) = CopyValue : r1541_17 -# 1541| r1541_19(glval<double>) = FieldAddress[d] : r1541_18 -# 1541| r1541_20(double) = Load[?] : &:r1541_19, ~m? -# 1541| mu1541_21(double) = Store[?] : &:r1541_15, r1541_20 -# 1541| r1541_22(glval<int &>) = FieldAddress[r] : mu1541_5 -# 1541| r1541_23(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : -# 1541| r1541_24(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1541_23, ~m? -# 1541| r1541_25(glval<StructuredBindingTupleRefGet>) = CopyValue : r1541_24 -# 1541| r1541_26(glval<int &>) = FieldAddress[r] : r1541_25 -# 1541| r1541_27(int &) = Load[?] : &:r1541_26, ~m? -# 1541| mu1541_28(int &) = Store[?] : &:r1541_22, r1541_27 -# 1541| v1541_29(void) = NoOp : -# 1541| v1541_30(void) = ReturnIndirection[#this] : &:r1541_6, ~m? +# 1588| r1588_8(glval<int>) = FieldAddress[i] : mu1588_5 +# 1588| r1588_9(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : +# 1588| r1588_10(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_9, ~m? +# 1588| r1588_11(glval<StructuredBindingTupleRefGet>) = CopyValue : r1588_10 +# 1588| r1588_12(glval<int>) = FieldAddress[i] : r1588_11 +# 1588| r1588_13(int) = Load[?] : &:r1588_12, ~m? +# 1588| mu1588_14(int) = Store[?] : &:r1588_8, r1588_13 +# 1588| r1588_15(glval<double>) = FieldAddress[d] : mu1588_5 +# 1588| r1588_16(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : +# 1588| r1588_17(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_16, ~m? +# 1588| r1588_18(glval<StructuredBindingTupleRefGet>) = CopyValue : r1588_17 +# 1588| r1588_19(glval<double>) = FieldAddress[d] : r1588_18 +# 1588| r1588_20(double) = Load[?] : &:r1588_19, ~m? +# 1588| mu1588_21(double) = Store[?] : &:r1588_15, r1588_20 +# 1588| r1588_22(glval<int &>) = FieldAddress[r] : mu1588_5 +# 1588| r1588_23(glval<StructuredBindingTupleRefGet &>) = VariableAddress[(unnamed parameter 0)] : +# 1588| r1588_24(StructuredBindingTupleRefGet &) = Load[(unnamed parameter 0)] : &:r1588_23, ~m? +# 1588| r1588_25(glval<StructuredBindingTupleRefGet>) = CopyValue : r1588_24 +# 1588| r1588_26(glval<int &>) = FieldAddress[r] : r1588_25 +# 1588| r1588_27(int &) = Load[?] : &:r1588_26, ~m? +# 1588| mu1588_28(int &) = Store[?] : &:r1588_22, r1588_27 +# 1588| v1588_29(void) = NoOp : +# 1588| v1588_30(void) = ReturnIndirection[#this] : &:r1588_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1541| v1541_31(void) = ReturnVoid : -# 1541| v1541_32(void) = AliasedUse : ~m? -# 1541| v1541_33(void) = ExitFunction : +# 1588| v1588_31(void) = ReturnVoid : +# 1588| v1588_32(void) = AliasedUse : ~m? +# 1588| v1588_33(void) = ExitFunction : -# 1569| std::tuple_element<int 0, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 0>() -# 1569| Block 0 -# 1569| v1569_1(void) = EnterFunction : -# 1569| mu1569_2(unknown) = AliasedDefinition : -# 1569| mu1569_3(unknown) = InitializeNonLocal : -# 1569| r1569_4(glval<unknown>) = VariableAddress[#this] : -# 1569| mu1569_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1569_4 -# 1569| r1569_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1569_4, ~m? -# 1569| mu1569_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1569_6 -# 1570| r1570_1(glval<int &>) = VariableAddress[#return] : -# 1570| r1570_2(glval<unknown>) = VariableAddress[#this] : -# 1570| r1570_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1570_2, ~m? -# 1570| r1570_4(glval<int>) = FieldAddress[i] : r1570_3 -#-----| r0_1(int &) = CopyValue : r1570_4 -#-----| mu0_2(int &) = Store[#return] : &:r1570_1, r0_1 -# 1569| v1569_8(void) = ReturnIndirection[#this] : &:r1569_6, ~m? -# 1569| r1569_9(glval<int &>) = VariableAddress[#return] : -# 1569| v1569_10(void) = ReturnValue : &:r1569_9, ~m? -# 1569| v1569_11(void) = AliasedUse : ~m? -# 1569| v1569_12(void) = ExitFunction : +# 1616| std::tuple_element<int 0, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 0>() +# 1616| Block 0 +# 1616| v1616_1(void) = EnterFunction : +# 1616| mu1616_2(unknown) = AliasedDefinition : +# 1616| mu1616_3(unknown) = InitializeNonLocal : +# 1616| r1616_4(glval<unknown>) = VariableAddress[#this] : +# 1616| mu1616_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1616_4 +# 1616| r1616_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1616_4, ~m? +# 1616| mu1616_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1616_6 +# 1617| r1617_1(glval<int &>) = VariableAddress[#return] : +# 1617| r1617_2(glval<unknown>) = VariableAddress[#this] : +# 1617| r1617_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1617_2, ~m? +# 1617| r1617_4(glval<int>) = FieldAddress[i] : r1617_3 +#-----| r0_1(int &) = CopyValue : r1617_4 +#-----| mu0_2(int &) = Store[#return] : &:r1617_1, r0_1 +# 1616| v1616_8(void) = ReturnIndirection[#this] : &:r1616_6, ~m? +# 1616| r1616_9(glval<int &>) = VariableAddress[#return] : +# 1616| v1616_10(void) = ReturnValue : &:r1616_9, ~m? +# 1616| v1616_11(void) = AliasedUse : ~m? +# 1616| v1616_12(void) = ExitFunction : -# 1573| std::tuple_element<int 1, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 1>() -# 1573| Block 0 -# 1573| v1573_1(void) = EnterFunction : -# 1573| mu1573_2(unknown) = AliasedDefinition : -# 1573| mu1573_3(unknown) = InitializeNonLocal : -# 1573| r1573_4(glval<unknown>) = VariableAddress[#this] : -# 1573| mu1573_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1573_4 -# 1573| r1573_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1573_4, ~m? -# 1573| mu1573_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1573_6 -# 1574| r1574_1(glval<double &>) = VariableAddress[#return] : -# 1574| r1574_2(glval<unknown>) = VariableAddress[#this] : -# 1574| r1574_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1574_2, ~m? -# 1574| r1574_4(glval<double>) = FieldAddress[d] : r1574_3 -#-----| r0_1(double &) = CopyValue : r1574_4 -#-----| mu0_2(double &) = Store[#return] : &:r1574_1, r0_1 -# 1573| v1573_8(void) = ReturnIndirection[#this] : &:r1573_6, ~m? -# 1573| r1573_9(glval<double &>) = VariableAddress[#return] : -# 1573| v1573_10(void) = ReturnValue : &:r1573_9, ~m? -# 1573| v1573_11(void) = AliasedUse : ~m? -# 1573| v1573_12(void) = ExitFunction : +# 1620| std::tuple_element<int 1, StructuredBindingTupleRefGet>::type& StructuredBindingTupleRefGet::get<int 1>() +# 1620| Block 0 +# 1620| v1620_1(void) = EnterFunction : +# 1620| mu1620_2(unknown) = AliasedDefinition : +# 1620| mu1620_3(unknown) = InitializeNonLocal : +# 1620| r1620_4(glval<unknown>) = VariableAddress[#this] : +# 1620| mu1620_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1620_4 +# 1620| r1620_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1620_4, ~m? +# 1620| mu1620_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1620_6 +# 1621| r1621_1(glval<double &>) = VariableAddress[#return] : +# 1621| r1621_2(glval<unknown>) = VariableAddress[#this] : +# 1621| r1621_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1621_2, ~m? +# 1621| r1621_4(glval<double>) = FieldAddress[d] : r1621_3 +#-----| r0_1(double &) = CopyValue : r1621_4 +#-----| mu0_2(double &) = Store[#return] : &:r1621_1, r0_1 +# 1620| v1620_8(void) = ReturnIndirection[#this] : &:r1620_6, ~m? +# 1620| r1620_9(glval<double &>) = VariableAddress[#return] : +# 1620| v1620_10(void) = ReturnValue : &:r1620_9, ~m? +# 1620| v1620_11(void) = AliasedUse : ~m? +# 1620| v1620_12(void) = ExitFunction : -# 1577| std::tuple_element<int 2, StructuredBindingTupleRefGet>::type StructuredBindingTupleRefGet::get<int 2>() -# 1577| Block 0 -# 1577| v1577_1(void) = EnterFunction : -# 1577| mu1577_2(unknown) = AliasedDefinition : -# 1577| mu1577_3(unknown) = InitializeNonLocal : -# 1577| r1577_4(glval<unknown>) = VariableAddress[#this] : -# 1577| mu1577_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1577_4 -# 1577| r1577_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1577_4, ~m? -# 1577| mu1577_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1577_6 -# 1578| r1578_1(glval<int &>) = VariableAddress[#return] : -# 1578| r1578_2(glval<unknown>) = VariableAddress[#this] : -# 1578| r1578_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1578_2, ~m? -# 1578| r1578_4(glval<int &>) = FieldAddress[r] : r1578_3 -# 1578| r1578_5(int &) = Load[?] : &:r1578_4, ~m? -# 1578| r1578_6(glval<int>) = CopyValue : r1578_5 -# 1578| r1578_7(int &) = CopyValue : r1578_6 -# 1578| mu1578_8(int &) = Store[#return] : &:r1578_1, r1578_7 -# 1577| v1577_8(void) = ReturnIndirection[#this] : &:r1577_6, ~m? -# 1577| r1577_9(glval<int &>) = VariableAddress[#return] : -# 1577| v1577_10(void) = ReturnValue : &:r1577_9, ~m? -# 1577| v1577_11(void) = AliasedUse : ~m? -# 1577| v1577_12(void) = ExitFunction : +# 1624| std::tuple_element<int 2, StructuredBindingTupleRefGet>::type StructuredBindingTupleRefGet::get<int 2>() +# 1624| Block 0 +# 1624| v1624_1(void) = EnterFunction : +# 1624| mu1624_2(unknown) = AliasedDefinition : +# 1624| mu1624_3(unknown) = InitializeNonLocal : +# 1624| r1624_4(glval<unknown>) = VariableAddress[#this] : +# 1624| mu1624_5(glval<StructuredBindingTupleRefGet>) = InitializeParameter[#this] : &:r1624_4 +# 1624| r1624_6(glval<StructuredBindingTupleRefGet>) = Load[#this] : &:r1624_4, ~m? +# 1624| mu1624_7(StructuredBindingTupleRefGet) = InitializeIndirection[#this] : &:r1624_6 +# 1625| r1625_1(glval<int &>) = VariableAddress[#return] : +# 1625| r1625_2(glval<unknown>) = VariableAddress[#this] : +# 1625| r1625_3(StructuredBindingTupleRefGet *) = Load[#this] : &:r1625_2, ~m? +# 1625| r1625_4(glval<int &>) = FieldAddress[r] : r1625_3 +# 1625| r1625_5(int &) = Load[?] : &:r1625_4, ~m? +# 1625| r1625_6(glval<int>) = CopyValue : r1625_5 +# 1625| r1625_7(int &) = CopyValue : r1625_6 +# 1625| mu1625_8(int &) = Store[#return] : &:r1625_1, r1625_7 +# 1624| v1624_8(void) = ReturnIndirection[#this] : &:r1624_6, ~m? +# 1624| r1624_9(glval<int &>) = VariableAddress[#return] : +# 1624| v1624_10(void) = ReturnValue : &:r1624_9, ~m? +# 1624| v1624_11(void) = AliasedUse : ~m? +# 1624| v1624_12(void) = ExitFunction : -# 1581| void tuple_structured_binding_ref_get() -# 1581| Block 0 -# 1581| v1581_1(void) = EnterFunction : -# 1581| mu1581_2(unknown) = AliasedDefinition : -# 1581| mu1581_3(unknown) = InitializeNonLocal : -# 1582| r1582_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : -# 1582| mu1582_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1582_1 -# 1582| r1582_3(glval<unknown>) = FunctionAddress[StructuredBindingTupleRefGet] : -# 1582| v1582_4(void) = Call[StructuredBindingTupleRefGet] : func:r1582_3, this:r1582_1 -# 1582| mu1582_5(unknown) = ^CallSideEffect : ~m? -# 1582| mu1582_6(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1582_1 -# 1585| r1585_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : -# 1585| r1585_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : -# 1585| r1585_3(StructuredBindingTupleRefGet) = Load[t] : &:r1585_2, ~m? -# 1585| mu1585_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1585_1, r1585_3 -# 1585| r1585_5(glval<int &>) = VariableAddress[i] : -# 1585| r1585_6(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : -# 1585| r1585_7(glval<unknown>) = FunctionAddress[get] : -# 1585| r1585_8(int &) = Call[get] : func:r1585_7, this:r1585_6 -# 1585| mu1585_9(unknown) = ^CallSideEffect : ~m? -# 1585| v1585_10(void) = ^IndirectReadSideEffect[-1] : &:r1585_6, ~m? -# 1585| mu1585_11(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1585_6 -# 1585| r1585_12(glval<int>) = CopyValue : r1585_8 -# 1585| r1585_13(int &) = CopyValue : r1585_12 -# 1585| mu1585_14(int &) = Store[i] : &:r1585_5, r1585_13 -# 1585| r1585_15(glval<double &>) = VariableAddress[d] : -# 1585| r1585_16(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : -# 1585| r1585_17(glval<unknown>) = FunctionAddress[get] : -# 1585| r1585_18(double &) = Call[get] : func:r1585_17, this:r1585_16 -# 1585| mu1585_19(unknown) = ^CallSideEffect : ~m? -# 1585| v1585_20(void) = ^IndirectReadSideEffect[-1] : &:r1585_16, ~m? -# 1585| mu1585_21(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1585_16 -# 1585| r1585_22(glval<double>) = CopyValue : r1585_18 -# 1585| r1585_23(double &) = CopyValue : r1585_22 -# 1585| mu1585_24(double &) = Store[d] : &:r1585_15, r1585_23 -# 1585| r1585_25(glval<int &>) = VariableAddress[r] : -# 1585| r1585_26(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : -# 1585| r1585_27(glval<unknown>) = FunctionAddress[get] : -# 1585| r1585_28(int &) = Call[get] : func:r1585_27, this:r1585_26 -# 1585| mu1585_29(unknown) = ^CallSideEffect : ~m? -# 1585| v1585_30(void) = ^IndirectReadSideEffect[-1] : &:r1585_26, ~m? -# 1585| mu1585_31(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1585_26 -# 1585| r1585_32(glval<int>) = CopyValue : r1585_28 -# 1585| r1585_33(int &) = CopyValue : r1585_32 -# 1585| mu1585_34(int &) = Store[r] : &:r1585_25, r1585_33 -# 1586| r1586_1(double) = Constant[4.0] : -# 1586| r1586_2(glval<double &>) = VariableAddress[d] : -# 1586| r1586_3(double &) = Load[d] : &:r1586_2, ~m? -# 1586| r1586_4(glval<double>) = CopyValue : r1586_3 -# 1586| mu1586_5(double) = Store[?] : &:r1586_4, r1586_1 -# 1587| r1587_1(glval<double &>) = VariableAddress[rd] : -# 1587| r1587_2(glval<double &>) = VariableAddress[d] : -# 1587| r1587_3(double &) = Load[d] : &:r1587_2, ~m? -# 1587| r1587_4(glval<double>) = CopyValue : r1587_3 -# 1587| r1587_5(double &) = CopyValue : r1587_4 -# 1587| mu1587_6(double &) = Store[rd] : &:r1587_1, r1587_5 -# 1588| r1588_1(glval<int>) = VariableAddress[v] : -# 1588| r1588_2(glval<int &>) = VariableAddress[i] : -# 1588| r1588_3(int &) = Load[i] : &:r1588_2, ~m? -# 1588| r1588_4(int) = Load[?] : &:r1588_3, ~m? -# 1588| mu1588_5(int) = Store[v] : &:r1588_1, r1588_4 -# 1589| r1589_1(int) = Constant[5] : -# 1589| r1589_2(glval<int &>) = VariableAddress[r] : -# 1589| r1589_3(int &) = Load[r] : &:r1589_2, ~m? -# 1589| r1589_4(glval<int>) = CopyValue : r1589_3 -# 1589| mu1589_5(int) = Store[?] : &:r1589_4, r1589_1 -# 1590| r1590_1(glval<int &>) = VariableAddress[rr] : -# 1590| r1590_2(glval<int &>) = VariableAddress[r] : -# 1590| r1590_3(int &) = Load[r] : &:r1590_2, ~m? -# 1590| r1590_4(glval<int>) = CopyValue : r1590_3 -# 1590| r1590_5(int &) = CopyValue : r1590_4 -# 1590| mu1590_6(int &) = Store[rr] : &:r1590_1, r1590_5 -# 1591| r1591_1(glval<int>) = VariableAddress[w] : -# 1591| r1591_2(glval<int &>) = VariableAddress[r] : -# 1591| r1591_3(int &) = Load[r] : &:r1591_2, ~m? -# 1591| r1591_4(int) = Load[?] : &:r1591_3, ~m? -# 1591| mu1591_5(int) = Store[w] : &:r1591_1, r1591_4 -# 1595| r1595_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : -# 1595| r1595_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : -# 1595| r1595_3(StructuredBindingTupleRefGet) = Load[t] : &:r1595_2, ~m? -# 1595| mu1595_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1595_1, r1595_3 -# 1596| r1596_1(glval<int &>) = VariableAddress[i] : -# 1596| r1596_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : -# 1596| r1596_3(glval<unknown>) = FunctionAddress[get] : -# 1596| r1596_4(int &) = Call[get] : func:r1596_3, this:r1596_2 -# 1596| mu1596_5(unknown) = ^CallSideEffect : ~m? -# 1596| v1596_6(void) = ^IndirectReadSideEffect[-1] : &:r1596_2, ~m? -# 1596| mu1596_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1596_2 -# 1596| r1596_8(glval<int>) = CopyValue : r1596_4 -# 1596| r1596_9(int &) = CopyValue : r1596_8 -# 1596| mu1596_10(int &) = Store[i] : &:r1596_1, r1596_9 -# 1597| r1597_1(glval<double &>) = VariableAddress[d] : -# 1597| r1597_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : -# 1597| r1597_3(glval<unknown>) = FunctionAddress[get] : -# 1597| r1597_4(double &) = Call[get] : func:r1597_3, this:r1597_2 -# 1597| mu1597_5(unknown) = ^CallSideEffect : ~m? -# 1597| v1597_6(void) = ^IndirectReadSideEffect[-1] : &:r1597_2, ~m? -# 1597| mu1597_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1597_2 -# 1597| r1597_8(glval<double>) = CopyValue : r1597_4 -# 1597| r1597_9(double &) = CopyValue : r1597_8 -# 1597| mu1597_10(double &) = Store[d] : &:r1597_1, r1597_9 -# 1598| r1598_1(glval<int &>) = VariableAddress[r] : -# 1598| r1598_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : -# 1598| r1598_3(glval<unknown>) = FunctionAddress[get] : -# 1598| r1598_4(int &) = Call[get] : func:r1598_3, this:r1598_2 -# 1598| mu1598_5(unknown) = ^CallSideEffect : ~m? -# 1598| v1598_6(void) = ^IndirectReadSideEffect[-1] : &:r1598_2, ~m? -# 1598| mu1598_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1598_2 -# 1598| r1598_8(glval<int>) = CopyValue : r1598_4 -# 1598| r1598_9(int &) = CopyValue : r1598_8 -# 1598| mu1598_10(int &) = Store[r] : &:r1598_1, r1598_9 -# 1599| r1599_1(double) = Constant[4.0] : -# 1599| r1599_2(glval<double &>) = VariableAddress[d] : -# 1599| r1599_3(double &) = Load[d] : &:r1599_2, ~m? -# 1599| r1599_4(glval<double>) = CopyValue : r1599_3 -# 1599| mu1599_5(double) = Store[?] : &:r1599_4, r1599_1 -# 1600| r1600_1(glval<double &>) = VariableAddress[rd] : -# 1600| r1600_2(glval<double &>) = VariableAddress[d] : -# 1600| r1600_3(double &) = Load[d] : &:r1600_2, ~m? -# 1600| r1600_4(glval<double>) = CopyValue : r1600_3 -# 1600| r1600_5(double &) = CopyValue : r1600_4 -# 1600| mu1600_6(double &) = Store[rd] : &:r1600_1, r1600_5 -# 1601| r1601_1(glval<int>) = VariableAddress[v] : -# 1601| r1601_2(glval<int &>) = VariableAddress[i] : -# 1601| r1601_3(int &) = Load[i] : &:r1601_2, ~m? -# 1601| r1601_4(int) = Load[?] : &:r1601_3, ~m? -# 1601| mu1601_5(int) = Store[v] : &:r1601_1, r1601_4 -# 1602| r1602_1(int) = Constant[5] : -# 1602| r1602_2(glval<int &>) = VariableAddress[r] : -# 1602| r1602_3(int &) = Load[r] : &:r1602_2, ~m? -# 1602| r1602_4(glval<int>) = CopyValue : r1602_3 -# 1602| mu1602_5(int) = Store[?] : &:r1602_4, r1602_1 -# 1603| r1603_1(glval<int &>) = VariableAddress[rr] : -# 1603| r1603_2(glval<int &>) = VariableAddress[r] : -# 1603| r1603_3(int &) = Load[r] : &:r1603_2, ~m? -# 1603| r1603_4(glval<int>) = CopyValue : r1603_3 -# 1603| r1603_5(int &) = CopyValue : r1603_4 -# 1603| mu1603_6(int &) = Store[rr] : &:r1603_1, r1603_5 -# 1604| r1604_1(glval<int>) = VariableAddress[w] : -# 1604| r1604_2(glval<int &>) = VariableAddress[r] : -# 1604| r1604_3(int &) = Load[r] : &:r1604_2, ~m? -# 1604| r1604_4(int) = Load[?] : &:r1604_3, ~m? -# 1604| mu1604_5(int) = Store[w] : &:r1604_1, r1604_4 -# 1606| v1606_1(void) = NoOp : -# 1581| v1581_4(void) = ReturnVoid : -# 1581| v1581_5(void) = AliasedUse : ~m? -# 1581| v1581_6(void) = ExitFunction : +# 1628| void tuple_structured_binding_ref_get() +# 1628| Block 0 +# 1628| v1628_1(void) = EnterFunction : +# 1628| mu1628_2(unknown) = AliasedDefinition : +# 1628| mu1628_3(unknown) = InitializeNonLocal : +# 1629| r1629_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : +# 1629| mu1629_2(StructuredBindingTupleRefGet) = Uninitialized[t] : &:r1629_1 +# 1629| r1629_3(glval<unknown>) = FunctionAddress[StructuredBindingTupleRefGet] : +# 1629| v1629_4(void) = Call[StructuredBindingTupleRefGet] : func:r1629_3, this:r1629_1 +# 1629| mu1629_5(unknown) = ^CallSideEffect : ~m? +# 1629| mu1629_6(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1629_1 +# 1632| r1632_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : +# 1632| r1632_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : +# 1632| r1632_3(StructuredBindingTupleRefGet) = Load[t] : &:r1632_2, ~m? +# 1632| mu1632_4(StructuredBindingTupleRefGet) = Store[(unnamed local variable)] : &:r1632_1, r1632_3 +# 1632| r1632_5(glval<int &>) = VariableAddress[i] : +# 1632| r1632_6(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : +# 1632| r1632_7(glval<unknown>) = FunctionAddress[get] : +# 1632| r1632_8(int &) = Call[get] : func:r1632_7, this:r1632_6 +# 1632| mu1632_9(unknown) = ^CallSideEffect : ~m? +# 1632| v1632_10(void) = ^IndirectReadSideEffect[-1] : &:r1632_6, ~m? +# 1632| mu1632_11(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_6 +# 1632| r1632_12(glval<int>) = CopyValue : r1632_8 +# 1632| r1632_13(int &) = CopyValue : r1632_12 +# 1632| mu1632_14(int &) = Store[i] : &:r1632_5, r1632_13 +# 1632| r1632_15(glval<double &>) = VariableAddress[d] : +# 1632| r1632_16(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : +# 1632| r1632_17(glval<unknown>) = FunctionAddress[get] : +# 1632| r1632_18(double &) = Call[get] : func:r1632_17, this:r1632_16 +# 1632| mu1632_19(unknown) = ^CallSideEffect : ~m? +# 1632| v1632_20(void) = ^IndirectReadSideEffect[-1] : &:r1632_16, ~m? +# 1632| mu1632_21(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_16 +# 1632| r1632_22(glval<double>) = CopyValue : r1632_18 +# 1632| r1632_23(double &) = CopyValue : r1632_22 +# 1632| mu1632_24(double &) = Store[d] : &:r1632_15, r1632_23 +# 1632| r1632_25(glval<int &>) = VariableAddress[r] : +# 1632| r1632_26(glval<StructuredBindingTupleRefGet>) = VariableAddress[(unnamed local variable)] : +# 1632| r1632_27(glval<unknown>) = FunctionAddress[get] : +# 1632| r1632_28(int &) = Call[get] : func:r1632_27, this:r1632_26 +# 1632| mu1632_29(unknown) = ^CallSideEffect : ~m? +# 1632| v1632_30(void) = ^IndirectReadSideEffect[-1] : &:r1632_26, ~m? +# 1632| mu1632_31(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1632_26 +# 1632| r1632_32(glval<int>) = CopyValue : r1632_28 +# 1632| r1632_33(int &) = CopyValue : r1632_32 +# 1632| mu1632_34(int &) = Store[r] : &:r1632_25, r1632_33 +# 1633| r1633_1(double) = Constant[4.0] : +# 1633| r1633_2(glval<double &>) = VariableAddress[d] : +# 1633| r1633_3(double &) = Load[d] : &:r1633_2, ~m? +# 1633| r1633_4(glval<double>) = CopyValue : r1633_3 +# 1633| mu1633_5(double) = Store[?] : &:r1633_4, r1633_1 +# 1634| r1634_1(glval<double &>) = VariableAddress[rd] : +# 1634| r1634_2(glval<double &>) = VariableAddress[d] : +# 1634| r1634_3(double &) = Load[d] : &:r1634_2, ~m? +# 1634| r1634_4(glval<double>) = CopyValue : r1634_3 +# 1634| r1634_5(double &) = CopyValue : r1634_4 +# 1634| mu1634_6(double &) = Store[rd] : &:r1634_1, r1634_5 +# 1635| r1635_1(glval<int>) = VariableAddress[v] : +# 1635| r1635_2(glval<int &>) = VariableAddress[i] : +# 1635| r1635_3(int &) = Load[i] : &:r1635_2, ~m? +# 1635| r1635_4(int) = Load[?] : &:r1635_3, ~m? +# 1635| mu1635_5(int) = Store[v] : &:r1635_1, r1635_4 +# 1636| r1636_1(int) = Constant[5] : +# 1636| r1636_2(glval<int &>) = VariableAddress[r] : +# 1636| r1636_3(int &) = Load[r] : &:r1636_2, ~m? +# 1636| r1636_4(glval<int>) = CopyValue : r1636_3 +# 1636| mu1636_5(int) = Store[?] : &:r1636_4, r1636_1 +# 1637| r1637_1(glval<int &>) = VariableAddress[rr] : +# 1637| r1637_2(glval<int &>) = VariableAddress[r] : +# 1637| r1637_3(int &) = Load[r] : &:r1637_2, ~m? +# 1637| r1637_4(glval<int>) = CopyValue : r1637_3 +# 1637| r1637_5(int &) = CopyValue : r1637_4 +# 1637| mu1637_6(int &) = Store[rr] : &:r1637_1, r1637_5 +# 1638| r1638_1(glval<int>) = VariableAddress[w] : +# 1638| r1638_2(glval<int &>) = VariableAddress[r] : +# 1638| r1638_3(int &) = Load[r] : &:r1638_2, ~m? +# 1638| r1638_4(int) = Load[?] : &:r1638_3, ~m? +# 1638| mu1638_5(int) = Store[w] : &:r1638_1, r1638_4 +# 1642| r1642_1(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : +# 1642| r1642_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[t] : +# 1642| r1642_3(StructuredBindingTupleRefGet) = Load[t] : &:r1642_2, ~m? +# 1642| mu1642_4(StructuredBindingTupleRefGet) = Store[unnamed_local_variable] : &:r1642_1, r1642_3 +# 1643| r1643_1(glval<int &>) = VariableAddress[i] : +# 1643| r1643_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : +# 1643| r1643_3(glval<unknown>) = FunctionAddress[get] : +# 1643| r1643_4(int &) = Call[get] : func:r1643_3, this:r1643_2 +# 1643| mu1643_5(unknown) = ^CallSideEffect : ~m? +# 1643| v1643_6(void) = ^IndirectReadSideEffect[-1] : &:r1643_2, ~m? +# 1643| mu1643_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1643_2 +# 1643| r1643_8(glval<int>) = CopyValue : r1643_4 +# 1643| r1643_9(int &) = CopyValue : r1643_8 +# 1643| mu1643_10(int &) = Store[i] : &:r1643_1, r1643_9 +# 1644| r1644_1(glval<double &>) = VariableAddress[d] : +# 1644| r1644_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : +# 1644| r1644_3(glval<unknown>) = FunctionAddress[get] : +# 1644| r1644_4(double &) = Call[get] : func:r1644_3, this:r1644_2 +# 1644| mu1644_5(unknown) = ^CallSideEffect : ~m? +# 1644| v1644_6(void) = ^IndirectReadSideEffect[-1] : &:r1644_2, ~m? +# 1644| mu1644_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1644_2 +# 1644| r1644_8(glval<double>) = CopyValue : r1644_4 +# 1644| r1644_9(double &) = CopyValue : r1644_8 +# 1644| mu1644_10(double &) = Store[d] : &:r1644_1, r1644_9 +# 1645| r1645_1(glval<int &>) = VariableAddress[r] : +# 1645| r1645_2(glval<StructuredBindingTupleRefGet>) = VariableAddress[unnamed_local_variable] : +# 1645| r1645_3(glval<unknown>) = FunctionAddress[get] : +# 1645| r1645_4(int &) = Call[get] : func:r1645_3, this:r1645_2 +# 1645| mu1645_5(unknown) = ^CallSideEffect : ~m? +# 1645| v1645_6(void) = ^IndirectReadSideEffect[-1] : &:r1645_2, ~m? +# 1645| mu1645_7(StructuredBindingTupleRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1645_2 +# 1645| r1645_8(glval<int>) = CopyValue : r1645_4 +# 1645| r1645_9(int &) = CopyValue : r1645_8 +# 1645| mu1645_10(int &) = Store[r] : &:r1645_1, r1645_9 +# 1646| r1646_1(double) = Constant[4.0] : +# 1646| r1646_2(glval<double &>) = VariableAddress[d] : +# 1646| r1646_3(double &) = Load[d] : &:r1646_2, ~m? +# 1646| r1646_4(glval<double>) = CopyValue : r1646_3 +# 1646| mu1646_5(double) = Store[?] : &:r1646_4, r1646_1 +# 1647| r1647_1(glval<double &>) = VariableAddress[rd] : +# 1647| r1647_2(glval<double &>) = VariableAddress[d] : +# 1647| r1647_3(double &) = Load[d] : &:r1647_2, ~m? +# 1647| r1647_4(glval<double>) = CopyValue : r1647_3 +# 1647| r1647_5(double &) = CopyValue : r1647_4 +# 1647| mu1647_6(double &) = Store[rd] : &:r1647_1, r1647_5 +# 1648| r1648_1(glval<int>) = VariableAddress[v] : +# 1648| r1648_2(glval<int &>) = VariableAddress[i] : +# 1648| r1648_3(int &) = Load[i] : &:r1648_2, ~m? +# 1648| r1648_4(int) = Load[?] : &:r1648_3, ~m? +# 1648| mu1648_5(int) = Store[v] : &:r1648_1, r1648_4 +# 1649| r1649_1(int) = Constant[5] : +# 1649| r1649_2(glval<int &>) = VariableAddress[r] : +# 1649| r1649_3(int &) = Load[r] : &:r1649_2, ~m? +# 1649| r1649_4(glval<int>) = CopyValue : r1649_3 +# 1649| mu1649_5(int) = Store[?] : &:r1649_4, r1649_1 +# 1650| r1650_1(glval<int &>) = VariableAddress[rr] : +# 1650| r1650_2(glval<int &>) = VariableAddress[r] : +# 1650| r1650_3(int &) = Load[r] : &:r1650_2, ~m? +# 1650| r1650_4(glval<int>) = CopyValue : r1650_3 +# 1650| r1650_5(int &) = CopyValue : r1650_4 +# 1650| mu1650_6(int &) = Store[rr] : &:r1650_1, r1650_5 +# 1651| r1651_1(glval<int>) = VariableAddress[w] : +# 1651| r1651_2(glval<int &>) = VariableAddress[r] : +# 1651| r1651_3(int &) = Load[r] : &:r1651_2, ~m? +# 1651| r1651_4(int) = Load[?] : &:r1651_3, ~m? +# 1651| mu1651_5(int) = Store[w] : &:r1651_1, r1651_4 +# 1653| v1653_1(void) = NoOp : +# 1628| v1628_4(void) = ReturnVoid : +# 1628| v1628_5(void) = AliasedUse : ~m? +# 1628| v1628_6(void) = ExitFunction : -# 1608| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() -# 1608| Block 0 -# 1608| v1608_1(void) = EnterFunction : -# 1608| mu1608_2(unknown) = AliasedDefinition : -# 1608| mu1608_3(unknown) = InitializeNonLocal : -# 1608| r1608_4(glval<unknown>) = VariableAddress[#this] : -# 1608| mu1608_5(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1608_4 -# 1608| r1608_6(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1608_4, ~m? -# 1608| mu1608_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1608_6 -# 1608| v1608_8(void) = NoOp : -# 1608| v1608_9(void) = ReturnIndirection[#this] : &:r1608_6, ~m? -# 1608| v1608_10(void) = ReturnVoid : -# 1608| v1608_11(void) = AliasedUse : ~m? -# 1608| v1608_12(void) = ExitFunction : +# 1655| void StructuredBindingTupleNoRefGet::StructuredBindingTupleNoRefGet() +# 1655| Block 0 +# 1655| v1655_1(void) = EnterFunction : +# 1655| mu1655_2(unknown) = AliasedDefinition : +# 1655| mu1655_3(unknown) = InitializeNonLocal : +# 1655| r1655_4(glval<unknown>) = VariableAddress[#this] : +# 1655| mu1655_5(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1655_4 +# 1655| r1655_6(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1655_4, ~m? +# 1655| mu1655_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1655_6 +# 1655| v1655_8(void) = NoOp : +# 1655| v1655_9(void) = ReturnIndirection[#this] : &:r1655_6, ~m? +# 1655| v1655_10(void) = ReturnVoid : +# 1655| v1655_11(void) = AliasedUse : ~m? +# 1655| v1655_12(void) = ExitFunction : -# 1635| std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 0>() -# 1635| Block 0 -# 1635| v1635_1(void) = EnterFunction : -# 1635| mu1635_2(unknown) = AliasedDefinition : -# 1635| mu1635_3(unknown) = InitializeNonLocal : -# 1635| r1635_4(glval<unknown>) = VariableAddress[#this] : -# 1635| mu1635_5(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1635_4 -# 1635| r1635_6(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1635_4, ~m? -# 1635| mu1635_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1635_6 -# 1636| r1636_1(glval<int>) = VariableAddress[#return] : -# 1636| r1636_2(glval<unknown>) = VariableAddress[#this] : -# 1636| r1636_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1636_2, ~m? -# 1636| r1636_4(glval<int>) = FieldAddress[i] : r1636_3 -# 1636| r1636_5(int) = Load[?] : &:r1636_4, ~m? -# 1636| mu1636_6(int) = Store[#return] : &:r1636_1, r1636_5 -# 1635| v1635_8(void) = ReturnIndirection[#this] : &:r1635_6, ~m? -# 1635| r1635_9(glval<int>) = VariableAddress[#return] : -# 1635| v1635_10(void) = ReturnValue : &:r1635_9, ~m? -# 1635| v1635_11(void) = AliasedUse : ~m? -# 1635| v1635_12(void) = ExitFunction : +# 1682| std::tuple_element<int 0, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 0>() +# 1682| Block 0 +# 1682| v1682_1(void) = EnterFunction : +# 1682| mu1682_2(unknown) = AliasedDefinition : +# 1682| mu1682_3(unknown) = InitializeNonLocal : +# 1682| r1682_4(glval<unknown>) = VariableAddress[#this] : +# 1682| mu1682_5(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1682_4 +# 1682| r1682_6(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1682_4, ~m? +# 1682| mu1682_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1682_6 +# 1683| r1683_1(glval<int>) = VariableAddress[#return] : +# 1683| r1683_2(glval<unknown>) = VariableAddress[#this] : +# 1683| r1683_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1683_2, ~m? +# 1683| r1683_4(glval<int>) = FieldAddress[i] : r1683_3 +# 1683| r1683_5(int) = Load[?] : &:r1683_4, ~m? +# 1683| mu1683_6(int) = Store[#return] : &:r1683_1, r1683_5 +# 1682| v1682_8(void) = ReturnIndirection[#this] : &:r1682_6, ~m? +# 1682| r1682_9(glval<int>) = VariableAddress[#return] : +# 1682| v1682_10(void) = ReturnValue : &:r1682_9, ~m? +# 1682| v1682_11(void) = AliasedUse : ~m? +# 1682| v1682_12(void) = ExitFunction : -# 1639| std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 1>() -# 1639| Block 0 -# 1639| v1639_1(void) = EnterFunction : -# 1639| mu1639_2(unknown) = AliasedDefinition : -# 1639| mu1639_3(unknown) = InitializeNonLocal : -# 1639| r1639_4(glval<unknown>) = VariableAddress[#this] : -# 1639| mu1639_5(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1639_4 -# 1639| r1639_6(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1639_4, ~m? -# 1639| mu1639_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1639_6 -# 1640| r1640_1(glval<int &>) = VariableAddress[#return] : -# 1640| r1640_2(glval<unknown>) = VariableAddress[#this] : -# 1640| r1640_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1640_2, ~m? -# 1640| r1640_4(glval<int &>) = FieldAddress[r] : r1640_3 -# 1640| r1640_5(int &) = Load[?] : &:r1640_4, ~m? -# 1640| r1640_6(glval<int>) = CopyValue : r1640_5 -# 1640| r1640_7(int &) = CopyValue : r1640_6 -# 1640| mu1640_8(int &) = Store[#return] : &:r1640_1, r1640_7 -# 1639| v1639_8(void) = ReturnIndirection[#this] : &:r1639_6, ~m? -# 1639| r1639_9(glval<int &>) = VariableAddress[#return] : -# 1639| v1639_10(void) = ReturnValue : &:r1639_9, ~m? -# 1639| v1639_11(void) = AliasedUse : ~m? -# 1639| v1639_12(void) = ExitFunction : +# 1686| std::tuple_element<int 1, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 1>() +# 1686| Block 0 +# 1686| v1686_1(void) = EnterFunction : +# 1686| mu1686_2(unknown) = AliasedDefinition : +# 1686| mu1686_3(unknown) = InitializeNonLocal : +# 1686| r1686_4(glval<unknown>) = VariableAddress[#this] : +# 1686| mu1686_5(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1686_4 +# 1686| r1686_6(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1686_4, ~m? +# 1686| mu1686_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1686_6 +# 1687| r1687_1(glval<int &>) = VariableAddress[#return] : +# 1687| r1687_2(glval<unknown>) = VariableAddress[#this] : +# 1687| r1687_3(StructuredBindingTupleNoRefGet *) = Load[#this] : &:r1687_2, ~m? +# 1687| r1687_4(glval<int &>) = FieldAddress[r] : r1687_3 +# 1687| r1687_5(int &) = Load[?] : &:r1687_4, ~m? +# 1687| r1687_6(glval<int>) = CopyValue : r1687_5 +# 1687| r1687_7(int &) = CopyValue : r1687_6 +# 1687| mu1687_8(int &) = Store[#return] : &:r1687_1, r1687_7 +# 1686| v1686_8(void) = ReturnIndirection[#this] : &:r1686_6, ~m? +# 1686| r1686_9(glval<int &>) = VariableAddress[#return] : +# 1686| v1686_10(void) = ReturnValue : &:r1686_9, ~m? +# 1686| v1686_11(void) = AliasedUse : ~m? +# 1686| v1686_12(void) = ExitFunction : -# 1643| std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 2>() -# 1643| Block 0 -# 1643| v1643_1(void) = EnterFunction : -# 1643| mu1643_2(unknown) = AliasedDefinition : -# 1643| mu1643_3(unknown) = InitializeNonLocal : -# 1643| r1643_4(glval<unknown>) = VariableAddress[#this] : -# 1643| mu1643_5(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1643_4 -# 1643| r1643_6(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1643_4, ~m? -# 1643| mu1643_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1643_6 -# 1644| r1644_1(glval<int &&>) = VariableAddress[#return] : -# 1644| r1644_2(glval<int>) = VariableAddress[#temp1644:12] : -# 1644| r1644_3(int) = Constant[5] : -# 1644| mu1644_4(int) = Store[#temp1644:12] : &:r1644_2, r1644_3 -# 1644| r1644_5(int &) = CopyValue : r1644_2 -# 1644| mu1644_6(int &&) = Store[#return] : &:r1644_1, r1644_5 -# 1643| v1643_8(void) = ReturnIndirection[#this] : &:r1643_6, ~m? -# 1643| r1643_9(glval<int &&>) = VariableAddress[#return] : -# 1643| v1643_10(void) = ReturnValue : &:r1643_9, ~m? -# 1643| v1643_11(void) = AliasedUse : ~m? -# 1643| v1643_12(void) = ExitFunction : +# 1690| std::tuple_element<int 2, StructuredBindingTupleNoRefGet>::type StructuredBindingTupleNoRefGet::get<int 2>() +# 1690| Block 0 +# 1690| v1690_1(void) = EnterFunction : +# 1690| mu1690_2(unknown) = AliasedDefinition : +# 1690| mu1690_3(unknown) = InitializeNonLocal : +# 1690| r1690_4(glval<unknown>) = VariableAddress[#this] : +# 1690| mu1690_5(glval<StructuredBindingTupleNoRefGet>) = InitializeParameter[#this] : &:r1690_4 +# 1690| r1690_6(glval<StructuredBindingTupleNoRefGet>) = Load[#this] : &:r1690_4, ~m? +# 1690| mu1690_7(StructuredBindingTupleNoRefGet) = InitializeIndirection[#this] : &:r1690_6 +# 1691| r1691_1(glval<int &&>) = VariableAddress[#return] : +# 1691| r1691_2(glval<int>) = VariableAddress[#temp1691:12] : +# 1691| r1691_3(int) = Constant[5] : +# 1691| mu1691_4(int) = Store[#temp1691:12] : &:r1691_2, r1691_3 +# 1691| r1691_5(int &) = CopyValue : r1691_2 +# 1691| mu1691_6(int &&) = Store[#return] : &:r1691_1, r1691_5 +# 1690| v1690_8(void) = ReturnIndirection[#this] : &:r1690_6, ~m? +# 1690| r1690_9(glval<int &&>) = VariableAddress[#return] : +# 1690| v1690_10(void) = ReturnValue : &:r1690_9, ~m? +# 1690| v1690_11(void) = AliasedUse : ~m? +# 1690| v1690_12(void) = ExitFunction : -# 1647| void tuple_structured_binding_no_ref_get() -# 1647| Block 0 -# 1647| v1647_1(void) = EnterFunction : -# 1647| mu1647_2(unknown) = AliasedDefinition : -# 1647| mu1647_3(unknown) = InitializeNonLocal : -# 1648| r1648_1(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : -# 1648| mu1648_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1648_1 -# 1648| r1648_3(glval<unknown>) = FunctionAddress[StructuredBindingTupleNoRefGet] : -# 1648| v1648_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1648_3, this:r1648_1 -# 1648| mu1648_5(unknown) = ^CallSideEffect : ~m? -# 1648| mu1648_6(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1648_1 -# 1651| r1651_1(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : -# 1651| r1651_2(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : -# 1651| r1651_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1651_2 -# 1651| mu1651_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1651_1, r1651_3 -# 1651| r1651_5(glval<int &&>) = VariableAddress[i] : -# 1651| r1651_6(glval<int>) = VariableAddress[#temp1651:16] : -# 1651| r1651_7(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : -# 1651| r1651_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1651_7, ~m? -# 1651| r1651_9(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1651_8 -# 1651| r1651_10(glval<unknown>) = FunctionAddress[get] : -# 1651| r1651_11(int) = Call[get] : func:r1651_10, this:r1651_9 -# 1651| mu1651_12(unknown) = ^CallSideEffect : ~m? -# 1651| v1651_13(void) = ^IndirectReadSideEffect[-1] : &:r1651_9, ~m? -# 1651| mu1651_14(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1651_9 -# 1651| mu1651_15(int) = Store[#temp1651:16] : &:r1651_6, r1651_11 -# 1651| r1651_16(int &) = CopyValue : r1651_6 -# 1651| mu1651_17(int &&) = Store[i] : &:r1651_5, r1651_16 -# 1651| r1651_18(glval<int &>) = VariableAddress[r] : -# 1651| r1651_19(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : -# 1651| r1651_20(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1651_19, ~m? -# 1651| r1651_21(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1651_20 -# 1651| r1651_22(glval<unknown>) = FunctionAddress[get] : -# 1651| r1651_23(int &) = Call[get] : func:r1651_22, this:r1651_21 -# 1651| mu1651_24(unknown) = ^CallSideEffect : ~m? -# 1651| v1651_25(void) = ^IndirectReadSideEffect[-1] : &:r1651_21, ~m? -# 1651| mu1651_26(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1651_21 -# 1651| r1651_27(glval<int>) = CopyValue : r1651_23 -# 1651| r1651_28(int &) = CopyValue : r1651_27 -# 1651| mu1651_29(int &) = Store[r] : &:r1651_18, r1651_28 -# 1651| r1651_30(glval<int &&>) = VariableAddress[rv] : -# 1651| r1651_31(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : -# 1651| r1651_32(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1651_31, ~m? -# 1651| r1651_33(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1651_32 -# 1651| r1651_34(glval<unknown>) = FunctionAddress[get] : -# 1651| r1651_35(int &&) = Call[get] : func:r1651_34, this:r1651_33 -# 1651| mu1651_36(unknown) = ^CallSideEffect : ~m? -# 1651| v1651_37(void) = ^IndirectReadSideEffect[-1] : &:r1651_33, ~m? -# 1651| mu1651_38(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1651_33 -# 1651| r1651_39(glval<int>) = CopyValue : r1651_35 -# 1651| r1651_40(int &) = CopyValue : r1651_39 -# 1651| mu1651_41(int &&) = Store[rv] : &:r1651_30, r1651_40 -# 1652| r1652_1(int) = Constant[4] : -# 1652| r1652_2(glval<int &&>) = VariableAddress[i] : -# 1652| r1652_3(int &&) = Load[i] : &:r1652_2, ~m? -# 1652| r1652_4(glval<int>) = CopyValue : r1652_3 -# 1652| mu1652_5(int) = Store[?] : &:r1652_4, r1652_1 -# 1653| r1653_1(glval<int &>) = VariableAddress[ri] : -# 1653| r1653_2(glval<int &&>) = VariableAddress[i] : -# 1653| r1653_3(int &&) = Load[i] : &:r1653_2, ~m? -# 1653| r1653_4(glval<int>) = CopyValue : r1653_3 -# 1653| r1653_5(int &) = CopyValue : r1653_4 -# 1653| mu1653_6(int &) = Store[ri] : &:r1653_1, r1653_5 -# 1654| r1654_1(glval<int>) = VariableAddress[v] : -# 1654| r1654_2(glval<int &&>) = VariableAddress[i] : -# 1654| r1654_3(int &&) = Load[i] : &:r1654_2, ~m? -# 1654| r1654_4(int) = Load[?] : &:r1654_3, ~m? -# 1654| mu1654_5(int) = Store[v] : &:r1654_1, r1654_4 -# 1655| r1655_1(int) = Constant[5] : -# 1655| r1655_2(glval<int &>) = VariableAddress[r] : -# 1655| r1655_3(int &) = Load[r] : &:r1655_2, ~m? -# 1655| r1655_4(glval<int>) = CopyValue : r1655_3 -# 1655| mu1655_5(int) = Store[?] : &:r1655_4, r1655_1 -# 1656| r1656_1(glval<int &>) = VariableAddress[rr] : -# 1656| r1656_2(glval<int &>) = VariableAddress[r] : -# 1656| r1656_3(int &) = Load[r] : &:r1656_2, ~m? -# 1656| r1656_4(glval<int>) = CopyValue : r1656_3 -# 1656| r1656_5(int &) = CopyValue : r1656_4 -# 1656| mu1656_6(int &) = Store[rr] : &:r1656_1, r1656_5 -# 1657| r1657_1(glval<int>) = VariableAddress[w] : -# 1657| r1657_2(glval<int &>) = VariableAddress[r] : -# 1657| r1657_3(int &) = Load[r] : &:r1657_2, ~m? -# 1657| r1657_4(int) = Load[?] : &:r1657_3, ~m? -# 1657| mu1657_5(int) = Store[w] : &:r1657_1, r1657_4 -# 1661| r1661_1(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : -# 1661| r1661_2(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : -# 1661| r1661_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1661_2 -# 1661| mu1661_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1661_1, r1661_3 -# 1662| r1662_1(glval<int &&>) = VariableAddress[i] : -# 1662| r1662_2(glval<int>) = VariableAddress[#temp1662:20] : -# 1662| r1662_3(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : -# 1662| r1662_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1662_3, ~m? -# 1662| r1662_5(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1662_4 -# 1662| r1662_6(glval<unknown>) = FunctionAddress[get] : -# 1662| r1662_7(int) = Call[get] : func:r1662_6, this:r1662_5 -# 1662| mu1662_8(unknown) = ^CallSideEffect : ~m? -# 1662| v1662_9(void) = ^IndirectReadSideEffect[-1] : &:r1662_5, ~m? -# 1662| mu1662_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1662_5 -# 1662| mu1662_11(int) = Store[#temp1662:20] : &:r1662_2, r1662_7 -# 1662| r1662_12(int &) = CopyValue : r1662_2 -# 1662| mu1662_13(int &&) = Store[i] : &:r1662_1, r1662_12 -# 1663| r1663_1(glval<int &>) = VariableAddress[r] : -# 1663| r1663_2(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : -# 1663| r1663_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1663_2, ~m? -# 1663| r1663_4(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1663_3 -# 1663| r1663_5(glval<unknown>) = FunctionAddress[get] : -# 1663| r1663_6(int &) = Call[get] : func:r1663_5, this:r1663_4 -# 1663| mu1663_7(unknown) = ^CallSideEffect : ~m? -# 1663| v1663_8(void) = ^IndirectReadSideEffect[-1] : &:r1663_4, ~m? -# 1663| mu1663_9(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1663_4 -# 1663| r1663_10(glval<int>) = CopyValue : r1663_6 -# 1663| r1663_11(int &) = CopyValue : r1663_10 -# 1663| mu1663_12(int &) = Store[r] : &:r1663_1, r1663_11 -# 1664| r1664_1(glval<int &&>) = VariableAddress[rv] : -# 1664| r1664_2(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : -# 1664| r1664_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1664_2, ~m? -# 1664| r1664_4(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1664_3 -# 1664| r1664_5(glval<unknown>) = FunctionAddress[get] : -# 1664| r1664_6(int &&) = Call[get] : func:r1664_5, this:r1664_4 -# 1664| mu1664_7(unknown) = ^CallSideEffect : ~m? -# 1664| v1664_8(void) = ^IndirectReadSideEffect[-1] : &:r1664_4, ~m? -# 1664| mu1664_9(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1664_4 -# 1664| r1664_10(glval<int>) = CopyValue : r1664_6 -# 1664| r1664_11(int &) = CopyValue : r1664_10 -# 1664| mu1664_12(int &&) = Store[rv] : &:r1664_1, r1664_11 -# 1665| r1665_1(int) = Constant[4] : -# 1665| r1665_2(glval<int &&>) = VariableAddress[i] : -# 1665| r1665_3(int &&) = Load[i] : &:r1665_2, ~m? -# 1665| r1665_4(glval<int>) = CopyValue : r1665_3 -# 1665| mu1665_5(int) = Store[?] : &:r1665_4, r1665_1 -# 1666| r1666_1(glval<int &>) = VariableAddress[ri] : -# 1666| r1666_2(glval<int &&>) = VariableAddress[i] : -# 1666| r1666_3(int &&) = Load[i] : &:r1666_2, ~m? -# 1666| r1666_4(glval<int>) = CopyValue : r1666_3 -# 1666| r1666_5(int &) = CopyValue : r1666_4 -# 1666| mu1666_6(int &) = Store[ri] : &:r1666_1, r1666_5 -# 1667| r1667_1(glval<int>) = VariableAddress[v] : -# 1667| r1667_2(glval<int &&>) = VariableAddress[i] : -# 1667| r1667_3(int &&) = Load[i] : &:r1667_2, ~m? -# 1667| r1667_4(int) = Load[?] : &:r1667_3, ~m? -# 1667| mu1667_5(int) = Store[v] : &:r1667_1, r1667_4 -# 1668| r1668_1(int) = Constant[5] : -# 1668| r1668_2(glval<int &>) = VariableAddress[r] : -# 1668| r1668_3(int &) = Load[r] : &:r1668_2, ~m? -# 1668| r1668_4(glval<int>) = CopyValue : r1668_3 -# 1668| mu1668_5(int) = Store[?] : &:r1668_4, r1668_1 -# 1669| r1669_1(glval<int &>) = VariableAddress[rr] : -# 1669| r1669_2(glval<int &>) = VariableAddress[r] : -# 1669| r1669_3(int &) = Load[r] : &:r1669_2, ~m? -# 1669| r1669_4(glval<int>) = CopyValue : r1669_3 -# 1669| r1669_5(int &) = CopyValue : r1669_4 -# 1669| mu1669_6(int &) = Store[rr] : &:r1669_1, r1669_5 -# 1670| r1670_1(glval<int>) = VariableAddress[w] : -# 1670| r1670_2(glval<int &>) = VariableAddress[r] : -# 1670| r1670_3(int &) = Load[r] : &:r1670_2, ~m? -# 1670| r1670_4(int) = Load[?] : &:r1670_3, ~m? -# 1670| mu1670_5(int) = Store[w] : &:r1670_1, r1670_4 -# 1672| v1672_1(void) = NoOp : -# 1647| v1647_4(void) = ReturnVoid : -# 1647| v1647_5(void) = AliasedUse : ~m? -# 1647| v1647_6(void) = ExitFunction : +# 1694| void tuple_structured_binding_no_ref_get() +# 1694| Block 0 +# 1694| v1694_1(void) = EnterFunction : +# 1694| mu1694_2(unknown) = AliasedDefinition : +# 1694| mu1694_3(unknown) = InitializeNonLocal : +# 1695| r1695_1(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : +# 1695| mu1695_2(StructuredBindingTupleNoRefGet) = Uninitialized[t] : &:r1695_1 +# 1695| r1695_3(glval<unknown>) = FunctionAddress[StructuredBindingTupleNoRefGet] : +# 1695| v1695_4(void) = Call[StructuredBindingTupleNoRefGet] : func:r1695_3, this:r1695_1 +# 1695| mu1695_5(unknown) = ^CallSideEffect : ~m? +# 1695| mu1695_6(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1695_1 +# 1698| r1698_1(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : +# 1698| r1698_2(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : +# 1698| r1698_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1698_2 +# 1698| mu1698_4(StructuredBindingTupleNoRefGet &) = Store[(unnamed local variable)] : &:r1698_1, r1698_3 +# 1698| r1698_5(glval<int &&>) = VariableAddress[i] : +# 1698| r1698_6(glval<int>) = VariableAddress[#temp1698:16] : +# 1698| r1698_7(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : +# 1698| r1698_8(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_7, ~m? +# 1698| r1698_9(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1698_8 +# 1698| r1698_10(glval<unknown>) = FunctionAddress[get] : +# 1698| r1698_11(int) = Call[get] : func:r1698_10, this:r1698_9 +# 1698| mu1698_12(unknown) = ^CallSideEffect : ~m? +# 1698| v1698_13(void) = ^IndirectReadSideEffect[-1] : &:r1698_9, ~m? +# 1698| mu1698_14(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_9 +# 1698| mu1698_15(int) = Store[#temp1698:16] : &:r1698_6, r1698_11 +# 1698| r1698_16(int &) = CopyValue : r1698_6 +# 1698| mu1698_17(int &&) = Store[i] : &:r1698_5, r1698_16 +# 1698| r1698_18(glval<int &>) = VariableAddress[r] : +# 1698| r1698_19(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : +# 1698| r1698_20(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_19, ~m? +# 1698| r1698_21(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1698_20 +# 1698| r1698_22(glval<unknown>) = FunctionAddress[get] : +# 1698| r1698_23(int &) = Call[get] : func:r1698_22, this:r1698_21 +# 1698| mu1698_24(unknown) = ^CallSideEffect : ~m? +# 1698| v1698_25(void) = ^IndirectReadSideEffect[-1] : &:r1698_21, ~m? +# 1698| mu1698_26(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_21 +# 1698| r1698_27(glval<int>) = CopyValue : r1698_23 +# 1698| r1698_28(int &) = CopyValue : r1698_27 +# 1698| mu1698_29(int &) = Store[r] : &:r1698_18, r1698_28 +# 1698| r1698_30(glval<int &&>) = VariableAddress[rv] : +# 1698| r1698_31(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[(unnamed local variable)] : +# 1698| r1698_32(StructuredBindingTupleNoRefGet &) = Load[(unnamed local variable)] : &:r1698_31, ~m? +# 1698| r1698_33(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1698_32 +# 1698| r1698_34(glval<unknown>) = FunctionAddress[get] : +# 1698| r1698_35(int &&) = Call[get] : func:r1698_34, this:r1698_33 +# 1698| mu1698_36(unknown) = ^CallSideEffect : ~m? +# 1698| v1698_37(void) = ^IndirectReadSideEffect[-1] : &:r1698_33, ~m? +# 1698| mu1698_38(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1698_33 +# 1698| r1698_39(glval<int>) = CopyValue : r1698_35 +# 1698| r1698_40(int &) = CopyValue : r1698_39 +# 1698| mu1698_41(int &&) = Store[rv] : &:r1698_30, r1698_40 +# 1699| r1699_1(int) = Constant[4] : +# 1699| r1699_2(glval<int &&>) = VariableAddress[i] : +# 1699| r1699_3(int &&) = Load[i] : &:r1699_2, ~m? +# 1699| r1699_4(glval<int>) = CopyValue : r1699_3 +# 1699| mu1699_5(int) = Store[?] : &:r1699_4, r1699_1 +# 1700| r1700_1(glval<int &>) = VariableAddress[ri] : +# 1700| r1700_2(glval<int &&>) = VariableAddress[i] : +# 1700| r1700_3(int &&) = Load[i] : &:r1700_2, ~m? +# 1700| r1700_4(glval<int>) = CopyValue : r1700_3 +# 1700| r1700_5(int &) = CopyValue : r1700_4 +# 1700| mu1700_6(int &) = Store[ri] : &:r1700_1, r1700_5 +# 1701| r1701_1(glval<int>) = VariableAddress[v] : +# 1701| r1701_2(glval<int &&>) = VariableAddress[i] : +# 1701| r1701_3(int &&) = Load[i] : &:r1701_2, ~m? +# 1701| r1701_4(int) = Load[?] : &:r1701_3, ~m? +# 1701| mu1701_5(int) = Store[v] : &:r1701_1, r1701_4 +# 1702| r1702_1(int) = Constant[5] : +# 1702| r1702_2(glval<int &>) = VariableAddress[r] : +# 1702| r1702_3(int &) = Load[r] : &:r1702_2, ~m? +# 1702| r1702_4(glval<int>) = CopyValue : r1702_3 +# 1702| mu1702_5(int) = Store[?] : &:r1702_4, r1702_1 +# 1703| r1703_1(glval<int &>) = VariableAddress[rr] : +# 1703| r1703_2(glval<int &>) = VariableAddress[r] : +# 1703| r1703_3(int &) = Load[r] : &:r1703_2, ~m? +# 1703| r1703_4(glval<int>) = CopyValue : r1703_3 +# 1703| r1703_5(int &) = CopyValue : r1703_4 +# 1703| mu1703_6(int &) = Store[rr] : &:r1703_1, r1703_5 +# 1704| r1704_1(glval<int>) = VariableAddress[w] : +# 1704| r1704_2(glval<int &>) = VariableAddress[r] : +# 1704| r1704_3(int &) = Load[r] : &:r1704_2, ~m? +# 1704| r1704_4(int) = Load[?] : &:r1704_3, ~m? +# 1704| mu1704_5(int) = Store[w] : &:r1704_1, r1704_4 +# 1708| r1708_1(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : +# 1708| r1708_2(glval<StructuredBindingTupleNoRefGet>) = VariableAddress[t] : +# 1708| r1708_3(StructuredBindingTupleNoRefGet &) = CopyValue : r1708_2 +# 1708| mu1708_4(StructuredBindingTupleNoRefGet &) = Store[unnamed_local_variable] : &:r1708_1, r1708_3 +# 1709| r1709_1(glval<int &&>) = VariableAddress[i] : +# 1709| r1709_2(glval<int>) = VariableAddress[#temp1709:20] : +# 1709| r1709_3(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : +# 1709| r1709_4(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1709_3, ~m? +# 1709| r1709_5(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1709_4 +# 1709| r1709_6(glval<unknown>) = FunctionAddress[get] : +# 1709| r1709_7(int) = Call[get] : func:r1709_6, this:r1709_5 +# 1709| mu1709_8(unknown) = ^CallSideEffect : ~m? +# 1709| v1709_9(void) = ^IndirectReadSideEffect[-1] : &:r1709_5, ~m? +# 1709| mu1709_10(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1709_5 +# 1709| mu1709_11(int) = Store[#temp1709:20] : &:r1709_2, r1709_7 +# 1709| r1709_12(int &) = CopyValue : r1709_2 +# 1709| mu1709_13(int &&) = Store[i] : &:r1709_1, r1709_12 +# 1710| r1710_1(glval<int &>) = VariableAddress[r] : +# 1710| r1710_2(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : +# 1710| r1710_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1710_2, ~m? +# 1710| r1710_4(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1710_3 +# 1710| r1710_5(glval<unknown>) = FunctionAddress[get] : +# 1710| r1710_6(int &) = Call[get] : func:r1710_5, this:r1710_4 +# 1710| mu1710_7(unknown) = ^CallSideEffect : ~m? +# 1710| v1710_8(void) = ^IndirectReadSideEffect[-1] : &:r1710_4, ~m? +# 1710| mu1710_9(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1710_4 +# 1710| r1710_10(glval<int>) = CopyValue : r1710_6 +# 1710| r1710_11(int &) = CopyValue : r1710_10 +# 1710| mu1710_12(int &) = Store[r] : &:r1710_1, r1710_11 +# 1711| r1711_1(glval<int &&>) = VariableAddress[rv] : +# 1711| r1711_2(glval<StructuredBindingTupleNoRefGet &>) = VariableAddress[unnamed_local_variable] : +# 1711| r1711_3(StructuredBindingTupleNoRefGet &) = Load[unnamed_local_variable] : &:r1711_2, ~m? +# 1711| r1711_4(glval<StructuredBindingTupleNoRefGet>) = CopyValue : r1711_3 +# 1711| r1711_5(glval<unknown>) = FunctionAddress[get] : +# 1711| r1711_6(int &&) = Call[get] : func:r1711_5, this:r1711_4 +# 1711| mu1711_7(unknown) = ^CallSideEffect : ~m? +# 1711| v1711_8(void) = ^IndirectReadSideEffect[-1] : &:r1711_4, ~m? +# 1711| mu1711_9(StructuredBindingTupleNoRefGet) = ^IndirectMayWriteSideEffect[-1] : &:r1711_4 +# 1711| r1711_10(glval<int>) = CopyValue : r1711_6 +# 1711| r1711_11(int &) = CopyValue : r1711_10 +# 1711| mu1711_12(int &&) = Store[rv] : &:r1711_1, r1711_11 +# 1712| r1712_1(int) = Constant[4] : +# 1712| r1712_2(glval<int &&>) = VariableAddress[i] : +# 1712| r1712_3(int &&) = Load[i] : &:r1712_2, ~m? +# 1712| r1712_4(glval<int>) = CopyValue : r1712_3 +# 1712| mu1712_5(int) = Store[?] : &:r1712_4, r1712_1 +# 1713| r1713_1(glval<int &>) = VariableAddress[ri] : +# 1713| r1713_2(glval<int &&>) = VariableAddress[i] : +# 1713| r1713_3(int &&) = Load[i] : &:r1713_2, ~m? +# 1713| r1713_4(glval<int>) = CopyValue : r1713_3 +# 1713| r1713_5(int &) = CopyValue : r1713_4 +# 1713| mu1713_6(int &) = Store[ri] : &:r1713_1, r1713_5 +# 1714| r1714_1(glval<int>) = VariableAddress[v] : +# 1714| r1714_2(glval<int &&>) = VariableAddress[i] : +# 1714| r1714_3(int &&) = Load[i] : &:r1714_2, ~m? +# 1714| r1714_4(int) = Load[?] : &:r1714_3, ~m? +# 1714| mu1714_5(int) = Store[v] : &:r1714_1, r1714_4 +# 1715| r1715_1(int) = Constant[5] : +# 1715| r1715_2(glval<int &>) = VariableAddress[r] : +# 1715| r1715_3(int &) = Load[r] : &:r1715_2, ~m? +# 1715| r1715_4(glval<int>) = CopyValue : r1715_3 +# 1715| mu1715_5(int) = Store[?] : &:r1715_4, r1715_1 +# 1716| r1716_1(glval<int &>) = VariableAddress[rr] : +# 1716| r1716_2(glval<int &>) = VariableAddress[r] : +# 1716| r1716_3(int &) = Load[r] : &:r1716_2, ~m? +# 1716| r1716_4(glval<int>) = CopyValue : r1716_3 +# 1716| r1716_5(int &) = CopyValue : r1716_4 +# 1716| mu1716_6(int &) = Store[rr] : &:r1716_1, r1716_5 +# 1717| r1717_1(glval<int>) = VariableAddress[w] : +# 1717| r1717_2(glval<int &>) = VariableAddress[r] : +# 1717| r1717_3(int &) = Load[r] : &:r1717_2, ~m? +# 1717| r1717_4(int) = Load[?] : &:r1717_3, ~m? +# 1717| mu1717_5(int) = Store[w] : &:r1717_1, r1717_4 +# 1719| v1719_1(void) = NoOp : +# 1694| v1694_4(void) = ReturnVoid : +# 1694| v1694_5(void) = AliasedUse : ~m? +# 1694| v1694_6(void) = ExitFunction : -# 1674| void array_structured_binding_non_ref_init() -# 1674| Block 0 -# 1674| v1674_1(void) = EnterFunction : -# 1674| mu1674_2(unknown) = AliasedDefinition : -# 1674| mu1674_3(unknown) = InitializeNonLocal : -# 1675| r1675_1(glval<int[2]>) = VariableAddress[xs] : -# 1675| mu1675_2(int[2]) = Uninitialized[xs] : &:r1675_1 -# 1675| r1675_3(int) = Constant[0] : -# 1675| r1675_4(glval<int>) = PointerAdd[4] : r1675_1, r1675_3 -# 1675| r1675_5(int) = Constant[1] : -# 1675| mu1675_6(int) = Store[?] : &:r1675_4, r1675_5 -# 1675| r1675_7(int) = Constant[1] : -# 1675| r1675_8(glval<int>) = PointerAdd[4] : r1675_1, r1675_7 -# 1675| r1675_9(int) = Constant[2] : -# 1675| mu1675_10(int) = Store[?] : &:r1675_8, r1675_9 -# 1676| r1676_1(glval<int[2]>) = VariableAddress[(unnamed local variable)] : -# 1676| r1676_2(glval<int[2]>) = VariableAddress[xs] : -# 1676| r1676_3(int[2]) = Load[xs] : &:r1676_2, ~m? -# 1676| mu1676_4(int[2]) = Store[(unnamed local variable)] : &:r1676_1, r1676_3 -# 1676| r1676_5(glval<int &>) = VariableAddress[x0] : +# 1721| void array_structured_binding_non_ref_init() +# 1721| Block 0 +# 1721| v1721_1(void) = EnterFunction : +# 1721| mu1721_2(unknown) = AliasedDefinition : +# 1721| mu1721_3(unknown) = InitializeNonLocal : +# 1722| r1722_1(glval<int[2]>) = VariableAddress[xs] : +# 1722| mu1722_2(int[2]) = Uninitialized[xs] : &:r1722_1 +# 1722| r1722_3(int) = Constant[0] : +# 1722| r1722_4(glval<int>) = PointerAdd[4] : r1722_1, r1722_3 +# 1722| r1722_5(int) = Constant[1] : +# 1722| mu1722_6(int) = Store[?] : &:r1722_4, r1722_5 +# 1722| r1722_7(int) = Constant[1] : +# 1722| r1722_8(glval<int>) = PointerAdd[4] : r1722_1, r1722_7 +# 1722| r1722_9(int) = Constant[2] : +# 1722| mu1722_10(int) = Store[?] : &:r1722_8, r1722_9 +# 1723| r1723_1(glval<int[2]>) = VariableAddress[(unnamed local variable)] : +# 1723| r1723_2(glval<int[2]>) = VariableAddress[xs] : +# 1723| r1723_3(int[2]) = Load[xs] : &:r1723_2, ~m? +# 1723| mu1723_4(int[2]) = Store[(unnamed local variable)] : &:r1723_1, r1723_3 +# 1723| r1723_5(glval<int &>) = VariableAddress[x0] : #-----| r0_1(glval<int[2]>) = VariableAddress[(unnamed local variable)] : #-----| r0_2(int *) = Convert : r0_1 #-----| r0_3(unsigned long) = Constant[0] : #-----| r0_4(glval<int>) = PointerAdd[4] : r0_2, r0_3 -#-----| mu0_5(int &) = Store[x0] : &:r1676_5, r0_4 -# 1676| r1676_6(glval<int &>) = VariableAddress[x1] : +#-----| mu0_5(int &) = Store[x0] : &:r1723_5, r0_4 +# 1723| r1723_6(glval<int &>) = VariableAddress[x1] : #-----| r0_6(glval<int[2]>) = VariableAddress[(unnamed local variable)] : #-----| r0_7(int *) = Convert : r0_6 #-----| r0_8(unsigned long) = Constant[1] : #-----| r0_9(glval<int>) = PointerAdd[4] : r0_7, r0_8 -#-----| mu0_10(int &) = Store[x1] : &:r1676_6, r0_9 -# 1677| v1677_1(void) = NoOp : -# 1674| v1674_4(void) = ReturnVoid : -# 1674| v1674_5(void) = AliasedUse : ~m? -# 1674| v1674_6(void) = ExitFunction : +#-----| mu0_10(int &) = Store[x1] : &:r1723_6, r0_9 +# 1724| v1724_1(void) = NoOp : +# 1721| v1721_4(void) = ReturnVoid : +# 1721| v1721_5(void) = AliasedUse : ~m? +# 1721| v1721_6(void) = ExitFunction : -# 1682| void CapturedLambdaMyObj::CapturedLambdaMyObj() -# 1682| Block 0 -# 1682| v1682_1(void) = EnterFunction : -# 1682| mu1682_2(unknown) = AliasedDefinition : -# 1682| mu1682_3(unknown) = InitializeNonLocal : -# 1682| r1682_4(glval<unknown>) = VariableAddress[#this] : -# 1682| mu1682_5(glval<CapturedLambdaMyObj>) = InitializeParameter[#this] : &:r1682_4 -# 1682| r1682_6(glval<CapturedLambdaMyObj>) = Load[#this] : &:r1682_4, ~m? -# 1682| mu1682_7(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1682_6 -# 1682| v1682_8(void) = NoOp : -# 1682| v1682_9(void) = ReturnIndirection[#this] : &:r1682_6, ~m? -# 1682| v1682_10(void) = ReturnVoid : -# 1682| v1682_11(void) = AliasedUse : ~m? -# 1682| v1682_12(void) = ExitFunction : +# 1729| void CapturedLambdaMyObj::CapturedLambdaMyObj() +# 1729| Block 0 +# 1729| v1729_1(void) = EnterFunction : +# 1729| mu1729_2(unknown) = AliasedDefinition : +# 1729| mu1729_3(unknown) = InitializeNonLocal : +# 1729| r1729_4(glval<unknown>) = VariableAddress[#this] : +# 1729| mu1729_5(glval<CapturedLambdaMyObj>) = InitializeParameter[#this] : &:r1729_4 +# 1729| r1729_6(glval<CapturedLambdaMyObj>) = Load[#this] : &:r1729_4, ~m? +# 1729| mu1729_7(CapturedLambdaMyObj) = InitializeIndirection[#this] : &:r1729_6 +# 1729| v1729_8(void) = NoOp : +# 1729| v1729_9(void) = ReturnIndirection[#this] : &:r1729_6, ~m? +# 1729| v1729_10(void) = ReturnVoid : +# 1729| v1729_11(void) = AliasedUse : ~m? +# 1729| v1729_12(void) = ExitFunction : -# 1685| void captured_lambda(int, int&, int&&) -# 1685| Block 0 -# 1685| v1685_1(void) = EnterFunction : -# 1685| mu1685_2(unknown) = AliasedDefinition : -# 1685| mu1685_3(unknown) = InitializeNonLocal : -# 1685| r1685_4(glval<int>) = VariableAddress[x] : -# 1685| mu1685_5(int) = InitializeParameter[x] : &:r1685_4 -# 1685| r1685_6(glval<int &>) = VariableAddress[y] : -# 1685| mu1685_7(int &) = InitializeParameter[y] : &:r1685_6 -# 1685| r1685_8(int &) = Load[y] : &:r1685_6, ~m? -# 1685| mu1685_9(unknown) = InitializeIndirection[y] : &:r1685_8 -# 1685| r1685_10(glval<int &&>) = VariableAddress[z] : -# 1685| mu1685_11(int &&) = InitializeParameter[z] : &:r1685_10 -# 1685| r1685_12(int &&) = Load[z] : &:r1685_10, ~m? -# 1685| mu1685_13(unknown) = InitializeIndirection[z] : &:r1685_12 -# 1687| r1687_1(glval<CapturedLambdaMyObj &>) = VariableAddress[obj1] : -# 1687| r1687_2(glval<CapturedLambdaMyObj>) = VariableAddress[#temp1687:24] : -# 1687| mu1687_3(CapturedLambdaMyObj) = Uninitialized[#temp1687:24] : &:r1687_2 -# 1687| r1687_4(glval<unknown>) = FunctionAddress[CapturedLambdaMyObj] : -# 1687| v1687_5(void) = Call[CapturedLambdaMyObj] : func:r1687_4, this:r1687_2 -# 1687| mu1687_6(unknown) = ^CallSideEffect : ~m? -# 1687| mu1687_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1687_2 -# 1687| r1687_8(glval<CapturedLambdaMyObj>) = Convert : r1687_2 -# 1687| r1687_9(CapturedLambdaMyObj &) = CopyValue : r1687_8 -# 1687| mu1687_10(CapturedLambdaMyObj &) = Store[obj1] : &:r1687_1, r1687_9 -# 1688| r1688_1(glval<CapturedLambdaMyObj>) = VariableAddress[obj2] : -# 1688| mu1688_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1688_1 -# 1688| r1688_3(glval<unknown>) = FunctionAddress[CapturedLambdaMyObj] : -# 1688| v1688_4(void) = Call[CapturedLambdaMyObj] : func:r1688_3, this:r1688_1 -# 1688| mu1688_5(unknown) = ^CallSideEffect : ~m? -# 1688| mu1688_6(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1688_1 -# 1690| r1690_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_outer] : -# 1690| r1690_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1690:24] : -# 1690| mu1690_3(decltype([...](...){...})) = Uninitialized[#temp1690:24] : &:r1690_2 -# 1690| r1690_4(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1690_2 -# 1690| r1690_5(glval<CapturedLambdaMyObj &>) = VariableAddress[obj1] : -# 1690| r1690_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1690_5, ~m? -#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1690_6, ~m? -#-----| mu0_2(CapturedLambdaMyObj) = Store[?] : &:r1690_4, r0_1 -# 1690| r1690_7(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1690_2 -# 1690| r1690_8(glval<CapturedLambdaMyObj>) = VariableAddress[obj2] : -# 1690| r1690_9(CapturedLambdaMyObj) = Load[obj2] : &:r1690_8, ~m? -# 1690| mu1690_10(CapturedLambdaMyObj) = Store[?] : &:r1690_7, r1690_9 -# 1690| r1690_11(glval<int>) = FieldAddress[x] : r1690_2 -# 1690| r1690_12(glval<int>) = VariableAddress[x] : -# 1690| r1690_13(int) = Load[x] : &:r1690_12, ~m? -# 1690| mu1690_14(int) = Store[?] : &:r1690_11, r1690_13 -# 1690| r1690_15(glval<int>) = FieldAddress[y] : r1690_2 -# 1690| r1690_16(glval<int &>) = VariableAddress[y] : -# 1690| r1690_17(int &) = Load[y] : &:r1690_16, ~m? -# 1692| r1692_1(int) = Load[?] : &:r1690_17, ~m? -# 1692| mu1692_2(int) = Store[?] : &:r1690_15, r1692_1 -# 1690| r1690_18(glval<int>) = FieldAddress[z] : r1690_2 -# 1690| r1690_19(glval<int &&>) = VariableAddress[z] : -# 1690| r1690_20(int &&) = Load[z] : &:r1690_19, ~m? -# 1692| r1692_3(int) = Load[?] : &:r1690_20, ~m? -# 1692| mu1692_4(int) = Store[?] : &:r1690_18, r1692_3 -# 1690| r1690_21(decltype([...](...){...})) = Load[#temp1690:24] : &:r1690_2, ~m? -# 1690| mu1690_22(decltype([...](...){...})) = Store[lambda_outer] : &:r1690_1, r1690_21 -# 1693| v1693_1(void) = NoOp : -# 1685| v1685_14(void) = ReturnIndirection[y] : &:r1685_8, ~m? -# 1685| v1685_15(void) = ReturnIndirection[z] : &:r1685_12, ~m? -# 1685| v1685_16(void) = ReturnVoid : -# 1685| v1685_17(void) = AliasedUse : ~m? -# 1685| v1685_18(void) = ExitFunction : +# 1732| void captured_lambda(int, int&, int&&) +# 1732| Block 0 +# 1732| v1732_1(void) = EnterFunction : +# 1732| mu1732_2(unknown) = AliasedDefinition : +# 1732| mu1732_3(unknown) = InitializeNonLocal : +# 1732| r1732_4(glval<int>) = VariableAddress[x] : +# 1732| mu1732_5(int) = InitializeParameter[x] : &:r1732_4 +# 1732| r1732_6(glval<int &>) = VariableAddress[y] : +# 1732| mu1732_7(int &) = InitializeParameter[y] : &:r1732_6 +# 1732| r1732_8(int &) = Load[y] : &:r1732_6, ~m? +# 1732| mu1732_9(unknown) = InitializeIndirection[y] : &:r1732_8 +# 1732| r1732_10(glval<int &&>) = VariableAddress[z] : +# 1732| mu1732_11(int &&) = InitializeParameter[z] : &:r1732_10 +# 1732| r1732_12(int &&) = Load[z] : &:r1732_10, ~m? +# 1732| mu1732_13(unknown) = InitializeIndirection[z] : &:r1732_12 +# 1734| r1734_1(glval<CapturedLambdaMyObj &>) = VariableAddress[obj1] : +# 1734| r1734_2(glval<CapturedLambdaMyObj>) = VariableAddress[#temp1734:24] : +# 1734| mu1734_3(CapturedLambdaMyObj) = Uninitialized[#temp1734:24] : &:r1734_2 +# 1734| r1734_4(glval<unknown>) = FunctionAddress[CapturedLambdaMyObj] : +# 1734| v1734_5(void) = Call[CapturedLambdaMyObj] : func:r1734_4, this:r1734_2 +# 1734| mu1734_6(unknown) = ^CallSideEffect : ~m? +# 1734| mu1734_7(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1734_2 +# 1734| r1734_8(glval<CapturedLambdaMyObj>) = Convert : r1734_2 +# 1734| r1734_9(CapturedLambdaMyObj &) = CopyValue : r1734_8 +# 1734| mu1734_10(CapturedLambdaMyObj &) = Store[obj1] : &:r1734_1, r1734_9 +# 1735| r1735_1(glval<CapturedLambdaMyObj>) = VariableAddress[obj2] : +# 1735| mu1735_2(CapturedLambdaMyObj) = Uninitialized[obj2] : &:r1735_1 +# 1735| r1735_3(glval<unknown>) = FunctionAddress[CapturedLambdaMyObj] : +# 1735| v1735_4(void) = Call[CapturedLambdaMyObj] : func:r1735_3, this:r1735_1 +# 1735| mu1735_5(unknown) = ^CallSideEffect : ~m? +# 1735| mu1735_6(CapturedLambdaMyObj) = ^IndirectMayWriteSideEffect[-1] : &:r1735_1 +# 1737| r1737_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_outer] : +# 1737| r1737_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1737:24] : +# 1737| mu1737_3(decltype([...](...){...})) = Uninitialized[#temp1737:24] : &:r1737_2 +# 1737| r1737_4(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1737_2 +# 1737| r1737_5(glval<CapturedLambdaMyObj &>) = VariableAddress[obj1] : +# 1737| r1737_6(CapturedLambdaMyObj &) = Load[obj1] : &:r1737_5, ~m? +#-----| r0_1(CapturedLambdaMyObj) = Load[?] : &:r1737_6, ~m? +#-----| mu0_2(CapturedLambdaMyObj) = Store[?] : &:r1737_4, r0_1 +# 1737| r1737_7(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1737_2 +# 1737| r1737_8(glval<CapturedLambdaMyObj>) = VariableAddress[obj2] : +# 1737| r1737_9(CapturedLambdaMyObj) = Load[obj2] : &:r1737_8, ~m? +# 1737| mu1737_10(CapturedLambdaMyObj) = Store[?] : &:r1737_7, r1737_9 +# 1737| r1737_11(glval<int>) = FieldAddress[x] : r1737_2 +# 1737| r1737_12(glval<int>) = VariableAddress[x] : +# 1737| r1737_13(int) = Load[x] : &:r1737_12, ~m? +# 1737| mu1737_14(int) = Store[?] : &:r1737_11, r1737_13 +# 1737| r1737_15(glval<int>) = FieldAddress[y] : r1737_2 +# 1737| r1737_16(glval<int &>) = VariableAddress[y] : +# 1737| r1737_17(int &) = Load[y] : &:r1737_16, ~m? +# 1739| r1739_1(int) = Load[?] : &:r1737_17, ~m? +# 1739| mu1739_2(int) = Store[?] : &:r1737_15, r1739_1 +# 1737| r1737_18(glval<int>) = FieldAddress[z] : r1737_2 +# 1737| r1737_19(glval<int &&>) = VariableAddress[z] : +# 1737| r1737_20(int &&) = Load[z] : &:r1737_19, ~m? +# 1739| r1739_3(int) = Load[?] : &:r1737_20, ~m? +# 1739| mu1739_4(int) = Store[?] : &:r1737_18, r1739_3 +# 1737| r1737_21(decltype([...](...){...})) = Load[#temp1737:24] : &:r1737_2, ~m? +# 1737| mu1737_22(decltype([...](...){...})) = Store[lambda_outer] : &:r1737_1, r1737_21 +# 1740| v1740_1(void) = NoOp : +# 1732| v1732_14(void) = ReturnIndirection[y] : &:r1732_8, ~m? +# 1732| v1732_15(void) = ReturnIndirection[z] : &:r1732_12, ~m? +# 1732| v1732_16(void) = ReturnVoid : +# 1732| v1732_17(void) = AliasedUse : ~m? +# 1732| v1732_18(void) = ExitFunction : -# 1690| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const -# 1690| Block 0 -# 1690| v1690_1(void) = EnterFunction : -# 1690| mu1690_2(unknown) = AliasedDefinition : -# 1690| mu1690_3(unknown) = InitializeNonLocal : -# 1690| r1690_4(glval<unknown>) = VariableAddress[#this] : -# 1690| mu1690_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1690_4 -# 1690| r1690_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1690_4, ~m? -# 1690| mu1690_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1690_6 -# 1691| r1691_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_inner] : -# 1691| r1691_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1691:28] : -# 1691| mu1691_3(decltype([...](...){...})) = Uninitialized[#temp1691:28] : &:r1691_2 -# 1691| r1691_4(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1691_2 -# 1691| r1691_5(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_6(lambda [] type at line 1691, col. 29 *) = Load[#this] : &:r1691_5, ~m? -# 1691| r1691_7(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1691_6 -# 1691| r1691_8(CapturedLambdaMyObj) = Load[?] : &:r1691_7, ~m? -# 1691| mu1691_9(CapturedLambdaMyObj) = Store[?] : &:r1691_4, r1691_8 -# 1691| r1691_10(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1691_2 -# 1691| r1691_11(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_12(lambda [] type at line 1691, col. 29 *) = Load[#this] : &:r1691_11, ~m? -# 1691| r1691_13(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1691_12 -# 1691| r1691_14(CapturedLambdaMyObj) = Load[?] : &:r1691_13, ~m? -# 1691| mu1691_15(CapturedLambdaMyObj) = Store[?] : &:r1691_10, r1691_14 -# 1691| r1691_16(glval<int>) = FieldAddress[x] : r1691_2 -# 1691| r1691_17(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_18(lambda [] type at line 1690, col. 25 *) = Load[#this] : &:r1691_17, ~m? -# 1691| r1691_19(glval<int>) = FieldAddress[x] : r1691_18 -# 1691| r1691_20(int) = Load[?] : &:r1691_19, ~m? -# 1691| mu1691_21(int) = Store[?] : &:r1691_16, r1691_20 -# 1691| r1691_22(glval<int>) = FieldAddress[y] : r1691_2 -# 1691| r1691_23(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_24(lambda [] type at line 1690, col. 25 *) = Load[#this] : &:r1691_23, ~m? -# 1691| r1691_25(glval<int>) = FieldAddress[y] : r1691_24 -# 1691| r1691_26(int) = Load[?] : &:r1691_25, ~m? -# 1691| mu1691_27(int) = Store[?] : &:r1691_22, r1691_26 -# 1691| r1691_28(glval<int>) = FieldAddress[z] : r1691_2 -# 1691| r1691_29(glval<unknown>) = VariableAddress[#this] : -# 1691| r1691_30(lambda [] type at line 1690, col. 25 *) = Load[#this] : &:r1691_29, ~m? -# 1691| r1691_31(glval<int>) = FieldAddress[z] : r1691_30 -# 1691| r1691_32(int) = Load[?] : &:r1691_31, ~m? -# 1691| mu1691_33(int) = Store[?] : &:r1691_28, r1691_32 -# 1691| r1691_34(decltype([...](...){...})) = Load[#temp1691:28] : &:r1691_2, ~m? -# 1691| mu1691_35(decltype([...](...){...})) = Store[lambda_inner] : &:r1691_1, r1691_34 -# 1692| v1692_1(void) = NoOp : -# 1690| v1690_8(void) = ReturnIndirection[#this] : &:r1690_6, ~m? -# 1690| v1690_9(void) = ReturnVoid : -# 1690| v1690_10(void) = AliasedUse : ~m? -# 1690| v1690_11(void) = ExitFunction : +# 1737| void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const +# 1737| Block 0 +# 1737| v1737_1(void) = EnterFunction : +# 1737| mu1737_2(unknown) = AliasedDefinition : +# 1737| mu1737_3(unknown) = InitializeNonLocal : +# 1737| r1737_4(glval<unknown>) = VariableAddress[#this] : +# 1737| mu1737_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1737_4 +# 1737| r1737_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1737_4, ~m? +# 1737| mu1737_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1737_6 +# 1738| r1738_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_inner] : +# 1738| r1738_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1738:28] : +# 1738| mu1738_3(decltype([...](...){...})) = Uninitialized[#temp1738:28] : &:r1738_2 +# 1738| r1738_4(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1738_2 +# 1738| r1738_5(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_6(lambda [] type at line 1738, col. 29 *) = Load[#this] : &:r1738_5, ~m? +# 1738| r1738_7(glval<CapturedLambdaMyObj>) = FieldAddress[obj1] : r1738_6 +# 1738| r1738_8(CapturedLambdaMyObj) = Load[?] : &:r1738_7, ~m? +# 1738| mu1738_9(CapturedLambdaMyObj) = Store[?] : &:r1738_4, r1738_8 +# 1738| r1738_10(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1738_2 +# 1738| r1738_11(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_12(lambda [] type at line 1738, col. 29 *) = Load[#this] : &:r1738_11, ~m? +# 1738| r1738_13(glval<CapturedLambdaMyObj>) = FieldAddress[obj2] : r1738_12 +# 1738| r1738_14(CapturedLambdaMyObj) = Load[?] : &:r1738_13, ~m? +# 1738| mu1738_15(CapturedLambdaMyObj) = Store[?] : &:r1738_10, r1738_14 +# 1738| r1738_16(glval<int>) = FieldAddress[x] : r1738_2 +# 1738| r1738_17(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_18(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_17, ~m? +# 1738| r1738_19(glval<int>) = FieldAddress[x] : r1738_18 +# 1738| r1738_20(int) = Load[?] : &:r1738_19, ~m? +# 1738| mu1738_21(int) = Store[?] : &:r1738_16, r1738_20 +# 1738| r1738_22(glval<int>) = FieldAddress[y] : r1738_2 +# 1738| r1738_23(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_24(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_23, ~m? +# 1738| r1738_25(glval<int>) = FieldAddress[y] : r1738_24 +# 1738| r1738_26(int) = Load[?] : &:r1738_25, ~m? +# 1738| mu1738_27(int) = Store[?] : &:r1738_22, r1738_26 +# 1738| r1738_28(glval<int>) = FieldAddress[z] : r1738_2 +# 1738| r1738_29(glval<unknown>) = VariableAddress[#this] : +# 1738| r1738_30(lambda [] type at line 1737, col. 25 *) = Load[#this] : &:r1738_29, ~m? +# 1738| r1738_31(glval<int>) = FieldAddress[z] : r1738_30 +# 1738| r1738_32(int) = Load[?] : &:r1738_31, ~m? +# 1738| mu1738_33(int) = Store[?] : &:r1738_28, r1738_32 +# 1738| r1738_34(decltype([...](...){...})) = Load[#temp1738:28] : &:r1738_2, ~m? +# 1738| mu1738_35(decltype([...](...){...})) = Store[lambda_inner] : &:r1738_1, r1738_34 +# 1739| v1739_1(void) = NoOp : +# 1737| v1737_8(void) = ReturnIndirection[#this] : &:r1737_6, ~m? +# 1737| v1737_9(void) = ReturnVoid : +# 1737| v1737_10(void) = AliasedUse : ~m? +# 1737| v1737_11(void) = ExitFunction : -# 1691| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1690, col. 25)::operator()() const)::(lambda [] type at line 1691, col. 29)::operator()() const -# 1691| Block 0 -# 1691| v1691_1(void) = EnterFunction : -# 1691| mu1691_2(unknown) = AliasedDefinition : -# 1691| mu1691_3(unknown) = InitializeNonLocal : -# 1691| r1691_4(glval<unknown>) = VariableAddress[#this] : -# 1691| mu1691_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1691_4 -# 1691| r1691_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1691_4, ~m? -# 1691| mu1691_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1691_6 -# 1691| v1691_8(void) = NoOp : -# 1691| v1691_9(void) = NoOp : -# 1691| v1691_10(void) = ReturnIndirection[#this] : &:r1691_6, ~m? -# 1691| v1691_11(void) = ReturnVoid : -# 1691| v1691_12(void) = AliasedUse : ~m? -# 1691| v1691_13(void) = ExitFunction : - -# 1695| int goto_on_same_line() -# 1695| Block 0 -# 1695| v1695_1(void) = EnterFunction : -# 1695| mu1695_2(unknown) = AliasedDefinition : -# 1695| mu1695_3(unknown) = InitializeNonLocal : -# 1696| r1696_1(glval<int>) = VariableAddress[x] : -# 1696| r1696_2(int) = Constant[42] : -# 1696| mu1696_3(int) = Store[x] : &:r1696_1, r1696_2 -# 1697| v1697_1(void) = NoOp : -# 1697| v1697_2(void) = NoOp : -# 1698| r1698_1(glval<int>) = VariableAddress[#return] : -# 1698| r1698_2(glval<int>) = VariableAddress[x] : -# 1698| r1698_3(int) = Load[x] : &:r1698_2, ~m? -# 1698| mu1698_4(int) = Store[#return] : &:r1698_1, r1698_3 -# 1695| r1695_4(glval<int>) = VariableAddress[#return] : -# 1695| v1695_5(void) = ReturnValue : &:r1695_4, ~m? -# 1695| v1695_6(void) = AliasedUse : ~m? -# 1695| v1695_7(void) = ExitFunction : - -# 1703| void TrivialLambdaClass::m() const -# 1703| Block 0 -# 1703| v1703_1(void) = EnterFunction : -# 1703| mu1703_2(unknown) = AliasedDefinition : -# 1703| mu1703_3(unknown) = InitializeNonLocal : -# 1703| r1703_4(glval<unknown>) = VariableAddress[#this] : -# 1703| mu1703_5(glval<TrivialLambdaClass>) = InitializeParameter[#this] : &:r1703_4 -# 1703| r1703_6(glval<TrivialLambdaClass>) = Load[#this] : &:r1703_4, ~m? -# 1703| mu1703_7(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1703_6 -# 1704| r1704_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_outer] : -# 1704| r1704_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1704:25] : -# 1704| mu1704_3(decltype([...](...){...})) = Uninitialized[#temp1704:25] : &:r1704_2 -# 1704| r1704_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1704_2 -# 1704| r1704_5(glval<unknown>) = VariableAddress[#this] : -# 1704| r1704_6(TrivialLambdaClass *) = Load[#this] : &:r1704_5, ~m? -# 1704| r1704_7(TrivialLambdaClass) = Load[?] : &:r1704_6, ~m? -# 1704| mu1704_8(TrivialLambdaClass) = Store[?] : &:r1704_4, r1704_7 -# 1704| r1704_9(decltype([...](...){...})) = Load[#temp1704:25] : &:r1704_2, ~m? -# 1704| mu1704_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1704_1, r1704_9 -# 1711| v1711_1(void) = NoOp : -# 1703| v1703_8(void) = ReturnIndirection[#this] : &:r1703_6, ~m? -# 1703| v1703_9(void) = ReturnVoid : -# 1703| v1703_10(void) = AliasedUse : ~m? -# 1703| v1703_11(void) = ExitFunction : - -# 1704| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const -# 1704| Block 0 -# 1704| v1704_1(void) = EnterFunction : -# 1704| mu1704_2(unknown) = AliasedDefinition : -# 1704| mu1704_3(unknown) = InitializeNonLocal : -# 1704| r1704_4(glval<unknown>) = VariableAddress[#this] : -# 1704| mu1704_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1704_4 -# 1704| r1704_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1704_4, ~m? -# 1704| mu1704_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1704_6 -# 1705| r1705_1(glval<unknown>) = VariableAddress[#this] : -# 1705| r1705_2(lambda [] type at line 1704, col. 26 *) = Load[#this] : &:r1705_1, ~m? -# 1705| r1705_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1705_2 -# 1705| r1705_4(TrivialLambdaClass *) = CopyValue : r1705_3 -# 1705| r1705_5(glval<unknown>) = FunctionAddress[m] : -# 1705| v1705_6(void) = Call[m] : func:r1705_5, this:r1705_4 -# 1705| mu1705_7(unknown) = ^CallSideEffect : ~m? -# 1705| v1705_8(void) = ^IndirectReadSideEffect[-1] : &:r1705_4, ~m? -# 1707| r1707_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_inner] : -# 1707| r1707_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1707:29] : -# 1707| mu1707_3(decltype([...](...){...})) = Uninitialized[#temp1707:29] : &:r1707_2 -# 1707| r1707_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1707_2 -# 1707| r1707_5(glval<unknown>) = VariableAddress[#this] : -# 1707| r1707_6(lambda [] type at line 1707, col. 30 *) = Load[#this] : &:r1707_5, ~m? -# 1707| r1707_7(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1707_6 -# 1707| r1707_8(TrivialLambdaClass) = Load[?] : &:r1707_7, ~m? -# 1707| mu1707_9(TrivialLambdaClass) = Store[?] : &:r1707_4, r1707_8 -# 1707| r1707_10(decltype([...](...){...})) = Load[#temp1707:29] : &:r1707_2, ~m? -# 1707| mu1707_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1707_1, r1707_10 -# 1710| v1710_1(void) = NoOp : -# 1704| v1704_8(void) = ReturnIndirection[#this] : &:r1704_6, ~m? -# 1704| v1704_9(void) = ReturnVoid : -# 1704| v1704_10(void) = AliasedUse : ~m? -# 1704| v1704_11(void) = ExitFunction : - -# 1707| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1704, col. 26)::operator()() const)::(lambda [] type at line 1707, col. 30)::operator()() const -# 1707| Block 0 -# 1707| v1707_1(void) = EnterFunction : -# 1707| mu1707_2(unknown) = AliasedDefinition : -# 1707| mu1707_3(unknown) = InitializeNonLocal : -# 1707| r1707_4(glval<unknown>) = VariableAddress[#this] : -# 1707| mu1707_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1707_4 -# 1707| r1707_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1707_4, ~m? -# 1707| mu1707_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1707_6 -# 1708| r1708_1(glval<unknown>) = VariableAddress[#this] : -# 1708| r1708_2(lambda [] type at line 1707, col. 30 *) = Load[#this] : &:r1708_1, ~m? -# 1708| r1708_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1708_2 -# 1708| r1708_4(TrivialLambdaClass *) = CopyValue : r1708_3 -# 1708| r1708_5(glval<unknown>) = FunctionAddress[m] : -# 1708| v1708_6(void) = Call[m] : func:r1708_5, this:r1708_4 -# 1708| mu1708_7(unknown) = ^CallSideEffect : ~m? -# 1708| v1708_8(void) = ^IndirectReadSideEffect[-1] : &:r1708_4, ~m? -# 1709| v1709_1(void) = NoOp : -# 1707| v1707_8(void) = ReturnIndirection[#this] : &:r1707_6, ~m? -# 1707| v1707_9(void) = ReturnVoid : -# 1707| v1707_10(void) = AliasedUse : ~m? -# 1707| v1707_11(void) = ExitFunction : - -# 1714| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) -# 1714| Block 0 -# 1714| v1714_1(void) = EnterFunction : -# 1714| mu1714_2(unknown) = AliasedDefinition : -# 1714| mu1714_3(unknown) = InitializeNonLocal : -# 1714| r1714_4(glval<TrivialLambdaClass>) = VariableAddress[p1] : -# 1714| mu1714_5(TrivialLambdaClass) = InitializeParameter[p1] : &:r1714_4 -# 1714| r1714_6(glval<TrivialLambdaClass &>) = VariableAddress[p2] : -# 1714| mu1714_7(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1714_6 -# 1714| r1714_8(TrivialLambdaClass &) = Load[p2] : &:r1714_6, ~m? -# 1714| mu1714_9(unknown) = InitializeIndirection[p2] : &:r1714_8 -# 1714| r1714_10(glval<TrivialLambdaClass &&>) = VariableAddress[p3] : -# 1714| mu1714_11(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1714_10 -# 1714| r1714_12(TrivialLambdaClass &&) = Load[p3] : &:r1714_10, ~m? -# 1714| mu1714_13(unknown) = InitializeIndirection[p3] : &:r1714_12 -# 1715| r1715_1(glval<TrivialLambdaClass>) = VariableAddress[l1] : -# 1715| mu1715_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1715_1 -# 1716| r1716_1(glval<TrivialLambdaClass &>) = VariableAddress[l2] : -# 1716| r1716_2(glval<TrivialLambdaClass>) = VariableAddress[#temp1716:36] : -# 1716| r1716_3(TrivialLambdaClass) = Constant[0] : -# 1716| mu1716_4(TrivialLambdaClass) = Store[#temp1716:36] : &:r1716_2, r1716_3 -# 1716| r1716_5(glval<TrivialLambdaClass>) = Convert : r1716_2 -# 1716| r1716_6(TrivialLambdaClass &) = CopyValue : r1716_5 -# 1716| mu1716_7(TrivialLambdaClass &) = Store[l2] : &:r1716_1, r1716_6 -# 1718| r1718_1(glval<decltype([...](...){...})>) = VariableAddress[l_outer1] : -# 1718| r1718_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1718:20] : -# 1718| mu1718_3(decltype([...](...){...})) = Uninitialized[#temp1718:20] : &:r1718_2 -# 1718| r1718_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1718_2 -# 1718| r1718_5(glval<TrivialLambdaClass>) = VariableAddress[p1] : -# 1718| r1718_6(TrivialLambdaClass) = Load[p1] : &:r1718_5, ~m? -# 1718| mu1718_7(TrivialLambdaClass) = Store[?] : &:r1718_4, r1718_6 -# 1718| r1718_8(glval<TrivialLambdaClass>) = FieldAddress[p2] : r1718_2 -# 1718| r1718_9(glval<TrivialLambdaClass &>) = VariableAddress[p2] : -# 1718| r1718_10(TrivialLambdaClass &) = Load[p2] : &:r1718_9, ~m? -#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1718_10, ~m? -#-----| mu0_2(TrivialLambdaClass) = Store[?] : &:r1718_8, r0_1 -# 1718| r1718_11(glval<TrivialLambdaClass>) = FieldAddress[p3] : r1718_2 -# 1718| r1718_12(glval<TrivialLambdaClass &&>) = VariableAddress[p3] : -# 1718| r1718_13(TrivialLambdaClass &&) = Load[p3] : &:r1718_12, ~m? -#-----| r0_3(TrivialLambdaClass) = Load[?] : &:r1718_13, ~m? -#-----| mu0_4(TrivialLambdaClass) = Store[?] : &:r1718_11, r0_3 -# 1718| r1718_14(glval<TrivialLambdaClass>) = FieldAddress[l1] : r1718_2 -# 1718| r1718_15(glval<TrivialLambdaClass>) = VariableAddress[l1] : -# 1718| r1718_16(TrivialLambdaClass) = Load[l1] : &:r1718_15, ~m? -# 1718| mu1718_17(TrivialLambdaClass) = Store[?] : &:r1718_14, r1718_16 -# 1718| r1718_18(glval<TrivialLambdaClass>) = FieldAddress[l2] : r1718_2 -# 1718| r1718_19(glval<TrivialLambdaClass &>) = VariableAddress[l2] : -# 1718| r1718_20(TrivialLambdaClass &) = Load[l2] : &:r1718_19, ~m? -#-----| r0_5(TrivialLambdaClass) = Load[?] : &:r1718_20, ~m? -#-----| mu0_6(TrivialLambdaClass) = Store[?] : &:r1718_18, r0_5 -# 1718| r1718_21(decltype([...](...){...})) = Load[#temp1718:20] : &:r1718_2, ~m? -# 1718| mu1718_22(decltype([...](...){...})) = Store[l_outer1] : &:r1718_1, r1718_21 -# 1721| v1721_1(void) = NoOp : -# 1714| v1714_14(void) = ReturnIndirection[p2] : &:r1714_8, ~m? -# 1714| v1714_15(void) = ReturnIndirection[p3] : &:r1714_12, ~m? -# 1714| v1714_16(void) = ReturnVoid : -# 1714| v1714_17(void) = AliasedUse : ~m? -# 1714| v1714_18(void) = ExitFunction : - -# 1718| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const -# 1718| Block 0 -# 1718| v1718_1(void) = EnterFunction : -# 1718| mu1718_2(unknown) = AliasedDefinition : -# 1718| mu1718_3(unknown) = InitializeNonLocal : -# 1718| r1718_4(glval<unknown>) = VariableAddress[#this] : -# 1718| mu1718_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1718_4 -# 1718| r1718_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1718_4, ~m? -# 1718| mu1718_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1718_6 -# 1719| r1719_1(glval<decltype([...](...){...})>) = VariableAddress[l_inner1] : -# 1719| r1719_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1719:24] : -# 1719| mu1719_3(decltype([...](...){...})) = Uninitialized[#temp1719:24] : &:r1719_2 -# 1719| r1719_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1719_2 -# 1719| r1719_5(glval<unknown>) = VariableAddress[#this] : -# 1719| r1719_6(lambda [] type at line 1719, col. 25 *) = Load[#this] : &:r1719_5, ~m? -# 1719| r1719_7(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1719_6 -# 1719| r1719_8(TrivialLambdaClass) = Load[?] : &:r1719_7, ~m? -# 1719| mu1719_9(TrivialLambdaClass) = Store[?] : &:r1719_4, r1719_8 -# 1719| r1719_10(decltype([...](...){...})) = Load[#temp1719:24] : &:r1719_2, ~m? -# 1719| mu1719_11(decltype([...](...){...})) = Store[l_inner1] : &:r1719_1, r1719_10 -# 1720| v1720_1(void) = NoOp : -# 1718| v1718_8(void) = ReturnIndirection[#this] : &:r1718_6, ~m? -# 1718| v1718_9(void) = ReturnVoid : -# 1718| v1718_10(void) = AliasedUse : ~m? -# 1718| v1718_11(void) = ExitFunction : - -# 1719| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1718, col. 21)::operator()() const)::(lambda [] type at line 1719, col. 25)::operator()() const -# 1719| Block 0 -# 1719| v1719_1(void) = EnterFunction : -# 1719| mu1719_2(unknown) = AliasedDefinition : -# 1719| mu1719_3(unknown) = InitializeNonLocal : -# 1719| r1719_4(glval<unknown>) = VariableAddress[#this] : -# 1719| mu1719_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1719_4 -# 1719| r1719_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1719_4, ~m? -# 1719| mu1719_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1719_6 -# 1719| v1719_8(void) = NoOp : -# 1719| v1719_9(void) = ReturnIndirection[#this] : &:r1719_6, ~m? -# 1719| v1719_10(void) = ReturnVoid : -# 1719| v1719_11(void) = AliasedUse : ~m? -# 1719| v1719_12(void) = ExitFunction : - -# 1726| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() -# 1726| Block 0 -# 1726| v1726_1(void) = EnterFunction : -# 1726| mu1726_2(unknown) = AliasedDefinition : -# 1726| mu1726_3(unknown) = InitializeNonLocal : -# 1726| r1726_4(glval<unknown>) = VariableAddress[#this] : -# 1726| mu1726_5(glval<CopyConstructorWithImplicitArgumentClass>) = InitializeParameter[#this] : &:r1726_4 -# 1726| r1726_6(glval<CopyConstructorWithImplicitArgumentClass>) = Load[#this] : &:r1726_4, ~m? -# 1726| mu1726_7(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1726_6 -# 1726| v1726_8(void) = NoOp : -# 1726| v1726_9(void) = ReturnIndirection[#this] : &:r1726_6, ~m? -# 1726| v1726_10(void) = ReturnVoid : -# 1726| v1726_11(void) = AliasedUse : ~m? -# 1726| v1726_12(void) = ExitFunction : - -# 1727| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) -# 1727| Block 0 -# 1727| v1727_1(void) = EnterFunction : -# 1727| mu1727_2(unknown) = AliasedDefinition : -# 1727| mu1727_3(unknown) = InitializeNonLocal : -# 1727| r1727_4(glval<unknown>) = VariableAddress[#this] : -# 1727| mu1727_5(glval<CopyConstructorWithImplicitArgumentClass>) = InitializeParameter[#this] : &:r1727_4 -# 1727| r1727_6(glval<CopyConstructorWithImplicitArgumentClass>) = Load[#this] : &:r1727_4, ~m? -# 1727| mu1727_7(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1727_6 -# 1727| r1727_8(glval<CopyConstructorWithImplicitArgumentClass &>) = VariableAddress[c] : -# 1727| mu1727_9(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1727_8 -# 1727| r1727_10(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1727_8, ~m? -# 1727| mu1727_11(unknown) = InitializeIndirection[c] : &:r1727_10 -# 1728| r1728_1(glval<CopyConstructorWithImplicitArgumentClass &>) = VariableAddress[c] : -# 1728| r1728_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1728_1, ~m? -# 1728| r1728_3(glval<CopyConstructorWithImplicitArgumentClass>) = CopyValue : r1728_2 -# 1728| r1728_4(glval<int>) = FieldAddress[x] : r1728_3 -# 1728| r1728_5(int) = Load[?] : &:r1728_4, ~m? -# 1728| r1728_6(glval<unknown>) = VariableAddress[#this] : -# 1728| r1728_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1728_6, ~m? -# 1728| r1728_8(glval<int>) = FieldAddress[x] : r1728_7 -# 1728| mu1728_9(int) = Store[?] : &:r1728_8, r1728_5 -# 1729| v1729_1(void) = NoOp : -# 1727| v1727_12(void) = ReturnIndirection[#this] : &:r1727_6, ~m? -# 1727| v1727_13(void) = ReturnIndirection[c] : &:r1727_10, ~m? -# 1727| v1727_14(void) = ReturnVoid : -# 1727| v1727_15(void) = AliasedUse : ~m? -# 1727| v1727_16(void) = ExitFunction : - -# 1735| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() -# 1735| Block 0 -# 1735| v1735_1(void) = EnterFunction : -# 1735| mu1735_2(unknown) = AliasedDefinition : -# 1735| mu1735_3(unknown) = InitializeNonLocal : -# 1735| r1735_4(glval<unknown>) = VariableAddress[#this] : -# 1735| mu1735_5(glval<CopyConstructorWithBitwiseCopyClass>) = InitializeParameter[#this] : &:r1735_4 -# 1735| r1735_6(glval<CopyConstructorWithBitwiseCopyClass>) = Load[#this] : &:r1735_4, ~m? -# 1735| mu1735_7(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1735_6 -# 1735| v1735_8(void) = NoOp : -# 1735| v1735_9(void) = ReturnIndirection[#this] : &:r1735_6, ~m? -# 1735| v1735_10(void) = ReturnVoid : -# 1735| v1735_11(void) = AliasedUse : ~m? -# 1735| v1735_12(void) = ExitFunction : - -# 1738| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1738| void (void (void captured_lambda(int, int&, int&&))::(lambda [] type at line 1737, col. 25)::operator()() const)::(lambda [] type at line 1738, col. 29)::operator()() const # 1738| Block 0 -# 1738| v1738_1(void) = EnterFunction : -# 1738| mu1738_2(unknown) = AliasedDefinition : -# 1738| mu1738_3(unknown) = InitializeNonLocal : -# 1738| r1738_4(glval<unknown>) = VariableAddress[#this] : -# 1738| mu1738_5(glval<CopyConstructorTestNonVirtualClass>) = InitializeParameter[#this] : &:r1738_4 -# 1738| r1738_6(glval<CopyConstructorTestNonVirtualClass>) = Load[#this] : &:r1738_4, ~m? -# 1738| mu1738_7(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1738_6 +# 1738| v1738_1(void) = EnterFunction : +# 1738| mu1738_2(unknown) = AliasedDefinition : +# 1738| mu1738_3(unknown) = InitializeNonLocal : +# 1738| r1738_4(glval<unknown>) = VariableAddress[#this] : +# 1738| mu1738_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1738_4 +# 1738| r1738_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1738_4, ~m? +# 1738| mu1738_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1738_6 +# 1738| v1738_8(void) = NoOp : +# 1738| v1738_9(void) = NoOp : +# 1738| v1738_10(void) = ReturnIndirection[#this] : &:r1738_6, ~m? +# 1738| v1738_11(void) = ReturnVoid : +# 1738| v1738_12(void) = AliasedUse : ~m? +# 1738| v1738_13(void) = ExitFunction : + +# 1742| int goto_on_same_line() +# 1742| Block 0 +# 1742| v1742_1(void) = EnterFunction : +# 1742| mu1742_2(unknown) = AliasedDefinition : +# 1742| mu1742_3(unknown) = InitializeNonLocal : +# 1743| r1743_1(glval<int>) = VariableAddress[x] : +# 1743| r1743_2(int) = Constant[42] : +# 1743| mu1743_3(int) = Store[x] : &:r1743_1, r1743_2 +# 1744| v1744_1(void) = NoOp : +# 1744| v1744_2(void) = NoOp : +# 1745| r1745_1(glval<int>) = VariableAddress[#return] : +# 1745| r1745_2(glval<int>) = VariableAddress[x] : +# 1745| r1745_3(int) = Load[x] : &:r1745_2, ~m? +# 1745| mu1745_4(int) = Store[#return] : &:r1745_1, r1745_3 +# 1742| r1742_4(glval<int>) = VariableAddress[#return] : +# 1742| v1742_5(void) = ReturnValue : &:r1742_4, ~m? +# 1742| v1742_6(void) = AliasedUse : ~m? +# 1742| v1742_7(void) = ExitFunction : + +# 1750| void TrivialLambdaClass::m() const +# 1750| Block 0 +# 1750| v1750_1(void) = EnterFunction : +# 1750| mu1750_2(unknown) = AliasedDefinition : +# 1750| mu1750_3(unknown) = InitializeNonLocal : +# 1750| r1750_4(glval<unknown>) = VariableAddress[#this] : +# 1750| mu1750_5(glval<TrivialLambdaClass>) = InitializeParameter[#this] : &:r1750_4 +# 1750| r1750_6(glval<TrivialLambdaClass>) = Load[#this] : &:r1750_4, ~m? +# 1750| mu1750_7(TrivialLambdaClass) = InitializeIndirection[#this] : &:r1750_6 +# 1751| r1751_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_outer] : +# 1751| r1751_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1751:25] : +# 1751| mu1751_3(decltype([...](...){...})) = Uninitialized[#temp1751:25] : &:r1751_2 +# 1751| r1751_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1751_2 +# 1751| r1751_5(glval<unknown>) = VariableAddress[#this] : +# 1751| r1751_6(TrivialLambdaClass *) = Load[#this] : &:r1751_5, ~m? +# 1751| r1751_7(TrivialLambdaClass) = Load[?] : &:r1751_6, ~m? +# 1751| mu1751_8(TrivialLambdaClass) = Store[?] : &:r1751_4, r1751_7 +# 1751| r1751_9(decltype([...](...){...})) = Load[#temp1751:25] : &:r1751_2, ~m? +# 1751| mu1751_10(decltype([...](...){...})) = Store[l_m_outer] : &:r1751_1, r1751_9 +# 1758| v1758_1(void) = NoOp : +# 1750| v1750_8(void) = ReturnIndirection[#this] : &:r1750_6, ~m? +# 1750| v1750_9(void) = ReturnVoid : +# 1750| v1750_10(void) = AliasedUse : ~m? +# 1750| v1750_11(void) = ExitFunction : + +# 1751| void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const +# 1751| Block 0 +# 1751| v1751_1(void) = EnterFunction : +# 1751| mu1751_2(unknown) = AliasedDefinition : +# 1751| mu1751_3(unknown) = InitializeNonLocal : +# 1751| r1751_4(glval<unknown>) = VariableAddress[#this] : +# 1751| mu1751_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1751_4 +# 1751| r1751_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1751_4, ~m? +# 1751| mu1751_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1751_6 +# 1752| r1752_1(glval<unknown>) = VariableAddress[#this] : +# 1752| r1752_2(lambda [] type at line 1751, col. 26 *) = Load[#this] : &:r1752_1, ~m? +# 1752| r1752_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1752_2 +# 1752| r1752_4(TrivialLambdaClass *) = CopyValue : r1752_3 +# 1752| r1752_5(glval<unknown>) = FunctionAddress[m] : +# 1752| v1752_6(void) = Call[m] : func:r1752_5, this:r1752_4 +# 1752| mu1752_7(unknown) = ^CallSideEffect : ~m? +# 1752| v1752_8(void) = ^IndirectReadSideEffect[-1] : &:r1752_4, ~m? +# 1754| r1754_1(glval<decltype([...](...){...})>) = VariableAddress[l_m_inner] : +# 1754| r1754_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1754:29] : +# 1754| mu1754_3(decltype([...](...){...})) = Uninitialized[#temp1754:29] : &:r1754_2 +# 1754| r1754_4(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1754_2 +# 1754| r1754_5(glval<unknown>) = VariableAddress[#this] : +# 1754| r1754_6(lambda [] type at line 1754, col. 30 *) = Load[#this] : &:r1754_5, ~m? +# 1754| r1754_7(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1754_6 +# 1754| r1754_8(TrivialLambdaClass) = Load[?] : &:r1754_7, ~m? +# 1754| mu1754_9(TrivialLambdaClass) = Store[?] : &:r1754_4, r1754_8 +# 1754| r1754_10(decltype([...](...){...})) = Load[#temp1754:29] : &:r1754_2, ~m? +# 1754| mu1754_11(decltype([...](...){...})) = Store[l_m_inner] : &:r1754_1, r1754_10 +# 1757| v1757_1(void) = NoOp : +# 1751| v1751_8(void) = ReturnIndirection[#this] : &:r1751_6, ~m? +# 1751| v1751_9(void) = ReturnVoid : +# 1751| v1751_10(void) = AliasedUse : ~m? +# 1751| v1751_11(void) = ExitFunction : + +# 1754| void (void (void TrivialLambdaClass::m() const)::(lambda [] type at line 1751, col. 26)::operator()() const)::(lambda [] type at line 1754, col. 30)::operator()() const +# 1754| Block 0 +# 1754| v1754_1(void) = EnterFunction : +# 1754| mu1754_2(unknown) = AliasedDefinition : +# 1754| mu1754_3(unknown) = InitializeNonLocal : +# 1754| r1754_4(glval<unknown>) = VariableAddress[#this] : +# 1754| mu1754_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1754_4 +# 1754| r1754_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1754_4, ~m? +# 1754| mu1754_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1754_6 +# 1755| r1755_1(glval<unknown>) = VariableAddress[#this] : +# 1755| r1755_2(lambda [] type at line 1754, col. 30 *) = Load[#this] : &:r1755_1, ~m? +# 1755| r1755_3(glval<TrivialLambdaClass>) = FieldAddress[(captured this)] : r1755_2 +# 1755| r1755_4(TrivialLambdaClass *) = CopyValue : r1755_3 +# 1755| r1755_5(glval<unknown>) = FunctionAddress[m] : +# 1755| v1755_6(void) = Call[m] : func:r1755_5, this:r1755_4 +# 1755| mu1755_7(unknown) = ^CallSideEffect : ~m? +# 1755| v1755_8(void) = ^IndirectReadSideEffect[-1] : &:r1755_4, ~m? +# 1756| v1756_1(void) = NoOp : +# 1754| v1754_8(void) = ReturnIndirection[#this] : &:r1754_6, ~m? +# 1754| v1754_9(void) = ReturnVoid : +# 1754| v1754_10(void) = AliasedUse : ~m? +# 1754| v1754_11(void) = ExitFunction : + +# 1761| void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&) +# 1761| Block 0 +# 1761| v1761_1(void) = EnterFunction : +# 1761| mu1761_2(unknown) = AliasedDefinition : +# 1761| mu1761_3(unknown) = InitializeNonLocal : +# 1761| r1761_4(glval<TrivialLambdaClass>) = VariableAddress[p1] : +# 1761| mu1761_5(TrivialLambdaClass) = InitializeParameter[p1] : &:r1761_4 +# 1761| r1761_6(glval<TrivialLambdaClass &>) = VariableAddress[p2] : +# 1761| mu1761_7(TrivialLambdaClass &) = InitializeParameter[p2] : &:r1761_6 +# 1761| r1761_8(TrivialLambdaClass &) = Load[p2] : &:r1761_6, ~m? +# 1761| mu1761_9(unknown) = InitializeIndirection[p2] : &:r1761_8 +# 1761| r1761_10(glval<TrivialLambdaClass &&>) = VariableAddress[p3] : +# 1761| mu1761_11(TrivialLambdaClass &&) = InitializeParameter[p3] : &:r1761_10 +# 1761| r1761_12(TrivialLambdaClass &&) = Load[p3] : &:r1761_10, ~m? +# 1761| mu1761_13(unknown) = InitializeIndirection[p3] : &:r1761_12 +# 1762| r1762_1(glval<TrivialLambdaClass>) = VariableAddress[l1] : +# 1762| mu1762_2(TrivialLambdaClass) = Uninitialized[l1] : &:r1762_1 +# 1763| r1763_1(glval<TrivialLambdaClass &>) = VariableAddress[l2] : +# 1763| r1763_2(glval<TrivialLambdaClass>) = VariableAddress[#temp1763:36] : +# 1763| r1763_3(TrivialLambdaClass) = Constant[0] : +# 1763| mu1763_4(TrivialLambdaClass) = Store[#temp1763:36] : &:r1763_2, r1763_3 +# 1763| r1763_5(glval<TrivialLambdaClass>) = Convert : r1763_2 +# 1763| r1763_6(TrivialLambdaClass &) = CopyValue : r1763_5 +# 1763| mu1763_7(TrivialLambdaClass &) = Store[l2] : &:r1763_1, r1763_6 +# 1765| r1765_1(glval<decltype([...](...){...})>) = VariableAddress[l_outer1] : +# 1765| r1765_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1765:20] : +# 1765| mu1765_3(decltype([...](...){...})) = Uninitialized[#temp1765:20] : &:r1765_2 +# 1765| r1765_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1765_2 +# 1765| r1765_5(glval<TrivialLambdaClass>) = VariableAddress[p1] : +# 1765| r1765_6(TrivialLambdaClass) = Load[p1] : &:r1765_5, ~m? +# 1765| mu1765_7(TrivialLambdaClass) = Store[?] : &:r1765_4, r1765_6 +# 1765| r1765_8(glval<TrivialLambdaClass>) = FieldAddress[p2] : r1765_2 +# 1765| r1765_9(glval<TrivialLambdaClass &>) = VariableAddress[p2] : +# 1765| r1765_10(TrivialLambdaClass &) = Load[p2] : &:r1765_9, ~m? +#-----| r0_1(TrivialLambdaClass) = Load[?] : &:r1765_10, ~m? +#-----| mu0_2(TrivialLambdaClass) = Store[?] : &:r1765_8, r0_1 +# 1765| r1765_11(glval<TrivialLambdaClass>) = FieldAddress[p3] : r1765_2 +# 1765| r1765_12(glval<TrivialLambdaClass &&>) = VariableAddress[p3] : +# 1765| r1765_13(TrivialLambdaClass &&) = Load[p3] : &:r1765_12, ~m? +#-----| r0_3(TrivialLambdaClass) = Load[?] : &:r1765_13, ~m? +#-----| mu0_4(TrivialLambdaClass) = Store[?] : &:r1765_11, r0_3 +# 1765| r1765_14(glval<TrivialLambdaClass>) = FieldAddress[l1] : r1765_2 +# 1765| r1765_15(glval<TrivialLambdaClass>) = VariableAddress[l1] : +# 1765| r1765_16(TrivialLambdaClass) = Load[l1] : &:r1765_15, ~m? +# 1765| mu1765_17(TrivialLambdaClass) = Store[?] : &:r1765_14, r1765_16 +# 1765| r1765_18(glval<TrivialLambdaClass>) = FieldAddress[l2] : r1765_2 +# 1765| r1765_19(glval<TrivialLambdaClass &>) = VariableAddress[l2] : +# 1765| r1765_20(TrivialLambdaClass &) = Load[l2] : &:r1765_19, ~m? +#-----| r0_5(TrivialLambdaClass) = Load[?] : &:r1765_20, ~m? +#-----| mu0_6(TrivialLambdaClass) = Store[?] : &:r1765_18, r0_5 +# 1765| r1765_21(decltype([...](...){...})) = Load[#temp1765:20] : &:r1765_2, ~m? +# 1765| mu1765_22(decltype([...](...){...})) = Store[l_outer1] : &:r1765_1, r1765_21 +# 1768| v1768_1(void) = NoOp : +# 1761| v1761_14(void) = ReturnIndirection[p2] : &:r1761_8, ~m? +# 1761| v1761_15(void) = ReturnIndirection[p3] : &:r1761_12, ~m? +# 1761| v1761_16(void) = ReturnVoid : +# 1761| v1761_17(void) = AliasedUse : ~m? +# 1761| v1761_18(void) = ExitFunction : + +# 1765| void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const +# 1765| Block 0 +# 1765| v1765_1(void) = EnterFunction : +# 1765| mu1765_2(unknown) = AliasedDefinition : +# 1765| mu1765_3(unknown) = InitializeNonLocal : +# 1765| r1765_4(glval<unknown>) = VariableAddress[#this] : +# 1765| mu1765_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1765_4 +# 1765| r1765_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1765_4, ~m? +# 1765| mu1765_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1765_6 +# 1766| r1766_1(glval<decltype([...](...){...})>) = VariableAddress[l_inner1] : +# 1766| r1766_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1766:24] : +# 1766| mu1766_3(decltype([...](...){...})) = Uninitialized[#temp1766:24] : &:r1766_2 +# 1766| r1766_4(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1766_2 +# 1766| r1766_5(glval<unknown>) = VariableAddress[#this] : +# 1766| r1766_6(lambda [] type at line 1766, col. 25 *) = Load[#this] : &:r1766_5, ~m? +# 1766| r1766_7(glval<TrivialLambdaClass>) = FieldAddress[p1] : r1766_6 +# 1766| r1766_8(TrivialLambdaClass) = Load[?] : &:r1766_7, ~m? +# 1766| mu1766_9(TrivialLambdaClass) = Store[?] : &:r1766_4, r1766_8 +# 1766| r1766_10(decltype([...](...){...})) = Load[#temp1766:24] : &:r1766_2, ~m? +# 1766| mu1766_11(decltype([...](...){...})) = Store[l_inner1] : &:r1766_1, r1766_10 +# 1767| v1767_1(void) = NoOp : +# 1765| v1765_8(void) = ReturnIndirection[#this] : &:r1765_6, ~m? +# 1765| v1765_9(void) = ReturnVoid : +# 1765| v1765_10(void) = AliasedUse : ~m? +# 1765| v1765_11(void) = ExitFunction : + +# 1766| void (void (void captured_lambda2(TrivialLambdaClass, TrivialLambdaClass&, TrivialLambdaClass&&))::(lambda [] type at line 1765, col. 21)::operator()() const)::(lambda [] type at line 1766, col. 25)::operator()() const +# 1766| Block 0 +# 1766| v1766_1(void) = EnterFunction : +# 1766| mu1766_2(unknown) = AliasedDefinition : +# 1766| mu1766_3(unknown) = InitializeNonLocal : +# 1766| r1766_4(glval<unknown>) = VariableAddress[#this] : +# 1766| mu1766_5(glval<decltype([...](...){...})>) = InitializeParameter[#this] : &:r1766_4 +# 1766| r1766_6(glval<decltype([...](...){...})>) = Load[#this] : &:r1766_4, ~m? +# 1766| mu1766_7(decltype([...](...){...})) = InitializeIndirection[#this] : &:r1766_6 +# 1766| v1766_8(void) = NoOp : +# 1766| v1766_9(void) = ReturnIndirection[#this] : &:r1766_6, ~m? +# 1766| v1766_10(void) = ReturnVoid : +# 1766| v1766_11(void) = AliasedUse : ~m? +# 1766| v1766_12(void) = ExitFunction : + +# 1773| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass() +# 1773| Block 0 +# 1773| v1773_1(void) = EnterFunction : +# 1773| mu1773_2(unknown) = AliasedDefinition : +# 1773| mu1773_3(unknown) = InitializeNonLocal : +# 1773| r1773_4(glval<unknown>) = VariableAddress[#this] : +# 1773| mu1773_5(glval<CopyConstructorWithImplicitArgumentClass>) = InitializeParameter[#this] : &:r1773_4 +# 1773| r1773_6(glval<CopyConstructorWithImplicitArgumentClass>) = Load[#this] : &:r1773_4, ~m? +# 1773| mu1773_7(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1773_6 +# 1773| v1773_8(void) = NoOp : +# 1773| v1773_9(void) = ReturnIndirection[#this] : &:r1773_6, ~m? +# 1773| v1773_10(void) = ReturnVoid : +# 1773| v1773_11(void) = AliasedUse : ~m? +# 1773| v1773_12(void) = ExitFunction : + +# 1774| void CopyConstructorWithImplicitArgumentClass::CopyConstructorWithImplicitArgumentClass(CopyConstructorWithImplicitArgumentClass const&) +# 1774| Block 0 +# 1774| v1774_1(void) = EnterFunction : +# 1774| mu1774_2(unknown) = AliasedDefinition : +# 1774| mu1774_3(unknown) = InitializeNonLocal : +# 1774| r1774_4(glval<unknown>) = VariableAddress[#this] : +# 1774| mu1774_5(glval<CopyConstructorWithImplicitArgumentClass>) = InitializeParameter[#this] : &:r1774_4 +# 1774| r1774_6(glval<CopyConstructorWithImplicitArgumentClass>) = Load[#this] : &:r1774_4, ~m? +# 1774| mu1774_7(CopyConstructorWithImplicitArgumentClass) = InitializeIndirection[#this] : &:r1774_6 +# 1774| r1774_8(glval<CopyConstructorWithImplicitArgumentClass &>) = VariableAddress[c] : +# 1774| mu1774_9(CopyConstructorWithImplicitArgumentClass &) = InitializeParameter[c] : &:r1774_8 +# 1774| r1774_10(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1774_8, ~m? +# 1774| mu1774_11(unknown) = InitializeIndirection[c] : &:r1774_10 +# 1775| r1775_1(glval<CopyConstructorWithImplicitArgumentClass &>) = VariableAddress[c] : +# 1775| r1775_2(CopyConstructorWithImplicitArgumentClass &) = Load[c] : &:r1775_1, ~m? +# 1775| r1775_3(glval<CopyConstructorWithImplicitArgumentClass>) = CopyValue : r1775_2 +# 1775| r1775_4(glval<int>) = FieldAddress[x] : r1775_3 +# 1775| r1775_5(int) = Load[?] : &:r1775_4, ~m? +# 1775| r1775_6(glval<unknown>) = VariableAddress[#this] : +# 1775| r1775_7(CopyConstructorWithImplicitArgumentClass *) = Load[#this] : &:r1775_6, ~m? +# 1775| r1775_8(glval<int>) = FieldAddress[x] : r1775_7 +# 1775| mu1775_9(int) = Store[?] : &:r1775_8, r1775_5 +# 1776| v1776_1(void) = NoOp : +# 1774| v1774_12(void) = ReturnIndirection[#this] : &:r1774_6, ~m? +# 1774| v1774_13(void) = ReturnIndirection[c] : &:r1774_10, ~m? +# 1774| v1774_14(void) = ReturnVoid : +# 1774| v1774_15(void) = AliasedUse : ~m? +# 1774| v1774_16(void) = ExitFunction : + +# 1782| void CopyConstructorWithBitwiseCopyClass::CopyConstructorWithBitwiseCopyClass() +# 1782| Block 0 +# 1782| v1782_1(void) = EnterFunction : +# 1782| mu1782_2(unknown) = AliasedDefinition : +# 1782| mu1782_3(unknown) = InitializeNonLocal : +# 1782| r1782_4(glval<unknown>) = VariableAddress[#this] : +# 1782| mu1782_5(glval<CopyConstructorWithBitwiseCopyClass>) = InitializeParameter[#this] : &:r1782_4 +# 1782| r1782_6(glval<CopyConstructorWithBitwiseCopyClass>) = Load[#this] : &:r1782_4, ~m? +# 1782| mu1782_7(CopyConstructorWithBitwiseCopyClass) = InitializeIndirection[#this] : &:r1782_6 +# 1782| v1782_8(void) = NoOp : +# 1782| v1782_9(void) = ReturnIndirection[#this] : &:r1782_6, ~m? +# 1782| v1782_10(void) = ReturnVoid : +# 1782| v1782_11(void) = AliasedUse : ~m? +# 1782| v1782_12(void) = ExitFunction : + +# 1785| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass(CopyConstructorTestNonVirtualClass const&) +# 1785| Block 0 +# 1785| v1785_1(void) = EnterFunction : +# 1785| mu1785_2(unknown) = AliasedDefinition : +# 1785| mu1785_3(unknown) = InitializeNonLocal : +# 1785| r1785_4(glval<unknown>) = VariableAddress[#this] : +# 1785| mu1785_5(glval<CopyConstructorTestNonVirtualClass>) = InitializeParameter[#this] : &:r1785_4 +# 1785| r1785_6(glval<CopyConstructorTestNonVirtualClass>) = Load[#this] : &:r1785_4, ~m? +# 1785| mu1785_7(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1785_6 #-----| r0_1(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1738| r1738_8(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : mu1738_5 -# 1738| r1738_9(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1738| r1738_10(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : -# 1738| r1738_11(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1738_10, ~m? -# 1738| r1738_12(glval<CopyConstructorTestNonVirtualClass>) = CopyValue : r1738_11 -# 1738| r1738_13(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1738_12 -# 1738| r1738_14(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1738_13 -# 1738| v1738_15(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1738_9, this:r1738_8, 0:r1738_14 -# 1738| mu1738_16(unknown) = ^CallSideEffect : ~m? -# 1738| v1738_17(void) = ^BufferReadSideEffect[0] : &:r1738_14, ~m? -# 1738| mu1738_18(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1738_8 -# 1738| v1738_19(void) = NoOp : -# 1738| v1738_20(void) = ReturnIndirection[#this] : &:r1738_6, ~m? +# 1785| r1785_8(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : mu1785_5 +# 1785| r1785_9(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1785| r1785_10(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : +# 1785| r1785_11(CopyConstructorTestNonVirtualClass &) = Load[(unnamed parameter 0)] : &:r1785_10, ~m? +# 1785| r1785_12(glval<CopyConstructorTestNonVirtualClass>) = CopyValue : r1785_11 +# 1785| r1785_13(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1785_12 +# 1785| r1785_14(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1785_13 +# 1785| v1785_15(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1785_9, this:r1785_8, 0:r1785_14 +# 1785| mu1785_16(unknown) = ^CallSideEffect : ~m? +# 1785| v1785_17(void) = ^BufferReadSideEffect[0] : &:r1785_14, ~m? +# 1785| mu1785_18(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1785_8 +# 1785| v1785_19(void) = NoOp : +# 1785| v1785_20(void) = ReturnIndirection[#this] : &:r1785_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1738| v1738_21(void) = ReturnVoid : -# 1738| v1738_22(void) = AliasedUse : ~m? -# 1738| v1738_23(void) = ExitFunction : +# 1785| v1785_21(void) = ReturnVoid : +# 1785| v1785_22(void) = AliasedUse : ~m? +# 1785| v1785_23(void) = ExitFunction : -# 1742| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() -# 1742| Block 0 -# 1742| v1742_1(void) = EnterFunction : -# 1742| mu1742_2(unknown) = AliasedDefinition : -# 1742| mu1742_3(unknown) = InitializeNonLocal : -# 1742| r1742_4(glval<unknown>) = VariableAddress[#this] : -# 1742| mu1742_5(glval<CopyConstructorTestNonVirtualClass>) = InitializeParameter[#this] : &:r1742_4 -# 1742| r1742_6(glval<CopyConstructorTestNonVirtualClass>) = Load[#this] : &:r1742_4, ~m? -# 1742| mu1742_7(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1742_6 -# 1742| r1742_8(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : mu1742_5 -# 1742| r1742_9(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1742| v1742_10(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1742_9, this:r1742_8 -# 1742| mu1742_11(unknown) = ^CallSideEffect : ~m? -# 1742| mu1742_12(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1742_8 -# 1742| r1742_13(glval<CopyConstructorWithBitwiseCopyClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : mu1742_5 -# 1742| r1742_14(glval<unknown>) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : -# 1742| v1742_15(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1742_14, this:r1742_13 -# 1742| mu1742_16(unknown) = ^CallSideEffect : ~m? -# 1742| mu1742_17(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1742_13 -# 1742| v1742_18(void) = NoOp : -# 1742| v1742_19(void) = ReturnIndirection[#this] : &:r1742_6, ~m? -# 1742| v1742_20(void) = ReturnVoid : -# 1742| v1742_21(void) = AliasedUse : ~m? -# 1742| v1742_22(void) = ExitFunction : +# 1789| void CopyConstructorTestNonVirtualClass::CopyConstructorTestNonVirtualClass() +# 1789| Block 0 +# 1789| v1789_1(void) = EnterFunction : +# 1789| mu1789_2(unknown) = AliasedDefinition : +# 1789| mu1789_3(unknown) = InitializeNonLocal : +# 1789| r1789_4(glval<unknown>) = VariableAddress[#this] : +# 1789| mu1789_5(glval<CopyConstructorTestNonVirtualClass>) = InitializeParameter[#this] : &:r1789_4 +# 1789| r1789_6(glval<CopyConstructorTestNonVirtualClass>) = Load[#this] : &:r1789_4, ~m? +# 1789| mu1789_7(CopyConstructorTestNonVirtualClass) = InitializeIndirection[#this] : &:r1789_6 +# 1789| r1789_8(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithImplicitArgumentClass] : mu1789_5 +# 1789| r1789_9(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1789| v1789_10(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1789_9, this:r1789_8 +# 1789| mu1789_11(unknown) = ^CallSideEffect : ~m? +# 1789| mu1789_12(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1789_8 +# 1789| r1789_13(glval<CopyConstructorWithBitwiseCopyClass>) = ConvertToNonVirtualBase[CopyConstructorTestNonVirtualClass : CopyConstructorWithBitwiseCopyClass] : mu1789_5 +# 1789| r1789_14(glval<unknown>) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1789| v1789_15(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1789_14, this:r1789_13 +# 1789| mu1789_16(unknown) = ^CallSideEffect : ~m? +# 1789| mu1789_17(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1789_13 +# 1789| v1789_18(void) = NoOp : +# 1789| v1789_19(void) = ReturnIndirection[#this] : &:r1789_6, ~m? +# 1789| v1789_20(void) = ReturnVoid : +# 1789| v1789_21(void) = AliasedUse : ~m? +# 1789| v1789_22(void) = ExitFunction : -# 1745| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) -# 1745| Block 0 -# 1745| v1745_1(void) = EnterFunction : -# 1745| mu1745_2(unknown) = AliasedDefinition : -# 1745| mu1745_3(unknown) = InitializeNonLocal : -# 1745| r1745_4(glval<unknown>) = VariableAddress[#this] : -# 1745| mu1745_5(glval<CopyConstructorTestVirtualClass>) = InitializeParameter[#this] : &:r1745_4 -# 1745| r1745_6(glval<CopyConstructorTestVirtualClass>) = Load[#this] : &:r1745_4, ~m? -# 1745| mu1745_7(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1745_6 +# 1792| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass(CopyConstructorTestVirtualClass const&) +# 1792| Block 0 +# 1792| v1792_1(void) = EnterFunction : +# 1792| mu1792_2(unknown) = AliasedDefinition : +# 1792| mu1792_3(unknown) = InitializeNonLocal : +# 1792| r1792_4(glval<unknown>) = VariableAddress[#this] : +# 1792| mu1792_5(glval<CopyConstructorTestVirtualClass>) = InitializeParameter[#this] : &:r1792_4 +# 1792| r1792_6(glval<CopyConstructorTestVirtualClass>) = Load[#this] : &:r1792_4, ~m? +# 1792| mu1792_7(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1792_6 #-----| r0_1(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(CopyConstructorTestVirtualClass &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1745| r1745_8(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : mu1745_5 -# 1745| r1745_9(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1745| r1745_10(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : -# 1745| r1745_11(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1745_10, ~m? -# 1745| r1745_12(glval<CopyConstructorTestVirtualClass>) = CopyValue : r1745_11 -# 1745| r1745_13(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1745_12 -# 1745| r1745_14(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1745_13 -# 1745| v1745_15(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1745_9, this:r1745_8, 0:r1745_14 -# 1745| mu1745_16(unknown) = ^CallSideEffect : ~m? -# 1745| v1745_17(void) = ^BufferReadSideEffect[0] : &:r1745_14, ~m? -# 1745| mu1745_18(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1745_8 -# 1745| v1745_19(void) = NoOp : -# 1745| v1745_20(void) = ReturnIndirection[#this] : &:r1745_6, ~m? +# 1792| r1792_8(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : mu1792_5 +# 1792| r1792_9(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1792| r1792_10(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[(unnamed parameter 0)] : +# 1792| r1792_11(CopyConstructorTestVirtualClass &) = Load[(unnamed parameter 0)] : &:r1792_10, ~m? +# 1792| r1792_12(glval<CopyConstructorTestVirtualClass>) = CopyValue : r1792_11 +# 1792| r1792_13(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : r1792_12 +# 1792| r1792_14(CopyConstructorWithImplicitArgumentClass &) = CopyValue : r1792_13 +# 1792| v1792_15(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1792_9, this:r1792_8, 0:r1792_14 +# 1792| mu1792_16(unknown) = ^CallSideEffect : ~m? +# 1792| v1792_17(void) = ^BufferReadSideEffect[0] : &:r1792_14, ~m? +# 1792| mu1792_18(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1792_8 +# 1792| v1792_19(void) = NoOp : +# 1792| v1792_20(void) = ReturnIndirection[#this] : &:r1792_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1745| v1745_21(void) = ReturnVoid : -# 1745| v1745_22(void) = AliasedUse : ~m? -# 1745| v1745_23(void) = ExitFunction : +# 1792| v1792_21(void) = ReturnVoid : +# 1792| v1792_22(void) = AliasedUse : ~m? +# 1792| v1792_23(void) = ExitFunction : -# 1749| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() -# 1749| Block 0 -# 1749| v1749_1(void) = EnterFunction : -# 1749| mu1749_2(unknown) = AliasedDefinition : -# 1749| mu1749_3(unknown) = InitializeNonLocal : -# 1749| r1749_4(glval<unknown>) = VariableAddress[#this] : -# 1749| mu1749_5(glval<CopyConstructorTestVirtualClass>) = InitializeParameter[#this] : &:r1749_4 -# 1749| r1749_6(glval<CopyConstructorTestVirtualClass>) = Load[#this] : &:r1749_4, ~m? -# 1749| mu1749_7(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1749_6 -# 1749| r1749_8(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : mu1749_5 -# 1749| r1749_9(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : -# 1749| v1749_10(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1749_9, this:r1749_8 -# 1749| mu1749_11(unknown) = ^CallSideEffect : ~m? -# 1749| mu1749_12(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1749_8 -# 1749| r1749_13(glval<CopyConstructorWithBitwiseCopyClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : mu1749_5 -# 1749| r1749_14(glval<unknown>) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : -# 1749| v1749_15(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1749_14, this:r1749_13 -# 1749| mu1749_16(unknown) = ^CallSideEffect : ~m? -# 1749| mu1749_17(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1749_13 -# 1749| v1749_18(void) = NoOp : -# 1749| v1749_19(void) = ReturnIndirection[#this] : &:r1749_6, ~m? -# 1749| v1749_20(void) = ReturnVoid : -# 1749| v1749_21(void) = AliasedUse : ~m? -# 1749| v1749_22(void) = ExitFunction : +# 1796| void CopyConstructorTestVirtualClass::CopyConstructorTestVirtualClass() +# 1796| Block 0 +# 1796| v1796_1(void) = EnterFunction : +# 1796| mu1796_2(unknown) = AliasedDefinition : +# 1796| mu1796_3(unknown) = InitializeNonLocal : +# 1796| r1796_4(glval<unknown>) = VariableAddress[#this] : +# 1796| mu1796_5(glval<CopyConstructorTestVirtualClass>) = InitializeParameter[#this] : &:r1796_4 +# 1796| r1796_6(glval<CopyConstructorTestVirtualClass>) = Load[#this] : &:r1796_4, ~m? +# 1796| mu1796_7(CopyConstructorTestVirtualClass) = InitializeIndirection[#this] : &:r1796_6 +# 1796| r1796_8(glval<CopyConstructorWithImplicitArgumentClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithImplicitArgumentClass] : mu1796_5 +# 1796| r1796_9(glval<unknown>) = FunctionAddress[CopyConstructorWithImplicitArgumentClass] : +# 1796| v1796_10(void) = Call[CopyConstructorWithImplicitArgumentClass] : func:r1796_9, this:r1796_8 +# 1796| mu1796_11(unknown) = ^CallSideEffect : ~m? +# 1796| mu1796_12(CopyConstructorWithImplicitArgumentClass) = ^IndirectMayWriteSideEffect[-1] : &:r1796_8 +# 1796| r1796_13(glval<CopyConstructorWithBitwiseCopyClass>) = ConvertToNonVirtualBase[CopyConstructorTestVirtualClass : CopyConstructorWithBitwiseCopyClass] : mu1796_5 +# 1796| r1796_14(glval<unknown>) = FunctionAddress[CopyConstructorWithBitwiseCopyClass] : +# 1796| v1796_15(void) = Call[CopyConstructorWithBitwiseCopyClass] : func:r1796_14, this:r1796_13 +# 1796| mu1796_16(unknown) = ^CallSideEffect : ~m? +# 1796| mu1796_17(CopyConstructorWithBitwiseCopyClass) = ^IndirectMayWriteSideEffect[-1] : &:r1796_13 +# 1796| v1796_18(void) = NoOp : +# 1796| v1796_19(void) = ReturnIndirection[#this] : &:r1796_6, ~m? +# 1796| v1796_20(void) = ReturnVoid : +# 1796| v1796_21(void) = AliasedUse : ~m? +# 1796| v1796_22(void) = ExitFunction : -# 1752| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) -# 1752| Block 0 -# 1752| v1752_1(void) = EnterFunction : -# 1752| mu1752_2(unknown) = AliasedDefinition : -# 1752| mu1752_3(unknown) = InitializeNonLocal : -# 1753| r1753_1(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[x] : -# 1753| mu1753_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1753_1 -# 1753| r1753_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1753_1, ~m? -# 1753| mu1753_4(unknown) = InitializeIndirection[x] : &:r1753_3 -# 1754| r1754_1(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[y] : -# 1754| mu1754_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1754_1 -# 1754| r1754_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1754_1, ~m? -# 1754| mu1754_4(unknown) = InitializeIndirection[y] : &:r1754_3 -# 1755| r1755_1(glval<CopyConstructorTestNonVirtualClass>) = VariableAddress[cx] : -# 1755| mu1755_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1755_1 -# 1755| r1755_3(glval<unknown>) = FunctionAddress[CopyConstructorTestNonVirtualClass] : -# 1755| r1755_4(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[x] : -# 1755| r1755_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1755_4, ~m? -# 1755| r1755_6(glval<CopyConstructorTestNonVirtualClass>) = CopyValue : r1755_5 -# 1755| r1755_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1755_6 -# 1755| v1755_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1755_3, this:r1755_1, 0:r1755_7 -# 1755| mu1755_9(unknown) = ^CallSideEffect : ~m? -# 1755| v1755_10(void) = ^BufferReadSideEffect[0] : &:r1755_7, ~m? -# 1755| mu1755_11(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1755_1 -# 1756| r1756_1(glval<CopyConstructorTestVirtualClass>) = VariableAddress[cy] : -# 1756| mu1756_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1756_1 -# 1756| r1756_3(glval<unknown>) = FunctionAddress[CopyConstructorTestVirtualClass] : -# 1756| r1756_4(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[y] : -# 1756| r1756_5(CopyConstructorTestVirtualClass &) = Load[y] : &:r1756_4, ~m? -# 1756| r1756_6(glval<CopyConstructorTestVirtualClass>) = CopyValue : r1756_5 -# 1756| r1756_7(CopyConstructorTestVirtualClass &) = CopyValue : r1756_6 -# 1756| v1756_8(void) = Call[CopyConstructorTestVirtualClass] : func:r1756_3, this:r1756_1, 0:r1756_7 -# 1756| mu1756_9(unknown) = ^CallSideEffect : ~m? -# 1756| v1756_10(void) = ^BufferReadSideEffect[0] : &:r1756_7, ~m? -# 1756| mu1756_11(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1756_1 -# 1757| r1757_1(glval<int>) = VariableAddress[#return] : -# 1757| mu1757_2(int) = Uninitialized[#return] : &:r1757_1 -# 1753| v1753_5(void) = ReturnIndirection[x] : &:r1753_3, ~m? -# 1754| v1754_5(void) = ReturnIndirection[y] : &:r1754_3, ~m? -# 1752| r1752_4(glval<int>) = VariableAddress[#return] : -# 1752| v1752_5(void) = ReturnValue : &:r1752_4, ~m? -# 1752| v1752_6(void) = AliasedUse : ~m? -# 1752| v1752_7(void) = ExitFunction : +# 1799| int implicit_copy_constructor_test(CopyConstructorTestNonVirtualClass const&, CopyConstructorTestVirtualClass const&) +# 1799| Block 0 +# 1799| v1799_1(void) = EnterFunction : +# 1799| mu1799_2(unknown) = AliasedDefinition : +# 1799| mu1799_3(unknown) = InitializeNonLocal : +# 1800| r1800_1(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[x] : +# 1800| mu1800_2(CopyConstructorTestNonVirtualClass &) = InitializeParameter[x] : &:r1800_1 +# 1800| r1800_3(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1800_1, ~m? +# 1800| mu1800_4(unknown) = InitializeIndirection[x] : &:r1800_3 +# 1801| r1801_1(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[y] : +# 1801| mu1801_2(CopyConstructorTestVirtualClass &) = InitializeParameter[y] : &:r1801_1 +# 1801| r1801_3(CopyConstructorTestVirtualClass &) = Load[y] : &:r1801_1, ~m? +# 1801| mu1801_4(unknown) = InitializeIndirection[y] : &:r1801_3 +# 1802| r1802_1(glval<CopyConstructorTestNonVirtualClass>) = VariableAddress[cx] : +# 1802| mu1802_2(CopyConstructorTestNonVirtualClass) = Uninitialized[cx] : &:r1802_1 +# 1802| r1802_3(glval<unknown>) = FunctionAddress[CopyConstructorTestNonVirtualClass] : +# 1802| r1802_4(glval<CopyConstructorTestNonVirtualClass &>) = VariableAddress[x] : +# 1802| r1802_5(CopyConstructorTestNonVirtualClass &) = Load[x] : &:r1802_4, ~m? +# 1802| r1802_6(glval<CopyConstructorTestNonVirtualClass>) = CopyValue : r1802_5 +# 1802| r1802_7(CopyConstructorTestNonVirtualClass &) = CopyValue : r1802_6 +# 1802| v1802_8(void) = Call[CopyConstructorTestNonVirtualClass] : func:r1802_3, this:r1802_1, 0:r1802_7 +# 1802| mu1802_9(unknown) = ^CallSideEffect : ~m? +# 1802| v1802_10(void) = ^BufferReadSideEffect[0] : &:r1802_7, ~m? +# 1802| mu1802_11(CopyConstructorTestNonVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1802_1 +# 1803| r1803_1(glval<CopyConstructorTestVirtualClass>) = VariableAddress[cy] : +# 1803| mu1803_2(CopyConstructorTestVirtualClass) = Uninitialized[cy] : &:r1803_1 +# 1803| r1803_3(glval<unknown>) = FunctionAddress[CopyConstructorTestVirtualClass] : +# 1803| r1803_4(glval<CopyConstructorTestVirtualClass &>) = VariableAddress[y] : +# 1803| r1803_5(CopyConstructorTestVirtualClass &) = Load[y] : &:r1803_4, ~m? +# 1803| r1803_6(glval<CopyConstructorTestVirtualClass>) = CopyValue : r1803_5 +# 1803| r1803_7(CopyConstructorTestVirtualClass &) = CopyValue : r1803_6 +# 1803| v1803_8(void) = Call[CopyConstructorTestVirtualClass] : func:r1803_3, this:r1803_1, 0:r1803_7 +# 1803| mu1803_9(unknown) = ^CallSideEffect : ~m? +# 1803| v1803_10(void) = ^BufferReadSideEffect[0] : &:r1803_7, ~m? +# 1803| mu1803_11(CopyConstructorTestVirtualClass) = ^IndirectMayWriteSideEffect[-1] : &:r1803_1 +# 1804| r1804_1(glval<int>) = VariableAddress[#return] : +# 1804| mu1804_2(int) = Uninitialized[#return] : &:r1804_1 +# 1800| v1800_5(void) = ReturnIndirection[x] : &:r1800_3, ~m? +# 1801| v1801_5(void) = ReturnIndirection[y] : &:r1801_3, ~m? +# 1799| r1799_4(glval<int>) = VariableAddress[#return] : +# 1799| v1799_5(void) = ReturnValue : &:r1799_4, ~m? +# 1799| v1799_6(void) = AliasedUse : ~m? +# 1799| v1799_7(void) = ExitFunction : -# 1759| void if_initialization(int) -# 1759| Block 0 -# 1759| v1759_1(void) = EnterFunction : -# 1759| mu1759_2(unknown) = AliasedDefinition : -# 1759| mu1759_3(unknown) = InitializeNonLocal : -# 1759| r1759_4(glval<int>) = VariableAddress[x] : -# 1759| mu1759_5(int) = InitializeParameter[x] : &:r1759_4 -# 1760| r1760_1(glval<int>) = VariableAddress[y] : -# 1760| r1760_2(glval<int>) = VariableAddress[x] : -# 1760| r1760_3(int) = Load[x] : &:r1760_2, ~m? -# 1760| mu1760_4(int) = Store[y] : &:r1760_1, r1760_3 -# 1760| r1760_5(glval<int>) = VariableAddress[x] : -# 1760| r1760_6(int) = Load[x] : &:r1760_5, ~m? -# 1760| r1760_7(int) = Constant[1] : -# 1760| r1760_8(int) = Add : r1760_6, r1760_7 -# 1760| r1760_9(int) = Constant[0] : -# 1760| r1760_10(bool) = CompareNE : r1760_8, r1760_9 -# 1760| v1760_11(void) = ConditionalBranch : r1760_10 +# 1806| void if_initialization(int) +# 1806| Block 0 +# 1806| v1806_1(void) = EnterFunction : +# 1806| mu1806_2(unknown) = AliasedDefinition : +# 1806| mu1806_3(unknown) = InitializeNonLocal : +# 1806| r1806_4(glval<int>) = VariableAddress[x] : +# 1806| mu1806_5(int) = InitializeParameter[x] : &:r1806_4 +# 1807| r1807_1(glval<int>) = VariableAddress[y] : +# 1807| r1807_2(glval<int>) = VariableAddress[x] : +# 1807| r1807_3(int) = Load[x] : &:r1807_2, ~m? +# 1807| mu1807_4(int) = Store[y] : &:r1807_1, r1807_3 +# 1807| r1807_5(glval<int>) = VariableAddress[x] : +# 1807| r1807_6(int) = Load[x] : &:r1807_5, ~m? +# 1807| r1807_7(int) = Constant[1] : +# 1807| r1807_8(int) = Add : r1807_6, r1807_7 +# 1807| r1807_9(int) = Constant[0] : +# 1807| r1807_10(bool) = CompareNE : r1807_8, r1807_9 +# 1807| v1807_11(void) = ConditionalBranch : r1807_10 #-----| False -> Block 2 #-----| True -> Block 1 -# 1761| Block 1 -# 1761| r1761_1(glval<int>) = VariableAddress[x] : -# 1761| r1761_2(int) = Load[x] : &:r1761_1, ~m? -# 1761| r1761_3(glval<int>) = VariableAddress[y] : -# 1761| r1761_4(int) = Load[y] : &:r1761_3, ~m? -# 1761| r1761_5(int) = Add : r1761_2, r1761_4 -# 1761| r1761_6(glval<int>) = VariableAddress[x] : -# 1761| mu1761_7(int) = Store[x] : &:r1761_6, r1761_5 +# 1808| Block 1 +# 1808| r1808_1(glval<int>) = VariableAddress[x] : +# 1808| r1808_2(int) = Load[x] : &:r1808_1, ~m? +# 1808| r1808_3(glval<int>) = VariableAddress[y] : +# 1808| r1808_4(int) = Load[y] : &:r1808_3, ~m? +# 1808| r1808_5(int) = Add : r1808_2, r1808_4 +# 1808| r1808_6(glval<int>) = VariableAddress[x] : +# 1808| mu1808_7(int) = Store[x] : &:r1808_6, r1808_5 #-----| Goto -> Block 2 -# 1764| Block 2 -# 1764| r1764_1(glval<int>) = VariableAddress[w] : -# 1764| mu1764_2(int) = Uninitialized[w] : &:r1764_1 -# 1765| r1765_1(glval<int>) = VariableAddress[x] : -# 1765| r1765_2(int) = Load[x] : &:r1765_1, ~m? -# 1765| r1765_3(glval<int>) = VariableAddress[w] : -# 1765| mu1765_4(int) = Store[w] : &:r1765_3, r1765_2 -# 1765| r1765_5(glval<int>) = VariableAddress[x] : -# 1765| r1765_6(int) = Load[x] : &:r1765_5, ~m? -# 1765| r1765_7(int) = Constant[1] : -# 1765| r1765_8(int) = Add : r1765_6, r1765_7 -# 1765| r1765_9(int) = Constant[0] : -# 1765| r1765_10(bool) = CompareNE : r1765_8, r1765_9 -# 1765| v1765_11(void) = ConditionalBranch : r1765_10 +# 1811| Block 2 +# 1811| r1811_1(glval<int>) = VariableAddress[w] : +# 1811| mu1811_2(int) = Uninitialized[w] : &:r1811_1 +# 1812| r1812_1(glval<int>) = VariableAddress[x] : +# 1812| r1812_2(int) = Load[x] : &:r1812_1, ~m? +# 1812| r1812_3(glval<int>) = VariableAddress[w] : +# 1812| mu1812_4(int) = Store[w] : &:r1812_3, r1812_2 +# 1812| r1812_5(glval<int>) = VariableAddress[x] : +# 1812| r1812_6(int) = Load[x] : &:r1812_5, ~m? +# 1812| r1812_7(int) = Constant[1] : +# 1812| r1812_8(int) = Add : r1812_6, r1812_7 +# 1812| r1812_9(int) = Constant[0] : +# 1812| r1812_10(bool) = CompareNE : r1812_8, r1812_9 +# 1812| v1812_11(void) = ConditionalBranch : r1812_10 #-----| False -> Block 4 #-----| True -> Block 3 -# 1766| Block 3 -# 1766| r1766_1(glval<int>) = VariableAddress[x] : -# 1766| r1766_2(int) = Load[x] : &:r1766_1, ~m? -# 1766| r1766_3(glval<int>) = VariableAddress[w] : -# 1766| r1766_4(int) = Load[w] : &:r1766_3, ~m? -# 1766| r1766_5(int) = Add : r1766_2, r1766_4 -# 1766| r1766_6(glval<int>) = VariableAddress[x] : -# 1766| mu1766_7(int) = Store[x] : &:r1766_6, r1766_5 +# 1813| Block 3 +# 1813| r1813_1(glval<int>) = VariableAddress[x] : +# 1813| r1813_2(int) = Load[x] : &:r1813_1, ~m? +# 1813| r1813_3(glval<int>) = VariableAddress[w] : +# 1813| r1813_4(int) = Load[w] : &:r1813_3, ~m? +# 1813| r1813_5(int) = Add : r1813_2, r1813_4 +# 1813| r1813_6(glval<int>) = VariableAddress[x] : +# 1813| mu1813_7(int) = Store[x] : &:r1813_6, r1813_5 #-----| Goto -> Block 4 -# 1769| Block 4 -# 1769| r1769_1(glval<int>) = VariableAddress[x] : -# 1769| r1769_2(int) = Load[x] : &:r1769_1, ~m? -# 1769| r1769_3(glval<int>) = VariableAddress[w] : -# 1769| mu1769_4(int) = Store[w] : &:r1769_3, r1769_2 -# 1769| r1769_5(glval<int>) = VariableAddress[w2] : -# 1769| r1769_6(glval<int>) = VariableAddress[w] : -# 1769| r1769_7(int) = Load[w] : &:r1769_6, ~m? -# 1769| mu1769_8(int) = Store[w2] : &:r1769_5, r1769_7 -# 1769| r1769_9(glval<int>) = VariableAddress[w2] : -# 1769| r1769_10(int) = Load[w2] : &:r1769_9, ~m? -# 1769| r1769_11(int) = Constant[0] : -# 1769| r1769_12(bool) = CompareNE : r1769_10, r1769_11 -# 1769| r1769_13(bool) = CopyValue : r1769_12 -# 1769| v1769_14(void) = ConditionalBranch : r1769_13 +# 1816| Block 4 +# 1816| r1816_1(glval<int>) = VariableAddress[x] : +# 1816| r1816_2(int) = Load[x] : &:r1816_1, ~m? +# 1816| r1816_3(glval<int>) = VariableAddress[w] : +# 1816| mu1816_4(int) = Store[w] : &:r1816_3, r1816_2 +# 1816| r1816_5(glval<int>) = VariableAddress[w2] : +# 1816| r1816_6(glval<int>) = VariableAddress[w] : +# 1816| r1816_7(int) = Load[w] : &:r1816_6, ~m? +# 1816| mu1816_8(int) = Store[w2] : &:r1816_5, r1816_7 +# 1816| r1816_9(glval<int>) = VariableAddress[w2] : +# 1816| r1816_10(int) = Load[w2] : &:r1816_9, ~m? +# 1816| r1816_11(int) = Constant[0] : +# 1816| r1816_12(bool) = CompareNE : r1816_10, r1816_11 +# 1816| r1816_13(bool) = CopyValue : r1816_12 +# 1816| v1816_14(void) = ConditionalBranch : r1816_13 #-----| False -> Block 6 #-----| True -> Block 5 -# 1770| Block 5 -# 1770| r1770_1(glval<int>) = VariableAddress[x] : -# 1770| r1770_2(int) = Load[x] : &:r1770_1, ~m? -# 1770| r1770_3(glval<int>) = VariableAddress[w] : -# 1770| r1770_4(int) = Load[w] : &:r1770_3, ~m? -# 1770| r1770_5(int) = Add : r1770_2, r1770_4 -# 1770| r1770_6(glval<int>) = VariableAddress[x] : -# 1770| mu1770_7(int) = Store[x] : &:r1770_6, r1770_5 +# 1817| Block 5 +# 1817| r1817_1(glval<int>) = VariableAddress[x] : +# 1817| r1817_2(int) = Load[x] : &:r1817_1, ~m? +# 1817| r1817_3(glval<int>) = VariableAddress[w] : +# 1817| r1817_4(int) = Load[w] : &:r1817_3, ~m? +# 1817| r1817_5(int) = Add : r1817_2, r1817_4 +# 1817| r1817_6(glval<int>) = VariableAddress[x] : +# 1817| mu1817_7(int) = Store[x] : &:r1817_6, r1817_5 #-----| Goto -> Block 6 -# 1773| Block 6 -# 1773| r1773_1(glval<int>) = VariableAddress[v] : -# 1773| r1773_2(glval<int>) = VariableAddress[x] : -# 1773| r1773_3(int) = Load[x] : &:r1773_2, ~m? -# 1773| mu1773_4(int) = Store[v] : &:r1773_1, r1773_3 -# 1773| r1773_5(glval<int>) = VariableAddress[v2] : -# 1773| r1773_6(glval<int>) = VariableAddress[v] : -# 1773| r1773_7(int) = Load[v] : &:r1773_6, ~m? -# 1773| mu1773_8(int) = Store[v2] : &:r1773_5, r1773_7 -# 1773| r1773_9(glval<int>) = VariableAddress[v2] : -# 1773| r1773_10(int) = Load[v2] : &:r1773_9, ~m? -# 1773| r1773_11(int) = Constant[0] : -# 1773| r1773_12(bool) = CompareNE : r1773_10, r1773_11 -# 1773| r1773_13(bool) = CopyValue : r1773_12 -# 1773| v1773_14(void) = ConditionalBranch : r1773_13 +# 1820| Block 6 +# 1820| r1820_1(glval<int>) = VariableAddress[v] : +# 1820| r1820_2(glval<int>) = VariableAddress[x] : +# 1820| r1820_3(int) = Load[x] : &:r1820_2, ~m? +# 1820| mu1820_4(int) = Store[v] : &:r1820_1, r1820_3 +# 1820| r1820_5(glval<int>) = VariableAddress[v2] : +# 1820| r1820_6(glval<int>) = VariableAddress[v] : +# 1820| r1820_7(int) = Load[v] : &:r1820_6, ~m? +# 1820| mu1820_8(int) = Store[v2] : &:r1820_5, r1820_7 +# 1820| r1820_9(glval<int>) = VariableAddress[v2] : +# 1820| r1820_10(int) = Load[v2] : &:r1820_9, ~m? +# 1820| r1820_11(int) = Constant[0] : +# 1820| r1820_12(bool) = CompareNE : r1820_10, r1820_11 +# 1820| r1820_13(bool) = CopyValue : r1820_12 +# 1820| v1820_14(void) = ConditionalBranch : r1820_13 #-----| False -> Block 8 #-----| True -> Block 7 -# 1774| Block 7 -# 1774| r1774_1(glval<int>) = VariableAddress[x] : -# 1774| r1774_2(int) = Load[x] : &:r1774_1, ~m? -# 1774| r1774_3(glval<int>) = VariableAddress[v] : -# 1774| r1774_4(int) = Load[v] : &:r1774_3, ~m? -# 1774| r1774_5(int) = Add : r1774_2, r1774_4 -# 1774| r1774_6(glval<int>) = VariableAddress[x] : -# 1774| mu1774_7(int) = Store[x] : &:r1774_6, r1774_5 +# 1821| Block 7 +# 1821| r1821_1(glval<int>) = VariableAddress[x] : +# 1821| r1821_2(int) = Load[x] : &:r1821_1, ~m? +# 1821| r1821_3(glval<int>) = VariableAddress[v] : +# 1821| r1821_4(int) = Load[v] : &:r1821_3, ~m? +# 1821| r1821_5(int) = Add : r1821_2, r1821_4 +# 1821| r1821_6(glval<int>) = VariableAddress[x] : +# 1821| mu1821_7(int) = Store[x] : &:r1821_6, r1821_5 #-----| Goto -> Block 8 -# 1777| Block 8 -# 1777| r1777_1(glval<int>) = VariableAddress[z] : -# 1777| r1777_2(glval<int>) = VariableAddress[x] : -# 1777| r1777_3(int) = Load[x] : &:r1777_2, ~m? -# 1777| mu1777_4(int) = Store[z] : &:r1777_1, r1777_3 -# 1778| r1778_1(glval<int>) = VariableAddress[z] : -# 1778| r1778_2(int) = Load[z] : &:r1778_1, ~m? -# 1778| r1778_3(int) = Constant[0] : -# 1778| r1778_4(bool) = CompareNE : r1778_2, r1778_3 -# 1778| v1778_5(void) = ConditionalBranch : r1778_4 +# 1824| Block 8 +# 1824| r1824_1(glval<int>) = VariableAddress[z] : +# 1824| r1824_2(glval<int>) = VariableAddress[x] : +# 1824| r1824_3(int) = Load[x] : &:r1824_2, ~m? +# 1824| mu1824_4(int) = Store[z] : &:r1824_1, r1824_3 +# 1825| r1825_1(glval<int>) = VariableAddress[z] : +# 1825| r1825_2(int) = Load[z] : &:r1825_1, ~m? +# 1825| r1825_3(int) = Constant[0] : +# 1825| r1825_4(bool) = CompareNE : r1825_2, r1825_3 +# 1825| v1825_5(void) = ConditionalBranch : r1825_4 #-----| False -> Block 10 #-----| True -> Block 9 -# 1779| Block 9 -# 1779| r1779_1(glval<int>) = VariableAddress[x] : -# 1779| r1779_2(int) = Load[x] : &:r1779_1, ~m? -# 1779| r1779_3(glval<int>) = VariableAddress[z] : -# 1779| r1779_4(int) = Load[z] : &:r1779_3, ~m? -# 1779| r1779_5(int) = Add : r1779_2, r1779_4 -# 1779| r1779_6(glval<int>) = VariableAddress[x] : -# 1779| mu1779_7(int) = Store[x] : &:r1779_6, r1779_5 +# 1826| Block 9 +# 1826| r1826_1(glval<int>) = VariableAddress[x] : +# 1826| r1826_2(int) = Load[x] : &:r1826_1, ~m? +# 1826| r1826_3(glval<int>) = VariableAddress[z] : +# 1826| r1826_4(int) = Load[z] : &:r1826_3, ~m? +# 1826| r1826_5(int) = Add : r1826_2, r1826_4 +# 1826| r1826_6(glval<int>) = VariableAddress[x] : +# 1826| mu1826_7(int) = Store[x] : &:r1826_6, r1826_5 #-----| Goto -> Block 10 -# 1782| Block 10 -# 1782| r1782_1(glval<int>) = VariableAddress[z2] : -# 1782| r1782_2(glval<int>) = VariableAddress[z] : -# 1782| r1782_3(int) = Load[z] : &:r1782_2, ~m? -# 1782| mu1782_4(int) = Store[z2] : &:r1782_1, r1782_3 -# 1782| r1782_5(glval<int>) = VariableAddress[z2] : -# 1782| r1782_6(int) = Load[z2] : &:r1782_5, ~m? -# 1782| r1782_7(int) = Constant[0] : -# 1782| r1782_8(bool) = CompareNE : r1782_6, r1782_7 -# 1782| r1782_9(bool) = CopyValue : r1782_8 -# 1782| v1782_10(void) = ConditionalBranch : r1782_9 +# 1829| Block 10 +# 1829| r1829_1(glval<int>) = VariableAddress[z2] : +# 1829| r1829_2(glval<int>) = VariableAddress[z] : +# 1829| r1829_3(int) = Load[z] : &:r1829_2, ~m? +# 1829| mu1829_4(int) = Store[z2] : &:r1829_1, r1829_3 +# 1829| r1829_5(glval<int>) = VariableAddress[z2] : +# 1829| r1829_6(int) = Load[z2] : &:r1829_5, ~m? +# 1829| r1829_7(int) = Constant[0] : +# 1829| r1829_8(bool) = CompareNE : r1829_6, r1829_7 +# 1829| r1829_9(bool) = CopyValue : r1829_8 +# 1829| v1829_10(void) = ConditionalBranch : r1829_9 #-----| False -> Block 12 #-----| True -> Block 11 -# 1783| Block 11 -# 1783| r1783_1(glval<int>) = VariableAddress[z2] : -# 1783| r1783_2(int) = Load[z2] : &:r1783_1, ~m? -# 1783| r1783_3(glval<int>) = VariableAddress[x] : -# 1783| r1783_4(int) = Load[x] : &:r1783_3, ~m? -# 1783| r1783_5(int) = Add : r1783_4, r1783_2 -# 1783| mu1783_6(int) = Store[x] : &:r1783_3, r1783_5 +# 1830| Block 11 +# 1830| r1830_1(glval<int>) = VariableAddress[z2] : +# 1830| r1830_2(int) = Load[z2] : &:r1830_1, ~m? +# 1830| r1830_3(glval<int>) = VariableAddress[x] : +# 1830| r1830_4(int) = Load[x] : &:r1830_3, ~m? +# 1830| r1830_5(int) = Add : r1830_4, r1830_2 +# 1830| mu1830_6(int) = Store[x] : &:r1830_3, r1830_5 #-----| Goto -> Block 12 -# 1785| Block 12 -# 1785| v1785_1(void) = NoOp : -# 1759| v1759_6(void) = ReturnVoid : -# 1759| v1759_7(void) = AliasedUse : ~m? -# 1759| v1759_8(void) = ExitFunction : +# 1832| Block 12 +# 1832| v1832_1(void) = NoOp : +# 1806| v1806_6(void) = ReturnVoid : +# 1806| v1806_7(void) = AliasedUse : ~m? +# 1806| v1806_8(void) = ExitFunction : -# 1787| void switch_initialization(int) -# 1787| Block 0 -# 1787| v1787_1(void) = EnterFunction : -# 1787| mu1787_2(unknown) = AliasedDefinition : -# 1787| mu1787_3(unknown) = InitializeNonLocal : -# 1787| r1787_4(glval<int>) = VariableAddress[x] : -# 1787| mu1787_5(int) = InitializeParameter[x] : &:r1787_4 -# 1788| r1788_1(glval<int>) = VariableAddress[y] : -# 1788| r1788_2(glval<int>) = VariableAddress[x] : -# 1788| r1788_3(int) = Load[x] : &:r1788_2, ~m? -# 1788| mu1788_4(int) = Store[y] : &:r1788_1, r1788_3 -# 1788| r1788_5(glval<int>) = VariableAddress[x] : -# 1788| r1788_6(int) = Load[x] : &:r1788_5, ~m? -# 1788| r1788_7(int) = Constant[1] : -# 1788| r1788_8(int) = Add : r1788_6, r1788_7 -# 1788| v1788_9(void) = Switch : r1788_8 +# 1834| void switch_initialization(int) +# 1834| Block 0 +# 1834| v1834_1(void) = EnterFunction : +# 1834| mu1834_2(unknown) = AliasedDefinition : +# 1834| mu1834_3(unknown) = InitializeNonLocal : +# 1834| r1834_4(glval<int>) = VariableAddress[x] : +# 1834| mu1834_5(int) = InitializeParameter[x] : &:r1834_4 +# 1835| r1835_1(glval<int>) = VariableAddress[y] : +# 1835| r1835_2(glval<int>) = VariableAddress[x] : +# 1835| r1835_3(int) = Load[x] : &:r1835_2, ~m? +# 1835| mu1835_4(int) = Store[y] : &:r1835_1, r1835_3 +# 1835| r1835_5(glval<int>) = VariableAddress[x] : +# 1835| r1835_6(int) = Load[x] : &:r1835_5, ~m? +# 1835| r1835_7(int) = Constant[1] : +# 1835| r1835_8(int) = Add : r1835_6, r1835_7 +# 1835| v1835_9(void) = Switch : r1835_8 #-----| Default -> Block 1 -# 1789| Block 1 -# 1789| v1789_1(void) = NoOp : -# 1790| r1790_1(glval<int>) = VariableAddress[x] : -# 1790| r1790_2(int) = Load[x] : &:r1790_1, ~m? -# 1790| r1790_3(glval<int>) = VariableAddress[y] : -# 1790| r1790_4(int) = Load[y] : &:r1790_3, ~m? -# 1790| r1790_5(int) = Add : r1790_2, r1790_4 -# 1790| r1790_6(glval<int>) = VariableAddress[x] : -# 1790| mu1790_7(int) = Store[x] : &:r1790_6, r1790_5 -# 1793| r1793_1(glval<int>) = VariableAddress[w] : -# 1793| mu1793_2(int) = Uninitialized[w] : &:r1793_1 -# 1794| r1794_1(glval<int>) = VariableAddress[x] : -# 1794| r1794_2(int) = Load[x] : &:r1794_1, ~m? -# 1794| r1794_3(glval<int>) = VariableAddress[w] : -# 1794| mu1794_4(int) = Store[w] : &:r1794_3, r1794_2 -# 1794| r1794_5(glval<int>) = VariableAddress[x] : -# 1794| r1794_6(int) = Load[x] : &:r1794_5, ~m? -# 1794| r1794_7(int) = Constant[1] : -# 1794| r1794_8(int) = Add : r1794_6, r1794_7 -# 1794| v1794_9(void) = Switch : r1794_8 +# 1836| Block 1 +# 1836| v1836_1(void) = NoOp : +# 1837| r1837_1(glval<int>) = VariableAddress[x] : +# 1837| r1837_2(int) = Load[x] : &:r1837_1, ~m? +# 1837| r1837_3(glval<int>) = VariableAddress[y] : +# 1837| r1837_4(int) = Load[y] : &:r1837_3, ~m? +# 1837| r1837_5(int) = Add : r1837_2, r1837_4 +# 1837| r1837_6(glval<int>) = VariableAddress[x] : +# 1837| mu1837_7(int) = Store[x] : &:r1837_6, r1837_5 +# 1840| r1840_1(glval<int>) = VariableAddress[w] : +# 1840| mu1840_2(int) = Uninitialized[w] : &:r1840_1 +# 1841| r1841_1(glval<int>) = VariableAddress[x] : +# 1841| r1841_2(int) = Load[x] : &:r1841_1, ~m? +# 1841| r1841_3(glval<int>) = VariableAddress[w] : +# 1841| mu1841_4(int) = Store[w] : &:r1841_3, r1841_2 +# 1841| r1841_5(glval<int>) = VariableAddress[x] : +# 1841| r1841_6(int) = Load[x] : &:r1841_5, ~m? +# 1841| r1841_7(int) = Constant[1] : +# 1841| r1841_8(int) = Add : r1841_6, r1841_7 +# 1841| v1841_9(void) = Switch : r1841_8 #-----| Default -> Block 2 -# 1795| Block 2 -# 1795| v1795_1(void) = NoOp : -# 1796| r1796_1(glval<int>) = VariableAddress[x] : -# 1796| r1796_2(int) = Load[x] : &:r1796_1, ~m? -# 1796| r1796_3(glval<int>) = VariableAddress[w] : -# 1796| r1796_4(int) = Load[w] : &:r1796_3, ~m? -# 1796| r1796_5(int) = Add : r1796_2, r1796_4 -# 1796| r1796_6(glval<int>) = VariableAddress[x] : -# 1796| mu1796_7(int) = Store[x] : &:r1796_6, r1796_5 -# 1799| r1799_1(glval<int>) = VariableAddress[x] : -# 1799| r1799_2(int) = Load[x] : &:r1799_1, ~m? -# 1799| r1799_3(glval<int>) = VariableAddress[w] : -# 1799| mu1799_4(int) = Store[w] : &:r1799_3, r1799_2 -# 1799| r1799_5(glval<int>) = VariableAddress[w2] : -# 1799| r1799_6(glval<int>) = VariableAddress[w] : -# 1799| r1799_7(int) = Load[w] : &:r1799_6, ~m? -# 1799| mu1799_8(int) = Store[w2] : &:r1799_5, r1799_7 -# 1799| r1799_9(glval<int>) = VariableAddress[w2] : -# 1799| r1799_10(int) = Load[w2] : &:r1799_9, ~m? -# 1799| r1799_11(int) = CopyValue : r1799_10 -# 1799| v1799_12(void) = Switch : r1799_11 +# 1842| Block 2 +# 1842| v1842_1(void) = NoOp : +# 1843| r1843_1(glval<int>) = VariableAddress[x] : +# 1843| r1843_2(int) = Load[x] : &:r1843_1, ~m? +# 1843| r1843_3(glval<int>) = VariableAddress[w] : +# 1843| r1843_4(int) = Load[w] : &:r1843_3, ~m? +# 1843| r1843_5(int) = Add : r1843_2, r1843_4 +# 1843| r1843_6(glval<int>) = VariableAddress[x] : +# 1843| mu1843_7(int) = Store[x] : &:r1843_6, r1843_5 +# 1846| r1846_1(glval<int>) = VariableAddress[x] : +# 1846| r1846_2(int) = Load[x] : &:r1846_1, ~m? +# 1846| r1846_3(glval<int>) = VariableAddress[w] : +# 1846| mu1846_4(int) = Store[w] : &:r1846_3, r1846_2 +# 1846| r1846_5(glval<int>) = VariableAddress[w2] : +# 1846| r1846_6(glval<int>) = VariableAddress[w] : +# 1846| r1846_7(int) = Load[w] : &:r1846_6, ~m? +# 1846| mu1846_8(int) = Store[w2] : &:r1846_5, r1846_7 +# 1846| r1846_9(glval<int>) = VariableAddress[w2] : +# 1846| r1846_10(int) = Load[w2] : &:r1846_9, ~m? +# 1846| r1846_11(int) = CopyValue : r1846_10 +# 1846| v1846_12(void) = Switch : r1846_11 #-----| Default -> Block 3 -# 1800| Block 3 -# 1800| v1800_1(void) = NoOp : -# 1801| r1801_1(glval<int>) = VariableAddress[x] : -# 1801| r1801_2(int) = Load[x] : &:r1801_1, ~m? -# 1801| r1801_3(glval<int>) = VariableAddress[w] : -# 1801| r1801_4(int) = Load[w] : &:r1801_3, ~m? -# 1801| r1801_5(int) = Add : r1801_2, r1801_4 -# 1801| r1801_6(glval<int>) = VariableAddress[x] : -# 1801| mu1801_7(int) = Store[x] : &:r1801_6, r1801_5 -# 1804| r1804_1(glval<int>) = VariableAddress[v] : -# 1804| r1804_2(glval<int>) = VariableAddress[x] : -# 1804| r1804_3(int) = Load[x] : &:r1804_2, ~m? -# 1804| mu1804_4(int) = Store[v] : &:r1804_1, r1804_3 -# 1804| r1804_5(glval<int>) = VariableAddress[v2] : -# 1804| r1804_6(glval<int>) = VariableAddress[v] : -# 1804| r1804_7(int) = Load[v] : &:r1804_6, ~m? -# 1804| mu1804_8(int) = Store[v2] : &:r1804_5, r1804_7 -# 1804| r1804_9(glval<int>) = VariableAddress[v2] : -# 1804| r1804_10(int) = Load[v2] : &:r1804_9, ~m? -# 1804| r1804_11(int) = CopyValue : r1804_10 -# 1804| v1804_12(void) = Switch : r1804_11 +# 1847| Block 3 +# 1847| v1847_1(void) = NoOp : +# 1848| r1848_1(glval<int>) = VariableAddress[x] : +# 1848| r1848_2(int) = Load[x] : &:r1848_1, ~m? +# 1848| r1848_3(glval<int>) = VariableAddress[w] : +# 1848| r1848_4(int) = Load[w] : &:r1848_3, ~m? +# 1848| r1848_5(int) = Add : r1848_2, r1848_4 +# 1848| r1848_6(glval<int>) = VariableAddress[x] : +# 1848| mu1848_7(int) = Store[x] : &:r1848_6, r1848_5 +# 1851| r1851_1(glval<int>) = VariableAddress[v] : +# 1851| r1851_2(glval<int>) = VariableAddress[x] : +# 1851| r1851_3(int) = Load[x] : &:r1851_2, ~m? +# 1851| mu1851_4(int) = Store[v] : &:r1851_1, r1851_3 +# 1851| r1851_5(glval<int>) = VariableAddress[v2] : +# 1851| r1851_6(glval<int>) = VariableAddress[v] : +# 1851| r1851_7(int) = Load[v] : &:r1851_6, ~m? +# 1851| mu1851_8(int) = Store[v2] : &:r1851_5, r1851_7 +# 1851| r1851_9(glval<int>) = VariableAddress[v2] : +# 1851| r1851_10(int) = Load[v2] : &:r1851_9, ~m? +# 1851| r1851_11(int) = CopyValue : r1851_10 +# 1851| v1851_12(void) = Switch : r1851_11 #-----| Default -> Block 4 -# 1805| Block 4 -# 1805| v1805_1(void) = NoOp : -# 1806| r1806_1(glval<int>) = VariableAddress[x] : -# 1806| r1806_2(int) = Load[x] : &:r1806_1, ~m? -# 1806| r1806_3(glval<int>) = VariableAddress[v] : -# 1806| r1806_4(int) = Load[v] : &:r1806_3, ~m? -# 1806| r1806_5(int) = Add : r1806_2, r1806_4 -# 1806| r1806_6(glval<int>) = VariableAddress[x] : -# 1806| mu1806_7(int) = Store[x] : &:r1806_6, r1806_5 -# 1809| r1809_1(glval<int>) = VariableAddress[z] : -# 1809| r1809_2(glval<int>) = VariableAddress[x] : -# 1809| r1809_3(int) = Load[x] : &:r1809_2, ~m? -# 1809| mu1809_4(int) = Store[z] : &:r1809_1, r1809_3 -# 1810| r1810_1(glval<int>) = VariableAddress[z] : -# 1810| r1810_2(int) = Load[z] : &:r1810_1, ~m? -# 1810| v1810_3(void) = Switch : r1810_2 +# 1852| Block 4 +# 1852| v1852_1(void) = NoOp : +# 1853| r1853_1(glval<int>) = VariableAddress[x] : +# 1853| r1853_2(int) = Load[x] : &:r1853_1, ~m? +# 1853| r1853_3(glval<int>) = VariableAddress[v] : +# 1853| r1853_4(int) = Load[v] : &:r1853_3, ~m? +# 1853| r1853_5(int) = Add : r1853_2, r1853_4 +# 1853| r1853_6(glval<int>) = VariableAddress[x] : +# 1853| mu1853_7(int) = Store[x] : &:r1853_6, r1853_5 +# 1856| r1856_1(glval<int>) = VariableAddress[z] : +# 1856| r1856_2(glval<int>) = VariableAddress[x] : +# 1856| r1856_3(int) = Load[x] : &:r1856_2, ~m? +# 1856| mu1856_4(int) = Store[z] : &:r1856_1, r1856_3 +# 1857| r1857_1(glval<int>) = VariableAddress[z] : +# 1857| r1857_2(int) = Load[z] : &:r1857_1, ~m? +# 1857| v1857_3(void) = Switch : r1857_2 #-----| Default -> Block 5 -# 1811| Block 5 -# 1811| v1811_1(void) = NoOp : -# 1812| r1812_1(glval<int>) = VariableAddress[x] : -# 1812| r1812_2(int) = Load[x] : &:r1812_1, ~m? -# 1812| r1812_3(glval<int>) = VariableAddress[z] : -# 1812| r1812_4(int) = Load[z] : &:r1812_3, ~m? -# 1812| r1812_5(int) = Add : r1812_2, r1812_4 -# 1812| r1812_6(glval<int>) = VariableAddress[x] : -# 1812| mu1812_7(int) = Store[x] : &:r1812_6, r1812_5 -# 1815| r1815_1(glval<int>) = VariableAddress[z2] : -# 1815| r1815_2(glval<int>) = VariableAddress[z] : -# 1815| r1815_3(int) = Load[z] : &:r1815_2, ~m? -# 1815| mu1815_4(int) = Store[z2] : &:r1815_1, r1815_3 -# 1815| r1815_5(glval<int>) = VariableAddress[z2] : -# 1815| r1815_6(int) = Load[z2] : &:r1815_5, ~m? -# 1815| r1815_7(int) = CopyValue : r1815_6 -# 1815| v1815_8(void) = Switch : r1815_7 +# 1858| Block 5 +# 1858| v1858_1(void) = NoOp : +# 1859| r1859_1(glval<int>) = VariableAddress[x] : +# 1859| r1859_2(int) = Load[x] : &:r1859_1, ~m? +# 1859| r1859_3(glval<int>) = VariableAddress[z] : +# 1859| r1859_4(int) = Load[z] : &:r1859_3, ~m? +# 1859| r1859_5(int) = Add : r1859_2, r1859_4 +# 1859| r1859_6(glval<int>) = VariableAddress[x] : +# 1859| mu1859_7(int) = Store[x] : &:r1859_6, r1859_5 +# 1862| r1862_1(glval<int>) = VariableAddress[z2] : +# 1862| r1862_2(glval<int>) = VariableAddress[z] : +# 1862| r1862_3(int) = Load[z] : &:r1862_2, ~m? +# 1862| mu1862_4(int) = Store[z2] : &:r1862_1, r1862_3 +# 1862| r1862_5(glval<int>) = VariableAddress[z2] : +# 1862| r1862_6(int) = Load[z2] : &:r1862_5, ~m? +# 1862| r1862_7(int) = CopyValue : r1862_6 +# 1862| v1862_8(void) = Switch : r1862_7 #-----| Default -> Block 6 -# 1816| Block 6 -# 1816| v1816_1(void) = NoOp : -# 1817| r1817_1(glval<int>) = VariableAddress[z2] : -# 1817| r1817_2(int) = Load[z2] : &:r1817_1, ~m? -# 1817| r1817_3(glval<int>) = VariableAddress[x] : -# 1817| r1817_4(int) = Load[x] : &:r1817_3, ~m? -# 1817| r1817_5(int) = Add : r1817_4, r1817_2 -# 1817| mu1817_6(int) = Store[x] : &:r1817_3, r1817_5 -# 1819| v1819_1(void) = NoOp : -# 1787| v1787_6(void) = ReturnVoid : -# 1787| v1787_7(void) = AliasedUse : ~m? -# 1787| v1787_8(void) = ExitFunction : +# 1863| Block 6 +# 1863| v1863_1(void) = NoOp : +# 1864| r1864_1(glval<int>) = VariableAddress[z2] : +# 1864| r1864_2(int) = Load[z2] : &:r1864_1, ~m? +# 1864| r1864_3(glval<int>) = VariableAddress[x] : +# 1864| r1864_4(int) = Load[x] : &:r1864_3, ~m? +# 1864| r1864_5(int) = Add : r1864_4, r1864_2 +# 1864| mu1864_6(int) = Store[x] : &:r1864_3, r1864_5 +# 1866| v1866_1(void) = NoOp : +# 1834| v1834_6(void) = ReturnVoid : +# 1834| v1834_7(void) = AliasedUse : ~m? +# 1834| v1834_8(void) = ExitFunction : -# 1823| int global_2 -# 1823| Block 0 -# 1823| v1823_1(void) = EnterFunction : -# 1823| mu1823_2(unknown) = AliasedDefinition : -# 1823| r1823_3(glval<int>) = VariableAddress[global_2] : -# 1823| r1823_4(int) = Constant[1] : -# 1823| mu1823_5(int) = Store[global_2] : &:r1823_3, r1823_4 -# 1823| v1823_6(void) = ReturnVoid : -# 1823| v1823_7(void) = AliasedUse : ~m? -# 1823| v1823_8(void) = ExitFunction : +# 1870| int global_2 +# 1870| Block 0 +# 1870| v1870_1(void) = EnterFunction : +# 1870| mu1870_2(unknown) = AliasedDefinition : +# 1870| r1870_3(glval<int>) = VariableAddress[global_2] : +# 1870| r1870_4(int) = Constant[1] : +# 1870| mu1870_5(int) = Store[global_2] : &:r1870_3, r1870_4 +# 1870| v1870_6(void) = ReturnVoid : +# 1870| v1870_7(void) = AliasedUse : ~m? +# 1870| v1870_8(void) = ExitFunction : -# 1827| constructor_only global_4 -# 1827| Block 0 -# 1827| v1827_1(void) = EnterFunction : -# 1827| mu1827_2(unknown) = AliasedDefinition : -# 1827| r1827_3(glval<constructor_only>) = VariableAddress[global_4] : -# 1827| r1827_4(glval<unknown>) = FunctionAddress[constructor_only] : -# 1827| r1827_5(int) = Constant[1] : -# 1827| v1827_6(void) = Call[constructor_only] : func:r1827_4, this:r1827_3, 0:r1827_5 -# 1827| mu1827_7(unknown) = ^CallSideEffect : ~m? -# 1827| mu1827_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1827_3 -# 1827| v1827_9(void) = ReturnVoid : -# 1827| v1827_10(void) = AliasedUse : ~m? -# 1827| v1827_11(void) = ExitFunction : +# 1874| constructor_only global_4 +# 1874| Block 0 +# 1874| v1874_1(void) = EnterFunction : +# 1874| mu1874_2(unknown) = AliasedDefinition : +# 1874| r1874_3(glval<constructor_only>) = VariableAddress[global_4] : +# 1874| r1874_4(glval<unknown>) = FunctionAddress[constructor_only] : +# 1874| r1874_5(int) = Constant[1] : +# 1874| v1874_6(void) = Call[constructor_only] : func:r1874_4, this:r1874_3, 0:r1874_5 +# 1874| mu1874_7(unknown) = ^CallSideEffect : ~m? +# 1874| mu1874_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1874_3 +# 1874| v1874_9(void) = ReturnVoid : +# 1874| v1874_10(void) = AliasedUse : ~m? +# 1874| v1874_11(void) = ExitFunction : -# 1829| constructor_only global_5 -# 1829| Block 0 -# 1829| v1829_1(void) = EnterFunction : -# 1829| mu1829_2(unknown) = AliasedDefinition : -# 1829| r1829_3(glval<constructor_only>) = VariableAddress[global_5] : -# 1829| r1829_4(glval<unknown>) = FunctionAddress[constructor_only] : -# 1829| r1829_5(int) = Constant[2] : -# 1829| v1829_6(void) = Call[constructor_only] : func:r1829_4, this:r1829_3, 0:r1829_5 -# 1829| mu1829_7(unknown) = ^CallSideEffect : ~m? -# 1829| mu1829_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1829_3 -# 1829| v1829_9(void) = ReturnVoid : -# 1829| v1829_10(void) = AliasedUse : ~m? -# 1829| v1829_11(void) = ExitFunction : +# 1876| constructor_only global_5 +# 1876| Block 0 +# 1876| v1876_1(void) = EnterFunction : +# 1876| mu1876_2(unknown) = AliasedDefinition : +# 1876| r1876_3(glval<constructor_only>) = VariableAddress[global_5] : +# 1876| r1876_4(glval<unknown>) = FunctionAddress[constructor_only] : +# 1876| r1876_5(int) = Constant[2] : +# 1876| v1876_6(void) = Call[constructor_only] : func:r1876_4, this:r1876_3, 0:r1876_5 +# 1876| mu1876_7(unknown) = ^CallSideEffect : ~m? +# 1876| mu1876_8(constructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1876_3 +# 1876| v1876_9(void) = ReturnVoid : +# 1876| v1876_10(void) = AliasedUse : ~m? +# 1876| v1876_11(void) = ExitFunction : -# 1831| char* global_string -# 1831| Block 0 -# 1831| v1831_1(void) = EnterFunction : -# 1831| mu1831_2(unknown) = AliasedDefinition : -# 1831| r1831_3(glval<char *>) = VariableAddress[global_string] : -# 1831| r1831_4(glval<char[14]>) = StringConstant["global string"] : -# 1831| r1831_5(char *) = Convert : r1831_4 -# 1831| r1831_6(char *) = Convert : r1831_5 -# 1831| mu1831_7(char *) = Store[global_string] : &:r1831_3, r1831_6 -# 1831| v1831_8(void) = ReturnVoid : -# 1831| v1831_9(void) = AliasedUse : ~m? -# 1831| v1831_10(void) = ExitFunction : +# 1878| char* global_string +# 1878| Block 0 +# 1878| v1878_1(void) = EnterFunction : +# 1878| mu1878_2(unknown) = AliasedDefinition : +# 1878| r1878_3(glval<char *>) = VariableAddress[global_string] : +# 1878| r1878_4(glval<char[14]>) = StringConstant["global string"] : +# 1878| r1878_5(char *) = Convert : r1878_4 +# 1878| r1878_6(char *) = Convert : r1878_5 +# 1878| mu1878_7(char *) = Store[global_string] : &:r1878_3, r1878_6 +# 1878| v1878_8(void) = ReturnVoid : +# 1878| v1878_9(void) = AliasedUse : ~m? +# 1878| v1878_10(void) = ExitFunction : -# 1833| int global_6 -# 1833| Block 0 -# 1833| v1833_1(void) = EnterFunction : -# 1833| mu1833_2(unknown) = AliasedDefinition : -# 1833| r1833_3(glval<int>) = VariableAddress[global_6] : -# 1833| r1833_4(glval<int>) = VariableAddress[global_2] : -# 1833| r1833_5(int) = Load[global_2] : &:r1833_4, ~m? -# 1833| mu1833_6(int) = Store[global_6] : &:r1833_3, r1833_5 -# 1833| v1833_7(void) = ReturnVoid : -# 1833| v1833_8(void) = AliasedUse : ~m? -# 1833| v1833_9(void) = ExitFunction : +# 1880| int global_6 +# 1880| Block 0 +# 1880| v1880_1(void) = EnterFunction : +# 1880| mu1880_2(unknown) = AliasedDefinition : +# 1880| r1880_3(glval<int>) = VariableAddress[global_6] : +# 1880| r1880_4(glval<int>) = VariableAddress[global_2] : +# 1880| r1880_5(int) = Load[global_2] : &:r1880_4, ~m? +# 1880| mu1880_6(int) = Store[global_6] : &:r1880_3, r1880_5 +# 1880| v1880_7(void) = ReturnVoid : +# 1880| v1880_8(void) = AliasedUse : ~m? +# 1880| v1880_9(void) = ExitFunction : -# 1836| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) -# 1836| Block 0 -# 1836| v1836_1(void) = EnterFunction : -# 1836| mu1836_2(unknown) = AliasedDefinition : -# 1836| mu1836_3(unknown) = InitializeNonLocal : -# 1836| r1836_4(glval<unknown>) = VariableAddress[#this] : -# 1836| mu1836_5(glval<A>) = InitializeParameter[#this] : &:r1836_4 -# 1836| r1836_6(glval<A>) = Load[#this] : &:r1836_4, ~m? -# 1836| mu1836_7(A) = InitializeIndirection[#this] : &:r1836_6 +# 1883| block_assignment::A& block_assignment::A::operator=(block_assignment::A&&) +# 1883| Block 0 +# 1883| v1883_1(void) = EnterFunction : +# 1883| mu1883_2(unknown) = AliasedDefinition : +# 1883| mu1883_3(unknown) = InitializeNonLocal : +# 1883| r1883_4(glval<unknown>) = VariableAddress[#this] : +# 1883| mu1883_5(glval<A>) = InitializeParameter[#this] : &:r1883_4 +# 1883| r1883_6(glval<A>) = Load[#this] : &:r1883_4, ~m? +# 1883| mu1883_7(A) = InitializeIndirection[#this] : &:r1883_6 #-----| r0_1(glval<A &&>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(A &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(A &&) = Load[(unnamed parameter 0)] : &:r0_1, ~m? @@ -10555,896 +10573,896 @@ ir.cpp: #-----| r0_17(glval<A>) = CopyValue : r0_16 #-----| r0_18(A &) = CopyValue : r0_17 #-----| mu0_19(A &) = Store[#return] : &:r0_14, r0_18 -# 1836| v1836_8(void) = ReturnIndirection[#this] : &:r1836_6, ~m? +# 1883| v1883_8(void) = ReturnIndirection[#this] : &:r1883_6, ~m? #-----| v0_20(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1836| r1836_9(glval<A &>) = VariableAddress[#return] : -# 1836| v1836_10(void) = ReturnValue : &:r1836_9, ~m? -# 1836| v1836_11(void) = AliasedUse : ~m? -# 1836| v1836_12(void) = ExitFunction : +# 1883| r1883_9(glval<A &>) = VariableAddress[#return] : +# 1883| v1883_10(void) = ReturnValue : &:r1883_9, ~m? +# 1883| v1883_11(void) = AliasedUse : ~m? +# 1883| v1883_12(void) = ExitFunction : -# 1841| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) -# 1841| Block 0 -# 1841| v1841_1(void) = EnterFunction : -# 1841| mu1841_2(unknown) = AliasedDefinition : -# 1841| mu1841_3(unknown) = InitializeNonLocal : -# 1841| r1841_4(glval<unknown>) = VariableAddress[#this] : -# 1841| mu1841_5(glval<B>) = InitializeParameter[#this] : &:r1841_4 -# 1841| r1841_6(glval<B>) = Load[#this] : &:r1841_4, ~m? -# 1841| mu1841_7(B) = InitializeIndirection[#this] : &:r1841_6 +# 1888| block_assignment::B& block_assignment::B::operator=(block_assignment::B&&) +# 1888| Block 0 +# 1888| v1888_1(void) = EnterFunction : +# 1888| mu1888_2(unknown) = AliasedDefinition : +# 1888| mu1888_3(unknown) = InitializeNonLocal : +# 1888| r1888_4(glval<unknown>) = VariableAddress[#this] : +# 1888| mu1888_5(glval<B>) = InitializeParameter[#this] : &:r1888_4 +# 1888| r1888_6(glval<B>) = Load[#this] : &:r1888_4, ~m? +# 1888| mu1888_7(B) = InitializeIndirection[#this] : &:r1888_6 #-----| r0_1(glval<B &&>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(B &&) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(B &&) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 1841| r1841_8(glval<unknown>) = VariableAddress[#this] : -# 1841| r1841_9(B *) = Load[#this] : &:r1841_8, ~m? -#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1841_9 -# 1841| r1841_10(glval<unknown>) = FunctionAddress[operator=] : -# 1841| r1841_11(glval<B &&>) = VariableAddress[(unnamed parameter 0)] : -# 1841| r1841_12(B &&) = Load[(unnamed parameter 0)] : &:r1841_11, ~m? -#-----| r0_6(glval<B>) = CopyValue : r1841_12 -# 1841| r1841_13(B *) = CopyValue : r0_6 -#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1841_13 -# 1841| r1841_14(glval<A>) = CopyValue : r0_7 -#-----| r0_8(A &) = CopyValue : r1841_14 -# 1841| r1841_15(A &) = Call[operator=] : func:r1841_10, this:r0_5, 0:r0_8 -# 1841| mu1841_16(unknown) = ^CallSideEffect : ~m? +# 1888| r1888_8(glval<unknown>) = VariableAddress[#this] : +# 1888| r1888_9(B *) = Load[#this] : &:r1888_8, ~m? +#-----| r0_5(A *) = ConvertToNonVirtualBase[B : A] : r1888_9 +# 1888| r1888_10(glval<unknown>) = FunctionAddress[operator=] : +# 1888| r1888_11(glval<B &&>) = VariableAddress[(unnamed parameter 0)] : +# 1888| r1888_12(B &&) = Load[(unnamed parameter 0)] : &:r1888_11, ~m? +#-----| r0_6(glval<B>) = CopyValue : r1888_12 +# 1888| r1888_13(B *) = CopyValue : r0_6 +#-----| r0_7(A *) = ConvertToNonVirtualBase[B : A] : r1888_13 +# 1888| r1888_14(glval<A>) = CopyValue : r0_7 +#-----| r0_8(A &) = CopyValue : r1888_14 +# 1888| r1888_15(A &) = Call[operator=] : func:r1888_10, this:r0_5, 0:r0_8 +# 1888| mu1888_16(unknown) = ^CallSideEffect : ~m? #-----| v0_9(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? #-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_8, ~m? #-----| mu0_11(A) = ^IndirectMayWriteSideEffect[-1] : &:r0_5 #-----| mu0_12(unknown) = ^BufferMayWriteSideEffect[0] : &:r0_8 -#-----| r0_13(glval<A>) = CopyValue : r1841_15 +#-----| r0_13(glval<A>) = CopyValue : r1888_15 #-----| r0_14(glval<B &>) = VariableAddress[#return] : #-----| r0_15(glval<unknown>) = VariableAddress[#this] : #-----| r0_16(B *) = Load[#this] : &:r0_15, ~m? #-----| r0_17(glval<B>) = CopyValue : r0_16 #-----| r0_18(B &) = CopyValue : r0_17 #-----| mu0_19(B &) = Store[#return] : &:r0_14, r0_18 -# 1841| v1841_17(void) = ReturnIndirection[#this] : &:r1841_6, ~m? +# 1888| v1888_17(void) = ReturnIndirection[#this] : &:r1888_6, ~m? #-----| v0_20(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 1841| r1841_18(glval<B &>) = VariableAddress[#return] : -# 1841| v1841_19(void) = ReturnValue : &:r1841_18, ~m? -# 1841| v1841_20(void) = AliasedUse : ~m? -# 1841| v1841_21(void) = ExitFunction : +# 1888| r1888_18(glval<B &>) = VariableAddress[#return] : +# 1888| v1888_19(void) = ReturnValue : &:r1888_18, ~m? +# 1888| v1888_20(void) = AliasedUse : ~m? +# 1888| v1888_21(void) = ExitFunction : -# 1845| void block_assignment::foo() -# 1845| Block 0 -# 1845| v1845_1(void) = EnterFunction : -# 1845| mu1845_2(unknown) = AliasedDefinition : -# 1845| mu1845_3(unknown) = InitializeNonLocal : -# 1846| r1846_1(glval<B>) = VariableAddress[v] : -# 1846| mu1846_2(B) = Uninitialized[v] : &:r1846_1 -# 1846| r1846_3(glval<unknown>) = FunctionAddress[B] : -# 1846| r1846_4(A *) = Constant[0] : -# 1846| v1846_5(void) = Call[B] : func:r1846_3, this:r1846_1, 0:r1846_4 -# 1846| mu1846_6(unknown) = ^CallSideEffect : ~m? -# 1846| v1846_7(void) = ^BufferReadSideEffect[0] : &:r1846_4, ~m? -# 1846| mu1846_8(B) = ^IndirectMayWriteSideEffect[-1] : &:r1846_1 -# 1846| mu1846_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1846_4 -# 1847| r1847_1(glval<B>) = VariableAddress[v] : -# 1847| r1847_2(glval<unknown>) = FunctionAddress[operator=] : -# 1847| r1847_3(glval<B>) = VariableAddress[#temp1847:13] : -# 1847| mu1847_4(B) = Uninitialized[#temp1847:13] : &:r1847_3 -# 1847| r1847_5(glval<unknown>) = FunctionAddress[B] : -# 1847| r1847_6(A *) = Constant[0] : -# 1847| v1847_7(void) = Call[B] : func:r1847_5, this:r1847_3, 0:r1847_6 -# 1847| mu1847_8(unknown) = ^CallSideEffect : ~m? -# 1847| v1847_9(void) = ^BufferReadSideEffect[0] : &:r1847_6, ~m? -# 1847| mu1847_10(B) = ^IndirectMayWriteSideEffect[-1] : &:r1847_3 -# 1847| mu1847_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1847_6 -# 1847| r1847_12(B &) = CopyValue : r1847_3 -# 1847| r1847_13(B &) = Call[operator=] : func:r1847_2, this:r1847_1, 0:r1847_12 -# 1847| mu1847_14(unknown) = ^CallSideEffect : ~m? -# 1847| v1847_15(void) = ^IndirectReadSideEffect[-1] : &:r1847_1, ~m? -# 1847| v1847_16(void) = ^BufferReadSideEffect[0] : &:r1847_12, ~m? -# 1847| mu1847_17(B) = ^IndirectMayWriteSideEffect[-1] : &:r1847_1 -# 1847| mu1847_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r1847_12 -# 1847| r1847_19(glval<B>) = CopyValue : r1847_13 -# 1848| v1848_1(void) = NoOp : -# 1845| v1845_4(void) = ReturnVoid : -# 1845| v1845_5(void) = AliasedUse : ~m? -# 1845| v1845_6(void) = ExitFunction : +# 1892| void block_assignment::foo() +# 1892| Block 0 +# 1892| v1892_1(void) = EnterFunction : +# 1892| mu1892_2(unknown) = AliasedDefinition : +# 1892| mu1892_3(unknown) = InitializeNonLocal : +# 1893| r1893_1(glval<B>) = VariableAddress[v] : +# 1893| mu1893_2(B) = Uninitialized[v] : &:r1893_1 +# 1893| r1893_3(glval<unknown>) = FunctionAddress[B] : +# 1893| r1893_4(A *) = Constant[0] : +# 1893| v1893_5(void) = Call[B] : func:r1893_3, this:r1893_1, 0:r1893_4 +# 1893| mu1893_6(unknown) = ^CallSideEffect : ~m? +# 1893| v1893_7(void) = ^BufferReadSideEffect[0] : &:r1893_4, ~m? +# 1893| mu1893_8(B) = ^IndirectMayWriteSideEffect[-1] : &:r1893_1 +# 1893| mu1893_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1893_4 +# 1894| r1894_1(glval<B>) = VariableAddress[v] : +# 1894| r1894_2(glval<unknown>) = FunctionAddress[operator=] : +# 1894| r1894_3(glval<B>) = VariableAddress[#temp1894:13] : +# 1894| mu1894_4(B) = Uninitialized[#temp1894:13] : &:r1894_3 +# 1894| r1894_5(glval<unknown>) = FunctionAddress[B] : +# 1894| r1894_6(A *) = Constant[0] : +# 1894| v1894_7(void) = Call[B] : func:r1894_5, this:r1894_3, 0:r1894_6 +# 1894| mu1894_8(unknown) = ^CallSideEffect : ~m? +# 1894| v1894_9(void) = ^BufferReadSideEffect[0] : &:r1894_6, ~m? +# 1894| mu1894_10(B) = ^IndirectMayWriteSideEffect[-1] : &:r1894_3 +# 1894| mu1894_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1894_6 +# 1894| r1894_12(B &) = CopyValue : r1894_3 +# 1894| r1894_13(B &) = Call[operator=] : func:r1894_2, this:r1894_1, 0:r1894_12 +# 1894| mu1894_14(unknown) = ^CallSideEffect : ~m? +# 1894| v1894_15(void) = ^IndirectReadSideEffect[-1] : &:r1894_1, ~m? +# 1894| v1894_16(void) = ^BufferReadSideEffect[0] : &:r1894_12, ~m? +# 1894| mu1894_17(B) = ^IndirectMayWriteSideEffect[-1] : &:r1894_1 +# 1894| mu1894_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r1894_12 +# 1894| r1894_19(glval<B>) = CopyValue : r1894_13 +# 1895| v1895_1(void) = NoOp : +# 1892| v1892_4(void) = ReturnVoid : +# 1892| v1892_5(void) = AliasedUse : ~m? +# 1892| v1892_6(void) = ExitFunction : -# 1851| void magicvars() -# 1851| Block 0 -# 1851| v1851_1(void) = EnterFunction : -# 1851| mu1851_2(unknown) = AliasedDefinition : -# 1851| mu1851_3(unknown) = InitializeNonLocal : -# 1852| r1852_1(glval<char *>) = VariableAddress[pf] : -# 1852| r1852_2(glval<char[17]>) = VariableAddress[__PRETTY_FUNCTION__] : -# 1852| r1852_3(char *) = Convert : r1852_2 -# 1852| mu1852_4(char *) = Store[pf] : &:r1852_1, r1852_3 -# 1853| r1853_1(glval<char *>) = VariableAddress[strfunc] : -# 1853| r1853_2(glval<char[10]>) = VariableAddress[__func__] : -# 1853| r1853_3(char *) = Convert : r1853_2 -# 1853| mu1853_4(char *) = Store[strfunc] : &:r1853_1, r1853_3 -# 1854| v1854_1(void) = NoOp : -# 1851| v1851_4(void) = ReturnVoid : -# 1851| v1851_5(void) = AliasedUse : ~m? -# 1851| v1851_6(void) = ExitFunction : +# 1898| void magicvars() +# 1898| Block 0 +# 1898| v1898_1(void) = EnterFunction : +# 1898| mu1898_2(unknown) = AliasedDefinition : +# 1898| mu1898_3(unknown) = InitializeNonLocal : +# 1899| r1899_1(glval<char *>) = VariableAddress[pf] : +# 1899| r1899_2(glval<char[17]>) = VariableAddress[__PRETTY_FUNCTION__] : +# 1899| r1899_3(char *) = Convert : r1899_2 +# 1899| mu1899_4(char *) = Store[pf] : &:r1899_1, r1899_3 +# 1900| r1900_1(glval<char *>) = VariableAddress[strfunc] : +# 1900| r1900_2(glval<char[10]>) = VariableAddress[__func__] : +# 1900| r1900_3(char *) = Convert : r1900_2 +# 1900| mu1900_4(char *) = Store[strfunc] : &:r1900_1, r1900_3 +# 1901| v1901_1(void) = NoOp : +# 1898| v1898_4(void) = ReturnVoid : +# 1898| v1898_5(void) = AliasedUse : ~m? +# 1898| v1898_6(void) = ExitFunction : -# 1864| void* missing_declaration_entries::Bar1<int>::missing_type_decl_entry(missing_declaration_entries::Bar1<int>::pointer) -# 1864| Block 0 -# 1864| v1864_1(void) = EnterFunction : -# 1864| mu1864_2(unknown) = AliasedDefinition : -# 1864| mu1864_3(unknown) = InitializeNonLocal : -# 1864| r1864_4(glval<unknown>) = VariableAddress[#this] : -# 1864| mu1864_5(glval<Bar1<int>>) = InitializeParameter[#this] : &:r1864_4 -# 1864| r1864_6(glval<Bar1<int>>) = Load[#this] : &:r1864_4, ~m? -# 1864| mu1864_7(Bar1<int>) = InitializeIndirection[#this] : &:r1864_6 -# 1864| r1864_8(glval<S *>) = VariableAddress[p] : -# 1864| mu1864_9(S *) = InitializeParameter[p] : &:r1864_8 -# 1864| r1864_10(S *) = Load[p] : &:r1864_8, ~m? -# 1864| mu1864_11(unknown) = InitializeIndirection[p] : &:r1864_10 -# 1866| r1866_1(glval<void *>) = VariableAddress[#return] : -# 1866| r1866_2(glval<S *>) = VariableAddress[p] : -# 1866| r1866_3(S *) = Load[p] : &:r1866_2, ~m? -# 1866| r1866_4(void *) = Convert : r1866_3 -# 1866| mu1866_5(void *) = Store[#return] : &:r1866_1, r1866_4 -# 1864| v1864_12(void) = ReturnIndirection[#this] : &:r1864_6, ~m? -# 1864| v1864_13(void) = ReturnIndirection[p] : &:r1864_10, ~m? -# 1864| r1864_14(glval<void *>) = VariableAddress[#return] : -# 1864| v1864_15(void) = ReturnValue : &:r1864_14, ~m? -# 1864| v1864_16(void) = AliasedUse : ~m? -# 1864| v1864_17(void) = ExitFunction : +# 1911| void* missing_declaration_entries::Bar1<int>::missing_type_decl_entry(missing_declaration_entries::Bar1<int>::pointer) +# 1911| Block 0 +# 1911| v1911_1(void) = EnterFunction : +# 1911| mu1911_2(unknown) = AliasedDefinition : +# 1911| mu1911_3(unknown) = InitializeNonLocal : +# 1911| r1911_4(glval<unknown>) = VariableAddress[#this] : +# 1911| mu1911_5(glval<Bar1<int>>) = InitializeParameter[#this] : &:r1911_4 +# 1911| r1911_6(glval<Bar1<int>>) = Load[#this] : &:r1911_4, ~m? +# 1911| mu1911_7(Bar1<int>) = InitializeIndirection[#this] : &:r1911_6 +# 1911| r1911_8(glval<S *>) = VariableAddress[p] : +# 1911| mu1911_9(S *) = InitializeParameter[p] : &:r1911_8 +# 1911| r1911_10(S *) = Load[p] : &:r1911_8, ~m? +# 1911| mu1911_11(unknown) = InitializeIndirection[p] : &:r1911_10 +# 1913| r1913_1(glval<void *>) = VariableAddress[#return] : +# 1913| r1913_2(glval<S *>) = VariableAddress[p] : +# 1913| r1913_3(S *) = Load[p] : &:r1913_2, ~m? +# 1913| r1913_4(void *) = Convert : r1913_3 +# 1913| mu1913_5(void *) = Store[#return] : &:r1913_1, r1913_4 +# 1911| v1911_12(void) = ReturnIndirection[#this] : &:r1911_6, ~m? +# 1911| v1911_13(void) = ReturnIndirection[p] : &:r1911_10, ~m? +# 1911| r1911_14(glval<void *>) = VariableAddress[#return] : +# 1911| v1911_15(void) = ReturnValue : &:r1911_14, ~m? +# 1911| v1911_16(void) = AliasedUse : ~m? +# 1911| v1911_17(void) = ExitFunction : -# 1870| void missing_declaration_entries::test1() -# 1870| Block 0 -# 1870| v1870_1(void) = EnterFunction : -# 1870| mu1870_2(unknown) = AliasedDefinition : -# 1870| mu1870_3(unknown) = InitializeNonLocal : -# 1871| r1871_1(glval<Bar1<int>>) = VariableAddress[b] : -# 1871| mu1871_2(Bar1<int>) = Uninitialized[b] : &:r1871_1 -# 1872| r1872_1(glval<Bar1<int>>) = VariableAddress[b] : -# 1872| r1872_2(glval<unknown>) = FunctionAddress[missing_type_decl_entry] : -# 1872| r1872_3(S *) = Constant[0] : -# 1872| r1872_4(void *) = Call[missing_type_decl_entry] : func:r1872_2, this:r1872_1, 0:r1872_3 -# 1872| mu1872_5(unknown) = ^CallSideEffect : ~m? -# 1872| v1872_6(void) = ^IndirectReadSideEffect[-1] : &:r1872_1, ~m? -# 1872| v1872_7(void) = ^BufferReadSideEffect[0] : &:r1872_3, ~m? -# 1872| mu1872_8(Bar1<int>) = ^IndirectMayWriteSideEffect[-1] : &:r1872_1 -# 1872| mu1872_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1872_3 -# 1873| v1873_1(void) = NoOp : -# 1870| v1870_4(void) = ReturnVoid : -# 1870| v1870_5(void) = AliasedUse : ~m? -# 1870| v1870_6(void) = ExitFunction : +# 1917| void missing_declaration_entries::test1() +# 1917| Block 0 +# 1917| v1917_1(void) = EnterFunction : +# 1917| mu1917_2(unknown) = AliasedDefinition : +# 1917| mu1917_3(unknown) = InitializeNonLocal : +# 1918| r1918_1(glval<Bar1<int>>) = VariableAddress[b] : +# 1918| mu1918_2(Bar1<int>) = Uninitialized[b] : &:r1918_1 +# 1919| r1919_1(glval<Bar1<int>>) = VariableAddress[b] : +# 1919| r1919_2(glval<unknown>) = FunctionAddress[missing_type_decl_entry] : +# 1919| r1919_3(S *) = Constant[0] : +# 1919| r1919_4(void *) = Call[missing_type_decl_entry] : func:r1919_2, this:r1919_1, 0:r1919_3 +# 1919| mu1919_5(unknown) = ^CallSideEffect : ~m? +# 1919| v1919_6(void) = ^IndirectReadSideEffect[-1] : &:r1919_1, ~m? +# 1919| v1919_7(void) = ^BufferReadSideEffect[0] : &:r1919_3, ~m? +# 1919| mu1919_8(Bar1<int>) = ^IndirectMayWriteSideEffect[-1] : &:r1919_1 +# 1919| mu1919_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1919_3 +# 1920| v1920_1(void) = NoOp : +# 1917| v1917_4(void) = ReturnVoid : +# 1917| v1917_5(void) = AliasedUse : ~m? +# 1917| v1917_6(void) = ExitFunction : -# 1877| int missing_declaration_entries::Bar2<int>::two_missing_variable_declaration_entries() -# 1877| Block 0 -# 1877| v1877_1(void) = EnterFunction : -# 1877| mu1877_2(unknown) = AliasedDefinition : -# 1877| mu1877_3(unknown) = InitializeNonLocal : -# 1877| r1877_4(glval<unknown>) = VariableAddress[#this] : -# 1877| mu1877_5(glval<Bar2<int>>) = InitializeParameter[#this] : &:r1877_4 -# 1877| r1877_6(glval<Bar2<int>>) = Load[#this] : &:r1877_4, ~m? -# 1877| mu1877_7(Bar2<int>) = InitializeIndirection[#this] : &:r1877_6 -# 1878| r1878_1(glval<int[10]>) = VariableAddress[x] : -# 1878| mu1878_2(int[10]) = Uninitialized[x] : &:r1878_1 -# 1878| r1878_3(glval<int[10]>) = VariableAddress[y] : -# 1878| mu1878_4(int[10]) = Uninitialized[y] : &:r1878_3 -# 1879| r1879_1(int) = Constant[10] : -# 1879| r1879_2(glval<int[10]>) = VariableAddress[x] : -# 1879| r1879_3(int *) = Convert : r1879_2 -# 1879| r1879_4(glval<int>) = CopyValue : r1879_3 -# 1879| mu1879_5(int) = Store[?] : &:r1879_4, r1879_1 -# 1880| r1880_1(int) = Constant[10] : -# 1880| r1880_2(glval<int[10]>) = VariableAddress[y] : -# 1880| r1880_3(int *) = Convert : r1880_2 -# 1880| r1880_4(glval<int>) = CopyValue : r1880_3 -# 1880| mu1880_5(int) = Store[?] : &:r1880_4, r1880_1 -# 1881| r1881_1(glval<int>) = VariableAddress[#return] : -# 1881| r1881_2(glval<int[10]>) = VariableAddress[x] : -# 1881| r1881_3(int *) = Convert : r1881_2 -# 1881| r1881_4(int) = Load[?] : &:r1881_3, ~m? -# 1881| r1881_5(glval<int[10]>) = VariableAddress[y] : -# 1881| r1881_6(int *) = Convert : r1881_5 -# 1881| r1881_7(int) = Load[?] : &:r1881_6, ~m? -# 1881| r1881_8(int) = Add : r1881_4, r1881_7 -# 1881| mu1881_9(int) = Store[#return] : &:r1881_1, r1881_8 -# 1877| v1877_8(void) = ReturnIndirection[#this] : &:r1877_6, ~m? -# 1877| r1877_9(glval<int>) = VariableAddress[#return] : -# 1877| v1877_10(void) = ReturnValue : &:r1877_9, ~m? -# 1877| v1877_11(void) = AliasedUse : ~m? -# 1877| v1877_12(void) = ExitFunction : +# 1924| int missing_declaration_entries::Bar2<int>::two_missing_variable_declaration_entries() +# 1924| Block 0 +# 1924| v1924_1(void) = EnterFunction : +# 1924| mu1924_2(unknown) = AliasedDefinition : +# 1924| mu1924_3(unknown) = InitializeNonLocal : +# 1924| r1924_4(glval<unknown>) = VariableAddress[#this] : +# 1924| mu1924_5(glval<Bar2<int>>) = InitializeParameter[#this] : &:r1924_4 +# 1924| r1924_6(glval<Bar2<int>>) = Load[#this] : &:r1924_4, ~m? +# 1924| mu1924_7(Bar2<int>) = InitializeIndirection[#this] : &:r1924_6 +# 1925| r1925_1(glval<int[10]>) = VariableAddress[x] : +# 1925| mu1925_2(int[10]) = Uninitialized[x] : &:r1925_1 +# 1925| r1925_3(glval<int[10]>) = VariableAddress[y] : +# 1925| mu1925_4(int[10]) = Uninitialized[y] : &:r1925_3 +# 1926| r1926_1(int) = Constant[10] : +# 1926| r1926_2(glval<int[10]>) = VariableAddress[x] : +# 1926| r1926_3(int *) = Convert : r1926_2 +# 1926| r1926_4(glval<int>) = CopyValue : r1926_3 +# 1926| mu1926_5(int) = Store[?] : &:r1926_4, r1926_1 +# 1927| r1927_1(int) = Constant[10] : +# 1927| r1927_2(glval<int[10]>) = VariableAddress[y] : +# 1927| r1927_3(int *) = Convert : r1927_2 +# 1927| r1927_4(glval<int>) = CopyValue : r1927_3 +# 1927| mu1927_5(int) = Store[?] : &:r1927_4, r1927_1 +# 1928| r1928_1(glval<int>) = VariableAddress[#return] : +# 1928| r1928_2(glval<int[10]>) = VariableAddress[x] : +# 1928| r1928_3(int *) = Convert : r1928_2 +# 1928| r1928_4(int) = Load[?] : &:r1928_3, ~m? +# 1928| r1928_5(glval<int[10]>) = VariableAddress[y] : +# 1928| r1928_6(int *) = Convert : r1928_5 +# 1928| r1928_7(int) = Load[?] : &:r1928_6, ~m? +# 1928| r1928_8(int) = Add : r1928_4, r1928_7 +# 1928| mu1928_9(int) = Store[#return] : &:r1928_1, r1928_8 +# 1924| v1924_8(void) = ReturnIndirection[#this] : &:r1924_6, ~m? +# 1924| r1924_9(glval<int>) = VariableAddress[#return] : +# 1924| v1924_10(void) = ReturnValue : &:r1924_9, ~m? +# 1924| v1924_11(void) = AliasedUse : ~m? +# 1924| v1924_12(void) = ExitFunction : -# 1885| void missing_declaration_entries::test2() -# 1885| Block 0 -# 1885| v1885_1(void) = EnterFunction : -# 1885| mu1885_2(unknown) = AliasedDefinition : -# 1885| mu1885_3(unknown) = InitializeNonLocal : -# 1886| r1886_1(glval<Bar2<int>>) = VariableAddress[b] : -# 1886| mu1886_2(Bar2<int>) = Uninitialized[b] : &:r1886_1 -# 1887| r1887_1(glval<Bar2<int>>) = VariableAddress[b] : -# 1887| r1887_2(glval<unknown>) = FunctionAddress[two_missing_variable_declaration_entries] : -# 1887| r1887_3(int) = Call[two_missing_variable_declaration_entries] : func:r1887_2, this:r1887_1 -# 1887| mu1887_4(unknown) = ^CallSideEffect : ~m? -# 1887| v1887_5(void) = ^IndirectReadSideEffect[-1] : &:r1887_1, ~m? -# 1887| mu1887_6(Bar2<int>) = ^IndirectMayWriteSideEffect[-1] : &:r1887_1 -# 1888| v1888_1(void) = NoOp : -# 1885| v1885_4(void) = ReturnVoid : -# 1885| v1885_5(void) = AliasedUse : ~m? -# 1885| v1885_6(void) = ExitFunction : +# 1932| void missing_declaration_entries::test2() +# 1932| Block 0 +# 1932| v1932_1(void) = EnterFunction : +# 1932| mu1932_2(unknown) = AliasedDefinition : +# 1932| mu1932_3(unknown) = InitializeNonLocal : +# 1933| r1933_1(glval<Bar2<int>>) = VariableAddress[b] : +# 1933| mu1933_2(Bar2<int>) = Uninitialized[b] : &:r1933_1 +# 1934| r1934_1(glval<Bar2<int>>) = VariableAddress[b] : +# 1934| r1934_2(glval<unknown>) = FunctionAddress[two_missing_variable_declaration_entries] : +# 1934| r1934_3(int) = Call[two_missing_variable_declaration_entries] : func:r1934_2, this:r1934_1 +# 1934| mu1934_4(unknown) = ^CallSideEffect : ~m? +# 1934| v1934_5(void) = ^IndirectReadSideEffect[-1] : &:r1934_1, ~m? +# 1934| mu1934_6(Bar2<int>) = ^IndirectMayWriteSideEffect[-1] : &:r1934_1 +# 1935| v1935_1(void) = NoOp : +# 1932| v1932_4(void) = ReturnVoid : +# 1932| v1932_5(void) = AliasedUse : ~m? +# 1932| v1932_6(void) = ExitFunction : -# 1891| char global_template<char> -# 1891| Block 0 -# 1891| v1891_1(void) = EnterFunction : -# 1891| mu1891_2(unknown) = AliasedDefinition : -# 1891| r1891_3(glval<char>) = VariableAddress[global_template] : -# 1891| r1891_4(char) = Constant[42] : -# 1891| mu1891_5(char) = Store[global_template] : &:r1891_3, r1891_4 -# 1891| v1891_6(void) = ReturnVoid : -# 1891| v1891_7(void) = AliasedUse : ~m? -# 1891| v1891_8(void) = ExitFunction : +# 1938| char global_template<char> +# 1938| Block 0 +# 1938| v1938_1(void) = EnterFunction : +# 1938| mu1938_2(unknown) = AliasedDefinition : +# 1938| r1938_3(glval<char>) = VariableAddress[global_template] : +# 1938| r1938_4(char) = Constant[42] : +# 1938| mu1938_5(char) = Store[global_template] : &:r1938_3, r1938_4 +# 1938| v1938_6(void) = ReturnVoid : +# 1938| v1938_7(void) = AliasedUse : ~m? +# 1938| v1938_8(void) = ExitFunction : -# 1891| int global_template<int> -# 1891| Block 0 -# 1891| v1891_1(void) = EnterFunction : -# 1891| mu1891_2(unknown) = AliasedDefinition : -# 1891| r1891_3(glval<int>) = VariableAddress[global_template] : -# 1891| r1891_4(int) = Constant[42] : -# 1891| mu1891_5(int) = Store[global_template] : &:r1891_3, r1891_4 -# 1891| v1891_6(void) = ReturnVoid : -# 1891| v1891_7(void) = AliasedUse : ~m? -# 1891| v1891_8(void) = ExitFunction : +# 1938| int global_template<int> +# 1938| Block 0 +# 1938| v1938_1(void) = EnterFunction : +# 1938| mu1938_2(unknown) = AliasedDefinition : +# 1938| r1938_3(glval<int>) = VariableAddress[global_template] : +# 1938| r1938_4(int) = Constant[42] : +# 1938| mu1938_5(int) = Store[global_template] : &:r1938_3, r1938_4 +# 1938| v1938_6(void) = ReturnVoid : +# 1938| v1938_7(void) = AliasedUse : ~m? +# 1938| v1938_8(void) = ExitFunction : -# 1893| int test_global_template_int() -# 1893| Block 0 -# 1893| v1893_1(void) = EnterFunction : -# 1893| mu1893_2(unknown) = AliasedDefinition : -# 1893| mu1893_3(unknown) = InitializeNonLocal : -# 1894| r1894_1(glval<int>) = VariableAddress[local_int] : -# 1894| r1894_2(glval<int>) = VariableAddress[global_template] : -# 1894| r1894_3(int) = Load[global_template] : &:r1894_2, ~m? -# 1894| mu1894_4(int) = Store[local_int] : &:r1894_1, r1894_3 -# 1895| r1895_1(glval<char>) = VariableAddress[local_char] : -# 1895| r1895_2(glval<char>) = VariableAddress[global_template] : -# 1895| r1895_3(char) = Load[global_template] : &:r1895_2, ~m? -# 1895| mu1895_4(char) = Store[local_char] : &:r1895_1, r1895_3 -# 1896| r1896_1(glval<int>) = VariableAddress[#return] : -# 1896| r1896_2(glval<int>) = VariableAddress[local_int] : -# 1896| r1896_3(int) = Load[local_int] : &:r1896_2, ~m? -# 1896| r1896_4(glval<char>) = VariableAddress[local_char] : -# 1896| r1896_5(char) = Load[local_char] : &:r1896_4, ~m? -# 1896| r1896_6(int) = Convert : r1896_5 -# 1896| r1896_7(int) = Add : r1896_3, r1896_6 -# 1896| mu1896_8(int) = Store[#return] : &:r1896_1, r1896_7 -# 1893| r1893_4(glval<int>) = VariableAddress[#return] : -# 1893| v1893_5(void) = ReturnValue : &:r1893_4, ~m? -# 1893| v1893_6(void) = AliasedUse : ~m? -# 1893| v1893_7(void) = ExitFunction : +# 1940| int test_global_template_int() +# 1940| Block 0 +# 1940| v1940_1(void) = EnterFunction : +# 1940| mu1940_2(unknown) = AliasedDefinition : +# 1940| mu1940_3(unknown) = InitializeNonLocal : +# 1941| r1941_1(glval<int>) = VariableAddress[local_int] : +# 1941| r1941_2(glval<int>) = VariableAddress[global_template] : +# 1941| r1941_3(int) = Load[global_template] : &:r1941_2, ~m? +# 1941| mu1941_4(int) = Store[local_int] : &:r1941_1, r1941_3 +# 1942| r1942_1(glval<char>) = VariableAddress[local_char] : +# 1942| r1942_2(glval<char>) = VariableAddress[global_template] : +# 1942| r1942_3(char) = Load[global_template] : &:r1942_2, ~m? +# 1942| mu1942_4(char) = Store[local_char] : &:r1942_1, r1942_3 +# 1943| r1943_1(glval<int>) = VariableAddress[#return] : +# 1943| r1943_2(glval<int>) = VariableAddress[local_int] : +# 1943| r1943_3(int) = Load[local_int] : &:r1943_2, ~m? +# 1943| r1943_4(glval<char>) = VariableAddress[local_char] : +# 1943| r1943_5(char) = Load[local_char] : &:r1943_4, ~m? +# 1943| r1943_6(int) = Convert : r1943_5 +# 1943| r1943_7(int) = Add : r1943_3, r1943_6 +# 1943| mu1943_8(int) = Store[#return] : &:r1943_1, r1943_7 +# 1940| r1940_4(glval<int>) = VariableAddress[#return] : +# 1940| v1940_5(void) = ReturnValue : &:r1940_4, ~m? +# 1940| v1940_6(void) = AliasedUse : ~m? +# 1940| v1940_7(void) = ExitFunction : -# 1901| int noreturnTest(int) -# 1901| Block 0 -# 1901| v1901_1(void) = EnterFunction : -# 1901| mu1901_2(unknown) = AliasedDefinition : -# 1901| mu1901_3(unknown) = InitializeNonLocal : -# 1901| r1901_4(glval<int>) = VariableAddress[x] : -# 1901| mu1901_5(int) = InitializeParameter[x] : &:r1901_4 -# 1902| r1902_1(glval<int>) = VariableAddress[x] : -# 1902| r1902_2(int) = Load[x] : &:r1902_1, ~m? -# 1902| r1902_3(int) = Constant[10] : -# 1902| r1902_4(bool) = CompareLT : r1902_2, r1902_3 -# 1902| v1902_5(void) = ConditionalBranch : r1902_4 +# 1948| int noreturnTest(int) +# 1948| Block 0 +# 1948| v1948_1(void) = EnterFunction : +# 1948| mu1948_2(unknown) = AliasedDefinition : +# 1948| mu1948_3(unknown) = InitializeNonLocal : +# 1948| r1948_4(glval<int>) = VariableAddress[x] : +# 1948| mu1948_5(int) = InitializeParameter[x] : &:r1948_4 +# 1949| r1949_1(glval<int>) = VariableAddress[x] : +# 1949| r1949_2(int) = Load[x] : &:r1949_1, ~m? +# 1949| r1949_3(int) = Constant[10] : +# 1949| r1949_4(bool) = CompareLT : r1949_2, r1949_3 +# 1949| v1949_5(void) = ConditionalBranch : r1949_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 1901| Block 1 -# 1901| r1901_6(glval<int>) = VariableAddress[#return] : -# 1901| v1901_7(void) = ReturnValue : &:r1901_6, ~m? -# 1901| v1901_8(void) = AliasedUse : ~m? -# 1901| v1901_9(void) = ExitFunction : +# 1948| Block 1 +# 1948| r1948_6(glval<int>) = VariableAddress[#return] : +# 1948| v1948_7(void) = ReturnValue : &:r1948_6, ~m? +# 1948| v1948_8(void) = AliasedUse : ~m? +# 1948| v1948_9(void) = ExitFunction : -# 1903| Block 2 -# 1903| r1903_1(glval<int>) = VariableAddress[#return] : -# 1903| r1903_2(glval<int>) = VariableAddress[x] : -# 1903| r1903_3(int) = Load[x] : &:r1903_2, ~m? -# 1903| mu1903_4(int) = Store[#return] : &:r1903_1, r1903_3 +# 1950| Block 2 +# 1950| r1950_1(glval<int>) = VariableAddress[#return] : +# 1950| r1950_2(glval<int>) = VariableAddress[x] : +# 1950| r1950_3(int) = Load[x] : &:r1950_2, ~m? +# 1950| mu1950_4(int) = Store[#return] : &:r1950_1, r1950_3 #-----| Goto -> Block 1 -# 1905| Block 3 -# 1905| r1905_1(glval<unknown>) = FunctionAddress[noreturnFunc] : -# 1905| v1905_2(void) = Call[noreturnFunc] : func:r1905_1 -# 1905| mu1905_3(unknown) = ^CallSideEffect : ~m? -# 1901| v1901_10(void) = Unreached : +# 1952| Block 3 +# 1952| r1952_1(glval<unknown>) = FunctionAddress[noreturnFunc] : +# 1952| v1952_2(void) = Call[noreturnFunc] : func:r1952_1 +# 1952| mu1952_3(unknown) = ^CallSideEffect : ~m? +# 1948| v1948_10(void) = Unreached : -# 1907| Block 4 -# 1907| r1907_1(glval<int>) = VariableAddress[#return] : -# 1907| mu1907_2(int) = Uninitialized[#return] : &:r1907_1 +# 1954| Block 4 +# 1954| r1954_1(glval<int>) = VariableAddress[#return] : +# 1954| mu1954_2(int) = Uninitialized[#return] : &:r1954_1 #-----| Goto -> Block 1 -# 1909| int noreturnTest2(int) -# 1909| Block 0 -# 1909| v1909_1(void) = EnterFunction : -# 1909| mu1909_2(unknown) = AliasedDefinition : -# 1909| mu1909_3(unknown) = InitializeNonLocal : -# 1909| r1909_4(glval<int>) = VariableAddress[x] : -# 1909| mu1909_5(int) = InitializeParameter[x] : &:r1909_4 -# 1910| r1910_1(glval<int>) = VariableAddress[x] : -# 1910| r1910_2(int) = Load[x] : &:r1910_1, ~m? -# 1910| r1910_3(int) = Constant[10] : -# 1910| r1910_4(bool) = CompareLT : r1910_2, r1910_3 -# 1910| v1910_5(void) = ConditionalBranch : r1910_4 +# 1956| int noreturnTest2(int) +# 1956| Block 0 +# 1956| v1956_1(void) = EnterFunction : +# 1956| mu1956_2(unknown) = AliasedDefinition : +# 1956| mu1956_3(unknown) = InitializeNonLocal : +# 1956| r1956_4(glval<int>) = VariableAddress[x] : +# 1956| mu1956_5(int) = InitializeParameter[x] : &:r1956_4 +# 1957| r1957_1(glval<int>) = VariableAddress[x] : +# 1957| r1957_2(int) = Load[x] : &:r1957_1, ~m? +# 1957| r1957_3(int) = Constant[10] : +# 1957| r1957_4(bool) = CompareLT : r1957_2, r1957_3 +# 1957| v1957_5(void) = ConditionalBranch : r1957_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 1911| Block 1 -# 1911| r1911_1(glval<unknown>) = FunctionAddress[noreturnFunc] : -# 1911| v1911_2(void) = Call[noreturnFunc] : func:r1911_1 -# 1911| mu1911_3(unknown) = ^CallSideEffect : ~m? -# 1909| v1909_6(void) = Unreached : +# 1958| Block 1 +# 1958| r1958_1(glval<unknown>) = FunctionAddress[noreturnFunc] : +# 1958| v1958_2(void) = Call[noreturnFunc] : func:r1958_1 +# 1958| mu1958_3(unknown) = ^CallSideEffect : ~m? +# 1956| v1956_6(void) = Unreached : -# 1913| Block 2 -# 1913| r1913_1(glval<int>) = VariableAddress[#return] : -# 1913| r1913_2(glval<int>) = VariableAddress[x] : -# 1913| r1913_3(int) = Load[x] : &:r1913_2, ~m? -# 1913| mu1913_4(int) = Store[#return] : &:r1913_1, r1913_3 -# 1909| r1909_7(glval<int>) = VariableAddress[#return] : -# 1909| v1909_8(void) = ReturnValue : &:r1909_7, ~m? -# 1909| v1909_9(void) = AliasedUse : ~m? -# 1909| v1909_10(void) = ExitFunction : +# 1960| Block 2 +# 1960| r1960_1(glval<int>) = VariableAddress[#return] : +# 1960| r1960_2(glval<int>) = VariableAddress[x] : +# 1960| r1960_3(int) = Load[x] : &:r1960_2, ~m? +# 1960| mu1960_4(int) = Store[#return] : &:r1960_1, r1960_3 +# 1956| r1956_7(glval<int>) = VariableAddress[#return] : +# 1956| v1956_8(void) = ReturnValue : &:r1956_7, ~m? +# 1956| v1956_9(void) = AliasedUse : ~m? +# 1956| v1956_10(void) = ExitFunction : -# 1916| int static_function(int) -# 1916| Block 0 -# 1916| v1916_1(void) = EnterFunction : -# 1916| mu1916_2(unknown) = AliasedDefinition : -# 1916| mu1916_3(unknown) = InitializeNonLocal : -# 1916| r1916_4(glval<int>) = VariableAddress[x] : -# 1916| mu1916_5(int) = InitializeParameter[x] : &:r1916_4 -# 1917| r1917_1(glval<int>) = VariableAddress[#return] : -# 1917| r1917_2(glval<int>) = VariableAddress[x] : -# 1917| r1917_3(int) = Load[x] : &:r1917_2, ~m? -# 1917| mu1917_4(int) = Store[#return] : &:r1917_1, r1917_3 -# 1916| r1916_6(glval<int>) = VariableAddress[#return] : -# 1916| v1916_7(void) = ReturnValue : &:r1916_6, ~m? -# 1916| v1916_8(void) = AliasedUse : ~m? -# 1916| v1916_9(void) = ExitFunction : +# 1963| int static_function(int) +# 1963| Block 0 +# 1963| v1963_1(void) = EnterFunction : +# 1963| mu1963_2(unknown) = AliasedDefinition : +# 1963| mu1963_3(unknown) = InitializeNonLocal : +# 1963| r1963_4(glval<int>) = VariableAddress[x] : +# 1963| mu1963_5(int) = InitializeParameter[x] : &:r1963_4 +# 1964| r1964_1(glval<int>) = VariableAddress[#return] : +# 1964| r1964_2(glval<int>) = VariableAddress[x] : +# 1964| r1964_3(int) = Load[x] : &:r1964_2, ~m? +# 1964| mu1964_4(int) = Store[#return] : &:r1964_1, r1964_3 +# 1963| r1963_6(glval<int>) = VariableAddress[#return] : +# 1963| v1963_7(void) = ReturnValue : &:r1963_6, ~m? +# 1963| v1963_8(void) = AliasedUse : ~m? +# 1963| v1963_9(void) = ExitFunction : -# 1920| void test_static_functions_with_assignments() -# 1920| Block 0 -# 1920| v1920_1(void) = EnterFunction : -# 1920| mu1920_2(unknown) = AliasedDefinition : -# 1920| mu1920_3(unknown) = InitializeNonLocal : -# 1921| r1921_1(glval<C>) = VariableAddress[c] : -# 1921| mu1921_2(C) = Uninitialized[c] : &:r1921_1 -# 1921| r1921_3(glval<unknown>) = FunctionAddress[C] : -# 1921| v1921_4(void) = Call[C] : func:r1921_3, this:r1921_1 -# 1921| mu1921_5(unknown) = ^CallSideEffect : ~m? -# 1921| mu1921_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1921_1 -# 1922| r1922_1(glval<int>) = VariableAddress[x] : -# 1922| mu1922_2(int) = Uninitialized[x] : &:r1922_1 -# 1923| r1923_1(glval<C>) = VariableAddress[c] : -# 1923| r1923_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] : -# 1923| r1923_3(int) = Constant[10] : -# 1923| r1923_4(int) = Call[StaticMemberFunction] : func:r1923_2, 0:r1923_3 -# 1923| mu1923_5(unknown) = ^CallSideEffect : ~m? -# 1923| r1923_6(glval<int>) = VariableAddress[x] : -# 1923| mu1923_7(int) = Store[x] : &:r1923_6, r1923_4 -# 1924| r1924_1(glval<int>) = VariableAddress[y] : -# 1924| mu1924_2(int) = Uninitialized[y] : &:r1924_1 -# 1925| r1925_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] : -# 1925| r1925_2(int) = Constant[10] : -# 1925| r1925_3(int) = Call[StaticMemberFunction] : func:r1925_1, 0:r1925_2 -# 1925| mu1925_4(unknown) = ^CallSideEffect : ~m? -# 1925| r1925_5(glval<int>) = VariableAddress[y] : -# 1925| mu1925_6(int) = Store[y] : &:r1925_5, r1925_3 -# 1926| r1926_1(glval<int>) = VariableAddress[z] : -# 1926| mu1926_2(int) = Uninitialized[z] : &:r1926_1 -# 1927| r1927_1(glval<unknown>) = FunctionAddress[static_function] : -# 1927| r1927_2(int) = Constant[10] : -# 1927| r1927_3(int) = Call[static_function] : func:r1927_1, 0:r1927_2 -# 1927| mu1927_4(unknown) = ^CallSideEffect : ~m? -# 1927| r1927_5(glval<int>) = VariableAddress[z] : -# 1927| mu1927_6(int) = Store[z] : &:r1927_5, r1927_3 -# 1928| v1928_1(void) = NoOp : -# 1928| r1928_2(glval<C>) = VariableAddress[c] : -# 1928| r1928_3(glval<unknown>) = FunctionAddress[~C] : -# 1928| v1928_4(void) = Call[~C] : func:r1928_3, this:r1928_2 -# 1928| mu1928_5(unknown) = ^CallSideEffect : ~m? -# 1928| v1928_6(void) = ^IndirectReadSideEffect[-1] : &:r1928_2, ~m? -# 1928| mu1928_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1928_2 -# 1920| v1920_4(void) = ReturnVoid : -# 1920| v1920_5(void) = AliasedUse : ~m? -# 1920| v1920_6(void) = ExitFunction : +# 1967| void test_static_functions_with_assignments() +# 1967| Block 0 +# 1967| v1967_1(void) = EnterFunction : +# 1967| mu1967_2(unknown) = AliasedDefinition : +# 1967| mu1967_3(unknown) = InitializeNonLocal : +# 1968| r1968_1(glval<C>) = VariableAddress[c] : +# 1968| mu1968_2(C) = Uninitialized[c] : &:r1968_1 +# 1968| r1968_3(glval<unknown>) = FunctionAddress[C] : +# 1968| v1968_4(void) = Call[C] : func:r1968_3, this:r1968_1 +# 1968| mu1968_5(unknown) = ^CallSideEffect : ~m? +# 1968| mu1968_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1968_1 +# 1969| r1969_1(glval<int>) = VariableAddress[x] : +# 1969| mu1969_2(int) = Uninitialized[x] : &:r1969_1 +# 1970| r1970_1(glval<C>) = VariableAddress[c] : +# 1970| r1970_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] : +# 1970| r1970_3(int) = Constant[10] : +# 1970| r1970_4(int) = Call[StaticMemberFunction] : func:r1970_2, 0:r1970_3 +# 1970| mu1970_5(unknown) = ^CallSideEffect : ~m? +# 1970| r1970_6(glval<int>) = VariableAddress[x] : +# 1970| mu1970_7(int) = Store[x] : &:r1970_6, r1970_4 +# 1971| r1971_1(glval<int>) = VariableAddress[y] : +# 1971| mu1971_2(int) = Uninitialized[y] : &:r1971_1 +# 1972| r1972_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] : +# 1972| r1972_2(int) = Constant[10] : +# 1972| r1972_3(int) = Call[StaticMemberFunction] : func:r1972_1, 0:r1972_2 +# 1972| mu1972_4(unknown) = ^CallSideEffect : ~m? +# 1972| r1972_5(glval<int>) = VariableAddress[y] : +# 1972| mu1972_6(int) = Store[y] : &:r1972_5, r1972_3 +# 1973| r1973_1(glval<int>) = VariableAddress[z] : +# 1973| mu1973_2(int) = Uninitialized[z] : &:r1973_1 +# 1974| r1974_1(glval<unknown>) = FunctionAddress[static_function] : +# 1974| r1974_2(int) = Constant[10] : +# 1974| r1974_3(int) = Call[static_function] : func:r1974_1, 0:r1974_2 +# 1974| mu1974_4(unknown) = ^CallSideEffect : ~m? +# 1974| r1974_5(glval<int>) = VariableAddress[z] : +# 1974| mu1974_6(int) = Store[z] : &:r1974_5, r1974_3 +# 1975| v1975_1(void) = NoOp : +# 1975| r1975_2(glval<C>) = VariableAddress[c] : +# 1975| r1975_3(glval<unknown>) = FunctionAddress[~C] : +# 1975| v1975_4(void) = Call[~C] : func:r1975_3, this:r1975_2 +# 1975| mu1975_5(unknown) = ^CallSideEffect : ~m? +# 1975| v1975_6(void) = ^IndirectReadSideEffect[-1] : &:r1975_2, ~m? +# 1975| mu1975_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1975_2 +# 1967| v1967_4(void) = ReturnVoid : +# 1967| v1967_5(void) = AliasedUse : ~m? +# 1967| v1967_6(void) = ExitFunction : -# 1930| void test_double_assign() -# 1930| Block 0 -# 1930| v1930_1(void) = EnterFunction : -# 1930| mu1930_2(unknown) = AliasedDefinition : -# 1930| mu1930_3(unknown) = InitializeNonLocal : -# 1931| r1931_1(glval<int>) = VariableAddress[i] : -# 1931| mu1931_2(int) = Uninitialized[i] : &:r1931_1 -# 1931| r1931_3(glval<int>) = VariableAddress[j] : -# 1931| mu1931_4(int) = Uninitialized[j] : &:r1931_3 -# 1932| r1932_1(int) = Constant[40] : -# 1932| r1932_2(glval<int>) = VariableAddress[j] : -# 1932| mu1932_3(int) = Store[j] : &:r1932_2, r1932_1 -# 1932| r1932_4(int) = Load[j] : &:r1932_2, ~m? -# 1932| r1932_5(glval<int>) = VariableAddress[i] : -# 1932| mu1932_6(int) = Store[i] : &:r1932_5, r1932_4 -# 1933| v1933_1(void) = NoOp : -# 1930| v1930_4(void) = ReturnVoid : -# 1930| v1930_5(void) = AliasedUse : ~m? -# 1930| v1930_6(void) = ExitFunction : +# 1977| void test_double_assign() +# 1977| Block 0 +# 1977| v1977_1(void) = EnterFunction : +# 1977| mu1977_2(unknown) = AliasedDefinition : +# 1977| mu1977_3(unknown) = InitializeNonLocal : +# 1978| r1978_1(glval<int>) = VariableAddress[i] : +# 1978| mu1978_2(int) = Uninitialized[i] : &:r1978_1 +# 1978| r1978_3(glval<int>) = VariableAddress[j] : +# 1978| mu1978_4(int) = Uninitialized[j] : &:r1978_3 +# 1979| r1979_1(int) = Constant[40] : +# 1979| r1979_2(glval<int>) = VariableAddress[j] : +# 1979| mu1979_3(int) = Store[j] : &:r1979_2, r1979_1 +# 1979| r1979_4(int) = Load[j] : &:r1979_2, ~m? +# 1979| r1979_5(glval<int>) = VariableAddress[i] : +# 1979| mu1979_6(int) = Store[i] : &:r1979_5, r1979_4 +# 1980| v1980_1(void) = NoOp : +# 1977| v1977_4(void) = ReturnVoid : +# 1977| v1977_5(void) = AliasedUse : ~m? +# 1977| v1977_6(void) = ExitFunction : -# 1935| void test_assign_with_assign_operation() -# 1935| Block 0 -# 1935| v1935_1(void) = EnterFunction : -# 1935| mu1935_2(unknown) = AliasedDefinition : -# 1935| mu1935_3(unknown) = InitializeNonLocal : -# 1936| r1936_1(glval<int>) = VariableAddress[i] : -# 1936| mu1936_2(int) = Uninitialized[i] : &:r1936_1 -# 1936| r1936_3(glval<int>) = VariableAddress[j] : -# 1936| r1936_4(int) = Constant[0] : -# 1936| mu1936_5(int) = Store[j] : &:r1936_3, r1936_4 -# 1937| r1937_1(int) = Constant[40] : -# 1937| r1937_2(glval<int>) = VariableAddress[j] : -# 1937| r1937_3(int) = Load[j] : &:r1937_2, ~m? -# 1937| r1937_4(int) = Add : r1937_3, r1937_1 -# 1937| mu1937_5(int) = Store[j] : &:r1937_2, r1937_4 -# 1937| r1937_6(int) = Load[j] : &:r1937_2, ~m? -# 1937| r1937_7(glval<int>) = VariableAddress[i] : -# 1937| mu1937_8(int) = Store[i] : &:r1937_7, r1937_6 -# 1938| v1938_1(void) = NoOp : -# 1935| v1935_4(void) = ReturnVoid : -# 1935| v1935_5(void) = AliasedUse : ~m? -# 1935| v1935_6(void) = ExitFunction : +# 1982| void test_assign_with_assign_operation() +# 1982| Block 0 +# 1982| v1982_1(void) = EnterFunction : +# 1982| mu1982_2(unknown) = AliasedDefinition : +# 1982| mu1982_3(unknown) = InitializeNonLocal : +# 1983| r1983_1(glval<int>) = VariableAddress[i] : +# 1983| mu1983_2(int) = Uninitialized[i] : &:r1983_1 +# 1983| r1983_3(glval<int>) = VariableAddress[j] : +# 1983| r1983_4(int) = Constant[0] : +# 1983| mu1983_5(int) = Store[j] : &:r1983_3, r1983_4 +# 1984| r1984_1(int) = Constant[40] : +# 1984| r1984_2(glval<int>) = VariableAddress[j] : +# 1984| r1984_3(int) = Load[j] : &:r1984_2, ~m? +# 1984| r1984_4(int) = Add : r1984_3, r1984_1 +# 1984| mu1984_5(int) = Store[j] : &:r1984_2, r1984_4 +# 1984| r1984_6(int) = Load[j] : &:r1984_2, ~m? +# 1984| r1984_7(glval<int>) = VariableAddress[i] : +# 1984| mu1984_8(int) = Store[i] : &:r1984_7, r1984_6 +# 1985| v1985_1(void) = NoOp : +# 1982| v1982_4(void) = ReturnVoid : +# 1982| v1982_5(void) = AliasedUse : ~m? +# 1982| v1982_6(void) = ExitFunction : -# 1944| D& D::ReferenceStaticMemberFunction() -# 1944| Block 0 -# 1944| v1944_1(void) = EnterFunction : -# 1944| mu1944_2(unknown) = AliasedDefinition : -# 1944| mu1944_3(unknown) = InitializeNonLocal : -# 1945| r1945_1(glval<D &>) = VariableAddress[#return] : -# 1945| r1945_2(glval<D>) = VariableAddress[x] : -# 1945| r1945_3(D &) = CopyValue : r1945_2 -# 1945| mu1945_4(D &) = Store[#return] : &:r1945_1, r1945_3 -# 1944| r1944_4(glval<D &>) = VariableAddress[#return] : -# 1944| v1944_5(void) = ReturnValue : &:r1944_4, ~m? -# 1944| v1944_6(void) = AliasedUse : ~m? -# 1944| v1944_7(void) = ExitFunction : +# 1991| D& D::ReferenceStaticMemberFunction() +# 1991| Block 0 +# 1991| v1991_1(void) = EnterFunction : +# 1991| mu1991_2(unknown) = AliasedDefinition : +# 1991| mu1991_3(unknown) = InitializeNonLocal : +# 1992| r1992_1(glval<D &>) = VariableAddress[#return] : +# 1992| r1992_2(glval<D>) = VariableAddress[x] : +# 1992| r1992_3(D &) = CopyValue : r1992_2 +# 1992| mu1992_4(D &) = Store[#return] : &:r1992_1, r1992_3 +# 1991| r1991_4(glval<D &>) = VariableAddress[#return] : +# 1991| v1991_5(void) = ReturnValue : &:r1991_4, ~m? +# 1991| v1991_6(void) = AliasedUse : ~m? +# 1991| v1991_7(void) = ExitFunction : -# 1947| D D::ObjectStaticMemberFunction() -# 1947| Block 0 -# 1947| v1947_1(void) = EnterFunction : -# 1947| mu1947_2(unknown) = AliasedDefinition : -# 1947| mu1947_3(unknown) = InitializeNonLocal : -# 1948| r1948_1(glval<D>) = VariableAddress[#return] : -# 1948| r1948_2(glval<D>) = VariableAddress[x] : -# 1948| r1948_3(D) = Load[x] : &:r1948_2, ~m? -# 1948| mu1948_4(D) = Store[#return] : &:r1948_1, r1948_3 -# 1947| r1947_4(glval<D>) = VariableAddress[#return] : -# 1947| v1947_5(void) = ReturnValue : &:r1947_4, ~m? -# 1947| v1947_6(void) = AliasedUse : ~m? -# 1947| v1947_7(void) = ExitFunction : +# 1994| D D::ObjectStaticMemberFunction() +# 1994| Block 0 +# 1994| v1994_1(void) = EnterFunction : +# 1994| mu1994_2(unknown) = AliasedDefinition : +# 1994| mu1994_3(unknown) = InitializeNonLocal : +# 1995| r1995_1(glval<D>) = VariableAddress[#return] : +# 1995| r1995_2(glval<D>) = VariableAddress[x] : +# 1995| r1995_3(D) = Load[x] : &:r1995_2, ~m? +# 1995| mu1995_4(D) = Store[#return] : &:r1995_1, r1995_3 +# 1994| r1994_4(glval<D>) = VariableAddress[#return] : +# 1994| v1994_5(void) = ReturnValue : &:r1994_4, ~m? +# 1994| v1994_6(void) = AliasedUse : ~m? +# 1994| v1994_7(void) = ExitFunction : -# 1952| void test_static_member_functions_with_reference_return() -# 1952| Block 0 -# 1952| v1952_1(void) = EnterFunction : -# 1952| mu1952_2(unknown) = AliasedDefinition : -# 1952| mu1952_3(unknown) = InitializeNonLocal : -# 1953| r1953_1(glval<D>) = VariableAddress[d] : -# 1953| mu1953_2(D) = Uninitialized[d] : &:r1953_1 -# 1955| r1955_1(glval<D>) = VariableAddress[d] : -# 1955| r1955_2(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : -# 1955| r1955_3(D &) = Call[ReferenceStaticMemberFunction] : func:r1955_2 -# 1955| mu1955_4(unknown) = ^CallSideEffect : ~m? -# 1955| r1955_5(glval<D>) = CopyValue : r1955_3 -# 1956| r1956_1(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : -# 1956| r1956_2(D &) = Call[ReferenceStaticMemberFunction] : func:r1956_1 -# 1956| mu1956_3(unknown) = ^CallSideEffect : ~m? -# 1956| r1956_4(glval<D>) = CopyValue : r1956_2 -# 1957| r1957_1(glval<D>) = VariableAddress[d] : -# 1957| r1957_2(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : -# 1957| r1957_3(D) = Call[ObjectStaticMemberFunction] : func:r1957_2 -# 1957| mu1957_4(unknown) = ^CallSideEffect : ~m? -# 1958| r1958_1(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : -# 1958| r1958_2(D) = Call[ObjectStaticMemberFunction] : func:r1958_1 -# 1958| mu1958_3(unknown) = ^CallSideEffect : ~m? -# 1960| r1960_1(glval<D>) = VariableAddress[x] : -# 1960| mu1960_2(D) = Uninitialized[x] : &:r1960_1 -# 1961| r1961_1(glval<D>) = VariableAddress[d] : -# 1961| r1961_2(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : -# 1961| r1961_3(D &) = Call[ReferenceStaticMemberFunction] : func:r1961_2 -# 1961| mu1961_4(unknown) = ^CallSideEffect : ~m? -# 1961| r1961_5(D) = Load[?] : &:r1961_3, ~m? -# 1961| r1961_6(glval<D>) = VariableAddress[x] : -# 1961| mu1961_7(D) = Store[x] : &:r1961_6, r1961_5 -# 1962| r1962_1(glval<D>) = VariableAddress[y] : -# 1962| mu1962_2(D) = Uninitialized[y] : &:r1962_1 -# 1963| r1963_1(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : -# 1963| r1963_2(D &) = Call[ReferenceStaticMemberFunction] : func:r1963_1 -# 1963| mu1963_3(unknown) = ^CallSideEffect : ~m? -# 1963| r1963_4(D) = Load[?] : &:r1963_2, ~m? -# 1963| r1963_5(glval<D>) = VariableAddress[y] : -# 1963| mu1963_6(D) = Store[y] : &:r1963_5, r1963_4 -# 1964| r1964_1(glval<D>) = VariableAddress[j] : -# 1964| mu1964_2(D) = Uninitialized[j] : &:r1964_1 -# 1965| r1965_1(glval<D>) = VariableAddress[d] : -# 1965| r1965_2(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : -# 1965| r1965_3(D) = Call[ObjectStaticMemberFunction] : func:r1965_2 -# 1965| mu1965_4(unknown) = ^CallSideEffect : ~m? -# 1965| r1965_5(glval<D>) = VariableAddress[j] : -# 1965| mu1965_6(D) = Store[j] : &:r1965_5, r1965_3 -# 1966| r1966_1(glval<D>) = VariableAddress[k] : -# 1966| mu1966_2(D) = Uninitialized[k] : &:r1966_1 -# 1967| r1967_1(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : -# 1967| r1967_2(D) = Call[ObjectStaticMemberFunction] : func:r1967_1 -# 1967| mu1967_3(unknown) = ^CallSideEffect : ~m? -# 1967| r1967_4(glval<D>) = VariableAddress[k] : -# 1967| mu1967_5(D) = Store[k] : &:r1967_4, r1967_2 -# 1968| v1968_1(void) = NoOp : -# 1952| v1952_4(void) = ReturnVoid : -# 1952| v1952_5(void) = AliasedUse : ~m? -# 1952| v1952_6(void) = ExitFunction : +# 1999| void test_static_member_functions_with_reference_return() +# 1999| Block 0 +# 1999| v1999_1(void) = EnterFunction : +# 1999| mu1999_2(unknown) = AliasedDefinition : +# 1999| mu1999_3(unknown) = InitializeNonLocal : +# 2000| r2000_1(glval<D>) = VariableAddress[d] : +# 2000| mu2000_2(D) = Uninitialized[d] : &:r2000_1 +# 2002| r2002_1(glval<D>) = VariableAddress[d] : +# 2002| r2002_2(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2002| r2002_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2002_2 +# 2002| mu2002_4(unknown) = ^CallSideEffect : ~m? +# 2002| r2002_5(glval<D>) = CopyValue : r2002_3 +# 2003| r2003_1(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2003| r2003_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2003_1 +# 2003| mu2003_3(unknown) = ^CallSideEffect : ~m? +# 2003| r2003_4(glval<D>) = CopyValue : r2003_2 +# 2004| r2004_1(glval<D>) = VariableAddress[d] : +# 2004| r2004_2(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : +# 2004| r2004_3(D) = Call[ObjectStaticMemberFunction] : func:r2004_2 +# 2004| mu2004_4(unknown) = ^CallSideEffect : ~m? +# 2005| r2005_1(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : +# 2005| r2005_2(D) = Call[ObjectStaticMemberFunction] : func:r2005_1 +# 2005| mu2005_3(unknown) = ^CallSideEffect : ~m? +# 2007| r2007_1(glval<D>) = VariableAddress[x] : +# 2007| mu2007_2(D) = Uninitialized[x] : &:r2007_1 +# 2008| r2008_1(glval<D>) = VariableAddress[d] : +# 2008| r2008_2(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2008| r2008_3(D &) = Call[ReferenceStaticMemberFunction] : func:r2008_2 +# 2008| mu2008_4(unknown) = ^CallSideEffect : ~m? +# 2008| r2008_5(D) = Load[?] : &:r2008_3, ~m? +# 2008| r2008_6(glval<D>) = VariableAddress[x] : +# 2008| mu2008_7(D) = Store[x] : &:r2008_6, r2008_5 +# 2009| r2009_1(glval<D>) = VariableAddress[y] : +# 2009| mu2009_2(D) = Uninitialized[y] : &:r2009_1 +# 2010| r2010_1(glval<unknown>) = FunctionAddress[ReferenceStaticMemberFunction] : +# 2010| r2010_2(D &) = Call[ReferenceStaticMemberFunction] : func:r2010_1 +# 2010| mu2010_3(unknown) = ^CallSideEffect : ~m? +# 2010| r2010_4(D) = Load[?] : &:r2010_2, ~m? +# 2010| r2010_5(glval<D>) = VariableAddress[y] : +# 2010| mu2010_6(D) = Store[y] : &:r2010_5, r2010_4 +# 2011| r2011_1(glval<D>) = VariableAddress[j] : +# 2011| mu2011_2(D) = Uninitialized[j] : &:r2011_1 +# 2012| r2012_1(glval<D>) = VariableAddress[d] : +# 2012| r2012_2(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : +# 2012| r2012_3(D) = Call[ObjectStaticMemberFunction] : func:r2012_2 +# 2012| mu2012_4(unknown) = ^CallSideEffect : ~m? +# 2012| r2012_5(glval<D>) = VariableAddress[j] : +# 2012| mu2012_6(D) = Store[j] : &:r2012_5, r2012_3 +# 2013| r2013_1(glval<D>) = VariableAddress[k] : +# 2013| mu2013_2(D) = Uninitialized[k] : &:r2013_1 +# 2014| r2014_1(glval<unknown>) = FunctionAddress[ObjectStaticMemberFunction] : +# 2014| r2014_2(D) = Call[ObjectStaticMemberFunction] : func:r2014_1 +# 2014| mu2014_3(unknown) = ^CallSideEffect : ~m? +# 2014| r2014_4(glval<D>) = VariableAddress[k] : +# 2014| mu2014_5(D) = Store[k] : &:r2014_4, r2014_2 +# 2015| v2015_1(void) = NoOp : +# 1999| v1999_4(void) = ReturnVoid : +# 1999| v1999_5(void) = AliasedUse : ~m? +# 1999| v1999_6(void) = ExitFunction : -# 1970| void test_volatile() -# 1970| Block 0 -# 1970| v1970_1(void) = EnterFunction : -# 1970| mu1970_2(unknown) = AliasedDefinition : -# 1970| mu1970_3(unknown) = InitializeNonLocal : -# 1971| r1971_1(glval<int>) = VariableAddress[x] : -# 1971| mu1971_2(int) = Uninitialized[x] : &:r1971_1 -# 1972| r1972_1(glval<int>) = VariableAddress[x] : -# 1972| r1972_2(int) = Load[x] : &:r1972_1, ~m? -# 1973| v1973_1(void) = NoOp : -# 1970| v1970_4(void) = ReturnVoid : -# 1970| v1970_5(void) = AliasedUse : ~m? -# 1970| v1970_6(void) = ExitFunction : +# 2017| void test_volatile() +# 2017| Block 0 +# 2017| v2017_1(void) = EnterFunction : +# 2017| mu2017_2(unknown) = AliasedDefinition : +# 2017| mu2017_3(unknown) = InitializeNonLocal : +# 2018| r2018_1(glval<int>) = VariableAddress[x] : +# 2018| mu2018_2(int) = Uninitialized[x] : &:r2018_1 +# 2019| r2019_1(glval<int>) = VariableAddress[x] : +# 2019| r2019_2(int) = Load[x] : &:r2019_1, ~m? +# 2020| v2020_1(void) = NoOp : +# 2017| v2017_4(void) = ReturnVoid : +# 2017| v2017_5(void) = AliasedUse : ~m? +# 2017| v2017_6(void) = ExitFunction : -# 1981| void value_category_test() -# 1981| Block 0 -# 1981| v1981_1(void) = EnterFunction : -# 1981| mu1981_2(unknown) = AliasedDefinition : -# 1981| mu1981_3(unknown) = InitializeNonLocal : -# 1982| r1982_1(glval<ValCat>) = VariableAddress[c] : -# 1982| mu1982_2(ValCat) = Uninitialized[c] : &:r1982_1 +# 2028| void value_category_test() +# 2028| Block 0 +# 2028| v2028_1(void) = EnterFunction : +# 2028| mu2028_2(unknown) = AliasedDefinition : +# 2028| mu2028_3(unknown) = InitializeNonLocal : +# 2029| r2029_1(glval<ValCat>) = VariableAddress[c] : +# 2029| mu2029_2(ValCat) = Uninitialized[c] : &:r2029_1 #-----| r0_1(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| mu0_2(ValCat) = Uninitialized[#temp0:0] : &:r0_1 #-----| r0_3(ValCat) = Load[#temp0:0] : &:r0_1, ~m? -# 1984| r1984_1(glval<ValCat>) = VariableAddress[c] : -# 1984| r1984_2(glval<unknown>) = FunctionAddress[lvalue] : -# 1984| r1984_3(ValCat &) = Call[lvalue] : func:r1984_2 -# 1984| mu1984_4(unknown) = ^CallSideEffect : ~m? -# 1984| r1984_5(glval<ValCat>) = CopyValue : r1984_3 -# 1984| mu1984_6(ValCat) = Store[?] : &:r1984_5, r0_3 +# 2031| r2031_1(glval<ValCat>) = VariableAddress[c] : +# 2031| r2031_2(glval<unknown>) = FunctionAddress[lvalue] : +# 2031| r2031_3(ValCat &) = Call[lvalue] : func:r2031_2 +# 2031| mu2031_4(unknown) = ^CallSideEffect : ~m? +# 2031| r2031_5(glval<ValCat>) = CopyValue : r2031_3 +# 2031| mu2031_6(ValCat) = Store[?] : &:r2031_5, r0_3 #-----| r0_4(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| mu0_5(ValCat) = Uninitialized[#temp0:0] : &:r0_4 #-----| r0_6(ValCat) = Load[#temp0:0] : &:r0_4, ~m? -# 1985| r1985_1(glval<ValCat>) = VariableAddress[c] : -# 1985| r1985_2(glval<unknown>) = FunctionAddress[xvalue] : -# 1985| r1985_3(ValCat &&) = Call[xvalue] : func:r1985_2 -# 1985| mu1985_4(unknown) = ^CallSideEffect : ~m? -# 1985| r1985_5(glval<ValCat>) = CopyValue : r1985_3 -# 1985| mu1985_6(ValCat) = Store[?] : &:r1985_5, r0_6 +# 2032| r2032_1(glval<ValCat>) = VariableAddress[c] : +# 2032| r2032_2(glval<unknown>) = FunctionAddress[xvalue] : +# 2032| r2032_3(ValCat &&) = Call[xvalue] : func:r2032_2 +# 2032| mu2032_4(unknown) = ^CallSideEffect : ~m? +# 2032| r2032_5(glval<ValCat>) = CopyValue : r2032_3 +# 2032| mu2032_6(ValCat) = Store[?] : &:r2032_5, r0_6 #-----| r0_7(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| mu0_8(ValCat) = Uninitialized[#temp0:0] : &:r0_7 #-----| r0_9(ValCat) = Load[#temp0:0] : &:r0_7, ~m? -# 1986| r1986_1(glval<ValCat>) = VariableAddress[#temp1986:5] : -# 1986| r1986_2(glval<ValCat>) = VariableAddress[c] : -# 1986| r1986_3(glval<unknown>) = FunctionAddress[prvalue] : -# 1986| r1986_4(ValCat) = Call[prvalue] : func:r1986_3 -# 1986| mu1986_5(unknown) = ^CallSideEffect : ~m? -# 1986| mu1986_6(ValCat) = Store[#temp1986:5] : &:r1986_1, r1986_4 -# 1986| mu1986_7(ValCat) = Store[#temp1986:5] : &:r1986_1, r0_9 +# 2033| r2033_1(glval<ValCat>) = VariableAddress[#temp2033:5] : +# 2033| r2033_2(glval<ValCat>) = VariableAddress[c] : +# 2033| r2033_3(glval<unknown>) = FunctionAddress[prvalue] : +# 2033| r2033_4(ValCat) = Call[prvalue] : func:r2033_3 +# 2033| mu2033_5(unknown) = ^CallSideEffect : ~m? +# 2033| mu2033_6(ValCat) = Store[#temp2033:5] : &:r2033_1, r2033_4 +# 2033| mu2033_7(ValCat) = Store[#temp2033:5] : &:r2033_1, r0_9 #-----| r0_10(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| mu0_11(ValCat) = Uninitialized[#temp0:0] : &:r0_10 #-----| r0_12(ValCat) = Load[#temp0:0] : &:r0_10, ~m? -# 1987| r1987_1(glval<unknown>) = FunctionAddress[lvalue] : -# 1987| r1987_2(ValCat &) = Call[lvalue] : func:r1987_1 -# 1987| mu1987_3(unknown) = ^CallSideEffect : ~m? -# 1987| r1987_4(glval<ValCat>) = CopyValue : r1987_2 -# 1987| mu1987_5(ValCat) = Store[?] : &:r1987_4, r0_12 +# 2034| r2034_1(glval<unknown>) = FunctionAddress[lvalue] : +# 2034| r2034_2(ValCat &) = Call[lvalue] : func:r2034_1 +# 2034| mu2034_3(unknown) = ^CallSideEffect : ~m? +# 2034| r2034_4(glval<ValCat>) = CopyValue : r2034_2 +# 2034| mu2034_5(ValCat) = Store[?] : &:r2034_4, r0_12 #-----| r0_13(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| mu0_14(ValCat) = Uninitialized[#temp0:0] : &:r0_13 #-----| r0_15(ValCat) = Load[#temp0:0] : &:r0_13, ~m? -# 1988| r1988_1(glval<unknown>) = FunctionAddress[xvalue] : -# 1988| r1988_2(ValCat &&) = Call[xvalue] : func:r1988_1 -# 1988| mu1988_3(unknown) = ^CallSideEffect : ~m? -# 1988| r1988_4(glval<ValCat>) = CopyValue : r1988_2 -# 1988| mu1988_5(ValCat) = Store[?] : &:r1988_4, r0_15 +# 2035| r2035_1(glval<unknown>) = FunctionAddress[xvalue] : +# 2035| r2035_2(ValCat &&) = Call[xvalue] : func:r2035_1 +# 2035| mu2035_3(unknown) = ^CallSideEffect : ~m? +# 2035| r2035_4(glval<ValCat>) = CopyValue : r2035_2 +# 2035| mu2035_5(ValCat) = Store[?] : &:r2035_4, r0_15 #-----| r0_16(glval<ValCat>) = VariableAddress[#temp0:0] : #-----| mu0_17(ValCat) = Uninitialized[#temp0:0] : &:r0_16 #-----| r0_18(ValCat) = Load[#temp0:0] : &:r0_16, ~m? -# 1989| r1989_1(glval<ValCat>) = VariableAddress[#temp1989:5] : -# 1989| r1989_2(glval<unknown>) = FunctionAddress[prvalue] : -# 1989| r1989_3(ValCat) = Call[prvalue] : func:r1989_2 -# 1989| mu1989_4(unknown) = ^CallSideEffect : ~m? -# 1989| mu1989_5(ValCat) = Store[#temp1989:5] : &:r1989_1, r1989_3 -# 1989| mu1989_6(ValCat) = Store[#temp1989:5] : &:r1989_1, r0_18 -# 1990| v1990_1(void) = NoOp : -# 1981| v1981_4(void) = ReturnVoid : -# 1981| v1981_5(void) = AliasedUse : ~m? -# 1981| v1981_6(void) = ExitFunction : +# 2036| r2036_1(glval<ValCat>) = VariableAddress[#temp2036:5] : +# 2036| r2036_2(glval<unknown>) = FunctionAddress[prvalue] : +# 2036| r2036_3(ValCat) = Call[prvalue] : func:r2036_2 +# 2036| mu2036_4(unknown) = ^CallSideEffect : ~m? +# 2036| mu2036_5(ValCat) = Store[#temp2036:5] : &:r2036_1, r2036_3 +# 2036| mu2036_6(ValCat) = Store[#temp2036:5] : &:r2036_1, r0_18 +# 2037| v2037_1(void) = NoOp : +# 2028| v2028_4(void) = ReturnVoid : +# 2028| v2028_5(void) = AliasedUse : ~m? +# 2028| v2028_6(void) = ExitFunction : -# 1992| void SetStaticFuncPtr() -# 1992| Block 0 -# 1992| v1992_1(void) = EnterFunction : -# 1992| mu1992_2(unknown) = AliasedDefinition : -# 1992| mu1992_3(unknown) = InitializeNonLocal : -# 1993| r1993_1(glval<C>) = VariableAddress[c] : -# 1993| mu1993_2(C) = Uninitialized[c] : &:r1993_1 -# 1993| r1993_3(glval<unknown>) = FunctionAddress[C] : -# 1993| v1993_4(void) = Call[C] : func:r1993_3, this:r1993_1 -# 1993| mu1993_5(unknown) = ^CallSideEffect : ~m? -# 1993| mu1993_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1993_1 -# 1994| r1994_1(glval<..(*)(..)>) = VariableAddress[pfn] : -# 1994| r1994_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : -# 1994| mu1994_3(..(*)(..)) = Store[pfn] : &:r1994_1, r1994_2 -# 1995| r1995_1(glval<C>) = VariableAddress[c] : -# 1995| r1995_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : -# 1995| r1995_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 1995| mu1995_4(..(*)(..)) = Store[pfn] : &:r1995_3, r1995_2 -# 1996| v1996_1(void) = NoOp : -# 1996| r1996_2(glval<C>) = VariableAddress[c] : -# 1996| r1996_3(glval<unknown>) = FunctionAddress[~C] : -# 1996| v1996_4(void) = Call[~C] : func:r1996_3, this:r1996_2 -# 1996| mu1996_5(unknown) = ^CallSideEffect : ~m? -# 1996| v1996_6(void) = ^IndirectReadSideEffect[-1] : &:r1996_2, ~m? -# 1996| mu1996_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r1996_2 -# 1992| v1992_4(void) = ReturnVoid : -# 1992| v1992_5(void) = AliasedUse : ~m? -# 1992| v1992_6(void) = ExitFunction : +# 2039| void SetStaticFuncPtr() +# 2039| Block 0 +# 2039| v2039_1(void) = EnterFunction : +# 2039| mu2039_2(unknown) = AliasedDefinition : +# 2039| mu2039_3(unknown) = InitializeNonLocal : +# 2040| r2040_1(glval<C>) = VariableAddress[c] : +# 2040| mu2040_2(C) = Uninitialized[c] : &:r2040_1 +# 2040| r2040_3(glval<unknown>) = FunctionAddress[C] : +# 2040| v2040_4(void) = Call[C] : func:r2040_3, this:r2040_1 +# 2040| mu2040_5(unknown) = ^CallSideEffect : ~m? +# 2040| mu2040_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r2040_1 +# 2041| r2041_1(glval<..(*)(..)>) = VariableAddress[pfn] : +# 2041| r2041_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 2041| mu2041_3(..(*)(..)) = Store[pfn] : &:r2041_1, r2041_2 +# 2042| r2042_1(glval<C>) = VariableAddress[c] : +# 2042| r2042_2(..(*)(..)) = FunctionAddress[StaticMemberFunction] : +# 2042| r2042_3(glval<..(*)(..)>) = VariableAddress[pfn] : +# 2042| mu2042_4(..(*)(..)) = Store[pfn] : &:r2042_3, r2042_2 +# 2043| v2043_1(void) = NoOp : +# 2043| r2043_2(glval<C>) = VariableAddress[c] : +# 2043| r2043_3(glval<unknown>) = FunctionAddress[~C] : +# 2043| v2043_4(void) = Call[~C] : func:r2043_3, this:r2043_2 +# 2043| mu2043_5(unknown) = ^CallSideEffect : ~m? +# 2043| v2043_6(void) = ^IndirectReadSideEffect[-1] : &:r2043_2, ~m? +# 2043| mu2043_7(C) = ^IndirectMayWriteSideEffect[-1] : &:r2043_2 +# 2039| v2039_4(void) = ReturnVoid : +# 2039| v2039_5(void) = AliasedUse : ~m? +# 2039| v2039_6(void) = ExitFunction : -# 1998| void TernaryTestInt(bool, int, int, int) -# 1998| Block 0 -# 1998| v1998_1(void) = EnterFunction : -# 1998| mu1998_2(unknown) = AliasedDefinition : -# 1998| mu1998_3(unknown) = InitializeNonLocal : -# 1998| r1998_4(glval<bool>) = VariableAddress[a] : -# 1998| mu1998_5(bool) = InitializeParameter[a] : &:r1998_4 -# 1998| r1998_6(glval<int>) = VariableAddress[x] : -# 1998| mu1998_7(int) = InitializeParameter[x] : &:r1998_6 -# 1998| r1998_8(glval<int>) = VariableAddress[y] : -# 1998| mu1998_9(int) = InitializeParameter[y] : &:r1998_8 -# 1998| r1998_10(glval<int>) = VariableAddress[z] : -# 1998| mu1998_11(int) = InitializeParameter[z] : &:r1998_10 -# 1999| r1999_1(glval<bool>) = VariableAddress[a] : -# 1999| r1999_2(bool) = Load[a] : &:r1999_1, ~m? -# 1999| v1999_3(void) = ConditionalBranch : r1999_2 +# 2045| void TernaryTestInt(bool, int, int, int) +# 2045| Block 0 +# 2045| v2045_1(void) = EnterFunction : +# 2045| mu2045_2(unknown) = AliasedDefinition : +# 2045| mu2045_3(unknown) = InitializeNonLocal : +# 2045| r2045_4(glval<bool>) = VariableAddress[a] : +# 2045| mu2045_5(bool) = InitializeParameter[a] : &:r2045_4 +# 2045| r2045_6(glval<int>) = VariableAddress[x] : +# 2045| mu2045_7(int) = InitializeParameter[x] : &:r2045_6 +# 2045| r2045_8(glval<int>) = VariableAddress[y] : +# 2045| mu2045_9(int) = InitializeParameter[y] : &:r2045_8 +# 2045| r2045_10(glval<int>) = VariableAddress[z] : +# 2045| mu2045_11(int) = InitializeParameter[z] : &:r2045_10 +# 2046| r2046_1(glval<bool>) = VariableAddress[a] : +# 2046| r2046_2(bool) = Load[a] : &:r2046_1, ~m? +# 2046| v2046_3(void) = ConditionalBranch : r2046_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 1999| Block 1 -# 1999| r1999_4(glval<int>) = VariableAddress[#temp1999:9] : -# 1999| r1999_5(int) = Load[#temp1999:9] : &:r1999_4, ~m? -# 1999| r1999_6(glval<int>) = VariableAddress[z] : -# 1999| mu1999_7(int) = Store[z] : &:r1999_6, r1999_5 -# 2000| r2000_1(glval<bool>) = VariableAddress[a] : -# 2000| r2000_2(bool) = Load[a] : &:r2000_1, ~m? -# 2000| v2000_3(void) = ConditionalBranch : r2000_2 +# 2046| Block 1 +# 2046| r2046_4(glval<int>) = VariableAddress[#temp2046:9] : +# 2046| r2046_5(int) = Load[#temp2046:9] : &:r2046_4, ~m? +# 2046| r2046_6(glval<int>) = VariableAddress[z] : +# 2046| mu2046_7(int) = Store[z] : &:r2046_6, r2046_5 +# 2047| r2047_1(glval<bool>) = VariableAddress[a] : +# 2047| r2047_2(bool) = Load[a] : &:r2047_1, ~m? +# 2047| v2047_3(void) = ConditionalBranch : r2047_2 #-----| False -> Block 6 #-----| True -> Block 5 -# 1999| Block 2 -# 1999| r1999_8(glval<int>) = VariableAddress[x] : -# 1999| r1999_9(int) = Load[x] : &:r1999_8, ~m? -# 1999| r1999_10(glval<int>) = VariableAddress[#temp1999:9] : -# 1999| mu1999_11(int) = Store[#temp1999:9] : &:r1999_10, r1999_9 +# 2046| Block 2 +# 2046| r2046_8(glval<int>) = VariableAddress[x] : +# 2046| r2046_9(int) = Load[x] : &:r2046_8, ~m? +# 2046| r2046_10(glval<int>) = VariableAddress[#temp2046:9] : +# 2046| mu2046_11(int) = Store[#temp2046:9] : &:r2046_10, r2046_9 #-----| Goto -> Block 1 -# 1999| Block 3 -# 1999| r1999_12(glval<int>) = VariableAddress[y] : -# 1999| r1999_13(int) = Load[y] : &:r1999_12, ~m? -# 1999| r1999_14(glval<int>) = VariableAddress[#temp1999:9] : -# 1999| mu1999_15(int) = Store[#temp1999:9] : &:r1999_14, r1999_13 +# 2046| Block 3 +# 2046| r2046_12(glval<int>) = VariableAddress[y] : +# 2046| r2046_13(int) = Load[y] : &:r2046_12, ~m? +# 2046| r2046_14(glval<int>) = VariableAddress[#temp2046:9] : +# 2046| mu2046_15(int) = Store[#temp2046:9] : &:r2046_14, r2046_13 #-----| Goto -> Block 1 -# 2000| Block 4 -# 2000| r2000_4(glval<int>) = VariableAddress[#temp2000:9] : -# 2000| r2000_5(int) = Load[#temp2000:9] : &:r2000_4, ~m? -# 2000| r2000_6(glval<int>) = VariableAddress[z] : -# 2000| mu2000_7(int) = Store[z] : &:r2000_6, r2000_5 -# 2001| r2001_1(glval<bool>) = VariableAddress[a] : -# 2001| r2001_2(bool) = Load[a] : &:r2001_1, ~m? -# 2001| v2001_3(void) = ConditionalBranch : r2001_2 +# 2047| Block 4 +# 2047| r2047_4(glval<int>) = VariableAddress[#temp2047:9] : +# 2047| r2047_5(int) = Load[#temp2047:9] : &:r2047_4, ~m? +# 2047| r2047_6(glval<int>) = VariableAddress[z] : +# 2047| mu2047_7(int) = Store[z] : &:r2047_6, r2047_5 +# 2048| r2048_1(glval<bool>) = VariableAddress[a] : +# 2048| r2048_2(bool) = Load[a] : &:r2048_1, ~m? +# 2048| v2048_3(void) = ConditionalBranch : r2048_2 #-----| False -> Block 9 #-----| True -> Block 8 -# 2000| Block 5 -# 2000| r2000_8(glval<int>) = VariableAddress[x] : -# 2000| r2000_9(int) = Load[x] : &:r2000_8, ~m? -# 2000| r2000_10(glval<int>) = VariableAddress[#temp2000:9] : -# 2000| mu2000_11(int) = Store[#temp2000:9] : &:r2000_10, r2000_9 +# 2047| Block 5 +# 2047| r2047_8(glval<int>) = VariableAddress[x] : +# 2047| r2047_9(int) = Load[x] : &:r2047_8, ~m? +# 2047| r2047_10(glval<int>) = VariableAddress[#temp2047:9] : +# 2047| mu2047_11(int) = Store[#temp2047:9] : &:r2047_10, r2047_9 #-----| Goto -> Block 4 -# 2000| Block 6 -# 2000| r2000_12(int) = Constant[5] : -# 2000| r2000_13(glval<int>) = VariableAddress[#temp2000:9] : -# 2000| mu2000_14(int) = Store[#temp2000:9] : &:r2000_13, r2000_12 +# 2047| Block 6 +# 2047| r2047_12(int) = Constant[5] : +# 2047| r2047_13(glval<int>) = VariableAddress[#temp2047:9] : +# 2047| mu2047_14(int) = Store[#temp2047:9] : &:r2047_13, r2047_12 #-----| Goto -> Block 4 -# 2001| Block 7 -# 2001| r2001_4(glval<int>) = VariableAddress[#temp2001:9] : -# 2001| r2001_5(int) = Load[#temp2001:9] : &:r2001_4, ~m? -# 2001| r2001_6(glval<int>) = VariableAddress[z] : -# 2001| mu2001_7(int) = Store[z] : &:r2001_6, r2001_5 -# 2002| r2002_1(int) = Constant[7] : -# 2002| r2002_2(glval<bool>) = VariableAddress[a] : -# 2002| r2002_3(bool) = Load[a] : &:r2002_2, ~m? -# 2002| v2002_4(void) = ConditionalBranch : r2002_3 +# 2048| Block 7 +# 2048| r2048_4(glval<int>) = VariableAddress[#temp2048:9] : +# 2048| r2048_5(int) = Load[#temp2048:9] : &:r2048_4, ~m? +# 2048| r2048_6(glval<int>) = VariableAddress[z] : +# 2048| mu2048_7(int) = Store[z] : &:r2048_6, r2048_5 +# 2049| r2049_1(int) = Constant[7] : +# 2049| r2049_2(glval<bool>) = VariableAddress[a] : +# 2049| r2049_3(bool) = Load[a] : &:r2049_2, ~m? +# 2049| v2049_4(void) = ConditionalBranch : r2049_3 #-----| False -> Block 12 #-----| True -> Block 11 -# 2001| Block 8 -# 2001| r2001_8(int) = Constant[3] : -# 2001| r2001_9(glval<int>) = VariableAddress[#temp2001:9] : -# 2001| mu2001_10(int) = Store[#temp2001:9] : &:r2001_9, r2001_8 +# 2048| Block 8 +# 2048| r2048_8(int) = Constant[3] : +# 2048| r2048_9(glval<int>) = VariableAddress[#temp2048:9] : +# 2048| mu2048_10(int) = Store[#temp2048:9] : &:r2048_9, r2048_8 #-----| Goto -> Block 7 -# 2001| Block 9 -# 2001| r2001_11(int) = Constant[5] : -# 2001| r2001_12(glval<int>) = VariableAddress[#temp2001:9] : -# 2001| mu2001_13(int) = Store[#temp2001:9] : &:r2001_12, r2001_11 +# 2048| Block 9 +# 2048| r2048_11(int) = Constant[5] : +# 2048| r2048_12(glval<int>) = VariableAddress[#temp2048:9] : +# 2048| mu2048_13(int) = Store[#temp2048:9] : &:r2048_12, r2048_11 #-----| Goto -> Block 7 -# 2002| Block 10 -# 2002| r2002_5(glval<unknown>) = VariableAddress[#temp2002:6] : -# 2002| r2002_6(glval<int>) = Load[#temp2002:6] : &:r2002_5, ~m? -# 2002| mu2002_7(int) = Store[?] : &:r2002_6, r2002_1 -# 2003| v2003_1(void) = NoOp : -# 1998| v1998_12(void) = ReturnVoid : -# 1998| v1998_13(void) = AliasedUse : ~m? -# 1998| v1998_14(void) = ExitFunction : +# 2049| Block 10 +# 2049| r2049_5(glval<unknown>) = VariableAddress[#temp2049:6] : +# 2049| r2049_6(glval<int>) = Load[#temp2049:6] : &:r2049_5, ~m? +# 2049| mu2049_7(int) = Store[?] : &:r2049_6, r2049_1 +# 2050| v2050_1(void) = NoOp : +# 2045| v2045_12(void) = ReturnVoid : +# 2045| v2045_13(void) = AliasedUse : ~m? +# 2045| v2045_14(void) = ExitFunction : -# 2002| Block 11 -# 2002| r2002_8(glval<int>) = VariableAddress[x] : -# 2002| r2002_9(glval<unknown>) = VariableAddress[#temp2002:6] : -# 2002| mu2002_10(glval<int>) = Store[#temp2002:6] : &:r2002_9, r2002_8 +# 2049| Block 11 +# 2049| r2049_8(glval<int>) = VariableAddress[x] : +# 2049| r2049_9(glval<unknown>) = VariableAddress[#temp2049:6] : +# 2049| mu2049_10(glval<int>) = Store[#temp2049:6] : &:r2049_9, r2049_8 #-----| Goto -> Block 10 -# 2002| Block 12 -# 2002| r2002_11(glval<int>) = VariableAddress[y] : -# 2002| r2002_12(glval<unknown>) = VariableAddress[#temp2002:6] : -# 2002| mu2002_13(glval<int>) = Store[#temp2002:6] : &:r2002_12, r2002_11 +# 2049| Block 12 +# 2049| r2049_11(glval<int>) = VariableAddress[y] : +# 2049| r2049_12(glval<unknown>) = VariableAddress[#temp2049:6] : +# 2049| mu2049_13(glval<int>) = Store[#temp2049:6] : &:r2049_12, r2049_11 #-----| Goto -> Block 10 -# 2008| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) -# 2008| Block 0 -# 2008| v2008_1(void) = EnterFunction : -# 2008| mu2008_2(unknown) = AliasedDefinition : -# 2008| mu2008_3(unknown) = InitializeNonLocal : -# 2008| r2008_4(glval<bool>) = VariableAddress[a] : -# 2008| mu2008_5(bool) = InitializeParameter[a] : &:r2008_4 -# 2008| r2008_6(glval<TernaryPodObj>) = VariableAddress[x] : -# 2008| mu2008_7(TernaryPodObj) = InitializeParameter[x] : &:r2008_6 -# 2008| r2008_8(glval<TernaryPodObj>) = VariableAddress[y] : -# 2008| mu2008_9(TernaryPodObj) = InitializeParameter[y] : &:r2008_8 -# 2008| r2008_10(glval<TernaryPodObj>) = VariableAddress[z] : -# 2008| mu2008_11(TernaryPodObj) = InitializeParameter[z] : &:r2008_10 -# 2009| r2009_1(glval<bool>) = VariableAddress[a] : -# 2009| r2009_2(bool) = Load[a] : &:r2009_1, ~m? -# 2009| v2009_3(void) = ConditionalBranch : r2009_2 +# 2055| void TernaryTestPodObj(bool, TernaryPodObj, TernaryPodObj, TernaryPodObj) +# 2055| Block 0 +# 2055| v2055_1(void) = EnterFunction : +# 2055| mu2055_2(unknown) = AliasedDefinition : +# 2055| mu2055_3(unknown) = InitializeNonLocal : +# 2055| r2055_4(glval<bool>) = VariableAddress[a] : +# 2055| mu2055_5(bool) = InitializeParameter[a] : &:r2055_4 +# 2055| r2055_6(glval<TernaryPodObj>) = VariableAddress[x] : +# 2055| mu2055_7(TernaryPodObj) = InitializeParameter[x] : &:r2055_6 +# 2055| r2055_8(glval<TernaryPodObj>) = VariableAddress[y] : +# 2055| mu2055_9(TernaryPodObj) = InitializeParameter[y] : &:r2055_8 +# 2055| r2055_10(glval<TernaryPodObj>) = VariableAddress[z] : +# 2055| mu2055_11(TernaryPodObj) = InitializeParameter[z] : &:r2055_10 +# 2056| r2056_1(glval<bool>) = VariableAddress[a] : +# 2056| r2056_2(bool) = Load[a] : &:r2056_1, ~m? +# 2056| v2056_3(void) = ConditionalBranch : r2056_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2009| Block 1 -# 2009| r2009_4(glval<TernaryPodObj>) = VariableAddress[#temp2009:9] : -# 2009| r2009_5(TernaryPodObj) = Load[#temp2009:9] : &:r2009_4, ~m? -# 2009| r2009_6(glval<TernaryPodObj>) = VariableAddress[z] : -# 2009| mu2009_7(TernaryPodObj) = Store[z] : &:r2009_6, r2009_5 -# 2010| r2010_1(glval<TernaryPodObj>) = VariableAddress[#temp2010:9] : -# 2010| r2010_2(glval<bool>) = VariableAddress[a] : -# 2010| r2010_3(bool) = Load[a] : &:r2010_2, ~m? -# 2010| v2010_4(void) = ConditionalBranch : r2010_3 +# 2056| Block 1 +# 2056| r2056_4(glval<TernaryPodObj>) = VariableAddress[#temp2056:9] : +# 2056| r2056_5(TernaryPodObj) = Load[#temp2056:9] : &:r2056_4, ~m? +# 2056| r2056_6(glval<TernaryPodObj>) = VariableAddress[z] : +# 2056| mu2056_7(TernaryPodObj) = Store[z] : &:r2056_6, r2056_5 +# 2057| r2057_1(glval<TernaryPodObj>) = VariableAddress[#temp2057:9] : +# 2057| r2057_2(glval<bool>) = VariableAddress[a] : +# 2057| r2057_3(bool) = Load[a] : &:r2057_2, ~m? +# 2057| v2057_4(void) = ConditionalBranch : r2057_3 #-----| False -> Block 6 #-----| True -> Block 5 -# 2009| Block 2 -# 2009| r2009_8(glval<TernaryPodObj>) = VariableAddress[x] : -# 2009| r2009_9(TernaryPodObj) = Load[x] : &:r2009_8, ~m? -# 2009| r2009_10(glval<TernaryPodObj>) = VariableAddress[#temp2009:9] : -# 2009| mu2009_11(TernaryPodObj) = Store[#temp2009:9] : &:r2009_10, r2009_9 +# 2056| Block 2 +# 2056| r2056_8(glval<TernaryPodObj>) = VariableAddress[x] : +# 2056| r2056_9(TernaryPodObj) = Load[x] : &:r2056_8, ~m? +# 2056| r2056_10(glval<TernaryPodObj>) = VariableAddress[#temp2056:9] : +# 2056| mu2056_11(TernaryPodObj) = Store[#temp2056:9] : &:r2056_10, r2056_9 #-----| Goto -> Block 1 -# 2009| Block 3 -# 2009| r2009_12(glval<TernaryPodObj>) = VariableAddress[y] : -# 2009| r2009_13(TernaryPodObj) = Load[y] : &:r2009_12, ~m? -# 2009| r2009_14(glval<TernaryPodObj>) = VariableAddress[#temp2009:9] : -# 2009| mu2009_15(TernaryPodObj) = Store[#temp2009:9] : &:r2009_14, r2009_13 +# 2056| Block 3 +# 2056| r2056_12(glval<TernaryPodObj>) = VariableAddress[y] : +# 2056| r2056_13(TernaryPodObj) = Load[y] : &:r2056_12, ~m? +# 2056| r2056_14(glval<TernaryPodObj>) = VariableAddress[#temp2056:9] : +# 2056| mu2056_15(TernaryPodObj) = Store[#temp2056:9] : &:r2056_14, r2056_13 #-----| Goto -> Block 1 -# 2010| Block 4 -# 2010| r2010_5(glval<TernaryPodObj>) = VariableAddress[#temp2010:9] : -# 2010| r2010_6(TernaryPodObj) = Load[#temp2010:9] : &:r2010_5, ~m? -# 2010| mu2010_7(TernaryPodObj) = Store[#temp2010:9] : &:r2010_1, r2010_6 -# 2010| r2010_8(TernaryPodObj) = Load[#temp2010:9] : &:r2010_1, ~m? -# 2010| r2010_9(glval<TernaryPodObj>) = VariableAddress[z] : -# 2010| mu2010_10(TernaryPodObj) = Store[z] : &:r2010_9, r2010_8 -# 2011| r2011_1(glval<TernaryPodObj>) = VariableAddress[#temp2011:9] : -# 2011| r2011_2(glval<bool>) = VariableAddress[a] : -# 2011| r2011_3(bool) = Load[a] : &:r2011_2, ~m? -# 2011| v2011_4(void) = ConditionalBranch : r2011_3 +# 2057| Block 4 +# 2057| r2057_5(glval<TernaryPodObj>) = VariableAddress[#temp2057:9] : +# 2057| r2057_6(TernaryPodObj) = Load[#temp2057:9] : &:r2057_5, ~m? +# 2057| mu2057_7(TernaryPodObj) = Store[#temp2057:9] : &:r2057_1, r2057_6 +# 2057| r2057_8(TernaryPodObj) = Load[#temp2057:9] : &:r2057_1, ~m? +# 2057| r2057_9(glval<TernaryPodObj>) = VariableAddress[z] : +# 2057| mu2057_10(TernaryPodObj) = Store[z] : &:r2057_9, r2057_8 +# 2058| r2058_1(glval<TernaryPodObj>) = VariableAddress[#temp2058:9] : +# 2058| r2058_2(glval<bool>) = VariableAddress[a] : +# 2058| r2058_3(bool) = Load[a] : &:r2058_2, ~m? +# 2058| v2058_4(void) = ConditionalBranch : r2058_3 #-----| False -> Block 9 #-----| True -> Block 8 -# 2010| Block 5 -# 2010| r2010_11(glval<TernaryPodObj>) = VariableAddress[#temp2010:13] : -# 2010| r2010_12(glval<TernaryPodObj>) = VariableAddress[x] : -# 2010| r2010_13(TernaryPodObj) = Load[x] : &:r2010_12, ~m? -# 2010| mu2010_14(TernaryPodObj) = Store[#temp2010:13] : &:r2010_11, r2010_13 -# 2010| r2010_15(TernaryPodObj) = Load[#temp2010:13] : &:r2010_11, ~m? -# 2010| r2010_16(glval<TernaryPodObj>) = VariableAddress[#temp2010:9] : -# 2010| mu2010_17(TernaryPodObj) = Store[#temp2010:9] : &:r2010_16, r2010_15 +# 2057| Block 5 +# 2057| r2057_11(glval<TernaryPodObj>) = VariableAddress[#temp2057:13] : +# 2057| r2057_12(glval<TernaryPodObj>) = VariableAddress[x] : +# 2057| r2057_13(TernaryPodObj) = Load[x] : &:r2057_12, ~m? +# 2057| mu2057_14(TernaryPodObj) = Store[#temp2057:13] : &:r2057_11, r2057_13 +# 2057| r2057_15(TernaryPodObj) = Load[#temp2057:13] : &:r2057_11, ~m? +# 2057| r2057_16(glval<TernaryPodObj>) = VariableAddress[#temp2057:9] : +# 2057| mu2057_17(TernaryPodObj) = Store[#temp2057:9] : &:r2057_16, r2057_15 #-----| Goto -> Block 4 -# 2010| Block 6 -# 2010| r2010_18(glval<TernaryPodObj>) = VariableAddress[#temp2010:17] : -# 2010| r2010_19(TernaryPodObj) = Constant[0] : -# 2010| mu2010_20(TernaryPodObj) = Store[#temp2010:17] : &:r2010_18, r2010_19 -# 2010| r2010_21(TernaryPodObj) = Load[#temp2010:17] : &:r2010_18, ~m? -# 2010| r2010_22(glval<TernaryPodObj>) = VariableAddress[#temp2010:9] : -# 2010| mu2010_23(TernaryPodObj) = Store[#temp2010:9] : &:r2010_22, r2010_21 +# 2057| Block 6 +# 2057| r2057_18(glval<TernaryPodObj>) = VariableAddress[#temp2057:17] : +# 2057| r2057_19(TernaryPodObj) = Constant[0] : +# 2057| mu2057_20(TernaryPodObj) = Store[#temp2057:17] : &:r2057_18, r2057_19 +# 2057| r2057_21(TernaryPodObj) = Load[#temp2057:17] : &:r2057_18, ~m? +# 2057| r2057_22(glval<TernaryPodObj>) = VariableAddress[#temp2057:9] : +# 2057| mu2057_23(TernaryPodObj) = Store[#temp2057:9] : &:r2057_22, r2057_21 #-----| Goto -> Block 4 -# 2011| Block 7 -# 2011| r2011_5(glval<TernaryPodObj>) = VariableAddress[#temp2011:9] : -# 2011| r2011_6(TernaryPodObj) = Load[#temp2011:9] : &:r2011_5, ~m? -# 2011| mu2011_7(TernaryPodObj) = Store[#temp2011:9] : &:r2011_1, r2011_6 -# 2011| r2011_8(TernaryPodObj) = Load[#temp2011:9] : &:r2011_1, ~m? -# 2011| r2011_9(glval<TernaryPodObj>) = VariableAddress[z] : -# 2011| mu2011_10(TernaryPodObj) = Store[z] : &:r2011_9, r2011_8 -# 2012| r2012_1(glval<TernaryPodObj>) = VariableAddress[#temp2012:23] : -# 2012| r2012_2(TernaryPodObj) = Constant[0] : -# 2012| mu2012_3(TernaryPodObj) = Store[#temp2012:23] : &:r2012_1, r2012_2 -# 2012| r2012_4(TernaryPodObj) = Load[#temp2012:23] : &:r2012_1, ~m? -# 2012| r2012_5(glval<bool>) = VariableAddress[a] : -# 2012| r2012_6(bool) = Load[a] : &:r2012_5, ~m? -# 2012| v2012_7(void) = ConditionalBranch : r2012_6 +# 2058| Block 7 +# 2058| r2058_5(glval<TernaryPodObj>) = VariableAddress[#temp2058:9] : +# 2058| r2058_6(TernaryPodObj) = Load[#temp2058:9] : &:r2058_5, ~m? +# 2058| mu2058_7(TernaryPodObj) = Store[#temp2058:9] : &:r2058_1, r2058_6 +# 2058| r2058_8(TernaryPodObj) = Load[#temp2058:9] : &:r2058_1, ~m? +# 2058| r2058_9(glval<TernaryPodObj>) = VariableAddress[z] : +# 2058| mu2058_10(TernaryPodObj) = Store[z] : &:r2058_9, r2058_8 +# 2059| r2059_1(glval<TernaryPodObj>) = VariableAddress[#temp2059:23] : +# 2059| r2059_2(TernaryPodObj) = Constant[0] : +# 2059| mu2059_3(TernaryPodObj) = Store[#temp2059:23] : &:r2059_1, r2059_2 +# 2059| r2059_4(TernaryPodObj) = Load[#temp2059:23] : &:r2059_1, ~m? +# 2059| r2059_5(glval<bool>) = VariableAddress[a] : +# 2059| r2059_6(bool) = Load[a] : &:r2059_5, ~m? +# 2059| v2059_7(void) = ConditionalBranch : r2059_6 #-----| False -> Block 12 #-----| True -> Block 11 -# 2011| Block 8 -# 2011| r2011_11(glval<TernaryPodObj>) = VariableAddress[#temp2011:13] : -# 2011| r2011_12(TernaryPodObj) = Constant[0] : -# 2011| mu2011_13(TernaryPodObj) = Store[#temp2011:13] : &:r2011_11, r2011_12 -# 2011| r2011_14(TernaryPodObj) = Load[#temp2011:13] : &:r2011_11, ~m? -# 2011| r2011_15(glval<TernaryPodObj>) = VariableAddress[#temp2011:9] : -# 2011| mu2011_16(TernaryPodObj) = Store[#temp2011:9] : &:r2011_15, r2011_14 +# 2058| Block 8 +# 2058| r2058_11(glval<TernaryPodObj>) = VariableAddress[#temp2058:13] : +# 2058| r2058_12(TernaryPodObj) = Constant[0] : +# 2058| mu2058_13(TernaryPodObj) = Store[#temp2058:13] : &:r2058_11, r2058_12 +# 2058| r2058_14(TernaryPodObj) = Load[#temp2058:13] : &:r2058_11, ~m? +# 2058| r2058_15(glval<TernaryPodObj>) = VariableAddress[#temp2058:9] : +# 2058| mu2058_16(TernaryPodObj) = Store[#temp2058:9] : &:r2058_15, r2058_14 #-----| Goto -> Block 7 -# 2011| Block 9 -# 2011| r2011_17(glval<TernaryPodObj>) = VariableAddress[#temp2011:31] : -# 2011| r2011_18(TernaryPodObj) = Constant[0] : -# 2011| mu2011_19(TernaryPodObj) = Store[#temp2011:31] : &:r2011_17, r2011_18 -# 2011| r2011_20(TernaryPodObj) = Load[#temp2011:31] : &:r2011_17, ~m? -# 2011| r2011_21(glval<TernaryPodObj>) = VariableAddress[#temp2011:9] : -# 2011| mu2011_22(TernaryPodObj) = Store[#temp2011:9] : &:r2011_21, r2011_20 +# 2058| Block 9 +# 2058| r2058_17(glval<TernaryPodObj>) = VariableAddress[#temp2058:31] : +# 2058| r2058_18(TernaryPodObj) = Constant[0] : +# 2058| mu2058_19(TernaryPodObj) = Store[#temp2058:31] : &:r2058_17, r2058_18 +# 2058| r2058_20(TernaryPodObj) = Load[#temp2058:31] : &:r2058_17, ~m? +# 2058| r2058_21(glval<TernaryPodObj>) = VariableAddress[#temp2058:9] : +# 2058| mu2058_22(TernaryPodObj) = Store[#temp2058:9] : &:r2058_21, r2058_20 #-----| Goto -> Block 7 -# 2012| Block 10 -# 2012| r2012_8(glval<TernaryPodObj>) = VariableAddress[#temp2012:10] : -# 2012| r2012_9(TernaryPodObj) = Load[#temp2012:10] : &:r2012_8, ~m? -# 2012| r2012_10(glval<TernaryPodObj>) = VariableAddress[z] : -# 2012| mu2012_11(TernaryPodObj) = Store[z] : &:r2012_10, r2012_9 -# 2012| r2012_12(glval<TernaryPodObj>) = CopyValue : r2012_10 -# 2012| mu2012_13(TernaryPodObj) = Store[?] : &:r2012_12, r2012_4 -# 2013| v2013_1(void) = NoOp : -# 2008| v2008_12(void) = ReturnVoid : -# 2008| v2008_13(void) = AliasedUse : ~m? -# 2008| v2008_14(void) = ExitFunction : +# 2059| Block 10 +# 2059| r2059_8(glval<TernaryPodObj>) = VariableAddress[#temp2059:10] : +# 2059| r2059_9(TernaryPodObj) = Load[#temp2059:10] : &:r2059_8, ~m? +# 2059| r2059_10(glval<TernaryPodObj>) = VariableAddress[z] : +# 2059| mu2059_11(TernaryPodObj) = Store[z] : &:r2059_10, r2059_9 +# 2059| r2059_12(glval<TernaryPodObj>) = CopyValue : r2059_10 +# 2059| mu2059_13(TernaryPodObj) = Store[?] : &:r2059_12, r2059_4 +# 2060| v2060_1(void) = NoOp : +# 2055| v2055_12(void) = ReturnVoid : +# 2055| v2055_13(void) = AliasedUse : ~m? +# 2055| v2055_14(void) = ExitFunction : -# 2012| Block 11 -# 2012| r2012_14(glval<TernaryPodObj>) = VariableAddress[x] : -# 2012| r2012_15(TernaryPodObj) = Load[x] : &:r2012_14, ~m? -# 2012| r2012_16(glval<TernaryPodObj>) = VariableAddress[#temp2012:10] : -# 2012| mu2012_17(TernaryPodObj) = Store[#temp2012:10] : &:r2012_16, r2012_15 +# 2059| Block 11 +# 2059| r2059_14(glval<TernaryPodObj>) = VariableAddress[x] : +# 2059| r2059_15(TernaryPodObj) = Load[x] : &:r2059_14, ~m? +# 2059| r2059_16(glval<TernaryPodObj>) = VariableAddress[#temp2059:10] : +# 2059| mu2059_17(TernaryPodObj) = Store[#temp2059:10] : &:r2059_16, r2059_15 #-----| Goto -> Block 10 -# 2012| Block 12 -# 2012| r2012_18(glval<TernaryPodObj>) = VariableAddress[y] : -# 2012| r2012_19(TernaryPodObj) = Load[y] : &:r2012_18, ~m? -# 2012| r2012_20(glval<TernaryPodObj>) = VariableAddress[#temp2012:10] : -# 2012| mu2012_21(TernaryPodObj) = Store[#temp2012:10] : &:r2012_20, r2012_19 +# 2059| Block 12 +# 2059| r2059_18(glval<TernaryPodObj>) = VariableAddress[y] : +# 2059| r2059_19(TernaryPodObj) = Load[y] : &:r2059_18, ~m? +# 2059| r2059_20(glval<TernaryPodObj>) = VariableAddress[#temp2059:10] : +# 2059| mu2059_21(TernaryPodObj) = Store[#temp2059:10] : &:r2059_20, r2059_19 #-----| Goto -> Block 10 -# 2015| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) -# 2015| Block 0 -# 2015| v2015_1(void) = EnterFunction : -# 2015| mu2015_2(unknown) = AliasedDefinition : -# 2015| mu2015_3(unknown) = InitializeNonLocal : -# 2015| r2015_4(glval<unknown>) = VariableAddress[#this] : -# 2015| mu2015_5(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2015_4 -# 2015| r2015_6(glval<TernaryNonPodObj>) = Load[#this] : &:r2015_4, ~m? -# 2015| mu2015_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2015_6 +# 2062| TernaryNonPodObj& TernaryNonPodObj::operator=(TernaryNonPodObj const&) +# 2062| Block 0 +# 2062| v2062_1(void) = EnterFunction : +# 2062| mu2062_2(unknown) = AliasedDefinition : +# 2062| mu2062_3(unknown) = InitializeNonLocal : +# 2062| r2062_4(glval<unknown>) = VariableAddress[#this] : +# 2062| mu2062_5(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2062_4 +# 2062| r2062_6(glval<TernaryNonPodObj>) = Load[#this] : &:r2062_4, ~m? +# 2062| mu2062_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2062_6 #-----| r0_1(glval<TernaryNonPodObj &>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? @@ -11455,2478 +11473,2523 @@ ir.cpp: #-----| r0_8(glval<TernaryNonPodObj>) = CopyValue : r0_7 #-----| r0_9(TernaryNonPodObj &) = CopyValue : r0_8 #-----| mu0_10(TernaryNonPodObj &) = Store[#return] : &:r0_5, r0_9 -# 2015| v2015_8(void) = ReturnIndirection[#this] : &:r2015_6, ~m? +# 2062| v2062_8(void) = ReturnIndirection[#this] : &:r2062_6, ~m? #-----| v0_11(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 2015| r2015_9(glval<TernaryNonPodObj &>) = VariableAddress[#return] : -# 2015| v2015_10(void) = ReturnValue : &:r2015_9, ~m? -# 2015| v2015_11(void) = AliasedUse : ~m? -# 2015| v2015_12(void) = ExitFunction : +# 2062| r2062_9(glval<TernaryNonPodObj &>) = VariableAddress[#return] : +# 2062| v2062_10(void) = ReturnValue : &:r2062_9, ~m? +# 2062| v2062_11(void) = AliasedUse : ~m? +# 2062| v2062_12(void) = ExitFunction : -# 2015| void TernaryNonPodObj::TernaryNonPodObj() -# 2015| Block 0 -# 2015| v2015_1(void) = EnterFunction : -# 2015| mu2015_2(unknown) = AliasedDefinition : -# 2015| mu2015_3(unknown) = InitializeNonLocal : -# 2015| r2015_4(glval<unknown>) = VariableAddress[#this] : -# 2015| mu2015_5(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2015_4 -# 2015| r2015_6(glval<TernaryNonPodObj>) = Load[#this] : &:r2015_4, ~m? -# 2015| mu2015_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2015_6 -# 2015| v2015_8(void) = NoOp : -# 2015| v2015_9(void) = ReturnIndirection[#this] : &:r2015_6, ~m? -# 2015| v2015_10(void) = ReturnVoid : -# 2015| v2015_11(void) = AliasedUse : ~m? -# 2015| v2015_12(void) = ExitFunction : +# 2062| void TernaryNonPodObj::TernaryNonPodObj() +# 2062| Block 0 +# 2062| v2062_1(void) = EnterFunction : +# 2062| mu2062_2(unknown) = AliasedDefinition : +# 2062| mu2062_3(unknown) = InitializeNonLocal : +# 2062| r2062_4(glval<unknown>) = VariableAddress[#this] : +# 2062| mu2062_5(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2062_4 +# 2062| r2062_6(glval<TernaryNonPodObj>) = Load[#this] : &:r2062_4, ~m? +# 2062| mu2062_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2062_6 +# 2062| v2062_8(void) = NoOp : +# 2062| v2062_9(void) = ReturnIndirection[#this] : &:r2062_6, ~m? +# 2062| v2062_10(void) = ReturnVoid : +# 2062| v2062_11(void) = AliasedUse : ~m? +# 2062| v2062_12(void) = ExitFunction : -# 2015| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) -# 2015| Block 0 -# 2015| v2015_1(void) = EnterFunction : -# 2015| mu2015_2(unknown) = AliasedDefinition : -# 2015| mu2015_3(unknown) = InitializeNonLocal : -# 2015| r2015_4(glval<unknown>) = VariableAddress[#this] : -# 2015| mu2015_5(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2015_4 -# 2015| r2015_6(glval<TernaryNonPodObj>) = Load[#this] : &:r2015_4, ~m? -# 2015| mu2015_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2015_6 +# 2062| void TernaryNonPodObj::TernaryNonPodObj(TernaryNonPodObj const&) +# 2062| Block 0 +# 2062| v2062_1(void) = EnterFunction : +# 2062| mu2062_2(unknown) = AliasedDefinition : +# 2062| mu2062_3(unknown) = InitializeNonLocal : +# 2062| r2062_4(glval<unknown>) = VariableAddress[#this] : +# 2062| mu2062_5(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2062_4 +# 2062| r2062_6(glval<TernaryNonPodObj>) = Load[#this] : &:r2062_4, ~m? +# 2062| mu2062_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2062_6 #-----| r0_1(glval<TernaryNonPodObj &>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(TernaryNonPodObj &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(TernaryNonPodObj &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2015| v2015_8(void) = NoOp : -# 2015| v2015_9(void) = ReturnIndirection[#this] : &:r2015_6, ~m? +# 2062| v2062_8(void) = NoOp : +# 2062| v2062_9(void) = ReturnIndirection[#this] : &:r2062_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 2015| v2015_10(void) = ReturnVoid : -# 2015| v2015_11(void) = AliasedUse : ~m? -# 2015| v2015_12(void) = ExitFunction : +# 2062| v2062_10(void) = ReturnVoid : +# 2062| v2062_11(void) = AliasedUse : ~m? +# 2062| v2062_12(void) = ExitFunction : -# 2016| void TernaryNonPodObj::~TernaryNonPodObj() -# 2016| Block 0 -# 2016| v2016_1(void) = EnterFunction : -# 2016| mu2016_2(unknown) = AliasedDefinition : -# 2016| mu2016_3(unknown) = InitializeNonLocal : -# 2016| r2016_4(glval<unknown>) = VariableAddress[#this] : -# 2016| mu2016_5(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2016_4 -# 2016| r2016_6(glval<TernaryNonPodObj>) = Load[#this] : &:r2016_4, ~m? -# 2016| mu2016_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2016_6 -# 2016| v2016_8(void) = NoOp : -# 2016| v2016_9(void) = ReturnIndirection[#this] : &:r2016_6, ~m? -# 2016| v2016_10(void) = ReturnVoid : -# 2016| v2016_11(void) = AliasedUse : ~m? -# 2016| v2016_12(void) = ExitFunction : +# 2063| void TernaryNonPodObj::~TernaryNonPodObj() +# 2063| Block 0 +# 2063| v2063_1(void) = EnterFunction : +# 2063| mu2063_2(unknown) = AliasedDefinition : +# 2063| mu2063_3(unknown) = InitializeNonLocal : +# 2063| r2063_4(glval<unknown>) = VariableAddress[#this] : +# 2063| mu2063_5(glval<TernaryNonPodObj>) = InitializeParameter[#this] : &:r2063_4 +# 2063| r2063_6(glval<TernaryNonPodObj>) = Load[#this] : &:r2063_4, ~m? +# 2063| mu2063_7(TernaryNonPodObj) = InitializeIndirection[#this] : &:r2063_6 +# 2063| v2063_8(void) = NoOp : +# 2063| v2063_9(void) = ReturnIndirection[#this] : &:r2063_6, ~m? +# 2063| v2063_10(void) = ReturnVoid : +# 2063| v2063_11(void) = AliasedUse : ~m? +# 2063| v2063_12(void) = ExitFunction : -# 2019| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) -# 2019| Block 0 -# 2019| v2019_1(void) = EnterFunction : -# 2019| mu2019_2(unknown) = AliasedDefinition : -# 2019| mu2019_3(unknown) = InitializeNonLocal : -# 2019| r2019_4(glval<bool>) = VariableAddress[a] : -# 2019| mu2019_5(bool) = InitializeParameter[a] : &:r2019_4 -# 2019| r2019_6(glval<TernaryNonPodObj>) = VariableAddress[x] : -# 2019| mu2019_7(TernaryNonPodObj) = InitializeParameter[x] : &:r2019_6 -# 2019| r2019_8(glval<TernaryNonPodObj>) = VariableAddress[y] : -# 2019| mu2019_9(TernaryNonPodObj) = InitializeParameter[y] : &:r2019_8 -# 2019| r2019_10(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2019| mu2019_11(TernaryNonPodObj) = InitializeParameter[z] : &:r2019_10 -# 2020| r2020_1(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2020| r2020_2(glval<unknown>) = FunctionAddress[operator=] : -# 2020| r2020_3(glval<bool>) = VariableAddress[a] : -# 2020| r2020_4(bool) = Load[a] : &:r2020_3, ~m? -# 2020| v2020_5(void) = ConditionalBranch : r2020_4 +# 2066| void TernaryTestNonPodObj(bool, TernaryNonPodObj, TernaryNonPodObj, TernaryNonPodObj) +# 2066| Block 0 +# 2066| v2066_1(void) = EnterFunction : +# 2066| mu2066_2(unknown) = AliasedDefinition : +# 2066| mu2066_3(unknown) = InitializeNonLocal : +# 2066| r2066_4(glval<bool>) = VariableAddress[a] : +# 2066| mu2066_5(bool) = InitializeParameter[a] : &:r2066_4 +# 2066| r2066_6(glval<TernaryNonPodObj>) = VariableAddress[x] : +# 2066| mu2066_7(TernaryNonPodObj) = InitializeParameter[x] : &:r2066_6 +# 2066| r2066_8(glval<TernaryNonPodObj>) = VariableAddress[y] : +# 2066| mu2066_9(TernaryNonPodObj) = InitializeParameter[y] : &:r2066_8 +# 2066| r2066_10(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2066| mu2066_11(TernaryNonPodObj) = InitializeParameter[z] : &:r2066_10 +# 2067| r2067_1(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2067| r2067_2(glval<unknown>) = FunctionAddress[operator=] : +# 2067| r2067_3(glval<bool>) = VariableAddress[a] : +# 2067| r2067_4(bool) = Load[a] : &:r2067_3, ~m? +# 2067| v2067_5(void) = ConditionalBranch : r2067_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2020| Block 1 -# 2020| r2020_6(glval<unknown>) = VariableAddress[#temp2020:9] : -# 2020| r2020_7(glval<TernaryNonPodObj>) = Load[#temp2020:9] : &:r2020_6, ~m? -# 2020| r2020_8(glval<TernaryNonPodObj>) = Convert : r2020_7 -# 2020| r2020_9(TernaryNonPodObj &) = CopyValue : r2020_8 -# 2020| r2020_10(TernaryNonPodObj &) = Call[operator=] : func:r2020_2, this:r2020_1, 0:r2020_9 -# 2020| mu2020_11(unknown) = ^CallSideEffect : ~m? -# 2020| v2020_12(void) = ^IndirectReadSideEffect[-1] : &:r2020_1, ~m? -# 2020| v2020_13(void) = ^BufferReadSideEffect[0] : &:r2020_9, ~m? -# 2020| mu2020_14(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2020_1 -# 2020| r2020_15(glval<TernaryNonPodObj>) = CopyValue : r2020_10 -# 2021| r2021_1(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2021| r2021_2(glval<unknown>) = FunctionAddress[operator=] : -# 2021| r2021_3(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:9] : -# 2021| r2021_4(glval<bool>) = VariableAddress[a] : -# 2021| r2021_5(bool) = Load[a] : &:r2021_4, ~m? -# 2021| v2021_6(void) = ConditionalBranch : r2021_5 +# 2067| Block 1 +# 2067| r2067_6(glval<unknown>) = VariableAddress[#temp2067:9] : +# 2067| r2067_7(glval<TernaryNonPodObj>) = Load[#temp2067:9] : &:r2067_6, ~m? +# 2067| r2067_8(glval<TernaryNonPodObj>) = Convert : r2067_7 +# 2067| r2067_9(TernaryNonPodObj &) = CopyValue : r2067_8 +# 2067| r2067_10(TernaryNonPodObj &) = Call[operator=] : func:r2067_2, this:r2067_1, 0:r2067_9 +# 2067| mu2067_11(unknown) = ^CallSideEffect : ~m? +# 2067| v2067_12(void) = ^IndirectReadSideEffect[-1] : &:r2067_1, ~m? +# 2067| v2067_13(void) = ^BufferReadSideEffect[0] : &:r2067_9, ~m? +# 2067| mu2067_14(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2067_1 +# 2067| r2067_15(glval<TernaryNonPodObj>) = CopyValue : r2067_10 +# 2068| r2068_1(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2068| r2068_2(glval<unknown>) = FunctionAddress[operator=] : +# 2068| r2068_3(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:9] : +# 2068| r2068_4(glval<bool>) = VariableAddress[a] : +# 2068| r2068_5(bool) = Load[a] : &:r2068_4, ~m? +# 2068| v2068_6(void) = ConditionalBranch : r2068_5 #-----| False -> Block 6 #-----| True -> Block 5 -# 2020| Block 2 -# 2020| r2020_16(glval<TernaryNonPodObj>) = VariableAddress[x] : -# 2020| r2020_17(glval<unknown>) = VariableAddress[#temp2020:9] : -# 2020| mu2020_18(glval<TernaryNonPodObj>) = Store[#temp2020:9] : &:r2020_17, r2020_16 +# 2067| Block 2 +# 2067| r2067_16(glval<TernaryNonPodObj>) = VariableAddress[x] : +# 2067| r2067_17(glval<unknown>) = VariableAddress[#temp2067:9] : +# 2067| mu2067_18(glval<TernaryNonPodObj>) = Store[#temp2067:9] : &:r2067_17, r2067_16 #-----| Goto -> Block 1 -# 2020| Block 3 -# 2020| r2020_19(glval<TernaryNonPodObj>) = VariableAddress[y] : -# 2020| r2020_20(glval<unknown>) = VariableAddress[#temp2020:9] : -# 2020| mu2020_21(glval<TernaryNonPodObj>) = Store[#temp2020:9] : &:r2020_20, r2020_19 +# 2067| Block 3 +# 2067| r2067_19(glval<TernaryNonPodObj>) = VariableAddress[y] : +# 2067| r2067_20(glval<unknown>) = VariableAddress[#temp2067:9] : +# 2067| mu2067_21(glval<TernaryNonPodObj>) = Store[#temp2067:9] : &:r2067_20, r2067_19 #-----| Goto -> Block 1 -# 2021| Block 4 -# 2021| r2021_7(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:9] : -# 2021| r2021_8(TernaryNonPodObj) = Load[#temp2021:9] : &:r2021_7, ~m? -# 2021| mu2021_9(TernaryNonPodObj) = Store[#temp2021:9] : &:r2021_3, r2021_8 -# 2021| r2021_10(glval<TernaryNonPodObj>) = Convert : r2021_3 -# 2021| r2021_11(TernaryNonPodObj &) = CopyValue : r2021_10 -# 2021| r2021_12(TernaryNonPodObj &) = Call[operator=] : func:r2021_2, this:r2021_1, 0:r2021_11 -# 2021| mu2021_13(unknown) = ^CallSideEffect : ~m? -# 2021| v2021_14(void) = ^IndirectReadSideEffect[-1] : &:r2021_1, ~m? -# 2021| v2021_15(void) = ^BufferReadSideEffect[0] : &:r2021_11, ~m? -# 2021| mu2021_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_1 -# 2021| r2021_17(glval<TernaryNonPodObj>) = CopyValue : r2021_12 -# 2022| r2022_1(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2022| r2022_2(glval<unknown>) = FunctionAddress[operator=] : -# 2022| r2022_3(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:9] : -# 2022| r2022_4(glval<bool>) = VariableAddress[a] : -# 2022| r2022_5(bool) = Load[a] : &:r2022_4, ~m? -# 2022| v2022_6(void) = ConditionalBranch : r2022_5 +# 2068| Block 4 +# 2068| r2068_7(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:9] : +# 2068| r2068_8(TernaryNonPodObj) = Load[#temp2068:9] : &:r2068_7, ~m? +# 2068| mu2068_9(TernaryNonPodObj) = Store[#temp2068:9] : &:r2068_3, r2068_8 +# 2068| r2068_10(glval<TernaryNonPodObj>) = Convert : r2068_3 +# 2068| r2068_11(TernaryNonPodObj &) = CopyValue : r2068_10 +# 2068| r2068_12(TernaryNonPodObj &) = Call[operator=] : func:r2068_2, this:r2068_1, 0:r2068_11 +# 2068| mu2068_13(unknown) = ^CallSideEffect : ~m? +# 2068| v2068_14(void) = ^IndirectReadSideEffect[-1] : &:r2068_1, ~m? +# 2068| v2068_15(void) = ^BufferReadSideEffect[0] : &:r2068_11, ~m? +# 2068| mu2068_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2068_1 +# 2068| r2068_17(glval<TernaryNonPodObj>) = CopyValue : r2068_12 +# 2069| r2069_1(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2069| r2069_2(glval<unknown>) = FunctionAddress[operator=] : +# 2069| r2069_3(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:9] : +# 2069| r2069_4(glval<bool>) = VariableAddress[a] : +# 2069| r2069_5(bool) = Load[a] : &:r2069_4, ~m? +# 2069| v2069_6(void) = ConditionalBranch : r2069_5 #-----| False -> Block 9 #-----| True -> Block 8 -# 2021| Block 5 -# 2021| r2021_18(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:13] : -# 2021| mu2021_19(TernaryNonPodObj) = Uninitialized[#temp2021:13] : &:r2021_18 -# 2021| r2021_20(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2021| r2021_21(glval<TernaryNonPodObj>) = VariableAddress[x] : -# 2021| r2021_22(glval<TernaryNonPodObj>) = Convert : r2021_21 -# 2021| r2021_23(TernaryNonPodObj &) = CopyValue : r2021_22 -# 2021| v2021_24(void) = Call[TernaryNonPodObj] : func:r2021_20, this:r2021_18, 0:r2021_23 -# 2021| mu2021_25(unknown) = ^CallSideEffect : ~m? -# 2021| v2021_26(void) = ^BufferReadSideEffect[0] : &:r2021_23, ~m? -# 2021| mu2021_27(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_18 -# 2021| r2021_28(TernaryNonPodObj) = Load[#temp2021:13] : &:r2021_18, ~m? -# 2021| r2021_29(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:9] : -# 2021| mu2021_30(TernaryNonPodObj) = Store[#temp2021:9] : &:r2021_29, r2021_28 +# 2068| Block 5 +# 2068| r2068_18(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:13] : +# 2068| mu2068_19(TernaryNonPodObj) = Uninitialized[#temp2068:13] : &:r2068_18 +# 2068| r2068_20(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2068| r2068_21(glval<TernaryNonPodObj>) = VariableAddress[x] : +# 2068| r2068_22(glval<TernaryNonPodObj>) = Convert : r2068_21 +# 2068| r2068_23(TernaryNonPodObj &) = CopyValue : r2068_22 +# 2068| v2068_24(void) = Call[TernaryNonPodObj] : func:r2068_20, this:r2068_18, 0:r2068_23 +# 2068| mu2068_25(unknown) = ^CallSideEffect : ~m? +# 2068| v2068_26(void) = ^BufferReadSideEffect[0] : &:r2068_23, ~m? +# 2068| mu2068_27(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2068_18 +# 2068| r2068_28(TernaryNonPodObj) = Load[#temp2068:13] : &:r2068_18, ~m? +# 2068| r2068_29(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:9] : +# 2068| mu2068_30(TernaryNonPodObj) = Store[#temp2068:9] : &:r2068_29, r2068_28 #-----| Goto -> Block 4 -# 2021| Block 6 -# 2021| r2021_31(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:17] : -# 2021| mu2021_32(TernaryNonPodObj) = Uninitialized[#temp2021:17] : &:r2021_31 -# 2021| r2021_33(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2021| v2021_34(void) = Call[TernaryNonPodObj] : func:r2021_33, this:r2021_31 -# 2021| mu2021_35(unknown) = ^CallSideEffect : ~m? -# 2021| mu2021_36(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2021_31 -# 2021| r2021_37(TernaryNonPodObj) = Load[#temp2021:17] : &:r2021_31, ~m? -# 2021| r2021_38(glval<TernaryNonPodObj>) = VariableAddress[#temp2021:9] : -# 2021| mu2021_39(TernaryNonPodObj) = Store[#temp2021:9] : &:r2021_38, r2021_37 +# 2068| Block 6 +# 2068| r2068_31(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:17] : +# 2068| mu2068_32(TernaryNonPodObj) = Uninitialized[#temp2068:17] : &:r2068_31 +# 2068| r2068_33(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2068| v2068_34(void) = Call[TernaryNonPodObj] : func:r2068_33, this:r2068_31 +# 2068| mu2068_35(unknown) = ^CallSideEffect : ~m? +# 2068| mu2068_36(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2068_31 +# 2068| r2068_37(TernaryNonPodObj) = Load[#temp2068:17] : &:r2068_31, ~m? +# 2068| r2068_38(glval<TernaryNonPodObj>) = VariableAddress[#temp2068:9] : +# 2068| mu2068_39(TernaryNonPodObj) = Store[#temp2068:9] : &:r2068_38, r2068_37 #-----| Goto -> Block 4 -# 2022| Block 7 -# 2022| r2022_7(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:9] : -# 2022| r2022_8(TernaryNonPodObj) = Load[#temp2022:9] : &:r2022_7, ~m? -# 2022| mu2022_9(TernaryNonPodObj) = Store[#temp2022:9] : &:r2022_3, r2022_8 -# 2022| r2022_10(glval<TernaryNonPodObj>) = Convert : r2022_3 -# 2022| r2022_11(TernaryNonPodObj &) = CopyValue : r2022_10 -# 2022| r2022_12(TernaryNonPodObj &) = Call[operator=] : func:r2022_2, this:r2022_1, 0:r2022_11 -# 2022| mu2022_13(unknown) = ^CallSideEffect : ~m? -# 2022| v2022_14(void) = ^IndirectReadSideEffect[-1] : &:r2022_1, ~m? -# 2022| v2022_15(void) = ^BufferReadSideEffect[0] : &:r2022_11, ~m? -# 2022| mu2022_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2022_1 -# 2022| r2022_17(glval<TernaryNonPodObj>) = CopyValue : r2022_12 -# 2023| r2023_1(glval<TernaryNonPodObj>) = VariableAddress[z] : -# 2023| r2023_2(glval<unknown>) = FunctionAddress[operator=] : -# 2023| r2023_3(glval<bool>) = VariableAddress[a] : -# 2023| r2023_4(bool) = Load[a] : &:r2023_3, ~m? -# 2023| v2023_5(void) = ConditionalBranch : r2023_4 +# 2069| Block 7 +# 2069| r2069_7(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:9] : +# 2069| r2069_8(TernaryNonPodObj) = Load[#temp2069:9] : &:r2069_7, ~m? +# 2069| mu2069_9(TernaryNonPodObj) = Store[#temp2069:9] : &:r2069_3, r2069_8 +# 2069| r2069_10(glval<TernaryNonPodObj>) = Convert : r2069_3 +# 2069| r2069_11(TernaryNonPodObj &) = CopyValue : r2069_10 +# 2069| r2069_12(TernaryNonPodObj &) = Call[operator=] : func:r2069_2, this:r2069_1, 0:r2069_11 +# 2069| mu2069_13(unknown) = ^CallSideEffect : ~m? +# 2069| v2069_14(void) = ^IndirectReadSideEffect[-1] : &:r2069_1, ~m? +# 2069| v2069_15(void) = ^BufferReadSideEffect[0] : &:r2069_11, ~m? +# 2069| mu2069_16(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2069_1 +# 2069| r2069_17(glval<TernaryNonPodObj>) = CopyValue : r2069_12 +# 2070| r2070_1(glval<TernaryNonPodObj>) = VariableAddress[z] : +# 2070| r2070_2(glval<unknown>) = FunctionAddress[operator=] : +# 2070| r2070_3(glval<bool>) = VariableAddress[a] : +# 2070| r2070_4(bool) = Load[a] : &:r2070_3, ~m? +# 2070| v2070_5(void) = ConditionalBranch : r2070_4 #-----| False -> Block 12 #-----| True -> Block 11 -# 2022| Block 8 -# 2022| r2022_18(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:13] : -# 2022| mu2022_19(TernaryNonPodObj) = Uninitialized[#temp2022:13] : &:r2022_18 -# 2022| r2022_20(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2022| v2022_21(void) = Call[TernaryNonPodObj] : func:r2022_20, this:r2022_18 -# 2022| mu2022_22(unknown) = ^CallSideEffect : ~m? -# 2022| mu2022_23(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2022_18 -# 2022| r2022_24(TernaryNonPodObj) = Load[#temp2022:13] : &:r2022_18, ~m? -# 2022| r2022_25(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:9] : -# 2022| mu2022_26(TernaryNonPodObj) = Store[#temp2022:9] : &:r2022_25, r2022_24 +# 2069| Block 8 +# 2069| r2069_18(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:13] : +# 2069| mu2069_19(TernaryNonPodObj) = Uninitialized[#temp2069:13] : &:r2069_18 +# 2069| r2069_20(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2069| v2069_21(void) = Call[TernaryNonPodObj] : func:r2069_20, this:r2069_18 +# 2069| mu2069_22(unknown) = ^CallSideEffect : ~m? +# 2069| mu2069_23(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2069_18 +# 2069| r2069_24(TernaryNonPodObj) = Load[#temp2069:13] : &:r2069_18, ~m? +# 2069| r2069_25(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:9] : +# 2069| mu2069_26(TernaryNonPodObj) = Store[#temp2069:9] : &:r2069_25, r2069_24 #-----| Goto -> Block 7 -# 2022| Block 9 -# 2022| r2022_27(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:34] : -# 2022| mu2022_28(TernaryNonPodObj) = Uninitialized[#temp2022:34] : &:r2022_27 -# 2022| r2022_29(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2022| v2022_30(void) = Call[TernaryNonPodObj] : func:r2022_29, this:r2022_27 -# 2022| mu2022_31(unknown) = ^CallSideEffect : ~m? -# 2022| mu2022_32(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2022_27 -# 2022| r2022_33(TernaryNonPodObj) = Load[#temp2022:34] : &:r2022_27, ~m? -# 2022| r2022_34(glval<TernaryNonPodObj>) = VariableAddress[#temp2022:9] : -# 2022| mu2022_35(TernaryNonPodObj) = Store[#temp2022:9] : &:r2022_34, r2022_33 +# 2069| Block 9 +# 2069| r2069_27(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:34] : +# 2069| mu2069_28(TernaryNonPodObj) = Uninitialized[#temp2069:34] : &:r2069_27 +# 2069| r2069_29(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2069| v2069_30(void) = Call[TernaryNonPodObj] : func:r2069_29, this:r2069_27 +# 2069| mu2069_31(unknown) = ^CallSideEffect : ~m? +# 2069| mu2069_32(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2069_27 +# 2069| r2069_33(TernaryNonPodObj) = Load[#temp2069:34] : &:r2069_27, ~m? +# 2069| r2069_34(glval<TernaryNonPodObj>) = VariableAddress[#temp2069:9] : +# 2069| mu2069_35(TernaryNonPodObj) = Store[#temp2069:9] : &:r2069_34, r2069_33 #-----| Goto -> Block 7 -# 2023| Block 10 -# 2023| r2023_6(glval<unknown>) = VariableAddress[#temp2023:10] : -# 2023| r2023_7(glval<TernaryNonPodObj>) = Load[#temp2023:10] : &:r2023_6, ~m? -# 2023| r2023_8(glval<TernaryNonPodObj>) = Convert : r2023_7 -# 2023| r2023_9(TernaryNonPodObj &) = CopyValue : r2023_8 -# 2023| r2023_10(TernaryNonPodObj &) = Call[operator=] : func:r2023_2, this:r2023_1, 0:r2023_9 -# 2023| mu2023_11(unknown) = ^CallSideEffect : ~m? -# 2023| v2023_12(void) = ^IndirectReadSideEffect[-1] : &:r2023_1, ~m? -# 2023| v2023_13(void) = ^BufferReadSideEffect[0] : &:r2023_9, ~m? -# 2023| mu2023_14(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2023_1 -# 2023| r2023_15(glval<TernaryNonPodObj>) = CopyValue : r2023_10 -# 2023| r2023_16(glval<unknown>) = FunctionAddress[operator=] : -# 2023| r2023_17(glval<TernaryNonPodObj>) = VariableAddress[#temp2023:23] : -# 2023| mu2023_18(TernaryNonPodObj) = Uninitialized[#temp2023:23] : &:r2023_17 -# 2023| r2023_19(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : -# 2023| v2023_20(void) = Call[TernaryNonPodObj] : func:r2023_19, this:r2023_17 -# 2023| mu2023_21(unknown) = ^CallSideEffect : ~m? -# 2023| mu2023_22(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2023_17 -# 2023| r2023_23(glval<TernaryNonPodObj>) = Convert : r2023_17 -# 2023| r2023_24(TernaryNonPodObj &) = CopyValue : r2023_23 -# 2023| r2023_25(TernaryNonPodObj &) = Call[operator=] : func:r2023_16, this:r2023_15, 0:r2023_24 -# 2023| mu2023_26(unknown) = ^CallSideEffect : ~m? -# 2023| v2023_27(void) = ^IndirectReadSideEffect[-1] : &:r2023_15, ~m? -# 2023| v2023_28(void) = ^BufferReadSideEffect[0] : &:r2023_24, ~m? -# 2023| mu2023_29(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2023_15 -# 2023| r2023_30(glval<TernaryNonPodObj>) = CopyValue : r2023_25 -# 2024| v2024_1(void) = NoOp : -# 2019| v2019_12(void) = ReturnVoid : -# 2019| v2019_13(void) = AliasedUse : ~m? -# 2019| v2019_14(void) = ExitFunction : +# 2070| Block 10 +# 2070| r2070_6(glval<unknown>) = VariableAddress[#temp2070:10] : +# 2070| r2070_7(glval<TernaryNonPodObj>) = Load[#temp2070:10] : &:r2070_6, ~m? +# 2070| r2070_8(glval<TernaryNonPodObj>) = Convert : r2070_7 +# 2070| r2070_9(TernaryNonPodObj &) = CopyValue : r2070_8 +# 2070| r2070_10(TernaryNonPodObj &) = Call[operator=] : func:r2070_2, this:r2070_1, 0:r2070_9 +# 2070| mu2070_11(unknown) = ^CallSideEffect : ~m? +# 2070| v2070_12(void) = ^IndirectReadSideEffect[-1] : &:r2070_1, ~m? +# 2070| v2070_13(void) = ^BufferReadSideEffect[0] : &:r2070_9, ~m? +# 2070| mu2070_14(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2070_1 +# 2070| r2070_15(glval<TernaryNonPodObj>) = CopyValue : r2070_10 +# 2070| r2070_16(glval<unknown>) = FunctionAddress[operator=] : +# 2070| r2070_17(glval<TernaryNonPodObj>) = VariableAddress[#temp2070:23] : +# 2070| mu2070_18(TernaryNonPodObj) = Uninitialized[#temp2070:23] : &:r2070_17 +# 2070| r2070_19(glval<unknown>) = FunctionAddress[TernaryNonPodObj] : +# 2070| v2070_20(void) = Call[TernaryNonPodObj] : func:r2070_19, this:r2070_17 +# 2070| mu2070_21(unknown) = ^CallSideEffect : ~m? +# 2070| mu2070_22(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2070_17 +# 2070| r2070_23(glval<TernaryNonPodObj>) = Convert : r2070_17 +# 2070| r2070_24(TernaryNonPodObj &) = CopyValue : r2070_23 +# 2070| r2070_25(TernaryNonPodObj &) = Call[operator=] : func:r2070_16, this:r2070_15, 0:r2070_24 +# 2070| mu2070_26(unknown) = ^CallSideEffect : ~m? +# 2070| v2070_27(void) = ^IndirectReadSideEffect[-1] : &:r2070_15, ~m? +# 2070| v2070_28(void) = ^BufferReadSideEffect[0] : &:r2070_24, ~m? +# 2070| mu2070_29(TernaryNonPodObj) = ^IndirectMayWriteSideEffect[-1] : &:r2070_15 +# 2070| r2070_30(glval<TernaryNonPodObj>) = CopyValue : r2070_25 +# 2071| v2071_1(void) = NoOp : +# 2066| v2066_12(void) = ReturnVoid : +# 2066| v2066_13(void) = AliasedUse : ~m? +# 2066| v2066_14(void) = ExitFunction : -# 2023| Block 11 -# 2023| r2023_31(glval<TernaryNonPodObj>) = VariableAddress[x] : -# 2023| r2023_32(glval<unknown>) = VariableAddress[#temp2023:10] : -# 2023| mu2023_33(glval<TernaryNonPodObj>) = Store[#temp2023:10] : &:r2023_32, r2023_31 +# 2070| Block 11 +# 2070| r2070_31(glval<TernaryNonPodObj>) = VariableAddress[x] : +# 2070| r2070_32(glval<unknown>) = VariableAddress[#temp2070:10] : +# 2070| mu2070_33(glval<TernaryNonPodObj>) = Store[#temp2070:10] : &:r2070_32, r2070_31 #-----| Goto -> Block 10 -# 2023| Block 12 -# 2023| r2023_34(glval<TernaryNonPodObj>) = VariableAddress[y] : -# 2023| r2023_35(glval<unknown>) = VariableAddress[#temp2023:10] : -# 2023| mu2023_36(glval<TernaryNonPodObj>) = Store[#temp2023:10] : &:r2023_35, r2023_34 +# 2070| Block 12 +# 2070| r2070_34(glval<TernaryNonPodObj>) = VariableAddress[y] : +# 2070| r2070_35(glval<unknown>) = VariableAddress[#temp2070:10] : +# 2070| mu2070_36(glval<TernaryNonPodObj>) = Store[#temp2070:10] : &:r2070_35, r2070_34 #-----| Goto -> Block 10 -# 2028| unsigned int CommaTest(unsigned int) -# 2028| Block 0 -# 2028| v2028_1(void) = EnterFunction : -# 2028| mu2028_2(unknown) = AliasedDefinition : -# 2028| mu2028_3(unknown) = InitializeNonLocal : -# 2028| r2028_4(glval<unsigned int>) = VariableAddress[x] : -# 2028| mu2028_5(unsigned int) = InitializeParameter[x] : &:r2028_4 -# 2029| r2029_1(glval<unsigned int>) = VariableAddress[y] : -# 2029| mu2029_2(unsigned int) = Uninitialized[y] : &:r2029_1 -# 2030| r2030_1(glval<unsigned int>) = VariableAddress[x] : -# 2030| r2030_2(unsigned int) = Load[x] : &:r2030_1, ~m? -# 2030| r2030_3(unsigned int) = Constant[100] : -# 2030| r2030_4(bool) = CompareLT : r2030_2, r2030_3 -# 2030| v2030_5(void) = ConditionalBranch : r2030_4 +# 2075| unsigned int CommaTest(unsigned int) +# 2075| Block 0 +# 2075| v2075_1(void) = EnterFunction : +# 2075| mu2075_2(unknown) = AliasedDefinition : +# 2075| mu2075_3(unknown) = InitializeNonLocal : +# 2075| r2075_4(glval<unsigned int>) = VariableAddress[x] : +# 2075| mu2075_5(unsigned int) = InitializeParameter[x] : &:r2075_4 +# 2076| r2076_1(glval<unsigned int>) = VariableAddress[y] : +# 2076| mu2076_2(unsigned int) = Uninitialized[y] : &:r2076_1 +# 2077| r2077_1(glval<unsigned int>) = VariableAddress[x] : +# 2077| r2077_2(unsigned int) = Load[x] : &:r2077_1, ~m? +# 2077| r2077_3(unsigned int) = Constant[100] : +# 2077| r2077_4(bool) = CompareLT : r2077_2, r2077_3 +# 2077| v2077_5(void) = ConditionalBranch : r2077_4 #-----| False -> Block 3 #-----| True -> Block 2 -# 2030| Block 1 -# 2030| r2030_6(glval<unsigned int>) = VariableAddress[#temp2030:7] : -# 2030| r2030_7(unsigned int) = Load[#temp2030:7] : &:r2030_6, ~m? -# 2030| r2030_8(glval<unsigned int>) = VariableAddress[y] : -# 2030| mu2030_9(unsigned int) = Store[y] : &:r2030_8, r2030_7 -# 2033| r2033_1(glval<unsigned int>) = VariableAddress[#return] : -# 2033| mu2033_2(unsigned int) = Uninitialized[#return] : &:r2033_1 -# 2028| r2028_6(glval<unsigned int>) = VariableAddress[#return] : -# 2028| v2028_7(void) = ReturnValue : &:r2028_6, ~m? -# 2028| v2028_8(void) = AliasedUse : ~m? -# 2028| v2028_9(void) = ExitFunction : +# 2077| Block 1 +# 2077| r2077_6(glval<unsigned int>) = VariableAddress[#temp2077:7] : +# 2077| r2077_7(unsigned int) = Load[#temp2077:7] : &:r2077_6, ~m? +# 2077| r2077_8(glval<unsigned int>) = VariableAddress[y] : +# 2077| mu2077_9(unsigned int) = Store[y] : &:r2077_8, r2077_7 +# 2080| r2080_1(glval<unsigned int>) = VariableAddress[#return] : +# 2080| mu2080_2(unsigned int) = Uninitialized[#return] : &:r2080_1 +# 2075| r2075_6(glval<unsigned int>) = VariableAddress[#return] : +# 2075| v2075_7(void) = ReturnValue : &:r2075_6, ~m? +# 2075| v2075_8(void) = AliasedUse : ~m? +# 2075| v2075_9(void) = ExitFunction : -# 2031| Block 2 -# 2031| r2031_1(glval<unknown>) = FunctionAddress[CommaTestHelper] : -# 2031| r2031_2(glval<unsigned int>) = VariableAddress[x] : -# 2031| r2031_3(unsigned int) = Load[x] : &:r2031_2, ~m? -# 2031| v2031_4(void) = Call[CommaTestHelper] : func:r2031_1, 0:r2031_3 -# 2031| mu2031_5(unknown) = ^CallSideEffect : ~m? -# 2031| r2031_6(glval<unsigned int>) = VariableAddress[x] : -# 2031| r2031_7(unsigned int) = Load[x] : &:r2031_6, ~m? -# 2031| r2031_8(unsigned int) = CopyValue : r2031_7 -# 2030| r2030_10(glval<unsigned int>) = VariableAddress[#temp2030:7] : -# 2030| mu2030_11(unsigned int) = Store[#temp2030:7] : &:r2030_10, r2031_8 +# 2078| Block 2 +# 2078| r2078_1(glval<unknown>) = FunctionAddress[CommaTestHelper] : +# 2078| r2078_2(glval<unsigned int>) = VariableAddress[x] : +# 2078| r2078_3(unsigned int) = Load[x] : &:r2078_2, ~m? +# 2078| v2078_4(void) = Call[CommaTestHelper] : func:r2078_1, 0:r2078_3 +# 2078| mu2078_5(unknown) = ^CallSideEffect : ~m? +# 2078| r2078_6(glval<unsigned int>) = VariableAddress[x] : +# 2078| r2078_7(unsigned int) = Load[x] : &:r2078_6, ~m? +# 2078| r2078_8(unsigned int) = CopyValue : r2078_7 +# 2077| r2077_10(glval<unsigned int>) = VariableAddress[#temp2077:7] : +# 2077| mu2077_11(unsigned int) = Store[#temp2077:7] : &:r2077_10, r2078_8 #-----| Goto -> Block 1 -# 2032| Block 3 -# 2032| r2032_1(glval<unknown>) = FunctionAddress[CommaTestHelper] : -# 2032| r2032_2(glval<unsigned int>) = VariableAddress[x] : -# 2032| r2032_3(unsigned int) = Load[x] : &:r2032_2, ~m? -# 2032| v2032_4(void) = Call[CommaTestHelper] : func:r2032_1, 0:r2032_3 -# 2032| mu2032_5(unknown) = ^CallSideEffect : ~m? -# 2032| r2032_6(int) = Constant[10] : -# 2032| r2032_7(int) = CopyValue : r2032_6 -# 2032| r2032_8(unsigned int) = Convert : r2032_7 -# 2030| r2030_12(glval<unsigned int>) = VariableAddress[#temp2030:7] : -# 2030| mu2030_13(unsigned int) = Store[#temp2030:7] : &:r2030_12, r2032_8 +# 2079| Block 3 +# 2079| r2079_1(glval<unknown>) = FunctionAddress[CommaTestHelper] : +# 2079| r2079_2(glval<unsigned int>) = VariableAddress[x] : +# 2079| r2079_3(unsigned int) = Load[x] : &:r2079_2, ~m? +# 2079| v2079_4(void) = Call[CommaTestHelper] : func:r2079_1, 0:r2079_3 +# 2079| mu2079_5(unknown) = ^CallSideEffect : ~m? +# 2079| r2079_6(int) = Constant[10] : +# 2079| r2079_7(int) = CopyValue : r2079_6 +# 2079| r2079_8(unsigned int) = Convert : r2079_7 +# 2077| r2077_12(glval<unsigned int>) = VariableAddress[#temp2077:7] : +# 2077| mu2077_13(unsigned int) = Store[#temp2077:7] : &:r2077_12, r2079_8 #-----| Goto -> Block 1 -# 2035| void NewDeleteMem() -# 2035| Block 0 -# 2035| v2035_1(void) = EnterFunction : -# 2035| mu2035_2(unknown) = AliasedDefinition : -# 2035| mu2035_3(unknown) = InitializeNonLocal : -# 2036| r2036_1(glval<int *>) = VariableAddress[x] : -# 2036| r2036_2(glval<unknown>) = FunctionAddress[operator new] : -# 2036| r2036_3(unsigned long) = Constant[4] : -# 2036| r2036_4(void *) = Call[operator new] : func:r2036_2, 0:r2036_3 -# 2036| mu2036_5(unknown) = ^CallSideEffect : ~m? -# 2036| mu2036_6(unknown) = ^InitializeDynamicAllocation : &:r2036_4 -# 2036| r2036_7(int *) = Convert : r2036_4 -# 2036| mu2036_8(int *) = Store[x] : &:r2036_1, r2036_7 -# 2037| r2037_1(int) = Constant[6] : -# 2037| r2037_2(glval<int *>) = VariableAddress[x] : -# 2037| r2037_3(int *) = Load[x] : &:r2037_2, ~m? -# 2037| r2037_4(glval<int>) = CopyValue : r2037_3 -# 2037| mu2037_5(int) = Store[?] : &:r2037_4, r2037_1 -# 2038| r2038_1(glval<unknown>) = FunctionAddress[operator delete] : -# 2038| r2038_2(glval<int *>) = VariableAddress[x] : -# 2038| r2038_3(int *) = Load[x] : &:r2038_2, ~m? -# 2038| v2038_4(void) = Call[operator delete] : func:r2038_1, 0:r2038_3 -# 2038| mu2038_5(unknown) = ^CallSideEffect : ~m? -# 2039| v2039_1(void) = NoOp : -# 2035| v2035_4(void) = ReturnVoid : -# 2035| v2035_5(void) = AliasedUse : ~m? -# 2035| v2035_6(void) = ExitFunction : +# 2082| void NewDeleteMem() +# 2082| Block 0 +# 2082| v2082_1(void) = EnterFunction : +# 2082| mu2082_2(unknown) = AliasedDefinition : +# 2082| mu2082_3(unknown) = InitializeNonLocal : +# 2083| r2083_1(glval<int *>) = VariableAddress[x] : +# 2083| r2083_2(glval<unknown>) = FunctionAddress[operator new] : +# 2083| r2083_3(unsigned long) = Constant[4] : +# 2083| r2083_4(void *) = Call[operator new] : func:r2083_2, 0:r2083_3 +# 2083| mu2083_5(unknown) = ^CallSideEffect : ~m? +# 2083| mu2083_6(unknown) = ^InitializeDynamicAllocation : &:r2083_4 +# 2083| r2083_7(int *) = Convert : r2083_4 +# 2083| mu2083_8(int *) = Store[x] : &:r2083_1, r2083_7 +# 2084| r2084_1(int) = Constant[6] : +# 2084| r2084_2(glval<int *>) = VariableAddress[x] : +# 2084| r2084_3(int *) = Load[x] : &:r2084_2, ~m? +# 2084| r2084_4(glval<int>) = CopyValue : r2084_3 +# 2084| mu2084_5(int) = Store[?] : &:r2084_4, r2084_1 +# 2085| r2085_1(glval<unknown>) = FunctionAddress[operator delete] : +# 2085| r2085_2(glval<int *>) = VariableAddress[x] : +# 2085| r2085_3(int *) = Load[x] : &:r2085_2, ~m? +# 2085| v2085_4(void) = Call[operator delete] : func:r2085_1, 0:r2085_3 +# 2085| mu2085_5(unknown) = ^CallSideEffect : ~m? +# 2086| v2086_1(void) = NoOp : +# 2082| v2082_4(void) = ReturnVoid : +# 2082| v2082_5(void) = AliasedUse : ~m? +# 2082| v2082_6(void) = ExitFunction : -# 2041| void Base2::Base2() -# 2041| Block 0 -# 2041| v2041_1(void) = EnterFunction : -# 2041| mu2041_2(unknown) = AliasedDefinition : -# 2041| mu2041_3(unknown) = InitializeNonLocal : -# 2041| r2041_4(glval<unknown>) = VariableAddress[#this] : -# 2041| mu2041_5(glval<Base2>) = InitializeParameter[#this] : &:r2041_4 -# 2041| r2041_6(glval<Base2>) = Load[#this] : &:r2041_4, ~m? -# 2041| mu2041_7(Base2) = InitializeIndirection[#this] : &:r2041_6 -# 2041| v2041_8(void) = NoOp : -# 2041| v2041_9(void) = ReturnIndirection[#this] : &:r2041_6, ~m? -# 2041| v2041_10(void) = ReturnVoid : -# 2041| v2041_11(void) = AliasedUse : ~m? -# 2041| v2041_12(void) = ExitFunction : +# 2088| void Base2::Base2() +# 2088| Block 0 +# 2088| v2088_1(void) = EnterFunction : +# 2088| mu2088_2(unknown) = AliasedDefinition : +# 2088| mu2088_3(unknown) = InitializeNonLocal : +# 2088| r2088_4(glval<unknown>) = VariableAddress[#this] : +# 2088| mu2088_5(glval<Base2>) = InitializeParameter[#this] : &:r2088_4 +# 2088| r2088_6(glval<Base2>) = Load[#this] : &:r2088_4, ~m? +# 2088| mu2088_7(Base2) = InitializeIndirection[#this] : &:r2088_6 +# 2088| v2088_8(void) = NoOp : +# 2088| v2088_9(void) = ReturnIndirection[#this] : &:r2088_6, ~m? +# 2088| v2088_10(void) = ReturnVoid : +# 2088| v2088_11(void) = AliasedUse : ~m? +# 2088| v2088_12(void) = ExitFunction : -# 2043| void Base2::operator delete(void*) -# 2043| Block 0 -# 2043| v2043_1(void) = EnterFunction : -# 2043| mu2043_2(unknown) = AliasedDefinition : -# 2043| mu2043_3(unknown) = InitializeNonLocal : -# 2043| r2043_4(glval<void *>) = VariableAddress[p] : -# 2043| mu2043_5(void *) = InitializeParameter[p] : &:r2043_4 -# 2043| r2043_6(void *) = Load[p] : &:r2043_4, ~m? -# 2043| mu2043_7(unknown) = InitializeIndirection[p] : &:r2043_6 -# 2044| v2044_1(void) = NoOp : -# 2043| v2043_8(void) = ReturnIndirection[p] : &:r2043_6, ~m? -# 2043| v2043_9(void) = ReturnVoid : -# 2043| v2043_10(void) = AliasedUse : ~m? -# 2043| v2043_11(void) = ExitFunction : +# 2090| void Base2::operator delete(void*) +# 2090| Block 0 +# 2090| v2090_1(void) = EnterFunction : +# 2090| mu2090_2(unknown) = AliasedDefinition : +# 2090| mu2090_3(unknown) = InitializeNonLocal : +# 2090| r2090_4(glval<void *>) = VariableAddress[p] : +# 2090| mu2090_5(void *) = InitializeParameter[p] : &:r2090_4 +# 2090| r2090_6(void *) = Load[p] : &:r2090_4, ~m? +# 2090| mu2090_7(unknown) = InitializeIndirection[p] : &:r2090_6 +# 2091| v2091_1(void) = NoOp : +# 2090| v2090_8(void) = ReturnIndirection[p] : &:r2090_6, ~m? +# 2090| v2090_9(void) = ReturnVoid : +# 2090| v2090_10(void) = AliasedUse : ~m? +# 2090| v2090_11(void) = ExitFunction : -# 2045| void Base2::~Base2() -# 2045| Block 0 -# 2045| v2045_1(void) = EnterFunction : -# 2045| mu2045_2(unknown) = AliasedDefinition : -# 2045| mu2045_3(unknown) = InitializeNonLocal : -# 2045| r2045_4(glval<unknown>) = VariableAddress[#this] : -# 2045| mu2045_5(glval<Base2>) = InitializeParameter[#this] : &:r2045_4 -# 2045| r2045_6(glval<Base2>) = Load[#this] : &:r2045_4, ~m? -# 2045| mu2045_7(Base2) = InitializeIndirection[#this] : &:r2045_6 -# 2045| v2045_8(void) = NoOp : -# 2045| v2045_9(void) = ReturnIndirection[#this] : &:r2045_6, ~m? -# 2045| v2045_10(void) = ReturnVoid : -# 2045| v2045_11(void) = AliasedUse : ~m? -# 2045| v2045_12(void) = ExitFunction : - -# 2048| void Derived2::Derived2() -# 2048| Block 0 -# 2048| v2048_1(void) = EnterFunction : -# 2048| mu2048_2(unknown) = AliasedDefinition : -# 2048| mu2048_3(unknown) = InitializeNonLocal : -# 2048| r2048_4(glval<unknown>) = VariableAddress[#this] : -# 2048| mu2048_5(glval<Derived2>) = InitializeParameter[#this] : &:r2048_4 -# 2048| r2048_6(glval<Derived2>) = Load[#this] : &:r2048_4, ~m? -# 2048| mu2048_7(Derived2) = InitializeIndirection[#this] : &:r2048_6 -# 2048| r2048_8(glval<Base2>) = ConvertToNonVirtualBase[Derived2 : Base2] : mu2048_5 -# 2048| r2048_9(glval<unknown>) = FunctionAddress[Base2] : -# 2048| v2048_10(void) = Call[Base2] : func:r2048_9, this:r2048_8 -# 2048| mu2048_11(unknown) = ^CallSideEffect : ~m? -# 2048| mu2048_12(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2048_8 -# 2048| v2048_13(void) = NoOp : -# 2048| v2048_14(void) = ReturnIndirection[#this] : &:r2048_6, ~m? -# 2048| v2048_15(void) = ReturnVoid : -# 2048| v2048_16(void) = AliasedUse : ~m? -# 2048| v2048_17(void) = ExitFunction : - -# 2051| void Derived2::~Derived2() -# 2051| Block 0 -# 2051| v2051_1(void) = EnterFunction : -# 2051| mu2051_2(unknown) = AliasedDefinition : -# 2051| mu2051_3(unknown) = InitializeNonLocal : -# 2051| r2051_4(glval<unknown>) = VariableAddress[#this] : -# 2051| mu2051_5(glval<Derived2>) = InitializeParameter[#this] : &:r2051_4 -# 2051| r2051_6(glval<Derived2>) = Load[#this] : &:r2051_4, ~m? -# 2051| mu2051_7(Derived2) = InitializeIndirection[#this] : &:r2051_6 -# 2051| v2051_8(void) = NoOp : -# 2051| r2051_9(glval<Base2>) = ConvertToNonVirtualBase[Derived2 : Base2] : mu2051_5 -# 2051| r2051_10(glval<unknown>) = FunctionAddress[~Base2] : -# 2051| v2051_11(void) = Call[~Base2] : func:r2051_10, this:r2051_9 -# 2051| mu2051_12(unknown) = ^CallSideEffect : ~m? -# 2051| v2051_13(void) = ReturnIndirection[#this] : &:r2051_6, ~m? -# 2051| v2051_14(void) = ReturnVoid : -# 2051| v2051_15(void) = AliasedUse : ~m? -# 2051| v2051_16(void) = ExitFunction : - -# 2053| void Derived2::operator delete(void*) -# 2053| Block 0 -# 2053| v2053_1(void) = EnterFunction : -# 2053| mu2053_2(unknown) = AliasedDefinition : -# 2053| mu2053_3(unknown) = InitializeNonLocal : -# 2053| r2053_4(glval<void *>) = VariableAddress[p] : -# 2053| mu2053_5(void *) = InitializeParameter[p] : &:r2053_4 -# 2053| r2053_6(void *) = Load[p] : &:r2053_4, ~m? -# 2053| mu2053_7(unknown) = InitializeIndirection[p] : &:r2053_6 -# 2054| v2054_1(void) = NoOp : -# 2053| v2053_8(void) = ReturnIndirection[p] : &:r2053_6, ~m? -# 2053| v2053_9(void) = ReturnVoid : -# 2053| v2053_10(void) = AliasedUse : ~m? -# 2053| v2053_11(void) = ExitFunction : - -# 2058| int virtual_delete() -# 2058| Block 0 -# 2058| v2058_1(void) = EnterFunction : -# 2058| mu2058_2(unknown) = AliasedDefinition : -# 2058| mu2058_3(unknown) = InitializeNonLocal : -# 2060| r2060_1(glval<Base2 *>) = VariableAddress[b1] : -# 2060| r2060_2(glval<unknown>) = FunctionAddress[operator new] : -# 2060| r2060_3(unsigned long) = Constant[8] : -# 2060| r2060_4(void *) = Call[operator new] : func:r2060_2, 0:r2060_3 -# 2060| mu2060_5(unknown) = ^CallSideEffect : ~m? -# 2060| mu2060_6(unknown) = ^InitializeDynamicAllocation : &:r2060_4 -# 2060| r2060_7(Base2 *) = Convert : r2060_4 -# 2060| r2060_8(glval<unknown>) = FunctionAddress[Base2] : -# 2060| v2060_9(void) = Call[Base2] : func:r2060_8, this:r2060_7 -# 2060| mu2060_10(unknown) = ^CallSideEffect : ~m? -# 2060| mu2060_11(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2060_7 -# 2060| mu2060_12(Base2 *) = Store[b1] : &:r2060_1, r2060_7 -# 2061| r2061_1(glval<unknown>) = VirtualDeleteFunctionAddress : -# 2061| r2061_2(glval<Base2 *>) = VariableAddress[b1] : -# 2061| r2061_3(Base2 *) = Load[b1] : &:r2061_2, ~m? -# 2061| v2061_4(void) = Call[?] : func:r2061_1, 0:r2061_3 -# 2061| mu2061_5(unknown) = ^CallSideEffect : ~m? -# 2063| r2063_1(glval<Base2 *>) = VariableAddress[b2] : -# 2063| r2063_2(glval<unknown>) = FunctionAddress[operator new] : -# 2063| r2063_3(unsigned long) = Constant[16] : -# 2063| r2063_4(void *) = Call[operator new] : func:r2063_2, 0:r2063_3 -# 2063| mu2063_5(unknown) = ^CallSideEffect : ~m? -# 2063| mu2063_6(unknown) = ^InitializeDynamicAllocation : &:r2063_4 -# 2063| r2063_7(Derived2 *) = Convert : r2063_4 -# 2063| r2063_8(glval<unknown>) = FunctionAddress[Derived2] : -# 2063| v2063_9(void) = Call[Derived2] : func:r2063_8, this:r2063_7 -# 2063| mu2063_10(unknown) = ^CallSideEffect : ~m? -# 2063| mu2063_11(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2063_7 -# 2063| r2063_12(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2063_7 -# 2063| mu2063_13(Base2 *) = Store[b2] : &:r2063_1, r2063_12 -# 2064| r2064_1(glval<unknown>) = VirtualDeleteFunctionAddress : -# 2064| r2064_2(glval<Base2 *>) = VariableAddress[b2] : -# 2064| r2064_3(Base2 *) = Load[b2] : &:r2064_2, ~m? -# 2064| v2064_4(void) = Call[?] : func:r2064_1, 0:r2064_3 -# 2064| mu2064_5(unknown) = ^CallSideEffect : ~m? -# 2066| r2066_1(glval<Derived2 *>) = VariableAddress[d] : -# 2066| r2066_2(glval<unknown>) = FunctionAddress[operator new] : -# 2066| r2066_3(unsigned long) = Constant[16] : -# 2066| r2066_4(void *) = Call[operator new] : func:r2066_2, 0:r2066_3 -# 2066| mu2066_5(unknown) = ^CallSideEffect : ~m? -# 2066| mu2066_6(unknown) = ^InitializeDynamicAllocation : &:r2066_4 -# 2066| r2066_7(Derived2 *) = Convert : r2066_4 -# 2066| r2066_8(glval<unknown>) = FunctionAddress[Derived2] : -# 2066| v2066_9(void) = Call[Derived2] : func:r2066_8, this:r2066_7 -# 2066| mu2066_10(unknown) = ^CallSideEffect : ~m? -# 2066| mu2066_11(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2066_7 -# 2066| mu2066_12(Derived2 *) = Store[d] : &:r2066_1, r2066_7 -# 2067| r2067_1(glval<unknown>) = VirtualDeleteFunctionAddress : -# 2067| r2067_2(glval<Derived2 *>) = VariableAddress[d] : -# 2067| r2067_3(Derived2 *) = Load[d] : &:r2067_2, ~m? -# 2067| v2067_4(void) = Call[?] : func:r2067_1, 0:r2067_3 -# 2067| mu2067_5(unknown) = ^CallSideEffect : ~m? -# 2068| r2068_1(glval<int>) = VariableAddress[#return] : -# 2068| mu2068_2(int) = Uninitialized[#return] : &:r2068_1 -# 2058| r2058_4(glval<int>) = VariableAddress[#return] : -# 2058| v2058_5(void) = ReturnValue : &:r2058_4, ~m? -# 2058| v2058_6(void) = AliasedUse : ~m? -# 2058| v2058_7(void) = ExitFunction : - -# 2072| void test_constant_folding() -# 2072| Block 0 -# 2072| v2072_1(void) = EnterFunction : -# 2072| mu2072_2(unknown) = AliasedDefinition : -# 2072| mu2072_3(unknown) = InitializeNonLocal : -# 2073| r2073_1(glval<int>) = VariableAddress[x] : -# 2073| r2073_2(int) = Constant[116] : -# 2073| mu2073_3(int) = Store[x] : &:r2073_1, r2073_2 -# 2074| r2074_1(glval<unknown>) = FunctionAddress[test_constant_folding_use] : -# 2074| r2074_2(int) = Constant[116] : -# 2074| v2074_3(void) = Call[test_constant_folding_use] : func:r2074_1, 0:r2074_2 -# 2074| mu2074_4(unknown) = ^CallSideEffect : ~m? -# 2075| v2075_1(void) = NoOp : -# 2072| v2072_4(void) = ReturnVoid : -# 2072| v2072_5(void) = AliasedUse : ~m? -# 2072| v2072_6(void) = ExitFunction : - -# 2079| int NonExit() -# 2079| Block 0 -# 2079| v2079_1(void) = EnterFunction : -# 2079| mu2079_2(unknown) = AliasedDefinition : -# 2079| mu2079_3(unknown) = InitializeNonLocal : -# 2080| r2080_1(glval<int>) = VariableAddress[x] : -# 2080| r2080_2(glval<unknown>) = FunctionAddress[Add] : -# 2080| r2080_3(int) = Constant[3] : -# 2080| r2080_4(int) = Constant[4] : -# 2080| r2080_5(int) = Call[Add] : func:r2080_2, 0:r2080_3, 1:r2080_4 -# 2080| mu2080_6(unknown) = ^CallSideEffect : ~m? -# 2080| mu2080_7(int) = Store[x] : &:r2080_1, r2080_5 -# 2081| r2081_1(glval<int>) = VariableAddress[x] : -# 2081| r2081_2(int) = Load[x] : &:r2081_1, ~m? -# 2081| r2081_3(int) = Constant[7] : -# 2081| r2081_4(bool) = CompareEQ : r2081_2, r2081_3 -# 2081| v2081_5(void) = ConditionalBranch : r2081_4 -#-----| False -> Block 2 -#-----| True -> Block 1 - -# 2082| Block 1 -# 2082| r2082_1(glval<unknown>) = FunctionAddress[exit] : -# 2082| r2082_2(int) = Constant[3] : -# 2082| v2082_3(void) = Call[exit] : func:r2082_1, 0:r2082_2 -# 2082| mu2082_4(unknown) = ^CallSideEffect : ~m? -# 2079| v2079_4(void) = Unreached : - -# 2083| Block 2 -# 2083| r2083_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2083| v2083_2(void) = Call[VoidFunc] : func:r2083_1 -# 2083| mu2083_3(unknown) = ^CallSideEffect : ~m? -# 2084| r2084_1(glval<int>) = VariableAddress[#return] : -# 2084| r2084_2(glval<int>) = VariableAddress[x] : -# 2084| r2084_3(int) = Load[x] : &:r2084_2, ~m? -# 2084| mu2084_4(int) = Store[#return] : &:r2084_1, r2084_3 -# 2079| r2079_5(glval<int>) = VariableAddress[#return] : -# 2079| v2079_6(void) = ReturnValue : &:r2079_5, ~m? -# 2079| v2079_7(void) = AliasedUse : ~m? -# 2079| v2079_8(void) = ExitFunction : - -# 2087| void CallsNonExit() -# 2087| Block 0 -# 2087| v2087_1(void) = EnterFunction : -# 2087| mu2087_2(unknown) = AliasedDefinition : -# 2087| mu2087_3(unknown) = InitializeNonLocal : -# 2088| r2088_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2088| v2088_2(void) = Call[VoidFunc] : func:r2088_1 -# 2088| mu2088_3(unknown) = ^CallSideEffect : ~m? -# 2089| r2089_1(glval<unknown>) = FunctionAddress[exit] : -# 2089| r2089_2(int) = Constant[3] : -# 2089| v2089_3(void) = Call[exit] : func:r2089_1, 0:r2089_2 -# 2089| mu2089_4(unknown) = ^CallSideEffect : ~m? -# 2087| v2087_4(void) = Unreached : - -# 2090| Block 1 -# 2090| v2090_1(void) = NoOp : -# 2087| v2087_5(void) = ReturnVoid : -# 2087| v2087_6(void) = AliasedUse : ~m? -# 2087| v2087_7(void) = ExitFunction : - -# 2092| int TransNonExit() +# 2092| void Base2::~Base2() # 2092| Block 0 -# 2092| v2092_1(void) = EnterFunction : -# 2092| mu2092_2(unknown) = AliasedDefinition : -# 2092| mu2092_3(unknown) = InitializeNonLocal : -# 2093| r2093_1(glval<int>) = VariableAddress[x] : -# 2093| r2093_2(glval<unknown>) = FunctionAddress[Add] : -# 2093| r2093_3(int) = Constant[3] : -# 2093| r2093_4(int) = Constant[4] : -# 2093| r2093_5(int) = Call[Add] : func:r2093_2, 0:r2093_3, 1:r2093_4 -# 2093| mu2093_6(unknown) = ^CallSideEffect : ~m? -# 2093| mu2093_7(int) = Store[x] : &:r2093_1, r2093_5 -# 2094| r2094_1(glval<int>) = VariableAddress[x] : -# 2094| r2094_2(int) = Load[x] : &:r2094_1, ~m? -# 2094| r2094_3(int) = Constant[7] : -# 2094| r2094_4(bool) = CompareEQ : r2094_2, r2094_3 -# 2094| v2094_5(void) = ConditionalBranch : r2094_4 -#-----| False -> Block 2 -#-----| True -> Block 1 +# 2092| v2092_1(void) = EnterFunction : +# 2092| mu2092_2(unknown) = AliasedDefinition : +# 2092| mu2092_3(unknown) = InitializeNonLocal : +# 2092| r2092_4(glval<unknown>) = VariableAddress[#this] : +# 2092| mu2092_5(glval<Base2>) = InitializeParameter[#this] : &:r2092_4 +# 2092| r2092_6(glval<Base2>) = Load[#this] : &:r2092_4, ~m? +# 2092| mu2092_7(Base2) = InitializeIndirection[#this] : &:r2092_6 +# 2092| v2092_8(void) = NoOp : +# 2092| v2092_9(void) = ReturnIndirection[#this] : &:r2092_6, ~m? +# 2092| v2092_10(void) = ReturnVoid : +# 2092| v2092_11(void) = AliasedUse : ~m? +# 2092| v2092_12(void) = ExitFunction : -# 2095| Block 1 -# 2095| r2095_1(glval<unknown>) = FunctionAddress[CallsNonExit] : -# 2095| v2095_2(void) = Call[CallsNonExit] : func:r2095_1 -# 2095| mu2095_3(unknown) = ^CallSideEffect : ~m? -#-----| Goto -> Block 2 +# 2095| void Derived2::Derived2() +# 2095| Block 0 +# 2095| v2095_1(void) = EnterFunction : +# 2095| mu2095_2(unknown) = AliasedDefinition : +# 2095| mu2095_3(unknown) = InitializeNonLocal : +# 2095| r2095_4(glval<unknown>) = VariableAddress[#this] : +# 2095| mu2095_5(glval<Derived2>) = InitializeParameter[#this] : &:r2095_4 +# 2095| r2095_6(glval<Derived2>) = Load[#this] : &:r2095_4, ~m? +# 2095| mu2095_7(Derived2) = InitializeIndirection[#this] : &:r2095_6 +# 2095| r2095_8(glval<Base2>) = ConvertToNonVirtualBase[Derived2 : Base2] : mu2095_5 +# 2095| r2095_9(glval<unknown>) = FunctionAddress[Base2] : +# 2095| v2095_10(void) = Call[Base2] : func:r2095_9, this:r2095_8 +# 2095| mu2095_11(unknown) = ^CallSideEffect : ~m? +# 2095| mu2095_12(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2095_8 +# 2095| v2095_13(void) = NoOp : +# 2095| v2095_14(void) = ReturnIndirection[#this] : &:r2095_6, ~m? +# 2095| v2095_15(void) = ReturnVoid : +# 2095| v2095_16(void) = AliasedUse : ~m? +# 2095| v2095_17(void) = ExitFunction : -# 2096| Block 2 -# 2096| r2096_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2096| v2096_2(void) = Call[VoidFunc] : func:r2096_1 -# 2096| mu2096_3(unknown) = ^CallSideEffect : ~m? -# 2097| r2097_1(glval<int>) = VariableAddress[#return] : -# 2097| r2097_2(glval<int>) = VariableAddress[x] : -# 2097| r2097_3(int) = Load[x] : &:r2097_2, ~m? -# 2097| mu2097_4(int) = Store[#return] : &:r2097_1, r2097_3 -# 2092| r2092_4(glval<int>) = VariableAddress[#return] : -# 2092| v2092_5(void) = ReturnValue : &:r2092_4, ~m? -# 2092| v2092_6(void) = AliasedUse : ~m? -# 2092| v2092_7(void) = ExitFunction : +# 2098| void Derived2::~Derived2() +# 2098| Block 0 +# 2098| v2098_1(void) = EnterFunction : +# 2098| mu2098_2(unknown) = AliasedDefinition : +# 2098| mu2098_3(unknown) = InitializeNonLocal : +# 2098| r2098_4(glval<unknown>) = VariableAddress[#this] : +# 2098| mu2098_5(glval<Derived2>) = InitializeParameter[#this] : &:r2098_4 +# 2098| r2098_6(glval<Derived2>) = Load[#this] : &:r2098_4, ~m? +# 2098| mu2098_7(Derived2) = InitializeIndirection[#this] : &:r2098_6 +# 2098| v2098_8(void) = NoOp : +# 2098| r2098_9(glval<Base2>) = ConvertToNonVirtualBase[Derived2 : Base2] : mu2098_5 +# 2098| r2098_10(glval<unknown>) = FunctionAddress[~Base2] : +# 2098| v2098_11(void) = Call[~Base2] : func:r2098_10, this:r2098_9 +# 2098| mu2098_12(unknown) = ^CallSideEffect : ~m? +# 2098| v2098_13(void) = ReturnIndirection[#this] : &:r2098_6, ~m? +# 2098| v2098_14(void) = ReturnVoid : +# 2098| v2098_15(void) = AliasedUse : ~m? +# 2098| v2098_16(void) = ExitFunction : -# 2100| void newArrayCorrectType(size_t) +# 2100| void Derived2::operator delete(void*) # 2100| Block 0 -# 2100| v2100_1(void) = EnterFunction : -# 2100| mu2100_2(unknown) = AliasedDefinition : -# 2100| mu2100_3(unknown) = InitializeNonLocal : -# 2100| r2100_4(glval<unsigned long>) = VariableAddress[n] : -# 2100| mu2100_5(unsigned long) = InitializeParameter[n] : &:r2100_4 -# 2101| r2101_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2101| r2101_2(glval<unsigned long>) = VariableAddress[n] : -# 2101| r2101_3(unsigned long) = Load[n] : &:r2101_2, ~m? -# 2101| r2101_4(unsigned long) = Constant[4] : -# 2101| r2101_5(unsigned long) = Mul : r2101_3, r2101_4 -# 2101| r2101_6(void *) = Call[operator new[]] : func:r2101_1, 0:r2101_5 -# 2101| mu2101_7(unknown) = ^CallSideEffect : ~m? -# 2101| mu2101_8(unknown) = ^InitializeDynamicAllocation : &:r2101_6 -# 2101| r2101_9(int *) = Convert : r2101_6 -# 2102| r2102_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2102| r2102_2(glval<unsigned long>) = VariableAddress[n] : -# 2102| r2102_3(unsigned long) = Load[n] : &:r2102_2, ~m? -# 2102| r2102_4(unsigned long) = Constant[4] : -# 2102| r2102_5(unsigned long) = Mul : r2102_3, r2102_4 -# 2102| r2102_6(float) = Constant[1.0] : -# 2102| r2102_7(void *) = Call[operator new[]] : func:r2102_1, 0:r2102_5, 1:r2102_6 -# 2102| mu2102_8(unknown) = ^CallSideEffect : ~m? -# 2102| mu2102_9(unknown) = ^InitializeDynamicAllocation : &:r2102_7 -# 2102| r2102_10(int *) = Convert : r2102_7 -# 2103| r2103_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2103| r2103_2(glval<unsigned long>) = VariableAddress[n] : -# 2103| r2103_3(unsigned long) = Load[n] : &:r2103_2, ~m? -# 2103| r2103_4(unsigned long) = Constant[8] : -# 2103| r2103_5(unsigned long) = Mul : r2103_3, r2103_4 -# 2103| r2103_6(void *) = Call[operator new[]] : func:r2103_1, 0:r2103_5 -# 2103| mu2103_7(unknown) = ^CallSideEffect : ~m? -# 2103| mu2103_8(unknown) = ^InitializeDynamicAllocation : &:r2103_6 -# 2103| r2103_9(String *) = Convert : r2103_6 -# 2104| r2104_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2104| r2104_2(glval<unsigned long>) = VariableAddress[n] : -# 2104| r2104_3(unsigned long) = Load[n] : &:r2104_2, ~m? -# 2104| r2104_4(unsigned long) = Constant[256] : -# 2104| r2104_5(unsigned long) = Mul : r2104_3, r2104_4 -# 2104| r2104_6(align_val_t) = Constant[128] : -# 2104| r2104_7(void *) = Call[operator new[]] : func:r2104_1, 0:r2104_5, 1:r2104_6 -# 2104| mu2104_8(unknown) = ^CallSideEffect : ~m? -# 2104| mu2104_9(unknown) = ^InitializeDynamicAllocation : &:r2104_7 -# 2104| r2104_10(Overaligned *) = Convert : r2104_7 -# 2105| r2105_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2105| r2105_2(glval<unsigned long>) = VariableAddress[n] : -# 2105| r2105_3(unsigned long) = Load[n] : &:r2105_2, ~m? -# 2105| r2105_4(unsigned long) = Constant[1] : -# 2105| r2105_5(unsigned long) = Mul : r2105_3, r2105_4 -# 2105| r2105_6(void *) = Call[operator new[]] : func:r2105_1, 0:r2105_5 -# 2105| mu2105_7(unknown) = ^CallSideEffect : ~m? -# 2105| mu2105_8(unknown) = ^InitializeDynamicAllocation : &:r2105_6 -# 2105| r2105_9(DefaultCtorWithDefaultParam *) = Convert : r2105_6 -# 2106| r2106_1(glval<unknown>) = FunctionAddress[operator new[]] : -# 2106| r2106_2(glval<unsigned long>) = VariableAddress[n] : -# 2106| r2106_3(unsigned long) = Load[n] : &:r2106_2, ~m? -# 2106| r2106_4(unsigned long) = Constant[4] : -# 2106| r2106_5(unsigned long) = Mul : r2106_3, r2106_4 -# 2106| r2106_6(void *) = Call[operator new[]] : func:r2106_1, 0:r2106_5 -# 2106| mu2106_7(unknown) = ^CallSideEffect : ~m? -# 2106| mu2106_8(unknown) = ^InitializeDynamicAllocation : &:r2106_6 -# 2106| r2106_9(int *) = Convert : r2106_6 -# 2107| v2107_1(void) = NoOp : -# 2100| v2100_6(void) = ReturnVoid : -# 2100| v2100_7(void) = AliasedUse : ~m? -# 2100| v2100_8(void) = ExitFunction : +# 2100| v2100_1(void) = EnterFunction : +# 2100| mu2100_2(unknown) = AliasedDefinition : +# 2100| mu2100_3(unknown) = InitializeNonLocal : +# 2100| r2100_4(glval<void *>) = VariableAddress[p] : +# 2100| mu2100_5(void *) = InitializeParameter[p] : &:r2100_4 +# 2100| r2100_6(void *) = Load[p] : &:r2100_4, ~m? +# 2100| mu2100_7(unknown) = InitializeIndirection[p] : &:r2100_6 +# 2101| v2101_1(void) = NoOp : +# 2100| v2100_8(void) = ReturnIndirection[p] : &:r2100_6, ~m? +# 2100| v2100_9(void) = ReturnVoid : +# 2100| v2100_10(void) = AliasedUse : ~m? +# 2100| v2100_11(void) = ExitFunction : -# 2111| char* test_strtod(char*) -# 2111| Block 0 -# 2111| v2111_1(void) = EnterFunction : -# 2111| mu2111_2(unknown) = AliasedDefinition : -# 2111| mu2111_3(unknown) = InitializeNonLocal : -# 2111| r2111_4(glval<char *>) = VariableAddress[s] : -# 2111| mu2111_5(char *) = InitializeParameter[s] : &:r2111_4 -# 2111| r2111_6(char *) = Load[s] : &:r2111_4, ~m? -# 2111| mu2111_7(unknown) = InitializeIndirection[s] : &:r2111_6 -# 2112| r2112_1(glval<char *>) = VariableAddress[end] : -# 2112| mu2112_2(char *) = Uninitialized[end] : &:r2112_1 -# 2113| r2113_1(glval<double>) = VariableAddress[d] : -# 2113| r2113_2(glval<unknown>) = FunctionAddress[strtod] : -# 2113| r2113_3(glval<char *>) = VariableAddress[s] : -# 2113| r2113_4(char *) = Load[s] : &:r2113_3, ~m? -# 2113| r2113_5(char *) = Convert : r2113_4 -# 2113| r2113_6(glval<char *>) = VariableAddress[end] : -# 2113| r2113_7(char **) = CopyValue : r2113_6 -# 2113| r2113_8(double) = Call[strtod] : func:r2113_2, 0:r2113_5, 1:r2113_7 -# 2113| v2113_9(void) = ^BufferReadSideEffect[0] : &:r2113_5, ~m? -# 2113| mu2113_10(char *) = ^IndirectMayWriteSideEffect[1] : &:r2113_7 -# 2113| mu2113_11(double) = Store[d] : &:r2113_1, r2113_8 -# 2114| r2114_1(glval<char *>) = VariableAddress[#return] : -# 2114| r2114_2(glval<char *>) = VariableAddress[end] : -# 2114| r2114_3(char *) = Load[end] : &:r2114_2, ~m? -# 2114| mu2114_4(char *) = Store[#return] : &:r2114_1, r2114_3 -# 2111| v2111_8(void) = ReturnIndirection[s] : &:r2111_6, ~m? -# 2111| r2111_9(glval<char *>) = VariableAddress[#return] : -# 2111| v2111_10(void) = ReturnValue : &:r2111_9, ~m? -# 2111| v2111_11(void) = AliasedUse : ~m? -# 2111| v2111_12(void) = ExitFunction : +# 2105| int virtual_delete() +# 2105| Block 0 +# 2105| v2105_1(void) = EnterFunction : +# 2105| mu2105_2(unknown) = AliasedDefinition : +# 2105| mu2105_3(unknown) = InitializeNonLocal : +# 2107| r2107_1(glval<Base2 *>) = VariableAddress[b1] : +# 2107| r2107_2(glval<unknown>) = FunctionAddress[operator new] : +# 2107| r2107_3(unsigned long) = Constant[8] : +# 2107| r2107_4(void *) = Call[operator new] : func:r2107_2, 0:r2107_3 +# 2107| mu2107_5(unknown) = ^CallSideEffect : ~m? +# 2107| mu2107_6(unknown) = ^InitializeDynamicAllocation : &:r2107_4 +# 2107| r2107_7(Base2 *) = Convert : r2107_4 +# 2107| r2107_8(glval<unknown>) = FunctionAddress[Base2] : +# 2107| v2107_9(void) = Call[Base2] : func:r2107_8, this:r2107_7 +# 2107| mu2107_10(unknown) = ^CallSideEffect : ~m? +# 2107| mu2107_11(Base2) = ^IndirectMayWriteSideEffect[-1] : &:r2107_7 +# 2107| mu2107_12(Base2 *) = Store[b1] : &:r2107_1, r2107_7 +# 2108| r2108_1(glval<unknown>) = VirtualDeleteFunctionAddress : +# 2108| r2108_2(glval<Base2 *>) = VariableAddress[b1] : +# 2108| r2108_3(Base2 *) = Load[b1] : &:r2108_2, ~m? +# 2108| v2108_4(void) = Call[?] : func:r2108_1, 0:r2108_3 +# 2108| mu2108_5(unknown) = ^CallSideEffect : ~m? +# 2110| r2110_1(glval<Base2 *>) = VariableAddress[b2] : +# 2110| r2110_2(glval<unknown>) = FunctionAddress[operator new] : +# 2110| r2110_3(unsigned long) = Constant[16] : +# 2110| r2110_4(void *) = Call[operator new] : func:r2110_2, 0:r2110_3 +# 2110| mu2110_5(unknown) = ^CallSideEffect : ~m? +# 2110| mu2110_6(unknown) = ^InitializeDynamicAllocation : &:r2110_4 +# 2110| r2110_7(Derived2 *) = Convert : r2110_4 +# 2110| r2110_8(glval<unknown>) = FunctionAddress[Derived2] : +# 2110| v2110_9(void) = Call[Derived2] : func:r2110_8, this:r2110_7 +# 2110| mu2110_10(unknown) = ^CallSideEffect : ~m? +# 2110| mu2110_11(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2110_7 +# 2110| r2110_12(Base2 *) = ConvertToNonVirtualBase[Derived2 : Base2] : r2110_7 +# 2110| mu2110_13(Base2 *) = Store[b2] : &:r2110_1, r2110_12 +# 2111| r2111_1(glval<unknown>) = VirtualDeleteFunctionAddress : +# 2111| r2111_2(glval<Base2 *>) = VariableAddress[b2] : +# 2111| r2111_3(Base2 *) = Load[b2] : &:r2111_2, ~m? +# 2111| v2111_4(void) = Call[?] : func:r2111_1, 0:r2111_3 +# 2111| mu2111_5(unknown) = ^CallSideEffect : ~m? +# 2113| r2113_1(glval<Derived2 *>) = VariableAddress[d] : +# 2113| r2113_2(glval<unknown>) = FunctionAddress[operator new] : +# 2113| r2113_3(unsigned long) = Constant[16] : +# 2113| r2113_4(void *) = Call[operator new] : func:r2113_2, 0:r2113_3 +# 2113| mu2113_5(unknown) = ^CallSideEffect : ~m? +# 2113| mu2113_6(unknown) = ^InitializeDynamicAllocation : &:r2113_4 +# 2113| r2113_7(Derived2 *) = Convert : r2113_4 +# 2113| r2113_8(glval<unknown>) = FunctionAddress[Derived2] : +# 2113| v2113_9(void) = Call[Derived2] : func:r2113_8, this:r2113_7 +# 2113| mu2113_10(unknown) = ^CallSideEffect : ~m? +# 2113| mu2113_11(Derived2) = ^IndirectMayWriteSideEffect[-1] : &:r2113_7 +# 2113| mu2113_12(Derived2 *) = Store[d] : &:r2113_1, r2113_7 +# 2114| r2114_1(glval<unknown>) = VirtualDeleteFunctionAddress : +# 2114| r2114_2(glval<Derived2 *>) = VariableAddress[d] : +# 2114| r2114_3(Derived2 *) = Load[d] : &:r2114_2, ~m? +# 2114| v2114_4(void) = Call[?] : func:r2114_1, 0:r2114_3 +# 2114| mu2114_5(unknown) = ^CallSideEffect : ~m? +# 2115| r2115_1(glval<int>) = VariableAddress[#return] : +# 2115| mu2115_2(int) = Uninitialized[#return] : &:r2115_1 +# 2105| r2105_4(glval<int>) = VariableAddress[#return] : +# 2105| v2105_5(void) = ReturnValue : &:r2105_4, ~m? +# 2105| v2105_6(void) = AliasedUse : ~m? +# 2105| v2105_7(void) = ExitFunction : -# 2121| void call_as_child_of_ConditionDeclExpr() -# 2121| Block 0 -# 2121| v2121_1(void) = EnterFunction : -# 2121| mu2121_2(unknown) = AliasedDefinition : -# 2121| mu2121_3(unknown) = InitializeNonLocal : -# 2122| r2122_1(glval<HasOperatorBool>) = VariableAddress[b] : -# 2122| r2122_2(HasOperatorBool) = Constant[0] : -# 2122| mu2122_3(HasOperatorBool) = Store[b] : &:r2122_1, r2122_2 -# 2122| r2122_4(glval<HasOperatorBool>) = VariableAddress[b] : -# 2122| r2122_5(glval<unknown>) = FunctionAddress[operator bool] : -# 2122| r2122_6(bool) = Call[operator bool] : func:r2122_5, this:r2122_4 -# 2122| mu2122_7(unknown) = ^CallSideEffect : ~m? -# 2122| v2122_8(void) = ^IndirectReadSideEffect[-1] : &:r2122_4, ~m? -# 2122| mu2122_9(HasOperatorBool) = ^IndirectMayWriteSideEffect[-1] : &:r2122_4 -# 2122| r2122_10(bool) = CopyValue : r2122_6 -# 2122| v2122_11(void) = ConditionalBranch : r2122_10 +# 2119| void test_constant_folding() +# 2119| Block 0 +# 2119| v2119_1(void) = EnterFunction : +# 2119| mu2119_2(unknown) = AliasedDefinition : +# 2119| mu2119_3(unknown) = InitializeNonLocal : +# 2120| r2120_1(glval<int>) = VariableAddress[x] : +# 2120| r2120_2(int) = Constant[116] : +# 2120| mu2120_3(int) = Store[x] : &:r2120_1, r2120_2 +# 2121| r2121_1(glval<unknown>) = FunctionAddress[test_constant_folding_use] : +# 2121| r2121_2(int) = Constant[116] : +# 2121| v2121_3(void) = Call[test_constant_folding_use] : func:r2121_1, 0:r2121_2 +# 2121| mu2121_4(unknown) = ^CallSideEffect : ~m? +# 2122| v2122_1(void) = NoOp : +# 2119| v2119_4(void) = ReturnVoid : +# 2119| v2119_5(void) = AliasedUse : ~m? +# 2119| v2119_6(void) = ExitFunction : + +# 2126| int NonExit() +# 2126| Block 0 +# 2126| v2126_1(void) = EnterFunction : +# 2126| mu2126_2(unknown) = AliasedDefinition : +# 2126| mu2126_3(unknown) = InitializeNonLocal : +# 2127| r2127_1(glval<int>) = VariableAddress[x] : +# 2127| r2127_2(glval<unknown>) = FunctionAddress[Add] : +# 2127| r2127_3(int) = Constant[3] : +# 2127| r2127_4(int) = Constant[4] : +# 2127| r2127_5(int) = Call[Add] : func:r2127_2, 0:r2127_3, 1:r2127_4 +# 2127| mu2127_6(unknown) = ^CallSideEffect : ~m? +# 2127| mu2127_7(int) = Store[x] : &:r2127_1, r2127_5 +# 2128| r2128_1(glval<int>) = VariableAddress[x] : +# 2128| r2128_2(int) = Load[x] : &:r2128_1, ~m? +# 2128| r2128_3(int) = Constant[7] : +# 2128| r2128_4(bool) = CompareEQ : r2128_2, r2128_3 +# 2128| v2128_5(void) = ConditionalBranch : r2128_4 #-----| False -> Block 2 #-----| True -> Block 1 -# 2122| Block 1 -# 2122| v2122_12(void) = NoOp : +# 2129| Block 1 +# 2129| r2129_1(glval<unknown>) = FunctionAddress[exit] : +# 2129| r2129_2(int) = Constant[3] : +# 2129| v2129_3(void) = Call[exit] : func:r2129_1, 0:r2129_2 +# 2129| mu2129_4(unknown) = ^CallSideEffect : ~m? +# 2126| v2126_4(void) = Unreached : + +# 2130| Block 2 +# 2130| r2130_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2130| v2130_2(void) = Call[VoidFunc] : func:r2130_1 +# 2130| mu2130_3(unknown) = ^CallSideEffect : ~m? +# 2131| r2131_1(glval<int>) = VariableAddress[#return] : +# 2131| r2131_2(glval<int>) = VariableAddress[x] : +# 2131| r2131_3(int) = Load[x] : &:r2131_2, ~m? +# 2131| mu2131_4(int) = Store[#return] : &:r2131_1, r2131_3 +# 2126| r2126_5(glval<int>) = VariableAddress[#return] : +# 2126| v2126_6(void) = ReturnValue : &:r2126_5, ~m? +# 2126| v2126_7(void) = AliasedUse : ~m? +# 2126| v2126_8(void) = ExitFunction : + +# 2134| void CallsNonExit() +# 2134| Block 0 +# 2134| v2134_1(void) = EnterFunction : +# 2134| mu2134_2(unknown) = AliasedDefinition : +# 2134| mu2134_3(unknown) = InitializeNonLocal : +# 2135| r2135_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2135| v2135_2(void) = Call[VoidFunc] : func:r2135_1 +# 2135| mu2135_3(unknown) = ^CallSideEffect : ~m? +# 2136| r2136_1(glval<unknown>) = FunctionAddress[exit] : +# 2136| r2136_2(int) = Constant[3] : +# 2136| v2136_3(void) = Call[exit] : func:r2136_1, 0:r2136_2 +# 2136| mu2136_4(unknown) = ^CallSideEffect : ~m? +# 2134| v2134_4(void) = Unreached : + +# 2137| Block 1 +# 2137| v2137_1(void) = NoOp : +# 2134| v2134_5(void) = ReturnVoid : +# 2134| v2134_6(void) = AliasedUse : ~m? +# 2134| v2134_7(void) = ExitFunction : + +# 2139| int TransNonExit() +# 2139| Block 0 +# 2139| v2139_1(void) = EnterFunction : +# 2139| mu2139_2(unknown) = AliasedDefinition : +# 2139| mu2139_3(unknown) = InitializeNonLocal : +# 2140| r2140_1(glval<int>) = VariableAddress[x] : +# 2140| r2140_2(glval<unknown>) = FunctionAddress[Add] : +# 2140| r2140_3(int) = Constant[3] : +# 2140| r2140_4(int) = Constant[4] : +# 2140| r2140_5(int) = Call[Add] : func:r2140_2, 0:r2140_3, 1:r2140_4 +# 2140| mu2140_6(unknown) = ^CallSideEffect : ~m? +# 2140| mu2140_7(int) = Store[x] : &:r2140_1, r2140_5 +# 2141| r2141_1(glval<int>) = VariableAddress[x] : +# 2141| r2141_2(int) = Load[x] : &:r2141_1, ~m? +# 2141| r2141_3(int) = Constant[7] : +# 2141| r2141_4(bool) = CompareEQ : r2141_2, r2141_3 +# 2141| v2141_5(void) = ConditionalBranch : r2141_4 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2142| Block 1 +# 2142| r2142_1(glval<unknown>) = FunctionAddress[CallsNonExit] : +# 2142| v2142_2(void) = Call[CallsNonExit] : func:r2142_1 +# 2142| mu2142_3(unknown) = ^CallSideEffect : ~m? #-----| Goto -> Block 2 -# 2123| Block 2 -# 2123| v2123_1(void) = NoOp : -# 2121| v2121_4(void) = ReturnVoid : -# 2121| v2121_5(void) = AliasedUse : ~m? -# 2121| v2121_6(void) = ExitFunction : +# 2143| Block 2 +# 2143| r2143_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2143| v2143_2(void) = Call[VoidFunc] : func:r2143_1 +# 2143| mu2143_3(unknown) = ^CallSideEffect : ~m? +# 2144| r2144_1(glval<int>) = VariableAddress[#return] : +# 2144| r2144_2(glval<int>) = VariableAddress[x] : +# 2144| r2144_3(int) = Load[x] : &:r2144_2, ~m? +# 2144| mu2144_4(int) = Store[#return] : &:r2144_1, r2144_3 +# 2139| r2139_4(glval<int>) = VariableAddress[#return] : +# 2139| v2139_5(void) = ReturnValue : &:r2139_4, ~m? +# 2139| v2139_6(void) = AliasedUse : ~m? +# 2139| v2139_7(void) = ExitFunction : -# 2125| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) -# 2125| Block 0 -# 2125| v2125_1(void) = EnterFunction : -# 2125| mu2125_2(unknown) = AliasedDefinition : -# 2125| mu2125_3(unknown) = InitializeNonLocal : -# 2125| r2125_4(glval<unknown>) = VariableAddress[#this] : -# 2125| mu2125_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2125_4 -# 2125| r2125_6(glval<ClassWithDestructor>) = Load[#this] : &:r2125_4, ~m? -# 2125| mu2125_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2125_6 +# 2147| void newArrayCorrectType(size_t) +# 2147| Block 0 +# 2147| v2147_1(void) = EnterFunction : +# 2147| mu2147_2(unknown) = AliasedDefinition : +# 2147| mu2147_3(unknown) = InitializeNonLocal : +# 2147| r2147_4(glval<unsigned long>) = VariableAddress[n] : +# 2147| mu2147_5(unsigned long) = InitializeParameter[n] : &:r2147_4 +# 2148| r2148_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2148| r2148_2(glval<unsigned long>) = VariableAddress[n] : +# 2148| r2148_3(unsigned long) = Load[n] : &:r2148_2, ~m? +# 2148| r2148_4(unsigned long) = Constant[4] : +# 2148| r2148_5(unsigned long) = Mul : r2148_3, r2148_4 +# 2148| r2148_6(void *) = Call[operator new[]] : func:r2148_1, 0:r2148_5 +# 2148| mu2148_7(unknown) = ^CallSideEffect : ~m? +# 2148| mu2148_8(unknown) = ^InitializeDynamicAllocation : &:r2148_6 +# 2148| r2148_9(int *) = Convert : r2148_6 +# 2149| r2149_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2149| r2149_2(glval<unsigned long>) = VariableAddress[n] : +# 2149| r2149_3(unsigned long) = Load[n] : &:r2149_2, ~m? +# 2149| r2149_4(unsigned long) = Constant[4] : +# 2149| r2149_5(unsigned long) = Mul : r2149_3, r2149_4 +# 2149| r2149_6(float) = Constant[1.0] : +# 2149| r2149_7(void *) = Call[operator new[]] : func:r2149_1, 0:r2149_5, 1:r2149_6 +# 2149| mu2149_8(unknown) = ^CallSideEffect : ~m? +# 2149| mu2149_9(unknown) = ^InitializeDynamicAllocation : &:r2149_7 +# 2149| r2149_10(int *) = Convert : r2149_7 +# 2150| r2150_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2150| r2150_2(glval<unsigned long>) = VariableAddress[n] : +# 2150| r2150_3(unsigned long) = Load[n] : &:r2150_2, ~m? +# 2150| r2150_4(unsigned long) = Constant[8] : +# 2150| r2150_5(unsigned long) = Mul : r2150_3, r2150_4 +# 2150| r2150_6(void *) = Call[operator new[]] : func:r2150_1, 0:r2150_5 +# 2150| mu2150_7(unknown) = ^CallSideEffect : ~m? +# 2150| mu2150_8(unknown) = ^InitializeDynamicAllocation : &:r2150_6 +# 2150| r2150_9(String *) = Convert : r2150_6 +# 2151| r2151_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2151| r2151_2(glval<unsigned long>) = VariableAddress[n] : +# 2151| r2151_3(unsigned long) = Load[n] : &:r2151_2, ~m? +# 2151| r2151_4(unsigned long) = Constant[256] : +# 2151| r2151_5(unsigned long) = Mul : r2151_3, r2151_4 +# 2151| r2151_6(align_val_t) = Constant[128] : +# 2151| r2151_7(void *) = Call[operator new[]] : func:r2151_1, 0:r2151_5, 1:r2151_6 +# 2151| mu2151_8(unknown) = ^CallSideEffect : ~m? +# 2151| mu2151_9(unknown) = ^InitializeDynamicAllocation : &:r2151_7 +# 2151| r2151_10(Overaligned *) = Convert : r2151_7 +# 2152| r2152_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2152| r2152_2(glval<unsigned long>) = VariableAddress[n] : +# 2152| r2152_3(unsigned long) = Load[n] : &:r2152_2, ~m? +# 2152| r2152_4(unsigned long) = Constant[1] : +# 2152| r2152_5(unsigned long) = Mul : r2152_3, r2152_4 +# 2152| r2152_6(void *) = Call[operator new[]] : func:r2152_1, 0:r2152_5 +# 2152| mu2152_7(unknown) = ^CallSideEffect : ~m? +# 2152| mu2152_8(unknown) = ^InitializeDynamicAllocation : &:r2152_6 +# 2152| r2152_9(DefaultCtorWithDefaultParam *) = Convert : r2152_6 +# 2153| r2153_1(glval<unknown>) = FunctionAddress[operator new[]] : +# 2153| r2153_2(glval<unsigned long>) = VariableAddress[n] : +# 2153| r2153_3(unsigned long) = Load[n] : &:r2153_2, ~m? +# 2153| r2153_4(unsigned long) = Constant[4] : +# 2153| r2153_5(unsigned long) = Mul : r2153_3, r2153_4 +# 2153| r2153_6(void *) = Call[operator new[]] : func:r2153_1, 0:r2153_5 +# 2153| mu2153_7(unknown) = ^CallSideEffect : ~m? +# 2153| mu2153_8(unknown) = ^InitializeDynamicAllocation : &:r2153_6 +# 2153| r2153_9(int *) = Convert : r2153_6 +# 2154| v2154_1(void) = NoOp : +# 2147| v2147_6(void) = ReturnVoid : +# 2147| v2147_7(void) = AliasedUse : ~m? +# 2147| v2147_8(void) = ExitFunction : + +# 2158| char* test_strtod(char*) +# 2158| Block 0 +# 2158| v2158_1(void) = EnterFunction : +# 2158| mu2158_2(unknown) = AliasedDefinition : +# 2158| mu2158_3(unknown) = InitializeNonLocal : +# 2158| r2158_4(glval<char *>) = VariableAddress[s] : +# 2158| mu2158_5(char *) = InitializeParameter[s] : &:r2158_4 +# 2158| r2158_6(char *) = Load[s] : &:r2158_4, ~m? +# 2158| mu2158_7(unknown) = InitializeIndirection[s] : &:r2158_6 +# 2159| r2159_1(glval<char *>) = VariableAddress[end] : +# 2159| mu2159_2(char *) = Uninitialized[end] : &:r2159_1 +# 2160| r2160_1(glval<double>) = VariableAddress[d] : +# 2160| r2160_2(glval<unknown>) = FunctionAddress[strtod] : +# 2160| r2160_3(glval<char *>) = VariableAddress[s] : +# 2160| r2160_4(char *) = Load[s] : &:r2160_3, ~m? +# 2160| r2160_5(char *) = Convert : r2160_4 +# 2160| r2160_6(glval<char *>) = VariableAddress[end] : +# 2160| r2160_7(char **) = CopyValue : r2160_6 +# 2160| r2160_8(double) = Call[strtod] : func:r2160_2, 0:r2160_5, 1:r2160_7 +# 2160| v2160_9(void) = ^BufferReadSideEffect[0] : &:r2160_5, ~m? +# 2160| mu2160_10(char *) = ^IndirectMayWriteSideEffect[1] : &:r2160_7 +# 2160| mu2160_11(double) = Store[d] : &:r2160_1, r2160_8 +# 2161| r2161_1(glval<char *>) = VariableAddress[#return] : +# 2161| r2161_2(glval<char *>) = VariableAddress[end] : +# 2161| r2161_3(char *) = Load[end] : &:r2161_2, ~m? +# 2161| mu2161_4(char *) = Store[#return] : &:r2161_1, r2161_3 +# 2158| v2158_8(void) = ReturnIndirection[s] : &:r2158_6, ~m? +# 2158| r2158_9(glval<char *>) = VariableAddress[#return] : +# 2158| v2158_10(void) = ReturnValue : &:r2158_9, ~m? +# 2158| v2158_11(void) = AliasedUse : ~m? +# 2158| v2158_12(void) = ExitFunction : + +# 2168| void call_as_child_of_ConditionDeclExpr() +# 2168| Block 0 +# 2168| v2168_1(void) = EnterFunction : +# 2168| mu2168_2(unknown) = AliasedDefinition : +# 2168| mu2168_3(unknown) = InitializeNonLocal : +# 2169| r2169_1(glval<HasOperatorBool>) = VariableAddress[b] : +# 2169| r2169_2(HasOperatorBool) = Constant[0] : +# 2169| mu2169_3(HasOperatorBool) = Store[b] : &:r2169_1, r2169_2 +# 2169| r2169_4(glval<HasOperatorBool>) = VariableAddress[b] : +# 2169| r2169_5(glval<unknown>) = FunctionAddress[operator bool] : +# 2169| r2169_6(bool) = Call[operator bool] : func:r2169_5, this:r2169_4 +# 2169| mu2169_7(unknown) = ^CallSideEffect : ~m? +# 2169| v2169_8(void) = ^IndirectReadSideEffect[-1] : &:r2169_4, ~m? +# 2169| mu2169_9(HasOperatorBool) = ^IndirectMayWriteSideEffect[-1] : &:r2169_4 +# 2169| r2169_10(bool) = CopyValue : r2169_6 +# 2169| v2169_11(void) = ConditionalBranch : r2169_10 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2169| Block 1 +# 2169| v2169_12(void) = NoOp : +#-----| Goto -> Block 2 + +# 2170| Block 2 +# 2170| v2170_1(void) = NoOp : +# 2168| v2168_4(void) = ReturnVoid : +# 2168| v2168_5(void) = AliasedUse : ~m? +# 2168| v2168_6(void) = ExitFunction : + +# 2172| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&) +# 2172| Block 0 +# 2172| v2172_1(void) = EnterFunction : +# 2172| mu2172_2(unknown) = AliasedDefinition : +# 2172| mu2172_3(unknown) = InitializeNonLocal : +# 2172| r2172_4(glval<unknown>) = VariableAddress[#this] : +# 2172| mu2172_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2172_4 +# 2172| r2172_6(glval<ClassWithDestructor>) = Load[#this] : &:r2172_4, ~m? +# 2172| mu2172_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2172_6 #-----| r0_1(glval<ClassWithDestructor &>) = VariableAddress[(unnamed parameter 0)] : #-----| mu0_2(ClassWithDestructor &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1 #-----| r0_3(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r0_1, ~m? #-----| mu0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3 -# 2125| r2125_8(glval<char *>) = FieldAddress[x] : mu2125_5 -# 2125| r2125_9(glval<ClassWithDestructor &>) = VariableAddress[(unnamed parameter 0)] : -# 2125| r2125_10(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2125_9, ~m? -# 2125| r2125_11(glval<ClassWithDestructor>) = CopyValue : r2125_10 -# 2125| r2125_12(glval<char *>) = FieldAddress[x] : r2125_11 -# 2125| r2125_13(char *) = Load[?] : &:r2125_12, ~m? -# 2125| mu2125_14(char *) = Store[?] : &:r2125_8, r2125_13 -# 2125| v2125_15(void) = NoOp : -# 2125| v2125_16(void) = ReturnIndirection[#this] : &:r2125_6, ~m? +# 2172| r2172_8(glval<char *>) = FieldAddress[x] : mu2172_5 +# 2172| r2172_9(glval<ClassWithDestructor &>) = VariableAddress[(unnamed parameter 0)] : +# 2172| r2172_10(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2172_9, ~m? +# 2172| r2172_11(glval<ClassWithDestructor>) = CopyValue : r2172_10 +# 2172| r2172_12(glval<char *>) = FieldAddress[x] : r2172_11 +# 2172| r2172_13(char *) = Load[?] : &:r2172_12, ~m? +# 2172| mu2172_14(char *) = Store[?] : &:r2172_8, r2172_13 +# 2172| v2172_15(void) = NoOp : +# 2172| v2172_16(void) = ReturnIndirection[#this] : &:r2172_6, ~m? #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, ~m? -# 2125| v2125_17(void) = ReturnVoid : -# 2125| v2125_18(void) = AliasedUse : ~m? -# 2125| v2125_19(void) = ExitFunction : +# 2172| v2172_17(void) = ReturnVoid : +# 2172| v2172_18(void) = AliasedUse : ~m? +# 2172| v2172_19(void) = ExitFunction : -# 2128| void ClassWithDestructor::ClassWithDestructor() -# 2128| Block 0 -# 2128| v2128_1(void) = EnterFunction : -# 2128| mu2128_2(unknown) = AliasedDefinition : -# 2128| mu2128_3(unknown) = InitializeNonLocal : -# 2128| r2128_4(glval<unknown>) = VariableAddress[#this] : -# 2128| mu2128_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2128_4 -# 2128| r2128_6(glval<ClassWithDestructor>) = Load[#this] : &:r2128_4, ~m? -# 2128| mu2128_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2128_6 -# 2128| r2128_8(glval<unknown>) = FunctionAddress[operator new] : -# 2128| r2128_9(unsigned long) = Constant[1] : -# 2128| r2128_10(void *) = Call[operator new] : func:r2128_8, 0:r2128_9 -# 2128| mu2128_11(unknown) = ^CallSideEffect : ~m? -# 2128| mu2128_12(unknown) = ^InitializeDynamicAllocation : &:r2128_10 -# 2128| r2128_13(char *) = Convert : r2128_10 -# 2128| r2128_14(glval<unknown>) = VariableAddress[#this] : -# 2128| r2128_15(ClassWithDestructor *) = Load[#this] : &:r2128_14, ~m? -# 2128| r2128_16(glval<char *>) = FieldAddress[x] : r2128_15 -# 2128| mu2128_17(char *) = Store[?] : &:r2128_16, r2128_13 -# 2128| v2128_18(void) = NoOp : -# 2128| v2128_19(void) = ReturnIndirection[#this] : &:r2128_6, ~m? -# 2128| v2128_20(void) = ReturnVoid : -# 2128| v2128_21(void) = AliasedUse : ~m? -# 2128| v2128_22(void) = ExitFunction : +# 2175| void ClassWithDestructor::ClassWithDestructor() +# 2175| Block 0 +# 2175| v2175_1(void) = EnterFunction : +# 2175| mu2175_2(unknown) = AliasedDefinition : +# 2175| mu2175_3(unknown) = InitializeNonLocal : +# 2175| r2175_4(glval<unknown>) = VariableAddress[#this] : +# 2175| mu2175_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2175_4 +# 2175| r2175_6(glval<ClassWithDestructor>) = Load[#this] : &:r2175_4, ~m? +# 2175| mu2175_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2175_6 +# 2175| r2175_8(glval<unknown>) = FunctionAddress[operator new] : +# 2175| r2175_9(unsigned long) = Constant[1] : +# 2175| r2175_10(void *) = Call[operator new] : func:r2175_8, 0:r2175_9 +# 2175| mu2175_11(unknown) = ^CallSideEffect : ~m? +# 2175| mu2175_12(unknown) = ^InitializeDynamicAllocation : &:r2175_10 +# 2175| r2175_13(char *) = Convert : r2175_10 +# 2175| r2175_14(glval<unknown>) = VariableAddress[#this] : +# 2175| r2175_15(ClassWithDestructor *) = Load[#this] : &:r2175_14, ~m? +# 2175| r2175_16(glval<char *>) = FieldAddress[x] : r2175_15 +# 2175| mu2175_17(char *) = Store[?] : &:r2175_16, r2175_13 +# 2175| v2175_18(void) = NoOp : +# 2175| v2175_19(void) = ReturnIndirection[#this] : &:r2175_6, ~m? +# 2175| v2175_20(void) = ReturnVoid : +# 2175| v2175_21(void) = AliasedUse : ~m? +# 2175| v2175_22(void) = ExitFunction : -# 2129| void ClassWithDestructor::~ClassWithDestructor() -# 2129| Block 0 -# 2129| v2129_1(void) = EnterFunction : -# 2129| mu2129_2(unknown) = AliasedDefinition : -# 2129| mu2129_3(unknown) = InitializeNonLocal : -# 2129| r2129_4(glval<unknown>) = VariableAddress[#this] : -# 2129| mu2129_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2129_4 -# 2129| r2129_6(glval<ClassWithDestructor>) = Load[#this] : &:r2129_4, ~m? -# 2129| mu2129_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2129_6 -# 2129| r2129_8(glval<unknown>) = FunctionAddress[operator delete] : -# 2129| r2129_9(glval<unknown>) = VariableAddress[#this] : -# 2129| r2129_10(ClassWithDestructor *) = Load[#this] : &:r2129_9, ~m? -# 2129| r2129_11(glval<char *>) = FieldAddress[x] : r2129_10 -# 2129| r2129_12(char *) = Load[?] : &:r2129_11, ~m? -# 2129| v2129_13(void) = Call[operator delete] : func:r2129_8, 0:r2129_12 -# 2129| mu2129_14(unknown) = ^CallSideEffect : ~m? -# 2129| v2129_15(void) = NoOp : -# 2129| v2129_16(void) = ReturnIndirection[#this] : &:r2129_6, ~m? -# 2129| v2129_17(void) = ReturnVoid : -# 2129| v2129_18(void) = AliasedUse : ~m? -# 2129| v2129_19(void) = ExitFunction : +# 2176| void ClassWithDestructor::~ClassWithDestructor() +# 2176| Block 0 +# 2176| v2176_1(void) = EnterFunction : +# 2176| mu2176_2(unknown) = AliasedDefinition : +# 2176| mu2176_3(unknown) = InitializeNonLocal : +# 2176| r2176_4(glval<unknown>) = VariableAddress[#this] : +# 2176| mu2176_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2176_4 +# 2176| r2176_6(glval<ClassWithDestructor>) = Load[#this] : &:r2176_4, ~m? +# 2176| mu2176_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2176_6 +# 2176| r2176_8(glval<unknown>) = FunctionAddress[operator delete] : +# 2176| r2176_9(glval<unknown>) = VariableAddress[#this] : +# 2176| r2176_10(ClassWithDestructor *) = Load[#this] : &:r2176_9, ~m? +# 2176| r2176_11(glval<char *>) = FieldAddress[x] : r2176_10 +# 2176| r2176_12(char *) = Load[?] : &:r2176_11, ~m? +# 2176| v2176_13(void) = Call[operator delete] : func:r2176_8, 0:r2176_12 +# 2176| mu2176_14(unknown) = ^CallSideEffect : ~m? +# 2176| v2176_15(void) = NoOp : +# 2176| v2176_16(void) = ReturnIndirection[#this] : &:r2176_6, ~m? +# 2176| v2176_17(void) = ReturnVoid : +# 2176| v2176_18(void) = AliasedUse : ~m? +# 2176| v2176_19(void) = ExitFunction : -# 2131| void ClassWithDestructor::set_x(char) -# 2131| Block 0 -# 2131| v2131_1(void) = EnterFunction : -# 2131| mu2131_2(unknown) = AliasedDefinition : -# 2131| mu2131_3(unknown) = InitializeNonLocal : -# 2131| r2131_4(glval<unknown>) = VariableAddress[#this] : -# 2131| mu2131_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2131_4 -# 2131| r2131_6(glval<ClassWithDestructor>) = Load[#this] : &:r2131_4, ~m? -# 2131| mu2131_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2131_6 -# 2131| r2131_8(glval<char>) = VariableAddress[y] : -# 2131| mu2131_9(char) = InitializeParameter[y] : &:r2131_8 -# 2131| r2131_10(glval<char>) = VariableAddress[y] : -# 2131| r2131_11(char) = Load[y] : &:r2131_10, ~m? -# 2131| r2131_12(glval<unknown>) = VariableAddress[#this] : -# 2131| r2131_13(ClassWithDestructor *) = Load[#this] : &:r2131_12, ~m? -# 2131| r2131_14(glval<char *>) = FieldAddress[x] : r2131_13 -# 2131| r2131_15(char *) = Load[?] : &:r2131_14, ~m? -# 2131| r2131_16(glval<char>) = CopyValue : r2131_15 -# 2131| mu2131_17(char) = Store[?] : &:r2131_16, r2131_11 -# 2131| v2131_18(void) = NoOp : -# 2131| v2131_19(void) = ReturnIndirection[#this] : &:r2131_6, ~m? -# 2131| v2131_20(void) = ReturnVoid : -# 2131| v2131_21(void) = AliasedUse : ~m? -# 2131| v2131_22(void) = ExitFunction : +# 2178| void ClassWithDestructor::set_x(char) +# 2178| Block 0 +# 2178| v2178_1(void) = EnterFunction : +# 2178| mu2178_2(unknown) = AliasedDefinition : +# 2178| mu2178_3(unknown) = InitializeNonLocal : +# 2178| r2178_4(glval<unknown>) = VariableAddress[#this] : +# 2178| mu2178_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2178_4 +# 2178| r2178_6(glval<ClassWithDestructor>) = Load[#this] : &:r2178_4, ~m? +# 2178| mu2178_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2178_6 +# 2178| r2178_8(glval<char>) = VariableAddress[y] : +# 2178| mu2178_9(char) = InitializeParameter[y] : &:r2178_8 +# 2178| r2178_10(glval<char>) = VariableAddress[y] : +# 2178| r2178_11(char) = Load[y] : &:r2178_10, ~m? +# 2178| r2178_12(glval<unknown>) = VariableAddress[#this] : +# 2178| r2178_13(ClassWithDestructor *) = Load[#this] : &:r2178_12, ~m? +# 2178| r2178_14(glval<char *>) = FieldAddress[x] : r2178_13 +# 2178| r2178_15(char *) = Load[?] : &:r2178_14, ~m? +# 2178| r2178_16(glval<char>) = CopyValue : r2178_15 +# 2178| mu2178_17(char) = Store[?] : &:r2178_16, r2178_11 +# 2178| v2178_18(void) = NoOp : +# 2178| v2178_19(void) = ReturnIndirection[#this] : &:r2178_6, ~m? +# 2178| v2178_20(void) = ReturnVoid : +# 2178| v2178_21(void) = AliasedUse : ~m? +# 2178| v2178_22(void) = ExitFunction : -# 2132| char ClassWithDestructor::get_x() -# 2132| Block 0 -# 2132| v2132_1(void) = EnterFunction : -# 2132| mu2132_2(unknown) = AliasedDefinition : -# 2132| mu2132_3(unknown) = InitializeNonLocal : -# 2132| r2132_4(glval<unknown>) = VariableAddress[#this] : -# 2132| mu2132_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2132_4 -# 2132| r2132_6(glval<ClassWithDestructor>) = Load[#this] : &:r2132_4, ~m? -# 2132| mu2132_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2132_6 -# 2132| r2132_8(glval<char>) = VariableAddress[#return] : -# 2132| r2132_9(glval<unknown>) = VariableAddress[#this] : -# 2132| r2132_10(ClassWithDestructor *) = Load[#this] : &:r2132_9, ~m? -# 2132| r2132_11(glval<char *>) = FieldAddress[x] : r2132_10 -# 2132| r2132_12(char *) = Load[?] : &:r2132_11, ~m? -# 2132| r2132_13(char) = Load[?] : &:r2132_12, ~m? -# 2132| mu2132_14(char) = Store[#return] : &:r2132_8, r2132_13 -# 2132| v2132_15(void) = ReturnIndirection[#this] : &:r2132_6, ~m? -# 2132| r2132_16(glval<char>) = VariableAddress[#return] : -# 2132| v2132_17(void) = ReturnValue : &:r2132_16, ~m? -# 2132| v2132_18(void) = AliasedUse : ~m? -# 2132| v2132_19(void) = ExitFunction : - -# 2135| bool initialization_with_destructor_bool -# 2135| Block 0 -# 2135| v2135_1(void) = EnterFunction : -# 2135| mu2135_2(unknown) = AliasedDefinition : -# 2135| r2135_3(glval<bool>) = VariableAddress[initialization_with_destructor_bool] : -# 2135| r2135_4(bool) = Constant[1] : -# 2135| mu2135_5(bool) = Store[initialization_with_destructor_bool] : &:r2135_3, r2135_4 -# 2135| v2135_6(void) = ReturnVoid : -# 2135| v2135_7(void) = AliasedUse : ~m? -# 2135| v2135_8(void) = ExitFunction : - -# 2137| void initialization_with_destructor(bool, char) -# 2137| Block 0 -# 2137| v2137_1(void) = EnterFunction : -# 2137| mu2137_2(unknown) = AliasedDefinition : -# 2137| mu2137_3(unknown) = InitializeNonLocal : -# 2137| r2137_4(glval<bool>) = VariableAddress[b] : -# 2137| mu2137_5(bool) = InitializeParameter[b] : &:r2137_4 -# 2137| r2137_6(glval<char>) = VariableAddress[c] : -# 2137| mu2137_7(char) = InitializeParameter[c] : &:r2137_6 -# 2138| r2138_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2138| mu2138_2(ClassWithDestructor) = Uninitialized[x] : &:r2138_1 -# 2138| r2138_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2138| v2138_4(void) = Call[ClassWithDestructor] : func:r2138_3, this:r2138_1 -# 2138| mu2138_5(unknown) = ^CallSideEffect : ~m? -# 2138| mu2138_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2138_1 -# 2138| r2138_7(glval<bool>) = VariableAddress[b] : -# 2138| r2138_8(bool) = Load[b] : &:r2138_7, ~m? -# 2138| v2138_9(void) = ConditionalBranch : r2138_8 -#-----| False -> Block 3 -#-----| True -> Block 2 - -# 2137| Block 1 -# 2137| v2137_8(void) = ReturnVoid : -# 2137| v2137_9(void) = AliasedUse : ~m? -# 2137| v2137_10(void) = ExitFunction : - -# 2139| Block 2 -# 2139| r2139_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2139| r2139_2(glval<unknown>) = FunctionAddress[set_x] : -# 2139| r2139_3(char) = Constant[97] : -# 2139| v2139_4(void) = Call[set_x] : func:r2139_2, this:r2139_1, 0:r2139_3 -# 2139| mu2139_5(unknown) = ^CallSideEffect : ~m? -# 2139| v2139_6(void) = ^IndirectReadSideEffect[-1] : &:r2139_1, ~m? -# 2139| mu2139_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2139_1 -# 2139| r2139_8(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2139| r2139_9(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2139| v2139_10(void) = Call[~ClassWithDestructor] : func:r2139_9, this:r2139_8 -# 2139| mu2139_11(unknown) = ^CallSideEffect : ~m? -# 2139| v2139_12(void) = ^IndirectReadSideEffect[-1] : &:r2139_8, ~m? -# 2139| mu2139_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2139_8 -#-----| Goto -> Block 3 - -# 2141| Block 3 -# 2141| r2141_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2141| mu2141_2(ClassWithDestructor) = Uninitialized[x] : &:r2141_1 -# 2141| r2141_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2141| v2141_4(void) = Call[ClassWithDestructor] : func:r2141_3, this:r2141_1 -# 2141| mu2141_5(unknown) = ^CallSideEffect : ~m? -# 2141| mu2141_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2141_1 -# 2141| r2141_7(bool) = Constant[1] : -# 2141| v2141_8(void) = ConditionalBranch : r2141_7 -#-----| False -> Block 6 -#-----| True -> Block 4 - -# 2142| Block 4 -# 2142| r2142_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2142| r2142_2(glval<unknown>) = FunctionAddress[set_x] : -# 2142| r2142_3(char) = Constant[97] : -# 2142| v2142_4(void) = Call[set_x] : func:r2142_2, this:r2142_1, 0:r2142_3 -# 2142| mu2142_5(unknown) = ^CallSideEffect : ~m? -# 2142| v2142_6(void) = ^IndirectReadSideEffect[-1] : &:r2142_1, ~m? -# 2142| mu2142_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2142_1 -#-----| Goto -> Block 6 - -# 2142| Block 5 -# 2142| r2142_8(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2142| r2142_9(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2142| v2142_10(void) = Call[~ClassWithDestructor] : func:r2142_9, this:r2142_8 -# 2142| mu2142_11(unknown) = ^CallSideEffect : ~m? -# 2142| v2142_12(void) = ^IndirectReadSideEffect[-1] : &:r2142_8, ~m? -# 2142| mu2142_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2142_8 -#-----| Goto -> Block 6 - -# 2144| Block 6 -# 2144| r2144_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2144| mu2144_2(ClassWithDestructor) = Uninitialized[x] : &:r2144_1 -# 2144| r2144_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2144| v2144_4(void) = Call[ClassWithDestructor] : func:r2144_3, this:r2144_1 -# 2144| mu2144_5(unknown) = ^CallSideEffect : ~m? -# 2144| mu2144_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2144_1 -# 2144| r2144_7(glval<char>) = VariableAddress[c] : -# 2144| r2144_8(char) = Load[c] : &:r2144_7, ~m? -# 2144| r2144_9(int) = Convert : r2144_8 -# 2144| v2144_10(void) = Switch : r2144_9 -#-----| Case[97] -> Block 7 -#-----| Default -> Block 8 - -# 2145| Block 7 -# 2145| v2145_1(void) = NoOp : -# 2146| r2146_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2146| r2146_2(glval<unknown>) = FunctionAddress[set_x] : -# 2146| r2146_3(char) = Constant[97] : -# 2146| v2146_4(void) = Call[set_x] : func:r2146_2, this:r2146_1, 0:r2146_3 -# 2146| mu2146_5(unknown) = ^CallSideEffect : ~m? -# 2146| v2146_6(void) = ^IndirectReadSideEffect[-1] : &:r2146_1, ~m? -# 2146| mu2146_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2146_1 -# 2147| v2147_1(void) = NoOp : -#-----| Goto -> Block 10 - -# 2148| Block 8 -# 2148| v2148_1(void) = NoOp : -# 2149| r2149_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2149| r2149_2(glval<unknown>) = FunctionAddress[set_x] : -# 2149| r2149_3(char) = Constant[98] : -# 2149| v2149_4(void) = Call[set_x] : func:r2149_2, this:r2149_1, 0:r2149_3 -# 2149| mu2149_5(unknown) = ^CallSideEffect : ~m? -# 2149| v2149_6(void) = ^IndirectReadSideEffect[-1] : &:r2149_1, ~m? -# 2149| mu2149_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2149_1 -# 2150| v2150_1(void) = NoOp : -#-----| Goto -> Block 10 - -# 2151| Block 9 -# 2151| r2151_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2151| r2151_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2151| v2151_3(void) = Call[~ClassWithDestructor] : func:r2151_2, this:r2151_1 -# 2151| mu2151_4(unknown) = ^CallSideEffect : ~m? -# 2151| v2151_5(void) = ^IndirectReadSideEffect[-1] : &:r2151_1, ~m? -# 2151| mu2151_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2151_1 -#-----| Goto -> Block 10 - -# 2151| Block 10 -# 2151| v2151_7(void) = NoOp : -# 2153| r2153_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2153| mu2153_2(ClassWithDestructor) = Uninitialized[x] : &:r2153_1 -# 2153| r2153_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2153| v2153_4(void) = Call[ClassWithDestructor] : func:r2153_3, this:r2153_1 -# 2153| mu2153_5(unknown) = ^CallSideEffect : ~m? -# 2153| mu2153_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2153_1 -# 2154| r2154_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2154| mu2154_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2154_1 -# 2154| r2154_3(glval<unknown>) = FunctionAddress[vector] : -# 2154| r2154_4(glval<ClassWithDestructor>) = VariableAddress[#temp2154:40] : -# 2154| r2154_5(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2154| r2154_6(ClassWithDestructor) = Load[x] : &:r2154_5, ~m? -# 2154| mu2154_7(ClassWithDestructor) = Store[#temp2154:40] : &:r2154_4, r2154_6 -# 2154| r2154_8(ClassWithDestructor) = Load[#temp2154:40] : &:r2154_4, ~m? -# 2154| v2154_9(void) = Call[vector] : func:r2154_3, this:r2154_1, 0:r2154_8 -# 2154| mu2154_10(unknown) = ^CallSideEffect : ~m? -# 2154| mu2154_11(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2154_1 -# 2154| r2154_12(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2154| r2154_13(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2154| r2154_14(vector<ClassWithDestructor> &) = CopyValue : r2154_13 -# 2154| mu2154_15(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2154_12, r2154_14 -# 2154| r2154_16(glval<iterator>) = VariableAddress[(__begin)] : -# 2154| r2154_17(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2154| r2154_18(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2154_17, ~m? -#-----| r0_1(glval<vector<ClassWithDestructor>>) = CopyValue : r2154_18 -#-----| r0_2(glval<vector<ClassWithDestructor>>) = Convert : r0_1 -# 2154| r2154_19(glval<unknown>) = FunctionAddress[begin] : -# 2154| r2154_20(iterator) = Call[begin] : func:r2154_19, this:r0_2 -# 2154| mu2154_21(unknown) = ^CallSideEffect : ~m? -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2154| mu2154_22(iterator) = Store[(__begin)] : &:r2154_16, r2154_20 -# 2154| r2154_23(glval<iterator>) = VariableAddress[(__end)] : -# 2154| r2154_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2154| r2154_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2154_24, ~m? -#-----| r0_4(glval<vector<ClassWithDestructor>>) = CopyValue : r2154_25 -#-----| r0_5(glval<vector<ClassWithDestructor>>) = Convert : r0_4 -# 2154| r2154_26(glval<unknown>) = FunctionAddress[end] : -# 2154| r2154_27(iterator) = Call[end] : func:r2154_26, this:r0_5 -# 2154| mu2154_28(unknown) = ^CallSideEffect : ~m? -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2154| mu2154_29(iterator) = Store[(__end)] : &:r2154_23, r2154_27 -#-----| Goto -> Block 11 - -# 2154| Block 11 -# 2154| r2154_30(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator>) = Convert : r2154_30 -# 2154| r2154_31(glval<unknown>) = FunctionAddress[operator!=] : -# 2154| r2154_32(glval<iterator>) = VariableAddress[(__end)] : -# 2154| r2154_33(iterator) = Load[(__end)] : &:r2154_32, ~m? -# 2154| r2154_34(bool) = Call[operator!=] : func:r2154_31, this:r0_7, 0:r2154_33 -# 2154| mu2154_35(unknown) = ^CallSideEffect : ~m? -#-----| v0_8(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2154| v2154_36(void) = ConditionalBranch : r2154_34 -#-----| False -> Block 14 -#-----| True -> Block 12 - -# 2154| Block 12 -# 2154| r2154_37(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2154| r2154_38(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_9(glval<iterator>) = Convert : r2154_38 -# 2154| r2154_39(glval<unknown>) = FunctionAddress[operator*] : -# 2154| r2154_40(ClassWithDestructor &) = Call[operator*] : func:r2154_39, this:r0_9 -# 2154| mu2154_41(unknown) = ^CallSideEffect : ~m? -#-----| v0_10(void) = ^IndirectReadSideEffect[-1] : &:r0_9, ~m? -# 2154| r2154_42(ClassWithDestructor) = Load[?] : &:r2154_40, ~m? -# 2154| mu2154_43(ClassWithDestructor) = Store[y] : &:r2154_37, r2154_42 -# 2155| r2155_1(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2155| r2155_2(glval<unknown>) = FunctionAddress[set_x] : -# 2155| r2155_3(char) = Constant[97] : -# 2155| v2155_4(void) = Call[set_x] : func:r2155_2, this:r2155_1, 0:r2155_3 -# 2155| mu2155_5(unknown) = ^CallSideEffect : ~m? -# 2155| v2155_6(void) = ^IndirectReadSideEffect[-1] : &:r2155_1, ~m? -# 2155| mu2155_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2155_1 -# 2154| r2154_44(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2154| r2154_45(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2154| v2154_46(void) = Call[~ClassWithDestructor] : func:r2154_45, this:r2154_44 -# 2154| mu2154_47(unknown) = ^CallSideEffect : ~m? -# 2154| v2154_48(void) = ^IndirectReadSideEffect[-1] : &:r2154_44, ~m? -# 2154| mu2154_49(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2154_44 -# 2154| r2154_50(glval<iterator>) = VariableAddress[(__begin)] : -# 2154| r2154_51(glval<unknown>) = FunctionAddress[operator++] : -# 2154| r2154_52(iterator &) = Call[operator++] : func:r2154_51, this:r2154_50 -# 2154| mu2154_53(unknown) = ^CallSideEffect : ~m? -# 2154| v2154_54(void) = ^IndirectReadSideEffect[-1] : &:r2154_50, ~m? -# 2154| mu2154_55(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2154_50 -# 2154| r2154_56(glval<iterator>) = CopyValue : r2154_52 -#-----| Goto (back edge) -> Block 11 - -# 2154| Block 13 -# 2154| r2154_57(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2154| r2154_58(glval<unknown>) = FunctionAddress[~vector] : -# 2154| v2154_59(void) = Call[~vector] : func:r2154_58, this:r2154_57 -# 2154| mu2154_60(unknown) = ^CallSideEffect : ~m? -# 2154| v2154_61(void) = ^IndirectReadSideEffect[-1] : &:r2154_57, ~m? -# 2154| mu2154_62(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2154_57 -#-----| Goto -> Block 14 - -# 2157| Block 14 -# 2157| r2157_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2157| mu2157_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2157_1 -# 2157| r2157_3(glval<unknown>) = FunctionAddress[vector] : -# 2157| r2157_4(glval<ClassWithDestructor>) = VariableAddress[#temp2157:40] : -# 2157| r2157_5(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2157| r2157_6(ClassWithDestructor) = Load[x] : &:r2157_5, ~m? -# 2157| mu2157_7(ClassWithDestructor) = Store[#temp2157:40] : &:r2157_4, r2157_6 -# 2157| r2157_8(ClassWithDestructor) = Load[#temp2157:40] : &:r2157_4, ~m? -# 2157| v2157_9(void) = Call[vector] : func:r2157_3, this:r2157_1, 0:r2157_8 -# 2157| mu2157_10(unknown) = ^CallSideEffect : ~m? -# 2157| mu2157_11(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2157_1 -# 2157| r2157_12(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2157| r2157_13(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2157| r2157_14(vector<ClassWithDestructor> &) = CopyValue : r2157_13 -# 2157| mu2157_15(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2157_12, r2157_14 -# 2157| r2157_16(glval<iterator>) = VariableAddress[(__begin)] : -# 2157| r2157_17(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2157| r2157_18(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2157_17, ~m? -#-----| r0_11(glval<vector<ClassWithDestructor>>) = CopyValue : r2157_18 -#-----| r0_12(glval<vector<ClassWithDestructor>>) = Convert : r0_11 -# 2157| r2157_19(glval<unknown>) = FunctionAddress[begin] : -# 2157| r2157_20(iterator) = Call[begin] : func:r2157_19, this:r0_12 -# 2157| mu2157_21(unknown) = ^CallSideEffect : ~m? -#-----| v0_13(void) = ^IndirectReadSideEffect[-1] : &:r0_12, ~m? -# 2157| mu2157_22(iterator) = Store[(__begin)] : &:r2157_16, r2157_20 -# 2157| r2157_23(glval<iterator>) = VariableAddress[(__end)] : -# 2157| r2157_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2157| r2157_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2157_24, ~m? -#-----| r0_14(glval<vector<ClassWithDestructor>>) = CopyValue : r2157_25 -#-----| r0_15(glval<vector<ClassWithDestructor>>) = Convert : r0_14 -# 2157| r2157_26(glval<unknown>) = FunctionAddress[end] : -# 2157| r2157_27(iterator) = Call[end] : func:r2157_26, this:r0_15 -# 2157| mu2157_28(unknown) = ^CallSideEffect : ~m? -#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2157| mu2157_29(iterator) = Store[(__end)] : &:r2157_23, r2157_27 -#-----| Goto -> Block 15 - -# 2157| Block 15 -# 2157| r2157_30(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_17(glval<iterator>) = Convert : r2157_30 -# 2157| r2157_31(glval<unknown>) = FunctionAddress[operator!=] : -# 2157| r2157_32(glval<iterator>) = VariableAddress[(__end)] : -# 2157| r2157_33(iterator) = Load[(__end)] : &:r2157_32, ~m? -# 2157| r2157_34(bool) = Call[operator!=] : func:r2157_31, this:r0_17, 0:r2157_33 -# 2157| mu2157_35(unknown) = ^CallSideEffect : ~m? -#-----| v0_18(void) = ^IndirectReadSideEffect[-1] : &:r0_17, ~m? -# 2157| v2157_36(void) = ConditionalBranch : r2157_34 -#-----| False -> Block 20 -#-----| True -> Block 16 - -# 2157| Block 16 -# 2157| r2157_37(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2157| r2157_38(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_19(glval<iterator>) = Convert : r2157_38 -# 2157| r2157_39(glval<unknown>) = FunctionAddress[operator*] : -# 2157| r2157_40(ClassWithDestructor &) = Call[operator*] : func:r2157_39, this:r0_19 -# 2157| mu2157_41(unknown) = ^CallSideEffect : ~m? -#-----| v0_20(void) = ^IndirectReadSideEffect[-1] : &:r0_19, ~m? -# 2157| r2157_42(ClassWithDestructor) = Load[?] : &:r2157_40, ~m? -# 2157| mu2157_43(ClassWithDestructor) = Store[y] : &:r2157_37, r2157_42 -# 2158| r2158_1(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2158| r2158_2(glval<unknown>) = FunctionAddress[set_x] : -# 2158| r2158_3(char) = Constant[97] : -# 2158| v2158_4(void) = Call[set_x] : func:r2158_2, this:r2158_1, 0:r2158_3 -# 2158| mu2158_5(unknown) = ^CallSideEffect : ~m? -# 2158| v2158_6(void) = ^IndirectReadSideEffect[-1] : &:r2158_1, ~m? -# 2158| mu2158_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2158_1 -# 2159| r2159_1(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2159| r2159_2(glval<unknown>) = FunctionAddress[get_x] : -# 2159| r2159_3(char) = Call[get_x] : func:r2159_2, this:r2159_1 -# 2159| mu2159_4(unknown) = ^CallSideEffect : ~m? -# 2159| v2159_5(void) = ^IndirectReadSideEffect[-1] : &:r2159_1, ~m? -# 2159| mu2159_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2159_1 -# 2159| r2159_7(int) = Convert : r2159_3 -# 2159| r2159_8(int) = Constant[98] : -# 2159| r2159_9(bool) = CompareEQ : r2159_7, r2159_8 -# 2159| v2159_10(void) = ConditionalBranch : r2159_9 -#-----| False -> Block 18 -#-----| True -> Block 17 - -# 2160| Block 17 -# 2160| v2160_1(void) = NoOp : -# 2157| r2157_44(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2157| r2157_45(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2157| v2157_46(void) = Call[~ClassWithDestructor] : func:r2157_45, this:r2157_44 -# 2157| mu2157_47(unknown) = ^CallSideEffect : ~m? -# 2157| v2157_48(void) = ^IndirectReadSideEffect[-1] : &:r2157_44, ~m? -# 2157| mu2157_49(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2157_44 -# 2157| r2157_50(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2157| r2157_51(glval<unknown>) = FunctionAddress[~vector] : -# 2157| v2157_52(void) = Call[~vector] : func:r2157_51, this:r2157_50 -# 2157| mu2157_53(unknown) = ^CallSideEffect : ~m? -# 2157| v2157_54(void) = ^IndirectReadSideEffect[-1] : &:r2157_50, ~m? -# 2157| mu2157_55(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2157_50 -# 2172| r2172_1(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2172| r2172_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2172| v2172_3(void) = Call[~ClassWithDestructor] : func:r2172_2, this:r2172_1 -# 2172| mu2172_4(unknown) = ^CallSideEffect : ~m? -# 2172| v2172_5(void) = ^IndirectReadSideEffect[-1] : &:r2172_1, ~m? -# 2172| mu2172_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2172_1 -#-----| Goto -> Block 1 - -# 2157| Block 18 -# 2157| r2157_56(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2157| r2157_57(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2157| v2157_58(void) = Call[~ClassWithDestructor] : func:r2157_57, this:r2157_56 -# 2157| mu2157_59(unknown) = ^CallSideEffect : ~m? -# 2157| v2157_60(void) = ^IndirectReadSideEffect[-1] : &:r2157_56, ~m? -# 2157| mu2157_61(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2157_56 -# 2157| r2157_62(glval<iterator>) = VariableAddress[(__begin)] : -# 2157| r2157_63(glval<unknown>) = FunctionAddress[operator++] : -# 2157| r2157_64(iterator &) = Call[operator++] : func:r2157_63, this:r2157_62 -# 2157| mu2157_65(unknown) = ^CallSideEffect : ~m? -# 2157| v2157_66(void) = ^IndirectReadSideEffect[-1] : &:r2157_62, ~m? -# 2157| mu2157_67(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2157_62 -# 2157| r2157_68(glval<iterator>) = CopyValue : r2157_64 -#-----| Goto (back edge) -> Block 15 - -# 2157| Block 19 -# 2157| r2157_69(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2157| r2157_70(glval<unknown>) = FunctionAddress[~vector] : -# 2157| v2157_71(void) = Call[~vector] : func:r2157_70, this:r2157_69 -# 2157| mu2157_72(unknown) = ^CallSideEffect : ~m? -# 2157| v2157_73(void) = ^IndirectReadSideEffect[-1] : &:r2157_69, ~m? -# 2157| mu2157_74(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2157_69 -#-----| Goto -> Block 20 - -# 2163| Block 20 -# 2163| r2163_1(glval<vector<int>>) = VariableAddress[ys] : -# 2163| mu2163_2(vector<int>) = Uninitialized[ys] : &:r2163_1 -# 2163| r2163_3(glval<unknown>) = FunctionAddress[vector] : -# 2163| r2163_4(int) = Constant[1] : -# 2163| v2163_5(void) = Call[vector] : func:r2163_3, this:r2163_1, 0:r2163_4 -# 2163| mu2163_6(unknown) = ^CallSideEffect : ~m? -# 2163| mu2163_7(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2163_1 -# 2163| r2163_8(glval<vector<int> &>) = VariableAddress[(__range)] : -# 2163| r2163_9(glval<vector<int>>) = VariableAddress[ys] : -# 2163| r2163_10(vector<int> &) = CopyValue : r2163_9 -# 2163| mu2163_11(vector<int> &) = Store[(__range)] : &:r2163_8, r2163_10 -# 2163| r2163_12(glval<iterator>) = VariableAddress[(__begin)] : -# 2163| r2163_13(glval<vector<int> &>) = VariableAddress[(__range)] : -# 2163| r2163_14(vector<int> &) = Load[(__range)] : &:r2163_13, ~m? -#-----| r0_21(glval<vector<int>>) = CopyValue : r2163_14 -#-----| r0_22(glval<vector<int>>) = Convert : r0_21 -# 2163| r2163_15(glval<unknown>) = FunctionAddress[begin] : -# 2163| r2163_16(iterator) = Call[begin] : func:r2163_15, this:r0_22 -# 2163| mu2163_17(unknown) = ^CallSideEffect : ~m? -#-----| v0_23(void) = ^IndirectReadSideEffect[-1] : &:r0_22, ~m? -# 2163| mu2163_18(iterator) = Store[(__begin)] : &:r2163_12, r2163_16 -# 2163| r2163_19(glval<iterator>) = VariableAddress[(__end)] : -# 2163| r2163_20(glval<vector<int> &>) = VariableAddress[(__range)] : -# 2163| r2163_21(vector<int> &) = Load[(__range)] : &:r2163_20, ~m? -#-----| r0_24(glval<vector<int>>) = CopyValue : r2163_21 -#-----| r0_25(glval<vector<int>>) = Convert : r0_24 -# 2163| r2163_22(glval<unknown>) = FunctionAddress[end] : -# 2163| r2163_23(iterator) = Call[end] : func:r2163_22, this:r0_25 -# 2163| mu2163_24(unknown) = ^CallSideEffect : ~m? -#-----| v0_26(void) = ^IndirectReadSideEffect[-1] : &:r0_25, ~m? -# 2163| mu2163_25(iterator) = Store[(__end)] : &:r2163_19, r2163_23 -#-----| Goto -> Block 21 - -# 2163| Block 21 -# 2163| r2163_26(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_27(glval<iterator>) = Convert : r2163_26 -# 2163| r2163_27(glval<unknown>) = FunctionAddress[operator!=] : -# 2163| r2163_28(glval<iterator>) = VariableAddress[(__end)] : -# 2163| r2163_29(iterator) = Load[(__end)] : &:r2163_28, ~m? -# 2163| r2163_30(bool) = Call[operator!=] : func:r2163_27, this:r0_27, 0:r2163_29 -# 2163| mu2163_31(unknown) = ^CallSideEffect : ~m? -#-----| v0_28(void) = ^IndirectReadSideEffect[-1] : &:r0_27, ~m? -# 2163| v2163_32(void) = ConditionalBranch : r2163_30 -#-----| False -> Block 26 -#-----| True -> Block 23 - -# 2163| Block 22 -# 2163| r2163_33(glval<iterator>) = VariableAddress[(__begin)] : -# 2163| r2163_34(glval<unknown>) = FunctionAddress[operator++] : -# 2163| r2163_35(iterator &) = Call[operator++] : func:r2163_34, this:r2163_33 -# 2163| mu2163_36(unknown) = ^CallSideEffect : ~m? -# 2163| v2163_37(void) = ^IndirectReadSideEffect[-1] : &:r2163_33, ~m? -# 2163| mu2163_38(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2163_33 -# 2163| r2163_39(glval<iterator>) = CopyValue : r2163_35 -#-----| Goto (back edge) -> Block 21 - -# 2163| Block 23 -# 2163| r2163_40(glval<int>) = VariableAddress[y] : -# 2163| r2163_41(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_29(glval<iterator>) = Convert : r2163_41 -# 2163| r2163_42(glval<unknown>) = FunctionAddress[operator*] : -# 2163| r2163_43(int &) = Call[operator*] : func:r2163_42, this:r0_29 -# 2163| mu2163_44(unknown) = ^CallSideEffect : ~m? -#-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_29, ~m? -# 2163| r2163_45(int) = Load[?] : &:r2163_43, ~m? -# 2163| mu2163_46(int) = Store[y] : &:r2163_40, r2163_45 -# 2164| r2164_1(glval<int>) = VariableAddress[y] : -# 2164| r2164_2(int) = Load[y] : &:r2164_1, ~m? -# 2164| r2164_3(int) = Constant[1] : -# 2164| r2164_4(bool) = CompareEQ : r2164_2, r2164_3 -# 2164| v2164_5(void) = ConditionalBranch : r2164_4 -#-----| False -> Block 22 -#-----| True -> Block 24 - -# 2165| Block 24 -# 2165| v2165_1(void) = NoOp : -# 2163| r2163_47(glval<vector<int>>) = VariableAddress[ys] : -# 2163| r2163_48(glval<unknown>) = FunctionAddress[~vector] : -# 2163| v2163_49(void) = Call[~vector] : func:r2163_48, this:r2163_47 -# 2163| mu2163_50(unknown) = ^CallSideEffect : ~m? -# 2163| v2163_51(void) = ^IndirectReadSideEffect[-1] : &:r2163_47, ~m? -# 2163| mu2163_52(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2163_47 -# 2172| r2172_7(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2172| r2172_8(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2172| v2172_9(void) = Call[~ClassWithDestructor] : func:r2172_8, this:r2172_7 -# 2172| mu2172_10(unknown) = ^CallSideEffect : ~m? -# 2172| v2172_11(void) = ^IndirectReadSideEffect[-1] : &:r2172_7, ~m? -# 2172| mu2172_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2172_7 -#-----| Goto -> Block 1 - -# 2163| Block 25 -# 2163| r2163_53(glval<vector<int>>) = VariableAddress[ys] : -# 2163| r2163_54(glval<unknown>) = FunctionAddress[~vector] : -# 2163| v2163_55(void) = Call[~vector] : func:r2163_54, this:r2163_53 -# 2163| mu2163_56(unknown) = ^CallSideEffect : ~m? -# 2163| v2163_57(void) = ^IndirectReadSideEffect[-1] : &:r2163_53, ~m? -# 2163| mu2163_58(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2163_53 -#-----| Goto -> Block 26 - -# 2168| Block 26 -# 2168| r2168_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2168| mu2168_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2168_1 -# 2168| r2168_3(glval<unknown>) = FunctionAddress[vector] : -# 2168| r2168_4(glval<ClassWithDestructor>) = VariableAddress[#temp2168:40] : -# 2168| r2168_5(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2168| r2168_6(ClassWithDestructor) = Load[x] : &:r2168_5, ~m? -# 2168| mu2168_7(ClassWithDestructor) = Store[#temp2168:40] : &:r2168_4, r2168_6 -# 2168| r2168_8(ClassWithDestructor) = Load[#temp2168:40] : &:r2168_4, ~m? -# 2168| v2168_9(void) = Call[vector] : func:r2168_3, this:r2168_1, 0:r2168_8 -# 2168| mu2168_10(unknown) = ^CallSideEffect : ~m? -# 2168| mu2168_11(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2168_1 -# 2168| r2168_12(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2168| r2168_13(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2168| r2168_14(vector<ClassWithDestructor> &) = CopyValue : r2168_13 -# 2168| mu2168_15(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2168_12, r2168_14 -# 2168| r2168_16(glval<iterator>) = VariableAddress[(__begin)] : -# 2168| r2168_17(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2168| r2168_18(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2168_17, ~m? -#-----| r0_31(glval<vector<ClassWithDestructor>>) = CopyValue : r2168_18 -#-----| r0_32(glval<vector<ClassWithDestructor>>) = Convert : r0_31 -# 2168| r2168_19(glval<unknown>) = FunctionAddress[begin] : -# 2168| r2168_20(iterator) = Call[begin] : func:r2168_19, this:r0_32 -# 2168| mu2168_21(unknown) = ^CallSideEffect : ~m? -#-----| v0_33(void) = ^IndirectReadSideEffect[-1] : &:r0_32, ~m? -# 2168| mu2168_22(iterator) = Store[(__begin)] : &:r2168_16, r2168_20 -# 2168| r2168_23(glval<iterator>) = VariableAddress[(__end)] : -# 2168| r2168_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2168| r2168_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2168_24, ~m? -#-----| r0_34(glval<vector<ClassWithDestructor>>) = CopyValue : r2168_25 -#-----| r0_35(glval<vector<ClassWithDestructor>>) = Convert : r0_34 -# 2168| r2168_26(glval<unknown>) = FunctionAddress[end] : -# 2168| r2168_27(iterator) = Call[end] : func:r2168_26, this:r0_35 -# 2168| mu2168_28(unknown) = ^CallSideEffect : ~m? -#-----| v0_36(void) = ^IndirectReadSideEffect[-1] : &:r0_35, ~m? -# 2168| mu2168_29(iterator) = Store[(__end)] : &:r2168_23, r2168_27 -#-----| Goto -> Block 27 - -# 2168| Block 27 -# 2168| r2168_30(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_37(glval<iterator>) = Convert : r2168_30 -# 2168| r2168_31(glval<unknown>) = FunctionAddress[operator!=] : -# 2168| r2168_32(glval<iterator>) = VariableAddress[(__end)] : -# 2168| r2168_33(iterator) = Load[(__end)] : &:r2168_32, ~m? -# 2168| r2168_34(bool) = Call[operator!=] : func:r2168_31, this:r0_37, 0:r2168_33 -# 2168| mu2168_35(unknown) = ^CallSideEffect : ~m? -#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, ~m? -# 2168| v2168_36(void) = ConditionalBranch : r2168_34 -#-----| False -> Block 30 -#-----| True -> Block 28 - -# 2168| Block 28 -# 2168| r2168_37(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2168| r2168_38(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_39(glval<iterator>) = Convert : r2168_38 -# 2168| r2168_39(glval<unknown>) = FunctionAddress[operator*] : -# 2168| r2168_40(ClassWithDestructor &) = Call[operator*] : func:r2168_39, this:r0_39 -# 2168| mu2168_41(unknown) = ^CallSideEffect : ~m? -#-----| v0_40(void) = ^IndirectReadSideEffect[-1] : &:r0_39, ~m? -# 2168| r2168_42(ClassWithDestructor) = Load[?] : &:r2168_40, ~m? -# 2168| mu2168_43(ClassWithDestructor) = Store[y] : &:r2168_37, r2168_42 -# 2169| r2169_1(glval<ClassWithDestructor>) = VariableAddress[z1] : -# 2169| mu2169_2(ClassWithDestructor) = Uninitialized[z1] : &:r2169_1 -# 2169| r2169_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2169| v2169_4(void) = Call[ClassWithDestructor] : func:r2169_3, this:r2169_1 -# 2169| mu2169_5(unknown) = ^CallSideEffect : ~m? -# 2169| mu2169_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2169_1 -# 2170| r2170_1(glval<ClassWithDestructor>) = VariableAddress[z2] : -# 2170| mu2170_2(ClassWithDestructor) = Uninitialized[z2] : &:r2170_1 -# 2170| r2170_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2170| v2170_4(void) = Call[ClassWithDestructor] : func:r2170_3, this:r2170_1 -# 2170| mu2170_5(unknown) = ^CallSideEffect : ~m? -# 2170| mu2170_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1 -# 2171| r2171_1(glval<ClassWithDestructor>) = VariableAddress[z2] : -# 2171| r2171_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2171| v2171_3(void) = Call[~ClassWithDestructor] : func:r2171_2, this:r2171_1 -# 2171| mu2171_4(unknown) = ^CallSideEffect : ~m? -# 2171| v2171_5(void) = ^IndirectReadSideEffect[-1] : &:r2171_1, ~m? -# 2171| mu2171_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2171_1 -# 2171| r2171_7(glval<ClassWithDestructor>) = VariableAddress[z1] : -# 2171| r2171_8(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2171| v2171_9(void) = Call[~ClassWithDestructor] : func:r2171_8, this:r2171_7 -# 2171| mu2171_10(unknown) = ^CallSideEffect : ~m? -# 2171| v2171_11(void) = ^IndirectReadSideEffect[-1] : &:r2171_7, ~m? -# 2171| mu2171_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2171_7 -# 2168| r2168_44(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2168| r2168_45(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2168| v2168_46(void) = Call[~ClassWithDestructor] : func:r2168_45, this:r2168_44 -# 2168| mu2168_47(unknown) = ^CallSideEffect : ~m? -# 2168| v2168_48(void) = ^IndirectReadSideEffect[-1] : &:r2168_44, ~m? -# 2168| mu2168_49(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2168_44 -# 2168| r2168_50(glval<iterator>) = VariableAddress[(__begin)] : -# 2168| r2168_51(glval<unknown>) = FunctionAddress[operator++] : -# 2168| r2168_52(iterator &) = Call[operator++] : func:r2168_51, this:r2168_50 -# 2168| mu2168_53(unknown) = ^CallSideEffect : ~m? -# 2168| v2168_54(void) = ^IndirectReadSideEffect[-1] : &:r2168_50, ~m? -# 2168| mu2168_55(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2168_50 -# 2168| r2168_56(glval<iterator>) = CopyValue : r2168_52 -#-----| Goto (back edge) -> Block 27 - -# 2168| Block 29 -# 2168| r2168_57(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2168| r2168_58(glval<unknown>) = FunctionAddress[~vector] : -# 2168| v2168_59(void) = Call[~vector] : func:r2168_58, this:r2168_57 -# 2168| mu2168_60(unknown) = ^CallSideEffect : ~m? -# 2168| v2168_61(void) = ^IndirectReadSideEffect[-1] : &:r2168_57, ~m? -# 2168| mu2168_62(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2168_57 -#-----| Goto -> Block 30 - -# 2172| Block 30 -# 2172| v2172_13(void) = NoOp : -# 2172| r2172_14(glval<ClassWithDestructor>) = VariableAddress[x] : -# 2172| r2172_15(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2172| v2172_16(void) = Call[~ClassWithDestructor] : func:r2172_15, this:r2172_14 -# 2172| mu2172_17(unknown) = ^CallSideEffect : ~m? -# 2172| v2172_18(void) = ^IndirectReadSideEffect[-1] : &:r2172_14, ~m? -# 2172| mu2172_19(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2172_14 -#-----| Goto -> Block 1 - -# 2174| void static_variable_with_destructor_1() -# 2174| Block 0 -# 2174| v2174_1(void) = EnterFunction : -# 2174| mu2174_2(unknown) = AliasedDefinition : -# 2174| mu2174_3(unknown) = InitializeNonLocal : -# 2175| r2175_1(glval<ClassWithDestructor>) = VariableAddress[a] : -# 2175| mu2175_2(ClassWithDestructor) = Uninitialized[a] : &:r2175_1 -# 2175| r2175_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2175| v2175_4(void) = Call[ClassWithDestructor] : func:r2175_3, this:r2175_1 -# 2175| mu2175_5(unknown) = ^CallSideEffect : ~m? -# 2175| mu2175_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2175_1 -# 2176| r2176_1(glval<bool>) = VariableAddress[b#init] : -# 2176| r2176_2(bool) = Load[b#init] : &:r2176_1, ~m? -# 2176| v2176_3(void) = ConditionalBranch : r2176_2 -#-----| False -> Block 1 -#-----| True -> Block 2 - -# 2176| Block 1 -# 2176| r2176_4(glval<ClassWithDestructor>) = VariableAddress[b] : -#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2176_4 -#-----| mu0_3(unknown) = ^CallSideEffect : ~m? -#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2176_4 -# 2176| r2176_5(bool) = Constant[1] : -# 2176| mu2176_6(bool) = Store[b#init] : &:r2176_1, r2176_5 -#-----| Goto -> Block 2 - -# 2177| Block 2 -# 2177| v2177_1(void) = NoOp : -# 2177| r2177_2(glval<ClassWithDestructor>) = VariableAddress[a] : -# 2177| r2177_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2177| v2177_4(void) = Call[~ClassWithDestructor] : func:r2177_3, this:r2177_2 -# 2177| mu2177_5(unknown) = ^CallSideEffect : ~m? -# 2177| v2177_6(void) = ^IndirectReadSideEffect[-1] : &:r2177_2, ~m? -# 2177| mu2177_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2177_2 -# 2174| v2174_4(void) = ReturnVoid : -# 2174| v2174_5(void) = AliasedUse : ~m? -# 2174| v2174_6(void) = ExitFunction : - -# 2179| void static_variable_with_destructor_2() +# 2179| char ClassWithDestructor::get_x() # 2179| Block 0 -# 2179| v2179_1(void) = EnterFunction : -# 2179| mu2179_2(unknown) = AliasedDefinition : -# 2179| mu2179_3(unknown) = InitializeNonLocal : -# 2180| r2180_1(glval<bool>) = VariableAddress[a#init] : -# 2180| r2180_2(bool) = Load[a#init] : &:r2180_1, ~m? -# 2180| v2180_3(void) = ConditionalBranch : r2180_2 -#-----| False -> Block 1 -#-----| True -> Block 2 +# 2179| v2179_1(void) = EnterFunction : +# 2179| mu2179_2(unknown) = AliasedDefinition : +# 2179| mu2179_3(unknown) = InitializeNonLocal : +# 2179| r2179_4(glval<unknown>) = VariableAddress[#this] : +# 2179| mu2179_5(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2179_4 +# 2179| r2179_6(glval<ClassWithDestructor>) = Load[#this] : &:r2179_4, ~m? +# 2179| mu2179_7(ClassWithDestructor) = InitializeIndirection[#this] : &:r2179_6 +# 2179| r2179_8(glval<char>) = VariableAddress[#return] : +# 2179| r2179_9(glval<unknown>) = VariableAddress[#this] : +# 2179| r2179_10(ClassWithDestructor *) = Load[#this] : &:r2179_9, ~m? +# 2179| r2179_11(glval<char *>) = FieldAddress[x] : r2179_10 +# 2179| r2179_12(char *) = Load[?] : &:r2179_11, ~m? +# 2179| r2179_13(char) = Load[?] : &:r2179_12, ~m? +# 2179| mu2179_14(char) = Store[#return] : &:r2179_8, r2179_13 +# 2179| v2179_15(void) = ReturnIndirection[#this] : &:r2179_6, ~m? +# 2179| r2179_16(glval<char>) = VariableAddress[#return] : +# 2179| v2179_17(void) = ReturnValue : &:r2179_16, ~m? +# 2179| v2179_18(void) = AliasedUse : ~m? +# 2179| v2179_19(void) = ExitFunction : -# 2180| Block 1 -# 2180| r2180_4(glval<ClassWithDestructor>) = VariableAddress[a] : -#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2180_4 -#-----| mu0_3(unknown) = ^CallSideEffect : ~m? -#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2180_4 -# 2180| r2180_5(bool) = Constant[1] : -# 2180| mu2180_6(bool) = Store[a#init] : &:r2180_1, r2180_5 -#-----| Goto -> Block 2 +# 2182| bool initialization_with_destructor_bool +# 2182| Block 0 +# 2182| v2182_1(void) = EnterFunction : +# 2182| mu2182_2(unknown) = AliasedDefinition : +# 2182| r2182_3(glval<bool>) = VariableAddress[initialization_with_destructor_bool] : +# 2182| r2182_4(bool) = Constant[1] : +# 2182| mu2182_5(bool) = Store[initialization_with_destructor_bool] : &:r2182_3, r2182_4 +# 2182| v2182_6(void) = ReturnVoid : +# 2182| v2182_7(void) = AliasedUse : ~m? +# 2182| v2182_8(void) = ExitFunction : -# 2181| Block 2 -# 2181| r2181_1(glval<ClassWithDestructor>) = VariableAddress[b] : -# 2181| mu2181_2(ClassWithDestructor) = Uninitialized[b] : &:r2181_1 -# 2181| r2181_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2181| v2181_4(void) = Call[ClassWithDestructor] : func:r2181_3, this:r2181_1 -# 2181| mu2181_5(unknown) = ^CallSideEffect : ~m? -# 2181| mu2181_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2181_1 -# 2182| v2182_1(void) = NoOp : -# 2182| r2182_2(glval<ClassWithDestructor>) = VariableAddress[b] : -# 2182| r2182_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2182| v2182_4(void) = Call[~ClassWithDestructor] : func:r2182_3, this:r2182_2 -# 2182| mu2182_5(unknown) = ^CallSideEffect : ~m? -# 2182| v2182_6(void) = ^IndirectReadSideEffect[-1] : &:r2182_2, ~m? -# 2182| mu2182_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2182_2 -# 2179| v2179_4(void) = ReturnVoid : -# 2179| v2179_5(void) = AliasedUse : ~m? -# 2179| v2179_6(void) = ExitFunction : - -# 2184| void static_variable_with_destructor_3() +# 2184| void initialization_with_destructor(bool, char) # 2184| Block 0 # 2184| v2184_1(void) = EnterFunction : # 2184| mu2184_2(unknown) = AliasedDefinition : # 2184| mu2184_3(unknown) = InitializeNonLocal : -# 2185| r2185_1(glval<ClassWithDestructor>) = VariableAddress[a] : -# 2185| mu2185_2(ClassWithDestructor) = Uninitialized[a] : &:r2185_1 +# 2184| r2184_4(glval<bool>) = VariableAddress[b] : +# 2184| mu2184_5(bool) = InitializeParameter[b] : &:r2184_4 +# 2184| r2184_6(glval<char>) = VariableAddress[c] : +# 2184| mu2184_7(char) = InitializeParameter[c] : &:r2184_6 +# 2185| r2185_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2185| mu2185_2(ClassWithDestructor) = Uninitialized[x] : &:r2185_1 # 2185| r2185_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : # 2185| v2185_4(void) = Call[ClassWithDestructor] : func:r2185_3, this:r2185_1 # 2185| mu2185_5(unknown) = ^CallSideEffect : ~m? # 2185| mu2185_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2185_1 -# 2186| r2186_1(glval<ClassWithDestructor>) = VariableAddress[b] : -# 2186| mu2186_2(ClassWithDestructor) = Uninitialized[b] : &:r2186_1 -# 2186| r2186_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2186| v2186_4(void) = Call[ClassWithDestructor] : func:r2186_3, this:r2186_1 -# 2186| mu2186_5(unknown) = ^CallSideEffect : ~m? -# 2186| mu2186_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1 -# 2187| r2187_1(glval<bool>) = VariableAddress[c#init] : -# 2187| r2187_2(bool) = Load[c#init] : &:r2187_1, ~m? -# 2187| v2187_3(void) = ConditionalBranch : r2187_2 -#-----| False -> Block 1 -#-----| True -> Block 2 - -# 2187| Block 1 -# 2187| r2187_4(glval<ClassWithDestructor>) = VariableAddress[c] : -#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2187_4 -#-----| mu0_3(unknown) = ^CallSideEffect : ~m? -#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2187_4 -# 2187| r2187_5(bool) = Constant[1] : -# 2187| mu2187_6(bool) = Store[c#init] : &:r2187_1, r2187_5 -#-----| Goto -> Block 2 - -# 2188| Block 2 -# 2188| v2188_1(void) = NoOp : -# 2188| r2188_2(glval<ClassWithDestructor>) = VariableAddress[b] : -# 2188| r2188_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2188| v2188_4(void) = Call[~ClassWithDestructor] : func:r2188_3, this:r2188_2 -# 2188| mu2188_5(unknown) = ^CallSideEffect : ~m? -# 2188| v2188_6(void) = ^IndirectReadSideEffect[-1] : &:r2188_2, ~m? -# 2188| mu2188_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2188_2 -# 2188| r2188_8(glval<ClassWithDestructor>) = VariableAddress[a] : -# 2188| r2188_9(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2188| v2188_10(void) = Call[~ClassWithDestructor] : func:r2188_9, this:r2188_8 -# 2188| mu2188_11(unknown) = ^CallSideEffect : ~m? -# 2188| v2188_12(void) = ^IndirectReadSideEffect[-1] : &:r2188_8, ~m? -# 2188| mu2188_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2188_8 -# 2184| v2184_4(void) = ReturnVoid : -# 2184| v2184_5(void) = AliasedUse : ~m? -# 2184| v2184_6(void) = ExitFunction : - -# 2190| ClassWithDestructor global_class_with_destructor -# 2190| Block 0 -# 2190| v2190_1(void) = EnterFunction : -# 2190| mu2190_2(unknown) = AliasedDefinition : -# 2190| r2190_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] : -# 2190| r2190_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2190| v2190_5(void) = Call[ClassWithDestructor] : func:r2190_4, this:r2190_3 -# 2190| mu2190_6(unknown) = ^CallSideEffect : ~m? -# 2190| mu2190_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2190_3 -# 2190| v2190_8(void) = ReturnVoid : -# 2190| v2190_9(void) = AliasedUse : ~m? -# 2190| v2190_10(void) = ExitFunction : - -# 2194| ClassWithDestructor& vacuous_destructor_call::get<ClassWithDestructor>(ClassWithDestructor&) -# 2194| Block 0 -# 2194| v2194_1(void) = EnterFunction : -# 2194| mu2194_2(unknown) = AliasedDefinition : -# 2194| mu2194_3(unknown) = InitializeNonLocal : -# 2194| r2194_4(glval<ClassWithDestructor &>) = VariableAddress[t] : -# 2194| mu2194_5(ClassWithDestructor &) = InitializeParameter[t] : &:r2194_4 -# 2194| r2194_6(ClassWithDestructor &) = Load[t] : &:r2194_4, ~m? -# 2194| mu2194_7(unknown) = InitializeIndirection[t] : &:r2194_6 -# 2194| r2194_8(glval<ClassWithDestructor &>) = VariableAddress[#return] : -# 2194| r2194_9(glval<ClassWithDestructor &>) = VariableAddress[t] : -# 2194| r2194_10(ClassWithDestructor &) = Load[t] : &:r2194_9, ~m? -# 2194| r2194_11(glval<ClassWithDestructor>) = CopyValue : r2194_10 -# 2194| r2194_12(ClassWithDestructor &) = CopyValue : r2194_11 -# 2194| mu2194_13(ClassWithDestructor &) = Store[#return] : &:r2194_8, r2194_12 -# 2194| v2194_14(void) = ReturnIndirection[t] : &:r2194_6, ~m? -# 2194| r2194_15(glval<ClassWithDestructor &>) = VariableAddress[#return] : -# 2194| v2194_16(void) = ReturnValue : &:r2194_15, ~m? -# 2194| v2194_17(void) = AliasedUse : ~m? -# 2194| v2194_18(void) = ExitFunction : - -# 2194| int& vacuous_destructor_call::get<int>(int&) -# 2194| Block 0 -# 2194| v2194_1(void) = EnterFunction : -# 2194| mu2194_2(unknown) = AliasedDefinition : -# 2194| mu2194_3(unknown) = InitializeNonLocal : -# 2194| r2194_4(glval<int &>) = VariableAddress[t] : -# 2194| mu2194_5(int &) = InitializeParameter[t] : &:r2194_4 -# 2194| r2194_6(int &) = Load[t] : &:r2194_4, ~m? -# 2194| mu2194_7(unknown) = InitializeIndirection[t] : &:r2194_6 -# 2194| r2194_8(glval<int &>) = VariableAddress[#return] : -# 2194| r2194_9(glval<int &>) = VariableAddress[t] : -# 2194| r2194_10(int &) = Load[t] : &:r2194_9, ~m? -# 2194| r2194_11(glval<int>) = CopyValue : r2194_10 -# 2194| r2194_12(int &) = CopyValue : r2194_11 -# 2194| mu2194_13(int &) = Store[#return] : &:r2194_8, r2194_12 -# 2194| v2194_14(void) = ReturnIndirection[t] : &:r2194_6, ~m? -# 2194| r2194_15(glval<int &>) = VariableAddress[#return] : -# 2194| v2194_16(void) = ReturnValue : &:r2194_15, ~m? -# 2194| v2194_17(void) = AliasedUse : ~m? -# 2194| v2194_18(void) = ExitFunction : - -# 2197| void vacuous_destructor_call::call_destructor<ClassWithDestructor>(ClassWithDestructor&) -# 2197| Block 0 -# 2197| v2197_1(void) = EnterFunction : -# 2197| mu2197_2(unknown) = AliasedDefinition : -# 2197| mu2197_3(unknown) = InitializeNonLocal : -# 2197| r2197_4(glval<ClassWithDestructor &>) = VariableAddress[t] : -# 2197| mu2197_5(ClassWithDestructor &) = InitializeParameter[t] : &:r2197_4 -# 2197| r2197_6(ClassWithDestructor &) = Load[t] : &:r2197_4, ~m? -# 2197| mu2197_7(unknown) = InitializeIndirection[t] : &:r2197_6 -# 2198| r2198_1(glval<unknown>) = FunctionAddress[get] : -# 2198| r2198_2(glval<ClassWithDestructor &>) = VariableAddress[t] : -# 2198| r2198_3(ClassWithDestructor &) = Load[t] : &:r2198_2, ~m? -# 2198| r2198_4(glval<ClassWithDestructor>) = CopyValue : r2198_3 -# 2198| r2198_5(ClassWithDestructor &) = CopyValue : r2198_4 -# 2198| r2198_6(ClassWithDestructor &) = Call[get] : func:r2198_1, 0:r2198_5 -# 2198| mu2198_7(unknown) = ^CallSideEffect : ~m? -# 2198| v2198_8(void) = ^BufferReadSideEffect[0] : &:r2198_5, ~m? -# 2198| mu2198_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2198_5 -# 2198| r2198_10(glval<ClassWithDestructor>) = CopyValue : r2198_6 -# 2198| r2198_11(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2198| v2198_12(void) = Call[~ClassWithDestructor] : func:r2198_11 -# 2198| mu2198_13(unknown) = ^CallSideEffect : ~m? -# 2198| v2198_14(void) = ^IndirectReadSideEffect[-1] : &:r2198_10, ~m? -# 2198| mu2198_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2198_10 -# 2199| v2199_1(void) = NoOp : -# 2197| v2197_8(void) = ReturnIndirection[t] : &:r2197_6, ~m? -# 2197| v2197_9(void) = ReturnVoid : -# 2197| v2197_10(void) = AliasedUse : ~m? -# 2197| v2197_11(void) = ExitFunction : - -# 2197| void vacuous_destructor_call::call_destructor<int>(int&) -# 2197| Block 0 -# 2197| v2197_1(void) = EnterFunction : -# 2197| mu2197_2(unknown) = AliasedDefinition : -# 2197| mu2197_3(unknown) = InitializeNonLocal : -# 2197| r2197_4(glval<int &>) = VariableAddress[t] : -# 2197| mu2197_5(int &) = InitializeParameter[t] : &:r2197_4 -# 2197| r2197_6(int &) = Load[t] : &:r2197_4, ~m? -# 2197| mu2197_7(unknown) = InitializeIndirection[t] : &:r2197_6 -# 2198| r2198_1(glval<unknown>) = FunctionAddress[get] : -# 2198| r2198_2(glval<int &>) = VariableAddress[t] : -# 2198| r2198_3(int &) = Load[t] : &:r2198_2, ~m? -# 2198| r2198_4(glval<int>) = CopyValue : r2198_3 -# 2198| r2198_5(int &) = CopyValue : r2198_4 -# 2198| r2198_6(int &) = Call[get] : func:r2198_1, 0:r2198_5 -# 2198| mu2198_7(unknown) = ^CallSideEffect : ~m? -# 2198| v2198_8(void) = ^BufferReadSideEffect[0] : &:r2198_5, ~m? -# 2198| mu2198_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2198_5 -# 2198| r2198_10(glval<int>) = CopyValue : r2198_6 -# 2199| v2199_1(void) = NoOp : -# 2197| v2197_8(void) = ReturnIndirection[t] : &:r2197_6, ~m? -# 2197| v2197_9(void) = ReturnVoid : -# 2197| v2197_10(void) = AliasedUse : ~m? -# 2197| v2197_11(void) = ExitFunction : - -# 2201| void vacuous_destructor_call::non_vacuous_destructor_call() -# 2201| Block 0 -# 2201| v2201_1(void) = EnterFunction : -# 2201| mu2201_2(unknown) = AliasedDefinition : -# 2201| mu2201_3(unknown) = InitializeNonLocal : -# 2202| r2202_1(glval<ClassWithDestructor>) = VariableAddress[c] : -# 2202| mu2202_2(ClassWithDestructor) = Uninitialized[c] : &:r2202_1 -# 2202| r2202_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : -# 2202| v2202_4(void) = Call[ClassWithDestructor] : func:r2202_3, this:r2202_1 -# 2202| mu2202_5(unknown) = ^CallSideEffect : ~m? -# 2202| mu2202_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2202_1 -# 2203| r2203_1(glval<unknown>) = FunctionAddress[call_destructor] : -# 2203| r2203_2(glval<ClassWithDestructor>) = VariableAddress[c] : -# 2203| r2203_3(ClassWithDestructor &) = CopyValue : r2203_2 -# 2203| v2203_4(void) = Call[call_destructor] : func:r2203_1, 0:r2203_3 -# 2203| mu2203_5(unknown) = ^CallSideEffect : ~m? -# 2203| v2203_6(void) = ^BufferReadSideEffect[0] : &:r2203_3, ~m? -# 2203| mu2203_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r2203_3 -# 2204| v2204_1(void) = NoOp : -# 2204| r2204_2(glval<ClassWithDestructor>) = VariableAddress[c] : -# 2204| r2204_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2204| v2204_4(void) = Call[~ClassWithDestructor] : func:r2204_3, this:r2204_2 -# 2204| mu2204_5(unknown) = ^CallSideEffect : ~m? -# 2204| v2204_6(void) = ^IndirectReadSideEffect[-1] : &:r2204_2, ~m? -# 2204| mu2204_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_2 -# 2201| v2201_4(void) = ReturnVoid : -# 2201| v2201_5(void) = AliasedUse : ~m? -# 2201| v2201_6(void) = ExitFunction : - -# 2206| void vacuous_destructor_call::vacuous_destructor_call() -# 2206| Block 0 -# 2206| v2206_1(void) = EnterFunction : -# 2206| mu2206_2(unknown) = AliasedDefinition : -# 2206| mu2206_3(unknown) = InitializeNonLocal : -# 2207| r2207_1(glval<int>) = VariableAddress[i] : -# 2207| mu2207_2(int) = Uninitialized[i] : &:r2207_1 -# 2208| r2208_1(glval<unknown>) = FunctionAddress[call_destructor] : -# 2208| r2208_2(glval<int>) = VariableAddress[i] : -# 2208| r2208_3(int &) = CopyValue : r2208_2 -# 2208| v2208_4(void) = Call[call_destructor] : func:r2208_1, 0:r2208_3 -# 2208| mu2208_5(unknown) = ^CallSideEffect : ~m? -# 2208| v2208_6(void) = ^BufferReadSideEffect[0] : &:r2208_3, ~m? -# 2208| mu2208_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r2208_3 -# 2209| v2209_1(void) = NoOp : -# 2206| v2206_4(void) = ReturnVoid : -# 2206| v2206_5(void) = AliasedUse : ~m? -# 2206| v2206_6(void) = ExitFunction : - -# 2212| void TryCatchDestructors(bool) -# 2212| Block 0 -# 2212| v2212_1(void) = EnterFunction : -# 2212| mu2212_2(unknown) = AliasedDefinition : -# 2212| mu2212_3(unknown) = InitializeNonLocal : -# 2212| r2212_4(glval<bool>) = VariableAddress[b] : -# 2212| mu2212_5(bool) = InitializeParameter[b] : &:r2212_4 -# 2214| r2214_1(glval<String>) = VariableAddress[s] : -# 2214| mu2214_2(String) = Uninitialized[s] : &:r2214_1 -# 2214| r2214_3(glval<unknown>) = FunctionAddress[String] : -# 2214| v2214_4(void) = Call[String] : func:r2214_3, this:r2214_1 -# 2214| mu2214_5(unknown) = ^CallSideEffect : ~m? -# 2214| mu2214_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2214_1 -# 2215| r2215_1(glval<bool>) = VariableAddress[b] : -# 2215| r2215_2(bool) = Load[b] : &:r2215_1, ~m? -# 2215| v2215_3(void) = ConditionalBranch : r2215_2 -#-----| False -> Block 4 -#-----| True -> Block 3 - -# 2212| Block 1 -# 2212| v2212_6(void) = AliasedUse : ~m? -# 2212| v2212_7(void) = ExitFunction : - -# 2212| Block 2 -# 2212| v2212_8(void) = Unwind : -#-----| Goto -> Block 1 - -# 2216| Block 3 -# 2216| r2216_1(glval<char *>) = VariableAddress[#throw2216:7] : -# 2216| r2216_2(glval<char[15]>) = StringConstant["string literal"] : -# 2216| r2216_3(char *) = Convert : r2216_2 -# 2216| mu2216_4(char *) = Store[#throw2216:7] : &:r2216_1, r2216_3 -# 2216| v2216_5(void) = ThrowValue : &:r2216_1, ~m? -#-----| Exception -> Block 5 - -# 2218| Block 4 -# 2218| r2218_1(glval<String>) = VariableAddress[s2] : -# 2218| mu2218_2(String) = Uninitialized[s2] : &:r2218_1 -# 2218| r2218_3(glval<unknown>) = 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<String>) = VariableAddress[s2] : -# 2219| r2219_2(glval<unknown>) = 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(glval<String>) = VariableAddress[s] : -# 2219| r2219_8(glval<unknown>) = FunctionAddress[~String] : -# 2219| v2219_9(void) = Call[~String] : func:r2219_8, this:r2219_7 -# 2219| mu2219_10(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_11(void) = ^IndirectReadSideEffect[-1] : &:r2219_7, ~m? -# 2219| mu2219_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2219_7 -#-----| Goto -> Block 10 - -# 2220| Block 5 -# 2220| v2220_1(void) = CatchByType[const char *] : -#-----| Exception -> Block 7 -#-----| Goto -> Block 6 - -# 2220| Block 6 -# 2220| r2220_2(glval<char *>) = VariableAddress[s] : -# 2220| mu2220_3(char *) = InitializeParameter[s] : &:r2220_2 -# 2220| r2220_4(char *) = Load[s] : &:r2220_2, ~m? -# 2220| mu2220_5(unknown) = InitializeIndirection[s] : &:r2220_4 -# 2221| r2221_1(glval<String>) = VariableAddress[#throw2221:5] : -# 2221| mu2221_2(String) = Uninitialized[#throw2221:5] : &:r2221_1 -# 2221| r2221_3(glval<unknown>) = FunctionAddress[String] : -# 2221| r2221_4(glval<char *>) = VariableAddress[s] : -# 2221| r2221_5(char *) = Load[s] : &:r2221_4, ~m? -# 2221| v2221_6(void) = Call[String] : func:r2221_3, this:r2221_1, 0:r2221_5 -# 2221| mu2221_7(unknown) = ^CallSideEffect : ~m? -# 2221| v2221_8(void) = ^BufferReadSideEffect[0] : &:r2221_5, ~m? -# 2221| mu2221_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2221_1 -# 2221| v2221_10(void) = ThrowValue : &:r2221_1, ~m? -#-----| Exception -> Block 2 - -# 2223| Block 7 -# 2223| v2223_1(void) = CatchByType[const String &] : -#-----| Exception -> Block 9 -#-----| Goto -> Block 8 - -# 2223| Block 8 -# 2223| r2223_2(glval<String &>) = VariableAddress[e] : -# 2223| mu2223_3(String &) = InitializeParameter[e] : &:r2223_2 -# 2223| r2223_4(String &) = Load[e] : &:r2223_2, ~m? -# 2223| mu2223_5(unknown) = InitializeIndirection[e] : &:r2223_4 -# 2223| v2223_6(void) = NoOp : -#-----| Goto -> Block 10 - -# 2225| Block 9 -# 2225| v2225_1(void) = CatchAny : -# 2226| v2226_1(void) = ReThrow : -#-----| Exception -> Block 2 - -# 2228| Block 10 -# 2228| v2228_1(void) = NoOp : -# 2212| v2212_9(void) = ReturnVoid : -#-----| Goto -> Block 1 - -# 2230| void IfDestructors(bool) -# 2230| Block 0 -# 2230| v2230_1(void) = EnterFunction : -# 2230| mu2230_2(unknown) = AliasedDefinition : -# 2230| mu2230_3(unknown) = InitializeNonLocal : -# 2230| r2230_4(glval<bool>) = VariableAddress[b] : -# 2230| mu2230_5(bool) = InitializeParameter[b] : &:r2230_4 -# 2231| r2231_1(glval<String>) = VariableAddress[s1] : -# 2231| mu2231_2(String) = Uninitialized[s1] : &:r2231_1 -# 2231| r2231_3(glval<unknown>) = FunctionAddress[String] : -# 2231| v2231_4(void) = Call[String] : func:r2231_3, this:r2231_1 -# 2231| mu2231_5(unknown) = ^CallSideEffect : ~m? -# 2231| mu2231_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2231_1 -# 2232| r2232_1(glval<bool>) = VariableAddress[b] : -# 2232| r2232_2(bool) = Load[b] : &:r2232_1, ~m? -# 2232| v2232_3(void) = ConditionalBranch : r2232_2 -#-----| False -> Block 2 -#-----| True -> Block 1 - -# 2233| Block 1 -# 2233| r2233_1(glval<String>) = VariableAddress[s2] : -# 2233| mu2233_2(String) = Uninitialized[s2] : &:r2233_1 -# 2233| r2233_3(glval<unknown>) = 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<String>) = VariableAddress[s2] : -# 2234| r2234_2(glval<unknown>) = 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 -#-----| Goto -> Block 3 - -# 2235| Block 2 -# 2235| r2235_1(glval<String>) = VariableAddress[s3] : -# 2235| mu2235_2(String) = Uninitialized[s3] : &:r2235_1 -# 2235| r2235_3(glval<unknown>) = FunctionAddress[String] : -# 2235| v2235_4(void) = Call[String] : func:r2235_3, this:r2235_1 -# 2235| mu2235_5(unknown) = ^CallSideEffect : ~m? -# 2235| mu2235_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2235_1 -# 2236| r2236_1(glval<String>) = VariableAddress[s3] : -# 2236| r2236_2(glval<unknown>) = FunctionAddress[~String] : -# 2236| v2236_3(void) = Call[~String] : func:r2236_2, this:r2236_1 -# 2236| mu2236_4(unknown) = ^CallSideEffect : ~m? -# 2236| v2236_5(void) = ^IndirectReadSideEffect[-1] : &:r2236_1, ~m? -# 2236| mu2236_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2236_1 -#-----| Goto -> Block 3 - -# 2237| Block 3 -# 2237| r2237_1(glval<String>) = VariableAddress[s4] : -# 2237| mu2237_2(String) = Uninitialized[s4] : &:r2237_1 -# 2237| r2237_3(glval<unknown>) = FunctionAddress[String] : -# 2237| v2237_4(void) = Call[String] : func:r2237_3, this:r2237_1 -# 2237| mu2237_5(unknown) = ^CallSideEffect : ~m? -# 2237| mu2237_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2237_1 -# 2238| v2238_1(void) = NoOp : -# 2238| r2238_2(glval<String>) = VariableAddress[s4] : -# 2238| r2238_3(glval<unknown>) = FunctionAddress[~String] : -# 2238| v2238_4(void) = Call[~String] : func:r2238_3, this:r2238_2 -# 2238| mu2238_5(unknown) = ^CallSideEffect : ~m? -# 2238| v2238_6(void) = ^IndirectReadSideEffect[-1] : &:r2238_2, ~m? -# 2238| mu2238_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2238_2 -# 2238| r2238_8(glval<String>) = VariableAddress[s1] : -# 2238| r2238_9(glval<unknown>) = FunctionAddress[~String] : -# 2238| v2238_10(void) = Call[~String] : func:r2238_9, this:r2238_8 -# 2238| mu2238_11(unknown) = ^CallSideEffect : ~m? -# 2238| v2238_12(void) = ^IndirectReadSideEffect[-1] : &:r2238_8, ~m? -# 2238| mu2238_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2238_8 -# 2230| v2230_6(void) = ReturnVoid : -# 2230| v2230_7(void) = AliasedUse : ~m? -# 2230| v2230_8(void) = ExitFunction : - -# 2240| void ForDestructors() -# 2240| Block 0 -# 2240| v2240_1(void) = EnterFunction : -# 2240| mu2240_2(unknown) = AliasedDefinition : -# 2240| mu2240_3(unknown) = InitializeNonLocal : -# 2241| r2241_1(glval<char>) = VariableAddress[c] : -# 2241| r2241_2(char) = Constant[97] : -# 2241| mu2241_3(char) = Store[c] : &:r2241_1, r2241_2 -# 2242| r2242_1(glval<String>) = VariableAddress[s] : -# 2242| mu2242_2(String) = Uninitialized[s] : &:r2242_1 -# 2242| r2242_3(glval<unknown>) = FunctionAddress[String] : -# 2242| r2242_4(glval<char[6]>) = StringConstant["hello"] : -# 2242| r2242_5(char *) = Convert : r2242_4 -# 2242| v2242_6(void) = Call[String] : func:r2242_3, this:r2242_1, 0:r2242_5 -# 2242| mu2242_7(unknown) = ^CallSideEffect : ~m? -# 2242| v2242_8(void) = ^BufferReadSideEffect[0] : &:r2242_5, ~m? -# 2242| mu2242_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2242_1 -#-----| Goto -> Block 1 - -# 2242| Block 1 -# 2242| r2242_10(glval<char>) = VariableAddress[c] : -# 2242| r2242_11(char) = Load[c] : &:r2242_10, ~m? -# 2242| r2242_12(int) = Convert : r2242_11 -# 2242| r2242_13(int) = Constant[0] : -# 2242| r2242_14(bool) = CompareNE : r2242_12, r2242_13 -# 2242| v2242_15(void) = ConditionalBranch : r2242_14 +# 2185| r2185_7(glval<bool>) = VariableAddress[b] : +# 2185| r2185_8(bool) = Load[b] : &:r2185_7, ~m? +# 2185| v2185_9(void) = ConditionalBranch : r2185_8 #-----| False -> Block 3 #-----| True -> Block 2 -# 2243| Block 2 -# 2243| r2243_1(glval<String>) = VariableAddress[s2] : -# 2243| mu2243_2(String) = Uninitialized[s2] : &:r2243_1 -# 2243| r2243_3(glval<unknown>) = FunctionAddress[String] : -# 2243| v2243_4(void) = Call[String] : func:r2243_3, this:r2243_1 -# 2243| mu2243_5(unknown) = ^CallSideEffect : ~m? -# 2243| mu2243_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2243_1 -# 2244| r2244_1(glval<String>) = VariableAddress[s2] : -# 2244| r2244_2(glval<unknown>) = FunctionAddress[~String] : -# 2244| v2244_3(void) = Call[~String] : func:r2244_2, this:r2244_1 -# 2244| mu2244_4(unknown) = ^CallSideEffect : ~m? -# 2244| v2244_5(void) = ^IndirectReadSideEffect[-1] : &:r2244_1, ~m? -# 2244| mu2244_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2244_1 -# 2242| r2242_16(glval<String>) = VariableAddress[s] : -# 2242| r2242_17(glval<unknown>) = FunctionAddress[pop_back] : -# 2242| r2242_18(char) = Call[pop_back] : func:r2242_17, this:r2242_16 -# 2242| mu2242_19(unknown) = ^CallSideEffect : ~m? -# 2242| v2242_20(void) = ^IndirectReadSideEffect[-1] : &:r2242_16, ~m? -# 2242| mu2242_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r2242_16 -# 2242| r2242_22(glval<char>) = VariableAddress[c] : -# 2242| mu2242_23(char) = Store[c] : &:r2242_22, r2242_18 -#-----| Goto (back edge) -> Block 1 +# 2184| Block 1 +# 2184| v2184_8(void) = ReturnVoid : +# 2184| v2184_9(void) = AliasedUse : ~m? +# 2184| v2184_10(void) = ExitFunction : -# 2242| Block 3 -# 2242| r2242_24(glval<String>) = VariableAddress[s] : -# 2242| r2242_25(glval<unknown>) = FunctionAddress[~String] : -# 2242| v2242_26(void) = Call[~String] : func:r2242_25, this:r2242_24 -# 2242| mu2242_27(unknown) = ^CallSideEffect : ~m? -# 2242| v2242_28(void) = ^IndirectReadSideEffect[-1] : &:r2242_24, ~m? -# 2242| mu2242_29(String) = ^IndirectMayWriteSideEffect[-1] : &:r2242_24 -# 2246| r2246_1(glval<vector<String> &&>) = VariableAddress[(__range)] : -# 2246| r2246_2(glval<vector<String>>) = VariableAddress[#temp2246:20] : -# 2246| mu2246_3(vector<String>) = Uninitialized[#temp2246:20] : &:r2246_2 -# 2246| r2246_4(glval<unknown>) = FunctionAddress[vector] : -# 2246| r2246_5(glval<String>) = VariableAddress[#temp2246:35] : -# 2246| mu2246_6(String) = Uninitialized[#temp2246:35] : &:r2246_5 -# 2246| r2246_7(glval<unknown>) = FunctionAddress[String] : -# 2246| r2246_8(glval<char[6]>) = StringConstant["hello"] : -# 2246| r2246_9(char *) = Convert : r2246_8 -# 2246| v2246_10(void) = Call[String] : func:r2246_7, this:r2246_5, 0:r2246_9 -# 2246| mu2246_11(unknown) = ^CallSideEffect : ~m? -# 2246| v2246_12(void) = ^BufferReadSideEffect[0] : &:r2246_9, ~m? -# 2246| mu2246_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2246_5 -# 2246| r2246_14(String) = Load[#temp2246:35] : &:r2246_5, ~m? -# 2246| v2246_15(void) = Call[vector] : func:r2246_4, this:r2246_2, 0:r2246_14 -# 2246| mu2246_16(unknown) = ^CallSideEffect : ~m? -# 2246| mu2246_17(vector<String>) = ^IndirectMayWriteSideEffect[-1] : &:r2246_2 -# 2246| r2246_18(vector<String> &) = CopyValue : r2246_2 -# 2246| mu2246_19(vector<String> &&) = Store[(__range)] : &:r2246_1, r2246_18 -# 2246| r2246_20(glval<iterator>) = VariableAddress[(__begin)] : -# 2246| r2246_21(glval<vector<String> &&>) = VariableAddress[(__range)] : -# 2246| r2246_22(vector<String> &&) = Load[(__range)] : &:r2246_21, ~m? -#-----| r0_1(glval<vector<String>>) = CopyValue : r2246_22 -#-----| r0_2(glval<vector<String>>) = Convert : r0_1 -# 2246| r2246_23(glval<unknown>) = FunctionAddress[begin] : -# 2246| r2246_24(iterator) = Call[begin] : func:r2246_23, this:r0_2 -# 2246| mu2246_25(unknown) = ^CallSideEffect : ~m? -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2246| mu2246_26(iterator) = Store[(__begin)] : &:r2246_20, r2246_24 -# 2246| r2246_27(glval<iterator>) = VariableAddress[(__end)] : -# 2246| r2246_28(glval<vector<String> &&>) = VariableAddress[(__range)] : -# 2246| r2246_29(vector<String> &&) = Load[(__range)] : &:r2246_28, ~m? -#-----| r0_4(glval<vector<String>>) = CopyValue : r2246_29 -#-----| r0_5(glval<vector<String>>) = Convert : r0_4 -# 2246| r2246_30(glval<unknown>) = FunctionAddress[end] : -# 2246| r2246_31(iterator) = Call[end] : func:r2246_30, this:r0_5 -# 2246| mu2246_32(unknown) = ^CallSideEffect : ~m? -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2246| mu2246_33(iterator) = Store[(__end)] : &:r2246_27, r2246_31 -#-----| Goto -> Block 4 - -# 2246| Block 4 -# 2246| r2246_34(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator>) = Convert : r2246_34 -# 2246| r2246_35(glval<unknown>) = FunctionAddress[operator!=] : -# 2246| r2246_36(glval<iterator>) = VariableAddress[(__end)] : -# 2246| r2246_37(iterator) = Load[(__end)] : &:r2246_36, ~m? -# 2246| r2246_38(bool) = Call[operator!=] : func:r2246_35, this:r0_7, 0:r2246_37 -# 2246| mu2246_39(unknown) = ^CallSideEffect : ~m? -#-----| v0_8(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2246| v2246_40(void) = ConditionalBranch : r2246_38 -#-----| False -> Block 6 -#-----| True -> Block 5 - -# 2246| Block 5 -# 2246| r2246_41(glval<String>) = VariableAddress[s] : -# 2246| mu2246_42(String) = Uninitialized[s] : &:r2246_41 -# 2246| r2246_43(glval<unknown>) = FunctionAddress[String] : -# 2246| r2246_44(glval<iterator>) = VariableAddress[(__begin)] : -#-----| r0_9(glval<iterator>) = Convert : r2246_44 -# 2246| r2246_45(glval<unknown>) = FunctionAddress[operator*] : -# 2246| r2246_46(String &) = Call[operator*] : func:r2246_45, this:r0_9 -# 2246| mu2246_47(unknown) = ^CallSideEffect : ~m? -#-----| v0_10(void) = ^IndirectReadSideEffect[-1] : &:r0_9, ~m? -# 2246| r2246_48(glval<String>) = CopyValue : r2246_46 -# 2246| r2246_49(glval<String>) = Convert : r2246_48 -# 2246| r2246_50(String &) = CopyValue : r2246_49 -# 2246| v2246_51(void) = Call[String] : func:r2246_43, this:r2246_41, 0:r2246_50 -# 2246| mu2246_52(unknown) = ^CallSideEffect : ~m? -# 2246| v2246_53(void) = ^BufferReadSideEffect[0] : &:r2246_50, ~m? -# 2246| mu2246_54(String) = ^IndirectMayWriteSideEffect[-1] : &:r2246_41 -# 2247| r2247_1(glval<String>) = VariableAddress[s2] : -# 2247| mu2247_2(String) = Uninitialized[s2] : &:r2247_1 -# 2247| r2247_3(glval<unknown>) = FunctionAddress[String] : -# 2247| v2247_4(void) = Call[String] : func:r2247_3, this:r2247_1 -# 2247| mu2247_5(unknown) = ^CallSideEffect : ~m? -# 2247| mu2247_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2247_1 -# 2248| r2248_1(glval<String>) = VariableAddress[s2] : -# 2248| r2248_2(glval<unknown>) = FunctionAddress[~String] : -# 2248| v2248_3(void) = Call[~String] : func:r2248_2, this:r2248_1 -# 2248| mu2248_4(unknown) = ^CallSideEffect : ~m? -# 2248| v2248_5(void) = ^IndirectReadSideEffect[-1] : &:r2248_1, ~m? -# 2248| mu2248_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2248_1 -# 2246| r2246_55(glval<String>) = VariableAddress[s] : -# 2246| r2246_56(glval<unknown>) = FunctionAddress[~String] : -# 2246| v2246_57(void) = Call[~String] : func:r2246_56, this:r2246_55 -# 2246| mu2246_58(unknown) = ^CallSideEffect : ~m? -# 2246| v2246_59(void) = ^IndirectReadSideEffect[-1] : &:r2246_55, ~m? -# 2246| mu2246_60(String) = ^IndirectMayWriteSideEffect[-1] : &:r2246_55 -# 2246| r2246_61(glval<iterator>) = VariableAddress[(__begin)] : -# 2246| r2246_62(glval<unknown>) = FunctionAddress[operator++] : -# 2246| r2246_63(iterator &) = Call[operator++] : func:r2246_62, this:r2246_61 -# 2246| mu2246_64(unknown) = ^CallSideEffect : ~m? -# 2246| v2246_65(void) = ^IndirectReadSideEffect[-1] : &:r2246_61, ~m? -# 2246| mu2246_66(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2246_61 -# 2246| r2246_67(glval<iterator>) = CopyValue : r2246_63 -#-----| Goto (back edge) -> Block 4 - -# 2250| Block 6 -# 2250| r2250_1(glval<String>) = VariableAddress[s] : -# 2250| mu2250_2(String) = Uninitialized[s] : &:r2250_1 -# 2250| r2250_3(glval<unknown>) = FunctionAddress[String] : -# 2250| r2250_4(glval<char[6]>) = StringConstant["hello"] : -# 2250| r2250_5(char *) = Convert : r2250_4 -# 2250| v2250_6(void) = Call[String] : func:r2250_3, this:r2250_1, 0:r2250_5 -# 2250| mu2250_7(unknown) = ^CallSideEffect : ~m? -# 2250| v2250_8(void) = ^BufferReadSideEffect[0] : &:r2250_5, ~m? -# 2250| mu2250_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_1 -# 2250| r2250_10(glval<String>) = VariableAddress[s2] : -# 2250| mu2250_11(String) = Uninitialized[s2] : &:r2250_10 -# 2250| r2250_12(glval<unknown>) = FunctionAddress[String] : -# 2250| r2250_13(glval<char[6]>) = StringConstant["world"] : -# 2250| r2250_14(char *) = Convert : r2250_13 -# 2250| v2250_15(void) = Call[String] : func:r2250_12, this:r2250_10, 0:r2250_14 -# 2250| mu2250_16(unknown) = ^CallSideEffect : ~m? -# 2250| v2250_17(void) = ^BufferReadSideEffect[0] : &:r2250_14, ~m? -# 2250| mu2250_18(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_10 -#-----| Goto -> Block 7 - -# 2250| Block 7 -# 2250| r2250_19(glval<char>) = VariableAddress[c] : -# 2250| r2250_20(char) = Load[c] : &:r2250_19, ~m? -# 2250| r2250_21(int) = Convert : r2250_20 -# 2250| r2250_22(int) = Constant[0] : -# 2250| r2250_23(bool) = CompareNE : r2250_21, r2250_22 -# 2250| v2250_24(void) = ConditionalBranch : r2250_23 -#-----| False -> Block 9 -#-----| True -> Block 8 - -# 2251| Block 8 -# 2251| r2251_1(char) = Constant[0] : -# 2251| r2251_2(glval<char>) = VariableAddress[c] : -# 2251| mu2251_3(char) = Store[c] : &:r2251_2, r2251_1 -# 2250| r2250_25(glval<String>) = VariableAddress[s] : -# 2250| r2250_26(glval<unknown>) = FunctionAddress[pop_back] : -# 2250| r2250_27(char) = Call[pop_back] : func:r2250_26, this:r2250_25 -# 2250| mu2250_28(unknown) = ^CallSideEffect : ~m? -# 2250| v2250_29(void) = ^IndirectReadSideEffect[-1] : &:r2250_25, ~m? -# 2250| mu2250_30(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_25 -# 2250| r2250_31(glval<char>) = VariableAddress[c] : -# 2250| mu2250_32(char) = Store[c] : &:r2250_31, r2250_27 -#-----| Goto (back edge) -> Block 7 - -# 2250| Block 9 -# 2250| r2250_33(glval<String>) = VariableAddress[s2] : -# 2250| r2250_34(glval<unknown>) = FunctionAddress[~String] : -# 2250| v2250_35(void) = Call[~String] : func:r2250_34, this:r2250_33 -# 2250| mu2250_36(unknown) = ^CallSideEffect : ~m? -# 2250| v2250_37(void) = ^IndirectReadSideEffect[-1] : &:r2250_33, ~m? -# 2250| mu2250_38(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_33 -# 2250| r2250_39(glval<String>) = VariableAddress[s] : -# 2250| r2250_40(glval<unknown>) = FunctionAddress[~String] : -# 2250| v2250_41(void) = Call[~String] : func:r2250_40, this:r2250_39 -# 2250| mu2250_42(unknown) = ^CallSideEffect : ~m? -# 2250| v2250_43(void) = ^IndirectReadSideEffect[-1] : &:r2250_39, ~m? -# 2250| mu2250_44(String) = ^IndirectMayWriteSideEffect[-1] : &:r2250_39 -# 2253| v2253_1(void) = NoOp : -# 2240| v2240_4(void) = ReturnVoid : -# 2240| v2240_5(void) = AliasedUse : ~m? -# 2240| v2240_6(void) = ExitFunction : - -# 2255| void IfDestructors2(bool) -# 2255| Block 0 -# 2255| v2255_1(void) = EnterFunction : -# 2255| mu2255_2(unknown) = AliasedDefinition : -# 2255| mu2255_3(unknown) = InitializeNonLocal : -# 2255| r2255_4(glval<bool>) = VariableAddress[b] : -# 2255| mu2255_5(bool) = InitializeParameter[b] : &:r2255_4 -# 2256| r2256_1(glval<String>) = VariableAddress[s] : -# 2256| mu2256_2(String) = Uninitialized[s] : &:r2256_1 -# 2256| r2256_3(glval<unknown>) = FunctionAddress[String] : -# 2256| r2256_4(glval<char[6]>) = StringConstant["hello"] : -# 2256| r2256_5(char *) = Convert : r2256_4 -# 2256| v2256_6(void) = Call[String] : func:r2256_3, this:r2256_1, 0:r2256_5 -# 2256| mu2256_7(unknown) = ^CallSideEffect : ~m? -# 2256| v2256_8(void) = ^BufferReadSideEffect[0] : &:r2256_5, ~m? -# 2256| mu2256_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2256_1 -# 2256| r2256_10(glval<bool>) = VariableAddress[b] : -# 2256| r2256_11(bool) = Load[b] : &:r2256_10, ~m? -# 2256| v2256_12(void) = ConditionalBranch : r2256_11 -#-----| False -> Block 2 -#-----| True -> Block 1 - -# 2257| Block 1 -# 2257| r2257_1(glval<int>) = VariableAddress[x] : -# 2257| r2257_2(int) = Constant[0] : -# 2257| mu2257_3(int) = Store[x] : &:r2257_1, r2257_2 +# 2186| Block 2 +# 2186| r2186_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2186| r2186_2(glval<unknown>) = FunctionAddress[set_x] : +# 2186| r2186_3(char) = Constant[97] : +# 2186| v2186_4(void) = Call[set_x] : func:r2186_2, this:r2186_1, 0:r2186_3 +# 2186| mu2186_5(unknown) = ^CallSideEffect : ~m? +# 2186| v2186_6(void) = ^IndirectReadSideEffect[-1] : &:r2186_1, ~m? +# 2186| mu2186_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1 +# 2186| r2186_8(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2186| r2186_9(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2186| v2186_10(void) = Call[~ClassWithDestructor] : func:r2186_9, this:r2186_8 +# 2186| mu2186_11(unknown) = ^CallSideEffect : ~m? +# 2186| v2186_12(void) = ^IndirectReadSideEffect[-1] : &:r2186_8, ~m? +# 2186| mu2186_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2186_8 #-----| Goto -> Block 3 +# 2188| Block 3 +# 2188| r2188_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2188| mu2188_2(ClassWithDestructor) = Uninitialized[x] : &:r2188_1 +# 2188| r2188_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2188| v2188_4(void) = Call[ClassWithDestructor] : func:r2188_3, this:r2188_1 +# 2188| mu2188_5(unknown) = ^CallSideEffect : ~m? +# 2188| mu2188_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2188_1 +# 2188| r2188_7(bool) = Constant[1] : +# 2188| v2188_8(void) = ConditionalBranch : r2188_7 +#-----| False -> Block 6 +#-----| True -> Block 4 + +# 2189| Block 4 +# 2189| r2189_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2189| r2189_2(glval<unknown>) = FunctionAddress[set_x] : +# 2189| r2189_3(char) = Constant[97] : +# 2189| v2189_4(void) = Call[set_x] : func:r2189_2, this:r2189_1, 0:r2189_3 +# 2189| mu2189_5(unknown) = ^CallSideEffect : ~m? +# 2189| v2189_6(void) = ^IndirectReadSideEffect[-1] : &:r2189_1, ~m? +# 2189| mu2189_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2189_1 +#-----| Goto -> Block 6 + +# 2189| Block 5 +# 2189| r2189_8(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2189| r2189_9(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2189| v2189_10(void) = Call[~ClassWithDestructor] : func:r2189_9, this:r2189_8 +# 2189| mu2189_11(unknown) = ^CallSideEffect : ~m? +# 2189| v2189_12(void) = ^IndirectReadSideEffect[-1] : &:r2189_8, ~m? +# 2189| mu2189_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2189_8 +#-----| Goto -> Block 6 + +# 2191| Block 6 +# 2191| r2191_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2191| mu2191_2(ClassWithDestructor) = Uninitialized[x] : &:r2191_1 +# 2191| r2191_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2191| v2191_4(void) = Call[ClassWithDestructor] : func:r2191_3, this:r2191_1 +# 2191| mu2191_5(unknown) = ^CallSideEffect : ~m? +# 2191| mu2191_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2191_1 +# 2191| r2191_7(glval<char>) = VariableAddress[c] : +# 2191| r2191_8(char) = Load[c] : &:r2191_7, ~m? +# 2191| r2191_9(int) = Convert : r2191_8 +# 2191| v2191_10(void) = Switch : r2191_9 +#-----| Case[97] -> Block 7 +#-----| Default -> Block 8 + +# 2192| Block 7 +# 2192| v2192_1(void) = NoOp : +# 2193| r2193_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2193| r2193_2(glval<unknown>) = FunctionAddress[set_x] : +# 2193| r2193_3(char) = Constant[97] : +# 2193| v2193_4(void) = Call[set_x] : func:r2193_2, this:r2193_1, 0:r2193_3 +# 2193| mu2193_5(unknown) = ^CallSideEffect : ~m? +# 2193| v2193_6(void) = ^IndirectReadSideEffect[-1] : &:r2193_1, ~m? +# 2193| mu2193_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2193_1 +# 2194| v2194_1(void) = NoOp : +#-----| Goto -> Block 10 + +# 2195| Block 8 +# 2195| v2195_1(void) = NoOp : +# 2196| r2196_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2196| r2196_2(glval<unknown>) = FunctionAddress[set_x] : +# 2196| r2196_3(char) = Constant[98] : +# 2196| v2196_4(void) = Call[set_x] : func:r2196_2, this:r2196_1, 0:r2196_3 +# 2196| mu2196_5(unknown) = ^CallSideEffect : ~m? +# 2196| v2196_6(void) = ^IndirectReadSideEffect[-1] : &:r2196_1, ~m? +# 2196| mu2196_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2196_1 +# 2197| v2197_1(void) = NoOp : +#-----| Goto -> Block 10 + +# 2198| Block 9 +# 2198| r2198_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2198| r2198_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2198| v2198_3(void) = Call[~ClassWithDestructor] : func:r2198_2, this:r2198_1 +# 2198| mu2198_4(unknown) = ^CallSideEffect : ~m? +# 2198| v2198_5(void) = ^IndirectReadSideEffect[-1] : &:r2198_1, ~m? +# 2198| mu2198_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2198_1 +#-----| Goto -> Block 10 + +# 2198| Block 10 +# 2198| v2198_7(void) = NoOp : +# 2200| r2200_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2200| mu2200_2(ClassWithDestructor) = Uninitialized[x] : &:r2200_1 +# 2200| r2200_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2200| v2200_4(void) = Call[ClassWithDestructor] : func:r2200_3, this:r2200_1 +# 2200| mu2200_5(unknown) = ^CallSideEffect : ~m? +# 2200| mu2200_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2200_1 +# 2201| r2201_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2201| mu2201_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2201_1 +# 2201| r2201_3(glval<unknown>) = FunctionAddress[vector] : +# 2201| r2201_4(glval<ClassWithDestructor>) = VariableAddress[#temp2201:45] : +# 2201| r2201_5(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2201| r2201_6(ClassWithDestructor) = Load[x] : &:r2201_5, ~m? +# 2201| mu2201_7(ClassWithDestructor) = Store[#temp2201:45] : &:r2201_4, r2201_6 +# 2201| r2201_8(ClassWithDestructor) = Load[#temp2201:45] : &:r2201_4, ~m? +# 2201| v2201_9(void) = Call[vector] : func:r2201_3, this:r2201_1, 0:r2201_8 +# 2201| mu2201_10(unknown) = ^CallSideEffect : ~m? +# 2201| mu2201_11(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_1 +# 2201| r2201_12(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2201| r2201_13(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2201| r2201_14(vector<ClassWithDestructor> &) = CopyValue : r2201_13 +# 2201| mu2201_15(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2201_12, r2201_14 +# 2201| r2201_16(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2201| r2201_17(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2201| r2201_18(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2201_17, ~m? +#-----| r0_1(glval<vector<ClassWithDestructor>>) = CopyValue : r2201_18 +#-----| r0_2(glval<vector<ClassWithDestructor>>) = Convert : r0_1 +# 2201| r2201_19(glval<unknown>) = FunctionAddress[begin] : +# 2201| r2201_20(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2201_19, this:r0_2 +# 2201| mu2201_21(unknown) = ^CallSideEffect : ~m? +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? +# 2201| mu2201_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2201_16, r2201_20 +# 2201| r2201_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2201| r2201_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2201| r2201_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2201_24, ~m? +#-----| r0_4(glval<vector<ClassWithDestructor>>) = CopyValue : r2201_25 +#-----| r0_5(glval<vector<ClassWithDestructor>>) = Convert : r0_4 +# 2201| r2201_26(glval<unknown>) = FunctionAddress[end] : +# 2201| r2201_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2201_26, this:r0_5 +# 2201| mu2201_28(unknown) = ^CallSideEffect : ~m? +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? +# 2201| mu2201_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2201_23, r2201_27 +#-----| Goto -> Block 11 + +# 2201| Block 11 +# 2201| r2201_30(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_30 +# 2201| r2201_31(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : +#-----| mu0_9(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_8 +# 2201| r2201_32(glval<unknown>) = FunctionAddress[iterator] : +# 2201| r2201_33(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_33 +#-----| r0_11(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_10 +# 2201| v2201_34(void) = Call[iterator] : func:r2201_32, this:r0_8, 0:r0_11 +# 2201| mu2201_35(unknown) = ^CallSideEffect : ~m? +#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? +# 2201| mu2201_36(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +#-----| r0_13(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_8, ~m? +# 2201| r2201_37(bool) = Call[operator!=] : func:r2201_31, this:r0_7, 0:r0_13 +# 2201| mu2201_38(unknown) = ^CallSideEffect : ~m? +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? +# 2201| v2201_39(void) = ConditionalBranch : r2201_37 +#-----| False -> Block 14 +#-----| True -> Block 12 + +# 2201| Block 12 +# 2201| r2201_40(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2201| r2201_41(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_41 +# 2201| r2201_42(glval<unknown>) = FunctionAddress[operator*] : +# 2201| r2201_43(ClassWithDestructor &) = Call[operator*] : func:r2201_42, this:r0_15 +# 2201| mu2201_44(unknown) = ^CallSideEffect : ~m? +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? +# 2201| r2201_45(ClassWithDestructor) = Load[?] : &:r2201_43, ~m? +# 2201| mu2201_46(ClassWithDestructor) = Store[y] : &:r2201_40, r2201_45 +# 2202| r2202_1(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2202| r2202_2(glval<unknown>) = FunctionAddress[set_x] : +# 2202| r2202_3(char) = Constant[97] : +# 2202| v2202_4(void) = Call[set_x] : func:r2202_2, this:r2202_1, 0:r2202_3 +# 2202| mu2202_5(unknown) = ^CallSideEffect : ~m? +# 2202| v2202_6(void) = ^IndirectReadSideEffect[-1] : &:r2202_1, ~m? +# 2202| mu2202_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2202_1 +# 2201| r2201_47(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2201| r2201_48(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2201| v2201_49(void) = Call[~ClassWithDestructor] : func:r2201_48, this:r2201_47 +# 2201| mu2201_50(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_51(void) = ^IndirectReadSideEffect[-1] : &:r2201_47, ~m? +# 2201| mu2201_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_47 +# 2201| r2201_53(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2201| r2201_54(glval<unknown>) = FunctionAddress[operator++] : +# 2201| r2201_55(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2201_54, this:r2201_53 +# 2201| mu2201_56(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_57(void) = ^IndirectReadSideEffect[-1] : &:r2201_53, ~m? +# 2201| mu2201_58(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_53 +# 2201| r2201_59(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2201_55 +#-----| Goto (back edge) -> Block 11 + +# 2201| Block 13 +# 2201| r2201_60(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2201| r2201_61(glval<unknown>) = FunctionAddress[~vector] : +# 2201| v2201_62(void) = Call[~vector] : func:r2201_61, this:r2201_60 +# 2201| mu2201_63(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_64(void) = ^IndirectReadSideEffect[-1] : &:r2201_60, ~m? +# 2201| mu2201_65(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_60 +#-----| Goto -> Block 14 + +# 2204| Block 14 +# 2204| r2204_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| mu2204_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2204_1 +# 2204| r2204_3(glval<unknown>) = FunctionAddress[vector] : +# 2204| r2204_4(glval<ClassWithDestructor>) = VariableAddress[#temp2204:45] : +# 2204| r2204_5(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2204| r2204_6(ClassWithDestructor) = Load[x] : &:r2204_5, ~m? +# 2204| mu2204_7(ClassWithDestructor) = Store[#temp2204:45] : &:r2204_4, r2204_6 +# 2204| r2204_8(ClassWithDestructor) = Load[#temp2204:45] : &:r2204_4, ~m? +# 2204| v2204_9(void) = Call[vector] : func:r2204_3, this:r2204_1, 0:r2204_8 +# 2204| mu2204_10(unknown) = ^CallSideEffect : ~m? +# 2204| mu2204_11(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_1 +# 2204| r2204_12(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2204| r2204_13(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| r2204_14(vector<ClassWithDestructor> &) = CopyValue : r2204_13 +# 2204| mu2204_15(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2204_12, r2204_14 +# 2204| r2204_16(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2204| r2204_17(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2204| r2204_18(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2204_17, ~m? +#-----| r0_17(glval<vector<ClassWithDestructor>>) = CopyValue : r2204_18 +#-----| r0_18(glval<vector<ClassWithDestructor>>) = Convert : r0_17 +# 2204| r2204_19(glval<unknown>) = FunctionAddress[begin] : +# 2204| r2204_20(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2204_19, this:r0_18 +# 2204| mu2204_21(unknown) = ^CallSideEffect : ~m? +#-----| v0_19(void) = ^IndirectReadSideEffect[-1] : &:r0_18, ~m? +# 2204| mu2204_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2204_16, r2204_20 +# 2204| r2204_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2204| r2204_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2204| r2204_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2204_24, ~m? +#-----| r0_20(glval<vector<ClassWithDestructor>>) = CopyValue : r2204_25 +#-----| r0_21(glval<vector<ClassWithDestructor>>) = Convert : r0_20 +# 2204| r2204_26(glval<unknown>) = FunctionAddress[end] : +# 2204| r2204_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2204_26, this:r0_21 +# 2204| mu2204_28(unknown) = ^CallSideEffect : ~m? +#-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_21, ~m? +# 2204| mu2204_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2204_23, r2204_27 +#-----| Goto -> Block 15 + +# 2204| Block 15 +# 2204| r2204_30(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_30 +# 2204| r2204_31(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_24(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : +#-----| mu0_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_24 +# 2204| r2204_32(glval<unknown>) = FunctionAddress[iterator] : +# 2204| r2204_33(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_33 +#-----| r0_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_26 +# 2204| v2204_34(void) = Call[iterator] : func:r2204_32, this:r0_24, 0:r0_27 +# 2204| mu2204_35(unknown) = ^CallSideEffect : ~m? +#-----| v0_28(void) = ^BufferReadSideEffect[0] : &:r0_27, ~m? +# 2204| mu2204_36(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 +#-----| r0_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_24, ~m? +# 2204| r2204_37(bool) = Call[operator!=] : func:r2204_31, this:r0_23, 0:r0_29 +# 2204| mu2204_38(unknown) = ^CallSideEffect : ~m? +#-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_23, ~m? +# 2204| v2204_39(void) = ConditionalBranch : r2204_37 +#-----| False -> Block 20 +#-----| True -> Block 16 + +# 2204| Block 16 +# 2204| r2204_40(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_41(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_41 +# 2204| r2204_42(glval<unknown>) = FunctionAddress[operator*] : +# 2204| r2204_43(ClassWithDestructor &) = Call[operator*] : func:r2204_42, this:r0_31 +# 2204| mu2204_44(unknown) = ^CallSideEffect : ~m? +#-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_31, ~m? +# 2204| r2204_45(ClassWithDestructor) = Load[?] : &:r2204_43, ~m? +# 2204| mu2204_46(ClassWithDestructor) = Store[y] : &:r2204_40, r2204_45 +# 2205| r2205_1(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2205| r2205_2(glval<unknown>) = FunctionAddress[set_x] : +# 2205| r2205_3(char) = Constant[97] : +# 2205| v2205_4(void) = Call[set_x] : func:r2205_2, this:r2205_1, 0:r2205_3 +# 2205| mu2205_5(unknown) = ^CallSideEffect : ~m? +# 2205| v2205_6(void) = ^IndirectReadSideEffect[-1] : &:r2205_1, ~m? +# 2205| mu2205_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2205_1 +# 2206| r2206_1(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2206| r2206_2(glval<unknown>) = FunctionAddress[get_x] : +# 2206| r2206_3(char) = Call[get_x] : func:r2206_2, this:r2206_1 +# 2206| mu2206_4(unknown) = ^CallSideEffect : ~m? +# 2206| v2206_5(void) = ^IndirectReadSideEffect[-1] : &:r2206_1, ~m? +# 2206| mu2206_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2206_1 +# 2206| r2206_7(int) = Convert : r2206_3 +# 2206| r2206_8(int) = Constant[98] : +# 2206| r2206_9(bool) = CompareEQ : r2206_7, r2206_8 +# 2206| v2206_10(void) = ConditionalBranch : r2206_9 +#-----| False -> Block 18 +#-----| True -> Block 17 + +# 2207| Block 17 +# 2207| v2207_1(void) = NoOp : +# 2204| r2204_47(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_48(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2204| v2204_49(void) = Call[~ClassWithDestructor] : func:r2204_48, this:r2204_47 +# 2204| mu2204_50(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_51(void) = ^IndirectReadSideEffect[-1] : &:r2204_47, ~m? +# 2204| mu2204_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_47 +# 2204| r2204_53(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| r2204_54(glval<unknown>) = FunctionAddress[~vector] : +# 2204| v2204_55(void) = Call[~vector] : func:r2204_54, this:r2204_53 +# 2204| mu2204_56(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_57(void) = ^IndirectReadSideEffect[-1] : &:r2204_53, ~m? +# 2204| mu2204_58(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_53 +# 2219| r2219_1(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2219| r2219_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_3(void) = Call[~ClassWithDestructor] : func:r2219_2, this:r2219_1 +# 2219| mu2219_4(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_5(void) = ^IndirectReadSideEffect[-1] : &:r2219_1, ~m? +# 2219| mu2219_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 +#-----| Goto -> Block 1 + +# 2204| Block 18 +# 2204| r2204_59(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_60(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2204| v2204_61(void) = Call[~ClassWithDestructor] : func:r2204_60, this:r2204_59 +# 2204| mu2204_62(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_63(void) = ^IndirectReadSideEffect[-1] : &:r2204_59, ~m? +# 2204| mu2204_64(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_59 +# 2204| r2204_65(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2204| r2204_66(glval<unknown>) = FunctionAddress[operator++] : +# 2204| r2204_67(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2204_66, this:r2204_65 +# 2204| mu2204_68(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_69(void) = ^IndirectReadSideEffect[-1] : &:r2204_65, ~m? +# 2204| mu2204_70(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_65 +# 2204| r2204_71(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2204_67 +#-----| Goto (back edge) -> Block 15 + +# 2204| Block 19 +# 2204| r2204_72(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| r2204_73(glval<unknown>) = FunctionAddress[~vector] : +# 2204| v2204_74(void) = Call[~vector] : func:r2204_73, this:r2204_72 +# 2204| mu2204_75(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_76(void) = ^IndirectReadSideEffect[-1] : &:r2204_72, ~m? +# 2204| mu2204_77(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_72 +#-----| Goto -> Block 20 + +# 2210| Block 20 +# 2210| r2210_1(glval<vector<int>>) = VariableAddress[ys] : +# 2210| mu2210_2(vector<int>) = Uninitialized[ys] : &:r2210_1 +# 2210| r2210_3(glval<unknown>) = FunctionAddress[vector] : +# 2210| r2210_4(int) = Constant[1] : +# 2210| v2210_5(void) = Call[vector] : func:r2210_3, this:r2210_1, 0:r2210_4 +# 2210| mu2210_6(unknown) = ^CallSideEffect : ~m? +# 2210| mu2210_7(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_1 +# 2210| r2210_8(glval<vector<int> &>) = VariableAddress[(__range)] : +# 2210| r2210_9(glval<vector<int>>) = VariableAddress[ys] : +# 2210| r2210_10(vector<int> &) = CopyValue : r2210_9 +# 2210| mu2210_11(vector<int> &) = Store[(__range)] : &:r2210_8, r2210_10 +# 2210| r2210_12(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 2210| r2210_13(glval<vector<int> &>) = VariableAddress[(__range)] : +# 2210| r2210_14(vector<int> &) = Load[(__range)] : &:r2210_13, ~m? +#-----| r0_33(glval<vector<int>>) = CopyValue : r2210_14 +#-----| r0_34(glval<vector<int>>) = Convert : r0_33 +# 2210| r2210_15(glval<unknown>) = FunctionAddress[begin] : +# 2210| r2210_16(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r2210_15, this:r0_34 +# 2210| mu2210_17(unknown) = ^CallSideEffect : ~m? +#-----| v0_35(void) = ^IndirectReadSideEffect[-1] : &:r0_34, ~m? +# 2210| mu2210_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r2210_12, r2210_16 +# 2210| r2210_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 2210| r2210_20(glval<vector<int> &>) = VariableAddress[(__range)] : +# 2210| r2210_21(vector<int> &) = Load[(__range)] : &:r2210_20, ~m? +#-----| r0_36(glval<vector<int>>) = CopyValue : r2210_21 +#-----| r0_37(glval<vector<int>>) = Convert : r0_36 +# 2210| r2210_22(glval<unknown>) = FunctionAddress[end] : +# 2210| r2210_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r2210_22, this:r0_37 +# 2210| mu2210_24(unknown) = ^CallSideEffect : ~m? +#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, ~m? +# 2210| mu2210_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r2210_19, r2210_23 +#-----| Goto -> Block 21 + +# 2210| Block 21 +# 2210| r2210_26(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_26 +# 2210| r2210_27(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_40(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : +#-----| mu0_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_40 +# 2210| r2210_28(glval<unknown>) = FunctionAddress[iterator] : +# 2210| r2210_29(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_29 +#-----| r0_43(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_42 +# 2210| v2210_30(void) = Call[iterator] : func:r2210_28, this:r0_40, 0:r0_43 +# 2210| mu2210_31(unknown) = ^CallSideEffect : ~m? +#-----| v0_44(void) = ^BufferReadSideEffect[0] : &:r0_43, ~m? +# 2210| mu2210_32(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 +#-----| r0_45(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_40, ~m? +# 2210| r2210_33(bool) = Call[operator!=] : func:r2210_27, this:r0_39, 0:r0_45 +# 2210| mu2210_34(unknown) = ^CallSideEffect : ~m? +#-----| v0_46(void) = ^IndirectReadSideEffect[-1] : &:r0_39, ~m? +# 2210| v2210_35(void) = ConditionalBranch : r2210_33 +#-----| False -> Block 26 +#-----| True -> Block 23 + +# 2210| Block 22 +# 2210| r2210_36(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 2210| r2210_37(glval<unknown>) = FunctionAddress[operator++] : +# 2210| r2210_38(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r2210_37, this:r2210_36 +# 2210| mu2210_39(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_40(void) = ^IndirectReadSideEffect[-1] : &:r2210_36, ~m? +# 2210| mu2210_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_36 +# 2210| r2210_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r2210_38 +#-----| Goto (back edge) -> Block 21 + +# 2210| Block 23 +# 2210| r2210_43(glval<int>) = VariableAddress[y] : +# 2210| r2210_44(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_47(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_44 +# 2210| r2210_45(glval<unknown>) = FunctionAddress[operator*] : +# 2210| r2210_46(int &) = Call[operator*] : func:r2210_45, this:r0_47 +# 2210| mu2210_47(unknown) = ^CallSideEffect : ~m? +#-----| v0_48(void) = ^IndirectReadSideEffect[-1] : &:r0_47, ~m? +# 2210| r2210_48(int) = Load[?] : &:r2210_46, ~m? +# 2210| mu2210_49(int) = Store[y] : &:r2210_43, r2210_48 +# 2211| r2211_1(glval<int>) = VariableAddress[y] : +# 2211| r2211_2(int) = Load[y] : &:r2211_1, ~m? +# 2211| r2211_3(int) = Constant[1] : +# 2211| r2211_4(bool) = CompareEQ : r2211_2, r2211_3 +# 2211| v2211_5(void) = ConditionalBranch : r2211_4 +#-----| False -> Block 22 +#-----| True -> Block 24 + +# 2212| Block 24 +# 2212| v2212_1(void) = NoOp : +# 2210| r2210_50(glval<vector<int>>) = VariableAddress[ys] : +# 2210| r2210_51(glval<unknown>) = FunctionAddress[~vector] : +# 2210| v2210_52(void) = Call[~vector] : func:r2210_51, this:r2210_50 +# 2210| mu2210_53(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_54(void) = ^IndirectReadSideEffect[-1] : &:r2210_50, ~m? +# 2210| mu2210_55(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_50 +# 2219| r2219_7(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2219| r2219_8(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_9(void) = Call[~ClassWithDestructor] : func:r2219_8, this:r2219_7 +# 2219| mu2219_10(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_11(void) = ^IndirectReadSideEffect[-1] : &:r2219_7, ~m? +# 2219| mu2219_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_7 +#-----| Goto -> Block 1 + +# 2210| Block 25 +# 2210| r2210_56(glval<vector<int>>) = VariableAddress[ys] : +# 2210| r2210_57(glval<unknown>) = FunctionAddress[~vector] : +# 2210| v2210_58(void) = Call[~vector] : func:r2210_57, this:r2210_56 +# 2210| mu2210_59(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_60(void) = ^IndirectReadSideEffect[-1] : &:r2210_56, ~m? +# 2210| mu2210_61(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_56 +#-----| Goto -> Block 26 + +# 2215| Block 26 +# 2215| r2215_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2215| mu2215_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2215_1 +# 2215| r2215_3(glval<unknown>) = FunctionAddress[vector] : +# 2215| r2215_4(glval<ClassWithDestructor>) = VariableAddress[#temp2215:45] : +# 2215| r2215_5(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2215| r2215_6(ClassWithDestructor) = Load[x] : &:r2215_5, ~m? +# 2215| mu2215_7(ClassWithDestructor) = Store[#temp2215:45] : &:r2215_4, r2215_6 +# 2215| r2215_8(ClassWithDestructor) = Load[#temp2215:45] : &:r2215_4, ~m? +# 2215| v2215_9(void) = Call[vector] : func:r2215_3, this:r2215_1, 0:r2215_8 +# 2215| mu2215_10(unknown) = ^CallSideEffect : ~m? +# 2215| mu2215_11(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 +# 2215| r2215_12(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2215| r2215_13(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2215| r2215_14(vector<ClassWithDestructor> &) = CopyValue : r2215_13 +# 2215| mu2215_15(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2215_12, r2215_14 +# 2215| r2215_16(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2215| r2215_17(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2215| r2215_18(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2215_17, ~m? +#-----| r0_49(glval<vector<ClassWithDestructor>>) = CopyValue : r2215_18 +#-----| r0_50(glval<vector<ClassWithDestructor>>) = Convert : r0_49 +# 2215| r2215_19(glval<unknown>) = FunctionAddress[begin] : +# 2215| r2215_20(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2215_19, this:r0_50 +# 2215| mu2215_21(unknown) = ^CallSideEffect : ~m? +#-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, ~m? +# 2215| mu2215_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2215_16, r2215_20 +# 2215| r2215_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2215| r2215_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2215| r2215_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2215_24, ~m? +#-----| r0_52(glval<vector<ClassWithDestructor>>) = CopyValue : r2215_25 +#-----| r0_53(glval<vector<ClassWithDestructor>>) = Convert : r0_52 +# 2215| r2215_26(glval<unknown>) = FunctionAddress[end] : +# 2215| r2215_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2215_26, this:r0_53 +# 2215| mu2215_28(unknown) = ^CallSideEffect : ~m? +#-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, ~m? +# 2215| mu2215_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2215_23, r2215_27 +#-----| Goto -> Block 27 + +# 2215| Block 27 +# 2215| r2215_30(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_55(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_30 +# 2215| r2215_31(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_56(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : +#-----| mu0_57(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_56 +# 2215| r2215_32(glval<unknown>) = FunctionAddress[iterator] : +# 2215| r2215_33(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_58(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_33 +#-----| r0_59(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_58 +# 2215| v2215_34(void) = Call[iterator] : func:r2215_32, this:r0_56, 0:r0_59 +# 2215| mu2215_35(unknown) = ^CallSideEffect : ~m? +#-----| v0_60(void) = ^BufferReadSideEffect[0] : &:r0_59, ~m? +# 2215| mu2215_36(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 +#-----| r0_61(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_56, ~m? +# 2215| r2215_37(bool) = Call[operator!=] : func:r2215_31, this:r0_55, 0:r0_61 +# 2215| mu2215_38(unknown) = ^CallSideEffect : ~m? +#-----| v0_62(void) = ^IndirectReadSideEffect[-1] : &:r0_55, ~m? +# 2215| v2215_39(void) = ConditionalBranch : r2215_37 +#-----| False -> Block 30 +#-----| True -> Block 28 + +# 2215| Block 28 +# 2215| r2215_40(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2215| r2215_41(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_63(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_41 +# 2215| r2215_42(glval<unknown>) = FunctionAddress[operator*] : +# 2215| r2215_43(ClassWithDestructor &) = Call[operator*] : func:r2215_42, this:r0_63 +# 2215| mu2215_44(unknown) = ^CallSideEffect : ~m? +#-----| v0_64(void) = ^IndirectReadSideEffect[-1] : &:r0_63, ~m? +# 2215| r2215_45(ClassWithDestructor) = Load[?] : &:r2215_43, ~m? +# 2215| mu2215_46(ClassWithDestructor) = Store[y] : &:r2215_40, r2215_45 +# 2216| r2216_1(glval<ClassWithDestructor>) = VariableAddress[z1] : +# 2216| mu2216_2(ClassWithDestructor) = Uninitialized[z1] : &:r2216_1 +# 2216| r2216_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2216| v2216_4(void) = Call[ClassWithDestructor] : func:r2216_3, this:r2216_1 +# 2216| mu2216_5(unknown) = ^CallSideEffect : ~m? +# 2216| mu2216_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_1 +# 2217| r2217_1(glval<ClassWithDestructor>) = VariableAddress[z2] : +# 2217| mu2217_2(ClassWithDestructor) = Uninitialized[z2] : &:r2217_1 +# 2217| r2217_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2217| v2217_4(void) = Call[ClassWithDestructor] : func:r2217_3, this:r2217_1 +# 2217| mu2217_5(unknown) = ^CallSideEffect : ~m? +# 2217| mu2217_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2217_1 +# 2218| r2218_1(glval<ClassWithDestructor>) = VariableAddress[z2] : +# 2218| r2218_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2218| v2218_3(void) = Call[~ClassWithDestructor] : func:r2218_2, this:r2218_1 +# 2218| mu2218_4(unknown) = ^CallSideEffect : ~m? +# 2218| v2218_5(void) = ^IndirectReadSideEffect[-1] : &:r2218_1, ~m? +# 2218| mu2218_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_1 +# 2218| r2218_7(glval<ClassWithDestructor>) = VariableAddress[z1] : +# 2218| r2218_8(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2218| v2218_9(void) = Call[~ClassWithDestructor] : func:r2218_8, this:r2218_7 +# 2218| mu2218_10(unknown) = ^CallSideEffect : ~m? +# 2218| v2218_11(void) = ^IndirectReadSideEffect[-1] : &:r2218_7, ~m? +# 2218| mu2218_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_7 +# 2215| r2215_47(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2215| r2215_48(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_49(void) = Call[~ClassWithDestructor] : func:r2215_48, this:r2215_47 +# 2215| mu2215_50(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_51(void) = ^IndirectReadSideEffect[-1] : &:r2215_47, ~m? +# 2215| mu2215_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_47 +# 2215| r2215_53(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2215| r2215_54(glval<unknown>) = FunctionAddress[operator++] : +# 2215| r2215_55(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2215_54, this:r2215_53 +# 2215| mu2215_56(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_57(void) = ^IndirectReadSideEffect[-1] : &:r2215_53, ~m? +# 2215| mu2215_58(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_53 +# 2215| r2215_59(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2215_55 +#-----| Goto (back edge) -> Block 27 + +# 2215| Block 29 +# 2215| r2215_60(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2215| r2215_61(glval<unknown>) = FunctionAddress[~vector] : +# 2215| v2215_62(void) = Call[~vector] : func:r2215_61, this:r2215_60 +# 2215| mu2215_63(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_64(void) = ^IndirectReadSideEffect[-1] : &:r2215_60, ~m? +# 2215| mu2215_65(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_60 +#-----| Goto -> Block 30 + +# 2219| Block 30 +# 2219| v2219_13(void) = NoOp : +# 2219| r2219_14(glval<ClassWithDestructor>) = VariableAddress[x] : +# 2219| r2219_15(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_16(void) = Call[~ClassWithDestructor] : func:r2219_15, this:r2219_14 +# 2219| mu2219_17(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_18(void) = ^IndirectReadSideEffect[-1] : &:r2219_14, ~m? +# 2219| mu2219_19(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_14 +#-----| Goto -> Block 1 + +# 2221| void static_variable_with_destructor_1() +# 2221| Block 0 +# 2221| v2221_1(void) = EnterFunction : +# 2221| mu2221_2(unknown) = AliasedDefinition : +# 2221| mu2221_3(unknown) = InitializeNonLocal : +# 2222| r2222_1(glval<ClassWithDestructor>) = VariableAddress[a] : +# 2222| mu2222_2(ClassWithDestructor) = Uninitialized[a] : &:r2222_1 +# 2222| r2222_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2222| v2222_4(void) = Call[ClassWithDestructor] : func:r2222_3, this:r2222_1 +# 2222| mu2222_5(unknown) = ^CallSideEffect : ~m? +# 2222| mu2222_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2222_1 +# 2223| r2223_1(glval<bool>) = VariableAddress[b#init] : +# 2223| r2223_2(bool) = Load[b#init] : &:r2223_1, ~m? +# 2223| v2223_3(void) = ConditionalBranch : r2223_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 2223| Block 1 +# 2223| r2223_4(glval<ClassWithDestructor>) = VariableAddress[b] : +#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2223_4 +#-----| mu0_3(unknown) = ^CallSideEffect : ~m? +#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2223_4 +# 2223| r2223_5(bool) = Constant[1] : +# 2223| mu2223_6(bool) = Store[b#init] : &:r2223_1, r2223_5 +#-----| Goto -> Block 2 + +# 2224| Block 2 +# 2224| v2224_1(void) = NoOp : +# 2224| r2224_2(glval<ClassWithDestructor>) = VariableAddress[a] : +# 2224| r2224_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2224| v2224_4(void) = Call[~ClassWithDestructor] : func:r2224_3, this:r2224_2 +# 2224| mu2224_5(unknown) = ^CallSideEffect : ~m? +# 2224| v2224_6(void) = ^IndirectReadSideEffect[-1] : &:r2224_2, ~m? +# 2224| mu2224_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2224_2 +# 2221| v2221_4(void) = ReturnVoid : +# 2221| v2221_5(void) = AliasedUse : ~m? +# 2221| v2221_6(void) = ExitFunction : + +# 2226| void static_variable_with_destructor_2() +# 2226| Block 0 +# 2226| v2226_1(void) = EnterFunction : +# 2226| mu2226_2(unknown) = AliasedDefinition : +# 2226| mu2226_3(unknown) = InitializeNonLocal : +# 2227| r2227_1(glval<bool>) = VariableAddress[a#init] : +# 2227| r2227_2(bool) = Load[a#init] : &:r2227_1, ~m? +# 2227| v2227_3(void) = ConditionalBranch : r2227_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 2227| Block 1 +# 2227| r2227_4(glval<ClassWithDestructor>) = VariableAddress[a] : +#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2227_4 +#-----| mu0_3(unknown) = ^CallSideEffect : ~m? +#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2227_4 +# 2227| r2227_5(bool) = Constant[1] : +# 2227| mu2227_6(bool) = Store[a#init] : &:r2227_1, r2227_5 +#-----| Goto -> Block 2 + +# 2228| Block 2 +# 2228| r2228_1(glval<ClassWithDestructor>) = VariableAddress[b] : +# 2228| mu2228_2(ClassWithDestructor) = Uninitialized[b] : &:r2228_1 +# 2228| r2228_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2228| v2228_4(void) = Call[ClassWithDestructor] : func:r2228_3, this:r2228_1 +# 2228| mu2228_5(unknown) = ^CallSideEffect : ~m? +# 2228| mu2228_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2228_1 +# 2229| v2229_1(void) = NoOp : +# 2229| r2229_2(glval<ClassWithDestructor>) = VariableAddress[b] : +# 2229| r2229_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2229| v2229_4(void) = Call[~ClassWithDestructor] : func:r2229_3, this:r2229_2 +# 2229| mu2229_5(unknown) = ^CallSideEffect : ~m? +# 2229| v2229_6(void) = ^IndirectReadSideEffect[-1] : &:r2229_2, ~m? +# 2229| mu2229_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2229_2 +# 2226| v2226_4(void) = ReturnVoid : +# 2226| v2226_5(void) = AliasedUse : ~m? +# 2226| v2226_6(void) = ExitFunction : + +# 2231| void static_variable_with_destructor_3() +# 2231| Block 0 +# 2231| v2231_1(void) = EnterFunction : +# 2231| mu2231_2(unknown) = AliasedDefinition : +# 2231| mu2231_3(unknown) = InitializeNonLocal : +# 2232| r2232_1(glval<ClassWithDestructor>) = VariableAddress[a] : +# 2232| mu2232_2(ClassWithDestructor) = Uninitialized[a] : &:r2232_1 +# 2232| r2232_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2232| v2232_4(void) = Call[ClassWithDestructor] : func:r2232_3, this:r2232_1 +# 2232| mu2232_5(unknown) = ^CallSideEffect : ~m? +# 2232| mu2232_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2232_1 +# 2233| r2233_1(glval<ClassWithDestructor>) = VariableAddress[b] : +# 2233| mu2233_2(ClassWithDestructor) = Uninitialized[b] : &:r2233_1 +# 2233| r2233_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2233| v2233_4(void) = Call[ClassWithDestructor] : func:r2233_3, this:r2233_1 +# 2233| mu2233_5(unknown) = ^CallSideEffect : ~m? +# 2233| mu2233_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2233_1 +# 2234| r2234_1(glval<bool>) = VariableAddress[c#init] : +# 2234| r2234_2(bool) = Load[c#init] : &:r2234_1, ~m? +# 2234| v2234_3(void) = ConditionalBranch : r2234_2 +#-----| False -> Block 1 +#-----| True -> Block 2 + +# 2234| Block 1 +# 2234| r2234_4(glval<ClassWithDestructor>) = VariableAddress[c] : +#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2234_4 +#-----| mu0_3(unknown) = ^CallSideEffect : ~m? +#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_4 +# 2234| r2234_5(bool) = Constant[1] : +# 2234| mu2234_6(bool) = Store[c#init] : &:r2234_1, r2234_5 +#-----| Goto -> Block 2 + +# 2235| Block 2 +# 2235| v2235_1(void) = NoOp : +# 2235| r2235_2(glval<ClassWithDestructor>) = VariableAddress[b] : +# 2235| r2235_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2235| v2235_4(void) = Call[~ClassWithDestructor] : func:r2235_3, this:r2235_2 +# 2235| mu2235_5(unknown) = ^CallSideEffect : ~m? +# 2235| v2235_6(void) = ^IndirectReadSideEffect[-1] : &:r2235_2, ~m? +# 2235| mu2235_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2235_2 +# 2235| r2235_8(glval<ClassWithDestructor>) = VariableAddress[a] : +# 2235| r2235_9(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2235| v2235_10(void) = Call[~ClassWithDestructor] : func:r2235_9, this:r2235_8 +# 2235| mu2235_11(unknown) = ^CallSideEffect : ~m? +# 2235| v2235_12(void) = ^IndirectReadSideEffect[-1] : &:r2235_8, ~m? +# 2235| mu2235_13(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2235_8 +# 2231| v2231_4(void) = ReturnVoid : +# 2231| v2231_5(void) = AliasedUse : ~m? +# 2231| v2231_6(void) = ExitFunction : + +# 2237| ClassWithDestructor global_class_with_destructor +# 2237| Block 0 +# 2237| v2237_1(void) = EnterFunction : +# 2237| mu2237_2(unknown) = AliasedDefinition : +# 2237| r2237_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] : +# 2237| r2237_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2237| v2237_5(void) = Call[ClassWithDestructor] : func:r2237_4, this:r2237_3 +# 2237| mu2237_6(unknown) = ^CallSideEffect : ~m? +# 2237| mu2237_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2237_3 +# 2237| v2237_8(void) = ReturnVoid : +# 2237| v2237_9(void) = AliasedUse : ~m? +# 2237| v2237_10(void) = ExitFunction : + +# 2241| ClassWithDestructor& vacuous_destructor_call::get<ClassWithDestructor>(ClassWithDestructor&) +# 2241| Block 0 +# 2241| v2241_1(void) = EnterFunction : +# 2241| mu2241_2(unknown) = AliasedDefinition : +# 2241| mu2241_3(unknown) = InitializeNonLocal : +# 2241| r2241_4(glval<ClassWithDestructor &>) = VariableAddress[t] : +# 2241| mu2241_5(ClassWithDestructor &) = InitializeParameter[t] : &:r2241_4 +# 2241| r2241_6(ClassWithDestructor &) = Load[t] : &:r2241_4, ~m? +# 2241| mu2241_7(unknown) = InitializeIndirection[t] : &:r2241_6 +# 2241| r2241_8(glval<ClassWithDestructor &>) = VariableAddress[#return] : +# 2241| r2241_9(glval<ClassWithDestructor &>) = VariableAddress[t] : +# 2241| r2241_10(ClassWithDestructor &) = Load[t] : &:r2241_9, ~m? +# 2241| r2241_11(glval<ClassWithDestructor>) = CopyValue : r2241_10 +# 2241| r2241_12(ClassWithDestructor &) = CopyValue : r2241_11 +# 2241| mu2241_13(ClassWithDestructor &) = Store[#return] : &:r2241_8, r2241_12 +# 2241| v2241_14(void) = ReturnIndirection[t] : &:r2241_6, ~m? +# 2241| r2241_15(glval<ClassWithDestructor &>) = VariableAddress[#return] : +# 2241| v2241_16(void) = ReturnValue : &:r2241_15, ~m? +# 2241| v2241_17(void) = AliasedUse : ~m? +# 2241| v2241_18(void) = ExitFunction : + +# 2241| int& vacuous_destructor_call::get<int>(int&) +# 2241| Block 0 +# 2241| v2241_1(void) = EnterFunction : +# 2241| mu2241_2(unknown) = AliasedDefinition : +# 2241| mu2241_3(unknown) = InitializeNonLocal : +# 2241| r2241_4(glval<int &>) = VariableAddress[t] : +# 2241| mu2241_5(int &) = InitializeParameter[t] : &:r2241_4 +# 2241| r2241_6(int &) = Load[t] : &:r2241_4, ~m? +# 2241| mu2241_7(unknown) = InitializeIndirection[t] : &:r2241_6 +# 2241| r2241_8(glval<int &>) = VariableAddress[#return] : +# 2241| r2241_9(glval<int &>) = VariableAddress[t] : +# 2241| r2241_10(int &) = Load[t] : &:r2241_9, ~m? +# 2241| r2241_11(glval<int>) = CopyValue : r2241_10 +# 2241| r2241_12(int &) = CopyValue : r2241_11 +# 2241| mu2241_13(int &) = Store[#return] : &:r2241_8, r2241_12 +# 2241| v2241_14(void) = ReturnIndirection[t] : &:r2241_6, ~m? +# 2241| r2241_15(glval<int &>) = VariableAddress[#return] : +# 2241| v2241_16(void) = ReturnValue : &:r2241_15, ~m? +# 2241| v2241_17(void) = AliasedUse : ~m? +# 2241| v2241_18(void) = ExitFunction : + +# 2244| void vacuous_destructor_call::call_destructor<ClassWithDestructor>(ClassWithDestructor&) +# 2244| Block 0 +# 2244| v2244_1(void) = EnterFunction : +# 2244| mu2244_2(unknown) = AliasedDefinition : +# 2244| mu2244_3(unknown) = InitializeNonLocal : +# 2244| r2244_4(glval<ClassWithDestructor &>) = VariableAddress[t] : +# 2244| mu2244_5(ClassWithDestructor &) = InitializeParameter[t] : &:r2244_4 +# 2244| r2244_6(ClassWithDestructor &) = Load[t] : &:r2244_4, ~m? +# 2244| mu2244_7(unknown) = InitializeIndirection[t] : &:r2244_6 +# 2245| r2245_1(glval<unknown>) = FunctionAddress[get] : +# 2245| r2245_2(glval<ClassWithDestructor &>) = VariableAddress[t] : +# 2245| r2245_3(ClassWithDestructor &) = Load[t] : &:r2245_2, ~m? +# 2245| r2245_4(glval<ClassWithDestructor>) = CopyValue : r2245_3 +# 2245| r2245_5(ClassWithDestructor &) = CopyValue : r2245_4 +# 2245| r2245_6(ClassWithDestructor &) = Call[get] : func:r2245_1, 0:r2245_5 +# 2245| mu2245_7(unknown) = ^CallSideEffect : ~m? +# 2245| v2245_8(void) = ^BufferReadSideEffect[0] : &:r2245_5, ~m? +# 2245| mu2245_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2245_5 +# 2245| r2245_10(glval<ClassWithDestructor>) = CopyValue : r2245_6 +# 2245| r2245_11(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2245| v2245_12(void) = Call[~ClassWithDestructor] : func:r2245_11 +# 2245| mu2245_13(unknown) = ^CallSideEffect : ~m? +# 2245| v2245_14(void) = ^IndirectReadSideEffect[-1] : &:r2245_10, ~m? +# 2245| mu2245_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2245_10 +# 2246| v2246_1(void) = NoOp : +# 2244| v2244_8(void) = ReturnIndirection[t] : &:r2244_6, ~m? +# 2244| v2244_9(void) = ReturnVoid : +# 2244| v2244_10(void) = AliasedUse : ~m? +# 2244| v2244_11(void) = ExitFunction : + +# 2244| void vacuous_destructor_call::call_destructor<int>(int&) +# 2244| Block 0 +# 2244| v2244_1(void) = EnterFunction : +# 2244| mu2244_2(unknown) = AliasedDefinition : +# 2244| mu2244_3(unknown) = InitializeNonLocal : +# 2244| r2244_4(glval<int &>) = VariableAddress[t] : +# 2244| mu2244_5(int &) = InitializeParameter[t] : &:r2244_4 +# 2244| r2244_6(int &) = Load[t] : &:r2244_4, ~m? +# 2244| mu2244_7(unknown) = InitializeIndirection[t] : &:r2244_6 +# 2245| r2245_1(glval<unknown>) = FunctionAddress[get] : +# 2245| r2245_2(glval<int &>) = VariableAddress[t] : +# 2245| r2245_3(int &) = Load[t] : &:r2245_2, ~m? +# 2245| r2245_4(glval<int>) = CopyValue : r2245_3 +# 2245| r2245_5(int &) = CopyValue : r2245_4 +# 2245| r2245_6(int &) = Call[get] : func:r2245_1, 0:r2245_5 +# 2245| mu2245_7(unknown) = ^CallSideEffect : ~m? +# 2245| v2245_8(void) = ^BufferReadSideEffect[0] : &:r2245_5, ~m? +# 2245| mu2245_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r2245_5 +# 2245| r2245_10(glval<int>) = CopyValue : r2245_6 +# 2246| v2246_1(void) = NoOp : +# 2244| v2244_8(void) = ReturnIndirection[t] : &:r2244_6, ~m? +# 2244| v2244_9(void) = ReturnVoid : +# 2244| v2244_10(void) = AliasedUse : ~m? +# 2244| v2244_11(void) = ExitFunction : + +# 2248| void vacuous_destructor_call::non_vacuous_destructor_call() +# 2248| Block 0 +# 2248| v2248_1(void) = EnterFunction : +# 2248| mu2248_2(unknown) = AliasedDefinition : +# 2248| mu2248_3(unknown) = InitializeNonLocal : +# 2249| r2249_1(glval<ClassWithDestructor>) = VariableAddress[c] : +# 2249| mu2249_2(ClassWithDestructor) = Uninitialized[c] : &:r2249_1 +# 2249| r2249_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2249| v2249_4(void) = Call[ClassWithDestructor] : func:r2249_3, this:r2249_1 +# 2249| mu2249_5(unknown) = ^CallSideEffect : ~m? +# 2249| mu2249_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2249_1 +# 2250| r2250_1(glval<unknown>) = FunctionAddress[call_destructor] : +# 2250| r2250_2(glval<ClassWithDestructor>) = VariableAddress[c] : +# 2250| r2250_3(ClassWithDestructor &) = CopyValue : r2250_2 +# 2250| v2250_4(void) = Call[call_destructor] : func:r2250_1, 0:r2250_3 +# 2250| mu2250_5(unknown) = ^CallSideEffect : ~m? +# 2250| v2250_6(void) = ^BufferReadSideEffect[0] : &:r2250_3, ~m? +# 2250| mu2250_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r2250_3 +# 2251| v2251_1(void) = NoOp : +# 2251| r2251_2(glval<ClassWithDestructor>) = VariableAddress[c] : +# 2251| r2251_3(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2251| v2251_4(void) = Call[~ClassWithDestructor] : func:r2251_3, this:r2251_2 +# 2251| mu2251_5(unknown) = ^CallSideEffect : ~m? +# 2251| v2251_6(void) = ^IndirectReadSideEffect[-1] : &:r2251_2, ~m? +# 2251| mu2251_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2251_2 +# 2248| v2248_4(void) = ReturnVoid : +# 2248| v2248_5(void) = AliasedUse : ~m? +# 2248| v2248_6(void) = ExitFunction : + +# 2253| void vacuous_destructor_call::vacuous_destructor_call() +# 2253| Block 0 +# 2253| v2253_1(void) = EnterFunction : +# 2253| mu2253_2(unknown) = AliasedDefinition : +# 2253| mu2253_3(unknown) = InitializeNonLocal : +# 2254| r2254_1(glval<int>) = VariableAddress[i] : +# 2254| mu2254_2(int) = Uninitialized[i] : &:r2254_1 +# 2255| r2255_1(glval<unknown>) = FunctionAddress[call_destructor] : +# 2255| r2255_2(glval<int>) = VariableAddress[i] : +# 2255| r2255_3(int &) = CopyValue : r2255_2 +# 2255| v2255_4(void) = Call[call_destructor] : func:r2255_1, 0:r2255_3 +# 2255| mu2255_5(unknown) = ^CallSideEffect : ~m? +# 2255| v2255_6(void) = ^BufferReadSideEffect[0] : &:r2255_3, ~m? +# 2255| mu2255_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r2255_3 +# 2256| v2256_1(void) = NoOp : +# 2253| v2253_4(void) = ReturnVoid : +# 2253| v2253_5(void) = AliasedUse : ~m? +# 2253| v2253_6(void) = ExitFunction : + +# 2259| void TryCatchDestructors(bool) +# 2259| Block 0 +# 2259| v2259_1(void) = EnterFunction : +# 2259| mu2259_2(unknown) = AliasedDefinition : +# 2259| mu2259_3(unknown) = InitializeNonLocal : +# 2259| r2259_4(glval<bool>) = VariableAddress[b] : +# 2259| mu2259_5(bool) = InitializeParameter[b] : &:r2259_4 +# 2261| r2261_1(glval<String>) = VariableAddress[s] : +# 2261| mu2261_2(String) = Uninitialized[s] : &:r2261_1 +# 2261| r2261_3(glval<unknown>) = FunctionAddress[String] : +# 2261| v2261_4(void) = Call[String] : func:r2261_3, this:r2261_1 +# 2261| mu2261_5(unknown) = ^CallSideEffect : ~m? +# 2261| mu2261_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2261_1 +# 2262| r2262_1(glval<bool>) = VariableAddress[b] : +# 2262| r2262_2(bool) = Load[b] : &:r2262_1, ~m? +# 2262| v2262_3(void) = ConditionalBranch : r2262_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 2259| Block 1 +# 2259| v2259_6(void) = AliasedUse : ~m? +# 2259| v2259_7(void) = ExitFunction : + # 2259| Block 2 -# 2259| r2259_1(glval<int>) = VariableAddress[y] : -# 2259| r2259_2(int) = Constant[0] : -# 2259| mu2259_3(int) = Store[y] : &:r2259_1, r2259_2 -#-----| Goto -> Block 3 +# 2259| v2259_8(void) = Unwind : +#-----| Goto -> Block 1 -# 2260| Block 3 -# 2260| r2260_1(glval<String>) = VariableAddress[s] : -# 2260| r2260_2(glval<unknown>) = FunctionAddress[~String] : -# 2260| v2260_3(void) = Call[~String] : func:r2260_2, this:r2260_1 -# 2260| mu2260_4(unknown) = ^CallSideEffect : ~m? -# 2260| v2260_5(void) = ^IndirectReadSideEffect[-1] : &:r2260_1, ~m? -# 2260| mu2260_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2260_1 -# 2261| v2261_1(void) = NoOp : -# 2255| v2255_6(void) = ReturnVoid : -# 2255| v2255_7(void) = AliasedUse : ~m? -# 2255| v2255_8(void) = ExitFunction : +# 2263| Block 3 +# 2263| r2263_1(glval<char *>) = VariableAddress[#throw2263:7] : +# 2263| r2263_2(glval<char[15]>) = StringConstant["string literal"] : +# 2263| r2263_3(char *) = Convert : r2263_2 +# 2263| mu2263_4(char *) = Store[#throw2263:7] : &:r2263_1, r2263_3 +# 2263| v2263_5(void) = ThrowValue : &:r2263_1, ~m? +#-----| Exception -> Block 5 -# 2270| void IfDestructors3(bool) -# 2270| Block 0 -# 2270| v2270_1(void) = EnterFunction : -# 2270| mu2270_2(unknown) = AliasedDefinition : -# 2270| mu2270_3(unknown) = InitializeNonLocal : -# 2270| r2270_4(glval<bool>) = VariableAddress[b] : -# 2270| mu2270_5(bool) = InitializeParameter[b] : &:r2270_4 -# 2271| r2271_1(glval<Bool>) = VariableAddress[B] : -# 2271| mu2271_2(Bool) = Uninitialized[B] : &:r2271_1 -# 2271| r2271_3(glval<unknown>) = FunctionAddress[Bool] : -# 2271| r2271_4(glval<bool>) = VariableAddress[b] : -# 2271| r2271_5(bool) = Load[b] : &:r2271_4, ~m? -# 2271| v2271_6(void) = Call[Bool] : func:r2271_3, this:r2271_1, 0:r2271_5 -# 2271| mu2271_7(unknown) = ^CallSideEffect : ~m? -# 2271| mu2271_8(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2271_1 -# 2271| r2271_9(glval<Bool>) = VariableAddress[B] : -# 2271| r2271_10(glval<unknown>) = FunctionAddress[operator bool] : -# 2271| r2271_11(bool) = Call[operator bool] : func:r2271_10, this:r2271_9 -# 2271| mu2271_12(unknown) = ^CallSideEffect : ~m? -# 2271| v2271_13(void) = ^IndirectReadSideEffect[-1] : &:r2271_9, ~m? -# 2271| mu2271_14(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2271_9 -# 2271| r2271_15(bool) = CopyValue : r2271_11 -# 2271| v2271_16(void) = ConditionalBranch : r2271_15 +# 2265| Block 4 +# 2265| r2265_1(glval<String>) = VariableAddress[s2] : +# 2265| mu2265_2(String) = Uninitialized[s2] : &:r2265_1 +# 2265| r2265_3(glval<unknown>) = FunctionAddress[String] : +# 2265| v2265_4(void) = Call[String] : func:r2265_3, this:r2265_1 +# 2265| mu2265_5(unknown) = ^CallSideEffect : ~m? +# 2265| mu2265_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2265_1 +# 2266| r2266_1(glval<String>) = VariableAddress[s2] : +# 2266| r2266_2(glval<unknown>) = FunctionAddress[~String] : +# 2266| v2266_3(void) = Call[~String] : func:r2266_2, this:r2266_1 +# 2266| mu2266_4(unknown) = ^CallSideEffect : ~m? +# 2266| v2266_5(void) = ^IndirectReadSideEffect[-1] : &:r2266_1, ~m? +# 2266| mu2266_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2266_1 +# 2266| r2266_7(glval<String>) = VariableAddress[s] : +# 2266| r2266_8(glval<unknown>) = FunctionAddress[~String] : +# 2266| v2266_9(void) = Call[~String] : func:r2266_8, this:r2266_7 +# 2266| mu2266_10(unknown) = ^CallSideEffect : ~m? +# 2266| v2266_11(void) = ^IndirectReadSideEffect[-1] : &:r2266_7, ~m? +# 2266| mu2266_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2266_7 +#-----| Goto -> Block 10 + +# 2267| Block 5 +# 2267| v2267_1(void) = CatchByType[const char *] : +#-----| Exception -> Block 7 +#-----| Goto -> Block 6 + +# 2267| Block 6 +# 2267| r2267_2(glval<char *>) = VariableAddress[s] : +# 2267| mu2267_3(char *) = InitializeParameter[s] : &:r2267_2 +# 2267| r2267_4(char *) = Load[s] : &:r2267_2, ~m? +# 2267| mu2267_5(unknown) = InitializeIndirection[s] : &:r2267_4 +# 2268| r2268_1(glval<String>) = VariableAddress[#throw2268:5] : +# 2268| mu2268_2(String) = Uninitialized[#throw2268:5] : &:r2268_1 +# 2268| r2268_3(glval<unknown>) = FunctionAddress[String] : +# 2268| r2268_4(glval<char *>) = VariableAddress[s] : +# 2268| r2268_5(char *) = Load[s] : &:r2268_4, ~m? +# 2268| v2268_6(void) = Call[String] : func:r2268_3, this:r2268_1, 0:r2268_5 +# 2268| mu2268_7(unknown) = ^CallSideEffect : ~m? +# 2268| v2268_8(void) = ^BufferReadSideEffect[0] : &:r2268_5, ~m? +# 2268| mu2268_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2268_1 +# 2268| v2268_10(void) = ThrowValue : &:r2268_1, ~m? +#-----| Exception -> Block 2 + +# 2270| Block 7 +# 2270| v2270_1(void) = CatchByType[const String &] : +#-----| Exception -> Block 9 +#-----| Goto -> Block 8 + +# 2270| Block 8 +# 2270| r2270_2(glval<String &>) = VariableAddress[e] : +# 2270| mu2270_3(String &) = InitializeParameter[e] : &:r2270_2 +# 2270| r2270_4(String &) = Load[e] : &:r2270_2, ~m? +# 2270| mu2270_5(unknown) = InitializeIndirection[e] : &:r2270_4 +# 2270| v2270_6(void) = NoOp : +#-----| Goto -> Block 10 + +# 2272| Block 9 +# 2272| v2272_1(void) = CatchAny : +# 2273| v2273_1(void) = ReThrow : +#-----| Exception -> Block 2 + +# 2275| Block 10 +# 2275| v2275_1(void) = NoOp : +# 2259| v2259_9(void) = ReturnVoid : +#-----| Goto -> Block 1 + +# 2277| void IfDestructors(bool) +# 2277| Block 0 +# 2277| v2277_1(void) = EnterFunction : +# 2277| mu2277_2(unknown) = AliasedDefinition : +# 2277| mu2277_3(unknown) = InitializeNonLocal : +# 2277| r2277_4(glval<bool>) = VariableAddress[b] : +# 2277| mu2277_5(bool) = InitializeParameter[b] : &:r2277_4 +# 2278| r2278_1(glval<String>) = VariableAddress[s1] : +# 2278| mu2278_2(String) = Uninitialized[s1] : &:r2278_1 +# 2278| r2278_3(glval<unknown>) = 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<bool>) = VariableAddress[b] : +# 2279| r2279_2(bool) = Load[b] : &:r2279_1, ~m? +# 2279| v2279_3(void) = ConditionalBranch : r2279_2 #-----| False -> Block 2 #-----| True -> Block 1 -# 2272| Block 1 -# 2272| r2272_1(glval<String>) = VariableAddress[s1] : -# 2272| mu2272_2(String) = Uninitialized[s1] : &:r2272_1 -# 2272| r2272_3(glval<unknown>) = 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<String>) = VariableAddress[s1] : -# 2273| r2273_2(glval<unknown>) = 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 -#-----| Goto -> Block 3 - -# 2274| Block 2 -# 2274| r2274_1(glval<String>) = VariableAddress[s2] : -# 2274| mu2274_2(String) = Uninitialized[s2] : &:r2274_1 -# 2274| r2274_3(glval<unknown>) = FunctionAddress[String] : -# 2274| v2274_4(void) = Call[String] : func:r2274_3, this:r2274_1 -# 2274| mu2274_5(unknown) = ^CallSideEffect : ~m? -# 2274| mu2274_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2274_1 -# 2275| r2275_1(glval<String>) = VariableAddress[s2] : -# 2275| r2275_2(glval<unknown>) = FunctionAddress[~String] : -# 2275| v2275_3(void) = Call[~String] : func:r2275_2, this:r2275_1 -# 2275| mu2275_4(unknown) = ^CallSideEffect : ~m? -# 2275| v2275_5(void) = ^IndirectReadSideEffect[-1] : &:r2275_1, ~m? -# 2275| mu2275_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2275_1 -#-----| Goto -> Block 3 - -# 2275| Block 3 -# 2275| r2275_7(glval<Bool>) = VariableAddress[B] : -# 2275| r2275_8(glval<unknown>) = FunctionAddress[~Bool] : -# 2275| v2275_9(void) = Call[~Bool] : func:r2275_8, this:r2275_7 -# 2275| mu2275_10(unknown) = ^CallSideEffect : ~m? -# 2275| v2275_11(void) = ^IndirectReadSideEffect[-1] : &:r2275_7, ~m? -# 2275| mu2275_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2275_7 -# 2276| v2276_1(void) = NoOp : -# 2270| v2270_6(void) = ReturnVoid : -# 2270| v2270_7(void) = AliasedUse : ~m? -# 2270| v2270_8(void) = ExitFunction : - -# 2278| void WhileLoopDestructors(bool) -# 2278| Block 0 -# 2278| v2278_1(void) = EnterFunction : -# 2278| mu2278_2(unknown) = AliasedDefinition : -# 2278| mu2278_3(unknown) = InitializeNonLocal : -# 2278| r2278_4(glval<bool>) = VariableAddress[b] : -# 2278| mu2278_5(bool) = InitializeParameter[b] : &:r2278_4 -# 2280| r2280_1(glval<String>) = VariableAddress[s] : -# 2280| mu2280_2(String) = Uninitialized[s] : &:r2280_1 +# 2280| Block 1 +# 2280| r2280_1(glval<String>) = VariableAddress[s2] : +# 2280| mu2280_2(String) = Uninitialized[s2] : &:r2280_1 # 2280| r2280_3(glval<unknown>) = FunctionAddress[String] : # 2280| v2280_4(void) = Call[String] : func:r2280_3, this:r2280_1 # 2280| mu2280_5(unknown) = ^CallSideEffect : ~m? # 2280| mu2280_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2280_1 +# 2281| r2281_1(glval<String>) = VariableAddress[s2] : +# 2281| r2281_2(glval<unknown>) = FunctionAddress[~String] : +# 2281| v2281_3(void) = Call[~String] : func:r2281_2, this:r2281_1 +# 2281| mu2281_4(unknown) = ^CallSideEffect : ~m? +# 2281| v2281_5(void) = ^IndirectReadSideEffect[-1] : &:r2281_1, ~m? +# 2281| mu2281_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_1 +#-----| Goto -> Block 3 + +# 2282| Block 2 +# 2282| r2282_1(glval<String>) = VariableAddress[s3] : +# 2282| mu2282_2(String) = Uninitialized[s3] : &:r2282_1 +# 2282| r2282_3(glval<unknown>) = FunctionAddress[String] : +# 2282| v2282_4(void) = Call[String] : func:r2282_3, this:r2282_1 +# 2282| mu2282_5(unknown) = ^CallSideEffect : ~m? +# 2282| mu2282_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2282_1 +# 2283| r2283_1(glval<String>) = VariableAddress[s3] : +# 2283| r2283_2(glval<unknown>) = FunctionAddress[~String] : +# 2283| v2283_3(void) = Call[~String] : func:r2283_2, this:r2283_1 +# 2283| mu2283_4(unknown) = ^CallSideEffect : ~m? +# 2283| v2283_5(void) = ^IndirectReadSideEffect[-1] : &:r2283_1, ~m? +# 2283| mu2283_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2283_1 +#-----| Goto -> Block 3 + +# 2284| Block 3 +# 2284| r2284_1(glval<String>) = VariableAddress[s4] : +# 2284| mu2284_2(String) = Uninitialized[s4] : &:r2284_1 +# 2284| r2284_3(glval<unknown>) = 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| v2285_1(void) = NoOp : +# 2285| r2285_2(glval<String>) = VariableAddress[s4] : +# 2285| r2285_3(glval<unknown>) = FunctionAddress[~String] : +# 2285| v2285_4(void) = Call[~String] : func:r2285_3, this:r2285_2 +# 2285| mu2285_5(unknown) = ^CallSideEffect : ~m? +# 2285| v2285_6(void) = ^IndirectReadSideEffect[-1] : &:r2285_2, ~m? +# 2285| mu2285_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2285_2 +# 2285| r2285_8(glval<String>) = VariableAddress[s1] : +# 2285| r2285_9(glval<unknown>) = FunctionAddress[~String] : +# 2285| v2285_10(void) = Call[~String] : func:r2285_9, this:r2285_8 +# 2285| mu2285_11(unknown) = ^CallSideEffect : ~m? +# 2285| v2285_12(void) = ^IndirectReadSideEffect[-1] : &:r2285_8, ~m? +# 2285| mu2285_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2285_8 +# 2277| v2277_6(void) = ReturnVoid : +# 2277| v2277_7(void) = AliasedUse : ~m? +# 2277| v2277_8(void) = ExitFunction : + +# 2287| void ForDestructors() +# 2287| Block 0 +# 2287| v2287_1(void) = EnterFunction : +# 2287| mu2287_2(unknown) = AliasedDefinition : +# 2287| mu2287_3(unknown) = InitializeNonLocal : +# 2288| r2288_1(glval<char>) = VariableAddress[c] : +# 2288| r2288_2(char) = Constant[97] : +# 2288| mu2288_3(char) = Store[c] : &:r2288_1, r2288_2 +# 2289| r2289_1(glval<String>) = VariableAddress[s] : +# 2289| mu2289_2(String) = Uninitialized[s] : &:r2289_1 +# 2289| r2289_3(glval<unknown>) = FunctionAddress[String] : +# 2289| r2289_4(glval<char[6]>) = StringConstant["hello"] : +# 2289| r2289_5(char *) = Convert : r2289_4 +# 2289| v2289_6(void) = Call[String] : func:r2289_3, this:r2289_1, 0:r2289_5 +# 2289| mu2289_7(unknown) = ^CallSideEffect : ~m? +# 2289| v2289_8(void) = ^BufferReadSideEffect[0] : &:r2289_5, ~m? +# 2289| mu2289_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2289_1 #-----| Goto -> Block 1 -# 2281| Block 1 -# 2281| r2281_1(glval<bool>) = VariableAddress[b] : -# 2281| r2281_2(bool) = Load[b] : &:r2281_1, ~m? -# 2281| v2281_3(void) = ConditionalBranch : r2281_2 +# 2289| Block 1 +# 2289| r2289_10(glval<char>) = VariableAddress[c] : +# 2289| r2289_11(char) = Load[c] : &:r2289_10, ~m? +# 2289| r2289_12(int) = Convert : r2289_11 +# 2289| r2289_13(int) = Constant[0] : +# 2289| r2289_14(bool) = CompareNE : r2289_12, r2289_13 +# 2289| v2289_15(void) = ConditionalBranch : r2289_14 #-----| False -> Block 3 #-----| True -> Block 2 -# 2282| Block 2 -# 2282| r2282_1(bool) = Constant[0] : -# 2282| r2282_2(glval<bool>) = VariableAddress[b] : -# 2282| mu2282_3(bool) = Store[b] : &:r2282_2, r2282_1 +# 2290| Block 2 +# 2290| r2290_1(glval<String>) = VariableAddress[s2] : +# 2290| mu2290_2(String) = Uninitialized[s2] : &:r2290_1 +# 2290| r2290_3(glval<unknown>) = 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<String>) = VariableAddress[s2] : +# 2291| r2291_2(glval<unknown>) = 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 +# 2289| r2289_16(glval<String>) = VariableAddress[s] : +# 2289| r2289_17(glval<unknown>) = FunctionAddress[pop_back] : +# 2289| r2289_18(char) = Call[pop_back] : func:r2289_17, this:r2289_16 +# 2289| mu2289_19(unknown) = ^CallSideEffect : ~m? +# 2289| v2289_20(void) = ^IndirectReadSideEffect[-1] : &:r2289_16, ~m? +# 2289| mu2289_21(String) = ^IndirectMayWriteSideEffect[-1] : &:r2289_16 +# 2289| r2289_22(glval<char>) = VariableAddress[c] : +# 2289| mu2289_23(char) = Store[c] : &:r2289_22, r2289_18 #-----| Goto (back edge) -> Block 1 -# 2284| Block 3 -# 2284| r2284_1(glval<String>) = VariableAddress[s] : -# 2284| r2284_2(glval<unknown>) = FunctionAddress[~String] : -# 2284| v2284_3(void) = Call[~String] : func:r2284_2, this:r2284_1 -# 2284| mu2284_4(unknown) = ^CallSideEffect : ~m? -# 2284| v2284_5(void) = ^IndirectReadSideEffect[-1] : &:r2284_1, ~m? -# 2284| mu2284_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1 +# 2289| Block 3 +# 2289| r2289_24(glval<String>) = VariableAddress[s] : +# 2289| r2289_25(glval<unknown>) = FunctionAddress[~String] : +# 2289| v2289_26(void) = Call[~String] : func:r2289_25, this:r2289_24 +# 2289| mu2289_27(unknown) = ^CallSideEffect : ~m? +# 2289| v2289_28(void) = ^IndirectReadSideEffect[-1] : &:r2289_24, ~m? +# 2289| mu2289_29(String) = ^IndirectMayWriteSideEffect[-1] : &:r2289_24 +# 2293| r2293_1(glval<vector<String> &&>) = VariableAddress[(__range)] : +# 2293| r2293_2(glval<vector<String>>) = VariableAddress[#temp2293:20] : +# 2293| mu2293_3(vector<String>) = Uninitialized[#temp2293:20] : &:r2293_2 +# 2293| r2293_4(glval<unknown>) = FunctionAddress[vector] : +# 2293| r2293_5(glval<String>) = VariableAddress[#temp2293:40] : +# 2293| mu2293_6(String) = Uninitialized[#temp2293:40] : &:r2293_5 +# 2293| r2293_7(glval<unknown>) = FunctionAddress[String] : +# 2293| r2293_8(glval<char[6]>) = StringConstant["hello"] : +# 2293| r2293_9(char *) = Convert : r2293_8 +# 2293| v2293_10(void) = Call[String] : func:r2293_7, this:r2293_5, 0:r2293_9 +# 2293| mu2293_11(unknown) = ^CallSideEffect : ~m? +# 2293| v2293_12(void) = ^BufferReadSideEffect[0] : &:r2293_9, ~m? +# 2293| mu2293_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_5 +# 2293| r2293_14(String) = Load[#temp2293:40] : &:r2293_5, ~m? +# 2293| v2293_15(void) = Call[vector] : func:r2293_4, this:r2293_2, 0:r2293_14 +# 2293| mu2293_16(unknown) = ^CallSideEffect : ~m? +# 2293| mu2293_17(vector<String>) = ^IndirectMayWriteSideEffect[-1] : &:r2293_2 +# 2293| r2293_18(vector<String> &) = CopyValue : r2293_2 +# 2293| mu2293_19(vector<String> &&) = Store[(__range)] : &:r2293_1, r2293_18 +# 2293| r2293_20(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +# 2293| r2293_21(glval<vector<String> &&>) = VariableAddress[(__range)] : +# 2293| r2293_22(vector<String> &&) = Load[(__range)] : &:r2293_21, ~m? +#-----| r0_1(glval<vector<String>>) = CopyValue : r2293_22 +#-----| r0_2(glval<vector<String>>) = Convert : r0_1 +# 2293| r2293_23(glval<unknown>) = FunctionAddress[begin] : +# 2293| r2293_24(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[begin] : func:r2293_23, this:r0_2 +# 2293| mu2293_25(unknown) = ^CallSideEffect : ~m? +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? +# 2293| mu2293_26(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__begin)] : &:r2293_20, r2293_24 +# 2293| r2293_27(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : +# 2293| r2293_28(glval<vector<String> &&>) = VariableAddress[(__range)] : +# 2293| r2293_29(vector<String> &&) = Load[(__range)] : &:r2293_28, ~m? +#-----| r0_4(glval<vector<String>>) = CopyValue : r2293_29 +#-----| r0_5(glval<vector<String>>) = Convert : r0_4 +# 2293| r2293_30(glval<unknown>) = FunctionAddress[end] : +# 2293| r2293_31(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[end] : func:r2293_30, this:r0_5 +# 2293| mu2293_32(unknown) = ^CallSideEffect : ~m? +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? +# 2293| mu2293_33(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__end)] : &:r2293_27, r2293_31 #-----| Goto -> Block 4 -# 2287| Block 4 -# 2287| r2287_1(glval<Bool>) = VariableAddress[B] : -# 2287| mu2287_2(Bool) = Uninitialized[B] : &:r2287_1 -# 2287| r2287_3(glval<unknown>) = FunctionAddress[Bool] : -# 2287| r2287_4(glval<bool>) = VariableAddress[b] : -# 2287| r2287_5(bool) = Load[b] : &:r2287_4, ~m? -# 2287| v2287_6(void) = Call[Bool] : func:r2287_3, this:r2287_1, 0:r2287_5 -# 2287| mu2287_7(unknown) = ^CallSideEffect : ~m? -# 2287| mu2287_8(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2287_1 -# 2287| r2287_9(glval<Bool>) = VariableAddress[B] : -# 2287| r2287_10(glval<unknown>) = FunctionAddress[operator bool] : -# 2287| r2287_11(bool) = Call[operator bool] : func:r2287_10, this:r2287_9 -# 2287| mu2287_12(unknown) = ^CallSideEffect : ~m? -# 2287| v2287_13(void) = ^IndirectReadSideEffect[-1] : &:r2287_9, ~m? -# 2287| mu2287_14(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2287_9 -# 2287| r2287_15(bool) = CopyValue : r2287_11 -# 2287| v2287_16(void) = ConditionalBranch : r2287_15 +# 2293| Block 4 +# 2293| r2293_34(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_34 +# 2293| r2293_35(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[#temp0:0] : +#-----| mu0_9(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Uninitialized[#temp0:0] : &:r0_8 +# 2293| r2293_36(glval<unknown>) = FunctionAddress[iterator] : +# 2293| r2293_37(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_37 +#-----| r0_11(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = CopyValue : r0_10 +# 2293| v2293_38(void) = Call[iterator] : func:r2293_36, this:r0_8, 0:r0_11 +# 2293| mu2293_39(unknown) = ^CallSideEffect : ~m? +#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? +# 2293| mu2293_40(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +#-----| r0_13(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Load[#temp0:0] : &:r0_8, ~m? +# 2293| r2293_41(bool) = Call[operator!=] : func:r2293_35, this:r0_7, 0:r0_13 +# 2293| mu2293_42(unknown) = ^CallSideEffect : ~m? +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? +# 2293| v2293_43(void) = ConditionalBranch : r2293_41 #-----| False -> Block 6 #-----| True -> Block 5 -# 2288| Block 5 -# 2288| r2288_1(bool) = Constant[0] : -# 2288| r2288_2(glval<bool>) = VariableAddress[b] : -# 2288| mu2288_3(bool) = Store[b] : &:r2288_2, r2288_1 -# 2289| r2289_1(glval<Bool>) = VariableAddress[B] : -# 2289| r2289_2(glval<unknown>) = FunctionAddress[~Bool] : -# 2289| v2289_3(void) = Call[~Bool] : func:r2289_2, this:r2289_1 -# 2289| mu2289_4(unknown) = ^CallSideEffect : ~m? -# 2289| v2289_5(void) = ^IndirectReadSideEffect[-1] : &:r2289_1, ~m? -# 2289| mu2289_6(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2289_1 +# 2293| Block 5 +# 2293| r2293_44(glval<String>) = VariableAddress[s] : +# 2293| mu2293_45(String) = Uninitialized[s] : &:r2293_44 +# 2293| r2293_46(glval<unknown>) = FunctionAddress[String] : +# 2293| r2293_47(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_47 +# 2293| r2293_48(glval<unknown>) = FunctionAddress[operator*] : +# 2293| r2293_49(String &) = Call[operator*] : func:r2293_48, this:r0_15 +# 2293| mu2293_50(unknown) = ^CallSideEffect : ~m? +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? +# 2293| r2293_51(glval<String>) = CopyValue : r2293_49 +# 2293| r2293_52(glval<String>) = Convert : r2293_51 +# 2293| r2293_53(String &) = CopyValue : r2293_52 +# 2293| v2293_54(void) = Call[String] : func:r2293_46, this:r2293_44, 0:r2293_53 +# 2293| mu2293_55(unknown) = ^CallSideEffect : ~m? +# 2293| v2293_56(void) = ^BufferReadSideEffect[0] : &:r2293_53, ~m? +# 2293| mu2293_57(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_44 +# 2294| r2294_1(glval<String>) = VariableAddress[s2] : +# 2294| mu2294_2(String) = Uninitialized[s2] : &:r2294_1 +# 2294| r2294_3(glval<unknown>) = FunctionAddress[String] : +# 2294| v2294_4(void) = Call[String] : func:r2294_3, this:r2294_1 +# 2294| mu2294_5(unknown) = ^CallSideEffect : ~m? +# 2294| mu2294_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2294_1 +# 2295| r2295_1(glval<String>) = VariableAddress[s2] : +# 2295| r2295_2(glval<unknown>) = FunctionAddress[~String] : +# 2295| v2295_3(void) = Call[~String] : func:r2295_2, this:r2295_1 +# 2295| mu2295_4(unknown) = ^CallSideEffect : ~m? +# 2295| v2295_5(void) = ^IndirectReadSideEffect[-1] : &:r2295_1, ~m? +# 2295| mu2295_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2295_1 +# 2293| r2293_58(glval<String>) = VariableAddress[s] : +# 2293| r2293_59(glval<unknown>) = FunctionAddress[~String] : +# 2293| v2293_60(void) = Call[~String] : func:r2293_59, this:r2293_58 +# 2293| mu2293_61(unknown) = ^CallSideEffect : ~m? +# 2293| v2293_62(void) = ^IndirectReadSideEffect[-1] : &:r2293_58, ~m? +# 2293| mu2293_63(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_58 +# 2293| r2293_64(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +# 2293| r2293_65(glval<unknown>) = FunctionAddress[operator++] : +# 2293| r2293_66(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = Call[operator++] : func:r2293_65, this:r2293_64 +# 2293| mu2293_67(unknown) = ^CallSideEffect : ~m? +# 2293| v2293_68(void) = ^IndirectReadSideEffect[-1] : &:r2293_64, ~m? +# 2293| mu2293_69(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r2293_64 +# 2293| r2293_70(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = CopyValue : r2293_66 #-----| Goto (back edge) -> Block 4 -# 2289| Block 6 -# 2289| r2289_7(glval<Bool>) = VariableAddress[B] : -# 2289| r2289_8(glval<unknown>) = FunctionAddress[~Bool] : -# 2289| v2289_9(void) = Call[~Bool] : func:r2289_8, this:r2289_7 -# 2289| mu2289_10(unknown) = ^CallSideEffect : ~m? -# 2289| v2289_11(void) = ^IndirectReadSideEffect[-1] : &:r2289_7, ~m? -# 2289| mu2289_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2289_7 -# 2291| v2291_1(void) = NoOp : -# 2278| v2278_6(void) = ReturnVoid : -# 2278| v2278_7(void) = AliasedUse : ~m? -# 2278| v2278_8(void) = ExitFunction : +# 2297| Block 6 +# 2297| r2297_1(glval<String>) = VariableAddress[s] : +# 2297| mu2297_2(String) = Uninitialized[s] : &:r2297_1 +# 2297| r2297_3(glval<unknown>) = FunctionAddress[String] : +# 2297| r2297_4(glval<char[6]>) = StringConstant["hello"] : +# 2297| r2297_5(char *) = Convert : r2297_4 +# 2297| v2297_6(void) = Call[String] : func:r2297_3, this:r2297_1, 0:r2297_5 +# 2297| mu2297_7(unknown) = ^CallSideEffect : ~m? +# 2297| v2297_8(void) = ^BufferReadSideEffect[0] : &:r2297_5, ~m? +# 2297| mu2297_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1 +# 2297| r2297_10(glval<String>) = VariableAddress[s2] : +# 2297| mu2297_11(String) = Uninitialized[s2] : &:r2297_10 +# 2297| r2297_12(glval<unknown>) = FunctionAddress[String] : +# 2297| r2297_13(glval<char[6]>) = StringConstant["world"] : +# 2297| r2297_14(char *) = Convert : r2297_13 +# 2297| v2297_15(void) = Call[String] : func:r2297_12, this:r2297_10, 0:r2297_14 +# 2297| mu2297_16(unknown) = ^CallSideEffect : ~m? +# 2297| v2297_17(void) = ^BufferReadSideEffect[0] : &:r2297_14, ~m? +# 2297| mu2297_18(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_10 +#-----| Goto -> Block 7 -# 2293| void VoidFunc() -# 2293| Block 0 -# 2293| v2293_1(void) = EnterFunction : -# 2293| mu2293_2(unknown) = AliasedDefinition : -# 2293| mu2293_3(unknown) = InitializeNonLocal : -# 2293| v2293_4(void) = NoOp : -# 2293| v2293_5(void) = ReturnVoid : -# 2293| v2293_6(void) = AliasedUse : ~m? -# 2293| v2293_7(void) = ExitFunction : +# 2297| Block 7 +# 2297| r2297_19(glval<char>) = VariableAddress[c] : +# 2297| r2297_20(char) = Load[c] : &:r2297_19, ~m? +# 2297| r2297_21(int) = Convert : r2297_20 +# 2297| r2297_22(int) = Constant[0] : +# 2297| r2297_23(bool) = CompareNE : r2297_21, r2297_22 +# 2297| v2297_24(void) = ConditionalBranch : r2297_23 +#-----| False -> Block 9 +#-----| True -> Block 8 -# 2295| void IfReturnDestructors(bool) -# 2295| Block 0 -# 2295| v2295_1(void) = EnterFunction : -# 2295| mu2295_2(unknown) = AliasedDefinition : -# 2295| mu2295_3(unknown) = InitializeNonLocal : -# 2295| r2295_4(glval<bool>) = VariableAddress[b] : -# 2295| mu2295_5(bool) = InitializeParameter[b] : &:r2295_4 -# 2296| r2296_1(glval<String>) = VariableAddress[s] : -# 2296| mu2296_2(String) = Uninitialized[s] : &:r2296_1 -# 2296| r2296_3(glval<unknown>) = 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<bool>) = VariableAddress[b] : -# 2297| r2297_2(bool) = Load[b] : &:r2297_1, ~m? -# 2297| v2297_3(void) = ConditionalBranch : r2297_2 +# 2298| Block 8 +# 2298| r2298_1(char) = Constant[0] : +# 2298| r2298_2(glval<char>) = VariableAddress[c] : +# 2298| mu2298_3(char) = Store[c] : &:r2298_2, r2298_1 +# 2297| r2297_25(glval<String>) = VariableAddress[s] : +# 2297| r2297_26(glval<unknown>) = FunctionAddress[pop_back] : +# 2297| r2297_27(char) = Call[pop_back] : func:r2297_26, this:r2297_25 +# 2297| mu2297_28(unknown) = ^CallSideEffect : ~m? +# 2297| v2297_29(void) = ^IndirectReadSideEffect[-1] : &:r2297_25, ~m? +# 2297| mu2297_30(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_25 +# 2297| r2297_31(glval<char>) = VariableAddress[c] : +# 2297| mu2297_32(char) = Store[c] : &:r2297_31, r2297_27 +#-----| Goto (back edge) -> Block 7 + +# 2297| Block 9 +# 2297| r2297_33(glval<String>) = VariableAddress[s2] : +# 2297| r2297_34(glval<unknown>) = FunctionAddress[~String] : +# 2297| v2297_35(void) = Call[~String] : func:r2297_34, this:r2297_33 +# 2297| mu2297_36(unknown) = ^CallSideEffect : ~m? +# 2297| v2297_37(void) = ^IndirectReadSideEffect[-1] : &:r2297_33, ~m? +# 2297| mu2297_38(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_33 +# 2297| r2297_39(glval<String>) = VariableAddress[s] : +# 2297| r2297_40(glval<unknown>) = FunctionAddress[~String] : +# 2297| v2297_41(void) = Call[~String] : func:r2297_40, this:r2297_39 +# 2297| mu2297_42(unknown) = ^CallSideEffect : ~m? +# 2297| v2297_43(void) = ^IndirectReadSideEffect[-1] : &:r2297_39, ~m? +# 2297| mu2297_44(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_39 +# 2300| v2300_1(void) = NoOp : +# 2287| v2287_4(void) = ReturnVoid : +# 2287| v2287_5(void) = AliasedUse : ~m? +# 2287| v2287_6(void) = ExitFunction : + +# 2302| void IfDestructors2(bool) +# 2302| Block 0 +# 2302| v2302_1(void) = EnterFunction : +# 2302| mu2302_2(unknown) = AliasedDefinition : +# 2302| mu2302_3(unknown) = InitializeNonLocal : +# 2302| r2302_4(glval<bool>) = VariableAddress[b] : +# 2302| mu2302_5(bool) = InitializeParameter[b] : &:r2302_4 +# 2303| r2303_1(glval<String>) = VariableAddress[s] : +# 2303| mu2303_2(String) = Uninitialized[s] : &:r2303_1 +# 2303| r2303_3(glval<unknown>) = FunctionAddress[String] : +# 2303| r2303_4(glval<char[6]>) = StringConstant["hello"] : +# 2303| r2303_5(char *) = Convert : r2303_4 +# 2303| v2303_6(void) = Call[String] : func:r2303_3, this:r2303_1, 0:r2303_5 +# 2303| mu2303_7(unknown) = ^CallSideEffect : ~m? +# 2303| v2303_8(void) = ^BufferReadSideEffect[0] : &:r2303_5, ~m? +# 2303| mu2303_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2303_1 +# 2303| r2303_10(glval<bool>) = VariableAddress[b] : +# 2303| r2303_11(bool) = Load[b] : &:r2303_10, ~m? +# 2303| v2303_12(void) = ConditionalBranch : r2303_11 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2304| Block 1 +# 2304| r2304_1(glval<int>) = VariableAddress[x] : +# 2304| r2304_2(int) = Constant[0] : +# 2304| mu2304_3(int) = Store[x] : &:r2304_1, r2304_2 +#-----| Goto -> Block 3 + +# 2306| Block 2 +# 2306| r2306_1(glval<int>) = VariableAddress[y] : +# 2306| r2306_2(int) = Constant[0] : +# 2306| mu2306_3(int) = Store[y] : &:r2306_1, r2306_2 +#-----| Goto -> Block 3 + +# 2307| Block 3 +# 2307| r2307_1(glval<String>) = VariableAddress[s] : +# 2307| r2307_2(glval<unknown>) = FunctionAddress[~String] : +# 2307| v2307_3(void) = Call[~String] : func:r2307_2, this:r2307_1 +# 2307| mu2307_4(unknown) = ^CallSideEffect : ~m? +# 2307| v2307_5(void) = ^IndirectReadSideEffect[-1] : &:r2307_1, ~m? +# 2307| mu2307_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2307_1 +# 2308| v2308_1(void) = NoOp : +# 2302| v2302_6(void) = ReturnVoid : +# 2302| v2302_7(void) = AliasedUse : ~m? +# 2302| v2302_8(void) = ExitFunction : + +# 2317| void IfDestructors3(bool) +# 2317| Block 0 +# 2317| v2317_1(void) = EnterFunction : +# 2317| mu2317_2(unknown) = AliasedDefinition : +# 2317| mu2317_3(unknown) = InitializeNonLocal : +# 2317| r2317_4(glval<bool>) = VariableAddress[b] : +# 2317| mu2317_5(bool) = InitializeParameter[b] : &:r2317_4 +# 2318| r2318_1(glval<Bool>) = VariableAddress[B] : +# 2318| mu2318_2(Bool) = Uninitialized[B] : &:r2318_1 +# 2318| r2318_3(glval<unknown>) = FunctionAddress[Bool] : +# 2318| r2318_4(glval<bool>) = VariableAddress[b] : +# 2318| r2318_5(bool) = Load[b] : &:r2318_4, ~m? +# 2318| v2318_6(void) = Call[Bool] : func:r2318_3, this:r2318_1, 0:r2318_5 +# 2318| mu2318_7(unknown) = ^CallSideEffect : ~m? +# 2318| mu2318_8(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2318_1 +# 2318| r2318_9(glval<Bool>) = VariableAddress[B] : +# 2318| r2318_10(glval<unknown>) = FunctionAddress[operator bool] : +# 2318| r2318_11(bool) = Call[operator bool] : func:r2318_10, this:r2318_9 +# 2318| mu2318_12(unknown) = ^CallSideEffect : ~m? +# 2318| v2318_13(void) = ^IndirectReadSideEffect[-1] : &:r2318_9, ~m? +# 2318| mu2318_14(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2318_9 +# 2318| r2318_15(bool) = CopyValue : r2318_11 +# 2318| v2318_16(void) = ConditionalBranch : r2318_15 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2319| Block 1 +# 2319| r2319_1(glval<String>) = VariableAddress[s1] : +# 2319| mu2319_2(String) = Uninitialized[s1] : &:r2319_1 +# 2319| r2319_3(glval<unknown>) = FunctionAddress[String] : +# 2319| v2319_4(void) = Call[String] : func:r2319_3, this:r2319_1 +# 2319| mu2319_5(unknown) = ^CallSideEffect : ~m? +# 2319| mu2319_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2319_1 +# 2320| r2320_1(glval<String>) = VariableAddress[s1] : +# 2320| r2320_2(glval<unknown>) = FunctionAddress[~String] : +# 2320| v2320_3(void) = Call[~String] : func:r2320_2, this:r2320_1 +# 2320| mu2320_4(unknown) = ^CallSideEffect : ~m? +# 2320| v2320_5(void) = ^IndirectReadSideEffect[-1] : &:r2320_1, ~m? +# 2320| mu2320_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2320_1 +#-----| Goto -> Block 3 + +# 2321| Block 2 +# 2321| r2321_1(glval<String>) = VariableAddress[s2] : +# 2321| mu2321_2(String) = Uninitialized[s2] : &:r2321_1 +# 2321| r2321_3(glval<unknown>) = FunctionAddress[String] : +# 2321| v2321_4(void) = Call[String] : func:r2321_3, this:r2321_1 +# 2321| mu2321_5(unknown) = ^CallSideEffect : ~m? +# 2321| mu2321_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2321_1 +# 2322| r2322_1(glval<String>) = VariableAddress[s2] : +# 2322| r2322_2(glval<unknown>) = FunctionAddress[~String] : +# 2322| v2322_3(void) = Call[~String] : func:r2322_2, this:r2322_1 +# 2322| mu2322_4(unknown) = ^CallSideEffect : ~m? +# 2322| v2322_5(void) = ^IndirectReadSideEffect[-1] : &:r2322_1, ~m? +# 2322| mu2322_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2322_1 +#-----| Goto -> Block 3 + +# 2322| Block 3 +# 2322| r2322_7(glval<Bool>) = VariableAddress[B] : +# 2322| r2322_8(glval<unknown>) = FunctionAddress[~Bool] : +# 2322| v2322_9(void) = Call[~Bool] : func:r2322_8, this:r2322_7 +# 2322| mu2322_10(unknown) = ^CallSideEffect : ~m? +# 2322| v2322_11(void) = ^IndirectReadSideEffect[-1] : &:r2322_7, ~m? +# 2322| mu2322_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2322_7 +# 2323| v2323_1(void) = NoOp : +# 2317| v2317_6(void) = ReturnVoid : +# 2317| v2317_7(void) = AliasedUse : ~m? +# 2317| v2317_8(void) = ExitFunction : + +# 2325| void WhileLoopDestructors(bool) +# 2325| Block 0 +# 2325| v2325_1(void) = EnterFunction : +# 2325| mu2325_2(unknown) = AliasedDefinition : +# 2325| mu2325_3(unknown) = InitializeNonLocal : +# 2325| r2325_4(glval<bool>) = VariableAddress[b] : +# 2325| mu2325_5(bool) = InitializeParameter[b] : &:r2325_4 +# 2327| r2327_1(glval<String>) = VariableAddress[s] : +# 2327| mu2327_2(String) = Uninitialized[s] : &:r2327_1 +# 2327| r2327_3(glval<unknown>) = FunctionAddress[String] : +# 2327| v2327_4(void) = Call[String] : func:r2327_3, this:r2327_1 +# 2327| mu2327_5(unknown) = ^CallSideEffect : ~m? +# 2327| mu2327_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2327_1 +#-----| Goto -> Block 1 + +# 2328| Block 1 +# 2328| r2328_1(glval<bool>) = VariableAddress[b] : +# 2328| r2328_2(bool) = Load[b] : &:r2328_1, ~m? +# 2328| v2328_3(void) = ConditionalBranch : r2328_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2295| Block 1 -# 2295| v2295_6(void) = ReturnVoid : -# 2295| v2295_7(void) = AliasedUse : ~m? -# 2295| v2295_8(void) = ExitFunction : +# 2329| Block 2 +# 2329| r2329_1(bool) = Constant[0] : +# 2329| r2329_2(glval<bool>) = VariableAddress[b] : +# 2329| mu2329_3(bool) = Store[b] : &:r2329_2, r2329_1 +#-----| Goto (back edge) -> Block 1 -# 2298| Block 2 -# 2298| v2298_1(void) = NoOp : -# 2304| r2304_1(glval<String>) = VariableAddress[s] : -# 2304| r2304_2(glval<unknown>) = FunctionAddress[~String] : -# 2304| v2304_3(void) = Call[~String] : func:r2304_2, this:r2304_1 -# 2304| mu2304_4(unknown) = ^CallSideEffect : ~m? -# 2304| v2304_5(void) = ^IndirectReadSideEffect[-1] : &:r2304_1, ~m? -# 2304| mu2304_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_1 +# 2331| Block 3 +# 2331| r2331_1(glval<String>) = VariableAddress[s] : +# 2331| r2331_2(glval<unknown>) = FunctionAddress[~String] : +# 2331| v2331_3(void) = Call[~String] : func:r2331_2, this:r2331_1 +# 2331| mu2331_4(unknown) = ^CallSideEffect : ~m? +# 2331| v2331_5(void) = ^IndirectReadSideEffect[-1] : &:r2331_1, ~m? +# 2331| mu2331_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2331_1 +#-----| Goto -> Block 4 + +# 2334| Block 4 +# 2334| r2334_1(glval<Bool>) = VariableAddress[B] : +# 2334| mu2334_2(Bool) = Uninitialized[B] : &:r2334_1 +# 2334| r2334_3(glval<unknown>) = FunctionAddress[Bool] : +# 2334| r2334_4(glval<bool>) = VariableAddress[b] : +# 2334| r2334_5(bool) = Load[b] : &:r2334_4, ~m? +# 2334| v2334_6(void) = Call[Bool] : func:r2334_3, this:r2334_1, 0:r2334_5 +# 2334| mu2334_7(unknown) = ^CallSideEffect : ~m? +# 2334| mu2334_8(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2334_1 +# 2334| r2334_9(glval<Bool>) = VariableAddress[B] : +# 2334| r2334_10(glval<unknown>) = FunctionAddress[operator bool] : +# 2334| r2334_11(bool) = Call[operator bool] : func:r2334_10, this:r2334_9 +# 2334| mu2334_12(unknown) = ^CallSideEffect : ~m? +# 2334| v2334_13(void) = ^IndirectReadSideEffect[-1] : &:r2334_9, ~m? +# 2334| mu2334_14(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2334_9 +# 2334| r2334_15(bool) = CopyValue : r2334_11 +# 2334| v2334_16(void) = ConditionalBranch : r2334_15 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 2335| Block 5 +# 2335| r2335_1(bool) = Constant[0] : +# 2335| r2335_2(glval<bool>) = VariableAddress[b] : +# 2335| mu2335_3(bool) = Store[b] : &:r2335_2, r2335_1 +# 2336| r2336_1(glval<Bool>) = VariableAddress[B] : +# 2336| r2336_2(glval<unknown>) = FunctionAddress[~Bool] : +# 2336| v2336_3(void) = Call[~Bool] : func:r2336_2, this:r2336_1 +# 2336| mu2336_4(unknown) = ^CallSideEffect : ~m? +# 2336| v2336_5(void) = ^IndirectReadSideEffect[-1] : &:r2336_1, ~m? +# 2336| mu2336_6(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2336_1 +#-----| Goto (back edge) -> Block 4 + +# 2336| Block 6 +# 2336| r2336_7(glval<Bool>) = VariableAddress[B] : +# 2336| r2336_8(glval<unknown>) = FunctionAddress[~Bool] : +# 2336| v2336_9(void) = Call[~Bool] : func:r2336_8, this:r2336_7 +# 2336| mu2336_10(unknown) = ^CallSideEffect : ~m? +# 2336| v2336_11(void) = ^IndirectReadSideEffect[-1] : &:r2336_7, ~m? +# 2336| mu2336_12(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2336_7 +# 2338| v2338_1(void) = NoOp : +# 2325| v2325_6(void) = ReturnVoid : +# 2325| v2325_7(void) = AliasedUse : ~m? +# 2325| v2325_8(void) = ExitFunction : + +# 2340| void VoidFunc() +# 2340| Block 0 +# 2340| v2340_1(void) = EnterFunction : +# 2340| mu2340_2(unknown) = AliasedDefinition : +# 2340| mu2340_3(unknown) = InitializeNonLocal : +# 2340| v2340_4(void) = NoOp : +# 2340| v2340_5(void) = ReturnVoid : +# 2340| v2340_6(void) = AliasedUse : ~m? +# 2340| v2340_7(void) = ExitFunction : + +# 2342| void IfReturnDestructors(bool) +# 2342| Block 0 +# 2342| v2342_1(void) = EnterFunction : +# 2342| mu2342_2(unknown) = AliasedDefinition : +# 2342| mu2342_3(unknown) = InitializeNonLocal : +# 2342| r2342_4(glval<bool>) = VariableAddress[b] : +# 2342| mu2342_5(bool) = InitializeParameter[b] : &:r2342_4 +# 2343| r2343_1(glval<String>) = VariableAddress[s] : +# 2343| mu2343_2(String) = Uninitialized[s] : &:r2343_1 +# 2343| r2343_3(glval<unknown>) = FunctionAddress[String] : +# 2343| v2343_4(void) = Call[String] : func:r2343_3, this:r2343_1 +# 2343| mu2343_5(unknown) = ^CallSideEffect : ~m? +# 2343| mu2343_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2343_1 +# 2344| r2344_1(glval<bool>) = VariableAddress[b] : +# 2344| r2344_2(bool) = Load[b] : &:r2344_1, ~m? +# 2344| v2344_3(void) = ConditionalBranch : r2344_2 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 2342| Block 1 +# 2342| v2342_6(void) = ReturnVoid : +# 2342| v2342_7(void) = AliasedUse : ~m? +# 2342| v2342_8(void) = ExitFunction : + +# 2345| Block 2 +# 2345| v2345_1(void) = NoOp : +# 2351| r2351_1(glval<String>) = VariableAddress[s] : +# 2351| r2351_2(glval<unknown>) = 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 #-----| Goto -> Block 1 -# 2300| Block 3 -# 2300| r2300_1(glval<bool>) = VariableAddress[b] : -# 2300| r2300_2(bool) = Load[b] : &:r2300_1, ~m? -# 2300| v2300_3(void) = ConditionalBranch : r2300_2 +# 2347| Block 3 +# 2347| r2347_1(glval<bool>) = VariableAddress[b] : +# 2347| r2347_2(bool) = Load[b] : &:r2347_1, ~m? +# 2347| v2347_3(void) = ConditionalBranch : r2347_2 #-----| False -> Block 5 #-----| True -> Block 4 -# 2301| Block 4 -# 2301| r2301_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2301| v2301_2(void) = Call[VoidFunc] : func:r2301_1 -# 2301| mu2301_3(unknown) = ^CallSideEffect : ~m? -# 2301| v2301_4(void) = NoOp : -# 2304| r2304_7(glval<String>) = VariableAddress[s] : -# 2304| r2304_8(glval<unknown>) = FunctionAddress[~String] : -# 2304| v2304_9(void) = Call[~String] : func:r2304_8, this:r2304_7 -# 2304| mu2304_10(unknown) = ^CallSideEffect : ~m? -# 2304| v2304_11(void) = ^IndirectReadSideEffect[-1] : &:r2304_7, ~m? -# 2304| mu2304_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_7 +# 2348| Block 4 +# 2348| r2348_1(glval<unknown>) = FunctionAddress[VoidFunc] : +# 2348| v2348_2(void) = Call[VoidFunc] : func:r2348_1 +# 2348| mu2348_3(unknown) = ^CallSideEffect : ~m? +# 2348| v2348_4(void) = NoOp : +# 2351| r2351_7(glval<String>) = VariableAddress[s] : +# 2351| r2351_8(glval<unknown>) = FunctionAddress[~String] : +# 2351| v2351_9(void) = Call[~String] : func:r2351_8, this:r2351_7 +# 2351| mu2351_10(unknown) = ^CallSideEffect : ~m? +# 2351| v2351_11(void) = ^IndirectReadSideEffect[-1] : &:r2351_7, ~m? +# 2351| mu2351_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2351_7 #-----| Goto -> Block 1 -# 2303| Block 5 -# 2303| r2303_1(glval<String>) = VariableAddress[s] : -# 2304| v2304_13(void) = NoOp : -# 2304| r2304_14(glval<String>) = VariableAddress[s] : -# 2304| r2304_15(glval<unknown>) = FunctionAddress[~String] : -# 2304| v2304_16(void) = Call[~String] : func:r2304_15, this:r2304_14 -# 2304| mu2304_17(unknown) = ^CallSideEffect : ~m? -# 2304| v2304_18(void) = ^IndirectReadSideEffect[-1] : &:r2304_14, ~m? -# 2304| mu2304_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_14 +# 2350| Block 5 +# 2350| r2350_1(glval<String>) = VariableAddress[s] : +# 2351| v2351_13(void) = NoOp : +# 2351| r2351_14(glval<String>) = VariableAddress[s] : +# 2351| r2351_15(glval<unknown>) = FunctionAddress[~String] : +# 2351| v2351_16(void) = Call[~String] : func:r2351_15, this:r2351_14 +# 2351| mu2351_17(unknown) = ^CallSideEffect : ~m? +# 2351| v2351_18(void) = ^IndirectReadSideEffect[-1] : &:r2351_14, ~m? +# 2351| mu2351_19(String) = ^IndirectMayWriteSideEffect[-1] : &:r2351_14 #-----| Goto -> Block 1 -# 2306| int IfReturnDestructors3(bool) -# 2306| Block 0 -# 2306| v2306_1(void) = EnterFunction : -# 2306| mu2306_2(unknown) = AliasedDefinition : -# 2306| mu2306_3(unknown) = InitializeNonLocal : -# 2306| r2306_4(glval<bool>) = VariableAddress[b] : -# 2306| mu2306_5(bool) = InitializeParameter[b] : &:r2306_4 -# 2307| r2307_1(glval<String>) = VariableAddress[s] : -# 2307| mu2307_2(String) = Uninitialized[s] : &:r2307_1 -# 2307| r2307_3(glval<unknown>) = FunctionAddress[String] : -# 2307| v2307_4(void) = Call[String] : func:r2307_3, this:r2307_1 -# 2307| mu2307_5(unknown) = ^CallSideEffect : ~m? -# 2307| mu2307_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2307_1 -# 2308| r2308_1(glval<bool>) = VariableAddress[b] : -# 2308| r2308_2(bool) = Load[b] : &:r2308_1, ~m? -# 2308| v2308_3(void) = ConditionalBranch : r2308_2 +# 2353| int IfReturnDestructors3(bool) +# 2353| Block 0 +# 2353| v2353_1(void) = EnterFunction : +# 2353| mu2353_2(unknown) = AliasedDefinition : +# 2353| mu2353_3(unknown) = InitializeNonLocal : +# 2353| r2353_4(glval<bool>) = VariableAddress[b] : +# 2353| mu2353_5(bool) = InitializeParameter[b] : &:r2353_4 +# 2354| r2354_1(glval<String>) = VariableAddress[s] : +# 2354| mu2354_2(String) = Uninitialized[s] : &:r2354_1 +# 2354| r2354_3(glval<unknown>) = FunctionAddress[String] : +# 2354| v2354_4(void) = Call[String] : func:r2354_3, this:r2354_1 +# 2354| mu2354_5(unknown) = ^CallSideEffect : ~m? +# 2354| mu2354_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2354_1 +# 2355| r2355_1(glval<bool>) = VariableAddress[b] : +# 2355| r2355_2(bool) = Load[b] : &:r2355_1, ~m? +# 2355| v2355_3(void) = ConditionalBranch : r2355_2 #-----| False -> Block 3 #-----| True -> Block 2 -# 2306| Block 1 -# 2306| r2306_6(glval<int>) = VariableAddress[#return] : -# 2306| v2306_7(void) = ReturnValue : &:r2306_6, ~m? -# 2306| v2306_8(void) = AliasedUse : ~m? -# 2306| v2306_9(void) = ExitFunction : +# 2353| Block 1 +# 2353| r2353_6(glval<int>) = VariableAddress[#return] : +# 2353| v2353_7(void) = ReturnValue : &:r2353_6, ~m? +# 2353| v2353_8(void) = AliasedUse : ~m? +# 2353| v2353_9(void) = ExitFunction : -# 2309| Block 2 -# 2309| r2309_1(glval<int>) = VariableAddress[#return] : -# 2309| r2309_2(int) = Constant[1] : -# 2309| mu2309_3(int) = Store[#return] : &:r2309_1, r2309_2 -# 2312| r2312_1(glval<String>) = VariableAddress[s] : -# 2312| r2312_2(glval<unknown>) = 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 +# 2356| Block 2 +# 2356| r2356_1(glval<int>) = VariableAddress[#return] : +# 2356| r2356_2(int) = Constant[1] : +# 2356| mu2356_3(int) = Store[#return] : &:r2356_1, r2356_2 +# 2359| r2359_1(glval<String>) = VariableAddress[s] : +# 2359| r2359_2(glval<unknown>) = FunctionAddress[~String] : +# 2359| v2359_3(void) = Call[~String] : func:r2359_2, this:r2359_1 +# 2359| mu2359_4(unknown) = ^CallSideEffect : ~m? +# 2359| v2359_5(void) = ^IndirectReadSideEffect[-1] : &:r2359_1, ~m? +# 2359| mu2359_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2359_1 #-----| Goto -> Block 1 -# 2311| Block 3 -# 2311| r2311_1(glval<int>) = VariableAddress[#return] : -# 2311| r2311_2(int) = Constant[0] : -# 2311| mu2311_3(int) = Store[#return] : &:r2311_1, r2311_2 -# 2312| r2312_7(glval<String>) = VariableAddress[s] : -# 2312| r2312_8(glval<unknown>) = FunctionAddress[~String] : -# 2312| v2312_9(void) = Call[~String] : func:r2312_8, this:r2312_7 -# 2312| mu2312_10(unknown) = ^CallSideEffect : ~m? -# 2312| v2312_11(void) = ^IndirectReadSideEffect[-1] : &:r2312_7, ~m? -# 2312| mu2312_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_7 +# 2358| Block 3 +# 2358| r2358_1(glval<int>) = VariableAddress[#return] : +# 2358| r2358_2(int) = Constant[0] : +# 2358| mu2358_3(int) = Store[#return] : &:r2358_1, r2358_2 +# 2359| r2359_7(glval<String>) = VariableAddress[s] : +# 2359| r2359_8(glval<unknown>) = FunctionAddress[~String] : +# 2359| v2359_9(void) = Call[~String] : func:r2359_8, this:r2359_7 +# 2359| mu2359_10(unknown) = ^CallSideEffect : ~m? +# 2359| v2359_11(void) = ^IndirectReadSideEffect[-1] : &:r2359_7, ~m? +# 2359| mu2359_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r2359_7 #-----| Goto -> Block 1 -# 2314| void VoidReturnDestructors() -# 2314| Block 0 -# 2314| v2314_1(void) = EnterFunction : -# 2314| mu2314_2(unknown) = AliasedDefinition : -# 2314| mu2314_3(unknown) = InitializeNonLocal : -# 2315| r2315_1(glval<String>) = VariableAddress[s] : -# 2315| mu2315_2(String) = Uninitialized[s] : &:r2315_1 -# 2315| r2315_3(glval<unknown>) = FunctionAddress[String] : -# 2315| v2315_4(void) = Call[String] : func:r2315_3, this:r2315_1 -# 2315| mu2315_5(unknown) = ^CallSideEffect : ~m? -# 2315| mu2315_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2315_1 -# 2316| r2316_1(glval<unknown>) = FunctionAddress[VoidFunc] : -# 2316| v2316_2(void) = Call[VoidFunc] : func:r2316_1 -# 2316| mu2316_3(unknown) = ^CallSideEffect : ~m? -# 2316| v2316_4(void) = NoOp : -# 2317| r2317_1(glval<String>) = VariableAddress[s] : -# 2317| r2317_2(glval<unknown>) = FunctionAddress[~String] : -# 2317| v2317_3(void) = Call[~String] : func:r2317_2, this:r2317_1 -# 2317| mu2317_4(unknown) = ^CallSideEffect : ~m? -# 2317| v2317_5(void) = ^IndirectReadSideEffect[-1] : &:r2317_1, ~m? -# 2317| mu2317_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2317_1 -# 2314| v2314_4(void) = ReturnVoid : -# 2314| v2314_5(void) = AliasedUse : ~m? -# 2314| v2314_6(void) = ExitFunction : +# 2361| void VoidReturnDestructors() +# 2361| Block 0 +# 2361| v2361_1(void) = EnterFunction : +# 2361| mu2361_2(unknown) = AliasedDefinition : +# 2361| mu2361_3(unknown) = InitializeNonLocal : +# 2362| r2362_1(glval<String>) = VariableAddress[s] : +# 2362| mu2362_2(String) = Uninitialized[s] : &:r2362_1 +# 2362| r2362_3(glval<unknown>) = 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<unknown>) = FunctionAddress[VoidFunc] : +# 2363| v2363_2(void) = Call[VoidFunc] : func:r2363_1 +# 2363| mu2363_3(unknown) = ^CallSideEffect : ~m? +# 2363| v2363_4(void) = NoOp : +# 2364| r2364_1(glval<String>) = VariableAddress[s] : +# 2364| r2364_2(glval<unknown>) = FunctionAddress[~String] : +# 2364| v2364_3(void) = Call[~String] : func:r2364_2, this:r2364_1 +# 2364| mu2364_4(unknown) = ^CallSideEffect : ~m? +# 2364| v2364_5(void) = ^IndirectReadSideEffect[-1] : &:r2364_1, ~m? +# 2364| mu2364_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2364_1 +# 2361| v2361_4(void) = ReturnVoid : +# 2361| v2361_5(void) = AliasedUse : ~m? +# 2361| v2361_6(void) = ExitFunction : -# 2327| return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() -# 2327| Block 0 -# 2327| v2327_1(void) = EnterFunction : -# 2327| mu2327_2(unknown) = AliasedDefinition : -# 2327| mu2327_3(unknown) = InitializeNonLocal : -# 2329| r2329_1(glval<..:: *>) = VariableAddress[#return] : -# 2329| r2329_2(..()(..)) = FunctionAddress[VoidToInt] : -# 2329| mu2329_3(..:: *) = Store[#return] : &:r2329_1, r2329_2 -# 2327| r2327_4(glval<..:: *>) = VariableAddress[#return] : -# 2327| v2327_5(void) = ReturnValue : &:r2327_4, ~m? -# 2327| v2327_6(void) = AliasedUse : ~m? -# 2327| v2327_7(void) = ExitFunction : +# 2374| return_routine_type::VoidToIntMemberFunc return_routine_type::GetVoidToIntFunc() +# 2374| Block 0 +# 2374| v2374_1(void) = EnterFunction : +# 2374| mu2374_2(unknown) = AliasedDefinition : +# 2374| mu2374_3(unknown) = InitializeNonLocal : +# 2376| r2376_1(glval<..:: *>) = VariableAddress[#return] : +# 2376| r2376_2(..()(..)) = FunctionAddress[VoidToInt] : +# 2376| mu2376_3(..:: *) = Store[#return] : &:r2376_1, r2376_2 +# 2374| r2374_4(glval<..:: *>) = VariableAddress[#return] : +# 2374| v2374_5(void) = ReturnValue : &:r2374_4, ~m? +# 2374| v2374_6(void) = AliasedUse : ~m? +# 2374| v2374_7(void) = ExitFunction : perf-regression.cpp: # 6| void Big::Big() From 19c9ea7e207268d7c73cbd4f577a29f4b8a0f4de Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 12:13:43 +0000 Subject: [PATCH 153/309] C++: Implement alias and side effect models for iterators. --- .../cpp/models/implementations/Iterator.qll | 22 +- .../library-tests/ir/ir/aliased_ir.expected | 884 +++++++++--------- .../ir/ir/operand_locations.expected | 860 ++++++++--------- .../test/library-tests/ir/ir/raw_ir.expected | 656 +++++++------ 4 files changed, 1179 insertions(+), 1243 deletions(-) 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 cafd9aeeef0..79d36e77f3d 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/Iterator.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/Iterator.qll @@ -9,6 +9,8 @@ import cpp 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.Alias +import semmle.code.cpp.models.interfaces.SideEffect /** * An instantiation of the `std::iterator_traits` template. @@ -438,7 +440,9 @@ private class IteratorAssignmentMemberOperatorModel extends IteratorAssignmentMe * A `begin` or `end` member function, or a related member function, that * returns an iterator. */ -private class BeginOrEndFunction extends MemberFunction, TaintFunction, GetIteratorFunction { +private class BeginOrEndFunction extends MemberFunction, TaintFunction, GetIteratorFunction, + AliasFunction, SideEffectFunction +{ BeginOrEndFunction() { this.hasName([ "begin", "cbegin", "rbegin", "crbegin", "end", "cend", "rend", "crend", "before_begin", @@ -456,6 +460,22 @@ private class BeginOrEndFunction extends MemberFunction, TaintFunction, GetItera input.isQualifierObject() and output.isReturnValue() } + + 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 + } } /** 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 a5c45046307..a5a09578750 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -7290,62 +7290,58 @@ ir.cpp: #-----| r0_1(glval<vector<int>>) = CopyValue : r1127_9 # 1127| r1127_10(glval<unknown>) = FunctionAddress[begin] : # 1127| r1127_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r1127_10, this:r0_1 -# 1127| m1127_12(unknown) = ^CallSideEffect : ~m1126_4 -# 1127| m1127_13(unknown) = Chi : total:m1126_4, partial:m1127_12 #-----| v0_2(void) = ^IndirectReadSideEffect[-1] : &:r0_1, ~m1126_8 -# 1127| m1127_14(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1127_7, r1127_11 -# 1127| r1127_15(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -# 1127| r1127_16(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1127| r1127_17(vector<int> &) = Load[(__range)] : &:r1127_16, m1127_6 -#-----| r0_3(glval<vector<int>>) = CopyValue : r1127_17 -# 1127| r1127_18(glval<unknown>) = FunctionAddress[end] : -# 1127| r1127_19(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1127_18, this:r0_3 -# 1127| m1127_20(unknown) = ^CallSideEffect : ~m1127_13 -# 1127| m1127_21(unknown) = Chi : total:m1127_13, partial:m1127_20 +# 1127| m1127_12(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1127_7, r1127_11 +# 1127| r1127_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 1127| r1127_14(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1127| r1127_15(vector<int> &) = Load[(__range)] : &:r1127_14, m1127_6 +#-----| r0_3(glval<vector<int>>) = CopyValue : r1127_15 +# 1127| r1127_16(glval<unknown>) = FunctionAddress[end] : +# 1127| r1127_17(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1127_16, this:r0_3 #-----| v0_4(void) = ^IndirectReadSideEffect[-1] : &:r0_3, ~m1126_8 -# 1127| m1127_22(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1127_15, r1127_19 +# 1127| m1127_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1127_13, r1127_17 #-----| Goto -> Block 1 # 1127| Block 1 -# 1127| m1127_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 0:m1127_14, from 4:m1127_54 -# 1127| m1127_24(unknown) = Phi : from 0:~m1127_21, from 4:~m1127_51 -# 1127| r1127_25(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_5(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_25 -# 1127| r1127_26(glval<unknown>) = FunctionAddress[operator!=] : +# 1127| m1127_19(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 0:m1127_12, from 4:m1127_50 +# 1127| m1127_20(unknown) = Phi : from 0:~m1126_4, from 4:~m1127_47 +# 1127| r1127_21(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_5(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_21 +# 1127| r1127_22(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_6(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : #-----| m0_7(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_6 -# 1127| r1127_27(glval<unknown>) = FunctionAddress[iterator] : -# 1127| r1127_28(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -#-----| r0_8(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_28 +# 1127| r1127_23(glval<unknown>) = FunctionAddress[iterator] : +# 1127| r1127_24(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_24 #-----| r0_9(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_8 -# 1127| v1127_29(void) = Call[iterator] : func:r1127_27, this:r0_6, 0:r0_9 -# 1127| m1127_30(unknown) = ^CallSideEffect : ~m1127_24 -# 1127| m1127_31(unknown) = Chi : total:m1127_24, partial:m1127_30 -#-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_9, ~m1127_22 -# 1127| m1127_32(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_6 -# 1127| m1127_33(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_7, partial:m1127_32 -#-----| r0_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_6, m1127_33 -# 1127| r1127_34(bool) = Call[operator!=] : func:r1127_26, this:r0_5, 0:r0_11 -# 1127| m1127_35(unknown) = ^CallSideEffect : ~m1127_31 -# 1127| m1127_36(unknown) = Chi : total:m1127_31, partial:m1127_35 -#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m1127_23 -# 1127| v1127_37(void) = ConditionalBranch : r1127_34 +# 1127| v1127_25(void) = Call[iterator] : func:r1127_23, this:r0_6, 0:r0_9 +# 1127| m1127_26(unknown) = ^CallSideEffect : ~m1127_20 +# 1127| m1127_27(unknown) = Chi : total:m1127_20, partial:m1127_26 +#-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_9, ~m1127_18 +# 1127| m1127_28(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_6 +# 1127| m1127_29(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_7, partial:m1127_28 +#-----| r0_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_6, m1127_29 +# 1127| r1127_30(bool) = Call[operator!=] : func:r1127_22, this:r0_5, 0:r0_11 +# 1127| m1127_31(unknown) = ^CallSideEffect : ~m1127_27 +# 1127| m1127_32(unknown) = Chi : total:m1127_27, partial:m1127_31 +#-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m1127_19 +# 1127| v1127_33(void) = ConditionalBranch : r1127_30 #-----| False -> Block 5 #-----| True -> Block 2 # 1127| Block 2 -# 1127| r1127_38(glval<int>) = VariableAddress[e] : -# 1127| r1127_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_39 -# 1127| r1127_40(glval<unknown>) = FunctionAddress[operator*] : -# 1127| r1127_41(int &) = Call[operator*] : func:r1127_40, this:r0_13 -# 1127| m1127_42(unknown) = ^CallSideEffect : ~m1127_36 -# 1127| m1127_43(unknown) = Chi : total:m1127_36, partial:m1127_42 -#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_13, m1127_23 -# 1127| r1127_44(int) = Load[?] : &:r1127_41, ~m1127_43 -# 1127| m1127_45(int) = Store[e] : &:r1127_38, r1127_44 +# 1127| r1127_34(glval<int>) = VariableAddress[e] : +# 1127| r1127_35(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_35 +# 1127| r1127_36(glval<unknown>) = FunctionAddress[operator*] : +# 1127| r1127_37(int &) = Call[operator*] : func:r1127_36, this:r0_13 +# 1127| m1127_38(unknown) = ^CallSideEffect : ~m1127_32 +# 1127| m1127_39(unknown) = Chi : total:m1127_32, partial:m1127_38 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_13, m1127_19 +# 1127| r1127_40(int) = Load[?] : &:r1127_37, ~m1127_39 +# 1127| m1127_41(int) = Store[e] : &:r1127_34, r1127_40 # 1128| r1128_1(glval<int>) = VariableAddress[e] : -# 1128| r1128_2(int) = Load[e] : &:r1128_1, m1127_45 +# 1128| r1128_2(int) = Load[e] : &:r1128_1, m1127_41 # 1128| r1128_3(int) = Constant[0] : # 1128| r1128_4(bool) = CompareGT : r1128_2, r1128_3 # 1128| v1128_5(void) = ConditionalBranch : r1128_4 @@ -7357,16 +7353,16 @@ ir.cpp: #-----| Goto -> Block 4 # 1127| Block 4 -# 1127| v1127_46(void) = NoOp : -# 1127| r1127_47(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -# 1127| r1127_48(glval<unknown>) = FunctionAddress[operator++] : -# 1127| r1127_49(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1127_48, this:r1127_47 -# 1127| m1127_50(unknown) = ^CallSideEffect : ~m1127_43 -# 1127| m1127_51(unknown) = Chi : total:m1127_43, partial:m1127_50 -# 1127| v1127_52(void) = ^IndirectReadSideEffect[-1] : &:r1127_47, m1127_23 -# 1127| m1127_53(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1127_47 -# 1127| m1127_54(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m1127_23, partial:m1127_53 -# 1127| r1127_55(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1127_49 +# 1127| v1127_42(void) = NoOp : +# 1127| r1127_43(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1127| r1127_44(glval<unknown>) = FunctionAddress[operator++] : +# 1127| r1127_45(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1127_44, this:r1127_43 +# 1127| m1127_46(unknown) = ^CallSideEffect : ~m1127_39 +# 1127| m1127_47(unknown) = Chi : total:m1127_39, partial:m1127_46 +# 1127| v1127_48(void) = ^IndirectReadSideEffect[-1] : &:r1127_43, m1127_19 +# 1127| m1127_49(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1127_43 +# 1127| m1127_50(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m1127_19, partial:m1127_49 +# 1127| r1127_51(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1127_45 #-----| Goto (back edge) -> Block 1 # 1133| Block 5 @@ -7382,77 +7378,73 @@ ir.cpp: #-----| r0_15(glval<vector<int>>) = CopyValue : r1133_9 # 1133| r1133_10(glval<unknown>) = FunctionAddress[begin] : # 1133| r1133_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r1133_10, this:r0_15 -# 1133| m1133_12(unknown) = ^CallSideEffect : ~m1127_36 -# 1133| m1133_13(unknown) = Chi : total:m1127_36, partial:m1133_12 #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m1126_8 -# 1133| m1133_14(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1133_7, r1133_11 -# 1133| r1133_15(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -# 1133| r1133_16(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1133| r1133_17(vector<int> &) = Load[(__range)] : &:r1133_16, m1133_6 -#-----| r0_17(glval<vector<int>>) = CopyValue : r1133_17 -# 1133| r1133_18(glval<unknown>) = FunctionAddress[end] : -# 1133| r1133_19(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1133_18, this:r0_17 -# 1133| m1133_20(unknown) = ^CallSideEffect : ~m1133_13 -# 1133| m1133_21(unknown) = Chi : total:m1133_13, partial:m1133_20 +# 1133| m1133_12(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1133_7, r1133_11 +# 1133| r1133_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 1133| r1133_14(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1133| r1133_15(vector<int> &) = Load[(__range)] : &:r1133_14, m1133_6 +#-----| r0_17(glval<vector<int>>) = CopyValue : r1133_15 +# 1133| r1133_16(glval<unknown>) = FunctionAddress[end] : +# 1133| r1133_17(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1133_16, this:r0_17 #-----| v0_18(void) = ^IndirectReadSideEffect[-1] : &:r0_17, ~m1126_8 -# 1133| m1133_22(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1133_15, r1133_19 +# 1133| m1133_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1133_13, r1133_17 #-----| Goto -> Block 6 # 1133| Block 6 -# 1133| m1133_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 5:m1133_14, from 7:m1133_45 -# 1133| m1133_24(unknown) = Phi : from 5:~m1133_21, from 7:~m1133_42 -# 1133| r1133_25(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_25 -# 1133| r1133_26(glval<unknown>) = FunctionAddress[operator!=] : +# 1133| m1133_19(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 5:m1133_12, from 7:m1133_41 +# 1133| m1133_20(unknown) = Phi : from 5:~m1127_32, from 7:~m1133_38 +# 1133| r1133_21(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_21 +# 1133| r1133_22(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_20(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : #-----| m0_21(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_20 -# 1133| r1133_27(glval<unknown>) = FunctionAddress[iterator] : -# 1133| r1133_28(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -#-----| r0_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_28 +# 1133| r1133_23(glval<unknown>) = FunctionAddress[iterator] : +# 1133| r1133_24(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_24 #-----| r0_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_22 -# 1133| v1133_29(void) = Call[iterator] : func:r1133_27, this:r0_20, 0:r0_23 -# 1133| m1133_30(unknown) = ^CallSideEffect : ~m1133_24 -# 1133| m1133_31(unknown) = Chi : total:m1133_24, partial:m1133_30 -#-----| v0_24(void) = ^BufferReadSideEffect[0] : &:r0_23, ~m1133_22 -# 1133| m1133_32(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_20 -# 1133| m1133_33(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_21, partial:m1133_32 -#-----| r0_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_20, m1133_33 -# 1133| r1133_34(bool) = Call[operator!=] : func:r1133_26, this:r0_19, 0:r0_25 -# 1133| m1133_35(unknown) = ^CallSideEffect : ~m1133_31 -# 1133| m1133_36(unknown) = Chi : total:m1133_31, partial:m1133_35 -#-----| v0_26(void) = ^IndirectReadSideEffect[-1] : &:r0_19, m1133_23 -# 1133| v1133_37(void) = ConditionalBranch : r1133_34 +# 1133| v1133_25(void) = Call[iterator] : func:r1133_23, this:r0_20, 0:r0_23 +# 1133| m1133_26(unknown) = ^CallSideEffect : ~m1133_20 +# 1133| m1133_27(unknown) = Chi : total:m1133_20, partial:m1133_26 +#-----| v0_24(void) = ^BufferReadSideEffect[0] : &:r0_23, ~m1133_18 +# 1133| m1133_28(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_20 +# 1133| m1133_29(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_21, partial:m1133_28 +#-----| r0_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_20, m1133_29 +# 1133| r1133_30(bool) = Call[operator!=] : func:r1133_22, this:r0_19, 0:r0_25 +# 1133| m1133_31(unknown) = ^CallSideEffect : ~m1133_27 +# 1133| m1133_32(unknown) = Chi : total:m1133_27, partial:m1133_31 +#-----| v0_26(void) = ^IndirectReadSideEffect[-1] : &:r0_19, m1133_19 +# 1133| v1133_33(void) = ConditionalBranch : r1133_30 #-----| False -> Block 10 #-----| True -> Block 8 # 1133| Block 7 -# 1133| r1133_38(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -# 1133| r1133_39(glval<unknown>) = FunctionAddress[operator++] : -# 1133| r1133_40(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1133_39, this:r1133_38 -# 1133| m1133_41(unknown) = ^CallSideEffect : ~m1133_52 -# 1133| m1133_42(unknown) = Chi : total:m1133_52, partial:m1133_41 -# 1133| v1133_43(void) = ^IndirectReadSideEffect[-1] : &:r1133_38, m1133_23 -# 1133| m1133_44(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1133_38 -# 1133| m1133_45(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m1133_23, partial:m1133_44 -# 1133| r1133_46(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1133_40 +# 1133| r1133_34(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1133| r1133_35(glval<unknown>) = FunctionAddress[operator++] : +# 1133| r1133_36(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1133_35, this:r1133_34 +# 1133| m1133_37(unknown) = ^CallSideEffect : ~m1133_48 +# 1133| m1133_38(unknown) = Chi : total:m1133_48, partial:m1133_37 +# 1133| v1133_39(void) = ^IndirectReadSideEffect[-1] : &:r1133_34, m1133_19 +# 1133| m1133_40(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1133_34 +# 1133| m1133_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m1133_19, partial:m1133_40 +# 1133| r1133_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1133_36 #-----| Goto (back edge) -> Block 6 # 1133| Block 8 -# 1133| r1133_47(glval<int &>) = VariableAddress[e] : -# 1133| r1133_48(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_27(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_48 -# 1133| r1133_49(glval<unknown>) = FunctionAddress[operator*] : -# 1133| r1133_50(int &) = Call[operator*] : func:r1133_49, this:r0_27 -# 1133| m1133_51(unknown) = ^CallSideEffect : ~m1133_36 -# 1133| m1133_52(unknown) = Chi : total:m1133_36, partial:m1133_51 -#-----| v0_28(void) = ^IndirectReadSideEffect[-1] : &:r0_27, m1133_23 -# 1133| r1133_53(glval<int>) = CopyValue : r1133_50 -# 1133| r1133_54(glval<int>) = Convert : r1133_53 -# 1133| r1133_55(int &) = CopyValue : r1133_54 -# 1133| m1133_56(int &) = Store[e] : &:r1133_47, r1133_55 +# 1133| r1133_43(glval<int &>) = VariableAddress[e] : +# 1133| r1133_44(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_27(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_44 +# 1133| r1133_45(glval<unknown>) = FunctionAddress[operator*] : +# 1133| r1133_46(int &) = Call[operator*] : func:r1133_45, this:r0_27 +# 1133| m1133_47(unknown) = ^CallSideEffect : ~m1133_32 +# 1133| m1133_48(unknown) = Chi : total:m1133_32, partial:m1133_47 +#-----| v0_28(void) = ^IndirectReadSideEffect[-1] : &:r0_27, m1133_19 +# 1133| r1133_49(glval<int>) = CopyValue : r1133_46 +# 1133| r1133_50(glval<int>) = Convert : r1133_49 +# 1133| r1133_51(int &) = CopyValue : r1133_50 +# 1133| m1133_52(int &) = Store[e] : &:r1133_43, r1133_51 # 1134| r1134_1(glval<int &>) = VariableAddress[e] : -# 1134| r1134_2(int &) = Load[e] : &:r1134_1, m1133_56 -# 1134| r1134_3(int) = Load[?] : &:r1134_2, ~m1133_52 +# 1134| r1134_2(int &) = Load[e] : &:r1134_1, m1133_52 +# 1134| r1134_3(int) = Load[?] : &:r1134_2, ~m1133_48 # 1134| r1134_4(int) = Constant[5] : # 1134| r1134_5(bool) = CompareLT : r1134_3, r1134_4 # 1134| v1134_6(void) = ConditionalBranch : r1134_5 @@ -7464,7 +7456,7 @@ ir.cpp: #-----| Goto -> Block 10 # 1137| Block 10 -# 1137| m1137_1(unknown) = Phi : from 6:~m1133_36, from 9:~m1133_52 +# 1137| m1137_1(unknown) = Phi : from 6:~m1133_32, from 9:~m1133_48 # 1137| v1137_2(void) = NoOp : # 1138| v1138_1(void) = NoOp : # 1126| v1126_9(void) = ReturnIndirection[v] : &:r1126_7, m1126_8 @@ -13420,87 +13412,83 @@ ir.cpp: #-----| r0_2(glval<vector<ClassWithDestructor>>) = Convert : r0_1 # 2201| r2201_21(glval<unknown>) = FunctionAddress[begin] : # 2201| r2201_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2201_21, this:r0_2 -# 2201| m2201_23(unknown) = ^CallSideEffect : ~m2201_11 -# 2201| m2201_24(unknown) = Chi : total:m2201_11, partial:m2201_23 #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2201_13 -# 2201| m2201_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2201_18, r2201_22 -# 2201| r2201_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -# 2201| r2201_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2201| r2201_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2201_27, m2201_17 -#-----| r0_4(glval<vector<ClassWithDestructor>>) = CopyValue : r2201_28 +# 2201| m2201_23(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2201_18, r2201_22 +# 2201| r2201_24(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2201| r2201_25(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2201| r2201_26(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2201_25, m2201_17 +#-----| r0_4(glval<vector<ClassWithDestructor>>) = CopyValue : r2201_26 #-----| r0_5(glval<vector<ClassWithDestructor>>) = Convert : r0_4 -# 2201| r2201_29(glval<unknown>) = FunctionAddress[end] : -# 2201| r2201_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2201_29, this:r0_5 -# 2201| m2201_31(unknown) = ^CallSideEffect : ~m2201_24 -# 2201| m2201_32(unknown) = Chi : total:m2201_24, partial:m2201_31 +# 2201| r2201_27(glval<unknown>) = FunctionAddress[end] : +# 2201| r2201_28(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2201_27, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2201_13 -# 2201| m2201_33(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2201_26, r2201_30 +# 2201| m2201_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2201_24, r2201_28 #-----| Goto -> Block 8 # 2201| Block 8 -# 2201| m2201_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 7:m2201_25, from 9:m2201_72 -# 2201| m2201_35(unknown) = Phi : from 7:~m2201_32, from 9:~m2201_69 -# 2201| r2201_36(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_36 -# 2201| r2201_37(glval<unknown>) = FunctionAddress[operator!=] : +# 2201| m2201_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 7:m2201_23, from 9:m2201_68 +# 2201| m2201_31(unknown) = Phi : from 7:~m2201_11, from 9:~m2201_65 +# 2201| r2201_32(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_32 +# 2201| r2201_33(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_8(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : #-----| m0_9(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_8 -# 2201| r2201_38(glval<unknown>) = FunctionAddress[iterator] : -# 2201| r2201_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -#-----| r0_10(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_39 +# 2201| r2201_34(glval<unknown>) = FunctionAddress[iterator] : +# 2201| r2201_35(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_35 #-----| r0_11(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_10 -# 2201| v2201_40(void) = Call[iterator] : func:r2201_38, this:r0_8, 0:r0_11 -# 2201| m2201_41(unknown) = ^CallSideEffect : ~m2201_35 -# 2201| m2201_42(unknown) = Chi : total:m2201_35, partial:m2201_41 -#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m2201_33 -# 2201| m2201_43(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 -# 2201| m2201_44(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_9, partial:m2201_43 -#-----| r0_13(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_8, m2201_44 -# 2201| r2201_45(bool) = Call[operator!=] : func:r2201_37, this:r0_7, 0:r0_13 -# 2201| m2201_46(unknown) = ^CallSideEffect : ~m2201_42 -# 2201| m2201_47(unknown) = Chi : total:m2201_42, partial:m2201_46 -#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2201_34 -# 2201| v2201_48(void) = ConditionalBranch : r2201_45 +# 2201| v2201_36(void) = Call[iterator] : func:r2201_34, this:r0_8, 0:r0_11 +# 2201| m2201_37(unknown) = ^CallSideEffect : ~m2201_31 +# 2201| m2201_38(unknown) = Chi : total:m2201_31, partial:m2201_37 +#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m2201_29 +# 2201| m2201_39(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2201| m2201_40(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_9, partial:m2201_39 +#-----| r0_13(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_8, m2201_40 +# 2201| r2201_41(bool) = Call[operator!=] : func:r2201_33, this:r0_7, 0:r0_13 +# 2201| m2201_42(unknown) = ^CallSideEffect : ~m2201_38 +# 2201| m2201_43(unknown) = Chi : total:m2201_38, partial:m2201_42 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2201_30 +# 2201| v2201_44(void) = ConditionalBranch : r2201_41 #-----| False -> Block 10 #-----| True -> Block 9 # 2201| Block 9 -# 2201| r2201_49(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2201| r2201_50(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_15(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_50 -# 2201| r2201_51(glval<unknown>) = FunctionAddress[operator*] : -# 2201| r2201_52(ClassWithDestructor &) = Call[operator*] : func:r2201_51, this:r0_15 -# 2201| m2201_53(unknown) = ^CallSideEffect : ~m2201_47 -# 2201| m2201_54(unknown) = Chi : total:m2201_47, partial:m2201_53 -#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m2201_34 -# 2201| r2201_55(ClassWithDestructor) = Load[?] : &:r2201_52, ~m2201_54 -# 2201| m2201_56(ClassWithDestructor) = Store[y] : &:r2201_49, r2201_55 +# 2201| r2201_45(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2201| r2201_46(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_46 +# 2201| r2201_47(glval<unknown>) = FunctionAddress[operator*] : +# 2201| r2201_48(ClassWithDestructor &) = Call[operator*] : func:r2201_47, this:r0_15 +# 2201| m2201_49(unknown) = ^CallSideEffect : ~m2201_43 +# 2201| m2201_50(unknown) = Chi : total:m2201_43, partial:m2201_49 +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m2201_30 +# 2201| r2201_51(ClassWithDestructor) = Load[?] : &:r2201_48, ~m2201_50 +# 2201| m2201_52(ClassWithDestructor) = Store[y] : &:r2201_45, r2201_51 # 2202| r2202_1(glval<ClassWithDestructor>) = VariableAddress[y] : # 2202| r2202_2(glval<unknown>) = FunctionAddress[set_x] : # 2202| r2202_3(char) = Constant[97] : # 2202| v2202_4(void) = Call[set_x] : func:r2202_2, this:r2202_1, 0:r2202_3 -# 2202| m2202_5(unknown) = ^CallSideEffect : ~m2201_54 -# 2202| m2202_6(unknown) = Chi : total:m2201_54, partial:m2202_5 -# 2202| v2202_7(void) = ^IndirectReadSideEffect[-1] : &:r2202_1, m2201_56 +# 2202| m2202_5(unknown) = ^CallSideEffect : ~m2201_50 +# 2202| m2202_6(unknown) = Chi : total:m2201_50, partial:m2202_5 +# 2202| v2202_7(void) = ^IndirectReadSideEffect[-1] : &:r2202_1, m2201_52 # 2202| m2202_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2202_1 -# 2202| m2202_9(ClassWithDestructor) = Chi : total:m2201_56, partial:m2202_8 -# 2201| r2201_57(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2201| r2201_58(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2201| v2201_59(void) = Call[~ClassWithDestructor] : func:r2201_58, this:r2201_57 -# 2201| m2201_60(unknown) = ^CallSideEffect : ~m2202_6 -# 2201| m2201_61(unknown) = Chi : total:m2202_6, partial:m2201_60 -# 2201| v2201_62(void) = ^IndirectReadSideEffect[-1] : &:r2201_57, m2202_9 -# 2201| m2201_63(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_57 -# 2201| m2201_64(ClassWithDestructor) = Chi : total:m2202_9, partial:m2201_63 -# 2201| r2201_65(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -# 2201| r2201_66(glval<unknown>) = FunctionAddress[operator++] : -# 2201| r2201_67(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2201_66, this:r2201_65 -# 2201| m2201_68(unknown) = ^CallSideEffect : ~m2201_61 -# 2201| m2201_69(unknown) = Chi : total:m2201_61, partial:m2201_68 -# 2201| v2201_70(void) = ^IndirectReadSideEffect[-1] : &:r2201_65, m2201_34 -# 2201| m2201_71(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_65 -# 2201| m2201_72(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2201_34, partial:m2201_71 -# 2201| r2201_73(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2201_67 +# 2202| m2202_9(ClassWithDestructor) = Chi : total:m2201_52, partial:m2202_8 +# 2201| r2201_53(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2201| r2201_54(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2201| v2201_55(void) = Call[~ClassWithDestructor] : func:r2201_54, this:r2201_53 +# 2201| m2201_56(unknown) = ^CallSideEffect : ~m2202_6 +# 2201| m2201_57(unknown) = Chi : total:m2202_6, partial:m2201_56 +# 2201| v2201_58(void) = ^IndirectReadSideEffect[-1] : &:r2201_53, m2202_9 +# 2201| m2201_59(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_53 +# 2201| m2201_60(ClassWithDestructor) = Chi : total:m2202_9, partial:m2201_59 +# 2201| r2201_61(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2201| r2201_62(glval<unknown>) = FunctionAddress[operator++] : +# 2201| r2201_63(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2201_62, this:r2201_61 +# 2201| m2201_64(unknown) = ^CallSideEffect : ~m2201_57 +# 2201| m2201_65(unknown) = Chi : total:m2201_57, partial:m2201_64 +# 2201| v2201_66(void) = ^IndirectReadSideEffect[-1] : &:r2201_61, m2201_30 +# 2201| m2201_67(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_61 +# 2201| m2201_68(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2201_30, partial:m2201_67 +# 2201| r2201_69(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2201_63 #-----| Goto (back edge) -> Block 8 # 2204| Block 10 @@ -13513,8 +13501,8 @@ ir.cpp: # 2204| m2204_7(ClassWithDestructor) = Store[#temp2204:45] : &:r2204_4, r2204_6 # 2204| r2204_8(ClassWithDestructor) = Load[#temp2204:45] : &:r2204_4, m2204_7 # 2204| v2204_9(void) = Call[vector] : func:r2204_3, this:r2204_1, 0:r2204_8 -# 2204| m2204_10(unknown) = ^CallSideEffect : ~m2201_47 -# 2204| m2204_11(unknown) = Chi : total:m2201_47, partial:m2204_10 +# 2204| m2204_10(unknown) = ^CallSideEffect : ~m2201_43 +# 2204| m2204_11(unknown) = Chi : total:m2201_43, partial:m2204_10 # 2204| m2204_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_1 # 2204| m2204_13(vector<ClassWithDestructor>) = Chi : total:m2204_2, partial:m2204_12 # 2204| r2204_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : @@ -13528,70 +13516,66 @@ ir.cpp: #-----| r0_18(glval<vector<ClassWithDestructor>>) = Convert : r0_17 # 2204| r2204_21(glval<unknown>) = FunctionAddress[begin] : # 2204| r2204_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2204_21, this:r0_18 -# 2204| m2204_23(unknown) = ^CallSideEffect : ~m2204_11 -# 2204| m2204_24(unknown) = Chi : total:m2204_11, partial:m2204_23 #-----| v0_19(void) = ^IndirectReadSideEffect[-1] : &:r0_18, m2204_13 -# 2204| m2204_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2204_18, r2204_22 -# 2204| r2204_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -# 2204| r2204_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2204| r2204_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2204_27, m2204_17 -#-----| r0_20(glval<vector<ClassWithDestructor>>) = CopyValue : r2204_28 +# 2204| m2204_23(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2204_18, r2204_22 +# 2204| r2204_24(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2204| r2204_25(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2204| r2204_26(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2204_25, m2204_17 +#-----| r0_20(glval<vector<ClassWithDestructor>>) = CopyValue : r2204_26 #-----| r0_21(glval<vector<ClassWithDestructor>>) = Convert : r0_20 -# 2204| r2204_29(glval<unknown>) = FunctionAddress[end] : -# 2204| r2204_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2204_29, this:r0_21 -# 2204| m2204_31(unknown) = ^CallSideEffect : ~m2204_24 -# 2204| m2204_32(unknown) = Chi : total:m2204_24, partial:m2204_31 +# 2204| r2204_27(glval<unknown>) = FunctionAddress[end] : +# 2204| r2204_28(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2204_27, this:r0_21 #-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_21, m2204_13 -# 2204| m2204_33(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2204_26, r2204_30 +# 2204| m2204_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2204_24, r2204_28 #-----| Goto -> Block 11 # 2204| Block 11 -# 2204| m2204_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 10:m2204_25, from 14:m2204_88 -# 2204| m2204_35(unknown) = Phi : from 10:~m2204_32, from 14:~m2204_85 -# 2204| r2204_36(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_36 -# 2204| r2204_37(glval<unknown>) = FunctionAddress[operator!=] : +# 2204| m2204_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 10:m2204_23, from 14:m2204_84 +# 2204| m2204_31(unknown) = Phi : from 10:~m2204_11, from 14:~m2204_81 +# 2204| r2204_32(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_32 +# 2204| r2204_33(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_24(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : #-----| m0_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_24 -# 2204| r2204_38(glval<unknown>) = FunctionAddress[iterator] : -# 2204| r2204_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -#-----| r0_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_39 +# 2204| r2204_34(glval<unknown>) = FunctionAddress[iterator] : +# 2204| r2204_35(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_35 #-----| r0_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_26 -# 2204| v2204_40(void) = Call[iterator] : func:r2204_38, this:r0_24, 0:r0_27 -# 2204| m2204_41(unknown) = ^CallSideEffect : ~m2204_35 -# 2204| m2204_42(unknown) = Chi : total:m2204_35, partial:m2204_41 -#-----| v0_28(void) = ^BufferReadSideEffect[0] : &:r0_27, ~m2204_33 -# 2204| m2204_43(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 -# 2204| m2204_44(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_25, partial:m2204_43 -#-----| r0_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_24, m2204_44 -# 2204| r2204_45(bool) = Call[operator!=] : func:r2204_37, this:r0_23, 0:r0_29 -# 2204| m2204_46(unknown) = ^CallSideEffect : ~m2204_42 -# 2204| m2204_47(unknown) = Chi : total:m2204_42, partial:m2204_46 -#-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_23, m2204_34 -# 2204| v2204_48(void) = ConditionalBranch : r2204_45 +# 2204| v2204_36(void) = Call[iterator] : func:r2204_34, this:r0_24, 0:r0_27 +# 2204| m2204_37(unknown) = ^CallSideEffect : ~m2204_31 +# 2204| m2204_38(unknown) = Chi : total:m2204_31, partial:m2204_37 +#-----| v0_28(void) = ^BufferReadSideEffect[0] : &:r0_27, ~m2204_29 +# 2204| m2204_39(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 +# 2204| m2204_40(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_25, partial:m2204_39 +#-----| r0_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_24, m2204_40 +# 2204| r2204_41(bool) = Call[operator!=] : func:r2204_33, this:r0_23, 0:r0_29 +# 2204| m2204_42(unknown) = ^CallSideEffect : ~m2204_38 +# 2204| m2204_43(unknown) = Chi : total:m2204_38, partial:m2204_42 +#-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_23, m2204_30 +# 2204| v2204_44(void) = ConditionalBranch : r2204_41 #-----| False -> Block 15 #-----| True -> Block 12 # 2204| Block 12 -# 2204| r2204_49(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2204| r2204_50(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_50 -# 2204| r2204_51(glval<unknown>) = FunctionAddress[operator*] : -# 2204| r2204_52(ClassWithDestructor &) = Call[operator*] : func:r2204_51, this:r0_31 -# 2204| m2204_53(unknown) = ^CallSideEffect : ~m2204_47 -# 2204| m2204_54(unknown) = Chi : total:m2204_47, partial:m2204_53 -#-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_31, m2204_34 -# 2204| r2204_55(ClassWithDestructor) = Load[?] : &:r2204_52, ~m2204_54 -# 2204| m2204_56(ClassWithDestructor) = Store[y] : &:r2204_49, r2204_55 +# 2204| r2204_45(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_46(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_46 +# 2204| r2204_47(glval<unknown>) = FunctionAddress[operator*] : +# 2204| r2204_48(ClassWithDestructor &) = Call[operator*] : func:r2204_47, this:r0_31 +# 2204| m2204_49(unknown) = ^CallSideEffect : ~m2204_43 +# 2204| m2204_50(unknown) = Chi : total:m2204_43, partial:m2204_49 +#-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_31, m2204_30 +# 2204| r2204_51(ClassWithDestructor) = Load[?] : &:r2204_48, ~m2204_50 +# 2204| m2204_52(ClassWithDestructor) = Store[y] : &:r2204_45, r2204_51 # 2205| r2205_1(glval<ClassWithDestructor>) = VariableAddress[y] : # 2205| r2205_2(glval<unknown>) = FunctionAddress[set_x] : # 2205| r2205_3(char) = Constant[97] : # 2205| v2205_4(void) = Call[set_x] : func:r2205_2, this:r2205_1, 0:r2205_3 -# 2205| m2205_5(unknown) = ^CallSideEffect : ~m2204_54 -# 2205| m2205_6(unknown) = Chi : total:m2204_54, partial:m2205_5 -# 2205| v2205_7(void) = ^IndirectReadSideEffect[-1] : &:r2205_1, m2204_56 +# 2205| m2205_5(unknown) = ^CallSideEffect : ~m2204_50 +# 2205| m2205_6(unknown) = Chi : total:m2204_50, partial:m2205_5 +# 2205| v2205_7(void) = ^IndirectReadSideEffect[-1] : &:r2205_1, m2204_52 # 2205| m2205_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2205_1 -# 2205| m2205_9(ClassWithDestructor) = Chi : total:m2204_56, partial:m2205_8 +# 2205| m2205_9(ClassWithDestructor) = Chi : total:m2204_52, partial:m2205_8 # 2206| r2206_1(glval<ClassWithDestructor>) = VariableAddress[y] : # 2206| r2206_2(glval<unknown>) = FunctionAddress[get_x] : # 2206| r2206_3(char) = Call[get_x] : func:r2206_2, this:r2206_1 @@ -13609,50 +13593,50 @@ ir.cpp: # 2207| Block 13 # 2207| v2207_1(void) = NoOp : -# 2204| r2204_57(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2204| r2204_58(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2204| v2204_59(void) = Call[~ClassWithDestructor] : func:r2204_58, this:r2204_57 -# 2204| m2204_60(unknown) = ^CallSideEffect : ~m2206_5 -# 2204| m2204_61(unknown) = Chi : total:m2206_5, partial:m2204_60 -# 2204| v2204_62(void) = ^IndirectReadSideEffect[-1] : &:r2204_57, m2206_8 -# 2204| m2204_63(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_57 -# 2204| m2204_64(ClassWithDestructor) = Chi : total:m2206_8, partial:m2204_63 -# 2204| r2204_65(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2204| r2204_66(glval<unknown>) = FunctionAddress[~vector] : -# 2204| v2204_67(void) = Call[~vector] : func:r2204_66, this:r2204_65 -# 2204| m2204_68(unknown) = ^CallSideEffect : ~m2204_61 -# 2204| m2204_69(unknown) = Chi : total:m2204_61, partial:m2204_68 -# 2204| v2204_70(void) = ^IndirectReadSideEffect[-1] : &:r2204_65, m2204_13 -# 2204| m2204_71(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_65 -# 2204| m2204_72(vector<ClassWithDestructor>) = Chi : total:m2204_13, partial:m2204_71 +# 2204| r2204_53(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_54(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2204| v2204_55(void) = Call[~ClassWithDestructor] : func:r2204_54, this:r2204_53 +# 2204| m2204_56(unknown) = ^CallSideEffect : ~m2206_5 +# 2204| m2204_57(unknown) = Chi : total:m2206_5, partial:m2204_56 +# 2204| v2204_58(void) = ^IndirectReadSideEffect[-1] : &:r2204_53, m2206_8 +# 2204| m2204_59(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_53 +# 2204| m2204_60(ClassWithDestructor) = Chi : total:m2206_8, partial:m2204_59 +# 2204| r2204_61(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| r2204_62(glval<unknown>) = FunctionAddress[~vector] : +# 2204| v2204_63(void) = Call[~vector] : func:r2204_62, this:r2204_61 +# 2204| m2204_64(unknown) = ^CallSideEffect : ~m2204_57 +# 2204| m2204_65(unknown) = Chi : total:m2204_57, partial:m2204_64 +# 2204| v2204_66(void) = ^IndirectReadSideEffect[-1] : &:r2204_61, m2204_13 +# 2204| m2204_67(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_61 +# 2204| m2204_68(vector<ClassWithDestructor>) = Chi : total:m2204_13, partial:m2204_67 # 2219| r2219_1(glval<ClassWithDestructor>) = VariableAddress[x] : # 2219| r2219_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : # 2219| v2219_3(void) = Call[~ClassWithDestructor] : func:r2219_2, this:r2219_1 -# 2219| m2219_4(unknown) = ^CallSideEffect : ~m2204_69 -# 2219| m2219_5(unknown) = Chi : total:m2204_69, partial:m2219_4 +# 2219| m2219_4(unknown) = ^CallSideEffect : ~m2204_65 +# 2219| m2219_5(unknown) = Chi : total:m2204_65, partial:m2219_4 # 2219| v2219_6(void) = ^IndirectReadSideEffect[-1] : &:r2219_1, m2200_8 # 2219| m2219_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 # 2219| m2219_8(ClassWithDestructor) = Chi : total:m2200_8, partial:m2219_7 #-----| Goto -> Block 1 # 2204| Block 14 -# 2204| r2204_73(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2204| r2204_74(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2204| v2204_75(void) = Call[~ClassWithDestructor] : func:r2204_74, this:r2204_73 -# 2204| m2204_76(unknown) = ^CallSideEffect : ~m2206_5 -# 2204| m2204_77(unknown) = Chi : total:m2206_5, partial:m2204_76 -# 2204| v2204_78(void) = ^IndirectReadSideEffect[-1] : &:r2204_73, m2206_8 -# 2204| m2204_79(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_73 -# 2204| m2204_80(ClassWithDestructor) = Chi : total:m2206_8, partial:m2204_79 -# 2204| r2204_81(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -# 2204| r2204_82(glval<unknown>) = FunctionAddress[operator++] : -# 2204| r2204_83(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2204_82, this:r2204_81 -# 2204| m2204_84(unknown) = ^CallSideEffect : ~m2204_77 -# 2204| m2204_85(unknown) = Chi : total:m2204_77, partial:m2204_84 -# 2204| v2204_86(void) = ^IndirectReadSideEffect[-1] : &:r2204_81, m2204_34 -# 2204| m2204_87(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_81 -# 2204| m2204_88(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2204_34, partial:m2204_87 -# 2204| r2204_89(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2204_83 +# 2204| r2204_69(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_70(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2204| v2204_71(void) = Call[~ClassWithDestructor] : func:r2204_70, this:r2204_69 +# 2204| m2204_72(unknown) = ^CallSideEffect : ~m2206_5 +# 2204| m2204_73(unknown) = Chi : total:m2206_5, partial:m2204_72 +# 2204| v2204_74(void) = ^IndirectReadSideEffect[-1] : &:r2204_69, m2206_8 +# 2204| m2204_75(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_69 +# 2204| m2204_76(ClassWithDestructor) = Chi : total:m2206_8, partial:m2204_75 +# 2204| r2204_77(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2204| r2204_78(glval<unknown>) = FunctionAddress[operator++] : +# 2204| r2204_79(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2204_78, this:r2204_77 +# 2204| m2204_80(unknown) = ^CallSideEffect : ~m2204_73 +# 2204| m2204_81(unknown) = Chi : total:m2204_73, partial:m2204_80 +# 2204| v2204_82(void) = ^IndirectReadSideEffect[-1] : &:r2204_77, m2204_30 +# 2204| m2204_83(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_77 +# 2204| m2204_84(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2204_30, partial:m2204_83 +# 2204| r2204_85(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2204_79 #-----| Goto (back edge) -> Block 11 # 2210| Block 15 @@ -13661,8 +13645,8 @@ ir.cpp: # 2210| r2210_3(glval<unknown>) = FunctionAddress[vector] : # 2210| r2210_4(int) = Constant[1] : # 2210| v2210_5(void) = Call[vector] : func:r2210_3, this:r2210_1, 0:r2210_4 -# 2210| m2210_6(unknown) = ^CallSideEffect : ~m2204_47 -# 2210| m2210_7(unknown) = Chi : total:m2204_47, partial:m2210_6 +# 2210| m2210_6(unknown) = ^CallSideEffect : ~m2204_43 +# 2210| m2210_7(unknown) = Chi : total:m2204_43, partial:m2210_6 # 2210| m2210_8(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_1 # 2210| m2210_9(vector<int>) = Chi : total:m2210_2, partial:m2210_8 # 2210| r2210_10(glval<vector<int> &>) = VariableAddress[(__range)] : @@ -13676,75 +13660,71 @@ ir.cpp: #-----| r0_34(glval<vector<int>>) = Convert : r0_33 # 2210| r2210_17(glval<unknown>) = FunctionAddress[begin] : # 2210| r2210_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r2210_17, this:r0_34 -# 2210| m2210_19(unknown) = ^CallSideEffect : ~m2210_7 -# 2210| m2210_20(unknown) = Chi : total:m2210_7, partial:m2210_19 #-----| v0_35(void) = ^IndirectReadSideEffect[-1] : &:r0_34, m2210_9 -# 2210| m2210_21(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r2210_14, r2210_18 -# 2210| r2210_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -# 2210| r2210_23(glval<vector<int> &>) = VariableAddress[(__range)] : -# 2210| r2210_24(vector<int> &) = Load[(__range)] : &:r2210_23, m2210_13 -#-----| r0_36(glval<vector<int>>) = CopyValue : r2210_24 +# 2210| m2210_19(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r2210_14, r2210_18 +# 2210| r2210_20(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 2210| r2210_21(glval<vector<int> &>) = VariableAddress[(__range)] : +# 2210| r2210_22(vector<int> &) = Load[(__range)] : &:r2210_21, m2210_13 +#-----| r0_36(glval<vector<int>>) = CopyValue : r2210_22 #-----| r0_37(glval<vector<int>>) = Convert : r0_36 -# 2210| r2210_25(glval<unknown>) = FunctionAddress[end] : -# 2210| r2210_26(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r2210_25, this:r0_37 -# 2210| m2210_27(unknown) = ^CallSideEffect : ~m2210_20 -# 2210| m2210_28(unknown) = Chi : total:m2210_20, partial:m2210_27 +# 2210| r2210_23(glval<unknown>) = FunctionAddress[end] : +# 2210| r2210_24(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r2210_23, this:r0_37 #-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, m2210_9 -# 2210| m2210_29(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r2210_22, r2210_26 +# 2210| m2210_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r2210_20, r2210_24 #-----| Goto -> Block 16 # 2210| Block 16 -# 2210| m2210_30(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 15:m2210_21, from 17:m2210_52 -# 2210| m2210_31(unknown) = Phi : from 15:~m2210_28, from 17:~m2210_49 -# 2210| r2210_32(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_32 -# 2210| r2210_33(glval<unknown>) = FunctionAddress[operator!=] : +# 2210| m2210_26(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Phi : from 15:m2210_19, from 17:m2210_48 +# 2210| m2210_27(unknown) = Phi : from 15:~m2210_7, from 17:~m2210_45 +# 2210| r2210_28(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_28 +# 2210| r2210_29(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_40(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : #-----| m0_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_40 -# 2210| r2210_34(glval<unknown>) = FunctionAddress[iterator] : -# 2210| r2210_35(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -#-----| r0_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_35 +# 2210| r2210_30(glval<unknown>) = FunctionAddress[iterator] : +# 2210| r2210_31(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_31 #-----| r0_43(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_42 -# 2210| v2210_36(void) = Call[iterator] : func:r2210_34, this:r0_40, 0:r0_43 -# 2210| m2210_37(unknown) = ^CallSideEffect : ~m2210_31 -# 2210| m2210_38(unknown) = Chi : total:m2210_31, partial:m2210_37 -#-----| v0_44(void) = ^BufferReadSideEffect[0] : &:r0_43, ~m2210_29 -# 2210| m2210_39(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 -# 2210| m2210_40(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_41, partial:m2210_39 -#-----| r0_45(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_40, m2210_40 -# 2210| r2210_41(bool) = Call[operator!=] : func:r2210_33, this:r0_39, 0:r0_45 -# 2210| m2210_42(unknown) = ^CallSideEffect : ~m2210_38 -# 2210| m2210_43(unknown) = Chi : total:m2210_38, partial:m2210_42 -#-----| v0_46(void) = ^IndirectReadSideEffect[-1] : &:r0_39, m2210_30 -# 2210| v2210_44(void) = ConditionalBranch : r2210_41 +# 2210| v2210_32(void) = Call[iterator] : func:r2210_30, this:r0_40, 0:r0_43 +# 2210| m2210_33(unknown) = ^CallSideEffect : ~m2210_27 +# 2210| m2210_34(unknown) = Chi : total:m2210_27, partial:m2210_33 +#-----| v0_44(void) = ^BufferReadSideEffect[0] : &:r0_43, ~m2210_25 +# 2210| m2210_35(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 +# 2210| m2210_36(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m0_41, partial:m2210_35 +#-----| r0_45(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_40, m2210_36 +# 2210| r2210_37(bool) = Call[operator!=] : func:r2210_29, this:r0_39, 0:r0_45 +# 2210| m2210_38(unknown) = ^CallSideEffect : ~m2210_34 +# 2210| m2210_39(unknown) = Chi : total:m2210_34, partial:m2210_38 +#-----| v0_46(void) = ^IndirectReadSideEffect[-1] : &:r0_39, m2210_26 +# 2210| v2210_40(void) = ConditionalBranch : r2210_37 #-----| False -> Block 20 #-----| True -> Block 18 # 2210| Block 17 -# 2210| r2210_45(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -# 2210| r2210_46(glval<unknown>) = FunctionAddress[operator++] : -# 2210| r2210_47(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r2210_46, this:r2210_45 -# 2210| m2210_48(unknown) = ^CallSideEffect : ~m2210_59 -# 2210| m2210_49(unknown) = Chi : total:m2210_59, partial:m2210_48 -# 2210| v2210_50(void) = ^IndirectReadSideEffect[-1] : &:r2210_45, m2210_30 -# 2210| m2210_51(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_45 -# 2210| m2210_52(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m2210_30, partial:m2210_51 -# 2210| r2210_53(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r2210_47 +# 2210| r2210_41(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 2210| r2210_42(glval<unknown>) = FunctionAddress[operator++] : +# 2210| r2210_43(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r2210_42, this:r2210_41 +# 2210| m2210_44(unknown) = ^CallSideEffect : ~m2210_55 +# 2210| m2210_45(unknown) = Chi : total:m2210_55, partial:m2210_44 +# 2210| v2210_46(void) = ^IndirectReadSideEffect[-1] : &:r2210_41, m2210_26 +# 2210| m2210_47(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_41 +# 2210| m2210_48(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Chi : total:m2210_26, partial:m2210_47 +# 2210| r2210_49(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r2210_43 #-----| Goto (back edge) -> Block 16 # 2210| Block 18 -# 2210| r2210_54(glval<int>) = VariableAddress[y] : -# 2210| r2210_55(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_47(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_55 -# 2210| r2210_56(glval<unknown>) = FunctionAddress[operator*] : -# 2210| r2210_57(int &) = Call[operator*] : func:r2210_56, this:r0_47 -# 2210| m2210_58(unknown) = ^CallSideEffect : ~m2210_43 -# 2210| m2210_59(unknown) = Chi : total:m2210_43, partial:m2210_58 -#-----| v0_48(void) = ^IndirectReadSideEffect[-1] : &:r0_47, m2210_30 -# 2210| r2210_60(int) = Load[?] : &:r2210_57, ~m2210_59 -# 2210| m2210_61(int) = Store[y] : &:r2210_54, r2210_60 +# 2210| r2210_50(glval<int>) = VariableAddress[y] : +# 2210| r2210_51(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_47(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_51 +# 2210| r2210_52(glval<unknown>) = FunctionAddress[operator*] : +# 2210| r2210_53(int &) = Call[operator*] : func:r2210_52, this:r0_47 +# 2210| m2210_54(unknown) = ^CallSideEffect : ~m2210_39 +# 2210| m2210_55(unknown) = Chi : total:m2210_39, partial:m2210_54 +#-----| v0_48(void) = ^IndirectReadSideEffect[-1] : &:r0_47, m2210_26 +# 2210| r2210_56(int) = Load[?] : &:r2210_53, ~m2210_55 +# 2210| m2210_57(int) = Store[y] : &:r2210_50, r2210_56 # 2211| r2211_1(glval<int>) = VariableAddress[y] : -# 2211| r2211_2(int) = Load[y] : &:r2211_1, m2210_61 +# 2211| r2211_2(int) = Load[y] : &:r2211_1, m2210_57 # 2211| r2211_3(int) = Constant[1] : # 2211| r2211_4(bool) = CompareEQ : r2211_2, r2211_3 # 2211| v2211_5(void) = ConditionalBranch : r2211_4 @@ -13753,19 +13733,19 @@ ir.cpp: # 2212| Block 19 # 2212| v2212_1(void) = NoOp : -# 2210| r2210_62(glval<vector<int>>) = VariableAddress[ys] : -# 2210| r2210_63(glval<unknown>) = FunctionAddress[~vector] : -# 2210| v2210_64(void) = Call[~vector] : func:r2210_63, this:r2210_62 -# 2210| m2210_65(unknown) = ^CallSideEffect : ~m2210_59 -# 2210| m2210_66(unknown) = Chi : total:m2210_59, partial:m2210_65 -# 2210| v2210_67(void) = ^IndirectReadSideEffect[-1] : &:r2210_62, m2210_9 -# 2210| m2210_68(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_62 -# 2210| m2210_69(vector<int>) = Chi : total:m2210_9, partial:m2210_68 +# 2210| r2210_58(glval<vector<int>>) = VariableAddress[ys] : +# 2210| r2210_59(glval<unknown>) = FunctionAddress[~vector] : +# 2210| v2210_60(void) = Call[~vector] : func:r2210_59, this:r2210_58 +# 2210| m2210_61(unknown) = ^CallSideEffect : ~m2210_55 +# 2210| m2210_62(unknown) = Chi : total:m2210_55, partial:m2210_61 +# 2210| v2210_63(void) = ^IndirectReadSideEffect[-1] : &:r2210_58, m2210_9 +# 2210| m2210_64(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_58 +# 2210| m2210_65(vector<int>) = Chi : total:m2210_9, partial:m2210_64 # 2219| r2219_9(glval<ClassWithDestructor>) = VariableAddress[x] : # 2219| r2219_10(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : # 2219| v2219_11(void) = Call[~ClassWithDestructor] : func:r2219_10, this:r2219_9 -# 2219| m2219_12(unknown) = ^CallSideEffect : ~m2210_66 -# 2219| m2219_13(unknown) = Chi : total:m2210_66, partial:m2219_12 +# 2219| m2219_12(unknown) = ^CallSideEffect : ~m2210_62 +# 2219| m2219_13(unknown) = Chi : total:m2210_62, partial:m2219_12 # 2219| v2219_14(void) = ^IndirectReadSideEffect[-1] : &:r2219_9, m2200_8 # 2219| m2219_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_9 # 2219| m2219_16(ClassWithDestructor) = Chi : total:m2200_8, partial:m2219_15 @@ -13781,8 +13761,8 @@ ir.cpp: # 2215| m2215_7(ClassWithDestructor) = Store[#temp2215:45] : &:r2215_4, r2215_6 # 2215| r2215_8(ClassWithDestructor) = Load[#temp2215:45] : &:r2215_4, m2215_7 # 2215| v2215_9(void) = Call[vector] : func:r2215_3, this:r2215_1, 0:r2215_8 -# 2215| m2215_10(unknown) = ^CallSideEffect : ~m2210_43 -# 2215| m2215_11(unknown) = Chi : total:m2210_43, partial:m2215_10 +# 2215| m2215_10(unknown) = ^CallSideEffect : ~m2210_39 +# 2215| m2215_11(unknown) = Chi : total:m2210_39, partial:m2215_10 # 2215| m2215_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 # 2215| m2215_13(vector<ClassWithDestructor>) = Chi : total:m2215_2, partial:m2215_12 # 2215| r2215_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : @@ -13796,67 +13776,63 @@ ir.cpp: #-----| r0_50(glval<vector<ClassWithDestructor>>) = Convert : r0_49 # 2215| r2215_21(glval<unknown>) = FunctionAddress[begin] : # 2215| r2215_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2215_21, this:r0_50 -# 2215| m2215_23(unknown) = ^CallSideEffect : ~m2215_11 -# 2215| m2215_24(unknown) = Chi : total:m2215_11, partial:m2215_23 #-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, m2215_13 -# 2215| m2215_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2215_18, r2215_22 -# 2215| r2215_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -# 2215| r2215_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2215| r2215_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2215_27, m2215_17 -#-----| r0_52(glval<vector<ClassWithDestructor>>) = CopyValue : r2215_28 +# 2215| m2215_23(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2215_18, r2215_22 +# 2215| r2215_24(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2215| r2215_25(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2215| r2215_26(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2215_25, m2215_17 +#-----| r0_52(glval<vector<ClassWithDestructor>>) = CopyValue : r2215_26 #-----| r0_53(glval<vector<ClassWithDestructor>>) = Convert : r0_52 -# 2215| r2215_29(glval<unknown>) = FunctionAddress[end] : -# 2215| r2215_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2215_29, this:r0_53 -# 2215| m2215_31(unknown) = ^CallSideEffect : ~m2215_24 -# 2215| m2215_32(unknown) = Chi : total:m2215_24, partial:m2215_31 +# 2215| r2215_27(glval<unknown>) = FunctionAddress[end] : +# 2215| r2215_28(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2215_27, this:r0_53 #-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, m2215_13 -# 2215| m2215_33(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2215_26, r2215_30 +# 2215| m2215_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2215_24, r2215_28 #-----| Goto -> Block 21 # 2215| Block 21 -# 2215| m2215_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 20:m2215_25, from 22:m2215_72 -# 2215| m2215_35(unknown) = Phi : from 20:~m2215_32, from 22:~m2215_69 -# 2215| r2215_36(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_55(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_36 -# 2215| r2215_37(glval<unknown>) = FunctionAddress[operator!=] : +# 2215| m2215_30(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Phi : from 20:m2215_23, from 22:m2215_68 +# 2215| m2215_31(unknown) = Phi : from 20:~m2215_11, from 22:~m2215_65 +# 2215| r2215_32(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_55(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_32 +# 2215| r2215_33(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_56(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : #-----| m0_57(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_56 -# 2215| r2215_38(glval<unknown>) = FunctionAddress[iterator] : -# 2215| r2215_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -#-----| r0_58(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_39 +# 2215| r2215_34(glval<unknown>) = FunctionAddress[iterator] : +# 2215| r2215_35(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_58(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_35 #-----| r0_59(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_58 -# 2215| v2215_40(void) = Call[iterator] : func:r2215_38, this:r0_56, 0:r0_59 -# 2215| m2215_41(unknown) = ^CallSideEffect : ~m2215_35 -# 2215| m2215_42(unknown) = Chi : total:m2215_35, partial:m2215_41 -#-----| v0_60(void) = ^BufferReadSideEffect[0] : &:r0_59, ~m2215_33 -# 2215| m2215_43(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 -# 2215| m2215_44(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_57, partial:m2215_43 -#-----| r0_61(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_56, m2215_44 -# 2215| r2215_45(bool) = Call[operator!=] : func:r2215_37, this:r0_55, 0:r0_61 -# 2215| m2215_46(unknown) = ^CallSideEffect : ~m2215_42 -# 2215| m2215_47(unknown) = Chi : total:m2215_42, partial:m2215_46 -#-----| v0_62(void) = ^IndirectReadSideEffect[-1] : &:r0_55, m2215_34 -# 2215| v2215_48(void) = ConditionalBranch : r2215_45 +# 2215| v2215_36(void) = Call[iterator] : func:r2215_34, this:r0_56, 0:r0_59 +# 2215| m2215_37(unknown) = ^CallSideEffect : ~m2215_31 +# 2215| m2215_38(unknown) = Chi : total:m2215_31, partial:m2215_37 +#-----| v0_60(void) = ^BufferReadSideEffect[0] : &:r0_59, ~m2215_29 +# 2215| m2215_39(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 +# 2215| m2215_40(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m0_57, partial:m2215_39 +#-----| r0_61(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_56, m2215_40 +# 2215| r2215_41(bool) = Call[operator!=] : func:r2215_33, this:r0_55, 0:r0_61 +# 2215| m2215_42(unknown) = ^CallSideEffect : ~m2215_38 +# 2215| m2215_43(unknown) = Chi : total:m2215_38, partial:m2215_42 +#-----| v0_62(void) = ^IndirectReadSideEffect[-1] : &:r0_55, m2215_30 +# 2215| v2215_44(void) = ConditionalBranch : r2215_41 #-----| False -> Block 23 #-----| True -> Block 22 # 2215| Block 22 -# 2215| r2215_49(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2215| r2215_50(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_63(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_50 -# 2215| r2215_51(glval<unknown>) = FunctionAddress[operator*] : -# 2215| r2215_52(ClassWithDestructor &) = Call[operator*] : func:r2215_51, this:r0_63 -# 2215| m2215_53(unknown) = ^CallSideEffect : ~m2215_47 -# 2215| m2215_54(unknown) = Chi : total:m2215_47, partial:m2215_53 -#-----| v0_64(void) = ^IndirectReadSideEffect[-1] : &:r0_63, m2215_34 -# 2215| r2215_55(ClassWithDestructor) = Load[?] : &:r2215_52, ~m2215_54 -# 2215| m2215_56(ClassWithDestructor) = Store[y] : &:r2215_49, r2215_55 +# 2215| r2215_45(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2215| r2215_46(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_63(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_46 +# 2215| r2215_47(glval<unknown>) = FunctionAddress[operator*] : +# 2215| r2215_48(ClassWithDestructor &) = Call[operator*] : func:r2215_47, this:r0_63 +# 2215| m2215_49(unknown) = ^CallSideEffect : ~m2215_43 +# 2215| m2215_50(unknown) = Chi : total:m2215_43, partial:m2215_49 +#-----| v0_64(void) = ^IndirectReadSideEffect[-1] : &:r0_63, m2215_30 +# 2215| r2215_51(ClassWithDestructor) = Load[?] : &:r2215_48, ~m2215_50 +# 2215| m2215_52(ClassWithDestructor) = Store[y] : &:r2215_45, r2215_51 # 2216| r2216_1(glval<ClassWithDestructor>) = VariableAddress[z1] : # 2216| m2216_2(ClassWithDestructor) = Uninitialized[z1] : &:r2216_1 # 2216| r2216_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : # 2216| v2216_4(void) = Call[ClassWithDestructor] : func:r2216_3, this:r2216_1 -# 2216| m2216_5(unknown) = ^CallSideEffect : ~m2215_54 -# 2216| m2216_6(unknown) = Chi : total:m2215_54, partial:m2216_5 +# 2216| m2216_5(unknown) = ^CallSideEffect : ~m2215_50 +# 2216| m2216_6(unknown) = Chi : total:m2215_50, partial:m2216_5 # 2216| m2216_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_1 # 2216| m2216_8(ClassWithDestructor) = Chi : total:m2216_2, partial:m2216_7 # 2217| r2217_1(glval<ClassWithDestructor>) = VariableAddress[z2] : @@ -13883,23 +13859,23 @@ ir.cpp: # 2218| v2218_14(void) = ^IndirectReadSideEffect[-1] : &:r2218_9, m2216_8 # 2218| m2218_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_9 # 2218| m2218_16(ClassWithDestructor) = Chi : total:m2216_8, partial:m2218_15 -# 2215| r2215_57(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2215| r2215_58(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2215| v2215_59(void) = Call[~ClassWithDestructor] : func:r2215_58, this:r2215_57 -# 2215| m2215_60(unknown) = ^CallSideEffect : ~m2218_13 -# 2215| m2215_61(unknown) = Chi : total:m2218_13, partial:m2215_60 -# 2215| v2215_62(void) = ^IndirectReadSideEffect[-1] : &:r2215_57, m2215_56 -# 2215| m2215_63(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_57 -# 2215| m2215_64(ClassWithDestructor) = Chi : total:m2215_56, partial:m2215_63 -# 2215| r2215_65(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -# 2215| r2215_66(glval<unknown>) = FunctionAddress[operator++] : -# 2215| r2215_67(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2215_66, this:r2215_65 -# 2215| m2215_68(unknown) = ^CallSideEffect : ~m2215_61 -# 2215| m2215_69(unknown) = Chi : total:m2215_61, partial:m2215_68 -# 2215| v2215_70(void) = ^IndirectReadSideEffect[-1] : &:r2215_65, m2215_34 -# 2215| m2215_71(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_65 -# 2215| m2215_72(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2215_34, partial:m2215_71 -# 2215| r2215_73(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2215_67 +# 2215| r2215_53(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2215| r2215_54(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_55(void) = Call[~ClassWithDestructor] : func:r2215_54, this:r2215_53 +# 2215| m2215_56(unknown) = ^CallSideEffect : ~m2218_13 +# 2215| m2215_57(unknown) = Chi : total:m2218_13, partial:m2215_56 +# 2215| v2215_58(void) = ^IndirectReadSideEffect[-1] : &:r2215_53, m2215_52 +# 2215| m2215_59(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_53 +# 2215| m2215_60(ClassWithDestructor) = Chi : total:m2215_52, partial:m2215_59 +# 2215| r2215_61(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2215| r2215_62(glval<unknown>) = FunctionAddress[operator++] : +# 2215| r2215_63(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2215_62, this:r2215_61 +# 2215| m2215_64(unknown) = ^CallSideEffect : ~m2215_57 +# 2215| m2215_65(unknown) = Chi : total:m2215_57, partial:m2215_64 +# 2215| v2215_66(void) = ^IndirectReadSideEffect[-1] : &:r2215_61, m2215_30 +# 2215| m2215_67(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_61 +# 2215| m2215_68(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Chi : total:m2215_30, partial:m2215_67 +# 2215| r2215_69(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2215_63 #-----| Goto (back edge) -> Block 21 # 2219| Block 23 @@ -13907,8 +13883,8 @@ ir.cpp: # 2219| r2219_18(glval<ClassWithDestructor>) = VariableAddress[x] : # 2219| r2219_19(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : # 2219| v2219_20(void) = Call[~ClassWithDestructor] : func:r2219_19, this:r2219_18 -# 2219| m2219_21(unknown) = ^CallSideEffect : ~m2215_47 -# 2219| m2219_22(unknown) = Chi : total:m2215_47, partial:m2219_21 +# 2219| m2219_21(unknown) = ^CallSideEffect : ~m2215_43 +# 2219| m2219_22(unknown) = Chi : total:m2215_43, partial:m2219_21 # 2219| v2219_23(void) = ^IndirectReadSideEffect[-1] : &:r2219_18, m2200_8 # 2219| m2219_24(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_18 # 2219| m2219_25(ClassWithDestructor) = Chi : total:m2200_8, partial:m2219_24 @@ -14566,76 +14542,72 @@ ir.cpp: #-----| r0_2(glval<vector<String>>) = Convert : r0_1 # 2293| r2293_27(glval<unknown>) = FunctionAddress[begin] : # 2293| r2293_28(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[begin] : func:r2293_27, this:r0_2 -# 2293| m2293_29(unknown) = ^CallSideEffect : ~m2293_19 -# 2293| m2293_30(unknown) = Chi : total:m2293_19, partial:m2293_29 #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2293_21 -# 2293| m2293_31(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__begin)] : &:r2293_24, r2293_28 -# 2293| r2293_32(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : -# 2293| r2293_33(glval<vector<String> &&>) = VariableAddress[(__range)] : -# 2293| r2293_34(vector<String> &&) = Load[(__range)] : &:r2293_33, m2293_23 -#-----| r0_4(glval<vector<String>>) = CopyValue : r2293_34 +# 2293| m2293_29(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__begin)] : &:r2293_24, r2293_28 +# 2293| r2293_30(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : +# 2293| r2293_31(glval<vector<String> &&>) = VariableAddress[(__range)] : +# 2293| r2293_32(vector<String> &&) = Load[(__range)] : &:r2293_31, m2293_23 +#-----| r0_4(glval<vector<String>>) = CopyValue : r2293_32 #-----| r0_5(glval<vector<String>>) = Convert : r0_4 -# 2293| r2293_35(glval<unknown>) = FunctionAddress[end] : -# 2293| r2293_36(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[end] : func:r2293_35, this:r0_5 -# 2293| m2293_37(unknown) = ^CallSideEffect : ~m2293_30 -# 2293| m2293_38(unknown) = Chi : total:m2293_30, partial:m2293_37 +# 2293| r2293_33(glval<unknown>) = FunctionAddress[end] : +# 2293| r2293_34(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[end] : func:r2293_33, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2293_21 -# 2293| m2293_39(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__end)] : &:r2293_32, r2293_36 +# 2293| m2293_35(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__end)] : &:r2293_30, r2293_34 #-----| Goto -> Block 4 # 2293| Block 4 -# 2293| m2293_40(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Phi : from 3:m2293_31, from 5:m2293_87 -# 2293| m2293_41(unknown) = Phi : from 3:~m2293_38, from 5:~m2293_84 -# 2293| r2293_42(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_42 -# 2293| r2293_43(glval<unknown>) = FunctionAddress[operator!=] : +# 2293| m2293_36(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Phi : from 3:m2293_29, from 5:m2293_83 +# 2293| m2293_37(unknown) = Phi : from 3:~m2293_19, from 5:~m2293_80 +# 2293| r2293_38(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_38 +# 2293| r2293_39(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_8(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[#temp0:0] : #-----| m0_9(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Uninitialized[#temp0:0] : &:r0_8 -# 2293| r2293_44(glval<unknown>) = FunctionAddress[iterator] : -# 2293| r2293_45(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : -#-----| r0_10(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_45 +# 2293| r2293_40(glval<unknown>) = FunctionAddress[iterator] : +# 2293| r2293_41(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_41 #-----| r0_11(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = CopyValue : r0_10 -# 2293| v2293_46(void) = Call[iterator] : func:r2293_44, this:r0_8, 0:r0_11 -# 2293| m2293_47(unknown) = ^CallSideEffect : ~m2293_41 -# 2293| m2293_48(unknown) = Chi : total:m2293_41, partial:m2293_47 -#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m2293_39 -# 2293| m2293_49(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 -# 2293| m2293_50(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Chi : total:m0_9, partial:m2293_49 -#-----| r0_13(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Load[#temp0:0] : &:r0_8, m2293_50 -# 2293| r2293_51(bool) = Call[operator!=] : func:r2293_43, this:r0_7, 0:r0_13 -# 2293| m2293_52(unknown) = ^CallSideEffect : ~m2293_48 -# 2293| m2293_53(unknown) = Chi : total:m2293_48, partial:m2293_52 -#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2293_40 -# 2293| v2293_54(void) = ConditionalBranch : r2293_51 +# 2293| v2293_42(void) = Call[iterator] : func:r2293_40, this:r0_8, 0:r0_11 +# 2293| m2293_43(unknown) = ^CallSideEffect : ~m2293_37 +# 2293| m2293_44(unknown) = Chi : total:m2293_37, partial:m2293_43 +#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m2293_35 +# 2293| m2293_45(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2293| m2293_46(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Chi : total:m0_9, partial:m2293_45 +#-----| r0_13(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Load[#temp0:0] : &:r0_8, m2293_46 +# 2293| r2293_47(bool) = Call[operator!=] : func:r2293_39, this:r0_7, 0:r0_13 +# 2293| m2293_48(unknown) = ^CallSideEffect : ~m2293_44 +# 2293| m2293_49(unknown) = Chi : total:m2293_44, partial:m2293_48 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2293_36 +# 2293| v2293_50(void) = ConditionalBranch : r2293_47 #-----| False -> Block 6 #-----| True -> Block 5 # 2293| Block 5 -# 2293| r2293_55(glval<String>) = VariableAddress[s] : -# 2293| m2293_56(String) = Uninitialized[s] : &:r2293_55 -# 2293| r2293_57(glval<unknown>) = FunctionAddress[String] : -# 2293| r2293_58(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : -#-----| r0_15(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_58 -# 2293| r2293_59(glval<unknown>) = FunctionAddress[operator*] : -# 2293| r2293_60(String &) = Call[operator*] : func:r2293_59, this:r0_15 -# 2293| m2293_61(unknown) = ^CallSideEffect : ~m2293_53 -# 2293| m2293_62(unknown) = Chi : total:m2293_53, partial:m2293_61 -#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m2293_40 -# 2293| r2293_63(glval<String>) = CopyValue : r2293_60 -# 2293| r2293_64(glval<String>) = Convert : r2293_63 -# 2293| r2293_65(String &) = CopyValue : r2293_64 -# 2293| v2293_66(void) = Call[String] : func:r2293_57, this:r2293_55, 0:r2293_65 -# 2293| m2293_67(unknown) = ^CallSideEffect : ~m2293_62 -# 2293| m2293_68(unknown) = Chi : total:m2293_62, partial:m2293_67 -# 2293| v2293_69(void) = ^BufferReadSideEffect[0] : &:r2293_65, ~m2293_68 -# 2293| m2293_70(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_55 -# 2293| m2293_71(String) = Chi : total:m2293_56, partial:m2293_70 +# 2293| r2293_51(glval<String>) = VariableAddress[s] : +# 2293| m2293_52(String) = Uninitialized[s] : &:r2293_51 +# 2293| r2293_53(glval<unknown>) = FunctionAddress[String] : +# 2293| r2293_54(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_54 +# 2293| r2293_55(glval<unknown>) = FunctionAddress[operator*] : +# 2293| r2293_56(String &) = Call[operator*] : func:r2293_55, this:r0_15 +# 2293| m2293_57(unknown) = ^CallSideEffect : ~m2293_49 +# 2293| m2293_58(unknown) = Chi : total:m2293_49, partial:m2293_57 +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m2293_36 +# 2293| r2293_59(glval<String>) = CopyValue : r2293_56 +# 2293| r2293_60(glval<String>) = Convert : r2293_59 +# 2293| r2293_61(String &) = CopyValue : r2293_60 +# 2293| v2293_62(void) = Call[String] : func:r2293_53, this:r2293_51, 0:r2293_61 +# 2293| m2293_63(unknown) = ^CallSideEffect : ~m2293_58 +# 2293| m2293_64(unknown) = Chi : total:m2293_58, partial:m2293_63 +# 2293| v2293_65(void) = ^BufferReadSideEffect[0] : &:r2293_61, ~m2293_64 +# 2293| m2293_66(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_51 +# 2293| m2293_67(String) = Chi : total:m2293_52, partial:m2293_66 # 2294| r2294_1(glval<String>) = VariableAddress[s2] : # 2294| m2294_2(String) = Uninitialized[s2] : &:r2294_1 # 2294| r2294_3(glval<unknown>) = FunctionAddress[String] : # 2294| v2294_4(void) = Call[String] : func:r2294_3, this:r2294_1 -# 2294| m2294_5(unknown) = ^CallSideEffect : ~m2293_68 -# 2294| m2294_6(unknown) = Chi : total:m2293_68, partial:m2294_5 +# 2294| m2294_5(unknown) = ^CallSideEffect : ~m2293_64 +# 2294| m2294_6(unknown) = Chi : total:m2293_64, partial:m2294_5 # 2294| m2294_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2294_1 # 2294| m2294_8(String) = Chi : total:m2294_2, partial:m2294_7 # 2295| r2295_1(glval<String>) = VariableAddress[s2] : @@ -14646,23 +14618,23 @@ ir.cpp: # 2295| v2295_6(void) = ^IndirectReadSideEffect[-1] : &:r2295_1, m2294_8 # 2295| m2295_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2295_1 # 2295| m2295_8(String) = Chi : total:m2294_8, partial:m2295_7 -# 2293| r2293_72(glval<String>) = VariableAddress[s] : -# 2293| r2293_73(glval<unknown>) = FunctionAddress[~String] : -# 2293| v2293_74(void) = Call[~String] : func:r2293_73, this:r2293_72 -# 2293| m2293_75(unknown) = ^CallSideEffect : ~m2295_5 -# 2293| m2293_76(unknown) = Chi : total:m2295_5, partial:m2293_75 -# 2293| v2293_77(void) = ^IndirectReadSideEffect[-1] : &:r2293_72, m2293_71 -# 2293| m2293_78(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_72 -# 2293| m2293_79(String) = Chi : total:m2293_71, partial:m2293_78 -# 2293| r2293_80(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : -# 2293| r2293_81(glval<unknown>) = FunctionAddress[operator++] : -# 2293| r2293_82(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = Call[operator++] : func:r2293_81, this:r2293_80 -# 2293| m2293_83(unknown) = ^CallSideEffect : ~m2293_76 -# 2293| m2293_84(unknown) = Chi : total:m2293_76, partial:m2293_83 -# 2293| v2293_85(void) = ^IndirectReadSideEffect[-1] : &:r2293_80, m2293_40 -# 2293| m2293_86(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r2293_80 -# 2293| m2293_87(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Chi : total:m2293_40, partial:m2293_86 -# 2293| r2293_88(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = CopyValue : r2293_82 +# 2293| r2293_68(glval<String>) = VariableAddress[s] : +# 2293| r2293_69(glval<unknown>) = FunctionAddress[~String] : +# 2293| v2293_70(void) = Call[~String] : func:r2293_69, this:r2293_68 +# 2293| m2293_71(unknown) = ^CallSideEffect : ~m2295_5 +# 2293| m2293_72(unknown) = Chi : total:m2295_5, partial:m2293_71 +# 2293| v2293_73(void) = ^IndirectReadSideEffect[-1] : &:r2293_68, m2293_67 +# 2293| m2293_74(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_68 +# 2293| m2293_75(String) = Chi : total:m2293_67, partial:m2293_74 +# 2293| r2293_76(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +# 2293| r2293_77(glval<unknown>) = FunctionAddress[operator++] : +# 2293| r2293_78(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = Call[operator++] : func:r2293_77, this:r2293_76 +# 2293| m2293_79(unknown) = ^CallSideEffect : ~m2293_72 +# 2293| m2293_80(unknown) = Chi : total:m2293_72, partial:m2293_79 +# 2293| v2293_81(void) = ^IndirectReadSideEffect[-1] : &:r2293_76, m2293_36 +# 2293| m2293_82(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r2293_76 +# 2293| m2293_83(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Chi : total:m2293_36, partial:m2293_82 +# 2293| r2293_84(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = CopyValue : r2293_78 #-----| Goto (back edge) -> Block 4 # 2297| Block 6 @@ -14672,8 +14644,8 @@ ir.cpp: # 2297| r2297_4(glval<char[6]>) = StringConstant["hello"] : # 2297| r2297_5(char *) = Convert : r2297_4 # 2297| v2297_6(void) = Call[String] : func:r2297_3, this:r2297_1, 0:r2297_5 -# 2297| m2297_7(unknown) = ^CallSideEffect : ~m2293_53 -# 2297| m2297_8(unknown) = Chi : total:m2293_53, partial:m2297_7 +# 2297| m2297_7(unknown) = ^CallSideEffect : ~m2293_49 +# 2297| m2297_8(unknown) = Chi : total:m2293_49, partial:m2297_7 # 2297| v2297_9(void) = ^BufferReadSideEffect[0] : &:r2297_5, ~m2287_3 # 2297| m2297_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1 # 2297| m2297_11(String) = Chi : total:m2297_2, partial:m2297_10 diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index aa2496f19f2..ad4cfdb1e7c 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -1348,8 +1348,8 @@ | file://:0:0:0:0 | Load | m745_6 | | file://:0:0:0:0 | Load | m754_6 | | file://:0:0:0:0 | Load | m763_6 | -| file://:0:0:0:0 | Load | m1127_33 | -| file://:0:0:0:0 | Load | m1133_33 | +| file://:0:0:0:0 | Load | m1127_29 | +| file://:0:0:0:0 | Load | m1133_29 | | file://:0:0:0:0 | Load | m1515_4 | | file://:0:0:0:0 | Load | m1515_4 | | file://:0:0:0:0 | Load | m1734_9 | @@ -1358,11 +1358,11 @@ | file://:0:0:0:0 | Load | m1883_6 | | file://:0:0:0:0 | Load | m1888_6 | | file://:0:0:0:0 | Load | m2062_6 | -| file://:0:0:0:0 | Load | m2201_44 | -| file://:0:0:0:0 | Load | m2204_44 | -| file://:0:0:0:0 | Load | m2210_40 | -| file://:0:0:0:0 | Load | m2215_44 | -| file://:0:0:0:0 | Load | m2293_50 | +| file://:0:0:0:0 | Load | m2201_40 | +| file://:0:0:0:0 | Load | m2204_40 | +| file://:0:0:0:0 | Load | m2210_36 | +| file://:0:0:0:0 | Load | m2215_40 | +| file://:0:0:0:0 | Load | m2293_46 | | file://:0:0:0:0 | Load | ~m0_4 | | file://:0:0:0:0 | Load | ~m1493_6 | | file://:0:0:0:0 | Load | ~m1761_10 | @@ -1388,30 +1388,30 @@ | file://:0:0:0:0 | SideEffect | m0_4 | | file://:0:0:0:0 | SideEffect | m0_4 | | file://:0:0:0:0 | SideEffect | m0_14 | -| file://:0:0:0:0 | SideEffect | m1127_23 | -| file://:0:0:0:0 | SideEffect | m1127_23 | -| file://:0:0:0:0 | SideEffect | m1133_23 | -| file://:0:0:0:0 | SideEffect | m1133_23 | +| file://:0:0:0:0 | SideEffect | m1127_19 | +| file://:0:0:0:0 | SideEffect | m1127_19 | +| file://:0:0:0:0 | SideEffect | m1133_19 | +| file://:0:0:0:0 | SideEffect | m1133_19 | | file://:0:0:0:0 | SideEffect | m2201_13 | | file://:0:0:0:0 | SideEffect | m2201_13 | -| file://:0:0:0:0 | SideEffect | m2201_34 | -| file://:0:0:0:0 | SideEffect | m2201_34 | +| file://:0:0:0:0 | SideEffect | m2201_30 | +| file://:0:0:0:0 | SideEffect | m2201_30 | | file://:0:0:0:0 | SideEffect | m2204_13 | | file://:0:0:0:0 | SideEffect | m2204_13 | -| file://:0:0:0:0 | SideEffect | m2204_34 | -| file://:0:0:0:0 | SideEffect | m2204_34 | +| file://:0:0:0:0 | SideEffect | m2204_30 | +| file://:0:0:0:0 | SideEffect | m2204_30 | | file://:0:0:0:0 | SideEffect | m2210_9 | | file://:0:0:0:0 | SideEffect | m2210_9 | -| file://:0:0:0:0 | SideEffect | m2210_30 | -| file://:0:0:0:0 | SideEffect | m2210_30 | +| file://:0:0:0:0 | SideEffect | m2210_26 | +| file://:0:0:0:0 | SideEffect | m2210_26 | | file://:0:0:0:0 | SideEffect | m2215_13 | | file://:0:0:0:0 | SideEffect | m2215_13 | -| file://:0:0:0:0 | SideEffect | m2215_34 | -| file://:0:0:0:0 | SideEffect | m2215_34 | +| file://:0:0:0:0 | SideEffect | m2215_30 | +| file://:0:0:0:0 | SideEffect | m2215_30 | | file://:0:0:0:0 | SideEffect | m2293_21 | | file://:0:0:0:0 | SideEffect | m2293_21 | -| file://:0:0:0:0 | SideEffect | m2293_40 | -| file://:0:0:0:0 | SideEffect | m2293_40 | +| file://:0:0:0:0 | SideEffect | m2293_36 | +| file://:0:0:0:0 | SideEffect | m2293_36 | | file://:0:0:0:0 | SideEffect | ~m0_4 | | file://:0:0:0:0 | SideEffect | ~m0_4 | | file://:0:0:0:0 | SideEffect | ~m0_4 | @@ -1425,19 +1425,19 @@ | file://:0:0:0:0 | SideEffect | ~m1126_8 | | file://:0:0:0:0 | SideEffect | ~m1126_8 | | file://:0:0:0:0 | SideEffect | ~m1126_8 | -| file://:0:0:0:0 | SideEffect | ~m1127_22 | -| file://:0:0:0:0 | SideEffect | ~m1133_22 | +| file://:0:0:0:0 | SideEffect | ~m1127_18 | +| file://:0:0:0:0 | SideEffect | ~m1133_18 | | file://:0:0:0:0 | SideEffect | ~m1289_4 | | file://:0:0:0:0 | SideEffect | ~m1496_6 | | file://:0:0:0:0 | SideEffect | ~m1888_8 | -| file://:0:0:0:0 | SideEffect | ~m2201_33 | -| file://:0:0:0:0 | SideEffect | ~m2204_33 | -| file://:0:0:0:0 | SideEffect | ~m2210_29 | -| file://:0:0:0:0 | SideEffect | ~m2215_33 | +| file://:0:0:0:0 | SideEffect | ~m2201_29 | +| file://:0:0:0:0 | SideEffect | ~m2204_29 | +| file://:0:0:0:0 | SideEffect | ~m2210_25 | +| file://:0:0:0:0 | SideEffect | ~m2215_29 | | file://:0:0:0:0 | SideEffect | ~m2222_6 | | file://:0:0:0:0 | SideEffect | ~m2226_4 | | file://:0:0:0:0 | SideEffect | ~m2233_6 | -| file://:0:0:0:0 | SideEffect | ~m2293_39 | +| file://:0:0:0:0 | SideEffect | ~m2293_35 | | file://:0:0:0:0 | StoreValue | r0_1 | | file://:0:0:0:0 | StoreValue | r0_1 | | file://:0:0:0:0 | StoreValue | r0_1 | @@ -6221,151 +6221,139 @@ | ir.cpp:1126:44:1126:44 | SideEffect | m1126_8 | | ir.cpp:1127:5:1127:5 | Address | &:r1127_1 | | ir.cpp:1127:5:1127:5 | Address | &:r1127_7 | -| ir.cpp:1127:5:1127:5 | Address | &:r1127_15 | -| ir.cpp:1127:14:1127:14 | Address | &:r1127_38 | +| ir.cpp:1127:5:1127:5 | Address | &:r1127_13 | +| ir.cpp:1127:14:1127:14 | Address | &:r1127_34 | | ir.cpp:1127:18:1127:18 | Address | &:r1127_2 | | ir.cpp:1127:18:1127:18 | Address | &:r1127_8 | -| ir.cpp:1127:18:1127:18 | Address | &:r1127_16 | -| ir.cpp:1127:18:1127:18 | Address | &:r1127_41 | -| ir.cpp:1127:18:1127:18 | Address | &:r1127_47 | -| ir.cpp:1127:18:1127:18 | Address | &:r1127_47 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_14 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_37 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_43 | +| ir.cpp:1127:18:1127:18 | Address | &:r1127_43 | | ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_1 | | ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_3 | | ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_5 | | ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_6 | | ir.cpp:1127:18:1127:18 | Arg(this) | this:r0_13 | -| ir.cpp:1127:18:1127:18 | Arg(this) | this:r1127_47 | +| ir.cpp:1127:18:1127:18 | Arg(this) | this:r1127_43 | | ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_10 | -| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_18 | -| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_26 | -| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_27 | -| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_40 | -| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_48 | -| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_12 | -| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_20 | -| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_30 | -| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_32 | -| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_35 | -| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_42 | -| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_50 | -| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_53 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_16 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_22 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_23 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_36 | +| ir.cpp:1127:18:1127:18 | CallTarget | func:r1127_44 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_26 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_28 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_31 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_38 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_46 | +| ir.cpp:1127:18:1127:18 | ChiPartial | partial:m1127_49 | | ir.cpp:1127:18:1127:18 | ChiTotal | total:m0_7 | -| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1126_4 | -| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_13 | -| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_23 | -| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_24 | -| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_31 | -| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_36 | -| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_43 | -| ir.cpp:1127:18:1127:18 | Condition | r1127_34 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_19 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_20 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_27 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_32 | +| ir.cpp:1127:18:1127:18 | ChiTotal | total:m1127_39 | +| ir.cpp:1127:18:1127:18 | Condition | r1127_30 | | ir.cpp:1127:18:1127:18 | Load | m1126_6 | | ir.cpp:1127:18:1127:18 | Load | m1127_6 | | ir.cpp:1127:18:1127:18 | Load | m1127_6 | -| ir.cpp:1127:18:1127:18 | Phi | from 0:m1127_14 | -| ir.cpp:1127:18:1127:18 | Phi | from 0:~m1127_21 | -| ir.cpp:1127:18:1127:18 | Phi | from 4:m1127_54 | -| ir.cpp:1127:18:1127:18 | Phi | from 4:~m1127_51 | -| ir.cpp:1127:18:1127:18 | SideEffect | m1127_23 | -| ir.cpp:1127:18:1127:18 | SideEffect | ~m1126_4 | -| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_13 | -| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_24 | -| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_31 | -| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_36 | -| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_43 | +| ir.cpp:1127:18:1127:18 | Phi | from 0:m1127_12 | +| ir.cpp:1127:18:1127:18 | Phi | from 0:~m1126_4 | +| ir.cpp:1127:18:1127:18 | Phi | from 4:m1127_50 | +| ir.cpp:1127:18:1127:18 | Phi | from 4:~m1127_47 | +| ir.cpp:1127:18:1127:18 | SideEffect | m1127_19 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_20 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_27 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_32 | +| ir.cpp:1127:18:1127:18 | SideEffect | ~m1127_39 | | ir.cpp:1127:18:1127:18 | StoreValue | r1127_5 | | ir.cpp:1127:18:1127:18 | StoreValue | r1127_11 | -| ir.cpp:1127:18:1127:18 | StoreValue | r1127_19 | +| ir.cpp:1127:18:1127:18 | StoreValue | r1127_17 | | ir.cpp:1127:18:1127:18 | Unary | r1127_3 | | ir.cpp:1127:18:1127:18 | Unary | r1127_4 | | ir.cpp:1127:18:1127:18 | Unary | r1127_9 | -| ir.cpp:1127:18:1127:18 | Unary | r1127_17 | -| ir.cpp:1127:18:1127:18 | Unary | r1127_25 | -| ir.cpp:1127:18:1127:18 | Unary | r1127_28 | -| ir.cpp:1127:18:1127:18 | Unary | r1127_39 | -| ir.cpp:1127:18:1127:18 | Unary | r1127_49 | -| ir.cpp:1127:18:1127:19 | Load | ~m1127_43 | -| ir.cpp:1127:18:1127:19 | StoreValue | r1127_44 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_15 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_21 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_24 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_35 | +| ir.cpp:1127:18:1127:18 | Unary | r1127_45 | +| ir.cpp:1127:18:1127:19 | Load | ~m1127_39 | +| ir.cpp:1127:18:1127:19 | StoreValue | r1127_40 | | ir.cpp:1128:13:1128:13 | Address | &:r1128_1 | | ir.cpp:1128:13:1128:13 | Left | r1128_2 | -| ir.cpp:1128:13:1128:13 | Load | m1127_45 | +| ir.cpp:1128:13:1128:13 | Load | m1127_41 | | ir.cpp:1128:13:1128:17 | Condition | r1128_4 | | ir.cpp:1128:17:1128:17 | Right | r1128_3 | | ir.cpp:1133:5:1133:5 | Address | &:r1133_1 | | ir.cpp:1133:5:1133:5 | Address | &:r1133_7 | -| ir.cpp:1133:5:1133:5 | Address | &:r1133_15 | -| ir.cpp:1133:21:1133:21 | Address | &:r1133_47 | +| ir.cpp:1133:5:1133:5 | Address | &:r1133_13 | +| ir.cpp:1133:21:1133:21 | Address | &:r1133_43 | | ir.cpp:1133:25:1133:25 | Address | &:r1133_2 | | ir.cpp:1133:25:1133:25 | Address | &:r1133_8 | -| ir.cpp:1133:25:1133:25 | Address | &:r1133_16 | -| ir.cpp:1133:25:1133:25 | Address | &:r1133_38 | -| ir.cpp:1133:25:1133:25 | Address | &:r1133_38 | +| ir.cpp:1133:25:1133:25 | Address | &:r1133_14 | +| ir.cpp:1133:25:1133:25 | Address | &:r1133_34 | +| ir.cpp:1133:25:1133:25 | Address | &:r1133_34 | | ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_15 | | ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_17 | | ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_19 | | ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_20 | | ir.cpp:1133:25:1133:25 | Arg(this) | this:r0_27 | -| ir.cpp:1133:25:1133:25 | Arg(this) | this:r1133_38 | +| ir.cpp:1133:25:1133:25 | Arg(this) | this:r1133_34 | | ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_10 | -| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_18 | -| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_26 | -| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_27 | -| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_39 | -| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_49 | -| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_12 | -| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_20 | -| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_30 | -| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_32 | -| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_35 | -| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_41 | -| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_44 | -| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_51 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_16 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_22 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_23 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_35 | +| ir.cpp:1133:25:1133:25 | CallTarget | func:r1133_45 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_26 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_28 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_31 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_37 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_40 | +| ir.cpp:1133:25:1133:25 | ChiPartial | partial:m1133_47 | | ir.cpp:1133:25:1133:25 | ChiTotal | total:m0_21 | -| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1127_36 | -| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_13 | -| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_23 | -| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_24 | -| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_31 | -| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_36 | -| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_52 | -| ir.cpp:1133:25:1133:25 | Condition | r1133_34 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_19 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_20 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_27 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_32 | +| ir.cpp:1133:25:1133:25 | ChiTotal | total:m1133_48 | +| ir.cpp:1133:25:1133:25 | Condition | r1133_30 | | ir.cpp:1133:25:1133:25 | Load | m1126_6 | | ir.cpp:1133:25:1133:25 | Load | m1133_6 | | ir.cpp:1133:25:1133:25 | Load | m1133_6 | -| ir.cpp:1133:25:1133:25 | Phi | from 5:m1133_14 | -| ir.cpp:1133:25:1133:25 | Phi | from 5:~m1133_21 | -| ir.cpp:1133:25:1133:25 | Phi | from 7:m1133_45 | -| ir.cpp:1133:25:1133:25 | Phi | from 7:~m1133_42 | -| ir.cpp:1133:25:1133:25 | SideEffect | m1133_23 | -| ir.cpp:1133:25:1133:25 | SideEffect | ~m1127_36 | -| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_13 | -| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_24 | -| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_31 | -| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_36 | -| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_52 | +| ir.cpp:1133:25:1133:25 | Phi | from 5:m1133_12 | +| ir.cpp:1133:25:1133:25 | Phi | from 5:~m1127_32 | +| ir.cpp:1133:25:1133:25 | Phi | from 7:m1133_41 | +| ir.cpp:1133:25:1133:25 | Phi | from 7:~m1133_38 | +| ir.cpp:1133:25:1133:25 | SideEffect | m1133_19 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_20 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_27 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_32 | +| ir.cpp:1133:25:1133:25 | SideEffect | ~m1133_48 | | ir.cpp:1133:25:1133:25 | StoreValue | r1133_5 | | ir.cpp:1133:25:1133:25 | StoreValue | r1133_11 | -| ir.cpp:1133:25:1133:25 | StoreValue | r1133_19 | +| ir.cpp:1133:25:1133:25 | StoreValue | r1133_17 | | ir.cpp:1133:25:1133:25 | Unary | r1133_3 | | ir.cpp:1133:25:1133:25 | Unary | r1133_4 | | ir.cpp:1133:25:1133:25 | Unary | r1133_9 | -| ir.cpp:1133:25:1133:25 | Unary | r1133_17 | -| ir.cpp:1133:25:1133:25 | Unary | r1133_25 | -| ir.cpp:1133:25:1133:25 | Unary | r1133_28 | -| ir.cpp:1133:25:1133:25 | Unary | r1133_40 | -| ir.cpp:1133:25:1133:25 | Unary | r1133_48 | -| ir.cpp:1133:25:1133:25 | Unary | r1133_50 | -| ir.cpp:1133:25:1133:26 | StoreValue | r1133_55 | -| ir.cpp:1133:25:1133:26 | Unary | r1133_53 | -| ir.cpp:1133:25:1133:26 | Unary | r1133_54 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_15 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_21 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_24 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_36 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_44 | +| ir.cpp:1133:25:1133:25 | Unary | r1133_46 | +| ir.cpp:1133:25:1133:26 | StoreValue | r1133_51 | +| ir.cpp:1133:25:1133:26 | Unary | r1133_49 | +| ir.cpp:1133:25:1133:26 | Unary | r1133_50 | | ir.cpp:1134:13:1134:13 | Address | &:r1134_1 | | ir.cpp:1134:13:1134:13 | Address | &:r1134_2 | | ir.cpp:1134:13:1134:13 | Left | r1134_3 | -| ir.cpp:1134:13:1134:13 | Load | m1133_56 | -| ir.cpp:1134:13:1134:13 | Load | ~m1133_52 | +| ir.cpp:1134:13:1134:13 | Load | m1133_52 | +| ir.cpp:1134:13:1134:13 | Load | ~m1133_48 | | ir.cpp:1134:13:1134:17 | Condition | r1134_5 | | ir.cpp:1134:17:1134:17 | Right | r1134_4 | -| ir.cpp:1137:5:1137:5 | Phi | from 6:~m1133_36 | -| ir.cpp:1137:5:1137:5 | Phi | from 9:~m1133_52 | +| ir.cpp:1137:5:1137:5 | Phi | from 6:~m1133_32 | +| ir.cpp:1137:5:1137:5 | Phi | from 9:~m1133_48 | | ir.cpp:1157:5:1157:11 | Address | &:r1157_7 | | ir.cpp:1157:5:1157:11 | ChiPartial | partial:m1157_3 | | ir.cpp:1157:5:1157:11 | ChiTotal | total:m1157_2 | @@ -11063,7 +11051,7 @@ | ir.cpp:2200:25:2200:25 | SideEffect | ~m2198_1 | | ir.cpp:2201:5:2201:5 | Address | &:r2201_14 | | ir.cpp:2201:5:2201:5 | Address | &:r2201_18 | -| ir.cpp:2201:5:2201:5 | Address | &:r2201_26 | +| ir.cpp:2201:5:2201:5 | Address | &:r2201_24 | | ir.cpp:2201:42:2201:43 | Address | &:r2201_1 | | ir.cpp:2201:42:2201:43 | Address | &:r2201_1 | | ir.cpp:2201:42:2201:43 | Arg(this) | this:r2201_1 | @@ -11080,103 +11068,97 @@ | ir.cpp:2201:45:2201:46 | ChiTotal | total:m2200_6 | | ir.cpp:2201:45:2201:46 | ChiTotal | total:m2201_2 | | ir.cpp:2201:45:2201:46 | SideEffect | ~m2200_6 | -| ir.cpp:2201:69:2201:69 | Address | &:r2201_49 | -| ir.cpp:2201:69:2201:69 | Address | &:r2201_57 | -| ir.cpp:2201:69:2201:69 | Address | &:r2201_57 | -| ir.cpp:2201:69:2201:69 | Arg(this) | this:r2201_57 | -| ir.cpp:2201:69:2201:69 | CallTarget | func:r2201_58 | -| ir.cpp:2201:69:2201:69 | ChiPartial | partial:m2201_60 | -| ir.cpp:2201:69:2201:69 | ChiPartial | partial:m2201_63 | +| ir.cpp:2201:69:2201:69 | Address | &:r2201_45 | +| ir.cpp:2201:69:2201:69 | Address | &:r2201_53 | +| ir.cpp:2201:69:2201:69 | Address | &:r2201_53 | +| ir.cpp:2201:69:2201:69 | Arg(this) | this:r2201_53 | +| ir.cpp:2201:69:2201:69 | CallTarget | func:r2201_54 | +| ir.cpp:2201:69:2201:69 | ChiPartial | partial:m2201_56 | +| ir.cpp:2201:69:2201:69 | ChiPartial | partial:m2201_59 | | ir.cpp:2201:69:2201:69 | ChiTotal | total:m2202_6 | | ir.cpp:2201:69:2201:69 | ChiTotal | total:m2202_9 | | ir.cpp:2201:69:2201:69 | SideEffect | m2202_9 | | ir.cpp:2201:69:2201:69 | SideEffect | ~m2202_6 | | ir.cpp:2201:73:2201:73 | Address | &:r2201_19 | -| ir.cpp:2201:73:2201:73 | Address | &:r2201_27 | -| ir.cpp:2201:73:2201:73 | Address | &:r2201_52 | -| ir.cpp:2201:73:2201:73 | Address | &:r2201_65 | -| ir.cpp:2201:73:2201:73 | Address | &:r2201_65 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_25 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_48 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_61 | +| ir.cpp:2201:73:2201:73 | Address | &:r2201_61 | | ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_2 | | ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_5 | | ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_7 | | ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_8 | | ir.cpp:2201:73:2201:73 | Arg(this) | this:r0_15 | -| ir.cpp:2201:73:2201:73 | Arg(this) | this:r2201_65 | +| ir.cpp:2201:73:2201:73 | Arg(this) | this:r2201_61 | | ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_21 | -| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_29 | -| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_37 | -| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_38 | -| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_51 | -| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_66 | -| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_23 | -| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_31 | -| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_41 | -| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_43 | -| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_46 | -| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_53 | -| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_68 | -| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_71 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_27 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_33 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_34 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_47 | +| ir.cpp:2201:73:2201:73 | CallTarget | func:r2201_62 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_37 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_39 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_42 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_49 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_64 | +| ir.cpp:2201:73:2201:73 | ChiPartial | partial:m2201_67 | | ir.cpp:2201:73:2201:73 | ChiTotal | total:m0_9 | -| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_11 | -| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_24 | -| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_34 | -| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_35 | -| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_42 | -| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_47 | -| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_61 | -| ir.cpp:2201:73:2201:73 | Condition | r2201_45 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_30 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_31 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_38 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_43 | +| ir.cpp:2201:73:2201:73 | ChiTotal | total:m2201_57 | +| ir.cpp:2201:73:2201:73 | Condition | r2201_41 | | ir.cpp:2201:73:2201:73 | Load | m2201_17 | | ir.cpp:2201:73:2201:73 | Load | m2201_17 | -| ir.cpp:2201:73:2201:73 | Phi | from 7:m2201_25 | -| ir.cpp:2201:73:2201:73 | Phi | from 7:~m2201_32 | -| ir.cpp:2201:73:2201:73 | Phi | from 9:m2201_72 | -| ir.cpp:2201:73:2201:73 | Phi | from 9:~m2201_69 | -| ir.cpp:2201:73:2201:73 | SideEffect | m2201_34 | -| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_11 | -| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_24 | -| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_35 | -| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_42 | -| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_47 | -| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_61 | +| ir.cpp:2201:73:2201:73 | Phi | from 7:m2201_23 | +| ir.cpp:2201:73:2201:73 | Phi | from 7:~m2201_11 | +| ir.cpp:2201:73:2201:73 | Phi | from 9:m2201_68 | +| ir.cpp:2201:73:2201:73 | Phi | from 9:~m2201_65 | +| ir.cpp:2201:73:2201:73 | SideEffect | m2201_30 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_31 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_38 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_43 | +| ir.cpp:2201:73:2201:73 | SideEffect | ~m2201_57 | | ir.cpp:2201:73:2201:73 | StoreValue | r2201_22 | -| ir.cpp:2201:73:2201:73 | StoreValue | r2201_30 | +| ir.cpp:2201:73:2201:73 | StoreValue | r2201_28 | | ir.cpp:2201:73:2201:73 | Unary | r2201_20 | -| ir.cpp:2201:73:2201:73 | Unary | r2201_28 | -| ir.cpp:2201:73:2201:73 | Unary | r2201_36 | -| ir.cpp:2201:73:2201:73 | Unary | r2201_39 | -| ir.cpp:2201:73:2201:73 | Unary | r2201_50 | -| ir.cpp:2201:73:2201:73 | Unary | r2201_67 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_26 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_32 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_35 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_46 | +| ir.cpp:2201:73:2201:73 | Unary | r2201_63 | | ir.cpp:2201:73:2201:74 | StoreValue | r2201_16 | | ir.cpp:2201:73:2201:74 | Unary | r2201_15 | -| ir.cpp:2201:73:2201:75 | Load | ~m2201_54 | -| ir.cpp:2201:73:2201:75 | StoreValue | r2201_55 | +| ir.cpp:2201:73:2201:75 | Load | ~m2201_50 | +| ir.cpp:2201:73:2201:75 | StoreValue | r2201_51 | | ir.cpp:2202:7:2202:7 | Address | &:r2202_1 | | ir.cpp:2202:7:2202:7 | Address | &:r2202_1 | | ir.cpp:2202:7:2202:7 | Arg(this) | this:r2202_1 | | ir.cpp:2202:7:2202:7 | ChiPartial | partial:m2202_8 | -| ir.cpp:2202:7:2202:7 | ChiTotal | total:m2201_56 | -| ir.cpp:2202:7:2202:7 | SideEffect | m2201_56 | +| ir.cpp:2202:7:2202:7 | ChiTotal | total:m2201_52 | +| ir.cpp:2202:7:2202:7 | SideEffect | m2201_52 | | ir.cpp:2202:9:2202:13 | CallTarget | func:r2202_2 | | ir.cpp:2202:9:2202:13 | ChiPartial | partial:m2202_5 | -| ir.cpp:2202:9:2202:13 | ChiTotal | total:m2201_54 | -| ir.cpp:2202:9:2202:13 | SideEffect | ~m2201_54 | +| ir.cpp:2202:9:2202:13 | ChiTotal | total:m2201_50 | +| ir.cpp:2202:9:2202:13 | SideEffect | ~m2201_50 | | ir.cpp:2202:15:2202:17 | Arg(0) | 0:r2202_3 | | ir.cpp:2204:5:2204:5 | Address | &:r2204_14 | | ir.cpp:2204:5:2204:5 | Address | &:r2204_18 | -| ir.cpp:2204:5:2204:5 | Address | &:r2204_26 | +| ir.cpp:2204:5:2204:5 | Address | &:r2204_24 | | ir.cpp:2204:42:2204:43 | Address | &:r2204_1 | | ir.cpp:2204:42:2204:43 | Address | &:r2204_1 | -| ir.cpp:2204:42:2204:43 | Address | &:r2204_65 | -| ir.cpp:2204:42:2204:43 | Address | &:r2204_65 | +| ir.cpp:2204:42:2204:43 | Address | &:r2204_61 | +| ir.cpp:2204:42:2204:43 | Address | &:r2204_61 | | ir.cpp:2204:42:2204:43 | Arg(this) | this:r2204_1 | -| ir.cpp:2204:42:2204:43 | Arg(this) | this:r2204_65 | -| ir.cpp:2204:42:2204:43 | CallTarget | func:r2204_66 | -| ir.cpp:2204:42:2204:43 | ChiPartial | partial:m2204_68 | -| ir.cpp:2204:42:2204:43 | ChiPartial | partial:m2204_71 | +| ir.cpp:2204:42:2204:43 | Arg(this) | this:r2204_61 | +| ir.cpp:2204:42:2204:43 | CallTarget | func:r2204_62 | +| ir.cpp:2204:42:2204:43 | ChiPartial | partial:m2204_64 | +| ir.cpp:2204:42:2204:43 | ChiPartial | partial:m2204_67 | | ir.cpp:2204:42:2204:43 | ChiTotal | total:m2204_13 | -| ir.cpp:2204:42:2204:43 | ChiTotal | total:m2204_61 | +| ir.cpp:2204:42:2204:43 | ChiTotal | total:m2204_57 | | ir.cpp:2204:42:2204:43 | SideEffect | m2204_13 | -| ir.cpp:2204:42:2204:43 | SideEffect | ~m2204_61 | +| ir.cpp:2204:42:2204:43 | SideEffect | ~m2204_57 | | ir.cpp:2204:45:2204:45 | Address | &:r2204_4 | | ir.cpp:2204:45:2204:45 | Address | &:r2204_4 | | ir.cpp:2204:45:2204:45 | Address | &:r2204_5 | @@ -11187,22 +11169,22 @@ | ir.cpp:2204:45:2204:46 | CallTarget | func:r2204_3 | | ir.cpp:2204:45:2204:46 | ChiPartial | partial:m2204_10 | | ir.cpp:2204:45:2204:46 | ChiPartial | partial:m2204_12 | -| ir.cpp:2204:45:2204:46 | ChiTotal | total:m2201_47 | +| ir.cpp:2204:45:2204:46 | ChiTotal | total:m2201_43 | | ir.cpp:2204:45:2204:46 | ChiTotal | total:m2204_2 | -| ir.cpp:2204:45:2204:46 | SideEffect | ~m2201_47 | -| ir.cpp:2204:69:2204:69 | Address | &:r2204_49 | -| ir.cpp:2204:69:2204:69 | Address | &:r2204_57 | -| ir.cpp:2204:69:2204:69 | Address | &:r2204_57 | -| ir.cpp:2204:69:2204:69 | Address | &:r2204_73 | -| ir.cpp:2204:69:2204:69 | Address | &:r2204_73 | -| ir.cpp:2204:69:2204:69 | Arg(this) | this:r2204_57 | -| ir.cpp:2204:69:2204:69 | Arg(this) | this:r2204_73 | -| ir.cpp:2204:69:2204:69 | CallTarget | func:r2204_58 | -| ir.cpp:2204:69:2204:69 | CallTarget | func:r2204_74 | -| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_60 | -| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_63 | -| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_76 | -| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_79 | +| ir.cpp:2204:45:2204:46 | SideEffect | ~m2201_43 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_45 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_53 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_53 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_69 | +| ir.cpp:2204:69:2204:69 | Address | &:r2204_69 | +| ir.cpp:2204:69:2204:69 | Arg(this) | this:r2204_53 | +| ir.cpp:2204:69:2204:69 | Arg(this) | this:r2204_69 | +| ir.cpp:2204:69:2204:69 | CallTarget | func:r2204_54 | +| ir.cpp:2204:69:2204:69 | CallTarget | func:r2204_70 | +| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_56 | +| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_59 | +| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_72 | +| ir.cpp:2204:69:2204:69 | ChiPartial | partial:m2204_75 | | ir.cpp:2204:69:2204:69 | ChiTotal | total:m2206_5 | | ir.cpp:2204:69:2204:69 | ChiTotal | total:m2206_5 | | ir.cpp:2204:69:2204:69 | ChiTotal | total:m2206_8 | @@ -11212,74 +11194,68 @@ | ir.cpp:2204:69:2204:69 | SideEffect | ~m2206_5 | | ir.cpp:2204:69:2204:69 | SideEffect | ~m2206_5 | | ir.cpp:2204:73:2204:73 | Address | &:r2204_19 | -| ir.cpp:2204:73:2204:73 | Address | &:r2204_27 | -| ir.cpp:2204:73:2204:73 | Address | &:r2204_52 | -| ir.cpp:2204:73:2204:73 | Address | &:r2204_81 | -| ir.cpp:2204:73:2204:73 | Address | &:r2204_81 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_25 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_48 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_77 | +| ir.cpp:2204:73:2204:73 | Address | &:r2204_77 | | ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_18 | | ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_21 | | ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_23 | | ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_24 | | ir.cpp:2204:73:2204:73 | Arg(this) | this:r0_31 | -| ir.cpp:2204:73:2204:73 | Arg(this) | this:r2204_81 | +| ir.cpp:2204:73:2204:73 | Arg(this) | this:r2204_77 | | ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_21 | -| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_29 | -| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_37 | -| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_38 | -| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_51 | -| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_82 | -| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_23 | -| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_31 | -| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_41 | -| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_43 | -| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_46 | -| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_53 | -| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_84 | -| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_87 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_27 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_33 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_34 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_47 | +| ir.cpp:2204:73:2204:73 | CallTarget | func:r2204_78 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_37 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_39 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_42 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_49 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_80 | +| ir.cpp:2204:73:2204:73 | ChiPartial | partial:m2204_83 | | ir.cpp:2204:73:2204:73 | ChiTotal | total:m0_25 | -| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_11 | -| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_24 | -| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_34 | -| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_35 | -| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_42 | -| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_47 | -| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_77 | -| ir.cpp:2204:73:2204:73 | Condition | r2204_45 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_30 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_31 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_38 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_43 | +| ir.cpp:2204:73:2204:73 | ChiTotal | total:m2204_73 | +| ir.cpp:2204:73:2204:73 | Condition | r2204_41 | | ir.cpp:2204:73:2204:73 | Load | m2204_17 | | ir.cpp:2204:73:2204:73 | Load | m2204_17 | -| ir.cpp:2204:73:2204:73 | Phi | from 10:m2204_25 | -| ir.cpp:2204:73:2204:73 | Phi | from 10:~m2204_32 | -| ir.cpp:2204:73:2204:73 | Phi | from 14:m2204_88 | -| ir.cpp:2204:73:2204:73 | Phi | from 14:~m2204_85 | -| ir.cpp:2204:73:2204:73 | SideEffect | m2204_34 | -| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_11 | -| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_24 | -| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_35 | -| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_42 | -| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_47 | -| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_77 | +| ir.cpp:2204:73:2204:73 | Phi | from 10:m2204_23 | +| ir.cpp:2204:73:2204:73 | Phi | from 10:~m2204_11 | +| ir.cpp:2204:73:2204:73 | Phi | from 14:m2204_84 | +| ir.cpp:2204:73:2204:73 | Phi | from 14:~m2204_81 | +| ir.cpp:2204:73:2204:73 | SideEffect | m2204_30 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_31 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_38 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_43 | +| ir.cpp:2204:73:2204:73 | SideEffect | ~m2204_73 | | ir.cpp:2204:73:2204:73 | StoreValue | r2204_22 | -| ir.cpp:2204:73:2204:73 | StoreValue | r2204_30 | +| ir.cpp:2204:73:2204:73 | StoreValue | r2204_28 | | ir.cpp:2204:73:2204:73 | Unary | r2204_20 | -| ir.cpp:2204:73:2204:73 | Unary | r2204_28 | -| ir.cpp:2204:73:2204:73 | Unary | r2204_36 | -| ir.cpp:2204:73:2204:73 | Unary | r2204_39 | -| ir.cpp:2204:73:2204:73 | Unary | r2204_50 | -| ir.cpp:2204:73:2204:73 | Unary | r2204_83 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_26 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_32 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_35 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_46 | +| ir.cpp:2204:73:2204:73 | Unary | r2204_79 | | ir.cpp:2204:73:2204:74 | StoreValue | r2204_16 | | ir.cpp:2204:73:2204:74 | Unary | r2204_15 | -| ir.cpp:2204:73:2204:75 | Load | ~m2204_54 | -| ir.cpp:2204:73:2204:75 | StoreValue | r2204_55 | +| ir.cpp:2204:73:2204:75 | Load | ~m2204_50 | +| ir.cpp:2204:73:2204:75 | StoreValue | r2204_51 | | ir.cpp:2205:7:2205:7 | Address | &:r2205_1 | | ir.cpp:2205:7:2205:7 | Address | &:r2205_1 | | ir.cpp:2205:7:2205:7 | Arg(this) | this:r2205_1 | | ir.cpp:2205:7:2205:7 | ChiPartial | partial:m2205_8 | -| ir.cpp:2205:7:2205:7 | ChiTotal | total:m2204_56 | -| ir.cpp:2205:7:2205:7 | SideEffect | m2204_56 | +| ir.cpp:2205:7:2205:7 | ChiTotal | total:m2204_52 | +| ir.cpp:2205:7:2205:7 | SideEffect | m2204_52 | | ir.cpp:2205:9:2205:13 | CallTarget | func:r2205_2 | | ir.cpp:2205:9:2205:13 | ChiPartial | partial:m2205_5 | -| ir.cpp:2205:9:2205:13 | ChiTotal | total:m2204_54 | -| ir.cpp:2205:9:2205:13 | SideEffect | ~m2204_54 | +| ir.cpp:2205:9:2205:13 | ChiTotal | total:m2204_50 | +| ir.cpp:2205:9:2205:13 | SideEffect | ~m2204_50 | | ir.cpp:2205:15:2205:17 | Arg(0) | 0:r2205_3 | | ir.cpp:2206:11:2206:11 | Address | &:r2206_1 | | ir.cpp:2206:11:2206:11 | Address | &:r2206_1 | @@ -11297,95 +11273,89 @@ | ir.cpp:2206:24:2206:26 | Right | r2206_10 | | ir.cpp:2210:5:2210:5 | Address | &:r2210_10 | | ir.cpp:2210:5:2210:5 | Address | &:r2210_14 | -| ir.cpp:2210:5:2210:5 | Address | &:r2210_22 | +| ir.cpp:2210:5:2210:5 | Address | &:r2210_20 | | ir.cpp:2210:26:2210:27 | Address | &:r2210_1 | | ir.cpp:2210:26:2210:27 | Address | &:r2210_1 | -| ir.cpp:2210:26:2210:27 | Address | &:r2210_62 | -| ir.cpp:2210:26:2210:27 | Address | &:r2210_62 | +| ir.cpp:2210:26:2210:27 | Address | &:r2210_58 | +| ir.cpp:2210:26:2210:27 | Address | &:r2210_58 | | ir.cpp:2210:26:2210:27 | Arg(this) | this:r2210_1 | -| ir.cpp:2210:26:2210:27 | Arg(this) | this:r2210_62 | -| ir.cpp:2210:26:2210:27 | CallTarget | func:r2210_63 | -| ir.cpp:2210:26:2210:27 | ChiPartial | partial:m2210_65 | -| ir.cpp:2210:26:2210:27 | ChiPartial | partial:m2210_68 | +| ir.cpp:2210:26:2210:27 | Arg(this) | this:r2210_58 | +| ir.cpp:2210:26:2210:27 | CallTarget | func:r2210_59 | +| ir.cpp:2210:26:2210:27 | ChiPartial | partial:m2210_61 | +| ir.cpp:2210:26:2210:27 | ChiPartial | partial:m2210_64 | | ir.cpp:2210:26:2210:27 | ChiTotal | total:m2210_9 | -| ir.cpp:2210:26:2210:27 | ChiTotal | total:m2210_59 | +| ir.cpp:2210:26:2210:27 | ChiTotal | total:m2210_55 | | ir.cpp:2210:26:2210:27 | SideEffect | m2210_9 | -| ir.cpp:2210:26:2210:27 | SideEffect | ~m2210_59 | +| ir.cpp:2210:26:2210:27 | SideEffect | ~m2210_55 | | ir.cpp:2210:29:2210:29 | Arg(0) | 0:r2210_4 | | ir.cpp:2210:29:2210:30 | CallTarget | func:r2210_3 | | ir.cpp:2210:29:2210:30 | ChiPartial | partial:m2210_6 | | ir.cpp:2210:29:2210:30 | ChiPartial | partial:m2210_8 | -| ir.cpp:2210:29:2210:30 | ChiTotal | total:m2204_47 | +| ir.cpp:2210:29:2210:30 | ChiTotal | total:m2204_43 | | ir.cpp:2210:29:2210:30 | ChiTotal | total:m2210_2 | -| ir.cpp:2210:29:2210:30 | SideEffect | ~m2204_47 | -| ir.cpp:2210:37:2210:37 | Address | &:r2210_54 | +| ir.cpp:2210:29:2210:30 | SideEffect | ~m2204_43 | +| ir.cpp:2210:37:2210:37 | Address | &:r2210_50 | | ir.cpp:2210:41:2210:41 | Address | &:r2210_15 | -| ir.cpp:2210:41:2210:41 | Address | &:r2210_23 | -| ir.cpp:2210:41:2210:41 | Address | &:r2210_45 | -| ir.cpp:2210:41:2210:41 | Address | &:r2210_45 | -| ir.cpp:2210:41:2210:41 | Address | &:r2210_57 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_21 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_41 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_41 | +| ir.cpp:2210:41:2210:41 | Address | &:r2210_53 | | ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_34 | | ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_37 | | ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_39 | | ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_40 | | ir.cpp:2210:41:2210:41 | Arg(this) | this:r0_47 | -| ir.cpp:2210:41:2210:41 | Arg(this) | this:r2210_45 | +| ir.cpp:2210:41:2210:41 | Arg(this) | this:r2210_41 | | ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_17 | -| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_25 | -| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_33 | -| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_34 | -| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_46 | -| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_56 | -| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_19 | -| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_27 | -| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_37 | -| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_39 | -| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_42 | -| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_48 | -| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_51 | -| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_58 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_23 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_29 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_30 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_42 | +| ir.cpp:2210:41:2210:41 | CallTarget | func:r2210_52 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_33 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_35 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_38 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_44 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_47 | +| ir.cpp:2210:41:2210:41 | ChiPartial | partial:m2210_54 | | ir.cpp:2210:41:2210:41 | ChiTotal | total:m0_41 | -| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_7 | -| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_20 | -| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_30 | -| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_31 | -| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_38 | -| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_43 | -| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_59 | -| ir.cpp:2210:41:2210:41 | Condition | r2210_41 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_26 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_27 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_34 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_39 | +| ir.cpp:2210:41:2210:41 | ChiTotal | total:m2210_55 | +| ir.cpp:2210:41:2210:41 | Condition | r2210_37 | | ir.cpp:2210:41:2210:41 | Load | m2210_13 | | ir.cpp:2210:41:2210:41 | Load | m2210_13 | -| ir.cpp:2210:41:2210:41 | Phi | from 15:m2210_21 | -| ir.cpp:2210:41:2210:41 | Phi | from 15:~m2210_28 | -| ir.cpp:2210:41:2210:41 | Phi | from 17:m2210_52 | -| ir.cpp:2210:41:2210:41 | Phi | from 17:~m2210_49 | -| ir.cpp:2210:41:2210:41 | SideEffect | m2210_30 | -| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_7 | -| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_20 | -| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_31 | -| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_38 | -| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_43 | -| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_59 | +| ir.cpp:2210:41:2210:41 | Phi | from 15:m2210_19 | +| ir.cpp:2210:41:2210:41 | Phi | from 15:~m2210_7 | +| ir.cpp:2210:41:2210:41 | Phi | from 17:m2210_48 | +| ir.cpp:2210:41:2210:41 | Phi | from 17:~m2210_45 | +| ir.cpp:2210:41:2210:41 | SideEffect | m2210_26 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_27 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_34 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_39 | +| ir.cpp:2210:41:2210:41 | SideEffect | ~m2210_55 | | ir.cpp:2210:41:2210:41 | StoreValue | r2210_18 | -| ir.cpp:2210:41:2210:41 | StoreValue | r2210_26 | +| ir.cpp:2210:41:2210:41 | StoreValue | r2210_24 | | ir.cpp:2210:41:2210:41 | Unary | r2210_16 | -| ir.cpp:2210:41:2210:41 | Unary | r2210_24 | -| ir.cpp:2210:41:2210:41 | Unary | r2210_32 | -| ir.cpp:2210:41:2210:41 | Unary | r2210_35 | -| ir.cpp:2210:41:2210:41 | Unary | r2210_47 | -| ir.cpp:2210:41:2210:41 | Unary | r2210_55 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_22 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_28 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_31 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_43 | +| ir.cpp:2210:41:2210:41 | Unary | r2210_51 | | ir.cpp:2210:41:2210:42 | StoreValue | r2210_12 | | ir.cpp:2210:41:2210:42 | Unary | r2210_11 | -| ir.cpp:2210:41:2210:43 | Load | ~m2210_59 | -| ir.cpp:2210:41:2210:43 | StoreValue | r2210_60 | +| ir.cpp:2210:41:2210:43 | Load | ~m2210_55 | +| ir.cpp:2210:41:2210:43 | StoreValue | r2210_56 | | ir.cpp:2211:11:2211:11 | Address | &:r2211_1 | | ir.cpp:2211:11:2211:11 | Left | r2211_2 | -| ir.cpp:2211:11:2211:11 | Load | m2210_61 | +| ir.cpp:2211:11:2211:11 | Load | m2210_57 | | ir.cpp:2211:11:2211:16 | Condition | r2211_4 | | ir.cpp:2211:16:2211:16 | Right | r2211_3 | | ir.cpp:2215:5:2215:5 | Address | &:r2215_14 | | ir.cpp:2215:5:2215:5 | Address | &:r2215_18 | -| ir.cpp:2215:5:2215:5 | Address | &:r2215_26 | +| ir.cpp:2215:5:2215:5 | Address | &:r2215_24 | | ir.cpp:2215:42:2215:43 | Address | &:r2215_1 | | ir.cpp:2215:42:2215:43 | Address | &:r2215_1 | | ir.cpp:2215:42:2215:43 | Arg(this) | this:r2215_1 | @@ -11399,88 +11369,82 @@ | ir.cpp:2215:45:2215:46 | CallTarget | func:r2215_3 | | ir.cpp:2215:45:2215:46 | ChiPartial | partial:m2215_10 | | ir.cpp:2215:45:2215:46 | ChiPartial | partial:m2215_12 | -| ir.cpp:2215:45:2215:46 | ChiTotal | total:m2210_43 | +| ir.cpp:2215:45:2215:46 | ChiTotal | total:m2210_39 | | ir.cpp:2215:45:2215:46 | ChiTotal | total:m2215_2 | -| ir.cpp:2215:45:2215:46 | SideEffect | ~m2210_43 | -| ir.cpp:2215:69:2215:69 | Address | &:r2215_49 | -| ir.cpp:2215:69:2215:69 | Address | &:r2215_57 | -| ir.cpp:2215:69:2215:69 | Address | &:r2215_57 | -| ir.cpp:2215:69:2215:69 | Arg(this) | this:r2215_57 | -| ir.cpp:2215:69:2215:69 | CallTarget | func:r2215_58 | -| ir.cpp:2215:69:2215:69 | ChiPartial | partial:m2215_60 | -| ir.cpp:2215:69:2215:69 | ChiPartial | partial:m2215_63 | -| ir.cpp:2215:69:2215:69 | ChiTotal | total:m2215_56 | +| ir.cpp:2215:45:2215:46 | SideEffect | ~m2210_39 | +| ir.cpp:2215:69:2215:69 | Address | &:r2215_45 | +| ir.cpp:2215:69:2215:69 | Address | &:r2215_53 | +| ir.cpp:2215:69:2215:69 | Address | &:r2215_53 | +| ir.cpp:2215:69:2215:69 | Arg(this) | this:r2215_53 | +| ir.cpp:2215:69:2215:69 | CallTarget | func:r2215_54 | +| ir.cpp:2215:69:2215:69 | ChiPartial | partial:m2215_56 | +| ir.cpp:2215:69:2215:69 | ChiPartial | partial:m2215_59 | +| ir.cpp:2215:69:2215:69 | ChiTotal | total:m2215_52 | | ir.cpp:2215:69:2215:69 | ChiTotal | total:m2218_13 | -| ir.cpp:2215:69:2215:69 | SideEffect | m2215_56 | +| ir.cpp:2215:69:2215:69 | SideEffect | m2215_52 | | ir.cpp:2215:69:2215:69 | SideEffect | ~m2218_13 | | ir.cpp:2215:73:2215:73 | Address | &:r2215_19 | -| ir.cpp:2215:73:2215:73 | Address | &:r2215_27 | -| ir.cpp:2215:73:2215:73 | Address | &:r2215_52 | -| ir.cpp:2215:73:2215:73 | Address | &:r2215_65 | -| ir.cpp:2215:73:2215:73 | Address | &:r2215_65 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_25 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_48 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_61 | +| ir.cpp:2215:73:2215:73 | Address | &:r2215_61 | | ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_50 | | ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_53 | | ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_55 | | ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_56 | | ir.cpp:2215:73:2215:73 | Arg(this) | this:r0_63 | -| ir.cpp:2215:73:2215:73 | Arg(this) | this:r2215_65 | +| ir.cpp:2215:73:2215:73 | Arg(this) | this:r2215_61 | | ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_21 | -| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_29 | -| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_37 | -| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_38 | -| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_51 | -| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_66 | -| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_23 | -| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_31 | -| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_41 | -| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_43 | -| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_46 | -| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_53 | -| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_68 | -| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_71 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_27 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_33 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_34 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_47 | +| ir.cpp:2215:73:2215:73 | CallTarget | func:r2215_62 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_37 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_39 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_42 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_49 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_64 | +| ir.cpp:2215:73:2215:73 | ChiPartial | partial:m2215_67 | | ir.cpp:2215:73:2215:73 | ChiTotal | total:m0_57 | -| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_11 | -| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_24 | -| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_34 | -| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_35 | -| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_42 | -| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_47 | -| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_61 | -| ir.cpp:2215:73:2215:73 | Condition | r2215_45 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_30 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_31 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_38 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_43 | +| ir.cpp:2215:73:2215:73 | ChiTotal | total:m2215_57 | +| ir.cpp:2215:73:2215:73 | Condition | r2215_41 | | ir.cpp:2215:73:2215:73 | Load | m2215_17 | | ir.cpp:2215:73:2215:73 | Load | m2215_17 | -| ir.cpp:2215:73:2215:73 | Phi | from 20:m2215_25 | -| ir.cpp:2215:73:2215:73 | Phi | from 20:~m2215_32 | -| ir.cpp:2215:73:2215:73 | Phi | from 22:m2215_72 | -| ir.cpp:2215:73:2215:73 | Phi | from 22:~m2215_69 | -| ir.cpp:2215:73:2215:73 | SideEffect | m2215_34 | -| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_11 | -| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_24 | -| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_35 | -| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_42 | -| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_47 | -| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_61 | +| ir.cpp:2215:73:2215:73 | Phi | from 20:m2215_23 | +| ir.cpp:2215:73:2215:73 | Phi | from 20:~m2215_11 | +| ir.cpp:2215:73:2215:73 | Phi | from 22:m2215_68 | +| ir.cpp:2215:73:2215:73 | Phi | from 22:~m2215_65 | +| ir.cpp:2215:73:2215:73 | SideEffect | m2215_30 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_31 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_38 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_43 | +| ir.cpp:2215:73:2215:73 | SideEffect | ~m2215_57 | | ir.cpp:2215:73:2215:73 | StoreValue | r2215_22 | -| ir.cpp:2215:73:2215:73 | StoreValue | r2215_30 | +| ir.cpp:2215:73:2215:73 | StoreValue | r2215_28 | | ir.cpp:2215:73:2215:73 | Unary | r2215_20 | -| ir.cpp:2215:73:2215:73 | Unary | r2215_28 | -| ir.cpp:2215:73:2215:73 | Unary | r2215_36 | -| ir.cpp:2215:73:2215:73 | Unary | r2215_39 | -| ir.cpp:2215:73:2215:73 | Unary | r2215_50 | -| ir.cpp:2215:73:2215:73 | Unary | r2215_67 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_26 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_32 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_35 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_46 | +| ir.cpp:2215:73:2215:73 | Unary | r2215_63 | | ir.cpp:2215:73:2215:74 | StoreValue | r2215_16 | | ir.cpp:2215:73:2215:74 | Unary | r2215_15 | -| ir.cpp:2215:73:2215:75 | Load | ~m2215_54 | -| ir.cpp:2215:73:2215:75 | StoreValue | r2215_55 | +| ir.cpp:2215:73:2215:75 | Load | ~m2215_50 | +| ir.cpp:2215:73:2215:75 | StoreValue | r2215_51 | | ir.cpp:2216:27:2216:28 | Address | &:r2216_1 | | ir.cpp:2216:27:2216:28 | Address | &:r2216_1 | | ir.cpp:2216:27:2216:28 | Arg(this) | this:r2216_1 | | ir.cpp:2216:27:2216:28 | CallTarget | func:r2216_3 | | ir.cpp:2216:27:2216:28 | ChiPartial | partial:m2216_5 | | ir.cpp:2216:27:2216:28 | ChiPartial | partial:m2216_7 | -| ir.cpp:2216:27:2216:28 | ChiTotal | total:m2215_54 | +| ir.cpp:2216:27:2216:28 | ChiTotal | total:m2215_50 | | ir.cpp:2216:27:2216:28 | ChiTotal | total:m2216_2 | -| ir.cpp:2216:27:2216:28 | SideEffect | ~m2215_54 | +| ir.cpp:2216:27:2216:28 | SideEffect | ~m2215_50 | | ir.cpp:2217:27:2217:28 | Address | &:r2217_1 | | ir.cpp:2217:27:2217:28 | Address | &:r2217_1 | | ir.cpp:2217:27:2217:28 | Arg(this) | this:r2217_1 | @@ -11531,15 +11495,15 @@ | ir.cpp:2219:1:2219:1 | ChiTotal | total:m2200_8 | | ir.cpp:2219:1:2219:1 | ChiTotal | total:m2200_8 | | ir.cpp:2219:1:2219:1 | ChiTotal | total:m2200_8 | -| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2204_69 | -| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2210_66 | -| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2215_47 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2204_65 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2210_62 | +| ir.cpp:2219:1:2219:1 | ChiTotal | total:m2215_43 | | ir.cpp:2219:1:2219:1 | SideEffect | m2200_8 | | ir.cpp:2219:1:2219:1 | SideEffect | m2200_8 | | ir.cpp:2219:1:2219:1 | SideEffect | m2200_8 | -| ir.cpp:2219:1:2219:1 | SideEffect | ~m2204_69 | -| ir.cpp:2219:1:2219:1 | SideEffect | ~m2210_66 | -| ir.cpp:2219:1:2219:1 | SideEffect | ~m2215_47 | +| ir.cpp:2219:1:2219:1 | SideEffect | ~m2204_65 | +| ir.cpp:2219:1:2219:1 | SideEffect | ~m2210_62 | +| ir.cpp:2219:1:2219:1 | SideEffect | ~m2215_43 | | ir.cpp:2221:6:2221:38 | ChiPartial | partial:m2221_3 | | ir.cpp:2221:6:2221:38 | ChiTotal | total:m2221_2 | | ir.cpp:2221:6:2221:38 | SideEffect | ~m2224_7 | @@ -12044,81 +12008,75 @@ | ir.cpp:2291:5:2291:5 | SideEffect | ~m2290_6 | | ir.cpp:2293:5:2293:5 | Address | &:r2293_1 | | ir.cpp:2293:5:2293:5 | Address | &:r2293_24 | -| ir.cpp:2293:5:2293:5 | Address | &:r2293_32 | -| ir.cpp:2293:16:2293:16 | Address | &:r2293_55 | -| ir.cpp:2293:16:2293:16 | Address | &:r2293_55 | -| ir.cpp:2293:16:2293:16 | Address | &:r2293_72 | -| ir.cpp:2293:16:2293:16 | Address | &:r2293_72 | -| ir.cpp:2293:16:2293:16 | Arg(this) | this:r2293_55 | -| ir.cpp:2293:16:2293:16 | Arg(this) | this:r2293_72 | -| ir.cpp:2293:16:2293:16 | CallTarget | func:r2293_57 | -| ir.cpp:2293:16:2293:16 | CallTarget | func:r2293_73 | -| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_67 | -| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_70 | -| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_75 | -| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_78 | -| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_56 | -| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_62 | -| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_71 | +| ir.cpp:2293:5:2293:5 | Address | &:r2293_30 | +| ir.cpp:2293:16:2293:16 | Address | &:r2293_51 | +| ir.cpp:2293:16:2293:16 | Address | &:r2293_51 | +| ir.cpp:2293:16:2293:16 | Address | &:r2293_68 | +| ir.cpp:2293:16:2293:16 | Address | &:r2293_68 | +| ir.cpp:2293:16:2293:16 | Arg(this) | this:r2293_51 | +| ir.cpp:2293:16:2293:16 | Arg(this) | this:r2293_68 | +| ir.cpp:2293:16:2293:16 | CallTarget | func:r2293_53 | +| ir.cpp:2293:16:2293:16 | CallTarget | func:r2293_69 | +| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_63 | +| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_66 | +| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_71 | +| ir.cpp:2293:16:2293:16 | ChiPartial | partial:m2293_74 | +| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_52 | +| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_58 | +| ir.cpp:2293:16:2293:16 | ChiTotal | total:m2293_67 | | ir.cpp:2293:16:2293:16 | ChiTotal | total:m2295_5 | -| ir.cpp:2293:16:2293:16 | SideEffect | m2293_71 | -| ir.cpp:2293:16:2293:16 | SideEffect | ~m2293_62 | +| ir.cpp:2293:16:2293:16 | SideEffect | m2293_67 | +| ir.cpp:2293:16:2293:16 | SideEffect | ~m2293_58 | | ir.cpp:2293:16:2293:16 | SideEffect | ~m2295_5 | | ir.cpp:2293:20:2293:20 | Address | &:r2293_25 | -| ir.cpp:2293:20:2293:20 | Address | &:r2293_33 | -| ir.cpp:2293:20:2293:20 | Address | &:r2293_80 | -| ir.cpp:2293:20:2293:20 | Address | &:r2293_80 | +| ir.cpp:2293:20:2293:20 | Address | &:r2293_31 | +| ir.cpp:2293:20:2293:20 | Address | &:r2293_76 | +| ir.cpp:2293:20:2293:20 | Address | &:r2293_76 | | ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_2 | | ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_5 | | ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_7 | | ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_8 | | ir.cpp:2293:20:2293:20 | Arg(this) | this:r0_15 | -| ir.cpp:2293:20:2293:20 | Arg(this) | this:r2293_80 | +| ir.cpp:2293:20:2293:20 | Arg(this) | this:r2293_76 | | ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_27 | -| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_35 | -| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_43 | -| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_44 | -| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_59 | -| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_81 | -| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_29 | -| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_37 | -| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_47 | -| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_49 | -| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_52 | -| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_61 | -| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_83 | -| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_86 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_33 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_39 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_40 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_55 | +| ir.cpp:2293:20:2293:20 | CallTarget | func:r2293_77 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_43 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_45 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_48 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_57 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_79 | +| ir.cpp:2293:20:2293:20 | ChiPartial | partial:m2293_82 | | ir.cpp:2293:20:2293:20 | ChiTotal | total:m0_9 | -| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_19 | -| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_30 | -| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_40 | -| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_41 | -| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_48 | -| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_53 | -| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_76 | -| ir.cpp:2293:20:2293:20 | Condition | r2293_51 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_36 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_37 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_44 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_49 | +| ir.cpp:2293:20:2293:20 | ChiTotal | total:m2293_72 | +| ir.cpp:2293:20:2293:20 | Condition | r2293_47 | | ir.cpp:2293:20:2293:20 | Load | m2293_23 | | ir.cpp:2293:20:2293:20 | Load | m2293_23 | -| ir.cpp:2293:20:2293:20 | Phi | from 3:m2293_31 | -| ir.cpp:2293:20:2293:20 | Phi | from 3:~m2293_38 | -| ir.cpp:2293:20:2293:20 | Phi | from 5:m2293_87 | -| ir.cpp:2293:20:2293:20 | Phi | from 5:~m2293_84 | -| ir.cpp:2293:20:2293:20 | SideEffect | m2293_40 | -| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_19 | -| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_30 | -| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_41 | -| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_48 | -| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_53 | -| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_76 | +| ir.cpp:2293:20:2293:20 | Phi | from 3:m2293_29 | +| ir.cpp:2293:20:2293:20 | Phi | from 3:~m2293_19 | +| ir.cpp:2293:20:2293:20 | Phi | from 5:m2293_83 | +| ir.cpp:2293:20:2293:20 | Phi | from 5:~m2293_80 | +| ir.cpp:2293:20:2293:20 | SideEffect | m2293_36 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_37 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_44 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_49 | +| ir.cpp:2293:20:2293:20 | SideEffect | ~m2293_72 | | ir.cpp:2293:20:2293:20 | StoreValue | r2293_28 | -| ir.cpp:2293:20:2293:20 | StoreValue | r2293_36 | +| ir.cpp:2293:20:2293:20 | StoreValue | r2293_34 | | ir.cpp:2293:20:2293:20 | Unary | r2293_26 | -| ir.cpp:2293:20:2293:20 | Unary | r2293_34 | -| ir.cpp:2293:20:2293:20 | Unary | r2293_42 | -| ir.cpp:2293:20:2293:20 | Unary | r2293_45 | -| ir.cpp:2293:20:2293:20 | Unary | r2293_58 | -| ir.cpp:2293:20:2293:20 | Unary | r2293_60 | -| ir.cpp:2293:20:2293:20 | Unary | r2293_82 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_32 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_38 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_41 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_54 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_56 | +| ir.cpp:2293:20:2293:20 | Unary | r2293_78 | | ir.cpp:2293:20:2293:55 | Address | &:r2293_2 | | ir.cpp:2293:20:2293:55 | Address | &:r2293_2 | | ir.cpp:2293:20:2293:55 | Arg(this) | this:r2293_2 | @@ -12130,11 +12088,11 @@ | ir.cpp:2293:20:2293:55 | SideEffect | ~m2293_12 | | ir.cpp:2293:20:2293:55 | StoreValue | r2293_22 | | ir.cpp:2293:20:2293:55 | Unary | r2293_2 | -| ir.cpp:2293:20:2293:56 | Address | &:r2293_65 | -| ir.cpp:2293:20:2293:56 | Arg(0) | 0:r2293_65 | -| ir.cpp:2293:20:2293:56 | SideEffect | ~m2293_68 | -| ir.cpp:2293:20:2293:56 | Unary | r2293_63 | -| ir.cpp:2293:20:2293:56 | Unary | r2293_64 | +| ir.cpp:2293:20:2293:56 | Address | &:r2293_61 | +| ir.cpp:2293:20:2293:56 | Arg(0) | 0:r2293_61 | +| ir.cpp:2293:20:2293:56 | SideEffect | ~m2293_64 | +| ir.cpp:2293:20:2293:56 | Unary | r2293_59 | +| ir.cpp:2293:20:2293:56 | Unary | r2293_60 | | ir.cpp:2293:40:2293:54 | Address | &:r2293_5 | | ir.cpp:2293:40:2293:54 | Address | &:r2293_5 | | ir.cpp:2293:40:2293:54 | Address | &:r2293_5 | @@ -12157,9 +12115,9 @@ | ir.cpp:2294:16:2294:17 | CallTarget | func:r2294_3 | | ir.cpp:2294:16:2294:17 | ChiPartial | partial:m2294_5 | | ir.cpp:2294:16:2294:17 | ChiPartial | partial:m2294_7 | -| ir.cpp:2294:16:2294:17 | ChiTotal | total:m2293_68 | +| ir.cpp:2294:16:2294:17 | ChiTotal | total:m2293_64 | | ir.cpp:2294:16:2294:17 | ChiTotal | total:m2294_2 | -| ir.cpp:2294:16:2294:17 | SideEffect | ~m2293_68 | +| ir.cpp:2294:16:2294:17 | SideEffect | ~m2293_64 | | ir.cpp:2295:5:2295:5 | Address | &:r2295_1 | | ir.cpp:2295:5:2295:5 | Address | &:r2295_1 | | ir.cpp:2295:5:2295:5 | Arg(this) | this:r2295_1 | @@ -12190,9 +12148,9 @@ | ir.cpp:2297:18:2297:25 | CallTarget | func:r2297_3 | | ir.cpp:2297:18:2297:25 | ChiPartial | partial:m2297_7 | | ir.cpp:2297:18:2297:25 | ChiPartial | partial:m2297_10 | -| ir.cpp:2297:18:2297:25 | ChiTotal | total:m2293_53 | +| ir.cpp:2297:18:2297:25 | ChiTotal | total:m2293_49 | | ir.cpp:2297:18:2297:25 | ChiTotal | total:m2297_2 | -| ir.cpp:2297:18:2297:25 | SideEffect | ~m2293_53 | +| ir.cpp:2297:18:2297:25 | SideEffect | ~m2293_49 | | ir.cpp:2297:28:2297:29 | Address | &:r2297_12 | | ir.cpp:2297:28:2297:29 | Address | &:r2297_12 | | ir.cpp:2297:28:2297:29 | Address | &:r2297_42 | 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 1ac2a6c9f8a..0c42f3d2af6 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -6846,52 +6846,50 @@ ir.cpp: #-----| r0_1(glval<vector<int>>) = CopyValue : r1127_9 # 1127| r1127_10(glval<unknown>) = FunctionAddress[begin] : # 1127| r1127_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r1127_10, this:r0_1 -# 1127| mu1127_12(unknown) = ^CallSideEffect : ~m? #-----| v0_2(void) = ^IndirectReadSideEffect[-1] : &:r0_1, ~m? -# 1127| mu1127_13(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1127_7, r1127_11 -# 1127| r1127_14(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -# 1127| r1127_15(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1127| r1127_16(vector<int> &) = Load[(__range)] : &:r1127_15, ~m? -#-----| r0_3(glval<vector<int>>) = CopyValue : r1127_16 -# 1127| r1127_17(glval<unknown>) = FunctionAddress[end] : -# 1127| r1127_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1127_17, this:r0_3 -# 1127| mu1127_19(unknown) = ^CallSideEffect : ~m? +# 1127| mu1127_12(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1127_7, r1127_11 +# 1127| r1127_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 1127| r1127_14(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1127| r1127_15(vector<int> &) = Load[(__range)] : &:r1127_14, ~m? +#-----| r0_3(glval<vector<int>>) = CopyValue : r1127_15 +# 1127| r1127_16(glval<unknown>) = FunctionAddress[end] : +# 1127| r1127_17(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1127_16, this:r0_3 #-----| v0_4(void) = ^IndirectReadSideEffect[-1] : &:r0_3, ~m? -# 1127| mu1127_20(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1127_14, r1127_18 +# 1127| mu1127_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1127_13, r1127_17 #-----| Goto -> Block 1 # 1127| Block 1 -# 1127| r1127_21(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_5(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_21 -# 1127| r1127_22(glval<unknown>) = FunctionAddress[operator!=] : +# 1127| r1127_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_5(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_19 +# 1127| r1127_20(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_6(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : #-----| mu0_7(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_6 -# 1127| r1127_23(glval<unknown>) = FunctionAddress[iterator] : -# 1127| r1127_24(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -#-----| r0_8(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_24 +# 1127| r1127_21(glval<unknown>) = FunctionAddress[iterator] : +# 1127| r1127_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_22 #-----| r0_9(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_8 -# 1127| v1127_25(void) = Call[iterator] : func:r1127_23, this:r0_6, 0:r0_9 -# 1127| mu1127_26(unknown) = ^CallSideEffect : ~m? +# 1127| v1127_23(void) = Call[iterator] : func:r1127_21, this:r0_6, 0:r0_9 +# 1127| mu1127_24(unknown) = ^CallSideEffect : ~m? #-----| v0_10(void) = ^BufferReadSideEffect[0] : &:r0_9, ~m? -# 1127| mu1127_27(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_6 +# 1127| mu1127_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_6 #-----| r0_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_6, ~m? -# 1127| r1127_28(bool) = Call[operator!=] : func:r1127_22, this:r0_5, 0:r0_11 -# 1127| mu1127_29(unknown) = ^CallSideEffect : ~m? +# 1127| r1127_26(bool) = Call[operator!=] : func:r1127_20, this:r0_5, 0:r0_11 +# 1127| mu1127_27(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 1127| v1127_30(void) = ConditionalBranch : r1127_28 +# 1127| v1127_28(void) = ConditionalBranch : r1127_26 #-----| False -> Block 5 #-----| True -> Block 2 # 1127| Block 2 -# 1127| r1127_31(glval<int>) = VariableAddress[e] : -# 1127| r1127_32(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_32 -# 1127| r1127_33(glval<unknown>) = FunctionAddress[operator*] : -# 1127| r1127_34(int &) = Call[operator*] : func:r1127_33, this:r0_13 -# 1127| mu1127_35(unknown) = ^CallSideEffect : ~m? +# 1127| r1127_29(glval<int>) = VariableAddress[e] : +# 1127| r1127_30(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1127_30 +# 1127| r1127_31(glval<unknown>) = FunctionAddress[operator*] : +# 1127| r1127_32(int &) = Call[operator*] : func:r1127_31, this:r0_13 +# 1127| mu1127_33(unknown) = ^CallSideEffect : ~m? #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_13, ~m? -# 1127| r1127_36(int) = Load[?] : &:r1127_34, ~m? -# 1127| mu1127_37(int) = Store[e] : &:r1127_31, r1127_36 +# 1127| r1127_34(int) = Load[?] : &:r1127_32, ~m? +# 1127| mu1127_35(int) = Store[e] : &:r1127_29, r1127_34 # 1128| r1128_1(glval<int>) = VariableAddress[e] : # 1128| r1128_2(int) = Load[e] : &:r1128_1, ~m? # 1128| r1128_3(int) = Constant[0] : @@ -6905,14 +6903,14 @@ ir.cpp: #-----| Goto -> Block 4 # 1127| Block 4 -# 1127| v1127_38(void) = NoOp : -# 1127| r1127_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -# 1127| r1127_40(glval<unknown>) = FunctionAddress[operator++] : -# 1127| r1127_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1127_40, this:r1127_39 -# 1127| mu1127_42(unknown) = ^CallSideEffect : ~m? -# 1127| v1127_43(void) = ^IndirectReadSideEffect[-1] : &:r1127_39, ~m? -# 1127| mu1127_44(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1127_39 -# 1127| r1127_45(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1127_41 +# 1127| v1127_36(void) = NoOp : +# 1127| r1127_37(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1127| r1127_38(glval<unknown>) = FunctionAddress[operator++] : +# 1127| r1127_39(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1127_38, this:r1127_37 +# 1127| mu1127_40(unknown) = ^CallSideEffect : ~m? +# 1127| v1127_41(void) = ^IndirectReadSideEffect[-1] : &:r1127_37, ~m? +# 1127| mu1127_42(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1127_37 +# 1127| r1127_43(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1127_39 #-----| Goto (back edge) -> Block 1 # 1133| Block 5 @@ -6928,64 +6926,62 @@ ir.cpp: #-----| r0_15(glval<vector<int>>) = CopyValue : r1133_9 # 1133| r1133_10(glval<unknown>) = FunctionAddress[begin] : # 1133| r1133_11(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r1133_10, this:r0_15 -# 1133| mu1133_12(unknown) = ^CallSideEffect : ~m? #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 1133| mu1133_13(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1133_7, r1133_11 -# 1133| r1133_14(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -# 1133| r1133_15(glval<vector<int> &>) = VariableAddress[(__range)] : -# 1133| r1133_16(vector<int> &) = Load[(__range)] : &:r1133_15, ~m? -#-----| r0_17(glval<vector<int>>) = CopyValue : r1133_16 -# 1133| r1133_17(glval<unknown>) = FunctionAddress[end] : -# 1133| r1133_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1133_17, this:r0_17 -# 1133| mu1133_19(unknown) = ^CallSideEffect : ~m? +# 1133| mu1133_12(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r1133_7, r1133_11 +# 1133| r1133_13(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 1133| r1133_14(glval<vector<int> &>) = VariableAddress[(__range)] : +# 1133| r1133_15(vector<int> &) = Load[(__range)] : &:r1133_14, ~m? +#-----| r0_17(glval<vector<int>>) = CopyValue : r1133_15 +# 1133| r1133_16(glval<unknown>) = FunctionAddress[end] : +# 1133| r1133_17(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r1133_16, this:r0_17 #-----| v0_18(void) = ^IndirectReadSideEffect[-1] : &:r0_17, ~m? -# 1133| mu1133_20(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1133_14, r1133_18 +# 1133| mu1133_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r1133_13, r1133_17 #-----| Goto -> Block 6 # 1133| Block 6 -# 1133| r1133_21(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_21 -# 1133| r1133_22(glval<unknown>) = FunctionAddress[operator!=] : +# 1133| r1133_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_19 +# 1133| r1133_20(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_20(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : #-----| mu0_21(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_20 -# 1133| r1133_23(glval<unknown>) = FunctionAddress[iterator] : -# 1133| r1133_24(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -#-----| r0_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_24 +# 1133| r1133_21(glval<unknown>) = FunctionAddress[iterator] : +# 1133| r1133_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_22(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_22 #-----| r0_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_22 -# 1133| v1133_25(void) = Call[iterator] : func:r1133_23, this:r0_20, 0:r0_23 -# 1133| mu1133_26(unknown) = ^CallSideEffect : ~m? +# 1133| v1133_23(void) = Call[iterator] : func:r1133_21, this:r0_20, 0:r0_23 +# 1133| mu1133_24(unknown) = ^CallSideEffect : ~m? #-----| v0_24(void) = ^BufferReadSideEffect[0] : &:r0_23, ~m? -# 1133| mu1133_27(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_20 +# 1133| mu1133_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_20 #-----| r0_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_20, ~m? -# 1133| r1133_28(bool) = Call[operator!=] : func:r1133_22, this:r0_19, 0:r0_25 -# 1133| mu1133_29(unknown) = ^CallSideEffect : ~m? +# 1133| r1133_26(bool) = Call[operator!=] : func:r1133_20, this:r0_19, 0:r0_25 +# 1133| mu1133_27(unknown) = ^CallSideEffect : ~m? #-----| v0_26(void) = ^IndirectReadSideEffect[-1] : &:r0_19, ~m? -# 1133| v1133_30(void) = ConditionalBranch : r1133_28 +# 1133| v1133_28(void) = ConditionalBranch : r1133_26 #-----| False -> Block 10 #-----| True -> Block 8 # 1133| Block 7 -# 1133| r1133_31(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -# 1133| r1133_32(glval<unknown>) = FunctionAddress[operator++] : -# 1133| r1133_33(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1133_32, this:r1133_31 -# 1133| mu1133_34(unknown) = ^CallSideEffect : ~m? -# 1133| v1133_35(void) = ^IndirectReadSideEffect[-1] : &:r1133_31, ~m? -# 1133| mu1133_36(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1133_31 -# 1133| r1133_37(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1133_33 +# 1133| r1133_29(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 1133| r1133_30(glval<unknown>) = FunctionAddress[operator++] : +# 1133| r1133_31(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r1133_30, this:r1133_29 +# 1133| mu1133_32(unknown) = ^CallSideEffect : ~m? +# 1133| v1133_33(void) = ^IndirectReadSideEffect[-1] : &:r1133_29, ~m? +# 1133| mu1133_34(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r1133_29 +# 1133| r1133_35(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r1133_31 #-----| Goto (back edge) -> Block 6 # 1133| Block 8 -# 1133| r1133_38(glval<int &>) = VariableAddress[e] : -# 1133| r1133_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_27(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_39 -# 1133| r1133_40(glval<unknown>) = FunctionAddress[operator*] : -# 1133| r1133_41(int &) = Call[operator*] : func:r1133_40, this:r0_27 -# 1133| mu1133_42(unknown) = ^CallSideEffect : ~m? +# 1133| r1133_36(glval<int &>) = VariableAddress[e] : +# 1133| r1133_37(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_27(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r1133_37 +# 1133| r1133_38(glval<unknown>) = FunctionAddress[operator*] : +# 1133| r1133_39(int &) = Call[operator*] : func:r1133_38, this:r0_27 +# 1133| mu1133_40(unknown) = ^CallSideEffect : ~m? #-----| v0_28(void) = ^IndirectReadSideEffect[-1] : &:r0_27, ~m? -# 1133| r1133_43(glval<int>) = CopyValue : r1133_41 -# 1133| r1133_44(glval<int>) = Convert : r1133_43 -# 1133| r1133_45(int &) = CopyValue : r1133_44 -# 1133| mu1133_46(int &) = Store[e] : &:r1133_38, r1133_45 +# 1133| r1133_41(glval<int>) = CopyValue : r1133_39 +# 1133| r1133_42(glval<int>) = Convert : r1133_41 +# 1133| r1133_43(int &) = CopyValue : r1133_42 +# 1133| mu1133_44(int &) = Store[e] : &:r1133_36, r1133_43 # 1134| r1134_1(glval<int &>) = VariableAddress[e] : # 1134| r1134_2(int &) = Load[e] : &:r1134_1, ~m? # 1134| r1134_3(int) = Load[?] : &:r1134_2, ~m? @@ -12492,53 +12488,51 @@ ir.cpp: #-----| r0_2(glval<vector<ClassWithDestructor>>) = Convert : r0_1 # 2201| r2201_19(glval<unknown>) = FunctionAddress[begin] : # 2201| r2201_20(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2201_19, this:r0_2 -# 2201| mu2201_21(unknown) = ^CallSideEffect : ~m? #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2201| mu2201_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2201_16, r2201_20 -# 2201| r2201_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -# 2201| r2201_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2201| r2201_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2201_24, ~m? -#-----| r0_4(glval<vector<ClassWithDestructor>>) = CopyValue : r2201_25 +# 2201| mu2201_21(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2201_16, r2201_20 +# 2201| r2201_22(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2201| r2201_23(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2201| r2201_24(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2201_23, ~m? +#-----| r0_4(glval<vector<ClassWithDestructor>>) = CopyValue : r2201_24 #-----| r0_5(glval<vector<ClassWithDestructor>>) = Convert : r0_4 -# 2201| r2201_26(glval<unknown>) = FunctionAddress[end] : -# 2201| r2201_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2201_26, this:r0_5 -# 2201| mu2201_28(unknown) = ^CallSideEffect : ~m? +# 2201| r2201_25(glval<unknown>) = FunctionAddress[end] : +# 2201| r2201_26(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2201_25, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2201| mu2201_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2201_23, r2201_27 +# 2201| mu2201_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2201_22, r2201_26 #-----| Goto -> Block 11 # 2201| Block 11 -# 2201| r2201_30(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_30 -# 2201| r2201_31(glval<unknown>) = FunctionAddress[operator!=] : +# 2201| r2201_28(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_28 +# 2201| r2201_29(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_8(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : #-----| mu0_9(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_8 -# 2201| r2201_32(glval<unknown>) = FunctionAddress[iterator] : -# 2201| r2201_33(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -#-----| r0_10(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_33 +# 2201| r2201_30(glval<unknown>) = FunctionAddress[iterator] : +# 2201| r2201_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_31 #-----| r0_11(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_10 -# 2201| v2201_34(void) = Call[iterator] : func:r2201_32, this:r0_8, 0:r0_11 -# 2201| mu2201_35(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_32(void) = Call[iterator] : func:r2201_30, this:r0_8, 0:r0_11 +# 2201| mu2201_33(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? -# 2201| mu2201_36(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2201| mu2201_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 #-----| r0_13(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_8, ~m? -# 2201| r2201_37(bool) = Call[operator!=] : func:r2201_31, this:r0_7, 0:r0_13 -# 2201| mu2201_38(unknown) = ^CallSideEffect : ~m? +# 2201| r2201_35(bool) = Call[operator!=] : func:r2201_29, this:r0_7, 0:r0_13 +# 2201| mu2201_36(unknown) = ^CallSideEffect : ~m? #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2201| v2201_39(void) = ConditionalBranch : r2201_37 +# 2201| v2201_37(void) = ConditionalBranch : r2201_35 #-----| False -> Block 14 #-----| True -> Block 12 # 2201| Block 12 -# 2201| r2201_40(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2201| r2201_41(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_15(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_41 -# 2201| r2201_42(glval<unknown>) = FunctionAddress[operator*] : -# 2201| r2201_43(ClassWithDestructor &) = Call[operator*] : func:r2201_42, this:r0_15 -# 2201| mu2201_44(unknown) = ^CallSideEffect : ~m? +# 2201| r2201_38(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2201| r2201_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2201_39 +# 2201| r2201_40(glval<unknown>) = FunctionAddress[operator*] : +# 2201| r2201_41(ClassWithDestructor &) = Call[operator*] : func:r2201_40, this:r0_15 +# 2201| mu2201_42(unknown) = ^CallSideEffect : ~m? #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2201| r2201_45(ClassWithDestructor) = Load[?] : &:r2201_43, ~m? -# 2201| mu2201_46(ClassWithDestructor) = Store[y] : &:r2201_40, r2201_45 +# 2201| r2201_43(ClassWithDestructor) = Load[?] : &:r2201_41, ~m? +# 2201| mu2201_44(ClassWithDestructor) = Store[y] : &:r2201_38, r2201_43 # 2202| r2202_1(glval<ClassWithDestructor>) = VariableAddress[y] : # 2202| r2202_2(glval<unknown>) = FunctionAddress[set_x] : # 2202| r2202_3(char) = Constant[97] : @@ -12546,28 +12540,28 @@ ir.cpp: # 2202| mu2202_5(unknown) = ^CallSideEffect : ~m? # 2202| v2202_6(void) = ^IndirectReadSideEffect[-1] : &:r2202_1, ~m? # 2202| mu2202_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2202_1 -# 2201| r2201_47(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2201| r2201_48(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2201| v2201_49(void) = Call[~ClassWithDestructor] : func:r2201_48, this:r2201_47 -# 2201| mu2201_50(unknown) = ^CallSideEffect : ~m? -# 2201| v2201_51(void) = ^IndirectReadSideEffect[-1] : &:r2201_47, ~m? -# 2201| mu2201_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_47 -# 2201| r2201_53(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -# 2201| r2201_54(glval<unknown>) = FunctionAddress[operator++] : -# 2201| r2201_55(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2201_54, this:r2201_53 -# 2201| mu2201_56(unknown) = ^CallSideEffect : ~m? -# 2201| v2201_57(void) = ^IndirectReadSideEffect[-1] : &:r2201_53, ~m? -# 2201| mu2201_58(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_53 -# 2201| r2201_59(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2201_55 +# 2201| r2201_45(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2201| r2201_46(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2201| v2201_47(void) = Call[~ClassWithDestructor] : func:r2201_46, this:r2201_45 +# 2201| mu2201_48(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_49(void) = ^IndirectReadSideEffect[-1] : &:r2201_45, ~m? +# 2201| mu2201_50(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2201_45 +# 2201| r2201_51(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2201| r2201_52(glval<unknown>) = FunctionAddress[operator++] : +# 2201| r2201_53(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2201_52, this:r2201_51 +# 2201| mu2201_54(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_55(void) = ^IndirectReadSideEffect[-1] : &:r2201_51, ~m? +# 2201| mu2201_56(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_51 +# 2201| r2201_57(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2201_53 #-----| Goto (back edge) -> Block 11 # 2201| Block 13 -# 2201| r2201_60(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2201| r2201_61(glval<unknown>) = FunctionAddress[~vector] : -# 2201| v2201_62(void) = Call[~vector] : func:r2201_61, this:r2201_60 -# 2201| mu2201_63(unknown) = ^CallSideEffect : ~m? -# 2201| v2201_64(void) = ^IndirectReadSideEffect[-1] : &:r2201_60, ~m? -# 2201| mu2201_65(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_60 +# 2201| r2201_58(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2201| r2201_59(glval<unknown>) = FunctionAddress[~vector] : +# 2201| v2201_60(void) = Call[~vector] : func:r2201_59, this:r2201_58 +# 2201| mu2201_61(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_62(void) = ^IndirectReadSideEffect[-1] : &:r2201_58, ~m? +# 2201| mu2201_63(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2201_58 #-----| Goto -> Block 14 # 2204| Block 14 @@ -12593,53 +12587,51 @@ ir.cpp: #-----| r0_18(glval<vector<ClassWithDestructor>>) = Convert : r0_17 # 2204| r2204_19(glval<unknown>) = FunctionAddress[begin] : # 2204| r2204_20(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2204_19, this:r0_18 -# 2204| mu2204_21(unknown) = ^CallSideEffect : ~m? #-----| v0_19(void) = ^IndirectReadSideEffect[-1] : &:r0_18, ~m? -# 2204| mu2204_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2204_16, r2204_20 -# 2204| r2204_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -# 2204| r2204_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2204| r2204_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2204_24, ~m? -#-----| r0_20(glval<vector<ClassWithDestructor>>) = CopyValue : r2204_25 +# 2204| mu2204_21(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2204_16, r2204_20 +# 2204| r2204_22(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2204| r2204_23(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2204| r2204_24(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2204_23, ~m? +#-----| r0_20(glval<vector<ClassWithDestructor>>) = CopyValue : r2204_24 #-----| r0_21(glval<vector<ClassWithDestructor>>) = Convert : r0_20 -# 2204| r2204_26(glval<unknown>) = FunctionAddress[end] : -# 2204| r2204_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2204_26, this:r0_21 -# 2204| mu2204_28(unknown) = ^CallSideEffect : ~m? +# 2204| r2204_25(glval<unknown>) = FunctionAddress[end] : +# 2204| r2204_26(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2204_25, this:r0_21 #-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_21, ~m? -# 2204| mu2204_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2204_23, r2204_27 +# 2204| mu2204_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2204_22, r2204_26 #-----| Goto -> Block 15 # 2204| Block 15 -# 2204| r2204_30(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_30 -# 2204| r2204_31(glval<unknown>) = FunctionAddress[operator!=] : +# 2204| r2204_28(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_28 +# 2204| r2204_29(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_24(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : #-----| mu0_25(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_24 -# 2204| r2204_32(glval<unknown>) = FunctionAddress[iterator] : -# 2204| r2204_33(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -#-----| r0_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_33 +# 2204| r2204_30(glval<unknown>) = FunctionAddress[iterator] : +# 2204| r2204_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_26(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_31 #-----| r0_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_26 -# 2204| v2204_34(void) = Call[iterator] : func:r2204_32, this:r0_24, 0:r0_27 -# 2204| mu2204_35(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_32(void) = Call[iterator] : func:r2204_30, this:r0_24, 0:r0_27 +# 2204| mu2204_33(unknown) = ^CallSideEffect : ~m? #-----| v0_28(void) = ^BufferReadSideEffect[0] : &:r0_27, ~m? -# 2204| mu2204_36(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 +# 2204| mu2204_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 #-----| r0_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_24, ~m? -# 2204| r2204_37(bool) = Call[operator!=] : func:r2204_31, this:r0_23, 0:r0_29 -# 2204| mu2204_38(unknown) = ^CallSideEffect : ~m? +# 2204| r2204_35(bool) = Call[operator!=] : func:r2204_29, this:r0_23, 0:r0_29 +# 2204| mu2204_36(unknown) = ^CallSideEffect : ~m? #-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_23, ~m? -# 2204| v2204_39(void) = ConditionalBranch : r2204_37 +# 2204| v2204_37(void) = ConditionalBranch : r2204_35 #-----| False -> Block 20 #-----| True -> Block 16 # 2204| Block 16 -# 2204| r2204_40(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2204| r2204_41(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_41 -# 2204| r2204_42(glval<unknown>) = FunctionAddress[operator*] : -# 2204| r2204_43(ClassWithDestructor &) = Call[operator*] : func:r2204_42, this:r0_31 -# 2204| mu2204_44(unknown) = ^CallSideEffect : ~m? +# 2204| r2204_38(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2204_39 +# 2204| r2204_40(glval<unknown>) = FunctionAddress[operator*] : +# 2204| r2204_41(ClassWithDestructor &) = Call[operator*] : func:r2204_40, this:r0_31 +# 2204| mu2204_42(unknown) = ^CallSideEffect : ~m? #-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_31, ~m? -# 2204| r2204_45(ClassWithDestructor) = Load[?] : &:r2204_43, ~m? -# 2204| mu2204_46(ClassWithDestructor) = Store[y] : &:r2204_40, r2204_45 +# 2204| r2204_43(ClassWithDestructor) = Load[?] : &:r2204_41, ~m? +# 2204| mu2204_44(ClassWithDestructor) = Store[y] : &:r2204_38, r2204_43 # 2205| r2205_1(glval<ClassWithDestructor>) = VariableAddress[y] : # 2205| r2205_2(glval<unknown>) = FunctionAddress[set_x] : # 2205| r2205_3(char) = Constant[97] : @@ -12662,18 +12654,18 @@ ir.cpp: # 2207| Block 17 # 2207| v2207_1(void) = NoOp : -# 2204| r2204_47(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2204| r2204_48(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2204| v2204_49(void) = Call[~ClassWithDestructor] : func:r2204_48, this:r2204_47 -# 2204| mu2204_50(unknown) = ^CallSideEffect : ~m? -# 2204| v2204_51(void) = ^IndirectReadSideEffect[-1] : &:r2204_47, ~m? -# 2204| mu2204_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_47 -# 2204| r2204_53(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2204| r2204_54(glval<unknown>) = FunctionAddress[~vector] : -# 2204| v2204_55(void) = Call[~vector] : func:r2204_54, this:r2204_53 -# 2204| mu2204_56(unknown) = ^CallSideEffect : ~m? -# 2204| v2204_57(void) = ^IndirectReadSideEffect[-1] : &:r2204_53, ~m? -# 2204| mu2204_58(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_53 +# 2204| r2204_45(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_46(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2204| v2204_47(void) = Call[~ClassWithDestructor] : func:r2204_46, this:r2204_45 +# 2204| mu2204_48(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_49(void) = ^IndirectReadSideEffect[-1] : &:r2204_45, ~m? +# 2204| mu2204_50(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_45 +# 2204| r2204_51(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| r2204_52(glval<unknown>) = FunctionAddress[~vector] : +# 2204| v2204_53(void) = Call[~vector] : func:r2204_52, this:r2204_51 +# 2204| mu2204_54(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_55(void) = ^IndirectReadSideEffect[-1] : &:r2204_51, ~m? +# 2204| mu2204_56(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_51 # 2219| r2219_1(glval<ClassWithDestructor>) = VariableAddress[x] : # 2219| r2219_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : # 2219| v2219_3(void) = Call[~ClassWithDestructor] : func:r2219_2, this:r2219_1 @@ -12683,28 +12675,28 @@ ir.cpp: #-----| Goto -> Block 1 # 2204| Block 18 -# 2204| r2204_59(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2204| r2204_60(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2204| v2204_61(void) = Call[~ClassWithDestructor] : func:r2204_60, this:r2204_59 -# 2204| mu2204_62(unknown) = ^CallSideEffect : ~m? -# 2204| v2204_63(void) = ^IndirectReadSideEffect[-1] : &:r2204_59, ~m? -# 2204| mu2204_64(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_59 -# 2204| r2204_65(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -# 2204| r2204_66(glval<unknown>) = FunctionAddress[operator++] : -# 2204| r2204_67(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2204_66, this:r2204_65 -# 2204| mu2204_68(unknown) = ^CallSideEffect : ~m? -# 2204| v2204_69(void) = ^IndirectReadSideEffect[-1] : &:r2204_65, ~m? -# 2204| mu2204_70(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_65 -# 2204| r2204_71(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2204_67 +# 2204| r2204_57(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2204| r2204_58(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2204| v2204_59(void) = Call[~ClassWithDestructor] : func:r2204_58, this:r2204_57 +# 2204| mu2204_60(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_61(void) = ^IndirectReadSideEffect[-1] : &:r2204_57, ~m? +# 2204| mu2204_62(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2204_57 +# 2204| r2204_63(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2204| r2204_64(glval<unknown>) = FunctionAddress[operator++] : +# 2204| r2204_65(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2204_64, this:r2204_63 +# 2204| mu2204_66(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_67(void) = ^IndirectReadSideEffect[-1] : &:r2204_63, ~m? +# 2204| mu2204_68(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_63 +# 2204| r2204_69(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2204_65 #-----| Goto (back edge) -> Block 15 # 2204| Block 19 -# 2204| r2204_72(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2204| r2204_73(glval<unknown>) = FunctionAddress[~vector] : -# 2204| v2204_74(void) = Call[~vector] : func:r2204_73, this:r2204_72 -# 2204| mu2204_75(unknown) = ^CallSideEffect : ~m? -# 2204| v2204_76(void) = ^IndirectReadSideEffect[-1] : &:r2204_72, ~m? -# 2204| mu2204_77(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_72 +# 2204| r2204_70(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2204| r2204_71(glval<unknown>) = FunctionAddress[~vector] : +# 2204| v2204_72(void) = Call[~vector] : func:r2204_71, this:r2204_70 +# 2204| mu2204_73(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_74(void) = ^IndirectReadSideEffect[-1] : &:r2204_70, ~m? +# 2204| mu2204_75(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2204_70 #-----| Goto -> Block 20 # 2210| Block 20 @@ -12726,63 +12718,61 @@ ir.cpp: #-----| r0_34(glval<vector<int>>) = Convert : r0_33 # 2210| r2210_15(glval<unknown>) = FunctionAddress[begin] : # 2210| r2210_16(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[begin] : func:r2210_15, this:r0_34 -# 2210| mu2210_17(unknown) = ^CallSideEffect : ~m? #-----| v0_35(void) = ^IndirectReadSideEffect[-1] : &:r0_34, ~m? -# 2210| mu2210_18(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r2210_12, r2210_16 -# 2210| r2210_19(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -# 2210| r2210_20(glval<vector<int> &>) = VariableAddress[(__range)] : -# 2210| r2210_21(vector<int> &) = Load[(__range)] : &:r2210_20, ~m? -#-----| r0_36(glval<vector<int>>) = CopyValue : r2210_21 +# 2210| mu2210_17(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__begin)] : &:r2210_12, r2210_16 +# 2210| r2210_18(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +# 2210| r2210_19(glval<vector<int> &>) = VariableAddress[(__range)] : +# 2210| r2210_20(vector<int> &) = Load[(__range)] : &:r2210_19, ~m? +#-----| r0_36(glval<vector<int>>) = CopyValue : r2210_20 #-----| r0_37(glval<vector<int>>) = Convert : r0_36 -# 2210| r2210_22(glval<unknown>) = FunctionAddress[end] : -# 2210| r2210_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r2210_22, this:r0_37 -# 2210| mu2210_24(unknown) = ^CallSideEffect : ~m? +# 2210| r2210_21(glval<unknown>) = FunctionAddress[end] : +# 2210| r2210_22(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Call[end] : func:r2210_21, this:r0_37 #-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, ~m? -# 2210| mu2210_25(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r2210_19, r2210_23 +# 2210| mu2210_23(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Store[(__end)] : &:r2210_18, r2210_22 #-----| Goto -> Block 21 # 2210| Block 21 -# 2210| r2210_26(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_26 -# 2210| r2210_27(glval<unknown>) = FunctionAddress[operator!=] : +# 2210| r2210_24(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_39(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_24 +# 2210| r2210_25(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_40(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[#temp0:0] : #-----| mu0_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Uninitialized[#temp0:0] : &:r0_40 -# 2210| r2210_28(glval<unknown>) = FunctionAddress[iterator] : -# 2210| r2210_29(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : -#-----| r0_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_29 +# 2210| r2210_26(glval<unknown>) = FunctionAddress[iterator] : +# 2210| r2210_27(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__end)] : +#-----| r0_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_27 #-----| r0_43(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = CopyValue : r0_42 -# 2210| v2210_30(void) = Call[iterator] : func:r2210_28, this:r0_40, 0:r0_43 -# 2210| mu2210_31(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_28(void) = Call[iterator] : func:r2210_26, this:r0_40, 0:r0_43 +# 2210| mu2210_29(unknown) = ^CallSideEffect : ~m? #-----| v0_44(void) = ^BufferReadSideEffect[0] : &:r0_43, ~m? -# 2210| mu2210_32(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 +# 2210| mu2210_30(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 #-----| r0_45(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = Load[#temp0:0] : &:r0_40, ~m? -# 2210| r2210_33(bool) = Call[operator!=] : func:r2210_27, this:r0_39, 0:r0_45 -# 2210| mu2210_34(unknown) = ^CallSideEffect : ~m? +# 2210| r2210_31(bool) = Call[operator!=] : func:r2210_25, this:r0_39, 0:r0_45 +# 2210| mu2210_32(unknown) = ^CallSideEffect : ~m? #-----| v0_46(void) = ^IndirectReadSideEffect[-1] : &:r0_39, ~m? -# 2210| v2210_35(void) = ConditionalBranch : r2210_33 +# 2210| v2210_33(void) = ConditionalBranch : r2210_31 #-----| False -> Block 26 #-----| True -> Block 23 # 2210| Block 22 -# 2210| r2210_36(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -# 2210| r2210_37(glval<unknown>) = FunctionAddress[operator++] : -# 2210| r2210_38(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r2210_37, this:r2210_36 -# 2210| mu2210_39(unknown) = ^CallSideEffect : ~m? -# 2210| v2210_40(void) = ^IndirectReadSideEffect[-1] : &:r2210_36, ~m? -# 2210| mu2210_41(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_36 -# 2210| r2210_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r2210_38 +# 2210| r2210_34(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +# 2210| r2210_35(glval<unknown>) = FunctionAddress[operator++] : +# 2210| r2210_36(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &> &) = Call[operator++] : func:r2210_35, this:r2210_34 +# 2210| mu2210_37(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_38(void) = ^IndirectReadSideEffect[-1] : &:r2210_34, ~m? +# 2210| mu2210_39(iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_34 +# 2210| r2210_40(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = CopyValue : r2210_36 #-----| Goto (back edge) -> Block 21 # 2210| Block 23 -# 2210| r2210_43(glval<int>) = VariableAddress[y] : -# 2210| r2210_44(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : -#-----| r0_47(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_44 -# 2210| r2210_45(glval<unknown>) = FunctionAddress[operator*] : -# 2210| r2210_46(int &) = Call[operator*] : func:r2210_45, this:r0_47 -# 2210| mu2210_47(unknown) = ^CallSideEffect : ~m? +# 2210| r2210_41(glval<int>) = VariableAddress[y] : +# 2210| r2210_42(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = VariableAddress[(__begin)] : +#-----| r0_47(glval<iterator<random_access_iterator_tag, int, ptrdiff_t, int *, int &>>) = Convert : r2210_42 +# 2210| r2210_43(glval<unknown>) = FunctionAddress[operator*] : +# 2210| r2210_44(int &) = Call[operator*] : func:r2210_43, this:r0_47 +# 2210| mu2210_45(unknown) = ^CallSideEffect : ~m? #-----| v0_48(void) = ^IndirectReadSideEffect[-1] : &:r0_47, ~m? -# 2210| r2210_48(int) = Load[?] : &:r2210_46, ~m? -# 2210| mu2210_49(int) = Store[y] : &:r2210_43, r2210_48 +# 2210| r2210_46(int) = Load[?] : &:r2210_44, ~m? +# 2210| mu2210_47(int) = Store[y] : &:r2210_41, r2210_46 # 2211| r2211_1(glval<int>) = VariableAddress[y] : # 2211| r2211_2(int) = Load[y] : &:r2211_1, ~m? # 2211| r2211_3(int) = Constant[1] : @@ -12793,12 +12783,12 @@ ir.cpp: # 2212| Block 24 # 2212| v2212_1(void) = NoOp : -# 2210| r2210_50(glval<vector<int>>) = VariableAddress[ys] : -# 2210| r2210_51(glval<unknown>) = FunctionAddress[~vector] : -# 2210| v2210_52(void) = Call[~vector] : func:r2210_51, this:r2210_50 -# 2210| mu2210_53(unknown) = ^CallSideEffect : ~m? -# 2210| v2210_54(void) = ^IndirectReadSideEffect[-1] : &:r2210_50, ~m? -# 2210| mu2210_55(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_50 +# 2210| r2210_48(glval<vector<int>>) = VariableAddress[ys] : +# 2210| r2210_49(glval<unknown>) = FunctionAddress[~vector] : +# 2210| v2210_50(void) = Call[~vector] : func:r2210_49, this:r2210_48 +# 2210| mu2210_51(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_52(void) = ^IndirectReadSideEffect[-1] : &:r2210_48, ~m? +# 2210| mu2210_53(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_48 # 2219| r2219_7(glval<ClassWithDestructor>) = VariableAddress[x] : # 2219| r2219_8(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : # 2219| v2219_9(void) = Call[~ClassWithDestructor] : func:r2219_8, this:r2219_7 @@ -12808,12 +12798,12 @@ ir.cpp: #-----| Goto -> Block 1 # 2210| Block 25 -# 2210| r2210_56(glval<vector<int>>) = VariableAddress[ys] : -# 2210| r2210_57(glval<unknown>) = FunctionAddress[~vector] : -# 2210| v2210_58(void) = Call[~vector] : func:r2210_57, this:r2210_56 -# 2210| mu2210_59(unknown) = ^CallSideEffect : ~m? -# 2210| v2210_60(void) = ^IndirectReadSideEffect[-1] : &:r2210_56, ~m? -# 2210| mu2210_61(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_56 +# 2210| r2210_54(glval<vector<int>>) = VariableAddress[ys] : +# 2210| r2210_55(glval<unknown>) = FunctionAddress[~vector] : +# 2210| v2210_56(void) = Call[~vector] : func:r2210_55, this:r2210_54 +# 2210| mu2210_57(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_58(void) = ^IndirectReadSideEffect[-1] : &:r2210_54, ~m? +# 2210| mu2210_59(vector<int>) = ^IndirectMayWriteSideEffect[-1] : &:r2210_54 #-----| Goto -> Block 26 # 2215| Block 26 @@ -12839,53 +12829,51 @@ ir.cpp: #-----| r0_50(glval<vector<ClassWithDestructor>>) = Convert : r0_49 # 2215| r2215_19(glval<unknown>) = FunctionAddress[begin] : # 2215| r2215_20(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[begin] : func:r2215_19, this:r0_50 -# 2215| mu2215_21(unknown) = ^CallSideEffect : ~m? #-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, ~m? -# 2215| mu2215_22(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2215_16, r2215_20 -# 2215| r2215_23(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -# 2215| r2215_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : -# 2215| r2215_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2215_24, ~m? -#-----| r0_52(glval<vector<ClassWithDestructor>>) = CopyValue : r2215_25 +# 2215| mu2215_21(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__begin)] : &:r2215_16, r2215_20 +# 2215| r2215_22(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +# 2215| r2215_23(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] : +# 2215| r2215_24(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2215_23, ~m? +#-----| r0_52(glval<vector<ClassWithDestructor>>) = CopyValue : r2215_24 #-----| r0_53(glval<vector<ClassWithDestructor>>) = Convert : r0_52 -# 2215| r2215_26(glval<unknown>) = FunctionAddress[end] : -# 2215| r2215_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2215_26, this:r0_53 -# 2215| mu2215_28(unknown) = ^CallSideEffect : ~m? +# 2215| r2215_25(glval<unknown>) = FunctionAddress[end] : +# 2215| r2215_26(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Call[end] : func:r2215_25, this:r0_53 #-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, ~m? -# 2215| mu2215_29(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2215_23, r2215_27 +# 2215| mu2215_27(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Store[(__end)] : &:r2215_22, r2215_26 #-----| Goto -> Block 27 # 2215| Block 27 -# 2215| r2215_30(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_55(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_30 -# 2215| r2215_31(glval<unknown>) = FunctionAddress[operator!=] : +# 2215| r2215_28(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_55(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_28 +# 2215| r2215_29(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_56(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[#temp0:0] : #-----| mu0_57(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Uninitialized[#temp0:0] : &:r0_56 -# 2215| r2215_32(glval<unknown>) = FunctionAddress[iterator] : -# 2215| r2215_33(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : -#-----| r0_58(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_33 +# 2215| r2215_30(glval<unknown>) = FunctionAddress[iterator] : +# 2215| r2215_31(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__end)] : +#-----| r0_58(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_31 #-----| r0_59(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = CopyValue : r0_58 -# 2215| v2215_34(void) = Call[iterator] : func:r2215_32, this:r0_56, 0:r0_59 -# 2215| mu2215_35(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_32(void) = Call[iterator] : func:r2215_30, this:r0_56, 0:r0_59 +# 2215| mu2215_33(unknown) = ^CallSideEffect : ~m? #-----| v0_60(void) = ^BufferReadSideEffect[0] : &:r0_59, ~m? -# 2215| mu2215_36(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 +# 2215| mu2215_34(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 #-----| r0_61(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = Load[#temp0:0] : &:r0_56, ~m? -# 2215| r2215_37(bool) = Call[operator!=] : func:r2215_31, this:r0_55, 0:r0_61 -# 2215| mu2215_38(unknown) = ^CallSideEffect : ~m? +# 2215| r2215_35(bool) = Call[operator!=] : func:r2215_29, this:r0_55, 0:r0_61 +# 2215| mu2215_36(unknown) = ^CallSideEffect : ~m? #-----| v0_62(void) = ^IndirectReadSideEffect[-1] : &:r0_55, ~m? -# 2215| v2215_39(void) = ConditionalBranch : r2215_37 +# 2215| v2215_37(void) = ConditionalBranch : r2215_35 #-----| False -> Block 30 #-----| True -> Block 28 # 2215| Block 28 -# 2215| r2215_40(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2215| r2215_41(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -#-----| r0_63(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_41 -# 2215| r2215_42(glval<unknown>) = FunctionAddress[operator*] : -# 2215| r2215_43(ClassWithDestructor &) = Call[operator*] : func:r2215_42, this:r0_63 -# 2215| mu2215_44(unknown) = ^CallSideEffect : ~m? +# 2215| r2215_38(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2215| r2215_39(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +#-----| r0_63(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = Convert : r2215_39 +# 2215| r2215_40(glval<unknown>) = FunctionAddress[operator*] : +# 2215| r2215_41(ClassWithDestructor &) = Call[operator*] : func:r2215_40, this:r0_63 +# 2215| mu2215_42(unknown) = ^CallSideEffect : ~m? #-----| v0_64(void) = ^IndirectReadSideEffect[-1] : &:r0_63, ~m? -# 2215| r2215_45(ClassWithDestructor) = Load[?] : &:r2215_43, ~m? -# 2215| mu2215_46(ClassWithDestructor) = Store[y] : &:r2215_40, r2215_45 +# 2215| r2215_43(ClassWithDestructor) = Load[?] : &:r2215_41, ~m? +# 2215| mu2215_44(ClassWithDestructor) = Store[y] : &:r2215_38, r2215_43 # 2216| r2216_1(glval<ClassWithDestructor>) = VariableAddress[z1] : # 2216| mu2216_2(ClassWithDestructor) = Uninitialized[z1] : &:r2216_1 # 2216| r2216_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] : @@ -12910,28 +12898,28 @@ ir.cpp: # 2218| mu2218_10(unknown) = ^CallSideEffect : ~m? # 2218| v2218_11(void) = ^IndirectReadSideEffect[-1] : &:r2218_7, ~m? # 2218| mu2218_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2218_7 -# 2215| r2215_47(glval<ClassWithDestructor>) = VariableAddress[y] : -# 2215| r2215_48(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : -# 2215| v2215_49(void) = Call[~ClassWithDestructor] : func:r2215_48, this:r2215_47 -# 2215| mu2215_50(unknown) = ^CallSideEffect : ~m? -# 2215| v2215_51(void) = ^IndirectReadSideEffect[-1] : &:r2215_47, ~m? -# 2215| mu2215_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_47 -# 2215| r2215_53(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : -# 2215| r2215_54(glval<unknown>) = FunctionAddress[operator++] : -# 2215| r2215_55(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2215_54, this:r2215_53 -# 2215| mu2215_56(unknown) = ^CallSideEffect : ~m? -# 2215| v2215_57(void) = ^IndirectReadSideEffect[-1] : &:r2215_53, ~m? -# 2215| mu2215_58(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_53 -# 2215| r2215_59(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2215_55 +# 2215| r2215_45(glval<ClassWithDestructor>) = VariableAddress[y] : +# 2215| r2215_46(glval<unknown>) = FunctionAddress[~ClassWithDestructor] : +# 2215| v2215_47(void) = Call[~ClassWithDestructor] : func:r2215_46, this:r2215_45 +# 2215| mu2215_48(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_49(void) = ^IndirectReadSideEffect[-1] : &:r2215_45, ~m? +# 2215| mu2215_50(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2215_45 +# 2215| r2215_51(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = VariableAddress[(__begin)] : +# 2215| r2215_52(glval<unknown>) = FunctionAddress[operator++] : +# 2215| r2215_53(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &> &) = Call[operator++] : func:r2215_52, this:r2215_51 +# 2215| mu2215_54(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_55(void) = ^IndirectReadSideEffect[-1] : &:r2215_51, ~m? +# 2215| mu2215_56(iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_51 +# 2215| r2215_57(glval<iterator<random_access_iterator_tag, ClassWithDestructor, ptrdiff_t, ClassWithDestructor *, ClassWithDestructor &>>) = CopyValue : r2215_53 #-----| Goto (back edge) -> Block 27 # 2215| Block 29 -# 2215| r2215_60(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : -# 2215| r2215_61(glval<unknown>) = FunctionAddress[~vector] : -# 2215| v2215_62(void) = Call[~vector] : func:r2215_61, this:r2215_60 -# 2215| mu2215_63(unknown) = ^CallSideEffect : ~m? -# 2215| v2215_64(void) = ^IndirectReadSideEffect[-1] : &:r2215_60, ~m? -# 2215| mu2215_65(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_60 +# 2215| r2215_58(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] : +# 2215| r2215_59(glval<unknown>) = FunctionAddress[~vector] : +# 2215| v2215_60(void) = Call[~vector] : func:r2215_59, this:r2215_58 +# 2215| mu2215_61(unknown) = ^CallSideEffect : ~m? +# 2215| v2215_62(void) = ^IndirectReadSideEffect[-1] : &:r2215_58, ~m? +# 2215| mu2215_63(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2215_58 #-----| Goto -> Block 30 # 2219| Block 30 @@ -13490,60 +13478,58 @@ ir.cpp: #-----| r0_2(glval<vector<String>>) = Convert : r0_1 # 2293| r2293_23(glval<unknown>) = FunctionAddress[begin] : # 2293| r2293_24(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[begin] : func:r2293_23, this:r0_2 -# 2293| mu2293_25(unknown) = ^CallSideEffect : ~m? #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2293| mu2293_26(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__begin)] : &:r2293_20, r2293_24 -# 2293| r2293_27(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : -# 2293| r2293_28(glval<vector<String> &&>) = VariableAddress[(__range)] : -# 2293| r2293_29(vector<String> &&) = Load[(__range)] : &:r2293_28, ~m? -#-----| r0_4(glval<vector<String>>) = CopyValue : r2293_29 +# 2293| mu2293_25(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__begin)] : &:r2293_20, r2293_24 +# 2293| r2293_26(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : +# 2293| r2293_27(glval<vector<String> &&>) = VariableAddress[(__range)] : +# 2293| r2293_28(vector<String> &&) = Load[(__range)] : &:r2293_27, ~m? +#-----| r0_4(glval<vector<String>>) = CopyValue : r2293_28 #-----| r0_5(glval<vector<String>>) = Convert : r0_4 -# 2293| r2293_30(glval<unknown>) = FunctionAddress[end] : -# 2293| r2293_31(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[end] : func:r2293_30, this:r0_5 -# 2293| mu2293_32(unknown) = ^CallSideEffect : ~m? +# 2293| r2293_29(glval<unknown>) = FunctionAddress[end] : +# 2293| r2293_30(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Call[end] : func:r2293_29, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2293| mu2293_33(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__end)] : &:r2293_27, r2293_31 +# 2293| mu2293_31(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Store[(__end)] : &:r2293_26, r2293_30 #-----| Goto -> Block 4 # 2293| Block 4 -# 2293| r2293_34(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : -#-----| r0_7(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_34 -# 2293| r2293_35(glval<unknown>) = FunctionAddress[operator!=] : +# 2293| r2293_32(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_32 +# 2293| r2293_33(glval<unknown>) = FunctionAddress[operator!=] : #-----| r0_8(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[#temp0:0] : #-----| mu0_9(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Uninitialized[#temp0:0] : &:r0_8 -# 2293| r2293_36(glval<unknown>) = FunctionAddress[iterator] : -# 2293| r2293_37(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : -#-----| r0_10(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_37 +# 2293| r2293_34(glval<unknown>) = FunctionAddress[iterator] : +# 2293| r2293_35(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_35 #-----| r0_11(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = CopyValue : r0_10 -# 2293| v2293_38(void) = Call[iterator] : func:r2293_36, this:r0_8, 0:r0_11 -# 2293| mu2293_39(unknown) = ^CallSideEffect : ~m? +# 2293| v2293_36(void) = Call[iterator] : func:r2293_34, this:r0_8, 0:r0_11 +# 2293| mu2293_37(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? -# 2293| mu2293_40(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2293| mu2293_38(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 #-----| r0_13(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = Load[#temp0:0] : &:r0_8, ~m? -# 2293| r2293_41(bool) = Call[operator!=] : func:r2293_35, this:r0_7, 0:r0_13 -# 2293| mu2293_42(unknown) = ^CallSideEffect : ~m? +# 2293| r2293_39(bool) = Call[operator!=] : func:r2293_33, this:r0_7, 0:r0_13 +# 2293| mu2293_40(unknown) = ^CallSideEffect : ~m? #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2293| v2293_43(void) = ConditionalBranch : r2293_41 +# 2293| v2293_41(void) = ConditionalBranch : r2293_39 #-----| False -> Block 6 #-----| True -> Block 5 # 2293| Block 5 -# 2293| r2293_44(glval<String>) = VariableAddress[s] : -# 2293| mu2293_45(String) = Uninitialized[s] : &:r2293_44 -# 2293| r2293_46(glval<unknown>) = FunctionAddress[String] : -# 2293| r2293_47(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : -#-----| r0_15(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_47 -# 2293| r2293_48(glval<unknown>) = FunctionAddress[operator*] : -# 2293| r2293_49(String &) = Call[operator*] : func:r2293_48, this:r0_15 -# 2293| mu2293_50(unknown) = ^CallSideEffect : ~m? +# 2293| r2293_42(glval<String>) = VariableAddress[s] : +# 2293| mu2293_43(String) = Uninitialized[s] : &:r2293_42 +# 2293| r2293_44(glval<unknown>) = FunctionAddress[String] : +# 2293| r2293_45(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = Convert : r2293_45 +# 2293| r2293_46(glval<unknown>) = FunctionAddress[operator*] : +# 2293| r2293_47(String &) = Call[operator*] : func:r2293_46, this:r0_15 +# 2293| mu2293_48(unknown) = ^CallSideEffect : ~m? #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2293| r2293_51(glval<String>) = CopyValue : r2293_49 -# 2293| r2293_52(glval<String>) = Convert : r2293_51 -# 2293| r2293_53(String &) = CopyValue : r2293_52 -# 2293| v2293_54(void) = Call[String] : func:r2293_46, this:r2293_44, 0:r2293_53 -# 2293| mu2293_55(unknown) = ^CallSideEffect : ~m? -# 2293| v2293_56(void) = ^BufferReadSideEffect[0] : &:r2293_53, ~m? -# 2293| mu2293_57(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_44 +# 2293| r2293_49(glval<String>) = CopyValue : r2293_47 +# 2293| r2293_50(glval<String>) = Convert : r2293_49 +# 2293| r2293_51(String &) = CopyValue : r2293_50 +# 2293| v2293_52(void) = Call[String] : func:r2293_44, this:r2293_42, 0:r2293_51 +# 2293| mu2293_53(unknown) = ^CallSideEffect : ~m? +# 2293| v2293_54(void) = ^BufferReadSideEffect[0] : &:r2293_51, ~m? +# 2293| mu2293_55(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_42 # 2294| r2294_1(glval<String>) = VariableAddress[s2] : # 2294| mu2294_2(String) = Uninitialized[s2] : &:r2294_1 # 2294| r2294_3(glval<unknown>) = FunctionAddress[String] : @@ -13556,19 +13542,19 @@ ir.cpp: # 2295| mu2295_4(unknown) = ^CallSideEffect : ~m? # 2295| v2295_5(void) = ^IndirectReadSideEffect[-1] : &:r2295_1, ~m? # 2295| mu2295_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2295_1 -# 2293| r2293_58(glval<String>) = VariableAddress[s] : -# 2293| r2293_59(glval<unknown>) = FunctionAddress[~String] : -# 2293| v2293_60(void) = Call[~String] : func:r2293_59, this:r2293_58 -# 2293| mu2293_61(unknown) = ^CallSideEffect : ~m? -# 2293| v2293_62(void) = ^IndirectReadSideEffect[-1] : &:r2293_58, ~m? -# 2293| mu2293_63(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_58 -# 2293| r2293_64(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : -# 2293| r2293_65(glval<unknown>) = FunctionAddress[operator++] : -# 2293| r2293_66(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = Call[operator++] : func:r2293_65, this:r2293_64 -# 2293| mu2293_67(unknown) = ^CallSideEffect : ~m? -# 2293| v2293_68(void) = ^IndirectReadSideEffect[-1] : &:r2293_64, ~m? -# 2293| mu2293_69(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r2293_64 -# 2293| r2293_70(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = CopyValue : r2293_66 +# 2293| r2293_56(glval<String>) = VariableAddress[s] : +# 2293| r2293_57(glval<unknown>) = FunctionAddress[~String] : +# 2293| v2293_58(void) = Call[~String] : func:r2293_57, this:r2293_56 +# 2293| mu2293_59(unknown) = ^CallSideEffect : ~m? +# 2293| v2293_60(void) = ^IndirectReadSideEffect[-1] : &:r2293_56, ~m? +# 2293| mu2293_61(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_56 +# 2293| r2293_62(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = VariableAddress[(__begin)] : +# 2293| r2293_63(glval<unknown>) = FunctionAddress[operator++] : +# 2293| r2293_64(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> &) = Call[operator++] : func:r2293_63, this:r2293_62 +# 2293| mu2293_65(unknown) = ^CallSideEffect : ~m? +# 2293| v2293_66(void) = ^IndirectReadSideEffect[-1] : &:r2293_62, ~m? +# 2293| mu2293_67(iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>) = ^IndirectMayWriteSideEffect[-1] : &:r2293_62 +# 2293| r2293_68(glval<iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &>>) = CopyValue : r2293_64 #-----| Goto (back edge) -> Block 4 # 2297| Block 6 From 342465057c34e44f0e825d9604338de393a6ef3a Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Sat, 13 Jan 2024 10:29:32 +0100 Subject: [PATCH 154/309] Add Unicode DoS (CWE-770) --- .../Security/CWE-770/UnicodeDoS.qhelp | 38 +++++++ .../Security/CWE-770/UnicodeDoS.ql | 104 ++++++++++++++++++ .../src/experimental/Security/CWE-770/bad.py | 17 +++ .../src/experimental/Security/CWE-770/good.py | 16 +++ .../Security/CWE-770/UnicodeDoS.expected | 55 +++++++++ .../Security/CWE-770/UnicodeDoS.qlref | 1 + .../query-tests/Security/CWE-770/tests.py | 80 ++++++++++++++ 7 files changed, 311 insertions(+) create mode 100644 python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp create mode 100644 python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql create mode 100644 python/ql/src/experimental/Security/CWE-770/bad.py create mode 100644 python/ql/src/experimental/Security/CWE-770/good.py create mode 100644 python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected create mode 100644 python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.qlref create mode 100644 python/ql/test/experimental/query-tests/Security/CWE-770/tests.py diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp new file mode 100644 index 00000000000..53a19e9bca3 --- /dev/null +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp @@ -0,0 +1,38 @@ +<!DOCTYPE qhelp PUBLIC + "-//Semmle//qhelp//EN" + "qhelp.dtd"> +<qhelp> + +<overview> +<p>When a remote user-controlled data can reach a costly Unicode normalization with either form, NFKC or NFKD, an attack such as the One Million Unicode Characters, could lead to a denial of service on Windows OS.</p> + +<p>And, with the use of special Unicode characters, like U+2100 (â„€) or U+2105 (â„…), the payload size could be tripled after the compatibility normalization. + +</overview> +<recommendation> + +<p>Ensure limiting the size of any incoming data that would go through a costly operations, including a Windows Unicode normalization with NFKC or NFKD. Such a recommandation would avoid a potential denial of service.</p> + +</recommendation> + +<example> +<p> +In this example a simple user-controlled data reaches a Unicode normalization with the form "NFKC". +</p> + +<sample src="bad.py" /> + +<p>To fix this vulnerability, we need restrain the size of the user input.</p> + +<p>For example, we can use the <code>len()</code> builtin function to limit the size of the user input.</p> + +<sample src="good.py" /> + +</example> +<references> + +<li> + <a href="https://hackerone.com/reports/2258758">CVE-2023-46695: Potential denial of service vulnerability in Django UsernameField on Windows.</a> + </li> +</references> +</qhelp> diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql new file mode 100644 index 00000000000..644f8c024df --- /dev/null +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql @@ -0,0 +1,104 @@ +/** + * @name Denial of Service using Unicode Characters + * @description A remote user-controlled data can reach a costly Unicode normalization with either form NFKC or NFKD. On Windows OS, with an attack such as the One Million Unicode Characters, this could lead to a denial of service. And, with the use of special Unicode characters, like U+2100 (â„€) or U+2105 (â„…), the payload size could be tripled. + * @kind path-problem + * @id py/unicode-dos + * @precision high + * @problem.severity error + * @tags security + * experimental + * external/cwe/cwe-770 + */ + +import python +import semmle.python.ApiGraphs +import semmle.python.Concepts +import semmle.python.dataflow.new.TaintTracking +import semmle.python.dataflow.new.internal.DataFlowPublic +import semmle.python.dataflow.new.RemoteFlowSources + +class UnicodeCompatibilityNormalize extends API::CallNode { + int argIdx; + + UnicodeCompatibilityNormalize() { + exists(API::CallNode cn, DataFlow::Node form | + cn = API::moduleImport("unicodedata").getMember("normalize").getACall() and + form.asExpr().(StrConst).getS() in ["NFKC", "NFKD"] and + TaintTracking::localTaint(form, cn.getArg(0)) and + this = cn and + argIdx = 1 + ) + or + exists(API::CallNode cn | + cn = API::moduleImport("unidecode").getMember("unidecode").getACall() and + this = cn and + argIdx = 0 + ) + or + exists(API::CallNode cn | + cn = API::moduleImport("pyunormalize").getMember(["NFKC", "NFKD"]).getACall() and + this = cn and + argIdx = 0 + ) + or + exists(API::CallNode cn, DataFlow::Node form | + cn = API::moduleImport("pyunormalize").getMember("normalize").getACall() and + form.asExpr().(StrConst).getS() in ["NFKC", "NFKD"] and + TaintTracking::localTaint(form, cn.getArg(0)) and + this = cn and + argIdx = 1 + ) + or + exists(API::CallNode cn, DataFlow::Node form | + cn = API::moduleImport("textnorm").getMember("normalize_unicode").getACall() and + form.asExpr().(StrConst).getS() in ["NFKC", "NFKD"] and + TaintTracking::localTaint(form, cn.getArg(1)) and + this = cn and + argIdx = 0 + ) + } + + DataFlow::Node getPathArg() { result = this.getArg(argIdx) } +} + +predicate underAValue(DataFlow::GuardNode g, ControlFlowNode node, boolean branch) { + exists(CompareNode cn | cn = g | + exists(API::CallNode lenCall, Cmpop op_gt, Cmpop op_lt, Node n | + lenCall = n.getALocalSource() and + ( + (op_lt = any(LtE lte) or op_lt = any(Lt lt)) and + branch = true and + cn.operands(n.asCfgNode(), op_lt, _) + or + (op_gt = any(GtE gte) or op_gt = any(Gt gt)) and + branch = true and + cn.operands(_, op_gt, n.asCfgNode()) + ) + | + lenCall = API::builtin("len").getACall() and + node = lenCall.getArg(0).asCfgNode() + ) //and + //not cn.getLocation().getFile().inStdlib() + ) +} + +class Configuration extends TaintTracking::Configuration { + Configuration() { this = "RemoteSourcesReachUnicodeCharacters" } + + override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } + + override predicate isSanitizer(DataFlow::Node sanitizer) { + sanitizer = DataFlow::BarrierGuard<underAValue/3>::getABarrierNode() + } + + override predicate isSink(DataFlow::Node sink) { + sink = any(UnicodeCompatibilityNormalize ucn).getPathArg() + } +} + +import DataFlow::PathGraph + +from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink +where config.hasFlowPath(source, sink) +select sink.getNode(), source, sink, "This $@ can reach a $@.", source.getNode(), + "user-provided value", sink.getNode(), "costly Unicode normalization operation" diff --git a/python/ql/src/experimental/Security/CWE-770/bad.py b/python/ql/src/experimental/Security/CWE-770/bad.py new file mode 100644 index 00000000000..92260955431 --- /dev/null +++ b/python/ql/src/experimental/Security/CWE-770/bad.py @@ -0,0 +1,17 @@ +from flask import Flask, jsonify, request +import unicodedata + +app = Flask(__name__) + + +@app.route("/bad_1") +def bad_1(): + # User controlled data + file_path = request.args.get("file_path", "") + + # Normalize the file path using NFKC Unicode normalization + return ( + unicodedata.normalize("NFKC", file_path), + 200, + {"Content-Type": "application/octet-stream"}, + ) diff --git a/python/ql/src/experimental/Security/CWE-770/good.py b/python/ql/src/experimental/Security/CWE-770/good.py new file mode 100644 index 00000000000..ce171a16015 --- /dev/null +++ b/python/ql/src/experimental/Security/CWE-770/good.py @@ -0,0 +1,16 @@ +from flask import Flask, jsonify, request +import unicodedata + +app = Flask(__name__) + + +@app.route("/good_1") +def good_1(): + r = request.args.get("r", "") + + if len(r) <= 1_000: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 diff --git a/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected b/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected new file mode 100644 index 00000000000..f05da000657 --- /dev/null +++ b/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected @@ -0,0 +1,55 @@ +WARNING: Module PathGraph has been deprecated and may be removed in future (C:/Users/ab/Desktop/GhSec/Pull-Requests/codeql-PUN/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql:99,8-27) +WARNING: Type Configuration has been deprecated and may be removed in future (C:/Users/ab/Desktop/GhSec/Pull-Requests/codeql-PUN/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql:85,29-57) +WARNING: Type PathNode has been deprecated and may be removed in future (C:/Users/ab/Desktop/GhSec/Pull-Requests/codeql-PUN/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql:101,28-46) +WARNING: Type PathNode has been deprecated and may be removed in future (C:/Users/ab/Desktop/GhSec/Pull-Requests/codeql-PUN/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql:101,55-73) +edges +| tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:1:35:1:41 | ControlFlowNode for request | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:12:17:12:23 | ControlFlowNode for request | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:24:9:24:15 | ControlFlowNode for request | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:36:9:36:15 | ControlFlowNode for request | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:48:9:48:15 | ControlFlowNode for request | +| tests.py:12:5:12:13 | ControlFlowNode for file_path | tests.py:16:39:16:47 | ControlFlowNode for file_path | +| tests.py:12:17:12:23 | ControlFlowNode for request | tests.py:12:17:12:28 | ControlFlowNode for Attribute | +| tests.py:12:17:12:28 | ControlFlowNode for Attribute | tests.py:12:17:12:49 | ControlFlowNode for Attribute() | +| tests.py:12:17:12:49 | ControlFlowNode for Attribute() | tests.py:12:5:12:13 | ControlFlowNode for file_path | +| tests.py:24:5:24:5 | ControlFlowNode for r | tests.py:28:43:28:43 | ControlFlowNode for r | +| tests.py:24:9:24:15 | ControlFlowNode for request | tests.py:24:9:24:20 | ControlFlowNode for Attribute | +| tests.py:24:9:24:20 | ControlFlowNode for Attribute | tests.py:24:9:24:33 | ControlFlowNode for Attribute() | +| tests.py:24:9:24:33 | ControlFlowNode for Attribute() | tests.py:24:5:24:5 | ControlFlowNode for r | +| tests.py:36:5:36:5 | ControlFlowNode for r | tests.py:40:43:40:43 | ControlFlowNode for r | +| tests.py:36:9:36:15 | ControlFlowNode for request | tests.py:36:9:36:20 | ControlFlowNode for Attribute | +| tests.py:36:9:36:20 | ControlFlowNode for Attribute | tests.py:36:9:36:33 | ControlFlowNode for Attribute() | +| tests.py:36:9:36:33 | ControlFlowNode for Attribute() | tests.py:36:5:36:5 | ControlFlowNode for r | +| tests.py:48:5:48:5 | ControlFlowNode for r | tests.py:52:43:52:43 | ControlFlowNode for r | +| tests.py:48:9:48:15 | ControlFlowNode for request | tests.py:48:9:48:20 | ControlFlowNode for Attribute | +| tests.py:48:9:48:20 | ControlFlowNode for Attribute | tests.py:48:9:48:33 | ControlFlowNode for Attribute() | +| tests.py:48:9:48:33 | ControlFlowNode for Attribute() | tests.py:48:5:48:5 | ControlFlowNode for r | +nodes +| tests.py:1:35:1:41 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | +| tests.py:1:35:1:41 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| tests.py:12:5:12:13 | ControlFlowNode for file_path | semmle.label | ControlFlowNode for file_path | +| tests.py:12:17:12:23 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| tests.py:12:17:12:28 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| tests.py:12:17:12:49 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tests.py:16:39:16:47 | ControlFlowNode for file_path | semmle.label | ControlFlowNode for file_path | +| tests.py:24:5:24:5 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:24:9:24:15 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| tests.py:24:9:24:20 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| tests.py:24:9:24:33 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tests.py:28:43:28:43 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:36:5:36:5 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:36:9:36:15 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| tests.py:36:9:36:20 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| tests.py:36:9:36:33 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tests.py:40:43:40:43 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:48:5:48:5 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:48:9:48:15 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| tests.py:48:9:48:20 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| tests.py:48:9:48:33 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tests.py:52:43:52:43 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +subpaths +#select +| tests.py:16:39:16:47 | ControlFlowNode for file_path | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:16:39:16:47 | ControlFlowNode for file_path | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:16:39:16:47 | ControlFlowNode for file_path | costly Unicode normalization operation | +| tests.py:28:43:28:43 | ControlFlowNode for r | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:28:43:28:43 | ControlFlowNode for r | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:28:43:28:43 | ControlFlowNode for r | costly Unicode normalization operation | +| tests.py:40:43:40:43 | ControlFlowNode for r | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:40:43:40:43 | ControlFlowNode for r | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:40:43:40:43 | ControlFlowNode for r | costly Unicode normalization operation | +| tests.py:52:43:52:43 | ControlFlowNode for r | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:52:43:52:43 | ControlFlowNode for r | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:52:43:52:43 | ControlFlowNode for r | costly Unicode normalization operation | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.qlref b/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.qlref new file mode 100644 index 00000000000..aff380880ea --- /dev/null +++ b/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.qlref @@ -0,0 +1 @@ +experimental/Security/CWE-770/UnicodeDoS.ql \ No newline at end of file diff --git a/python/ql/test/experimental/query-tests/Security/CWE-770/tests.py b/python/ql/test/experimental/query-tests/Security/CWE-770/tests.py new file mode 100644 index 00000000000..e941f91fc01 --- /dev/null +++ b/python/ql/test/experimental/query-tests/Security/CWE-770/tests.py @@ -0,0 +1,80 @@ +from flask import Flask, jsonify, request +import unicodedata + +app = Flask(__name__) + +STATIC_DIR = "/home/unknown/" + + +@app.route("/bad_1") +def bad_1(): + # User controlled data + file_path = request.args.get("file_path", "") + + # Normalize the file path using NFKC Unicode normalization + return ( + unicodedata.normalize("NFKC", file_path), + 200, + {"Content-Type": "application/octet-stream"}, + ) + + +@app.route("/bad_2") +def bad_2(): + r = request.args.get("r", "") + + if len(r) >= 10: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 + + +@app.route("/bad_3") +def bad_3(): + r = request.args.get("r", "") + length = len(r) + if length >= 1_000: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 + + +@app.route("/bad_4") +def bad_4(): + r = request.args.get("r", "") + length = len(r) + if 1_000 <= length: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 + + +@app.route("/good_1") +def good_1(): + r = request.args.get("r", "") + + if len(r) <= 1_000: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 + + +@app.route("/good_2") +def good_2(): + r = request.args.get("r", "") + MAX_LENGTH = 1_000 + length = len(r) + if length <= MAX_LENGTH: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 From 5cc9170249772870834580fa3e90bf5703156342 Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Tue, 13 Feb 2024 04:21:52 +0100 Subject: [PATCH 155/309] Add UnicodeDoS sink for werkzeug secure_filename --- .../ql/src/experimental/Security/CWE-770/UnicodeDoS.ql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql index 644f8c024df..bd203877e5a 100644 --- a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql @@ -93,6 +93,16 @@ class Configuration extends TaintTracking::Configuration { override predicate isSink(DataFlow::Node sink) { sink = any(UnicodeCompatibilityNormalize ucn).getPathArg() + or + sink = API::moduleImport("werkzeug").getMember("secure_filename").getACall().getArg(_) + or + sink = + API::moduleImport("werkzeug") + .getMember("utils") + .getMember("secure_filename") + .getACall() + .getArg(_) + } } From 1f767b887eefda279e048f9ae0dd50c1c3e92b81 Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Tue, 13 Feb 2024 04:31:07 +0100 Subject: [PATCH 156/309] Add some comments and docs --- .../ql/src/experimental/Security/CWE-770/UnicodeDoS.ql | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql index bd203877e5a..d1f565ab11f 100644 --- a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql @@ -17,6 +17,8 @@ import semmle.python.dataflow.new.TaintTracking import semmle.python.dataflow.new.internal.DataFlowPublic import semmle.python.dataflow.new.RemoteFlowSources +// The Unicode compatibility normalization calls from unicodedata, unidecode, pyunormalize +// and textnorm modules. The use of argIdx is to constraint the argument being normalized. class UnicodeCompatibilityNormalize extends API::CallNode { int argIdx; @@ -66,10 +68,12 @@ predicate underAValue(DataFlow::GuardNode g, ControlFlowNode node, boolean branc exists(API::CallNode lenCall, Cmpop op_gt, Cmpop op_lt, Node n | lenCall = n.getALocalSource() and ( + // arg <= LIMIT OR arg < LIMIT (op_lt = any(LtE lte) or op_lt = any(Lt lt)) and branch = true and cn.operands(n.asCfgNode(), op_lt, _) or + // LIMIT >= arg OR LIMIT > arg (op_gt = any(GtE gte) or op_gt = any(Gt gt)) and branch = true and cn.operands(_, op_gt, n.asCfgNode()) @@ -88,12 +92,16 @@ class Configuration extends TaintTracking::Configuration { override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } override predicate isSanitizer(DataFlow::Node sanitizer) { + // underAValue is a check to ensure that the length of the user-provided value is limited to a certain amount sanitizer = DataFlow::BarrierGuard<underAValue/3>::getABarrierNode() } override predicate isSink(DataFlow::Node sink) { + // Any call to the Unicode compatibility normalization is a costly operation sink = any(UnicodeCompatibilityNormalize ucn).getPathArg() or + // The call to secure_filename() from pallets/werkzeug uses the Unicode compatibility normalization + // under the hood, https://github.com/pallets/werkzeug/blob/d3dd65a27388fbd39d146caacf2563639ba622f0/src/werkzeug/utils.py#L218 sink = API::moduleImport("werkzeug").getMember("secure_filename").getACall().getArg(_) or sink = @@ -102,7 +110,6 @@ class Configuration extends TaintTracking::Configuration { .getMember("secure_filename") .getACall() .getArg(_) - } } From 658b88e62f129eaf15f075c58b5b517f83f0e3ea Mon Sep 17 00:00:00 2001 From: Sim4n6${{7*'7'}} <sim4n6@gmail.com> Date: Tue, 12 Mar 2024 19:57:46 +0000 Subject: [PATCH 157/309] Update python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql update the Config API Co-authored-by: yoff <lerchedahl@gmail.com> --- .../Security/CWE-770/UnicodeDoS.ql | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql index d1f565ab11f..ea06def1b32 100644 --- a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql @@ -86,17 +86,15 @@ predicate underAValue(DataFlow::GuardNode g, ControlFlowNode node, boolean branc ) } -class Configuration extends TaintTracking::Configuration { - Configuration() { this = "RemoteSourcesReachUnicodeCharacters" } +private module UnicodeDoSConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSanitizer(DataFlow::Node sanitizer) { + predicate isBarrier(DataFlow::Node sanitizer) { // underAValue is a check to ensure that the length of the user-provided value is limited to a certain amount sanitizer = DataFlow::BarrierGuard<underAValue/3>::getABarrierNode() } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { // Any call to the Unicode compatibility normalization is a costly operation sink = any(UnicodeCompatibilityNormalize ucn).getPathArg() or @@ -113,9 +111,11 @@ class Configuration extends TaintTracking::Configuration { } } -import DataFlow::PathGraph +module UnicodeDoSFlow = TaintTracking::Global<UnicodeDoSConfig>; -from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink -where config.hasFlowPath(source, sink) +import UnicodeDoSFlow::PathGraph + +from UnicodeDoSFlow::PathNode source, UnicodeDoSFlow::PathNode sink +where UnicodeDoSFlow::flowPath(source, sink) select sink.getNode(), source, sink, "This $@ can reach a $@.", source.getNode(), "user-provided value", sink.getNode(), "costly Unicode normalization operation" From 3d8868a6c33cf877d4865c6a45dcfb1612db7674 Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Tue, 12 Mar 2024 20:03:16 +0000 Subject: [PATCH 158/309] Add routes for bad_5 and bad_6, and fix routes for good_3 and good_4 --- .../query-tests/Security/CWE-770/tests.py | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/python/ql/test/experimental/query-tests/Security/CWE-770/tests.py b/python/ql/test/experimental/query-tests/Security/CWE-770/tests.py index e941f91fc01..1007bcc8985 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-770/tests.py +++ b/python/ql/test/experimental/query-tests/Security/CWE-770/tests.py @@ -55,6 +55,30 @@ def bad_4(): return jsonify({"error": "File not found"}), 404 +@app.route("/bad_5") +def bad_5(): + r = request.args.get("r", "") + length = len(r) + if not length < 1_000: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 + + +@app.route("/bad_6") +def bad_6(): + r = request.args.get("r", "") + length = len(r) + if not 1_000 > length: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 + + @app.route("/good_1") def good_1(): r = request.args.get("r", "") @@ -78,3 +102,28 @@ def good_2(): return r, 200, {"Content-Type": "application/octet-stream"} else: return jsonify({"error": "File not found"}), 404 + +@app.route("/good_3") +def good_3(): + r = request.args.get("r", "") + MAX_LENGTH = 1_000 + length = len(r) + if not length >= MAX_LENGTH: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 + + +@app.route("/good_4") +def good_4(): + r = request.args.get("r", "") + MAX_LENGTH = 1_000 + length = len(r) + if not MAX_LENGTH <= length: + # Normalize the r using NFKD Unicode normalization + r = unicodedata.normalize("NFKD", r) + return r, 200, {"Content-Type": "application/octet-stream"} + else: + return jsonify({"error": "File not found"}), 404 From 70ebc58b4ce310c7982669418a66d37e88a71979 Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Tue, 12 Mar 2024 20:15:07 +0000 Subject: [PATCH 159/309] Refactor Unicode normalization code --- .../Security/CWE-770/UnicodeDoS.ql | 53 +++++++------------ 1 file changed, 18 insertions(+), 35 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql index ea06def1b32..0a8241b1f0b 100644 --- a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql @@ -23,41 +23,24 @@ class UnicodeCompatibilityNormalize extends API::CallNode { int argIdx; UnicodeCompatibilityNormalize() { - exists(API::CallNode cn, DataFlow::Node form | - cn = API::moduleImport("unicodedata").getMember("normalize").getACall() and - form.asExpr().(StrConst).getS() in ["NFKC", "NFKD"] and - TaintTracking::localTaint(form, cn.getArg(0)) and - this = cn and - argIdx = 1 - ) + ( + this = API::moduleImport("unicodedata").getMember("normalize").getACall() and + this.getParameter(0).getAValueReachingSink().asExpr().(StrConst).getText() in ["NFKC", "NFKD"] + or + this = API::moduleImport("pyunormalize").getMember("normalize").getACall() and + this.getParameter(0).getAValueReachingSink().asExpr().(StrConst).getText() in ["NFKC", "NFKD"] + ) and + argIdx = 1 or - exists(API::CallNode cn | - cn = API::moduleImport("unidecode").getMember("unidecode").getACall() and - this = cn and - argIdx = 0 - ) - or - exists(API::CallNode cn | - cn = API::moduleImport("pyunormalize").getMember(["NFKC", "NFKD"]).getACall() and - this = cn and - argIdx = 0 - ) - or - exists(API::CallNode cn, DataFlow::Node form | - cn = API::moduleImport("pyunormalize").getMember("normalize").getACall() and - form.asExpr().(StrConst).getS() in ["NFKC", "NFKD"] and - TaintTracking::localTaint(form, cn.getArg(0)) and - this = cn and - argIdx = 1 - ) - or - exists(API::CallNode cn, DataFlow::Node form | - cn = API::moduleImport("textnorm").getMember("normalize_unicode").getACall() and - form.asExpr().(StrConst).getS() in ["NFKC", "NFKD"] and - TaintTracking::localTaint(form, cn.getArg(1)) and - this = cn and - argIdx = 0 - ) + ( + this = API::moduleImport("textnorm").getMember("normalize_unicode").getACall() and + this.getParameter(1).getAValueReachingSink().asExpr().(StrConst).getText() in ["NFKC", "NFKD"] + or + this = API::moduleImport("unidecode").getMember("unidecode").getACall() + or + this = API::moduleImport("pyunormalize").getMember(["NFKC", "NFKD"]).getACall() + ) and + argIdx = 0 } DataFlow::Node getPathArg() { result = this.getArg(argIdx) } @@ -73,7 +56,7 @@ predicate underAValue(DataFlow::GuardNode g, ControlFlowNode node, boolean branc branch = true and cn.operands(n.asCfgNode(), op_lt, _) or - // LIMIT >= arg OR LIMIT > arg + // LIMIT >= arg OR LIMIT > arg (op_gt = any(GtE gte) or op_gt = any(Gt gt)) and branch = true and cn.operands(_, op_gt, n.asCfgNode()) From 31dc542111bc508c926312206275b8a42535d8db Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Tue, 12 Mar 2024 20:18:18 +0000 Subject: [PATCH 160/309] Update request parameter name in good_1() function --- python/ql/src/experimental/Security/CWE-770/good.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/src/experimental/Security/CWE-770/good.py b/python/ql/src/experimental/Security/CWE-770/good.py index ce171a16015..4d1ebc31507 100644 --- a/python/ql/src/experimental/Security/CWE-770/good.py +++ b/python/ql/src/experimental/Security/CWE-770/good.py @@ -6,7 +6,7 @@ app = Flask(__name__) @app.route("/good_1") def good_1(): - r = request.args.get("r", "") + r = request.args.get("file_path", "") if len(r) <= 1_000: # Normalize the r using NFKD Unicode normalization From 085d803b14fa87ded56c8f8766053794b614360f Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Tue, 12 Mar 2024 20:21:38 +0000 Subject: [PATCH 161/309] Fix UnicodeDoS vulnerability in CWE-770 --- .../ql/src/experimental/Security/CWE-770/UnicodeDoS.ql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql index 0a8241b1f0b..aaab637ec45 100644 --- a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql @@ -60,6 +60,16 @@ predicate underAValue(DataFlow::GuardNode g, ControlFlowNode node, boolean branc (op_gt = any(GtE gte) or op_gt = any(Gt gt)) and branch = true and cn.operands(_, op_gt, n.asCfgNode()) + or + // not arg <= LIMIT OR not arg < LIMIT + (op_lt = any(LtE lte) or op_lt = any(Lt lt)) and + branch = false and + cn.operands(n.asCfgNode(), op_lt, _) + or + // not LIMIT >= arg OR not LIMIT > arg + (op_gt = any(GtE gte) or op_gt = any(Gt gt)) and + branch = false and + cn.operands(_, op_gt, n.asCfgNode()) ) | lenCall = API::builtin("len").getACall() and From af19a0342e33dbccb0a2fad50126b1fab49ff153 Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Tue, 12 Mar 2024 21:09:10 +0000 Subject: [PATCH 162/309] Fix UnicodeDoS vulnerability in CWE-770 code --- .../experimental/Security/CWE-770/UnicodeDoS.ql | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql index aaab637ec45..01e2fe8741d 100644 --- a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql @@ -61,15 +61,15 @@ predicate underAValue(DataFlow::GuardNode g, ControlFlowNode node, boolean branc branch = true and cn.operands(_, op_gt, n.asCfgNode()) or - // not arg <= LIMIT OR not arg < LIMIT - (op_lt = any(LtE lte) or op_lt = any(Lt lt)) and - branch = false and - cn.operands(n.asCfgNode(), op_lt, _) - or - // not LIMIT >= arg OR not LIMIT > arg + // not arg >= LIMIT OR not arg > LIMIT (op_gt = any(GtE gte) or op_gt = any(Gt gt)) and branch = false and - cn.operands(_, op_gt, n.asCfgNode()) + cn.operands(n.asCfgNode(), op_gt, _) + or + // not LIMIT <= arg OR not LIMIT < arg + (op_lt = any(LtE lte) or op_lt = any(Lt lt)) and + branch = false and + cn.operands(_, op_lt, n.asCfgNode()) ) | lenCall = API::builtin("len").getACall() and From a717bf1b9ded12c9804b463160c601afda830ece Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Wed, 13 Mar 2024 11:04:15 +0000 Subject: [PATCH 163/309] Fix p tag in UnicodeDoS.qhelp --- python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp index 53a19e9bca3..9b8fea3cad1 100644 --- a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.qhelp @@ -6,7 +6,7 @@ <overview> <p>When a remote user-controlled data can reach a costly Unicode normalization with either form, NFKC or NFKD, an attack such as the One Million Unicode Characters, could lead to a denial of service on Windows OS.</p> -<p>And, with the use of special Unicode characters, like U+2100 (â„€) or U+2105 (â„…), the payload size could be tripled after the compatibility normalization. +<p>And, with the use of special Unicode characters, like U+2100 (â„€) or U+2105 (â„…), the payload size could be tripled after the compatibility normalization.</p> </overview> <recommendation> From 26a16b7857f6e8bb81e52fb9e4628fbec0a63a36 Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Wed, 13 Mar 2024 11:07:40 +0000 Subject: [PATCH 164/309] use of a single var "op" of type Cmpop --- .../Security/CWE-770/UnicodeDoS.ql | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql index 01e2fe8741d..9e0a3a3018a 100644 --- a/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql +++ b/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql @@ -48,28 +48,28 @@ class UnicodeCompatibilityNormalize extends API::CallNode { predicate underAValue(DataFlow::GuardNode g, ControlFlowNode node, boolean branch) { exists(CompareNode cn | cn = g | - exists(API::CallNode lenCall, Cmpop op_gt, Cmpop op_lt, Node n | + exists(API::CallNode lenCall, Cmpop op, Node n | lenCall = n.getALocalSource() and ( // arg <= LIMIT OR arg < LIMIT - (op_lt = any(LtE lte) or op_lt = any(Lt lt)) and + (op instanceof LtE or op instanceof Lt) and branch = true and - cn.operands(n.asCfgNode(), op_lt, _) + cn.operands(n.asCfgNode(), op, _) or // LIMIT >= arg OR LIMIT > arg - (op_gt = any(GtE gte) or op_gt = any(Gt gt)) and + (op instanceof GtE or op instanceof Gt) and branch = true and - cn.operands(_, op_gt, n.asCfgNode()) + cn.operands(_, op, n.asCfgNode()) or // not arg >= LIMIT OR not arg > LIMIT - (op_gt = any(GtE gte) or op_gt = any(Gt gt)) and + (op instanceof GtE or op instanceof Gt) and branch = false and - cn.operands(n.asCfgNode(), op_gt, _) + cn.operands(n.asCfgNode(), op, _) or // not LIMIT <= arg OR not LIMIT < arg - (op_lt = any(LtE lte) or op_lt = any(Lt lt)) and + (op instanceof LtE or op instanceof Lt) and branch = false and - cn.operands(_, op_lt, n.asCfgNode()) + cn.operands(_, op, n.asCfgNode()) ) | lenCall = API::builtin("len").getACall() and From 3acdd3382c85ad63c578d9afe41049a6882d3013 Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Wed, 13 Mar 2024 15:49:58 +0000 Subject: [PATCH 165/309] Update the expected file --- .../Security/CWE-770/UnicodeDoS.expected | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected b/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected index f05da000657..415b94973a5 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected @@ -1,13 +1,11 @@ -WARNING: Module PathGraph has been deprecated and may be removed in future (C:/Users/ab/Desktop/GhSec/Pull-Requests/codeql-PUN/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql:99,8-27) -WARNING: Type Configuration has been deprecated and may be removed in future (C:/Users/ab/Desktop/GhSec/Pull-Requests/codeql-PUN/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql:85,29-57) -WARNING: Type PathNode has been deprecated and may be removed in future (C:/Users/ab/Desktop/GhSec/Pull-Requests/codeql-PUN/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql:101,28-46) -WARNING: Type PathNode has been deprecated and may be removed in future (C:/Users/ab/Desktop/GhSec/Pull-Requests/codeql-PUN/python/ql/src/experimental/Security/CWE-770/UnicodeDoS.ql:101,55-73) edges | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:1:35:1:41 | ControlFlowNode for request | | tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:12:17:12:23 | ControlFlowNode for request | | tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:24:9:24:15 | ControlFlowNode for request | | tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:36:9:36:15 | ControlFlowNode for request | | tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:48:9:48:15 | ControlFlowNode for request | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:60:9:60:15 | ControlFlowNode for request | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:72:9:72:15 | ControlFlowNode for request | | tests.py:12:5:12:13 | ControlFlowNode for file_path | tests.py:16:39:16:47 | ControlFlowNode for file_path | | tests.py:12:17:12:23 | ControlFlowNode for request | tests.py:12:17:12:28 | ControlFlowNode for Attribute | | tests.py:12:17:12:28 | ControlFlowNode for Attribute | tests.py:12:17:12:49 | ControlFlowNode for Attribute() | @@ -24,6 +22,14 @@ edges | tests.py:48:9:48:15 | ControlFlowNode for request | tests.py:48:9:48:20 | ControlFlowNode for Attribute | | tests.py:48:9:48:20 | ControlFlowNode for Attribute | tests.py:48:9:48:33 | ControlFlowNode for Attribute() | | tests.py:48:9:48:33 | ControlFlowNode for Attribute() | tests.py:48:5:48:5 | ControlFlowNode for r | +| tests.py:60:5:60:5 | ControlFlowNode for r | tests.py:64:43:64:43 | ControlFlowNode for r | +| tests.py:60:9:60:15 | ControlFlowNode for request | tests.py:60:9:60:20 | ControlFlowNode for Attribute | +| tests.py:60:9:60:20 | ControlFlowNode for Attribute | tests.py:60:9:60:33 | ControlFlowNode for Attribute() | +| tests.py:60:9:60:33 | ControlFlowNode for Attribute() | tests.py:60:5:60:5 | ControlFlowNode for r | +| tests.py:72:5:72:5 | ControlFlowNode for r | tests.py:76:43:76:43 | ControlFlowNode for r | +| tests.py:72:9:72:15 | ControlFlowNode for request | tests.py:72:9:72:20 | ControlFlowNode for Attribute | +| tests.py:72:9:72:20 | ControlFlowNode for Attribute | tests.py:72:9:72:33 | ControlFlowNode for Attribute() | +| tests.py:72:9:72:33 | ControlFlowNode for Attribute() | tests.py:72:5:72:5 | ControlFlowNode for r | nodes | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | tests.py:1:35:1:41 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | @@ -47,9 +53,21 @@ nodes | tests.py:48:9:48:20 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | | tests.py:48:9:48:33 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | tests.py:52:43:52:43 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:60:5:60:5 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:60:9:60:15 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| tests.py:60:9:60:20 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| tests.py:60:9:60:33 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tests.py:64:43:64:43 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:72:5:72:5 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | +| tests.py:72:9:72:15 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| tests.py:72:9:72:20 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| tests.py:72:9:72:33 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| tests.py:76:43:76:43 | ControlFlowNode for r | semmle.label | ControlFlowNode for r | subpaths #select | tests.py:16:39:16:47 | ControlFlowNode for file_path | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:16:39:16:47 | ControlFlowNode for file_path | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:16:39:16:47 | ControlFlowNode for file_path | costly Unicode normalization operation | | tests.py:28:43:28:43 | ControlFlowNode for r | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:28:43:28:43 | ControlFlowNode for r | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:28:43:28:43 | ControlFlowNode for r | costly Unicode normalization operation | | tests.py:40:43:40:43 | ControlFlowNode for r | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:40:43:40:43 | ControlFlowNode for r | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:40:43:40:43 | ControlFlowNode for r | costly Unicode normalization operation | | tests.py:52:43:52:43 | ControlFlowNode for r | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:52:43:52:43 | ControlFlowNode for r | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:52:43:52:43 | ControlFlowNode for r | costly Unicode normalization operation | +| tests.py:64:43:64:43 | ControlFlowNode for r | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:64:43:64:43 | ControlFlowNode for r | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:64:43:64:43 | ControlFlowNode for r | costly Unicode normalization operation | +| tests.py:76:43:76:43 | ControlFlowNode for r | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:76:43:76:43 | ControlFlowNode for r | This $@ can reach a $@. | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | user-provided value | tests.py:76:43:76:43 | ControlFlowNode for r | costly Unicode normalization operation | From cfbc3f73ec47a7d8e69311f280019b926f5ffaab Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen <yoff@github.com> Date: Fri, 15 Mar 2024 15:13:39 +0100 Subject: [PATCH 166/309] Pyhton: add test for conflicting summaries We noticed that when - a function has more than one summary (with different charpred) - one summary is subsumed by a subpath (or something happens around the function being extracted) - the function is called multiple times(we needed at least three) one of the summaries would no longer lead to flow. --- .../summaries/InlineTaintTest.expected | 4 + .../dataflow/summaries/InlineTaintTest.ql | 4 + .../dataflow/summaries/TestSummaries.qll | 105 ++++++++++++++++++ .../summaries/conflicting_summaries.py | 18 +++ .../summaries/extracted_package/functions.py | 5 + 5 files changed, 136 insertions(+) create mode 100644 python/ql/test/experimental/dataflow/summaries/InlineTaintTest.expected create mode 100644 python/ql/test/experimental/dataflow/summaries/InlineTaintTest.ql create mode 100644 python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py create mode 100644 python/ql/test/experimental/dataflow/summaries/extracted_package/functions.py diff --git a/python/ql/test/experimental/dataflow/summaries/InlineTaintTest.expected b/python/ql/test/experimental/dataflow/summaries/InlineTaintTest.expected new file mode 100644 index 00000000000..366de37b867 --- /dev/null +++ b/python/ql/test/experimental/dataflow/summaries/InlineTaintTest.expected @@ -0,0 +1,4 @@ +argumentToEnsureNotTaintedNotMarkedAsSpurious +untaintedArgumentToEnsureTaintedNotMarkedAsMissing +testFailures +failures diff --git a/python/ql/test/experimental/dataflow/summaries/InlineTaintTest.ql b/python/ql/test/experimental/dataflow/summaries/InlineTaintTest.ql new file mode 100644 index 00000000000..96cc5c3e31f --- /dev/null +++ b/python/ql/test/experimental/dataflow/summaries/InlineTaintTest.ql @@ -0,0 +1,4 @@ +import python +import experimental.meta.InlineTaintTest +import MakeInlineTaintTest<TestTaintTrackingConfig> +import TestSummaries diff --git a/python/ql/test/experimental/dataflow/summaries/TestSummaries.qll b/python/ql/test/experimental/dataflow/summaries/TestSummaries.qll index b2e29e9999e..534fac62491 100644 --- a/python/ql/test/experimental/dataflow/summaries/TestSummaries.qll +++ b/python/ql/test/experimental/dataflow/summaries/TestSummaries.qll @@ -136,3 +136,108 @@ private class SummarizedCallableJsonLoads extends SummarizedCallable { preservesValue = true } } + +// Repeated summaries +private class SummarizedCallableWithSubpath extends SummarizedCallable { + SummarizedCallableWithSubpath() { this = "extracted_package.functions.with_subpath" } + + override DataFlow::CallCfgNode getACall() { + result = + API::moduleImport("extracted_package") + .getMember("functions") + .getMember("with_subpath") + .getACall() + } + + override DataFlow::ArgumentNode getACallback() { + result = + API::moduleImport("extracted_package") + .getMember("functions") + .getMember("with_subpath") + .getAValueReachableFromSource() + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + input = "Argument[0]" and + output = "ReturnValue" and + preservesValue = false + } +} + +private class SummarizedCallableWithSubpathAgain extends SummarizedCallable { + SummarizedCallableWithSubpathAgain() { this = "extracted_package.functions.with_subpathII" } + + override DataFlow::CallCfgNode getACall() { + result = + API::moduleImport("extracted_package") + .getMember("functions") + .getMember("with_subpath") + .getACall() + } + + override DataFlow::ArgumentNode getACallback() { + result = + API::moduleImport("extracted_package") + .getMember("functions") + .getMember("with_subpath") + .getAValueReachableFromSource() + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + input = "Argument[0]" and + output = "ReturnValue.Attribute[pattern]" and + preservesValue = true + } +} + +private class SummarizedCallableWithoutSubpath extends SummarizedCallable { + SummarizedCallableWithoutSubpath() { this = "extracted_package.functions.without_subpath" } + + override DataFlow::CallCfgNode getACall() { + result = + API::moduleImport("extracted_package") + .getMember("functions") + .getMember("without_subpath") + .getACall() + } + + override DataFlow::ArgumentNode getACallback() { + result = + API::moduleImport("extracted_package") + .getMember("functions") + .getMember("without_subpath") + .getAValueReachableFromSource() + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + input = "Argument[0]" and + output = "ReturnValue" and + preservesValue = false + } +} + +private class SummarizedCallableWithoutSubpathAgain extends SummarizedCallable { + SummarizedCallableWithoutSubpathAgain() { this = "extracted_package.functions.without_subpathII" } + + override DataFlow::CallCfgNode getACall() { + result = + API::moduleImport("extracted_package") + .getMember("functions") + .getMember("without_subpath") + .getACall() + } + + override DataFlow::ArgumentNode getACallback() { + result = + API::moduleImport("extracted_package") + .getMember("functions") + .getMember("without_subpath") + .getAValueReachableFromSource() + } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + input = "Argument[0]" and + output = "ReturnValue.Attribute[pattern]" and + preservesValue = true + } +} diff --git a/python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py b/python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py new file mode 100644 index 00000000000..9528e9cdafc --- /dev/null +++ b/python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py @@ -0,0 +1,18 @@ +# Bad interaction of two summaries for the same function +ts = TAINTED_STRING + +from extracted_package.functions import with_subpath, without_subpath + +# For the function `with_subpath`, flow from the first argument to the return value +# can be concluded from its definition. This seems to discard all summaries, including +# the one with flow to `ReturnValue.Attribute[pattern]`. +ensure_tainted( + with_subpath(ts).pattern, # $ MISSING: tainted + with_subpath(ts), # $ tainted + with_subpath(ts), # $ tainted +) +ensure_tainted( + without_subpath(ts).pattern, # $ tainted + without_subpath(ts), # $ tainted + without_subpath(ts), # $ tainted +) \ No newline at end of file diff --git a/python/ql/test/experimental/dataflow/summaries/extracted_package/functions.py b/python/ql/test/experimental/dataflow/summaries/extracted_package/functions.py new file mode 100644 index 00000000000..f4780be20a3 --- /dev/null +++ b/python/ql/test/experimental/dataflow/summaries/extracted_package/functions.py @@ -0,0 +1,5 @@ +def with_subpath(x): + return x + +def without_subpath(x): + pass \ No newline at end of file From f7c29e6bfbc3be47b2afdaf1f1c14158ffb0a19f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 14:21:39 +0000 Subject: [PATCH 167/309] C++: Expose some previously private classes from our models so they can be used in queries. --- .../lib/semmle/code/cpp/models/implementations/Iterator.qll | 6 +++++- .../semmle/code/cpp/models/implementations/StdContainer.qll | 4 +++- .../lib/semmle/code/cpp/models/implementations/StdMap.qll | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) 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 cafd9aeeef0..2c65ac57aeb 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/Iterator.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/Iterator.qll @@ -438,7 +438,7 @@ private class IteratorAssignmentMemberOperatorModel extends IteratorAssignmentMe * A `begin` or `end` member function, or a related member function, that * returns an iterator. */ -private class BeginOrEndFunction extends MemberFunction, TaintFunction, GetIteratorFunction { +class BeginOrEndFunction extends MemberFunction { BeginOrEndFunction() { this.hasName([ "begin", "cbegin", "rbegin", "crbegin", "end", "cend", "rend", "crend", "before_begin", @@ -446,7 +446,11 @@ private class BeginOrEndFunction extends MemberFunction, TaintFunction, GetItera ]) and this.getType().getUnspecifiedType() instanceof Iterator } +} +private class BeginOrEndFunctionModels extends BeginOrEndFunction, TaintFunction, + GetIteratorFunction +{ override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) { input.isQualifierObject() and output.isReturnValue() 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 877dc5d3ac4..6fb17d80c5d 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdContainer.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdContainer.qll @@ -253,13 +253,15 @@ private class StdSequenceContainerAssign extends TaintFunction { /** * The standard container functions `at` and `operator[]`. */ -private class StdSequenceContainerAt extends TaintFunction { +class StdSequenceContainerAt extends MemberFunction { StdSequenceContainerAt() { this.getClassAndName(["at", "operator[]"]) instanceof Array or this.getClassAndName(["at", "operator[]"]) instanceof Deque or this.getClassAndName(["at", "operator[]"]) instanceof Vector } +} +private class StdSequenceContainerAtModel extends StdSequenceContainerAt, TaintFunction { override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) { // flow from qualifier to referenced return value input.isQualifierObject() and 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 b6d869d7bea..ce3c596f308 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMap.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMap.qll @@ -129,9 +129,11 @@ private class StdMapMerge extends TaintFunction { /** * The standard map functions `at` and `operator[]`. */ -private class StdMapAt extends TaintFunction { +class StdMapAt extends MemberFunction { StdMapAt() { this.getClassAndName(["at", "operator[]"]) instanceof MapOrUnorderedMap } +} +private class StdMapAtModels extends StdMapAt, TaintFunction { override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) { // flow from qualifier to referenced return value input.isQualifierObject() and From 23cf99734af6ad72a0aa9f1bb83c61bdd3c3d379 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 14:29:29 +0000 Subject: [PATCH 168/309] C++: Add a new experimental query ' cpp/iterator-to-expired-container'. --- .../CWE/CWE-416/IteratorToExpiredContainer.ql | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql new file mode 100644 index 00000000000..4c165d197eb --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql @@ -0,0 +1,89 @@ +/** + * @name Iterator to expired container + * @description Using an iterator owned by a container whose lifetimes has expired may lead to unexpected behavior. + * @kind problem + * @precision high + * @id cpp/iterator-to-expired-container + * @problem.severity warning + * @tags reliability + * security + * external/cwe/cwe-416 + * external/cwe/cwe-664 + */ + +// IMPORTANT: This query does not currently find anything since it relies on extractor and analysis improvements that hasn't yet been released +import cpp +import semmle.code.cpp.ir.IR +import semmle.code.cpp.dataflow.new.DataFlow +import semmle.code.cpp.models.implementations.StdContainer +import semmle.code.cpp.models.implementations.StdMap +import semmle.code.cpp.models.implementations.Iterator + +/** + * A configuration to track flow from a temporary variable to the qualifier of + * a destructor call + */ +module TempToDestructorConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.asInstruction().(VariableAddressInstruction).getIRVariable() instanceof IRTempVariable + } + + predicate isSink(DataFlow::Node sink) { + sink.asOperand().(ThisArgumentOperand).getCall().getStaticCallTarget() instanceof Destructor + } +} + +module TempToDestructorFlow = DataFlow::Global<TempToDestructorConfig>; + +/** + * Gets a `DataFlow::Node` that represents a temporary that will be destroyed + * by a call to a destructor, or a `DataFlow::Node` that will transitively be + * destroyed by a call to a destructor. + * + * For the latter case, consider something like: + * ``` + * std::vector<std::vector<int>> get_2d_vector(); + * auto& v = get_2d_vector()[0]; + * ``` + * Given the above, this predicate returns the node corresponding + * to `get_2d_vector()[0]` since the temporary `get_2d_vector()` gets + * destroyed by a call to `std::vector<std::vector<int>>::~vector`, + * and thus the result of `get_2d_vector()[0]` is also an invalid reference. + */ +DataFlow::Node getADestroyedNode() { + exists(TempToDestructorFlow::PathNode destroyedTemp | destroyedTemp.isSource() | + result = destroyedTemp.getNode() + or + exists(CallInstruction call | + result.asInstruction() = call and + DataFlow::localFlow(destroyedTemp.getNode(), + DataFlow::operandNode(call.getThisArgumentOperand())) + | + call.getStaticCallTarget() instanceof StdSequenceContainerAt or + call.getStaticCallTarget() instanceof StdMapAt + ) + ) +} + +predicate isSinkImpl(DataFlow::Node sink, FunctionCall fc) { + exists(CallInstruction call | + call = sink.asOperand().(ThisArgumentOperand).getCall() and + fc = call.getUnconvertedResultExpression() and + call.getStaticCallTarget() instanceof BeginOrEndFunction + ) +} + +/** + * Flow from any destroyed object to the qualifier of a `begin` call + */ +module DestroyedToBeginConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = getADestroyedNode() } + + predicate isSink(DataFlow::Node sink) { isSinkImpl(sink, _) } +} + +module DestroyedToBeginFlow = DataFlow::Global<DestroyedToBeginConfig>; + +from DataFlow::Node source, DataFlow::Node sink, FunctionCall beginOrEnd +where DestroyedToBeginFlow::flow(source, sink) and isSinkImpl(sink, beginOrEnd) +select source, "This object is destroyed before $@ is called.", beginOrEnd, beginOrEnd.toString() From 8c5fff2d110a08257e03a0176b0dd4f9b75d7e40 Mon Sep 17 00:00:00 2001 From: Joe Farebrother <joefarebrother@github.com> Date: Fri, 15 Mar 2024 14:43:29 +0000 Subject: [PATCH 169/309] Update names and qldoc for params taint predicates --- .../ruby/frameworks/ActionController.qll | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll index 19dcb82cfd6..3fcb3eda5f8 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActionController.qll @@ -506,8 +506,8 @@ private module ParamsSummaries { ] } - /** Gets a field of an instance of `ActionController::Parameters` */ - private DataFlow::LocalSourceNode paramsField() { + /** Gets a node that may be tainted from an `ActionController::Parameters` instance, through field accesses and hash/array element reads. */ + private DataFlow::LocalSourceNode taintFromParamsBase() { result = [ paramsInstance(), @@ -515,16 +515,16 @@ private module ParamsSummaries { ] } - private DataFlow::LocalSourceNode paramsFieldType(TypeTracker t) { + private DataFlow::LocalSourceNode taintFromParamsType(TypeTracker t) { t.start() and - result = paramsField() + result = taintFromParamsBase() or - exists(TypeTracker t2 | result = paramsFieldType(t2).track(t2, t)) + exists(TypeTracker t2 | result = taintFromParamsType(t2).track(t2, t)) } - /** Gets a node with a type that can be a field of `ActionController::Parameters` */ - private DataFlow::LocalSourceNode paramsFieldType() { - paramsFieldType(TypeTracker::end()).flowsTo(result) + /** Gets a node with a type that may be tainted from an `ActionController::Parameters` instance. */ + private DataFlow::LocalSourceNode taintFromParamsType() { + taintFromParamsType(TypeTracker::end()).flowsTo(result) } /** @@ -602,7 +602,7 @@ private module ParamsSummaries { override MethodCall getACall() { result = - paramsFieldType() + taintFromParamsType() .getAMethodCall(["original_filename", "content_type", "headers"]) .asExpr() .getExpr() and @@ -622,7 +622,7 @@ private module ParamsSummaries { UploadedFileReadSummary() { this = "ActionDispatch::Http::UploadedFile#read" } override MethodCall getACall() { - result = paramsFieldType().getAMethodCall("read").asExpr().getExpr() and + result = taintFromParamsType().getAMethodCall("read").asExpr().getExpr() and result.getNumberOfArguments() in [0 .. 2] } From 704f1fad462a5f672eccd9cd784cca8543b4ff19 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 17:02:12 +0000 Subject: [PATCH 170/309] C++: Add switches as testcases for guard conditions. --- .../library-tests/controlflow/guards/test.cpp | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/cpp/ql/test/library-tests/controlflow/guards/test.cpp b/cpp/ql/test/library-tests/controlflow/guards/test.cpp index 46d894813f9..3a60f5f026e 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/test.cpp +++ b/cpp/ql/test/library-tests/controlflow/guards/test.cpp @@ -52,3 +52,37 @@ bool testWithCatch0(int v) return false; } + +void use1(int); +void use2(int); +void use3(int); + +void test_switches_simple(int i) { + switch(i) { + case 0: + use1(i); + break; + case 1: + use2(i); + /* NOTE: fallthrough */ + case 2: + use3(i); + } +} + +void test_switches_range(int i) { + switch(i) { + case 0 ... 10: + use1(i); + break; + case 11 ... 20: + use2(i); + } +} + +void test_switches_default(int i) { + switch(i) { + default: + use1(i); + } +} \ No newline at end of file From 2af68d37d02d4ca391b42dfe618b569bb395ae1a Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 15:08:39 +0000 Subject: [PATCH 171/309] C++: Include 'SwitchInstruction's as 'IRGuardCondition's. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 0adba6c1e71..4598fb0aa3b 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -249,10 +249,10 @@ private predicate nonExcludedIRAndBasicBlock(IRBlock irb, BasicBlock controlled) */ cached class IRGuardCondition extends Instruction { - ConditionalBranchInstruction branch; + Instruction branch; cached - IRGuardCondition() { branch = get_branch_for_condition(this) } + IRGuardCondition() { branch = getBranchForCondition(this) } /** * Holds if this condition controls `controlled`, meaning that `controlled` is only @@ -302,7 +302,7 @@ class IRGuardCondition extends Instruction { this.controls(pred, testIsTrue) or succ = this.getBranchSuccessor(testIsTrue) and - branch.getCondition() = this and + branch.(ConditionalBranchInstruction).getCondition() = this and branch.getBlock() = pred } @@ -322,13 +322,13 @@ class IRGuardCondition extends Instruction { * ``` */ private IRBlock getBranchSuccessor(boolean testIsTrue) { - branch.getCondition() = this and + branch.(ConditionalBranchInstruction).getCondition() = this and ( testIsTrue = true and - result.getFirstInstruction() = branch.getTrueSuccessor() + result.getFirstInstruction() = branch.(ConditionalBranchInstruction).getTrueSuccessor() or testIsTrue = false and - result.getFirstInstruction() = branch.getFalseSuccessor() + result.getFirstInstruction() = branch.(ConditionalBranchInstruction).getFalseSuccessor() ) } @@ -476,12 +476,14 @@ class IRGuardCondition extends Instruction { private IRBlock getBranchBlock() { result = branch.getBlock() } } -private ConditionalBranchInstruction get_branch_for_condition(Instruction guard) { - result.getCondition() = guard +private Instruction getBranchForCondition(Instruction guard) { + result.(ConditionalBranchInstruction).getCondition() = guard or exists(LogicalNotInstruction cond | - result = get_branch_for_condition(cond) and cond.getUnary() = guard + result = getBranchForCondition(cond) and cond.getUnary() = guard ) + or + result.(SwitchInstruction).getExpression() = guard } /** From b7292fbc67e3037732f9b26ef1e87c716e71d023 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 16:49:39 +0000 Subject: [PATCH 172/309] C++: Introduce 'AbstractValue' similar to what C# has. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 4598fb0aa3b..83d45840e91 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -20,6 +20,44 @@ private predicate isUnreachedBlock(IRBlock block) { block.getFirstInstruction() instanceof UnreachedInstruction } +private newtype TAbstractValue = + TBooleanValue(boolean b) { b = true or b = false } or + TMatchValue(CaseEdge c) + +/** + * An abstract value. This is either a boolean value, or a `switch` case. + */ +abstract class AbstractValue extends TAbstractValue { + /** Gets an abstract value that represents the dual of this value, if any. */ + abstract AbstractValue getDualValue(); + + /** Gets a textual representation of this abstract value. */ + abstract string toString(); +} + +/** A Boolean value. */ +class BooleanValue extends AbstractValue, TBooleanValue { + /** Gets the underlying Boolean value. */ + boolean getValue() { this = TBooleanValue(result) } + + override BooleanValue getDualValue() { result.getValue() = this.getValue().booleanNot() } + + override string toString() { result = this.getValue().toString() } +} + +/** A value that represents a match against a specific `switch` case. */ +class MatchValue extends AbstractValue, TMatchValue { + /** Gets the case. */ + CaseEdge getCase() { this = TMatchValue(result) } + + override MatchValue getDualValue() { + // A `MatchValue` has no dual. + none() + } + + override string toString() { result = this.getCase().toString() } +} + /** * A Boolean condition in the AST that guards one or more basic blocks. This includes * operands of logical operators but not switch statements. From f4eb5f5a2df063c94f08fd4e6983892dd9e2a5c2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 16:51:15 +0000 Subject: [PATCH 173/309] C++: Convert 'getBranchSuccessor' to use abstract values. --- .../lib/semmle/code/cpp/controlflow/IRGuards.qll | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 83d45840e91..3566cfa58f3 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -359,15 +359,21 @@ class IRGuardCondition extends Instruction { * return x; * ``` */ - private IRBlock getBranchSuccessor(boolean testIsTrue) { + private IRBlock getBranchSuccessor(AbstractValue v) { branch.(ConditionalBranchInstruction).getCondition() = this and - ( - testIsTrue = true and + exists(BooleanValue bv | bv = v | + bv.getValue() = true and result.getFirstInstruction() = branch.(ConditionalBranchInstruction).getTrueSuccessor() or - testIsTrue = false and + bv.getValue() = false and result.getFirstInstruction() = branch.(ConditionalBranchInstruction).getFalseSuccessor() ) + or + exists(SwitchInstruction switch, CaseEdge kind | switch = branch | + switch.getExpression() = this and + result.getFirstInstruction() = switch.getSuccessor(kind) and + kind = v.(MatchValue).getCase() + ) } /** Holds if (determined by this guard) `left < right + k` evaluates to `isLessThan` if this expression evaluates to `testIsTrue`. */ From 34decd3cf17be9722fc66236c1e3da0efd093653 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 16:53:11 +0000 Subject: [PATCH 174/309] C++: Add more general public predicates to work with abstract values. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 72 +++++++++++++------ 1 file changed, 51 insertions(+), 21 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 3566cfa58f3..2d37525de0d 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -72,6 +72,15 @@ class GuardCondition extends Expr { this.(BinaryLogicalOperation).getAnOperand() instanceof GuardCondition } + /** + * Holds if this condition controls `controlled`, meaning that `controlled` is only + * entered if the value of this condition is `v`. + * + * For details on what "controls" mean, see the QLDoc for `controls`. + */ + cached + predicate valueControls(BasicBlock controlled, AbstractValue v) { none() } + /** * Holds if this condition controls `controlled`, meaning that `controlled` is only * entered if the value of this condition is `testIsTrue`. @@ -99,7 +108,9 @@ class GuardCondition extends Expr { * true (for `&&`) or false (for `||`) branch. */ cached - predicate controls(BasicBlock controlled, boolean testIsTrue) { none() } + final predicate controls(BasicBlock controlled, boolean testIsTrue) { + this.valueControls(controlled, any(BooleanValue bv | bv.getValue() = testIsTrue)) + } /** Holds if (determined by this guard) `left < right + k` evaluates to `isLessThan` if this expression evaluates to `testIsTrue`. */ cached @@ -136,13 +147,13 @@ private class GuardConditionFromBinaryLogicalOperator extends GuardCondition { this.(BinaryLogicalOperation).getAnOperand() instanceof GuardCondition } - override predicate controls(BasicBlock controlled, boolean testIsTrue) { + override predicate valueControls(BasicBlock controlled, AbstractValue v) { exists(BinaryLogicalOperation binop, GuardCondition lhs, GuardCondition rhs | this = binop and lhs = binop.getLeftOperand() and rhs = binop.getRightOperand() and - lhs.controls(controlled, testIsTrue) and - rhs.controls(controlled, testIsTrue) + lhs.valueControls(controlled, v) and + rhs.valueControls(controlled, v) ) } @@ -184,10 +195,10 @@ private class GuardConditionFromIR extends GuardCondition { GuardConditionFromIR() { this = ir.getUnconvertedResultExpression() } - override predicate controls(BasicBlock controlled, boolean testIsTrue) { + override predicate valueControls(BasicBlock controlled, AbstractValue v) { // This condition must determine the flow of control; that is, this // node must be a top-level condition. - this.controlsBlock(controlled, testIsTrue) + this.controlsBlock(controlled, v) } /** Holds if (determined by this guard) `left < right + k` evaluates to `isLessThan` if this expression evaluates to `testIsTrue`. */ @@ -240,9 +251,9 @@ private class GuardConditionFromIR extends GuardCondition { * predicate does not necessarily hold for binary logical operations like * `&&` and `||`. See the detailed explanation on predicate `controls`. */ - private predicate controlsBlock(BasicBlock controlled, boolean testIsTrue) { + private predicate controlsBlock(BasicBlock controlled, AbstractValue v) { exists(IRBlock irb | - ir.controls(irb, testIsTrue) and + ir.valueControls(irb, v) and nonExcludedIRAndBasicBlock(irb, controlled) and not isUnreachedBlock(irb) ) @@ -319,14 +330,38 @@ class IRGuardCondition extends Instruction { * true (for `&&`) or false (for `||`) branch. */ cached - predicate controls(IRBlock controlled, boolean testIsTrue) { + predicate valueControls(IRBlock controlled, AbstractValue v) { // This condition must determine the flow of control; that is, this // node must be a top-level condition. - this.controlsBlock(controlled, testIsTrue) + this.controlsBlock(controlled, v) or exists(IRGuardCondition ne | this = ne.(LogicalNotInstruction).getUnary() and - ne.controls(controlled, testIsTrue.booleanNot()) + ne.valueControls(controlled, v.getDualValue()) + ) + } + + cached + predicate controls(IRBlock controlled, boolean testIsTrue) { + this.valueControls(controlled, any(BooleanValue bv | bv.getValue() = testIsTrue)) + } + + /** + * Holds if the control-flow edge `(pred, succ)` may be taken only if + * the value of this condition is `v`. + */ + cached + predicate valueControlsEdge(IRBlock pred, IRBlock succ, AbstractValue v) { + pred.getASuccessor() = succ and + this.valueControls(pred, v) + or + succ = this.getBranchSuccessor(v) and + ( + branch.(ConditionalBranchInstruction).getCondition() = this and + branch.getBlock() = pred + or + branch.(SwitchInstruction).getExpression() = this and + branch.getBlock() = pred ) } @@ -335,13 +370,8 @@ class IRGuardCondition extends Instruction { * the value of this condition is `testIsTrue`. */ cached - predicate controlsEdge(IRBlock pred, IRBlock succ, boolean testIsTrue) { - pred.getASuccessor() = succ and - this.controls(pred, testIsTrue) - or - succ = this.getBranchSuccessor(testIsTrue) and - branch.(ConditionalBranchInstruction).getCondition() = this and - branch.getBlock() = pred + final predicate controlsEdge(IRBlock pred, IRBlock succ, boolean testIsTrue) { + this.valueControlsEdge(pred, succ, any(BooleanValue bv | bv.getValue() = testIsTrue)) } /** @@ -440,11 +470,11 @@ class IRGuardCondition extends Instruction { /** * Holds if this condition controls `block`, meaning that `block` is only - * entered if the value of this condition is `testIsTrue`. This helper + * entered if the value of this condition is `v`. This helper * predicate does not necessarily hold for binary logical operations like * `&&` and `||`. See the detailed explanation on predicate `controls`. */ - private predicate controlsBlock(IRBlock controlled, boolean testIsTrue) { + private predicate controlsBlock(IRBlock controlled, AbstractValue v) { not isUnreachedBlock(controlled) and // // For this block to control the block `controlled` with `testIsTrue` the @@ -485,7 +515,7 @@ class IRGuardCondition extends Instruction { // that `this` strictly dominates `controlled` so that isn't necessary to check // directly. exists(IRBlock succ | - succ = this.getBranchSuccessor(testIsTrue) and + succ = this.getBranchSuccessor(v) and this.hasDominatingEdgeTo(succ) and succ.dominates(controlled) ) From 07ebbb0591ce27eead96b4d43197db0c42a06fca Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 17:04:27 +0000 Subject: [PATCH 175/309] C++: Accept test changes. --- cpp/ql/test/library-tests/controlflow/guards/Guards.expected | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cpp/ql/test/library-tests/controlflow/guards/Guards.expected b/cpp/ql/test/library-tests/controlflow/guards/Guards.expected index 4193bd49fef..6eebc960ce3 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/Guards.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/Guards.expected @@ -29,3 +29,6 @@ | test.cpp:18:8:18:10 | call to get | | test.cpp:31:7:31:13 | ... == ... | | test.cpp:42:13:42:20 | call to getABool | +| test.cpp:61:10:61:10 | i | +| test.cpp:74:10:74:10 | i | +| test.cpp:84:10:84:10 | i | From fb218150e1c6e7fa2984350cbe55de5efcaa0375 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 17:05:42 +0000 Subject: [PATCH 176/309] C++: Change the testcase so that it outputs the controlling values for switch statements as well. --- .../library-tests/controlflow/guards/GuardsControl.expected | 4 ++++ .../test/library-tests/controlflow/guards/GuardsControl.ql | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected b/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected index 1e0aed878bf..fbfaff9acf6 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected @@ -86,3 +86,7 @@ | test.cpp:31:7:31:13 | ... == ... | true | 31 | 32 | | test.cpp:42:13:42:20 | call to getABool | false | 53 | 53 | | test.cpp:42:13:42:20 | call to getABool | true | 43 | 45 | +| test.cpp:61:10:61:10 | i | Case[0] | 62 | 64 | +| test.cpp:61:10:61:10 | i | Case[1] | 65 | 66 | +| test.cpp:74:10:74:10 | i | Case[0..10] | 75 | 77 | +| test.cpp:74:10:74:10 | i | Case[11..20] | 78 | 79 | diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.ql b/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.ql index 5101f64a2c5..93ce054cd82 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.ql +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.ql @@ -7,10 +7,10 @@ import cpp import semmle.code.cpp.controlflow.Guards -from GuardCondition guard, boolean sense, int start, int end +from GuardCondition guard, AbstractValue value, int start, int end where exists(BasicBlock block | - guard.controls(block, sense) and + guard.valueControls(block, value) and block.hasLocationInfo(_, start, _, end, _) ) -select guard, sense, start, end +select guard, value, start, end From b5e59492bfeeffbb7d22ea812776abc9b5da6af5 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 17:17:05 +0000 Subject: [PATCH 177/309] C++: Add change note. --- .../change-notes/2024-03-15-switches-in-guard-conditions.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2024-03-15-switches-in-guard-conditions.md diff --git a/cpp/ql/lib/change-notes/2024-03-15-switches-in-guard-conditions.md b/cpp/ql/lib/change-notes/2024-03-15-switches-in-guard-conditions.md new file mode 100644 index 00000000000..cf0b920e29d --- /dev/null +++ b/cpp/ql/lib/change-notes/2024-03-15-switches-in-guard-conditions.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added a predicate `GuardCondition.valueControls` to query whether a basic block is guarded by a particular `case` of a `switch` statement. \ No newline at end of file From f4f417c3f969e1981976c6b32175019e88d8b934 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 17:19:36 +0000 Subject: [PATCH 178/309] C++: Fix QLoc. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 2d37525de0d..e7762fc9fa8 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -247,7 +247,7 @@ private class GuardConditionFromIR extends GuardCondition { /** * Holds if this condition controls `block`, meaning that `block` is only - * entered if the value of this condition is `testIsTrue`. This helper + * entered if the value of this condition is `v`. This helper * predicate does not necessarily hold for binary logical operations like * `&&` and `||`. See the detailed explanation on predicate `controls`. */ @@ -303,6 +303,24 @@ class IRGuardCondition extends Instruction { cached IRGuardCondition() { branch = getBranchForCondition(this) } + /** + * Holds if this condition controls `controlled`, meaning that `controlled` is only + * entered if the value of this condition is `v`. + * + * For details on what "controls" mean, see the QLDoc for `controls`. + */ + cached + predicate valueControls(IRBlock controlled, AbstractValue v) { + // This condition must determine the flow of control; that is, this + // node must be a top-level condition. + this.controlsBlock(controlled, v) + or + exists(IRGuardCondition ne | + this = ne.(LogicalNotInstruction).getUnary() and + ne.valueControls(controlled, v.getDualValue()) + ) + } + /** * Holds if this condition controls `controlled`, meaning that `controlled` is only * entered if the value of this condition is `testIsTrue`. @@ -329,18 +347,6 @@ class IRGuardCondition extends Instruction { * being short-circuited) then it will only control blocks dominated by the * true (for `&&`) or false (for `||`) branch. */ - cached - predicate valueControls(IRBlock controlled, AbstractValue v) { - // This condition must determine the flow of control; that is, this - // node must be a top-level condition. - this.controlsBlock(controlled, v) - or - exists(IRGuardCondition ne | - this = ne.(LogicalNotInstruction).getUnary() and - ne.valueControls(controlled, v.getDualValue()) - ) - } - cached predicate controls(IRBlock controlled, boolean testIsTrue) { this.valueControls(controlled, any(BooleanValue bv | bv.getValue() = testIsTrue)) @@ -375,7 +381,7 @@ class IRGuardCondition extends Instruction { } /** - * Gets the block to which `branch` jumps directly when this condition is `testIsTrue`. + * Gets the block to which `branch` jumps directly when the value of this condition is `v`. * * This predicate is intended to help with situations in which an inference can only be made * based on an edge between a block with multiple successors and a block with multiple From 3a8db49573f6ff79bbb55bc98aafab7b5bd68ef1 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 14:29:47 +0000 Subject: [PATCH 179/309] C++: Add tests for 'cpp/iterator-to-expired-container'. NOTE: This is with the yet-to-be-merged changes to the extractor and IR generation. --- .../IteratorToExpiredContainer.expected | 10 + .../CWE-416/IteratorToExpiredContainer.qlref | 1 + .../query-tests/Security/CWE/CWE-416/test.cpp | 719 ++++++++++++++++++ 3 files changed, 730 insertions(+) create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.expected create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.qlref create mode 100644 cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.expected new file mode 100644 index 00000000000..39588f865be --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.expected @@ -0,0 +1,10 @@ +| test.cpp:680:30:680:30 | call to operator[] | This object is destroyed before $@ is called. | test.cpp:680:17:680:17 | call to begin | call to begin | +| test.cpp:680:30:680:30 | call to operator[] | This object is destroyed before $@ is called. | test.cpp:680:17:680:17 | call to end | call to end | +| test.cpp:683:31:683:32 | call to at | This object is destroyed before $@ is called. | test.cpp:683:17:683:17 | call to begin | call to begin | +| test.cpp:683:31:683:32 | call to at | This object is destroyed before $@ is called. | test.cpp:683:17:683:17 | call to end | call to end | +| test.cpp:689:16:689:28 | temporary object | This object is destroyed before $@ is called. | test.cpp:689:30:689:34 | call to begin | call to begin | +| test.cpp:689:45:689:57 | temporary object | This object is destroyed before $@ is called. | test.cpp:689:59:689:61 | call to end | call to end | +| test.cpp:702:26:702:26 | call to operator[] | This object is destroyed before $@ is called. | test.cpp:703:18:703:22 | call to begin | call to begin | +| test.cpp:702:26:702:26 | call to operator[] | This object is destroyed before $@ is called. | test.cpp:703:35:703:37 | call to end | call to end | +| test.cpp:716:35:716:47 | temporary object | This object is destroyed before $@ is called. | test.cpp:716:16:716:16 | call to begin | call to begin | +| test.cpp:716:35:716:47 | temporary object | This object is destroyed before $@ is called. | test.cpp:716:16:716:16 | call to end | call to end | diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.qlref b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.qlref new file mode 100644 index 00000000000..5f86bb26ff0 --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.qlref @@ -0,0 +1 @@ +experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp new file mode 100644 index 00000000000..c035fe203a8 --- /dev/null +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp @@ -0,0 +1,719 @@ + +typedef unsigned long size_t; + +template<class T> +struct remove_const { typedef T type; }; + +template<class T> +struct remove_const<const T> { typedef T type; }; + +// `remove_const_t<T>` removes any `const` specifier from `T` +template<class T> +using remove_const_t = typename remove_const<T>::type; + +template<class T> +struct remove_reference { typedef T type; }; + +template<class T> +struct remove_reference<T &> { typedef T type; }; + +template<class T> +struct remove_reference<T &&> { typedef T type; }; + +// `remove_reference_t<T>` removes any `&` from `T` +template<class T> +using remove_reference_t = typename remove_reference<T>::type; + +template<class T> +struct decay_impl { + typedef T type; +}; + +template<class T, size_t t_size> +struct decay_impl<T[t_size]> { + typedef T* type; +}; + +template<class T> +using decay_t = typename decay_impl<remove_reference_t<T>>::type; + + +namespace std +{ + template<class T> constexpr T&& forward(remove_reference_t<T>& t) noexcept; + template<class T> constexpr T&& forward(remove_reference_t<T>&& t) noexcept; +} + +// --- iterator --- + +namespace std { + struct ptrdiff_t; + + template<class I> struct iterator_traits; + + template <class Category, + class value_type, + class difference_type = ptrdiff_t, + class pointer_type = value_type*, + class reference_type = value_type&> + struct iterator { + typedef Category iterator_category; + + iterator(); + iterator(iterator<Category, remove_const_t<value_type> > const &other); // non-const -> const conversion constructor + + iterator &operator++(); + iterator operator++(int); + iterator &operator--(); + iterator operator--(int); + bool operator==(iterator other) const; + bool operator!=(iterator other) const; + reference_type operator*() const; + pointer_type operator->() const; + iterator operator+(int); + iterator operator-(int); + iterator &operator+=(int); + iterator &operator-=(int); + int operator-(iterator); + reference_type operator[](int); + }; + + struct input_iterator_tag {}; + struct forward_iterator_tag : public input_iterator_tag {}; + struct bidirectional_iterator_tag : public forward_iterator_tag {}; + struct random_access_iterator_tag : public bidirectional_iterator_tag {}; + + struct output_iterator_tag {}; + + template<class Container> + class back_insert_iterator { + protected: + Container* container = nullptr; + public: + using iterator_category = output_iterator_tag; + using value_type = void; + using difference_type = ptrdiff_t; + using pointer = void; + using reference = void; + using container_type = Container; + constexpr back_insert_iterator() noexcept = default; + constexpr explicit back_insert_iterator(Container& x); + back_insert_iterator& operator=(const typename Container::value_type& value); + back_insert_iterator& operator=(typename Container::value_type&& value); + back_insert_iterator& operator*(); + back_insert_iterator& operator++(); + back_insert_iterator operator++(int); + }; + + template<class Container> + constexpr back_insert_iterator<Container> back_inserter(Container& x) { + return back_insert_iterator<Container>(x); + } + + template<class Container> + class front_insert_iterator { + protected: + Container* container = nullptr; + public: + using iterator_category = output_iterator_tag; + using value_type = void; + using difference_type = ptrdiff_t; + using pointer = void; + using reference = void; + using container_type = Container; + constexpr front_insert_iterator() noexcept = default; + constexpr explicit front_insert_iterator(Container& x); + constexpr front_insert_iterator& operator=(const typename Container::value_type& value); + constexpr front_insert_iterator& operator=(typename Container::value_type&& value); + constexpr front_insert_iterator& operator*(); + constexpr front_insert_iterator& operator++(); + constexpr front_insert_iterator operator++(int); + }; + template<class Container> + constexpr front_insert_iterator<Container> front_inserter(Container& x) { + return front_insert_iterator<Container>(x); + } +} + +// --- string --- + +namespace std +{ + template<class charT> struct char_traits; + + typedef size_t streamsize; + + template <class T> class allocator { + public: + allocator() throw(); + typedef size_t size_type; + }; + + template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > + class basic_string { + public: + using value_type = charT; + using reference = value_type&; + using const_reference = const value_type&; + typedef typename Allocator::size_type size_type; + static const size_type npos = -1; + + explicit basic_string(const Allocator& a = Allocator()); + basic_string(const charT* s, const Allocator& a = Allocator()); + template<class InputIterator> basic_string(InputIterator begin, InputIterator end, const Allocator& a = Allocator()); + + const charT* c_str() const; + charT* data() noexcept; + size_t length() const; + + typedef std::iterator<random_access_iterator_tag, charT> iterator; + typedef std::iterator<random_access_iterator_tag, const charT> const_iterator; + + iterator begin(); + iterator end(); + const_iterator begin() const; + const_iterator end() const; + const_iterator cbegin() const; + const_iterator cend() const; + + void push_back(charT c); + + const charT& front() const; + charT& front(); + const charT& back() const; + charT& back(); + + const_reference operator[](size_type pos) const; + reference operator[](size_type pos); + const_reference at(size_type n) const; + reference at(size_type n); + template<class T> basic_string& operator+=(const T& t); + basic_string& operator+=(const charT* s); + basic_string& append(const basic_string& str); + basic_string& append(const charT* s); + basic_string& append(size_type n, charT c); + template<class InputIterator> basic_string& append(InputIterator first, InputIterator last); + basic_string& assign(const basic_string& str); + basic_string& assign(size_type n, charT c); + template<class InputIterator> basic_string& assign(InputIterator first, InputIterator last); + basic_string& insert(size_type pos, const basic_string& str); + basic_string& insert(size_type pos, size_type n, charT c); + basic_string& insert(size_type pos, const charT* s); + iterator insert(const_iterator p, size_type n, charT c); + template<class InputIterator> iterator insert(const_iterator p, InputIterator first, InputIterator last); + basic_string& replace(size_type pos1, size_type n1, const basic_string& str); + basic_string& replace(size_type pos1, size_type n1, size_type n2, charT c); + size_type copy(charT* s, size_type n, size_type pos = 0) const; + void clear() noexcept; + basic_string substr(size_type pos = 0, size_type n = npos) const; + void swap(basic_string& s) noexcept/*(allocator_traits<Allocator>::propagate_on_container_swap::value || allocator_traits<Allocator>::is_always_equal::value)*/; + }; + + template<class charT, class traits, class Allocator> basic_string<charT, traits, Allocator> operator+(const basic_string<charT, traits, Allocator>& lhs, const basic_string<charT, traits, Allocator>& rhs); + template<class charT, class traits, class Allocator> basic_string<charT, traits, Allocator> operator+(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs); + + typedef basic_string<char> string; +} + +// --- istring / ostream / stringstream --- + +namespace std +{ + template <class charT, class traits = char_traits<charT> > + class basic_istream /*: virtual public basic_ios<charT,traits> - not needed for this test */ { + public: + using char_type = charT; + using int_type = int; //typename traits::int_type; + + basic_istream<charT, traits>& operator>>(int& n); + + int_type get(); + basic_istream<charT, traits>& get(char_type& c); + basic_istream<charT, traits>& get(char_type* s, streamsize n); + int_type peek(); + basic_istream<charT, traits>& read (char_type* s, streamsize n); + streamsize readsome(char_type* s, streamsize n); + basic_istream<charT, traits>& putback(char_type c); + basic_istream<charT,traits>& unget(); + + basic_istream<charT,traits>& getline(char_type* s, streamsize n); + basic_istream<charT,traits>& getline(char_type* s, streamsize n, char_type delim); + }; + + template<class charT, class traits> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>&, charT*); + template<class charT, class traits, class Allocator> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str); + + template<class charT, class traits, class Allocator> basic_istream<charT,traits>& getline(basic_istream<charT,traits>& is, basic_string<charT,traits,Allocator>& str, charT delim); + template<class charT, class traits, class Allocator> basic_istream<charT,traits>& getline(basic_istream<charT,traits>& is, basic_string<charT,traits,Allocator>& str); + + template <class charT, class traits = char_traits<charT> > + class basic_ostream /*: virtual public basic_ios<charT,traits> - not needed for this test */ { + public: + typedef charT char_type; + + basic_ostream<charT, traits>& operator<<(int n); + + basic_ostream<charT, traits>& put(char_type c); + basic_ostream<charT, traits>& write(const char_type* s, streamsize n); + basic_ostream<charT,traits>& flush(); + }; + + template<class charT, class traits> basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const charT*); + template<class charT, class traits, class Allocator> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, const basic_string<charT, traits, Allocator>& str); + + template<class charT, class traits = char_traits<charT>> + class basic_iostream : public basic_istream<charT, traits>, public basic_ostream<charT, traits> { + public: + }; + + template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT>> + class basic_stringstream : public basic_iostream<charT, traits> { + public: + explicit basic_stringstream(/*ios_base::openmode which = ios_base::out|ios_base::in - not needed for this test*/); + explicit basic_stringstream( const basic_string<charT, traits, Allocator>& str/*, ios_base::openmode which = ios_base::out | ios_base::in*/); + basic_stringstream(const basic_stringstream& rhs) = delete; + basic_stringstream(basic_stringstream&& rhs); + basic_stringstream& operator=(const basic_stringstream& rhs) = delete; + basic_stringstream& operator=(basic_stringstream&& rhs); + + void swap(basic_stringstream& rhs); + + basic_string<charT, traits, Allocator> str() const; + void str(const basic_string<charT, traits, Allocator>& str); + }; + + typedef basic_istream<char> istream; + typedef basic_ostream<char> ostream; + extern istream cin; + extern ostream cout; + + using stringstream = basic_stringstream<char>; +} + +// --- vector --- + +namespace std { + template<class T, class Allocator = allocator<T>> + class vector { + public: + using value_type = T; + using reference = value_type&; + using const_reference = const value_type&; + using size_type = unsigned int; + using iterator = std::iterator<random_access_iterator_tag, T>; + using const_iterator = std::iterator<random_access_iterator_tag, const T>; + + vector() noexcept(noexcept(Allocator())); + vector(const std::vector<T, Allocator>&); + explicit vector(const Allocator&) noexcept; + explicit vector(size_type n, const Allocator& = Allocator()); + vector(size_type n, const T& value, const Allocator& = Allocator()); + template<class InputIterator, class IteratorCategory = typename InputIterator::iterator_category> vector(InputIterator first, InputIterator last, const Allocator& = Allocator()); + // use of `iterator_category` makes sure InputIterator is (probably) an iterator, and not an `int` or + // similar that should match a different overload (SFINAE). + ~vector(); + + vector& operator=(const vector& x); + vector& operator=(vector&& x) noexcept/*(allocator_traits<Allocator>::propagate_on_container_move_assignment::value || allocator_traits<Allocator>::is_always_equal::value)*/; + template<class InputIterator, class IteratorCategory = typename InputIterator::iterator_category> void assign(InputIterator first, InputIterator last); + // use of `iterator_category` makes sure InputIterator is (probably) an iterator, and not an `int` or + // similar that should match a different overload (SFINAE). + void assign(size_type n, const T& u); + + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; + + size_type size() const noexcept; + + reference operator[](size_type n); + const_reference operator[](size_type n) const; + const_reference at(size_type n) const; + reference at(size_type n); + reference front(); + const_reference front() const; + reference back(); + const_reference back() const; + + T* data() noexcept; + const T* data() const noexcept; + + void push_back(const T& x); + void push_back(T&& x); + + iterator insert(const_iterator position, const T& x); + iterator insert(const_iterator position, T&& x); + iterator insert(const_iterator position, size_type n, const T& x); + template<class InputIterator> iterator insert(const_iterator position, InputIterator first, InputIterator last); + + template <class... Args> iterator emplace (const_iterator position, Args&&... args); + template <class... Args> void emplace_back (Args&&... args); + + void swap(vector&) noexcept/*(allocator_traits<Allocator>::propagate_on_container_swap::value || allocator_traits<Allocator>::is_always_equal::value)*/; + + void clear() noexcept; + }; +} + +// --- make_shared / make_unique --- + +namespace std { + template<typename T> + class shared_ptr { + public: + shared_ptr() noexcept; + explicit shared_ptr(T*); + shared_ptr(const shared_ptr&) noexcept; + template<class U> shared_ptr(const shared_ptr<U>&) noexcept; + template<class U> shared_ptr(shared_ptr<U>&&) noexcept; + + shared_ptr<T>& operator=(const shared_ptr<T>&) noexcept; + shared_ptr<T>& operator=(shared_ptr<T>&&) noexcept; + + T& operator*() const noexcept; + T* operator->() const noexcept; + + T* get() const noexcept; + }; + + template<typename T> + class unique_ptr { + public: + constexpr unique_ptr() noexcept; + explicit unique_ptr(T*) noexcept; + unique_ptr(unique_ptr<T>&&) noexcept; + + unique_ptr<T>& operator=(unique_ptr<T>&&) noexcept; + + T& operator*() const; + T* operator->() const noexcept; + + T* get() const noexcept; + }; + + template<typename T, class... Args> unique_ptr<T> make_unique(Args&&...); + + template<typename T, class... Args> shared_ptr<T> make_shared(Args&&...); +} + +// --- pair --- + +namespace std { + template <class T1, class T2> + struct pair { + typedef T1 first_type; + typedef T2 second_type; + + T1 first; + T2 second; + pair(); + pair(const T1& x, const T2& y); + template<class U, class V> pair(const pair<U, V> &p); + + void swap(pair& p) /*noexcept(...)*/; + }; + + template<class T1, class T2> constexpr pair<decay_t<T1>, decay_t<T2>> make_pair(T1&& x, T2&& y) { + return pair<decay_t<T1>, decay_t<T2>>(std::forward<T1>(x), std::forward<T2>(y)); + } +} + +// --- map --- + +namespace std { + template<class T = void> struct less; + + template<class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key, T>>> + class map { + public: + using key_type = Key; + using mapped_type = T; + using value_type = pair<const Key, T>; + using iterator = std::iterator<random_access_iterator_tag, value_type >; + using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; + + map(); + map(const map& x); + map(map&& x); + ~map(); + + map& operator=(const map& x); + map& operator=(map&& x) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Compare>)*/; + + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; + + T& operator[](const key_type& x); + T& operator[](key_type&& x); + T& at(const key_type& x); + const T& at(const key_type& x) const; + + template<class... Args> pair<iterator, bool> emplace(Args&&... args); + template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); + + pair<iterator, bool> insert(const value_type& x); + pair<iterator, bool> insert(value_type&& x); + iterator insert(const_iterator position, const value_type& x); + iterator insert(const_iterator position, value_type&& x); + + template<class... Args> pair<iterator, bool> try_emplace(const key_type& k, Args&&... args); + template<class... Args> pair<iterator, bool> try_emplace(key_type&& k, Args&&... args); + template<class... Args> iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); + template<class... Args> iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args); + template<class M> pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj); + template<class M> pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj); + template<class M> iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj); + template<class M> iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj); + + iterator erase(iterator position); + iterator erase(const_iterator position); + iterator erase(const_iterator first, const_iterator last); + void swap(map&) /*noexcept(/*==allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Compare>)*/; + void clear() noexcept; + + template<class C2> void merge(map<Key, T, C2, Allocator>& source); + template<class C2> void merge(map<Key, T, C2, Allocator>&& source); + + iterator find(const key_type& x); + const_iterator find(const key_type& x) const; + + iterator lower_bound(const key_type& x); + const_iterator lower_bound(const key_type& x) const; + iterator upper_bound(const key_type& x); + const_iterator upper_bound(const key_type& x) const; + + pair<iterator, iterator> equal_range(const key_type& x); + pair<const_iterator, const_iterator> equal_range(const key_type& x) const; + }; + + template<class T> struct hash; + template<class T = void> struct equal_to; + + template<class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, class Allocator = allocator<pair<const Key, T>>> + class unordered_map { + public: + using key_type = Key; + using mapped_type = T; + using value_type = pair<const Key, T>; + using iterator = std::iterator<random_access_iterator_tag, value_type >; + using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; + + unordered_map(); + unordered_map(const unordered_map&); + unordered_map(unordered_map&&); + ~unordered_map(); + + unordered_map& operator=(const unordered_map&); + unordered_map& operator=(unordered_map&&) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Hash> && is_nothrow_move_assignable_v<Pred>)*/; + + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; + + mapped_type& operator[](const key_type& k); + mapped_type& operator[](key_type&& k); + mapped_type& at(const key_type& k); + const mapped_type& at(const key_type& k) const; + + template<class... Args> pair<iterator, bool> emplace(Args&&... args); + template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); + + pair<iterator, bool> insert(const value_type& obj); + pair<iterator, bool> insert(value_type&& obj); + iterator insert(const_iterator hint, const value_type& obj); + iterator insert(const_iterator hint, value_type&& obj); + + template<class... Args> pair<iterator, bool> try_emplace(const key_type& k, Args&&... args); + template<class... Args> pair<iterator, bool> try_emplace(key_type&& k, Args&&... args); + template<class... Args> iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); + template<class... Args> iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args); + template<class M> pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj); + template<class M> pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj); + template<class M> iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj); + template<class M> iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj); + + iterator erase(iterator position); + iterator erase(const_iterator position); + iterator erase(const_iterator first, const_iterator last); + void swap(unordered_map&) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Hash> && is_nothrow_swappable_v<Pred>)*/; + void clear() noexcept; + + template<class H2, class P2> void merge(unordered_map<Key, T, H2, P2, Allocator>& source); + template<class H2, class P2> void merge(unordered_map<Key, T, H2, P2, Allocator>&& source); + + iterator find(const key_type& k); + const_iterator find(const key_type& k) const; + + pair<iterator, iterator> equal_range(const key_type& k); + pair<const_iterator, const_iterator> equal_range(const key_type& k) const; + }; +}; + +// --- set --- + +namespace std { + template<class Key, class Compare = less<Key>, class Allocator = allocator<Key>> + class set { + public: + using key_type = Key; + using value_type = Key; + using size_type = size_t; + using allocator_type = Allocator; + using iterator = std::iterator<random_access_iterator_tag, value_type >; + using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; + + set(); + set(const set& x); + set(set&& x); + template<class InputIterator> set(InputIterator first, InputIterator last/*, const Compare& comp = Compare(), const Allocator& = Allocator()*/); + ~set(); + + set& operator=(const set& x); + set& operator=(set&& x) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Compare>)*/; + + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; + + template<class... Args> pair<iterator, bool> emplace(Args&&... args); + template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); + pair<iterator,bool> insert(const value_type& x); + pair<iterator,bool> insert(value_type&& x); + iterator insert(const_iterator position, const value_type& x); + iterator insert(const_iterator position, value_type&& x); + template<class InputIterator> void insert(InputIterator first, InputIterator last); + + iterator erase(iterator position); + iterator erase(const_iterator position); + iterator erase(const_iterator first, const_iterator last); + void swap(set&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Compare>)*/; + void clear() noexcept; + + template<class C2> void merge(set<Key, C2, Allocator>& source); + template<class C2> void merge(set<Key, C2, Allocator>&& source); + + iterator find(const key_type& x); + const_iterator find(const key_type& x) const; + + iterator lower_bound(const key_type& x); + const_iterator lower_bound(const key_type& x) const; + iterator upper_bound(const key_type& x); + const_iterator upper_bound(const key_type& x) const; + pair<iterator, iterator> equal_range(const key_type& x); + pair<const_iterator, const_iterator> equal_range(const key_type& x) const; + }; + + template<class Key, class Hash = hash<Key>, class Pred = equal_to<Key>, class Allocator = allocator<Key>> + class unordered_set { + public: + using key_type = Key; + using value_type = Key; + using hasher = Hash; + using key_equal = Pred; + using allocator_type = Allocator; + using size_type = size_t; + using iterator = std::iterator<random_access_iterator_tag, value_type >; + using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; + + unordered_set(); + unordered_set(const unordered_set&); + unordered_set(unordered_set&&); + template<class InputIterator> unordered_set(InputIterator f, InputIterator l, size_type n = 0/*, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()*/); + ~unordered_set(); + + unordered_set& operator=(const unordered_set&); + unordered_set& operator=(unordered_set&&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Hash> && is_nothrow_move_assignable_v<Pred>)*/; + + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; + + template<class... Args> pair<iterator, bool> emplace(Args&&... args); + template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); + pair<iterator, bool> insert(const value_type& obj); + pair<iterator, bool> insert(value_type&& obj); + iterator insert(const_iterator hint, const value_type& obj); + iterator insert(const_iterator hint, value_type&& obj); + template<class InputIterator> void insert(InputIterator first, InputIterator last); + + iterator erase(iterator position); + iterator erase(const_iterator position); + iterator erase(const_iterator first, const_iterator last); + void swap(unordered_set&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Hash> && is_nothrow_swappable_v<Pred>)*/; + void clear() noexcept; + + template<class H2, class P2> void merge(unordered_set<Key, H2, P2, Allocator>& source); + template<class H2, class P2> void merge(unordered_set<Key, H2, P2, Allocator>&& source); + + iterator find(const key_type& k); + const_iterator find(const key_type& k) const; + pair<iterator, iterator> equal_range(const key_type& k); + pair<const_iterator, const_iterator> equal_range(const key_type& k) const; + }; +} + +std::vector<std::vector<int>> returnValue(); +std::vector<std::vector<int>>& returnRef(); + +std::vector<std::vector<int>> external_by_value(std::vector<std::vector<int>>); + +std::vector<std::vector<int>> external_by_const_ref(const std::vector<std::vector<int>>&); + +// *: Will be detected once extract destruction of unnamed temporaries and generate IR for them + +const std::vector<std::vector<int>>& return_self_by_ref(const std::vector<std::vector<int>>& v) { + return v; +} + +std::vector<std::vector<int>> return_self_by_value(const std::vector<std::vector<int>>& v) { + return v; +} + +void test() { + for (auto x : returnValue()) {} // GOOD + for (auto x : returnValue()[0]) {} // BAD [NOT DETECTED] (see *) + for (auto x : external_by_value(returnValue())) {} // GOOD + for (auto x : external_by_const_ref(returnValue())) {} // GOOD + for (auto x : returnValue().at(0)) {} // BAD [NOT DETECTED] (see *) + + for (auto x : returnRef()) {} // GOOD + for (auto x : returnRef()[0]) {} // GOOD + for (auto x : returnRef().at(0)) {} // GOOD + + for(auto it = returnValue().begin(); it != returnValue().end(); ++it) {} // BAD + + { + auto v = returnValue(); + for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD + } + + { + auto&& v = returnValue(); + for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD + } + + { + auto&& v = returnValue()[0]; + for(auto it = v.begin(); it != v.end(); ++it) {} // BAD [NOT DETECTED] (see *) + } + + { + auto&& v = returnRef(); + for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD + } + + { + auto&& v = returnRef()[0]; + for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD + } + + for (auto x : return_self_by_ref(returnValue())) {} // BAD [NOT DETECTED] (see *) + + for (auto x : return_self_by_value(returnValue())) {} // GOOD +} From a8718f99a1965fdadbc093088aa08428168cb17e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 14:32:20 +0000 Subject: [PATCH 180/309] C++: Add qhelp for 'cpp/iterator-to-expired-container'. --- .../CWE-416/IteratorToExpiredContainer.qhelp | 53 +++++++++++++++++++ ...atorToExpiredContainerExtendedLifetime.cpp | 20 +++++++ 2 files changed, 73 insertions(+) create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.qhelp create mode 100644 cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainerExtendedLifetime.cpp diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.qhelp b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.qhelp new file mode 100644 index 00000000000..19975b17493 --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.qhelp @@ -0,0 +1,53 @@ +<!DOCTYPE qhelp PUBLIC + "-//Semmle//qhelp//EN" + "qhelp.dtd"> +<qhelp> +<overview> +<p> +Using an iterator owned by a container after the lifetime of the container has expired can lead to undefined behavior. +This is because the iterator may be invalidated when the container is destroyed, and dereferencing an invalidated iterator is undefined behavior. +These problems can be hard to spot due to C++'s complex rules for temporary object lifetimes and their extensions. +</p> + +</overview> +<recommendation> + +<p> +Never create an iterator to a temporary container when the iterator is expected to be used after the container's lifetime has expired. +</p> + +</recommendation> +<example> +<p> + +</p> + +<p> +The rules for lifetime extension ensures that the code in <code>lifetime_of_temp_extended</code> is well-defined. This is because the +lifetime of the temporary container returned by <code>get_vector</code> is extended to the end of the loop. However, prior to C++23, +the lifetime extension rules do not ensure that the container returned by <code>get_vector</code> is extended in <code>lifetime_of_temp_not_extended</code>. +This is because the temporary container is not bound to a rvalue reference. +</p> +<sample src="IteratorToExpiredContainerExtendedLifetime.cpp" /> + +</example> +<references> + +<li>CERT C Coding Standard: +<a href="https://wiki.sei.cmu.edu/confluence/display/c/MEM30-C.+Do+not+access+freed+memory">MEM30-C. Do not access freed memory</a>.</li> +<li> +OWASP: +<a href="https://owasp.org/www-community/vulnerabilities/Using_freed_memory">Using freed memory</a>. +</li> +<li> +<a href="https://github.com/isocpp/CppCoreGuidelines/blob/master/docs/Lifetime.pdf">Lifetime safety: Preventing common dangling</a> +</li> +<li> +<a href="https://en.cppreference.com/w/cpp/container">Containers library</a> +</li> +<li> +<a href="https://en.cppreference.com/w/cpp/language/range-for">Range-based for loop (since C++11)</a> +</li> + +</references> +</qhelp> diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainerExtendedLifetime.cpp b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainerExtendedLifetime.cpp new file mode 100644 index 00000000000..70232447f05 --- /dev/null +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainerExtendedLifetime.cpp @@ -0,0 +1,20 @@ +#include <vector> + +std::vector<int> get_vector(); + +void use(int); + +void lifetime_of_temp_extended() { + for(auto x : get_vector()) { + use(x); // GOOD: The lifetime of the vector returned by `get_vector()` is extended until the end of the loop. + } +} + +// Writes the the values of `v` to an external log and returns it unchanged. +const std::vector<int>& log_and_return_argument(const std::vector<int>& v); + +void lifetime_of_temp_not_extended() { + for(auto x : log_and_return_argument(get_vector())) { + use(x); // BAD: The lifetime of the vector returned by `get_vector()` is not extended, and the behavior is undefined. + } +} From e23e3d7fb43192e3e24fd4cf36fc4fd8c141de57 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Fri, 15 Mar 2024 17:35:01 +0000 Subject: [PATCH 181/309] C++: Run tests without the extractor and analysis changes. --- .../CWE/CWE-416/IteratorToExpiredContainer.expected | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.expected index 39588f865be..e69de29bb2d 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/IteratorToExpiredContainer.expected @@ -1,10 +0,0 @@ -| test.cpp:680:30:680:30 | call to operator[] | This object is destroyed before $@ is called. | test.cpp:680:17:680:17 | call to begin | call to begin | -| test.cpp:680:30:680:30 | call to operator[] | This object is destroyed before $@ is called. | test.cpp:680:17:680:17 | call to end | call to end | -| test.cpp:683:31:683:32 | call to at | This object is destroyed before $@ is called. | test.cpp:683:17:683:17 | call to begin | call to begin | -| test.cpp:683:31:683:32 | call to at | This object is destroyed before $@ is called. | test.cpp:683:17:683:17 | call to end | call to end | -| test.cpp:689:16:689:28 | temporary object | This object is destroyed before $@ is called. | test.cpp:689:30:689:34 | call to begin | call to begin | -| test.cpp:689:45:689:57 | temporary object | This object is destroyed before $@ is called. | test.cpp:689:59:689:61 | call to end | call to end | -| test.cpp:702:26:702:26 | call to operator[] | This object is destroyed before $@ is called. | test.cpp:703:18:703:22 | call to begin | call to begin | -| test.cpp:702:26:702:26 | call to operator[] | This object is destroyed before $@ is called. | test.cpp:703:35:703:37 | call to end | call to end | -| test.cpp:716:35:716:47 | temporary object | This object is destroyed before $@ is called. | test.cpp:716:16:716:16 | call to begin | call to begin | -| test.cpp:716:35:716:47 | temporary object | This object is destroyed before $@ is called. | test.cpp:716:16:716:16 | call to end | call to end | From f4542f6160acc8880b8658e6ba5c20d965741844 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:02:54 +0000 Subject: [PATCH 182/309] Kotlin2 : Accept some more location changes --- .../library-tests/exprs/exprs.expected | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index aa19916593a..68410f57ce4 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -28,8 +28,6 @@ | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:87:31:87:46 | getExtDelegated | ExtensionReceiverAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:87:31:87:46 | setExtDelegated | ExtensionReceiverAccess | | delegatedProperties.kt:5:5:12:5 | Unit | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:6:24:9:9 | ...::... | delegatedProperties.kt:6:24:9:9 | <get-prop1> | PropertyRefExpr | -| delegatedProperties.kt:6:24:9:9 | <get-prop1>(...) | delegatedProperties.kt:6:24:9:9 | get | MethodCall | | delegatedProperties.kt:6:24:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess | | delegatedProperties.kt:6:24:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess | | delegatedProperties.kt:6:24:9:9 | KProperty0<Integer> | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess | @@ -42,6 +40,8 @@ | delegatedProperties.kt:6:24:9:9 | prop1$delegate | delegatedProperties.kt:5:5:12:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:6:24:9:9 | prop1$delegate | delegatedProperties.kt:6:24:9:9 | <get-prop1> | VarAccess | | delegatedProperties.kt:6:24:9:9 | this | delegatedProperties.kt:6:24:9:9 | invoke | ThisAccess | +| delegatedProperties.kt:6:27:9:9 | ...::... | delegatedProperties.kt:6:24:9:9 | <get-prop1> | PropertyRefExpr | +| delegatedProperties.kt:6:27:9:9 | <get-prop1>(...) | delegatedProperties.kt:6:27:9:9 | get | MethodCall | | delegatedProperties.kt:6:27:9:9 | Integer | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess | | delegatedProperties.kt:6:27:9:9 | LazyKt | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess | | delegatedProperties.kt:6:27:9:9 | lazy(...) | delegatedProperties.kt:5:5:12:5 | fn | MethodCall | @@ -68,41 +68,41 @@ | delegatedProperties.kt:18:12:18:33 | Map<String,? extends Object> | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:18:12:18:33 | Object | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:18:12:18:33 | String | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | ...::... | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | PropertyRefExpr | -| delegatedProperties.kt:19:31:19:51 | ...::... | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | PropertyRefExpr | -| delegatedProperties.kt:19:31:19:51 | <get-varResource1>(...) | delegatedProperties.kt:19:31:19:51 | get | MethodCall | -| delegatedProperties.kt:19:31:19:51 | <get-varResource1>(...) | delegatedProperties.kt:19:31:19:51 | get | MethodCall | -| delegatedProperties.kt:19:31:19:51 | <set-varResource1>(...) | delegatedProperties.kt:19:31:19:51 | set | MethodCall | -| delegatedProperties.kt:19:31:19:51 | <set-varResource1>(...) | delegatedProperties.kt:19:31:19:51 | set | MethodCall | -| delegatedProperties.kt:19:31:19:51 | Integer | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | Integer | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | KMutableProperty0<Integer> | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | KMutableProperty0<Integer> | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | Object | delegatedProperties.kt:19:31:19:51 | get | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | Object | delegatedProperties.kt:19:31:19:51 | get | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | Object | delegatedProperties.kt:19:31:19:51 | set | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | Object | delegatedProperties.kt:19:31:19:51 | set | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | Unit | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | a0 | delegatedProperties.kt:19:31:19:51 | set | VarAccess | -| delegatedProperties.kt:19:31:19:51 | a0 | delegatedProperties.kt:19:31:19:51 | set | VarAccess | -| delegatedProperties.kt:19:31:19:51 | get(...) | delegatedProperties.kt:19:31:19:51 | invoke | MethodCall | -| delegatedProperties.kt:19:31:19:51 | get(...) | delegatedProperties.kt:19:31:19:51 | invoke | MethodCall | -| delegatedProperties.kt:19:31:19:51 | getValue(...) | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | MethodCall | -| delegatedProperties.kt:19:31:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | get | ClassInstanceExpr | -| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | get | ClassInstanceExpr | -| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | set | ClassInstanceExpr | -| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | set | ClassInstanceExpr | -| delegatedProperties.kt:19:31:19:51 | setValue(...) | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | MethodCall | -| delegatedProperties.kt:19:31:19:51 | this | delegatedProperties.kt:19:31:19:51 | invoke | ThisAccess | -| delegatedProperties.kt:19:31:19:51 | this | delegatedProperties.kt:19:31:19:51 | invoke | ThisAccess | -| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | -| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | VarAccess | -| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | VarAccess | +| delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | PropertyRefExpr | +| delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | PropertyRefExpr | +| delegatedProperties.kt:19:34:19:51 | <get-varResource1>(...) | delegatedProperties.kt:19:34:19:51 | get | MethodCall | +| delegatedProperties.kt:19:34:19:51 | <get-varResource1>(...) | delegatedProperties.kt:19:34:19:51 | get | MethodCall | +| delegatedProperties.kt:19:34:19:51 | <set-varResource1>(...) | delegatedProperties.kt:19:34:19:51 | set | MethodCall | +| delegatedProperties.kt:19:34:19:51 | <set-varResource1>(...) | delegatedProperties.kt:19:34:19:51 | set | MethodCall | +| delegatedProperties.kt:19:34:19:51 | Integer | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | Integer | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | KMutableProperty0<Integer> | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | KMutableProperty0<Integer> | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | Object | delegatedProperties.kt:19:34:19:51 | get | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | Object | delegatedProperties.kt:19:34:19:51 | get | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | Object | delegatedProperties.kt:19:34:19:51 | set | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | Object | delegatedProperties.kt:19:34:19:51 | set | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | Unit | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | a0 | delegatedProperties.kt:19:34:19:51 | set | VarAccess | +| delegatedProperties.kt:19:34:19:51 | a0 | delegatedProperties.kt:19:34:19:51 | set | VarAccess | +| delegatedProperties.kt:19:34:19:51 | get(...) | delegatedProperties.kt:19:34:19:51 | invoke | MethodCall | +| delegatedProperties.kt:19:34:19:51 | get(...) | delegatedProperties.kt:19:34:19:51 | invoke | MethodCall | +| delegatedProperties.kt:19:34:19:51 | getValue(...) | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | MethodCall | +| delegatedProperties.kt:19:34:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | get | ClassInstanceExpr | +| delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | get | ClassInstanceExpr | +| delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | set | ClassInstanceExpr | +| delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | set | ClassInstanceExpr | +| delegatedProperties.kt:19:34:19:51 | setValue(...) | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | MethodCall | +| delegatedProperties.kt:19:34:19:51 | this | delegatedProperties.kt:19:34:19:51 | invoke | ThisAccess | +| delegatedProperties.kt:19:34:19:51 | this | delegatedProperties.kt:19:34:19:51 | invoke | ThisAccess | +| delegatedProperties.kt:19:34:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | +| delegatedProperties.kt:19:34:19:51 | varResource1$delegate | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | VarAccess | +| delegatedProperties.kt:19:34:19:51 | varResource1$delegate | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | VarAccess | | delegatedProperties.kt:19:34:19:51 | ResourceDelegate | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | -| delegatedProperties.kt:19:34:19:51 | value | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | VarAccess | +| delegatedProperties.kt:19:34:19:51 | value | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | VarAccess | | delegatedProperties.kt:20:9:20:29 | ConsoleKt | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:20:9:20:29 | println(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | | delegatedProperties.kt:20:17:20:28 | <get-varResource1>(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | From 354cdf44aa3d3dc5f141fb7042685edd7bc2b947 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:03:55 +0000 Subject: [PATCH 183/309] Kotlin 2: Accept more location changes --- .../library-tests/exprs/exprs.expected | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 68410f57ce4..399591bce60 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -112,21 +112,21 @@ | delegatedProperties.kt:21:9:21:24 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:21:9:21:24 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:21:24:21:24 | 2 | delegatedProperties.kt:18:5:40:5 | fn | IntegerLiteral | -| delegatedProperties.kt:23:26:23:31 | ...::... | delegatedProperties.kt:23:26:23:31 | <get-name> | PropertyRefExpr | -| delegatedProperties.kt:23:26:23:31 | <get-name>(...) | delegatedProperties.kt:23:26:23:31 | get | MethodCall | -| delegatedProperties.kt:23:26:23:31 | KProperty0<String> | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess | -| delegatedProperties.kt:23:26:23:31 | MapAccessorsKt | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess | -| delegatedProperties.kt:23:26:23:31 | Object | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess | -| delegatedProperties.kt:23:26:23:31 | Object | delegatedProperties.kt:23:26:23:31 | get | TypeAccess | -| delegatedProperties.kt:23:26:23:31 | String | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess | -| delegatedProperties.kt:23:26:23:31 | String | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess | -| delegatedProperties.kt:23:26:23:31 | String | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:23:26:23:31 | get(...) | delegatedProperties.kt:23:26:23:31 | invoke | MethodCall | -| delegatedProperties.kt:23:26:23:31 | getValue(...) | delegatedProperties.kt:23:26:23:31 | <get-name> | MethodCall | -| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | -| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:23:26:23:31 | <get-name> | VarAccess | -| delegatedProperties.kt:23:26:23:31 | new (...) | delegatedProperties.kt:23:26:23:31 | get | ClassInstanceExpr | -| delegatedProperties.kt:23:26:23:31 | this | delegatedProperties.kt:23:26:23:31 | invoke | ThisAccess | +| delegatedProperties.kt:23:29:23:31 | ...::... | delegatedProperties.kt:23:29:23:31 | <get-name> | PropertyRefExpr | +| delegatedProperties.kt:23:29:23:31 | <get-name>(...) | delegatedProperties.kt:23:29:23:31 | get | MethodCall | +| delegatedProperties.kt:23:29:23:31 | KProperty0<String> | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | MapAccessorsKt | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | Object | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | Object | delegatedProperties.kt:23:29:23:31 | get | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | String | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | String | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | String | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | get(...) | delegatedProperties.kt:23:29:23:31 | invoke | MethodCall | +| delegatedProperties.kt:23:29:23:31 | getValue(...) | delegatedProperties.kt:23:29:23:31 | <get-name> | MethodCall | +| delegatedProperties.kt:23:29:23:31 | name$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | +| delegatedProperties.kt:23:29:23:31 | name$delegate | delegatedProperties.kt:23:29:23:31 | <get-name> | VarAccess | +| delegatedProperties.kt:23:29:23:31 | new (...) | delegatedProperties.kt:23:29:23:31 | get | ClassInstanceExpr | +| delegatedProperties.kt:23:29:23:31 | this | delegatedProperties.kt:23:29:23:31 | invoke | ThisAccess | | delegatedProperties.kt:23:29:23:31 | map | delegatedProperties.kt:18:5:40:5 | fn | VarAccess | | delegatedProperties.kt:25:9:31:9 | Integer | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:25:9:31:9 | Object | file://:0:0:0:0 | <none> | TypeAccess | From 28f98d0344a8ba59827bcf09ca21369bdc9f594e Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:04:28 +0000 Subject: [PATCH 184/309] Kotlin 2: Accept more location changes --- .../library-tests/exprs/exprs.expected | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 399591bce60..ed344e03504 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -161,18 +161,18 @@ | delegatedProperties.kt:29:17:29:24 | setCurValue(...) | delegatedProperties.kt:28:22:30:13 | setValue | MethodCall | | delegatedProperties.kt:29:17:29:24 | this | delegatedProperties.kt:28:22:30:13 | setValue | ThisAccess | | delegatedProperties.kt:29:28:29:32 | value | delegatedProperties.kt:28:22:30:13 | setValue | VarAccess | -| delegatedProperties.kt:33:27:33:47 | ...::... | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | PropertyRefExpr | -| delegatedProperties.kt:33:27:33:47 | <get-readOnly>(...) | delegatedProperties.kt:33:27:33:47 | get | MethodCall | -| delegatedProperties.kt:33:27:33:47 | Integer | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | TypeAccess | -| delegatedProperties.kt:33:27:33:47 | KProperty0<Integer> | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | TypeAccess | -| delegatedProperties.kt:33:27:33:47 | Object | delegatedProperties.kt:33:27:33:47 | get | TypeAccess | -| delegatedProperties.kt:33:27:33:47 | get(...) | delegatedProperties.kt:33:27:33:47 | invoke | MethodCall | -| delegatedProperties.kt:33:27:33:47 | getValue(...) | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | MethodCall | -| delegatedProperties.kt:33:27:33:47 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:33:27:33:47 | new (...) | delegatedProperties.kt:33:27:33:47 | get | ClassInstanceExpr | -| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | -| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | VarAccess | -| delegatedProperties.kt:33:27:33:47 | this | delegatedProperties.kt:33:27:33:47 | invoke | ThisAccess | +| delegatedProperties.kt:33:30:33:47 | ...::... | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | PropertyRefExpr | +| delegatedProperties.kt:33:30:33:47 | <get-readOnly>(...) | delegatedProperties.kt:33:30:33:47 | get | MethodCall | +| delegatedProperties.kt:33:30:33:47 | Integer | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | TypeAccess | +| delegatedProperties.kt:33:30:33:47 | KProperty0<Integer> | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | TypeAccess | +| delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:33:30:33:47 | get | TypeAccess | +| delegatedProperties.kt:33:30:33:47 | get(...) | delegatedProperties.kt:33:30:33:47 | invoke | MethodCall | +| delegatedProperties.kt:33:30:33:47 | getValue(...) | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | MethodCall | +| delegatedProperties.kt:33:30:33:47 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:33:30:33:47 | new (...) | delegatedProperties.kt:33:30:33:47 | get | ClassInstanceExpr | +| delegatedProperties.kt:33:30:33:47 | readOnly$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | +| delegatedProperties.kt:33:30:33:47 | readOnly$delegate | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | VarAccess | +| delegatedProperties.kt:33:30:33:47 | this | delegatedProperties.kt:33:30:33:47 | invoke | ThisAccess | | delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:33:30:33:47 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | From 5552fe3c34e76de666f1d8eb08c0ea591b8e413f Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:05:09 +0000 Subject: [PATCH 185/309] Kotlin 2: Accept more loc changes --- .../library-tests/exprs/exprs.expected | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index ed344e03504..43a21a55a8b 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -176,42 +176,42 @@ | delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:33:30:33:47 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | -| delegatedProperties.kt:34:28:34:48 | ...::... | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | PropertyRefExpr | -| delegatedProperties.kt:34:28:34:48 | ...::... | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | PropertyRefExpr | -| delegatedProperties.kt:34:28:34:48 | <get-readWrite>(...) | delegatedProperties.kt:34:28:34:48 | get | MethodCall | -| delegatedProperties.kt:34:28:34:48 | <get-readWrite>(...) | delegatedProperties.kt:34:28:34:48 | get | MethodCall | -| delegatedProperties.kt:34:28:34:48 | <set-readWrite>(...) | delegatedProperties.kt:34:28:34:48 | set | MethodCall | -| delegatedProperties.kt:34:28:34:48 | <set-readWrite>(...) | delegatedProperties.kt:34:28:34:48 | set | MethodCall | -| delegatedProperties.kt:34:28:34:48 | Integer | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | Integer | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | KMutableProperty0<Integer> | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | KMutableProperty0<Integer> | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | Object | delegatedProperties.kt:34:28:34:48 | get | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | Object | delegatedProperties.kt:34:28:34:48 | get | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | Object | delegatedProperties.kt:34:28:34:48 | set | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | Object | delegatedProperties.kt:34:28:34:48 | set | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | Unit | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | a0 | delegatedProperties.kt:34:28:34:48 | set | VarAccess | -| delegatedProperties.kt:34:28:34:48 | a0 | delegatedProperties.kt:34:28:34:48 | set | VarAccess | -| delegatedProperties.kt:34:28:34:48 | get(...) | delegatedProperties.kt:34:28:34:48 | invoke | MethodCall | -| delegatedProperties.kt:34:28:34:48 | get(...) | delegatedProperties.kt:34:28:34:48 | invoke | MethodCall | -| delegatedProperties.kt:34:28:34:48 | getValue(...) | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | MethodCall | -| delegatedProperties.kt:34:28:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | get | ClassInstanceExpr | -| delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | get | ClassInstanceExpr | -| delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | set | ClassInstanceExpr | -| delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | set | ClassInstanceExpr | -| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | -| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | VarAccess | -| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | VarAccess | -| delegatedProperties.kt:34:28:34:48 | setValue(...) | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | MethodCall | -| delegatedProperties.kt:34:28:34:48 | this | delegatedProperties.kt:34:28:34:48 | invoke | ThisAccess | -| delegatedProperties.kt:34:28:34:48 | this | delegatedProperties.kt:34:28:34:48 | invoke | ThisAccess | +| delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | PropertyRefExpr | +| delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | PropertyRefExpr | +| delegatedProperties.kt:34:31:34:48 | <get-readWrite>(...) | delegatedProperties.kt:34:31:34:48 | get | MethodCall | +| delegatedProperties.kt:34:31:34:48 | <get-readWrite>(...) | delegatedProperties.kt:34:31:34:48 | get | MethodCall | +| delegatedProperties.kt:34:31:34:48 | <set-readWrite>(...) | delegatedProperties.kt:34:31:34:48 | set | MethodCall | +| delegatedProperties.kt:34:31:34:48 | <set-readWrite>(...) | delegatedProperties.kt:34:31:34:48 | set | MethodCall | +| delegatedProperties.kt:34:31:34:48 | Integer | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | Integer | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | KMutableProperty0<Integer> | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | KMutableProperty0<Integer> | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:34:31:34:48 | get | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:34:31:34:48 | get | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:34:31:34:48 | set | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:34:31:34:48 | set | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | Unit | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | a0 | delegatedProperties.kt:34:31:34:48 | set | VarAccess | +| delegatedProperties.kt:34:31:34:48 | a0 | delegatedProperties.kt:34:31:34:48 | set | VarAccess | +| delegatedProperties.kt:34:31:34:48 | get(...) | delegatedProperties.kt:34:31:34:48 | invoke | MethodCall | +| delegatedProperties.kt:34:31:34:48 | get(...) | delegatedProperties.kt:34:31:34:48 | invoke | MethodCall | +| delegatedProperties.kt:34:31:34:48 | getValue(...) | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | MethodCall | +| delegatedProperties.kt:34:31:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | get | ClassInstanceExpr | +| delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | get | ClassInstanceExpr | +| delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | set | ClassInstanceExpr | +| delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | set | ClassInstanceExpr | +| delegatedProperties.kt:34:31:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | +| delegatedProperties.kt:34:31:34:48 | readWrite$delegate | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | VarAccess | +| delegatedProperties.kt:34:31:34:48 | readWrite$delegate | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | VarAccess | +| delegatedProperties.kt:34:31:34:48 | setValue(...) | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | MethodCall | +| delegatedProperties.kt:34:31:34:48 | this | delegatedProperties.kt:34:31:34:48 | invoke | ThisAccess | +| delegatedProperties.kt:34:31:34:48 | this | delegatedProperties.kt:34:31:34:48 | invoke | ThisAccess | | delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | -| delegatedProperties.kt:34:31:34:48 | value | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | VarAccess | +| delegatedProperties.kt:34:31:34:48 | value | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | VarAccess | | delegatedProperties.kt:36:9:36:29 | ConsoleKt | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:36:9:36:29 | println(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | | delegatedProperties.kt:36:17:36:28 | getVarResource0(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | From 1d2b31f0be3c1c35ec8a50321c6b131ea893ac7d Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:05:46 +0000 Subject: [PATCH 186/309] Kotlin 2: Accept more loc changes --- .../library-tests/exprs/exprs.expected | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 43a21a55a8b..48d886b6253 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -219,27 +219,27 @@ | delegatedProperties.kt:37:9:37:24 | setVarResource0(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | | delegatedProperties.kt:37:9:37:24 | this | delegatedProperties.kt:18:5:40:5 | fn | ThisAccess | | delegatedProperties.kt:37:24:37:24 | 3 | delegatedProperties.kt:18:5:40:5 | fn | IntegerLiteral | -| delegatedProperties.kt:39:31:39:51 | ...::... | delegatedProperties.kt:18:5:40:5 | fn | PropertyRefExpr | -| delegatedProperties.kt:39:31:39:51 | ...::... | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | PropertyRefExpr | -| delegatedProperties.kt:39:31:39:51 | <get-varResource2>(...) | delegatedProperties.kt:39:31:39:51 | get | MethodCall | -| delegatedProperties.kt:39:31:39:51 | <get-varResource2>(...) | delegatedProperties.kt:39:31:39:51 | get | MethodCall | -| delegatedProperties.kt:39:31:39:51 | Integer | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | -| delegatedProperties.kt:39:31:39:51 | Integer | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | TypeAccess | -| delegatedProperties.kt:39:31:39:51 | KProperty0<Integer> | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | -| delegatedProperties.kt:39:31:39:51 | KProperty0<Integer> | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | TypeAccess | -| delegatedProperties.kt:39:31:39:51 | Object | delegatedProperties.kt:39:31:39:51 | get | TypeAccess | -| delegatedProperties.kt:39:31:39:51 | Object | delegatedProperties.kt:39:31:39:51 | get | TypeAccess | -| delegatedProperties.kt:39:31:39:51 | get(...) | delegatedProperties.kt:39:31:39:51 | invoke | MethodCall | -| delegatedProperties.kt:39:31:39:51 | get(...) | delegatedProperties.kt:39:31:39:51 | invoke | MethodCall | -| delegatedProperties.kt:39:31:39:51 | getValue(...) | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | MethodCall | -| delegatedProperties.kt:39:31:39:51 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:39:31:39:51 | new (...) | delegatedProperties.kt:39:31:39:51 | get | ClassInstanceExpr | -| delegatedProperties.kt:39:31:39:51 | new (...) | delegatedProperties.kt:39:31:39:51 | get | ClassInstanceExpr | -| delegatedProperties.kt:39:31:39:51 | provideDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | -| delegatedProperties.kt:39:31:39:51 | this | delegatedProperties.kt:39:31:39:51 | invoke | ThisAccess | -| delegatedProperties.kt:39:31:39:51 | this | delegatedProperties.kt:39:31:39:51 | invoke | ThisAccess | -| delegatedProperties.kt:39:31:39:51 | varResource2$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | -| delegatedProperties.kt:39:31:39:51 | varResource2$delegate | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | VarAccess | +| delegatedProperties.kt:39:34:39:51 | ...::... | delegatedProperties.kt:18:5:40:5 | fn | PropertyRefExpr | +| delegatedProperties.kt:39:34:39:51 | ...::... | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | PropertyRefExpr | +| delegatedProperties.kt:39:34:39:51 | <get-varResource2>(...) | delegatedProperties.kt:39:34:39:51 | get | MethodCall | +| delegatedProperties.kt:39:34:39:51 | <get-varResource2>(...) | delegatedProperties.kt:39:34:39:51 | get | MethodCall | +| delegatedProperties.kt:39:34:39:51 | Integer | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | +| delegatedProperties.kt:39:34:39:51 | Integer | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | TypeAccess | +| delegatedProperties.kt:39:34:39:51 | KProperty0<Integer> | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | +| delegatedProperties.kt:39:34:39:51 | KProperty0<Integer> | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | TypeAccess | +| delegatedProperties.kt:39:34:39:51 | Object | delegatedProperties.kt:39:34:39:51 | get | TypeAccess | +| delegatedProperties.kt:39:34:39:51 | Object | delegatedProperties.kt:39:34:39:51 | get | TypeAccess | +| delegatedProperties.kt:39:34:39:51 | get(...) | delegatedProperties.kt:39:34:39:51 | invoke | MethodCall | +| delegatedProperties.kt:39:34:39:51 | get(...) | delegatedProperties.kt:39:34:39:51 | invoke | MethodCall | +| delegatedProperties.kt:39:34:39:51 | getValue(...) | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | MethodCall | +| delegatedProperties.kt:39:34:39:51 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:39:34:39:51 | new (...) | delegatedProperties.kt:39:34:39:51 | get | ClassInstanceExpr | +| delegatedProperties.kt:39:34:39:51 | new (...) | delegatedProperties.kt:39:34:39:51 | get | ClassInstanceExpr | +| delegatedProperties.kt:39:34:39:51 | provideDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | +| delegatedProperties.kt:39:34:39:51 | this | delegatedProperties.kt:39:34:39:51 | invoke | ThisAccess | +| delegatedProperties.kt:39:34:39:51 | this | delegatedProperties.kt:39:34:39:51 | invoke | ThisAccess | +| delegatedProperties.kt:39:34:39:51 | varResource2$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | +| delegatedProperties.kt:39:34:39:51 | varResource2$delegate | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | VarAccess | | delegatedProperties.kt:39:34:39:51 | DelegateProvider | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:39:34:39:51 | new DelegateProvider(...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:42:27:42:47 | ...::... | delegatedProperties.kt:42:27:42:47 | getVarResource0 | PropertyRefExpr | From 5580daf60e13244248465d23b9f53d7e425de204 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:06:13 +0000 Subject: [PATCH 187/309] Kotlin 2: Accept more loc changes --- .../library-tests/exprs/exprs.expected | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 48d886b6253..791879f23cc 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -9,8 +9,8 @@ | delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:82:9:82:54 | <get-delegatedToMember3> | NullLiteral | | delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:82:9:82:54 | <set-delegatedToMember3> | NullLiteral | | delegatedProperties.kt:1:9:1:12 | null | delegatedProperties.kt:18:5:40:5 | fn | NullLiteral | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:42:27:42:47 | getVarResource0 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:42:27:42:47 | setVarResource0 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:42:30:42:47 | getVarResource0 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:42:30:42:47 | setVarResource0 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | ThisAccess | @@ -242,43 +242,43 @@ | delegatedProperties.kt:39:34:39:51 | varResource2$delegate | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | VarAccess | | delegatedProperties.kt:39:34:39:51 | DelegateProvider | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:39:34:39:51 | new DelegateProvider(...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | -| delegatedProperties.kt:42:27:42:47 | ...::... | delegatedProperties.kt:42:27:42:47 | getVarResource0 | PropertyRefExpr | -| delegatedProperties.kt:42:27:42:47 | ...::... | delegatedProperties.kt:42:27:42:47 | setVarResource0 | PropertyRefExpr | -| delegatedProperties.kt:42:27:42:47 | ...=... | delegatedProperties.kt:17:1:43:1 | Owner | KtInitializerAssignExpr | -| delegatedProperties.kt:42:27:42:47 | Integer | delegatedProperties.kt:42:27:42:47 | getVarResource0 | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | Integer | delegatedProperties.kt:42:27:42:47 | setVarResource0 | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | KMutableProperty1<Owner,Integer> | delegatedProperties.kt:42:27:42:47 | getVarResource0 | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | KMutableProperty1<Owner,Integer> | delegatedProperties.kt:42:27:42:47 | setVarResource0 | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | Owner | delegatedProperties.kt:42:27:42:47 | getVarResource0 | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | Owner | delegatedProperties.kt:42:27:42:47 | setVarResource0 | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | ResourceDelegate | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | Unit | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | a0 | delegatedProperties.kt:42:27:42:47 | get | VarAccess | -| delegatedProperties.kt:42:27:42:47 | a0 | delegatedProperties.kt:42:27:42:47 | get | VarAccess | -| delegatedProperties.kt:42:27:42:47 | a0 | delegatedProperties.kt:42:27:42:47 | invoke | VarAccess | -| delegatedProperties.kt:42:27:42:47 | a0 | delegatedProperties.kt:42:27:42:47 | invoke | VarAccess | -| delegatedProperties.kt:42:27:42:47 | a0 | delegatedProperties.kt:42:27:42:47 | set | VarAccess | -| delegatedProperties.kt:42:27:42:47 | a0 | delegatedProperties.kt:42:27:42:47 | set | VarAccess | -| delegatedProperties.kt:42:27:42:47 | a1 | delegatedProperties.kt:42:27:42:47 | set | VarAccess | -| delegatedProperties.kt:42:27:42:47 | a1 | delegatedProperties.kt:42:27:42:47 | set | VarAccess | -| delegatedProperties.kt:42:27:42:47 | get(...) | delegatedProperties.kt:42:27:42:47 | invoke | MethodCall | -| delegatedProperties.kt:42:27:42:47 | get(...) | delegatedProperties.kt:42:27:42:47 | invoke | MethodCall | -| delegatedProperties.kt:42:27:42:47 | getValue(...) | delegatedProperties.kt:42:27:42:47 | getVarResource0 | MethodCall | -| delegatedProperties.kt:42:27:42:47 | getVarResource0(...) | delegatedProperties.kt:42:27:42:47 | get | MethodCall | -| delegatedProperties.kt:42:27:42:47 | getVarResource0(...) | delegatedProperties.kt:42:27:42:47 | get | MethodCall | -| delegatedProperties.kt:42:27:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:42:27:42:47 | setValue(...) | delegatedProperties.kt:42:27:42:47 | setVarResource0 | MethodCall | -| delegatedProperties.kt:42:27:42:47 | setVarResource0(...) | delegatedProperties.kt:42:27:42:47 | set | MethodCall | -| delegatedProperties.kt:42:27:42:47 | setVarResource0(...) | delegatedProperties.kt:42:27:42:47 | set | MethodCall | -| delegatedProperties.kt:42:27:42:47 | this | delegatedProperties.kt:42:27:42:47 | getVarResource0 | ThisAccess | -| delegatedProperties.kt:42:27:42:47 | this | delegatedProperties.kt:42:27:42:47 | invoke | ThisAccess | -| delegatedProperties.kt:42:27:42:47 | this | delegatedProperties.kt:42:27:42:47 | invoke | ThisAccess | -| delegatedProperties.kt:42:27:42:47 | this | delegatedProperties.kt:42:27:42:47 | setVarResource0 | ThisAccess | -| delegatedProperties.kt:42:27:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:27:42:47 | getVarResource0 | VarAccess | -| delegatedProperties.kt:42:27:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:27:42:47 | setVarResource0 | VarAccess | -| delegatedProperties.kt:42:27:42:47 | varResource0$delegate | delegatedProperties.kt:17:1:43:1 | Owner | VarAccess | -| delegatedProperties.kt:42:30:42:47 | <set-?> | delegatedProperties.kt:42:27:42:47 | setVarResource0 | VarAccess | +| delegatedProperties.kt:42:30:42:47 | ...::... | delegatedProperties.kt:42:30:42:47 | getVarResource0 | PropertyRefExpr | +| delegatedProperties.kt:42:30:42:47 | ...::... | delegatedProperties.kt:42:30:42:47 | setVarResource0 | PropertyRefExpr | +| delegatedProperties.kt:42:30:42:47 | ...=... | delegatedProperties.kt:17:1:43:1 | Owner | KtInitializerAssignExpr | +| delegatedProperties.kt:42:30:42:47 | Integer | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | Integer | delegatedProperties.kt:42:30:42:47 | setVarResource0 | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | KMutableProperty1<Owner,Integer> | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | KMutableProperty1<Owner,Integer> | delegatedProperties.kt:42:30:42:47 | setVarResource0 | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | Owner | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | Owner | delegatedProperties.kt:42:30:42:47 | setVarResource0 | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | ResourceDelegate | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | Unit | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | a0 | delegatedProperties.kt:42:30:42:47 | get | VarAccess | +| delegatedProperties.kt:42:30:42:47 | a0 | delegatedProperties.kt:42:30:42:47 | get | VarAccess | +| delegatedProperties.kt:42:30:42:47 | a0 | delegatedProperties.kt:42:30:42:47 | invoke | VarAccess | +| delegatedProperties.kt:42:30:42:47 | a0 | delegatedProperties.kt:42:30:42:47 | invoke | VarAccess | +| delegatedProperties.kt:42:30:42:47 | a0 | delegatedProperties.kt:42:30:42:47 | set | VarAccess | +| delegatedProperties.kt:42:30:42:47 | a0 | delegatedProperties.kt:42:30:42:47 | set | VarAccess | +| delegatedProperties.kt:42:30:42:47 | a1 | delegatedProperties.kt:42:30:42:47 | set | VarAccess | +| delegatedProperties.kt:42:30:42:47 | a1 | delegatedProperties.kt:42:30:42:47 | set | VarAccess | +| delegatedProperties.kt:42:30:42:47 | get(...) | delegatedProperties.kt:42:30:42:47 | invoke | MethodCall | +| delegatedProperties.kt:42:30:42:47 | get(...) | delegatedProperties.kt:42:30:42:47 | invoke | MethodCall | +| delegatedProperties.kt:42:30:42:47 | getValue(...) | delegatedProperties.kt:42:30:42:47 | getVarResource0 | MethodCall | +| delegatedProperties.kt:42:30:42:47 | getVarResource0(...) | delegatedProperties.kt:42:30:42:47 | get | MethodCall | +| delegatedProperties.kt:42:30:42:47 | getVarResource0(...) | delegatedProperties.kt:42:30:42:47 | get | MethodCall | +| delegatedProperties.kt:42:30:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | setValue(...) | delegatedProperties.kt:42:30:42:47 | setVarResource0 | MethodCall | +| delegatedProperties.kt:42:30:42:47 | setVarResource0(...) | delegatedProperties.kt:42:30:42:47 | set | MethodCall | +| delegatedProperties.kt:42:30:42:47 | setVarResource0(...) | delegatedProperties.kt:42:30:42:47 | set | MethodCall | +| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | getVarResource0 | ThisAccess | +| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | invoke | ThisAccess | +| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | invoke | ThisAccess | +| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | setVarResource0 | ThisAccess | +| delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:30:42:47 | getVarResource0 | VarAccess | +| delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:30:42:47 | setVarResource0 | VarAccess | +| delegatedProperties.kt:42:30:42:47 | varResource0$delegate | delegatedProperties.kt:17:1:43:1 | Owner | VarAccess | +| delegatedProperties.kt:42:30:42:47 | <set-?> | delegatedProperties.kt:42:30:42:47 | setVarResource0 | VarAccess | | delegatedProperties.kt:42:30:42:47 | ResourceDelegate | delegatedProperties.kt:17:1:43:1 | Owner | TypeAccess | | delegatedProperties.kt:42:30:42:47 | new ResourceDelegate(...) | delegatedProperties.kt:17:1:43:1 | Owner | ClassInstanceExpr | | delegatedProperties.kt:46:14:48:5 | int | file://:0:0:0:0 | <none> | TypeAccess | From 6c0885c24d3575cce5ebc9be38787366f1a37dd5 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:06:45 +0000 Subject: [PATCH 188/309] Kotlin 2: Accept more loc changes --- .../library-tests/exprs/exprs.expected | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 791879f23cc..b9be9434b75 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -11,8 +11,8 @@ | delegatedProperties.kt:1:9:1:12 | null | delegatedProperties.kt:18:5:40:5 | fn | NullLiteral | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:42:30:42:47 | getVarResource0 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:42:30:42:47 | setVarResource0 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | ThisAccess | @@ -350,53 +350,53 @@ | delegatedProperties.kt:65:35:65:77 | this | delegatedProperties.kt:65:35:65:77 | getAnotherClassInstance | ThisAccess | | delegatedProperties.kt:65:35:65:77 | this.anotherClassInstance | delegatedProperties.kt:65:35:65:77 | getAnotherClassInstance | VarAccess | | delegatedProperties.kt:65:87:65:95 | memberInt | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | -| delegatedProperties.kt:66:33:66:50 | ...::... | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | PropertyRefExpr | -| delegatedProperties.kt:66:33:66:50 | ...::... | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | PropertyRefExpr | -| delegatedProperties.kt:66:33:66:50 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | -| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | Integer | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | MyClass | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | MyClass | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | Unit | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | get | VarAccess | -| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | get | VarAccess | -| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | invoke | VarAccess | -| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | invoke | VarAccess | -| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | set | VarAccess | -| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | set | VarAccess | -| delegatedProperties.kt:66:33:66:50 | a1 | delegatedProperties.kt:66:33:66:50 | set | VarAccess | -| delegatedProperties.kt:66:33:66:50 | a1 | delegatedProperties.kt:66:33:66:50 | set | VarAccess | -| delegatedProperties.kt:66:33:66:50 | delegatedToMember1$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | -| delegatedProperties.kt:66:33:66:50 | get(...) | delegatedProperties.kt:66:33:66:50 | invoke | MethodCall | -| delegatedProperties.kt:66:33:66:50 | get(...) | delegatedProperties.kt:66:33:66:50 | invoke | MethodCall | -| delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | get | MethodCall | -| delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | get | MethodCall | -| delegatedProperties.kt:66:33:66:50 | getValue(...) | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | MethodCall | -| delegatedProperties.kt:66:33:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | set | MethodCall | -| delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | set | MethodCall | -| delegatedProperties.kt:66:33:66:50 | setValue(...) | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | MethodCall | -| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | ThisAccess | -| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | invoke | ThisAccess | -| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | invoke | ThisAccess | -| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | ThisAccess | -| delegatedProperties.kt:66:33:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | VarAccess | -| delegatedProperties.kt:66:33:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | VarAccess | +| delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | PropertyRefExpr | +| delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | PropertyRefExpr | +| delegatedProperties.kt:66:36:66:50 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | +| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | Integer | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | MyClass | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | MyClass | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | Unit | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | get | VarAccess | +| delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | get | VarAccess | +| delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | invoke | VarAccess | +| delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | invoke | VarAccess | +| delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | set | VarAccess | +| delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | set | VarAccess | +| delegatedProperties.kt:66:36:66:50 | a1 | delegatedProperties.kt:66:36:66:50 | set | VarAccess | +| delegatedProperties.kt:66:36:66:50 | a1 | delegatedProperties.kt:66:36:66:50 | set | VarAccess | +| delegatedProperties.kt:66:36:66:50 | delegatedToMember1$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | +| delegatedProperties.kt:66:36:66:50 | get(...) | delegatedProperties.kt:66:36:66:50 | invoke | MethodCall | +| delegatedProperties.kt:66:36:66:50 | get(...) | delegatedProperties.kt:66:36:66:50 | invoke | MethodCall | +| delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | get | MethodCall | +| delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | get | MethodCall | +| delegatedProperties.kt:66:36:66:50 | getValue(...) | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | MethodCall | +| delegatedProperties.kt:66:36:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | set | MethodCall | +| delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | set | MethodCall | +| delegatedProperties.kt:66:36:66:50 | setValue(...) | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | MethodCall | +| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | ThisAccess | +| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess | +| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess | +| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | ThisAccess | +| delegatedProperties.kt:66:36:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | VarAccess | +| delegatedProperties.kt:66:36:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | VarAccess | | delegatedProperties.kt:66:36:66:39 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:66:36:66:39 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess | | delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | | delegatedProperties.kt:66:36:66:50 | ...=... | delegatedProperties.kt:66:36:66:50 | | AssignExpr | | delegatedProperties.kt:66:36:66:50 | <dispatchReceiver> | delegatedProperties.kt:66:36:66:50 | | VarAccess | -| delegatedProperties.kt:66:36:66:50 | <set-?> | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | VarAccess | +| delegatedProperties.kt:66:36:66:50 | <set-?> | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | VarAccess | | delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:66:36:66:50 | KMutableProperty0<Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:66:36:66:50 | MyClass | file://:0:0:0:0 | <none> | TypeAccess | From 57d17d85f2cb8799d4440337cac9268fef9f4391 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:07:12 +0000 Subject: [PATCH 189/309] Kotlin 2: Accept more loc changes --- .../library-tests/exprs/exprs.expected | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index b9be9434b75..dd21cf994a4 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -13,8 +13,8 @@ | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:42:30:42:47 | setVarResource0 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | ThisAccess | @@ -411,52 +411,52 @@ | delegatedProperties.kt:66:36:66:50 | this.<dispatchReceiver> | delegatedProperties.kt:66:36:66:50 | | VarAccess | | delegatedProperties.kt:66:36:66:50 | this.<dispatchReceiver> | delegatedProperties.kt:66:36:66:50 | get | VarAccess | | delegatedProperties.kt:66:36:66:50 | this.<dispatchReceiver> | delegatedProperties.kt:66:36:66:50 | set | VarAccess | -| delegatedProperties.kt:67:33:67:53 | ...::... | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | PropertyRefExpr | -| delegatedProperties.kt:67:33:67:53 | ...::... | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | PropertyRefExpr | -| delegatedProperties.kt:67:33:67:53 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | -| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | Integer | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | MyClass | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | Unit | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | get | VarAccess | -| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | get | VarAccess | -| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | invoke | VarAccess | -| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | invoke | VarAccess | -| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | set | VarAccess | -| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | set | VarAccess | -| delegatedProperties.kt:67:33:67:53 | a1 | delegatedProperties.kt:67:33:67:53 | set | VarAccess | -| delegatedProperties.kt:67:33:67:53 | a1 | delegatedProperties.kt:67:33:67:53 | set | VarAccess | -| delegatedProperties.kt:67:33:67:53 | delegatedToMember2$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | -| delegatedProperties.kt:67:33:67:53 | get(...) | delegatedProperties.kt:67:33:67:53 | invoke | MethodCall | -| delegatedProperties.kt:67:33:67:53 | get(...) | delegatedProperties.kt:67:33:67:53 | invoke | MethodCall | -| delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | get | MethodCall | -| delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | get | MethodCall | -| delegatedProperties.kt:67:33:67:53 | getValue(...) | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | MethodCall | -| delegatedProperties.kt:67:33:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | set | MethodCall | -| delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | set | MethodCall | -| delegatedProperties.kt:67:33:67:53 | setValue(...) | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | MethodCall | -| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | ThisAccess | -| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | invoke | ThisAccess | -| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | invoke | ThisAccess | -| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | ThisAccess | -| delegatedProperties.kt:67:33:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | VarAccess | -| delegatedProperties.kt:67:33:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | VarAccess | +| delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | PropertyRefExpr | +| delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | PropertyRefExpr | +| delegatedProperties.kt:67:36:67:53 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | +| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | Integer | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | MyClass | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | Unit | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | get | VarAccess | +| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | get | VarAccess | +| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | invoke | VarAccess | +| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | invoke | VarAccess | +| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | set | VarAccess | +| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | set | VarAccess | +| delegatedProperties.kt:67:36:67:53 | a1 | delegatedProperties.kt:67:36:67:53 | set | VarAccess | +| delegatedProperties.kt:67:36:67:53 | a1 | delegatedProperties.kt:67:36:67:53 | set | VarAccess | +| delegatedProperties.kt:67:36:67:53 | delegatedToMember2$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | +| delegatedProperties.kt:67:36:67:53 | get(...) | delegatedProperties.kt:67:36:67:53 | invoke | MethodCall | +| delegatedProperties.kt:67:36:67:53 | get(...) | delegatedProperties.kt:67:36:67:53 | invoke | MethodCall | +| delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall | +| delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall | +| delegatedProperties.kt:67:36:67:53 | getValue(...) | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | MethodCall | +| delegatedProperties.kt:67:36:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall | +| delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall | +| delegatedProperties.kt:67:36:67:53 | setValue(...) | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | MethodCall | +| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | ThisAccess | +| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess | +| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess | +| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | ThisAccess | +| delegatedProperties.kt:67:36:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | VarAccess | +| delegatedProperties.kt:67:36:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | VarAccess | | delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | -| delegatedProperties.kt:67:36:67:53 | <set-?> | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | VarAccess | +| delegatedProperties.kt:67:36:67:53 | <set-?> | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | VarAccess | | delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | From c4c843968e4565d8fa2898c654bc6dd78b3c8972 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:07:39 +0000 Subject: [PATCH 190/309] Kotlin 2: Accept more loc changes --- .../library-tests/exprs/exprs.expected | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index dd21cf994a4..edfa0c3df9b 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -15,8 +15,8 @@ | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | ThisAccess | @@ -468,53 +468,53 @@ | delegatedProperties.kt:67:36:67:53 | getMemberInt(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall | | delegatedProperties.kt:67:36:67:53 | setMemberInt(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall | | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess | -| delegatedProperties.kt:69:36:69:56 | ...::... | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | PropertyRefExpr | -| delegatedProperties.kt:69:36:69:56 | ...::... | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | PropertyRefExpr | -| delegatedProperties.kt:69:36:69:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | -| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | MyClass | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | MyClass | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | Unit | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | get | VarAccess | -| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | get | VarAccess | -| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | invoke | VarAccess | -| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | invoke | VarAccess | -| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | set | VarAccess | -| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | set | VarAccess | -| delegatedProperties.kt:69:36:69:56 | a1 | delegatedProperties.kt:69:36:69:56 | set | VarAccess | -| delegatedProperties.kt:69:36:69:56 | a1 | delegatedProperties.kt:69:36:69:56 | set | VarAccess | -| delegatedProperties.kt:69:36:69:56 | delegatedToExtMember1$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | -| delegatedProperties.kt:69:36:69:56 | get(...) | delegatedProperties.kt:69:36:69:56 | invoke | MethodCall | -| delegatedProperties.kt:69:36:69:56 | get(...) | delegatedProperties.kt:69:36:69:56 | invoke | MethodCall | -| delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | get | MethodCall | -| delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | get | MethodCall | -| delegatedProperties.kt:69:36:69:56 | getValue(...) | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | MethodCall | -| delegatedProperties.kt:69:36:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | set | MethodCall | -| delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | set | MethodCall | -| delegatedProperties.kt:69:36:69:56 | setValue(...) | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | MethodCall | -| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | ThisAccess | -| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | invoke | ThisAccess | -| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | invoke | ThisAccess | -| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | ThisAccess | -| delegatedProperties.kt:69:36:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | VarAccess | -| delegatedProperties.kt:69:36:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | VarAccess | +| delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | PropertyRefExpr | +| delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | PropertyRefExpr | +| delegatedProperties.kt:69:39:69:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | +| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | MyClass | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | MyClass | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | Unit | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | get | VarAccess | +| delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | get | VarAccess | +| delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | invoke | VarAccess | +| delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | invoke | VarAccess | +| delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | set | VarAccess | +| delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | set | VarAccess | +| delegatedProperties.kt:69:39:69:56 | a1 | delegatedProperties.kt:69:39:69:56 | set | VarAccess | +| delegatedProperties.kt:69:39:69:56 | a1 | delegatedProperties.kt:69:39:69:56 | set | VarAccess | +| delegatedProperties.kt:69:39:69:56 | delegatedToExtMember1$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | +| delegatedProperties.kt:69:39:69:56 | get(...) | delegatedProperties.kt:69:39:69:56 | invoke | MethodCall | +| delegatedProperties.kt:69:39:69:56 | get(...) | delegatedProperties.kt:69:39:69:56 | invoke | MethodCall | +| delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | get | MethodCall | +| delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | get | MethodCall | +| delegatedProperties.kt:69:39:69:56 | getValue(...) | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | MethodCall | +| delegatedProperties.kt:69:39:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | set | MethodCall | +| delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | set | MethodCall | +| delegatedProperties.kt:69:39:69:56 | setValue(...) | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | MethodCall | +| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | ThisAccess | +| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess | +| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess | +| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | ThisAccess | +| delegatedProperties.kt:69:39:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | VarAccess | +| delegatedProperties.kt:69:39:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | VarAccess | | delegatedProperties.kt:69:39:69:42 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:69:39:69:42 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess | | delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | | delegatedProperties.kt:69:39:69:56 | ...=... | delegatedProperties.kt:69:39:69:56 | | AssignExpr | | delegatedProperties.kt:69:39:69:56 | <extensionReceiver> | delegatedProperties.kt:69:39:69:56 | | VarAccess | -| delegatedProperties.kt:69:39:69:56 | <set-?> | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | VarAccess | +| delegatedProperties.kt:69:39:69:56 | <set-?> | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | VarAccess | | delegatedProperties.kt:69:39:69:56 | DelegatedPropertiesKt | delegatedProperties.kt:69:39:69:56 | get | TypeAccess | | delegatedProperties.kt:69:39:69:56 | DelegatedPropertiesKt | delegatedProperties.kt:69:39:69:56 | set | TypeAccess | | delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | From a53d5d832d4b52142a1fd57fdd2091ad1bcf54e0 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Fri, 15 Mar 2024 18:08:53 +0000 Subject: [PATCH 191/309] Kotlin 2: Accept more loc changes --- .../library-tests/exprs/exprs.expected | 138 +++++++++--------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index edfa0c3df9b..13dfc71b6c3 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -17,10 +17,10 @@ | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | ThisAccess | -| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | ThisAccess | +| delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | ThisAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | ThisAccess | @@ -531,52 +531,52 @@ | delegatedProperties.kt:69:39:69:56 | this.<extensionReceiver> | delegatedProperties.kt:69:39:69:56 | | VarAccess | | delegatedProperties.kt:69:39:69:56 | this.<extensionReceiver> | delegatedProperties.kt:69:39:69:56 | get | VarAccess | | delegatedProperties.kt:69:39:69:56 | this.<extensionReceiver> | delegatedProperties.kt:69:39:69:56 | set | VarAccess | -| delegatedProperties.kt:70:36:70:59 | ...::... | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | PropertyRefExpr | -| delegatedProperties.kt:70:36:70:59 | ...::... | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | PropertyRefExpr | -| delegatedProperties.kt:70:36:70:59 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | -| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | Integer | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | MyClass | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | Unit | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | get | VarAccess | -| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | get | VarAccess | -| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | invoke | VarAccess | -| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | invoke | VarAccess | -| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | set | VarAccess | -| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | set | VarAccess | -| delegatedProperties.kt:70:36:70:59 | a1 | delegatedProperties.kt:70:36:70:59 | set | VarAccess | -| delegatedProperties.kt:70:36:70:59 | a1 | delegatedProperties.kt:70:36:70:59 | set | VarAccess | -| delegatedProperties.kt:70:36:70:59 | delegatedToExtMember2$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | -| delegatedProperties.kt:70:36:70:59 | get(...) | delegatedProperties.kt:70:36:70:59 | invoke | MethodCall | -| delegatedProperties.kt:70:36:70:59 | get(...) | delegatedProperties.kt:70:36:70:59 | invoke | MethodCall | -| delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | get | MethodCall | -| delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | get | MethodCall | -| delegatedProperties.kt:70:36:70:59 | getValue(...) | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | MethodCall | -| delegatedProperties.kt:70:36:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | set | MethodCall | -| delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | set | MethodCall | -| delegatedProperties.kt:70:36:70:59 | setValue(...) | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | MethodCall | -| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | ThisAccess | -| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | invoke | ThisAccess | -| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | invoke | ThisAccess | -| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | ThisAccess | -| delegatedProperties.kt:70:36:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | VarAccess | -| delegatedProperties.kt:70:36:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | VarAccess | +| delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | PropertyRefExpr | +| delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | PropertyRefExpr | +| delegatedProperties.kt:70:39:70:59 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | +| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | Integer | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | MyClass | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | Unit | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | get | VarAccess | +| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | get | VarAccess | +| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | invoke | VarAccess | +| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | invoke | VarAccess | +| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | set | VarAccess | +| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | set | VarAccess | +| delegatedProperties.kt:70:39:70:59 | a1 | delegatedProperties.kt:70:39:70:59 | set | VarAccess | +| delegatedProperties.kt:70:39:70:59 | a1 | delegatedProperties.kt:70:39:70:59 | set | VarAccess | +| delegatedProperties.kt:70:39:70:59 | delegatedToExtMember2$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | +| delegatedProperties.kt:70:39:70:59 | get(...) | delegatedProperties.kt:70:39:70:59 | invoke | MethodCall | +| delegatedProperties.kt:70:39:70:59 | get(...) | delegatedProperties.kt:70:39:70:59 | invoke | MethodCall | +| delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | get | MethodCall | +| delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | get | MethodCall | +| delegatedProperties.kt:70:39:70:59 | getValue(...) | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | MethodCall | +| delegatedProperties.kt:70:39:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | set | MethodCall | +| delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | set | MethodCall | +| delegatedProperties.kt:70:39:70:59 | setValue(...) | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | MethodCall | +| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | ThisAccess | +| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess | +| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess | +| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | ThisAccess | +| delegatedProperties.kt:70:39:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | VarAccess | +| delegatedProperties.kt:70:39:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | VarAccess | | delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | -| delegatedProperties.kt:70:39:70:59 | <set-?> | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | VarAccess | +| delegatedProperties.kt:70:39:70:59 | <set-?> | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2 | VarAccess | | delegatedProperties.kt:70:39:70:59 | DelegatedPropertiesKt | delegatedProperties.kt:70:39:70:59 | get | TypeAccess | | delegatedProperties.kt:70:39:70:59 | DelegatedPropertiesKt | delegatedProperties.kt:70:39:70:59 | set | TypeAccess | | delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | @@ -624,27 +624,27 @@ | delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | invoke | ThisAccess | | delegatedProperties.kt:72:39:72:56 | this.<dispatchReceiver> | delegatedProperties.kt:72:39:72:56 | | VarAccess | | delegatedProperties.kt:72:39:72:56 | this.<dispatchReceiver> | delegatedProperties.kt:72:39:72:56 | get | VarAccess | -| delegatedProperties.kt:73:36:73:56 | ...::... | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | PropertyRefExpr | -| delegatedProperties.kt:73:36:73:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | -| delegatedProperties.kt:73:36:73:56 | Base | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | Base | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | Integer | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | Integer | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | KProperty1<Base,Integer> | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | MyClass | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | a0 | delegatedProperties.kt:73:36:73:56 | get | VarAccess | -| delegatedProperties.kt:73:36:73:56 | a0 | delegatedProperties.kt:73:36:73:56 | invoke | VarAccess | -| delegatedProperties.kt:73:36:73:56 | delegatedToBaseClass2$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | -| delegatedProperties.kt:73:36:73:56 | get(...) | delegatedProperties.kt:73:36:73:56 | invoke | MethodCall | -| delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2(...) | delegatedProperties.kt:73:36:73:56 | get | MethodCall | -| delegatedProperties.kt:73:36:73:56 | getValue(...) | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | MethodCall | -| delegatedProperties.kt:73:36:73:56 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:73:36:73:56 | this | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | ThisAccess | -| delegatedProperties.kt:73:36:73:56 | this | delegatedProperties.kt:73:36:73:56 | invoke | ThisAccess | -| delegatedProperties.kt:73:36:73:56 | this.delegatedToBaseClass2$delegate | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | VarAccess | +| delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | PropertyRefExpr | +| delegatedProperties.kt:73:39:73:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | +| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | Base | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | KProperty1<Base,Integer> | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | MyClass | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | get | VarAccess | +| delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | invoke | VarAccess | +| delegatedProperties.kt:73:39:73:56 | delegatedToBaseClass2$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | +| delegatedProperties.kt:73:39:73:56 | get(...) | delegatedProperties.kt:73:39:73:56 | invoke | MethodCall | +| delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2(...) | delegatedProperties.kt:73:39:73:56 | get | MethodCall | +| delegatedProperties.kt:73:39:73:56 | getValue(...) | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | MethodCall | +| delegatedProperties.kt:73:39:73:56 | int | file://:0:0:0:0 | <none> | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | ThisAccess | +| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | invoke | ThisAccess | +| delegatedProperties.kt:73:39:73:56 | this.delegatedToBaseClass2$delegate | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | VarAccess | | delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | | delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | From fc367042efdba093a21e8d37ac3df1062c93c83f Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <owen-mc@github.com> Date: Fri, 15 Mar 2024 23:19:25 +0000 Subject: [PATCH 192/309] Fix df-manual model with wrong parameter type --- java/ql/lib/ext/java.nio.file.model.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index fc0648c85aa..8f8db20a0c0 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -91,7 +91,7 @@ extensions: data: # summary neutrals - ["java.nio.file", "Files", "exists", "(Path,LinkOption[])", "summary", "manual"] - - ["java.nio.file", "Files", "newInputStream", "(Path,LinkOption[])", "summary", "df-manual"] + - ["java.nio.file", "Files", "newInputStream", "(Path,OpenOption[])", "summary", "df-manual"] # sink neutrals - ["java.nio.file", "Files", "getLastModifiedTime", "", "sink", "hq-manual"] - ["java.nio.file", "Files", "getOwner", "", "sink", "hq-manual"] From 23a58a0835f096e8abba75247203235190ff2963 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <owen-mc@github.com> Date: Fri, 15 Mar 2024 23:21:29 +0000 Subject: [PATCH 193/309] Add df-manual models related to existing df-manual models --- java/ql/lib/ext/java.io.model.yml | 1 + java/ql/lib/ext/java.net.model.yml | 1 + java/ql/lib/ext/javax.crypto.spec.model.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/java/ql/lib/ext/java.io.model.yml b/java/ql/lib/ext/java.io.model.yml index e8a14a13e51..1cbbf456779 100644 --- a/java/ql/lib/ext/java.io.model.yml +++ b/java/ql/lib/ext/java.io.model.yml @@ -120,6 +120,7 @@ extensions: - ["java.io", "File", "listFiles", "", "summary", "df-manual"] - ["java.io", "File", "mkdirs", "()", "summary", "manual"] - ["java.io", "FileInputStream", "FileInputStream", "(File)", "summary", "manual"] + - ["java.io", "FileInputStream", "FileInputStream", "(FileDescriptor)", "summary", "df-manual"] - ["java.io", "FileInputStream", "FileInputStream", "(String)", "summary", "df-manual"] - ["java.io", "InputStream", "close", "()", "summary", "manual"] - ["java.io", "ObjectInput", "readObject", "()", "summary", "df-manual"] # this is a deserialization sink modeled in regular CodeQL diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index 19044ec7a40..5884c60e4e7 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -67,4 +67,5 @@ extensions: data: # summary neutrals - ["java.net", "Socket", "getOutputStream", "()", "summary", "df-manual"] + - ["java.net", "Socket", "connect", "(SocketAddress)", "summary", "df-manual"] - ["java.net", "Socket", "connect", "(SocketAddress,int)", "summary", "df-manual"] diff --git a/java/ql/lib/ext/javax.crypto.spec.model.yml b/java/ql/lib/ext/javax.crypto.spec.model.yml index 2a88b6275fd..d2b7dbc99b8 100644 --- a/java/ql/lib/ext/javax.crypto.spec.model.yml +++ b/java/ql/lib/ext/javax.crypto.spec.model.yml @@ -31,3 +31,4 @@ extensions: extensible: neutralModel data: - ["javax.crypto.spec", "SecretKeySpec", "SecretKeySpec", "(byte[],String)", "summary", "df-manual"] + - ["javax.crypto.spec", "SecretKeySpec", "SecretKeySpec", "(byte[],int,int,String)", "summary", "df-manual"] From 754d4cd95905f3e0f0cb548ca12091ec5b0f51dd Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <owen-mc@github.com> Date: Sun, 17 Mar 2024 14:36:47 +0000 Subject: [PATCH 194/309] Fix model provenance to df-manual --- java/ql/lib/ext/java.lang.model.yml | 16 +++++++------- java/ql/lib/ext/javax.crypto.model.yml | 30 +++++++++++++------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/java/ql/lib/ext/java.lang.model.yml b/java/ql/lib/ext/java.lang.model.yml index 0569b4c209c..9012f7c981f 100644 --- a/java/ql/lib/ext/java.lang.model.yml +++ b/java/ql/lib/ext/java.lang.model.yml @@ -82,8 +82,8 @@ extensions: - ["java.lang", "Exception", False, "Exception", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - ["java.lang", "Exception", False, "Exception", "(String,Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - ["java.lang", "Exception", False, "Exception", "(String,Throwable)", "", "Argument[1]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - - ["java.lang", "Exception", False, "Exception", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - - ["java.lang", "Exception", False, "Exception", "(Throwable)", "", "Argument[0].SyntheticField[java.lang.Throwable.message]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "taint", "manual"] + - ["java.lang", "Exception", False, "Exception", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "df-manual"] + - ["java.lang", "Exception", False, "Exception", "(Throwable)", "", "Argument[0].SyntheticField[java.lang.Throwable.message]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "taint", "df-manual"] - ["java.lang", "IllegalArgumentException", False, "IllegalArgumentException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - ["java.lang", "IllegalStateException", False, "IllegalStateException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - ["java.lang", "IndexOutOfBoundsException", False, "IndexOutOfBoundsException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] @@ -148,16 +148,16 @@ extensions: - ["java.lang", "ThreadLocal", True, "set", "(Object)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.ThreadLocal.value]", "value", "manual"] - ["java.lang", "ThreadLocal", False, "withInitial", "(Supplier)", "", "Argument[0].ReturnValue", "ReturnValue.SyntheticField[java.lang.ThreadLocal.value]", "value", "manual"] - ["java.lang", "Throwable", False, "Throwable", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.lang", "Throwable", False, "Throwable", "(String,Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.lang", "Throwable", False, "Throwable", "(String,Throwable)", "", "Argument[1]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] + - ["java.lang", "Throwable", False, "Throwable", "(String,Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "df-manual"] + - ["java.lang", "Throwable", False, "Throwable", "(String,Throwable)", "", "Argument[1]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "df-manual"] - ["java.lang", "Throwable", False, "Throwable", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - - ["java.lang", "Throwable", False, "Throwable", "(Throwable)", "", "Argument[0].SyntheticField[java.lang.Throwable.message]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "taint", "manual"] + - ["java.lang", "Throwable", False, "Throwable", "(Throwable)", "", "Argument[0].SyntheticField[java.lang.Throwable.message]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "taint", "df-manual"] - ["java.lang", "Throwable", True, "getCause", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "ReturnValue", "value", "manual"] - ["java.lang", "Throwable", True, "getMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"] - ["java.lang", "Throwable", True, "getLocalizedMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"] - - ["java.lang", "Throwable", True, "initCause", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - - ["java.lang", "Throwable", True, "initCause", "(Throwable)", "", "Argument[0]", "ReturnValue.SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - - ["java.lang", "Throwable", True, "initCause", "(Throwable)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.lang", "Throwable", True, "initCause", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "df-manual"] + - ["java.lang", "Throwable", True, "initCause", "(Throwable)", "", "Argument[0]", "ReturnValue.SyntheticField[java.lang.Throwable.cause]", "value", "df-manual"] + - ["java.lang", "Throwable", True, "initCause", "(Throwable)", "", "Argument[this]", "ReturnValue", "value", "df-manual"] - ["java.lang", "Throwable", True, "toString", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "taint", "manual"] - ["java.lang", "UnsupportedOperationException", False, "UnsupportedOperationException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - addsTo: diff --git a/java/ql/lib/ext/javax.crypto.model.yml b/java/ql/lib/ext/javax.crypto.model.yml index 53b54f1a22d..ecd44af5b56 100644 --- a/java/ql/lib/ext/javax.crypto.model.yml +++ b/java/ql/lib/ext/javax.crypto.model.yml @@ -11,18 +11,18 @@ extensions: pack: codeql/java-all extensible: neutralModel data: - - ["javax.crypto", "Cipher", "doFinal", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "getAlgorithm", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "getExemptionMechanism", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "getInstance", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "getIV", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "getParameters", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "getProvider", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "init", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "toString", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "unwrap", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "update", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "updateAAD", "", "summary", "manual"] - - ["javax.crypto", "Cipher", "wrap", "", "summary", "manual"] - - ["javax.crypto", "Mac", "init", "(Key)", "summary", "df-manual"] - - ["javax.crypto", "Mac", "doFinal", "()", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "doFinal", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "getAlgorithm", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "getExemptionMechanism", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "getInstance", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "getIV", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "getParameters", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "getProvider", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "init", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "toString", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "unwrap", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "update", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "updateAAD", "", "summary", "df-manual"] + - ["javax.crypto", "Cipher", "wrap", "", "summary", "df-manual"] + - ["javax.crypto", "Mac", "init", "(Key)", "summary", "df-df-manual"] + - ["javax.crypto", "Mac", "doFinal", "()", "summary", "df-df-manual"] From 45c65b48aaa747a3198d59618fa64505af90d4a1 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen <yoff@github.com> Date: Mon, 18 Mar 2024 08:49:31 +0100 Subject: [PATCH 195/309] python: make it a real package so python2 also respects it --- .../experimental/dataflow/summaries/extracted_package/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 python/ql/test/experimental/dataflow/summaries/extracted_package/__init__.py diff --git a/python/ql/test/experimental/dataflow/summaries/extracted_package/__init__.py b/python/ql/test/experimental/dataflow/summaries/extracted_package/__init__.py new file mode 100644 index 00000000000..e69de29bb2d From 2a0c451d2d3ceeeb4a6d10a619cbe084e0f133bd Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen <yoff@github.com> Date: Mon, 18 Mar 2024 10:29:36 +0100 Subject: [PATCH 196/309] python: No `fieldFlowBranchLimit` for `SummarizedCallable`s Like https://github.com/github/codeql/pull/15689 for Ruby. --- .../python/dataflow/new/internal/DataFlowImplSpecific.qll | 2 ++ .../experimental/dataflow/summaries/conflicting_summaries.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplSpecific.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplSpecific.qll index cffdefe41ba..704af5b08e7 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplSpecific.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplSpecific.qll @@ -22,4 +22,6 @@ module PythonDataFlow implements InputSig { predicate neverSkipInPathGraph = Private::neverSkipInPathGraph/1; Node exprNode(DataFlowExpr e) { result = Public::exprNode(e) } + + predicate ignoreFieldFlowBranchLimit(DataFlowCallable c) { exists(c.asLibraryCallable()) } } diff --git a/python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py b/python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py index 9528e9cdafc..7b031f37a9f 100644 --- a/python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py +++ b/python/ql/test/experimental/dataflow/summaries/conflicting_summaries.py @@ -7,7 +7,7 @@ from extracted_package.functions import with_subpath, without_subpath # can be concluded from its definition. This seems to discard all summaries, including # the one with flow to `ReturnValue.Attribute[pattern]`. ensure_tainted( - with_subpath(ts).pattern, # $ MISSING: tainted + with_subpath(ts).pattern, # $ tainted with_subpath(ts), # $ tainted with_subpath(ts), # $ tainted ) From a810165e3576de8e3937db24c7de6173d4a3561e Mon Sep 17 00:00:00 2001 From: Arthur Baars <aibaars@github.com> Date: Mon, 18 Mar 2024 10:55:18 +0100 Subject: [PATCH 197/309] Fix minor formatting issues in changenotes --- .../src/change-notes/2024-03-11-remove-stored-query-variants.md | 2 +- ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md | 2 +- ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/ql/src/change-notes/2024-03-11-remove-stored-query-variants.md b/csharp/ql/src/change-notes/2024-03-11-remove-stored-query-variants.md index f86836b1219..3ca0b14f7b2 100644 --- a/csharp/ql/src/change-notes/2024-03-11-remove-stored-query-variants.md +++ b/csharp/ql/src/change-notes/2024-03-11-remove-stored-query-variants.md @@ -1,5 +1,5 @@ --- category: majorAnalysis --- -* The `Stored` variants of some queries (`cs/stored-command-line-injection`, `cs/web/stored-xss`, `cs/stored-ldap-injection`, `cs/xml/stored-xpath-injection`. `cs/second-order-sql-injection`) have been removed. If you were using these queries, their results can be restored by enabling the `file` and `database` threat models in your threat model configuration. +* The `Stored` variants of some queries (`cs/stored-command-line-injection`, `cs/web/stored-xss`, `cs/stored-ldap-injection`, `cs/xml/stored-xpath-injection`, `cs/second-order-sql-injection`) have been removed. If you were using these queries, their results can be restored by enabling the `file` and `database` threat models in your threat model configuration. diff --git a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md index 56d2dcf5c73..66a82dd3d3f 100644 --- a/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md +++ b/ruby/ql/lib/change-notes/2024-02-26-arel-sqlliteral.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. \ No newline at end of file +* Calls to `Arel::Nodes::SqlLiteral.new` are now modeled as instances of the `SqlConstruction` concept, as well as propagating taint from their argument. diff --git a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md index f08bd54efa2..42275fcee7d 100644 --- a/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md +++ b/ruby/ql/lib/change-notes/2024-02-29-i18n-translate.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. \ No newline at end of file +* Calls to `I18n.translate` as well as Rails helper translate methods now propagate taint from their keyword arguments. The Rails translate methods are also recognized as XSS sanitizers when using keys marked as html safe. From 3a8d4689838bf2acb031a7056ab4c221c50834b0 Mon Sep 17 00:00:00 2001 From: Tamas Vajk <tamasvajk@github.com> Date: Mon, 18 Mar 2024 11:02:29 +0100 Subject: [PATCH 198/309] C#: Add logging for source file parsing --- .../Semmle.Extraction.CSharp/Extractor/Extractor.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs index 68d077b15e6..22a55849a02 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Extractor.cs @@ -284,9 +284,14 @@ namespace Semmle.Extraction.CSharp try { using var file = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); - var st = CSharpSyntaxTree.ParseText(SourceText.From(file, encoding), parseOptions, path); + analyser.Logger.Log(Severity.Trace, $"Parsing source file: '{path}'"); + var tree = CSharpSyntaxTree.ParseText(SourceText.From(file, encoding), parseOptions, path); + analyser.Logger.Log(Severity.Trace, $"Source file parsed: '{path}'"); + lock (ret) - ret.Add(st); + { + ret.Add(tree); + } } catch (IOException ex) { From 881c42663150ae4b2598a063b916f71d114e8c45 Mon Sep 17 00:00:00 2001 From: Tamas Vajk <tamasvajk@github.com> Date: Mon, 18 Mar 2024 11:03:12 +0100 Subject: [PATCH 199/309] C#: Iterate text files only once --- .../DependencyManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index f4ae77c3d33..c4c901a3cc4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -65,7 +65,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching var allFiles = GetAllFiles().ToList(); var binaryFileExtensions = new HashSet<string>(new[] { ".dll", ".exe" }); // TODO: add more binary file extensions. var allNonBinaryFiles = allFiles.Where(f => !binaryFileExtensions.Contains(f.Extension.ToLowerInvariant())).ToList(); - var smallNonBinaryFiles = allNonBinaryFiles.SelectSmallFiles(logger).SelectFileNames(); + var smallNonBinaryFiles = allNonBinaryFiles.SelectSmallFiles(logger).SelectFileNames().ToList(); this.fileContent = new FileContent(logger, smallNonBinaryFiles); this.nonGeneratedSources = allNonBinaryFiles.SelectFileNamesByExtension(".cs").ToList(); this.generatedSources = new(); From 51db2b0bc4a6f6fbe25cc2f75a1a529a389462ac Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 10:11:37 +0000 Subject: [PATCH 200/309] C++: Convert tabs to spaces in ir.cpp. --- cpp/ql/test/library-tests/ir/ir/ir.cpp | 74 +++++++++++++------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index 01d6b268102..eb31d8cc070 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -1057,52 +1057,52 @@ void Lambda(int x, const String& s) { namespace std { template<class T> - struct remove_const { typedef T type; }; + struct remove_const { typedef T type; }; - template<class T> - struct remove_const<const T> { typedef T type; }; + template<class T> + struct remove_const<const T> { typedef T type; }; - // `remove_const_t<T>` removes any `const` specifier from `T` - template<class T> - using remove_const_t = typename remove_const<T>::type; + // `remove_const_t<T>` removes any `const` specifier from `T` + template<class T> + using remove_const_t = typename remove_const<T>::type; struct ptrdiff_t; - template<class I> struct iterator_traits; + template<class I> struct iterator_traits; - template <class Category, - class value_type, - class difference_type = ptrdiff_t, - class pointer_type = value_type*, - class reference_type = value_type&> - struct iterator { - typedef Category iterator_category; + template <class Category, + class value_type, + class difference_type = ptrdiff_t, + class pointer_type = value_type*, + class reference_type = value_type&> + struct iterator { + typedef Category iterator_category; - iterator(); - iterator(iterator<Category, remove_const_t<value_type> > const &other); // non-const -> const conversion constructor + iterator(); + iterator(iterator<Category, remove_const_t<value_type> > const &other); // non-const -> const conversion constructor - iterator &operator++(); - iterator operator++(int); - iterator &operator--(); - iterator operator--(int); - bool operator==(iterator other) const; - bool operator!=(iterator other) const; - reference_type operator*() const; - pointer_type operator->() const; - iterator operator+(int); - iterator operator-(int); - iterator &operator+=(int); - iterator &operator-=(int); - int operator-(iterator); - reference_type operator[](int); - }; + iterator &operator++(); + iterator operator++(int); + iterator &operator--(); + iterator operator--(int); + bool operator==(iterator other) const; + bool operator!=(iterator other) const; + reference_type operator*() const; + pointer_type operator->() const; + iterator operator+(int); + iterator operator-(int); + iterator &operator+=(int); + iterator &operator-=(int); + int operator-(iterator); + reference_type operator[](int); + }; - struct input_iterator_tag {}; - struct forward_iterator_tag : public input_iterator_tag {}; - struct bidirectional_iterator_tag : public forward_iterator_tag {}; - struct random_access_iterator_tag : public bidirectional_iterator_tag {}; + struct input_iterator_tag {}; + struct forward_iterator_tag : public input_iterator_tag {}; + struct bidirectional_iterator_tag : public forward_iterator_tag {}; + struct random_access_iterator_tag : public bidirectional_iterator_tag {}; - struct output_iterator_tag {}; + struct output_iterator_tag {}; template<typename T> struct vector { @@ -1110,7 +1110,7 @@ namespace std { ~vector(); using iterator = std::iterator<random_access_iterator_tag, T>; - using const_iterator = std::iterator<random_access_iterator_tag, const T>; + using const_iterator = std::iterator<random_access_iterator_tag, const T>; iterator begin() const; iterator end() const; From 0a6243d07b5cd2ea78b2322a87cce28d7ba16d68 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <github-actions@github.com> Date: Mon, 18 Mar 2024 10:14:07 +0000 Subject: [PATCH 201/309] Release preparation for version 2.16.5 --- cpp/ql/lib/CHANGELOG.md | 4 ++++ cpp/ql/lib/change-notes/released/0.12.8.md | 3 +++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 4 ++++ cpp/ql/src/change-notes/released/0.9.7.md | 3 +++ cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../campaigns/Solorigate/lib/change-notes/released/1.7.11.md | 3 +++ csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../campaigns/Solorigate/src/change-notes/released/1.7.11.md | 3 +++ csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 4 ++++ csharp/ql/lib/change-notes/released/0.8.11.md | 3 +++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 4 ++++ csharp/ql/src/change-notes/released/0.8.11.md | 3 +++ csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ go/ql/consistency-queries/change-notes/released/0.0.10.md | 3 +++ go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 4 ++++ go/ql/lib/change-notes/released/0.7.11.md | 3 +++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++++ go/ql/src/change-notes/released/0.7.11.md | 3 +++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/CHANGELOG.md | 4 ++++ java/ql/automodel/src/change-notes/released/0.0.18.md | 3 +++ java/ql/automodel/src/codeql-pack.release.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 4 ++++ java/ql/lib/change-notes/released/0.8.11.md | 3 +++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 4 ++++ java/ql/src/change-notes/released/0.8.11.md | 3 +++ java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ++++ javascript/ql/lib/change-notes/released/0.8.11.md | 3 +++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ++++ javascript/ql/src/change-notes/released/0.8.11.md | 3 +++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ misc/suite-helpers/change-notes/released/0.7.11.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 4 ++++ python/ql/lib/change-notes/released/0.11.11.md | 3 +++ python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 4 ++++ python/ql/src/change-notes/released/0.9.11.md | 3 +++ python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 4 ++++ ruby/ql/lib/change-notes/released/0.8.11.md | 3 +++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 4 ++++ ruby/ql/src/change-notes/released/0.8.11.md | 3 +++ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ shared/controlflow/change-notes/released/0.1.11.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ shared/dataflow/change-notes/released/0.2.2.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/0.2.11.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ shared/rangeanalysis/change-notes/released/0.0.10.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/0.2.11.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/0.2.11.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ shared/threat-models/change-notes/released/0.0.10.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ shared/tutorial/change-notes/released/0.2.11.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ shared/typetracking/change-notes/released/0.2.11.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/0.2.11.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/0.2.11.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/0.2.11.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 4 ++++ swift/ql/lib/change-notes/released/0.3.11.md | 3 +++ swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/0.3.11.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 132 files changed, 297 insertions(+), 66 deletions(-) create mode 100644 cpp/ql/lib/change-notes/released/0.12.8.md create mode 100644 cpp/ql/src/change-notes/released/0.9.7.md create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.11.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.11.md create mode 100644 csharp/ql/lib/change-notes/released/0.8.11.md create mode 100644 csharp/ql/src/change-notes/released/0.8.11.md create mode 100644 go/ql/consistency-queries/change-notes/released/0.0.10.md create mode 100644 go/ql/lib/change-notes/released/0.7.11.md create mode 100644 go/ql/src/change-notes/released/0.7.11.md create mode 100644 java/ql/automodel/src/change-notes/released/0.0.18.md create mode 100644 java/ql/lib/change-notes/released/0.8.11.md create mode 100644 java/ql/src/change-notes/released/0.8.11.md create mode 100644 javascript/ql/lib/change-notes/released/0.8.11.md create mode 100644 javascript/ql/src/change-notes/released/0.8.11.md create mode 100644 misc/suite-helpers/change-notes/released/0.7.11.md create mode 100644 python/ql/lib/change-notes/released/0.11.11.md create mode 100644 python/ql/src/change-notes/released/0.9.11.md create mode 100644 ruby/ql/lib/change-notes/released/0.8.11.md create mode 100644 ruby/ql/src/change-notes/released/0.8.11.md create mode 100644 shared/controlflow/change-notes/released/0.1.11.md create mode 100644 shared/dataflow/change-notes/released/0.2.2.md create mode 100644 shared/mad/change-notes/released/0.2.11.md create mode 100644 shared/rangeanalysis/change-notes/released/0.0.10.md create mode 100644 shared/regex/change-notes/released/0.2.11.md create mode 100644 shared/ssa/change-notes/released/0.2.11.md create mode 100644 shared/threat-models/change-notes/released/0.0.10.md create mode 100644 shared/tutorial/change-notes/released/0.2.11.md create mode 100644 shared/typetracking/change-notes/released/0.2.11.md create mode 100644 shared/typos/change-notes/released/0.2.11.md create mode 100644 shared/util/change-notes/released/0.2.11.md create mode 100644 shared/yaml/change-notes/released/0.2.11.md create mode 100644 swift/ql/lib/change-notes/released/0.3.11.md create mode 100644 swift/ql/src/change-notes/released/0.3.11.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index e1c0dfbecd9..3e345c8b327 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.12.8 + +No user-facing changes. + ## 0.12.7 ### Minor Analysis Improvements diff --git a/cpp/ql/lib/change-notes/released/0.12.8.md b/cpp/ql/lib/change-notes/released/0.12.8.md new file mode 100644 index 00000000000..17f7d3963e2 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/0.12.8.md @@ -0,0 +1,3 @@ +## 0.12.8 + +No user-facing changes. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 20419e9c610..74f4c1a8fa0 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.12.7 +lastReleaseVersion: 0.12.8 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 8b17a050d82..483b049138c 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.12.8-dev +version: 0.12.8 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index f6acd424bb0..69c80b835f3 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.9.7 + +No user-facing changes. + ## 0.9.6 ### Minor Analysis Improvements diff --git a/cpp/ql/src/change-notes/released/0.9.7.md b/cpp/ql/src/change-notes/released/0.9.7.md new file mode 100644 index 00000000000..8583b9747e8 --- /dev/null +++ b/cpp/ql/src/change-notes/released/0.9.7.md @@ -0,0 +1,3 @@ +## 0.9.7 + +No user-facing changes. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 19139c132b2..0921a438254 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.6 +lastReleaseVersion: 0.9.7 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 49eb255cc8f..87141610f67 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.9.7-dev +version: 0.9.7 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 82eacfc84f7..97f22b42534 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.11 + +No user-facing changes. + ## 1.7.10 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.11.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.11.md new file mode 100644 index 00000000000..c2790d68a54 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.11.md @@ -0,0 +1,3 @@ +## 1.7.11 + +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 31c7fe07020..6e5b0b6e2f2 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.10 +lastReleaseVersion: 1.7.11 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 3e8792bce0e..d0b814fe5eb 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.11-dev +version: 1.7.11 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 82eacfc84f7..97f22b42534 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.11 + +No user-facing changes. + ## 1.7.10 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.11.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.11.md new file mode 100644 index 00000000000..c2790d68a54 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.11.md @@ -0,0 +1,3 @@ +## 1.7.11 + +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 31c7fe07020..6e5b0b6e2f2 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.10 +lastReleaseVersion: 1.7.11 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index c67ab9130a0..864328b2a5b 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.11-dev +version: 1.7.11 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 16cc14259e1..0444d4eb2bf 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.11 + +No user-facing changes. + ## 0.8.10 ### Major Analysis Improvements diff --git a/csharp/ql/lib/change-notes/released/0.8.11.md b/csharp/ql/lib/change-notes/released/0.8.11.md new file mode 100644 index 00000000000..6f504c5c207 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/0.8.11.md @@ -0,0 +1,3 @@ +## 0.8.11 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 0521f0f75fa..7b42a9d984c 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.11 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index a67b40f744f..d202160b8fc 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.11-dev +version: 0.8.11 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 46c939e5cee..e5aaaa31e82 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.11 + +No user-facing changes. + ## 0.8.10 ### Minor Analysis Improvements diff --git a/csharp/ql/src/change-notes/released/0.8.11.md b/csharp/ql/src/change-notes/released/0.8.11.md new file mode 100644 index 00000000000..6f504c5c207 --- /dev/null +++ b/csharp/ql/src/change-notes/released/0.8.11.md @@ -0,0 +1,3 @@ +## 0.8.11 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 0521f0f75fa..7b42a9d984c 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.11 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index a2148a36157..601609991c9 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.11-dev +version: 0.8.11 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index a59e560c415..1857b399fe8 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.10 + +No user-facing changes. + ## 0.0.9 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/0.0.10.md b/go/ql/consistency-queries/change-notes/released/0.0.10.md new file mode 100644 index 00000000000..22391080fd4 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/0.0.10.md @@ -0,0 +1,3 @@ +## 0.0.10 + +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 ecdd64fbab8..b740014e5ae 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.10 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index e82c98f52cb..32b42f72d6d 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: 0.0.10-dev +version: 0.0.10 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index fee5fd37a26..144be2473c0 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.11 + +No user-facing changes. + ## 0.7.10 ### Major Analysis Improvements diff --git a/go/ql/lib/change-notes/released/0.7.11.md b/go/ql/lib/change-notes/released/0.7.11.md new file mode 100644 index 00000000000..c4d7e2d3775 --- /dev/null +++ b/go/ql/lib/change-notes/released/0.7.11.md @@ -0,0 +1,3 @@ +## 0.7.11 + +No user-facing changes. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 67518567297..2610ac0272d 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.11 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 54b284e7ee5..a0ec22b27af 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.11-dev +version: 0.7.11 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 24e38b9890e..0682cd4f0bc 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.11 + +No user-facing changes. + ## 0.7.10 No user-facing changes. diff --git a/go/ql/src/change-notes/released/0.7.11.md b/go/ql/src/change-notes/released/0.7.11.md new file mode 100644 index 00000000000..c4d7e2d3775 --- /dev/null +++ b/go/ql/src/change-notes/released/0.7.11.md @@ -0,0 +1,3 @@ +## 0.7.11 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 67518567297..2610ac0272d 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.11 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index c89aacb8aa2..c8852c0e76d 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.11-dev +version: 0.7.11 groups: - go - queries diff --git a/java/ql/automodel/src/CHANGELOG.md b/java/ql/automodel/src/CHANGELOG.md index c3282c773a9..f252098a34f 100644 --- a/java/ql/automodel/src/CHANGELOG.md +++ b/java/ql/automodel/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.18 + +No user-facing changes. + ## 0.0.17 No user-facing changes. diff --git a/java/ql/automodel/src/change-notes/released/0.0.18.md b/java/ql/automodel/src/change-notes/released/0.0.18.md new file mode 100644 index 00000000000..86c60b8abe7 --- /dev/null +++ b/java/ql/automodel/src/change-notes/released/0.0.18.md @@ -0,0 +1,3 @@ +## 0.0.18 + +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 cbc3d3cd493..a0d2bc59d97 100644 --- a/java/ql/automodel/src/codeql-pack.release.yml +++ b/java/ql/automodel/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.17 +lastReleaseVersion: 0.0.18 diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 8064163f5cc..1474661900b 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: 0.0.18-dev +version: 0.0.18 groups: - java - automodel diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 2a02ccee6ab..e251800c763 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.11 + +No user-facing changes. + ## 0.8.10 ### Minor Analysis Improvements diff --git a/java/ql/lib/change-notes/released/0.8.11.md b/java/ql/lib/change-notes/released/0.8.11.md new file mode 100644 index 00000000000..6f504c5c207 --- /dev/null +++ b/java/ql/lib/change-notes/released/0.8.11.md @@ -0,0 +1,3 @@ +## 0.8.11 + +No user-facing changes. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 0521f0f75fa..7b42a9d984c 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.11 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index ed83a620d20..96df63ac9cf 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.11-dev +version: 0.8.11 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index c61275f5ed8..92ca11112bc 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.11 + +No user-facing changes. + ## 0.8.10 ### New Queries diff --git a/java/ql/src/change-notes/released/0.8.11.md b/java/ql/src/change-notes/released/0.8.11.md new file mode 100644 index 00000000000..6f504c5c207 --- /dev/null +++ b/java/ql/src/change-notes/released/0.8.11.md @@ -0,0 +1,3 @@ +## 0.8.11 + +No user-facing changes. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 0521f0f75fa..7b42a9d984c 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.11 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index d7612d9da67..fcd7096e6ba 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.11-dev +version: 0.8.11 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index d5edcc00513..ae256e58d6d 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.11 + +No user-facing changes. + ## 0.8.10 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/released/0.8.11.md b/javascript/ql/lib/change-notes/released/0.8.11.md new file mode 100644 index 00000000000..6f504c5c207 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/0.8.11.md @@ -0,0 +1,3 @@ +## 0.8.11 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 0521f0f75fa..7b42a9d984c 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.11 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 30fa7de4198..51c8eb875b0 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.11-dev +version: 0.8.11 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index b9627cac5ee..6d837e84747 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.11 + +No user-facing changes. + ## 0.8.10 No user-facing changes. diff --git a/javascript/ql/src/change-notes/released/0.8.11.md b/javascript/ql/src/change-notes/released/0.8.11.md new file mode 100644 index 00000000000..6f504c5c207 --- /dev/null +++ b/javascript/ql/src/change-notes/released/0.8.11.md @@ -0,0 +1,3 @@ +## 0.8.11 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 0521f0f75fa..7b42a9d984c 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.11 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 01a3e8a0841..9ef42d7ca97 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.11-dev +version: 0.8.11 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 1c4455b66c4..db0ccde436e 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.11 + +No user-facing changes. + ## 0.7.10 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/0.7.11.md b/misc/suite-helpers/change-notes/released/0.7.11.md new file mode 100644 index 00000000000..c4d7e2d3775 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/0.7.11.md @@ -0,0 +1,3 @@ +## 0.7.11 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 67518567297..2610ac0272d 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.7.10 +lastReleaseVersion: 0.7.11 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 5d8225b2e0b..0991ba88415 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.11-dev +version: 0.7.11 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index f095607ca1b..50a541a2ca2 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.11.11 + +No user-facing changes. + ## 0.11.10 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/released/0.11.11.md b/python/ql/lib/change-notes/released/0.11.11.md new file mode 100644 index 00000000000..d4837264b86 --- /dev/null +++ b/python/ql/lib/change-notes/released/0.11.11.md @@ -0,0 +1,3 @@ +## 0.11.11 + +No user-facing changes. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index ddddcbe9193..14dd5ba832d 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.11.10 +lastReleaseVersion: 0.11.11 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index daab6a41206..2c8625b915b 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.11-dev +version: 0.11.11 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index d4245aba7a6..ff258db317a 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.9.11 + +No user-facing changes. + ## 0.9.10 ### New Queries diff --git a/python/ql/src/change-notes/released/0.9.11.md b/python/ql/src/change-notes/released/0.9.11.md new file mode 100644 index 00000000000..5f0f5649db6 --- /dev/null +++ b/python/ql/src/change-notes/released/0.9.11.md @@ -0,0 +1,3 @@ +## 0.9.11 + +No user-facing changes. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index d086ed69541..47eb8b55bab 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.9.10 +lastReleaseVersion: 0.9.11 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 5b641a329cb..d3cfcb60986 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.11-dev +version: 0.9.11 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index c61a12e0f4a..1e0b5dda19a 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.11 + +No user-facing changes. + ## 0.8.10 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/released/0.8.11.md b/ruby/ql/lib/change-notes/released/0.8.11.md new file mode 100644 index 00000000000..6f504c5c207 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/0.8.11.md @@ -0,0 +1,3 @@ +## 0.8.11 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 0521f0f75fa..7b42a9d984c 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.11 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 81695d545ec..018d918d6c0 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.11-dev +version: 0.8.11 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index f875b6d16ad..63f443e0940 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.11 + +No user-facing changes. + ## 0.8.10 ### Minor Analysis Improvements diff --git a/ruby/ql/src/change-notes/released/0.8.11.md b/ruby/ql/src/change-notes/released/0.8.11.md new file mode 100644 index 00000000000..6f504c5c207 --- /dev/null +++ b/ruby/ql/src/change-notes/released/0.8.11.md @@ -0,0 +1,3 @@ +## 0.8.11 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 0521f0f75fa..7b42a9d984c 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.10 +lastReleaseVersion: 0.8.11 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 65e81bf2ba2..c35460534fa 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.11-dev +version: 0.8.11 groups: - ruby - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index 75f2ca53f98..2e17ef5b94b 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.11 + +No user-facing changes. + ## 0.1.10 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/0.1.11.md b/shared/controlflow/change-notes/released/0.1.11.md new file mode 100644 index 00000000000..ab62c1ac1b3 --- /dev/null +++ b/shared/controlflow/change-notes/released/0.1.11.md @@ -0,0 +1,3 @@ +## 0.1.11 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 30f5ca88be0..1d1688e8d61 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.10 +lastReleaseVersion: 0.1.11 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 19c95747294..fdcf8a31fe1 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.11-dev +version: 0.1.11 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index ef80788bded..4316eb992b2 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.2 + +No user-facing changes. + ## 0.2.1 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/0.2.2.md b/shared/dataflow/change-notes/released/0.2.2.md new file mode 100644 index 00000000000..98e69fd0772 --- /dev/null +++ b/shared/dataflow/change-notes/released/0.2.2.md @@ -0,0 +1,3 @@ +## 0.2.2 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index df29a726bcc..16a06790aa8 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.1 +lastReleaseVersion: 0.2.2 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 4e896e9ae02..2cf6bf8d514 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.2.2-dev +version: 0.2.2 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 4730366775e..7a88a0fb736 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/shared/mad/change-notes/released/0.2.11.md b/shared/mad/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/shared/mad/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index e3d2ccaf748..0306a9ad612 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.11-dev +version: 0.2.11 groups: shared library: true dependencies: null diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 9943dcb7972..55a88fdbb24 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.10 + +No user-facing changes. + ## 0.0.9 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/0.0.10.md b/shared/rangeanalysis/change-notes/released/0.0.10.md new file mode 100644 index 00000000000..22391080fd4 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/0.0.10.md @@ -0,0 +1,3 @@ +## 0.0.10 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index ecdd64fbab8..b740014e5ae 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.10 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 6a528c17637..319e95f260d 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 0.0.10-dev +version: 0.0.10 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index c05869c153d..fa6faba3823 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/shared/regex/change-notes/released/0.2.11.md b/shared/regex/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/shared/regex/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 8717c5b8a73..9c8e8df3c77 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.11-dev +version: 0.2.11 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index a9161ff578b..0eebd3bf43d 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/shared/ssa/change-notes/released/0.2.11.md b/shared/ssa/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/shared/ssa/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 656662e9061..1873962984d 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.11-dev +version: 0.2.11 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index a59e560c415..1857b399fe8 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.10 + +No user-facing changes. + ## 0.0.9 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/0.0.10.md b/shared/threat-models/change-notes/released/0.0.10.md new file mode 100644 index 00000000000..22391080fd4 --- /dev/null +++ b/shared/threat-models/change-notes/released/0.0.10.md @@ -0,0 +1,3 @@ +## 0.0.10 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index ecdd64fbab8..b740014e5ae 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.9 +lastReleaseVersion: 0.0.10 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index ece8f74f701..8faa7db3528 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 0.0.10-dev +version: 0.0.10 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 560ad058d5b..12452c35536 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/0.2.11.md b/shared/tutorial/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/shared/tutorial/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index b1f2b729a85..579363af41d 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: 0.2.11-dev +version: 0.2.11 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 350f9ecbeae..557f6b217b8 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/0.2.11.md b/shared/typetracking/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/shared/typetracking/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index efca1702069..77c88045e8c 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.11-dev +version: 0.2.11 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 54b1eaa4d58..4dd505b626f 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/shared/typos/change-notes/released/0.2.11.md b/shared/typos/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/shared/typos/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 76434dcb21c..a59e78ba210 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.11-dev +version: 0.2.11 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 1ca1f71bcbc..9803704f470 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/shared/util/change-notes/released/0.2.11.md b/shared/util/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/shared/util/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index f4d51c896ce..51d3f8cb5e4 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.11-dev +version: 0.2.11 groups: shared library: true dependencies: null diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 9fd5ebc26ab..1beadaccd69 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/shared/yaml/change-notes/released/0.2.11.md b/shared/yaml/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/shared/yaml/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index a71167814cb..2ee635b9937 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.11 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 41f2bc851fd..d00796a1abd 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.11-dev +version: 0.2.11 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index 8f14bfcedc9..309087eeb32 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.11 + +No user-facing changes. + ## 0.3.10 ### Bug Fixes diff --git a/swift/ql/lib/change-notes/released/0.3.11.md b/swift/ql/lib/change-notes/released/0.3.11.md new file mode 100644 index 00000000000..10d35144a4a --- /dev/null +++ b/swift/ql/lib/change-notes/released/0.3.11.md @@ -0,0 +1,3 @@ +## 0.3.11 + +No user-facing changes. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 76ca0ac8ba7..2b6348cc81c 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.10 +lastReleaseVersion: 0.3.11 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 673004b5172..e9f1faf0fa6 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.11-dev +version: 0.3.11 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index bda9834c9bc..33f843bec1c 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.11 + +No user-facing changes. + ## 0.3.10 No user-facing changes. diff --git a/swift/ql/src/change-notes/released/0.3.11.md b/swift/ql/src/change-notes/released/0.3.11.md new file mode 100644 index 00000000000..10d35144a4a --- /dev/null +++ b/swift/ql/src/change-notes/released/0.3.11.md @@ -0,0 +1,3 @@ +## 0.3.11 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 76ca0ac8ba7..2b6348cc81c 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.3.10 +lastReleaseVersion: 0.3.11 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 11192f11d8b..db7094837ad 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.11-dev +version: 0.3.11 groups: - swift - queries From 0be329dbdccc742fbd40317c4cf20c612faa37c6 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 10:33:40 +0000 Subject: [PATCH 202/309] C++: Delete duplicated code. --- cpp/ql/test/library-tests/ir/ir/ir.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index eb31d8cc070..492f8c71c11 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -2378,18 +2378,4 @@ namespace return_routine_type { } - -using size_t = decltype(sizeof(0)); - -template<class T> -struct remove_const { typedef T type; }; - -template<class T> -struct remove_const<const T> { typedef T type; }; - -// `remove_const_t<T>` removes any `const` specifier from `T` -template<class T> -using remove_const_t = typename remove_const<T>::type; - - // semmle-extractor-options: -std=c++20 --clang From 7fb05f4a762e2d1d2844096fc90911a376f9ee6e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <owen-mc@github.com> Date: Mon, 18 Mar 2024 11:17:55 +0000 Subject: [PATCH 203/309] Fix duplicate "df-" in "df-df-manual" --- java/ql/lib/ext/javax.crypto.model.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/ext/javax.crypto.model.yml b/java/ql/lib/ext/javax.crypto.model.yml index ecd44af5b56..2b3bfc1abe8 100644 --- a/java/ql/lib/ext/javax.crypto.model.yml +++ b/java/ql/lib/ext/javax.crypto.model.yml @@ -24,5 +24,5 @@ extensions: - ["javax.crypto", "Cipher", "update", "", "summary", "df-manual"] - ["javax.crypto", "Cipher", "updateAAD", "", "summary", "df-manual"] - ["javax.crypto", "Cipher", "wrap", "", "summary", "df-manual"] - - ["javax.crypto", "Mac", "init", "(Key)", "summary", "df-df-manual"] - - ["javax.crypto", "Mac", "doFinal", "()", "summary", "df-df-manual"] + - ["javax.crypto", "Mac", "init", "(Key)", "summary", "df-manual"] + - ["javax.crypto", "Mac", "doFinal", "()", "summary", "df-manual"] From 457d71d7bce302ae546a2d3465601f0c92c544c0 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 12:01:44 +0000 Subject: [PATCH 204/309] Update cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- .../Security/CWE/CWE-416/IteratorToExpiredContainer.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql index 4c165d197eb..ee4c1584e5c 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql @@ -74,7 +74,7 @@ predicate isSinkImpl(DataFlow::Node sink, FunctionCall fc) { } /** - * Flow from any destroyed object to the qualifier of a `begin` call + * Flow from any destroyed object to the qualifier of a `begin` or `end` call */ module DestroyedToBeginConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source = getADestroyedNode() } From 7b6accd33ab65117ae877cbf425d2c441e6ca15c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 12:01:51 +0000 Subject: [PATCH 205/309] Update cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- .../Security/CWE/CWE-416/IteratorToExpiredContainer.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql index ee4c1584e5c..cf3a22792fe 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql @@ -1,6 +1,6 @@ /** * @name Iterator to expired container - * @description Using an iterator owned by a container whose lifetimes has expired may lead to unexpected behavior. + * @description Using an iterator owned by a container whose lifetime has expired may lead to unexpected behavior. * @kind problem * @precision high * @id cpp/iterator-to-expired-container From f9309cec0b015ea25f5e118904934a7af07f4e1e Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen <rasmuswl@github.com> Date: Tue, 12 Mar 2024 13:29:34 +0100 Subject: [PATCH 206/309] JS: Add tests before #15823 changes --- .../classes/VerifyAssertions.expected | 4 +++ .../ql/test/ApiGraphs/classes/classes.js | 21 +++++++++++++++ .../TypeTracking/TypeTracking.expected | 3 +++ .../TypeTracking/implicit-receiver.js | 27 +++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 javascript/ql/test/library-tests/TypeTracking/implicit-receiver.js diff --git a/javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected b/javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected index e69de29bb2d..03f159832fb 100644 --- a/javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected +++ b/javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected @@ -0,0 +1,4 @@ +| classes.js:31:28:31:122 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("MyThirdStream") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). | +| classes.js:33:37:33:131 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("MyThirdStream") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). | +| classes.js:40:28:40:112 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("bar") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). | +| classes.js:45:26:45:110 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("bar") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). | diff --git a/javascript/ql/test/ApiGraphs/classes/classes.js b/javascript/ql/test/ApiGraphs/classes/classes.js index f4eb7023262..29e7d223247 100644 --- a/javascript/ql/test/ApiGraphs/classes/classes.js +++ b/javascript/ql/test/ApiGraphs/classes/classes.js @@ -25,3 +25,24 @@ MyOtherStream.prototype.instanceProp = 1; /* def=moduleImport("classes").getMemb MyOtherStream.classProp = 1; /* def=moduleImport("classes").getMember("exports").getMember("MyOtherStream").getMember("classProp") */ module.exports.MyOtherStream = MyOtherStream; + + +// function-style class without .prototype reference +function MyThirdStream() { /* use=moduleImport("classes").getMember("exports").getMember("MyThirdStream").getInstance() */ +} +let instance = new MyThirdStream(); /* use=moduleImport("classes").getMember("exports").getMember("MyThirdStream").getInstance() */ + +module.exports.MyThirdStream = MyThirdStream; + + +// function-style class without .prototype reference (through global variable) +(function(f) { + foo.bar = function() { /* use=moduleImport("classes").getMember("exports").getMember("bar").getInstance() */ + } +})(foo = foo || {}); + +(function(f) { + let x = new f.bar(); /* use=moduleImport("classes").getMember("exports").getMember("bar").getInstance() */ +})(foo = foo || {}); + +module.exports.bar = foo.bar; diff --git a/javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected b/javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected index e69de29bb2d..4ae2de157b3 100644 --- a/javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected +++ b/javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected @@ -0,0 +1,3 @@ +| implicit-receiver.js:8:22:8:52 | // trac ... ver-obj | Failed to track implicit-receiver-obj here. | +| implicit-receiver.js:9:24:9:84 | // trac ... er-prop | Failed to track implicit-receiver-obj here. | +| implicit-receiver.js:9:24:9:84 | // trac ... er-prop | Failed to track implicit-receiver-prop here. | diff --git a/javascript/ql/test/library-tests/TypeTracking/implicit-receiver.js b/javascript/ql/test/library-tests/TypeTracking/implicit-receiver.js new file mode 100644 index 00000000000..447a3eb0e05 --- /dev/null +++ b/javascript/ql/test/library-tests/TypeTracking/implicit-receiver.js @@ -0,0 +1,27 @@ +import 'dummy'; + +let trackedProp = "implicit-receiver-prop"; // name: implicit-receiver-prop + +function factory() { + let obj = unknown(); // name: implicit-receiver-obj + obj.foo = function() { + track(this); // track: implicit-receiver-obj + track(this.x); // track: implicit-receiver-obj track: implicit-receiver-prop + } + return obj; +} +let obj = factory(); +obj.x = trackedProp; + + +function factory2() { + let obj2 = { // name: implicit-receiver-obj2 + foo: function() { + track(this); // track: implicit-receiver-obj2 + track(this.x); // track: implicit-receiver-obj2 track: implicit-receiver-prop + } + } + return obj2; +} +let obj2 = factory2() +obj2.x = trackedProp; From c82f5dad567e2bb5cb10e7ed784bb690fe3b96d6 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen <rasmuswl@github.com> Date: Tue, 12 Mar 2024 13:36:44 +0100 Subject: [PATCH 207/309] JS: show test changes after #15823 --- .../ql/test/ApiGraphs/classes/VerifyAssertions.expected | 4 ---- .../ql/test/library-tests/TypeTracking/TypeTracking.expected | 4 +--- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected b/javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected index 03f159832fb..e69de29bb2d 100644 --- a/javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected +++ b/javascript/ql/test/ApiGraphs/classes/VerifyAssertions.expected @@ -1,4 +0,0 @@ -| classes.js:31:28:31:122 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("MyThirdStream") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). | -| classes.js:33:37:33:131 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("MyThirdStream") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). | -| classes.js:40:28:40:112 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("bar") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). | -| classes.js:45:26:45:110 | /* use= ... ce() */ | def moduleImport("classes").getMember("exports").getMember("bar") has no outgoing edge labelled getInstance(); it does have outgoing edges labelled getReceiver(). | diff --git a/javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected b/javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected index 4ae2de157b3..8b137891791 100644 --- a/javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected +++ b/javascript/ql/test/library-tests/TypeTracking/TypeTracking.expected @@ -1,3 +1 @@ -| implicit-receiver.js:8:22:8:52 | // trac ... ver-obj | Failed to track implicit-receiver-obj here. | -| implicit-receiver.js:9:24:9:84 | // trac ... er-prop | Failed to track implicit-receiver-obj here. | -| implicit-receiver.js:9:24:9:84 | // trac ... er-prop | Failed to track implicit-receiver-prop here. | + From aebe9f69924daa58f95d8bfab60db60284f28a83 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <github-actions@github.com> Date: Mon, 18 Mar 2024 12:16:26 +0000 Subject: [PATCH 208/309] Post-release preparation for codeql-cli-2.16.5 --- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/automodel/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 483b049138c..022cb22884e 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.12.8 +version: 0.12.9-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 87141610f67..cc8476c89d3 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.9.7 +version: 0.9.8-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index d0b814fe5eb..31c4092b33f 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.11 +version: 1.7.12-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 864328b2a5b..dcb2674a19a 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.11 +version: 1.7.12-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index d202160b8fc..61dbd30243f 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.8.11 +version: 0.8.12-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 601609991c9..da169055d99 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.8.11 +version: 0.8.12-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 32b42f72d6d..b6675cca9e1 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: 0.0.10 +version: 0.0.11-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index a0ec22b27af..fd6f38cd186 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.7.11 +version: 0.7.12-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index c8852c0e76d..737d9e1b542 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.7.11 +version: 0.7.12-dev groups: - go - queries diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index 1474661900b..b9bef7e98a0 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: 0.0.18 +version: 0.0.19-dev groups: - java - automodel diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 96df63ac9cf..83e354a218f 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.8.11 +version: 0.8.12-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index fcd7096e6ba..cf5953276b8 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.8.11 +version: 0.8.12-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 51c8eb875b0..6c7d9df15d5 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.8.11 +version: 0.8.12-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 9ef42d7ca97..7a62520f88e 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.8.11 +version: 0.8.12-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 0991ba88415..b6d9a96049c 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 0.7.11 +version: 0.7.12-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 2c8625b915b..2b5cb00e405 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.11.11 +version: 0.11.12-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index d3cfcb60986..49eae617df8 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.9.11 +version: 0.9.12-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 018d918d6c0..5b1b4a67b00 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.8.11 +version: 0.8.12-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index c35460534fa..2ffba7618dd 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.8.11 +version: 0.8.12-dev groups: - ruby - queries diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index fdcf8a31fe1..597af60b98f 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 0.1.11 +version: 0.1.12-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 2cf6bf8d514..aef3dfc8523 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 0.2.2 +version: 0.2.3-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 0306a9ad612..fb7384339de 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 0.2.11 +version: 0.2.12-dev groups: shared library: true dependencies: null diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 319e95f260d..671da30468e 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 0.0.10 +version: 0.0.11-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 9c8e8df3c77..4170b61806c 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.2.11 +version: 0.2.12-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 1873962984d..3cb919af401 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 0.2.11 +version: 0.2.12-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 8faa7db3528..d7e68330f51 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 0.0.10 +version: 0.0.11-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 579363af41d..0e0c8fc0d16 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: 0.2.11 +version: 0.2.12-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 77c88045e8c..b11e2cee9e4 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.2.11 +version: 0.2.12-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index a59e78ba210..7643692f482 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 0.2.11 +version: 0.2.12-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 51d3f8cb5e4..d2539564290 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.2.11 +version: 0.2.12-dev groups: shared library: true dependencies: null diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index d00796a1abd..4c6e0680ff2 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 0.2.11 +version: 0.2.12-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index e9f1faf0fa6..08e0434fbe6 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 0.3.11 +version: 0.3.12-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index db7094837ad..a4cdbfe7cc1 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 0.3.11 +version: 0.3.12-dev groups: - swift - queries From d83500de5d1d6af3b731e3516bd30247310944d4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Mon, 18 Mar 2024 14:24:07 +0100 Subject: [PATCH 209/309] Address review comments --- .../dataflow/codeql/dataflow/internal/DataFlowImpl.qll | 4 ++++ .../codeql/dataflow/internal/DataFlowImplCommon.qll | 10 ---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 1db7a258181..86546375798 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -3932,6 +3932,8 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> { override predicate isSource() { none() } override string toString() { result = sourceGroup } + + override Location getLocation() { result.hasLocationInfo("", 0, 0, 0, 0) } } private class PathNodeSinkGroup extends PathNodeImpl, TPathNodeSinkGroup { @@ -3948,6 +3950,8 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> { override predicate isSource() { none() } override string toString() { result = sinkGroup } + + override Location getLocation() { result.hasLocationInfo("", 0, 0, 0, 0) } } private predicate pathNode( diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index 1caf76de7bc..e83752fcced 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -1650,8 +1650,6 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> { */ class CastingNode extends NodeFinal { CastingNode() { castingNode(this) } - - string toString() { result = super.toString() } } private predicate readStepWithTypes( @@ -1800,8 +1798,6 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> { class ParamNode extends NodeFinal { ParamNode() { parameterNode(this, _, _) } - string toString() { result = super.toString() } - /** * Holds if this node is the parameter of callable `c` at the specified * position. @@ -1815,8 +1811,6 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> { class ArgNode extends NodeFinal { ArgNode() { argumentNode(this, _, _) } - string toString() { result = super.toString() } - /** Holds if this argument occurs at the given position in the given call. */ final predicate argumentOf(DataFlowCall call, ArgumentPosition pos) { argumentNode(this, call, pos) @@ -1830,8 +1824,6 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> { class ReturnNodeExt extends NodeFinal { ReturnNodeExt() { returnNodeExt(this, _) } - string toString() { result = super.toString() } - /** Gets the kind of this returned value. */ ReturnKindExt getKind() { returnNodeExt(this, result) } } @@ -1842,8 +1834,6 @@ module MakeImplCommon<LocationSig Location, InputSig<Location> Lang> { */ class OutNodeExt extends NodeFinal { OutNodeExt() { outNodeExt(this) } - - string toString() { result = super.toString() } } /** From 1af81673543e87b2ce7492d776fd0b0f40d9ded8 Mon Sep 17 00:00:00 2001 From: Sim4n6 <sim4n6@gmail.com> Date: Mon, 18 Mar 2024 13:26:20 +0000 Subject: [PATCH 210/309] updated the .expected file --- .../Security/CWE-770/UnicodeDoS.expected | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected b/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected index 415b94973a5..f98487ba7da 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-770/UnicodeDoS.expected @@ -1,35 +1,35 @@ edges -| tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:1:35:1:41 | ControlFlowNode for request | -| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:12:17:12:23 | ControlFlowNode for request | -| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:24:9:24:15 | ControlFlowNode for request | -| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:36:9:36:15 | ControlFlowNode for request | -| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:48:9:48:15 | ControlFlowNode for request | -| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:60:9:60:15 | ControlFlowNode for request | -| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:72:9:72:15 | ControlFlowNode for request | -| tests.py:12:5:12:13 | ControlFlowNode for file_path | tests.py:16:39:16:47 | ControlFlowNode for file_path | -| tests.py:12:17:12:23 | ControlFlowNode for request | tests.py:12:17:12:28 | ControlFlowNode for Attribute | -| tests.py:12:17:12:28 | ControlFlowNode for Attribute | tests.py:12:17:12:49 | ControlFlowNode for Attribute() | -| tests.py:12:17:12:49 | ControlFlowNode for Attribute() | tests.py:12:5:12:13 | ControlFlowNode for file_path | -| tests.py:24:5:24:5 | ControlFlowNode for r | tests.py:28:43:28:43 | ControlFlowNode for r | -| tests.py:24:9:24:15 | ControlFlowNode for request | tests.py:24:9:24:20 | ControlFlowNode for Attribute | -| tests.py:24:9:24:20 | ControlFlowNode for Attribute | tests.py:24:9:24:33 | ControlFlowNode for Attribute() | -| tests.py:24:9:24:33 | ControlFlowNode for Attribute() | tests.py:24:5:24:5 | ControlFlowNode for r | -| tests.py:36:5:36:5 | ControlFlowNode for r | tests.py:40:43:40:43 | ControlFlowNode for r | -| tests.py:36:9:36:15 | ControlFlowNode for request | tests.py:36:9:36:20 | ControlFlowNode for Attribute | -| tests.py:36:9:36:20 | ControlFlowNode for Attribute | tests.py:36:9:36:33 | ControlFlowNode for Attribute() | -| tests.py:36:9:36:33 | ControlFlowNode for Attribute() | tests.py:36:5:36:5 | ControlFlowNode for r | -| tests.py:48:5:48:5 | ControlFlowNode for r | tests.py:52:43:52:43 | ControlFlowNode for r | -| tests.py:48:9:48:15 | ControlFlowNode for request | tests.py:48:9:48:20 | ControlFlowNode for Attribute | -| tests.py:48:9:48:20 | ControlFlowNode for Attribute | tests.py:48:9:48:33 | ControlFlowNode for Attribute() | -| tests.py:48:9:48:33 | ControlFlowNode for Attribute() | tests.py:48:5:48:5 | ControlFlowNode for r | -| tests.py:60:5:60:5 | ControlFlowNode for r | tests.py:64:43:64:43 | ControlFlowNode for r | -| tests.py:60:9:60:15 | ControlFlowNode for request | tests.py:60:9:60:20 | ControlFlowNode for Attribute | -| tests.py:60:9:60:20 | ControlFlowNode for Attribute | tests.py:60:9:60:33 | ControlFlowNode for Attribute() | -| tests.py:60:9:60:33 | ControlFlowNode for Attribute() | tests.py:60:5:60:5 | ControlFlowNode for r | -| tests.py:72:5:72:5 | ControlFlowNode for r | tests.py:76:43:76:43 | ControlFlowNode for r | -| tests.py:72:9:72:15 | ControlFlowNode for request | tests.py:72:9:72:20 | ControlFlowNode for Attribute | -| tests.py:72:9:72:20 | ControlFlowNode for Attribute | tests.py:72:9:72:33 | ControlFlowNode for Attribute() | -| tests.py:72:9:72:33 | ControlFlowNode for Attribute() | tests.py:72:5:72:5 | ControlFlowNode for r | +| tests.py:1:35:1:41 | ControlFlowNode for ImportMember | tests.py:1:35:1:41 | ControlFlowNode for request | provenance | | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:12:17:12:23 | ControlFlowNode for request | provenance | | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:24:9:24:15 | ControlFlowNode for request | provenance | | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:36:9:36:15 | ControlFlowNode for request | provenance | | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:48:9:48:15 | ControlFlowNode for request | provenance | | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:60:9:60:15 | ControlFlowNode for request | provenance | | +| tests.py:1:35:1:41 | ControlFlowNode for request | tests.py:72:9:72:15 | ControlFlowNode for request | provenance | | +| tests.py:12:5:12:13 | ControlFlowNode for file_path | tests.py:16:39:16:47 | ControlFlowNode for file_path | provenance | | +| tests.py:12:17:12:23 | ControlFlowNode for request | tests.py:12:17:12:28 | ControlFlowNode for Attribute | provenance | | +| tests.py:12:17:12:28 | ControlFlowNode for Attribute | tests.py:12:17:12:49 | ControlFlowNode for Attribute() | provenance | | +| tests.py:12:17:12:49 | ControlFlowNode for Attribute() | tests.py:12:5:12:13 | ControlFlowNode for file_path | provenance | | +| tests.py:24:5:24:5 | ControlFlowNode for r | tests.py:28:43:28:43 | ControlFlowNode for r | provenance | | +| tests.py:24:9:24:15 | ControlFlowNode for request | tests.py:24:9:24:20 | ControlFlowNode for Attribute | provenance | | +| tests.py:24:9:24:20 | ControlFlowNode for Attribute | tests.py:24:9:24:33 | ControlFlowNode for Attribute() | provenance | | +| tests.py:24:9:24:33 | ControlFlowNode for Attribute() | tests.py:24:5:24:5 | ControlFlowNode for r | provenance | | +| tests.py:36:5:36:5 | ControlFlowNode for r | tests.py:40:43:40:43 | ControlFlowNode for r | provenance | | +| tests.py:36:9:36:15 | ControlFlowNode for request | tests.py:36:9:36:20 | ControlFlowNode for Attribute | provenance | | +| tests.py:36:9:36:20 | ControlFlowNode for Attribute | tests.py:36:9:36:33 | ControlFlowNode for Attribute() | provenance | | +| tests.py:36:9:36:33 | ControlFlowNode for Attribute() | tests.py:36:5:36:5 | ControlFlowNode for r | provenance | | +| tests.py:48:5:48:5 | ControlFlowNode for r | tests.py:52:43:52:43 | ControlFlowNode for r | provenance | | +| tests.py:48:9:48:15 | ControlFlowNode for request | tests.py:48:9:48:20 | ControlFlowNode for Attribute | provenance | | +| tests.py:48:9:48:20 | ControlFlowNode for Attribute | tests.py:48:9:48:33 | ControlFlowNode for Attribute() | provenance | | +| tests.py:48:9:48:33 | ControlFlowNode for Attribute() | tests.py:48:5:48:5 | ControlFlowNode for r | provenance | | +| tests.py:60:5:60:5 | ControlFlowNode for r | tests.py:64:43:64:43 | ControlFlowNode for r | provenance | | +| tests.py:60:9:60:15 | ControlFlowNode for request | tests.py:60:9:60:20 | ControlFlowNode for Attribute | provenance | | +| tests.py:60:9:60:20 | ControlFlowNode for Attribute | tests.py:60:9:60:33 | ControlFlowNode for Attribute() | provenance | | +| tests.py:60:9:60:33 | ControlFlowNode for Attribute() | tests.py:60:5:60:5 | ControlFlowNode for r | provenance | | +| tests.py:72:5:72:5 | ControlFlowNode for r | tests.py:76:43:76:43 | ControlFlowNode for r | provenance | | +| tests.py:72:9:72:15 | ControlFlowNode for request | tests.py:72:9:72:20 | ControlFlowNode for Attribute | provenance | | +| tests.py:72:9:72:20 | ControlFlowNode for Attribute | tests.py:72:9:72:33 | ControlFlowNode for Attribute() | provenance | | +| tests.py:72:9:72:33 | ControlFlowNode for Attribute() | tests.py:72:5:72:5 | ControlFlowNode for r | provenance | | nodes | tests.py:1:35:1:41 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | tests.py:1:35:1:41 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | From d7c9bfa08b45841758f428fd11a5ad4e6bc2baac Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 27 Feb 2024 14:47:16 +0100 Subject: [PATCH 211/309] Data flow: Account for hidden `subpath` wrappers --- .../codeql/dataflow/internal/DataFlowImpl.qll | 89 +++++++++++++++---- 1 file changed, 72 insertions(+), 17 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index e075af108d1..93b4a344b69 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -4308,8 +4308,7 @@ module MakeImpl<InputSig Lang> { pragma[only_bind_into](apout)) and pathIntoCallable(arg, par, _, _, innercc, sc, _) and paramFlowsThrough(kind, pragma[only_bind_into](sout), innercc, sc, - pragma[only_bind_into](t), pragma[only_bind_into](apout), _) and - not arg.isHidden() + pragma[only_bind_into](t), pragma[only_bind_into](apout), _) } /** @@ -4340,9 +4339,8 @@ module MakeImpl<InputSig Lang> { ) } - private PathNodeImpl localStepToHidden(PathNodeImpl n) { + private PathNodeImpl localStep(PathNodeImpl n) { n.getASuccessorImpl() = result and - result.isHidden() and exists(NodeEx n1, NodeEx n2 | n1 = n.getNodeEx() and n2 = result.getNodeEx() | localFlowBigStep(n1, _, n2, _, _, _, _) or storeEx(n1, _, n2, _, _) or @@ -4350,30 +4348,87 @@ module MakeImpl<InputSig Lang> { ) } + private PathNodeImpl summaryCtxStep(PathNodeImpl n) { + n.getASuccessorImpl() = result and + exists(SummaryCtxSome sc | + pathNode(n, _, _, _, pragma[only_bind_into](sc), _, _, _) and + pathNode(result, _, _, _, pragma[only_bind_into](sc), _, _, _) + ) + } + + private PathNodeImpl localStepToHidden(PathNodeImpl n) { + result = localStep(n) and + result.isHidden() + } + + private PathNodeImpl localStepFromHidden(PathNodeImpl n) { + n = localStep(result) and + result.isHidden() + } + pragma[nomagic] private predicate hasSuccessor(PathNodeImpl pred, PathNodeMid succ, NodeEx succNode) { - succ = pred.getANonHiddenSuccessor() and + succ = pred.getASuccessorImpl() and succNode = succ.getNodeEx() } + /** + * Holds if `(arg, par, ret, out)` forms a subpath-tuple. + * + * All of the nodes may be hidden. + */ + pragma[nomagic] + private predicate subpaths04( + PathNodeImpl arg, PathNodeImpl par, PathNodeImpl ret, PathNodeImpl out + ) { + exists( + ParamNodeEx p, NodeEx o, FlowState sout, DataFlowType t, AccessPath apout, + PathNodeMid out0 + | + pragma[only_bind_into](arg).getASuccessorImpl() = pragma[only_bind_into](out0) and + subpaths03(pragma[only_bind_into](arg), p, ret, o, sout, t, apout) and + hasSuccessor(pragma[only_bind_into](arg), par, p) and + pathNode(out0, o, sout, _, _, t, apout, _) + | + out = out0 or out = out0.projectToSink() + ) + } + + /** + * Holds if `(arg, par, ret, out)` forms a subpath-tuple. + * + * `par` and `ret` are not hidden. + */ + pragma[nomagic] + private predicate subpaths05( + PathNodeImpl arg, PathNodeImpl par, PathNodeImpl ret, PathNodeImpl out + ) { + // direct subpath + subpaths04(arg, localStepFromHidden*(par), localStepToHidden*(ret), out) and + not par.isHidden() and + not ret.isHidden() and + ret = summaryCtxStep*(par) + or + // wrapped subpath using hidden nodes, e.g. flow through a callback inside + // a summarized callable + exists(PathNodeImpl par0, PathNodeImpl ret0 | + subpaths05(localStepToHidden*(par0), par, ret, localStepFromHidden*(ret0)) and + subpaths04(arg, par0, ret0, out) + ) + } + /** * Holds if `(arg, par, ret, out)` forms a subpath-tuple, that is, flow through * a subpath between `par` and `ret` with the connecting edges `arg -> par` and * `ret -> out` is summarized as the edge `arg -> out`. + * + * None of the nodes are hidden. */ + pragma[nomagic] predicate subpaths(PathNodeImpl arg, PathNodeImpl par, PathNodeImpl ret, PathNodeImpl out) { - exists( - ParamNodeEx p, NodeEx o, FlowState sout, DataFlowType t, AccessPath apout, - PathNodeMid out0 - | - pragma[only_bind_into](arg).getANonHiddenSuccessor() = pragma[only_bind_into](out0) and - subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, t, apout) and - hasSuccessor(pragma[only_bind_into](arg), par, p) and - not ret.isHidden() and - pathNode(out0, o, sout, _, _, t, apout, _) - | - out = out0 or out = out0.projectToSink() - ) + subpaths05(localStepToHidden*(arg), par, ret, localStepFromHidden*(out)) and + not arg.isHidden() and + not out.isHidden() } /** From e53357d376d8b7fa1a6cc776f73dc383ecd99d1d Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 27 Feb 2024 14:48:15 +0100 Subject: [PATCH 212/309] Update expected test output --- .../external-models/ExternalFlow.expected | 5 +++ .../dataflow/global/DataFlowPath.expected | 45 +++++++++++++++++++ .../global/TaintTrackingPath.expected | 45 +++++++++++++++++++ .../dataflow/summaries/summaries.expected | 15 +++++++ .../dataflow/array-flow/array-flow.expected | 18 ++++++++ .../dataflow/global/Flow.expected | 3 ++ .../dataflow/summaries/Summaries.expected | 12 +++++ 7 files changed, 143 insertions(+) diff --git a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected index c6a600f068a..42bc2666fc1 100644 --- a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected @@ -52,6 +52,8 @@ edges | ExternalFlow.cs:84:17:84:21 | access to local variable objs2 : T[] [element] : Object | ExternalFlow.cs:85:18:85:22 | access to local variable objs2 : T[] [element] : Object | provenance | | | ExternalFlow.cs:84:25:84:41 | call to method Map<Object,Object> : T[] [element] : Object | ExternalFlow.cs:84:17:84:21 | access to local variable objs2 : T[] [element] : Object | provenance | | | ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | ExternalFlow.cs:84:25:84:41 | call to method Map<Object,Object> : T[] [element] : Object | provenance | | +| ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | ExternalFlow.cs:84:35:84:35 | o : Object | provenance | | +| ExternalFlow.cs:84:35:84:35 | o : Object | ExternalFlow.cs:84:40:84:40 | access to parameter o : Object | provenance | | | ExternalFlow.cs:85:18:85:22 | access to local variable objs2 : T[] [element] : Object | ExternalFlow.cs:85:18:85:25 | access to array element | provenance | | | ExternalFlow.cs:90:17:90:17 | access to local variable s : String | ExternalFlow.cs:91:19:91:19 | access to local variable s : String | provenance | | | ExternalFlow.cs:90:21:90:34 | object creation of type String : String | ExternalFlow.cs:90:17:90:17 | access to local variable s : String | provenance | | @@ -154,6 +156,8 @@ nodes | ExternalFlow.cs:84:17:84:21 | access to local variable objs2 : T[] [element] : Object | semmle.label | access to local variable objs2 : T[] [element] : Object | | ExternalFlow.cs:84:25:84:41 | call to method Map<Object,Object> : T[] [element] : Object | semmle.label | call to method Map<Object,Object> : T[] [element] : Object | | ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | semmle.label | access to local variable objs : null [element] : Object | +| ExternalFlow.cs:84:35:84:35 | o : Object | semmle.label | o : Object | +| ExternalFlow.cs:84:40:84:40 | access to parameter o : Object | semmle.label | access to parameter o : Object | | ExternalFlow.cs:85:18:85:22 | access to local variable objs2 : T[] [element] : Object | semmle.label | access to local variable objs2 : T[] [element] : Object | | ExternalFlow.cs:85:18:85:25 | access to array element | semmle.label | access to array element | | ExternalFlow.cs:90:17:90:17 | access to local variable s : String | semmle.label | access to local variable s : String | @@ -201,6 +205,7 @@ nodes | ExternalFlow.cs:263:30:263:30 | access to parameter a : MyInlineArray [element] : Object | semmle.label | access to parameter a : MyInlineArray [element] : Object | | ExternalFlow.cs:264:18:264:18 | access to local variable b | semmle.label | access to local variable b | subpaths +| ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | ExternalFlow.cs:84:35:84:35 | o : Object | ExternalFlow.cs:84:40:84:40 | access to parameter o : Object | ExternalFlow.cs:84:25:84:41 | call to method Map<Object,Object> : T[] [element] : Object | #select | ExternalFlow.cs:10:18:10:33 | call to method StepArgRes | ExternalFlow.cs:9:27:9:38 | object creation of type Object : Object | ExternalFlow.cs:10:18:10:33 | call to method StepArgRes | $@ | ExternalFlow.cs:9:27:9:38 | object creation of type Object : Object | object creation of type Object : Object | | ExternalFlow.cs:18:18:18:24 | access to local variable argOut1 | ExternalFlow.cs:15:29:15:40 | object creation of type Object : Object | ExternalFlow.cs:18:18:18:24 | access to local variable argOut1 | $@ | ExternalFlow.cs:15:29:15:40 | object creation of type Object : Object | object creation of type Object : Object | diff --git a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected index 7ebc9193829..67c1d0553b6 100644 --- a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected @@ -34,12 +34,18 @@ edges | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:170:25:170:31 | access to parameter tainted : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:196:25:196:31 | access to parameter tainted : String | provenance | | | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | Capture.cs:135:15:135:20 | access to local variable sink33 | provenance | | +| Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | Capture.cs:132:22:132:28 | access to parameter tainted : String | provenance | | | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | provenance | | +| Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | Capture.cs:142:26:142:32 | access to parameter tainted : String | provenance | | +| Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | Capture.cs:144:13:144:13 | [post] access to local function M : M [captured sink34] : String | provenance | | | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | Capture.cs:147:15:147:20 | access to local variable sink34 | provenance | | +| Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | provenance | | | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | provenance | | | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | Capture.cs:156:15:156:20 | access to local variable sink35 | provenance | | +| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | provenance | | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | Capture.cs:163:15:163:20 | access to local variable sink36 | provenance | | +| Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:160:20:160:26 | access to parameter tainted : String | provenance | | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | provenance | | | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | Capture.cs:162:13:162:18 | access to local variable sink36 : String | provenance | | | Capture.cs:166:37:166:37 | p : String | Capture.cs:168:22:168:22 | access to parameter p : String | provenance | | @@ -47,6 +53,7 @@ edges | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:166:37:166:37 | p : String | provenance | | | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:170:9:170:23 | [post] access to local function CaptureThrough5 : CaptureThrough5 [captured sink37] : String | provenance | | | Capture.cs:190:26:190:26 | s : String | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | provenance | | +| Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | Capture.cs:192:27:192:27 | access to parameter s : String | provenance | | | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | Capture.cs:193:20:193:22 | call to local function M : String | provenance | | | Capture.cs:196:13:196:18 | access to local variable sink38 : String | Capture.cs:197:15:197:20 | access to local variable sink38 | provenance | | | Capture.cs:196:22:196:32 | call to local function Id : String | Capture.cs:196:13:196:18 | access to local variable sink38 : String | provenance | | @@ -242,14 +249,18 @@ edges | GlobalDataFlow.cs:85:22:85:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | GlobalDataFlow.cs:85:22:85:136 | call to method First<String> : String | provenance | | | GlobalDataFlow.cs:85:22:85:136 | call to method First<String> : String | GlobalDataFlow.cs:85:13:85:18 | access to local variable sink15 : String | provenance | | | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:22:85:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | provenance | | +| GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:118:85:118 | x : String | provenance | | | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | provenance | | | GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:85:118:85:118 | x : String | GlobalDataFlow.cs:85:127:85:127 | access to parameter x : String | provenance | | | GlobalDataFlow.cs:87:13:87:18 | access to local variable sink16 : String | GlobalDataFlow.cs:88:15:88:20 | access to local variable sink16 | provenance | | | GlobalDataFlow.cs:87:22:87:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | GlobalDataFlow.cs:87:22:87:136 | call to method First<String> : String | provenance | | | GlobalDataFlow.cs:87:22:87:136 | call to method First<String> : String | GlobalDataFlow.cs:87:13:87:18 | access to local variable sink16 : String | provenance | | | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:22:87:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | provenance | | +| GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:121:87:121 | y : String | provenance | | | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | provenance | | | GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:87:121:87:121 | y : String | GlobalDataFlow.cs:87:127:87:127 | access to parameter y : String | provenance | | | GlobalDataFlow.cs:138:40:138:40 | x : String | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | provenance | | | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc<String,String> : String | provenance | | | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | provenance | | @@ -287,7 +298,9 @@ edges | GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | provenance | | | GlobalDataFlow.cs:211:46:211:59 | "taint source" : String | GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | provenance | | | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:58:214:68 | access to parameter sinkParam10 | provenance | | +| GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:79:214:89 | access to parameter sinkParam10 : String | provenance | | | GlobalDataFlow.cs:215:71:215:71 | x : String | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:215:76:215:90 | call to method ReturnCheck2<String> : String | provenance | | | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | provenance | | | GlobalDataFlow.cs:216:13:216:18 | access to local variable sink24 : String | GlobalDataFlow.cs:217:15:217:20 | access to local variable sink24 | provenance | | | GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable<T> [element] : String | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | provenance | | @@ -332,8 +345,11 @@ edges | GlobalDataFlow.cs:304:32:304:32 | x : String | GlobalDataFlow.cs:306:9:306:9 | access to parameter y : String | provenance | | | GlobalDataFlow.cs:310:32:310:32 | x : String | GlobalDataFlow.cs:312:9:312:9 | access to parameter y : String | provenance | | | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:317:15:317:24 | access to parameter sinkParam8 | provenance | | +| GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:318:16:318:25 | access to parameter sinkParam8 : String | provenance | | | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:323:15:323:24 | access to parameter sinkParam9 | provenance | | +| GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:324:16:324:25 | access to parameter sinkParam9 : String | provenance | | | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 | provenance | | +| GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:330:16:330:26 | access to parameter sinkParam11 : String | provenance | | | GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | provenance | | | GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy<String> : Lazy<T> [property Value] : String | provenance | | | GlobalDataFlow.cs:346:9:346:9 | access to parameter x : String | GlobalDataFlow.cs:160:20:160:24 | access to local variable sink7 : String | provenance | | @@ -500,15 +516,21 @@ nodes | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | semmle.label | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | | Capture.cs:124:15:124:20 | access to local variable sink40 | semmle.label | access to local variable sink40 | | Capture.cs:127:25:127:31 | tainted : String | semmle.label | tainted : String | +| Capture.cs:132:22:132:28 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | semmle.label | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | semmle.label | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | | Capture.cs:135:15:135:20 | access to local variable sink33 | semmle.label | access to local variable sink33 | +| Capture.cs:142:26:142:32 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | +| Capture.cs:144:13:144:13 | [post] access to local function M : M [captured sink34] : String | semmle.label | [post] access to local function M : M [captured sink34] : String | +| Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | semmle.label | access to local function M : M [captured tainted] : String | | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | semmle.label | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | semmle.label | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | | Capture.cs:147:15:147:20 | access to local variable sink34 | semmle.label | access to local variable sink34 | +| Capture.cs:152:22:152:28 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | semmle.label | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | semmle.label | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | | Capture.cs:156:15:156:20 | access to local variable sink35 | semmle.label | access to local variable sink35 | +| Capture.cs:160:20:160:26 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | semmle.label | access to local variable sink36 : String | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | semmle.label | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | semmle.label | call to local function CaptureThrough4 : String | @@ -519,6 +541,7 @@ nodes | Capture.cs:170:25:170:31 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:171:15:171:20 | access to local variable sink37 | semmle.label | access to local variable sink37 | | Capture.cs:190:26:190:26 | s : String | semmle.label | s : String | +| Capture.cs:192:27:192:27 | access to parameter s : String | semmle.label | access to parameter s : String | | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | semmle.label | access to local function M : M [captured s] : String | | Capture.cs:193:20:193:22 | call to local function M : String | semmle.label | call to local function M : String | | Capture.cs:196:13:196:18 | access to local variable sink38 : String | semmle.label | access to local variable sink38 : String | @@ -658,6 +681,8 @@ nodes | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | semmle.label | (...) ... : null [element] : String | | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | semmle.label | { ..., ... } : null [element] : String | | GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | semmle.label | access to local variable sink14 : String | +| GlobalDataFlow.cs:85:118:85:118 | x : String | semmle.label | x : String | +| GlobalDataFlow.cs:85:127:85:127 | access to parameter x : String | semmle.label | access to parameter x : String | | GlobalDataFlow.cs:86:15:86:20 | access to local variable sink15 | semmle.label | access to local variable sink15 | | GlobalDataFlow.cs:87:13:87:18 | access to local variable sink16 : String | semmle.label | access to local variable sink16 : String | | GlobalDataFlow.cs:87:22:87:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | semmle.label | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | @@ -665,6 +690,8 @@ nodes | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | semmle.label | (...) ... : null [element] : String | | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | semmle.label | { ..., ... } : null [element] : String | | GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | semmle.label | access to local variable sink15 : String | +| GlobalDataFlow.cs:87:121:87:121 | y : String | semmle.label | y : String | +| GlobalDataFlow.cs:87:127:87:127 | access to parameter y : String | semmle.label | access to parameter y : String | | GlobalDataFlow.cs:88:15:88:20 | access to local variable sink16 | semmle.label | access to local variable sink16 | | GlobalDataFlow.cs:138:40:138:40 | x : String | semmle.label | x : String | | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc<String,String> : String | semmle.label | call to method ApplyFunc<String,String> : String | @@ -709,7 +736,9 @@ nodes | GlobalDataFlow.cs:211:46:211:59 | "taint source" : String | semmle.label | "taint source" : String | | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | semmle.label | sinkParam10 : String | | GlobalDataFlow.cs:214:58:214:68 | access to parameter sinkParam10 | semmle.label | access to parameter sinkParam10 | +| GlobalDataFlow.cs:214:79:214:89 | access to parameter sinkParam10 : String | semmle.label | access to parameter sinkParam10 : String | | GlobalDataFlow.cs:215:71:215:71 | x : String | semmle.label | x : String | +| GlobalDataFlow.cs:215:76:215:90 | call to method ReturnCheck2<String> : String | semmle.label | call to method ReturnCheck2<String> : String | | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | semmle.label | access to parameter x : String | | GlobalDataFlow.cs:216:13:216:18 | access to local variable sink24 : String | semmle.label | access to local variable sink24 : String | | GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable<T> [element] : String | semmle.label | access to local variable tainted : IQueryable<T> [element] : String | @@ -765,10 +794,13 @@ nodes | GlobalDataFlow.cs:312:9:312:9 | access to parameter y : String | semmle.label | access to parameter y : String | | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | semmle.label | sinkParam8 : String | | GlobalDataFlow.cs:317:15:317:24 | access to parameter sinkParam8 | semmle.label | access to parameter sinkParam8 | +| GlobalDataFlow.cs:318:16:318:25 | access to parameter sinkParam8 : String | semmle.label | access to parameter sinkParam8 : String | | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | semmle.label | sinkParam9 : String | | GlobalDataFlow.cs:323:15:323:24 | access to parameter sinkParam9 | semmle.label | access to parameter sinkParam9 | +| GlobalDataFlow.cs:324:16:324:25 | access to parameter sinkParam9 : String | semmle.label | access to parameter sinkParam9 : String | | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | semmle.label | sinkParam11 : String | | GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 | semmle.label | access to parameter sinkParam11 | +| GlobalDataFlow.cs:330:16:330:26 | access to parameter sinkParam11 : String | semmle.label | access to parameter sinkParam11 : String | | GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | semmle.label | "taint source" : String | | GlobalDataFlow.cs:346:9:346:9 | access to parameter x : String | semmle.label | access to parameter x : String | | GlobalDataFlow.cs:346:13:346:26 | "taint source" : String | semmle.label | "taint source" : String | @@ -903,7 +935,13 @@ nodes | Splitting.cs:50:19:50:19 | access to local variable s | semmle.label | access to local variable s | | Splitting.cs:52:19:52:19 | access to local variable s | semmle.label | access to local variable s | subpaths +| Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | Capture.cs:132:22:132:28 | access to parameter tainted : String | Capture.cs:132:22:132:28 | access to parameter tainted : String | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | +| Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | Capture.cs:142:26:142:32 | access to parameter tainted : String | Capture.cs:142:26:142:32 | access to parameter tainted : String | Capture.cs:144:13:144:13 | [post] access to local function M : M [captured sink34] : String | +| Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | Capture.cs:144:13:144:13 | [post] access to local function M : M [captured sink34] : String | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | +| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | +| Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:160:20:160:26 | access to parameter tainted : String | Capture.cs:160:20:160:26 | access to parameter tainted : String | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:166:37:166:37 | p : String | Capture.cs:168:22:168:22 | access to parameter p : String | Capture.cs:170:9:170:23 | [post] access to local function CaptureThrough5 : CaptureThrough5 [captured sink37] : String | +| Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | Capture.cs:192:27:192:27 | access to parameter s : String | Capture.cs:192:27:192:27 | access to parameter s : String | Capture.cs:193:20:193:22 | call to local function M : String | | Capture.cs:196:25:196:31 | access to parameter tainted : String | Capture.cs:190:26:190:26 | s : String | Capture.cs:193:20:193:22 | call to local function M : String | Capture.cs:196:22:196:32 | call to local function Id : String | | Capture.cs:221:21:221:34 | "taint source" : String | Capture.cs:213:22:213:22 | s : String | Capture.cs:215:16:218:9 | (...) => ... : (...) => ... [captured s] : String | Capture.cs:221:18:221:35 | call to method M3 : (...) => ... [captured s] : String | | Capture.cs:223:31:223:44 | "taint source" : String | Capture.cs:213:22:213:22 | s : String | Capture.cs:215:16:218:9 | (...) => ... : (...) => ... [captured s] : String | Capture.cs:223:28:223:45 | call to method M3 : (...) => ... [captured s] : String | @@ -912,9 +950,16 @@ subpaths | GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:304:32:304:32 | x : String | GlobalDataFlow.cs:306:9:306:9 | access to parameter y : String | GlobalDataFlow.cs:76:30:76:34 | access to local variable sink2 : String | | GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:310:32:310:32 | x : String | GlobalDataFlow.cs:312:9:312:9 | access to parameter y : String | GlobalDataFlow.cs:79:30:79:34 | access to local variable sink3 : String | | GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven<String,String> : IEnumerable<T> [element] : String | +| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:318:16:318:25 | access to parameter sinkParam8 : String | GlobalDataFlow.cs:83:22:83:87 | call to method Select<String,String> : IEnumerable<T> [element] : String | +| GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:118:85:118 | x : String | GlobalDataFlow.cs:85:127:85:127 | access to parameter x : String | GlobalDataFlow.cs:85:22:85:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | +| GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:121:87:121 | y : String | GlobalDataFlow.cs:87:127:87:127 | access to parameter y : String | GlobalDataFlow.cs:87:22:87:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc<String,String> : String | | GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:138:40:138:40 | x : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc<String,String> : String | GlobalDataFlow.cs:139:21:139:34 | delegate call : String | | GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc<String,String> : String | +| GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:324:16:324:25 | access to parameter sinkParam9 : String | GlobalDataFlow.cs:215:76:215:90 | call to method ReturnCheck2<String> : String | +| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable<T> [element] : String | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:79:214:89 | access to parameter sinkParam10 : String | GlobalDataFlow.cs:216:22:216:39 | call to method Select<String,String> : IEnumerable<T> [element] : String | +| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable<T> [element] : String | GlobalDataFlow.cs:215:71:215:71 | x : String | GlobalDataFlow.cs:215:76:215:90 | call to method ReturnCheck2<String> : String | GlobalDataFlow.cs:218:22:218:39 | call to method Select<String,String> : IQueryable<T> [element] : String | +| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable<T> [element] : String | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:330:16:330:26 | access to parameter sinkParam11 : String | GlobalDataFlow.cs:220:22:220:49 | call to method Select<String,String> : IEnumerable<T> [element] : String | | GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc<T,T> : String | | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | diff --git a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected index a5ceb692695..de58feb3221 100644 --- a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected @@ -34,12 +34,18 @@ edges | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:170:25:170:31 | access to parameter tainted : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:196:25:196:31 | access to parameter tainted : String | provenance | | | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | Capture.cs:135:15:135:20 | access to local variable sink33 | provenance | | +| Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | Capture.cs:132:22:132:28 | access to parameter tainted : String | provenance | | | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | provenance | | +| Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | Capture.cs:142:26:142:32 | access to parameter tainted : String | provenance | | +| Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | Capture.cs:144:13:144:13 | [post] access to local function M : M [captured sink34] : String | provenance | | | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | Capture.cs:147:15:147:20 | access to local variable sink34 | provenance | | +| Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | provenance | | | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | provenance | | | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | Capture.cs:156:15:156:20 | access to local variable sink35 | provenance | | +| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | provenance | | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | Capture.cs:163:15:163:20 | access to local variable sink36 | provenance | | +| Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:160:20:160:26 | access to parameter tainted : String | provenance | | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | provenance | | | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | Capture.cs:162:13:162:18 | access to local variable sink36 : String | provenance | | | Capture.cs:166:37:166:37 | p : String | Capture.cs:168:22:168:22 | access to parameter p : String | provenance | | @@ -47,6 +53,7 @@ edges | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:166:37:166:37 | p : String | provenance | | | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:170:9:170:23 | [post] access to local function CaptureThrough5 : CaptureThrough5 [captured sink37] : String | provenance | | | Capture.cs:190:26:190:26 | s : String | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | provenance | | +| Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | Capture.cs:192:27:192:27 | access to parameter s : String | provenance | | | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | Capture.cs:193:20:193:22 | call to local function M : String | provenance | | | Capture.cs:196:13:196:18 | access to local variable sink38 : String | Capture.cs:197:15:197:20 | access to local variable sink38 | provenance | | | Capture.cs:196:22:196:32 | call to local function Id : String | Capture.cs:196:13:196:18 | access to local variable sink38 : String | provenance | | @@ -244,14 +251,18 @@ edges | GlobalDataFlow.cs:85:22:85:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | GlobalDataFlow.cs:85:22:85:136 | call to method First<String> : String | provenance | | | GlobalDataFlow.cs:85:22:85:136 | call to method First<String> : String | GlobalDataFlow.cs:85:13:85:18 | access to local variable sink15 : String | provenance | | | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:22:85:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | provenance | | +| GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:118:85:118 | x : String | provenance | | | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | provenance | | | GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:85:118:85:118 | x : String | GlobalDataFlow.cs:85:127:85:127 | access to parameter x : String | provenance | | | GlobalDataFlow.cs:87:13:87:18 | access to local variable sink16 : String | GlobalDataFlow.cs:88:15:88:20 | access to local variable sink16 | provenance | | | GlobalDataFlow.cs:87:22:87:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | GlobalDataFlow.cs:87:22:87:136 | call to method First<String> : String | provenance | | | GlobalDataFlow.cs:87:22:87:136 | call to method First<String> : String | GlobalDataFlow.cs:87:13:87:18 | access to local variable sink16 : String | provenance | | | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:22:87:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | provenance | | +| GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:121:87:121 | y : String | provenance | | | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | provenance | | | GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:87:121:87:121 | y : String | GlobalDataFlow.cs:87:127:87:127 | access to parameter y : String | provenance | | | GlobalDataFlow.cs:89:13:89:18 | access to local variable sink17 : String | GlobalDataFlow.cs:90:15:90:20 | access to local variable sink17 | provenance | | | GlobalDataFlow.cs:89:22:89:110 | call to method Aggregate<String,String,String> : String | GlobalDataFlow.cs:89:13:89:18 | access to local variable sink17 : String | provenance | | | GlobalDataFlow.cs:89:23:89:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:89:22:89:110 | call to method Aggregate<String,String,String> : String | provenance | | @@ -306,7 +317,9 @@ edges | GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | provenance | | | GlobalDataFlow.cs:211:46:211:59 | "taint source" : String | GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | provenance | | | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:58:214:68 | access to parameter sinkParam10 | provenance | | +| GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:79:214:89 | access to parameter sinkParam10 : String | provenance | | | GlobalDataFlow.cs:215:71:215:71 | x : String | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:215:76:215:90 | call to method ReturnCheck2<String> : String | provenance | | | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | provenance | | | GlobalDataFlow.cs:216:13:216:18 | access to local variable sink24 : String | GlobalDataFlow.cs:217:15:217:20 | access to local variable sink24 | provenance | | | GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable<T> [element] : String | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | provenance | | @@ -351,8 +364,11 @@ edges | GlobalDataFlow.cs:304:32:304:32 | x : String | GlobalDataFlow.cs:306:9:306:9 | access to parameter y : String | provenance | | | GlobalDataFlow.cs:310:32:310:32 | x : String | GlobalDataFlow.cs:312:9:312:9 | access to parameter y : String | provenance | | | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:317:15:317:24 | access to parameter sinkParam8 | provenance | | +| GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:318:16:318:25 | access to parameter sinkParam8 : String | provenance | | | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:323:15:323:24 | access to parameter sinkParam9 | provenance | | +| GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:324:16:324:25 | access to parameter sinkParam9 : String | provenance | | | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 | provenance | | +| GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:330:16:330:26 | access to parameter sinkParam11 : String | provenance | | | GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | provenance | | | GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy<String> : Lazy<T> [property Value] : String | provenance | | | GlobalDataFlow.cs:346:9:346:9 | access to parameter x : String | GlobalDataFlow.cs:160:20:160:24 | access to local variable sink7 : String | provenance | | @@ -550,15 +566,21 @@ nodes | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | semmle.label | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | | Capture.cs:124:15:124:20 | access to local variable sink40 | semmle.label | access to local variable sink40 | | Capture.cs:127:25:127:31 | tainted : String | semmle.label | tainted : String | +| Capture.cs:132:22:132:28 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | semmle.label | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | semmle.label | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | | Capture.cs:135:15:135:20 | access to local variable sink33 | semmle.label | access to local variable sink33 | +| Capture.cs:142:26:142:32 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | +| Capture.cs:144:13:144:13 | [post] access to local function M : M [captured sink34] : String | semmle.label | [post] access to local function M : M [captured sink34] : String | +| Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | semmle.label | access to local function M : M [captured tainted] : String | | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | semmle.label | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | semmle.label | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | | Capture.cs:147:15:147:20 | access to local variable sink34 | semmle.label | access to local variable sink34 | +| Capture.cs:152:22:152:28 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | semmle.label | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | semmle.label | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | | Capture.cs:156:15:156:20 | access to local variable sink35 | semmle.label | access to local variable sink35 | +| Capture.cs:160:20:160:26 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | semmle.label | access to local variable sink36 : String | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | semmle.label | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | semmle.label | call to local function CaptureThrough4 : String | @@ -569,6 +591,7 @@ nodes | Capture.cs:170:25:170:31 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Capture.cs:171:15:171:20 | access to local variable sink37 | semmle.label | access to local variable sink37 | | Capture.cs:190:26:190:26 | s : String | semmle.label | s : String | +| Capture.cs:192:27:192:27 | access to parameter s : String | semmle.label | access to parameter s : String | | Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | semmle.label | access to local function M : M [captured s] : String | | Capture.cs:193:20:193:22 | call to local function M : String | semmle.label | call to local function M : String | | Capture.cs:196:13:196:18 | access to local variable sink38 : String | semmle.label | access to local variable sink38 : String | @@ -708,6 +731,8 @@ nodes | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | semmle.label | (...) ... : null [element] : String | | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | semmle.label | { ..., ... } : null [element] : String | | GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | semmle.label | access to local variable sink14 : String | +| GlobalDataFlow.cs:85:118:85:118 | x : String | semmle.label | x : String | +| GlobalDataFlow.cs:85:127:85:127 | access to parameter x : String | semmle.label | access to parameter x : String | | GlobalDataFlow.cs:86:15:86:20 | access to local variable sink15 | semmle.label | access to local variable sink15 | | GlobalDataFlow.cs:87:13:87:18 | access to local variable sink16 : String | semmle.label | access to local variable sink16 : String | | GlobalDataFlow.cs:87:22:87:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | semmle.label | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | @@ -715,6 +740,8 @@ nodes | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | semmle.label | (...) ... : null [element] : String | | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | semmle.label | { ..., ... } : null [element] : String | | GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | semmle.label | access to local variable sink15 : String | +| GlobalDataFlow.cs:87:121:87:121 | y : String | semmle.label | y : String | +| GlobalDataFlow.cs:87:127:87:127 | access to parameter y : String | semmle.label | access to parameter y : String | | GlobalDataFlow.cs:88:15:88:20 | access to local variable sink16 | semmle.label | access to local variable sink16 | | GlobalDataFlow.cs:89:13:89:18 | access to local variable sink17 : String | semmle.label | access to local variable sink17 : String | | GlobalDataFlow.cs:89:22:89:110 | call to method Aggregate<String,String,String> : String | semmle.label | call to method Aggregate<String,String,String> : String | @@ -778,7 +805,9 @@ nodes | GlobalDataFlow.cs:211:46:211:59 | "taint source" : String | semmle.label | "taint source" : String | | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | semmle.label | sinkParam10 : String | | GlobalDataFlow.cs:214:58:214:68 | access to parameter sinkParam10 | semmle.label | access to parameter sinkParam10 | +| GlobalDataFlow.cs:214:79:214:89 | access to parameter sinkParam10 : String | semmle.label | access to parameter sinkParam10 : String | | GlobalDataFlow.cs:215:71:215:71 | x : String | semmle.label | x : String | +| GlobalDataFlow.cs:215:76:215:90 | call to method ReturnCheck2<String> : String | semmle.label | call to method ReturnCheck2<String> : String | | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | semmle.label | access to parameter x : String | | GlobalDataFlow.cs:216:13:216:18 | access to local variable sink24 : String | semmle.label | access to local variable sink24 : String | | GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable<T> [element] : String | semmle.label | access to local variable tainted : IQueryable<T> [element] : String | @@ -834,10 +863,13 @@ nodes | GlobalDataFlow.cs:312:9:312:9 | access to parameter y : String | semmle.label | access to parameter y : String | | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | semmle.label | sinkParam8 : String | | GlobalDataFlow.cs:317:15:317:24 | access to parameter sinkParam8 | semmle.label | access to parameter sinkParam8 | +| GlobalDataFlow.cs:318:16:318:25 | access to parameter sinkParam8 : String | semmle.label | access to parameter sinkParam8 : String | | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | semmle.label | sinkParam9 : String | | GlobalDataFlow.cs:323:15:323:24 | access to parameter sinkParam9 | semmle.label | access to parameter sinkParam9 | +| GlobalDataFlow.cs:324:16:324:25 | access to parameter sinkParam9 : String | semmle.label | access to parameter sinkParam9 : String | | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | semmle.label | sinkParam11 : String | | GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 | semmle.label | access to parameter sinkParam11 | +| GlobalDataFlow.cs:330:16:330:26 | access to parameter sinkParam11 : String | semmle.label | access to parameter sinkParam11 : String | | GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | semmle.label | "taint source" : String | | GlobalDataFlow.cs:346:9:346:9 | access to parameter x : String | semmle.label | access to parameter x : String | | GlobalDataFlow.cs:346:13:346:26 | "taint source" : String | semmle.label | "taint source" : String | @@ -1006,7 +1038,13 @@ nodes | Splitting.cs:50:19:50:19 | access to local variable s | semmle.label | access to local variable s | | Splitting.cs:52:19:52:19 | access to local variable s | semmle.label | access to local variable s | subpaths +| Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | Capture.cs:132:22:132:28 | access to parameter tainted : String | Capture.cs:132:22:132:28 | access to parameter tainted : String | Capture.cs:134:9:134:23 | [post] access to local function CaptureThrough1 : CaptureThrough1 [captured sink33] : String | +| Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | Capture.cs:142:26:142:32 | access to parameter tainted : String | Capture.cs:142:26:142:32 | access to parameter tainted : String | Capture.cs:144:13:144:13 | [post] access to local function M : M [captured sink34] : String | +| Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | Capture.cs:144:13:144:13 | access to local function M : M [captured tainted] : String | Capture.cs:144:13:144:13 | [post] access to local function M : M [captured sink34] : String | Capture.cs:146:9:146:23 | [post] access to local function CaptureThrough2 : CaptureThrough2 [captured sink34] : String | +| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func<String,String> [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | +| Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:160:20:160:26 | access to parameter tainted : String | Capture.cs:160:20:160:26 | access to parameter tainted : String | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | | Capture.cs:170:25:170:31 | access to parameter tainted : String | Capture.cs:166:37:166:37 | p : String | Capture.cs:168:22:168:22 | access to parameter p : String | Capture.cs:170:9:170:23 | [post] access to local function CaptureThrough5 : CaptureThrough5 [captured sink37] : String | +| Capture.cs:193:20:193:20 | access to local function M : M [captured s] : String | Capture.cs:192:27:192:27 | access to parameter s : String | Capture.cs:192:27:192:27 | access to parameter s : String | Capture.cs:193:20:193:22 | call to local function M : String | | Capture.cs:196:25:196:31 | access to parameter tainted : String | Capture.cs:190:26:190:26 | s : String | Capture.cs:193:20:193:22 | call to local function M : String | Capture.cs:196:22:196:32 | call to local function Id : String | | Capture.cs:221:21:221:34 | "taint source" : String | Capture.cs:213:22:213:22 | s : String | Capture.cs:215:16:218:9 | (...) => ... : (...) => ... [captured s] : String | Capture.cs:221:18:221:35 | call to method M3 : (...) => ... [captured s] : String | | Capture.cs:223:31:223:44 | "taint source" : String | Capture.cs:213:22:213:22 | s : String | Capture.cs:215:16:218:9 | (...) => ... : (...) => ... [captured s] : String | Capture.cs:223:28:223:45 | call to method M3 : (...) => ... [captured s] : String | @@ -1015,9 +1053,16 @@ subpaths | GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:304:32:304:32 | x : String | GlobalDataFlow.cs:306:9:306:9 | access to parameter y : String | GlobalDataFlow.cs:76:30:76:34 | access to local variable sink2 : String | | GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:310:32:310:32 | x : String | GlobalDataFlow.cs:312:9:312:9 | access to parameter y : String | GlobalDataFlow.cs:79:30:79:34 | access to local variable sink3 : String | | GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven<String,String> : IEnumerable<T> [element] : String | +| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:318:16:318:25 | access to parameter sinkParam8 : String | GlobalDataFlow.cs:83:22:83:87 | call to method Select<String,String> : IEnumerable<T> [element] : String | +| GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:118:85:118 | x : String | GlobalDataFlow.cs:85:127:85:127 | access to parameter x : String | GlobalDataFlow.cs:85:22:85:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | +| GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:121:87:121 | y : String | GlobalDataFlow.cs:87:127:87:127 | access to parameter y : String | GlobalDataFlow.cs:87:22:87:128 | call to method Zip<String,String,String> : IEnumerable<T> [element] : String | | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc<String,String> : String | | GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:138:40:138:40 | x : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc<String,String> : String | GlobalDataFlow.cs:139:21:139:34 | delegate call : String | | GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc<String,String> : String | +| GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:324:16:324:25 | access to parameter sinkParam9 : String | GlobalDataFlow.cs:215:76:215:90 | call to method ReturnCheck2<String> : String | +| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable<T> [element] : String | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:79:214:89 | access to parameter sinkParam10 : String | GlobalDataFlow.cs:216:22:216:39 | call to method Select<String,String> : IEnumerable<T> [element] : String | +| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable<T> [element] : String | GlobalDataFlow.cs:215:71:215:71 | x : String | GlobalDataFlow.cs:215:76:215:90 | call to method ReturnCheck2<String> : String | GlobalDataFlow.cs:218:22:218:39 | call to method Select<String,String> : IQueryable<T> [element] : String | +| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable<T> [element] : String | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:330:16:330:26 | access to parameter sinkParam11 : String | GlobalDataFlow.cs:220:22:220:49 | call to method Select<String,String> : IEnumerable<T> [element] : String | | GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc<T,T> : String | | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | diff --git a/python/ql/test/experimental/dataflow/summaries/summaries.expected b/python/ql/test/experimental/dataflow/summaries/summaries.expected index a1f354a654f..847ec210b3c 100644 --- a/python/ql/test/experimental/dataflow/summaries/summaries.expected +++ b/python/ql/test/experimental/dataflow/summaries/summaries.expected @@ -4,7 +4,9 @@ edges | summaries.py:32:20:32:25 | ControlFlowNode for SOURCE | summaries.py:32:11:32:26 | ControlFlowNode for identity() | provenance | | | summaries.py:36:1:36:14 | ControlFlowNode for tainted_lambda | summaries.py:37:6:37:19 | ControlFlowNode for tainted_lambda | provenance | | | summaries.py:36:18:36:54 | ControlFlowNode for apply_lambda() | summaries.py:36:1:36:14 | ControlFlowNode for tainted_lambda | provenance | | +| summaries.py:36:38:36:38 | ControlFlowNode for x | summaries.py:36:41:36:45 | ControlFlowNode for BinaryExpr | provenance | | | summaries.py:36:48:36:53 | ControlFlowNode for SOURCE | summaries.py:36:18:36:54 | ControlFlowNode for apply_lambda() | provenance | | +| summaries.py:36:48:36:53 | ControlFlowNode for SOURCE | summaries.py:36:38:36:38 | ControlFlowNode for x | provenance | | | summaries.py:44:1:44:12 | ControlFlowNode for tainted_list | summaries.py:45:6:45:20 | ControlFlowNode for Subscript | provenance | | | summaries.py:44:1:44:12 | ControlFlowNode for tainted_list [List element] | summaries.py:45:6:45:17 | ControlFlowNode for tainted_list [List element] | provenance | | | summaries.py:44:16:44:33 | ControlFlowNode for reversed() | summaries.py:44:1:44:12 | ControlFlowNode for tainted_list | provenance | | @@ -14,13 +16,17 @@ edges | summaries.py:44:26:44:31 | ControlFlowNode for SOURCE | summaries.py:44:25:44:32 | ControlFlowNode for List | provenance | | | summaries.py:44:26:44:31 | ControlFlowNode for SOURCE | summaries.py:44:25:44:32 | ControlFlowNode for List [List element] | provenance | | | summaries.py:45:6:45:17 | ControlFlowNode for tainted_list [List element] | summaries.py:45:6:45:20 | ControlFlowNode for Subscript | provenance | | +| summaries.py:48:15:48:15 | ControlFlowNode for x | summaries.py:49:12:49:18 | ControlFlowNode for BinaryExpr | provenance | | | summaries.py:51:1:51:14 | ControlFlowNode for tainted_mapped [List element] | summaries.py:52:6:52:19 | ControlFlowNode for tainted_mapped [List element] | provenance | | | summaries.py:51:18:51:46 | ControlFlowNode for list_map() [List element] | summaries.py:51:1:51:14 | ControlFlowNode for tainted_mapped [List element] | provenance | | +| summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | summaries.py:48:15:48:15 | ControlFlowNode for x | provenance | | | summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | summaries.py:51:18:51:46 | ControlFlowNode for list_map() [List element] | provenance | | | summaries.py:51:39:51:44 | ControlFlowNode for SOURCE | summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | provenance | | | summaries.py:52:6:52:19 | ControlFlowNode for tainted_mapped [List element] | summaries.py:52:6:52:22 | ControlFlowNode for Subscript | provenance | | +| summaries.py:54:23:54:23 | ControlFlowNode for x | summaries.py:55:12:55:12 | ControlFlowNode for x | provenance | | | summaries.py:57:1:57:23 | ControlFlowNode for tainted_mapped_explicit [List element] | summaries.py:58:6:58:28 | ControlFlowNode for tainted_mapped_explicit [List element] | provenance | | | summaries.py:57:27:57:63 | ControlFlowNode for list_map() [List element] | summaries.py:57:1:57:23 | ControlFlowNode for tainted_mapped_explicit [List element] | provenance | | +| summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | summaries.py:54:23:54:23 | ControlFlowNode for x | provenance | | | summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | summaries.py:57:27:57:63 | ControlFlowNode for list_map() [List element] | provenance | | | summaries.py:57:56:57:61 | ControlFlowNode for SOURCE | summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | provenance | | | summaries.py:58:6:58:28 | ControlFlowNode for tainted_mapped_explicit [List element] | summaries.py:58:6:58:31 | ControlFlowNode for Subscript | provenance | | @@ -46,6 +52,8 @@ nodes | summaries.py:33:6:33:12 | ControlFlowNode for tainted | semmle.label | ControlFlowNode for tainted | | summaries.py:36:1:36:14 | ControlFlowNode for tainted_lambda | semmle.label | ControlFlowNode for tainted_lambda | | summaries.py:36:18:36:54 | ControlFlowNode for apply_lambda() | semmle.label | ControlFlowNode for apply_lambda() | +| summaries.py:36:38:36:38 | ControlFlowNode for x | semmle.label | ControlFlowNode for x | +| summaries.py:36:41:36:45 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | | summaries.py:36:48:36:53 | ControlFlowNode for SOURCE | semmle.label | ControlFlowNode for SOURCE | | summaries.py:37:6:37:19 | ControlFlowNode for tainted_lambda | semmle.label | ControlFlowNode for tainted_lambda | | summaries.py:44:1:44:12 | ControlFlowNode for tainted_list | semmle.label | ControlFlowNode for tainted_list | @@ -57,12 +65,16 @@ nodes | summaries.py:44:26:44:31 | ControlFlowNode for SOURCE | semmle.label | ControlFlowNode for SOURCE | | summaries.py:45:6:45:17 | ControlFlowNode for tainted_list [List element] | semmle.label | ControlFlowNode for tainted_list [List element] | | summaries.py:45:6:45:20 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | +| summaries.py:48:15:48:15 | ControlFlowNode for x | semmle.label | ControlFlowNode for x | +| summaries.py:49:12:49:18 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | | summaries.py:51:1:51:14 | ControlFlowNode for tainted_mapped [List element] | semmle.label | ControlFlowNode for tainted_mapped [List element] | | summaries.py:51:18:51:46 | ControlFlowNode for list_map() [List element] | semmle.label | ControlFlowNode for list_map() [List element] | | summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | semmle.label | ControlFlowNode for List [List element] | | summaries.py:51:39:51:44 | ControlFlowNode for SOURCE | semmle.label | ControlFlowNode for SOURCE | | summaries.py:52:6:52:19 | ControlFlowNode for tainted_mapped [List element] | semmle.label | ControlFlowNode for tainted_mapped [List element] | | summaries.py:52:6:52:22 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | +| summaries.py:54:23:54:23 | ControlFlowNode for x | semmle.label | ControlFlowNode for x | +| summaries.py:55:12:55:12 | ControlFlowNode for x | semmle.label | ControlFlowNode for x | | summaries.py:57:1:57:23 | ControlFlowNode for tainted_mapped_explicit [List element] | semmle.label | ControlFlowNode for tainted_mapped_explicit [List element] | | summaries.py:57:27:57:63 | ControlFlowNode for list_map() [List element] | semmle.label | ControlFlowNode for list_map() [List element] | | summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | semmle.label | ControlFlowNode for List [List element] | @@ -87,6 +99,9 @@ nodes | summaries.py:68:6:68:23 | ControlFlowNode for tainted_resultlist [List element] | semmle.label | ControlFlowNode for tainted_resultlist [List element] | | summaries.py:68:6:68:26 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | subpaths +| summaries.py:36:48:36:53 | ControlFlowNode for SOURCE | summaries.py:36:38:36:38 | ControlFlowNode for x | summaries.py:36:41:36:45 | ControlFlowNode for BinaryExpr | summaries.py:36:18:36:54 | ControlFlowNode for apply_lambda() | +| summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | summaries.py:48:15:48:15 | ControlFlowNode for x | summaries.py:49:12:49:18 | ControlFlowNode for BinaryExpr | summaries.py:51:18:51:46 | ControlFlowNode for list_map() [List element] | +| summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | summaries.py:54:23:54:23 | ControlFlowNode for x | summaries.py:55:12:55:12 | ControlFlowNode for x | summaries.py:57:27:57:63 | ControlFlowNode for list_map() [List element] | invalidSpecComponent #select | summaries.py:33:6:33:12 | ControlFlowNode for tainted | summaries.py:32:20:32:25 | ControlFlowNode for SOURCE | summaries.py:33:6:33:12 | ControlFlowNode for tainted | $@ | summaries.py:32:20:32:25 | ControlFlowNode for SOURCE | ControlFlowNode for SOURCE | diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected index 94906c18fb5..fb709a9ee57 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected @@ -298,7 +298,9 @@ edges | array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:30:251:30 | x | provenance | | | array_flow.rb:251:9:254:7 | call to collect_concat [element] | array_flow.rb:251:5:251:5 | b [element] | provenance | | | array_flow.rb:251:30:251:30 | x | array_flow.rb:252:14:252:14 | x | provenance | | +| array_flow.rb:251:30:251:30 | x | array_flow.rb:253:10:253:10 | x | provenance | | | array_flow.rb:253:9:253:25 | call to [] [element 1] | array_flow.rb:251:9:254:7 | call to collect_concat [element] | provenance | | +| array_flow.rb:253:10:253:10 | x | array_flow.rb:253:9:253:25 | call to [] [element 0] | provenance | | | array_flow.rb:253:13:253:24 | call to source | array_flow.rb:253:9:253:25 | call to [] [element 1] | provenance | | | array_flow.rb:255:10:255:10 | b [element] | array_flow.rb:255:10:255:13 | ...[...] | provenance | | | array_flow.rb:256:5:256:5 | b [element] | array_flow.rb:260:10:260:10 | b [element] | provenance | | @@ -631,6 +633,7 @@ edges | array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:26:507:26 | x | provenance | | | array_flow.rb:507:9:510:7 | call to filter_map [element] | array_flow.rb:507:5:507:5 | b [element] | provenance | | | array_flow.rb:507:26:507:26 | x | array_flow.rb:508:14:508:14 | x | provenance | | +| array_flow.rb:507:26:507:26 | x | array_flow.rb:509:9:509:9 | x | provenance | | | array_flow.rb:511:10:511:10 | b [element] | array_flow.rb:511:10:511:13 | ...[...] | provenance | | | array_flow.rb:518:5:518:5 | d [element] | array_flow.rb:521:10:521:10 | d [element] | provenance | | | array_flow.rb:518:9:520:7 | call to filter_map [element] | array_flow.rb:518:5:518:5 | d [element] | provenance | | @@ -718,7 +721,9 @@ edges | array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:24:571:24 | x | provenance | | | array_flow.rb:571:9:574:7 | call to flat_map [element] | array_flow.rb:571:5:571:5 | b [element] | provenance | | | array_flow.rb:571:24:571:24 | x | array_flow.rb:572:14:572:14 | x | provenance | | +| array_flow.rb:571:24:571:24 | x | array_flow.rb:573:10:573:10 | x | provenance | | | array_flow.rb:573:9:573:25 | call to [] [element 1] | array_flow.rb:571:9:574:7 | call to flat_map [element] | provenance | | +| array_flow.rb:573:10:573:10 | x | array_flow.rb:573:9:573:25 | call to [] [element 0] | provenance | | | array_flow.rb:573:13:573:24 | call to source | array_flow.rb:573:9:573:25 | call to [] [element 1] | provenance | | | array_flow.rb:575:10:575:10 | b [element] | array_flow.rb:575:10:575:13 | ...[...] | provenance | | | array_flow.rb:576:5:576:5 | b [element] | array_flow.rb:580:10:580:10 | b [element] | provenance | | @@ -2337,7 +2342,9 @@ edges | array_flow.rb:1677:16:1677:28 | call to source | array_flow.rb:1677:9:1677:29 | call to [] [element 2] | provenance | | | array_flow.rb:1678:5:1678:5 | b [element] | array_flow.rb:1681:10:1681:10 | b [element] | provenance | | | array_flow.rb:1678:9:1678:9 | a [element 2] | array_flow.rb:1678:9:1680:7 | call to map [element] | provenance | | +| array_flow.rb:1678:9:1678:9 | a [element 2] | array_flow.rb:1678:19:1678:19 | x | provenance | | | array_flow.rb:1678:9:1680:7 | call to map [element] | array_flow.rb:1678:5:1678:5 | b [element] | provenance | | +| array_flow.rb:1678:19:1678:19 | x | array_flow.rb:1679:9:1679:9 | x | provenance | | | array_flow.rb:1681:10:1681:10 | b [element] | array_flow.rb:1681:10:1681:13 | ...[...] | provenance | | | array_flow.rb:1685:5:1685:5 | a [element 2] | array_flow.rb:1686:18:1686:18 | a [element 2] | provenance | | | array_flow.rb:1685:5:1685:5 | a [element 3] | array_flow.rb:1686:18:1686:18 | a [element 3] | provenance | | @@ -2674,7 +2681,9 @@ nodes | array_flow.rb:251:9:254:7 | call to collect_concat [element] | semmle.label | call to collect_concat [element] | | array_flow.rb:251:30:251:30 | x | semmle.label | x | | array_flow.rb:252:14:252:14 | x | semmle.label | x | +| array_flow.rb:253:9:253:25 | call to [] [element 0] | semmle.label | call to [] [element 0] | | array_flow.rb:253:9:253:25 | call to [] [element 1] | semmle.label | call to [] [element 1] | +| array_flow.rb:253:10:253:10 | x | semmle.label | x | | array_flow.rb:253:13:253:24 | call to source | semmle.label | call to source | | array_flow.rb:255:10:255:10 | b [element] | semmle.label | b [element] | | array_flow.rb:255:10:255:13 | ...[...] | semmle.label | ...[...] | @@ -3041,6 +3050,7 @@ nodes | array_flow.rb:507:9:510:7 | call to filter_map [element] | semmle.label | call to filter_map [element] | | array_flow.rb:507:26:507:26 | x | semmle.label | x | | array_flow.rb:508:14:508:14 | x | semmle.label | x | +| array_flow.rb:509:9:509:9 | x | semmle.label | x | | array_flow.rb:511:10:511:10 | b [element] | semmle.label | b [element] | | array_flow.rb:511:10:511:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:518:5:518:5 | d [element] | semmle.label | d [element] | @@ -3132,7 +3142,9 @@ nodes | array_flow.rb:571:9:574:7 | call to flat_map [element] | semmle.label | call to flat_map [element] | | array_flow.rb:571:24:571:24 | x | semmle.label | x | | array_flow.rb:572:14:572:14 | x | semmle.label | x | +| array_flow.rb:573:9:573:25 | call to [] [element 0] | semmle.label | call to [] [element 0] | | array_flow.rb:573:9:573:25 | call to [] [element 1] | semmle.label | call to [] [element 1] | +| array_flow.rb:573:10:573:10 | x | semmle.label | x | | array_flow.rb:573:13:573:24 | call to source | semmle.label | call to source | | array_flow.rb:575:10:575:10 | b [element] | semmle.label | b [element] | | array_flow.rb:575:10:575:13 | ...[...] | semmle.label | ...[...] | @@ -4821,6 +4833,8 @@ nodes | array_flow.rb:1678:5:1678:5 | b [element] | semmle.label | b [element] | | array_flow.rb:1678:9:1678:9 | a [element 2] | semmle.label | a [element 2] | | array_flow.rb:1678:9:1680:7 | call to map [element] | semmle.label | call to map [element] | +| array_flow.rb:1678:19:1678:19 | x | semmle.label | x | +| array_flow.rb:1679:9:1679:9 | x | semmle.label | x | | array_flow.rb:1681:10:1681:10 | b [element] | semmle.label | b [element] | | array_flow.rb:1681:10:1681:13 | ...[...] | semmle.label | ...[...] | | array_flow.rb:1685:5:1685:5 | a [element 2] | semmle.label | a [element 2] | @@ -4836,6 +4850,10 @@ nodes | array_flow.rb:1689:10:1689:10 | z | semmle.label | z | | array_flow.rb:1690:10:1690:10 | w | semmle.label | w | subpaths +| array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:30:251:30 | x | array_flow.rb:253:9:253:25 | call to [] [element 0] | array_flow.rb:251:9:254:7 | call to collect_concat [element] | +| array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:26:507:26 | x | array_flow.rb:509:9:509:9 | x | array_flow.rb:507:9:510:7 | call to filter_map [element] | +| array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:24:571:24 | x | array_flow.rb:573:9:573:25 | call to [] [element 0] | array_flow.rb:571:9:574:7 | call to flat_map [element] | +| array_flow.rb:1678:9:1678:9 | a [element 2] | array_flow.rb:1678:19:1678:19 | x | array_flow.rb:1679:9:1679:9 | x | array_flow.rb:1678:9:1680:7 | call to map [element] | arrayLiteral | array_flow.rb:9:9:9:25 | call to [] | | array_flow.rb:33:9:33:22 | call to [] | diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.expected b/ruby/ql/test/library-tests/dataflow/global/Flow.expected index 94589e1aafb..22d5fd7d18b 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.expected +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.expected @@ -100,6 +100,7 @@ edges | captured_variables.rb:206:13:206:21 | call to taint | captured_variables.rb:208:14:208:14 | x | provenance | | | captured_variables.rb:219:9:219:17 | call to taint | captured_variables.rb:226:5:226:7 | fn1 [captured x] | provenance | | | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | captured_variables.rb:227:10:227:10 | y | provenance | | +| captured_variables.rb:226:5:226:7 | fn1 [captured x] | captured_variables.rb:223:13:223:13 | x | provenance | | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | provenance | | | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | provenance | | | instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | provenance | | @@ -347,6 +348,7 @@ nodes | captured_variables.rb:206:13:206:21 | call to taint | semmle.label | call to taint | | captured_variables.rb:208:14:208:14 | x | semmle.label | x | | captured_variables.rb:219:9:219:17 | call to taint | semmle.label | call to taint | +| captured_variables.rb:223:13:223:13 | x | semmle.label | x | | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | semmle.label | [post] fn1 [captured y] | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | | captured_variables.rb:227:10:227:10 | y | semmle.label | y | @@ -470,6 +472,7 @@ subpaths | captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | captured_variables.rb:83:6:83:18 | call to get_field | | captured_variables.rb:83:6:83:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | captured_variables.rb:83:6:83:18 | call to get_field | | captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:93:17:93:17 | x | captured_variables.rb:94:5:96:5 | -> { ... } [captured x] | captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | +| captured_variables.rb:226:5:226:7 | fn1 [captured x] | captured_variables.rb:223:13:223:13 | x | captured_variables.rb:223:13:223:13 | x | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | | instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:33:9:33:14 | call to new [@field] | | instance_variables.rb:36:10:36:23 | call to new [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:36:10:36:33 | call to get_field | diff --git a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected index 09c9d040e55..dab6b18e8cf 100644 --- a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected +++ b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected @@ -65,8 +65,12 @@ edges | summaries.rb:4:24:4:30 | tainted | summaries.rb:4:36:4:36 | x | provenance | | | summaries.rb:4:36:4:36 | x | summaries.rb:5:8:5:8 | x | provenance | | | summaries.rb:4:36:4:36 | x | summaries.rb:5:8:5:8 | x | provenance | | +| summaries.rb:4:36:4:36 | x | summaries.rb:6:3:6:3 | x | provenance | | +| summaries.rb:4:36:4:36 | x | summaries.rb:6:3:6:3 | x | provenance | | | summaries.rb:11:17:11:17 | x | summaries.rb:12:8:12:8 | x | provenance | | | summaries.rb:11:17:11:17 | x | summaries.rb:12:8:12:8 | x | provenance | | +| summaries.rb:11:17:11:17 | x | summaries.rb:13:3:13:3 | x | provenance | | +| summaries.rb:11:17:11:17 | x | summaries.rb:13:3:13:3 | x | provenance | | | summaries.rb:16:1:16:8 | tainted3 | summaries.rb:18:6:18:13 | tainted3 | provenance | | | summaries.rb:16:1:16:8 | tainted3 | summaries.rb:18:6:18:13 | tainted3 | provenance | | | summaries.rb:16:12:16:43 | call to apply_lambda | summaries.rb:16:1:16:8 | tainted3 | provenance | | @@ -275,12 +279,16 @@ nodes | summaries.rb:4:36:4:36 | x | semmle.label | x | | summaries.rb:5:8:5:8 | x | semmle.label | x | | summaries.rb:5:8:5:8 | x | semmle.label | x | +| summaries.rb:6:3:6:3 | x | semmle.label | x | +| summaries.rb:6:3:6:3 | x | semmle.label | x | | summaries.rb:9:6:9:13 | tainted2 | semmle.label | tainted2 | | summaries.rb:9:6:9:13 | tainted2 | semmle.label | tainted2 | | summaries.rb:11:17:11:17 | x | semmle.label | x | | summaries.rb:11:17:11:17 | x | semmle.label | x | | summaries.rb:12:8:12:8 | x | semmle.label | x | | summaries.rb:12:8:12:8 | x | semmle.label | x | +| summaries.rb:13:3:13:3 | x | semmle.label | x | +| summaries.rb:13:3:13:3 | x | semmle.label | x | | summaries.rb:16:1:16:8 | tainted3 | semmle.label | tainted3 | | summaries.rb:16:1:16:8 | tainted3 | semmle.label | tainted3 | | summaries.rb:16:12:16:43 | call to apply_lambda | semmle.label | call to apply_lambda | @@ -514,6 +522,10 @@ nodes | summaries.rb:166:20:166:36 | call to source | semmle.label | call to source | | summaries.rb:166:20:166:36 | call to source | semmle.label | call to source | subpaths +| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:36:4:36 | x | summaries.rb:6:3:6:3 | x | summaries.rb:4:12:7:3 | call to apply_block | +| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:36:4:36 | x | summaries.rb:6:3:6:3 | x | summaries.rb:4:12:7:3 | call to apply_block | +| summaries.rb:16:36:16:42 | tainted | summaries.rb:11:17:11:17 | x | summaries.rb:13:3:13:3 | x | summaries.rb:16:12:16:43 | call to apply_lambda | +| summaries.rb:16:36:16:42 | tainted | summaries.rb:11:17:11:17 | x | summaries.rb:13:3:13:3 | x | summaries.rb:16:12:16:43 | call to apply_lambda | invalidSpecComponent #select | summaries.rb:2:6:2:12 | tainted | summaries.rb:1:20:1:36 | call to source | summaries.rb:2:6:2:12 | tainted | $@ | summaries.rb:1:20:1:36 | call to source | call to source | From 40089e80881996f0132255818bee7a817ea5e4f8 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Wed, 28 Feb 2024 08:58:12 +0100 Subject: [PATCH 213/309] Add change note --- shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md diff --git a/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md b/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md new file mode 100644 index 00000000000..2d5890aee35 --- /dev/null +++ b/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Path explanations now include flow that goes through callbacks passed into library functions. For example, if `map` is library function, then in `result = map(xs, x => x + 1)` we will now include the step from `x` to `x + 1` in the path explanation, instead og going directly from `xs` to `result`. Note that this change does not affect actual query results, but only how path explanations are computed. From 7a3b8ebb3a9528c9602d1adeb51a2137a73d31b7 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Mon, 18 Mar 2024 14:41:09 +0100 Subject: [PATCH 214/309] Address review comments --- .../2024-02-28-hidden-subpaths.md | 2 +- .../codeql/dataflow/internal/DataFlowImpl.qll | 21 +++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md b/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md index 2d5890aee35..7e8c8b9d85b 100644 --- a/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md +++ b/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Path explanations now include flow that goes through callbacks passed into library functions. For example, if `map` is library function, then in `result = map(xs, x => x + 1)` we will now include the step from `x` to `x + 1` in the path explanation, instead og going directly from `xs` to `result`. Note that this change does not affect actual query results, but only how path explanations are computed. +* Path explanations now include flow that goes through callbacks passed into library functions. For example, if `map` is a library function, then in `result = map(xs, x => x + 1)` we will now include the step from `x` to `x + 1` in the path explanation, instead og going directly from `xs` to `result`. Note that this change does not affect actual query results, but only how path explanations are computed. diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 93b4a344b69..49478d35ad4 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -4356,14 +4356,14 @@ module MakeImpl<InputSig Lang> { ) } - private PathNodeImpl localStepToHidden(PathNodeImpl n) { - result = localStep(n) and - result.isHidden() + private predicate localStepToHidden(PathNodeImpl n1, PathNodeImpl n2) { + n2 = localStep(n1) and + n2.isHidden() } - private PathNodeImpl localStepFromHidden(PathNodeImpl n) { - n = localStep(result) and - result.isHidden() + private predicate localStepFromHidden(PathNodeImpl n1, PathNodeImpl n2) { + n2 = localStep(n1) and + n1.isHidden() } pragma[nomagic] @@ -4404,7 +4404,8 @@ module MakeImpl<InputSig Lang> { PathNodeImpl arg, PathNodeImpl par, PathNodeImpl ret, PathNodeImpl out ) { // direct subpath - subpaths04(arg, localStepFromHidden*(par), localStepToHidden*(ret), out) and + subpaths04(arg, any(PathNodeImpl n | localStepFromHidden*(n, par)), + any(PathNodeImpl n | localStepToHidden*(ret, n)), out) and not par.isHidden() and not ret.isHidden() and ret = summaryCtxStep*(par) @@ -4412,7 +4413,8 @@ module MakeImpl<InputSig Lang> { // wrapped subpath using hidden nodes, e.g. flow through a callback inside // a summarized callable exists(PathNodeImpl par0, PathNodeImpl ret0 | - subpaths05(localStepToHidden*(par0), par, ret, localStepFromHidden*(ret0)) and + subpaths05(any(PathNodeImpl n | localStepToHidden*(par0, n)), par, ret, + any(PathNodeImpl n | localStepFromHidden*(n, ret0))) and subpaths04(arg, par0, ret0, out) ) } @@ -4426,7 +4428,8 @@ module MakeImpl<InputSig Lang> { */ pragma[nomagic] predicate subpaths(PathNodeImpl arg, PathNodeImpl par, PathNodeImpl ret, PathNodeImpl out) { - subpaths05(localStepToHidden*(arg), par, ret, localStepFromHidden*(out)) and + subpaths05(any(PathNodeImpl n | localStepToHidden*(arg, n)), par, ret, + any(PathNodeImpl n | localStepFromHidden*(n, out))) and not arg.isHidden() and not out.isHidden() } From 0cecbf52399e824ee12b8aedc817bdc8accc5600 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Mon, 18 Mar 2024 15:36:01 +0100 Subject: [PATCH 215/309] Update 2024-02-28-hidden-subpaths.md Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com> --- shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md b/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md index 7e8c8b9d85b..05a48eb8050 100644 --- a/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md +++ b/shared/dataflow/change-notes/2024-02-28-hidden-subpaths.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Path explanations now include flow that goes through callbacks passed into library functions. For example, if `map` is a library function, then in `result = map(xs, x => x + 1)` we will now include the step from `x` to `x + 1` in the path explanation, instead og going directly from `xs` to `result`. Note that this change does not affect actual query results, but only how path explanations are computed. +* Path explanations now include flow that goes through callbacks passed into library functions. For example, if `map` is a library function, then in `result = map(xs, x => x + 1)` we will now include the step from `x` to `x + 1` in the path explanation, instead of going directly from `xs` to `result`. Note that this change does not affect actual query results, but only how path explanations are computed. From 80ae017aa1767bc84d1a5ae2282fb546437ff530 Mon Sep 17 00:00:00 2001 From: Harry Maclean <hmac@github.com> Date: Tue, 10 Oct 2023 15:21:15 +0100 Subject: [PATCH 216/309] Ruby: Track flow into ActiveRecord scopes --- .../dataflow/internal/DataFlowDispatch.qll | 15 ++++++++++- .../codeql/ruby/frameworks/ActiveRecord.qll | 27 +++++++++++++++++++ .../security/cwe-089/ActiveRecordInjection.rb | 11 ++++++++ .../security/cwe-089/SqlInjection.expected | 8 ++++++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll index e7898a1ec4f..4ac9031f05c 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowDispatch.qll @@ -429,7 +429,20 @@ private Callable viableSourceCallableInit(RelevantCall call) { result = getIniti /** Holds if `call` may resolve to the returned source-code method. */ private DataFlowCallable viableSourceCallable(DataFlowCall call) { result = viableSourceCallableNonInit(call) or - result.asCfgScope() = viableSourceCallableInit(call.asCall()) + result.asCfgScope() = viableSourceCallableInit(call.asCall()) or + result = any(AdditionalCallTarget t).viableTarget(call.asCall()) +} + +/** + * A unit class for adding additional call steps. + * + * Extend this class to add additional call steps to the data flow graph. + */ +class AdditionalCallTarget extends Unit { + /** + * Gets a viable target for `call`. + */ + abstract DataFlowCallable viableTarget(CfgNodes::ExprNodes::CallCfgNode call); } /** Holds if `call` may resolve to the returned summarized library method. */ diff --git a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll index 7573e099c19..0f30f2146df 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/ActiveRecord.qll @@ -765,3 +765,30 @@ private class ActiveRecordCollectionProxyModelInstantiation extends ActiveRecord result = this.(ActiveRecordCollectionProxyMethodCall).getAssociation().getTargetClass() } } + +/** + * An additional call step for calls to ActiveRecord scopes. For example, in the following code: + * + * ```rb + * class User < ActiveRecord::Base + * scope :with_role, ->(role) { where(role: role) } + * end + * + * User.with_role(r) + * ``` + * + * the call to `with_role` targets the lambda, and argument `r` flows to the parameter `role`. + */ +class ActiveRecordScopeCallTarget extends AdditionalCallTarget { + override DataFlowCallable viableTarget(ExprNodes::CallCfgNode scopeCall) { + exists(DataFlow::ModuleNode model, string scopeName | + model = activeRecordBaseClass().getADescendentModule() and + exists(DataFlow::CallNode scope | + scope = model.getAModuleLevelCall("scope") and + scope.getArgument(0).getConstantValue().isStringlikeValue(scopeName) and + scope.getArgument(1).asCallable().asCallableAstNode() = result.asCfgScope() + ) and + scopeCall = model.getAnImmediateReference().getAMethodCall(scopeName).asExpr() + ) + } +} diff --git a/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb b/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb index ad074de5e98..f1f8d680b75 100644 --- a/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb +++ b/ruby/ql/test/query-tests/security/cwe-089/ActiveRecordInjection.rb @@ -204,3 +204,14 @@ class RegressionController < ActionController::Base Regression.connection.execute("SELECT * FROM users WHERE id = #{permitted_params[:user_id]}") end end + +class User + scope :with_role, ->(role) { where("role = #{role}") } +end + +class UsersController < ActionController::Base + def index + # BAD: user input passed to scope which uses it without sanitization. + @users = User.with_role(params[:role]) + end +end diff --git a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected index 8b6c5bf4d16..6593e7606da 100644 --- a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected @@ -76,6 +76,9 @@ edges | ActiveRecordInjection.rb:203:77:203:102 | ...[...] | ActiveRecordInjection.rb:203:43:203:104 | "SELECT * FROM users WHERE id ..." | provenance | | | ActiveRecordInjection.rb:204:69:204:84 | call to permitted_params | ActiveRecordInjection.rb:204:69:204:94 | ...[...] | provenance | | | ActiveRecordInjection.rb:204:69:204:94 | ...[...] | ActiveRecordInjection.rb:204:35:204:96 | "SELECT * FROM users WHERE id ..." | provenance | | +| ActiveRecordInjection.rb:209:24:209:27 | role | ActiveRecordInjection.rb:209:38:209:53 | "role = #{...}" | provenance | | +| ActiveRecordInjection.rb:215:29:215:34 | call to params | ActiveRecordInjection.rb:215:29:215:41 | ...[...] | provenance | | +| ActiveRecordInjection.rb:215:29:215:41 | ...[...] | ActiveRecordInjection.rb:209:24:209:27 | role | provenance | | | ArelInjection.rb:4:5:4:8 | name | ArelInjection.rb:6:20:6:61 | "SELECT * FROM users WHERE nam..." | provenance | | | ArelInjection.rb:4:5:4:8 | name | ArelInjection.rb:7:39:7:80 | "SELECT * FROM users WHERE nam..." | provenance | | | ArelInjection.rb:4:12:4:17 | call to params | ArelInjection.rb:4:12:4:29 | ...[...] | provenance | | @@ -201,6 +204,10 @@ nodes | ActiveRecordInjection.rb:204:35:204:96 | "SELECT * FROM users WHERE id ..." | semmle.label | "SELECT * FROM users WHERE id ..." | | ActiveRecordInjection.rb:204:69:204:84 | call to permitted_params | semmle.label | call to permitted_params | | ActiveRecordInjection.rb:204:69:204:94 | ...[...] | semmle.label | ...[...] | +| ActiveRecordInjection.rb:209:24:209:27 | role | semmle.label | role | +| ActiveRecordInjection.rb:209:38:209:53 | "role = #{...}" | semmle.label | "role = #{...}" | +| ActiveRecordInjection.rb:215:29:215:34 | call to params | semmle.label | call to params | +| ActiveRecordInjection.rb:215:29:215:41 | ...[...] | semmle.label | ...[...] | | ArelInjection.rb:4:5:4:8 | name | semmle.label | name | | ArelInjection.rb:4:12:4:17 | call to params | semmle.label | call to params | | ArelInjection.rb:4:12:4:29 | ...[...] | semmle.label | ...[...] | @@ -257,6 +264,7 @@ subpaths | ActiveRecordInjection.rb:194:37:194:41 | query | ActiveRecordInjection.rb:199:5:199:10 | call to params | ActiveRecordInjection.rb:194:37:194:41 | query | This SQL query depends on a $@. | ActiveRecordInjection.rb:199:5:199:10 | call to params | user-provided value | | ActiveRecordInjection.rb:203:43:203:104 | "SELECT * FROM users WHERE id ..." | ActiveRecordInjection.rb:199:5:199:10 | call to params | ActiveRecordInjection.rb:203:43:203:104 | "SELECT * FROM users WHERE id ..." | This SQL query depends on a $@. | ActiveRecordInjection.rb:199:5:199:10 | call to params | user-provided value | | ActiveRecordInjection.rb:204:35:204:96 | "SELECT * FROM users WHERE id ..." | ActiveRecordInjection.rb:199:5:199:10 | call to params | ActiveRecordInjection.rb:204:35:204:96 | "SELECT * FROM users WHERE id ..." | This SQL query depends on a $@. | ActiveRecordInjection.rb:199:5:199:10 | call to params | user-provided value | +| ActiveRecordInjection.rb:209:38:209:53 | "role = #{...}" | ActiveRecordInjection.rb:215:29:215:34 | call to params | ActiveRecordInjection.rb:209:38:209:53 | "role = #{...}" | This SQL query depends on a $@. | ActiveRecordInjection.rb:215:29:215:34 | call to params | user-provided value | | ArelInjection.rb:6:20:6:61 | "SELECT * FROM users WHERE nam..." | ArelInjection.rb:4:12:4:17 | call to params | ArelInjection.rb:6:20:6:61 | "SELECT * FROM users WHERE nam..." | This SQL query depends on a $@. | ArelInjection.rb:4:12:4:17 | call to params | user-provided value | | ArelInjection.rb:7:39:7:80 | "SELECT * FROM users WHERE nam..." | ArelInjection.rb:4:12:4:17 | call to params | ArelInjection.rb:7:39:7:80 | "SELECT * FROM users WHERE nam..." | This SQL query depends on a $@. | ArelInjection.rb:4:12:4:17 | call to params | user-provided value | | PgInjection.rb:14:15:14:18 | qry1 | PgInjection.rb:6:12:6:17 | call to params | PgInjection.rb:14:15:14:18 | qry1 | This SQL query depends on a $@. | PgInjection.rb:6:12:6:17 | call to params | user-provided value | From 4a55b6fbdfcc5c08135c47d945eb43768b8c77f3 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 15:02:33 +0000 Subject: [PATCH 217/309] C++: Make 'cpp/uninitialized-local' a path-problem query. --- .../Memory Management/UninitializedLocal.ql | 5 ++- .../semmle/tests/UninitializedLocal.expected | 42 +++++++++++++------ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Memory Management/UninitializedLocal.ql b/cpp/ql/src/Likely Bugs/Memory Management/UninitializedLocal.ql index f8bac113eb9..35bee25c9f5 100644 --- a/cpp/ql/src/Likely Bugs/Memory Management/UninitializedLocal.ql +++ b/cpp/ql/src/Likely Bugs/Memory Management/UninitializedLocal.ql @@ -2,7 +2,7 @@ * @name Potentially uninitialized local variable * @description Reading from a local variable that has not been assigned to * will typically yield garbage. - * @kind problem + * @kind path-problem * @id cpp/uninitialized-local * @problem.severity warning * @security-severity 7.8 @@ -15,6 +15,7 @@ import cpp import semmle.code.cpp.ir.IR import semmle.code.cpp.ir.dataflow.MustFlow +import PathGraph /** * Auxiliary predicate: Types that don't require initialization @@ -89,4 +90,4 @@ where conf.hasFlowPath(source, sink) and isSinkImpl(sink.getInstruction(), va) and v = va.getTarget() -select va, "The variable $@ may not be initialized at this access.", v, v.getName() +select va, source, sink, "The variable $@ may not be initialized at this access.", v, v.getName() diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/UninitializedLocal.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/UninitializedLocal.expected index 7b5233f45b4..d27b2c996b3 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/UninitializedLocal.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/UninitializedLocal.expected @@ -1,13 +1,29 @@ -| test.cpp:12:6:12:8 | foo | The variable $@ may not be initialized at this access. | test.cpp:11:6:11:8 | foo | foo | -| test.cpp:113:6:113:8 | foo | The variable $@ may not be initialized at this access. | test.cpp:111:6:111:8 | foo | foo | -| test.cpp:219:3:219:3 | x | The variable $@ may not be initialized at this access. | test.cpp:218:7:218:7 | x | x | -| test.cpp:243:13:243:13 | i | The variable $@ may not be initialized at this access. | test.cpp:241:6:241:6 | i | i | -| test.cpp:336:10:336:10 | a | The variable $@ may not be initialized at this access. | test.cpp:333:7:333:7 | a | a | -| test.cpp:369:10:369:10 | a | The variable $@ may not be initialized at this access. | test.cpp:358:7:358:7 | a | a | -| test.cpp:378:9:378:11 | val | The variable $@ may not be initialized at this access. | test.cpp:359:6:359:8 | val | val | -| test.cpp:417:10:417:10 | j | The variable $@ may not be initialized at this access. | test.cpp:414:9:414:9 | j | j | -| test.cpp:436:9:436:9 | j | The variable $@ may not be initialized at this access. | test.cpp:431:9:431:9 | j | j | -| test.cpp:454:2:454:2 | x | The variable $@ may not be initialized at this access. | test.cpp:452:6:452:6 | x | x | -| test.cpp:460:7:460:7 | x | The variable $@ may not be initialized at this access. | test.cpp:458:6:458:6 | x | x | -| test.cpp:467:2:467:2 | x | The variable $@ may not be initialized at this access. | test.cpp:464:6:464:6 | x | x | -| test.cpp:474:7:474:7 | x | The variable $@ may not be initialized at this access. | test.cpp:471:6:471:6 | x | x | +edges +nodes +| test.cpp:11:6:11:8 | definition of foo | semmle.label | definition of foo | +| test.cpp:111:6:111:8 | definition of foo | semmle.label | definition of foo | +| test.cpp:218:7:218:7 | definition of x | semmle.label | definition of x | +| test.cpp:241:6:241:6 | definition of i | semmle.label | definition of i | +| test.cpp:333:7:333:7 | definition of a | semmle.label | definition of a | +| test.cpp:358:7:358:7 | definition of a | semmle.label | definition of a | +| test.cpp:359:6:359:8 | definition of val | semmle.label | definition of val | +| test.cpp:414:9:414:9 | definition of j | semmle.label | definition of j | +| test.cpp:431:9:431:9 | definition of j | semmle.label | definition of j | +| test.cpp:452:6:452:6 | definition of x | semmle.label | definition of x | +| test.cpp:458:6:458:6 | definition of x | semmle.label | definition of x | +| test.cpp:464:6:464:6 | definition of x | semmle.label | definition of x | +| test.cpp:471:6:471:6 | definition of x | semmle.label | definition of x | +#select +| test.cpp:12:6:12:8 | foo | test.cpp:11:6:11:8 | definition of foo | test.cpp:11:6:11:8 | definition of foo | The variable $@ may not be initialized at this access. | test.cpp:11:6:11:8 | foo | foo | +| test.cpp:113:6:113:8 | foo | test.cpp:111:6:111:8 | definition of foo | test.cpp:111:6:111:8 | definition of foo | The variable $@ may not be initialized at this access. | test.cpp:111:6:111:8 | foo | foo | +| test.cpp:219:3:219:3 | x | test.cpp:218:7:218:7 | definition of x | test.cpp:218:7:218:7 | definition of x | The variable $@ may not be initialized at this access. | test.cpp:218:7:218:7 | x | x | +| test.cpp:243:13:243:13 | i | test.cpp:241:6:241:6 | definition of i | test.cpp:241:6:241:6 | definition of i | The variable $@ may not be initialized at this access. | test.cpp:241:6:241:6 | i | i | +| test.cpp:336:10:336:10 | a | test.cpp:333:7:333:7 | definition of a | test.cpp:333:7:333:7 | definition of a | The variable $@ may not be initialized at this access. | test.cpp:333:7:333:7 | a | a | +| test.cpp:369:10:369:10 | a | test.cpp:358:7:358:7 | definition of a | test.cpp:358:7:358:7 | definition of a | The variable $@ may not be initialized at this access. | test.cpp:358:7:358:7 | a | a | +| test.cpp:378:9:378:11 | val | test.cpp:359:6:359:8 | definition of val | test.cpp:359:6:359:8 | definition of val | The variable $@ may not be initialized at this access. | test.cpp:359:6:359:8 | val | val | +| test.cpp:417:10:417:10 | j | test.cpp:414:9:414:9 | definition of j | test.cpp:414:9:414:9 | definition of j | The variable $@ may not be initialized at this access. | test.cpp:414:9:414:9 | j | j | +| test.cpp:436:9:436:9 | j | test.cpp:431:9:431:9 | definition of j | test.cpp:431:9:431:9 | definition of j | The variable $@ may not be initialized at this access. | test.cpp:431:9:431:9 | j | j | +| test.cpp:454:2:454:2 | x | test.cpp:452:6:452:6 | definition of x | test.cpp:452:6:452:6 | definition of x | The variable $@ may not be initialized at this access. | test.cpp:452:6:452:6 | x | x | +| test.cpp:460:7:460:7 | x | test.cpp:458:6:458:6 | definition of x | test.cpp:458:6:458:6 | definition of x | The variable $@ may not be initialized at this access. | test.cpp:458:6:458:6 | x | x | +| test.cpp:467:2:467:2 | x | test.cpp:464:6:464:6 | definition of x | test.cpp:464:6:464:6 | definition of x | The variable $@ may not be initialized at this access. | test.cpp:464:6:464:6 | x | x | +| test.cpp:474:7:474:7 | x | test.cpp:471:6:471:6 | definition of x | test.cpp:471:6:471:6 | definition of x | The variable $@ may not be initialized at this access. | test.cpp:471:6:471:6 | x | x | From bd0969b87b05918dbd2f9883a46daa98bd8cab04 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 15:04:19 +0000 Subject: [PATCH 218/309] C++: Add change note. --- .../2024-03-18-uninitialized-local-path-problem.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2024-03-18-uninitialized-local-path-problem.md diff --git a/cpp/ql/src/change-notes/2024-03-18-uninitialized-local-path-problem.md b/cpp/ql/src/change-notes/2024-03-18-uninitialized-local-path-problem.md new file mode 100644 index 00000000000..14a8c2e7ce7 --- /dev/null +++ b/cpp/ql/src/change-notes/2024-03-18-uninitialized-local-path-problem.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The "Potentially uninitialized local variable" query (`cpp/uninitialized-local`) has been converted to a `path-problem` query. \ No newline at end of file From 668239f355ea11d21e05fbe272675baca35fb547 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 15:16:10 +0000 Subject: [PATCH 219/309] C++: Convert tabs to spaces. --- .../query-tests/Security/CWE/CWE-416/test.cpp | 1006 ++++++++--------- 1 file changed, 503 insertions(+), 503 deletions(-) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp index c035fe203a8..3e2d7482975 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp @@ -40,622 +40,622 @@ using decay_t = typename decay_impl<remove_reference_t<T>>::type; namespace std { - template<class T> constexpr T&& forward(remove_reference_t<T>& t) noexcept; - template<class T> constexpr T&& forward(remove_reference_t<T>&& t) noexcept; + template<class T> constexpr T&& forward(remove_reference_t<T>& t) noexcept; + template<class T> constexpr T&& forward(remove_reference_t<T>&& t) noexcept; } // --- iterator --- namespace std { - struct ptrdiff_t; + struct ptrdiff_t; - template<class I> struct iterator_traits; + template<class I> struct iterator_traits; - template <class Category, - class value_type, - class difference_type = ptrdiff_t, - class pointer_type = value_type*, - class reference_type = value_type&> - struct iterator { - typedef Category iterator_category; + template <class Category, + class value_type, + class difference_type = ptrdiff_t, + class pointer_type = value_type*, + class reference_type = value_type&> + struct iterator { + typedef Category iterator_category; - iterator(); - iterator(iterator<Category, remove_const_t<value_type> > const &other); // non-const -> const conversion constructor + iterator(); + iterator(iterator<Category, remove_const_t<value_type> > const &other); // non-const -> const conversion constructor - iterator &operator++(); - iterator operator++(int); - iterator &operator--(); - iterator operator--(int); - bool operator==(iterator other) const; - bool operator!=(iterator other) const; - reference_type operator*() const; - pointer_type operator->() const; - iterator operator+(int); - iterator operator-(int); - iterator &operator+=(int); - iterator &operator-=(int); - int operator-(iterator); - reference_type operator[](int); - }; + iterator &operator++(); + iterator operator++(int); + iterator &operator--(); + iterator operator--(int); + bool operator==(iterator other) const; + bool operator!=(iterator other) const; + reference_type operator*() const; + pointer_type operator->() const; + iterator operator+(int); + iterator operator-(int); + iterator &operator+=(int); + iterator &operator-=(int); + int operator-(iterator); + reference_type operator[](int); + }; - struct input_iterator_tag {}; - struct forward_iterator_tag : public input_iterator_tag {}; - struct bidirectional_iterator_tag : public forward_iterator_tag {}; - struct random_access_iterator_tag : public bidirectional_iterator_tag {}; + struct input_iterator_tag {}; + struct forward_iterator_tag : public input_iterator_tag {}; + struct bidirectional_iterator_tag : public forward_iterator_tag {}; + struct random_access_iterator_tag : public bidirectional_iterator_tag {}; - struct output_iterator_tag {}; + struct output_iterator_tag {}; - template<class Container> - class back_insert_iterator { - protected: - Container* container = nullptr; - public: - using iterator_category = output_iterator_tag; - using value_type = void; - using difference_type = ptrdiff_t; - using pointer = void; - using reference = void; - using container_type = Container; - constexpr back_insert_iterator() noexcept = default; - constexpr explicit back_insert_iterator(Container& x); - back_insert_iterator& operator=(const typename Container::value_type& value); - back_insert_iterator& operator=(typename Container::value_type&& value); - back_insert_iterator& operator*(); - back_insert_iterator& operator++(); - back_insert_iterator operator++(int); - }; + template<class Container> + class back_insert_iterator { + protected: + Container* container = nullptr; + public: + using iterator_category = output_iterator_tag; + using value_type = void; + using difference_type = ptrdiff_t; + using pointer = void; + using reference = void; + using container_type = Container; + constexpr back_insert_iterator() noexcept = default; + constexpr explicit back_insert_iterator(Container& x); + back_insert_iterator& operator=(const typename Container::value_type& value); + back_insert_iterator& operator=(typename Container::value_type&& value); + back_insert_iterator& operator*(); + back_insert_iterator& operator++(); + back_insert_iterator operator++(int); + }; - template<class Container> - constexpr back_insert_iterator<Container> back_inserter(Container& x) { - return back_insert_iterator<Container>(x); - } + template<class Container> + constexpr back_insert_iterator<Container> back_inserter(Container& x) { + return back_insert_iterator<Container>(x); + } - template<class Container> - class front_insert_iterator { - protected: - Container* container = nullptr; - public: - using iterator_category = output_iterator_tag; - using value_type = void; - using difference_type = ptrdiff_t; - using pointer = void; - using reference = void; - using container_type = Container; - constexpr front_insert_iterator() noexcept = default; - constexpr explicit front_insert_iterator(Container& x); - constexpr front_insert_iterator& operator=(const typename Container::value_type& value); - constexpr front_insert_iterator& operator=(typename Container::value_type&& value); - constexpr front_insert_iterator& operator*(); - constexpr front_insert_iterator& operator++(); - constexpr front_insert_iterator operator++(int); - }; - template<class Container> - constexpr front_insert_iterator<Container> front_inserter(Container& x) { - return front_insert_iterator<Container>(x); - } + template<class Container> + class front_insert_iterator { + protected: + Container* container = nullptr; + public: + using iterator_category = output_iterator_tag; + using value_type = void; + using difference_type = ptrdiff_t; + using pointer = void; + using reference = void; + using container_type = Container; + constexpr front_insert_iterator() noexcept = default; + constexpr explicit front_insert_iterator(Container& x); + constexpr front_insert_iterator& operator=(const typename Container::value_type& value); + constexpr front_insert_iterator& operator=(typename Container::value_type&& value); + constexpr front_insert_iterator& operator*(); + constexpr front_insert_iterator& operator++(); + constexpr front_insert_iterator operator++(int); + }; + template<class Container> + constexpr front_insert_iterator<Container> front_inserter(Container& x) { + return front_insert_iterator<Container>(x); + } } // --- string --- namespace std { - template<class charT> struct char_traits; + template<class charT> struct char_traits; - typedef size_t streamsize; + typedef size_t streamsize; - template <class T> class allocator { - public: - allocator() throw(); - typedef size_t size_type; - }; + template <class T> class allocator { + public: + allocator() throw(); + typedef size_t size_type; + }; - template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > - class basic_string { - public: - using value_type = charT; - using reference = value_type&; - using const_reference = const value_type&; - typedef typename Allocator::size_type size_type; - static const size_type npos = -1; + template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > + class basic_string { + public: + using value_type = charT; + using reference = value_type&; + using const_reference = const value_type&; + typedef typename Allocator::size_type size_type; + static const size_type npos = -1; - explicit basic_string(const Allocator& a = Allocator()); - basic_string(const charT* s, const Allocator& a = Allocator()); - template<class InputIterator> basic_string(InputIterator begin, InputIterator end, const Allocator& a = Allocator()); + explicit basic_string(const Allocator& a = Allocator()); + basic_string(const charT* s, const Allocator& a = Allocator()); + template<class InputIterator> basic_string(InputIterator begin, InputIterator end, const Allocator& a = Allocator()); - const charT* c_str() const; - charT* data() noexcept; - size_t length() const; + const charT* c_str() const; + charT* data() noexcept; + size_t length() const; - typedef std::iterator<random_access_iterator_tag, charT> iterator; - typedef std::iterator<random_access_iterator_tag, const charT> const_iterator; + typedef std::iterator<random_access_iterator_tag, charT> iterator; + typedef std::iterator<random_access_iterator_tag, const charT> const_iterator; - iterator begin(); - iterator end(); - const_iterator begin() const; - const_iterator end() const; - const_iterator cbegin() const; - const_iterator cend() const; + iterator begin(); + iterator end(); + const_iterator begin() const; + const_iterator end() const; + const_iterator cbegin() const; + const_iterator cend() const; - void push_back(charT c); + void push_back(charT c); - const charT& front() const; - charT& front(); - const charT& back() const; - charT& back(); + const charT& front() const; + charT& front(); + const charT& back() const; + charT& back(); - const_reference operator[](size_type pos) const; - reference operator[](size_type pos); - const_reference at(size_type n) const; - reference at(size_type n); - template<class T> basic_string& operator+=(const T& t); - basic_string& operator+=(const charT* s); - basic_string& append(const basic_string& str); - basic_string& append(const charT* s); - basic_string& append(size_type n, charT c); - template<class InputIterator> basic_string& append(InputIterator first, InputIterator last); - basic_string& assign(const basic_string& str); - basic_string& assign(size_type n, charT c); - template<class InputIterator> basic_string& assign(InputIterator first, InputIterator last); - basic_string& insert(size_type pos, const basic_string& str); - basic_string& insert(size_type pos, size_type n, charT c); - basic_string& insert(size_type pos, const charT* s); - iterator insert(const_iterator p, size_type n, charT c); - template<class InputIterator> iterator insert(const_iterator p, InputIterator first, InputIterator last); - basic_string& replace(size_type pos1, size_type n1, const basic_string& str); - basic_string& replace(size_type pos1, size_type n1, size_type n2, charT c); - size_type copy(charT* s, size_type n, size_type pos = 0) const; - void clear() noexcept; - basic_string substr(size_type pos = 0, size_type n = npos) const; - void swap(basic_string& s) noexcept/*(allocator_traits<Allocator>::propagate_on_container_swap::value || allocator_traits<Allocator>::is_always_equal::value)*/; - }; + const_reference operator[](size_type pos) const; + reference operator[](size_type pos); + const_reference at(size_type n) const; + reference at(size_type n); + template<class T> basic_string& operator+=(const T& t); + basic_string& operator+=(const charT* s); + basic_string& append(const basic_string& str); + basic_string& append(const charT* s); + basic_string& append(size_type n, charT c); + template<class InputIterator> basic_string& append(InputIterator first, InputIterator last); + basic_string& assign(const basic_string& str); + basic_string& assign(size_type n, charT c); + template<class InputIterator> basic_string& assign(InputIterator first, InputIterator last); + basic_string& insert(size_type pos, const basic_string& str); + basic_string& insert(size_type pos, size_type n, charT c); + basic_string& insert(size_type pos, const charT* s); + iterator insert(const_iterator p, size_type n, charT c); + template<class InputIterator> iterator insert(const_iterator p, InputIterator first, InputIterator last); + basic_string& replace(size_type pos1, size_type n1, const basic_string& str); + basic_string& replace(size_type pos1, size_type n1, size_type n2, charT c); + size_type copy(charT* s, size_type n, size_type pos = 0) const; + void clear() noexcept; + basic_string substr(size_type pos = 0, size_type n = npos) const; + void swap(basic_string& s) noexcept/*(allocator_traits<Allocator>::propagate_on_container_swap::value || allocator_traits<Allocator>::is_always_equal::value)*/; + }; - template<class charT, class traits, class Allocator> basic_string<charT, traits, Allocator> operator+(const basic_string<charT, traits, Allocator>& lhs, const basic_string<charT, traits, Allocator>& rhs); - template<class charT, class traits, class Allocator> basic_string<charT, traits, Allocator> operator+(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs); + template<class charT, class traits, class Allocator> basic_string<charT, traits, Allocator> operator+(const basic_string<charT, traits, Allocator>& lhs, const basic_string<charT, traits, Allocator>& rhs); + template<class charT, class traits, class Allocator> basic_string<charT, traits, Allocator> operator+(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs); - typedef basic_string<char> string; + typedef basic_string<char> string; } // --- istring / ostream / stringstream --- namespace std { - template <class charT, class traits = char_traits<charT> > - class basic_istream /*: virtual public basic_ios<charT,traits> - not needed for this test */ { - public: - using char_type = charT; - using int_type = int; //typename traits::int_type; + template <class charT, class traits = char_traits<charT> > + class basic_istream /*: virtual public basic_ios<charT,traits> - not needed for this test */ { + public: + using char_type = charT; + using int_type = int; //typename traits::int_type; - basic_istream<charT, traits>& operator>>(int& n); + basic_istream<charT, traits>& operator>>(int& n); - int_type get(); - basic_istream<charT, traits>& get(char_type& c); - basic_istream<charT, traits>& get(char_type* s, streamsize n); - int_type peek(); - basic_istream<charT, traits>& read (char_type* s, streamsize n); - streamsize readsome(char_type* s, streamsize n); - basic_istream<charT, traits>& putback(char_type c); - basic_istream<charT,traits>& unget(); + int_type get(); + basic_istream<charT, traits>& get(char_type& c); + basic_istream<charT, traits>& get(char_type* s, streamsize n); + int_type peek(); + basic_istream<charT, traits>& read (char_type* s, streamsize n); + streamsize readsome(char_type* s, streamsize n); + basic_istream<charT, traits>& putback(char_type c); + basic_istream<charT,traits>& unget(); - basic_istream<charT,traits>& getline(char_type* s, streamsize n); - basic_istream<charT,traits>& getline(char_type* s, streamsize n, char_type delim); - }; + basic_istream<charT,traits>& getline(char_type* s, streamsize n); + basic_istream<charT,traits>& getline(char_type* s, streamsize n, char_type delim); + }; - template<class charT, class traits> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>&, charT*); - template<class charT, class traits, class Allocator> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str); + template<class charT, class traits> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>&, charT*); + template<class charT, class traits, class Allocator> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str); - template<class charT, class traits, class Allocator> basic_istream<charT,traits>& getline(basic_istream<charT,traits>& is, basic_string<charT,traits,Allocator>& str, charT delim); - template<class charT, class traits, class Allocator> basic_istream<charT,traits>& getline(basic_istream<charT,traits>& is, basic_string<charT,traits,Allocator>& str); + template<class charT, class traits, class Allocator> basic_istream<charT,traits>& getline(basic_istream<charT,traits>& is, basic_string<charT,traits,Allocator>& str, charT delim); + template<class charT, class traits, class Allocator> basic_istream<charT,traits>& getline(basic_istream<charT,traits>& is, basic_string<charT,traits,Allocator>& str); - template <class charT, class traits = char_traits<charT> > - class basic_ostream /*: virtual public basic_ios<charT,traits> - not needed for this test */ { - public: - typedef charT char_type; + template <class charT, class traits = char_traits<charT> > + class basic_ostream /*: virtual public basic_ios<charT,traits> - not needed for this test */ { + public: + typedef charT char_type; - basic_ostream<charT, traits>& operator<<(int n); + basic_ostream<charT, traits>& operator<<(int n); - basic_ostream<charT, traits>& put(char_type c); - basic_ostream<charT, traits>& write(const char_type* s, streamsize n); - basic_ostream<charT,traits>& flush(); - }; + basic_ostream<charT, traits>& put(char_type c); + basic_ostream<charT, traits>& write(const char_type* s, streamsize n); + basic_ostream<charT,traits>& flush(); + }; - template<class charT, class traits> basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const charT*); - template<class charT, class traits, class Allocator> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, const basic_string<charT, traits, Allocator>& str); + template<class charT, class traits> basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const charT*); + template<class charT, class traits, class Allocator> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, const basic_string<charT, traits, Allocator>& str); - template<class charT, class traits = char_traits<charT>> - class basic_iostream : public basic_istream<charT, traits>, public basic_ostream<charT, traits> { - public: - }; + template<class charT, class traits = char_traits<charT>> + class basic_iostream : public basic_istream<charT, traits>, public basic_ostream<charT, traits> { + public: + }; - template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT>> - class basic_stringstream : public basic_iostream<charT, traits> { - public: - explicit basic_stringstream(/*ios_base::openmode which = ios_base::out|ios_base::in - not needed for this test*/); - explicit basic_stringstream( const basic_string<charT, traits, Allocator>& str/*, ios_base::openmode which = ios_base::out | ios_base::in*/); - basic_stringstream(const basic_stringstream& rhs) = delete; - basic_stringstream(basic_stringstream&& rhs); - basic_stringstream& operator=(const basic_stringstream& rhs) = delete; - basic_stringstream& operator=(basic_stringstream&& rhs); + template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT>> + class basic_stringstream : public basic_iostream<charT, traits> { + public: + explicit basic_stringstream(/*ios_base::openmode which = ios_base::out|ios_base::in - not needed for this test*/); + explicit basic_stringstream( const basic_string<charT, traits, Allocator>& str/*, ios_base::openmode which = ios_base::out | ios_base::in*/); + basic_stringstream(const basic_stringstream& rhs) = delete; + basic_stringstream(basic_stringstream&& rhs); + basic_stringstream& operator=(const basic_stringstream& rhs) = delete; + basic_stringstream& operator=(basic_stringstream&& rhs); - void swap(basic_stringstream& rhs); + void swap(basic_stringstream& rhs); - basic_string<charT, traits, Allocator> str() const; - void str(const basic_string<charT, traits, Allocator>& str); - }; + basic_string<charT, traits, Allocator> str() const; + void str(const basic_string<charT, traits, Allocator>& str); + }; - typedef basic_istream<char> istream; - typedef basic_ostream<char> ostream; - extern istream cin; - extern ostream cout; + typedef basic_istream<char> istream; + typedef basic_ostream<char> ostream; + extern istream cin; + extern ostream cout; - using stringstream = basic_stringstream<char>; + using stringstream = basic_stringstream<char>; } // --- vector --- namespace std { - template<class T, class Allocator = allocator<T>> - class vector { - public: - using value_type = T; - using reference = value_type&; - using const_reference = const value_type&; - using size_type = unsigned int; - using iterator = std::iterator<random_access_iterator_tag, T>; - using const_iterator = std::iterator<random_access_iterator_tag, const T>; + template<class T, class Allocator = allocator<T>> + class vector { + public: + using value_type = T; + using reference = value_type&; + using const_reference = const value_type&; + using size_type = unsigned int; + using iterator = std::iterator<random_access_iterator_tag, T>; + using const_iterator = std::iterator<random_access_iterator_tag, const T>; - vector() noexcept(noexcept(Allocator())); + vector() noexcept(noexcept(Allocator())); vector(const std::vector<T, Allocator>&); - explicit vector(const Allocator&) noexcept; - explicit vector(size_type n, const Allocator& = Allocator()); - vector(size_type n, const T& value, const Allocator& = Allocator()); - template<class InputIterator, class IteratorCategory = typename InputIterator::iterator_category> vector(InputIterator first, InputIterator last, const Allocator& = Allocator()); - // use of `iterator_category` makes sure InputIterator is (probably) an iterator, and not an `int` or - // similar that should match a different overload (SFINAE). - ~vector(); + explicit vector(const Allocator&) noexcept; + explicit vector(size_type n, const Allocator& = Allocator()); + vector(size_type n, const T& value, const Allocator& = Allocator()); + template<class InputIterator, class IteratorCategory = typename InputIterator::iterator_category> vector(InputIterator first, InputIterator last, const Allocator& = Allocator()); + // use of `iterator_category` makes sure InputIterator is (probably) an iterator, and not an `int` or + // similar that should match a different overload (SFINAE). + ~vector(); - vector& operator=(const vector& x); - vector& operator=(vector&& x) noexcept/*(allocator_traits<Allocator>::propagate_on_container_move_assignment::value || allocator_traits<Allocator>::is_always_equal::value)*/; - template<class InputIterator, class IteratorCategory = typename InputIterator::iterator_category> void assign(InputIterator first, InputIterator last); - // use of `iterator_category` makes sure InputIterator is (probably) an iterator, and not an `int` or - // similar that should match a different overload (SFINAE). - void assign(size_type n, const T& u); + vector& operator=(const vector& x); + vector& operator=(vector&& x) noexcept/*(allocator_traits<Allocator>::propagate_on_container_move_assignment::value || allocator_traits<Allocator>::is_always_equal::value)*/; + template<class InputIterator, class IteratorCategory = typename InputIterator::iterator_category> void assign(InputIterator first, InputIterator last); + // use of `iterator_category` makes sure InputIterator is (probably) an iterator, and not an `int` or + // similar that should match a different overload (SFINAE). + void assign(size_type n, const T& u); - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; - size_type size() const noexcept; + size_type size() const noexcept; - reference operator[](size_type n); - const_reference operator[](size_type n) const; - const_reference at(size_type n) const; - reference at(size_type n); - reference front(); - const_reference front() const; - reference back(); - const_reference back() const; + reference operator[](size_type n); + const_reference operator[](size_type n) const; + const_reference at(size_type n) const; + reference at(size_type n); + reference front(); + const_reference front() const; + reference back(); + const_reference back() const; - T* data() noexcept; - const T* data() const noexcept; + T* data() noexcept; + const T* data() const noexcept; - void push_back(const T& x); - void push_back(T&& x); + void push_back(const T& x); + void push_back(T&& x); - iterator insert(const_iterator position, const T& x); - iterator insert(const_iterator position, T&& x); - iterator insert(const_iterator position, size_type n, const T& x); - template<class InputIterator> iterator insert(const_iterator position, InputIterator first, InputIterator last); + iterator insert(const_iterator position, const T& x); + iterator insert(const_iterator position, T&& x); + iterator insert(const_iterator position, size_type n, const T& x); + template<class InputIterator> iterator insert(const_iterator position, InputIterator first, InputIterator last); - template <class... Args> iterator emplace (const_iterator position, Args&&... args); - template <class... Args> void emplace_back (Args&&... args); + template <class... Args> iterator emplace (const_iterator position, Args&&... args); + template <class... Args> void emplace_back (Args&&... args); - void swap(vector&) noexcept/*(allocator_traits<Allocator>::propagate_on_container_swap::value || allocator_traits<Allocator>::is_always_equal::value)*/; + void swap(vector&) noexcept/*(allocator_traits<Allocator>::propagate_on_container_swap::value || allocator_traits<Allocator>::is_always_equal::value)*/; - void clear() noexcept; - }; + void clear() noexcept; + }; } // --- make_shared / make_unique --- namespace std { - template<typename T> - class shared_ptr { - public: - shared_ptr() noexcept; - explicit shared_ptr(T*); - shared_ptr(const shared_ptr&) noexcept; - template<class U> shared_ptr(const shared_ptr<U>&) noexcept; - template<class U> shared_ptr(shared_ptr<U>&&) noexcept; + template<typename T> + class shared_ptr { + public: + shared_ptr() noexcept; + explicit shared_ptr(T*); + shared_ptr(const shared_ptr&) noexcept; + template<class U> shared_ptr(const shared_ptr<U>&) noexcept; + template<class U> shared_ptr(shared_ptr<U>&&) noexcept; - shared_ptr<T>& operator=(const shared_ptr<T>&) noexcept; - shared_ptr<T>& operator=(shared_ptr<T>&&) noexcept; + shared_ptr<T>& operator=(const shared_ptr<T>&) noexcept; + shared_ptr<T>& operator=(shared_ptr<T>&&) noexcept; - T& operator*() const noexcept; - T* operator->() const noexcept; + T& operator*() const noexcept; + T* operator->() const noexcept; - T* get() const noexcept; - }; + T* get() const noexcept; + }; - template<typename T> - class unique_ptr { - public: - constexpr unique_ptr() noexcept; - explicit unique_ptr(T*) noexcept; - unique_ptr(unique_ptr<T>&&) noexcept; + template<typename T> + class unique_ptr { + public: + constexpr unique_ptr() noexcept; + explicit unique_ptr(T*) noexcept; + unique_ptr(unique_ptr<T>&&) noexcept; - unique_ptr<T>& operator=(unique_ptr<T>&&) noexcept; + unique_ptr<T>& operator=(unique_ptr<T>&&) noexcept; - T& operator*() const; - T* operator->() const noexcept; + T& operator*() const; + T* operator->() const noexcept; - T* get() const noexcept; - }; + T* get() const noexcept; + }; - template<typename T, class... Args> unique_ptr<T> make_unique(Args&&...); + template<typename T, class... Args> unique_ptr<T> make_unique(Args&&...); - template<typename T, class... Args> shared_ptr<T> make_shared(Args&&...); + template<typename T, class... Args> shared_ptr<T> make_shared(Args&&...); } // --- pair --- namespace std { - template <class T1, class T2> - struct pair { - typedef T1 first_type; - typedef T2 second_type; + template <class T1, class T2> + struct pair { + typedef T1 first_type; + typedef T2 second_type; - T1 first; - T2 second; - pair(); - pair(const T1& x, const T2& y); - template<class U, class V> pair(const pair<U, V> &p); + T1 first; + T2 second; + pair(); + pair(const T1& x, const T2& y); + template<class U, class V> pair(const pair<U, V> &p); - void swap(pair& p) /*noexcept(...)*/; - }; + void swap(pair& p) /*noexcept(...)*/; + }; - template<class T1, class T2> constexpr pair<decay_t<T1>, decay_t<T2>> make_pair(T1&& x, T2&& y) { - return pair<decay_t<T1>, decay_t<T2>>(std::forward<T1>(x), std::forward<T2>(y)); - } + template<class T1, class T2> constexpr pair<decay_t<T1>, decay_t<T2>> make_pair(T1&& x, T2&& y) { + return pair<decay_t<T1>, decay_t<T2>>(std::forward<T1>(x), std::forward<T2>(y)); + } } // --- map --- namespace std { - template<class T = void> struct less; + template<class T = void> struct less; - template<class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key, T>>> - class map { - public: - using key_type = Key; - using mapped_type = T; - using value_type = pair<const Key, T>; - using iterator = std::iterator<random_access_iterator_tag, value_type >; - using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; + template<class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key, T>>> + class map { + public: + using key_type = Key; + using mapped_type = T; + using value_type = pair<const Key, T>; + using iterator = std::iterator<random_access_iterator_tag, value_type >; + using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; - map(); - map(const map& x); - map(map&& x); - ~map(); + map(); + map(const map& x); + map(map&& x); + ~map(); - map& operator=(const map& x); - map& operator=(map&& x) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Compare>)*/; + map& operator=(const map& x); + map& operator=(map&& x) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Compare>)*/; - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; - T& operator[](const key_type& x); - T& operator[](key_type&& x); - T& at(const key_type& x); - const T& at(const key_type& x) const; + T& operator[](const key_type& x); + T& operator[](key_type&& x); + T& at(const key_type& x); + const T& at(const key_type& x) const; - template<class... Args> pair<iterator, bool> emplace(Args&&... args); - template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); + template<class... Args> pair<iterator, bool> emplace(Args&&... args); + template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); - pair<iterator, bool> insert(const value_type& x); - pair<iterator, bool> insert(value_type&& x); - iterator insert(const_iterator position, const value_type& x); - iterator insert(const_iterator position, value_type&& x); + pair<iterator, bool> insert(const value_type& x); + pair<iterator, bool> insert(value_type&& x); + iterator insert(const_iterator position, const value_type& x); + iterator insert(const_iterator position, value_type&& x); - template<class... Args> pair<iterator, bool> try_emplace(const key_type& k, Args&&... args); - template<class... Args> pair<iterator, bool> try_emplace(key_type&& k, Args&&... args); - template<class... Args> iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); - template<class... Args> iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args); - template<class M> pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj); - template<class M> pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj); - template<class M> iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj); - template<class M> iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj); + template<class... Args> pair<iterator, bool> try_emplace(const key_type& k, Args&&... args); + template<class... Args> pair<iterator, bool> try_emplace(key_type&& k, Args&&... args); + template<class... Args> iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); + template<class... Args> iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args); + template<class M> pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj); + template<class M> pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj); + template<class M> iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj); + template<class M> iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj); - iterator erase(iterator position); - iterator erase(const_iterator position); - iterator erase(const_iterator first, const_iterator last); - void swap(map&) /*noexcept(/*==allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Compare>)*/; - void clear() noexcept; + iterator erase(iterator position); + iterator erase(const_iterator position); + iterator erase(const_iterator first, const_iterator last); + void swap(map&) /*noexcept(/*==allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Compare>)*/; + void clear() noexcept; - template<class C2> void merge(map<Key, T, C2, Allocator>& source); - template<class C2> void merge(map<Key, T, C2, Allocator>&& source); + template<class C2> void merge(map<Key, T, C2, Allocator>& source); + template<class C2> void merge(map<Key, T, C2, Allocator>&& source); - iterator find(const key_type& x); - const_iterator find(const key_type& x) const; + iterator find(const key_type& x); + const_iterator find(const key_type& x) const; - iterator lower_bound(const key_type& x); - const_iterator lower_bound(const key_type& x) const; - iterator upper_bound(const key_type& x); - const_iterator upper_bound(const key_type& x) const; + iterator lower_bound(const key_type& x); + const_iterator lower_bound(const key_type& x) const; + iterator upper_bound(const key_type& x); + const_iterator upper_bound(const key_type& x) const; - pair<iterator, iterator> equal_range(const key_type& x); - pair<const_iterator, const_iterator> equal_range(const key_type& x) const; - }; + pair<iterator, iterator> equal_range(const key_type& x); + pair<const_iterator, const_iterator> equal_range(const key_type& x) const; + }; - template<class T> struct hash; - template<class T = void> struct equal_to; + template<class T> struct hash; + template<class T = void> struct equal_to; - template<class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, class Allocator = allocator<pair<const Key, T>>> - class unordered_map { - public: - using key_type = Key; - using mapped_type = T; - using value_type = pair<const Key, T>; - using iterator = std::iterator<random_access_iterator_tag, value_type >; - using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; + template<class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, class Allocator = allocator<pair<const Key, T>>> + class unordered_map { + public: + using key_type = Key; + using mapped_type = T; + using value_type = pair<const Key, T>; + using iterator = std::iterator<random_access_iterator_tag, value_type >; + using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; - unordered_map(); - unordered_map(const unordered_map&); - unordered_map(unordered_map&&); - ~unordered_map(); + unordered_map(); + unordered_map(const unordered_map&); + unordered_map(unordered_map&&); + ~unordered_map(); - unordered_map& operator=(const unordered_map&); - unordered_map& operator=(unordered_map&&) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Hash> && is_nothrow_move_assignable_v<Pred>)*/; + unordered_map& operator=(const unordered_map&); + unordered_map& operator=(unordered_map&&) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Hash> && is_nothrow_move_assignable_v<Pred>)*/; - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; - mapped_type& operator[](const key_type& k); - mapped_type& operator[](key_type&& k); - mapped_type& at(const key_type& k); - const mapped_type& at(const key_type& k) const; - - template<class... Args> pair<iterator, bool> emplace(Args&&... args); - template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); + mapped_type& operator[](const key_type& k); + mapped_type& operator[](key_type&& k); + mapped_type& at(const key_type& k); + const mapped_type& at(const key_type& k) const; + + template<class... Args> pair<iterator, bool> emplace(Args&&... args); + template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); - pair<iterator, bool> insert(const value_type& obj); - pair<iterator, bool> insert(value_type&& obj); - iterator insert(const_iterator hint, const value_type& obj); - iterator insert(const_iterator hint, value_type&& obj); + pair<iterator, bool> insert(const value_type& obj); + pair<iterator, bool> insert(value_type&& obj); + iterator insert(const_iterator hint, const value_type& obj); + iterator insert(const_iterator hint, value_type&& obj); - template<class... Args> pair<iterator, bool> try_emplace(const key_type& k, Args&&... args); - template<class... Args> pair<iterator, bool> try_emplace(key_type&& k, Args&&... args); - template<class... Args> iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); - template<class... Args> iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args); - template<class M> pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj); - template<class M> pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj); - template<class M> iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj); - template<class M> iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj); + template<class... Args> pair<iterator, bool> try_emplace(const key_type& k, Args&&... args); + template<class... Args> pair<iterator, bool> try_emplace(key_type&& k, Args&&... args); + template<class... Args> iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); + template<class... Args> iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args); + template<class M> pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj); + template<class M> pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj); + template<class M> iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj); + template<class M> iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj); - iterator erase(iterator position); - iterator erase(const_iterator position); - iterator erase(const_iterator first, const_iterator last); - void swap(unordered_map&) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Hash> && is_nothrow_swappable_v<Pred>)*/; - void clear() noexcept; + iterator erase(iterator position); + iterator erase(const_iterator position); + iterator erase(const_iterator first, const_iterator last); + void swap(unordered_map&) /*noexcept(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Hash> && is_nothrow_swappable_v<Pred>)*/; + void clear() noexcept; - template<class H2, class P2> void merge(unordered_map<Key, T, H2, P2, Allocator>& source); - template<class H2, class P2> void merge(unordered_map<Key, T, H2, P2, Allocator>&& source); + template<class H2, class P2> void merge(unordered_map<Key, T, H2, P2, Allocator>& source); + template<class H2, class P2> void merge(unordered_map<Key, T, H2, P2, Allocator>&& source); - iterator find(const key_type& k); - const_iterator find(const key_type& k) const; + iterator find(const key_type& k); + const_iterator find(const key_type& k) const; - pair<iterator, iterator> equal_range(const key_type& k); - pair<const_iterator, const_iterator> equal_range(const key_type& k) const; - }; + pair<iterator, iterator> equal_range(const key_type& k); + pair<const_iterator, const_iterator> equal_range(const key_type& k) const; + }; }; // --- set --- namespace std { - template<class Key, class Compare = less<Key>, class Allocator = allocator<Key>> - class set { - public: - using key_type = Key; - using value_type = Key; - using size_type = size_t; - using allocator_type = Allocator; - using iterator = std::iterator<random_access_iterator_tag, value_type >; - using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; + template<class Key, class Compare = less<Key>, class Allocator = allocator<Key>> + class set { + public: + using key_type = Key; + using value_type = Key; + using size_type = size_t; + using allocator_type = Allocator; + using iterator = std::iterator<random_access_iterator_tag, value_type >; + using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; - set(); - set(const set& x); - set(set&& x); - template<class InputIterator> set(InputIterator first, InputIterator last/*, const Compare& comp = Compare(), const Allocator& = Allocator()*/); - ~set(); - - set& operator=(const set& x); - set& operator=(set&& x) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Compare>)*/; + set(); + set(const set& x); + set(set&& x); + template<class InputIterator> set(InputIterator first, InputIterator last/*, const Compare& comp = Compare(), const Allocator& = Allocator()*/); + ~set(); + + set& operator=(const set& x); + set& operator=(set&& x) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Compare>)*/; - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; - template<class... Args> pair<iterator, bool> emplace(Args&&... args); - template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); - pair<iterator,bool> insert(const value_type& x); - pair<iterator,bool> insert(value_type&& x); - iterator insert(const_iterator position, const value_type& x); - iterator insert(const_iterator position, value_type&& x); - template<class InputIterator> void insert(InputIterator first, InputIterator last); - - iterator erase(iterator position); - iterator erase(const_iterator position); - iterator erase(const_iterator first, const_iterator last); - void swap(set&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Compare>)*/; - void clear() noexcept; + template<class... Args> pair<iterator, bool> emplace(Args&&... args); + template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); + pair<iterator,bool> insert(const value_type& x); + pair<iterator,bool> insert(value_type&& x); + iterator insert(const_iterator position, const value_type& x); + iterator insert(const_iterator position, value_type&& x); + template<class InputIterator> void insert(InputIterator first, InputIterator last); + + iterator erase(iterator position); + iterator erase(const_iterator position); + iterator erase(const_iterator first, const_iterator last); + void swap(set&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Compare>)*/; + void clear() noexcept; - template<class C2> void merge(set<Key, C2, Allocator>& source); - template<class C2> void merge(set<Key, C2, Allocator>&& source); + template<class C2> void merge(set<Key, C2, Allocator>& source); + template<class C2> void merge(set<Key, C2, Allocator>&& source); - iterator find(const key_type& x); - const_iterator find(const key_type& x) const; - - iterator lower_bound(const key_type& x); - const_iterator lower_bound(const key_type& x) const; - iterator upper_bound(const key_type& x); - const_iterator upper_bound(const key_type& x) const; - pair<iterator, iterator> equal_range(const key_type& x); - pair<const_iterator, const_iterator> equal_range(const key_type& x) const; - }; + iterator find(const key_type& x); + const_iterator find(const key_type& x) const; + + iterator lower_bound(const key_type& x); + const_iterator lower_bound(const key_type& x) const; + iterator upper_bound(const key_type& x); + const_iterator upper_bound(const key_type& x) const; + pair<iterator, iterator> equal_range(const key_type& x); + pair<const_iterator, const_iterator> equal_range(const key_type& x) const; + }; - template<class Key, class Hash = hash<Key>, class Pred = equal_to<Key>, class Allocator = allocator<Key>> - class unordered_set { - public: - using key_type = Key; - using value_type = Key; - using hasher = Hash; - using key_equal = Pred; - using allocator_type = Allocator; - using size_type = size_t; - using iterator = std::iterator<random_access_iterator_tag, value_type >; - using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; + template<class Key, class Hash = hash<Key>, class Pred = equal_to<Key>, class Allocator = allocator<Key>> + class unordered_set { + public: + using key_type = Key; + using value_type = Key; + using hasher = Hash; + using key_equal = Pred; + using allocator_type = Allocator; + using size_type = size_t; + using iterator = std::iterator<random_access_iterator_tag, value_type >; + using const_iterator = std::iterator<random_access_iterator_tag, const value_type >; - unordered_set(); - unordered_set(const unordered_set&); - unordered_set(unordered_set&&); - template<class InputIterator> unordered_set(InputIterator f, InputIterator l, size_type n = 0/*, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()*/); - ~unordered_set(); + unordered_set(); + unordered_set(const unordered_set&); + unordered_set(unordered_set&&); + template<class InputIterator> unordered_set(InputIterator f, InputIterator l, size_type n = 0/*, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()*/); + ~unordered_set(); - unordered_set& operator=(const unordered_set&); - unordered_set& operator=(unordered_set&&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Hash> && is_nothrow_move_assignable_v<Pred>)*/; - - iterator begin() noexcept; - const_iterator begin() const noexcept; - iterator end() noexcept; - const_iterator end() const noexcept; + unordered_set& operator=(const unordered_set&); + unordered_set& operator=(unordered_set&&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_move_assignable_v<Hash> && is_nothrow_move_assignable_v<Pred>)*/; + + iterator begin() noexcept; + const_iterator begin() const noexcept; + iterator end() noexcept; + const_iterator end() const noexcept; - template<class... Args> pair<iterator, bool> emplace(Args&&... args); - template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); - pair<iterator, bool> insert(const value_type& obj); - pair<iterator, bool> insert(value_type&& obj); - iterator insert(const_iterator hint, const value_type& obj); - iterator insert(const_iterator hint, value_type&& obj); - template<class InputIterator> void insert(InputIterator first, InputIterator last); + template<class... Args> pair<iterator, bool> emplace(Args&&... args); + template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args); + pair<iterator, bool> insert(const value_type& obj); + pair<iterator, bool> insert(value_type&& obj); + iterator insert(const_iterator hint, const value_type& obj); + iterator insert(const_iterator hint, value_type&& obj); + template<class InputIterator> void insert(InputIterator first, InputIterator last); - iterator erase(iterator position); - iterator erase(const_iterator position); - iterator erase(const_iterator first, const_iterator last); - void swap(unordered_set&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Hash> && is_nothrow_swappable_v<Pred>)*/; - void clear() noexcept; + iterator erase(iterator position); + iterator erase(const_iterator position); + iterator erase(const_iterator first, const_iterator last); + void swap(unordered_set&) noexcept/*(allocator_traits<Allocator>::is_always_equal::value && is_nothrow_swappable_v<Hash> && is_nothrow_swappable_v<Pred>)*/; + void clear() noexcept; - template<class H2, class P2> void merge(unordered_set<Key, H2, P2, Allocator>& source); - template<class H2, class P2> void merge(unordered_set<Key, H2, P2, Allocator>&& source); + template<class H2, class P2> void merge(unordered_set<Key, H2, P2, Allocator>& source); + template<class H2, class P2> void merge(unordered_set<Key, H2, P2, Allocator>&& source); - iterator find(const key_type& k); - const_iterator find(const key_type& k) const; - pair<iterator, iterator> equal_range(const key_type& k); - pair<const_iterator, const_iterator> equal_range(const key_type& k) const; - }; + iterator find(const key_type& k); + const_iterator find(const key_type& k) const; + pair<iterator, iterator> equal_range(const key_type& k); + pair<const_iterator, const_iterator> equal_range(const key_type& k) const; + }; } std::vector<std::vector<int>> returnValue(); @@ -668,11 +668,11 @@ std::vector<std::vector<int>> external_by_const_ref(const std::vector<std::vecto // *: Will be detected once extract destruction of unnamed temporaries and generate IR for them const std::vector<std::vector<int>>& return_self_by_ref(const std::vector<std::vector<int>>& v) { - return v; + return v; } std::vector<std::vector<int>> return_self_by_value(const std::vector<std::vector<int>>& v) { - return v; + return v; } void test() { @@ -686,34 +686,34 @@ void test() { for (auto x : returnRef()[0]) {} // GOOD for (auto x : returnRef().at(0)) {} // GOOD - for(auto it = returnValue().begin(); it != returnValue().end(); ++it) {} // BAD + for(auto it = returnValue().begin(); it != returnValue().end(); ++it) {} // BAD - { - auto v = returnValue(); - for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD - } + { + auto v = returnValue(); + for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD + } - { - auto&& v = returnValue(); - for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD - } + { + auto&& v = returnValue(); + for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD + } - { - auto&& v = returnValue()[0]; - for(auto it = v.begin(); it != v.end(); ++it) {} // BAD [NOT DETECTED] (see *) - } - - { - auto&& v = returnRef(); - for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD - } + { + auto&& v = returnValue()[0]; + for(auto it = v.begin(); it != v.end(); ++it) {} // BAD [NOT DETECTED] (see *) + } + + { + auto&& v = returnRef(); + for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD + } - { - auto&& v = returnRef()[0]; - for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD - } + { + auto&& v = returnRef()[0]; + for(auto it = v.begin(); it != v.end(); ++it) {} // GOOD + } - for (auto x : return_self_by_ref(returnValue())) {} // BAD [NOT DETECTED] (see *) + for (auto x : return_self_by_ref(returnValue())) {} // BAD [NOT DETECTED] (see *) - for (auto x : return_self_by_value(returnValue())) {} // GOOD + for (auto x : return_self_by_value(returnValue())) {} // GOOD } From af7b1bc425ae521df6fda104a693372931d0f357 Mon Sep 17 00:00:00 2001 From: Chris Smowton <smowton@github.com> Date: Wed, 13 Mar 2024 10:10:23 +0000 Subject: [PATCH 220/309] Java: add test for partial gradle wrapper without gradle on the path Note I had to mimic the actual absence of Gradle by testing the case where it fails, but have manually verified a missing binary works too. --- .../.gitattributes | 6 + .../.gitignore | 5 + .../build.gradle | 30 +++ .../force_sequential_test_execution | 3 + .../gradle/verification-metadata.xml | 7 + .../gradle/wrapper/gradle-wrapper.properties | 5 + .../gradlew | 185 ++++++++++++++++++ .../gradlew.bat | 89 +++++++++ .../settings.gradle | 19 ++ .../src/main/java/com/example/App.java | 14 ++ .../src/test/java/com/example/AppTest.java | 14 ++ .../test.expected | 5 + .../test.py | 31 +++ .../test.ql | 7 + 14 files changed, 420 insertions(+) create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/.gitattributes create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/.gitignore create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/build.gradle create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/force_sequential_test_execution create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradle/verification-metadata.xml create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradle/wrapper/gradle-wrapper.properties create mode 100755 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradlew create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradlew.bat create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/settings.gradle create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/src/main/java/com/example/App.java create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/src/test/java/com/example/AppTest.java create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.expected create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.py create mode 100644 java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.ql diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/.gitattributes b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/.gitattributes new file mode 100644 index 00000000000..00a51aff5e5 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/.gitattributes @@ -0,0 +1,6 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# These are explicitly windows files and should use crlf +*.bat text eol=crlf + diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/.gitignore b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/.gitignore new file mode 100644 index 00000000000..1b6985c0094 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/.gitignore @@ -0,0 +1,5 @@ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/build.gradle b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/build.gradle new file mode 100644 index 00000000000..071a12b7691 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/build.gradle @@ -0,0 +1,30 @@ +/* + * This build file was auto generated by running the Gradle 'init' task + * by 'arthur' at '28/11/20 22:29' with Gradle 3.0 + * + * This generated file contains a sample Java project to get you started. + * For more details take a look at the Java Quickstart chapter in the Gradle + * user guide available at https://docs.gradle.org/3.0/userguide/tutorial_java_projects.html + */ + +// Apply the java plugin to add support for Java +apply plugin: 'java' + +// In this section you declare where to find the dependencies of your project +repositories { + // Use 'jcenter' for resolving your dependencies. + // You can declare any Maven/Ivy/file repository here. + jcenter() +} + +// In this section you declare the dependencies for your production and test code +dependencies { + // The production code uses the SLF4J logging API at compile time + compile 'org.slf4j:slf4j-api:1.7.21' + + // Declare the dependency for your favourite test framework you want to use in your tests. + // TestNG is also supported by the Gradle Test task. Just change the + // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add + // 'test.useTestNG()' to your build script. + testCompile 'junit:junit:4.12' +} diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/force_sequential_test_execution b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/force_sequential_test_execution new file mode 100644 index 00000000000..b0e2500b259 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/force_sequential_test_execution @@ -0,0 +1,3 @@ +# We currently have a bug where gradle tests become flaky when executed in parallel +# - sometimes, gradle fails to connect to the gradle daemon. +# Therefore, force this test to run sequentially. diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradle/verification-metadata.xml b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradle/verification-metadata.xml new file mode 100644 index 00000000000..14a69b8178b --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradle/verification-metadata.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<verification-metadata> + <configuration> + <verify-metadata>true</verify-metadata> + <verify-signatures>false</verify-signatures> + </configuration> +</verification-metadata> \ No newline at end of file diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradle/wrapper/gradle-wrapper.properties b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000000..12d38de6a48 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradlew b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradlew new file mode 100755 index 00000000000..4f906e0c811 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradlew.bat b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradlew.bat new file mode 100644 index 00000000000..107acd32c4e --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/settings.gradle b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/settings.gradle new file mode 100644 index 00000000000..233410459f6 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/settings.gradle @@ -0,0 +1,19 @@ +/* + * This settings file was auto generated by the Gradle buildInit task + * by 'arthur' at '28/11/20 22:29' with Gradle 3.0 + * + * The settings file is used to specify which projects to include in your build. + * In a single project build this file can be empty or even removed. + * + * Detailed information about configuring a multi-project build in Gradle can be found + * in the user guide at https://docs.gradle.org/3.0/userguide/multi_project_builds.html + */ + +/* +// To declare projects as part of a multi-project build use the 'include' method +include 'shared' +include 'api' +include 'services:webservice' +*/ + +rootProject.name = 'gradle-sample' diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/src/main/java/com/example/App.java b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/src/main/java/com/example/App.java new file mode 100644 index 00000000000..1c13f7d885e --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/src/main/java/com/example/App.java @@ -0,0 +1,14 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ +package com.example; + +public class App { + public String getGreeting() { + return "Hello world."; + } + + public static void main(String[] args) { + System.out.println(new App().getGreeting()); + } +} diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/src/test/java/com/example/AppTest.java b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/src/test/java/com/example/AppTest.java new file mode 100644 index 00000000000..813bc5e1a2a --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/src/test/java/com/example/AppTest.java @@ -0,0 +1,14 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ +package com.example; + +import org.junit.Test; +import static org.junit.Assert.*; + +public class AppTest { + @Test public void testAppHasAGreeting() { + App classUnderTest = new App(); + assertNotNull("app should have a greeting", classUnderTest.getGreeting()); + } +} diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.expected b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.expected new file mode 100644 index 00000000000..82f7ee275a1 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.expected @@ -0,0 +1,5 @@ +xmlFiles +| gradle/verification-metadata.xml:0:0:0:0 | gradle/verification-metadata.xml | +#select +| src/main/java/com/example/App.java:0:0:0:0 | App | +| src/test/java/com/example/AppTest.java:0:0:0:0 | AppTest | diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.py b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.py new file mode 100644 index 00000000000..846a89e8703 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.py @@ -0,0 +1,31 @@ +import sys + +from create_database_utils import * +import shutil +import os.path +import tempfile +import platform + +#The version of gradle used doesn't work on java 17 +try_use_java11() + +gradle_override_dir = tempfile.mkdtemp() +if platform.system() == "Windows": + with open(os.path.join(gradle_override_dir, "gradle.bat"), "w") as f: + f.write("@echo off\nexit /b 2\n") +else: + gradlepath = os.path.join(gradle_override_dir, "gradle") + with open(gradlepath, "w") as f: + f.write("#!/bin/bash\nexit 1\n") + os.chmod(gradlepath, 0o0755) + +oldpath = os.getenv("PATH") +os.environ["PATH"] = gradle_override_dir + os.pathsep + oldpath + +try: + run_codeql_database_create([], lang="java") +finally: + try: + shutil.rmtree(gradle_override_dir) + except Exception as e: + pass diff --git a/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.ql b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.ql new file mode 100644 index 00000000000..c11b8fba707 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/partial-gradle-sample-without-gradle/test.ql @@ -0,0 +1,7 @@ +import java + +from File f +where f.isSourceFile() +select f + +query predicate xmlFiles(XmlFile x) { any() } From e373341f62a133b45a1f86cdc8f730d81d4c468f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 15:47:38 +0000 Subject: [PATCH 221/309] C++: Add more tests. --- .../query-tests/Security/CWE/CWE-416/test.cpp | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp index 3e2d7482975..506096ae144 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp @@ -717,3 +717,52 @@ void test() { for (auto x : return_self_by_value(returnValue())) {} // GOOD } + +template<typename T> +void iterate(const std::vector<T>& v) { + for (auto x : v) {} +} + +std::vector<int>& ref_to_first_in_returnValue_1() { + return returnValue()[0]; // BAD [NOT DETECTED] (see *) +} + +std::vector<int>& ref_to_first_in_returnValue_2() { + return returnValue()[0]; // BAD [NOT DETECTED] +} + +std::vector<int>& ref_to_first_in_returnValue_3() { + return returnValue()[0]; // BAD [NOT DETECTED] (see *) +} + +std::vector<int> first_in_returnValue_1() { + return returnValue()[0]; // GOOD +} + +std::vector<int> first_in_returnValue_2() { + return returnValue()[0]; // GOOD +} + +void test2() { + iterate(returnValue()); // GOOD [FALSE POSITIVE] (see *) + iterate(returnValue()[0]); // GOOD [FALSE POSITIVE] (see *) + + for (auto x : ref_to_first_in_returnValue_1()) {} + + { + auto value = ref_to_first_in_returnValue_2(); + for (auto x : value) {} + } + + { + auto& ref = ref_to_first_in_returnValue_3(); + for (auto x : ref) {} + } + + for (auto x : first_in_returnValue_1()) {} + + { + auto value = first_in_returnValue_2(); + for (auto x : value) {} + } +} From b944f3b411f31c704db467696ac8c494bf2ab714 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 15:54:53 +0000 Subject: [PATCH 222/309] C++: Fix FP. --- .../CWE/CWE-416/IteratorToExpiredContainer.ql | 14 ++++++++++++++ .../query-tests/Security/CWE/CWE-416/test.cpp | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql index cf3a22792fe..15f34aa8d15 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/IteratorToExpiredContainer.ql @@ -80,6 +80,20 @@ module DestroyedToBeginConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source = getADestroyedNode() } predicate isSink(DataFlow::Node sink) { isSinkImpl(sink, _) } + + DataFlow::FlowFeature getAFeature() { + // By blocking argument-to-parameter flow we ensure that we don't enter a + // function body where the temporary outlives anything inside the function. + // This prevents false positives in cases like: + // ```cpp + // void foo(const std::vector<int>& v) { + // for(auto x : v) { ... } // this is fine since v outlives the loop + // } + // ... + // foo(create_temporary()) + // ``` + result instanceof DataFlow::FeatureHasSinkCallContext + } } module DestroyedToBeginFlow = DataFlow::Global<DestroyedToBeginConfig>; diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp index 506096ae144..4e5fcbd2149 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-416/test.cpp @@ -744,8 +744,8 @@ std::vector<int> first_in_returnValue_2() { } void test2() { - iterate(returnValue()); // GOOD [FALSE POSITIVE] (see *) - iterate(returnValue()[0]); // GOOD [FALSE POSITIVE] (see *) + iterate(returnValue()); // GOOD + iterate(returnValue()[0]); // GOOD for (auto x : ref_to_first_in_returnValue_1()) {} From a21eea4ee07134616ede87612c3a4b196ec404fa Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 11:46:55 +0000 Subject: [PATCH 223/309] C++: Generalize more predicates from booleans to abstract values. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 63 ++++++++++--------- .../code/cpp/ir/implementation/EdgeKind.qll | 9 +++ 2 files changed, 42 insertions(+), 30 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index e7762fc9fa8..d714c1ecf30 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -446,7 +446,10 @@ class IRGuardCondition extends Instruction { /** Holds if (determined by this guard) `left == right + k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ cached predicate comparesEq(Operand left, Operand right, int k, boolean areEqual, boolean testIsTrue) { - compares_eq(this, left, right, k, areEqual, testIsTrue) + exists(BooleanValue value | + compares_eq(this, left, right, k, areEqual, value) and + value.getValue() = testIsTrue + ) } /** @@ -455,8 +458,8 @@ class IRGuardCondition extends Instruction { */ cached predicate ensuresEq(Operand left, Operand right, int k, IRBlock block, boolean areEqual) { - exists(boolean testIsTrue | - compares_eq(this, left, right, k, areEqual, testIsTrue) and this.controls(block, testIsTrue) + exists(AbstractValue value | + compares_eq(this, left, right, k, areEqual, value) and this.valueControls(block, value) ) } @@ -468,9 +471,9 @@ class IRGuardCondition extends Instruction { predicate ensuresEqEdge( Operand left, Operand right, int k, IRBlock pred, IRBlock succ, boolean areEqual ) { - exists(boolean testIsTrue | - compares_eq(this, left, right, k, areEqual, testIsTrue) and - this.controlsEdge(pred, succ, testIsTrue) + exists(AbstractValue value | + compares_eq(this, left, right, k, areEqual, value) and + this.valueControlsEdge(pred, succ, value) ) } @@ -572,52 +575,52 @@ private Instruction getBranchForCondition(Instruction guard) { * Beware making mistaken logical implications here relating `areEqual` and `testIsTrue`. */ private predicate compares_eq( - Instruction test, Operand left, Operand right, int k, boolean areEqual, boolean testIsTrue + Instruction test, Operand left, Operand right, int k, boolean areEqual, AbstractValue value ) { /* The simple case where the test *is* the comparison so areEqual = testIsTrue xor eq. */ - exists(boolean eq | simple_comparison_eq(test, left, right, k, eq) | - areEqual = true and testIsTrue = eq + exists(AbstractValue v | simple_comparison_eq(test, left, right, k, v) | + areEqual = true and value = v or - areEqual = false and testIsTrue = eq.booleanNot() + areEqual = false and value = v.getDualValue() ) or // I think this is handled by forwarding in controlsBlock. //or //logical_comparison_eq(test, left, right, k, areEqual, testIsTrue) /* a == b + k => b == a - k */ - exists(int mk | k = -mk | compares_eq(test, right, left, mk, areEqual, testIsTrue)) + exists(int mk | k = -mk | compares_eq(test, right, left, mk, areEqual, value)) or - complex_eq(test, left, right, k, areEqual, testIsTrue) + complex_eq(test, left, right, k, areEqual, value) or /* (x is true => (left == right + k)) => (!x is false => (left == right + k)) */ - exists(boolean isFalse | testIsTrue = isFalse.booleanNot() | - compares_eq(test.(LogicalNotInstruction).getUnary(), left, right, k, areEqual, isFalse) + exists(AbstractValue dual | value = dual.getDualValue() | + compares_eq(test.(LogicalNotInstruction).getUnary(), left, right, k, areEqual, dual) ) } /** Rearrange various simple comparisons into `left == right + k` form. */ private predicate simple_comparison_eq( - CompareInstruction cmp, Operand left, Operand right, int k, boolean areEqual + CompareInstruction cmp, Operand left, Operand right, int k, AbstractValue value ) { left = cmp.getLeftOperand() and cmp instanceof CompareEQInstruction and right = cmp.getRightOperand() and k = 0 and - areEqual = true + value.(BooleanValue).getValue() = true or left = cmp.getLeftOperand() and cmp instanceof CompareNEInstruction and right = cmp.getRightOperand() and k = 0 and - areEqual = false + value.(BooleanValue).getValue() = false } private predicate complex_eq( - CompareInstruction cmp, Operand left, Operand right, int k, boolean areEqual, boolean testIsTrue + CompareInstruction cmp, Operand left, Operand right, int k, boolean areEqual, AbstractValue value ) { - sub_eq(cmp, left, right, k, areEqual, testIsTrue) + sub_eq(cmp, left, right, k, areEqual, value) or - add_eq(cmp, left, right, k, areEqual, testIsTrue) + add_eq(cmp, left, right, k, areEqual, value) } /* @@ -768,31 +771,31 @@ private predicate add_lt( // left - x == right + c => left == right + (c+x) // left == (right - x) + c => left == right + (c-x) private predicate sub_eq( - CompareInstruction cmp, Operand left, Operand right, int k, boolean areEqual, boolean testIsTrue + CompareInstruction cmp, Operand left, Operand right, int k, boolean areEqual, AbstractValue value ) { exists(SubInstruction lhs, int c, int x | - compares_eq(cmp, lhs.getAUse(), right, c, areEqual, testIsTrue) and + compares_eq(cmp, lhs.getAUse(), right, c, areEqual, value) and left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) and k = c + x ) or exists(SubInstruction rhs, int c, int x | - compares_eq(cmp, left, rhs.getAUse(), c, areEqual, testIsTrue) and + compares_eq(cmp, left, rhs.getAUse(), c, areEqual, value) and right = rhs.getLeftOperand() and x = int_value(rhs.getRight()) and k = c - x ) or exists(PointerSubInstruction lhs, int c, int x | - compares_eq(cmp, lhs.getAUse(), right, c, areEqual, testIsTrue) and + compares_eq(cmp, lhs.getAUse(), right, c, areEqual, value) and left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) and k = c + x ) or exists(PointerSubInstruction rhs, int c, int x | - compares_eq(cmp, left, rhs.getAUse(), c, areEqual, testIsTrue) and + compares_eq(cmp, left, rhs.getAUse(), c, areEqual, value) and right = rhs.getLeftOperand() and x = int_value(rhs.getRight()) and k = c - x @@ -802,10 +805,10 @@ private predicate sub_eq( // left + x == right + c => left == right + (c-x) // left == (right + x) + c => left == right + (c+x) private predicate add_eq( - CompareInstruction cmp, Operand left, Operand right, int k, boolean areEqual, boolean testIsTrue + CompareInstruction cmp, Operand left, Operand right, int k, boolean areEqual, AbstractValue value ) { exists(AddInstruction lhs, int c, int x | - compares_eq(cmp, lhs.getAUse(), right, c, areEqual, testIsTrue) and + compares_eq(cmp, lhs.getAUse(), right, c, areEqual, value) and ( left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) or @@ -815,7 +818,7 @@ private predicate add_eq( ) or exists(AddInstruction rhs, int c, int x | - compares_eq(cmp, left, rhs.getAUse(), c, areEqual, testIsTrue) and + compares_eq(cmp, left, rhs.getAUse(), c, areEqual, value) and ( right = rhs.getLeftOperand() and x = int_value(rhs.getRight()) or @@ -825,7 +828,7 @@ private predicate add_eq( ) or exists(PointerAddInstruction lhs, int c, int x | - compares_eq(cmp, lhs.getAUse(), right, c, areEqual, testIsTrue) and + compares_eq(cmp, lhs.getAUse(), right, c, areEqual, value) and ( left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) or @@ -835,7 +838,7 @@ private predicate add_eq( ) or exists(PointerAddInstruction rhs, int c, int x | - compares_eq(cmp, left, rhs.getAUse(), c, areEqual, testIsTrue) and + compares_eq(cmp, left, rhs.getAUse(), c, areEqual, value) and ( right = rhs.getLeftOperand() and x = int_value(rhs.getRight()) or diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/EdgeKind.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/EdgeKind.qll index 91e1fe03e23..81db183fa63 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/EdgeKind.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/EdgeKind.qll @@ -90,6 +90,15 @@ class CaseEdge extends EdgeKind, TCaseEdge { * Gets the largest value of the switch expression for which control will flow along this edge. */ final string getMaxValue() { result = maxValue } + + /** + * Gets the unique value of the switch expression for which control will + * flow along this edge, if any. + */ + final string getValue() { + minValue = maxValue and + result = minValue + } } /** From 44045d3eed8403aea446f15e25bbfd451fe715e3 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 12:26:15 +0000 Subject: [PATCH 224/309] C++: Add guards logic for constant comparisons. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index d714c1ecf30..60de332f847 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -452,6 +452,21 @@ class IRGuardCondition extends Instruction { ) } + /** Holds if (determined by this guard) `op == k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ + cached + predicate comparesEq(Operand op, int k, boolean areEqual, boolean testIsTrue) { + exists(MatchValue mv | + compares_eq(this, op, k, areEqual, mv) and + // A match value cannot be dualized, so `testIsTrue` is always true + testIsTrue = true + ) + or + exists(BooleanValue bv | + compares_eq(this, op, k, areEqual, bv) and + bv.getValue() = testIsTrue + ) + } + /** * Holds if (determined by this guard) `left == right + k` must be `areEqual` in `block`. * If `areEqual = false` then this implies `left != right + k`. @@ -463,6 +478,17 @@ class IRGuardCondition extends Instruction { ) } + /** + * Holds if (determined by this guard) `op == k` must be `areEqual` in `block`. + * If `areEqual = false` then this implies `op != k`. + */ + cached + predicate ensuresEq(Operand op, int k, IRBlock block, boolean areEqual) { + exists(AbstractValue value | + compares_eq(this, op, k, areEqual, value) and this.valueControls(block, value) + ) + } + /** * Holds if (determined by this guard) `left == right + k` must be `areEqual` on the edge from * `pred` to `succ`. If `areEqual = false` then this implies `left != right + k`. @@ -477,6 +503,18 @@ class IRGuardCondition extends Instruction { ) } + /** + * Holds if (determined by this guard) `op == k` must be `areEqual` on the edge from + * `pred` to `succ`. If `areEqual = false` then this implies `op != k`. + */ + cached + predicate ensuresEqEdge(Operand op, int k, IRBlock pred, IRBlock succ, boolean areEqual) { + exists(AbstractValue value | + compares_eq(this, op, k, areEqual, value) and + this.valueControlsEdge(pred, succ, value) + ) + } + /** * Holds if this condition controls `block`, meaning that `block` is only * entered if the value of this condition is `v`. This helper @@ -598,6 +636,33 @@ private predicate compares_eq( ) } +/** Holds if `op == k` is `areEqual` given that `test` is equal to `value`. */ +private predicate compares_eq( + Instruction test, Operand op, int k, boolean areEqual, AbstractValue value +) { + /* The simple case where the test *is* the comparison so areEqual = testIsTrue xor eq. */ + exists(AbstractValue v | simple_comparison_eq(test, op, k, v) | + areEqual = true and value = v + or + areEqual = false and value = v.getDualValue() + ) + or + complex_eq(test, op, k, areEqual, value) + or + /* (x is true => (op == k)) => (!x is false => (op == k)) */ + exists(AbstractValue dual | value = dual.getDualValue() | + compares_eq(test.(LogicalNotInstruction).getUnary(), op, k, areEqual, dual) + ) + or + // ((test is `areEqual` => op == const + k2) and const == `k1`) => + // test is `areEqual` => op == k1 + k2 + exists(int k1, int k2, ConstantInstruction const | + compares_eq(test, op, const.getAUse(), k2, areEqual, value) and + int_value(const) = k1 and + k = k1 + k2 + ) +} + /** Rearrange various simple comparisons into `left == right + k` form. */ private predicate simple_comparison_eq( CompareInstruction cmp, Operand left, Operand right, int k, AbstractValue value @@ -615,6 +680,15 @@ private predicate simple_comparison_eq( value.(BooleanValue).getValue() = false } +/** Rearrange various simple comparisons into `op == k` form. */ +private predicate simple_comparison_eq(Instruction test, Operand op, int k, AbstractValue value) { + exists(SwitchInstruction switch | + test = switch.getExpression() and + op.getDef() = test and + value.(MatchValue).getCase().getValue().toInt() = k + ) +} + private predicate complex_eq( CompareInstruction cmp, Operand left, Operand right, int k, boolean areEqual, AbstractValue value ) { @@ -623,6 +697,14 @@ private predicate complex_eq( add_eq(cmp, left, right, k, areEqual, value) } +private predicate complex_eq( + Instruction test, Operand op, int k, boolean areEqual, AbstractValue value +) { + sub_eq(test, op, k, areEqual, value) + or + add_eq(test, op, k, areEqual, value) +} + /* * Simplification of inequality expressions * Simplify conditions in the source to the canonical form l < r + k. @@ -802,6 +884,23 @@ private predicate sub_eq( ) } +// op - x == c => op == (c+x) +private predicate sub_eq(Instruction test, Operand op, int k, boolean areEqual, AbstractValue value) { + exists(SubInstruction sub, int c, int x | + compares_eq(test, sub.getAUse(), c, areEqual, value) and + op = sub.getLeftOperand() and + x = int_value(sub.getRight()) and + k = c + x + ) + or + exists(PointerSubInstruction sub, int c, int x | + compares_eq(test, sub.getAUse(), c, areEqual, value) and + op = sub.getLeftOperand() and + x = int_value(sub.getRight()) and + k = c + x + ) +} + // left + x == right + c => left == right + (c-x) // left == (right + x) + c => left == right + (c+x) private predicate add_eq( @@ -848,5 +947,30 @@ private predicate add_eq( ) } +// left + x == right + c => left == right + (c-x) +private predicate add_eq( + Instruction test, Operand left, int k, boolean areEqual, AbstractValue value +) { + exists(AddInstruction lhs, int c, int x | + compares_eq(test, lhs.getAUse(), c, areEqual, value) and + ( + left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) + or + left = lhs.getRightOperand() and x = int_value(lhs.getLeft()) + ) and + k = c - x + ) + or + exists(PointerAddInstruction lhs, int c, int x | + compares_eq(test, lhs.getAUse(), c, areEqual, value) and + ( + left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) + or + left = lhs.getRightOperand() and x = int_value(lhs.getLeft()) + ) and + k = c - x + ) +} + /** The int value of integer constant expression. */ private int int_value(Instruction i) { result = i.(IntegerConstantInstruction).getValue().toInt() } From decede51dc1ee2db399631bd80f25aa650213071 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 13:54:30 +0000 Subject: [PATCH 225/309] C++: Use the new predicate in 'ScanfChecks.qll'. --- cpp/ql/src/Critical/ScanfChecks.qll | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cpp/ql/src/Critical/ScanfChecks.qll b/cpp/ql/src/Critical/ScanfChecks.qll index b2464ecc9f4..403df4715f3 100644 --- a/cpp/ql/src/Critical/ScanfChecks.qll +++ b/cpp/ql/src/Critical/ScanfChecks.qll @@ -11,7 +11,7 @@ private predicate exprInBooleanContext(Expr e) { exists(IRGuardCondition gc | exists(Instruction i | i.getUnconvertedResultExpression() = e and - gc.comparesEq(valueNumber(i).getAUse(), zero(), 0, _, _) + gc.comparesEq(valueNumber(i).getAUse(), 0, _, _) ) or gc.getUnconvertedResultExpression() = e @@ -36,10 +36,6 @@ private string getEofValue() { ) } -private ConstantInstruction getEofInstruction() { result.getValue() = getEofValue() } - -private Operand eof() { result.getDef() = getEofInstruction() } - /** * Holds if the value of `call` has been checked to not equal `EOF`. */ @@ -47,7 +43,7 @@ private predicate checkedForEof(ScanfFunctionCall call) { exists(IRGuardCondition gc | exists(Instruction i | i.getUnconvertedResultExpression() = call | // call == EOF - gc.comparesEq(valueNumber(i).getAUse(), eof(), 0, _, _) + gc.comparesEq(valueNumber(i).getAUse(), getEofValue().toInt(), _, _) or // call < 0 (EOF is guaranteed to be negative) gc.comparesLt(valueNumber(i).getAUse(), zero(), 0, true, _) From dbd47b387afb25bce808877198cb5a2bfb0714de Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 16:26:36 +0000 Subject: [PATCH 226/309] C++: Add AST wrappers for the new predicates. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 60de332f847..ddc380c304f 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -137,6 +137,17 @@ class GuardCondition extends Expr { */ cached predicate ensuresEq(Expr left, Expr right, int k, BasicBlock block, boolean areEqual) { none() } + + /** Holds if (determined by this guard) `e == k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ + cached + predicate comparesEq(Expr e, int k, boolean areEqual, boolean testIsTrue) { none() } + + /** + * Holds if (determined by this guard) `e == k` must be `areEqual` in `block`. + * If `areEqual = false` then this implies `e != k`. + */ + cached + predicate ensuresEq(Expr e, int k, BasicBlock block, boolean areEqual) { none() } } /** @@ -184,6 +195,20 @@ private class GuardConditionFromBinaryLogicalOperator extends GuardCondition { this.comparesEq(left, right, k, areEqual, testIsTrue) and this.controls(block, testIsTrue) ) } + + override predicate comparesEq(Expr e, int k, boolean areEqual, boolean testIsTrue) { + exists(boolean partIsTrue, GuardCondition part | + this.(BinaryLogicalOperation).impliesValue(part, partIsTrue, testIsTrue) + | + part.comparesEq(e, k, areEqual, partIsTrue) + ) + } + + override predicate ensuresEq(Expr e, int k, BasicBlock block, boolean areEqual) { + exists(boolean testIsTrue | + this.comparesEq(e, k, areEqual, testIsTrue) and this.controls(block, testIsTrue) + ) + } } /** @@ -245,6 +270,21 @@ private class GuardConditionFromIR extends GuardCondition { ) } + override predicate comparesEq(Expr e, int k, boolean areEqual, boolean testIsTrue) { + exists(Instruction i | + i.getUnconvertedResultExpression() = e and + ir.comparesEq(i.getAUse(), k, areEqual, testIsTrue) + ) + } + + override predicate ensuresEq(Expr e, int k, BasicBlock block, boolean areEqual) { + exists(Instruction i, boolean testIsTrue | + i.getUnconvertedResultExpression() = e and + ir.comparesEq(i.getAUse(), k, areEqual, testIsTrue) and + this.controls(block, testIsTrue) + ) + } + /** * Holds if this condition controls `block`, meaning that `block` is only * entered if the value of this condition is `v`. This helper From 032678a367bc849f55dfa90baba9f2548436212d Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 16:27:10 +0000 Subject: [PATCH 227/309] C++: Extend tests to also test the new predicates. --- .../controlflow/guards-ir/tests.ql | 89 ++++++++++++++----- .../controlflow/guards/GuardsCompare.ql | 28 ++++-- 2 files changed, 87 insertions(+), 30 deletions(-) diff --git a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql index fe3d92d2c2b..263c30c2fec 100644 --- a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql +++ b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql @@ -4,22 +4,32 @@ import semmle.code.cpp.controlflow.IRGuards query predicate astGuards(GuardCondition guard) { any() } query predicate astGuardsCompare(int startLine, string msg) { - exists(GuardCondition guard, Expr left, Expr right, int k, string which, string op | + exists(GuardCondition guard, Expr left, int k, string which, string op | exists(boolean sense | sense = true and which = "true" or sense = false and which = "false" | - guard.comparesLt(left, right, k, true, sense) and op = " < " + exists(Expr right | + guard.comparesLt(left, right, k, true, sense) and op = " < " + or + guard.comparesLt(left, right, k, false, sense) and op = " >= " + or + guard.comparesEq(left, right, k, true, sense) and op = " == " + or + guard.comparesEq(left, right, k, false, sense) and op = " != " + | + msg = left + op + right + "+" + k + " when " + guard + " is " + which + ) or - guard.comparesLt(left, right, k, false, sense) and op = " >= " - or - guard.comparesEq(left, right, k, true, sense) and op = " == " - or - guard.comparesEq(left, right, k, false, sense) and op = " != " + ( + guard.comparesEq(left, k, true, sense) and op = " == " + or + guard.comparesEq(left, k, false, sense) and op = " != " + ) and + msg = left + op + k + " when " + guard + " is " + which ) and - startLine = guard.getLocation().getStartLine() and - msg = left + op + right + "+" + k + " when " + guard + " is " + which + startLine = guard.getLocation().getStartLine() ) } @@ -46,28 +56,52 @@ query predicate astGuardsEnsure( ) } +query predicate astGuardsEnsure_const( + GuardCondition guard, Expr left, string op, int k, int start, int end +) { + exists(BasicBlock block | + guard.ensuresEq(left, k, block, true) and op = "==" + or + guard.ensuresEq(left, k, block, false) and op = "!=" + | + block.hasLocationInfo(_, start, _, end, _) + ) +} + query predicate irGuards(IRGuardCondition guard) { any() } query predicate irGuardsCompare(int startLine, string msg) { - exists(IRGuardCondition guard, Operand left, Operand right, int k, string which, string op | + exists(IRGuardCondition guard, Operand left, int k, string which, string op | exists(boolean sense | sense = true and which = "true" or sense = false and which = "false" | - guard.comparesLt(left, right, k, true, sense) and op = " < " + exists(Operand right | + guard.comparesLt(left, right, k, true, sense) and op = " < " + or + guard.comparesLt(left, right, k, false, sense) and op = " >= " + or + guard.comparesEq(left, right, k, true, sense) and op = " == " + or + guard.comparesEq(left, right, k, false, sense) and op = " != " + | + msg = + left.getAnyDef().getUnconvertedResultExpression() + op + + right.getAnyDef().getUnconvertedResultExpression() + "+" + k + " when " + guard + " is " + + which + ) or - guard.comparesLt(left, right, k, false, sense) and op = " >= " - or - guard.comparesEq(left, right, k, true, sense) and op = " == " - or - guard.comparesEq(left, right, k, false, sense) and op = " != " + ( + guard.comparesEq(left, k, true, sense) and op = " == " + or + guard.comparesEq(left, k, false, sense) and op = " != " + ) and + msg = + left.getAnyDef().getUnconvertedResultExpression() + op + k + " when " + guard + " is " + + which ) and - startLine = guard.getLocation().getStartLine() and - msg = - left.getAnyDef().getUnconvertedResultExpression() + op + - right.getAnyDef().getUnconvertedResultExpression() + "+" + k + " when " + guard + " is " + - which + startLine = guard.getLocation().getStartLine() ) } @@ -95,3 +129,16 @@ query predicate irGuardsEnsure( block.getLocation().hasLocationInfo(_, start, _, end, _) ) } + +query predicate irGuardsEnsure_const( + IRGuardCondition guard, Instruction left, string op, int k, int start, int end +) { + exists(IRBlock block, Operand leftOp | + guard.ensuresEq(leftOp, k, block, true) and op = "==" + or + guard.ensuresEq(leftOp, k, block, false) and op = "!=" + | + leftOp = left.getAUse() and + block.getLocation().hasLocationInfo(_, start, _, end, _) + ) +} diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql index a1373b2923b..17d4fcaae94 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql @@ -7,20 +7,30 @@ import cpp import semmle.code.cpp.controlflow.Guards -from GuardCondition guard, Expr left, Expr right, int k, string which, string op, string msg +from GuardCondition guard, Expr left, int k, string which, string op, string msg where exists(boolean sense | sense = true and which = "true" or sense = false and which = "false" | - guard.comparesLt(left, right, k, true, sense) and op = " < " + exists(Expr right | + guard.comparesLt(left, right, k, true, sense) and op = " < " + or + guard.comparesLt(left, right, k, false, sense) and op = " >= " + or + guard.comparesEq(left, right, k, true, sense) and op = " == " + or + guard.comparesEq(left, right, k, false, sense) and op = " != " + | + msg = left + op + right + "+" + k + " when " + guard + " is " + which + ) or - guard.comparesLt(left, right, k, false, sense) and op = " >= " - or - guard.comparesEq(left, right, k, true, sense) and op = " == " - or - guard.comparesEq(left, right, k, false, sense) and op = " != " - ) and - msg = left + op + right + "+" + k + " when " + guard + " is " + which + ( + guard.comparesEq(left, k, true, sense) and op = " == " + or + guard.comparesEq(left, k, false, sense) and op = " != " + ) and + msg = left + op + k + " when " + guard + " is " + which + ) select guard.getLocation().getStartLine(), msg From 40dbc6fdd9e50c7b8d5cfc49fd741510e9b001e3 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Mon, 18 Mar 2024 16:27:18 +0000 Subject: [PATCH 228/309] C++: Accept test changes. --- .../controlflow/guards-ir/tests.expected | 88 +++++++++++++++++++ .../controlflow/guards/GuardsCompare.expected | 27 ++++++ 2 files changed, 115 insertions(+) diff --git a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected index ac8068e768d..2eb749580b4 100644 --- a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected +++ b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected @@ -62,7 +62,9 @@ astGuardsCompare | 26 | x >= 0+1 when ... > ... is true | | 31 | - ... != x+0 when ... == ... is false | | 31 | - ... == x+0 when ... == ... is true | +| 31 | x != -1 when ... == ... is false | | 31 | x != - ...+0 when ... == ... is false | +| 31 | x == -1 when ... == ... is true | | 31 | x == - ...+0 when ... == ... is true | | 34 | 10 < j+1 when ... < ... is false | | 34 | 10 >= j+1 when ... < ... is true | @@ -86,15 +88,20 @@ astGuardsCompare | 58 | 0 < y+1 when ... \|\| ... is false | | 58 | 0 == x+0 when ... == ... is true | | 58 | 0 >= y+1 when ... < ... is true | +| 58 | x != 0 when ... == ... is false | +| 58 | x != 0 when ... \|\| ... is false | | 58 | x != 0+0 when ... == ... is false | | 58 | x != 0+0 when ... \|\| ... is false | +| 58 | x == 0 when ... == ... is true | | 58 | x == 0+0 when ... == ... is true | | 58 | y < 0+0 when ... < ... is true | | 58 | y >= 0+0 when ... < ... is false | | 58 | y >= 0+0 when ... \|\| ... is false | | 75 | 0 != x+0 when ... == ... is false | | 75 | 0 == x+0 when ... == ... is true | +| 75 | x != 0 when ... == ... is false | | 75 | x != 0+0 when ... == ... is false | +| 75 | x == 0 when ... == ... is true | | 75 | x == 0+0 when ... == ... is true | | 85 | 0 != x+0 when ... == ... is false | | 85 | 0 != y+0 when ... != ... is true | @@ -102,15 +109,23 @@ astGuardsCompare | 85 | 0 == x+0 when ... && ... is true | | 85 | 0 == x+0 when ... == ... is true | | 85 | 0 == y+0 when ... != ... is false | +| 85 | x != 0 when ... == ... is false | | 85 | x != 0+0 when ... == ... is false | +| 85 | x == 0 when ... && ... is true | +| 85 | x == 0 when ... == ... is true | | 85 | x == 0+0 when ... && ... is true | | 85 | x == 0+0 when ... == ... is true | +| 85 | y != 0 when ... != ... is true | +| 85 | y != 0 when ... && ... is true | | 85 | y != 0+0 when ... != ... is true | | 85 | y != 0+0 when ... && ... is true | +| 85 | y == 0 when ... != ... is false | | 85 | y == 0+0 when ... != ... is false | | 94 | 0 != x+0 when ... != ... is true | | 94 | 0 == x+0 when ... != ... is false | +| 94 | x != 0 when ... != ... is true | | 94 | x != 0+0 when ... != ... is true | +| 94 | x == 0 when ... != ... is false | | 94 | x == 0+0 when ... != ... is false | | 102 | 10 < j+1 when ... < ... is false | | 102 | 10 >= j+1 when ... < ... is true | @@ -122,8 +137,11 @@ astGuardsCompare | 109 | 0 < y+1 when ... \|\| ... is false | | 109 | 0 == x+0 when ... == ... is true | | 109 | 0 >= y+1 when ... < ... is true | +| 109 | x != 0 when ... == ... is false | +| 109 | x != 0 when ... \|\| ... is false | | 109 | x != 0+0 when ... == ... is false | | 109 | x != 0+0 when ... \|\| ... is false | +| 109 | x == 0 when ... == ... is true | | 109 | x == 0+0 when ... == ... is true | | 109 | y < 0+0 when ... < ... is true | | 109 | y >= 0+0 when ... < ... is false | @@ -162,7 +180,9 @@ astGuardsCompare | 165 | y >= x+43 when ... < ... is true | | 175 | 0 != call to foo+0 when ... == ... is false | | 175 | 0 == call to foo+0 when ... == ... is true | +| 175 | call to foo != 0 when ... == ... is false | | 175 | call to foo != 0+0 when ... == ... is false | +| 175 | call to foo == 0 when ... == ... is true | | 175 | call to foo == 0+0 when ... == ... is true | astGuardsControl | test.c:7:9:7:13 | ... > ... | false | 10 | 11 | @@ -443,6 +463,34 @@ astGuardsEnsure | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | != | test.cpp:31:7:31:7 | x | 0 | 34 | 34 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | == | test.cpp:31:7:31:7 | x | 0 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | == | test.cpp:31:7:31:7 | x | 0 | 31 | 32 | +astGuardsEnsure_const +| test.c:58:9:58:14 | ... == ... | test.c:58:9:58:9 | x | != | 0 | 58 | 58 | +| test.c:58:9:58:14 | ... == ... | test.c:58:9:58:9 | x | != | 0 | 62 | 62 | +| test.c:58:9:58:23 | ... \|\| ... | test.c:58:9:58:9 | x | != | 0 | 62 | 62 | +| test.c:75:9:75:14 | ... == ... | test.c:75:9:75:9 | x | != | 0 | 78 | 79 | +| test.c:75:9:75:14 | ... == ... | test.c:75:9:75:9 | x | == | 0 | 75 | 77 | +| test.c:85:8:85:13 | ... == ... | test.c:85:8:85:8 | x | == | 0 | 85 | 85 | +| test.c:85:8:85:13 | ... == ... | test.c:85:8:85:8 | x | == | 0 | 86 | 86 | +| test.c:85:8:85:23 | ... && ... | test.c:85:8:85:8 | x | == | 0 | 86 | 86 | +| test.c:85:8:85:23 | ... && ... | test.c:85:18:85:18 | y | != | 0 | 86 | 86 | +| test.c:85:18:85:23 | ... != ... | test.c:85:18:85:18 | y | != | 0 | 86 | 86 | +| test.c:94:11:94:16 | ... != ... | test.c:94:11:94:11 | x | != | 0 | 94 | 96 | +| test.c:94:11:94:16 | ... != ... | test.c:94:11:94:11 | x | == | 0 | 70 | 70 | +| test.c:94:11:94:16 | ... != ... | test.c:94:11:94:11 | x | == | 0 | 99 | 102 | +| test.c:94:11:94:16 | ... != ... | test.c:94:11:94:11 | x | == | 0 | 102 | 102 | +| test.c:94:11:94:16 | ... != ... | test.c:94:11:94:11 | x | == | 0 | 107 | 109 | +| test.c:94:11:94:16 | ... != ... | test.c:94:11:94:11 | x | == | 0 | 109 | 109 | +| test.c:94:11:94:16 | ... != ... | test.c:94:11:94:11 | x | == | 0 | 109 | 117 | +| test.c:94:11:94:16 | ... != ... | test.c:94:11:94:11 | x | == | 0 | 113 | 113 | +| test.c:109:9:109:14 | ... == ... | test.c:109:9:109:9 | x | != | 0 | 109 | 109 | +| test.c:109:9:109:14 | ... == ... | test.c:109:9:109:9 | x | != | 0 | 113 | 113 | +| test.c:109:9:109:23 | ... \|\| ... | test.c:109:9:109:9 | x | != | 0 | 113 | 113 | +| test.c:175:13:175:32 | ... == ... | test.c:175:13:175:15 | call to foo | != | 0 | 175 | 175 | +| test.c:175:13:175:32 | ... == ... | test.c:175:13:175:15 | call to foo | == | 0 | 175 | 175 | +| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | -1 | 30 | 30 | +| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | -1 | 34 | 34 | +| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | -1 | 30 | 30 | +| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | -1 | 31 | 32 | irGuards | test.c:7:9:7:13 | CompareGT: ... > ... | | test.c:17:8:17:12 | CompareLT: ... < ... | @@ -497,7 +545,9 @@ irGuardsCompare | 26 | x >= 0+1 when CompareGT: ... > ... is true | | 31 | - ... != x+0 when CompareEQ: ... == ... is false | | 31 | - ... == x+0 when CompareEQ: ... == ... is true | +| 31 | x != -1 when CompareEQ: ... == ... is false | | 31 | x != - ...+0 when CompareEQ: ... == ... is false | +| 31 | x == -1 when CompareEQ: ... == ... is true | | 31 | x == - ...+0 when CompareEQ: ... == ... is true | | 34 | 10 < j+1 when CompareLT: ... < ... is false | | 34 | 10 >= j+1 when CompareLT: ... < ... is true | @@ -519,25 +569,35 @@ irGuardsCompare | 58 | 0 < y+1 when CompareLT: ... < ... is false | | 58 | 0 == x+0 when CompareEQ: ... == ... is true | | 58 | 0 >= y+1 when CompareLT: ... < ... is true | +| 58 | x != 0 when CompareEQ: ... == ... is false | | 58 | x != 0+0 when CompareEQ: ... == ... is false | +| 58 | x == 0 when CompareEQ: ... == ... is true | | 58 | x == 0+0 when CompareEQ: ... == ... is true | | 58 | y < 0+0 when CompareLT: ... < ... is true | | 58 | y >= 0+0 when CompareLT: ... < ... is false | | 75 | 0 != x+0 when CompareEQ: ... == ... is false | | 75 | 0 == x+0 when CompareEQ: ... == ... is true | +| 75 | x != 0 when CompareEQ: ... == ... is false | | 75 | x != 0+0 when CompareEQ: ... == ... is false | +| 75 | x == 0 when CompareEQ: ... == ... is true | | 75 | x == 0+0 when CompareEQ: ... == ... is true | | 85 | 0 != x+0 when CompareEQ: ... == ... is false | | 85 | 0 != y+0 when CompareNE: ... != ... is true | | 85 | 0 == x+0 when CompareEQ: ... == ... is true | | 85 | 0 == y+0 when CompareNE: ... != ... is false | +| 85 | x != 0 when CompareEQ: ... == ... is false | | 85 | x != 0+0 when CompareEQ: ... == ... is false | +| 85 | x == 0 when CompareEQ: ... == ... is true | | 85 | x == 0+0 when CompareEQ: ... == ... is true | +| 85 | y != 0 when CompareNE: ... != ... is true | | 85 | y != 0+0 when CompareNE: ... != ... is true | +| 85 | y == 0 when CompareNE: ... != ... is false | | 85 | y == 0+0 when CompareNE: ... != ... is false | | 94 | 0 != x+0 when CompareNE: ... != ... is true | | 94 | 0 == x+0 when CompareNE: ... != ... is false | +| 94 | x != 0 when CompareNE: ... != ... is true | | 94 | x != 0+0 when CompareNE: ... != ... is true | +| 94 | x == 0 when CompareNE: ... != ... is false | | 94 | x == 0+0 when CompareNE: ... != ... is false | | 102 | 10 < j+1 when CompareLT: ... < ... is false | | 102 | 10 >= j+1 when CompareLT: ... < ... is true | @@ -547,7 +607,9 @@ irGuardsCompare | 109 | 0 < y+1 when CompareLT: ... < ... is false | | 109 | 0 == x+0 when CompareEQ: ... == ... is true | | 109 | 0 >= y+1 when CompareLT: ... < ... is true | +| 109 | x != 0 when CompareEQ: ... == ... is false | | 109 | x != 0+0 when CompareEQ: ... == ... is false | +| 109 | x == 0 when CompareEQ: ... == ... is true | | 109 | x == 0+0 when CompareEQ: ... == ... is true | | 109 | y < 0+0 when CompareLT: ... < ... is true | | 109 | y >= 0+0 when CompareLT: ... < ... is false | @@ -585,7 +647,9 @@ irGuardsCompare | 165 | y >= x+43 when CompareLT: ... < ... is true | | 175 | 0 != call to foo+0 when CompareEQ: ... == ... is false | | 175 | 0 == call to foo+0 when CompareEQ: ... == ... is true | +| 175 | call to foo != 0 when CompareEQ: ... == ... is false | | 175 | call to foo != 0+0 when CompareEQ: ... == ... is false | +| 175 | call to foo == 0 when CompareEQ: ... == ... is true | | 175 | call to foo == 0+0 when CompareEQ: ... == ... is true | irGuardsControl | test.c:7:9:7:13 | CompareGT: ... > ... | false | 11 | 11 | @@ -841,3 +905,27 @@ irGuardsEnsure | test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:12:31:13 | Constant: - ... | != | test.cpp:31:7:31:7 | Load: x | 0 | 34 | 34 | | test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:12:31:13 | Constant: - ... | == | test.cpp:31:7:31:7 | Load: x | 0 | 30 | 30 | | test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:12:31:13 | Constant: - ... | == | test.cpp:31:7:31:7 | Load: x | 0 | 32 | 32 | +irGuardsEnsure_const +| test.c:58:9:58:14 | CompareEQ: ... == ... | test.c:58:9:58:9 | Load: x | != | 0 | 58 | 58 | +| test.c:58:9:58:14 | CompareEQ: ... == ... | test.c:58:9:58:9 | Load: x | != | 0 | 62 | 62 | +| test.c:75:9:75:14 | CompareEQ: ... == ... | test.c:75:9:75:9 | Load: x | != | 0 | 79 | 79 | +| test.c:75:9:75:14 | CompareEQ: ... == ... | test.c:75:9:75:9 | Load: x | == | 0 | 76 | 76 | +| test.c:85:8:85:13 | CompareEQ: ... == ... | test.c:85:8:85:8 | Load: x | == | 0 | 85 | 85 | +| test.c:85:8:85:13 | CompareEQ: ... == ... | test.c:85:8:85:8 | Load: x | == | 0 | 86 | 86 | +| test.c:85:18:85:23 | CompareNE: ... != ... | test.c:85:18:85:18 | Load: y | != | 0 | 86 | 86 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | != | 0 | 95 | 95 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 70 | 70 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 99 | 99 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 102 | 102 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 103 | 103 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 107 | 107 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 109 | 109 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 110 | 110 | +| test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 113 | 113 | +| test.c:109:9:109:14 | CompareEQ: ... == ... | test.c:109:9:109:9 | Load: x | != | 0 | 109 | 109 | +| test.c:109:9:109:14 | CompareEQ: ... == ... | test.c:109:9:109:9 | Load: x | != | 0 | 113 | 113 | +| test.c:175:13:175:32 | CompareEQ: ... == ... | test.c:175:13:175:15 | Call: call to foo | != | 0 | 175 | 175 | +| test.c:175:13:175:32 | CompareEQ: ... == ... | test.c:175:13:175:15 | Call: call to foo | == | 0 | 175 | 175 | +| test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:7:31:7 | Load: x | != | -1 | 34 | 34 | +| test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:7:31:7 | Load: x | == | -1 | 30 | 30 | +| test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:7:31:7 | Load: x | == | -1 | 32 | 32 | diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected index 58068f3991d..5f714676b5c 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected @@ -20,7 +20,9 @@ | 26 | x >= 0+1 when ... > ... is true | | 31 | - ... != x+0 when ... == ... is false | | 31 | - ... == x+0 when ... == ... is true | +| 31 | x != -1 when ... == ... is false | | 31 | x != - ...+0 when ... == ... is false | +| 31 | x == -1 when ... == ... is true | | 31 | x == - ...+0 when ... == ... is true | | 34 | 10 < j+1 when ... < ... is false | | 34 | 10 >= j+1 when ... < ... is true | @@ -44,31 +46,53 @@ | 58 | 0 < y+1 when ... \|\| ... is false | | 58 | 0 == x+0 when ... == ... is true | | 58 | 0 >= y+1 when ... < ... is true | +| 58 | x != 0 when ... == ... is false | +| 58 | x != 0 when ... \|\| ... is false | | 58 | x != 0+0 when ... == ... is false | | 58 | x != 0+0 when ... \|\| ... is false | +| 58 | x == 0 when ... == ... is true | | 58 | x == 0+0 when ... == ... is true | | 58 | y < 0+0 when ... < ... is true | | 58 | y >= 0+0 when ... < ... is false | | 58 | y >= 0+0 when ... \|\| ... is false | +| 61 | i == 0 when i is true | +| 61 | i == 1 when i is true | +| 61 | i == 2 when i is true | +| 74 | i == 0 when i is true | +| 74 | i == 1 when i is true | +| 74 | i == 2 when i is true | | 75 | 0 != x+0 when ... == ... is false | | 75 | 0 == x+0 when ... == ... is true | +| 75 | x != 0 when ... == ... is false | | 75 | x != 0+0 when ... == ... is false | +| 75 | x == 0 when ... == ... is true | | 75 | x == 0+0 when ... == ... is true | +| 84 | i == 0 when i is true | +| 84 | i == 1 when i is true | +| 84 | i == 2 when i is true | | 85 | 0 != x+0 when ... == ... is false | | 85 | 0 != y+0 when ... != ... is true | | 85 | 0 != y+0 when ... && ... is true | | 85 | 0 == x+0 when ... && ... is true | | 85 | 0 == x+0 when ... == ... is true | | 85 | 0 == y+0 when ... != ... is false | +| 85 | x != 0 when ... == ... is false | | 85 | x != 0+0 when ... == ... is false | +| 85 | x == 0 when ... && ... is true | +| 85 | x == 0 when ... == ... is true | | 85 | x == 0+0 when ... && ... is true | | 85 | x == 0+0 when ... == ... is true | +| 85 | y != 0 when ... != ... is true | +| 85 | y != 0 when ... && ... is true | | 85 | y != 0+0 when ... != ... is true | | 85 | y != 0+0 when ... && ... is true | +| 85 | y == 0 when ... != ... is false | | 85 | y == 0+0 when ... != ... is false | | 94 | 0 != x+0 when ... != ... is true | | 94 | 0 == x+0 when ... != ... is false | +| 94 | x != 0 when ... != ... is true | | 94 | x != 0+0 when ... != ... is true | +| 94 | x == 0 when ... != ... is false | | 94 | x == 0+0 when ... != ... is false | | 102 | 10 < j+1 when ... < ... is false | | 102 | 10 >= j+1 when ... < ... is true | @@ -80,8 +104,11 @@ | 109 | 0 < y+1 when ... \|\| ... is false | | 109 | 0 == x+0 when ... == ... is true | | 109 | 0 >= y+1 when ... < ... is true | +| 109 | x != 0 when ... == ... is false | +| 109 | x != 0 when ... \|\| ... is false | | 109 | x != 0+0 when ... == ... is false | | 109 | x != 0+0 when ... \|\| ... is false | +| 109 | x == 0 when ... == ... is true | | 109 | x == 0+0 when ... == ... is true | | 109 | y < 0+0 when ... < ... is true | | 109 | y >= 0+0 when ... < ... is false | From 764e99bda75b0e9372c683c0dcf080706a727713 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Mon, 18 Mar 2024 16:56:20 +0000 Subject: [PATCH 229/309] Fix model for `java.util.Scanner#findall(String)` Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com> --- java/ql/lib/ext/java.util.model.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index be4665d4cd7..fe4958856d3 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -312,7 +312,7 @@ extensions: - ["java.util", "Queue", True, "remove", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["java.util", "ResourceBundle", True, "getString", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["java.util", "Scanner", True, "findAll", "(Pattern)", "", "Argument[this]", "ReturnValue.Element", "taint", "df-manual"] - - ["java.util", "Scanner", True, "findAll", "(String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"] + - ["java.util", "Scanner", True, "findAll", "(String)", "", "Argument[this]", "ReturnValue.Element", "taint", "df-manual"] - ["java.util", "Scanner", True, "match", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"] - ["java.util", "Scanner", True, "Scanner", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["java.util", "Scanner", True, "findInLine", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] From e895f96a3a50b740da387fe77e8d8dd6159cc15c Mon Sep 17 00:00:00 2001 From: Harry Maclean <hmac@github.com> Date: Mon, 18 Mar 2024 17:55:02 +0000 Subject: [PATCH 230/309] Ruby: Taint flow to second block param in map When `map` is called on a hash, the values in the hash are passed to the second parameter of the block. --- ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll index b2a30beafc3..d2e51624b4e 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll @@ -1855,7 +1855,7 @@ module Enumerable { override predicate propagatesFlow(string input, string output, boolean preservesValue) { input = "Argument[self].Element[any]" and - output = "Argument[block].Parameter[0]" and + output = "Argument[block].Parameter[0, 1]" and preservesValue = true or input = "Argument[block].ReturnValue" and From 187a68bf766bf713b5ef93946bc4a1797598f621 Mon Sep 17 00:00:00 2001 From: Harry Maclean <hmac@github.com> Date: Mon, 18 Mar 2024 17:56:10 +0000 Subject: [PATCH 231/309] Ruby: Add flow summary for `Hash#keys` --- ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll index 4871d8d9924..ee90c3ee6e4 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll @@ -523,3 +523,13 @@ private class ValuesSummary extends SimpleSummarizedCallable { preservesValue = true } } + +private class KeysSummary extends SimpleSummarizedCallable { + KeysSummary() { this = "keys" } + + override predicate propagatesFlow(string input, string output, boolean preservesValue) { + input = "Argument[self].Element[any]" and + output = "ReturnValue.Element[?]" and + preservesValue = true + } +} From 9a8ec36a4f0e30b6c5b6553180327adaefbb6483 Mon Sep 17 00:00:00 2001 From: Chris Smowton <smowton@github.com> Date: Fri, 8 Mar 2024 14:47:32 +0000 Subject: [PATCH 232/309] Accept test changes --- .../test.expected | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected b/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected index 9ad4eeeadc8..7768a1d28bd 100644 --- a/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected +++ b/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected @@ -32,6 +32,14 @@ methodWithDuplicate | AbstractCollection<String> | removeAll | Collection<?> | | AbstractCollection<String> | retainAll | Collection<?> | | AbstractCollection<String> | toArray | T[] | +| AbstractCollection<T> | add | T | +| AbstractCollection<T> | addAll | Collection<? extends T> | +| AbstractCollection<T> | contains | Object | +| AbstractCollection<T> | containsAll | Collection<?> | +| AbstractCollection<T> | remove | Object | +| AbstractCollection<T> | removeAll | Collection<?> | +| AbstractCollection<T> | retainAll | Collection<?> | +| AbstractCollection<T> | toArray | T[] | | AbstractList | add | E | | AbstractList | add | int | | AbstractList | addAll | Collection<? extends E> | @@ -169,6 +177,17 @@ methodWithDuplicate | Collection<String> | retainAll | Collection<?> | | Collection<String> | toArray | IntFunction<T[]> | | Collection<String> | toArray | T[] | +| Collection<T> | add | T | +| Collection<T> | addAll | Collection<? extends T> | +| Collection<T> | contains | Object | +| Collection<T> | containsAll | Collection<?> | +| Collection<T> | equals | Object | +| Collection<T> | remove | Object | +| Collection<T> | removeAll | Collection<?> | +| Collection<T> | removeIf | Predicate<? super T> | +| Collection<T> | retainAll | Collection<?> | +| Collection<T> | toArray | IntFunction<T[]> | +| Collection<T> | toArray | T[] | | Collection<V> | add | V | | Collection<V> | addAll | Collection<? extends V> | | Collection<V> | contains | Object | From 32b80f8cb182163f22370fb6cd3a79619ce37b2b Mon Sep 17 00:00:00 2001 From: Harry Maclean <hmac@github.com> Date: Tue, 19 Mar 2024 08:38:14 +0000 Subject: [PATCH 233/309] Ruby: Add tests for hash flow --- .../lib/codeql/ruby/frameworks/core/Array.qll | 1 + .../lib/codeql/ruby/frameworks/core/Hash.qll | 2 ++ .../dataflow/hash-flow/hash-flow.expected | 33 +++++++++++++++++++ .../dataflow/hash-flow/hash_flow.rb | 15 +++++++++ 4 files changed, 51 insertions(+) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll index d2e51624b4e..2da521e54a1 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Array.qll @@ -1855,6 +1855,7 @@ module Enumerable { override predicate propagatesFlow(string input, string output, boolean preservesValue) { input = "Argument[self].Element[any]" and + // For `Hash#map`, the value flows to parameter 1 output = "Argument[block].Parameter[0, 1]" and preservesValue = true or diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll index ee90c3ee6e4..7583498ed08 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll @@ -524,6 +524,8 @@ private class ValuesSummary extends SimpleSummarizedCallable { } } +// We don't (yet) track data flow through hash keys, but this is still useful in cases where a +// whole hash(like) object is tainted, such as `ActionController#params`. private class KeysSummary extends SimpleSummarizedCallable { KeysSummary() { this = "keys" } diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected index d2da8837a56..23027a7d73f 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected @@ -1089,6 +1089,19 @@ edges | hash_flow.rb:994:30:994:40 | call to taint | hash_flow.rb:994:14:994:47 | ...[...] [element :b] | provenance | | | hash_flow.rb:996:14:996:15 | h2 [element :b] | hash_flow.rb:996:14:996:19 | ...[...] | provenance | | | hash_flow.rb:998:14:998:15 | h2 [element :b] | hash_flow.rb:998:14:998:18 | ...[...] | provenance | | +| hash_flow.rb:1006:5:1006:5 | [post] h [element] | hash_flow.rb:1007:12:1007:12 | h [element] | provenance | | +| hash_flow.rb:1006:14:1006:24 | call to taint | hash_flow.rb:1006:5:1006:5 | [post] h [element] | provenance | | +| hash_flow.rb:1007:5:1007:8 | keys [element] | hash_flow.rb:1008:10:1008:13 | keys [element] | provenance | | +| hash_flow.rb:1007:12:1007:12 | h [element] | hash_flow.rb:1007:12:1007:17 | call to keys [element] | provenance | | +| hash_flow.rb:1007:12:1007:17 | call to keys [element] | hash_flow.rb:1007:5:1007:8 | keys [element] | provenance | | +| hash_flow.rb:1008:10:1008:13 | keys [element] | hash_flow.rb:1008:10:1008:17 | ...[...] | provenance | | +| hash_flow.rb:1012:5:1012:5 | h [element :a] | hash_flow.rb:1013:5:1013:5 | h [element :a] | provenance | | +| hash_flow.rb:1012:9:1012:45 | call to [] [element :a] | hash_flow.rb:1012:5:1012:5 | h [element :a] | provenance | | +| hash_flow.rb:1012:14:1012:24 | call to taint | hash_flow.rb:1012:9:1012:45 | call to [] [element :a] | provenance | | +| hash_flow.rb:1013:5:1013:5 | h [element :a] | hash_flow.rb:1013:15:1013:15 | k | provenance | | +| hash_flow.rb:1013:5:1013:5 | h [element :a] | hash_flow.rb:1013:18:1013:18 | v | provenance | | +| hash_flow.rb:1013:15:1013:15 | k | hash_flow.rb:1015:14:1015:14 | k | provenance | | +| hash_flow.rb:1013:18:1013:18 | v | hash_flow.rb:1014:14:1014:14 | v | provenance | | nodes | hash_flow.rb:10:5:10:8 | hash [element 0] | semmle.label | hash [element 0] | | hash_flow.rb:10:5:10:8 | hash [element :a] | semmle.label | hash [element :a] | @@ -2251,6 +2264,21 @@ nodes | hash_flow.rb:996:14:996:19 | ...[...] | semmle.label | ...[...] | | hash_flow.rb:998:14:998:15 | h2 [element :b] | semmle.label | h2 [element :b] | | hash_flow.rb:998:14:998:18 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:1006:5:1006:5 | [post] h [element] | semmle.label | [post] h [element] | +| hash_flow.rb:1006:14:1006:24 | call to taint | semmle.label | call to taint | +| hash_flow.rb:1007:5:1007:8 | keys [element] | semmle.label | keys [element] | +| hash_flow.rb:1007:12:1007:12 | h [element] | semmle.label | h [element] | +| hash_flow.rb:1007:12:1007:17 | call to keys [element] | semmle.label | call to keys [element] | +| hash_flow.rb:1008:10:1008:13 | keys [element] | semmle.label | keys [element] | +| hash_flow.rb:1008:10:1008:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:1012:5:1012:5 | h [element :a] | semmle.label | h [element :a] | +| hash_flow.rb:1012:9:1012:45 | call to [] [element :a] | semmle.label | call to [] [element :a] | +| hash_flow.rb:1012:14:1012:24 | call to taint | semmle.label | call to taint | +| hash_flow.rb:1013:5:1013:5 | h [element :a] | semmle.label | h [element :a] | +| hash_flow.rb:1013:15:1013:15 | k | semmle.label | k | +| hash_flow.rb:1013:18:1013:18 | v | semmle.label | v | +| hash_flow.rb:1014:14:1014:14 | v | semmle.label | v | +| hash_flow.rb:1015:14:1015:14 | k | semmle.label | k | subpaths hashLiteral | hash_flow.rb:10:12:21:5 | call to [] | @@ -2324,6 +2352,8 @@ hashLiteral | hash_flow.rb:946:13:950:5 | call to [] | | hash_flow.rb:971:9:971:38 | ...[...] | | hash_flow.rb:994:14:994:47 | ...[...] | +| hash_flow.rb:1005:9:1005:10 | call to [] | +| hash_flow.rb:1012:9:1012:45 | call to [] | #select | hash_flow.rb:22:10:22:17 | ...[...] | hash_flow.rb:11:15:11:24 | call to taint | hash_flow.rb:22:10:22:17 | ...[...] | $@ | hash_flow.rb:11:15:11:24 | call to taint | call to taint | | hash_flow.rb:24:10:24:17 | ...[...] | hash_flow.rb:13:12:13:21 | call to taint | hash_flow.rb:24:10:24:17 | ...[...] | $@ | hash_flow.rb:13:12:13:21 | call to taint | call to taint | @@ -2569,3 +2599,6 @@ hashLiteral | hash_flow.rb:975:10:975:13 | ...[...] | hash_flow.rb:971:23:971:31 | call to taint | hash_flow.rb:975:10:975:13 | ...[...] | $@ | hash_flow.rb:971:23:971:31 | call to taint | call to taint | | hash_flow.rb:996:14:996:19 | ...[...] | hash_flow.rb:994:30:994:40 | call to taint | hash_flow.rb:996:14:996:19 | ...[...] | $@ | hash_flow.rb:994:30:994:40 | call to taint | call to taint | | hash_flow.rb:998:14:998:18 | ...[...] | hash_flow.rb:994:30:994:40 | call to taint | hash_flow.rb:998:14:998:18 | ...[...] | $@ | hash_flow.rb:994:30:994:40 | call to taint | call to taint | +| hash_flow.rb:1008:10:1008:17 | ...[...] | hash_flow.rb:1006:14:1006:24 | call to taint | hash_flow.rb:1008:10:1008:17 | ...[...] | $@ | hash_flow.rb:1006:14:1006:24 | call to taint | call to taint | +| hash_flow.rb:1014:14:1014:14 | v | hash_flow.rb:1012:14:1012:24 | call to taint | hash_flow.rb:1014:14:1014:14 | v | $@ | hash_flow.rb:1012:14:1012:24 | call to taint | call to taint | +| hash_flow.rb:1015:14:1015:14 | k | hash_flow.rb:1012:14:1012:24 | call to taint | hash_flow.rb:1015:14:1015:14 | k | $@ | hash_flow.rb:1012:14:1012:24 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb b/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb index 14c2504f959..b88f8c3a4d4 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb @@ -1000,3 +1000,18 @@ class M54 end M54.new.m54(:b) + +def m55 + h = {} + h[f()] = taint(55.1) + keys = h.keys + sink(keys[:a]) # $ hasValueFlow=55.1 +end + +def m56 + h = { a: taint(56.1), taint(56.2) => :b } + h.map do |k, v| + sink(v) # $ hasValueFlow=56.1 + sink(k) # $ MISSING: hasValueFlow=56.2 SPURIOUS: hasValueFlow=56.1 + end +end From dde148ee7ef4571b3b28b583d3cc76cea8dd377b Mon Sep 17 00:00:00 2001 From: Harry Maclean <hmac@github.com> Date: Tue, 19 Mar 2024 08:40:30 +0000 Subject: [PATCH 234/309] Ruby: add changenote --- ruby/ql/lib/change-notes/2024-03-19-activerecord-scopes.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2024-03-19-activerecord-scopes.md diff --git a/ruby/ql/lib/change-notes/2024-03-19-activerecord-scopes.md b/ruby/ql/lib/change-notes/2024-03-19-activerecord-scopes.md new file mode 100644 index 00000000000..963479568a0 --- /dev/null +++ b/ruby/ql/lib/change-notes/2024-03-19-activerecord-scopes.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Data flow is now tracked through `ActiveRecord` scopes. From 0c3d9f75f4a48308ee2b40043d541ceee8ce9227 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 09:41:58 +0000 Subject: [PATCH 235/309] C++: Add change note. --- .../2024-03-19-predicates-for-switches-as-guards.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2024-03-19-predicates-for-switches-as-guards.md diff --git a/cpp/ql/lib/change-notes/2024-03-19-predicates-for-switches-as-guards.md b/cpp/ql/lib/change-notes/2024-03-19-predicates-for-switches-as-guards.md new file mode 100644 index 00000000000..3dde8805599 --- /dev/null +++ b/cpp/ql/lib/change-notes/2024-03-19-predicates-for-switches-as-guards.md @@ -0,0 +1,5 @@ +--- +category: feature +--- +* Added a predicate `GuardCondition.comparesEq/4` to query whether an expression is compared to a constant. +* Added a predicate `GuardCondition.ensuresEq/4` to query whether a basic block is guarded by an expression being equal to a constant. \ No newline at end of file From cee6f003fd58c64916c629f7d8b27b870d6f78c5 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 19 Mar 2024 10:01:05 +0100 Subject: [PATCH 236/309] Tree-sitter: Split up `ast_node_info` table into two tables --- .../src/extractor/mod.rs | 59 +++++++++-------- .../src/generator/mod.rs | 64 ++++++++++++------- .../src/generator/ql_gen.rs | 27 ++++---- 3 files changed, 86 insertions(+), 64 deletions(-) diff --git a/shared/tree-sitter-extractor/src/extractor/mod.rs b/shared/tree-sitter-extractor/src/extractor/mod.rs index 0d493ebd9e1..d26e5e45975 100644 --- a/shared/tree-sitter-extractor/src/extractor/mod.rs +++ b/shared/tree-sitter-extractor/src/extractor/mod.rs @@ -209,10 +209,10 @@ struct Visitor<'a> { diagnostics_writer: &'a mut diagnostics::LogWriter, /// A trap::Writer to accumulate trap entries trap_writer: &'a mut trap::Writer, - /// A counter for top-level child nodes - toplevel_child_counter: usize, - /// Language-specific name of the AST info table - ast_node_info_table_name: String, + /// Language-specific name of the AST location table + ast_node_location_table_name: String, + /// Language-specific name of the AST parent table + ast_node_parent_table_name: String, /// Language-specific name of the tokeninfo table tokeninfo_table_name: String, /// A lookup table from type name to node types @@ -242,8 +242,8 @@ impl<'a> Visitor<'a> { source, diagnostics_writer, trap_writer, - toplevel_child_counter: 0, - ast_node_info_table_name: format!("{}_ast_node_info", language_prefix), + ast_node_location_table_name: format!("{}_ast_node_location", language_prefix), + ast_node_parent_table_name: format!("{}_ast_node_parent", language_prefix), tokeninfo_table_name: format!("{}_tokeninfo", language_prefix), schema, stack: Vec::new(), @@ -342,27 +342,29 @@ impl<'a> Visitor<'a> { }) .unwrap(); let mut valid = true; - let (parent_id, parent_index) = match self.stack.last_mut() { + let parent_info = match self.stack.last_mut() { Some(p) if !node.is_extra() => { p.1 += 1; - (p.0, p.1 - 1) - } - _ => { - self.toplevel_child_counter += 1; - (self.file_label, self.toplevel_child_counter - 1) + Some((p.0, p.1 - 1)) } + _ => None, }; match &table.kind { EntryKind::Token { kind_id, .. } => { self.trap_writer.add_tuple( - &self.ast_node_info_table_name, - vec![ - trap::Arg::Label(id), - trap::Arg::Label(parent_id), - trap::Arg::Int(parent_index), - trap::Arg::Label(loc_label), - ], + &self.ast_node_location_table_name, + vec![trap::Arg::Label(id), trap::Arg::Label(loc_label)], ); + if let Some((parent_id, parent_index)) = parent_info { + self.trap_writer.add_tuple( + &self.ast_node_parent_table_name, + vec![ + trap::Arg::Label(id), + trap::Arg::Label(parent_id), + trap::Arg::Int(parent_index), + ], + ); + }; self.trap_writer.add_tuple( &self.tokeninfo_table_name, vec![ @@ -378,14 +380,19 @@ impl<'a> Visitor<'a> { } => { if let Some(args) = self.complex_node(&node, fields, &child_nodes, id) { self.trap_writer.add_tuple( - &self.ast_node_info_table_name, - vec![ - trap::Arg::Label(id), - trap::Arg::Label(parent_id), - trap::Arg::Int(parent_index), - trap::Arg::Label(loc_label), - ], + &self.ast_node_location_table_name, + vec![trap::Arg::Label(id), trap::Arg::Label(loc_label)], ); + if let Some((parent_id, parent_index)) = parent_info { + self.trap_writer.add_tuple( + &self.ast_node_parent_table_name, + vec![ + trap::Arg::Label(id), + trap::Arg::Label(parent_id), + trap::Arg::Int(parent_index), + ], + ); + }; let mut all_args = vec![trap::Arg::Label(id)]; all_args.extend(args); self.trap_writer.add_tuple(table_name, all_args); diff --git a/shared/tree-sitter-extractor/src/generator/mod.rs b/shared/tree-sitter-extractor/src/generator/mod.rs index 0d01deae57f..ea41f3190e6 100644 --- a/shared/tree-sitter-extractor/src/generator/mod.rs +++ b/shared/tree-sitter-extractor/src/generator/mod.rs @@ -52,8 +52,8 @@ pub fn generate( for language in languages { let prefix = node_types::to_snake_case(&language.name); let ast_node_name = format!("{}_ast_node", &prefix); - let node_info_table_name = format!("{}_ast_node_info", &prefix); - let ast_node_parent_name = format!("{}_ast_node_parent", &prefix); + let node_location_table_name = format!("{}_ast_node_location", &prefix); + let node_parent_table_name = format!("{}_ast_node_parent", &prefix); let token_name = format!("{}_token", &prefix); let tokeninfo_name = format!("{}_tokeninfo", &prefix); let reserved_word_name = format!("{}_reserved_word", &prefix); @@ -72,13 +72,12 @@ pub fn generate( name: &ast_node_name, members: ast_node_members, }), - dbscheme::Entry::Union(dbscheme::Union { - name: &ast_node_parent_name, - members: [&ast_node_name, "file"].iter().cloned().collect(), - }), - dbscheme::Entry::Table(create_ast_node_info_table( - &node_info_table_name, - &ast_node_parent_name, + dbscheme::Entry::Table(create_ast_node_location_table( + &node_location_table_name, + &ast_node_name, + )), + dbscheme::Entry::Table(create_ast_node_parent_table( + &node_parent_table_name, &ast_node_name, )), ], @@ -87,7 +86,8 @@ pub fn generate( let mut body = vec![ ql::TopLevel::Class(ql_gen::create_ast_node_class( &ast_node_name, - &node_info_table_name, + &node_location_table_name, + &node_parent_table_name, )), ql::TopLevel::Class(ql_gen::create_token_class(&token_name, &tokeninfo_name)), ql::TopLevel::Class(ql_gen::create_reserved_word_class(&reserved_word_name)), @@ -335,18 +335,43 @@ fn convert_nodes( (entries, ast_node_members, token_kinds) } -/// Creates a dbscheme table specifying the parent node and location for each -/// AST node. +/// Creates a dbscheme table specifying the location for each AST node. /// /// # Arguments /// - `name` - the name of the table to create. -/// - `parent_name` - the name of the parent type. /// - `ast_node_name` - the name of the node child type. -fn create_ast_node_info_table<'a>( +fn create_ast_node_location_table<'a>( name: &'a str, - parent_name: &'a str, ast_node_name: &'a str, ) -> dbscheme::Table<'a> { + dbscheme::Table { + name, + columns: vec![ + dbscheme::Column { + db_type: dbscheme::DbColumnType::Int, + name: "node", + unique: true, + ql_type: ql::Type::At(ast_node_name), + ql_type_is_ref: true, + }, + dbscheme::Column { + unique: false, + db_type: dbscheme::DbColumnType::Int, + name: "loc", + ql_type: ql::Type::At("location_default"), + ql_type_is_ref: true, + }, + ], + keysets: None, + } +} + +/// Creates a dbscheme table specifying the parent node for each AST node. +/// +/// # Arguments +/// - `name` - the name of the table to create. +/// - `ast_node_name` - the name of the node child type. +fn create_ast_node_parent_table<'a>(name: &'a str, ast_node_name: &'a str) -> dbscheme::Table<'a> { dbscheme::Table { name, columns: vec![ @@ -361,7 +386,7 @@ fn create_ast_node_info_table<'a>( db_type: dbscheme::DbColumnType::Int, name: "parent", unique: false, - ql_type: ql::Type::At(parent_name), + ql_type: ql::Type::At(ast_node_name), ql_type_is_ref: true, }, dbscheme::Column { @@ -371,13 +396,6 @@ fn create_ast_node_info_table<'a>( ql_type: ql::Type::Int, ql_type_is_ref: true, }, - dbscheme::Column { - unique: false, - db_type: dbscheme::DbColumnType::Int, - name: "loc", - ql_type: ql::Type::At("location_default"), - ql_type_is_ref: true, - }, ], keysets: Some(vec!["parent", "parent_index"]), } diff --git a/shared/tree-sitter-extractor/src/generator/ql_gen.rs b/shared/tree-sitter-extractor/src/generator/ql_gen.rs index 4407cbdd32e..919ff43af42 100644 --- a/shared/tree-sitter-extractor/src/generator/ql_gen.rs +++ b/shared/tree-sitter-extractor/src/generator/ql_gen.rs @@ -4,7 +4,11 @@ use crate::{generator::ql, node_types}; /// Creates the hard-coded `AstNode` class that acts as a supertype of all /// classes we generate. -pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) -> ql::Class<'a> { +pub fn create_ast_node_class<'a>( + ast_node: &'a str, + node_location_table: &'a str, + node_parent_table: &'a str, +) -> ql::Class<'a> { // Default implementation of `toString` calls `this.getAPrimaryQlClass()` let to_string = ql::Predicate { qldoc: Some(String::from( @@ -32,13 +36,8 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) -> return_type: Some(ql::Type::Normal("L::Location")), formal_parameters: vec![], body: ql::Expression::Pred( - node_info_table, - vec![ - ql::Expression::Var("this"), - ql::Expression::Var("_"), // parent - ql::Expression::Var("_"), // parent index - ql::Expression::Var("result"), // location - ], + node_location_table, + vec![ql::Expression::Var("this"), ql::Expression::Var("result")], ), }; let get_a_field_or_child = create_none_predicate( @@ -55,12 +54,11 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) -> return_type: Some(ql::Type::Normal("AstNode")), formal_parameters: vec![], body: ql::Expression::Pred( - node_info_table, + node_parent_table, vec![ ql::Expression::Var("this"), ql::Expression::Var("result"), - ql::Expression::Var("_"), // parent index - ql::Expression::Var("_"), // location + ql::Expression::Var("_"), ], ), }; @@ -74,12 +72,11 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) -> return_type: Some(ql::Type::Int), formal_parameters: vec![], body: ql::Expression::Pred( - node_info_table, + node_parent_table, vec![ ql::Expression::Var("this"), - ql::Expression::Var("_"), // parent - ql::Expression::Var("result"), // parent index - ql::Expression::Var("_"), // location + ql::Expression::Var("_"), + ql::Expression::Var("result"), ], ), }; From fd49871b9a69a08ca35dd6da1d0fc0235c971b73 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Fri, 15 Mar 2024 15:13:34 +0100 Subject: [PATCH 237/309] C++: Handle destructors of temporaries with extended lifetimes --- .../library-tests/ir/ir/PrintAST.expected | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 3b369651304..87179ad8bf8 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -1883,6 +1883,12 @@ destructors_for_temps.cpp: # 30| Type = [Class] ClassWithDestructor2 # 30| ValueCategory = lvalue # 31| getStmt(1): [ReturnStmt] return ... +# 31| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 31| Type = [VoidType] void +# 31| ValueCategory = prvalue +# 31| getQualifier(): [ReuseExpr] reuse of temporary object +# 31| Type = [Class] ClassWithDestructor2 +# 31| ValueCategory = xvalue # 33| [TopLevelFunction] void temp_test4() # 33| <params>: # 33| getEntryPoint(): [BlockStmt] { ... } @@ -1914,6 +1920,12 @@ destructors_for_temps.cpp: # 36| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 # 36| Type = [VoidType] void # 36| ValueCategory = prvalue +# 36| getQualifier(): [ReuseExpr] reuse of temporary object +# 36| Type = [Class] ClassWithDestructor2 +# 36| ValueCategory = xvalue +# 36| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor2 +# 36| Type = [VoidType] void +# 36| ValueCategory = prvalue # 36| getQualifier(): [VariableAccess] c # 36| Type = [Class] ClassWithDestructor2 # 36| ValueCategory = lvalue @@ -11743,6 +11755,12 @@ ir.cpp: # 1426| getImplicitDestructorCall(0): [DestructorCall] call to ~String # 1426| Type = [VoidType] void # 1426| ValueCategory = prvalue +# 1426| getQualifier(): [ReuseExpr] reuse of temporary object +# 1426| Type = [Struct] String +# 1426| ValueCategory = xvalue +# 1426| getImplicitDestructorCall(1): [DestructorCall] call to ~String +# 1426| Type = [VoidType] void +# 1426| ValueCategory = prvalue # 1426| getQualifier(): [VariableAccess] s # 1426| Type = [Struct] String # 1426| ValueCategory = lvalue @@ -11838,6 +11856,12 @@ ir.cpp: # 1438| getImplicitDestructorCall(1): [DestructorCall] call to ~destructor_only # 1438| Type = [VoidType] void # 1438| ValueCategory = prvalue +# 1438| getQualifier(): [ReuseExpr] reuse of temporary object +# 1438| Type = [Class] destructor_only +# 1438| ValueCategory = xvalue +# 1438| getImplicitDestructorCall(2): [DestructorCall] call to ~destructor_only +# 1438| Type = [VoidType] void +# 1438| ValueCategory = prvalue # 1438| getQualifier(): [VariableAccess] d # 1438| Type = [Class] destructor_only # 1438| ValueCategory = lvalue From d47e2690b89f69e540e5f1c1f39e558c75af22d4 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Mon, 18 Mar 2024 16:14:03 +0100 Subject: [PATCH 238/309] C++: Update test results after extractor changes --- .../test/library-tests/ir/ir/PrintAST.expected | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 87179ad8bf8..669ec52376f 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -1781,6 +1781,12 @@ destructors_for_temps.cpp: # 15| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 # 15| Type = [VoidType] void # 15| ValueCategory = prvalue +# 15| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 15| Type = [VoidType] void +# 15| ValueCategory = prvalue +# 15| getQualifier(): [ReuseExpr] reuse of temporary object +# 15| Type = [Class] ClassWithDestructor2 +# 15| ValueCategory = xvalue # 15| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 15| Type = [Class] ClassWithDestructor2 # 15| ValueCategory = prvalue(load) @@ -1804,6 +1810,12 @@ destructors_for_temps.cpp: # 16| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 16| Type = [Class] ClassWithDestructor2 # 16| ValueCategory = prvalue(load) +# 16| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 16| Type = [VoidType] void +# 16| ValueCategory = prvalue +# 16| getQualifier(): [ReuseExpr] reuse of temporary object +# 16| Type = [Class] ClassWithDestructor2 +# 16| ValueCategory = xvalue # 17| getStmt(2): [ReturnStmt] return ... # 17| getExpr(): [FunctionCall] call to get_x # 17| Type = [PlainCharType] char @@ -18145,6 +18157,12 @@ ir.cpp: # 2293| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 2293| Type = [PointerType] const char * # 2293| ValueCategory = prvalue +# 2293| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2293| Type = [VoidType] void +# 2293| ValueCategory = prvalue +# 2293| getQualifier(): [ReuseExpr] reuse of temporary object +# 2293| Type = [Struct] String +# 2293| ValueCategory = xvalue # 2293| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 2293| Type = [Struct] String # 2293| ValueCategory = lvalue From 350b239ed62d5747195bb68c73239f36acbcbfd0 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 10:29:43 +0000 Subject: [PATCH 239/309] C++: Fix cartesian product in 'simple_comparison_eq'. --- cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index ddc380c304f..ab67d77f5cd 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -722,10 +722,12 @@ private predicate simple_comparison_eq( /** Rearrange various simple comparisons into `op == k` form. */ private predicate simple_comparison_eq(Instruction test, Operand op, int k, AbstractValue value) { - exists(SwitchInstruction switch | + exists(SwitchInstruction switch, CaseEdge case | test = switch.getExpression() and op.getDef() = test and - value.(MatchValue).getCase().getValue().toInt() = k + case = value.(MatchValue).getCase() and + exists(switch.getSuccessor(case)) and + case.getValue().toInt() = k ) } From d7afd7b2e1d2797528aaf9322cc997b76cb61d23 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 10:54:35 +0000 Subject: [PATCH 240/309] C++: Accept test changes. --- .../library-tests/controlflow/guards/GuardsCompare.expected | 6 ------ 1 file changed, 6 deletions(-) diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected index 5f714676b5c..1057e8e1046 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected @@ -58,18 +58,12 @@ | 61 | i == 0 when i is true | | 61 | i == 1 when i is true | | 61 | i == 2 when i is true | -| 74 | i == 0 when i is true | -| 74 | i == 1 when i is true | -| 74 | i == 2 when i is true | | 75 | 0 != x+0 when ... == ... is false | | 75 | 0 == x+0 when ... == ... is true | | 75 | x != 0 when ... == ... is false | | 75 | x != 0+0 when ... == ... is false | | 75 | x == 0 when ... == ... is true | | 75 | x == 0+0 when ... == ... is true | -| 84 | i == 0 when i is true | -| 84 | i == 1 when i is true | -| 84 | i == 2 when i is true | | 85 | 0 != x+0 when ... == ... is false | | 85 | 0 != y+0 when ... != ... is true | | 85 | 0 != y+0 when ... && ... is true | From e16e1c7e83f4b71ec670ab19b976661988c26067 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 11:26:32 +0000 Subject: [PATCH 241/309] C++: Add tests. --- .../library-tests/ir/ir/PrintAST.expected | 780 ++++++++++++++++++ .../library-tests/ir/ir/aliased_ir.expected | 28 + cpp/ql/test/library-tests/ir/ir/ir.cpp | 15 + .../ir/ir/operand_locations.expected | 14 + .../test/library-tests/ir/ir/raw_ir.expected | 26 + 5 files changed, 863 insertions(+) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 87179ad8bf8..11ca89a3b45 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -18670,6 +18670,786 @@ ir.cpp: # 2376| getExpr(): [FunctionAccess] VoidToInt # 2376| Type = [RoutineType] ..()(..) # 2376| ValueCategory = prvalue +# 2381| [TopLevelFunction] int small_operation_should_not_be_constant_folded() +# 2381| <params>: +# 2381| getEntryPoint(): [BlockStmt] { ... } +# 2382| getStmt(0): [ReturnStmt] return ... +# 2382| getExpr(): [AddExpr] ... + ... +# 2382| Type = [IntType] int +# 2382| Value = [AddExpr] 2 +# 2382| ValueCategory = prvalue +# 2382| getLeftOperand(): [Literal] 1 +# 2382| Type = [IntType] int +# 2382| Value = [Literal] 1 +# 2382| ValueCategory = prvalue +# 2382| getRightOperand(): [Literal] 1 +# 2382| Type = [IntType] int +# 2382| Value = [Literal] 1 +# 2382| ValueCategory = prvalue +# 2392| [TopLevelFunction] int large_operation_should_be_constant_folded() +# 2392| <params>: +# 2392| getEntryPoint(): [BlockStmt] { ... } +# 2393| getStmt(0): [ReturnStmt] return ... +# 2393| getExpr(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 64 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 32 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 16 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 16 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 16 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 16 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 32 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 16 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 16 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| Type = [IntType] int +# 2393| Value = [AddExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand(): [Literal] 1 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 1 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 2 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 4 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 8 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 16 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 16 +# 2393| ValueCategory = prvalue +# 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 32 +# 2393| ValueCategory = prvalue +# 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 32 +# 2393| ValueCategory = prvalue +# 2393| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2393| Type = [IntType] int +# 2393| Value = [ParenthesisExpr] 64 +# 2393| ValueCategory = prvalue perf-regression.cpp: # 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&) # 4| <params>: 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 a5a09578750..f06fefabf3c 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -15135,6 +15135,34 @@ ir.cpp: # 2374| v2374_7(void) = AliasedUse : m2374_3 # 2374| v2374_8(void) = ExitFunction : +# 2381| int small_operation_should_not_be_constant_folded() +# 2381| Block 0 +# 2381| v2381_1(void) = EnterFunction : +# 2381| m2381_2(unknown) = AliasedDefinition : +# 2381| m2381_3(unknown) = InitializeNonLocal : +# 2381| m2381_4(unknown) = Chi : total:m2381_2, partial:m2381_3 +# 2382| r2382_1(glval<int>) = VariableAddress[#return] : +# 2382| r2382_2(int) = Constant[2] : +# 2382| m2382_3(int) = Store[#return] : &:r2382_1, r2382_2 +# 2381| r2381_5(glval<int>) = VariableAddress[#return] : +# 2381| v2381_6(void) = ReturnValue : &:r2381_5, m2382_3 +# 2381| v2381_7(void) = AliasedUse : m2381_3 +# 2381| v2381_8(void) = ExitFunction : + +# 2392| int large_operation_should_be_constant_folded() +# 2392| Block 0 +# 2392| v2392_1(void) = EnterFunction : +# 2392| m2392_2(unknown) = AliasedDefinition : +# 2392| m2392_3(unknown) = InitializeNonLocal : +# 2392| m2392_4(unknown) = Chi : total:m2392_2, partial:m2392_3 +# 2393| r2393_1(glval<int>) = VariableAddress[#return] : +# 2393| r2393_2(int) = Constant[64] : +# 2393| m2393_3(int) = Store[#return] : &:r2393_1, r2393_2 +# 2392| r2392_5(glval<int>) = VariableAddress[#return] : +# 2392| v2392_6(void) = ReturnValue : &:r2392_5, m2393_3 +# 2392| v2392_7(void) = AliasedUse : m2392_3 +# 2392| v2392_8(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index 492f8c71c11..a195dcd5aa4 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -2378,4 +2378,19 @@ namespace return_routine_type { } +int small_operation_should_not_be_constant_folded() { + return 1 + 1; +} + +#define BINOP2(x) (x + x) +#define BINOP4(x) (BINOP2(x) + BINOP2(x)) +#define BINOP8(x) (BINOP4(x) + BINOP4(x)) +#define BINOP16(x) (BINOP8(x) + BINOP8(x)) +#define BINOP32(x) (BINOP16(x) + BINOP16(x)) +#define BINOP64(x) (BINOP32(x) + BINOP32(x)) + +int large_operation_should_be_constant_folded() { + return BINOP64(1); +} + // semmle-extractor-options: -std=c++20 --clang diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index ad4cfdb1e7c..778f87f9de9 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -12530,6 +12530,20 @@ | ir.cpp:2374:32:2374:47 | SideEffect | m2374_3 | | ir.cpp:2376:9:2376:44 | Address | &:r2376_1 | | ir.cpp:2376:16:2376:43 | StoreValue | r2376_2 | +| ir.cpp:2381:5:2381:49 | Address | &:r2381_5 | +| ir.cpp:2381:5:2381:49 | ChiPartial | partial:m2381_3 | +| ir.cpp:2381:5:2381:49 | ChiTotal | total:m2381_2 | +| ir.cpp:2381:5:2381:49 | Load | m2382_3 | +| ir.cpp:2381:5:2381:49 | SideEffect | m2381_3 | +| ir.cpp:2382:5:2382:17 | Address | &:r2382_1 | +| ir.cpp:2382:12:2382:16 | StoreValue | r2382_2 | +| ir.cpp:2392:5:2392:45 | Address | &:r2392_5 | +| ir.cpp:2392:5:2392:45 | ChiPartial | partial:m2392_3 | +| ir.cpp:2392:5:2392:45 | ChiTotal | total:m2392_2 | +| ir.cpp:2392:5:2392:45 | Load | m2393_3 | +| ir.cpp:2392:5:2392:45 | SideEffect | m2392_3 | +| ir.cpp:2393:5:2393:22 | Address | &:r2393_1 | +| ir.cpp:2393:12:2393:21 | StoreValue | r2393_2 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | 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 0c42f3d2af6..ebe05f70d18 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -13977,6 +13977,32 @@ ir.cpp: # 2374| v2374_6(void) = AliasedUse : ~m? # 2374| v2374_7(void) = ExitFunction : +# 2381| int small_operation_should_not_be_constant_folded() +# 2381| Block 0 +# 2381| v2381_1(void) = EnterFunction : +# 2381| mu2381_2(unknown) = AliasedDefinition : +# 2381| mu2381_3(unknown) = InitializeNonLocal : +# 2382| r2382_1(glval<int>) = VariableAddress[#return] : +# 2382| r2382_2(int) = Constant[2] : +# 2382| mu2382_3(int) = Store[#return] : &:r2382_1, r2382_2 +# 2381| r2381_4(glval<int>) = VariableAddress[#return] : +# 2381| v2381_5(void) = ReturnValue : &:r2381_4, ~m? +# 2381| v2381_6(void) = AliasedUse : ~m? +# 2381| v2381_7(void) = ExitFunction : + +# 2392| int large_operation_should_be_constant_folded() +# 2392| Block 0 +# 2392| v2392_1(void) = EnterFunction : +# 2392| mu2392_2(unknown) = AliasedDefinition : +# 2392| mu2392_3(unknown) = InitializeNonLocal : +# 2393| r2393_1(glval<int>) = VariableAddress[#return] : +# 2393| r2393_2(int) = Constant[64] : +# 2393| mu2393_3(int) = Store[#return] : &:r2393_1, r2393_2 +# 2392| r2392_4(glval<int>) = VariableAddress[#return] : +# 2392| v2392_5(void) = ReturnValue : &:r2392_4, ~m? +# 2392| v2392_6(void) = AliasedUse : ~m? +# 2392| v2392_7(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 From 4d3076ae7e94aa3cac7b37b30b8e8aad50c3640d Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 11:30:40 +0000 Subject: [PATCH 242/309] C++: Don't constant fold small binary operations. --- .../raw/internal/TranslatedElement.qll | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll index 81c704edb8b..e96959f5a68 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll @@ -40,12 +40,28 @@ IRTempVariable getIRTempVariable(Locatable ast, TempVariableTag tag) { result.getTag() = tag } +private Expr getAnOperand(BinaryOperation binOp) { result = binOp.getAnOperand() } + +private int getNumberOfBinaryOperands(BinaryOperation binOp) { + result = count(getAnOperand*(binOp)) +} + /** * Holds if `expr` is a constant of a type that can be replaced directly with * its value in the IR. This does not include address constants as we have no * means to express those as QL values. */ -predicate isIRConstant(Expr expr) { exists(expr.getValue()) } +predicate isIRConstant(Expr expr) { + exists(expr.getValue()) and + // We avoid constant folding binary operations since it's often useful to + // mark one of those as a source in dataflow, and if the operation is + // constant folded it's not possible to mark its operands as a source (or + // sink). + // But to avoid creating an outrageous amount of IR from very large + // constant expressions we fall back to constant folding if the operation + // has more than 50 operands (i.e., 1 + 2 + 3 + 4 + ... + 50) + if expr instanceof BinaryOperation then getNumberOfBinaryOperands(expr) > 50 else any() +} // Pulled out for performance. See // https://github.com/github/codeql-coreql-team/issues/1044. From 1af1ba48a9435c37d03b47b0927c8d34226b63ca Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 11:30:51 +0000 Subject: [PATCH 243/309] C++: Accept test changes. --- .../library-tests/ir/ir/aliased_ir.expected | 62 ++++++++++------ .../ir/ir/operand_locations.expected | 36 ++++++---- .../test/library-tests/ir/ir/raw_ir.expected | 71 +++++++++++++------ 3 files changed, 117 insertions(+), 52 deletions(-) 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 f06fefabf3c..2efc51f1bcd 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -1457,13 +1457,15 @@ ir.cpp: # 43| m43_3(unknown) = InitializeNonLocal : # 43| m43_4(unknown) = Chi : total:m43_2, partial:m43_3 # 44| r44_1(glval<int>) = VariableAddress[x] : -# 44| r44_2(int) = Constant[17] : -# 44| m44_3(int) = Store[x] : &:r44_1, r44_2 +# 44| r44_2(int) = Constant[5] : +# 44| r44_3(int) = Constant[12] : +# 44| r44_4(int) = Add : r44_2, r44_3 +# 44| m44_5(int) = Store[x] : &:r44_1, r44_4 # 45| r45_1(glval<short>) = VariableAddress[y] : # 45| r45_2(short) = Constant[7] : # 45| m45_3(short) = Store[y] : &:r45_1, r45_2 # 46| r46_1(glval<int>) = VariableAddress[x] : -# 46| r46_2(int) = Load[x] : &:r46_1, m44_3 +# 46| r46_2(int) = Load[x] : &:r46_1, m44_5 # 46| r46_3(glval<short>) = VariableAddress[y] : # 46| r46_4(short) = Load[y] : &:r46_3, m45_3 # 46| r46_5(int) = Convert : r46_4 @@ -1472,7 +1474,7 @@ ir.cpp: # 46| r46_8(glval<short>) = VariableAddress[y] : # 46| m46_9(short) = Store[y] : &:r46_8, r46_7 # 47| r47_1(glval<int>) = VariableAddress[x] : -# 47| r47_2(int) = Load[x] : &:r47_1, m44_3 +# 47| r47_2(int) = Load[x] : &:r47_1, m44_5 # 47| r47_3(glval<short>) = VariableAddress[y] : # 47| r47_4(short) = Load[y] : &:r47_3, m46_9 # 47| r47_5(int) = Convert : r47_4 @@ -6102,14 +6104,30 @@ ir.cpp: # 913| m913_6(int) = InitializeParameter[x] : &:r913_5 # 914| r914_1(glval<bool>) = VariableAddress[a] : # 914| r914_2(bool) = Constant[1] : -# 914| m914_3(bool) = Store[a] : &:r914_1, r914_2 -# 915| r915_1(glval<int>) = VariableAddress[b] : -# 915| r915_2(bool) = Constant[1] : -# 915| v915_3(void) = ConditionalBranch : r915_2 -#-----| False -> Block 2 +# 914| v914_3(void) = ConditionalBranch : r914_2 +#-----| False -> Block 4 +#-----| True -> Block 2 + +# 914| Block 1 +# 914| r914_4(glval<bool>) = VariableAddress[#temp914:12] : +# 914| r914_5(bool) = Constant[1] : +# 914| m914_6(bool) = Store[#temp914:12] : &:r914_4, r914_5 +# 914| r914_7(glval<bool>) = VariableAddress[#temp914:12] : +# 914| r914_8(bool) = Load[#temp914:12] : &:r914_7, m914_6 +# 914| m914_9(bool) = Store[a] : &:r914_1, r914_8 +# 915| r915_1(glval<int>) = VariableAddress[b] : +# 915| r915_2(bool) = Constant[1] : +# 915| v915_3(void) = ConditionalBranch : r915_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 914| Block 2 +# 914| r914_10(bool) = Constant[1] : +# 914| v914_11(void) = ConditionalBranch : r914_10 +#-----| False -> Block 4 #-----| True -> Block 1 -# 915| Block 1 +# 915| Block 3 # 915| r915_4(glval<int>) = VariableAddress[x] : # 915| r915_5(int) = Load[x] : &:r915_4, m913_6 # 915| r915_6(glval<int>) = VariableAddress[#temp915:11] : @@ -6122,7 +6140,7 @@ ir.cpp: # 913| v913_8(void) = AliasedUse : m913_3 # 913| v913_9(void) = ExitFunction : -# 913| Block 2 +# 913| Block 4 # 913| v913_10(void) = Unreached : # 949| void OperatorNew() @@ -7718,15 +7736,17 @@ ir.cpp: # 1215| r1215_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1215| r1215_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1215_4, m1214_8 # 1215| r1215_6(int) = Constant[3] : -# 1215| r1215_7(int) = Constant[2] : -# 1215| r1215_8(int) = Constant[1] : -# 1215| r1215_9(int) = Constant[0] : -# 1215| r1215_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_6, 3:r1215_7, 4:r1215_8, 5:r1215_9 -# 1215| m1215_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_10 +# 1215| r1215_7(int) = Constant[0] : +# 1215| r1215_8(int) = Add : r1215_6, r1215_7 +# 1215| r1215_9(int) = Constant[2] : +# 1215| r1215_10(int) = Constant[1] : +# 1215| r1215_11(int) = Constant[0] : +# 1215| r1215_12(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_8, 3:r1215_9, 4:r1215_10, 5:r1215_11 +# 1215| m1215_13(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_12 # 1216| r1216_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1216| r1216_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1216_1, m1214_8 # 1216| r1216_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : -# 1216| r1216_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1216_3, m1215_11 +# 1216| r1216_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1216_3, m1215_13 # 1216| r1216_5(__attribute((vector_size(16UL))) int) = Add : r1216_2, r1216_4 # 1216| r1216_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1216| m1216_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1216_6, r1216_5 @@ -15142,10 +15162,12 @@ ir.cpp: # 2381| m2381_3(unknown) = InitializeNonLocal : # 2381| m2381_4(unknown) = Chi : total:m2381_2, partial:m2381_3 # 2382| r2382_1(glval<int>) = VariableAddress[#return] : -# 2382| r2382_2(int) = Constant[2] : -# 2382| m2382_3(int) = Store[#return] : &:r2382_1, r2382_2 +# 2382| r2382_2(int) = Constant[1] : +# 2382| r2382_3(int) = Constant[1] : +# 2382| r2382_4(int) = Add : r2382_2, r2382_3 +# 2382| m2382_5(int) = Store[#return] : &:r2382_1, r2382_4 # 2381| r2381_5(glval<int>) = VariableAddress[#return] : -# 2381| v2381_6(void) = ReturnValue : &:r2381_5, m2382_3 +# 2381| v2381_6(void) = ReturnValue : &:r2381_5, m2382_5 # 2381| v2381_7(void) = AliasedUse : m2381_3 # 2381| v2381_8(void) = ExitFunction : diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index 778f87f9de9..9b9c4888092 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -1668,13 +1668,15 @@ | ir.cpp:43:6:43:8 | ChiTotal | total:m43_2 | | ir.cpp:43:6:43:8 | SideEffect | m43_3 | | ir.cpp:44:9:44:9 | Address | &:r44_1 | -| ir.cpp:44:13:44:18 | StoreValue | r44_2 | +| ir.cpp:44:13:44:13 | Left | r44_2 | +| ir.cpp:44:13:44:18 | StoreValue | r44_4 | +| ir.cpp:44:17:44:18 | Right | r44_3 | | ir.cpp:45:11:45:11 | Address | &:r45_1 | | ir.cpp:45:15:45:15 | StoreValue | r45_2 | | ir.cpp:46:5:46:5 | Address | &:r46_8 | | ir.cpp:46:9:46:9 | Address | &:r46_1 | | ir.cpp:46:9:46:9 | Left | r46_2 | -| ir.cpp:46:9:46:9 | Load | m44_3 | +| ir.cpp:46:9:46:9 | Load | m44_5 | | ir.cpp:46:9:46:13 | StoreValue | r46_7 | | ir.cpp:46:9:46:13 | Unary | r46_6 | | ir.cpp:46:13:46:13 | Address | &:r46_3 | @@ -1684,7 +1686,7 @@ | ir.cpp:47:5:47:5 | Address | &:r47_7 | | ir.cpp:47:9:47:9 | Address | &:r47_1 | | ir.cpp:47:9:47:9 | Left | r47_2 | -| ir.cpp:47:9:47:9 | Load | m44_3 | +| ir.cpp:47:9:47:9 | Load | m44_5 | | ir.cpp:47:9:47:13 | StoreValue | r47_6 | | ir.cpp:47:13:47:13 | Address | &:r47_3 | | ir.cpp:47:13:47:13 | Load | m46_9 | @@ -5227,7 +5229,13 @@ | ir.cpp:913:6:913:23 | SideEffect | m913_3 | | ir.cpp:913:29:913:29 | Address | &:r913_5 | | ir.cpp:914:8:914:8 | Address | &:r914_1 | -| ir.cpp:914:12:914:23 | StoreValue | r914_2 | +| ir.cpp:914:12:914:15 | Condition | r914_2 | +| ir.cpp:914:12:914:23 | Address | &:r914_4 | +| ir.cpp:914:12:914:23 | Address | &:r914_7 | +| ir.cpp:914:12:914:23 | Load | m914_6 | +| ir.cpp:914:12:914:23 | StoreValue | r914_5 | +| ir.cpp:914:12:914:23 | StoreValue | r914_8 | +| ir.cpp:914:20:914:23 | Condition | r914_10 | | ir.cpp:915:7:915:7 | Address | &:r915_1 | | ir.cpp:915:11:915:16 | Condition | r915_2 | | ir.cpp:915:11:915:24 | Address | &:r915_6 | @@ -6521,24 +6529,26 @@ | ir.cpp:1214:12:1214:12 | Load | m1213_7 | | ir.cpp:1214:12:1214:12 | StoreValue | r1214_2 | | ir.cpp:1215:18:1215:28 | Address | &:r1215_1 | -| ir.cpp:1215:32:1215:78 | Arg(2) | 2:r1215_6 | -| ir.cpp:1215:32:1215:78 | StoreValue | r1215_10 | +| ir.cpp:1215:32:1215:78 | Arg(2) | 2:r1215_8 | +| ir.cpp:1215:32:1215:78 | StoreValue | r1215_12 | | ir.cpp:1215:56:1215:58 | Address | &:r1215_2 | | ir.cpp:1215:56:1215:58 | Arg(0) | 0:r1215_3 | | ir.cpp:1215:56:1215:58 | Load | m1214_8 | | ir.cpp:1215:61:1215:63 | Address | &:r1215_4 | | ir.cpp:1215:61:1215:63 | Arg(1) | 1:r1215_5 | | ir.cpp:1215:61:1215:63 | Load | m1214_8 | -| ir.cpp:1215:71:1215:71 | Arg(3) | 3:r1215_7 | -| ir.cpp:1215:74:1215:74 | Arg(4) | 4:r1215_8 | -| ir.cpp:1215:77:1215:77 | Arg(5) | 5:r1215_9 | +| ir.cpp:1215:66:1215:66 | Left | r1215_6 | +| ir.cpp:1215:68:1215:68 | Right | r1215_7 | +| ir.cpp:1215:71:1215:71 | Arg(3) | 3:r1215_9 | +| ir.cpp:1215:74:1215:74 | Arg(4) | 4:r1215_10 | +| ir.cpp:1215:77:1215:77 | Arg(5) | 5:r1215_11 | | ir.cpp:1216:3:1216:5 | Address | &:r1216_6 | | ir.cpp:1216:9:1216:11 | Address | &:r1216_1 | | ir.cpp:1216:9:1216:11 | Left | r1216_2 | | ir.cpp:1216:9:1216:11 | Load | m1214_8 | | ir.cpp:1216:9:1216:25 | StoreValue | r1216_5 | | ir.cpp:1216:15:1216:25 | Address | &:r1216_3 | -| ir.cpp:1216:15:1216:25 | Load | m1215_11 | +| ir.cpp:1216:15:1216:25 | Load | m1215_13 | | ir.cpp:1216:15:1216:25 | Right | r1216_4 | | ir.cpp:1221:5:1221:21 | Address | &:r1221_7 | | ir.cpp:1221:5:1221:21 | ChiPartial | partial:m1221_3 | @@ -12533,10 +12543,12 @@ | ir.cpp:2381:5:2381:49 | Address | &:r2381_5 | | ir.cpp:2381:5:2381:49 | ChiPartial | partial:m2381_3 | | ir.cpp:2381:5:2381:49 | ChiTotal | total:m2381_2 | -| ir.cpp:2381:5:2381:49 | Load | m2382_3 | +| ir.cpp:2381:5:2381:49 | Load | m2382_5 | | ir.cpp:2381:5:2381:49 | SideEffect | m2381_3 | | ir.cpp:2382:5:2382:17 | Address | &:r2382_1 | -| ir.cpp:2382:12:2382:16 | StoreValue | r2382_2 | +| ir.cpp:2382:12:2382:12 | Left | r2382_2 | +| ir.cpp:2382:12:2382:16 | StoreValue | r2382_4 | +| ir.cpp:2382:16:2382:16 | Right | r2382_3 | | ir.cpp:2392:5:2392:45 | Address | &:r2392_5 | | ir.cpp:2392:5:2392:45 | ChiPartial | partial:m2392_3 | | ir.cpp:2392:5:2392:45 | ChiTotal | total:m2392_2 | 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 ebe05f70d18..1a4c34b9fc7 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -1357,8 +1357,10 @@ ir.cpp: # 43| mu43_2(unknown) = AliasedDefinition : # 43| mu43_3(unknown) = InitializeNonLocal : # 44| r44_1(glval<int>) = VariableAddress[x] : -# 44| r44_2(int) = Constant[17] : -# 44| mu44_3(int) = Store[x] : &:r44_1, r44_2 +# 44| r44_2(int) = Constant[5] : +# 44| r44_3(int) = Constant[12] : +# 44| r44_4(int) = Add : r44_2, r44_3 +# 44| mu44_5(int) = Store[x] : &:r44_1, r44_4 # 45| r45_1(glval<short>) = VariableAddress[y] : # 45| r45_2(short) = Constant[7] : # 45| mu45_3(short) = Store[y] : &:r45_1, r45_2 @@ -5747,14 +5749,39 @@ ir.cpp: # 913| mu913_5(int) = InitializeParameter[x] : &:r913_4 # 914| r914_1(glval<bool>) = VariableAddress[a] : # 914| r914_2(bool) = Constant[1] : -# 914| mu914_3(bool) = Store[a] : &:r914_1, r914_2 -# 915| r915_1(glval<int>) = VariableAddress[b] : -# 915| r915_2(bool) = Constant[1] : -# 915| v915_3(void) = ConditionalBranch : r915_2 -#-----| False -> Block 3 -#-----| True -> Block 2 +# 914| v914_3(void) = ConditionalBranch : r914_2 +#-----| False -> Block 1 +#-----| True -> Block 4 -# 915| Block 1 +# 914| Block 1 +# 914| r914_4(glval<bool>) = VariableAddress[#temp914:12] : +# 914| r914_5(bool) = Constant[0] : +# 914| mu914_6(bool) = Store[#temp914:12] : &:r914_4, r914_5 +#-----| Goto -> Block 2 + +# 914| Block 2 +# 914| r914_7(glval<bool>) = VariableAddress[#temp914:12] : +# 914| r914_8(bool) = Load[#temp914:12] : &:r914_7, ~m? +# 914| mu914_9(bool) = Store[a] : &:r914_1, r914_8 +# 915| r915_1(glval<int>) = VariableAddress[b] : +# 915| r915_2(bool) = Constant[1] : +# 915| v915_3(void) = ConditionalBranch : r915_2 +#-----| False -> Block 7 +#-----| True -> Block 6 + +# 914| Block 3 +# 914| r914_10(glval<bool>) = VariableAddress[#temp914:12] : +# 914| r914_11(bool) = Constant[1] : +# 914| mu914_12(bool) = Store[#temp914:12] : &:r914_10, r914_11 +#-----| Goto -> Block 2 + +# 914| Block 4 +# 914| r914_13(bool) = Constant[1] : +# 914| v914_14(void) = ConditionalBranch : r914_13 +#-----| False -> Block 1 +#-----| True -> Block 3 + +# 915| Block 5 # 915| r915_4(glval<int>) = VariableAddress[#temp915:11] : # 915| r915_5(int) = Load[#temp915:11] : &:r915_4, ~m? # 915| mu915_6(int) = Store[b] : &:r915_1, r915_5 @@ -5763,19 +5790,19 @@ ir.cpp: # 913| v913_7(void) = AliasedUse : ~m? # 913| v913_8(void) = ExitFunction : -# 915| Block 2 +# 915| Block 6 # 915| r915_7(glval<int>) = VariableAddress[x] : # 915| r915_8(int) = Load[x] : &:r915_7, ~m? # 915| r915_9(glval<int>) = VariableAddress[#temp915:11] : # 915| mu915_10(int) = Store[#temp915:11] : &:r915_9, r915_8 -#-----| Goto -> Block 1 +#-----| Goto -> Block 5 -# 915| Block 3 +# 915| Block 7 # 915| r915_11(glval<int>) = VariableAddress[x] : # 915| r915_12(int) = Load[x] : &:r915_11, ~m? # 915| r915_13(glval<int>) = VariableAddress[#temp915:11] : # 915| mu915_14(int) = Store[#temp915:11] : &:r915_13, r915_12 -#-----| Goto -> Block 1 +#-----| Goto -> Block 5 # 949| void OperatorNew() # 949| Block 0 @@ -7266,11 +7293,13 @@ ir.cpp: # 1215| r1215_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1215| r1215_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1215_4, ~m? # 1215| r1215_6(int) = Constant[3] : -# 1215| r1215_7(int) = Constant[2] : -# 1215| r1215_8(int) = Constant[1] : -# 1215| r1215_9(int) = Constant[0] : -# 1215| r1215_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_6, 3:r1215_7, 4:r1215_8, 5:r1215_9 -# 1215| mu1215_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_10 +# 1215| r1215_7(int) = Constant[0] : +# 1215| r1215_8(int) = Add : r1215_6, r1215_7 +# 1215| r1215_9(int) = Constant[2] : +# 1215| r1215_10(int) = Constant[1] : +# 1215| r1215_11(int) = Constant[0] : +# 1215| r1215_12(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_8, 3:r1215_9, 4:r1215_10, 5:r1215_11 +# 1215| mu1215_13(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_12 # 1216| r1216_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1216| r1216_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1216_1, ~m? # 1216| r1216_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : @@ -13983,8 +14012,10 @@ ir.cpp: # 2381| mu2381_2(unknown) = AliasedDefinition : # 2381| mu2381_3(unknown) = InitializeNonLocal : # 2382| r2382_1(glval<int>) = VariableAddress[#return] : -# 2382| r2382_2(int) = Constant[2] : -# 2382| mu2382_3(int) = Store[#return] : &:r2382_1, r2382_2 +# 2382| r2382_2(int) = Constant[1] : +# 2382| r2382_3(int) = Constant[1] : +# 2382| r2382_4(int) = Add : r2382_2, r2382_3 +# 2382| mu2382_5(int) = Store[#return] : &:r2382_1, r2382_4 # 2381| r2381_4(glval<int>) = VariableAddress[#return] : # 2381| v2381_5(void) = ReturnValue : &:r2381_4, ~m? # 2381| v2381_6(void) = AliasedUse : ~m? From 72ff494739e9d2c93baf6c4359a9180dcdfed20b Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 19 Mar 2024 10:33:12 +0100 Subject: [PATCH 244/309] Ruby: Regenerate dbscheme and stats --- ruby/extractor/Cargo.lock | Bin 32436 -> 32436 bytes ruby/extractor/Cargo.toml | 2 +- ruby/extractor/cargo-bazel-lock.json | 268 +- ruby/ql/lib/codeql/ruby/AST.qll | 7 +- .../codeql/ruby/ast/internal/TreeSitter.qll | 12 +- ruby/ql/lib/ruby.dbscheme | 26 +- ruby/ql/lib/ruby.dbscheme.stats | 7754 ++++++++--------- 7 files changed, 3912 insertions(+), 4157 deletions(-) diff --git a/ruby/extractor/Cargo.lock b/ruby/extractor/Cargo.lock index d5e8f132f24041f7fc286ade2d6dbd2b1562b66a..750d630402b3719e2181b0b68b6e4d1f8dbe107c 100644 GIT binary patch delta 98 zcmdn;mvPHq#tqK}{gYEu&C(1EjMGv~Et1VlEDg<)&5SJ5%u_6qjLefP%nee^(#$QA SO_hmLIN4A^e6z1mdJX_M$sOka delta 100 zcmdn;mvPHq#tqK}15FK05-p8VOp{U!Q;kegO_I!w&CFBGOiYXo%*~9_(ozi5(vnim S)0Bx-IQgT2*k(VWv>X6t;2(eh diff --git a/ruby/extractor/Cargo.toml b/ruby/extractor/Cargo.toml index 8bb8cd96dce..87a9f9f7a80 100644 --- a/ruby/extractor/Cargo.toml +++ b/ruby/extractor/Cargo.toml @@ -34,4 +34,4 @@ lazy_static = "1.4.0" # of lock-file update time, but `rules_rust` pins generates a bazel rule that unconditionally downloads `main`, which # breaks build hermeticity. So, rev-pinning it is. # See also https://github.com/bazelbuild/rules_rust/issues/2502. -codeql-extractor = { git = "https://github.com/github/codeql.git", rev = "514a92d5bd1e24e4b7367d64430762ffd1ffbe7f" } +codeql-extractor = { git = "https://github.com/github/codeql.git", rev = "cee6f003fd58c64916c629f7d8b27b870d6f78c5" } diff --git a/ruby/extractor/cargo-bazel-lock.json b/ruby/extractor/cargo-bazel-lock.json index 76a63d4376d..15b86880665 100644 --- a/ruby/extractor/cargo-bazel-lock.json +++ b/ruby/extractor/cargo-bazel-lock.json @@ -1,5 +1,5 @@ { - "checksum": "1c460a0aa044e422d51b182416888e0a45d131996cc1821a0fedbab3cd2b07bf", + "checksum": "76aa7a86db3d70a3b257062c5c6b87da62e07258e6f16a487d8c42aa561c0224", "crates": { "adler 1.0.2": { "name": "adler", @@ -7,7 +7,7 @@ "package_url": "https://github.com/jonas-schievink/adler.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/adler/1.0.2/download", + "url": "https://static.crates.io/crates/adler/1.0.2/download", "sha256": "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" } }, @@ -44,7 +44,7 @@ "package_url": "https://github.com/BurntSushi/aho-corasick", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/aho-corasick/0.7.20/download", + "url": "https://static.crates.io/crates/aho-corasick/0.7.20/download", "sha256": "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" } }, @@ -96,7 +96,7 @@ "package_url": "https://github.com/BurntSushi/aho-corasick", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/aho-corasick/1.1.2/download", + "url": "https://static.crates.io/crates/aho-corasick/1.1.2/download", "sha256": "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" } }, @@ -149,7 +149,7 @@ "package_url": "https://github.com/nical/android_system_properties", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/android_system_properties/0.1.5/download", + "url": "https://static.crates.io/crates/android_system_properties/0.1.5/download", "sha256": "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" } }, @@ -194,7 +194,7 @@ "package_url": "https://github.com/rust-cli/anstyle.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anstream/0.2.6/download", + "url": "https://static.crates.io/crates/anstream/0.2.6/download", "sha256": "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f" } }, @@ -274,7 +274,7 @@ "package_url": "https://github.com/rust-cli/anstyle.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anstyle/0.3.5/download", + "url": "https://static.crates.io/crates/anstyle/0.3.5/download", "sha256": "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" } }, @@ -317,7 +317,7 @@ "package_url": "https://github.com/rust-cli/anstyle.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anstyle-parse/0.1.1/download", + "url": "https://static.crates.io/crates/anstyle-parse/0.1.1/download", "sha256": "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116" } }, @@ -369,7 +369,7 @@ "package_url": "https://github.com/rust-cli/anstyle.git", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anstyle-wincon/0.2.0/download", + "url": "https://static.crates.io/crates/anstyle-wincon/0.2.0/download", "sha256": "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa" } }, @@ -421,7 +421,7 @@ "package_url": "https://github.com/cuviper/autocfg", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download", + "url": "https://static.crates.io/crates/autocfg/1.1.0/download", "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" } }, @@ -457,7 +457,7 @@ "package_url": "https://github.com/bitflags/bitflags", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download", + "url": "https://static.crates.io/crates/bitflags/1.3.2/download", "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" } }, @@ -499,7 +499,7 @@ "package_url": "https://github.com/BurntSushi/bstr", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/bstr/1.9.0/download", + "url": "https://static.crates.io/crates/bstr/1.9.0/download", "sha256": "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" } }, @@ -551,7 +551,7 @@ "package_url": "https://github.com/fitzgen/bumpalo", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/bumpalo/3.12.0/download", + "url": "https://static.crates.io/crates/bumpalo/3.12.0/download", "sha256": "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" } }, @@ -593,7 +593,7 @@ "package_url": "https://github.com/rust-lang/cc-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cc/1.0.79/download", + "url": "https://static.crates.io/crates/cc/1.0.79/download", "sha256": "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" } }, @@ -629,7 +629,7 @@ "package_url": "https://github.com/alexcrichton/cfg-if", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download", + "url": "https://static.crates.io/crates/cfg-if/1.0.0/download", "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" } }, @@ -665,7 +665,7 @@ "package_url": "https://github.com/chronotope/chrono", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/chrono/0.4.24/download", + "url": "https://static.crates.io/crates/chrono/0.4.24/download", "sha256": "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" } }, @@ -761,7 +761,7 @@ "package_url": "https://github.com/clap-rs/clap", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap/4.2.1/download", + "url": "https://static.crates.io/crates/clap/4.2.1/download", "sha256": "046ae530c528f252094e4a77886ee1374437744b2bff1497aa898bbddbbb29b3" } }, @@ -832,7 +832,7 @@ "package_url": "https://github.com/clap-rs/clap", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap_builder/4.2.1/download", + "url": "https://static.crates.io/crates/clap_builder/4.2.1/download", "sha256": "223163f58c9a40c3b0a43e1c4b50a9ce09f007ea2cb1ec258a687945b4b7929f" } }, @@ -904,7 +904,7 @@ "package_url": "https://github.com/clap-rs/clap/tree/master/clap_derive", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap_derive/4.2.0/download", + "url": "https://static.crates.io/crates/clap_derive/4.2.0/download", "sha256": "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" } }, @@ -967,7 +967,7 @@ "package_url": "https://github.com/clap-rs/clap/tree/master/clap_lex", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap_lex/0.4.1/download", + "url": "https://static.crates.io/crates/clap_lex/0.4.1/download", "sha256": "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" } }, @@ -1005,7 +1005,7 @@ "Git": { "remote": "https://github.com/github/codeql.git", "commitish": { - "Rev": "514a92d5bd1e24e4b7367d64430762ffd1ffbe7f" + "Rev": "cee6f003fd58c64916c629f7d8b27b870d6f78c5" }, "strip_prefix": "shared/tree-sitter-extractor" } @@ -1159,7 +1159,7 @@ "package_url": "https://github.com/brendanzab/codespan", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/codespan-reporting/0.11.1/download", + "url": "https://static.crates.io/crates/codespan-reporting/0.11.1/download", "sha256": "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" } }, @@ -1207,7 +1207,7 @@ "package_url": "https://github.com/rust-cli/concolor", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/concolor-override/1.0.0/download", + "url": "https://static.crates.io/crates/concolor-override/1.0.0/download", "sha256": "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f" } }, @@ -1243,7 +1243,7 @@ "package_url": "https://github.com/rust-cli/concolor", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/concolor-query/0.3.3/download", + "url": "https://static.crates.io/crates/concolor-query/0.3.3/download", "sha256": "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf" } }, @@ -1290,7 +1290,7 @@ "package_url": "https://github.com/servo/core-foundation-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/core-foundation-sys/0.8.4/download", + "url": "https://static.crates.io/crates/core-foundation-sys/0.8.4/download", "sha256": "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" } }, @@ -1326,7 +1326,7 @@ "package_url": "https://github.com/srijs/rust-crc32fast", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crc32fast/1.3.2/download", + "url": "https://static.crates.io/crates/crc32fast/1.3.2/download", "sha256": "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" } }, @@ -1396,7 +1396,7 @@ "package_url": "https://github.com/crossbeam-rs/crossbeam", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crossbeam-channel/0.5.7/download", + "url": "https://static.crates.io/crates/crossbeam-channel/0.5.7/download", "sha256": "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" } }, @@ -1453,7 +1453,7 @@ "package_url": "https://github.com/crossbeam-rs/crossbeam", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crossbeam-deque/0.8.3/download", + "url": "https://static.crates.io/crates/crossbeam-deque/0.8.3/download", "sha256": "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" } }, @@ -1515,7 +1515,7 @@ "package_url": "https://github.com/crossbeam-rs/crossbeam", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crossbeam-epoch/0.9.14/download", + "url": "https://static.crates.io/crates/crossbeam-epoch/0.9.14/download", "sha256": "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" } }, @@ -1606,7 +1606,7 @@ "package_url": "https://github.com/crossbeam-rs/crossbeam", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/crossbeam-utils/0.8.15/download", + "url": "https://static.crates.io/crates/crossbeam-utils/0.8.15/download", "sha256": "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" } }, @@ -1676,7 +1676,7 @@ "package_url": "https://github.com/dtolnay/cxx", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cxx/1.0.94/download", + "url": "https://static.crates.io/crates/cxx/1.0.94/download", "sha256": "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" } }, @@ -1771,7 +1771,7 @@ "package_url": "https://github.com/dtolnay/cxx", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cxx-build/1.0.94/download", + "url": "https://static.crates.io/crates/cxx-build/1.0.94/download", "sha256": "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" } }, @@ -1840,7 +1840,7 @@ "package_url": "https://github.com/dtolnay/cxx", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cxxbridge-flags/1.0.94/download", + "url": "https://static.crates.io/crates/cxxbridge-flags/1.0.94/download", "sha256": "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" } }, @@ -1876,7 +1876,7 @@ "package_url": "https://github.com/dtolnay/cxx", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cxxbridge-macro/1.0.94/download", + "url": "https://static.crates.io/crates/cxxbridge-macro/1.0.94/download", "sha256": "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" } }, @@ -1929,7 +1929,7 @@ "package_url": "https://github.com/bluss/either", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/either/1.8.1/download", + "url": "https://static.crates.io/crates/either/1.8.1/download", "sha256": "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" } }, @@ -1965,7 +1965,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding/0.2.33/download", + "url": "https://static.crates.io/crates/encoding/0.2.33/download", "sha256": "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" } }, @@ -2025,7 +2025,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-japanese/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-japanese/1.20141219.5/download", "sha256": "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" } }, @@ -2069,7 +2069,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-korean/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-korean/1.20141219.5/download", "sha256": "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" } }, @@ -2113,7 +2113,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-simpchinese/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-simpchinese/1.20141219.5/download", "sha256": "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" } }, @@ -2157,7 +2157,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-singlebyte/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-singlebyte/1.20141219.5/download", "sha256": "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" } }, @@ -2201,7 +2201,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding-index-tradchinese/1.20141219.5/download", + "url": "https://static.crates.io/crates/encoding-index-tradchinese/1.20141219.5/download", "sha256": "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" } }, @@ -2245,7 +2245,7 @@ "package_url": "https://github.com/lifthrasiir/rust-encoding", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/encoding_index_tests/0.1.4/download", + "url": "https://static.crates.io/crates/encoding_index_tests/0.1.4/download", "sha256": "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" } }, @@ -2280,7 +2280,7 @@ "package_url": "https://github.com/lambda-fairy/rust-errno", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/errno/0.3.0/download", + "url": "https://static.crates.io/crates/errno/0.3.0/download", "sha256": "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" } }, @@ -2351,7 +2351,7 @@ "package_url": "https://github.com/mneumann/errno-dragonfly-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/errno-dragonfly/0.1.2/download", + "url": "https://static.crates.io/crates/errno-dragonfly/0.1.2/download", "sha256": "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" } }, @@ -2422,7 +2422,7 @@ "package_url": "https://github.com/rust-lang/flate2-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/flate2/1.0.25/download", + "url": "https://static.crates.io/crates/flate2/1.0.25/download", "sha256": "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" } }, @@ -2479,7 +2479,7 @@ "package_url": "https://github.com/BurntSushi/ripgrep/tree/master/crates/globset", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/globset/0.4.14/download", + "url": "https://static.crates.io/crates/globset/0.4.14/download", "sha256": "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" } }, @@ -2547,7 +2547,7 @@ "package_url": "https://github.com/withoutboats/heck", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/heck/0.4.1/download", + "url": "https://static.crates.io/crates/heck/0.4.1/download", "sha256": "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" } }, @@ -2589,7 +2589,7 @@ "package_url": "https://github.com/hermitcore/rusty-hermit", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/hermit-abi/0.2.6/download", + "url": "https://static.crates.io/crates/hermit-abi/0.2.6/download", "sha256": "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" } }, @@ -2634,7 +2634,7 @@ "package_url": "https://github.com/hermitcore/rusty-hermit", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/hermit-abi/0.3.1/download", + "url": "https://static.crates.io/crates/hermit-abi/0.3.1/download", "sha256": "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" } }, @@ -2670,7 +2670,7 @@ "package_url": "https://github.com/strawlab/iana-time-zone", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/iana-time-zone/0.1.56/download", + "url": "https://static.crates.io/crates/iana-time-zone/0.1.56/download", "sha256": "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" } }, @@ -2751,7 +2751,7 @@ "package_url": "https://github.com/strawlab/iana-time-zone", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/iana-time-zone-haiku/0.1.1/download", + "url": "https://static.crates.io/crates/iana-time-zone-haiku/0.1.1/download", "sha256": "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" } }, @@ -2832,7 +2832,7 @@ "package_url": "https://github.com/sunfishcode/io-lifetimes", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/io-lifetimes/1.0.10/download", + "url": "https://static.crates.io/crates/io-lifetimes/1.0.10/download", "sha256": "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" } }, @@ -2920,7 +2920,7 @@ "package_url": "https://github.com/sunfishcode/is-terminal", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/is-terminal/0.4.6/download", + "url": "https://static.crates.io/crates/is-terminal/0.4.6/download", "sha256": "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8" } }, @@ -2983,7 +2983,7 @@ "package_url": "https://github.com/dtolnay/itoa", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/itoa/1.0.6/download", + "url": "https://static.crates.io/crates/itoa/1.0.6/download", "sha256": "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" } }, @@ -3019,7 +3019,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/js-sys/0.3.61/download", + "url": "https://static.crates.io/crates/js-sys/0.3.61/download", "sha256": "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" } }, @@ -3064,7 +3064,7 @@ "package_url": "https://github.com/rust-lang-nursery/lazy-static.rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download", + "url": "https://static.crates.io/crates/lazy_static/1.4.0/download", "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" } }, @@ -3100,7 +3100,7 @@ "package_url": "https://github.com/rust-lang/libc", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/libc/0.2.141/download", + "url": "https://static.crates.io/crates/libc/0.2.141/download", "sha256": "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" } }, @@ -3257,7 +3257,7 @@ "package_url": "https://github.com/dtolnay/link-cplusplus", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/link-cplusplus/1.0.8/download", + "url": "https://static.crates.io/crates/link-cplusplus/1.0.8/download", "sha256": "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" } }, @@ -3326,7 +3326,7 @@ "package_url": "https://github.com/sunfishcode/linux-raw-sys", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/linux-raw-sys/0.3.1/download", + "url": "https://static.crates.io/crates/linux-raw-sys/0.3.1/download", "sha256": "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" } }, @@ -3398,7 +3398,7 @@ "package_url": "https://github.com/rust-lang/log", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/log/0.4.20/download", + "url": "https://static.crates.io/crates/log/0.4.20/download", "sha256": "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" } }, @@ -3440,7 +3440,7 @@ "package_url": "https://github.com/hawkw/matchers", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/matchers/0.1.0/download", + "url": "https://static.crates.io/crates/matchers/0.1.0/download", "sha256": "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" } }, @@ -3484,7 +3484,7 @@ "package_url": "https://github.com/BurntSushi/memchr", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/memchr/2.7.1/download", + "url": "https://static.crates.io/crates/memchr/2.7.1/download", "sha256": "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" } }, @@ -3528,7 +3528,7 @@ "package_url": "https://github.com/Gilnaa/memoffset", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/memoffset/0.8.0/download", + "url": "https://static.crates.io/crates/memoffset/0.8.0/download", "sha256": "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" } }, @@ -3601,7 +3601,7 @@ "package_url": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/miniz_oxide/0.6.2/download", + "url": "https://static.crates.io/crates/miniz_oxide/0.6.2/download", "sha256": "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" } }, @@ -3653,7 +3653,7 @@ "package_url": "https://github.com/nushell/nu-ansi-term", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/nu-ansi-term/0.46.0/download", + "url": "https://static.crates.io/crates/nu-ansi-term/0.46.0/download", "sha256": "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" } }, @@ -3704,7 +3704,7 @@ "package_url": "https://github.com/rust-num/num-integer", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/num-integer/0.1.45/download", + "url": "https://static.crates.io/crates/num-integer/0.1.45/download", "sha256": "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" } }, @@ -3776,7 +3776,7 @@ "package_url": "https://github.com/rust-num/num-traits", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/num-traits/0.2.15/download", + "url": "https://static.crates.io/crates/num-traits/0.2.15/download", "sha256": "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" } }, @@ -3844,7 +3844,7 @@ "package_url": "https://github.com/seanmonstar/num_cpus", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/num_cpus/1.15.0/download", + "url": "https://static.crates.io/crates/num_cpus/1.15.0/download", "sha256": "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" } }, @@ -3897,7 +3897,7 @@ "package_url": "https://github.com/matklad/once_cell", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/once_cell/1.17.1/download", + "url": "https://static.crates.io/crates/once_cell/1.17.1/download", "sha256": "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" } }, @@ -3942,7 +3942,7 @@ "package_url": "https://github.com/danaugrs/overload", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/overload/0.1.1/download", + "url": "https://static.crates.io/crates/overload/0.1.1/download", "sha256": "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" } }, @@ -3977,7 +3977,7 @@ "package_url": "https://github.com/taiki-e/pin-project-lite", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.9/download", + "url": "https://static.crates.io/crates/pin-project-lite/0.2.9/download", "sha256": "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" } }, @@ -4013,7 +4013,7 @@ "package_url": "https://github.com/dtolnay/proc-macro2", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.56/download", + "url": "https://static.crates.io/crates/proc-macro2/1.0.56/download", "sha256": "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" } }, @@ -4083,7 +4083,7 @@ "package_url": "https://github.com/dtolnay/quote", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/quote/1.0.26/download", + "url": "https://static.crates.io/crates/quote/1.0.26/download", "sha256": "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" } }, @@ -4153,7 +4153,7 @@ "package_url": "https://github.com/rayon-rs/rayon", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rayon/1.7.0/download", + "url": "https://static.crates.io/crates/rayon/1.7.0/download", "sha256": "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" } }, @@ -4202,7 +4202,7 @@ "package_url": "https://github.com/rayon-rs/rayon", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rayon-core/1.11.0/download", + "url": "https://static.crates.io/crates/rayon-core/1.11.0/download", "sha256": "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" } }, @@ -4278,7 +4278,7 @@ "package_url": "https://github.com/rust-lang/regex", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex/1.7.3/download", + "url": "https://static.crates.io/crates/regex/1.7.3/download", "sha256": "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" } }, @@ -4353,7 +4353,7 @@ "package_url": "https://github.com/BurntSushi/regex-automata", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-automata/0.1.10/download", + "url": "https://static.crates.io/crates/regex-automata/0.1.10/download", "sha256": "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" } }, @@ -4406,7 +4406,7 @@ "package_url": "https://github.com/rust-lang/regex/tree/master/regex-automata", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-automata/0.4.3/download", + "url": "https://static.crates.io/crates/regex-automata/0.4.3/download", "sha256": "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" } }, @@ -4478,7 +4478,7 @@ "package_url": "https://github.com/rust-lang/regex", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.29/download", + "url": "https://static.crates.io/crates/regex-syntax/0.6.29/download", "sha256": "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" } }, @@ -4528,7 +4528,7 @@ "package_url": "https://github.com/rust-lang/regex/tree/master/regex-syntax", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-syntax/0.8.2/download", + "url": "https://static.crates.io/crates/regex-syntax/0.8.2/download", "sha256": "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" } }, @@ -4570,7 +4570,7 @@ "package_url": "https://github.com/bytecodealliance/rustix", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/rustix/0.37.7/download", + "url": "https://static.crates.io/crates/rustix/0.37.7/download", "sha256": "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d" } }, @@ -4682,7 +4682,7 @@ "package_url": "https://github.com/dtolnay/ryu", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/ryu/1.0.13/download", + "url": "https://static.crates.io/crates/ryu/1.0.13/download", "sha256": "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" } }, @@ -4718,7 +4718,7 @@ "package_url": "https://github.com/bluss/scopeguard", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/scopeguard/1.1.0/download", + "url": "https://static.crates.io/crates/scopeguard/1.1.0/download", "sha256": "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" } }, @@ -4754,7 +4754,7 @@ "package_url": "https://github.com/dtolnay/scratch", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/scratch/1.0.5/download", + "url": "https://static.crates.io/crates/scratch/1.0.5/download", "sha256": "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" } }, @@ -4813,7 +4813,7 @@ "package_url": "https://github.com/serde-rs/serde", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/serde/1.0.159/download", + "url": "https://static.crates.io/crates/serde/1.0.159/download", "sha256": "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" } }, @@ -4890,7 +4890,7 @@ "package_url": "https://github.com/serde-rs/serde", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/serde_derive/1.0.159/download", + "url": "https://static.crates.io/crates/serde_derive/1.0.159/download", "sha256": "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" } }, @@ -4967,7 +4967,7 @@ "package_url": "https://github.com/serde-rs/json", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/serde_json/1.0.95/download", + "url": "https://static.crates.io/crates/serde_json/1.0.95/download", "sha256": "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" } }, @@ -5045,7 +5045,7 @@ "package_url": "https://github.com/hawkw/sharded-slab", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/sharded-slab/0.1.4/download", + "url": "https://static.crates.io/crates/sharded-slab/0.1.4/download", "sha256": "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" } }, @@ -5089,7 +5089,7 @@ "package_url": "https://github.com/servo/rust-smallvec", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/smallvec/1.10.0/download", + "url": "https://static.crates.io/crates/smallvec/1.10.0/download", "sha256": "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" } }, @@ -5125,7 +5125,7 @@ "package_url": "https://github.com/dguo/strsim-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/strsim/0.10.0/download", + "url": "https://static.crates.io/crates/strsim/0.10.0/download", "sha256": "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" } }, @@ -5160,7 +5160,7 @@ "package_url": "https://github.com/dtolnay/syn", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/syn/1.0.109/download", + "url": "https://static.crates.io/crates/syn/1.0.109/download", "sha256": "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" } }, @@ -5250,7 +5250,7 @@ "package_url": "https://github.com/dtolnay/syn", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/syn/2.0.13/download", + "url": "https://static.crates.io/crates/syn/2.0.13/download", "sha256": "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" } }, @@ -5316,7 +5316,7 @@ "package_url": "https://github.com/BurntSushi/termcolor", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/termcolor/1.2.0/download", + "url": "https://static.crates.io/crates/termcolor/1.2.0/download", "sha256": "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" } }, @@ -5363,7 +5363,7 @@ "package_url": "https://github.com/Amanieu/thread_local-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/thread_local/1.1.7/download", + "url": "https://static.crates.io/crates/thread_local/1.1.7/download", "sha256": "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" } }, @@ -5412,7 +5412,7 @@ "package_url": "https://github.com/time-rs/time", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/time/0.1.45/download", + "url": "https://static.crates.io/crates/time/0.1.45/download", "sha256": "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" } }, @@ -5470,7 +5470,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing/0.1.37/download", + "url": "https://static.crates.io/crates/tracing/0.1.37/download", "sha256": "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" } }, @@ -5540,7 +5540,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.23/download", + "url": "https://static.crates.io/crates/tracing-attributes/0.1.23/download", "sha256": "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" } }, @@ -5592,7 +5592,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing-core/0.1.30/download", + "url": "https://static.crates.io/crates/tracing-core/0.1.30/download", "sha256": "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" } }, @@ -5651,7 +5651,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing-log/0.1.3/download", + "url": "https://static.crates.io/crates/tracing-log/0.1.3/download", "sha256": "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" } }, @@ -5710,7 +5710,7 @@ "package_url": "https://github.com/tokio-rs/tracing", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tracing-subscriber/0.3.16/download", + "url": "https://static.crates.io/crates/tracing-subscriber/0.3.16/download", "sha256": "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" } }, @@ -5811,7 +5811,7 @@ "package_url": "https://github.com/tree-sitter/tree-sitter", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tree-sitter/0.20.10/download", + "url": "https://static.crates.io/crates/tree-sitter/0.20.10/download", "sha256": "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d" } }, @@ -6028,7 +6028,7 @@ "package_url": "https://github.com/dtolnay/unicode-ident", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/unicode-ident/1.0.8/download", + "url": "https://static.crates.io/crates/unicode-ident/1.0.8/download", "sha256": "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" } }, @@ -6065,7 +6065,7 @@ "package_url": "https://github.com/unicode-rs/unicode-width", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/unicode-width/0.1.10/download", + "url": "https://static.crates.io/crates/unicode-width/0.1.10/download", "sha256": "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" } }, @@ -6101,7 +6101,7 @@ "package_url": "https://github.com/alacritty/vte", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/utf8parse/0.2.1/download", + "url": "https://static.crates.io/crates/utf8parse/0.2.1/download", "sha256": "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" } }, @@ -6143,7 +6143,7 @@ "package_url": "https://github.com/tokio-rs/valuable", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/valuable/0.1.0/download", + "url": "https://static.crates.io/crates/valuable/0.1.0/download", "sha256": "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" } }, @@ -6201,7 +6201,7 @@ "package_url": "https://github.com/bytecodealliance/wasi", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasi/0.10.0+wasi-snapshot-preview1/download", + "url": "https://static.crates.io/crates/wasi/0.10.0+wasi-snapshot-preview1/download", "sha256": "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" } }, @@ -6244,7 +6244,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen/0.2.84/download", "sha256": "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" } }, @@ -6324,7 +6324,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/backend", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen-backend/0.2.84/download", "sha256": "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" } }, @@ -6399,7 +6399,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen-macro/0.2.84/download", "sha256": "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" } }, @@ -6454,7 +6454,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.84/download", "sha256": "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" } }, @@ -6521,7 +6521,7 @@ "package_url": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.84/download", + "url": "https://static.crates.io/crates/wasm-bindgen-shared/0.2.84/download", "sha256": "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" } }, @@ -6581,7 +6581,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download", + "url": "https://static.crates.io/crates/winapi/0.3.9/download", "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" } }, @@ -6670,7 +6670,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download", + "url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download", "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" } }, @@ -6729,7 +6729,7 @@ "package_url": "https://github.com/BurntSushi/winapi-util", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi-util/0.1.5/download", + "url": "https://static.crates.io/crates/winapi-util/0.1.5/download", "sha256": "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" } }, @@ -6776,7 +6776,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download", + "url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download", "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" } }, @@ -6835,7 +6835,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows/0.48.0/download", + "url": "https://static.crates.io/crates/windows/0.48.0/download", "sha256": "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" } }, @@ -6880,7 +6880,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows-sys/0.45.0/download", + "url": "https://static.crates.io/crates/windows-sys/0.45.0/download", "sha256": "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" } }, @@ -6939,7 +6939,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows-sys/0.48.0/download", + "url": "https://static.crates.io/crates/windows-sys/0.48.0/download", "sha256": "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" } }, @@ -7000,7 +7000,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows-targets/0.42.2/download", + "url": "https://static.crates.io/crates/windows-targets/0.42.2/download", "sha256": "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" } }, @@ -7113,7 +7113,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows-targets/0.48.0/download", + "url": "https://static.crates.io/crates/windows-targets/0.48.0/download", "sha256": "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" } }, @@ -7196,7 +7196,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.42.2/download", + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.42.2/download", "sha256": "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" } }, @@ -7255,7 +7255,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.48.0/download", + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/0.48.0/download", "sha256": "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" } }, @@ -7314,7 +7314,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.42.2/download", + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.42.2/download", "sha256": "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" } }, @@ -7373,7 +7373,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.48.0/download", + "url": "https://static.crates.io/crates/windows_aarch64_msvc/0.48.0/download", "sha256": "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" } }, @@ -7432,7 +7432,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.42.2/download", + "url": "https://static.crates.io/crates/windows_i686_gnu/0.42.2/download", "sha256": "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" } }, @@ -7491,7 +7491,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.48.0/download", + "url": "https://static.crates.io/crates/windows_i686_gnu/0.48.0/download", "sha256": "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" } }, @@ -7550,7 +7550,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.42.2/download", + "url": "https://static.crates.io/crates/windows_i686_msvc/0.42.2/download", "sha256": "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" } }, @@ -7609,7 +7609,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.48.0/download", + "url": "https://static.crates.io/crates/windows_i686_msvc/0.48.0/download", "sha256": "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" } }, @@ -7668,7 +7668,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.42.2/download", + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.42.2/download", "sha256": "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" } }, @@ -7727,7 +7727,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.48.0/download", + "url": "https://static.crates.io/crates/windows_x86_64_gnu/0.48.0/download", "sha256": "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" } }, @@ -7786,7 +7786,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.42.2/download", + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.42.2/download", "sha256": "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" } }, @@ -7845,7 +7845,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.48.0/download", + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/0.48.0/download", "sha256": "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" } }, @@ -7904,7 +7904,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.42.2/download", + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.42.2/download", "sha256": "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" } }, @@ -7963,7 +7963,7 @@ "package_url": "https://github.com/microsoft/windows-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.48.0/download", + "url": "https://static.crates.io/crates/windows_x86_64_msvc/0.48.0/download", "sha256": "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" } }, diff --git a/ruby/ql/lib/codeql/ruby/AST.qll b/ruby/ql/lib/codeql/ruby/AST.qll index d517c8f4d44..e8dc28692c0 100644 --- a/ruby/ql/lib/codeql/ruby/AST.qll +++ b/ruby/ql/lib/codeql/ruby/AST.qll @@ -137,7 +137,12 @@ class AstNode extends TAstNode { /** A Ruby source file */ class RubyFile extends File { - RubyFile() { ruby_ast_node_info(_, this, _, _) } + RubyFile() { + exists(Location loc | + ruby_ast_node_location(_, loc) and + this = loc.getFile() + ) + } /** Gets a token in this file. */ private Ruby::Token getAToken() { result.getLocation().getFile() = this } diff --git a/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll b/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll index ef268f69ded..441f4ffefcc 100644 --- a/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll +++ b/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll @@ -12,13 +12,13 @@ module Ruby { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { ruby_ast_node_info(this, _, _, result) } + final L::Location getLocation() { ruby_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { ruby_ast_node_info(this, result, _, _) } + final AstNode getParent() { ruby_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { ruby_ast_node_info(this, _, result, _) } + final int getParentIndex() { ruby_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } @@ -1929,13 +1929,13 @@ module Erb { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { erb_ast_node_info(this, _, _, result) } + final L::Location getLocation() { erb_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { erb_ast_node_info(this, result, _, _) } + final AstNode getParent() { erb_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { erb_ast_node_info(this, _, result, _) } + final int getParentIndex() { erb_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } diff --git a/ruby/ql/lib/ruby.dbscheme b/ruby/ql/lib/ruby.dbscheme index f9f0f4023e4..440de75c71e 100644 --- a/ruby/ql/lib/ruby.dbscheme +++ b/ruby/ql/lib/ruby.dbscheme @@ -1421,14 +1421,16 @@ case @ruby_token.kind of @ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield -@ruby_ast_node_parent = @file | @ruby_ast_node +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -ruby_ast_node_info( +ruby_ast_node_parent( unique int node: @ruby_ast_node ref, - int parent: @ruby_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @ruby_ast_node ref, + int parent_index: int ref ); /*- Erb dbscheme -*/ @@ -1497,13 +1499,15 @@ case @erb_token.kind of @erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token -@erb_ast_node_parent = @erb_ast_node | @file - -#keyset[parent, parent_index] -erb_ast_node_info( +erb_ast_node_location( unique int node: @erb_ast_node ref, - int parent: @erb_ast_node_parent ref, - int parent_index: int ref, int loc: @location_default ref ); +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/ql/lib/ruby.dbscheme.stats b/ruby/ql/lib/ruby.dbscheme.stats index e7d7f5e27eb..fd8850293b4 100644 --- a/ruby/ql/lib/ruby.dbscheme.stats +++ b/ruby/ql/lib/ruby.dbscheme.stats @@ -5,7 +5,7 @@ </e> <e> <k>@diagnostic_error</k> - <v>156</v> + <v>0</v> </e> <e> <k>@diagnostic_info</k> @@ -13,15 +13,15 @@ </e> <e> <k>@diagnostic_warning</k> - <v>0</v> + <v>188</v> </e> <e> <k>@erb_comment_directive</k> - <v>40</v> + <v>26</v> </e> <e> <k>@erb_directive</k> - <v>1225</v> + <v>1108</v> </e> <e> <k>@erb_graphql_directive</k> @@ -29,43 +29,43 @@ </e> <e> <k>@erb_output_directive</k> - <v>3555</v> + <v>3270</v> </e> <e> <k>@erb_reserved_word</k> - <v>9567</v> + <v>8756</v> </e> <e> <k>@erb_template</k> - <v>1531</v> + <v>1508</v> </e> <e> <k>@erb_token_code</k> - <v>4781</v> + <v>4378</v> </e> <e> <k>@erb_token_comment</k> - <v>27</v> + <v>26</v> </e> <e> <k>@erb_token_content</k> - <v>4977</v> + <v>4555</v> </e> <e> <k>@file</k> - <v>18245</v> + <v>18724</v> </e> <e> <k>@folder</k> - <v>5002</v> + <v>5165</v> </e> <e> <k>@location_default</k> - <v>9022418</v> + <v>9223392</v> </e> <e> <k>@ruby_alias</k> - <v>1307</v> + <v>1289</v> </e> <e> <k>@ruby_alternative_pattern</k> @@ -73,35 +73,35 @@ </e> <e> <k>@ruby_argument_list</k> - <v>691738</v> + <v>706474</v> </e> <e> <k>@ruby_array</k> - <v>248289</v> + <v>249320</v> </e> <e> <k>@ruby_array_pattern</k> - <v>178</v> + <v>179</v> </e> <e> <k>@ruby_as_pattern</k> - <v>153</v> + <v>156</v> </e> <e> <k>@ruby_assignment</k> - <v>137583</v> + <v>141202</v> </e> <e> <k>@ruby_bare_string</k> - <v>12799</v> + <v>13136</v> </e> <e> <k>@ruby_bare_symbol</k> - <v>7967</v> + <v>8435</v> </e> <e> <k>@ruby_begin</k> - <v>2590</v> + <v>2610</v> </e> <e> <k>@ruby_begin_block</k> @@ -109,143 +109,143 @@ </e> <e> <k>@ruby_binary_ampersand</k> - <v>570</v> + <v>630</v> </e> <e> <k>@ruby_binary_ampersandampersand</k> - <v>8179</v> + <v>8142</v> </e> <e> <k>@ruby_binary_and</k> - <v>1233</v> + <v>1189</v> </e> <e> <k>@ruby_binary_bangequal</k> - <v>1459</v> + <v>1434</v> </e> <e> <k>@ruby_binary_bangtilde</k> - <v>168</v> + <v>176</v> </e> <e> <k>@ruby_binary_caret</k> - <v>160</v> + <v>153</v> </e> <e> <k>@ruby_binary_equalequal</k> - <v>32934</v> + <v>33761</v> </e> <e> <k>@ruby_binary_equalequalequal</k> - <v>656</v> + <v>689</v> </e> <e> <k>@ruby_binary_equaltilde</k> - <v>1800</v> + <v>1823</v> </e> <e> <k>@ruby_binary_langle</k> - <v>1181</v> + <v>1101</v> </e> <e> <k>@ruby_binary_langleequal</k> - <v>407</v> + <v>431</v> </e> <e> <k>@ruby_binary_langleequalrangle</k> - <v>778</v> + <v>764</v> </e> <e> <k>@ruby_binary_langlelangle</k> - <v>10731</v> + <v>10779</v> </e> <e> <k>@ruby_binary_minus</k> - <v>2691</v> + <v>2747</v> </e> <e> <k>@ruby_binary_or</k> - <v>635</v> + <v>647</v> </e> <e> <k>@ruby_binary_percent</k> - <v>979</v> + <v>986</v> </e> <e> <k>@ruby_binary_pipe</k> - <v>1000</v> + <v>1058</v> </e> <e> <k>@ruby_binary_pipepipe</k> - <v>7430</v> + <v>7336</v> </e> <e> <k>@ruby_binary_plus</k> - <v>6453</v> + <v>6593</v> </e> <e> <k>@ruby_binary_rangle</k> - <v>2129</v> + <v>2114</v> </e> <e> <k>@ruby_binary_rangleequal</k> - <v>595</v> + <v>597</v> </e> <e> <k>@ruby_binary_ranglerangle</k> - <v>234</v> + <v>259</v> </e> <e> <k>@ruby_binary_slash</k> - <v>1269</v> + <v>1169</v> </e> <e> <k>@ruby_binary_star</k> - <v>3560</v> + <v>3490</v> </e> <e> <k>@ruby_binary_starstar</k> - <v>1358</v> + <v>1227</v> </e> <e> <k>@ruby_block</k> - <v>101695</v> + <v>104143</v> </e> <e> <k>@ruby_block_argument</k> - <v>6477</v> + <v>6547</v> </e> <e> <k>@ruby_block_body</k> - <v>101379</v> + <v>103820</v> </e> <e> <k>@ruby_block_parameter</k> - <v>2569</v> + <v>2543</v> </e> <e> <k>@ruby_block_parameters</k> - <v>24941</v> + <v>25884</v> </e> <e> <k>@ruby_body_statement</k> - <v>208998</v> + <v>213896</v> </e> <e> <k>@ruby_break</k> - <v>3434</v> + <v>3414</v> </e> <e> <k>@ruby_call</k> - <v>1006605</v> + <v>1027501</v> </e> <e> <k>@ruby_case__</k> - <v>1289</v> + <v>1319</v> </e> <e> <k>@ruby_case_match</k> - <v>234</v> + <v>232</v> </e> <e> <k>@ruby_chained_string</k> @@ -253,47 +253,47 @@ </e> <e> <k>@ruby_class</k> - <v>17258</v> + <v>17441</v> </e> <e> <k>@ruby_complex</k> - <v>66</v> + <v>72</v> </e> <e> <k>@ruby_conditional</k> - <v>2954</v> + <v>2896</v> </e> <e> <k>@ruby_delimited_symbol</k> - <v>1258</v> + <v>1247</v> </e> <e> <k>@ruby_destructured_left_assignment</k> - <v>107</v> + <v>108</v> </e> <e> <k>@ruby_destructured_parameter</k> - <v>194</v> + <v>208</v> </e> <e> <k>@ruby_do</k> - <v>1681</v> + <v>1675</v> </e> <e> <k>@ruby_do_block</k> - <v>142452</v> + <v>145534</v> </e> <e> <k>@ruby_element_reference</k> - <v>80778</v> + <v>82606</v> </e> <e> <k>@ruby_else</k> - <v>7505</v> + <v>7681</v> </e> <e> <k>@ruby_elsif</k> - <v>1510</v> + <v>1583</v> </e> <e> <k>@ruby_end_block</k> @@ -301,15 +301,15 @@ </e> <e> <k>@ruby_ensure</k> - <v>3981</v> + <v>4106</v> </e> <e> <k>@ruby_exception_variable</k> - <v>924</v> + <v>935</v> </e> <e> <k>@ruby_exceptions</k> - <v>1938</v> + <v>1904</v> </e> <e> <k>@ruby_expression_reference_pattern</k> @@ -321,31 +321,31 @@ </e> <e> <k>@ruby_for</k> - <v>158</v> + <v>136</v> </e> <e> <k>@ruby_hash</k> - <v>40888</v> + <v>41915</v> </e> <e> <k>@ruby_hash_pattern</k> - <v>75</v> + <v>73</v> </e> <e> <k>@ruby_hash_splat_argument</k> - <v>1902</v> + <v>1989</v> </e> <e> <k>@ruby_hash_splat_parameter</k> - <v>1596</v> + <v>1574</v> </e> <e> <k>@ruby_heredoc_body</k> - <v>6178</v> + <v>6934</v> </e> <e> <k>@ruby_if</k> - <v>16391</v> + <v>16164</v> </e> <e> <k>@ruby_if_guard</k> @@ -353,39 +353,39 @@ </e> <e> <k>@ruby_if_modifier</k> - <v>14611</v> + <v>14541</v> </e> <e> <k>@ruby_in</k> - <v>158</v> + <v>136</v> </e> <e> <k>@ruby_in_clause</k> - <v>385</v> + <v>381</v> </e> <e> <k>@ruby_interpolation</k> - <v>38305</v> + <v>38493</v> </e> <e> <k>@ruby_keyword_parameter</k> - <v>4144</v> + <v>4763</v> </e> <e> <k>@ruby_keyword_pattern</k> - <v>80</v> + <v>77</v> </e> <e> <k>@ruby_lambda</k> - <v>7948</v> + <v>8187</v> </e> <e> <k>@ruby_lambda_parameters</k> - <v>1762</v> + <v>1811</v> </e> <e> <k>@ruby_left_assignment_list</k> - <v>2994</v> + <v>3100</v> </e> <e> <k>@ruby_match_pattern</k> @@ -393,39 +393,39 @@ </e> <e> <k>@ruby_method</k> - <v>102124</v> + <v>103532</v> </e> <e> <k>@ruby_method_parameters</k> - <v>30832</v> + <v>31208</v> </e> <e> <k>@ruby_module</k> - <v>22353</v> + <v>22962</v> </e> <e> <k>@ruby_next</k> - <v>1902</v> + <v>2020</v> </e> <e> <k>@ruby_operator_assignment_ampersandampersandequal</k> - <v>90</v> + <v>118</v> </e> <e> <k>@ruby_operator_assignment_ampersandequal</k> - <v>18</v> + <v>17</v> </e> <e> <k>@ruby_operator_assignment_caretequal</k> - <v>5</v> + <v>6</v> </e> <e> <k>@ruby_operator_assignment_langlelangleequal</k> - <v>26</v> + <v>19</v> </e> <e> <k>@ruby_operator_assignment_minusequal</k> - <v>300</v> + <v>305</v> </e> <e> <k>@ruby_operator_assignment_percentequal</k> @@ -433,19 +433,19 @@ </e> <e> <k>@ruby_operator_assignment_pipeequal</k> - <v>156</v> + <v>164</v> </e> <e> <k>@ruby_operator_assignment_pipepipeequal</k> - <v>4190</v> + <v>4272</v> </e> <e> <k>@ruby_operator_assignment_plusequal</k> - <v>1647</v> + <v>1732</v> </e> <e> <k>@ruby_operator_assignment_ranglerangleequal</k> - <v>10</v> + <v>11</v> </e> <e> <k>@ruby_operator_assignment_slashequal</k> @@ -453,7 +453,7 @@ </e> <e> <k>@ruby_operator_assignment_starequal</k> - <v>52</v> + <v>42</v> </e> <e> <k>@ruby_operator_assignment_starstarequal</k> @@ -461,11 +461,11 @@ </e> <e> <k>@ruby_optional_parameter</k> - <v>6636</v> + <v>6556</v> </e> <e> <k>@ruby_pair</k> - <v>248347</v> + <v>254198</v> </e> <e> <k>@ruby_parenthesized_pattern</k> @@ -473,27 +473,27 @@ </e> <e> <k>@ruby_parenthesized_statements</k> - <v>10912</v> + <v>11296</v> </e> <e> <k>@ruby_pattern</k> - <v>4153</v> + <v>4745</v> </e> <e> <k>@ruby_program</k> - <v>18219</v> + <v>18697</v> </e> <e> <k>@ruby_range_dotdot</k> - <v>3136</v> + <v>3690</v> </e> <e> <k>@ruby_range_dotdotdot</k> - <v>1634</v> + <v>1376</v> </e> <e> <k>@ruby_rational</k> - <v>138</v> + <v>166</v> </e> <e> <k>@ruby_redo</k> @@ -501,107 +501,107 @@ </e> <e> <k>@ruby_regex</k> - <v>13350</v> + <v>13680</v> </e> <e> <k>@ruby_rescue</k> - <v>2346</v> + <v>2299</v> </e> <e> <k>@ruby_rescue_modifier</k> - <v>448</v> + <v>458</v> </e> <e> <k>@ruby_reserved_word</k> - <v>3820965</v> + <v>3894800</v> </e> <e> <k>@ruby_rest_assignment</k> - <v>401</v> + <v>414</v> </e> <e> <k>@ruby_retry</k> - <v>60</v> + <v>58</v> </e> <e> <k>@ruby_return</k> - <v>8197</v> + <v>7979</v> </e> <e> <k>@ruby_right_assignment_list</k> - <v>1224</v> + <v>1280</v> </e> <e> <k>@ruby_scope_resolution</k> - <v>84884</v> + <v>87113</v> </e> <e> <k>@ruby_setter</k> - <v>653</v> + <v>656</v> </e> <e> <k>@ruby_singleton_class</k> - <v>663</v> + <v>677</v> </e> <e> <k>@ruby_singleton_method</k> - <v>6459</v> + <v>6325</v> </e> <e> <k>@ruby_splat_argument</k> - <v>3454</v> + <v>3606</v> </e> <e> <k>@ruby_splat_parameter</k> - <v>3192</v> + <v>3014</v> </e> <e> <k>@ruby_string__</k> - <v>485218</v> + <v>490602</v> </e> <e> <k>@ruby_string_array</k> - <v>4213</v> + <v>4287</v> </e> <e> <k>@ruby_subshell</k> - <v>365</v> + <v>359</v> </e> <e> <k>@ruby_superclass</k> - <v>13666</v> + <v>13806</v> </e> <e> <k>@ruby_symbol_array</k> - <v>2170</v> + <v>2240</v> </e> <e> <k>@ruby_test_pattern</k> - <v>4</v> + <v>5</v> </e> <e> <k>@ruby_then</k> - <v>22451</v> + <v>22229</v> </e> <e> <k>@ruby_token_character</k> - <v>432</v> + <v>440</v> </e> <e> <k>@ruby_token_class_variable</k> - <v>868</v> + <v>887</v> </e> <e> <k>@ruby_token_comment</k> - <v>190672</v> + <v>194426</v> </e> <e> <k>@ruby_token_constant</k> - <v>294731</v> + <v>302373</v> </e> <e> <k>@ruby_token_empty_statement</k> - <v>55</v> + <v>58</v> </e> <e> <k>@ruby_token_encoding</k> @@ -609,11 +609,11 @@ </e> <e> <k>@ruby_token_escape_sequence</k> - <v>77855</v> + <v>80835</v> </e> <e> <k>@ruby_token_false</k> - <v>17433</v> + <v>17355</v> </e> <e> <k>@ruby_token_file</k> @@ -621,51 +621,51 @@ </e> <e> <k>@ruby_token_float</k> - <v>8491</v> + <v>8689</v> </e> <e> <k>@ruby_token_forward_argument</k> - <v>79</v> + <v>194</v> </e> <e> <k>@ruby_token_forward_parameter</k> - <v>144</v> + <v>287</v> </e> <e> <k>@ruby_token_global_variable</k> - <v>7342</v> + <v>7165</v> </e> <e> <k>@ruby_token_hash_key_symbol</k> - <v>241330</v> + <v>246826</v> </e> <e> <k>@ruby_token_hash_splat_nil</k> - <v>11</v> + <v>14</v> </e> <e> <k>@ruby_token_heredoc_beginning</k> - <v>6177</v> + <v>6933</v> </e> <e> <k>@ruby_token_heredoc_content</k> - <v>12929</v> + <v>12986</v> </e> <e> <k>@ruby_token_heredoc_end</k> - <v>6178</v> + <v>6934</v> </e> <e> <k>@ruby_token_identifier</k> - <v>1551542</v> + <v>1590836</v> </e> <e> <k>@ruby_token_instance_variable</k> - <v>87122</v> + <v>89852</v> </e> <e> <k>@ruby_token_integer</k> - <v>306586</v> + <v>310358</v> </e> <e> <k>@ruby_token_line</k> @@ -673,59 +673,59 @@ </e> <e> <k>@ruby_token_nil</k> - <v>18636</v> + <v>19333</v> </e> <e> <k>@ruby_token_operator</k> - <v>849</v> + <v>878</v> </e> <e> <k>@ruby_token_self</k> - <v>13755</v> + <v>14094</v> </e> <e> <k>@ruby_token_simple_symbol</k> - <v>261524</v> + <v>267609</v> </e> <e> <k>@ruby_token_string_content</k> - <v>502063</v> + <v>510164</v> </e> <e> <k>@ruby_token_super</k> - <v>5313</v> + <v>5329</v> </e> <e> <k>@ruby_token_true</k> - <v>24277</v> + <v>25065</v> </e> <e> <k>@ruby_token_uninterpreted</k> <v>11</v> </e> - <e> + <e> <k>@ruby_unary_bang</k> - <v>5952</v> + <v>5909</v> </e> <e> <k>@ruby_unary_definedquestion</k> - <v>1301</v> + <v>1369</v> </e> <e> <k>@ruby_unary_minus</k> - <v>9633</v> + <v>9830</v> </e> <e> <k>@ruby_unary_not</k> - <v>190</v> + <v>172</v> </e> <e> <k>@ruby_unary_plus</k> - <v>1427</v> + <v>1394</v> </e> <e> <k>@ruby_unary_tilde</k> - <v>98</v> + <v>97</v> </e> <e> <k>@ruby_undef</k> @@ -733,7 +733,7 @@ </e> <e> <k>@ruby_unless</k> - <v>2663</v> + <v>2723</v> </e> <e> <k>@ruby_unless_guard</k> @@ -741,15 +741,15 @@ </e> <e> <k>@ruby_unless_modifier</k> - <v>3505</v> + <v>3416</v> </e> <e> <k>@ruby_until</k> - <v>123</v> + <v>126</v> </e> <e> <k>@ruby_until_modifier</k> - <v>234</v> + <v>238</v> </e> <e> <k>@ruby_variable_reference_pattern</k> @@ -757,19 +757,19 @@ </e> <e> <k>@ruby_when</k> - <v>3392</v> + <v>3882</v> </e> <e> <k>@ruby_while</k> - <v>1400</v> + <v>1413</v> </e> <e> <k>@ruby_while_modifier</k> - <v>194</v> + <v>198</v> </e> <e> <k>@ruby_yield</k> - <v>2477</v> + <v>2450</v> </e> <e> <k>@yaml_alias_node</k> @@ -794,15 +794,15 @@ </typesizes> <stats><relation> <name>containerparent</name> - <cardinality>23222</cardinality> + <cardinality>23863</cardinality> <columnsizes> <e> <k>parent</k> - <v>5002</v> + <v>5165</v> </e> <e> <k>child</k> - <v>23222</v> + <v>23863</v> </e> </columnsizes> <dependencies> @@ -816,37 +816,37 @@ <b> <a>1</a> <b>2</b> - <v>2290</v> + <v>2394</v> </b> <b> <a>2</a> <b>3</b> - <v>934</v> + <v>968</v> </b> <b> <a>3</a> <b>4</b> - <v>421</v> + <v>417</v> </b> <b> <a>4</a> <b>5</b> - <v>315</v> + <v>295</v> </b> <b> <a>5</a> <b>7</b> - <v>408</v> + <v>443</v> </b> <b> <a>7</a> <b>14</b> - <v>408</v> + <v>403</v> </b> <b> <a>14</a> <b>126</b> - <v>223</v> + <v>242</v> </b> </bs> </hist> @@ -862,7 +862,7 @@ <b> <a>1</a> <b>2</b> - <v>23222</v> + <v>23863</v> </b> </bs> </hist> @@ -872,11 +872,11 @@ </relation> <relation> <name>diagnostics</name> - <cardinality>157</cardinality> + <cardinality>188</cardinality> <columnsizes> <e> <k>id</k> - <v>157</v> + <v>188</v> </e> <e> <k>severity</k> @@ -888,15 +888,15 @@ </e> <e> <k>error_message</k> - <v>26</v> + <v>53</v> </e> <e> <k>full_error_message</k> - <v>118</v> + <v>161</v> </e> <e> <k>location</k> - <v>157</v> + <v>174</v> </e> </columnsizes> <dependencies> @@ -910,7 +910,7 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>188</v> </b> </bs> </hist> @@ -926,7 +926,7 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>188</v> </b> </bs> </hist> @@ -942,7 +942,7 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>188</v> </b> </bs> </hist> @@ -958,7 +958,7 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>188</v> </b> </bs> </hist> @@ -974,7 +974,7 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>188</v> </b> </bs> </hist> @@ -988,8 +988,8 @@ <budget>12</budget> <bs> <b> - <a>12</a> - <b>13</b> + <a>14</a> + <b>15</b> <v>13</v> </b> </bs> @@ -1020,8 +1020,8 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>4</a> + <b>5</b> <v>13</v> </b> </bs> @@ -1036,8 +1036,8 @@ <budget>12</budget> <bs> <b> - <a>9</a> - <b>10</b> + <a>12</a> + <b>13</b> <v>13</v> </b> </bs> @@ -1052,8 +1052,8 @@ <budget>12</budget> <bs> <b> - <a>12</a> - <b>13</b> + <a>13</a> + <b>14</b> <v>13</v> </b> </bs> @@ -1068,8 +1068,8 @@ <budget>12</budget> <bs> <b> - <a>12</a> - <b>13</b> + <a>14</a> + <b>15</b> <v>13</v> </b> </bs> @@ -1100,8 +1100,8 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>4</a> + <b>5</b> <v>13</v> </b> </bs> @@ -1116,8 +1116,8 @@ <budget>12</budget> <bs> <b> - <a>9</a> - <b>10</b> + <a>12</a> + <b>13</b> <v>13</v> </b> </bs> @@ -1132,8 +1132,8 @@ <budget>12</budget> <bs> <b> - <a>12</a> - <b>13</b> + <a>13</a> + <b>14</b> <v>13</v> </b> </bs> @@ -1150,11 +1150,16 @@ <b> <a>1</a> <b>2</b> + <v>26</v> + </b> + <b> + <a>2</a> + <b>3</b> <v>13</v> </b> <b> - <a>11</a> - <b>12</b> + <a>10</a> + <b>11</b> <v>13</v> </b> </bs> @@ -1171,7 +1176,7 @@ <b> <a>1</a> <b>2</b> - <v>26</v> + <v>53</v> </b> </bs> </hist> @@ -1187,7 +1192,7 @@ <b> <a>1</a> <b>2</b> - <v>26</v> + <v>53</v> </b> </bs> </hist> @@ -1203,6 +1208,11 @@ <b> <a>1</a> <b>2</b> + <v>26</v> + </b> + <b> + <a>2</a> + <b>3</b> <v>13</v> </b> <b> @@ -1224,11 +1234,16 @@ <b> <a>1</a> <b>2</b> + <v>26</v> + </b> + <b> + <a>2</a> + <b>3</b> <v>13</v> </b> <b> - <a>11</a> - <b>12</b> + <a>10</a> + <b>11</b> <v>13</v> </b> </bs> @@ -1245,12 +1260,12 @@ <b> <a>1</a> <b>2</b> - <v>78</v> + <v>134</v> </b> <b> <a>2</a> <b>3</b> - <v>39</v> + <v>26</v> </b> </bs> </hist> @@ -1266,7 +1281,7 @@ <b> <a>1</a> <b>2</b> - <v>118</v> + <v>161</v> </b> </bs> </hist> @@ -1282,7 +1297,7 @@ <b> <a>1</a> <b>2</b> - <v>118</v> + <v>161</v> </b> </bs> </hist> @@ -1298,7 +1313,7 @@ <b> <a>1</a> <b>2</b> - <v>118</v> + <v>161</v> </b> </bs> </hist> @@ -1314,12 +1329,12 @@ <b> <a>1</a> <b>2</b> - <v>78</v> + <v>134</v> </b> <b> <a>2</a> <b>3</b> - <v>39</v> + <v>26</v> </b> </bs> </hist> @@ -1335,7 +1350,12 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>161</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>13</v> </b> </bs> </hist> @@ -1351,7 +1371,7 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>174</v> </b> </bs> </hist> @@ -1367,7 +1387,7 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>174</v> </b> </bs> </hist> @@ -1383,7 +1403,12 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>161</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>13</v> </b> </bs> </hist> @@ -1399,7 +1424,12 @@ <b> <a>1</a> <b>2</b> - <v>157</v> + <v>161</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>13</v> </b> </bs> </hist> @@ -1408,24 +1438,73 @@ </dependencies> </relation> <relation> - <name>erb_ast_node_info</name> - <cardinality>24486</cardinality> + <name>erb_ast_node_location</name> + <cardinality>22409</cardinality> <columnsizes> <e> <k>node</k> - <v>24486</v> - </e> - <e> - <k>parent</k> - <v>5532</v> - </e> - <e> - <k>parent_index</k> - <v>608</v> + <v>22409</v> </e> <e> <k>loc</k> - <v>24484</v> + <v>22407</v> + </e> + </columnsizes> + <dependencies> + <dep> + <src>node</src> + <trg>loc</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>22409</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>loc</src> + <trg>node</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>22404</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>2</v> + </b> + </bs> + </hist> + </val> + </dep> + </dependencies> + </relation> + <relation> + <name>erb_ast_node_parent</name> + <cardinality>22069</cardinality> + <columnsizes> + <e> + <k>node</k> + <v>22069</v> + </e> + <e> + <k>parent</k> + <v>4718</v> + </e> + <e> + <k>parent_index</k> + <v>564</v> </e> </columnsizes> <dependencies> @@ -1439,7 +1518,7 @@ <b> <a>1</a> <b>2</b> - <v>24486</v> + <v>22069</v> </b> </bs> </hist> @@ -1455,23 +1534,7 @@ <b> <a>1</a> <b>2</b> - <v>24486</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>node</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>24486</v> + <v>22069</v> </b> </bs> </hist> @@ -1487,17 +1550,17 @@ <b> <a>1</a> <b>3</b> - <v>384</v> + <v>9</v> </b> <b> <a>3</a> <b>4</b> - <v>4908</v> + <v>4494</v> </b> <b> <a>4</a> <b>240</b> - <v>239</v> + <v>215</v> </b> </bs> </hist> @@ -1513,43 +1576,17 @@ <b> <a>1</a> <b>3</b> - <v>384</v> + <v>9</v> </b> <b> <a>3</a> <b>4</b> - <v>4908</v> + <v>4494</v> </b> <b> <a>4</a> <b>240</b> - <v>239</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>3</b> - <v>384</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>4908</v> - </b> - <b> - <a>4</a> - <b>240</b> - <v>239</v> + <v>215</v> </b> </bs> </hist> @@ -1565,62 +1602,57 @@ <b> <a>1</a> <b>2</b> - <v>33</v> + <v>25</v> </b> <b> <a>2</a> <b>3</b> - <v>84</v> + <v>33</v> </b> <b> <a>3</a> <b>4</b> - <v>12</v> + <v>33</v> </b> <b> <a>4</a> <b>5</b> - <v>101</v> + <v>122</v> </b> <b> <a>5</a> <b>6</b> - <v>53</v> + <v>96</v> </b> <b> <a>6</a> - <b>7</b> - <v>50</v> - </b> - <b> - <a>7</a> <b>8</b> - <v>43</v> + <v>40</v> </b> <b> <a>8</a> - <b>14</b> - <v>50</v> + <b>13</b> + <v>42</v> </b> <b> - <a>14</a> - <b>23</b> - <v>53</v> + <a>13</a> + <b>20</b> + <v>44</v> </b> <b> - <a>24</a> - <b>39</b> - <v>45</v> + <a>21</a> + <b>31</b> + <v>42</v> </b> <b> - <a>41</a> - <b>62</b> - <v>45</v> + <a>35</a> + <b>55</b> + <v>44</v> </b> <b> - <a>65</a> - <b>2173</b> - <v>33</v> + <a>55</a> + <b>1998</b> + <v>37</v> </b> </bs> </hist> @@ -1636,191 +1668,57 @@ <b> <a>1</a> <b>2</b> - <v>33</v> + <v>25</v> </b> <b> <a>2</a> <b>3</b> - <v>84</v> + <v>33</v> </b> <b> <a>3</a> <b>4</b> - <v>12</v> + <v>33</v> </b> <b> <a>4</a> <b>5</b> - <v>101</v> + <v>122</v> </b> <b> <a>5</a> <b>6</b> - <v>53</v> + <v>96</v> </b> <b> <a>6</a> - <b>7</b> - <v>50</v> - </b> - <b> - <a>7</a> <b>8</b> - <v>43</v> + <v>40</v> </b> <b> <a>8</a> - <b>14</b> - <v>50</v> + <b>13</b> + <v>42</v> </b> <b> - <a>14</a> - <b>23</b> - <v>53</v> + <a>13</a> + <b>20</b> + <v>44</v> </b> <b> - <a>24</a> - <b>39</b> - <v>45</v> + <a>21</a> + <b>31</b> + <v>42</v> </b> <b> - <a>41</a> - <b>62</b> - <v>45</v> + <a>35</a> + <b>55</b> + <v>44</v> </b> <b> - <a>65</a> - <b>2173</b> - <v>33</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent_index</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>33</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>84</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>12</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>101</v> - </b> - <b> - <a>5</a> - <b>6</b> - <v>53</v> - </b> - <b> - <a>6</a> - <b>7</b> - <v>50</v> - </b> - <b> - <a>7</a> - <b>8</b> - <v>43</v> - </b> - <b> - <a>8</a> - <b>14</b> - <v>50</v> - </b> - <b> - <a>14</a> - <b>23</b> - <v>53</v> - </b> - <b> - <a>24</a> - <b>39</b> - <v>45</v> - </b> - <b> - <a>41</a> - <b>62</b> - <v>45</v> - </b> - <b> - <a>65</a> - <b>2172</b> - <v>33</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>node</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>24481</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>2</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>24481</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>2</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent_index</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>24484</v> + <a>55</a> + <b>1998</b> + <v>37</v> </b> </bs> </hist> @@ -1830,15 +1728,15 @@ </relation> <relation> <name>erb_comment_directive_child</name> - <cardinality>27</cardinality> + <cardinality>26</cardinality> <columnsizes> <e> <k>erb_comment_directive</k> - <v>27</v> + <v>26</v> </e> <e> <k>child</k> - <v>27</v> + <v>26</v> </e> </columnsizes> <dependencies> @@ -1852,7 +1750,7 @@ <b> <a>1</a> <b>2</b> - <v>27</v> + <v>26</v> </b> </bs> </hist> @@ -1868,7 +1766,7 @@ <b> <a>1</a> <b>2</b> - <v>27</v> + <v>26</v> </b> </bs> </hist> @@ -1878,26 +1776,26 @@ </relation> <relation> <name>erb_comment_directive_def</name> - <cardinality>27</cardinality> + <cardinality>26</cardinality> <columnsizes> <e> <k>id</k> - <v>27</v> + <v>26</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>erb_directive_child</name> - <cardinality>1225</cardinality> + <cardinality>1108</cardinality> <columnsizes> <e> <k>erb_directive</k> - <v>1225</v> + <v>1108</v> </e> <e> <k>child</k> - <v>1225</v> + <v>1108</v> </e> </columnsizes> <dependencies> @@ -1911,7 +1809,7 @@ <b> <a>1</a> <b>2</b> - <v>1225</v> + <v>1108</v> </b> </bs> </hist> @@ -1927,7 +1825,7 @@ <b> <a>1</a> <b>2</b> - <v>1225</v> + <v>1108</v> </b> </bs> </hist> @@ -1937,11 +1835,11 @@ </relation> <relation> <name>erb_directive_def</name> - <cardinality>1225</cardinality> + <cardinality>1108</cardinality> <columnsizes> <e> <k>id</k> - <v>1225</v> + <v>1108</v> </e> </columnsizes> <dependencies/> @@ -2007,15 +1905,15 @@ </relation> <relation> <name>erb_output_directive_child</name> - <cardinality>3555</cardinality> + <cardinality>3270</cardinality> <columnsizes> <e> <k>erb_output_directive</k> - <v>3555</v> + <v>3270</v> </e> <e> <k>child</k> - <v>3555</v> + <v>3270</v> </e> </columnsizes> <dependencies> @@ -2029,7 +1927,7 @@ <b> <a>1</a> <b>2</b> - <v>3555</v> + <v>3270</v> </b> </bs> </hist> @@ -2045,7 +1943,7 @@ <b> <a>1</a> <b>2</b> - <v>3555</v> + <v>3270</v> </b> </bs> </hist> @@ -2055,30 +1953,30 @@ </relation> <relation> <name>erb_output_directive_def</name> - <cardinality>3555</cardinality> + <cardinality>3270</cardinality> <columnsizes> <e> <k>id</k> - <v>3555</v> + <v>3270</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>erb_template_child</name> - <cardinality>9761</cardinality> + <cardinality>8934</cardinality> <columnsizes> <e> <k>erb_template</k> - <v>374</v> + <v>340</v> </e> <e> <k>index</k> - <v>608</v> + <v>564</v> </e> <e> <k>child</k> - <v>9761</v> + <v>8934</v> </e> </columnsizes> <dependencies> @@ -2092,53 +1990,58 @@ <b> <a>1</a> <b>3</b> - <v>10</v> + <v>9</v> </b> <b> <a>3</a> <b>4</b> - <v>124</v> + <v>115</v> </b> <b> <a>4</a> <b>7</b> - <v>25</v> + <v>21</v> </b> <b> <a>7</a> - <b>11</b> - <v>30</v> - </b> - <b> - <a>11</a> - <b>15</b> - <v>33</v> - </b> - <b> - <a>15</a> - <b>26</b> - <v>30</v> - </b> - <b> - <a>27</a> - <b>35</b> - <v>30</v> - </b> - <b> - <a>35</a> - <b>50</b> - <v>33</v> - </b> - <b> - <a>53</a> - <b>78</b> - <v>30</v> - </b> - <b> - <a>82</a> - <b>240</b> + <b>10</b> <v>25</v> </b> + <b> + <a>10</a> + <b>14</b> + <v>28</v> + </b> + <b> + <a>14</a> + <b>24</b> + <v>25</v> + </b> + <b> + <a>24</a> + <b>33</b> + <v>25</v> + </b> + <b> + <a>33</a> + <b>44</b> + <v>25</v> + </b> + <b> + <a>45</a> + <b>64</b> + <v>25</v> + </b> + <b> + <a>67</a> + <b>149</b> + <v>25</v> + </b> + <b> + <a>200</a> + <b>240</b> + <v>9</v> + </b> </bs> </hist> </val> @@ -2153,53 +2056,58 @@ <b> <a>1</a> <b>3</b> - <v>10</v> + <v>9</v> </b> <b> <a>3</a> <b>4</b> - <v>124</v> + <v>115</v> </b> <b> <a>4</a> <b>7</b> - <v>25</v> + <v>21</v> </b> <b> <a>7</a> - <b>11</b> - <v>30</v> - </b> - <b> - <a>11</a> - <b>15</b> - <v>33</v> - </b> - <b> - <a>15</a> - <b>26</b> - <v>30</v> - </b> - <b> - <a>27</a> - <b>35</b> - <v>30</v> - </b> - <b> - <a>35</a> - <b>50</b> - <v>33</v> - </b> - <b> - <a>53</a> - <b>78</b> - <v>30</v> - </b> - <b> - <a>82</a> - <b>240</b> + <b>10</b> <v>25</v> </b> + <b> + <a>10</a> + <b>14</b> + <v>28</v> + </b> + <b> + <a>14</a> + <b>24</b> + <v>25</v> + </b> + <b> + <a>24</a> + <b>33</b> + <v>25</v> + </b> + <b> + <a>33</a> + <b>44</b> + <v>25</v> + </b> + <b> + <a>45</a> + <b>64</b> + <v>25</v> + </b> + <b> + <a>67</a> + <b>149</b> + <v>25</v> + </b> + <b> + <a>200</a> + <b>240</b> + <v>9</v> + </b> </bs> </hist> </val> @@ -2214,62 +2122,57 @@ <b> <a>1</a> <b>2</b> - <v>33</v> + <v>25</v> </b> <b> <a>2</a> <b>3</b> - <v>84</v> + <v>33</v> </b> <b> <a>3</a> <b>4</b> - <v>12</v> + <v>33</v> </b> <b> <a>4</a> <b>5</b> - <v>101</v> + <v>122</v> </b> <b> <a>5</a> <b>6</b> - <v>53</v> + <v>96</v> </b> <b> <a>6</a> - <b>7</b> - <v>50</v> - </b> - <b> - <a>7</a> <b>8</b> - <v>43</v> + <v>40</v> </b> <b> <a>8</a> - <b>14</b> - <v>50</v> + <b>13</b> + <v>42</v> </b> <b> - <a>14</a> - <b>23</b> - <v>53</v> + <a>13</a> + <b>20</b> + <v>44</v> </b> <b> - <a>24</a> - <b>39</b> - <v>45</v> + <a>21</a> + <b>31</b> + <v>42</v> </b> <b> - <a>41</a> - <b>62</b> - <v>45</v> + <a>35</a> + <b>55</b> + <v>44</v> </b> <b> - <a>65</a> - <b>148</b> - <v>33</v> + <a>55</a> + <b>145</b> + <v>37</v> </b> </bs> </hist> @@ -2285,62 +2188,57 @@ <b> <a>1</a> <b>2</b> - <v>33</v> + <v>25</v> </b> <b> <a>2</a> <b>3</b> - <v>84</v> + <v>33</v> </b> <b> <a>3</a> <b>4</b> - <v>12</v> + <v>33</v> </b> <b> <a>4</a> <b>5</b> - <v>101</v> + <v>122</v> </b> <b> <a>5</a> <b>6</b> - <v>53</v> + <v>96</v> </b> <b> <a>6</a> - <b>7</b> - <v>50</v> - </b> - <b> - <a>7</a> <b>8</b> - <v>43</v> + <v>40</v> </b> <b> <a>8</a> - <b>14</b> - <v>50</v> + <b>13</b> + <v>42</v> </b> <b> - <a>14</a> - <b>23</b> - <v>53</v> + <a>13</a> + <b>20</b> + <v>44</v> </b> <b> - <a>24</a> - <b>39</b> - <v>45</v> + <a>21</a> + <b>31</b> + <v>42</v> </b> <b> - <a>41</a> - <b>62</b> - <v>45</v> + <a>35</a> + <b>55</b> + <v>44</v> </b> <b> - <a>65</a> - <b>148</b> - <v>33</v> + <a>55</a> + <b>145</b> + <v>37</v> </b> </bs> </hist> @@ -2356,7 +2254,7 @@ <b> <a>1</a> <b>2</b> - <v>9761</v> + <v>8934</v> </b> </bs> </hist> @@ -2372,7 +2270,7 @@ <b> <a>1</a> <b>2</b> - <v>9761</v> + <v>8934</v> </b> </bs> </hist> @@ -2382,30 +2280,30 @@ </relation> <relation> <name>erb_template_def</name> - <cardinality>1531</cardinality> + <cardinality>1508</cardinality> <columnsizes> <e> <k>id</k> - <v>1531</v> + <v>1508</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>erb_tokeninfo</name> - <cardinality>19328</cardinality> + <cardinality>17690</cardinality> <columnsizes> <e> <k>id</k> - <v>19328</v> + <v>17690</v> </e> <e> <k>kind</k> - <v>10</v> + <v>7</v> </e> <e> <k>value</k> - <v>5305</v> + <v>4822</v> </e> </columnsizes> <dependencies> @@ -2419,7 +2317,7 @@ <b> <a>1</a> <b>2</b> - <v>19328</v> + <v>17690</v> </b> </bs> </hist> @@ -2435,7 +2333,7 @@ <b> <a>1</a> <b>2</b> - <v>19328</v> + <v>17690</v> </b> </bs> </hist> @@ -2449,23 +2347,18 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>1853</a> + <b>1854</b> <v>2</v> </b> <b> - <a>1877</a> - <b>1878</b> + <a>1928</a> + <b>1929</b> <v>2</v> </b> <b> - <a>1954</a> - <b>1955</b> - <v>2</v> - </b> - <b> - <a>3756</a> - <b>3757</b> + <a>3706</a> + <b>3707</b> <v>2</v> </b> </bs> @@ -2480,23 +2373,18 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>5</a> + <b>6</b> <v>2</v> </b> <b> - <a>6</a> - <b>7</b> + <a>984</a> + <b>985</b> <v>2</v> </b> <b> - <a>992</a> - <b>993</b> - <v>2</v> - </b> - <b> - <a>1084</a> - <b>1085</b> + <a>1052</a> + <b>1053</b> <v>2</v> </b> </bs> @@ -2513,17 +2401,17 @@ <b> <a>1</a> <b>2</b> - <v>4289</v> + <v>3879</v> </b> <b> <a>2</a> <b>3</b> - <v>636</v> + <v>600</v> </b> <b> <a>3</a> - <b>1811</b> - <v>379</v> + <b>1786</b> + <v>342</v> </b> </bs> </hist> @@ -2539,7 +2427,7 @@ <b> <a>1</a> <b>2</b> - <v>5305</v> + <v>4822</v> </b> </bs> </hist> @@ -2549,15 +2437,15 @@ </relation> <relation> <name>files</name> - <cardinality>18245</cardinality> + <cardinality>18724</cardinality> <columnsizes> <e> <k>id</k> - <v>18245</v> + <v>18724</v> </e> <e> <k>name</k> - <v>18245</v> + <v>18724</v> </e> </columnsizes> <dependencies> @@ -2571,7 +2459,7 @@ <b> <a>1</a> <b>2</b> - <v>18245</v> + <v>18724</v> </b> </bs> </hist> @@ -2587,7 +2475,7 @@ <b> <a>1</a> <b>2</b> - <v>18245</v> + <v>18724</v> </b> </bs> </hist> @@ -2597,15 +2485,15 @@ </relation> <relation> <name>folders</name> - <cardinality>5002</cardinality> + <cardinality>5165</cardinality> <columnsizes> <e> <k>id</k> - <v>5002</v> + <v>5165</v> </e> <e> <k>name</k> - <v>5002</v> + <v>5165</v> </e> </columnsizes> <dependencies> @@ -2619,7 +2507,7 @@ <b> <a>1</a> <b>2</b> - <v>5002</v> + <v>5165</v> </b> </bs> </hist> @@ -2635,7 +2523,7 @@ <b> <a>1</a> <b>2</b> - <v>5002</v> + <v>5165</v> </b> </bs> </hist> @@ -2645,31 +2533,31 @@ </relation> <relation> <name>locations_default</name> - <cardinality>9022418</cardinality> + <cardinality>9223392</cardinality> <columnsizes> <e> <k>id</k> - <v>9022418</v> + <v>9223392</v> </e> <e> <k>file</k> - <v>18245</v> + <v>18724</v> </e> <e> <k>beginLine</k> - <v>31147</v> + <v>31826</v> </e> <e> <k>beginColumn</k> - <v>5186</v> + <v>5300</v> </e> <e> <k>endLine</k> - <v>31147</v> + <v>31826</v> </e> <e> <k>endColumn</k> - <v>5292</v> + <v>5407</v> </e> </columnsizes> <dependencies> @@ -2683,7 +2571,7 @@ <b> <a>1</a> <b>2</b> - <v>9022418</v> + <v>9223392</v> </b> </bs> </hist> @@ -2699,7 +2587,7 @@ <b> <a>1</a> <b>2</b> - <v>9022418</v> + <v>9223392</v> </b> </bs> </hist> @@ -2715,7 +2603,7 @@ <b> <a>1</a> <b>2</b> - <v>9022418</v> + <v>9223392</v> </b> </bs> </hist> @@ -2731,7 +2619,7 @@ <b> <a>1</a> <b>2</b> - <v>9022418</v> + <v>9223392</v> </b> </bs> </hist> @@ -2747,7 +2635,7 @@ <b> <a>1</a> <b>2</b> - <v>9022418</v> + <v>9223392</v> </b> </bs> </hist> @@ -2763,72 +2651,72 @@ <b> <a>1</a> <b>32</b> - <v>1434</v> + <v>1479</v> </b> <b> <a>32</a> <b>47</b> - <v>1382</v> + <v>1412</v> </b> <b> <a>47</a> - <b>70</b> - <v>1369</v> + <b>71</b> + <v>1452</v> </b> <b> - <a>70</a> - <b>91</b> - <v>1369</v> + <a>71</a> + <b>94</b> + <v>1439</v> </b> <b> - <a>91</a> - <b>117</b> - <v>1369</v> + <a>94</a> + <b>119</b> + <v>1412</v> </b> <b> - <a>117</a> - <b>159</b> - <v>1395</v> + <a>119</a> + <b>161</b> + <v>1412</v> </b> <b> - <a>159</a> - <b>208</b> - <v>1408</v> + <a>161</a> + <b>209</b> + <v>1466</v> </b> <b> - <a>208</a> - <b>256</b> - <v>1369</v> + <a>209</a> + <b>260</b> + <v>1439</v> </b> <b> - <a>256</a> - <b>326</b> - <v>1408</v> + <a>260</a> + <b>333</b> + <v>1412</v> </b> <b> - <a>327</a> - <b>444</b> - <v>1382</v> + <a>336</a> + <b>445</b> + <v>1425</v> </b> <b> - <a>444</a> - <b>671</b> - <v>1369</v> + <a>445</a> + <b>679</b> + <v>1412</v> </b> <b> - <a>671</a> - <b>1185</b> - <v>1369</v> + <a>684</a> + <b>1221</b> + <v>1412</v> </b> <b> - <a>1186</a> - <b>4592</b> - <v>1369</v> + <a>1228</a> + <b>5812</b> + <v>1412</v> </b> <b> - <a>4636</a> + <a>7145</a> <b>22841</b> - <v>250</v> + <v>134</v> </b> </bs> </hist> @@ -2844,67 +2732,67 @@ <b> <a>1</a> <b>7</b> - <v>1342</v> + <v>1398</v> </b> <b> <a>7</a> <b>10</b> - <v>1632</v> + <v>1641</v> </b> <b> <a>10</a> <b>13</b> - <v>1434</v> + <v>1479</v> </b> <b> <a>13</a> <b>16</b> - <v>1592</v> + <v>1668</v> </b> <b> <a>16</a> <b>20</b> - <v>1579</v> + <v>1600</v> </b> <b> <a>20</a> - <b>24</b> - <v>1369</v> + <b>25</b> + <v>1587</v> </b> <b> - <a>24</a> - <b>30</b> - <v>1448</v> + <a>25</a> + <b>31</b> + <v>1573</v> </b> <b> - <a>30</a> - <b>37</b> - <v>1487</v> + <a>31</a> + <b>38</b> + <v>1506</v> </b> <b> - <a>37</a> - <b>47</b> - <v>1395</v> + <a>38</a> + <b>49</b> + <v>1506</v> </b> <b> - <a>47</a> - <b>64</b> - <v>1382</v> + <a>49</a> + <b>69</b> + <v>1425</v> </b> <b> - <a>64</a> - <b>99</b> - <v>1382</v> + <a>69</a> + <b>117</b> + <v>1425</v> </b> <b> - <a>100</a> - <b>207</b> - <v>1382</v> + <a>119</a> + <b>275</b> + <v>1412</v> </b> <b> - <a>207</a> + <a>276</a> <b>2339</b> - <v>816</v> + <v>497</v> </b> </bs> </hist> @@ -2920,67 +2808,67 @@ <b> <a>1</a> <b>16</b> - <v>1487</v> + <v>1533</v> </b> <b> <a>16</a> - <b>23</b> - <v>1395</v> + <b>24</b> + <v>1493</v> </b> <b> - <a>23</a> - <b>30</b> - <v>1382</v> + <a>24</a> + <b>31</b> + <v>1412</v> </b> <b> - <a>30</a> - <b>39</b> - <v>1369</v> + <a>31</a> + <b>40</b> + <v>1573</v> </b> <b> - <a>39</a> - <b>45</b> - <v>1527</v> + <a>40</a> + <b>46</b> + <v>1452</v> </b> <b> - <a>45</a> + <a>46</a> <b>52</b> - <v>1566</v> + <v>1533</v> </b> <b> <a>52</a> - <b>59</b> - <v>1369</v> + <b>60</b> + <v>1587</v> </b> <b> - <a>59</a> - <b>67</b> - <v>1566</v> + <a>60</a> + <b>68</b> + <v>1721</v> </b> <b> - <a>67</a> - <b>73</b> - <v>1448</v> + <a>68</a> + <b>76</b> + <v>1533</v> </b> <b> - <a>73</a> - <b>82</b> - <v>1408</v> + <a>76</a> + <b>85</b> + <v>1452</v> </b> <b> - <a>82</a> - <b>94</b> - <v>1448</v> + <a>85</a> + <b>98</b> + <v>1412</v> </b> <b> - <a>94</a> - <b>114</b> - <v>1395</v> + <a>98</a> + <b>122</b> + <v>1412</v> </b> <b> - <a>114</a> + <a>122</a> <b>357</b> - <v>882</v> + <v>605</v> </b> </bs> </hist> @@ -2996,67 +2884,67 @@ <b> <a>1</a> <b>7</b> - <v>1342</v> + <v>1398</v> </b> <b> <a>7</a> <b>10</b> - <v>1592</v> + <v>1600</v> </b> <b> <a>10</a> <b>13</b> - <v>1461</v> + <v>1506</v> </b> <b> <a>13</a> <b>16</b> - <v>1566</v> + <v>1641</v> </b> <b> <a>16</a> <b>20</b> - <v>1592</v> + <v>1614</v> </b> <b> <a>20</a> - <b>24</b> - <v>1382</v> + <b>25</b> + <v>1600</v> </b> <b> - <a>24</a> - <b>30</b> - <v>1461</v> + <a>25</a> + <b>31</b> + <v>1587</v> </b> <b> - <a>30</a> - <b>37</b> - <v>1487</v> + <a>31</a> + <b>38</b> + <v>1506</v> </b> <b> - <a>37</a> - <b>47</b> - <v>1395</v> + <a>38</a> + <b>49</b> + <v>1506</v> </b> <b> - <a>47</a> - <b>64</b> - <v>1382</v> + <a>49</a> + <b>69</b> + <v>1425</v> </b> <b> - <a>64</a> - <b>99</b> - <v>1382</v> + <a>69</a> + <b>117</b> + <v>1425</v> </b> <b> - <a>100</a> - <b>207</b> - <v>1382</v> + <a>119</a> + <b>275</b> + <v>1412</v> </b> <b> - <a>207</a> + <a>276</a> <b>2339</b> - <v>816</v> + <v>497</v> </b> </bs> </hist> @@ -3071,68 +2959,68 @@ <bs> <b> <a>1</a> - <b>20</b> - <v>1632</v> + <b>19</b> + <v>1412</v> </b> <b> - <a>20</a> - <b>28</b> - <v>1395</v> + <a>19</a> + <b>27</b> + <v>1587</v> </b> <b> - <a>28</a> - <b>36</b> - <v>1513</v> + <a>27</a> + <b>35</b> + <v>1425</v> </b> <b> - <a>36</a> - <b>45</b> - <v>1434</v> + <a>35</a> + <b>44</b> + <v>1452</v> </b> <b> - <a>45</a> - <b>51</b> - <v>1487</v> + <a>44</a> + <b>50</b> + <v>1600</v> </b> <b> - <a>51</a> - <b>58</b> - <v>1513</v> + <a>50</a> + <b>57</b> + <v>1533</v> </b> <b> - <a>58</a> - <b>66</b> - <v>1500</v> + <a>57</a> + <b>64</b> + <v>1439</v> </b> <b> - <a>66</a> - <b>73</b> - <v>1500</v> + <a>64</a> + <b>71</b> + <v>1412</v> </b> <b> - <a>73</a> - <b>80</b> - <v>1448</v> + <a>71</a> + <b>78</b> + <v>1533</v> </b> <b> - <a>80</a> - <b>89</b> - <v>1421</v> + <a>78</a> + <b>87</b> + <v>1520</v> </b> <b> - <a>89</a> - <b>102</b> - <v>1474</v> + <a>87</a> + <b>99</b> + <v>1493</v> </b> <b> - <a>102</a> - <b>128</b> - <v>1369</v> + <a>99</a> + <b>118</b> + <v>1425</v> </b> <b> - <a>128</a> + <a>118</a> <b>367</b> - <v>552</v> + <v>887</v> </b> </bs> </hist> @@ -3148,72 +3036,72 @@ <b> <a>1</a> <b>2</b> - <v>1566</v> + <v>1600</v> </b> <b> <a>2</a> <b>5</b> - <v>1592</v> + <v>1627</v> </b> <b> <a>5</a> <b>6</b> - <v>3409</v> + <v>3484</v> </b> <b> <a>6</a> <b>10</b> - <v>2646</v> + <v>2676</v> </b> <b> <a>10</a> <b>17</b> - <v>2804</v> + <v>2878</v> </b> <b> <a>17</a> <b>24</b> - <v>2409</v> + <v>2421</v> </b> <b> <a>24</a> <b>43</b> - <v>2382</v> + <v>2448</v> </b> <b> <a>43</a> <b>78</b> - <v>2369</v> + <v>2394</v> </b> <b> <a>78</a> - <b>118</b> - <v>2395</v> + <b>117</b> + <v>2394</v> </b> <b> - <a>118</a> - <b>174</b> - <v>2343</v> + <a>117</a> + <b>168</b> + <v>2407</v> </b> <b> - <a>174</a> - <b>268</b> - <v>2356</v> + <a>169</a> + <b>262</b> + <v>2421</v> </b> <b> - <a>271</a> - <b>751</b> - <v>2343</v> + <a>262</a> + <b>703</b> + <v>2394</v> </b> <b> - <a>757</a> - <b>7072</b> - <v>2343</v> + <a>708</a> + <b>5999</b> + <v>2394</v> </b> <b> - <a>7434</a> - <b>10856</b> - <v>184</v> + <a>6159</a> + <b>10971</b> + <v>282</v> </b> </bs> </hist> @@ -3229,47 +3117,47 @@ <b> <a>1</a> <b>2</b> - <v>10083</v> + <v>10304</v> </b> <b> <a>2</a> <b>3</b> - <v>5555</v> + <v>5609</v> </b> <b> <a>3</a> - <b>6</b> - <v>2343</v> + <b>7</b> + <v>2838</v> </b> <b> - <a>6</a> - <b>9</b> - <v>2330</v> + <a>7</a> + <b>10</b> + <v>2663</v> </b> <b> - <a>9</a> - <b>14</b> - <v>2501</v> + <a>10</a> + <b>15</b> + <v>2407</v> </b> <b> - <a>14</a> - <b>21</b> - <v>2356</v> + <a>15</a> + <b>23</b> + <v>2394</v> </b> <b> - <a>21</a> - <b>44</b> - <v>2356</v> + <a>23</a> + <b>58</b> + <v>2407</v> </b> <b> - <a>44</a> - <b>179</b> - <v>2356</v> + <a>58</a> + <b>287</b> + <v>2394</v> </b> <b> - <a>180</a> - <b>1386</b> - <v>1263</v> + <a>296</a> + <b>1392</b> + <v>807</v> </b> </bs> </hist> @@ -3285,72 +3173,72 @@ <b> <a>1</a> <b>2</b> - <v>1566</v> + <v>1600</v> </b> <b> <a>2</a> <b>3</b> - <v>1474</v> + <v>1520</v> </b> <b> <a>3</a> <b>4</b> - <v>2356</v> + <v>2394</v> </b> <b> <a>4</a> <b>6</b> - <v>2606</v> + <v>2650</v> </b> <b> <a>6</a> <b>8</b> - <v>1777</v> + <v>1775</v> </b> <b> <a>8</a> <b>13</b> - <v>2711</v> + <v>2811</v> </b> <b> <a>13</a> <b>18</b> - <v>2474</v> + <v>2448</v> </b> <b> <a>18</a> <b>29</b> - <v>2540</v> + <v>2582</v> </b> <b> <a>29</a> <b>44</b> - <v>2343</v> + <v>2475</v> </b> <b> <a>44</a> <b>56</b> - <v>2422</v> + <v>2582</v> </b> <b> <a>56</a> - <b>68</b> - <v>2409</v> + <b>69</b> + <v>2475</v> </b> <b> - <a>68</a> - <b>85</b> - <v>2448</v> + <a>69</a> + <b>86</b> + <v>2461</v> </b> <b> - <a>85</a> - <b>112</b> - <v>2369</v> + <a>86</a> + <b>113</b> + <v>2407</v> </b> <b> - <a>112</a> + <a>113</a> <b>205</b> - <v>1645</v> + <v>1641</v> </b> </bs> </hist> @@ -3366,42 +3254,42 @@ <b> <a>1</a> <b>2</b> - <v>11123</v> + <v>11299</v> </b> <b> <a>2</a> <b>3</b> - <v>6411</v> + <v>6591</v> </b> <b> <a>3</a> <b>4</b> - <v>2369</v> + <v>2380</v> </b> <b> <a>4</a> <b>5</b> - <v>1685</v> + <v>1815</v> </b> <b> <a>5</a> <b>7</b> - <v>2553</v> + <v>2623</v> </b> <b> <a>7</a> - <b>11</b> - <v>2856</v> + <b>10</b> + <v>2367</v> </b> <b> - <a>11</a> - <b>19</b> - <v>2488</v> + <a>10</a> + <b>17</b> + <v>2461</v> </b> <b> - <a>19</a> - <b>242</b> - <v>1658</v> + <a>17</a> + <b>240</b> + <v>2286</v> </b> </bs> </hist> @@ -3417,72 +3305,72 @@ <b> <a>1</a> <b>2</b> - <v>1566</v> + <v>1600</v> </b> <b> <a>2</a> <b>4</b> - <v>1592</v> + <v>1627</v> </b> <b> <a>4</a> <b>5</b> - <v>3462</v> + <v>3537</v> </b> <b> <a>5</a> <b>7</b> - <v>2119</v> + <v>2152</v> </b> <b> <a>7</a> <b>11</b> - <v>2698</v> + <v>2744</v> </b> <b> <a>11</a> <b>15</b> - <v>2409</v> + <v>2461</v> </b> <b> <a>15</a> <b>24</b> - <v>2395</v> + <v>2394</v> </b> <b> <a>24</a> <b>39</b> - <v>2369</v> + <v>2421</v> </b> <b> <a>39</a> <b>52</b> - <v>2409</v> + <v>2448</v> </b> <b> <a>52</a> <b>65</b> - <v>2369</v> + <v>2542</v> </b> <b> <a>65</a> - <b>79</b> - <v>2474</v> + <b>80</b> + <v>2555</v> </b> <b> - <a>79</a> - <b>101</b> - <v>2395</v> + <a>80</a> + <b>102</b> + <v>2434</v> </b> <b> - <a>101</a> - <b>135</b> - <v>2356</v> + <a>102</a> + <b>136</b> + <v>2421</v> </b> <b> - <a>135</a> - <b>208</b> - <v>526</v> + <a>136</a> + <b>209</b> + <v>484</v> </b> </bs> </hist> @@ -3498,88 +3386,7 @@ <b> <a>1</a> <b>2</b> - <v>473</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>592</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>250</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>276</v> - </b> - <b> - <a>5</a> - <b>6</b> - <v>315</v> - </b> - <b> - <a>6</a> - <b>9</b> - <v>460</v> - </b> - <b> - <a>9</a> - <b>16</b> - <v>408</v> - </b> - <b> - <a>16</a> - <b>44</b> - <v>394</v> - </b> - <b> - <a>45</a> - <b>177</b> - <v>394</v> - </b> - <b> - <a>180</a> - <b>796</b> - <v>394</v> - </b> - <b> - <a>816</a> - <b>3017</b> - <v>394</v> - </b> - <b> - <a>3017</a> - <b>8160</b> - <v>394</v> - </b> - <b> - <a>8349</a> - <b>25541</b> - <v>394</v> - </b> - <b> - <a>28440</a> - <b>38986</b> - <v>39</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>beginColumn</src> - <trg>file</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1434</v> + <v>484</v> </b> <b> <a>2</a> @@ -3589,42 +3396,123 @@ <b> <a>3</a> <b>4</b> - <v>473</v> + <v>255</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>269</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>336</v> + </b> + <b> + <a>6</a> + <b>9</b> + <v>457</v> + </b> + <b> + <a>9</a> + <b>16</b> + <v>430</v> + </b> + <b> + <a>16</a> + <b>43</b> + <v>403</v> + </b> + <b> + <a>46</a> + <b>182</b> + <v>403</v> + </b> + <b> + <a>184</a> + <b>794</b> + <v>403</v> + </b> + <b> + <a>811</a> + <b>3014</b> + <v>403</v> + </b> + <b> + <a>3015</a> + <b>8230</b> + <v>403</v> + </b> + <b> + <a>8347</a> + <b>25670</b> + <v>403</v> + </b> + <b> + <a>28494</a> + <b>38951</b> + <v>40</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>beginColumn</src> + <trg>file</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1466</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>605</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>484</v> </b> <b> <a>4</a> <b>9</b> - <v>394</v> + <v>417</v> </b> <b> <a>9</a> <b>37</b> - <v>394</v> + <v>403</v> </b> <b> <a>37</a> - <b>120</b> - <v>394</v> + <b>118</b> + <v>403</v> </b> <b> - <a>126</a> - <b>378</b> - <v>394</v> + <a>124</a> + <b>381</b> + <v>403</v> </b> <b> - <a>379</a> - <b>730</b> - <v>394</v> + <a>381</a> + <b>728</b> + <v>403</v> </b> <b> - <a>755</a> - <b>982</b> - <v>394</v> + <a>754</a> + <b>985</b> + <v>403</v> </b> <b> - <a>992</a> - <b>1386</b> - <v>302</v> + <a>996</a> + <b>1392</b> + <v>309</v> </b> </bs> </hist> @@ -3640,62 +3528,67 @@ <b> <a>1</a> <b>2</b> - <v>539</v> + <v>551</v> </b> <b> <a>2</a> <b>3</b> - <v>697</v> + <v>712</v> </b> <b> <a>3</a> <b>4</b> - <v>315</v> + <v>322</v> </b> <b> <a>4</a> <b>5</b> - <v>368</v> + <v>363</v> </b> <b> <a>5</a> - <b>8</b> - <v>473</v> + <b>7</b> + <v>363</v> </b> <b> - <a>8</a> - <b>15</b> - <v>421</v> + <a>7</a> + <b>13</b> + <v>457</v> </b> <b> - <a>15</a> - <b>45</b> - <v>394</v> + <a>13</a> + <b>35</b> + <v>403</v> </b> <b> - <a>45</a> - <b>125</b> - <v>394</v> + <a>35</a> + <b>103</b> + <v>403</v> </b> <b> - <a>132</a> - <b>341</b> - <v>394</v> + <a>109</a> + <b>281</b> + <v>403</v> </b> <b> - <a>342</a> - <b>667</b> - <v>394</v> + <a>286</a> + <b>583</b> + <v>403</v> </b> <b> - <a>682</a> - <b>1002</b> - <v>394</v> + <a>591</a> + <b>927</b> + <v>403</v> </b> <b> - <a>1003</a> - <b>1403</b> - <v>394</v> + <a>935</a> + <b>1163</b> + <v>403</v> + </b> + <b> + <a>1198</a> + <b>1405</b> + <v>107</v> </b> </bs> </hist> @@ -3711,62 +3604,67 @@ <b> <a>1</a> <b>2</b> - <v>539</v> + <v>551</v> </b> <b> <a>2</a> <b>3</b> - <v>697</v> + <v>712</v> </b> <b> <a>3</a> <b>4</b> - <v>315</v> + <v>322</v> </b> <b> <a>4</a> <b>5</b> - <v>368</v> + <v>363</v> </b> <b> <a>5</a> - <b>8</b> - <v>473</v> + <b>7</b> + <v>363</v> </b> <b> - <a>8</a> - <b>15</b> - <v>421</v> + <a>7</a> + <b>13</b> + <v>457</v> </b> <b> - <a>15</a> - <b>45</b> - <v>394</v> + <a>13</a> + <b>35</b> + <v>403</v> </b> <b> - <a>48</a> - <b>125</b> - <v>394</v> + <a>35</a> + <b>105</b> + <v>403</v> </b> <b> - <a>133</a> - <b>345</b> - <v>394</v> + <a>108</a> + <b>282</b> + <v>403</v> </b> <b> - <a>346</a> - <b>687</b> - <v>394</v> + <a>287</a> + <b>596</b> + <v>403</v> </b> <b> - <a>694</a> - <b>1029</b> - <v>408</v> + <a>596</a> + <b>945</b> + <v>403</v> </b> <b> - <a>1029</a> - <b>1409</b> - <v>381</v> + <a>956</a> + <b>1202</b> + <v>403</v> + </b> + <b> + <a>1223</a> + <b>1412</b> + <v>107</v> </b> </bs> </hist> @@ -3782,52 +3680,52 @@ <b> <a>1</a> <b>2</b> - <v>1290</v> + <v>1318</v> </b> <b> <a>2</a> <b>3</b> - <v>697</v> + <v>712</v> </b> <b> <a>3</a> <b>4</b> - <v>513</v> + <v>524</v> </b> <b> <a>4</a> <b>6</b> - <v>434</v> + <v>443</v> </b> <b> <a>6</a> <b>15</b> - <v>394</v> + <v>403</v> </b> <b> <a>15</a> <b>37</b> - <v>394</v> + <v>403</v> </b> <b> <a>37</a> <b>66</b> - <v>394</v> + <v>403</v> </b> <b> <a>66</a> <b>98</b> - <v>394</v> + <v>403</v> </b> <b> <a>100</a> - <b>126</b> - <v>394</v> + <b>127</b> + <v>403</v> </b> <b> - <a>126</a> + <a>128</a> <b>180</b> - <v>276</v> + <v>282</v> </b> </bs> </hist> @@ -3843,72 +3741,72 @@ <b> <a>1</a> <b>3</b> - <v>315</v> + <v>322</v> </b> <b> <a>3</a> <b>4</b> - <v>3435</v> + <v>3510</v> </b> <b> <a>4</a> <b>6</b> - <v>2474</v> + <v>2528</v> </b> <b> <a>6</a> <b>9</b> - <v>2356</v> + <v>2394</v> </b> <b> <a>9</a> <b>13</b> - <v>2448</v> + <v>2488</v> </b> <b> <a>13</a> <b>20</b> - <v>2395</v> + <v>2407</v> </b> <b> <a>20</a> - <b>32</b> - <v>2369</v> + <b>33</b> + <v>2461</v> </b> <b> - <a>32</a> - <b>61</b> - <v>2356</v> + <a>33</a> + <b>64</b> + <v>2421</v> </b> <b> - <a>61</a> - <b>102</b> - <v>2356</v> + <a>64</a> + <b>103</b> + <v>2421</v> </b> <b> - <a>102</a> - <b>145</b> - <v>2395</v> + <a>103</a> + <b>143</b> + <v>2448</v> </b> <b> - <a>145</a> - <b>219</b> - <v>2356</v> + <a>143</a> + <b>220</b> + <v>2394</v> </b> <b> - <a>219</a> - <b>436</b> - <v>2343</v> + <a>220</a> + <b>446</b> + <v>2394</v> </b> <b> - <a>443</a> - <b>1758</b> - <v>2343</v> + <a>446</a> + <b>1691</b> + <v>2394</v> </b> <b> - <a>1798</a> - <b>10208</b> - <v>1197</v> + <a>1717</a> + <b>10278</b> + <v>1237</v> </b> </bs> </hist> @@ -3924,47 +3822,47 @@ <b> <a>1</a> <b>2</b> - <v>10083</v> + <v>10304</v> </b> <b> <a>2</a> <b>3</b> - <v>5555</v> + <v>5609</v> </b> <b> <a>3</a> - <b>6</b> - <v>2343</v> + <b>7</b> + <v>2838</v> </b> <b> - <a>6</a> - <b>9</b> - <v>2330</v> + <a>7</a> + <b>10</b> + <v>2663</v> </b> <b> - <a>9</a> - <b>14</b> - <v>2501</v> + <a>10</a> + <b>15</b> + <v>2407</v> </b> <b> - <a>14</a> - <b>21</b> - <v>2343</v> + <a>15</a> + <b>23</b> + <v>2394</v> </b> <b> - <a>21</a> - <b>44</b> - <v>2369</v> + <a>23</a> + <b>58</b> + <v>2407</v> </b> <b> - <a>44</a> - <b>179</b> - <v>2356</v> + <a>58</a> + <b>287</b> + <v>2394</v> </b> <b> - <a>180</a> - <b>1370</b> - <v>1263</v> + <a>296</a> + <b>1376</b> + <v>807</v> </b> </bs> </hist> @@ -3980,42 +3878,47 @@ <b> <a>1</a> <b>2</b> - <v>11202</v> + <v>11420</v> </b> <b> <a>2</a> <b>3</b> - <v>5871</v> + <v>5959</v> </b> <b> <a>3</a> <b>4</b> - <v>2553</v> + <v>2636</v> </b> <b> <a>4</a> <b>5</b> - <v>1658</v> + <v>1654</v> </b> <b> <a>5</a> <b>7</b> - <v>2527</v> + <v>2650</v> </b> <b> <a>7</a> - <b>11</b> - <v>2830</v> + <b>10</b> + <v>2407</v> </b> <b> - <a>11</a> - <b>20</b> - <v>2422</v> + <a>10</a> + <b>17</b> + <v>2394</v> </b> <b> - <a>20</a> + <a>17</a> + <b>34</b> + <v>2434</v> + </b> + <b> + <a>34</a> <b>43</b> - <v>2079</v> + <v>269</v> </b> </bs> </hist> @@ -4031,67 +3934,67 @@ <b> <a>1</a> <b>3</b> - <v>1579</v> + <v>1614</v> </b> <b> <a>3</a> <b>4</b> - <v>3422</v> + <v>3497</v> </b> <b> <a>4</a> <b>6</b> - <v>2764</v> + <v>2824</v> </b> <b> <a>6</a> <b>8</b> - <v>1671</v> + <v>1694</v> </b> <b> <a>8</a> <b>12</b> - <v>2488</v> + <v>2502</v> </b> <b> <a>12</a> <b>17</b> - <v>2711</v> + <v>2771</v> </b> <b> <a>17</a> <b>28</b> - <v>2448</v> + <v>2421</v> </b> <b> <a>28</a> - <b>43</b> - <v>2435</v> + <b>42</b> + <v>2448</v> </b> <b> - <a>43</a> + <a>42</a> <b>55</b> - <v>2409</v> + <v>2650</v> </b> <b> <a>55</a> <b>67</b> - <v>2343</v> + <v>2407</v> </b> <b> <a>67</a> <b>82</b> - <v>2382</v> + <v>2434</v> </b> <b> <a>82</a> - <b>107</b> - <v>2409</v> + <b>108</b> + <v>2461</v> </b> <b> - <a>107</a> + <a>108</a> <b>204</b> - <v>2079</v> + <v>2098</v> </b> </bs> </hist> @@ -4107,72 +4010,72 @@ <b> <a>1</a> <b>2</b> - <v>1553</v> + <v>1587</v> </b> <b> <a>2</a> <b>3</b> - <v>1474</v> + <v>1520</v> </b> <b> <a>3</a> <b>4</b> - <v>2382</v> + <v>2421</v> </b> <b> <a>4</a> <b>6</b> - <v>2606</v> + <v>2650</v> </b> <b> <a>6</a> <b>8</b> - <v>1737</v> + <v>1748</v> </b> <b> <a>8</a> <b>13</b> - <v>2777</v> + <v>2851</v> </b> <b> <a>13</a> <b>18</b> - <v>2435</v> + <v>2448</v> </b> <b> <a>18</a> <b>30</b> - <v>2514</v> + <v>2488</v> </b> <b> <a>30</a> - <b>46</b> - <v>2567</v> + <b>45</b> + <v>2448</v> </b> <b> - <a>46</a> - <b>59</b> - <v>2409</v> + <a>45</a> + <b>58</b> + <v>2542</v> </b> <b> - <a>59</a> - <b>72</b> - <v>2369</v> + <a>58</a> + <b>71</b> + <v>2421</v> </b> <b> - <a>72</a> - <b>89</b> - <v>2409</v> + <a>71</a> + <b>86</b> + <v>2407</v> </b> <b> - <a>89</a> - <b>117</b> - <v>2435</v> + <a>86</a> + <b>113</b> + <v>2394</v> </b> <b> - <a>117</a> - <b>208</b> - <v>1474</v> + <a>113</a> + <b>209</b> + <v>1896</v> </b> </bs> </hist> @@ -4188,72 +4091,72 @@ <b> <a>1</a> <b>2</b> - <v>408</v> + <v>417</v> </b> <b> <a>2</a> <b>3</b> - <v>473</v> + <v>484</v> </b> <b> <a>3</a> <b>5</b> - <v>447</v> + <v>457</v> </b> <b> <a>5</a> <b>6</b> - <v>171</v> + <v>174</v> </b> <b> <a>6</a> <b>8</b> - <v>460</v> + <v>470</v> </b> <b> <a>8</a> <b>12</b> - <v>408</v> + <v>417</v> </b> <b> <a>12</a> <b>24</b> - <v>408</v> + <v>417</v> </b> <b> <a>24</a> <b>72</b> - <v>408</v> + <v>417</v> </b> <b> <a>76</a> - <b>275</b> - <v>408</v> + <b>277</b> + <v>417</v> </b> <b> - <a>277</a> - <b>1197</b> - <v>408</v> + <a>278</a> + <b>1206</b> + <v>417</v> </b> <b> <a>1227</a> - <b>3883</b> - <v>408</v> + <b>3859</b> + <v>417</v> </b> <b> - <a>3987</a> - <b>8621</b> - <v>408</v> + <a>3977</a> + <b>8618</b> + <v>417</v> </b> <b> - <a>9003</a> - <b>11196</b> - <v>408</v> + <a>9094</a> + <b>11251</b> + <v>417</v> </b> <b> - <a>11489</a> - <b>19733</b> - <v>65</v> + <a>11548</a> + <b>19740</b> + <v>67</v> </b> </bs> </hist> @@ -4269,52 +4172,52 @@ <b> <a>1</a> <b>2</b> - <v>1448</v> + <v>1479</v> </b> <b> <a>2</a> <b>3</b> - <v>566</v> + <v>578</v> </b> <b> <a>3</a> <b>4</b> - <v>552</v> + <v>538</v> </b> <b> <a>4</a> - <b>9</b> - <v>447</v> + <b>8</b> + <v>417</v> </b> <b> - <a>9</a> - <b>46</b> - <v>408</v> + <a>8</a> + <b>29</b> + <v>417</v> </b> <b> - <a>46</a> - <b>152</b> - <v>408</v> + <a>35</a> + <b>115</b> + <v>417</v> </b> <b> - <a>159</a> - <b>442</b> - <v>408</v> + <a>115</a> + <b>399</b> + <v>417</v> </b> <b> - <a>454</a> - <b>851</b> - <v>408</v> + <a>427</a> + <b>798</b> + <v>417</v> </b> <b> - <a>868</a> - <b>1055</b> - <v>408</v> + <a>805</a> + <b>1038</b> + <v>417</v> </b> <b> - <a>1055</a> - <b>1353</b> - <v>236</v> + <a>1039</a> + <b>1359</b> + <v>309</v> </b> </bs> </hist> @@ -4330,149 +4233,7 @@ <b> <a>1</a> <b>2</b> - <v>579</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>631</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>329</v> - </b> - <b> - <a>4</a> - <b>6</b> - <v>460</v> - </b> - <b> - <a>6</a> - <b>9</b> - <v>473</v> - </b> - <b> - <a>9</a> - <b>17</b> - <v>421</v> - </b> - <b> - <a>17</a> - <b>45</b> - <v>408</v> - </b> - <b> - <a>49</a> - <b>149</b> - <v>408</v> - </b> - <b> - <a>150</a> - <b>385</b> - <v>421</v> - </b> - <b> - <a>389</a> - <b>729</b> - <v>408</v> - </b> - <b> - <a>736</a> - <b>1057</b> - <v>408</v> - </b> - <b> - <a>1060</a> - <b>1397</b> - <v>342</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>endColumn</src> - <trg>beginColumn</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>908</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>381</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>487</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>355</v> - </b> - <b> - <a>5</a> - <b>7</b> - <v>368</v> - </b> - <b> - <a>7</a> - <b>14</b> - <v>434</v> - </b> - <b> - <a>15</a> - <b>33</b> - <v>447</v> - </b> - <b> - <a>33</a> - <b>49</b> - <v>408</v> - </b> - <b> - <a>49</a> - <b>64</b> - <v>434</v> - </b> - <b> - <a>64</a> - <b>82</b> - <v>421</v> - </b> - <b> - <a>83</a> - <b>96</b> - <v>421</v> - </b> - <b> - <a>97</a> - <b>108</b> - <v>223</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>endColumn</src> - <trg>endLine</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>579</v> + <v>591</v> </b> <b> <a>2</a> @@ -4482,52 +4243,194 @@ <b> <a>3</a> <b>4</b> - <v>329</v> + <v>336</v> </b> <b> <a>4</a> <b>6</b> - <v>447</v> + <v>470</v> </b> <b> <a>6</a> <b>9</b> - <v>473</v> + <v>470</v> </b> <b> <a>9</a> <b>17</b> - <v>447</v> + <v>443</v> </b> <b> <a>17</a> - <b>55</b> - <v>408</v> + <b>47</b> + <v>417</v> </b> <b> - <a>55</a> - <b>162</b> - <v>408</v> + <a>51</a> + <b>153</b> + <v>417</v> </b> <b> - <a>171</a> - <b>382</b> - <v>408</v> + <a>153</a> + <b>387</b> + <v>417</v> </b> <b> - <a>396</a> - <b>729</b> - <v>408</v> + <a>390</a> + <b>717</b> + <v>417</v> </b> <b> - <a>767</a> - <b>1048</b> - <v>408</v> + <a>730</a> + <b>1059</b> + <v>417</v> </b> <b> - <a>1056</a> - <b>1390</b> - <v>329</v> + <a>1062</a> + <b>1404</b> + <v>363</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>endColumn</src> + <trg>beginColumn</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>928</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>390</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>497</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>363</v> + </b> + <b> + <a>5</a> + <b>7</b> + <v>363</v> + </b> + <b> + <a>7</a> + <b>14</b> + <v>443</v> + </b> + <b> + <a>15</a> + <b>33</b> + <v>470</v> + </b> + <b> + <a>33</a> + <b>49</b> + <v>417</v> + </b> + <b> + <a>49</a> + <b>64</b> + <v>430</v> + </b> + <b> + <a>65</a> + <b>81</b> + <v>417</v> + </b> + <b> + <a>81</a> + <b>96</b> + <v>457</v> + </b> + <b> + <a>97</a> + <b>109</b> + <v>228</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>endColumn</src> + <trg>endLine</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>591</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>659</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>336</v> + </b> + <b> + <a>4</a> + <b>6</b> + <v>457</v> + </b> + <b> + <a>6</a> + <b>9</b> + <v>470</v> + </b> + <b> + <a>9</a> + <b>16</b> + <v>417</v> + </b> + <b> + <a>16</a> + <b>43</b> + <v>430</v> + </b> + <b> + <a>45</a> + <b>151</b> + <v>430</v> + </b> + <b> + <a>161</a> + <b>379</b> + <v>417</v> + </b> + <b> + <a>384</a> + <b>712</b> + <v>417</v> + </b> + <b> + <a>729</a> + <b>1046</b> + <v>417</v> + </b> + <b> + <a>1049</a> + <b>1397</b> + <v>363</v> </b> </bs> </hist> @@ -4537,19 +4440,19 @@ </relation> <relation> <name>ruby_alias_def</name> - <cardinality>1307</cardinality> + <cardinality>1289</cardinality> <columnsizes> <e> <k>id</k> - <v>1307</v> + <v>1289</v> </e> <e> <k>alias</k> - <v>1307</v> + <v>1289</v> </e> <e> <k>name</k> - <v>1307</v> + <v>1289</v> </e> </columnsizes> <dependencies> @@ -4563,7 +4466,7 @@ <b> <a>1</a> <b>2</b> - <v>1307</v> + <v>1289</v> </b> </bs> </hist> @@ -4579,7 +4482,7 @@ <b> <a>1</a> <b>2</b> - <v>1307</v> + <v>1289</v> </b> </bs> </hist> @@ -4595,7 +4498,7 @@ <b> <a>1</a> <b>2</b> - <v>1307</v> + <v>1289</v> </b> </bs> </hist> @@ -4611,7 +4514,7 @@ <b> <a>1</a> <b>2</b> - <v>1307</v> + <v>1289</v> </b> </bs> </hist> @@ -4627,7 +4530,7 @@ <b> <a>1</a> <b>2</b> - <v>1307</v> + <v>1289</v> </b> </bs> </hist> @@ -4643,7 +4546,7 @@ <b> <a>1</a> <b>2</b> - <v>1307</v> + <v>1289</v> </b> </bs> </hist> @@ -4820,19 +4723,19 @@ </relation> <relation> <name>ruby_argument_list_child</name> - <cardinality>861033</cardinality> + <cardinality>879410</cardinality> <columnsizes> <e> <k>ruby_argument_list</k> - <v>691475</v> + <v>706205</v> </e> <e> <k>index</k> - <v>434</v> + <v>443</v> </e> <e> <k>child</k> - <v>861033</v> + <v>879410</v> </e> </columnsizes> <dependencies> @@ -4846,17 +4749,17 @@ <b> <a>1</a> <b>2</b> - <v>584369</v> + <v>596855</v> </b> <b> <a>2</a> <b>3</b> - <v>67125</v> + <v>68483</v> </b> <b> <a>3</a> <b>34</b> - <v>39980</v> + <v>40866</v> </b> </bs> </hist> @@ -4872,17 +4775,17 @@ <b> <a>1</a> <b>2</b> - <v>584369</v> + <v>596855</v> </b> <b> <a>2</a> <b>3</b> - <v>67125</v> + <v>68483</v> </b> <b> <a>3</a> <b>34</b> - <v>39980</v> + <v>40866</v> </b> </bs> </hist> @@ -4898,46 +4801,46 @@ <b> <a>1</a> <b>2</b> - <v>144</v> + <v>147</v> </b> <b> <a>2</a> <b>3</b> - <v>39</v> + <v>40</v> </b> <b> <a>3</a> <b>7</b> - <v>39</v> + <v>40</v> </b> <b> <a>7</a> <b>11</b> - <v>39</v> + <v>40</v> </b> <b> <a>11</a> <b>21</b> - <v>39</v> + <v>40</v> </b> <b> <a>23</a> <b>45</b> - <v>39</v> + <v>40</v> </b> <b> <a>56</a> - <b>386</b> - <v>39</v> + <b>385</b> + <v>40</v> </b> <b> - <a>960</a> - <b>8137</b> - <v>39</v> + <a>963</a> + <b>8130</b> + <v>40</v> </b> <b> - <a>52526</a> - <b>52527</b> + <a>52499</a> + <b>52500</b> <v>13</v> </b> </bs> @@ -4954,46 +4857,46 @@ <b> <a>1</a> <b>2</b> - <v>144</v> + <v>147</v> </b> <b> <a>2</a> <b>3</b> - <v>39</v> + <v>40</v> </b> <b> <a>3</a> <b>7</b> - <v>39</v> + <v>40</v> </b> <b> <a>7</a> <b>11</b> - <v>39</v> + <v>40</v> </b> <b> <a>11</a> <b>21</b> - <v>39</v> + <v>40</v> </b> <b> <a>23</a> <b>45</b> - <v>39</v> + <v>40</v> </b> <b> <a>56</a> - <b>386</b> - <v>39</v> + <b>385</b> + <v>40</v> </b> <b> - <a>960</a> - <b>8137</b> - <v>39</v> + <a>963</a> + <b>8130</b> + <v>40</v> </b> <b> - <a>52526</a> - <b>52527</b> + <a>52499</a> + <b>52500</b> <v>13</v> </b> </bs> @@ -5010,7 +4913,7 @@ <b> <a>1</a> <b>2</b> - <v>861033</v> + <v>879410</v> </b> </bs> </hist> @@ -5026,7 +4929,7 @@ <b> <a>1</a> <b>2</b> - <v>861033</v> + <v>879410</v> </b> </bs> </hist> @@ -5036,22 +4939,22 @@ </relation> <relation> <name>ruby_argument_list_def</name> - <cardinality>691738</cardinality> + <cardinality>706474</cardinality> <columnsizes> <e> <k>id</k> - <v>691738</v> + <v>706474</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_array_child</name> - <cardinality>704712</cardinality> + <cardinality>708919</cardinality> <columnsizes> <e> <k>ruby_array</k> - <v>239714</v> + <v>240456</v> </e> <e> <k>index</k> @@ -5059,7 +4962,7 @@ </e> <e> <k>child</k> - <v>704712</v> + <v>708919</v> </e> </columnsizes> <dependencies> @@ -5073,17 +4976,17 @@ <b> <a>1</a> <b>2</b> - <v>12460</v> + <v>12708</v> </b> <b> <a>2</a> <b>3</b> - <v>213368</v> + <v>213730</v> </b> <b> <a>3</a> <b>63361</b> - <v>13886</v> + <v>14018</v> </b> </bs> </hist> @@ -5099,17 +5002,17 @@ <b> <a>1</a> <b>2</b> - <v>12460</v> + <v>12708</v> </b> <b> <a>2</a> <b>3</b> - <v>213368</v> + <v>213730</v> </b> <b> <a>3</a> <b>63361</b> - <v>13886</v> + <v>14018</v> </b> </bs> </hist> @@ -5149,7 +5052,7 @@ </b> <b> <a>11</a> - <b>239715</b> + <b>240457</b> <v>1294</v> </b> </bs> @@ -5190,7 +5093,7 @@ </b> <b> <a>11</a> - <b>239715</b> + <b>240457</b> <v>1294</v> </b> </bs> @@ -5207,7 +5110,7 @@ <b> <a>1</a> <b>2</b> - <v>704712</v> + <v>708919</v> </b> </bs> </hist> @@ -5223,7 +5126,7 @@ <b> <a>1</a> <b>2</b> - <v>704712</v> + <v>708919</v> </b> </bs> </hist> @@ -5233,22 +5136,22 @@ </relation> <relation> <name>ruby_array_def</name> - <cardinality>248289</cardinality> + <cardinality>249320</cardinality> <columnsizes> <e> <k>id</k> - <v>248289</v> + <v>249320</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_array_pattern_child</name> - <cardinality>334</cardinality> + <cardinality>336</cardinality> <columnsizes> <e> <k>ruby_array_pattern</k> - <v>167</v> + <v>168</v> </e> <e> <k>index</k> @@ -5256,7 +5159,7 @@ </e> <e> <k>child</k> - <v>334</v> + <v>336</v> </e> </columnsizes> <dependencies> @@ -5275,7 +5178,7 @@ <b> <a>2</a> <b>3</b> - <v>96</v> + <v>97</v> </b> <b> <a>3</a> @@ -5306,7 +5209,7 @@ <b> <a>2</a> <b>3</b> - <v>96</v> + <v>97</v> </b> <b> <a>3</a> @@ -5355,13 +5258,13 @@ <v>1</v> </b> <b> - <a>116</a> - <b>117</b> + <a>117</a> + <b>118</b> <v>1</v> </b> <b> - <a>167</a> - <b>168</b> + <a>168</a> + <b>169</b> <v>1</v> </b> </bs> @@ -5401,13 +5304,13 @@ <v>1</v> </b> <b> - <a>116</a> - <b>117</b> + <a>117</a> + <b>118</b> <v>1</v> </b> <b> - <a>167</a> - <b>168</b> + <a>168</a> + <b>169</b> <v>1</v> </b> </bs> @@ -5424,7 +5327,7 @@ <b> <a>1</a> <b>2</b> - <v>334</v> + <v>336</v> </b> </bs> </hist> @@ -5440,7 +5343,7 @@ <b> <a>1</a> <b>2</b> - <v>334</v> + <v>336</v> </b> </bs> </hist> @@ -5450,15 +5353,15 @@ </relation> <relation> <name>ruby_array_pattern_class</name> - <cardinality>50</cardinality> + <cardinality>51</cardinality> <columnsizes> <e> <k>ruby_array_pattern</k> - <v>50</v> + <v>51</v> </e> <e> <k>class</k> - <v>50</v> + <v>51</v> </e> </columnsizes> <dependencies> @@ -5472,7 +5375,7 @@ <b> <a>1</a> <b>2</b> - <v>50</v> + <v>51</v> </b> </bs> </hist> @@ -5488,7 +5391,7 @@ <b> <a>1</a> <b>2</b> - <v>50</v> + <v>51</v> </b> </bs> </hist> @@ -5498,30 +5401,30 @@ </relation> <relation> <name>ruby_array_pattern_def</name> - <cardinality>178</cardinality> + <cardinality>179</cardinality> <columnsizes> <e> <k>id</k> - <v>178</v> + <v>179</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_as_pattern_def</name> - <cardinality>153</cardinality> + <cardinality>156</cardinality> <columnsizes> <e> <k>id</k> - <v>153</v> + <v>156</v> </e> <e> <k>name</k> - <v>153</v> + <v>156</v> </e> <e> <k>value</k> - <v>153</v> + <v>156</v> </e> </columnsizes> <dependencies> @@ -5535,7 +5438,7 @@ <b> <a>1</a> <b>2</b> - <v>153</v> + <v>156</v> </b> </bs> </hist> @@ -5551,7 +5454,7 @@ <b> <a>1</a> <b>2</b> - <v>153</v> + <v>156</v> </b> </bs> </hist> @@ -5567,7 +5470,7 @@ <b> <a>1</a> <b>2</b> - <v>153</v> + <v>156</v> </b> </bs> </hist> @@ -5583,7 +5486,7 @@ <b> <a>1</a> <b>2</b> - <v>153</v> + <v>156</v> </b> </bs> </hist> @@ -5599,7 +5502,7 @@ <b> <a>1</a> <b>2</b> - <v>153</v> + <v>156</v> </b> </bs> </hist> @@ -5615,7 +5518,7 @@ <b> <a>1</a> <b>2</b> - <v>153</v> + <v>156</v> </b> </bs> </hist> @@ -5625,19 +5528,19 @@ </relation> <relation> <name>ruby_assignment_def</name> - <cardinality>137583</cardinality> + <cardinality>141202</cardinality> <columnsizes> <e> <k>id</k> - <v>137583</v> + <v>141202</v> </e> <e> <k>left</k> - <v>137583</v> + <v>141202</v> </e> <e> <k>right</k> - <v>137583</v> + <v>141202</v> </e> </columnsizes> <dependencies> @@ -5651,7 +5554,7 @@ <b> <a>1</a> <b>2</b> - <v>137583</v> + <v>141202</v> </b> </bs> </hist> @@ -5667,7 +5570,7 @@ <b> <a>1</a> <b>2</b> - <v>137583</v> + <v>141202</v> </b> </bs> </hist> @@ -5683,7 +5586,7 @@ <b> <a>1</a> <b>2</b> - <v>137583</v> + <v>141202</v> </b> </bs> </hist> @@ -5699,7 +5602,7 @@ <b> <a>1</a> <b>2</b> - <v>137583</v> + <v>141202</v> </b> </bs> </hist> @@ -5715,7 +5618,7 @@ <b> <a>1</a> <b>2</b> - <v>137583</v> + <v>141202</v> </b> </bs> </hist> @@ -5731,7 +5634,7 @@ <b> <a>1</a> <b>2</b> - <v>137583</v> + <v>141202</v> </b> </bs> </hist> @@ -5740,24 +5643,73 @@ </dependencies> </relation> <relation> - <name>ruby_ast_node_info</name> - <cardinality>9511543</cardinality> + <name>ruby_ast_node_location</name> + <cardinality>9723503</cardinality> <columnsizes> <e> <k>node</k> - <v>9511543</v> - </e> - <e> - <k>parent</k> - <v>3325876</v> - </e> - <e> - <k>parent_index</k> - <v>2830</v> + <v>9723503</v> </e> <e> <k>loc</k> - <v>9008872</v> + <v>9209550</v> + </e> + </columnsizes> + <dependencies> + <dep> + <src>node</src> + <trg>loc</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>9723503</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>loc</src> + <trg>node</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>8697279</v> + </b> + <b> + <a>2</a> + <b>4</b> + <v>512270</v> + </b> + </bs> + </hist> + </val> + </dep> + </dependencies> + </relation> + <relation> + <name>ruby_ast_node_parent</name> + <cardinality>9674605</cardinality> + <columnsizes> + <e> + <k>node</k> + <v>9674605</v> + </e> + <e> + <k>parent</k> + <v>3381025</v> + </e> + <e> + <k>parent_index</k> + <v>2892</v> </e> </columnsizes> <dependencies> @@ -5771,7 +5723,7 @@ <b> <a>1</a> <b>2</b> - <v>9511543</v> + <v>9674605</v> </b> </bs> </hist> @@ -5787,23 +5739,7 @@ <b> <a>1</a> <b>2</b> - <v>9511543</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>node</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>9511543</v> + <v>9674605</v> </b> </bs> </hist> @@ -5819,27 +5755,27 @@ <b> <a>1</a> <b>2</b> - <v>535595</v> + <v>533793</v> </b> <b> <a>2</a> <b>3</b> - <v>457056</v> + <v>465418</v> </b> <b> <a>3</a> <b>4</b> - <v>1793325</v> + <v>1832321</v> </b> <b> <a>4</a> <b>5</b> - <v>352556</v> + <v>359620</v> </b> <b> <a>5</a> <b>216</b> - <v>187343</v> + <v>189871</v> </b> </bs> </hist> @@ -5855,63 +5791,27 @@ <b> <a>1</a> <b>2</b> - <v>535595</v> + <v>533793</v> </b> <b> <a>2</a> <b>3</b> - <v>457056</v> + <v>465418</v> </b> <b> <a>3</a> <b>4</b> - <v>1793325</v> + <v>1832321</v> </b> <b> <a>4</a> <b>5</b> - <v>352556</v> + <v>359620</v> </b> <b> <a>5</a> <b>216</b> - <v>187343</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>535595</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>457056</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>1793325</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>352556</v> - </b> - <b> - <a>5</a> - <b>216</b> - <v>187343</v> + <v>189871</v> </b> </bs> </hist> @@ -5927,57 +5827,52 @@ <b> <a>1</a> <b>2</b> - <v>460</v> + <v>470</v> </b> <b> <a>2</a> <b>3</b> - <v>236</v> + <v>242</v> </b> <b> <a>3</a> <b>4</b> - <v>355</v> + <v>363</v> </b> <b> <a>4</a> <b>6</b> - <v>157</v> + <v>161</v> </b> <b> <a>6</a> <b>7</b> - <v>315</v> + <v>484</v> </b> <b> <a>7</a> - <b>11</b> - <v>250</v> + <b>17</b> + <v>255</v> </b> <b> - <a>11</a> - <b>21</b> - <v>197</v> + <a>17</a> + <b>29</b> + <v>228</v> </b> <b> - <a>21</a> - <b>42</b> - <v>223</v> + <a>33</a> + <b>71</b> + <v>228</v> </b> <b> - <a>43</a> - <b>94</b> - <v>223</v> + <a>72</a> + <b>298</b> + <v>228</v> </b> <b> - <a>98</a> - <b>498</b> - <v>223</v> - </b> - <b> - <a>533</a> - <b>252642</b> - <v>184</v> + <a>358</a> + <b>251345</b> + <v>228</v> </b> </bs> </hist> @@ -5993,186 +5888,52 @@ <b> <a>1</a> <b>2</b> - <v>460</v> + <v>470</v> </b> <b> <a>2</a> <b>3</b> - <v>236</v> + <v>242</v> </b> <b> <a>3</a> <b>4</b> - <v>355</v> + <v>363</v> </b> <b> <a>4</a> <b>6</b> - <v>157</v> + <v>161</v> </b> <b> <a>6</a> <b>7</b> - <v>315</v> + <v>484</v> </b> <b> <a>7</a> - <b>11</b> - <v>250</v> + <b>17</b> + <v>255</v> </b> <b> - <a>11</a> - <b>21</b> - <v>197</v> + <a>17</a> + <b>29</b> + <v>228</v> </b> <b> - <a>21</a> - <b>42</b> - <v>223</v> + <a>33</a> + <b>71</b> + <v>228</v> </b> <b> - <a>43</a> - <b>94</b> - <v>223</v> + <a>72</a> + <b>298</b> + <v>228</v> </b> <b> - <a>98</a> - <b>498</b> - <v>223</v> - </b> - <b> - <a>533</a> - <b>252642</b> - <v>184</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent_index</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>460</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>236</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>355</v> - </b> - <b> - <a>4</a> - <b>6</b> - <v>157</v> - </b> - <b> - <a>6</a> - <b>7</b> - <v>315</v> - </b> - <b> - <a>7</a> - <b>11</b> - <v>250</v> - </b> - <b> - <a>11</a> - <b>21</b> - <v>197</v> - </b> - <b> - <a>21</a> - <b>42</b> - <v>223</v> - </b> - <b> - <a>43</a> - <b>94</b> - <v>223</v> - </b> - <b> - <a>98</a> - <b>498</b> - <v>223</v> - </b> - <b> - <a>533</a> - <b>252273</b> - <v>184</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>node</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>8507847</v> - </b> - <b> - <a>2</a> - <b>4</b> - <v>501025</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>8507847</v> - </b> - <b> - <a>2</a> - <b>4</b> - <v>501025</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent_index</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>8511059</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>497813</v> + <a>358</a> + <b>251345</b> + <v>228</v> </b> </bs> </hist> @@ -6182,11 +5943,11 @@ </relation> <relation> <name>ruby_bare_string_child</name> - <cardinality>16385</cardinality> + <cardinality>16784</cardinality> <columnsizes> <e> <k>ruby_bare_string</k> - <v>12799</v> + <v>13136</v> </e> <e> <k>index</k> @@ -6194,7 +5955,7 @@ </e> <e> <k>child</k> - <v>16385</v> + <v>16784</v> </e> </columnsizes> <dependencies> @@ -6208,12 +5969,12 @@ <b> <a>1</a> <b>2</b> - <v>12434</v> + <v>12728</v> </b> <b> <a>2</a> <b>2310</b> - <v>365</v> + <v>408</v> </b> </bs> </hist> @@ -6229,12 +5990,12 @@ <b> <a>1</a> <b>2</b> - <v>12434</v> + <v>12728</v> </b> <b> <a>2</a> <b>2310</b> - <v>365</v> + <v>408</v> </b> </bs> </hist> @@ -6264,7 +6025,7 @@ </b> <b> <a>4</a> - <b>12800</b> + <b>13137</b> <v>19</v> </b> </bs> @@ -6295,7 +6056,7 @@ </b> <b> <a>4</a> - <b>12800</b> + <b>13137</b> <v>19</v> </b> </bs> @@ -6312,7 +6073,7 @@ <b> <a>1</a> <b>2</b> - <v>16385</v> + <v>16784</v> </b> </bs> </hist> @@ -6328,7 +6089,7 @@ <b> <a>1</a> <b>2</b> - <v>16385</v> + <v>16784</v> </b> </bs> </hist> @@ -6338,22 +6099,22 @@ </relation> <relation> <name>ruby_bare_string_def</name> - <cardinality>12799</cardinality> + <cardinality>13136</cardinality> <columnsizes> <e> <k>id</k> - <v>12799</v> + <v>13136</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_bare_symbol_child</name> - <cardinality>7967</cardinality> + <cardinality>8435</cardinality> <columnsizes> <e> <k>ruby_bare_symbol</k> - <v>7967</v> + <v>8435</v> </e> <e> <k>index</k> @@ -6361,7 +6122,7 @@ </e> <e> <k>child</k> - <v>7967</v> + <v>8435</v> </e> </columnsizes> <dependencies> @@ -6375,7 +6136,7 @@ <b> <a>1</a> <b>2</b> - <v>7967</v> + <v>8435</v> </b> </bs> </hist> @@ -6391,7 +6152,7 @@ <b> <a>1</a> <b>2</b> - <v>7967</v> + <v>8435</v> </b> </bs> </hist> @@ -6405,8 +6166,8 @@ <budget>12</budget> <bs> <b> - <a>3128</a> - <b>3129</b> + <a>3570</a> + <b>3571</b> <v>2</v> </b> </bs> @@ -6421,8 +6182,8 @@ <budget>12</budget> <bs> <b> - <a>3128</a> - <b>3129</b> + <a>3570</a> + <b>3571</b> <v>2</v> </b> </bs> @@ -6439,7 +6200,7 @@ <b> <a>1</a> <b>2</b> - <v>7967</v> + <v>8435</v> </b> </bs> </hist> @@ -6455,7 +6216,7 @@ <b> <a>1</a> <b>2</b> - <v>7967</v> + <v>8435</v> </b> </bs> </hist> @@ -6465,18 +6226,18 @@ </relation> <relation> <name>ruby_bare_symbol_def</name> - <cardinality>7967</cardinality> + <cardinality>8435</cardinality> <columnsizes> <e> <k>id</k> - <v>7967</v> + <v>8435</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_begin_block_child</name> - <cardinality>33</cardinality> + <cardinality>39</cardinality> <columnsizes> <e> <k>ruby_begin_block</k> @@ -6488,7 +6249,7 @@ </e> <e> <k>child</k> - <v>33</v> + <v>39</v> </e> </columnsizes> <dependencies> @@ -6502,7 +6263,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>3</v> </b> <b> <a>2</a> @@ -6512,17 +6273,12 @@ <b> <a>3</a> <b>4</b> - <v>1</v> - </b> - <b> - <a>5</a> - <b>6</b> <v>2</v> </b> <b> <a>7</a> <b>8</b> - <v>2</v> + <v>4</v> </b> </bs> </hist> @@ -6538,7 +6294,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>3</v> </b> <b> <a>2</a> @@ -6548,17 +6304,12 @@ <b> <a>3</a> <b>4</b> - <v>1</v> - </b> - <b> - <a>5</a> - <b>6</b> <v>2</v> </b> <b> <a>7</a> <b>8</b> - <v>2</v> + <v>4</v> </b> </bs> </hist> @@ -6571,26 +6322,21 @@ <hist> <budget>12</budget> <bs> - <b> - <a>2</a> - <b>3</b> - <v>2</v> - </b> <b> <a>4</a> <b>5</b> - <v>2</v> - </b> - <b> - <a>5</a> - <b>6</b> - <v>1</v> + <v>4</v> </b> <b> <a>6</a> <b>7</b> <v>1</v> </b> + <b> + <a>7</a> + <b>8</b> + <v>1</v> + </b> <b> <a>10</a> <b>11</b> @@ -6607,26 +6353,21 @@ <hist> <budget>12</budget> <bs> - <b> - <a>2</a> - <b>3</b> - <v>2</v> - </b> <b> <a>4</a> <b>5</b> - <v>2</v> - </b> - <b> - <a>5</a> - <b>6</b> - <v>1</v> + <v>4</v> </b> <b> <a>6</a> <b>7</b> <v>1</v> </b> + <b> + <a>7</a> + <b>8</b> + <v>1</v> + </b> <b> <a>10</a> <b>11</b> @@ -6646,7 +6387,7 @@ <b> <a>1</a> <b>2</b> - <v>33</v> + <v>39</v> </b> </bs> </hist> @@ -6662,7 +6403,7 @@ <b> <a>1</a> <b>2</b> - <v>33</v> + <v>39</v> </b> </bs> </hist> @@ -6683,11 +6424,11 @@ </relation> <relation> <name>ruby_begin_child</name> - <cardinality>7613</cardinality> + <cardinality>7606</cardinality> <columnsizes> <e> <k>ruby_begin</k> - <v>2590</v> + <v>2610</v> </e> <e> <k>index</k> @@ -6695,7 +6436,7 @@ </e> <e> <k>child</k> - <v>7613</v> + <v>7606</v> </e> </columnsizes> <dependencies> @@ -6709,32 +6450,32 @@ <b> <a>1</a> <b>2</b> - <v>163</v> + <v>161</v> </b> <b> <a>2</a> <b>3</b> - <v>1398</v> + <v>1414</v> </b> <b> <a>3</a> <b>4</b> - <v>512</v> + <v>537</v> </b> <b> <a>4</a> <b>5</b> - <v>211</v> + <v>200</v> </b> <b> <a>5</a> <b>8</b> - <v>226</v> + <v>221</v> </b> <b> <a>8</a> <b>40</b> - <v>80</v> + <v>77</v> </b> </bs> </hist> @@ -6750,32 +6491,32 @@ <b> <a>1</a> <b>2</b> - <v>163</v> + <v>161</v> </b> <b> <a>2</a> <b>3</b> - <v>1398</v> + <v>1414</v> </b> <b> <a>3</a> <b>4</b> - <v>512</v> + <v>537</v> </b> <b> <a>4</a> <b>5</b> - <v>211</v> + <v>200</v> </b> <b> <a>5</a> <b>8</b> - <v>226</v> + <v>221</v> </b> <b> <a>8</a> <b>40</b> - <v>80</v> + <v>77</v> </b> </bs> </hist> @@ -6824,23 +6565,23 @@ <v>3</v> </b> <b> - <a>39</a> - <b>62</b> + <a>37</a> + <b>59</b> <v>3</v> </b> <b> - <a>80</a> - <b>175</b> + <a>77</a> + <b>166</b> <v>3</v> </b> <b> - <a>306</a> - <b>1030</b> + <a>298</a> + <b>1036</b> <v>3</v> </b> <b> - <a>2427</a> - <b>2591</b> + <a>2449</a> + <b>2611</b> <v>2</v> </b> </bs> @@ -6890,23 +6631,23 @@ <v>3</v> </b> <b> - <a>39</a> - <b>62</b> + <a>37</a> + <b>59</b> <v>3</v> </b> <b> - <a>80</a> - <b>175</b> + <a>77</a> + <b>166</b> <v>3</v> </b> <b> - <a>306</a> - <b>1030</b> + <a>298</a> + <b>1036</b> <v>3</v> </b> <b> - <a>2427</a> - <b>2591</b> + <a>2449</a> + <b>2611</b> <v>2</v> </b> </bs> @@ -6923,7 +6664,7 @@ <b> <a>1</a> <b>2</b> - <v>7613</v> + <v>7606</v> </b> </bs> </hist> @@ -6939,7 +6680,7 @@ <b> <a>1</a> <b>2</b> - <v>7613</v> + <v>7606</v> </b> </bs> </hist> @@ -6949,26 +6690,26 @@ </relation> <relation> <name>ruby_begin_def</name> - <cardinality>2590</cardinality> + <cardinality>2610</cardinality> <columnsizes> <e> <k>id</k> - <v>2590</v> + <v>2610</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_binary_def</name> - <cardinality>71864</cardinality> + <cardinality>73665</cardinality> <columnsizes> <e> <k>id</k> - <v>71864</v> + <v>73665</v> </e> <e> <k>left</k> - <v>71864</v> + <v>73665</v> </e> <e> <k>operator</k> @@ -6976,7 +6717,7 @@ </e> <e> <k>right</k> - <v>71864</v> + <v>73665</v> </e> </columnsizes> <dependencies> @@ -6990,7 +6731,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7006,7 +6747,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7022,7 +6763,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7038,7 +6779,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7054,7 +6795,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7070,7 +6811,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7084,68 +6825,68 @@ <budget>12</budget> <bs> <b> - <a>160</a> - <b>169</b> + <a>153</a> + <b>177</b> <v>2</v> </b> <b> - <a>234</a> - <b>408</b> + <a>259</a> + <b>432</b> <v>2</v> </b> <b> - <a>570</a> - <b>596</b> + <a>597</a> + <b>631</b> <v>2</v> </b> <b> - <a>635</a> - <b>657</b> + <a>647</a> + <b>690</b> <v>2</v> </b> <b> - <a>778</a> - <b>974</b> + <a>764</a> + <b>987</b> <v>2</v> </b> <b> - <a>979</a> - <b>1001</b> + <a>1026</a> + <b>1033</b> <v>2</v> </b> <b> - <a>1014</a> - <b>1071</b> + <a>1058</a> + <b>1073</b> <v>2</v> </b> <b> - <a>1233</a> - <b>1270</b> + <a>1169</a> + <b>1190</b> <v>2</v> </b> <b> - <a>1358</a> - <b>1801</b> + <a>1227</a> + <b>1824</b> <v>2</v> </b> <b> - <a>1837</a> - <b>2322</b> + <a>2079</a> + <b>2661</b> <v>2</v> </b> <b> - <a>2691</a> - <b>3561</b> + <a>2747</a> + <b>3491</b> <v>2</v> </b> <b> - <a>6453</a> - <b>7170</b> + <a>6593</a> + <b>7408</b> <v>2</v> </b> <b> - <a>32934</a> - <b>32935</b> + <a>33761</a> + <b>33762</b> <v>1</v> </b> </bs> @@ -7160,68 +6901,68 @@ <budget>12</budget> <bs> <b> - <a>160</a> - <b>169</b> + <a>153</a> + <b>177</b> <v>2</v> </b> <b> - <a>234</a> - <b>408</b> + <a>259</a> + <b>432</b> <v>2</v> </b> <b> - <a>570</a> - <b>596</b> + <a>597</a> + <b>631</b> <v>2</v> </b> <b> - <a>635</a> - <b>657</b> + <a>647</a> + <b>690</b> <v>2</v> </b> <b> - <a>778</a> - <b>974</b> + <a>764</a> + <b>987</b> <v>2</v> </b> <b> - <a>979</a> - <b>1001</b> + <a>1026</a> + <b>1033</b> <v>2</v> </b> <b> - <a>1014</a> - <b>1071</b> + <a>1058</a> + <b>1073</b> <v>2</v> </b> <b> - <a>1233</a> - <b>1270</b> + <a>1169</a> + <b>1190</b> <v>2</v> </b> <b> - <a>1358</a> - <b>1801</b> + <a>1227</a> + <b>1824</b> <v>2</v> </b> <b> - <a>1837</a> - <b>2322</b> + <a>2079</a> + <b>2661</b> <v>2</v> </b> <b> - <a>2691</a> - <b>3561</b> + <a>2747</a> + <b>3491</b> <v>2</v> </b> <b> - <a>6453</a> - <b>7170</b> + <a>6593</a> + <b>7408</b> <v>2</v> </b> <b> - <a>32934</a> - <b>32935</b> + <a>33761</a> + <b>33762</b> <v>1</v> </b> </bs> @@ -7236,68 +6977,68 @@ <budget>12</budget> <bs> <b> - <a>160</a> - <b>169</b> + <a>153</a> + <b>177</b> <v>2</v> </b> <b> - <a>234</a> - <b>408</b> + <a>259</a> + <b>432</b> <v>2</v> </b> <b> - <a>570</a> - <b>596</b> + <a>597</a> + <b>631</b> <v>2</v> </b> <b> - <a>635</a> - <b>657</b> + <a>647</a> + <b>690</b> <v>2</v> </b> <b> - <a>778</a> - <b>974</b> + <a>764</a> + <b>987</b> <v>2</v> </b> <b> - <a>979</a> - <b>1001</b> + <a>1026</a> + <b>1033</b> <v>2</v> </b> <b> - <a>1014</a> - <b>1071</b> + <a>1058</a> + <b>1073</b> <v>2</v> </b> <b> - <a>1233</a> - <b>1270</b> + <a>1169</a> + <b>1190</b> <v>2</v> </b> <b> - <a>1358</a> - <b>1801</b> + <a>1227</a> + <b>1824</b> <v>2</v> </b> <b> - <a>1837</a> - <b>2322</b> + <a>2079</a> + <b>2661</b> <v>2</v> </b> <b> - <a>2691</a> - <b>3561</b> + <a>2747</a> + <b>3491</b> <v>2</v> </b> <b> - <a>6453</a> - <b>7170</b> + <a>6593</a> + <b>7408</b> <v>2</v> </b> <b> - <a>32934</a> - <b>32935</b> + <a>33761</a> + <b>33762</b> <v>1</v> </b> </bs> @@ -7314,7 +7055,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7330,7 +7071,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7346,7 +7087,7 @@ <b> <a>1</a> <b>2</b> - <v>71864</v> + <v>73665</v> </b> </bs> </hist> @@ -7356,15 +7097,15 @@ </relation> <relation> <name>ruby_block_argument_child</name> - <cardinality>6477</cardinality> + <cardinality>6541</cardinality> <columnsizes> <e> <k>ruby_block_argument</k> - <v>6477</v> + <v>6541</v> </e> <e> <k>child</k> - <v>6477</v> + <v>6541</v> </e> </columnsizes> <dependencies> @@ -7378,7 +7119,7 @@ <b> <a>1</a> <b>2</b> - <v>6477</v> + <v>6541</v> </b> </bs> </hist> @@ -7394,7 +7135,7 @@ <b> <a>1</a> <b>2</b> - <v>6477</v> + <v>6541</v> </b> </bs> </hist> @@ -7404,26 +7145,26 @@ </relation> <relation> <name>ruby_block_argument_def</name> - <cardinality>6477</cardinality> + <cardinality>6547</cardinality> <columnsizes> <e> <k>id</k> - <v>6477</v> + <v>6547</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_block_body</name> - <cardinality>101379</cardinality> + <cardinality>103820</cardinality> <columnsizes> <e> <k>ruby_block</k> - <v>101379</v> + <v>103820</v> </e> <e> <k>body</k> - <v>101379</v> + <v>103820</v> </e> </columnsizes> <dependencies> @@ -7437,7 +7178,7 @@ <b> <a>1</a> <b>2</b> - <v>101379</v> + <v>103820</v> </b> </bs> </hist> @@ -7453,7 +7194,7 @@ <b> <a>1</a> <b>2</b> - <v>101379</v> + <v>103820</v> </b> </bs> </hist> @@ -7463,19 +7204,19 @@ </relation> <relation> <name>ruby_block_body_child</name> - <cardinality>101550</cardinality> + <cardinality>103995</cardinality> <columnsizes> <e> <k>ruby_block_body</k> - <v>101379</v> + <v>103820</v> </e> <e> <k>index</k> - <v>52</v> + <v>53</v> </e> <e> <k>child</k> - <v>101550</v> + <v>103995</v> </e> </columnsizes> <dependencies> @@ -7489,12 +7230,12 @@ <b> <a>1</a> <b>2</b> - <v>101260</v> + <v>103699</v> </b> <b> <a>2</a> <b>5</b> - <v>118</v> + <v>121</v> </b> </bs> </hist> @@ -7510,12 +7251,12 @@ <b> <a>1</a> <b>2</b> - <v>101260</v> + <v>103699</v> </b> <b> <a>2</a> <b>5</b> - <v>118</v> + <v>121</v> </b> </bs> </hist> @@ -7539,8 +7280,8 @@ <v>13</v> </b> <b> - <a>7701</a> - <b>7702</b> + <a>7718</a> + <b>7719</b> <v>13</v> </b> </bs> @@ -7565,8 +7306,8 @@ <v>13</v> </b> <b> - <a>7701</a> - <b>7702</b> + <a>7718</a> + <b>7719</b> <v>13</v> </b> </bs> @@ -7583,7 +7324,7 @@ <b> <a>1</a> <b>2</b> - <v>101550</v> + <v>103995</v> </b> </bs> </hist> @@ -7599,7 +7340,7 @@ <b> <a>1</a> <b>2</b> - <v>101550</v> + <v>103995</v> </b> </bs> </hist> @@ -7609,48 +7350,48 @@ </relation> <relation> <name>ruby_block_body_def</name> - <cardinality>101379</cardinality> + <cardinality>103820</cardinality> <columnsizes> <e> <k>id</k> - <v>101379</v> + <v>103820</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_block_def</name> - <cardinality>101695</cardinality> + <cardinality>104143</cardinality> <columnsizes> <e> <k>id</k> - <v>101695</v> + <v>104143</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_block_parameter_def</name> - <cardinality>2569</cardinality> + <cardinality>2543</cardinality> <columnsizes> <e> <k>id</k> - <v>2569</v> + <v>2543</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_block_parameter_name</name> - <cardinality>2569</cardinality> + <cardinality>2537</cardinality> <columnsizes> <e> <k>ruby_block_parameter</k> - <v>2569</v> + <v>2537</v> </e> <e> <k>name</k> - <v>2569</v> + <v>2537</v> </e> </columnsizes> <dependencies> @@ -7664,7 +7405,7 @@ <b> <a>1</a> <b>2</b> - <v>2569</v> + <v>2537</v> </b> </bs> </hist> @@ -7680,7 +7421,7 @@ <b> <a>1</a> <b>2</b> - <v>2569</v> + <v>2537</v> </b> </bs> </hist> @@ -7690,15 +7431,15 @@ </relation> <relation> <name>ruby_block_parameters</name> - <cardinality>10585</cardinality> + <cardinality>10767</cardinality> <columnsizes> <e> <k>ruby_block</k> - <v>10585</v> + <v>10767</v> </e> <e> <k>parameters</k> - <v>10585</v> + <v>10767</v> </e> </columnsizes> <dependencies> @@ -7712,7 +7453,7 @@ <b> <a>1</a> <b>2</b> - <v>10585</v> + <v>10767</v> </b> </bs> </hist> @@ -7728,7 +7469,7 @@ <b> <a>1</a> <b>2</b> - <v>10585</v> + <v>10767</v> </b> </bs> </hist> @@ -7738,19 +7479,19 @@ </relation> <relation> <name>ruby_block_parameters_child</name> - <cardinality>28929</cardinality> + <cardinality>30131</cardinality> <columnsizes> <e> <k>ruby_block_parameters</k> - <v>24941</v> + <v>25884</v> </e> <e> <k>index</k> - <v>15</v> + <v>14</v> </e> <e> <k>child</k> - <v>28929</v> + <v>30131</v> </e> </columnsizes> <dependencies> @@ -7764,17 +7505,17 @@ <b> <a>1</a> <b>2</b> - <v>21362</v> + <v>22189</v> </b> <b> <a>2</a> <b>3</b> - <v>3263</v> + <v>3329</v> </b> <b> <a>3</a> <b>6</b> - <v>316</v> + <v>365</v> </b> </bs> </hist> @@ -7790,17 +7531,17 @@ <b> <a>1</a> <b>2</b> - <v>21362</v> + <v>22189</v> </b> <b> <a>2</a> <b>3</b> - <v>3263</v> + <v>3329</v> </b> <b> <a>3</a> <b>6</b> - <v>316</v> + <v>365</v> </b> </bs> </hist> @@ -7814,29 +7555,29 @@ <budget>12</budget> <bs> <b> - <a>11</a> - <b>12</b> - <v>3</v> + <a>27</a> + <b>28</b> + <v>2</v> </b> <b> - <a>19</a> - <b>20</b> - <v>3</v> + <a>35</a> + <b>36</b> + <v>2</v> </b> <b> - <a>103</a> - <b>104</b> - <v>3</v> + <a>122</a> + <b>123</b> + <v>2</v> </b> <b> - <a>1166</a> - <b>1167</b> - <v>3</v> + <a>1232</a> + <b>1233</b> + <v>2</v> </b> <b> - <a>8125</a> - <b>8126</b> - <v>3</v> + <a>8630</a> + <b>8631</b> + <v>2</v> </b> </bs> </hist> @@ -7850,29 +7591,29 @@ <budget>12</budget> <bs> <b> - <a>11</a> - <b>12</b> - <v>3</v> + <a>27</a> + <b>28</b> + <v>2</v> </b> <b> - <a>19</a> - <b>20</b> - <v>3</v> + <a>35</a> + <b>36</b> + <v>2</v> </b> <b> - <a>103</a> - <b>104</b> - <v>3</v> + <a>122</a> + <b>123</b> + <v>2</v> </b> <b> - <a>1166</a> - <b>1167</b> - <v>3</v> + <a>1232</a> + <b>1233</b> + <v>2</v> </b> <b> - <a>8125</a> - <b>8126</b> - <v>3</v> + <a>8630</a> + <b>8631</b> + <v>2</v> </b> </bs> </hist> @@ -7888,7 +7629,7 @@ <b> <a>1</a> <b>2</b> - <v>28929</v> + <v>30131</v> </b> </bs> </hist> @@ -7904,7 +7645,7 @@ <b> <a>1</a> <b>2</b> - <v>28929</v> + <v>30131</v> </b> </bs> </hist> @@ -7914,11 +7655,11 @@ </relation> <relation> <name>ruby_block_parameters_def</name> - <cardinality>24941</cardinality> + <cardinality>25884</cardinality> <columnsizes> <e> <k>id</k> - <v>24941</v> + <v>25884</v> </e> </columnsizes> <dependencies/> @@ -8061,19 +7802,19 @@ </relation> <relation> <name>ruby_body_statement_child</name> - <cardinality>627527</cardinality> + <cardinality>641142</cardinality> <columnsizes> <e> <k>ruby_body_statement</k> - <v>202481</v> + <v>206879</v> </e> <e> <k>index</k> - <v>1135</v> + <v>1187</v> </e> <e> <k>child</k> - <v>627527</v> + <v>641142</v> </e> </columnsizes> <dependencies> @@ -8087,37 +7828,37 @@ <b> <a>1</a> <b>2</b> - <v>93050</v> + <v>95107</v> </b> <b> <a>2</a> <b>3</b> - <v>37058</v> + <v>37693</v> </b> <b> <a>3</a> <b>4</b> - <v>24051</v> + <v>24510</v> </b> <b> <a>4</a> <b>5</b> - <v>15391</v> + <v>15881</v> </b> <b> <a>5</a> <b>7</b> - <v>15925</v> + <v>16388</v> </b> <b> <a>7</a> <b>23</b> - <v>15269</v> + <v>15560</v> </b> <b> <a>23</a> - <b>371</b> - <v>1734</v> + <b>397</b> + <v>1736</v> </b> </bs> </hist> @@ -8133,37 +7874,37 @@ <b> <a>1</a> <b>2</b> - <v>93050</v> + <v>95107</v> </b> <b> <a>2</a> <b>3</b> - <v>37058</v> + <v>37693</v> </b> <b> <a>3</a> <b>4</b> - <v>24051</v> + <v>24510</v> </b> <b> <a>4</a> <b>5</b> - <v>15391</v> + <v>15881</v> </b> <b> <a>5</a> <b>7</b> - <v>15925</v> + <v>16388</v> </b> <b> <a>7</a> <b>23</b> - <v>15269</v> + <v>15560</v> </b> <b> <a>23</a> - <b>371</b> - <v>1734</v> + <b>397</b> + <v>1736</v> </b> </bs> </hist> @@ -8179,67 +7920,67 @@ <b> <a>1</a> <b>2</b> - <v>79</v> + <v>140</v> </b> <b> <a>2</a> <b>3</b> - <v>119</v> + <v>122</v> </b> <b> <a>3</a> <b>4</b> - <v>76</v> + <v>77</v> </b> <b> <a>4</a> <b>5</b> - <v>85</v> + <v>62</v> </b> <b> <a>5</a> <b>7</b> - <v>79</v> - </b> - <b> - <a>7</a> - <b>10</b> <v>98</v> </b> + <b> + <a>8</a> + <b>10</b> + <v>86</v> + </b> <b> <a>10</a> - <b>14</b> + <b>12</b> + <v>89</v> + </b> + <b> + <a>12</a> + <b>26</b> + <v>95</v> + </b> + <b> + <a>26</a> + <b>42</b> <v>92</v> </b> <b> - <a>14</a> - <b>23</b> + <a>42</a> + <b>77</b> <v>89</v> </b> <b> - <a>24</a> - <b>39</b> - <v>85</v> - </b> - <b> - <a>39</a> - <b>69</b> + <a>80</a> + <b>179</b> <v>89</v> </b> <b> - <a>69</a> - <b>144</b> - <v>85</v> + <a>184</a> + <b>1016</b> + <v>89</v> </b> <b> - <a>144</a> - <b>566</b> - <v>85</v> - </b> - <b> - <a>623</a> - <b>65961</b> - <v>67</v> + <a>1134</a> + <b>68975</b> + <v>47</v> </b> </bs> </hist> @@ -8255,67 +7996,67 @@ <b> <a>1</a> <b>2</b> - <v>79</v> + <v>140</v> </b> <b> <a>2</a> <b>3</b> - <v>119</v> + <v>122</v> </b> <b> <a>3</a> <b>4</b> - <v>76</v> + <v>77</v> </b> <b> <a>4</a> <b>5</b> - <v>85</v> + <v>62</v> </b> <b> <a>5</a> <b>7</b> - <v>79</v> - </b> - <b> - <a>7</a> - <b>10</b> <v>98</v> </b> + <b> + <a>8</a> + <b>10</b> + <v>86</v> + </b> <b> <a>10</a> - <b>14</b> + <b>12</b> + <v>89</v> + </b> + <b> + <a>12</a> + <b>26</b> + <v>95</v> + </b> + <b> + <a>26</a> + <b>42</b> <v>92</v> </b> <b> - <a>14</a> - <b>23</b> + <a>42</a> + <b>77</b> <v>89</v> </b> <b> - <a>24</a> - <b>39</b> - <v>85</v> - </b> - <b> - <a>39</a> - <b>69</b> + <a>80</a> + <b>179</b> <v>89</v> </b> <b> - <a>69</a> - <b>144</b> - <v>85</v> + <a>184</a> + <b>1016</b> + <v>89</v> </b> <b> - <a>144</a> - <b>566</b> - <v>85</v> - </b> - <b> - <a>623</a> - <b>65961</b> - <v>67</v> + <a>1134</a> + <b>68975</b> + <v>47</v> </b> </bs> </hist> @@ -8331,7 +8072,7 @@ <b> <a>1</a> <b>2</b> - <v>627527</v> + <v>641142</v> </b> </bs> </hist> @@ -8347,7 +8088,7 @@ <b> <a>1</a> <b>2</b> - <v>627527</v> + <v>641142</v> </b> </bs> </hist> @@ -8357,26 +8098,26 @@ </relation> <relation> <name>ruby_body_statement_def</name> - <cardinality>208998</cardinality> + <cardinality>213896</cardinality> <columnsizes> <e> <k>id</k> - <v>208998</v> + <v>213896</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_break_child</name> - <cardinality>399</cardinality> + <cardinality>394</cardinality> <columnsizes> <e> <k>ruby_break</k> - <v>399</v> + <v>394</v> </e> <e> <k>child</k> - <v>399</v> + <v>394</v> </e> </columnsizes> <dependencies> @@ -8390,7 +8131,7 @@ <b> <a>1</a> <b>2</b> - <v>399</v> + <v>394</v> </b> </bs> </hist> @@ -8406,7 +8147,7 @@ <b> <a>1</a> <b>2</b> - <v>399</v> + <v>394</v> </b> </bs> </hist> @@ -8416,26 +8157,26 @@ </relation> <relation> <name>ruby_break_def</name> - <cardinality>3434</cardinality> + <cardinality>3414</cardinality> <columnsizes> <e> <k>id</k> - <v>3434</v> + <v>3414</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_call_arguments</name> - <cardinality>688552</cardinality> + <cardinality>703178</cardinality> <columnsizes> <e> <k>ruby_call</k> - <v>688552</v> + <v>703178</v> </e> <e> <k>arguments</k> - <v>688552</v> + <v>703178</v> </e> </columnsizes> <dependencies> @@ -8449,7 +8190,7 @@ <b> <a>1</a> <b>2</b> - <v>688552</v> + <v>703178</v> </b> </bs> </hist> @@ -8465,7 +8206,7 @@ <b> <a>1</a> <b>2</b> - <v>688552</v> + <v>703178</v> </b> </bs> </hist> @@ -8475,15 +8216,15 @@ </relation> <relation> <name>ruby_call_block</name> - <cardinality>240751</cardinality> + <cardinality>246208</cardinality> <columnsizes> <e> <k>ruby_call</k> - <v>240751</v> + <v>246208</v> </e> <e> <k>block</k> - <v>240751</v> + <v>246208</v> </e> </columnsizes> <dependencies> @@ -8497,7 +8238,7 @@ <b> <a>1</a> <b>2</b> - <v>240751</v> + <v>246208</v> </b> </bs> </hist> @@ -8513,7 +8254,7 @@ <b> <a>1</a> <b>2</b> - <v>240751</v> + <v>246208</v> </b> </bs> </hist> @@ -8523,26 +8264,26 @@ </relation> <relation> <name>ruby_call_def</name> - <cardinality>1006605</cardinality> + <cardinality>1027501</cardinality> <columnsizes> <e> <k>id</k> - <v>1006605</v> + <v>1027501</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_call_method</name> - <cardinality>1006605</cardinality> + <cardinality>1027501</cardinality> <columnsizes> <e> <k>ruby_call</k> - <v>1006605</v> + <v>1027501</v> </e> <e> <k>method</k> - <v>1006605</v> + <v>1027501</v> </e> </columnsizes> <dependencies> @@ -8556,7 +8297,7 @@ <b> <a>1</a> <b>2</b> - <v>1006605</v> + <v>1027501</v> </b> </bs> </hist> @@ -8572,7 +8313,7 @@ <b> <a>1</a> <b>2</b> - <v>1006605</v> + <v>1027501</v> </b> </bs> </hist> @@ -8582,15 +8323,15 @@ </relation> <relation> <name>ruby_call_operator</name> - <cardinality>562262</cardinality> + <cardinality>571632</cardinality> <columnsizes> <e> <k>ruby_call</k> - <v>562262</v> + <v>571632</v> </e> <e> <k>operator</k> - <v>562262</v> + <v>571632</v> </e> </columnsizes> <dependencies> @@ -8604,7 +8345,7 @@ <b> <a>1</a> <b>2</b> - <v>562262</v> + <v>571632</v> </b> </bs> </hist> @@ -8620,7 +8361,7 @@ <b> <a>1</a> <b>2</b> - <v>562262</v> + <v>571632</v> </b> </bs> </hist> @@ -8630,15 +8371,15 @@ </relation> <relation> <name>ruby_call_receiver</name> - <cardinality>562262</cardinality> + <cardinality>571632</cardinality> <columnsizes> <e> <k>ruby_call</k> - <v>562262</v> + <v>571632</v> </e> <e> <k>receiver</k> - <v>562262</v> + <v>571632</v> </e> </columnsizes> <dependencies> @@ -8652,7 +8393,7 @@ <b> <a>1</a> <b>2</b> - <v>562262</v> + <v>571632</v> </b> </bs> </hist> @@ -8668,7 +8409,7 @@ <b> <a>1</a> <b>2</b> - <v>562262</v> + <v>571632</v> </b> </bs> </hist> @@ -8678,19 +8419,19 @@ </relation> <relation> <name>ruby_case_child</name> - <cardinality>4349</cardinality> + <cardinality>4685</cardinality> <columnsizes> <e> <k>ruby_case__</k> - <v>1289</v> + <v>1267</v> </e> <e> <k>index</k> - <v>67</v> + <v>86</v> </e> <e> <k>child</k> - <v>4349</v> + <v>4685</v> </e> </columnsizes> <dependencies> @@ -8704,32 +8445,37 @@ <b> <a>1</a> <b>2</b> - <v>36</v> + <v>69</v> </b> <b> <a>2</a> <b>3</b> - <v>328</v> + <v>405</v> </b> <b> <a>3</a> <b>4</b> - <v>546</v> + <v>399</v> </b> <b> <a>4</a> <b>5</b> - <v>202</v> + <v>166</v> </b> <b> <a>5</a> - <b>7</b> - <v>110</v> + <b>6</b> + <v>89</v> </b> <b> - <a>7</a> - <b>23</b> - <v>64</v> + <a>6</a> + <b>12</b> + <v>100</v> + </b> + <b> + <a>12</a> + <b>87</b> + <v>39</v> </b> </bs> </hist> @@ -8745,32 +8491,37 @@ <b> <a>1</a> <b>2</b> - <v>36</v> + <v>69</v> </b> <b> <a>2</a> <b>3</b> - <v>328</v> + <v>405</v> </b> <b> <a>3</a> <b>4</b> - <v>546</v> + <v>399</v> </b> <b> <a>4</a> <b>5</b> - <v>202</v> + <v>166</v> </b> <b> <a>5</a> - <b>7</b> - <v>110</v> + <b>6</b> + <v>89</v> </b> <b> - <a>7</a> - <b>23</b> - <v>64</v> + <a>6</a> + <b>12</b> + <v>100</v> + </b> + <b> + <a>12</a> + <b>87</b> + <v>39</v> </b> </bs> </hist> @@ -8786,42 +8537,37 @@ <b> <a>1</a> <b>2</b> - <v>21</v> + <v>42</v> </b> <b> <a>2</a> <b>3</b> - <v>9</v> + <v>12</v> </b> <b> - <a>4</a> + <a>3</a> <b>6</b> <v>6</v> </b> <b> - <a>8</a> - <b>11</b> - <v>6</v> + <a>6</a> + <b>9</b> + <v>7</v> </b> <b> - <a>14</a> - <b>22</b> - <v>6</v> + <a>9</a> + <b>31</b> + <v>7</v> </b> <b> - <a>33</a> - <b>58</b> - <v>6</v> + <a>39</a> + <b>140</b> + <v>7</v> </b> <b> - <a>123</a> - <b>302</b> - <v>6</v> - </b> - <b> - <a>408</a> - <b>421</b> - <v>6</v> + <a>228</a> + <b>1268</b> + <v>5</v> </b> </bs> </hist> @@ -8837,42 +8583,37 @@ <b> <a>1</a> <b>2</b> - <v>21</v> + <v>42</v> </b> <b> <a>2</a> <b>3</b> - <v>9</v> + <v>12</v> </b> <b> - <a>4</a> + <a>3</a> <b>6</b> <v>6</v> </b> <b> - <a>8</a> - <b>11</b> - <v>6</v> + <a>6</a> + <b>9</b> + <v>7</v> </b> <b> - <a>14</a> - <b>22</b> - <v>6</v> + <a>9</a> + <b>31</b> + <v>7</v> </b> <b> - <a>33</a> - <b>58</b> - <v>6</v> + <a>39</a> + <b>140</b> + <v>7</v> </b> <b> - <a>123</a> - <b>302</b> - <v>6</v> - </b> - <b> - <a>408</a> - <b>421</b> - <v>6</v> + <a>228</a> + <b>1268</b> + <v>5</v> </b> </bs> </hist> @@ -8888,7 +8629,7 @@ <b> <a>1</a> <b>2</b> - <v>4349</v> + <v>4685</v> </b> </bs> </hist> @@ -8904,7 +8645,7 @@ <b> <a>1</a> <b>2</b> - <v>4349</v> + <v>4685</v> </b> </bs> </hist> @@ -8914,22 +8655,22 @@ </relation> <relation> <name>ruby_case_def</name> - <cardinality>1289</cardinality> + <cardinality>1319</cardinality> <columnsizes> <e> <k>id</k> - <v>1289</v> + <v>1319</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_case_match_clauses</name> - <cardinality>385</cardinality> + <cardinality>381</cardinality> <columnsizes> <e> <k>ruby_case_match</k> - <v>234</v> + <v>232</v> </e> <e> <k>index</k> @@ -8937,7 +8678,7 @@ </e> <e> <k>clauses</k> - <v>385</v> + <v>381</v> </e> </columnsizes> <dependencies> @@ -8951,12 +8692,12 @@ <b> <a>1</a> <b>2</b> - <v>161</v> + <v>160</v> </b> <b> <a>2</a> <b>3</b> - <v>41</v> + <v>40</v> </b> <b> <a>3</a> @@ -8982,12 +8723,12 @@ <b> <a>1</a> <b>2</b> - <v>161</v> + <v>160</v> </b> <b> <a>2</a> <b>3</b> - <v>41</v> + <v>40</v> </b> <b> <a>3</a> @@ -9013,17 +8754,12 @@ <b> <a>1</a> <b>2</b> - <v>3</v> + <v>2</v> </b> <b> <a>2</a> <b>3</b> - <v>1</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>1</v> + <v>3</v> </b> <b> <a>5</a> @@ -9051,13 +8787,13 @@ <v>1</v> </b> <b> - <a>73</a> - <b>74</b> + <a>72</a> + <b>73</b> <v>1</v> </b> <b> - <a>234</a> - <b>235</b> + <a>232</a> + <b>233</b> <v>1</v> </b> </bs> @@ -9074,17 +8810,12 @@ <b> <a>1</a> <b>2</b> - <v>3</v> + <v>2</v> </b> <b> <a>2</a> <b>3</b> - <v>1</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>1</v> + <v>3</v> </b> <b> <a>5</a> @@ -9112,13 +8843,13 @@ <v>1</v> </b> <b> - <a>73</a> - <b>74</b> + <a>72</a> + <b>73</b> <v>1</v> </b> <b> - <a>234</a> - <b>235</b> + <a>232</a> + <b>233</b> <v>1</v> </b> </bs> @@ -9135,7 +8866,7 @@ <b> <a>1</a> <b>2</b> - <v>385</v> + <v>381</v> </b> </bs> </hist> @@ -9151,7 +8882,7 @@ <b> <a>1</a> <b>2</b> - <v>385</v> + <v>381</v> </b> </bs> </hist> @@ -9161,15 +8892,15 @@ </relation> <relation> <name>ruby_case_match_def</name> - <cardinality>234</cardinality> + <cardinality>232</cardinality> <columnsizes> <e> <k>id</k> - <v>234</v> + <v>232</v> </e> <e> <k>value</k> - <v>234</v> + <v>232</v> </e> </columnsizes> <dependencies> @@ -9183,7 +8914,7 @@ <b> <a>1</a> <b>2</b> - <v>234</v> + <v>232</v> </b> </bs> </hist> @@ -9199,7 +8930,7 @@ <b> <a>1</a> <b>2</b> - <v>234</v> + <v>232</v> </b> </bs> </hist> @@ -9257,15 +8988,15 @@ </relation> <relation> <name>ruby_case_value</name> - <cardinality>1246</cardinality> + <cardinality>1277</cardinality> <columnsizes> <e> <k>ruby_case__</k> - <v>1246</v> + <v>1277</v> </e> <e> <k>value</k> - <v>1246</v> + <v>1277</v> </e> </columnsizes> <dependencies> @@ -9279,7 +9010,7 @@ <b> <a>1</a> <b>2</b> - <v>1246</v> + <v>1277</v> </b> </bs> </hist> @@ -9295,7 +9026,7 @@ <b> <a>1</a> <b>2</b> - <v>1246</v> + <v>1277</v> </b> </bs> </hist> @@ -9305,7 +9036,7 @@ </relation> <relation> <name>ruby_chained_string_child</name> - <cardinality>3346</cardinality> + <cardinality>3320</cardinality> <columnsizes> <e> <k>ruby_chained_string</k> @@ -9313,11 +9044,11 @@ </e> <e> <k>index</k> - <v>36</v> + <v>35</v> </e> <e> <k>child</k> - <v>3346</v> + <v>3320</v> </e> </columnsizes> <dependencies> @@ -9331,32 +9062,32 @@ <b> <a>2</a> <b>3</b> - <v>297</v> + <v>296</v> </b> <b> <a>3</a> <b>4</b> - <v>202</v> + <v>215</v> </b> <b> <a>4</a> <b>5</b> - <v>131</v> + <v>128</v> </b> <b> <a>5</a> <b>6</b> - <v>122</v> + <v>116</v> </b> <b> <a>6</a> <b>8</b> - <v>67</v> + <v>65</v> </b> <b> <a>8</a> <b>13</b> - <v>61</v> + <v>59</v> </b> </bs> </hist> @@ -9372,32 +9103,32 @@ <b> <a>2</a> <b>3</b> - <v>297</v> + <v>296</v> </b> <b> <a>3</a> <b>4</b> - <v>202</v> + <v>215</v> </b> <b> <a>4</a> <b>5</b> - <v>131</v> + <v>128</v> </b> <b> <a>5</a> <b>6</b> - <v>122</v> + <v>116</v> </b> <b> <a>6</a> <b>8</b> - <v>67</v> + <v>65</v> </b> <b> <a>8</a> <b>13</b> - <v>61</v> + <v>59</v> </b> </bs> </hist> @@ -9413,57 +9144,57 @@ <b> <a>2</a> <b>3</b> - <v>3</v> + <v>2</v> </b> <b> <a>4</a> <b>5</b> - <v>3</v> + <v>2</v> </b> <b> <a>7</a> <b>8</b> - <v>3</v> + <v>2</v> </b> <b> <a>8</a> <b>9</b> - <v>3</v> + <v>2</v> </b> <b> <a>20</a> <b>21</b> - <v>3</v> + <v>2</v> </b> <b> <a>33</a> <b>34</b> - <v>3</v> + <v>2</v> </b> <b> <a>42</a> <b>43</b> - <v>3</v> + <v>2</v> </b> <b> - <a>82</a> - <b>83</b> - <v>3</v> + <a>81</a> + <b>82</b> + <v>2</v> </b> <b> - <a>125</a> - <b>126</b> - <v>3</v> + <a>124</a> + <b>125</b> + <v>2</v> </b> <b> - <a>191</a> - <b>192</b> - <v>3</v> + <a>196</a> + <b>197</b> + <v>2</v> </b> <b> - <a>288</a> - <b>289</b> - <v>6</v> + <a>295</a> + <b>296</b> + <v>5</v> </b> </bs> </hist> @@ -9479,57 +9210,57 @@ <b> <a>2</a> <b>3</b> - <v>3</v> + <v>2</v> </b> <b> <a>4</a> <b>5</b> - <v>3</v> + <v>2</v> </b> <b> <a>7</a> <b>8</b> - <v>3</v> + <v>2</v> </b> <b> <a>8</a> <b>9</b> - <v>3</v> + <v>2</v> </b> <b> <a>20</a> <b>21</b> - <v>3</v> + <v>2</v> </b> <b> <a>33</a> <b>34</b> - <v>3</v> + <v>2</v> </b> <b> <a>42</a> <b>43</b> - <v>3</v> + <v>2</v> </b> <b> - <a>82</a> - <b>83</b> - <v>3</v> + <a>81</a> + <b>82</b> + <v>2</v> </b> <b> - <a>125</a> - <b>126</b> - <v>3</v> + <a>124</a> + <b>125</b> + <v>2</v> </b> <b> - <a>191</a> - <b>192</b> - <v>3</v> + <a>196</a> + <b>197</b> + <v>2</v> </b> <b> - <a>288</a> - <b>289</b> - <v>6</v> + <a>295</a> + <b>296</b> + <v>5</v> </b> </bs> </hist> @@ -9545,7 +9276,7 @@ <b> <a>1</a> <b>2</b> - <v>3346</v> + <v>3320</v> </b> </bs> </hist> @@ -9561,7 +9292,7 @@ <b> <a>1</a> <b>2</b> - <v>3346</v> + <v>3320</v> </b> </bs> </hist> @@ -9582,15 +9313,15 @@ </relation> <relation> <name>ruby_class_body</name> - <cardinality>15560</cardinality> + <cardinality>15734</cardinality> <columnsizes> <e> <k>ruby_class</k> - <v>15560</v> + <v>15734</v> </e> <e> <k>body</k> - <v>15560</v> + <v>15734</v> </e> </columnsizes> <dependencies> @@ -9604,7 +9335,7 @@ <b> <a>1</a> <b>2</b> - <v>15560</v> + <v>15734</v> </b> </bs> </hist> @@ -9620,7 +9351,7 @@ <b> <a>1</a> <b>2</b> - <v>15560</v> + <v>15734</v> </b> </bs> </hist> @@ -9630,15 +9361,15 @@ </relation> <relation> <name>ruby_class_def</name> - <cardinality>17258</cardinality> + <cardinality>17441</cardinality> <columnsizes> <e> <k>id</k> - <v>17258</v> + <v>17441</v> </e> <e> <k>name</k> - <v>17258</v> + <v>17441</v> </e> </columnsizes> <dependencies> @@ -9652,7 +9383,7 @@ <b> <a>1</a> <b>2</b> - <v>17258</v> + <v>17441</v> </b> </bs> </hist> @@ -9668,7 +9399,7 @@ <b> <a>1</a> <b>2</b> - <v>17258</v> + <v>17441</v> </b> </bs> </hist> @@ -9678,15 +9409,15 @@ </relation> <relation> <name>ruby_class_superclass</name> - <cardinality>13666</cardinality> + <cardinality>13806</cardinality> <columnsizes> <e> <k>ruby_class</k> - <v>13666</v> + <v>13806</v> </e> <e> <k>superclass</k> - <v>13666</v> + <v>13806</v> </e> </columnsizes> <dependencies> @@ -9700,7 +9431,7 @@ <b> <a>1</a> <b>2</b> - <v>13666</v> + <v>13806</v> </b> </bs> </hist> @@ -9716,7 +9447,7 @@ <b> <a>1</a> <b>2</b> - <v>13666</v> + <v>13806</v> </b> </bs> </hist> @@ -9726,15 +9457,15 @@ </relation> <relation> <name>ruby_complex_def</name> - <cardinality>66</cardinality> + <cardinality>72</cardinality> <columnsizes> <e> <k>id</k> - <v>66</v> + <v>72</v> </e> <e> <k>child</k> - <v>66</v> + <v>72</v> </e> </columnsizes> <dependencies> @@ -9748,7 +9479,7 @@ <b> <a>1</a> <b>2</b> - <v>66</v> + <v>72</v> </b> </bs> </hist> @@ -9764,7 +9495,7 @@ <b> <a>1</a> <b>2</b> - <v>66</v> + <v>72</v> </b> </bs> </hist> @@ -9774,23 +9505,23 @@ </relation> <relation> <name>ruby_conditional_def</name> - <cardinality>2954</cardinality> + <cardinality>2896</cardinality> <columnsizes> <e> <k>id</k> - <v>2954</v> + <v>2896</v> </e> <e> <k>alternative</k> - <v>2954</v> + <v>2896</v> </e> <e> <k>condition</k> - <v>2954</v> + <v>2896</v> </e> <e> <k>consequence</k> - <v>2954</v> + <v>2896</v> </e> </columnsizes> <dependencies> @@ -9804,7 +9535,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9820,7 +9551,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9836,7 +9567,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9852,7 +9583,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9868,7 +9599,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9884,7 +9615,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9900,7 +9631,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9916,7 +9647,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9932,7 +9663,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9948,7 +9679,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9964,7 +9695,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9980,7 +9711,7 @@ <b> <a>1</a> <b>2</b> - <v>2954</v> + <v>2896</v> </b> </bs> </hist> @@ -9990,19 +9721,19 @@ </relation> <relation> <name>ruby_delimited_symbol_child</name> - <cardinality>1749</cardinality> + <cardinality>1742</cardinality> <columnsizes> <e> <k>ruby_delimited_symbol</k> - <v>1258</v> + <v>1247</v> </e> <e> <k>index</k> - <v>24</v> + <v>23</v> </e> <e> <k>child</k> - <v>1749</v> + <v>1742</v> </e> </columnsizes> <dependencies> @@ -10016,7 +9747,7 @@ <b> <a>1</a> <b>2</b> - <v>930</v> + <v>920</v> </b> <b> <a>2</a> @@ -10026,7 +9757,7 @@ <b> <a>3</a> <b>9</b> - <v>73</v> + <v>71</v> </b> </bs> </hist> @@ -10042,7 +9773,7 @@ <b> <a>1</a> <b>2</b> - <v>930</v> + <v>920</v> </b> <b> <a>2</a> @@ -10052,7 +9783,7 @@ <b> <a>3</a> <b>9</b> - <v>73</v> + <v>71</v> </b> </bs> </hist> @@ -10068,42 +9799,42 @@ <b> <a>1</a> <b>2</b> - <v>3</v> + <v>2</v> </b> <b> <a>3</a> <b>4</b> - <v>3</v> + <v>2</v> </b> <b> - <a>5</a> - <b>6</b> - <v>3</v> + <a>6</a> + <b>7</b> + <v>2</v> </b> <b> - <a>8</a> - <b>9</b> - <v>3</v> + <a>9</a> + <b>10</b> + <v>2</v> </b> <b> - <a>12</a> - <b>13</b> - <v>3</v> + <a>13</a> + <b>14</b> + <v>2</v> </b> <b> <a>24</a> <b>25</b> - <v>3</v> + <v>2</v> </b> <b> - <a>107</a> - <b>108</b> - <v>3</v> + <a>109</a> + <b>110</b> + <v>2</v> </b> <b> - <a>410</a> - <b>411</b> - <v>3</v> + <a>416</a> + <b>417</b> + <v>2</v> </b> </bs> </hist> @@ -10119,42 +9850,42 @@ <b> <a>1</a> <b>2</b> - <v>3</v> + <v>2</v> </b> <b> <a>3</a> <b>4</b> - <v>3</v> + <v>2</v> </b> <b> - <a>5</a> - <b>6</b> - <v>3</v> + <a>6</a> + <b>7</b> + <v>2</v> </b> <b> - <a>8</a> - <b>9</b> - <v>3</v> + <a>9</a> + <b>10</b> + <v>2</v> </b> <b> - <a>12</a> - <b>13</b> - <v>3</v> + <a>13</a> + <b>14</b> + <v>2</v> </b> <b> <a>24</a> <b>25</b> - <v>3</v> + <v>2</v> </b> <b> - <a>107</a> - <b>108</b> - <v>3</v> + <a>109</a> + <b>110</b> + <v>2</v> </b> <b> - <a>410</a> - <b>411</b> - <v>3</v> + <a>416</a> + <b>417</b> + <v>2</v> </b> </bs> </hist> @@ -10170,7 +9901,7 @@ <b> <a>1</a> <b>2</b> - <v>1749</v> + <v>1742</v> </b> </bs> </hist> @@ -10186,7 +9917,7 @@ <b> <a>1</a> <b>2</b> - <v>1749</v> + <v>1742</v> </b> </bs> </hist> @@ -10196,22 +9927,22 @@ </relation> <relation> <name>ruby_delimited_symbol_def</name> - <cardinality>1258</cardinality> + <cardinality>1247</cardinality> <columnsizes> <e> <k>id</k> - <v>1258</v> + <v>1247</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_destructured_left_assignment_child</name> - <cardinality>222</cardinality> + <cardinality>226</cardinality> <columnsizes> <e> <k>ruby_destructured_left_assignment</k> - <v>107</v> + <v>108</v> </e> <e> <k>index</k> @@ -10219,7 +9950,7 @@ </e> <e> <k>child</k> - <v>222</v> + <v>226</v> </e> </columnsizes> <dependencies> @@ -10248,7 +9979,7 @@ <b> <a>4</a> <b>5</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -10279,7 +10010,7 @@ <b> <a>4</a> <b>5</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -10293,23 +10024,23 @@ <budget>12</budget> <bs> <b> - <a>4</a> - <b>5</b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> - <a>16</a> - <b>17</b> + <a>17</a> + <b>18</b> <v>1</v> </b> <b> - <a>95</a> - <b>96</b> + <a>96</a> + <b>97</b> <v>1</v> </b> <b> - <a>107</a> - <b>108</b> + <a>108</a> + <b>109</b> <v>1</v> </b> </bs> @@ -10324,23 +10055,23 @@ <budget>12</budget> <bs> <b> - <a>4</a> - <b>5</b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> - <a>16</a> - <b>17</b> + <a>17</a> + <b>18</b> <v>1</v> </b> <b> - <a>95</a> - <b>96</b> + <a>96</a> + <b>97</b> <v>1</v> </b> <b> - <a>107</a> - <b>108</b> + <a>108</a> + <b>109</b> <v>1</v> </b> </bs> @@ -10357,7 +10088,7 @@ <b> <a>1</a> <b>2</b> - <v>222</v> + <v>226</v> </b> </bs> </hist> @@ -10373,7 +10104,7 @@ <b> <a>1</a> <b>2</b> - <v>222</v> + <v>226</v> </b> </bs> </hist> @@ -10383,22 +10114,22 @@ </relation> <relation> <name>ruby_destructured_left_assignment_def</name> - <cardinality>107</cardinality> + <cardinality>108</cardinality> <columnsizes> <e> <k>id</k> - <v>107</v> + <v>108</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_destructured_parameter_child</name> - <cardinality>424</cardinality> + <cardinality>463</cardinality> <columnsizes> <e> <k>ruby_destructured_parameter</k> - <v>194</v> + <v>208</v> </e> <e> <k>index</k> @@ -10406,7 +10137,7 @@ </e> <e> <k>child</k> - <v>424</v> + <v>463</v> </e> </columnsizes> <dependencies> @@ -10425,7 +10156,7 @@ <b> <a>2</a> <b>3</b> - <v>150</v> + <v>162</v> </b> <b> <a>3</a> @@ -10435,7 +10166,7 @@ <b> <a>4</a> <b>12</b> - <v>9</v> + <v>11</v> </b> </bs> </hist> @@ -10456,7 +10187,7 @@ <b> <a>2</a> <b>3</b> - <v>150</v> + <v>162</v> </b> <b> <a>3</a> @@ -10466,7 +10197,7 @@ <b> <a>4</a> <b>12</b> - <v>9</v> + <v>11</v> </b> </bs> </hist> @@ -10480,38 +10211,38 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>2</a> + <b>3</b> <v>1</v> </b> <b> - <a>2</a> - <b>3</b> + <a>3</a> + <b>4</b> <v>5</v> </b> <b> - <a>4</a> - <b>5</b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> - <a>9</a> - <b>10</b> + <a>11</a> + <b>12</b> <v>1</v> </b> <b> - <a>28</a> - <b>29</b> + <a>30</a> + <b>31</b> <v>1</v> </b> <b> - <a>178</a> - <b>179</b> + <a>192</a> + <b>193</b> <v>1</v> </b> <b> - <a>194</a> - <b>195</b> + <a>208</a> + <b>209</b> <v>1</v> </b> </bs> @@ -10526,38 +10257,38 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>2</a> + <b>3</b> <v>1</v> </b> <b> - <a>2</a> - <b>3</b> + <a>3</a> + <b>4</b> <v>5</v> </b> <b> - <a>4</a> - <b>5</b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> - <a>9</a> - <b>10</b> + <a>11</a> + <b>12</b> <v>1</v> </b> <b> - <a>28</a> - <b>29</b> + <a>30</a> + <b>31</b> <v>1</v> </b> <b> - <a>178</a> - <b>179</b> + <a>192</a> + <b>193</b> <v>1</v> </b> <b> - <a>194</a> - <b>195</b> + <a>208</a> + <b>209</b> <v>1</v> </b> </bs> @@ -10574,7 +10305,7 @@ <b> <a>1</a> <b>2</b> - <v>424</v> + <v>463</v> </b> </bs> </hist> @@ -10590,7 +10321,7 @@ <b> <a>1</a> <b>2</b> - <v>424</v> + <v>463</v> </b> </bs> </hist> @@ -10600,26 +10331,26 @@ </relation> <relation> <name>ruby_destructured_parameter_def</name> - <cardinality>194</cardinality> + <cardinality>208</cardinality> <columnsizes> <e> <k>id</k> - <v>194</v> + <v>208</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_do_block_body</name> - <cardinality>142294</cardinality> + <cardinality>145373</cardinality> <columnsizes> <e> <k>ruby_do_block</k> - <v>142294</v> + <v>145373</v> </e> <e> <k>body</k> - <v>142294</v> + <v>145373</v> </e> </columnsizes> <dependencies> @@ -10633,7 +10364,7 @@ <b> <a>1</a> <b>2</b> - <v>142294</v> + <v>145373</v> </b> </bs> </hist> @@ -10649,7 +10380,7 @@ <b> <a>1</a> <b>2</b> - <v>142294</v> + <v>145373</v> </b> </bs> </hist> @@ -10659,26 +10390,26 @@ </relation> <relation> <name>ruby_do_block_def</name> - <cardinality>142452</cardinality> + <cardinality>145534</cardinality> <columnsizes> <e> <k>id</k> - <v>142452</v> + <v>145534</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_do_block_parameters</name> - <cardinality>16036</cardinality> + <cardinality>16724</cardinality> <columnsizes> <e> <k>ruby_do_block</k> - <v>16036</v> + <v>16724</v> </e> <e> <k>parameters</k> - <v>16036</v> + <v>16724</v> </e> </columnsizes> <dependencies> @@ -10692,7 +10423,7 @@ <b> <a>1</a> <b>2</b> - <v>16036</v> + <v>16724</v> </b> </bs> </hist> @@ -10708,7 +10439,7 @@ <b> <a>1</a> <b>2</b> - <v>16036</v> + <v>16724</v> </b> </bs> </hist> @@ -10718,11 +10449,11 @@ </relation> <relation> <name>ruby_do_child</name> - <cardinality>9374</cardinality> + <cardinality>9352</cardinality> <columnsizes> <e> <k>ruby_do</k> - <v>1655</v> + <v>1651</v> </e> <e> <k>index</k> @@ -10730,7 +10461,7 @@ </e> <e> <k>child</k> - <v>9374</v> + <v>9352</v> </e> </columnsizes> <dependencies> @@ -10744,37 +10475,37 @@ <b> <a>1</a> <b>2</b> - <v>350</v> + <v>347</v> </b> <b> <a>2</a> <b>3</b> - <v>296</v> + <v>300</v> </b> <b> <a>3</a> <b>4</b> - <v>200</v> + <v>204</v> </b> <b> <a>4</a> - <b>5</b> - <v>77</v> + <b>6</b> + <v>149</v> </b> <b> - <a>5</a> + <a>6</a> <b>7</b> - <v>106</v> + <v>25</v> </b> <b> <a>7</a> <b>8</b> - <v>140</v> + <v>137</v> </b> <b> <a>8</a> <b>9</b> - <v>206</v> + <v>209</v> </b> <b> <a>9</a> @@ -10805,37 +10536,37 @@ <b> <a>1</a> <b>2</b> - <v>350</v> + <v>347</v> </b> <b> <a>2</a> <b>3</b> - <v>296</v> + <v>300</v> </b> <b> <a>3</a> <b>4</b> - <v>200</v> + <v>204</v> </b> <b> <a>4</a> - <b>5</b> - <v>77</v> + <b>6</b> + <v>149</v> </b> <b> - <a>5</a> + <a>6</a> <b>7</b> - <v>106</v> + <v>25</v> </b> <b> <a>7</a> <b>8</b> - <v>140</v> + <v>137</v> </b> <b> <a>8</a> <b>9</b> - <v>206</v> + <v>209</v> </b> <b> <a>9</a> @@ -10890,7 +10621,7 @@ </b> <b> <a>116</a> - <b>1656</b> + <b>1652</b> <v>15</v> </b> </bs> @@ -10931,7 +10662,7 @@ </b> <b> <a>116</a> - <b>1656</b> + <b>1652</b> <v>15</v> </b> </bs> @@ -10948,7 +10679,7 @@ <b> <a>1</a> <b>2</b> - <v>9374</v> + <v>9352</v> </b> </bs> </hist> @@ -10964,7 +10695,7 @@ <b> <a>1</a> <b>2</b> - <v>9374</v> + <v>9352</v> </b> </bs> </hist> @@ -10974,30 +10705,30 @@ </relation> <relation> <name>ruby_do_def</name> - <cardinality>1681</cardinality> + <cardinality>1675</cardinality> <columnsizes> <e> <k>id</k> - <v>1681</v> + <v>1675</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_element_reference_child</name> - <cardinality>80931</cardinality> + <cardinality>82748</cardinality> <columnsizes> <e> <k>ruby_element_reference</k> - <v>80773</v> + <v>82601</v> </e> <e> <k>index</k> - <v>5</v> + <v>4</v> </e> <e> <k>child</k> - <v>80931</v> + <v>82748</v> </e> </columnsizes> <dependencies> @@ -11011,12 +10742,12 @@ <b> <a>1</a> <b>2</b> - <v>80615</v> + <v>82455</v> </b> <b> <a>2</a> <b>3</b> - <v>157</v> + <v>146</v> </b> </bs> </hist> @@ -11032,12 +10763,12 @@ <b> <a>1</a> <b>2</b> - <v>80615</v> + <v>82455</v> </b> <b> <a>2</a> <b>3</b> - <v>157</v> + <v>146</v> </b> </bs> </hist> @@ -11056,8 +10787,8 @@ <v>2</v> </b> <b> - <a>31710</a> - <b>31711</b> + <a>34958</a> + <b>34959</b> <v>2</v> </b> </bs> @@ -11077,8 +10808,8 @@ <v>2</v> </b> <b> - <a>31710</a> - <b>31711</b> + <a>34958</a> + <b>34959</b> <v>2</v> </b> </bs> @@ -11095,7 +10826,7 @@ <b> <a>1</a> <b>2</b> - <v>80931</v> + <v>82748</v> </b> </bs> </hist> @@ -11111,7 +10842,7 @@ <b> <a>1</a> <b>2</b> - <v>80931</v> + <v>82748</v> </b> </bs> </hist> @@ -11121,15 +10852,15 @@ </relation> <relation> <name>ruby_element_reference_def</name> - <cardinality>80778</cardinality> + <cardinality>82606</cardinality> <columnsizes> <e> <k>id</k> - <v>80778</v> + <v>82606</v> </e> <e> <k>object</k> - <v>80778</v> + <v>82606</v> </e> </columnsizes> <dependencies> @@ -11143,7 +10874,7 @@ <b> <a>1</a> <b>2</b> - <v>80778</v> + <v>82606</v> </b> </bs> </hist> @@ -11159,7 +10890,7 @@ <b> <a>1</a> <b>2</b> - <v>80778</v> + <v>82606</v> </b> </bs> </hist> @@ -11169,19 +10900,19 @@ </relation> <relation> <name>ruby_else_child</name> - <cardinality>9507</cardinality> + <cardinality>9730</cardinality> <columnsizes> <e> <k>ruby_else</k> - <v>7493</v> + <v>7669</v> </e> <e> <k>index</k> - <v>33</v> + <v>32</v> </e> <e> <k>child</k> - <v>9507</v> + <v>9730</v> </e> </columnsizes> <dependencies> @@ -11195,17 +10926,17 @@ <b> <a>1</a> <b>2</b> - <v>6305</v> + <v>6454</v> </b> <b> <a>2</a> <b>3</b> - <v>742</v> + <v>758</v> </b> <b> <a>3</a> <b>12</b> - <v>445</v> + <v>455</v> </b> </bs> </hist> @@ -11221,17 +10952,17 @@ <b> <a>1</a> <b>2</b> - <v>6305</v> + <v>6454</v> </b> <b> <a>2</a> <b>3</b> - <v>742</v> + <v>758</v> </b> <b> <a>3</a> <b>12</b> - <v>445</v> + <v>455</v> </b> </bs> </hist> @@ -11247,57 +10978,57 @@ <b> <a>1</a> <b>2</b> - <v>3</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>3</v> + <v>2</v> </b> <b> <a>4</a> <b>5</b> - <v>3</v> + <v>2</v> </b> <b> <a>5</a> <b>6</b> - <v>3</v> + <v>2</v> + </b> + <b> + <a>6</a> + <b>7</b> + <v>2</v> </b> <b> <a>9</a> <b>10</b> - <v>3</v> + <v>2</v> </b> <b> <a>15</a> <b>16</b> - <v>3</v> + <v>2</v> </b> <b> <a>26</a> <b>27</b> - <v>3</v> + <v>2</v> </b> <b> - <a>61</a> - <b>62</b> - <v>3</v> + <a>64</a> + <b>65</b> + <v>2</v> </b> <b> - <a>145</a> - <b>146</b> - <v>3</v> + <a>152</a> + <b>153</b> + <v>2</v> </b> <b> - <a>387</a> - <b>388</b> - <v>3</v> + <a>405</a> + <b>406</b> + <v>2</v> </b> <b> - <a>2441</a> - <b>2442</b> - <v>3</v> + <a>2557</a> + <b>2558</b> + <v>2</v> </b> </bs> </hist> @@ -11313,57 +11044,57 @@ <b> <a>1</a> <b>2</b> - <v>3</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>3</v> + <v>2</v> </b> <b> <a>4</a> <b>5</b> - <v>3</v> + <v>2</v> </b> <b> <a>5</a> <b>6</b> - <v>3</v> + <v>2</v> + </b> + <b> + <a>6</a> + <b>7</b> + <v>2</v> </b> <b> <a>9</a> <b>10</b> - <v>3</v> + <v>2</v> </b> <b> <a>15</a> <b>16</b> - <v>3</v> + <v>2</v> </b> <b> <a>26</a> <b>27</b> - <v>3</v> + <v>2</v> </b> <b> - <a>61</a> - <b>62</b> - <v>3</v> + <a>64</a> + <b>65</b> + <v>2</v> </b> <b> - <a>145</a> - <b>146</b> - <v>3</v> + <a>152</a> + <b>153</b> + <v>2</v> </b> <b> - <a>387</a> - <b>388</b> - <v>3</v> + <a>405</a> + <b>406</b> + <v>2</v> </b> <b> - <a>2441</a> - <b>2442</b> - <v>3</v> + <a>2557</a> + <b>2558</b> + <v>2</v> </b> </bs> </hist> @@ -11379,7 +11110,7 @@ <b> <a>1</a> <b>2</b> - <v>9507</v> + <v>9730</v> </b> </bs> </hist> @@ -11395,7 +11126,7 @@ <b> <a>1</a> <b>2</b> - <v>9507</v> + <v>9730</v> </b> </bs> </hist> @@ -11405,26 +11136,26 @@ </relation> <relation> <name>ruby_else_def</name> - <cardinality>7505</cardinality> + <cardinality>7681</cardinality> <columnsizes> <e> <k>id</k> - <v>7505</v> + <v>7681</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_elsif_alternative</name> - <cardinality>982</cardinality> + <cardinality>1058</cardinality> <columnsizes> <e> <k>ruby_elsif</k> - <v>982</v> + <v>1058</v> </e> <e> <k>alternative</k> - <v>982</v> + <v>1058</v> </e> </columnsizes> <dependencies> @@ -11438,7 +11169,7 @@ <b> <a>1</a> <b>2</b> - <v>982</v> + <v>1058</v> </b> </bs> </hist> @@ -11454,7 +11185,7 @@ <b> <a>1</a> <b>2</b> - <v>982</v> + <v>1058</v> </b> </bs> </hist> @@ -11464,15 +11195,15 @@ </relation> <relation> <name>ruby_elsif_consequence</name> - <cardinality>1505</cardinality> + <cardinality>1571</cardinality> <columnsizes> <e> <k>ruby_elsif</k> - <v>1505</v> + <v>1571</v> </e> <e> <k>consequence</k> - <v>1505</v> + <v>1571</v> </e> </columnsizes> <dependencies> @@ -11486,7 +11217,7 @@ <b> <a>1</a> <b>2</b> - <v>1505</v> + <v>1571</v> </b> </bs> </hist> @@ -11502,7 +11233,7 @@ <b> <a>1</a> <b>2</b> - <v>1505</v> + <v>1571</v> </b> </bs> </hist> @@ -11512,15 +11243,15 @@ </relation> <relation> <name>ruby_elsif_def</name> - <cardinality>1510</cardinality> + <cardinality>1583</cardinality> <columnsizes> <e> <k>id</k> - <v>1510</v> + <v>1583</v> </e> <e> <k>condition</k> - <v>1510</v> + <v>1583</v> </e> </columnsizes> <dependencies> @@ -11534,7 +11265,7 @@ <b> <a>1</a> <b>2</b> - <v>1510</v> + <v>1583</v> </b> </bs> </hist> @@ -11550,7 +11281,7 @@ <b> <a>1</a> <b>2</b> - <v>1510</v> + <v>1583</v> </b> </bs> </hist> @@ -11568,7 +11299,7 @@ </e> <e> <k>index</k> - <v>9</v> + <v>10</v> </e> <e> <k>child</k> @@ -11586,12 +11317,12 @@ <b> <a>1</a> <b>2</b> - <v>7</v> + <v>8</v> </b> <b> <a>2</a> <b>3</b> - <v>4</v> + <v>3</v> </b> <b> <a>3</a> @@ -11599,8 +11330,8 @@ <v>1</v> </b> <b> - <a>9</a> - <b>10</b> + <a>10</a> + <b>11</b> <v>1</v> </b> </bs> @@ -11617,12 +11348,12 @@ <b> <a>1</a> <b>2</b> - <v>7</v> + <v>8</v> </b> <b> <a>2</a> <b>3</b> - <v>4</v> + <v>3</v> </b> <b> <a>3</a> @@ -11630,8 +11361,8 @@ <v>1</v> </b> <b> - <a>9</a> - <b>10</b> + <a>10</a> + <b>11</b> <v>1</v> </b> </bs> @@ -11648,7 +11379,7 @@ <b> <a>1</a> <b>2</b> - <v>6</v> + <v>7</v> </b> <b> <a>2</a> @@ -11656,8 +11387,8 @@ <v>1</v> </b> <b> - <a>6</a> - <b>7</b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> @@ -11679,7 +11410,7 @@ <b> <a>1</a> <b>2</b> - <v>6</v> + <v>7</v> </b> <b> <a>2</a> @@ -11687,8 +11418,8 @@ <v>1</v> </b> <b> - <a>6</a> - <b>7</b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> @@ -11747,19 +11478,19 @@ </relation> <relation> <name>ruby_ensure_child</name> - <cardinality>5114</cardinality> + <cardinality>5236</cardinality> <columnsizes> <e> <k>ruby_ensure</k> - <v>3981</v> + <v>4106</v> </e> <e> <k>index</k> - <v>49</v> + <v>47</v> </e> <e> <k>child</k> - <v>5114</v> + <v>5236</v> </e> </columnsizes> <dependencies> @@ -11773,17 +11504,17 @@ <b> <a>1</a> <b>2</b> - <v>3204</v> + <v>3323</v> </b> <b> <a>2</a> <b>3</b> - <v>543</v> + <v>554</v> </b> <b> <a>3</a> <b>17</b> - <v>233</v> + <v>227</v> </b> </bs> </hist> @@ -11799,17 +11530,17 @@ <b> <a>1</a> <b>2</b> - <v>3204</v> + <v>3323</v> </b> <b> <a>2</a> <b>3</b> - <v>543</v> + <v>554</v> </b> <b> <a>3</a> <b>17</b> - <v>233</v> + <v>227</v> </b> </bs> </hist> @@ -11825,42 +11556,42 @@ <b> <a>1</a> <b>2</b> - <v>24</v> + <v>23</v> </b> <b> <a>3</a> <b>4</b> - <v>6</v> + <v>5</v> </b> <b> <a>4</a> <b>5</b> - <v>3</v> + <v>2</v> </b> <b> <a>5</a> <b>6</b> - <v>3</v> + <v>2</v> </b> <b> <a>17</a> <b>18</b> - <v>3</v> + <v>2</v> </b> <b> <a>76</a> <b>77</b> - <v>3</v> + <v>2</v> </b> <b> - <a>253</a> - <b>254</b> - <v>3</v> + <a>261</a> + <b>262</b> + <v>2</v> </b> <b> - <a>1297</a> - <b>1298</b> - <v>3</v> + <a>1369</a> + <b>1370</b> + <v>2</v> </b> </bs> </hist> @@ -11876,42 +11607,42 @@ <b> <a>1</a> <b>2</b> - <v>24</v> + <v>23</v> </b> <b> <a>3</a> <b>4</b> - <v>6</v> + <v>5</v> </b> <b> <a>4</a> <b>5</b> - <v>3</v> + <v>2</v> </b> <b> <a>5</a> <b>6</b> - <v>3</v> + <v>2</v> </b> <b> <a>17</a> <b>18</b> - <v>3</v> + <v>2</v> </b> <b> <a>76</a> <b>77</b> - <v>3</v> + <v>2</v> </b> <b> - <a>253</a> - <b>254</b> - <v>3</v> + <a>261</a> + <b>262</b> + <v>2</v> </b> <b> - <a>1297</a> - <b>1298</b> - <v>3</v> + <a>1369</a> + <b>1370</b> + <v>2</v> </b> </bs> </hist> @@ -11927,7 +11658,7 @@ <b> <a>1</a> <b>2</b> - <v>5114</v> + <v>5236</v> </b> </bs> </hist> @@ -11943,7 +11674,7 @@ <b> <a>1</a> <b>2</b> - <v>5114</v> + <v>5236</v> </b> </bs> </hist> @@ -11953,26 +11684,26 @@ </relation> <relation> <name>ruby_ensure_def</name> - <cardinality>3981</cardinality> + <cardinality>4106</cardinality> <columnsizes> <e> <k>id</k> - <v>3981</v> + <v>4106</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_exception_variable_def</name> - <cardinality>924</cardinality> + <cardinality>935</cardinality> <columnsizes> <e> <k>id</k> - <v>924</v> + <v>935</v> </e> <e> <k>child</k> - <v>924</v> + <v>935</v> </e> </columnsizes> <dependencies> @@ -11986,7 +11717,7 @@ <b> <a>1</a> <b>2</b> - <v>924</v> + <v>935</v> </b> </bs> </hist> @@ -12002,7 +11733,7 @@ <b> <a>1</a> <b>2</b> - <v>924</v> + <v>935</v> </b> </bs> </hist> @@ -12012,19 +11743,19 @@ </relation> <relation> <name>ruby_exceptions_child</name> - <cardinality>2188</cardinality> + <cardinality>2128</cardinality> <columnsizes> <e> <k>ruby_exceptions</k> - <v>1938</v> + <v>1904</v> </e> <e> <k>index</k> - <v>20</v> + <v>11</v> </e> <e> <k>child</k> - <v>2188</v> + <v>2128</v> </e> </columnsizes> <dependencies> @@ -12038,17 +11769,17 @@ <b> <a>1</a> <b>2</b> - <v>1770</v> + <v>1748</v> </b> <b> <a>2</a> - <b>4</b> - <v>152</v> + <b>5</b> + <v>153</v> </b> <b> - <a>4</a> - <b>9</b> - <v>15</v> + <a>5</a> + <b>6</b> + <v>2</v> </b> </bs> </hist> @@ -12064,17 +11795,17 @@ <b> <a>1</a> <b>2</b> - <v>1770</v> + <v>1748</v> </b> <b> <a>2</a> - <b>4</b> - <v>152</v> + <b>5</b> + <v>153</v> </b> <b> - <a>4</a> - <b>9</b> - <v>15</v> + <a>5</a> + <b>6</b> + <v>2</v> </b> </bs> </hist> @@ -12090,11 +11821,6 @@ <b> <a>1</a> <b>2</b> - <v>7</v> - </b> - <b> - <a>2</a> - <b>3</b> <v>2</v> </b> <b> @@ -12103,8 +11829,8 @@ <v>2</v> </b> <b> - <a>21</a> - <b>22</b> + <a>22</a> + <b>23</b> <v>2</v> </b> <b> @@ -12113,8 +11839,8 @@ <v>2</v> </b> <b> - <a>761</a> - <b>762</b> + <a>806</a> + <b>807</b> <v>2</v> </b> </bs> @@ -12131,11 +11857,6 @@ <b> <a>1</a> <b>2</b> - <v>7</v> - </b> - <b> - <a>2</a> - <b>3</b> <v>2</v> </b> <b> @@ -12144,8 +11865,8 @@ <v>2</v> </b> <b> - <a>21</a> - <b>22</b> + <a>22</a> + <b>23</b> <v>2</v> </b> <b> @@ -12154,8 +11875,8 @@ <v>2</v> </b> <b> - <a>761</a> - <b>762</b> + <a>806</a> + <b>807</b> <v>2</v> </b> </bs> @@ -12172,7 +11893,7 @@ <b> <a>1</a> <b>2</b> - <v>2188</v> + <v>2128</v> </b> </bs> </hist> @@ -12188,7 +11909,7 @@ <b> <a>1</a> <b>2</b> - <v>2188</v> + <v>2128</v> </b> </bs> </hist> @@ -12198,11 +11919,11 @@ </relation> <relation> <name>ruby_exceptions_def</name> - <cardinality>1938</cardinality> + <cardinality>1904</cardinality> <columnsizes> <e> <k>id</k> - <v>1938</v> + <v>1904</v> </e> </columnsizes> <dependencies/> @@ -12452,23 +12173,23 @@ </relation> <relation> <name>ruby_for_def</name> - <cardinality>158</cardinality> + <cardinality>136</cardinality> <columnsizes> <e> <k>id</k> - <v>158</v> + <v>136</v> </e> <e> <k>body</k> - <v>158</v> + <v>136</v> </e> <e> <k>pattern</k> - <v>158</v> + <v>136</v> </e> <e> <k>value</k> - <v>158</v> + <v>136</v> </e> </columnsizes> <dependencies> @@ -12482,7 +12203,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12498,7 +12219,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12514,7 +12235,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12530,7 +12251,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12546,7 +12267,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12562,7 +12283,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12578,7 +12299,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12594,7 +12315,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12610,7 +12331,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12626,7 +12347,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12642,7 +12363,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12658,7 +12379,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -12668,19 +12389,19 @@ </relation> <relation> <name>ruby_hash_child</name> - <cardinality>93915</cardinality> + <cardinality>96207</cardinality> <columnsizes> <e> <k>ruby_hash</k> - <v>37005</v> + <v>37893</v> </e> <e> <k>index</k> - <v>1408</v> + <v>1439</v> </e> <e> <k>child</k> - <v>93915</v> + <v>96207</v> </e> </columnsizes> <dependencies> @@ -12694,32 +12415,32 @@ <b> <a>1</a> <b>2</b> - <v>15244</v> + <v>15577</v> </b> <b> <a>2</a> <b>3</b> - <v>10347</v> + <v>10573</v> </b> <b> <a>3</a> <b>4</b> - <v>4146</v> + <v>4318</v> </b> <b> <a>4</a> <b>5</b> - <v>4291</v> + <v>4385</v> </b> <b> <a>5</a> <b>20</b> - <v>2817</v> + <v>2878</v> </b> <b> <a>20</a> <b>108</b> - <v>157</v> + <v>161</v> </b> </bs> </hist> @@ -12735,32 +12456,32 @@ <b> <a>1</a> <b>2</b> - <v>15244</v> + <v>15577</v> </b> <b> <a>2</a> <b>3</b> - <v>10347</v> + <v>10573</v> </b> <b> <a>3</a> <b>4</b> - <v>4146</v> + <v>4318</v> </b> <b> <a>4</a> <b>5</b> - <v>4291</v> + <v>4385</v> </b> <b> <a>5</a> <b>20</b> - <v>2817</v> + <v>2878</v> </b> <b> <a>20</a> <b>108</b> - <v>157</v> + <v>161</v> </b> </bs> </hist> @@ -12776,41 +12497,41 @@ <b> <a>1</a> <b>2</b> - <v>355</v> + <v>363</v> </b> <b> <a>2</a> <b>3</b> - <v>250</v> + <v>255</v> </b> <b> <a>3</a> <b>4</b> - <v>329</v> + <v>336</v> </b> <b> <a>5</a> <b>6</b> - <v>105</v> + <v>107</v> </b> <b> <a>7</a> <b>13</b> - <v>118</v> + <v>121</v> </b> <b> <a>16</a> <b>55</b> - <v>118</v> + <v>121</v> </b> <b> <a>59</a> - <b>1654</b> - <v>118</v> + <b>1660</b> + <v>121</v> </b> <b> - <a>2811</a> - <b>2812</b> + <a>2817</a> + <b>2818</b> <v>13</v> </b> </bs> @@ -12827,41 +12548,41 @@ <b> <a>1</a> <b>2</b> - <v>355</v> + <v>363</v> </b> <b> <a>2</a> <b>3</b> - <v>250</v> + <v>255</v> </b> <b> <a>3</a> <b>4</b> - <v>329</v> + <v>336</v> </b> <b> <a>5</a> <b>6</b> - <v>105</v> + <v>107</v> </b> <b> <a>7</a> <b>13</b> - <v>118</v> + <v>121</v> </b> <b> <a>16</a> <b>55</b> - <v>118</v> + <v>121</v> </b> <b> <a>59</a> - <b>1654</b> - <v>118</v> + <b>1660</b> + <v>121</v> </b> <b> - <a>2811</a> - <b>2812</b> + <a>2817</a> + <b>2818</b> <v>13</v> </b> </bs> @@ -12878,7 +12599,7 @@ <b> <a>1</a> <b>2</b> - <v>93915</v> + <v>96207</v> </b> </bs> </hist> @@ -12894,7 +12615,7 @@ <b> <a>1</a> <b>2</b> - <v>93915</v> + <v>96207</v> </b> </bs> </hist> @@ -12904,22 +12625,22 @@ </relation> <relation> <name>ruby_hash_def</name> - <cardinality>40888</cardinality> + <cardinality>41915</cardinality> <columnsizes> <e> <k>id</k> - <v>40888</v> + <v>41915</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_hash_pattern_child</name> - <cardinality>98</cardinality> + <cardinality>94</cardinality> <columnsizes> <e> <k>ruby_hash_pattern</k> - <v>70</v> + <v>68</v> </e> <e> <k>index</k> @@ -12927,7 +12648,7 @@ </e> <e> <k>child</k> - <v>98</v> + <v>94</v> </e> </columnsizes> <dependencies> @@ -12946,7 +12667,7 @@ <b> <a>2</a> <b>3</b> - <v>14</v> + <v>12</v> </b> <b> <a>3</a> @@ -12972,7 +12693,7 @@ <b> <a>2</a> <b>3</b> - <v>14</v> + <v>12</v> </b> <b> <a>3</a> @@ -13001,13 +12722,13 @@ <v>1</v> </b> <b> - <a>20</a> - <b>21</b> + <a>18</a> + <b>19</b> <v>1</v> </b> <b> - <a>70</a> - <b>71</b> + <a>68</a> + <b>69</b> <v>1</v> </b> </bs> @@ -13032,13 +12753,13 @@ <v>1</v> </b> <b> - <a>20</a> - <b>21</b> + <a>18</a> + <b>19</b> <v>1</v> </b> <b> - <a>70</a> - <b>71</b> + <a>68</a> + <b>69</b> <v>1</v> </b> </bs> @@ -13055,7 +12776,7 @@ <b> <a>1</a> <b>2</b> - <v>98</v> + <v>94</v> </b> </bs> </hist> @@ -13071,7 +12792,7 @@ <b> <a>1</a> <b>2</b> - <v>98</v> + <v>94</v> </b> </bs> </hist> @@ -13081,15 +12802,15 @@ </relation> <relation> <name>ruby_hash_pattern_class</name> - <cardinality>9</cardinality> + <cardinality>32</cardinality> <columnsizes> <e> <k>ruby_hash_pattern</k> - <v>9</v> + <v>32</v> </e> <e> <k>class</k> - <v>9</v> + <v>32</v> </e> </columnsizes> <dependencies> @@ -13103,7 +12824,7 @@ <b> <a>1</a> <b>2</b> - <v>9</v> + <v>32</v> </b> </bs> </hist> @@ -13119,7 +12840,7 @@ <b> <a>1</a> <b>2</b> - <v>9</v> + <v>32</v> </b> </bs> </hist> @@ -13129,26 +12850,26 @@ </relation> <relation> <name>ruby_hash_pattern_def</name> - <cardinality>75</cardinality> + <cardinality>73</cardinality> <columnsizes> <e> <k>id</k> - <v>75</v> + <v>73</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_hash_splat_argument_child</name> - <cardinality>1902</cardinality> + <cardinality>1988</cardinality> <columnsizes> <e> <k>ruby_hash_splat_argument</k> - <v>1902</v> + <v>1988</v> </e> <e> <k>child</k> - <v>1902</v> + <v>1988</v> </e> </columnsizes> <dependencies> @@ -13162,7 +12883,7 @@ <b> <a>1</a> <b>2</b> - <v>1902</v> + <v>1988</v> </b> </bs> </hist> @@ -13178,7 +12899,7 @@ <b> <a>1</a> <b>2</b> - <v>1902</v> + <v>1988</v> </b> </bs> </hist> @@ -13188,37 +12909,37 @@ </relation> <relation> <name>ruby_hash_splat_argument_def</name> - <cardinality>1902</cardinality> + <cardinality>1989</cardinality> <columnsizes> <e> <k>id</k> - <v>1902</v> + <v>1989</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_hash_splat_parameter_def</name> - <cardinality>1596</cardinality> + <cardinality>1574</cardinality> <columnsizes> <e> <k>id</k> - <v>1596</v> + <v>1574</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_hash_splat_parameter_name</name> - <cardinality>1366</cardinality> + <cardinality>1352</cardinality> <columnsizes> <e> <k>ruby_hash_splat_parameter</k> - <v>1366</v> + <v>1352</v> </e> <e> <k>name</k> - <v>1366</v> + <v>1352</v> </e> </columnsizes> <dependencies> @@ -13232,7 +12953,7 @@ <b> <a>1</a> <b>2</b> - <v>1366</v> + <v>1352</v> </b> </bs> </hist> @@ -13248,7 +12969,7 @@ <b> <a>1</a> <b>2</b> - <v>1366</v> + <v>1352</v> </b> </bs> </hist> @@ -13258,19 +12979,19 @@ </relation> <relation> <name>ruby_heredoc_body_child</name> - <cardinality>26162</cardinality> + <cardinality>26244</cardinality> <columnsizes> <e> <k>ruby_heredoc_body</k> - <v>5519</v> + <v>5817</v> </e> <e> <k>index</k> - <v>552</v> + <v>512</v> </e> <e> <k>child</k> - <v>26162</v> + <v>26244</v> </e> </columnsizes> <dependencies> @@ -13284,12 +13005,12 @@ <b> <a>2</a> <b>3</b> - <v>3156</v> + <v>3504</v> </b> <b> <a>4</a> <b>5</b> - <v>692</v> + <v>701</v> </b> <b> <a>5</a> @@ -13299,7 +13020,7 @@ <b> <a>6</a> <b>7</b> - <v>720</v> + <v>675</v> </b> <b> <a>7</a> @@ -13308,13 +13029,13 @@ </b> <b> <a>10</a> - <b>15</b> - <v>415</v> + <b>17</b> + <v>467</v> </b> <b> - <a>16</a> + <a>17</a> <b>218</b> - <v>203</v> + <v>137</v> </b> </bs> </hist> @@ -13330,12 +13051,12 @@ <b> <a>2</a> <b>3</b> - <v>3156</v> + <v>3504</v> </b> <b> <a>4</a> <b>5</b> - <v>692</v> + <v>701</v> </b> <b> <a>5</a> @@ -13345,7 +13066,7 @@ <b> <a>6</a> <b>7</b> - <v>720</v> + <v>675</v> </b> <b> <a>7</a> @@ -13354,13 +13075,13 @@ </b> <b> <a>10</a> - <b>15</b> - <v>415</v> + <b>17</b> + <v>467</v> </b> <b> - <a>16</a> + <a>17</a> <b>218</b> - <v>203</v> + <v>137</v> </b> </bs> </hist> @@ -13376,32 +13097,32 @@ <b> <a>1</a> <b>2</b> - <v>326</v> + <v>302</v> </b> <b> <a>2</a> <b>3</b> - <v>43</v> + <v>40</v> </b> <b> <a>3</a> <b>5</b> - <v>50</v> + <v>47</v> </b> <b> <a>5</a> - <b>11</b> - <v>43</v> + <b>13</b> + <v>40</v> </b> <b> - <a>11</a> - <b>46</b> - <v>43</v> + <a>13</a> + <b>43</b> + <v>40</v> </b> <b> - <a>57</a> - <b>2168</b> - <v>45</v> + <a>56</a> + <b>2463</b> + <v>42</v> </b> </bs> </hist> @@ -13417,32 +13138,32 @@ <b> <a>1</a> <b>2</b> - <v>326</v> + <v>302</v> </b> <b> <a>2</a> <b>3</b> - <v>43</v> + <v>40</v> </b> <b> <a>3</a> <b>5</b> - <v>50</v> + <v>47</v> </b> <b> <a>5</a> - <b>11</b> - <v>43</v> + <b>13</b> + <v>40</v> </b> <b> - <a>11</a> - <b>46</b> - <v>43</v> + <a>13</a> + <b>43</b> + <v>40</v> </b> <b> - <a>57</a> - <b>2168</b> - <v>45</v> + <a>56</a> + <b>2463</b> + <v>42</v> </b> </bs> </hist> @@ -13458,7 +13179,7 @@ <b> <a>1</a> <b>2</b> - <v>26162</v> + <v>26244</v> </b> </bs> </hist> @@ -13474,7 +13195,7 @@ <b> <a>1</a> <b>2</b> - <v>26162</v> + <v>26244</v> </b> </bs> </hist> @@ -13484,26 +13205,26 @@ </relation> <relation> <name>ruby_heredoc_body_def</name> - <cardinality>6178</cardinality> + <cardinality>6934</cardinality> <columnsizes> <e> <k>id</k> - <v>6178</v> + <v>6934</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_if_alternative</name> - <cardinality>7005</cardinality> + <cardinality>7192</cardinality> <columnsizes> <e> <k>ruby_if</k> - <v>7005</v> + <v>7192</v> </e> <e> <k>alternative</k> - <v>7005</v> + <v>7192</v> </e> </columnsizes> <dependencies> @@ -13517,7 +13238,7 @@ <b> <a>1</a> <b>2</b> - <v>7005</v> + <v>7192</v> </b> </bs> </hist> @@ -13533,7 +13254,7 @@ <b> <a>1</a> <b>2</b> - <v>7005</v> + <v>7192</v> </b> </bs> </hist> @@ -13543,15 +13264,15 @@ </relation> <relation> <name>ruby_if_consequence</name> - <cardinality>16338</cardinality> + <cardinality>16117</cardinality> <columnsizes> <e> <k>ruby_if</k> - <v>16338</v> + <v>16117</v> </e> <e> <k>consequence</k> - <v>16338</v> + <v>16117</v> </e> </columnsizes> <dependencies> @@ -13565,7 +13286,7 @@ <b> <a>1</a> <b>2</b> - <v>16338</v> + <v>16117</v> </b> </bs> </hist> @@ -13581,7 +13302,7 @@ <b> <a>1</a> <b>2</b> - <v>16338</v> + <v>16117</v> </b> </bs> </hist> @@ -13591,15 +13312,15 @@ </relation> <relation> <name>ruby_if_def</name> - <cardinality>16391</cardinality> + <cardinality>16164</cardinality> <columnsizes> <e> <k>id</k> - <v>16391</v> + <v>16164</v> </e> <e> <k>condition</k> - <v>16391</v> + <v>16164</v> </e> </columnsizes> <dependencies> @@ -13613,7 +13334,7 @@ <b> <a>1</a> <b>2</b> - <v>16391</v> + <v>16164</v> </b> </bs> </hist> @@ -13629,7 +13350,7 @@ <b> <a>1</a> <b>2</b> - <v>16391</v> + <v>16164</v> </b> </bs> </hist> @@ -13687,19 +13408,19 @@ </relation> <relation> <name>ruby_if_modifier_def</name> - <cardinality>14611</cardinality> + <cardinality>14541</cardinality> <columnsizes> <e> <k>id</k> - <v>14611</v> + <v>14541</v> </e> <e> <k>body</k> - <v>14611</v> + <v>14541</v> </e> <e> <k>condition</k> - <v>14611</v> + <v>14541</v> </e> </columnsizes> <dependencies> @@ -13713,7 +13434,7 @@ <b> <a>1</a> <b>2</b> - <v>14611</v> + <v>14541</v> </b> </bs> </hist> @@ -13729,7 +13450,7 @@ <b> <a>1</a> <b>2</b> - <v>14611</v> + <v>14541</v> </b> </bs> </hist> @@ -13745,7 +13466,7 @@ <b> <a>1</a> <b>2</b> - <v>14611</v> + <v>14541</v> </b> </bs> </hist> @@ -13761,7 +13482,7 @@ <b> <a>1</a> <b>2</b> - <v>14611</v> + <v>14541</v> </b> </bs> </hist> @@ -13777,7 +13498,7 @@ <b> <a>1</a> <b>2</b> - <v>14611</v> + <v>14541</v> </b> </bs> </hist> @@ -13793,7 +13514,7 @@ <b> <a>1</a> <b>2</b> - <v>14611</v> + <v>14541</v> </b> </bs> </hist> @@ -13803,15 +13524,15 @@ </relation> <relation> <name>ruby_in_clause_body</name> - <cardinality>345</cardinality> + <cardinality>341</cardinality> <columnsizes> <e> <k>ruby_in_clause</k> - <v>345</v> + <v>341</v> </e> <e> <k>body</k> - <v>345</v> + <v>341</v> </e> </columnsizes> <dependencies> @@ -13825,7 +13546,7 @@ <b> <a>1</a> <b>2</b> - <v>345</v> + <v>341</v> </b> </bs> </hist> @@ -13841,7 +13562,7 @@ <b> <a>1</a> <b>2</b> - <v>345</v> + <v>341</v> </b> </bs> </hist> @@ -13851,15 +13572,15 @@ </relation> <relation> <name>ruby_in_clause_def</name> - <cardinality>385</cardinality> + <cardinality>381</cardinality> <columnsizes> <e> <k>id</k> - <v>385</v> + <v>381</v> </e> <e> <k>pattern</k> - <v>385</v> + <v>381</v> </e> </columnsizes> <dependencies> @@ -13873,7 +13594,7 @@ <b> <a>1</a> <b>2</b> - <v>385</v> + <v>381</v> </b> </bs> </hist> @@ -13889,7 +13610,7 @@ <b> <a>1</a> <b>2</b> - <v>385</v> + <v>381</v> </b> </bs> </hist> @@ -13947,15 +13668,15 @@ </relation> <relation> <name>ruby_in_def</name> - <cardinality>158</cardinality> + <cardinality>136</cardinality> <columnsizes> <e> <k>id</k> - <v>158</v> + <v>136</v> </e> <e> <k>child</k> - <v>158</v> + <v>136</v> </e> </columnsizes> <dependencies> @@ -13969,7 +13690,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -13985,7 +13706,7 @@ <b> <a>1</a> <b>2</b> - <v>158</v> + <v>136</v> </b> </bs> </hist> @@ -13995,11 +13716,11 @@ </relation> <relation> <name>ruby_interpolation_child</name> - <cardinality>38305</cardinality> + <cardinality>38493</cardinality> <columnsizes> <e> <k>ruby_interpolation</k> - <v>38305</v> + <v>38493</v> </e> <e> <k>index</k> @@ -14007,7 +13728,7 @@ </e> <e> <k>child</k> - <v>38305</v> + <v>38493</v> </e> </columnsizes> <dependencies> @@ -14021,7 +13742,7 @@ <b> <a>1</a> <b>2</b> - <v>38305</v> + <v>38493</v> </b> </bs> </hist> @@ -14037,7 +13758,7 @@ <b> <a>1</a> <b>2</b> - <v>38305</v> + <v>38493</v> </b> </bs> </hist> @@ -14051,8 +13772,8 @@ <budget>12</budget> <bs> <b> - <a>15038</a> - <b>15039</b> + <a>16291</a> + <b>16292</b> <v>2</v> </b> </bs> @@ -14067,8 +13788,8 @@ <budget>12</budget> <bs> <b> - <a>15038</a> - <b>15039</b> + <a>16291</a> + <b>16292</b> <v>2</v> </b> </bs> @@ -14085,7 +13806,7 @@ <b> <a>1</a> <b>2</b> - <v>38305</v> + <v>38493</v> </b> </bs> </hist> @@ -14101,7 +13822,7 @@ <b> <a>1</a> <b>2</b> - <v>38305</v> + <v>38493</v> </b> </bs> </hist> @@ -14111,26 +13832,26 @@ </relation> <relation> <name>ruby_interpolation_def</name> - <cardinality>38305</cardinality> + <cardinality>38493</cardinality> <columnsizes> <e> <k>id</k> - <v>38305</v> + <v>38493</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_keyword_parameter_def</name> - <cardinality>4144</cardinality> + <cardinality>4763</cardinality> <columnsizes> <e> <k>id</k> - <v>4144</v> + <v>4763</v> </e> <e> <k>name</k> - <v>4144</v> + <v>4763</v> </e> </columnsizes> <dependencies> @@ -14144,7 +13865,7 @@ <b> <a>1</a> <b>2</b> - <v>4144</v> + <v>4763</v> </b> </bs> </hist> @@ -14160,7 +13881,7 @@ <b> <a>1</a> <b>2</b> - <v>4144</v> + <v>4763</v> </b> </bs> </hist> @@ -14170,15 +13891,15 @@ </relation> <relation> <name>ruby_keyword_parameter_value</name> - <cardinality>3100</cardinality> + <cardinality>3293</cardinality> <columnsizes> <e> <k>ruby_keyword_parameter</k> - <v>3100</v> + <v>3293</v> </e> <e> <k>value</k> - <v>3100</v> + <v>3293</v> </e> </columnsizes> <dependencies> @@ -14192,7 +13913,7 @@ <b> <a>1</a> <b>2</b> - <v>3100</v> + <v>3293</v> </b> </bs> </hist> @@ -14208,7 +13929,7 @@ <b> <a>1</a> <b>2</b> - <v>3100</v> + <v>3293</v> </b> </bs> </hist> @@ -14218,15 +13939,15 @@ </relation> <relation> <name>ruby_keyword_pattern_def</name> - <cardinality>80</cardinality> + <cardinality>77</cardinality> <columnsizes> <e> <k>id</k> - <v>80</v> + <v>77</v> </e> <e> <k>key__</k> - <v>80</v> + <v>77</v> </e> </columnsizes> <dependencies> @@ -14240,7 +13961,7 @@ <b> <a>1</a> <b>2</b> - <v>80</v> + <v>77</v> </b> </bs> </hist> @@ -14256,7 +13977,7 @@ <b> <a>1</a> <b>2</b> - <v>80</v> + <v>77</v> </b> </bs> </hist> @@ -14266,15 +13987,15 @@ </relation> <relation> <name>ruby_keyword_pattern_value</name> - <cardinality>40</cardinality> + <cardinality>56</cardinality> <columnsizes> <e> <k>ruby_keyword_pattern</k> - <v>40</v> + <v>56</v> </e> <e> <k>value</k> - <v>40</v> + <v>56</v> </e> </columnsizes> <dependencies> @@ -14288,7 +14009,7 @@ <b> <a>1</a> <b>2</b> - <v>40</v> + <v>56</v> </b> </bs> </hist> @@ -14304,7 +14025,7 @@ <b> <a>1</a> <b>2</b> - <v>40</v> + <v>56</v> </b> </bs> </hist> @@ -14314,15 +14035,15 @@ </relation> <relation> <name>ruby_lambda_def</name> - <cardinality>7948</cardinality> + <cardinality>8187</cardinality> <columnsizes> <e> <k>id</k> - <v>7948</v> + <v>8187</v> </e> <e> <k>body</k> - <v>7948</v> + <v>8187</v> </e> </columnsizes> <dependencies> @@ -14336,7 +14057,7 @@ <b> <a>1</a> <b>2</b> - <v>7948</v> + <v>8187</v> </b> </bs> </hist> @@ -14352,7 +14073,7 @@ <b> <a>1</a> <b>2</b> - <v>7948</v> + <v>8187</v> </b> </bs> </hist> @@ -14362,15 +14083,15 @@ </relation> <relation> <name>ruby_lambda_parameters</name> - <cardinality>1762</cardinality> + <cardinality>1811</cardinality> <columnsizes> <e> <k>ruby_lambda</k> - <v>1762</v> + <v>1811</v> </e> <e> <k>parameters</k> - <v>1762</v> + <v>1811</v> </e> </columnsizes> <dependencies> @@ -14384,7 +14105,7 @@ <b> <a>1</a> <b>2</b> - <v>1762</v> + <v>1811</v> </b> </bs> </hist> @@ -14400,7 +14121,7 @@ <b> <a>1</a> <b>2</b> - <v>1762</v> + <v>1811</v> </b> </bs> </hist> @@ -14410,11 +14131,11 @@ </relation> <relation> <name>ruby_lambda_parameters_child</name> - <cardinality>2109</cardinality> + <cardinality>2197</cardinality> <columnsizes> <e> <k>ruby_lambda_parameters</k> - <v>1752</v> + <v>1801</v> </e> <e> <k>index</k> @@ -14422,7 +14143,7 @@ </e> <e> <k>child</k> - <v>2109</v> + <v>2197</v> </e> </columnsizes> <dependencies> @@ -14436,17 +14157,17 @@ <b> <a>1</a> <b>2</b> - <v>1514</v> + <v>1545</v> </b> <b> <a>2</a> <b>3</b> - <v>167</v> + <v>164</v> </b> <b> <a>3</a> <b>9</b> - <v>71</v> + <v>92</v> </b> </bs> </hist> @@ -14462,17 +14183,17 @@ <b> <a>1</a> <b>2</b> - <v>1514</v> + <v>1545</v> </b> <b> <a>2</a> <b>3</b> - <v>167</v> + <v>164</v> </b> <b> <a>3</a> <b>9</b> - <v>71</v> + <v>92</v> </b> </bs> </hist> @@ -14511,18 +14232,18 @@ <v>1</v> </b> <b> - <a>71</a> - <b>72</b> + <a>92</a> + <b>93</b> <v>1</v> </b> <b> - <a>238</a> - <b>239</b> + <a>256</a> + <b>257</b> <v>1</v> </b> <b> - <a>1752</a> - <b>1753</b> + <a>1801</a> + <b>1802</b> <v>1</v> </b> </bs> @@ -14562,18 +14283,18 @@ <v>1</v> </b> <b> - <a>71</a> - <b>72</b> + <a>92</a> + <b>93</b> <v>1</v> </b> <b> - <a>238</a> - <b>239</b> + <a>256</a> + <b>257</b> <v>1</v> </b> <b> - <a>1752</a> - <b>1753</b> + <a>1801</a> + <b>1802</b> <v>1</v> </b> </bs> @@ -14590,7 +14311,7 @@ <b> <a>1</a> <b>2</b> - <v>2109</v> + <v>2197</v> </b> </bs> </hist> @@ -14606,7 +14327,7 @@ <b> <a>1</a> <b>2</b> - <v>2109</v> + <v>2197</v> </b> </bs> </hist> @@ -14616,22 +14337,22 @@ </relation> <relation> <name>ruby_lambda_parameters_def</name> - <cardinality>1762</cardinality> + <cardinality>1811</cardinality> <columnsizes> <e> <k>id</k> - <v>1762</v> + <v>1811</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_left_assignment_list_child</name> - <cardinality>6610</cardinality> + <cardinality>6934</cardinality> <columnsizes> <e> <k>ruby_left_assignment_list</k> - <v>2994</v> + <v>3100</v> </e> <e> <k>index</k> @@ -14639,7 +14360,7 @@ </e> <e> <k>child</k> - <v>6610</v> + <v>6934</v> </e> </columnsizes> <dependencies> @@ -14653,22 +14374,22 @@ <b> <a>1</a> <b>2</b> - <v>372</v> + <v>382</v> </b> <b> <a>2</a> <b>3</b> - <v>1951</v> + <v>2002</v> </b> <b> <a>3</a> <b>4</b> - <v>505</v> + <v>531</v> </b> <b> <a>4</a> <b>16</b> - <v>166</v> + <v>185</v> </b> </bs> </hist> @@ -14684,22 +14405,22 @@ <b> <a>1</a> <b>2</b> - <v>372</v> + <v>382</v> </b> <b> <a>2</a> <b>3</b> - <v>1951</v> + <v>2002</v> </b> <b> <a>3</a> <b>4</b> - <v>505</v> + <v>531</v> </b> <b> <a>4</a> <b>16</b> - <v>166</v> + <v>185</v> </b> </bs> </hist> @@ -14713,63 +14434,63 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>3</a> + <b>4</b> <v>1</v> </b> - <b> - <a>4</a> - <b>5</b> - <v>2</v> - </b> <b> <a>6</a> <b>7</b> - <v>3</v> + <v>2</v> </b> <b> <a>10</a> <b>11</b> + <v>3</v> + </b> + <b> + <a>15</a> + <b>16</b> <v>1</v> </b> <b> - <a>14</a> - <b>15</b> + <a>20</a> + <b>21</b> <v>1</v> </b> <b> - <a>16</a> - <b>17</b> + <a>22</a> + <b>23</b> <v>1</v> </b> <b> - <a>30</a> - <b>31</b> + <a>41</a> + <b>42</b> <v>1</v> </b> <b> - <a>59</a> - <b>60</b> + <a>72</a> + <b>73</b> <v>1</v> </b> <b> - <a>166</a> - <b>167</b> + <a>185</a> + <b>186</b> <v>1</v> </b> <b> - <a>671</a> - <b>672</b> + <a>716</a> + <b>717</b> <v>1</v> </b> <b> - <a>2622</a> - <b>2623</b> + <a>2718</a> + <b>2719</b> <v>1</v> </b> <b> - <a>2994</a> - <b>2995</b> + <a>3100</a> + <b>3101</b> <v>1</v> </b> </bs> @@ -14784,63 +14505,63 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>3</a> + <b>4</b> <v>1</v> </b> - <b> - <a>4</a> - <b>5</b> - <v>2</v> - </b> <b> <a>6</a> <b>7</b> - <v>3</v> + <v>2</v> </b> <b> <a>10</a> <b>11</b> + <v>3</v> + </b> + <b> + <a>15</a> + <b>16</b> <v>1</v> </b> <b> - <a>14</a> - <b>15</b> + <a>20</a> + <b>21</b> <v>1</v> </b> <b> - <a>16</a> - <b>17</b> + <a>22</a> + <b>23</b> <v>1</v> </b> <b> - <a>30</a> - <b>31</b> + <a>41</a> + <b>42</b> <v>1</v> </b> <b> - <a>59</a> - <b>60</b> + <a>72</a> + <b>73</b> <v>1</v> </b> <b> - <a>166</a> - <b>167</b> + <a>185</a> + <b>186</b> <v>1</v> </b> <b> - <a>671</a> - <b>672</b> + <a>716</a> + <b>717</b> <v>1</v> </b> <b> - <a>2622</a> - <b>2623</b> + <a>2718</a> + <b>2719</b> <v>1</v> </b> <b> - <a>2994</a> - <b>2995</b> + <a>3100</a> + <b>3101</b> <v>1</v> </b> </bs> @@ -14857,7 +14578,7 @@ <b> <a>1</a> <b>2</b> - <v>6610</v> + <v>6934</v> </b> </bs> </hist> @@ -14873,7 +14594,7 @@ <b> <a>1</a> <b>2</b> - <v>6610</v> + <v>6934</v> </b> </bs> </hist> @@ -14883,11 +14604,11 @@ </relation> <relation> <name>ruby_left_assignment_list_def</name> - <cardinality>2994</cardinality> + <cardinality>3100</cardinality> <columnsizes> <e> <k>id</k> - <v>2994</v> + <v>3100</v> </e> </columnsizes> <dependencies/> @@ -15010,15 +14731,15 @@ </relation> <relation> <name>ruby_method_body</name> - <cardinality>101013</cardinality> + <cardinality>102401</cardinality> <columnsizes> <e> <k>ruby_method</k> - <v>101013</v> + <v>102401</v> </e> <e> <k>body</k> - <v>101013</v> + <v>102401</v> </e> </columnsizes> <dependencies> @@ -15032,7 +14753,7 @@ <b> <a>1</a> <b>2</b> - <v>101013</v> + <v>102401</v> </b> </bs> </hist> @@ -15048,7 +14769,7 @@ <b> <a>1</a> <b>2</b> - <v>101013</v> + <v>102401</v> </b> </bs> </hist> @@ -15058,15 +14779,15 @@ </relation> <relation> <name>ruby_method_def</name> - <cardinality>102124</cardinality> + <cardinality>103532</cardinality> <columnsizes> <e> <k>id</k> - <v>102124</v> + <v>103532</v> </e> <e> <k>name</k> - <v>102124</v> + <v>103532</v> </e> </columnsizes> <dependencies> @@ -15080,7 +14801,7 @@ <b> <a>1</a> <b>2</b> - <v>102124</v> + <v>103532</v> </b> </bs> </hist> @@ -15096,7 +14817,7 @@ <b> <a>1</a> <b>2</b> - <v>102124</v> + <v>103532</v> </b> </bs> </hist> @@ -15106,15 +14827,15 @@ </relation> <relation> <name>ruby_method_parameters</name> - <cardinality>29141</cardinality> + <cardinality>29519</cardinality> <columnsizes> <e> <k>ruby_method</k> - <v>29141</v> + <v>29519</v> </e> <e> <k>parameters</k> - <v>29141</v> + <v>29519</v> </e> </columnsizes> <dependencies> @@ -15128,7 +14849,7 @@ <b> <a>1</a> <b>2</b> - <v>29141</v> + <v>29519</v> </b> </bs> </hist> @@ -15144,7 +14865,7 @@ <b> <a>1</a> <b>2</b> - <v>29141</v> + <v>29519</v> </b> </bs> </hist> @@ -15154,19 +14875,19 @@ </relation> <relation> <name>ruby_method_parameters_child</name> - <cardinality>50543</cardinality> + <cardinality>51112</cardinality> <columnsizes> <e> <k>ruby_method_parameters</k> - <v>30620</v> + <v>31001</v> </e> <e> <k>index</k> - <v>39</v> + <v>41</v> </e> <e> <k>child</k> - <v>50543</v> + <v>51112</v> </e> </columnsizes> <dependencies> @@ -15180,22 +14901,22 @@ <b> <a>1</a> <b>2</b> - <v>18615</v> + <v>18836</v> </b> <b> <a>2</a> <b>3</b> - <v>7339</v> + <v>7543</v> </b> <b> <a>3</a> <b>4</b> - <v>2903</v> + <v>2840</v> </b> <b> <a>4</a> - <b>14</b> - <v>1762</v> + <b>15</b> + <v>1781</v> </b> </bs> </hist> @@ -15211,22 +14932,22 @@ <b> <a>1</a> <b>2</b> - <v>18615</v> + <v>18836</v> </b> <b> <a>2</a> <b>3</b> - <v>7339</v> + <v>7543</v> </b> <b> <a>3</a> <b>4</b> - <v>2903</v> + <v>2840</v> </b> <b> <a>4</a> - <b>14</b> - <v>1762</v> + <b>15</b> + <v>1781</v> </b> </bs> </hist> @@ -15242,62 +14963,62 @@ <b> <a>1</a> <b>2</b> - <v>6</v> + <v>8</v> </b> <b> <a>4</a> <b>5</b> - <v>3</v> + <v>2</v> </b> <b> - <a>5</a> - <b>6</b> - <v>3</v> + <a>7</a> + <b>8</b> + <v>2</v> </b> <b> - <a>11</a> - <b>12</b> - <v>3</v> + <a>13</a> + <b>14</b> + <v>2</v> </b> <b> - <a>29</a> - <b>30</b> - <v>3</v> + <a>37</a> + <b>38</b> + <v>2</v> </b> <b> - <a>54</a> - <b>55</b> - <v>3</v> + <a>59</a> + <b>60</b> + <v>2</v> </b> <b> - <a>125</a> - <b>126</b> - <v>3</v> + <a>129</a> + <b>130</b> + <v>2</v> </b> <b> - <a>255</a> - <b>256</b> - <v>3</v> + <a>262</a> + <b>263</b> + <v>2</v> </b> <b> - <a>574</a> - <b>575</b> - <v>3</v> + <a>594</a> + <b>595</b> + <v>2</v> </b> <b> - <a>1520</a> - <b>1521</b> - <v>3</v> + <a>1541</a> + <b>1542</b> + <v>2</v> </b> <b> - <a>3911</a> - <b>3912</b> - <v>3</v> + <a>4056</a> + <b>4057</b> + <v>2</v> </b> <b> - <a>9975</a> - <b>9976</b> - <v>3</v> + <a>10336</a> + <b>10337</b> + <v>2</v> </b> </bs> </hist> @@ -15313,62 +15034,62 @@ <b> <a>1</a> <b>2</b> - <v>6</v> + <v>8</v> </b> <b> <a>4</a> <b>5</b> - <v>3</v> + <v>2</v> </b> <b> - <a>5</a> - <b>6</b> - <v>3</v> + <a>7</a> + <b>8</b> + <v>2</v> </b> <b> - <a>11</a> - <b>12</b> - <v>3</v> + <a>13</a> + <b>14</b> + <v>2</v> </b> <b> - <a>29</a> - <b>30</b> - <v>3</v> + <a>37</a> + <b>38</b> + <v>2</v> </b> <b> - <a>54</a> - <b>55</b> - <v>3</v> + <a>59</a> + <b>60</b> + <v>2</v> </b> <b> - <a>125</a> - <b>126</b> - <v>3</v> + <a>129</a> + <b>130</b> + <v>2</v> </b> <b> - <a>255</a> - <b>256</b> - <v>3</v> + <a>262</a> + <b>263</b> + <v>2</v> </b> <b> - <a>574</a> - <b>575</b> - <v>3</v> + <a>594</a> + <b>595</b> + <v>2</v> </b> <b> - <a>1520</a> - <b>1521</b> - <v>3</v> + <a>1541</a> + <b>1542</b> + <v>2</v> </b> <b> - <a>3911</a> - <b>3912</b> - <v>3</v> + <a>4056</a> + <b>4057</b> + <v>2</v> </b> <b> - <a>9975</a> - <b>9976</b> - <v>3</v> + <a>10336</a> + <b>10337</b> + <v>2</v> </b> </bs> </hist> @@ -15384,7 +15105,7 @@ <b> <a>1</a> <b>2</b> - <v>50543</v> + <v>51112</v> </b> </bs> </hist> @@ -15400,7 +15121,7 @@ <b> <a>1</a> <b>2</b> - <v>50543</v> + <v>51112</v> </b> </bs> </hist> @@ -15410,26 +15131,26 @@ </relation> <relation> <name>ruby_method_parameters_def</name> - <cardinality>30832</cardinality> + <cardinality>31208</cardinality> <columnsizes> <e> <k>id</k> - <v>30832</v> + <v>31208</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_module_body</name> - <cardinality>22274</cardinality> + <cardinality>22881</cardinality> <columnsizes> <e> <k>ruby_module</k> - <v>22274</v> + <v>22881</v> </e> <e> <k>body</k> - <v>22274</v> + <v>22881</v> </e> </columnsizes> <dependencies> @@ -15443,7 +15164,7 @@ <b> <a>1</a> <b>2</b> - <v>22274</v> + <v>22881</v> </b> </bs> </hist> @@ -15459,7 +15180,7 @@ <b> <a>1</a> <b>2</b> - <v>22274</v> + <v>22881</v> </b> </bs> </hist> @@ -15469,15 +15190,15 @@ </relation> <relation> <name>ruby_module_def</name> - <cardinality>22353</cardinality> + <cardinality>22962</cardinality> <columnsizes> <e> <k>id</k> - <v>22353</v> + <v>22962</v> </e> <e> <k>name</k> - <v>22353</v> + <v>22962</v> </e> </columnsizes> <dependencies> @@ -15491,7 +15212,7 @@ <b> <a>1</a> <b>2</b> - <v>22353</v> + <v>22962</v> </b> </bs> </hist> @@ -15507,7 +15228,7 @@ <b> <a>1</a> <b>2</b> - <v>22353</v> + <v>22962</v> </b> </bs> </hist> @@ -15517,15 +15238,15 @@ </relation> <relation> <name>ruby_next_child</name> - <cardinality>241</cardinality> + <cardinality>256</cardinality> <columnsizes> <e> <k>ruby_next</k> - <v>241</v> + <v>256</v> </e> <e> <k>child</k> - <v>241</v> + <v>256</v> </e> </columnsizes> <dependencies> @@ -15539,7 +15260,7 @@ <b> <a>1</a> <b>2</b> - <v>241</v> + <v>256</v> </b> </bs> </hist> @@ -15555,7 +15276,7 @@ <b> <a>1</a> <b>2</b> - <v>241</v> + <v>256</v> </b> </bs> </hist> @@ -15565,34 +15286,34 @@ </relation> <relation> <name>ruby_next_def</name> - <cardinality>1902</cardinality> + <cardinality>2020</cardinality> <columnsizes> <e> <k>id</k> - <v>1902</v> + <v>2020</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_operator_assignment_def</name> - <cardinality>6006</cardinality> + <cardinality>6160</cardinality> <columnsizes> <e> <k>id</k> - <v>6006</v> + <v>6160</v> </e> <e> <k>left</k> - <v>6006</v> + <v>6160</v> </e> <e> <k>operator</k> - <v>17</v> + <v>16</v> </e> <e> <k>right</k> - <v>6006</v> + <v>6160</v> </e> </columnsizes> <dependencies> @@ -15606,7 +15327,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15622,7 +15343,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15638,7 +15359,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15654,7 +15375,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15670,7 +15391,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15686,7 +15407,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15700,8 +15421,8 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>3</a> + <b>4</b> <v>2</v> </b> <b> @@ -15710,28 +15431,28 @@ <v>2</v> </b> <b> - <a>8</a> - <b>9</b> + <a>10</a> + <b>11</b> <v>2</v> </b> <b> - <a>9</a> - <b>10</b> + <a>11</a> + <b>12</b> <v>2</v> </b> <b> - <a>60</a> - <b>61</b> + <a>64</a> + <b>65</b> <v>2</v> </b> <b> - <a>630</a> - <b>631</b> + <a>707</a> + <b>708</b> <v>2</v> </b> <b> - <a>1645</a> - <b>1646</b> + <a>1808</a> + <b>1809</b> <v>2</v> </b> </bs> @@ -15746,8 +15467,8 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>3</a> + <b>4</b> <v>2</v> </b> <b> @@ -15756,28 +15477,28 @@ <v>2</v> </b> <b> - <a>8</a> - <b>9</b> + <a>10</a> + <b>11</b> <v>2</v> </b> <b> - <a>9</a> - <b>10</b> + <a>11</a> + <b>12</b> <v>2</v> </b> <b> - <a>60</a> - <b>61</b> + <a>64</a> + <b>65</b> <v>2</v> </b> <b> - <a>630</a> - <b>631</b> + <a>707</a> + <b>708</b> <v>2</v> </b> <b> - <a>1645</a> - <b>1646</b> + <a>1808</a> + <b>1809</b> <v>2</v> </b> </bs> @@ -15792,8 +15513,8 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>3</a> + <b>4</b> <v>2</v> </b> <b> @@ -15802,28 +15523,28 @@ <v>2</v> </b> <b> - <a>8</a> - <b>9</b> + <a>10</a> + <b>11</b> <v>2</v> </b> <b> - <a>9</a> - <b>10</b> + <a>11</a> + <b>12</b> <v>2</v> </b> <b> - <a>60</a> - <b>61</b> + <a>64</a> + <b>65</b> <v>2</v> </b> <b> - <a>630</a> - <b>631</b> + <a>707</a> + <b>708</b> <v>2</v> </b> <b> - <a>1645</a> - <b>1646</b> + <a>1808</a> + <b>1809</b> <v>2</v> </b> </bs> @@ -15840,7 +15561,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15856,7 +15577,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15872,7 +15593,7 @@ <b> <a>1</a> <b>2</b> - <v>6006</v> + <v>6160</v> </b> </bs> </hist> @@ -15882,19 +15603,19 @@ </relation> <relation> <name>ruby_optional_parameter_def</name> - <cardinality>6636</cardinality> + <cardinality>6556</cardinality> <columnsizes> <e> <k>id</k> - <v>6636</v> + <v>6556</v> </e> <e> <k>name</k> - <v>6636</v> + <v>6556</v> </e> <e> <k>value</k> - <v>6636</v> + <v>6556</v> </e> </columnsizes> <dependencies> @@ -15908,7 +15629,7 @@ <b> <a>1</a> <b>2</b> - <v>6636</v> + <v>6556</v> </b> </bs> </hist> @@ -15924,7 +15645,7 @@ <b> <a>1</a> <b>2</b> - <v>6636</v> + <v>6556</v> </b> </bs> </hist> @@ -15940,7 +15661,7 @@ <b> <a>1</a> <b>2</b> - <v>6636</v> + <v>6556</v> </b> </bs> </hist> @@ -15956,7 +15677,7 @@ <b> <a>1</a> <b>2</b> - <v>6636</v> + <v>6556</v> </b> </bs> </hist> @@ -15972,7 +15693,7 @@ <b> <a>1</a> <b>2</b> - <v>6636</v> + <v>6556</v> </b> </bs> </hist> @@ -15988,7 +15709,7 @@ <b> <a>1</a> <b>2</b> - <v>6636</v> + <v>6556</v> </b> </bs> </hist> @@ -15998,15 +15719,15 @@ </relation> <relation> <name>ruby_pair_def</name> - <cardinality>248347</cardinality> + <cardinality>254198</cardinality> <columnsizes> <e> <k>id</k> - <v>248347</v> + <v>254198</v> </e> <e> <k>key__</k> - <v>248347</v> + <v>254198</v> </e> </columnsizes> <dependencies> @@ -16020,7 +15741,7 @@ <b> <a>1</a> <b>2</b> - <v>248347</v> + <v>254198</v> </b> </bs> </hist> @@ -16036,7 +15757,7 @@ <b> <a>1</a> <b>2</b> - <v>248347</v> + <v>254198</v> </b> </bs> </hist> @@ -16046,15 +15767,15 @@ </relation> <relation> <name>ruby_pair_value</name> - <cardinality>248347</cardinality> + <cardinality>254198</cardinality> <columnsizes> <e> <k>ruby_pair</k> - <v>248347</v> + <v>254198</v> </e> <e> <k>value</k> - <v>248347</v> + <v>254198</v> </e> </columnsizes> <dependencies> @@ -16068,7 +15789,7 @@ <b> <a>1</a> <b>2</b> - <v>248347</v> + <v>254198</v> </b> </bs> </hist> @@ -16084,7 +15805,7 @@ <b> <a>1</a> <b>2</b> - <v>248347</v> + <v>254198</v> </b> </bs> </hist> @@ -16142,11 +15863,11 @@ </relation> <relation> <name>ruby_parenthesized_statements_child</name> - <cardinality>10948</cardinality> + <cardinality>11347</cardinality> <columnsizes> <e> <k>ruby_parenthesized_statements</k> - <v>10874</v> + <v>11258</v> </e> <e> <k>index</k> @@ -16154,7 +15875,7 @@ </e> <e> <k>child</k> - <v>10948</v> + <v>11347</v> </e> </columnsizes> <dependencies> @@ -16168,12 +15889,12 @@ <b> <a>1</a> <b>2</b> - <v>10810</v> + <v>11179</v> </b> <b> <a>2</a> <b>5</b> - <v>64</v> + <v>79</v> </b> </bs> </hist> @@ -16189,12 +15910,12 @@ <b> <a>1</a> <b>2</b> - <v>10810</v> + <v>11179</v> </b> <b> <a>2</a> <b>5</b> - <v>64</v> + <v>79</v> </b> </bs> </hist> @@ -16218,13 +15939,13 @@ <v>1</v> </b> <b> - <a>64</a> - <b>65</b> + <a>79</a> + <b>80</b> <v>1</v> </b> <b> - <a>10874</a> - <b>10875</b> + <a>11258</a> + <b>11259</b> <v>1</v> </b> </bs> @@ -16249,13 +15970,13 @@ <v>1</v> </b> <b> - <a>64</a> - <b>65</b> + <a>79</a> + <b>80</b> <v>1</v> </b> <b> - <a>10874</a> - <b>10875</b> + <a>11258</a> + <b>11259</b> <v>1</v> </b> </bs> @@ -16272,7 +15993,7 @@ <b> <a>1</a> <b>2</b> - <v>10948</v> + <v>11347</v> </b> </bs> </hist> @@ -16288,7 +16009,7 @@ <b> <a>1</a> <b>2</b> - <v>10948</v> + <v>11347</v> </b> </bs> </hist> @@ -16298,26 +16019,26 @@ </relation> <relation> <name>ruby_parenthesized_statements_def</name> - <cardinality>10912</cardinality> + <cardinality>11296</cardinality> <columnsizes> <e> <k>id</k> - <v>10912</v> + <v>11296</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_pattern_def</name> - <cardinality>4153</cardinality> + <cardinality>4745</cardinality> <columnsizes> <e> <k>id</k> - <v>4153</v> + <v>4745</v> </e> <e> <k>child</k> - <v>4153</v> + <v>4745</v> </e> </columnsizes> <dependencies> @@ -16331,7 +16052,7 @@ <b> <a>1</a> <b>2</b> - <v>4153</v> + <v>4745</v> </b> </bs> </hist> @@ -16347,7 +16068,7 @@ <b> <a>1</a> <b>2</b> - <v>4153</v> + <v>4745</v> </b> </bs> </hist> @@ -16357,11 +16078,11 @@ </relation> <relation> <name>ruby_program_child</name> - <cardinality>33982</cardinality> + <cardinality>33893</cardinality> <columnsizes> <e> <k>ruby_program</k> - <v>10658</v> + <v>10674</v> </e> <e> <k>index</k> @@ -16369,7 +16090,7 @@ </e> <e> <k>child</k> - <v>33982</v> + <v>33893</v> </e> </columnsizes> <dependencies> @@ -16383,32 +16104,32 @@ <b> <a>1</a> <b>2</b> - <v>3932</v> + <v>3956</v> </b> <b> <a>2</a> <b>3</b> - <v>2514</v> + <v>2531</v> </b> <b> <a>3</a> <b>4</b> - <v>1758</v> + <v>1772</v> </b> <b> <a>4</a> <b>5</b> - <v>801</v> + <v>794</v> </b> <b> <a>5</a> <b>8</b> - <v>917</v> + <v>902</v> </b> <b> <a>8</a> - <b>79</b> - <v>733</v> + <b>81</b> + <v>716</v> </b> </bs> </hist> @@ -16424,32 +16145,32 @@ <b> <a>1</a> <b>2</b> - <v>3932</v> + <v>3956</v> </b> <b> <a>2</a> <b>3</b> - <v>2514</v> + <v>2531</v> </b> <b> <a>3</a> <b>4</b> - <v>1758</v> + <v>1772</v> </b> <b> <a>4</a> <b>5</b> - <v>801</v> + <v>794</v> </b> <b> <a>5</a> <b>8</b> - <v>917</v> + <v>902</v> </b> <b> <a>8</a> - <b>79</b> - <v>733</v> + <b>81</b> + <v>716</v> </b> </bs> </hist> @@ -16465,57 +16186,57 @@ <b> <a>1</a> <b>2</b> - <v>46</v> + <v>50</v> </b> <b> <a>2</a> <b>3</b> - <v>36</v> + <v>29</v> </b> <b> - <a>4</a> - <b>9</b> - <v>21</v> + <a>3</a> + <b>7</b> + <v>17</v> </b> <b> - <a>9</a> - <b>12</b> - <v>18</v> + <a>8</a> + <b>11</b> + <v>17</v> </b> <b> - <a>13</a> - <b>17</b> - <v>18</v> + <a>11</a> + <b>15</b> + <v>17</v> </b> <b> - <a>17</a> - <b>28</b> - <v>18</v> + <a>16</a> + <b>23</b> + <v>17</v> </b> <b> - <a>29</a> - <b>44</b> - <v>18</v> + <a>26</a> + <b>36</b> + <v>17</v> </b> <b> - <a>45</a> - <b>80</b> - <v>18</v> + <a>38</a> + <b>60</b> + <v>17</v> </b> <b> - <a>89</a> - <b>190</b> - <v>18</v> + <a>67</a> + <b>129</b> + <v>17</v> </b> <b> - <a>239</a> - <b>1373</b> - <v>18</v> + <a>145</a> + <b>397</b> + <v>17</v> </b> <b> - <a>2191</a> - <b>3473</b> - <v>6</v> + <a>540</a> + <b>3560</b> + <v>14</v> </b> </bs> </hist> @@ -16531,57 +16252,57 @@ <b> <a>1</a> <b>2</b> - <v>46</v> + <v>50</v> </b> <b> <a>2</a> <b>3</b> - <v>36</v> + <v>29</v> </b> <b> - <a>4</a> - <b>9</b> - <v>21</v> + <a>3</a> + <b>7</b> + <v>17</v> </b> <b> - <a>9</a> - <b>12</b> - <v>18</v> + <a>8</a> + <b>11</b> + <v>17</v> </b> <b> - <a>13</a> - <b>17</b> - <v>18</v> + <a>11</a> + <b>15</b> + <v>17</v> </b> <b> - <a>17</a> - <b>28</b> - <v>18</v> + <a>16</a> + <b>23</b> + <v>17</v> </b> <b> - <a>29</a> - <b>44</b> - <v>18</v> + <a>26</a> + <b>36</b> + <v>17</v> </b> <b> - <a>45</a> - <b>80</b> - <v>18</v> + <a>38</a> + <b>60</b> + <v>17</v> </b> <b> - <a>89</a> - <b>190</b> - <v>18</v> + <a>67</a> + <b>129</b> + <v>17</v> </b> <b> - <a>239</a> - <b>1373</b> - <v>18</v> + <a>145</a> + <b>397</b> + <v>17</v> </b> <b> - <a>2191</a> - <b>3473</b> - <v>6</v> + <a>540</a> + <b>3560</b> + <v>14</v> </b> </bs> </hist> @@ -16597,7 +16318,7 @@ <b> <a>1</a> <b>2</b> - <v>33982</v> + <v>33893</v> </b> </bs> </hist> @@ -16613,7 +16334,7 @@ <b> <a>1</a> <b>2</b> - <v>33982</v> + <v>33893</v> </b> </bs> </hist> @@ -16623,26 +16344,26 @@ </relation> <relation> <name>ruby_program_def</name> - <cardinality>18219</cardinality> + <cardinality>18697</cardinality> <columnsizes> <e> <k>id</k> - <v>18219</v> + <v>18697</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_range_begin</name> - <cardinality>4491</cardinality> + <cardinality>4748</cardinality> <columnsizes> <e> <k>ruby_range</k> - <v>4491</v> + <v>4748</v> </e> <e> <k>begin</k> - <v>4491</v> + <v>4748</v> </e> </columnsizes> <dependencies> @@ -16656,7 +16377,7 @@ <b> <a>1</a> <b>2</b> - <v>4491</v> + <v>4748</v> </b> </bs> </hist> @@ -16672,7 +16393,7 @@ <b> <a>1</a> <b>2</b> - <v>4491</v> + <v>4748</v> </b> </bs> </hist> @@ -16682,11 +16403,11 @@ </relation> <relation> <name>ruby_range_def</name> - <cardinality>4770</cardinality> + <cardinality>5066</cardinality> <columnsizes> <e> <k>id</k> - <v>4770</v> + <v>5066</v> </e> <e> <k>operator</k> @@ -16704,7 +16425,7 @@ <b> <a>1</a> <b>2</b> - <v>4770</v> + <v>5066</v> </b> </bs> </hist> @@ -16718,13 +16439,13 @@ <budget>12</budget> <bs> <b> - <a>1634</a> - <b>1635</b> + <a>1376</a> + <b>1377</b> <v>1</v> </b> <b> - <a>3136</a> - <b>3137</b> + <a>3690</a> + <b>3691</b> <v>1</v> </b> </bs> @@ -16735,15 +16456,15 @@ </relation> <relation> <name>ruby_range_end</name> - <cardinality>4576</cardinality> + <cardinality>4818</cardinality> <columnsizes> <e> <k>ruby_range</k> - <v>4576</v> + <v>4818</v> </e> <e> <k>end</k> - <v>4576</v> + <v>4818</v> </e> </columnsizes> <dependencies> @@ -16757,7 +16478,7 @@ <b> <a>1</a> <b>2</b> - <v>4576</v> + <v>4818</v> </b> </bs> </hist> @@ -16773,7 +16494,7 @@ <b> <a>1</a> <b>2</b> - <v>4576</v> + <v>4818</v> </b> </bs> </hist> @@ -16783,15 +16504,15 @@ </relation> <relation> <name>ruby_rational_def</name> - <cardinality>138</cardinality> + <cardinality>166</cardinality> <columnsizes> <e> <k>id</k> - <v>138</v> + <v>166</v> </e> <e> <k>child</k> - <v>138</v> + <v>166</v> </e> </columnsizes> <dependencies> @@ -16805,7 +16526,7 @@ <b> <a>1</a> <b>2</b> - <v>138</v> + <v>166</v> </b> </bs> </hist> @@ -16821,7 +16542,7 @@ <b> <a>1</a> <b>2</b> - <v>138</v> + <v>166</v> </b> </bs> </hist> @@ -16890,19 +16611,19 @@ </relation> <relation> <name>ruby_regex_child</name> - <cardinality>44658</cardinality> + <cardinality>45368</cardinality> <columnsizes> <e> <k>ruby_regex</k> - <v>13335</v> + <v>13665</v> </e> <e> <k>index</k> - <v>150</v> + <v>146</v> </e> <e> <k>child</k> - <v>44658</v> + <v>45368</v> </e> </columnsizes> <dependencies> @@ -16916,42 +16637,42 @@ <b> <a>1</a> <b>2</b> - <v>6808</v> + <v>7006</v> </b> <b> <a>2</a> <b>3</b> - <v>752</v> + <v>800</v> </b> <b> <a>3</a> <b>4</b> - <v>1826</v> + <v>1868</v> </b> <b> <a>4</a> <b>5</b> - <v>506</v> + <v>500</v> </b> <b> <a>5</a> <b>6</b> - <v>1108</v> + <v>1124</v> </b> <b> <a>6</a> <b>8</b> - <v>1034</v> + <v>1031</v> </b> <b> <a>8</a> <b>16</b> - <v>1055</v> + <v>1094</v> </b> <b> <a>16</a> <b>50</b> - <v>242</v> + <v>236</v> </b> </bs> </hist> @@ -16967,42 +16688,42 @@ <b> <a>1</a> <b>2</b> - <v>6808</v> + <v>7006</v> </b> <b> <a>2</a> <b>3</b> - <v>752</v> + <v>800</v> </b> <b> <a>3</a> <b>4</b> - <v>1826</v> + <v>1868</v> </b> <b> <a>4</a> <b>5</b> - <v>506</v> + <v>500</v> </b> <b> <a>5</a> <b>6</b> - <v>1108</v> + <v>1124</v> </b> <b> <a>6</a> <b>8</b> - <v>1034</v> + <v>1031</v> </b> <b> <a>8</a> <b>16</b> - <v>1055</v> + <v>1094</v> </b> <b> <a>16</a> <b>50</b> - <v>242</v> + <v>236</v> </b> </bs> </hist> @@ -17018,67 +16739,67 @@ <b> <a>1</a> <b>2</b> - <v>18</v> + <v>17</v> </b> <b> <a>4</a> <b>5</b> - <v>12</v> + <v>11</v> </b> <b> <a>6</a> <b>7</b> - <v>3</v> + <v>2</v> </b> <b> <a>7</a> <b>8</b> - <v>12</v> + <v>11</v> </b> <b> <a>8</a> <b>15</b> - <v>12</v> + <v>11</v> </b> <b> <a>15</a> - <b>19</b> - <v>12</v> + <b>18</b> + <v>8</v> </b> <b> - <a>19</a> - <b>23</b> - <v>9</v> + <a>18</a> + <b>21</b> + <v>11</v> </b> <b> - <a>23</a> + <a>21</a> <b>31</b> - <v>12</v> + <v>11</v> </b> <b> <a>32</a> <b>80</b> - <v>12</v> + <v>11</v> </b> <b> <a>103</a> - <b>175</b> - <v>12</v> + <b>184</b> + <v>11</v> </b> <b> - <a>239</a> - <b>424</b> - <v>12</v> + <a>249</a> + <b>445</b> + <v>11</v> </b> <b> - <a>671</a> - <b>1287</b> - <v>12</v> + <a>696</a> + <b>1331</b> + <v>11</v> </b> <b> - <a>1881</a> - <b>4345</b> - <v>9</v> + <a>1953</a> + <b>4557</b> + <v>8</v> </b> </bs> </hist> @@ -17094,67 +16815,67 @@ <b> <a>1</a> <b>2</b> - <v>18</v> + <v>17</v> </b> <b> <a>4</a> <b>5</b> - <v>12</v> + <v>11</v> </b> <b> <a>6</a> <b>7</b> - <v>3</v> + <v>2</v> </b> <b> <a>7</a> <b>8</b> - <v>12</v> + <v>11</v> </b> <b> <a>8</a> <b>15</b> - <v>12</v> + <v>11</v> </b> <b> <a>15</a> - <b>19</b> - <v>12</v> + <b>18</b> + <v>8</v> </b> <b> - <a>19</a> - <b>23</b> - <v>9</v> + <a>18</a> + <b>21</b> + <v>11</v> </b> <b> - <a>23</a> + <a>21</a> <b>31</b> - <v>12</v> + <v>11</v> </b> <b> <a>32</a> <b>80</b> - <v>12</v> + <v>11</v> </b> <b> <a>103</a> - <b>175</b> - <v>12</v> + <b>184</b> + <v>11</v> </b> <b> - <a>239</a> - <b>424</b> - <v>12</v> + <a>249</a> + <b>445</b> + <v>11</v> </b> <b> - <a>671</a> - <b>1287</b> - <v>12</v> + <a>696</a> + <b>1331</b> + <v>11</v> </b> <b> - <a>1881</a> - <b>4345</b> - <v>9</v> + <a>1953</a> + <b>4557</b> + <v>8</v> </b> </bs> </hist> @@ -17170,7 +16891,7 @@ <b> <a>1</a> <b>2</b> - <v>44658</v> + <v>45368</v> </b> </bs> </hist> @@ -17186,7 +16907,7 @@ <b> <a>1</a> <b>2</b> - <v>44658</v> + <v>45368</v> </b> </bs> </hist> @@ -17196,26 +16917,26 @@ </relation> <relation> <name>ruby_regex_def</name> - <cardinality>13350</cardinality> + <cardinality>13680</cardinality> <columnsizes> <e> <k>id</k> - <v>13350</v> + <v>13680</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_rescue_body</name> - <cardinality>2083</cardinality> + <cardinality>2050</cardinality> <columnsizes> <e> <k>ruby_rescue</k> - <v>2083</v> + <v>2050</v> </e> <e> <k>body</k> - <v>2083</v> + <v>2050</v> </e> </columnsizes> <dependencies> @@ -17229,7 +16950,7 @@ <b> <a>1</a> <b>2</b> - <v>2083</v> + <v>2050</v> </b> </bs> </hist> @@ -17245,7 +16966,7 @@ <b> <a>1</a> <b>2</b> - <v>2083</v> + <v>2050</v> </b> </bs> </hist> @@ -17255,26 +16976,26 @@ </relation> <relation> <name>ruby_rescue_def</name> - <cardinality>2346</cardinality> + <cardinality>2299</cardinality> <columnsizes> <e> <k>id</k> - <v>2346</v> + <v>2299</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_rescue_exceptions</name> - <cardinality>1938</cardinality> + <cardinality>1904</cardinality> <columnsizes> <e> <k>ruby_rescue</k> - <v>1938</v> + <v>1904</v> </e> <e> <k>exceptions</k> - <v>1938</v> + <v>1904</v> </e> </columnsizes> <dependencies> @@ -17288,7 +17009,7 @@ <b> <a>1</a> <b>2</b> - <v>1938</v> + <v>1904</v> </b> </bs> </hist> @@ -17304,7 +17025,7 @@ <b> <a>1</a> <b>2</b> - <v>1938</v> + <v>1904</v> </b> </bs> </hist> @@ -17314,19 +17035,19 @@ </relation> <relation> <name>ruby_rescue_modifier_def</name> - <cardinality>448</cardinality> + <cardinality>458</cardinality> <columnsizes> <e> <k>id</k> - <v>448</v> + <v>458</v> </e> <e> <k>body</k> - <v>448</v> + <v>458</v> </e> <e> <k>handler</k> - <v>448</v> + <v>458</v> </e> </columnsizes> <dependencies> @@ -17340,7 +17061,7 @@ <b> <a>1</a> <b>2</b> - <v>448</v> + <v>458</v> </b> </bs> </hist> @@ -17356,7 +17077,7 @@ <b> <a>1</a> <b>2</b> - <v>448</v> + <v>458</v> </b> </bs> </hist> @@ -17372,7 +17093,7 @@ <b> <a>1</a> <b>2</b> - <v>448</v> + <v>458</v> </b> </bs> </hist> @@ -17388,7 +17109,7 @@ <b> <a>1</a> <b>2</b> - <v>448</v> + <v>458</v> </b> </bs> </hist> @@ -17404,7 +17125,7 @@ <b> <a>1</a> <b>2</b> - <v>448</v> + <v>458</v> </b> </bs> </hist> @@ -17420,7 +17141,7 @@ <b> <a>1</a> <b>2</b> - <v>448</v> + <v>458</v> </b> </bs> </hist> @@ -17430,15 +17151,15 @@ </relation> <relation> <name>ruby_rescue_variable</name> - <cardinality>924</cardinality> + <cardinality>935</cardinality> <columnsizes> <e> <k>ruby_rescue</k> - <v>924</v> + <v>935</v> </e> <e> <k>variable</k> - <v>924</v> + <v>935</v> </e> </columnsizes> <dependencies> @@ -17452,7 +17173,7 @@ <b> <a>1</a> <b>2</b> - <v>924</v> + <v>935</v> </b> </bs> </hist> @@ -17468,7 +17189,7 @@ <b> <a>1</a> <b>2</b> - <v>924</v> + <v>935</v> </b> </bs> </hist> @@ -17478,15 +17199,15 @@ </relation> <relation> <name>ruby_rest_assignment_child</name> - <cardinality>383</cardinality> + <cardinality>392</cardinality> <columnsizes> <e> <k>ruby_rest_assignment</k> - <v>383</v> + <v>392</v> </e> <e> <k>child</k> - <v>383</v> + <v>392</v> </e> </columnsizes> <dependencies> @@ -17500,7 +17221,7 @@ <b> <a>1</a> <b>2</b> - <v>383</v> + <v>392</v> </b> </bs> </hist> @@ -17516,7 +17237,7 @@ <b> <a>1</a> <b>2</b> - <v>383</v> + <v>392</v> </b> </bs> </hist> @@ -17526,11 +17247,11 @@ </relation> <relation> <name>ruby_rest_assignment_def</name> - <cardinality>401</cardinality> + <cardinality>414</cardinality> <columnsizes> <e> <k>id</k> - <v>401</v> + <v>414</v> </e> </columnsizes> <dependencies/> @@ -17585,26 +17306,26 @@ </relation> <relation> <name>ruby_retry_def</name> - <cardinality>60</cardinality> + <cardinality>58</cardinality> <columnsizes> <e> <k>id</k> - <v>60</v> + <v>58</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_return_child</name> - <cardinality>5084</cardinality> + <cardinality>4938</cardinality> <columnsizes> <e> <k>ruby_return</k> - <v>5084</v> + <v>4938</v> </e> <e> <k>child</k> - <v>5084</v> + <v>4938</v> </e> </columnsizes> <dependencies> @@ -17618,7 +17339,7 @@ <b> <a>1</a> <b>2</b> - <v>5084</v> + <v>4938</v> </b> </bs> </hist> @@ -17634,7 +17355,7 @@ <b> <a>1</a> <b>2</b> - <v>5084</v> + <v>4938</v> </b> </bs> </hist> @@ -17644,30 +17365,30 @@ </relation> <relation> <name>ruby_return_def</name> - <cardinality>8197</cardinality> + <cardinality>7979</cardinality> <columnsizes> <e> <k>id</k> - <v>8197</v> + <v>7979</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_right_assignment_list_child</name> - <cardinality>2600</cardinality> + <cardinality>2741</cardinality> <columnsizes> <e> <k>ruby_right_assignment_list</k> - <v>1224</v> + <v>1280</v> </e> <e> <k>index</k> - <v>15</v> + <v>14</v> </e> <e> <k>child</k> - <v>2600</v> + <v>2741</v> </e> </columnsizes> <dependencies> @@ -17681,17 +17402,17 @@ <b> <a>2</a> <b>3</b> - <v>1098</v> + <v>1136</v> </b> <b> <a>3</a> <b>4</b> - <v>104</v> + <v>113</v> </b> <b> <a>4</a> <b>6</b> - <v>21</v> + <v>29</v> </b> </bs> </hist> @@ -17707,17 +17428,17 @@ <b> <a>2</a> <b>3</b> - <v>1098</v> + <v>1136</v> </b> <b> <a>3</a> <b>4</b> - <v>104</v> + <v>113</v> </b> <b> <a>4</a> <b>6</b> - <v>21</v> + <v>29</v> </b> </bs> </hist> @@ -17731,24 +17452,24 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> - <v>3</v> + <a>2</a> + <b>3</b> + <v>2</v> </b> <b> - <a>7</a> - <b>8</b> - <v>3</v> + <a>10</a> + <b>11</b> + <v>2</v> </b> <b> - <a>41</a> - <b>42</b> - <v>3</v> + <a>48</a> + <b>49</b> + <v>2</v> </b> <b> - <a>399</a> - <b>400</b> - <v>6</v> + <a>427</a> + <b>428</b> + <v>5</v> </b> </bs> </hist> @@ -17762,24 +17483,24 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> - <v>3</v> + <a>2</a> + <b>3</b> + <v>2</v> </b> <b> - <a>7</a> - <b>8</b> - <v>3</v> + <a>10</a> + <b>11</b> + <v>2</v> </b> <b> - <a>41</a> - <b>42</b> - <v>3</v> + <a>48</a> + <b>49</b> + <v>2</v> </b> <b> - <a>399</a> - <b>400</b> - <v>6</v> + <a>427</a> + <b>428</b> + <v>5</v> </b> </bs> </hist> @@ -17795,7 +17516,7 @@ <b> <a>1</a> <b>2</b> - <v>2600</v> + <v>2741</v> </b> </bs> </hist> @@ -17811,7 +17532,7 @@ <b> <a>1</a> <b>2</b> - <v>2600</v> + <v>2741</v> </b> </bs> </hist> @@ -17821,26 +17542,26 @@ </relation> <relation> <name>ruby_right_assignment_list_def</name> - <cardinality>1224</cardinality> + <cardinality>1280</cardinality> <columnsizes> <e> <k>id</k> - <v>1224</v> + <v>1280</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_scope_resolution_def</name> - <cardinality>84884</cardinality> + <cardinality>87113</cardinality> <columnsizes> <e> <k>id</k> - <v>84884</v> + <v>87113</v> </e> <e> <k>name</k> - <v>84884</v> + <v>87113</v> </e> </columnsizes> <dependencies> @@ -17854,7 +17575,7 @@ <b> <a>1</a> <b>2</b> - <v>84884</v> + <v>87113</v> </b> </bs> </hist> @@ -17870,7 +17591,7 @@ <b> <a>1</a> <b>2</b> - <v>84884</v> + <v>87113</v> </b> </bs> </hist> @@ -17880,15 +17601,15 @@ </relation> <relation> <name>ruby_scope_resolution_scope</name> - <cardinality>83028</cardinality> + <cardinality>85203</cardinality> <columnsizes> <e> <k>ruby_scope_resolution</k> - <v>83028</v> + <v>85203</v> </e> <e> <k>scope</k> - <v>83028</v> + <v>85203</v> </e> </columnsizes> <dependencies> @@ -17902,7 +17623,7 @@ <b> <a>1</a> <b>2</b> - <v>83028</v> + <v>85203</v> </b> </bs> </hist> @@ -17918,7 +17639,7 @@ <b> <a>1</a> <b>2</b> - <v>83028</v> + <v>85203</v> </b> </bs> </hist> @@ -17928,15 +17649,15 @@ </relation> <relation> <name>ruby_setter_def</name> - <cardinality>653</cardinality> + <cardinality>656</cardinality> <columnsizes> <e> <k>id</k> - <v>653</v> + <v>656</v> </e> <e> <k>name</k> - <v>653</v> + <v>656</v> </e> </columnsizes> <dependencies> @@ -17950,7 +17671,7 @@ <b> <a>1</a> <b>2</b> - <v>653</v> + <v>656</v> </b> </bs> </hist> @@ -17966,7 +17687,7 @@ <b> <a>1</a> <b>2</b> - <v>653</v> + <v>656</v> </b> </bs> </hist> @@ -17976,15 +17697,15 @@ </relation> <relation> <name>ruby_singleton_class_body</name> - <cardinality>663</cardinality> + <cardinality>677</cardinality> <columnsizes> <e> <k>ruby_singleton_class</k> - <v>663</v> + <v>677</v> </e> <e> <k>body</k> - <v>663</v> + <v>677</v> </e> </columnsizes> <dependencies> @@ -17998,7 +17719,7 @@ <b> <a>1</a> <b>2</b> - <v>663</v> + <v>677</v> </b> </bs> </hist> @@ -18014,7 +17735,7 @@ <b> <a>1</a> <b>2</b> - <v>663</v> + <v>677</v> </b> </bs> </hist> @@ -18024,15 +17745,15 @@ </relation> <relation> <name>ruby_singleton_class_def</name> - <cardinality>663</cardinality> + <cardinality>677</cardinality> <columnsizes> <e> <k>id</k> - <v>663</v> + <v>677</v> </e> <e> <k>value</k> - <v>663</v> + <v>677</v> </e> </columnsizes> <dependencies> @@ -18046,7 +17767,7 @@ <b> <a>1</a> <b>2</b> - <v>663</v> + <v>677</v> </b> </bs> </hist> @@ -18062,7 +17783,7 @@ <b> <a>1</a> <b>2</b> - <v>663</v> + <v>677</v> </b> </bs> </hist> @@ -18072,15 +17793,15 @@ </relation> <relation> <name>ruby_singleton_method_body</name> - <cardinality>6447</cardinality> + <cardinality>6313</cardinality> <columnsizes> <e> <k>ruby_singleton_method</k> - <v>6447</v> + <v>6313</v> </e> <e> <k>body</k> - <v>6447</v> + <v>6313</v> </e> </columnsizes> <dependencies> @@ -18094,7 +17815,7 @@ <b> <a>1</a> <b>2</b> - <v>6447</v> + <v>6313</v> </b> </bs> </hist> @@ -18110,7 +17831,7 @@ <b> <a>1</a> <b>2</b> - <v>6447</v> + <v>6313</v> </b> </bs> </hist> @@ -18120,19 +17841,19 @@ </relation> <relation> <name>ruby_singleton_method_def</name> - <cardinality>6459</cardinality> + <cardinality>6325</cardinality> <columnsizes> <e> <k>id</k> - <v>6459</v> + <v>6325</v> </e> <e> <k>name</k> - <v>6459</v> + <v>6325</v> </e> <e> <k>object</k> - <v>6459</v> + <v>6325</v> </e> </columnsizes> <dependencies> @@ -18146,7 +17867,7 @@ <b> <a>1</a> <b>2</b> - <v>6459</v> + <v>6325</v> </b> </bs> </hist> @@ -18162,7 +17883,7 @@ <b> <a>1</a> <b>2</b> - <v>6459</v> + <v>6325</v> </b> </bs> </hist> @@ -18178,7 +17899,7 @@ <b> <a>1</a> <b>2</b> - <v>6459</v> + <v>6325</v> </b> </bs> </hist> @@ -18194,7 +17915,7 @@ <b> <a>1</a> <b>2</b> - <v>6459</v> + <v>6325</v> </b> </bs> </hist> @@ -18210,7 +17931,7 @@ <b> <a>1</a> <b>2</b> - <v>6459</v> + <v>6325</v> </b> </bs> </hist> @@ -18226,7 +17947,7 @@ <b> <a>1</a> <b>2</b> - <v>6459</v> + <v>6325</v> </b> </bs> </hist> @@ -18236,15 +17957,15 @@ </relation> <relation> <name>ruby_singleton_method_parameters</name> - <cardinality>4073</cardinality> + <cardinality>3929</cardinality> <columnsizes> <e> <k>ruby_singleton_method</k> - <v>4073</v> + <v>3929</v> </e> <e> <k>parameters</k> - <v>4073</v> + <v>3929</v> </e> </columnsizes> <dependencies> @@ -18258,7 +17979,7 @@ <b> <a>1</a> <b>2</b> - <v>4073</v> + <v>3929</v> </b> </bs> </hist> @@ -18274,7 +17995,7 @@ <b> <a>1</a> <b>2</b> - <v>4073</v> + <v>3929</v> </b> </bs> </hist> @@ -18284,15 +18005,15 @@ </relation> <relation> <name>ruby_splat_argument_child</name> - <cardinality>3454</cardinality> + <cardinality>3605</cardinality> <columnsizes> <e> <k>ruby_splat_argument</k> - <v>3454</v> + <v>3605</v> </e> <e> <k>child</k> - <v>3454</v> + <v>3605</v> </e> </columnsizes> <dependencies> @@ -18306,7 +18027,7 @@ <b> <a>1</a> <b>2</b> - <v>3454</v> + <v>3605</v> </b> </bs> </hist> @@ -18322,7 +18043,7 @@ <b> <a>1</a> <b>2</b> - <v>3454</v> + <v>3605</v> </b> </bs> </hist> @@ -18332,37 +18053,37 @@ </relation> <relation> <name>ruby_splat_argument_def</name> - <cardinality>3454</cardinality> + <cardinality>3606</cardinality> <columnsizes> <e> <k>id</k> - <v>3454</v> + <v>3606</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_splat_parameter_def</name> - <cardinality>3192</cardinality> + <cardinality>3014</cardinality> <columnsizes> <e> <k>id</k> - <v>3192</v> + <v>3014</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_splat_parameter_name</name> - <cardinality>2514</cardinality> + <cardinality>2297</cardinality> <columnsizes> <e> <k>ruby_splat_parameter</k> - <v>2514</v> + <v>2297</v> </e> <e> <k>name</k> - <v>2514</v> + <v>2297</v> </e> </columnsizes> <dependencies> @@ -18376,7 +18097,7 @@ <b> <a>1</a> <b>2</b> - <v>2514</v> + <v>2297</v> </b> </bs> </hist> @@ -18392,7 +18113,7 @@ <b> <a>1</a> <b>2</b> - <v>2514</v> + <v>2297</v> </b> </bs> </hist> @@ -18402,19 +18123,19 @@ </relation> <relation> <name>ruby_string_array_child</name> - <cardinality>12799</cardinality> + <cardinality>13136</cardinality> <columnsizes> <e> <k>ruby_string_array</k> - <v>4062</v> + <v>4120</v> </e> <e> <k>index</k> - <v>536</v> + <v>606</v> </e> <e> <k>child</k> - <v>12799</v> + <v>13136</v> </e> </columnsizes> <dependencies> @@ -18428,32 +18149,32 @@ <b> <a>1</a> <b>2</b> - <v>1313</v> + <v>1350</v> </b> <b> <a>2</a> <b>3</b> - <v>1310</v> + <v>1304</v> </b> <b> <a>3</a> <b>4</b> - <v>625</v> + <v>630</v> </b> <b> <a>4</a> <b>5</b> - <v>349</v> + <v>356</v> </b> <b> <a>5</a> <b>10</b> - <v>325</v> + <v>332</v> </b> <b> <a>10</a> - <b>537</b> - <v>140</v> + <b>607</b> + <v>148</v> </b> </bs> </hist> @@ -18469,32 +18190,32 @@ <b> <a>1</a> <b>2</b> - <v>1313</v> + <v>1350</v> </b> <b> <a>2</a> <b>3</b> - <v>1310</v> + <v>1304</v> </b> <b> <a>3</a> <b>4</b> - <v>625</v> + <v>630</v> </b> <b> <a>4</a> <b>5</b> - <v>349</v> + <v>356</v> </b> <b> <a>5</a> <b>10</b> - <v>325</v> + <v>332</v> </b> <b> <a>10</a> - <b>537</b> - <v>140</v> + <b>607</b> + <v>148</v> </b> </bs> </hist> @@ -18510,22 +18231,22 @@ <b> <a>1</a> <b>2</b> - <v>432</v> + <v>506</v> </b> <b> <a>2</a> - <b>7</b> - <v>42</v> + <b>10</b> + <v>48</v> </b> <b> - <a>7</a> - <b>47</b> - <v>41</v> + <a>11</a> + <b>266</b> + <v>46</v> </b> <b> - <a>49</a> - <b>4063</b> - <v>21</v> + <a>344</a> + <b>4121</b> + <v>6</v> </b> </bs> </hist> @@ -18541,22 +18262,22 @@ <b> <a>1</a> <b>2</b> - <v>432</v> + <v>506</v> </b> <b> <a>2</a> - <b>7</b> - <v>42</v> + <b>10</b> + <v>48</v> </b> <b> - <a>7</a> - <b>47</b> - <v>41</v> + <a>11</a> + <b>266</b> + <v>46</v> </b> <b> - <a>49</a> - <b>4063</b> - <v>21</v> + <a>344</a> + <b>4121</b> + <v>6</v> </b> </bs> </hist> @@ -18572,7 +18293,7 @@ <b> <a>1</a> <b>2</b> - <v>12799</v> + <v>13136</v> </b> </bs> </hist> @@ -18588,7 +18309,7 @@ <b> <a>1</a> <b>2</b> - <v>12799</v> + <v>13136</v> </b> </bs> </hist> @@ -18598,22 +18319,22 @@ </relation> <relation> <name>ruby_string_array_def</name> - <cardinality>4213</cardinality> + <cardinality>4287</cardinality> <columnsizes> <e> <k>id</k> - <v>4213</v> + <v>4287</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_string_child</name> - <cardinality>549106</cardinality> + <cardinality>559228</cardinality> <columnsizes> <e> <k>ruby_string__</k> - <v>477859</v> + <v>483542</v> </e> <e> <k>index</k> @@ -18621,7 +18342,7 @@ </e> <e> <k>child</k> - <v>549106</v> + <v>559228</v> </e> </columnsizes> <dependencies> @@ -18635,12 +18356,12 @@ <b> <a>1</a> <b>2</b> - <v>449884</v> + <v>454555</v> </b> <b> <a>2</a> <b>282</b> - <v>27975</v> + <v>28987</v> </b> </bs> </hist> @@ -18656,12 +18377,12 @@ <b> <a>1</a> <b>2</b> - <v>449884</v> + <v>454555</v> </b> <b> <a>2</a> <b>282</b> - <v>27975</v> + <v>28987</v> </b> </bs> </hist> @@ -18677,31 +18398,36 @@ <b> <a>1</a> <b>2</b> - <v>129</v> + <v>95</v> </b> <b> - <a>4</a> - <b>5</b> - <v>64</v> + <a>2</a> + <b>3</b> + <v>34</v> </b> <b> <a>5</a> - <b>7</b> + <b>6</b> + <v>64</v> + </b> + <b> + <a>6</a> + <b>9</b> <v>22</v> </b> <b> - <a>7</a> - <b>27</b> + <a>9</a> + <b>37</b> <v>22</v> </b> <b> - <a>28</a> - <b>83</b> + <a>37</a> + <b>108</b> <v>22</v> </b> <b> - <a>104</a> - <b>477860</b> + <a>129</a> + <b>483543</b> <v>22</v> </b> </bs> @@ -18718,31 +18444,36 @@ <b> <a>1</a> <b>2</b> - <v>129</v> + <v>95</v> </b> <b> - <a>4</a> - <b>5</b> - <v>64</v> + <a>2</a> + <b>3</b> + <v>34</v> </b> <b> <a>5</a> - <b>7</b> + <b>6</b> + <v>64</v> + </b> + <b> + <a>6</a> + <b>9</b> <v>22</v> </b> <b> - <a>7</a> - <b>27</b> + <a>9</a> + <b>37</b> <v>22</v> </b> <b> - <a>28</a> - <b>83</b> + <a>37</a> + <b>108</b> <v>22</v> </b> <b> - <a>104</a> - <b>477860</b> + <a>129</a> + <b>483543</b> <v>22</v> </b> </bs> @@ -18759,7 +18490,7 @@ <b> <a>1</a> <b>2</b> - <v>549106</v> + <v>559228</v> </b> </bs> </hist> @@ -18775,7 +18506,7 @@ <b> <a>1</a> <b>2</b> - <v>549106</v> + <v>559228</v> </b> </bs> </hist> @@ -18785,30 +18516,30 @@ </relation> <relation> <name>ruby_string_def</name> - <cardinality>485218</cardinality> + <cardinality>490602</cardinality> <columnsizes> <e> <k>id</k> - <v>485218</v> + <v>490602</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_subshell_child</name> - <cardinality>561</cardinality> + <cardinality>551</cardinality> <columnsizes> <e> <k>ruby_subshell</k> - <v>365</v> + <v>359</v> </e> <e> <k>index</k> - <v>33</v> + <v>32</v> </e> <e> <k>child</k> - <v>561</v> + <v>551</v> </e> </columnsizes> <dependencies> @@ -18827,17 +18558,17 @@ <b> <a>2</a> <b>3</b> - <v>58</v> + <v>53</v> </b> <b> <a>3</a> <b>5</b> - <v>33</v> + <v>32</v> </b> <b> <a>5</a> <b>12</b> - <v>9</v> + <v>8</v> </b> </bs> </hist> @@ -18858,17 +18589,17 @@ <b> <a>2</a> <b>3</b> - <v>58</v> + <v>53</v> </b> <b> <a>3</a> <b>5</b> - <v>33</v> + <v>32</v> </b> <b> <a>5</a> <b>12</b> - <v>9</v> + <v>8</v> </b> </bs> </hist> @@ -18884,37 +18615,37 @@ <b> <a>1</a> <b>2</b> - <v>12</v> + <v>11</v> </b> <b> <a>2</a> <b>3</b> - <v>6</v> + <v>5</v> </b> <b> <a>3</a> <b>4</b> - <v>3</v> + <v>2</v> </b> <b> - <a>6</a> - <b>7</b> - <v>3</v> + <a>7</a> + <b>8</b> + <v>2</v> </b> <b> <a>14</a> <b>15</b> - <v>3</v> + <v>2</v> </b> <b> - <a>33</a> - <b>34</b> - <v>3</v> + <a>32</a> + <b>33</b> + <v>2</v> </b> <b> - <a>119</a> - <b>120</b> - <v>3</v> + <a>120</a> + <b>121</b> + <v>2</v> </b> </bs> </hist> @@ -18930,37 +18661,37 @@ <b> <a>1</a> <b>2</b> - <v>12</v> + <v>11</v> </b> <b> <a>2</a> <b>3</b> - <v>6</v> + <v>5</v> </b> <b> <a>3</a> <b>4</b> - <v>3</v> + <v>2</v> </b> <b> - <a>6</a> - <b>7</b> - <v>3</v> + <a>7</a> + <b>8</b> + <v>2</v> </b> <b> <a>14</a> <b>15</b> - <v>3</v> + <v>2</v> </b> <b> - <a>33</a> - <b>34</b> - <v>3</v> + <a>32</a> + <b>33</b> + <v>2</v> </b> <b> - <a>119</a> - <b>120</b> - <v>3</v> + <a>120</a> + <b>121</b> + <v>2</v> </b> </bs> </hist> @@ -18976,7 +18707,7 @@ <b> <a>1</a> <b>2</b> - <v>561</v> + <v>551</v> </b> </bs> </hist> @@ -18992,7 +18723,7 @@ <b> <a>1</a> <b>2</b> - <v>561</v> + <v>551</v> </b> </bs> </hist> @@ -19002,26 +18733,26 @@ </relation> <relation> <name>ruby_subshell_def</name> - <cardinality>365</cardinality> + <cardinality>359</cardinality> <columnsizes> <e> <k>id</k> - <v>365</v> + <v>359</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_superclass_def</name> - <cardinality>13666</cardinality> + <cardinality>13806</cardinality> <columnsizes> <e> <k>id</k> - <v>13666</v> + <v>13806</v> </e> <e> <k>child</k> - <v>13666</v> + <v>13806</v> </e> </columnsizes> <dependencies> @@ -19035,7 +18766,7 @@ <b> <a>1</a> <b>2</b> - <v>13666</v> + <v>13806</v> </b> </bs> </hist> @@ -19051,7 +18782,7 @@ <b> <a>1</a> <b>2</b> - <v>13666</v> + <v>13806</v> </b> </bs> </hist> @@ -19061,19 +18792,19 @@ </relation> <relation> <name>ruby_symbol_array_child</name> - <cardinality>7967</cardinality> + <cardinality>8435</cardinality> <columnsizes> <e> <k>ruby_symbol_array</k> - <v>2170</v> + <v>2240</v> </e> <e> <k>index</k> - <v>241</v> + <v>233</v> </e> <e> <k>child</k> - <v>7967</v> + <v>8435</v> </e> </columnsizes> <dependencies> @@ -19087,37 +18818,37 @@ <b> <a>1</a> <b>2</b> - <v>178</v> + <v>219</v> </b> <b> <a>2</a> <b>3</b> - <v>1161</v> + <v>1129</v> </b> <b> <a>3</a> <b>4</b> - <v>354</v> + <v>347</v> </b> <b> <a>4</a> <b>5</b> - <v>127</v> + <v>160</v> </b> <b> <a>5</a> <b>8</b> - <v>183</v> + <v>189</v> </b> <b> <a>8</a> - <b>94</b> - <v>163</v> + <b>24</b> + <v>170</v> </b> <b> - <a>95</a> - <b>96</b> - <v>2</v> + <a>24</a> + <b>100</b> + <v>23</v> </b> </bs> </hist> @@ -19133,37 +18864,37 @@ <b> <a>1</a> <b>2</b> - <v>178</v> + <v>219</v> </b> <b> <a>2</a> <b>3</b> - <v>1161</v> + <v>1129</v> </b> <b> <a>3</a> <b>4</b> - <v>354</v> + <v>347</v> </b> <b> <a>4</a> <b>5</b> - <v>127</v> + <v>160</v> </b> <b> <a>5</a> <b>8</b> - <v>183</v> + <v>189</v> </b> <b> <a>8</a> - <b>94</b> - <v>163</v> + <b>24</b> + <v>170</v> </b> <b> - <a>95</a> - <b>96</b> - <v>2</v> + <a>24</a> + <b>100</b> + <v>23</v> </b> </bs> </hist> @@ -19179,37 +18910,37 @@ <b> <a>1</a> <b>2</b> - <v>5</v> + <v>9</v> </b> <b> <a>2</a> <b>3</b> - <v>152</v> + <v>139</v> </b> <b> <a>4</a> - <b>9</b> - <v>20</v> + <b>8</b> + <v>18</v> </b> <b> - <a>9</a> - <b>20</b> - <v>20</v> + <a>8</a> + <b>17</b> + <v>18</v> </b> <b> - <a>23</a> - <b>47</b> - <v>20</v> + <a>19</a> + <b>41</b> + <v>18</v> </b> <b> - <a>55</a> - <b>783</b> - <v>20</v> + <a>44</a> + <b>163</b> + <v>18</v> </b> <b> - <a>852</a> - <b>853</b> - <v>2</v> + <a>230</a> + <b>949</b> + <v>9</v> </b> </bs> </hist> @@ -19225,37 +18956,37 @@ <b> <a>1</a> <b>2</b> - <v>5</v> + <v>9</v> </b> <b> <a>2</a> <b>3</b> - <v>152</v> + <v>139</v> </b> <b> <a>4</a> - <b>9</b> - <v>20</v> + <b>8</b> + <v>18</v> </b> <b> - <a>9</a> - <b>20</b> - <v>20</v> + <a>8</a> + <b>17</b> + <v>18</v> </b> <b> - <a>23</a> - <b>47</b> - <v>20</v> + <a>19</a> + <b>41</b> + <v>18</v> </b> <b> - <a>55</a> - <b>783</b> - <v>20</v> + <a>44</a> + <b>163</b> + <v>18</v> </b> <b> - <a>852</a> - <b>853</b> - <v>2</v> + <a>230</a> + <b>949</b> + <v>9</v> </b> </bs> </hist> @@ -19271,7 +19002,7 @@ <b> <a>1</a> <b>2</b> - <v>7967</v> + <v>8435</v> </b> </bs> </hist> @@ -19287,7 +19018,7 @@ <b> <a>1</a> <b>2</b> - <v>7967</v> + <v>8435</v> </b> </bs> </hist> @@ -19297,30 +19028,30 @@ </relation> <relation> <name>ruby_symbol_array_def</name> - <cardinality>2170</cardinality> + <cardinality>2240</cardinality> <columnsizes> <e> <k>id</k> - <v>2170</v> + <v>2240</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_test_pattern_def</name> - <cardinality>4</cardinality> + <cardinality>5</cardinality> <columnsizes> <e> <k>id</k> - <v>4</v> + <v>5</v> </e> <e> <k>pattern</k> - <v>4</v> + <v>5</v> </e> <e> <k>value</k> - <v>4</v> + <v>5</v> </e> </columnsizes> <dependencies> @@ -19334,7 +19065,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -19350,7 +19081,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -19366,7 +19097,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -19382,7 +19113,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -19398,7 +19129,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -19414,7 +19145,7 @@ <b> <a>1</a> <b>2</b> - <v>4</v> + <v>5</v> </b> </bs> </hist> @@ -19424,19 +19155,19 @@ </relation> <relation> <name>ruby_then_child</name> - <cardinality>37566</cardinality> + <cardinality>37016</cardinality> <columnsizes> <e> <k>ruby_then</k> - <v>22451</v> + <v>22229</v> </e> <e> <k>index</k> - <v>91</v> + <v>85</v> </e> <e> <k>child</k> - <v>37566</v> + <v>37016</v> </e> </columnsizes> <dependencies> @@ -19450,22 +19181,22 @@ <b> <a>1</a> <b>2</b> - <v>14093</v> + <v>13943</v> </b> <b> <a>2</a> <b>3</b> - <v>5076</v> + <v>5070</v> </b> <b> <a>3</a> <b>4</b> - <v>1811</v> + <v>1817</v> </b> <b> <a>4</a> <b>37</b> - <v>1469</v> + <v>1398</v> </b> </bs> </hist> @@ -19481,22 +19212,22 @@ <b> <a>1</a> <b>2</b> - <v>14093</v> + <v>13943</v> </b> <b> <a>2</a> <b>3</b> - <v>5076</v> + <v>5070</v> </b> <b> <a>3</a> <b>4</b> - <v>1811</v> + <v>1817</v> </b> <b> <a>4</a> <b>37</b> - <v>1469</v> + <v>1398</v> </b> </bs> </hist> @@ -19512,51 +19243,51 @@ <b> <a>1</a> <b>2</b> - <v>35</v> + <v>30</v> </b> <b> - <a>3</a> + <a>2</a> <b>4</b> - <v>2</v> + <v>4</v> </b> <b> <a>4</a> <b>5</b> - <v>10</v> + <v>9</v> </b> <b> - <a>5</a> + <a>6</a> <b>8</b> - <v>5</v> + <v>4</v> </b> <b> - <a>9</a> - <b>10</b> - <v>5</v> + <a>8</a> + <b>9</b> + <v>4</v> </b> <b> <a>10</a> - <b>18</b> + <b>19</b> <v>7</v> </b> <b> - <a>29</a> - <b>60</b> + <a>30</a> + <b>61</b> <v>7</v> </b> <b> - <a>95</a> - <b>309</b> + <a>98</a> + <b>310</b> <v>7</v> </b> <b> - <a>577</a> - <b>3282</b> + <a>592</a> + <b>3508</b> <v>7</v> </b> <b> - <a>8814</a> - <b>8815</b> + <a>9408</a> + <b>9409</b> <v>2</v> </b> </bs> @@ -19573,51 +19304,51 @@ <b> <a>1</a> <b>2</b> - <v>35</v> + <v>30</v> </b> <b> - <a>3</a> + <a>2</a> <b>4</b> - <v>2</v> + <v>4</v> </b> <b> <a>4</a> <b>5</b> - <v>10</v> + <v>9</v> </b> <b> - <a>5</a> + <a>6</a> <b>8</b> - <v>5</v> + <v>4</v> </b> <b> - <a>9</a> - <b>10</b> - <v>5</v> + <a>8</a> + <b>9</b> + <v>4</v> </b> <b> <a>10</a> - <b>18</b> + <b>19</b> <v>7</v> </b> <b> - <a>29</a> - <b>60</b> + <a>30</a> + <b>61</b> <v>7</v> </b> <b> - <a>95</a> - <b>309</b> + <a>98</a> + <b>310</b> <v>7</v> </b> <b> - <a>577</a> - <b>3282</b> + <a>592</a> + <b>3508</b> <v>7</v> </b> <b> - <a>8814</a> - <b>8815</b> + <a>9408</a> + <b>9409</b> <v>2</v> </b> </bs> @@ -19634,7 +19365,7 @@ <b> <a>1</a> <b>2</b> - <v>37566</v> + <v>37016</v> </b> </bs> </hist> @@ -19650,7 +19381,7 @@ <b> <a>1</a> <b>2</b> - <v>37566</v> + <v>37016</v> </b> </bs> </hist> @@ -19660,22 +19391,22 @@ </relation> <relation> <name>ruby_then_def</name> - <cardinality>22451</cardinality> + <cardinality>22229</cardinality> <columnsizes> <e> <k>id</k> - <v>22451</v> + <v>22229</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_tokeninfo</name> - <cardinality>6212759</cardinality> + <cardinality>6351611</cardinality> <columnsizes> <e> <k>id</k> - <v>6212759</v> + <v>6351611</v> </e> <e> <k>kind</k> @@ -19683,7 +19414,7 @@ </e> <e> <k>value</k> - <v>272576</v> + <v>275925</v> </e> </columnsizes> <dependencies> @@ -19697,7 +19428,7 @@ <b> <a>1</a> <b>2</b> - <v>6212759</v> + <v>6351611</v> </b> </bs> </hist> @@ -19713,7 +19444,7 @@ <b> <a>1</a> <b>2</b> - <v>6212759</v> + <v>6351611</v> </b> </bs> </hist> @@ -19727,63 +19458,68 @@ <budget>12</budget> <bs> <b> - <a>42</a> + <a>1</a> + <b>2</b> + <v>4</v> + </b> + <b> + <a>49</a> <b>160</b> - <v>5</v> + <v>4</v> </b> <b> - <a>262</a> - <b>428</b> - <v>5</v> + <a>291</a> + <b>443</b> + <v>4</v> </b> <b> - <a>1906</a> - <b>1907</b> + <a>2054</a> + <b>2055</b> <v>2</v> </b> <b> - <a>2167</a> - <b>2168</b> - <v>5</v> + <a>2462</a> + <b>2463</b> + <v>4</v> </b> <b> - <a>4685</a> - <b>4919</b> - <v>5</v> + <a>5047</a> + <b>5260</b> + <v>4</v> </b> <b> - <a>5076</a> - <b>6845</b> - <v>5</v> + <a>5496</a> + <b>7346</b> + <v>4</v> </b> <b> - <a>9531</a> - <b>10121</b> - <v>5</v> + <a>10365</a> + <b>10609</b> + <v>4</v> </b> <b> - <a>14916</a> - <b>20953</b> - <v>5</v> + <a>15376</a> + <b>22709</b> + <v>4</v> </b> <b> - <a>28887</a> - <b>64458</b> - <v>5</v> + <a>31415</a> + <b>70704</b> + <v>4</v> </b> <b> - <a>69189</a> - <b>98135</b> - <v>5</v> + <a>77014</a> + <b>106932</b> + <v>4</v> </b> <b> - <a>117445</a> - <b>609106</b> - <v>5</v> + <a>129596</a> + <b>673263</b> + <v>4</v> </b> <b> - <a>1367617</a> - <b>1367618</b> + <a>1509036</a> + <b>1509037</b> <v>2</v> </b> </bs> @@ -19800,51 +19536,51 @@ <b> <a>1</a> <b>2</b> - <v>12</v> + <v>16</v> </b> <b> - <a>5</a> + <a>6</a> <b>26</b> - <v>5</v> + <v>4</v> </b> <b> - <a>30</a> - <b>41</b> - <v>5</v> + <a>36</a> + <b>48</b> + <v>4</v> </b> <b> - <a>70</a> - <b>122</b> - <v>5</v> + <a>68</a> + <b>121</b> + <v>4</v> </b> <b> - <a>135</a> - <b>172</b> - <v>5</v> + <a>151</a> + <b>181</b> + <v>4</v> </b> <b> - <a>1500</a> - <b>1951</b> - <v>5</v> + <a>1509</a> + <b>2060</b> + <v>4</v> </b> <b> - <a>3612</a> - <b>4307</b> - <v>5</v> + <a>3983</a> + <b>4628</b> + <v>4</v> </b> <b> - <a>5291</a> - <b>8590</b> - <v>5</v> + <a>5781</a> + <b>9380</b> + <v>4</v> </b> <b> - <a>12176</a> - <b>21807</b> - <v>5</v> + <a>13063</a> + <b>24102</b> + <v>4</v> </b> <b> - <a>53746</a> - <b>53747</b> + <a>58689</a> + <b>58690</b> <v>2</v> </b> </bs> @@ -19861,32 +19597,32 @@ <b> <a>1</a> <b>2</b> - <v>162402</v> + <v>164156</v> </b> <b> <a>2</a> <b>3</b> - <v>39879</v> + <v>41140</v> </b> <b> <a>3</a> <b>4</b> - <v>19155</v> + <v>19333</v> </b> <b> <a>4</a> <b>7</b> - <v>22724</v> + <v>22761</v> </b> <b> <a>7</a> <b>29</b> - <v>20693</v> + <v>20750</v> </b> <b> <a>29</a> - <b>222217</b> - <v>7720</v> + <b>243390</b> + <v>7783</v> </b> </bs> </hist> @@ -19902,12 +19638,12 @@ <b> <a>1</a> <b>2</b> - <v>259340</v> + <v>262839</v> </b> <b> <a>2</a> <b>5</b> - <v>13235</v> + <v>13085</v> </b> </bs> </hist> @@ -19917,15 +19653,15 @@ </relation> <relation> <name>ruby_unary_def</name> - <cardinality>13726</cardinality> + <cardinality>14535</cardinality> <columnsizes> <e> <k>id</k> - <v>13726</v> + <v>14535</v> </e> <e> <k>operand</k> - <v>13726</v> + <v>14535</v> </e> <e> <k>operator</k> @@ -19943,7 +19679,7 @@ <b> <a>1</a> <b>2</b> - <v>13726</v> + <v>14535</v> </b> </bs> </hist> @@ -19959,7 +19695,7 @@ <b> <a>1</a> <b>2</b> - <v>13726</v> + <v>14535</v> </b> </bs> </hist> @@ -19975,7 +19711,7 @@ <b> <a>1</a> <b>2</b> - <v>13726</v> + <v>14535</v> </b> </bs> </hist> @@ -19991,7 +19727,7 @@ <b> <a>1</a> <b>2</b> - <v>13726</v> + <v>14535</v> </b> </bs> </hist> @@ -20005,33 +19741,33 @@ <budget>12</budget> <bs> <b> - <a>98</a> - <b>99</b> + <a>97</a> + <b>98</b> <v>1</v> </b> <b> - <a>190</a> - <b>191</b> + <a>172</a> + <b>173</b> <v>1</v> </b> <b> - <a>566</a> - <b>567</b> + <a>947</a> + <b>948</b> <v>1</v> </b> <b> - <a>1301</a> - <b>1302</b> + <a>1369</a> + <b>1370</b> <v>1</v> </b> <b> - <a>1938</a> - <b>1939</b> + <a>2120</a> + <b>2121</b> <v>1</v> </b> <b> - <a>9633</a> - <b>9634</b> + <a>9830</a> + <b>9831</b> <v>1</v> </b> </bs> @@ -20046,33 +19782,33 @@ <budget>12</budget> <bs> <b> - <a>98</a> - <b>99</b> + <a>97</a> + <b>98</b> <v>1</v> </b> <b> - <a>190</a> - <b>191</b> + <a>172</a> + <b>173</b> <v>1</v> </b> <b> - <a>566</a> - <b>567</b> + <a>947</a> + <b>948</b> <v>1</v> </b> <b> - <a>1301</a> - <b>1302</b> + <a>1369</a> + <b>1370</b> <v>1</v> </b> <b> - <a>1938</a> - <b>1939</b> + <a>2120</a> + <b>2121</b> <v>1</v> </b> <b> - <a>9633</a> - <b>9634</b> + <a>9830</a> + <b>9831</b> <v>1</v> </b> </bs> @@ -20230,15 +19966,15 @@ </relation> <relation> <name>ruby_unless_alternative</name> - <cardinality>42</cardinality> + <cardinality>43</cardinality> <columnsizes> <e> <k>ruby_unless</k> - <v>42</v> + <v>43</v> </e> <e> <k>alternative</k> - <v>42</v> + <v>43</v> </e> </columnsizes> <dependencies> @@ -20252,7 +19988,7 @@ <b> <a>1</a> <b>2</b> - <v>42</v> + <v>43</v> </b> </bs> </hist> @@ -20268,7 +20004,7 @@ <b> <a>1</a> <b>2</b> - <v>42</v> + <v>43</v> </b> </bs> </hist> @@ -20278,15 +20014,15 @@ </relation> <relation> <name>ruby_unless_consequence</name> - <cardinality>2662</cardinality> + <cardinality>2721</cardinality> <columnsizes> <e> <k>ruby_unless</k> - <v>2662</v> + <v>2721</v> </e> <e> <k>consequence</k> - <v>2662</v> + <v>2721</v> </e> </columnsizes> <dependencies> @@ -20300,7 +20036,7 @@ <b> <a>1</a> <b>2</b> - <v>2662</v> + <v>2721</v> </b> </bs> </hist> @@ -20316,7 +20052,7 @@ <b> <a>1</a> <b>2</b> - <v>2662</v> + <v>2721</v> </b> </bs> </hist> @@ -20326,15 +20062,15 @@ </relation> <relation> <name>ruby_unless_def</name> - <cardinality>2663</cardinality> + <cardinality>2723</cardinality> <columnsizes> <e> <k>id</k> - <v>2663</v> + <v>2723</v> </e> <e> <k>condition</k> - <v>2663</v> + <v>2723</v> </e> </columnsizes> <dependencies> @@ -20348,7 +20084,7 @@ <b> <a>1</a> <b>2</b> - <v>2663</v> + <v>2723</v> </b> </bs> </hist> @@ -20364,7 +20100,7 @@ <b> <a>1</a> <b>2</b> - <v>2663</v> + <v>2723</v> </b> </bs> </hist> @@ -20422,19 +20158,19 @@ </relation> <relation> <name>ruby_unless_modifier_def</name> - <cardinality>3505</cardinality> + <cardinality>3416</cardinality> <columnsizes> <e> <k>id</k> - <v>3505</v> + <v>3416</v> </e> <e> <k>body</k> - <v>3505</v> + <v>3416</v> </e> <e> <k>condition</k> - <v>3505</v> + <v>3416</v> </e> </columnsizes> <dependencies> @@ -20448,7 +20184,7 @@ <b> <a>1</a> <b>2</b> - <v>3505</v> + <v>3416</v> </b> </bs> </hist> @@ -20464,7 +20200,7 @@ <b> <a>1</a> <b>2</b> - <v>3505</v> + <v>3416</v> </b> </bs> </hist> @@ -20480,7 +20216,7 @@ <b> <a>1</a> <b>2</b> - <v>3505</v> + <v>3416</v> </b> </bs> </hist> @@ -20496,7 +20232,7 @@ <b> <a>1</a> <b>2</b> - <v>3505</v> + <v>3416</v> </b> </bs> </hist> @@ -20512,7 +20248,7 @@ <b> <a>1</a> <b>2</b> - <v>3505</v> + <v>3416</v> </b> </bs> </hist> @@ -20528,7 +20264,7 @@ <b> <a>1</a> <b>2</b> - <v>3505</v> + <v>3416</v> </b> </bs> </hist> @@ -20538,19 +20274,19 @@ </relation> <relation> <name>ruby_until_def</name> - <cardinality>123</cardinality> + <cardinality>126</cardinality> <columnsizes> <e> <k>id</k> - <v>123</v> + <v>126</v> </e> <e> <k>body</k> - <v>123</v> + <v>126</v> </e> <e> <k>condition</k> - <v>123</v> + <v>126</v> </e> </columnsizes> <dependencies> @@ -20564,7 +20300,7 @@ <b> <a>1</a> <b>2</b> - <v>123</v> + <v>126</v> </b> </bs> </hist> @@ -20580,7 +20316,7 @@ <b> <a>1</a> <b>2</b> - <v>123</v> + <v>126</v> </b> </bs> </hist> @@ -20596,7 +20332,7 @@ <b> <a>1</a> <b>2</b> - <v>123</v> + <v>126</v> </b> </bs> </hist> @@ -20612,7 +20348,7 @@ <b> <a>1</a> <b>2</b> - <v>123</v> + <v>126</v> </b> </bs> </hist> @@ -20628,7 +20364,7 @@ <b> <a>1</a> <b>2</b> - <v>123</v> + <v>126</v> </b> </bs> </hist> @@ -20644,7 +20380,7 @@ <b> <a>1</a> <b>2</b> - <v>123</v> + <v>126</v> </b> </bs> </hist> @@ -20654,19 +20390,19 @@ </relation> <relation> <name>ruby_until_modifier_def</name> - <cardinality>234</cardinality> + <cardinality>238</cardinality> <columnsizes> <e> <k>id</k> - <v>234</v> + <v>238</v> </e> <e> <k>body</k> - <v>234</v> + <v>238</v> </e> <e> <k>condition</k> - <v>234</v> + <v>238</v> </e> </columnsizes> <dependencies> @@ -20680,7 +20416,7 @@ <b> <a>1</a> <b>2</b> - <v>234</v> + <v>238</v> </b> </bs> </hist> @@ -20696,7 +20432,7 @@ <b> <a>1</a> <b>2</b> - <v>234</v> + <v>238</v> </b> </bs> </hist> @@ -20712,7 +20448,7 @@ <b> <a>1</a> <b>2</b> - <v>234</v> + <v>238</v> </b> </bs> </hist> @@ -20728,7 +20464,7 @@ <b> <a>1</a> <b>2</b> - <v>234</v> + <v>238</v> </b> </bs> </hist> @@ -20744,7 +20480,7 @@ <b> <a>1</a> <b>2</b> - <v>234</v> + <v>238</v> </b> </bs> </hist> @@ -20760,7 +20496,7 @@ <b> <a>1</a> <b>2</b> - <v>234</v> + <v>238</v> </b> </bs> </hist> @@ -20818,15 +20554,15 @@ </relation> <relation> <name>ruby_when_body</name> - <cardinality>3358</cardinality> + <cardinality>3790</cardinality> <columnsizes> <e> <k>ruby_when</k> - <v>3358</v> + <v>3790</v> </e> <e> <k>body</k> - <v>3358</v> + <v>3790</v> </e> </columnsizes> <dependencies> @@ -20840,7 +20576,7 @@ <b> <a>1</a> <b>2</b> - <v>3358</v> + <v>3790</v> </b> </bs> </hist> @@ -20856,7 +20592,7 @@ <b> <a>1</a> <b>2</b> - <v>3358</v> + <v>3790</v> </b> </bs> </hist> @@ -20866,22 +20602,22 @@ </relation> <relation> <name>ruby_when_def</name> - <cardinality>3392</cardinality> + <cardinality>3882</cardinality> <columnsizes> <e> <k>id</k> - <v>3392</v> + <v>3882</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ruby_when_pattern</name> - <cardinality>4153</cardinality> + <cardinality>4745</cardinality> <columnsizes> <e> <k>ruby_when</k> - <v>3377</v> + <v>3882</v> </e> <e> <k>index</k> @@ -20889,7 +20625,7 @@ </e> <e> <k>pattern</k> - <v>4153</v> + <v>4745</v> </e> </columnsizes> <dependencies> @@ -20903,17 +20639,17 @@ <b> <a>1</a> <b>2</b> - <v>2934</v> + <v>3393</v> </b> <b> <a>2</a> <b>3</b> - <v>293</v> + <v>330</v> </b> <b> <a>3</a> <b>16</b> - <v>150</v> + <v>159</v> </b> </bs> </hist> @@ -20929,17 +20665,17 @@ <b> <a>1</a> <b>2</b> - <v>2934</v> + <v>3393</v> </b> <b> <a>2</a> <b>3</b> - <v>293</v> + <v>330</v> </b> <b> <a>3</a> <b>16</b> - <v>150</v> + <v>159</v> </b> </bs> </hist> @@ -20960,51 +20696,56 @@ <b> <a>3</a> <b>4</b> - <v>4</v> + <v>2</v> </b> <b> <a>4</a> <b>5</b> + <v>2</v> + </b> + <b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> - <a>6</a> - <b>7</b> + <a>10</a> + <b>11</b> <v>1</v> </b> <b> - <a>14</a> - <b>15</b> + <a>19</a> + <b>20</b> <v>1</v> </b> <b> - <a>25</a> - <b>26</b> + <a>31</a> + <b>32</b> <v>1</v> </b> <b> - <a>35</a> - <b>36</b> + <a>44</a> + <b>45</b> <v>1</v> </b> <b> - <a>85</a> - <b>86</b> + <a>90</a> + <b>91</b> <v>1</v> </b> <b> - <a>150</a> - <b>151</b> + <a>159</a> + <b>160</b> <v>1</v> </b> <b> - <a>443</a> - <b>444</b> + <a>489</a> + <b>490</b> <v>1</v> </b> <b> - <a>3377</a> - <b>3378</b> + <a>3882</a> + <b>3883</b> <v>1</v> </b> </bs> @@ -21026,51 +20767,56 @@ <b> <a>3</a> <b>4</b> - <v>4</v> + <v>2</v> </b> <b> <a>4</a> <b>5</b> + <v>2</v> + </b> + <b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> - <a>6</a> - <b>7</b> + <a>10</a> + <b>11</b> <v>1</v> </b> <b> - <a>14</a> - <b>15</b> + <a>19</a> + <b>20</b> <v>1</v> </b> <b> - <a>25</a> - <b>26</b> + <a>31</a> + <b>32</b> <v>1</v> </b> <b> - <a>35</a> - <b>36</b> + <a>44</a> + <b>45</b> <v>1</v> </b> <b> - <a>85</a> - <b>86</b> + <a>90</a> + <b>91</b> <v>1</v> </b> <b> - <a>150</a> - <b>151</b> + <a>159</a> + <b>160</b> <v>1</v> </b> <b> - <a>443</a> - <b>444</b> + <a>489</a> + <b>490</b> <v>1</v> </b> <b> - <a>3377</a> - <b>3378</b> + <a>3882</a> + <b>3883</b> <v>1</v> </b> </bs> @@ -21087,7 +20833,7 @@ <b> <a>1</a> <b>2</b> - <v>4153</v> + <v>4745</v> </b> </bs> </hist> @@ -21103,7 +20849,7 @@ <b> <a>1</a> <b>2</b> - <v>4153</v> + <v>4745</v> </b> </bs> </hist> @@ -21113,19 +20859,19 @@ </relation> <relation> <name>ruby_while_def</name> - <cardinality>1400</cardinality> + <cardinality>1413</cardinality> <columnsizes> <e> <k>id</k> - <v>1400</v> + <v>1413</v> </e> <e> <k>body</k> - <v>1400</v> + <v>1413</v> </e> <e> <k>condition</k> - <v>1400</v> + <v>1413</v> </e> </columnsizes> <dependencies> @@ -21139,7 +20885,7 @@ <b> <a>1</a> <b>2</b> - <v>1400</v> + <v>1413</v> </b> </bs> </hist> @@ -21155,7 +20901,7 @@ <b> <a>1</a> <b>2</b> - <v>1400</v> + <v>1413</v> </b> </bs> </hist> @@ -21171,7 +20917,7 @@ <b> <a>1</a> <b>2</b> - <v>1400</v> + <v>1413</v> </b> </bs> </hist> @@ -21187,7 +20933,7 @@ <b> <a>1</a> <b>2</b> - <v>1400</v> + <v>1413</v> </b> </bs> </hist> @@ -21203,7 +20949,7 @@ <b> <a>1</a> <b>2</b> - <v>1400</v> + <v>1413</v> </b> </bs> </hist> @@ -21219,7 +20965,7 @@ <b> <a>1</a> <b>2</b> - <v>1400</v> + <v>1413</v> </b> </bs> </hist> @@ -21229,19 +20975,19 @@ </relation> <relation> <name>ruby_while_modifier_def</name> - <cardinality>194</cardinality> + <cardinality>198</cardinality> <columnsizes> <e> <k>id</k> - <v>194</v> + <v>198</v> </e> <e> <k>body</k> - <v>194</v> + <v>198</v> </e> <e> <k>condition</k> - <v>194</v> + <v>198</v> </e> </columnsizes> <dependencies> @@ -21255,7 +21001,7 @@ <b> <a>1</a> <b>2</b> - <v>194</v> + <v>198</v> </b> </bs> </hist> @@ -21271,7 +21017,7 @@ <b> <a>1</a> <b>2</b> - <v>194</v> + <v>198</v> </b> </bs> </hist> @@ -21287,7 +21033,7 @@ <b> <a>1</a> <b>2</b> - <v>194</v> + <v>198</v> </b> </bs> </hist> @@ -21303,7 +21049,7 @@ <b> <a>1</a> <b>2</b> - <v>194</v> + <v>198</v> </b> </bs> </hist> @@ -21319,7 +21065,7 @@ <b> <a>1</a> <b>2</b> - <v>194</v> + <v>198</v> </b> </bs> </hist> @@ -21335,7 +21081,7 @@ <b> <a>1</a> <b>2</b> - <v>194</v> + <v>198</v> </b> </bs> </hist> @@ -21345,15 +21091,15 @@ </relation> <relation> <name>ruby_yield_child</name> - <cardinality>1111</cardinality> + <cardinality>1103</cardinality> <columnsizes> <e> <k>ruby_yield</k> - <v>1111</v> + <v>1103</v> </e> <e> <k>child</k> - <v>1111</v> + <v>1103</v> </e> </columnsizes> <dependencies> @@ -21367,7 +21113,7 @@ <b> <a>1</a> <b>2</b> - <v>1111</v> + <v>1103</v> </b> </bs> </hist> @@ -21383,7 +21129,7 @@ <b> <a>1</a> <b>2</b> - <v>1111</v> + <v>1103</v> </b> </bs> </hist> @@ -21393,11 +21139,11 @@ </relation> <relation> <name>ruby_yield_def</name> - <cardinality>2477</cardinality> + <cardinality>2450</cardinality> <columnsizes> <e> <k>id</k> - <v>2477</v> + <v>2450</v> </e> </columnsizes> <dependencies/> From 865026f22bbd22226ee8686fb6f4f7eb6f3ee88d Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 19 Mar 2024 10:41:17 +0100 Subject: [PATCH 245/309] Ruby: Add up/downgrade scripts (sigh) --- .../erb_ast_node_info.ql | 44 + .../old.dbscheme | 1513 +++++++++++++++++ .../ruby.dbscheme | 1509 ++++++++++++++++ .../ruby_ast_node_info.ql | 44 + .../upgrade.properties | 8 + .../erb_ast_node_location.ql | 11 + .../erb_ast_node_parent.ql | 7 + .../old.dbscheme | 1509 ++++++++++++++++ .../ruby.dbscheme | 1513 +++++++++++++++++ .../ruby_ast_node_location.ql | 11 + .../ruby_ast_node_parent.ql | 7 + .../upgrade.properties | 8 + 12 files changed, 6184 insertions(+) create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/erb_ast_node_info.ql create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/old.dbscheme create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby.dbscheme create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby_ast_node_info.ql create mode 100644 ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/upgrade.properties create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_location.ql create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_parent.ql create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/old.dbscheme create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby.dbscheme create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_location.ql create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_parent.ql create mode 100644 ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/upgrade.properties diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/erb_ast_node_info.ql b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/erb_ast_node_info.ql new file mode 100644 index 00000000000..ed8cf128f1d --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/erb_ast_node_info.ql @@ -0,0 +1,44 @@ +class TAstNodeParent = @file or @erb_ast_node; + +abstract class AstNodeParent extends TAstNodeParent { + string toString() { none() } +} + +class AstNode extends AstNodeParent, @erb_ast_node { } + +class File extends AstNodeParent, @file { } + +class Location extends @location_default { + string toString() { none() } +} + +pragma[nomagic] +predicate hasFileParent( + AstNode n, File f, int startline, int startcolumn, int endline, int endcolumn +) { + exists(Location loc | + not erb_ast_node_parent(n, _, _) and + erb_ast_node_location(n, loc) and + locations_default(loc, f, startline, startcolumn, endline, endcolumn) + ) +} + +pragma[nomagic] +predicate hasFileParent(AstNode n, File f, int i) { + n = + rank[i + 1](AstNode n0, int startline, int startcolumn, int endline, int endcolumn | + hasFileParent(n0, f, startline, startcolumn, endline, endcolumn) + | + n0 order by startline, startcolumn, endline, endcolumn + ) +} + +from AstNode n, AstNodeParent parent, int i, Location location +where + erb_ast_node_location(n, location) and + ( + erb_ast_node_parent(n, parent, i) + or + hasFileParent(n, parent, i) + ) +select n, parent, i, location diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/old.dbscheme b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/old.dbscheme new file mode 100644 index 00000000000..440de75c71e --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/old.dbscheme @@ -0,0 +1,1513 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +ruby_ast_node_parent( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node ref, + int parent_index: int ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby.dbscheme b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby.dbscheme new file mode 100644 index 00000000000..f9f0f4023e4 --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby.dbscheme @@ -0,0 +1,1509 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +@ruby_ast_node_parent = @file | @ruby_ast_node + +#keyset[parent, parent_index] +ruby_ast_node_info( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node_parent ref, + int parent_index: int ref, + int loc: @location_default ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +@erb_ast_node_parent = @erb_ast_node | @file + +#keyset[parent, parent_index] +erb_ast_node_info( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node_parent ref, + int parent_index: int ref, + int loc: @location_default ref +); + diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby_ast_node_info.ql b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby_ast_node_info.ql new file mode 100644 index 00000000000..06551527942 --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/ruby_ast_node_info.ql @@ -0,0 +1,44 @@ +class TAstNodeParent = @file or @ruby_ast_node; + +abstract class AstNodeParent extends TAstNodeParent { + string toString() { none() } +} + +class AstNode extends AstNodeParent, @ruby_ast_node { } + +class File extends AstNodeParent, @file { } + +class Location extends @location_default { + string toString() { none() } +} + +pragma[nomagic] +predicate hasFileParent( + AstNode n, File f, int startline, int startcolumn, int endline, int endcolumn +) { + exists(Location loc | + not ruby_ast_node_parent(n, _, _) and + ruby_ast_node_location(n, loc) and + locations_default(loc, f, startline, startcolumn, endline, endcolumn) + ) +} + +pragma[nomagic] +predicate hasFileParent(AstNode n, File f, int i) { + n = + rank[i + 1](AstNode n0, int startline, int startcolumn, int endline, int endcolumn | + hasFileParent(n0, f, startline, startcolumn, endline, endcolumn) + | + n0 order by startline, startcolumn, endline, endcolumn + ) +} + +from AstNode n, AstNodeParent parent, int i, Location location +where + ruby_ast_node_location(n, location) and + ( + ruby_ast_node_parent(n, parent, i) + or + hasFileParent(n, parent, i) + ) +select n, parent, i, location diff --git a/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/upgrade.properties b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/upgrade.properties new file mode 100644 index 00000000000..b75ccdefc20 --- /dev/null +++ b/ruby/downgrades/440de75c71e9206ce16eed49a22c76e7889b5fc3/upgrade.properties @@ -0,0 +1,8 @@ +description: Merge `ruby_ast_node_location` and `ruby_ast_node_parent` into `ruby_ast_node_info` (and same for `erb`) +compatibility: backwards +erb_ast_node_info.rel: run erb_ast_node_info.qlo +erb_ast_node_location.rel: delete +erb_ast_node_parent.rel: delete +ruby_ast_node_info.rel: run ruby_ast_node_info.qlo +ruby_ast_node_location.rel: delete +ruby_ast_node_parent.rel: delete diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_location.ql b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_location.ql new file mode 100644 index 00000000000..add4e3d655c --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_location.ql @@ -0,0 +1,11 @@ +class AstNode extends @erb_ast_node { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +from AstNode n, Location location +where erb_ast_node_info(n, _, _, location) +select n, location diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_parent.ql b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_parent.ql new file mode 100644 index 00000000000..2a7b6b2ff78 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/erb_ast_node_parent.ql @@ -0,0 +1,7 @@ +class AstNode extends @erb_ast_node { + string toString() { none() } +} + +from AstNode n, int i, AstNode parent +where erb_ast_node_info(n, parent, i, _) +select n, parent, i diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/old.dbscheme b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/old.dbscheme new file mode 100644 index 00000000000..f9f0f4023e4 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/old.dbscheme @@ -0,0 +1,1509 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +@ruby_ast_node_parent = @file | @ruby_ast_node + +#keyset[parent, parent_index] +ruby_ast_node_info( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node_parent ref, + int parent_index: int ref, + int loc: @location_default ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +@erb_ast_node_parent = @erb_ast_node | @file + +#keyset[parent, parent_index] +erb_ast_node_info( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node_parent ref, + int parent_index: int ref, + int loc: @location_default ref +); + diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby.dbscheme b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby.dbscheme new file mode 100644 index 00000000000..440de75c71e --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby.dbscheme @@ -0,0 +1,1513 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +ruby_ast_node_parent( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node ref, + int parent_index: int ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_location.ql b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_location.ql new file mode 100644 index 00000000000..09f30acf973 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_location.ql @@ -0,0 +1,11 @@ +class AstNode extends @ruby_ast_node { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +from AstNode n, Location location +where ruby_ast_node_info(n, _, _, location) +select n, location diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_parent.ql b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_parent.ql new file mode 100644 index 00000000000..024ed9ee6b7 --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/ruby_ast_node_parent.ql @@ -0,0 +1,7 @@ +class AstNode extends @ruby_ast_node { + string toString() { none() } +} + +from AstNode n, int i, AstNode parent +where ruby_ast_node_info(n, parent, i, _) +select n, parent, i diff --git a/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/upgrade.properties b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/upgrade.properties new file mode 100644 index 00000000000..ddac0258abe --- /dev/null +++ b/ruby/ql/lib/upgrades/f9f0f4023e433184fda76f595247bf448b782135/upgrade.properties @@ -0,0 +1,8 @@ +description: Split up `ruby_ast_node_info` into `ruby_ast_node_location` and `ruby_ast_node_parent` (and same for `erb`) +compatibility: backwards +erb_ast_node_location.rel: run erb_ast_node_location.qlo +erb_ast_node_parent.rel: run erb_ast_node_parent.qlo +erb_ast_node_info.rel: delete +ruby_ast_node_location.rel: run ruby_ast_node_location.qlo +ruby_ast_node_parent.rel: run ruby_ast_node_parent.qlo +ruby_ast_node_info.rel: delete From 31e04631d1dfe4d0c9b3e627a136c3c6ed854120 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 19 Mar 2024 11:25:00 +0100 Subject: [PATCH 246/309] QL4QL: Regenerate DB scheme and stats --- .../src/codeql_ql/ast/internal/TreeSitter.qll | 24 +- ql/ql/src/ql.dbscheme | 50 +- ql/ql/src/ql.dbscheme.stats | 9868 ++++++++--------- 3 files changed, 4918 insertions(+), 5024 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll b/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll index 76e96979cfd..877f676e396 100644 --- a/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll +++ b/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll @@ -12,13 +12,13 @@ module QL { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { ql_ast_node_info(this, _, _, result) } + final L::Location getLocation() { ql_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { ql_ast_node_info(this, result, _, _) } + final AstNode getParent() { ql_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { ql_ast_node_info(this, _, result, _) } + final int getParentIndex() { ql_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } @@ -1282,13 +1282,13 @@ module Dbscheme { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { dbscheme_ast_node_info(this, _, _, result) } + final L::Location getLocation() { dbscheme_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { dbscheme_ast_node_info(this, result, _, _) } + final AstNode getParent() { dbscheme_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { dbscheme_ast_node_info(this, _, result, _) } + final int getParentIndex() { dbscheme_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } @@ -1618,13 +1618,13 @@ module Blame { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { blame_ast_node_info(this, _, _, result) } + final L::Location getLocation() { blame_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { blame_ast_node_info(this, result, _, _) } + final AstNode getParent() { blame_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { blame_ast_node_info(this, _, result, _) } + final int getParentIndex() { blame_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } @@ -1731,13 +1731,13 @@ module JSON { string toString() { result = this.getAPrimaryQlClass() } /** Gets the location of this element. */ - final L::Location getLocation() { json_ast_node_info(this, _, _, result) } + final L::Location getLocation() { json_ast_node_location(this, result) } /** Gets the parent of this element. */ - final AstNode getParent() { json_ast_node_info(this, result, _, _) } + final AstNode getParent() { json_ast_node_parent(this, result, _) } /** Gets the index of this node among the children of its parent. */ - final int getParentIndex() { json_ast_node_info(this, _, result, _) } + final int getParentIndex() { json_ast_node_parent(this, _, result) } /** Gets a field or child node of this node. */ AstNode getAFieldOrChild() { none() } diff --git a/ql/ql/src/ql.dbscheme b/ql/ql/src/ql.dbscheme index 97aa35b9ef5..21aebc3b431 100644 --- a/ql/ql/src/ql.dbscheme +++ b/ql/ql/src/ql.dbscheme @@ -972,14 +972,16 @@ case @ql_token.kind of @ql_ast_node = @ql_add_expr | @ql_aggregate | @ql_annot_arg | @ql_annotation | @ql_arityless_predicate_expr | @ql_as_expr | @ql_as_exprs | @ql_body | @ql_bool | @ql_call_body | @ql_call_or_unqual_agg_expr | @ql_charpred | @ql_class_member | @ql_classless_predicate | @ql_comp_term | @ql_conjunction | @ql_dataclass | @ql_datatype | @ql_datatype_branch | @ql_datatype_branches | @ql_disjunction | @ql_expr_aggregate_body | @ql_expr_annotation | @ql_field | @ql_full_aggregate_body | @ql_higher_order_term | @ql_if_term | @ql_implication | @ql_import_directive | @ql_import_module_expr | @ql_in_expr | @ql_instance_of | @ql_literal | @ql_member_predicate | @ql_module | @ql_module_alias_body | @ql_module_expr | @ql_module_instantiation | @ql_module_member | @ql_module_name | @ql_module_param | @ql_mul_expr | @ql_negation | @ql_order_by | @ql_order_bys | @ql_par_expr | @ql_predicate_alias_body | @ql_predicate_expr | @ql_prefix_cast | @ql_ql | @ql_qualified_expr | @ql_qualified_rhs | @ql_quantified | @ql_range | @ql_select | @ql_set_literal | @ql_signature_expr | @ql_special_call | @ql_super_ref | @ql_token | @ql_type_alias_body | @ql_type_expr | @ql_type_union_body | @ql_unary_expr | @ql_unqual_agg_body | @ql_var_decl | @ql_var_name | @ql_variable -@ql_ast_node_parent = @file | @ql_ast_node +ql_ast_node_location( + unique int node: @ql_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -ql_ast_node_info( +ql_ast_node_parent( unique int node: @ql_ast_node ref, - int parent: @ql_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @ql_ast_node ref, + int parent_index: int ref ); /*- Dbscheme dbscheme -*/ @@ -1159,14 +1161,16 @@ case @dbscheme_token.kind of @dbscheme_ast_node = @dbscheme_annotation | @dbscheme_args_annotation | @dbscheme_branch | @dbscheme_case_decl | @dbscheme_col_type | @dbscheme_column | @dbscheme_dbscheme | @dbscheme_entry | @dbscheme_repr_type | @dbscheme_table | @dbscheme_table_name | @dbscheme_token | @dbscheme_union_decl -@dbscheme_ast_node_parent = @dbscheme_ast_node | @file +dbscheme_ast_node_location( + unique int node: @dbscheme_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -dbscheme_ast_node_info( +dbscheme_ast_node_parent( unique int node: @dbscheme_ast_node ref, - int parent: @dbscheme_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @dbscheme_ast_node ref, + int parent_index: int ref ); /*- Blame dbscheme -*/ @@ -1222,14 +1226,16 @@ case @blame_token.kind of @blame_ast_node = @blame_blame_entry | @blame_blame_info | @blame_file_entry | @blame_token -@blame_ast_node_parent = @blame_ast_node | @file +blame_ast_node_location( + unique int node: @blame_ast_node ref, + int loc: @location_default ref +); #keyset[parent, parent_index] -blame_ast_node_info( +blame_ast_node_parent( unique int node: @blame_ast_node ref, - int parent: @blame_ast_node_parent ref, - int parent_index: int ref, - int loc: @location_default ref + int parent: @blame_ast_node ref, + int parent_index: int ref ); /*- JSON dbscheme -*/ @@ -1304,13 +1310,15 @@ case @json_token.kind of @json_ast_node = @json_array | @json_document | @json_object | @json_pair | @json_string__ | @json_token -@json_ast_node_parent = @file | @json_ast_node - -#keyset[parent, parent_index] -json_ast_node_info( +json_ast_node_location( unique int node: @json_ast_node ref, - int parent: @json_ast_node_parent ref, - int parent_index: int ref, int loc: @location_default ref ); +#keyset[parent, parent_index] +json_ast_node_parent( + unique int node: @json_ast_node ref, + int parent: @json_ast_node ref, + int parent_index: int ref +); + diff --git a/ql/ql/src/ql.dbscheme.stats b/ql/ql/src/ql.dbscheme.stats index 61923351ee9..1e992f7d7a4 100644 --- a/ql/ql/src/ql.dbscheme.stats +++ b/ql/ql/src/ql.dbscheme.stats @@ -29,115 +29,115 @@ </e> <e> <k>@dbscheme_annotation</k> - <v>20670</v> + <v>30564</v> </e> <e> <k>@dbscheme_args_annotation</k> - <v>20661</v> + <v>30555</v> </e> <e> <k>@dbscheme_branch</k> - <v>116911</v> + <v>151025</v> </e> <e> <k>@dbscheme_case_decl</k> - <v>4372</v> + <v>5423</v> </e> <e> <k>@dbscheme_col_type</k> - <v>252564</v> + <v>341399</v> </e> <e> <k>@dbscheme_column</k> - <v>252564</v> + <v>341399</v> </e> <e> <k>@dbscheme_dbscheme</k> - <v>532</v> + <v>686</v> </e> <e> <k>@dbscheme_entry</k> - <v>169630</v> + <v>230044</v> </e> <e> <k>@dbscheme_repr_type</k> - <v>252564</v> + <v>341399</v> </e> <e> <k>@dbscheme_reserved_word</k> - <v>1309648</v> + <v>1756569</v> </e> <e> <k>@dbscheme_table</k> - <v>105934</v> + <v>146537</v> </e> <e> <k>@dbscheme_table_name</k> - <v>105934</v> + <v>146537</v> </e> <e> <k>@dbscheme_token_annot_name</k> - <v>20670</v> + <v>30564</v> </e> <e> <k>@dbscheme_token_block_comment</k> - <v>17513</v> + <v>22060</v> </e> <e> <k>@dbscheme_token_boolean</k> - <v>1440</v> + <v>2146</v> </e> <e> <k>@dbscheme_token_date</k> - <v>1042</v> + <v>1170</v> </e> <e> <k>@dbscheme_token_dbtype</k> - <v>565153</v> + <v>750840</v> </e> <e> <k>@dbscheme_token_float</k> - <v>2354</v> + <v>2962</v> </e> <e> <k>@dbscheme_token_int</k> - <v>258872</v> + <v>350777</v> </e> <e> <k>@dbscheme_token_integer</k> - <v>124608</v> + <v>158986</v> </e> <e> <k>@dbscheme_token_line_comment</k> - <v>37863</v> + <v>62355</v> </e> <e> <k>@dbscheme_token_qldoc</k> - <v>8004</v> + <v>10956</v> </e> <e> <k>@dbscheme_token_ref</k> - <v>210468</v> + <v>281648</v> </e> <e> <k>@dbscheme_token_simple_id</k> - <v>397838</v> + <v>543204</v> </e> <e> <k>@dbscheme_token_string</k> - <v>51435</v> + <v>67865</v> </e> <e> <k>@dbscheme_token_unique</k> - <v>75701</v> + <v>102289</v> </e> <e> <k>@dbscheme_token_varchar</k> - <v>7697</v> + <v>7961</v> </e> <e> <k>@dbscheme_union_decl</k> - <v>51790</v> + <v>67798</v> </e> <e> <k>@diagnostic_debug</k> @@ -157,255 +157,255 @@ </e> <e> <k>@file</k> - <v>11682</v> + <v>12283</v> </e> <e> <k>@folder</k> - <v>3982</v> + <v>4402</v> </e> <e> <k>@json_array</k> - <v>481</v> + <v>2026</v> </e> <e> <k>@json_document</k> - <v>272</v> + <v>324</v> </e> <e> <k>@json_object</k> - <v>787</v> + <v>5034</v> </e> <e> <k>@json_pair</k> - <v>2223</v> + <v>12461</v> </e> <e> <k>@json_reserved_word</k> - <v>19369</v> + <v>82515</v> </e> <e> <k>@json_string__</k> - <v>5469</v> + <v>22176</v> </e> <e> <k>@json_token_comment</k> - <v>18</v> + <v>19</v> </e> <e> <k>@json_token_false</k> - <v>259</v> + <v>607</v> </e> <e> <k>@json_token_null</k> - <v>106</v> + <v>248</v> </e> <e> <k>@json_token_number</k> - <v>27</v> + <v>71</v> </e> <e> <k>@json_token_string_content</k> - <v>5465</v> + <v>22171</v> </e> <e> <k>@json_token_true</k> - <v>246</v> + <v>978</v> </e> <e> <k>@location_default</k> - <v>8479546</v> + <v>9617371</v> </e> <e> <k>@ql_add_expr</k> - <v>14857</v> + <v>13786</v> </e> <e> <k>@ql_aggregate</k> - <v>9694</v> + <v>9053</v> </e> <e> <k>@ql_annot_arg</k> - <v>6094</v> + <v>4043</v> </e> <e> <k>@ql_annotation</k> - <v>72771</v> + <v>65278</v> </e> <e> <k>@ql_arityless_predicate_expr</k> - <v>67354</v> + <v>58107</v> </e> <e> <k>@ql_as_expr</k> - <v>19448</v> + <v>20508</v> </e> <e> <k>@ql_as_exprs</k> - <v>8242</v> + <v>8493</v> </e> <e> <k>@ql_body</k> - <v>70726</v> + <v>65826</v> </e> <e> <k>@ql_bool</k> - <v>5039</v> + <v>4274</v> </e> <e> <k>@ql_call_body</k> - <v>66692</v> + <v>57368</v> </e> <e> <k>@ql_call_or_unqual_agg_expr</k> - <v>66692</v> + <v>57368</v> </e> <e> <k>@ql_charpred</k> - <v>12588</v> + <v>12088</v> </e> <e> <k>@ql_class_member</k> - <v>84646</v> + <v>79133</v> </e> <e> <k>@ql_classless_predicate</k> - <v>24640</v> + <v>23253</v> </e> <e> <k>@ql_comp_term</k> - <v>138784</v> + <v>140334</v> </e> <e> <k>@ql_conjunction</k> - <v>80925</v> + <v>76308</v> </e> <e> <k>@ql_dataclass</k> - <v>23834</v> + <v>22563</v> </e> <e> <k>@ql_datatype</k> - <v>809</v> + <v>548</v> </e> <e> <k>@ql_datatype_branch</k> - <v>3437</v> + <v>2719</v> </e> <e> <k>@ql_datatype_branches</k> - <v>809</v> + <v>548</v> </e> <e> <k>@ql_disjunction</k> - <v>40259</v> + <v>44890</v> </e> <e> <k>@ql_expr_aggregate_body</k> - <v>1293</v> + <v>1216</v> </e> <e> <k>@ql_expr_annotation</k> - <v>1328</v> + <v>601</v> </e> <e> <k>@ql_field</k> - <v>4149</v> + <v>3721</v> </e> <e> <k>@ql_full_aggregate_body</k> - <v>6714</v> + <v>6356</v> </e> <e> <k>@ql_higher_order_term</k> - <v>105</v> + <v>77</v> </e> <e> <k>@ql_if_term</k> - <v>3226</v> + <v>2953</v> </e> <e> <k>@ql_implication</k> - <v>87</v> + <v>101</v> </e> <e> <k>@ql_import_directive</k> - <v>24818</v> + <v>25764</v> </e> <e> <k>@ql_import_module_expr</k> - <v>24818</v> + <v>25764</v> </e> <e> <k>@ql_in_expr</k> - <v>1003</v> + <v>1037</v> </e> <e> <k>@ql_instance_of</k> - <v>17128</v> + <v>15913</v> </e> <e> <k>@ql_literal</k> - <v>98847</v> + <v>109390</v> </e> <e> <k>@ql_member_predicate</k> - <v>47549</v> + <v>43952</v> </e> <e> <k>@ql_module</k> - <v>3916</v> + <v>4567</v> </e> <e> <k>@ql_module_alias_body</k> - <v>725</v> + <v>917</v> </e> <e> <k>@ql_module_expr</k> - <v>72503</v> + <v>76399</v> </e> <e> <k>@ql_module_instantiation</k> - <v>1043</v> + <v>1740</v> </e> <e> <k>@ql_module_member</k> - <v>119591</v> + <v>118178</v> </e> <e> <k>@ql_module_name</k> - <v>6324</v> + <v>7606</v> </e> <e> <k>@ql_module_param</k> - <v>299</v> + <v>266</v> </e> <e> <k>@ql_mul_expr</k> - <v>631</v> + <v>585</v> </e> <e> <k>@ql_negation</k> - <v>12010</v> + <v>11727</v> </e> <e> <k>@ql_order_by</k> - <v>1098</v> + <v>1067</v> </e> <e> <k>@ql_order_bys</k> - <v>674</v> + <v>661</v> </e> <e> <k>@ql_par_expr</k> - <v>6038</v> + <v>5799</v> </e> <e> <k>@ql_predicate_alias_body</k> - <v>329</v> + <v>372</v> </e> <e> <k>@ql_predicate_expr</k> - <v>662</v> + <v>739</v> </e> <e> <k>@ql_prefix_cast</k> @@ -413,183 +413,183 @@ </e> <e> <k>@ql_ql</k> - <v>10785</v> + <v>11167</v> </e> <e> <k>@ql_qualified_expr</k> - <v>168511</v> + <v>165157</v> </e> <e> <k>@ql_qualified_rhs</k> - <v>168511</v> + <v>165157</v> </e> <e> <k>@ql_quantified</k> - <v>26111</v> + <v>24227</v> </e> <e> <k>@ql_range</k> - <v>417</v> + <v>365</v> </e> <e> <k>@ql_reserved_word</k> - <v>1966059</v> + <v>1875319</v> </e> <e> <k>@ql_select</k> - <v>5640</v> + <v>5989</v> </e> <e> <k>@ql_set_literal</k> - <v>3557</v> + <v>4014</v> </e> <e> <k>@ql_signature_expr</k> - <v>2248</v> + <v>3709</v> </e> <e> <k>@ql_special_call</k> - <v>4863</v> + <v>4424</v> </e> <e> <k>@ql_super_ref</k> - <v>2444</v> + <v>2901</v> </e> <e> <k>@ql_token_addop</k> - <v>14857</v> + <v>13786</v> </e> <e> <k>@ql_token_agg_id</k> - <v>9694</v> + <v>9053</v> </e> <e> <k>@ql_token_annot_name</k> - <v>75427</v> + <v>66480</v> </e> <e> <k>@ql_token_block_comment</k> - <v>1061</v> + <v>992</v> </e> <e> <k>@ql_token_class_name</k> - <v>224655</v> + <v>204253</v> </e> <e> <k>@ql_token_closure</k> - <v>2123</v> + <v>2234</v> </e> <e> <k>@ql_token_compop</k> - <v>138784</v> + <v>140334</v> </e> <e> <k>@ql_token_dbtype</k> - <v>3604</v> + <v>3766</v> </e> <e> <k>@ql_token_direction</k> - <v>200</v> + <v>205</v> </e> <e> <k>@ql_token_empty</k> - <v>2683</v> + <v>2344</v> </e> <e> <k>@ql_token_false</k> - <v>2391</v> + <v>1973</v> </e> <e> <k>@ql_token_float</k> - <v>296</v> + <v>305</v> </e> <e> <k>@ql_token_integer</k> - <v>20738</v> + <v>21612</v> </e> <e> <k>@ql_token_line_comment</k> - <v>20706</v> + <v>20888</v> </e> <e> <k>@ql_token_literal_id</k> - <v>67459</v> + <v>58184</v> </e> <e> <k>@ql_token_mulop</k> - <v>631</v> + <v>585</v> </e> <e> <k>@ql_token_predicate</k> - <v>28901</v> + <v>26200</v> </e> <e> <k>@ql_token_predicate_name</k> - <v>229368</v> + <v>221079</v> </e> <e> <k>@ql_token_primitive_type</k> - <v>49384</v> + <v>47956</v> </e> <e> <k>@ql_token_qldoc</k> - <v>56786</v> + <v>55406</v> </e> <e> <k>@ql_token_quantifier</k> - <v>26111</v> + <v>24227</v> </e> <e> <k>@ql_token_result</k> - <v>55181</v> + <v>52493</v> </e> <e> <k>@ql_token_simple_id</k> - <v>542286</v> + <v>512064</v> </e> <e> <k>@ql_token_special_id</k> - <v>4863</v> + <v>4424</v> </e> <e> <k>@ql_token_string</k> - <v>73436</v> + <v>83938</v> </e> <e> <k>@ql_token_super</k> - <v>2444</v> + <v>2901</v> </e> <e> <k>@ql_token_this</k> - <v>53091</v> + <v>50826</v> </e> <e> <k>@ql_token_true</k> - <v>2648</v> + <v>2301</v> </e> <e> <k>@ql_token_underscore</k> - <v>20351</v> + <v>17184</v> </e> <e> <k>@ql_token_unop</k> - <v>1171</v> + <v>1158</v> </e> <e> <k>@ql_type_alias_body</k> - <v>1245</v> + <v>817</v> </e> <e> <k>@ql_type_expr</k> - <v>236975</v> + <v>218057</v> </e> <e> <k>@ql_type_union_body</k> - <v>249</v> + <v>253</v> </e> <e> <k>@ql_unary_expr</k> - <v>1171</v> + <v>1158</v> </e> <e> <k>@ql_unqual_agg_body</k> @@ -597,15 +597,15 @@ </e> <e> <k>@ql_var_decl</k> - <v>129441</v> + <v>114137</v> </e> <e> <k>@ql_var_name</k> - <v>415356</v> + <v>380908</v> </e> <e> <k>@ql_variable</k> - <v>393587</v> + <v>369462</v> </e> <e> <k>@yaml_alias_node</k> @@ -617,19 +617,61 @@ </e> <e> <k>@yaml_mapping_node</k> - <v>160</v> + <v>186</v> </e> <e> <k>@yaml_scalar_node</k> - <v>1136</v> + <v>1481</v> </e> <e> <k>@yaml_sequence_node</k> - <v>52</v> + <v>59</v> </e> </typesizes> <stats><relation> - <name>blame_ast_node_info</name> + <name>blame_ast_node_location</name> + <cardinality>0</cardinality> + <columnsizes> + <e> + <k>node</k> + <v>0</v> + </e> + <e> + <k>loc</k> + <v>0</v> + </e> + </columnsizes> + <dependencies> + <dep> + <src>node</src> + <trg>loc</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>loc</src> + <trg>node</trg> + <val> + <hist> + <budget>12</budget> + <bs/> + </hist> + </val> + </dep> + </dependencies> + </relation> + <relation> + <name>blame_ast_node_parent</name> <cardinality>0</cardinality> <columnsizes> <e> @@ -644,10 +686,6 @@ <k>parent_index</k> <v>0</v> </e> - <e> - <k>loc</k> - <v>0</v> - </e> </columnsizes> <dependencies> <dep> @@ -682,22 +720,6 @@ </hist> </val> </dep> - <dep> - <src>node</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1</v> - </b> - </bs> - </hist> - </val> - </dep> <dep> <src>parent</src> <trg>node</trg> @@ -718,16 +740,6 @@ </hist> </val> </dep> - <dep> - <src>parent</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs/> - </hist> - </val> - </dep> <dep> <src>parent_index</src> <trg>node</trg> @@ -748,46 +760,6 @@ </hist> </val> </dep> - <dep> - <src>parent_index</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs/> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>node</trg> - <val> - <hist> - <budget>12</budget> - <bs/> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent</trg> - <val> - <hist> - <budget>12</budget> - <bs/> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent_index</trg> - <val> - <hist> - <budget>12</budget> - <bs/> - </hist> - </val> - </dep> </dependencies> </relation> <relation> @@ -1286,15 +1258,15 @@ </relation> <relation> <name>containerparent</name> - <cardinality>15662</cardinality> + <cardinality>16683</cardinality> <columnsizes> <e> <k>parent</k> - <v>3982</v> + <v>4402</v> </e> <e> <k>child</k> - <v>15662</v> + <v>16683</v> </e> </columnsizes> <dependencies> @@ -1308,32 +1280,32 @@ <b> <a>1</a> <b>2</b> - <v>1880</v> + <v>2157</v> </b> <b> <a>2</a> <b>3</b> - <v>882</v> + <v>978</v> </b> <b> <a>3</a> <b>4</b> - <v>354</v> + <v>375</v> </b> <b> <a>4</a> <b>6</b> - <v>334</v> + <v>348</v> </b> <b> <a>6</a> - <b>14</b> - <v>312</v> + <b>15</b> + <v>339</v> </b> <b> - <a>14</a> - <b>240</b> - <v>220</v> + <a>15</a> + <b>255</b> + <v>205</v> </b> </bs> </hist> @@ -1349,7 +1321,7 @@ <b> <a>1</a> <b>2</b> - <v>15662</v> + <v>16683</v> </b> </bs> </hist> @@ -1359,15 +1331,15 @@ </relation> <relation> <name>dbscheme_annotation_args_annotation</name> - <cardinality>20661</cardinality> + <cardinality>30555</cardinality> <columnsizes> <e> <k>dbscheme_annotation</k> - <v>20661</v> + <v>30555</v> </e> <e> <k>args_annotation</k> - <v>20661</v> + <v>30555</v> </e> </columnsizes> <dependencies> @@ -1381,7 +1353,7 @@ <b> <a>1</a> <b>2</b> - <v>20661</v> + <v>30555</v> </b> </bs> </hist> @@ -1397,7 +1369,7 @@ <b> <a>1</a> <b>2</b> - <v>20661</v> + <v>30555</v> </b> </bs> </hist> @@ -1407,11 +1379,11 @@ </relation> <relation> <name>dbscheme_annotation_def</name> - <cardinality>20670</cardinality> + <cardinality>30564</cardinality> <columnsizes> <e> <k>id</k> - <v>20670</v> + <v>30564</v> </e> </columnsizes> <dependencies/> @@ -1466,11 +1438,11 @@ </relation> <relation> <name>dbscheme_args_annotation_child</name> - <cardinality>34968</cardinality> + <cardinality>49845</cardinality> <columnsizes> <e> <k>dbscheme_args_annotation</k> - <v>20661</v> + <v>30555</v> </e> <e> <k>index</k> @@ -1478,7 +1450,7 @@ </e> <e> <k>child</k> - <v>34968</v> + <v>49845</v> </e> </columnsizes> <dependencies> @@ -1492,17 +1464,17 @@ <b> <a>1</a> <b>2</b> - <v>7137</v> + <v>12292</v> </b> <b> <a>2</a> <b>3</b> - <v>12741</v> + <v>17236</v> </b> <b> <a>3</a> <b>4</b> - <v>783</v> + <v>1027</v> </b> </bs> </hist> @@ -1518,17 +1490,17 @@ <b> <a>1</a> <b>2</b> - <v>7137</v> + <v>12292</v> </b> <b> <a>2</a> <b>3</b> - <v>12741</v> + <v>17236</v> </b> <b> <a>3</a> <b>4</b> - <v>783</v> + <v>1027</v> </b> </bs> </hist> @@ -1542,18 +1514,18 @@ <budget>12</budget> <bs> <b> - <a>783</a> - <b>784</b> + <a>1027</a> + <b>1028</b> <v>1</v> </b> <b> - <a>13524</a> - <b>13525</b> + <a>18263</a> + <b>18264</b> <v>1</v> </b> <b> - <a>20661</a> - <b>20662</b> + <a>30555</a> + <b>30556</b> <v>1</v> </b> </bs> @@ -1568,18 +1540,18 @@ <budget>12</budget> <bs> <b> - <a>783</a> - <b>784</b> + <a>1027</a> + <b>1028</b> <v>1</v> </b> <b> - <a>13524</a> - <b>13525</b> + <a>18263</a> + <b>18264</b> <v>1</v> </b> <b> - <a>20661</a> - <b>20662</b> + <a>30555</a> + <b>30556</b> <v>1</v> </b> </bs> @@ -1596,7 +1568,7 @@ <b> <a>1</a> <b>2</b> - <v>34968</v> + <v>49845</v> </b> </bs> </hist> @@ -1612,7 +1584,7 @@ <b> <a>1</a> <b>2</b> - <v>34968</v> + <v>49845</v> </b> </bs> </hist> @@ -1622,15 +1594,15 @@ </relation> <relation> <name>dbscheme_args_annotation_def</name> - <cardinality>20661</cardinality> + <cardinality>30555</cardinality> <columnsizes> <e> <k>id</k> - <v>20661</v> + <v>30555</v> </e> <e> <k>name</k> - <v>20661</v> + <v>30555</v> </e> </columnsizes> <dependencies> @@ -1644,7 +1616,7 @@ <b> <a>1</a> <b>2</b> - <v>20661</v> + <v>30555</v> </b> </bs> </hist> @@ -1660,7 +1632,7 @@ <b> <a>1</a> <b>2</b> - <v>20661</v> + <v>30555</v> </b> </bs> </hist> @@ -1669,24 +1641,73 @@ </dependencies> </relation> <relation> - <name>dbscheme_ast_node_info</name> - <cardinality>4444432</cardinality> + <name>dbscheme_ast_node_location</name> + <cardinality>5985718</cardinality> <columnsizes> <e> <k>node</k> - <v>4444432</v> - </e> - <e> - <k>parent</k> - <v>1354658</v> - </e> - <e> - <k>parent_index</k> - <v>476</v> + <v>5985718</v> </e> <e> <k>loc</k> - <v>3650776</v> + <v>4903745</v> + </e> + </columnsizes> + <dependencies> + <dep> + <src>node</src> + <trg>loc</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>5985718</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>loc</src> + <trg>node</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>3821772</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1081973</v> + </b> + </bs> + </hist> + </val> + </dep> + </dependencies> + </relation> + <relation> + <name>dbscheme_ast_node_parent</name> + <cardinality>5900617</cardinality> + <columnsizes> + <e> + <k>node</k> + <v>5900617</v> + </e> + <e> + <k>parent</k> + <v>1833365</v> + </e> + <e> + <k>parent_index</k> + <v>501</v> </e> </columnsizes> <dependencies> @@ -1700,7 +1721,7 @@ <b> <a>1</a> <b>2</b> - <v>4444432</v> + <v>5900617</v> </b> </bs> </hist> @@ -1716,23 +1737,7 @@ <b> <a>1</a> <b>2</b> - <v>4444432</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>node</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>4444432</v> + <v>5900617</v> </b> </bs> </hist> @@ -1748,32 +1753,32 @@ <b> <a>1</a> <b>2</b> - <v>793673</v> + <v>1081973</v> </b> <b> <a>2</a> <b>4</b> - <v>117079</v> + <v>151168</v> </b> <b> <a>4</a> <b>5</b> - <v>11481</v> + <v>13080</v> </b> <b> <a>5</a> <b>6</b> - <v>247420</v> + <v>341594</v> </b> <b> <a>6</a> <b>8</b> - <v>112901</v> + <v>149771</v> </b> <b> <a>8</a> - <b>477</b> - <v>72104</v> + <b>502</b> + <v>95779</v> </b> </bs> </hist> @@ -1789,73 +1794,32 @@ <b> <a>1</a> <b>2</b> - <v>793673</v> + <v>1081973</v> </b> <b> <a>2</a> <b>4</b> - <v>117079</v> + <v>151168</v> </b> <b> <a>4</a> <b>5</b> - <v>11481</v> + <v>13080</v> </b> <b> <a>5</a> <b>6</b> - <v>247420</v> + <v>341594</v> </b> <b> <a>6</a> <b>8</b> - <v>112901</v> + <v>149771</v> </b> <b> <a>8</a> - <b>477</b> - <v>72104</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>793673</v> - </b> - <b> - <a>2</a> - <b>4</b> - <v>117079</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>11481</v> - </b> - <b> - <a>5</a> - <b>6</b> - <v>247420</v> - </b> - <b> - <a>6</a> - <b>8</b> - <v>112901</v> - </b> - <b> - <a>8</a> - <b>477</b> - <v>72104</v> + <b>502</b> + <v>95779</v> </b> </bs> </hist> @@ -1869,69 +1833,69 @@ <budget>12</budget> <bs> <b> - <a>7</a> - <b>257</b> - <v>39</v> - </b> - <b> - <a>258</a> - <b>307</b> + <a>3</a> + <b>140</b> <v>38</v> </b> <b> - <a>321</a> - <b>338</b> + <a>147</a> + <b>386</b> + <v>38</v> + </b> + <b> + <a>387</a> + <b>491</b> + <v>31</v> + </b> + <b> + <a>491</a> + <b>492</b> + <v>49</v> + </b> + <b> + <a>499</a> + <b>712</b> + <v>38</v> + </b> + <b> + <a>717</a> + <b>841</b> <v>42</v> </b> <b> - <a>345</a> - <b>508</b> - <v>37</v> + <a>842</a> + <b>1054</b> + <v>38</v> </b> <b> - <a>508</a> - <b>652</b> - <v>37</v> + <a>1055</a> + <b>1190</b> + <v>44</v> </b> <b> - <a>661</a> - <b>763</b> - <v>36</v> + <a>1192</a> + <b>1357</b> + <v>41</v> </b> <b> - <a>769</a> - <b>930</b> - <v>36</v> + <a>1362</a> + <b>1575</b> + <v>39</v> </b> <b> - <a>936</a> - <b>1034</b> - <v>36</v> + <a>1582</a> + <b>2577</b> + <v>38</v> </b> <b> - <a>1047</a> - <b>1122</b> - <v>36</v> + <a>2626</a> + <b>5260</b> + <v>38</v> </b> <b> - <a>1122</a> - <b>1375</b> - <v>36</v> - </b> - <b> - <a>1381</a> - <b>1960</b> - <v>36</v> - </b> - <b> - <a>2174</a> - <b>3839</b> - <v>36</v> - </b> - <b> - <a>3932</a> - <b>1354659</b> - <v>31</v> + <a>5283</a> + <b>1833366</b> + <v>27</v> </b> </bs> </hist> @@ -1945,208 +1909,69 @@ <budget>12</budget> <bs> <b> - <a>7</a> - <b>257</b> - <v>39</v> - </b> - <b> - <a>258</a> - <b>307</b> + <a>3</a> + <b>140</b> <v>38</v> </b> <b> - <a>321</a> - <b>338</b> - <v>42</v> - </b> - <b> - <a>345</a> - <b>508</b> - <v>37</v> - </b> - <b> - <a>508</a> - <b>652</b> - <v>37</v> - </b> - <b> - <a>661</a> - <b>763</b> - <v>36</v> - </b> - <b> - <a>769</a> - <b>930</b> - <v>36</v> - </b> - <b> - <a>936</a> - <b>1034</b> - <v>36</v> - </b> - <b> - <a>1047</a> - <b>1122</b> - <v>36</v> - </b> - <b> - <a>1122</a> - <b>1375</b> - <v>36</v> - </b> - <b> - <a>1381</a> - <b>1960</b> - <v>36</v> - </b> - <b> - <a>2174</a> - <b>3839</b> - <v>36</v> - </b> - <b> - <a>3932</a> - <b>1354659</b> - <v>31</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent_index</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>7</a> - <b>257</b> - <v>39</v> - </b> - <b> - <a>258</a> - <b>307</b> + <a>147</a> + <b>386</b> <v>38</v> </b> <b> - <a>321</a> - <b>338</b> + <a>387</a> + <b>491</b> + <v>31</v> + </b> + <b> + <a>491</a> + <b>492</b> + <v>49</v> + </b> + <b> + <a>499</a> + <b>712</b> + <v>38</v> + </b> + <b> + <a>717</a> + <b>841</b> <v>42</v> </b> <b> - <a>345</a> - <b>508</b> - <v>37</v> + <a>842</a> + <b>1054</b> + <v>38</v> </b> <b> - <a>508</a> - <b>652</b> - <v>37</v> + <a>1055</a> + <b>1190</b> + <v>44</v> </b> <b> - <a>661</a> - <b>763</b> - <v>36</v> + <a>1192</a> + <b>1357</b> + <v>41</v> </b> <b> - <a>769</a> - <b>930</b> - <v>36</v> + <a>1362</a> + <b>1575</b> + <v>39</v> </b> <b> - <a>936</a> - <b>1034</b> - <v>36</v> + <a>1582</a> + <b>2577</b> + <v>38</v> </b> <b> - <a>1047</a> - <b>1122</b> - <v>36</v> + <a>2626</a> + <b>5260</b> + <v>38</v> </b> <b> - <a>1122</a> - <b>1375</b> - <v>36</v> - </b> - <b> - <a>1381</a> - <b>1960</b> - <v>36</v> - </b> - <b> - <a>2174</a> - <b>3839</b> - <v>36</v> - </b> - <b> - <a>3932</a> - <b>1079008</b> - <v>31</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>node</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>2857120</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>793656</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>2857120</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>793656</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent_index</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>3132771</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>518005</v> + <a>5283</a> + <b>1833366</b> + <v>27</v> </b> </bs> </hist> @@ -2156,11 +1981,11 @@ </relation> <relation> <name>dbscheme_branch_child</name> - <cardinality>233822</cardinality> + <cardinality>302050</cardinality> <columnsizes> <e> <k>dbscheme_branch</k> - <v>116911</v> + <v>151025</v> </e> <e> <k>index</k> @@ -2168,7 +1993,7 @@ </e> <e> <k>child</k> - <v>233822</v> + <v>302050</v> </e> </columnsizes> <dependencies> @@ -2182,7 +2007,7 @@ <b> <a>2</a> <b>3</b> - <v>116911</v> + <v>151025</v> </b> </bs> </hist> @@ -2198,7 +2023,7 @@ <b> <a>2</a> <b>3</b> - <v>116911</v> + <v>151025</v> </b> </bs> </hist> @@ -2212,8 +2037,8 @@ <budget>12</budget> <bs> <b> - <a>116911</a> - <b>116912</b> + <a>151025</a> + <b>151026</b> <v>2</v> </b> </bs> @@ -2228,8 +2053,8 @@ <budget>12</budget> <bs> <b> - <a>116911</a> - <b>116912</b> + <a>151025</a> + <b>151026</b> <v>2</v> </b> </bs> @@ -2246,7 +2071,7 @@ <b> <a>1</a> <b>2</b> - <v>233822</v> + <v>302050</v> </b> </bs> </hist> @@ -2262,7 +2087,7 @@ <b> <a>1</a> <b>2</b> - <v>233822</v> + <v>302050</v> </b> </bs> </hist> @@ -2272,11 +2097,11 @@ </relation> <relation> <name>dbscheme_branch_def</name> - <cardinality>116911</cardinality> + <cardinality>151025</cardinality> <columnsizes> <e> <k>id</k> - <v>116911</v> + <v>151025</v> </e> </columnsizes> <dependencies/> @@ -2331,11 +2156,11 @@ </relation> <relation> <name>dbscheme_case_decl_child</name> - <cardinality>116911</cardinality> + <cardinality>151025</cardinality> <columnsizes> <e> <k>dbscheme_case_decl</k> - <v>4372</v> + <v>5423</v> </e> <e> <k>index</k> @@ -2343,7 +2168,7 @@ </e> <e> <k>child</k> - <v>116911</v> + <v>151025</v> </e> </columnsizes> <dependencies> @@ -2362,57 +2187,57 @@ <b> <a>2</a> <b>3</b> - <v>661</v> + <v>841</v> </b> <b> <a>3</a> <b>4</b> - <v>486</v> + <v>605</v> </b> <b> <a>4</a> <b>5</b> - <v>595</v> + <v>691</v> </b> <b> <a>5</a> <b>6</b> - <v>335</v> + <v>456</v> </b> <b> <a>6</a> <b>8</b> - <v>187</v> + <v>218</v> </b> <b> <a>9</a> - <b>12</b> - <v>335</v> + <b>11</b> + <v>408</v> </b> <b> - <a>12</a> + <a>11</a> <b>18</b> - <v>347</v> + <v>438</v> </b> <b> <a>21</a> <b>29</b> - <v>395</v> + <v>467</v> </b> <b> <a>29</a> <b>38</b> - <v>360</v> + <v>436</v> </b> <b> <a>38</a> - <b>116</b> - <v>335</v> + <b>117</b> + <v>407</v> </b> <b> - <a>116</a> + <a>118</a> <b>219</b> - <v>335</v> + <v>455</v> </b> </bs> </hist> @@ -2433,57 +2258,57 @@ <b> <a>2</a> <b>3</b> - <v>661</v> + <v>841</v> </b> <b> <a>3</a> <b>4</b> - <v>486</v> + <v>605</v> </b> <b> <a>4</a> <b>5</b> - <v>595</v> + <v>691</v> </b> <b> <a>5</a> <b>6</b> - <v>335</v> + <v>456</v> </b> <b> <a>6</a> <b>8</b> - <v>187</v> + <v>218</v> </b> <b> <a>9</a> - <b>12</b> - <v>335</v> + <b>11</b> + <v>408</v> </b> <b> - <a>12</a> + <a>11</a> <b>18</b> - <v>347</v> + <v>438</v> </b> <b> <a>21</a> <b>29</b> - <v>395</v> + <v>467</v> </b> <b> <a>29</a> <b>38</b> - <v>360</v> + <v>436</v> </b> <b> <a>38</a> - <b>116</b> - <v>335</v> + <b>117</b> + <v>407</v> </b> <b> - <a>116</a> + <a>118</a> <b>219</b> - <v>335</v> + <v>455</v> </b> </bs> </hist> @@ -2497,63 +2322,73 @@ <budget>12</budget> <bs> <b> - <a>120</a> - <b>121</b> - <v>21</v> - </b> - <b> - <a>135</a> - <b>136</b> - <v>27</v> - </b> - <b> - <a>143</a> - <b>210</b> - <v>11</v> - </b> - <b> - <a>227</a> - <b>228</b> - <v>34</v> - </b> - <b> - <a>238</a> - <b>404</b> - <v>17</v> - </b> - <b> - <a>405</a> - <b>421</b> + <a>156</a> + <b>157</b> <v>20</v> </b> <b> - <a>449</a> - <b>452</b> + <a>159</a> + <b>160</b> + <v>1</v> + </b> + <b> + <a>219</a> + <b>220</b> + <v>27</v> + </b> + <b> + <a>227</a> + <b>294</b> + <v>11</v> + </b> + <b> + <a>311</a> + <b>312</b> + <v>32</v> + </b> + <b> + <a>330</a> + <b>494</b> + <v>17</v> + </b> + <b> + <a>521</a> + <b>544</b> + <v>13</v> + </b> + <b> + <a>544</a> + <b>548</b> + <v>9</v> + </b> + <b> + <a>581</a> + <b>584</b> <v>15</v> </b> <b> - <a>466</a> - <b>469</b> + <a>598</a> + <b>601</b> <v>17</v> </b> <b> - <a>472</a> - <b>607</b> + <a>643</a> + <b>795</b> <v>17</v> </b> <b> - <a>614</a> - <b>1424</b> + <a>802</a> + <b>1764</b> <v>17</v> </b> <b> - <a>1424</a> - <b>2295</b> + <a>1764</a> + <b>2830</b> <v>17</v> </b> <b> - <a>2629</a> - <b>4373</b> + <a>3285</a> + <b>5424</b> <v>5</v> </b> </bs> @@ -2568,63 +2403,73 @@ <budget>12</budget> <bs> <b> - <a>120</a> - <b>121</b> - <v>21</v> - </b> - <b> - <a>135</a> - <b>136</b> - <v>27</v> - </b> - <b> - <a>143</a> - <b>210</b> - <v>11</v> - </b> - <b> - <a>227</a> - <b>228</b> - <v>34</v> - </b> - <b> - <a>238</a> - <b>404</b> - <v>17</v> - </b> - <b> - <a>405</a> - <b>421</b> + <a>156</a> + <b>157</b> <v>20</v> </b> <b> - <a>449</a> - <b>452</b> + <a>159</a> + <b>160</b> + <v>1</v> + </b> + <b> + <a>219</a> + <b>220</b> + <v>27</v> + </b> + <b> + <a>227</a> + <b>294</b> + <v>11</v> + </b> + <b> + <a>311</a> + <b>312</b> + <v>32</v> + </b> + <b> + <a>330</a> + <b>494</b> + <v>17</v> + </b> + <b> + <a>521</a> + <b>544</b> + <v>13</v> + </b> + <b> + <a>544</a> + <b>548</b> + <v>9</v> + </b> + <b> + <a>581</a> + <b>584</b> <v>15</v> </b> <b> - <a>466</a> - <b>469</b> + <a>598</a> + <b>601</b> <v>17</v> </b> <b> - <a>472</a> - <b>607</b> + <a>643</a> + <b>795</b> <v>17</v> </b> <b> - <a>614</a> - <b>1424</b> + <a>802</a> + <b>1764</b> <v>17</v> </b> <b> - <a>1424</a> - <b>2295</b> + <a>1764</a> + <b>2830</b> <v>17</v> </b> <b> - <a>2629</a> - <b>4373</b> + <a>3285</a> + <b>5424</b> <v>5</v> </b> </bs> @@ -2641,7 +2486,7 @@ <b> <a>1</a> <b>2</b> - <v>116911</v> + <v>151025</v> </b> </bs> </hist> @@ -2657,7 +2502,7 @@ <b> <a>1</a> <b>2</b> - <v>116911</v> + <v>151025</v> </b> </bs> </hist> @@ -2667,19 +2512,19 @@ </relation> <relation> <name>dbscheme_case_decl_def</name> - <cardinality>4372</cardinality> + <cardinality>5423</cardinality> <columnsizes> <e> <k>id</k> - <v>4372</v> + <v>5423</v> </e> <e> <k>base</k> - <v>4372</v> + <v>5423</v> </e> <e> <k>discriminator</k> - <v>4372</v> + <v>5423</v> </e> </columnsizes> <dependencies> @@ -2693,7 +2538,7 @@ <b> <a>1</a> <b>2</b> - <v>4372</v> + <v>5423</v> </b> </bs> </hist> @@ -2709,7 +2554,7 @@ <b> <a>1</a> <b>2</b> - <v>4372</v> + <v>5423</v> </b> </bs> </hist> @@ -2725,7 +2570,7 @@ <b> <a>1</a> <b>2</b> - <v>4372</v> + <v>5423</v> </b> </bs> </hist> @@ -2741,7 +2586,7 @@ <b> <a>1</a> <b>2</b> - <v>4372</v> + <v>5423</v> </b> </bs> </hist> @@ -2757,7 +2602,7 @@ <b> <a>1</a> <b>2</b> - <v>4372</v> + <v>5423</v> </b> </bs> </hist> @@ -2773,7 +2618,7 @@ <b> <a>1</a> <b>2</b> - <v>4372</v> + <v>5423</v> </b> </bs> </hist> @@ -2783,15 +2628,15 @@ </relation> <relation> <name>dbscheme_col_type_def</name> - <cardinality>252564</cardinality> + <cardinality>341399</cardinality> <columnsizes> <e> <k>id</k> - <v>252564</v> + <v>341399</v> </e> <e> <k>child</k> - <v>252564</v> + <v>341399</v> </e> </columnsizes> <dependencies> @@ -2805,7 +2650,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2821,7 +2666,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2831,23 +2676,23 @@ </relation> <relation> <name>dbscheme_column_def</name> - <cardinality>252564</cardinality> + <cardinality>341399</cardinality> <columnsizes> <e> <k>id</k> - <v>252564</v> + <v>341399</v> </e> <e> <k>col_name</k> - <v>252564</v> + <v>341399</v> </e> <e> <k>col_type</k> - <v>252564</v> + <v>341399</v> </e> <e> <k>repr_type</k> - <v>252564</v> + <v>341399</v> </e> </columnsizes> <dependencies> @@ -2861,7 +2706,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2877,7 +2722,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2893,7 +2738,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2909,7 +2754,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2925,7 +2770,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2941,7 +2786,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2957,7 +2802,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2973,7 +2818,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -2989,7 +2834,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -3005,7 +2850,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -3021,7 +2866,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -3037,7 +2882,7 @@ <b> <a>1</a> <b>2</b> - <v>252564</v> + <v>341399</v> </b> </bs> </hist> @@ -3047,15 +2892,15 @@ </relation> <relation> <name>dbscheme_column_is_ref</name> - <cardinality>210468</cardinality> + <cardinality>281648</cardinality> <columnsizes> <e> <k>dbscheme_column</k> - <v>210468</v> + <v>281648</v> </e> <e> <k>is_ref</k> - <v>210468</v> + <v>281648</v> </e> </columnsizes> <dependencies> @@ -3069,7 +2914,7 @@ <b> <a>1</a> <b>2</b> - <v>210468</v> + <v>281648</v> </b> </bs> </hist> @@ -3085,7 +2930,7 @@ <b> <a>1</a> <b>2</b> - <v>210468</v> + <v>281648</v> </b> </bs> </hist> @@ -3095,15 +2940,15 @@ </relation> <relation> <name>dbscheme_column_is_unique</name> - <cardinality>75701</cardinality> + <cardinality>102289</cardinality> <columnsizes> <e> <k>dbscheme_column</k> - <v>75701</v> + <v>102289</v> </e> <e> <k>is_unique</k> - <v>75701</v> + <v>102289</v> </e> </columnsizes> <dependencies> @@ -3117,7 +2962,7 @@ <b> <a>1</a> <b>2</b> - <v>75701</v> + <v>102289</v> </b> </bs> </hist> @@ -3133,7 +2978,7 @@ <b> <a>1</a> <b>2</b> - <v>75701</v> + <v>102289</v> </b> </bs> </hist> @@ -3143,15 +2988,15 @@ </relation> <relation> <name>dbscheme_column_qldoc</name> - <cardinality>470</cardinality> + <cardinality>670</cardinality> <columnsizes> <e> <k>dbscheme_column</k> - <v>470</v> + <v>670</v> </e> <e> <k>qldoc</k> - <v>470</v> + <v>670</v> </e> </columnsizes> <dependencies> @@ -3165,7 +3010,7 @@ <b> <a>1</a> <b>2</b> - <v>470</v> + <v>670</v> </b> </bs> </hist> @@ -3181,7 +3026,7 @@ <b> <a>1</a> <b>2</b> - <v>470</v> + <v>670</v> </b> </bs> </hist> @@ -3191,19 +3036,19 @@ </relation> <relation> <name>dbscheme_dbscheme_child</name> - <cardinality>169630</cardinality> + <cardinality>230044</cardinality> <columnsizes> <e> <k>dbscheme_dbscheme</k> - <v>532</v> + <v>685</v> </e> <e> <k>index</k> - <v>476</v> + <v>501</v> </e> <e> <k>child</k> - <v>169630</v> + <v>230044</v> </e> </columnsizes> <dependencies> @@ -3216,68 +3061,68 @@ <bs> <b> <a>2</a> - <b>142</b> - <v>43</v> + <b>147</b> + <v>56</v> </b> <b> - <a>142</a> - <b>200</b> - <v>40</v> + <a>148</a> + <b>205</b> + <v>55</v> </b> <b> - <a>200</a> - <b>259</b> - <v>41</v> + <a>205</a> + <b>275</b> + <v>54</v> </b> <b> - <a>260</a> - <b>278</b> - <v>41</v> + <a>275</a> + <b>287</b> + <v>52</v> </b> <b> - <a>278</a> - <b>288</b> - <v>38</v> + <a>287</a> + <b>306</b> + <v>62</v> </b> <b> - <a>290</a> - <b>305</b> - <v>46</v> + <a>307</a> + <b>312</b> + <v>52</v> </b> <b> - <a>305</a> - <b>310</b> - <v>42</v> + <a>313</a> + <b>320</b> + <v>56</v> </b> <b> - <a>310</a> - <b>315</b> - <v>40</v> - </b> - <b> - <a>316</a> + <a>320</a> <b>418</b> - <v>43</v> + <v>55</v> </b> <b> <a>418</a> - <b>457</b> + <b>460</b> + <v>58</v> + </b> + <b> + <a>460</a> + <b>464</b> <v>46</v> </b> <b> - <a>457</a> - <b>462</b> - <v>28</v> + <a>465</a> + <b>469</b> + <v>59</v> </b> <b> - <a>462</a> - <b>466</b> - <v>45</v> + <a>470</a> + <b>478</b> + <v>57</v> </b> <b> - <a>466</a> - <b>477</b> - <v>39</v> + <a>478</a> + <b>502</b> + <v>23</v> </b> </bs> </hist> @@ -3292,68 +3137,68 @@ <bs> <b> <a>2</a> - <b>142</b> - <v>43</v> + <b>147</b> + <v>56</v> </b> <b> - <a>142</a> - <b>200</b> - <v>40</v> + <a>148</a> + <b>205</b> + <v>55</v> </b> <b> - <a>200</a> - <b>259</b> - <v>41</v> + <a>205</a> + <b>275</b> + <v>54</v> </b> <b> - <a>260</a> - <b>278</b> - <v>41</v> + <a>275</a> + <b>287</b> + <v>52</v> </b> <b> - <a>278</a> - <b>288</b> - <v>38</v> + <a>287</a> + <b>306</b> + <v>62</v> </b> <b> - <a>290</a> - <b>305</b> - <v>46</v> + <a>307</a> + <b>312</b> + <v>52</v> </b> <b> - <a>305</a> - <b>310</b> - <v>42</v> + <a>313</a> + <b>320</b> + <v>56</v> </b> <b> - <a>310</a> - <b>315</b> - <v>40</v> - </b> - <b> - <a>316</a> + <a>320</a> <b>418</b> - <v>43</v> + <v>55</v> </b> <b> <a>418</a> - <b>457</b> + <b>460</b> + <v>58</v> + </b> + <b> + <a>460</a> + <b>464</b> <v>46</v> </b> <b> - <a>457</a> - <b>462</b> - <v>28</v> + <a>465</a> + <b>469</b> + <v>59</v> </b> <b> - <a>462</a> - <b>466</b> - <v>45</v> + <a>470</a> + <b>478</b> + <v>57</v> </b> <b> - <a>466</a> - <b>477</b> - <v>39</v> + <a>478</a> + <b>502</b> + <v>23</v> </b> </bs> </hist> @@ -3367,58 +3212,63 @@ <budget>12</budget> <bs> <b> - <a>7</a> - <b>137</b> - <v>39</v> + <a>3</a> + <b>140</b> + <v>38</v> </b> <b> - <a>138</a> - <b>187</b> - <v>43</v> + <a>147</a> + <b>230</b> + <v>38</v> </b> <b> - <a>187</a> - <b>188</b> + <a>231</a> + <b>272</b> + <v>31</v> + </b> + <b> + <a>272</a> + <b>273</b> <v>70</v> </b> <b> - <a>190</a> - <b>330</b> + <a>279</a> + <b>469</b> + <v>38</v> + </b> + <b> + <a>470</a> + <b>561</b> <v>37</v> </b> <b> - <a>331</a> - <b>418</b> - <v>36</v> - </b> - <b> - <a>419</a> - <b>422</b> - <v>42</v> - </b> - <b> - <a>422</a> - <b>452</b> + <a>562</a> + <b>563</b> <v>40</v> </b> <b> - <a>452</a> - <b>502</b> - <v>36</v> + <a>563</a> + <b>601</b> + <v>40</v> </b> <b> - <a>510</a> - <b>529</b> - <v>32</v> + <a>601</a> + <b>664</b> + <v>41</v> </b> <b> - <a>529</a> - <b>530</b> + <a>664</a> + <b>682</b> + <v>27</v> + </b> + <b> + <a>682</a> + <b>683</b> <v>76</v> </b> <b> - <a>530</a> - <b>533</b> + <a>683</a> + <b>686</b> <v>25</v> </b> </bs> @@ -3433,58 +3283,63 @@ <budget>12</budget> <bs> <b> - <a>7</a> - <b>137</b> - <v>39</v> + <a>3</a> + <b>140</b> + <v>38</v> </b> <b> - <a>138</a> - <b>187</b> - <v>43</v> + <a>147</a> + <b>230</b> + <v>38</v> </b> <b> - <a>187</a> - <b>188</b> + <a>231</a> + <b>272</b> + <v>31</v> + </b> + <b> + <a>272</a> + <b>273</b> <v>70</v> </b> <b> - <a>190</a> - <b>330</b> + <a>279</a> + <b>469</b> + <v>38</v> + </b> + <b> + <a>470</a> + <b>561</b> <v>37</v> </b> <b> - <a>331</a> - <b>418</b> - <v>36</v> - </b> - <b> - <a>419</a> - <b>422</b> - <v>42</v> - </b> - <b> - <a>422</a> - <b>452</b> + <a>562</a> + <b>563</b> <v>40</v> </b> <b> - <a>452</a> - <b>502</b> - <v>36</v> + <a>563</a> + <b>601</b> + <v>40</v> </b> <b> - <a>510</a> - <b>529</b> - <v>32</v> + <a>601</a> + <b>664</b> + <v>41</v> </b> <b> - <a>529</a> - <b>530</b> + <a>664</a> + <b>682</b> + <v>27</v> + </b> + <b> + <a>682</a> + <b>683</b> <v>76</v> </b> <b> - <a>530</a> - <b>533</b> + <a>683</a> + <b>686</b> <v>25</v> </b> </bs> @@ -3501,7 +3356,7 @@ <b> <a>1</a> <b>2</b> - <v>169630</v> + <v>230044</v> </b> </bs> </hist> @@ -3517,7 +3372,7 @@ <b> <a>1</a> <b>2</b> - <v>169630</v> + <v>230044</v> </b> </bs> </hist> @@ -3527,26 +3382,26 @@ </relation> <relation> <name>dbscheme_dbscheme_def</name> - <cardinality>532</cardinality> + <cardinality>686</cardinality> <columnsizes> <e> <k>id</k> - <v>532</v> + <v>686</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>dbscheme_entry_def</name> - <cardinality>169630</cardinality> + <cardinality>230044</cardinality> <columnsizes> <e> <k>id</k> - <v>169630</v> + <v>230044</v> </e> <e> <k>child</k> - <v>169630</v> + <v>230044</v> </e> </columnsizes> <dependencies> @@ -3560,7 +3415,7 @@ <b> <a>1</a> <b>2</b> - <v>169630</v> + <v>230044</v> </b> </bs> </hist> @@ -3576,7 +3431,7 @@ <b> <a>1</a> <b>2</b> - <v>169630</v> + <v>230044</v> </b> </bs> </hist> @@ -3586,11 +3441,11 @@ </relation> <relation> <name>dbscheme_repr_type_child</name> - <cardinality>260261</cardinality> + <cardinality>349360</cardinality> <columnsizes> <e> <k>dbscheme_repr_type</k> - <v>252564</v> + <v>341399</v> </e> <e> <k>index</k> @@ -3598,7 +3453,7 @@ </e> <e> <k>child</k> - <v>260261</v> + <v>349360</v> </e> </columnsizes> <dependencies> @@ -3612,12 +3467,12 @@ <b> <a>1</a> <b>2</b> - <v>244867</v> + <v>333438</v> </b> <b> <a>2</a> <b>3</b> - <v>7697</v> + <v>7961</v> </b> </bs> </hist> @@ -3633,12 +3488,12 @@ <b> <a>1</a> <b>2</b> - <v>244867</v> + <v>333438</v> </b> <b> <a>2</a> <b>3</b> - <v>7697</v> + <v>7961</v> </b> </bs> </hist> @@ -3652,13 +3507,13 @@ <budget>12</budget> <bs> <b> - <a>7697</a> - <b>7698</b> + <a>7961</a> + <b>7962</b> <v>1</v> </b> <b> - <a>252564</a> - <b>252565</b> + <a>341399</a> + <b>341400</b> <v>1</v> </b> </bs> @@ -3673,13 +3528,13 @@ <budget>12</budget> <bs> <b> - <a>7697</a> - <b>7698</b> + <a>7961</a> + <b>7962</b> <v>1</v> </b> <b> - <a>252564</a> - <b>252565</b> + <a>341399</a> + <b>341400</b> <v>1</v> </b> </bs> @@ -3696,7 +3551,7 @@ <b> <a>1</a> <b>2</b> - <v>260261</v> + <v>349360</v> </b> </bs> </hist> @@ -3712,7 +3567,7 @@ <b> <a>1</a> <b>2</b> - <v>260261</v> + <v>349360</v> </b> </bs> </hist> @@ -3722,22 +3577,22 @@ </relation> <relation> <name>dbscheme_repr_type_def</name> - <cardinality>252564</cardinality> + <cardinality>341399</cardinality> <columnsizes> <e> <k>id</k> - <v>252564</v> + <v>341399</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>dbscheme_table_child</name> - <cardinality>273234</cardinality> + <cardinality>371963</cardinality> <columnsizes> <e> <k>dbscheme_table</k> - <v>105934</v> + <v>146537</v> </e> <e> <k>index</k> @@ -3745,7 +3600,7 @@ </e> <e> <k>child</k> - <v>273234</v> + <v>371963</v> </e> </columnsizes> <dependencies> @@ -3759,32 +3614,32 @@ <b> <a>1</a> <b>2</b> - <v>22414</v> + <v>32738</v> </b> <b> <a>2</a> <b>3</b> - <v>41141</v> + <v>55828</v> </b> <b> <a>3</a> <b>4</b> - <v>16585</v> + <v>24047</v> </b> <b> <a>4</a> <b>5</b> - <v>16007</v> + <v>21522</v> </b> <b> <a>5</a> <b>7</b> - <v>9023</v> + <v>11405</v> </b> <b> <a>7</a> <b>11</b> - <v>764</v> + <v>997</v> </b> </bs> </hist> @@ -3800,32 +3655,32 @@ <b> <a>1</a> <b>2</b> - <v>22414</v> + <v>32738</v> </b> <b> <a>2</a> <b>3</b> - <v>41141</v> + <v>55828</v> </b> <b> <a>3</a> <b>4</b> - <v>16585</v> + <v>24047</v> </b> <b> <a>4</a> <b>5</b> - <v>16007</v> + <v>21522</v> </b> <b> <a>5</a> <b>7</b> - <v>9023</v> + <v>11405</v> </b> <b> <a>7</a> <b>11</b> - <v>764</v> + <v>997</v> </b> </bs> </hist> @@ -3844,48 +3699,48 @@ <v>1</v> </b> <b> - <a>145</a> - <b>146</b> + <a>181</a> + <b>182</b> <v>1</v> </b> <b> - <a>265</a> - <b>266</b> + <a>337</a> + <b>338</b> <v>1</v> </b> <b> - <a>764</a> - <b>765</b> + <a>997</a> + <b>998</b> <v>1</v> </b> <b> - <a>4621</a> - <b>4622</b> + <a>5790</a> + <b>5791</b> <v>1</v> </b> <b> - <a>9787</a> - <b>9788</b> + <a>12402</a> + <b>12403</b> <v>1</v> </b> <b> - <a>25794</a> - <b>25795</b> + <a>33924</a> + <b>33925</b> <v>1</v> </b> <b> - <a>42379</a> - <b>42380</b> + <a>57971</a> + <b>57972</b> <v>1</v> </b> <b> - <a>83520</a> - <b>83521</b> + <a>113799</a> + <b>113800</b> <v>1</v> </b> <b> - <a>105934</a> - <b>105935</b> + <a>146537</a> + <b>146538</b> <v>1</v> </b> </bs> @@ -3905,48 +3760,48 @@ <v>1</v> </b> <b> - <a>145</a> - <b>146</b> + <a>181</a> + <b>182</b> <v>1</v> </b> <b> - <a>265</a> - <b>266</b> + <a>337</a> + <b>338</b> <v>1</v> </b> <b> - <a>764</a> - <b>765</b> + <a>997</a> + <b>998</b> <v>1</v> </b> <b> - <a>4621</a> - <b>4622</b> + <a>5790</a> + <b>5791</b> <v>1</v> </b> <b> - <a>9787</a> - <b>9788</b> + <a>12402</a> + <b>12403</b> <v>1</v> </b> <b> - <a>25794</a> - <b>25795</b> + <a>33924</a> + <b>33925</b> <v>1</v> </b> <b> - <a>42379</a> - <b>42380</b> + <a>57971</a> + <b>57972</b> <v>1</v> </b> <b> - <a>83520</a> - <b>83521</b> + <a>113799</a> + <b>113800</b> <v>1</v> </b> <b> - <a>105934</a> - <b>105935</b> + <a>146537</a> + <b>146538</b> <v>1</v> </b> </bs> @@ -3963,7 +3818,7 @@ <b> <a>1</a> <b>2</b> - <v>273234</v> + <v>371963</v> </b> </bs> </hist> @@ -3979,7 +3834,7 @@ <b> <a>1</a> <b>2</b> - <v>273234</v> + <v>371963</v> </b> </bs> </hist> @@ -3989,15 +3844,15 @@ </relation> <relation> <name>dbscheme_table_def</name> - <cardinality>105934</cardinality> + <cardinality>146537</cardinality> <columnsizes> <e> <k>id</k> - <v>105934</v> + <v>146537</v> </e> <e> <k>table_name</k> - <v>105934</v> + <v>146537</v> </e> </columnsizes> <dependencies> @@ -4011,7 +3866,7 @@ <b> <a>1</a> <b>2</b> - <v>105934</v> + <v>146537</v> </b> </bs> </hist> @@ -4027,7 +3882,7 @@ <b> <a>1</a> <b>2</b> - <v>105934</v> + <v>146537</v> </b> </bs> </hist> @@ -4037,15 +3892,15 @@ </relation> <relation> <name>dbscheme_table_name_def</name> - <cardinality>105934</cardinality> + <cardinality>146537</cardinality> <columnsizes> <e> <k>id</k> - <v>105934</v> + <v>146537</v> </e> <e> <k>child</k> - <v>105934</v> + <v>146537</v> </e> </columnsizes> <dependencies> @@ -4059,7 +3914,7 @@ <b> <a>1</a> <b>2</b> - <v>105934</v> + <v>146537</v> </b> </bs> </hist> @@ -4075,7 +3930,7 @@ <b> <a>1</a> <b>2</b> - <v>105934</v> + <v>146537</v> </b> </bs> </hist> @@ -4085,11 +3940,11 @@ </relation> <relation> <name>dbscheme_tokeninfo</name> - <cardinality>3090306</cardinality> + <cardinality>4152352</cardinality> <columnsizes> <e> <k>id</k> - <v>3090306</v> + <v>4152352</v> </e> <e> <k>kind</k> @@ -4097,7 +3952,7 @@ </e> <e> <k>value</k> - <v>7109</v> + <v>7232</v> </e> </columnsizes> <dependencies> @@ -4111,7 +3966,7 @@ <b> <a>1</a> <b>2</b> - <v>3090306</v> + <v>4152352</v> </b> </bs> </hist> @@ -4127,7 +3982,7 @@ <b> <a>1</a> <b>2</b> - <v>3090306</v> + <v>4152352</v> </b> </bs> </hist> @@ -4141,83 +3996,83 @@ <budget>12</budget> <bs> <b> - <a>1042</a> - <b>1043</b> + <a>1170</a> + <b>1171</b> <v>1</v> </b> <b> - <a>1440</a> - <b>1441</b> + <a>2146</a> + <b>2147</b> <v>1</v> </b> <b> - <a>2354</a> - <b>2355</b> + <a>2962</a> + <b>2963</b> <v>1</v> </b> <b> - <a>7697</a> - <b>7698</b> + <a>7961</a> + <b>7962</b> <v>1</v> </b> <b> - <a>8004</a> - <b>8005</b> + <a>10956</a> + <b>10957</b> <v>1</v> </b> <b> - <a>17513</a> - <b>17514</b> + <a>22060</a> + <b>22061</b> <v>1</v> </b> <b> - <a>20670</a> - <b>20671</b> + <a>30564</a> + <b>30565</b> <v>1</v> </b> <b> - <a>37863</a> - <b>37864</b> + <a>62355</a> + <b>62356</b> <v>1</v> </b> <b> - <a>51435</a> - <b>51436</b> + <a>67865</a> + <b>67866</b> <v>1</v> </b> <b> - <a>75701</a> - <b>75702</b> + <a>102289</a> + <b>102290</b> <v>1</v> </b> <b> - <a>124608</a> - <b>124609</b> + <a>158986</a> + <b>158987</b> <v>1</v> </b> <b> - <a>210468</a> - <b>210469</b> + <a>281648</a> + <b>281649</b> <v>1</v> </b> <b> - <a>258872</a> - <b>258873</b> + <a>350777</a> + <b>350778</b> <v>1</v> </b> <b> - <a>397838</a> - <b>397839</b> + <a>543204</a> + <b>543205</b> <v>1</v> </b> <b> - <a>565153</a> - <b>565154</b> + <a>750840</a> + <b>750841</b> <v>1</v> </b> <b> - <a>1309648</a> - <b>1309649</b> + <a>1756569</a> + <b>1756570</b> <v>1</v> </b> </bs> @@ -4247,33 +4102,33 @@ <v>1</v> </b> <b> - <a>99</a> - <b>100</b> + <a>100</a> + <b>101</b> <v>1</v> </b> <b> - <a>197</a> - <b>198</b> + <a>207</a> + <b>208</b> <v>1</v> </b> <b> - <a>302</a> - <b>303</b> + <a>303</a> + <b>304</b> <v>1</v> </b> <b> - <a>595</a> - <b>596</b> + <a>616</a> + <b>617</b> <v>1</v> </b> <b> - <a>2601</a> - <b>2602</b> + <a>2655</a> + <b>2656</b> <v>1</v> </b> <b> - <a>3292</a> - <b>3293</b> + <a>3328</a> + <b>3329</b> <v>1</v> </b> </bs> @@ -4294,68 +4149,68 @@ </b> <b> <a>3</a> - <b>9</b> - <v>534</v> + <b>13</b> + <v>575</v> </b> <b> - <a>9</a> - <b>25</b> + <a>13</a> + <b>29</b> + <v>422</v> + </b> + <b> + <a>29</a> + <b>38</b> + <v>546</v> + </b> + <b> + <a>38</a> + <b>56</b> + <v>638</v> + </b> + <b> + <a>56</a> + <b>77</b> + <v>597</v> + </b> + <b> + <a>77</a> + <b>116</b> + <v>541</v> + </b> + <b> + <a>116</a> + <b>149</b> <v>543</v> </b> <b> - <a>25</a> - <b>32</b> + <a>149</a> + <b>156</b> + <v>481</v> + </b> + <b> + <a>156</a> + <b>199</b> <v>544</v> </b> <b> - <a>32</a> - <b>51</b> - <v>471</v> + <a>202</a> + <b>312</b> + <v>540</v> </b> <b> - <a>51</a> - <b>67</b> - <v>534</v> + <a>312</a> + <b>416</b> + <v>543</v> </b> <b> - <a>67</a> - <b>73</b> - <v>567</v> + <a>416</a> + <b>1685</b> + <v>543</v> </b> <b> - <a>73</a> - <b>107</b> - <v>611</v> - </b> - <b> - <a>107</a> - <b>121</b> - <v>590</v> - </b> - <b> - <a>121</a> - <b>157</b> - <v>534</v> - </b> - <b> - <a>158</a> - <b>235</b> - <v>412</v> - </b> - <b> - <a>240</a> - <b>322</b> - <v>544</v> - </b> - <b> - <a>324</a> - <b>1897</b> - <v>534</v> - </b> - <b> - <a>2000</a> - <b>270542</b> - <v>72</v> + <a>1697</a> + <b>354482</b> + <v>100</v> </b> </bs> </hist> @@ -4371,7 +4226,7 @@ <b> <a>1</a> <b>2</b> - <v>7109</v> + <v>7232</v> </b> </bs> </hist> @@ -4381,11 +4236,11 @@ </relation> <relation> <name>dbscheme_union_decl_child</name> - <cardinality>209792</cardinality> + <cardinality>276677</cardinality> <columnsizes> <e> <k>dbscheme_union_decl</k> - <v>51790</v> + <v>67798</v> </e> <e> <k>index</k> @@ -4393,7 +4248,7 @@ </e> <e> <k>child</k> - <v>209792</v> + <v>276677</v> </e> </columnsizes> <dependencies> @@ -4407,37 +4262,42 @@ <b> <a>1</a> <b>2</b> - <v>2156</v> + <v>2870</v> </b> <b> <a>2</a> <b>3</b> - <v>25065</v> + <v>33104</v> </b> <b> <a>3</a> <b>4</b> - <v>7795</v> + <v>10107</v> </b> <b> <a>4</a> <b>5</b> - <v>4896</v> + <v>6309</v> </b> <b> <a>5</a> <b>6</b> - <v>3506</v> + <v>4592</v> </b> <b> <a>6</a> <b>9</b> - <v>4492</v> + <v>5609</v> </b> <b> <a>9</a> + <b>69</b> + <v>5085</v> + </b> + <b> + <a>85</a> <b>106</b> - <v>3880</v> + <v>122</v> </b> </bs> </hist> @@ -4453,37 +4313,42 @@ <b> <a>1</a> <b>2</b> - <v>2156</v> + <v>2870</v> </b> <b> <a>2</a> <b>3</b> - <v>25065</v> + <v>33104</v> </b> <b> <a>3</a> <b>4</b> - <v>7795</v> + <v>10107</v> </b> <b> <a>4</a> <b>5</b> - <v>4896</v> + <v>6309</v> </b> <b> <a>5</a> <b>6</b> - <v>3506</v> + <v>4592</v> </b> <b> <a>6</a> <b>9</b> - <v>4492</v> + <v>5609</v> </b> <b> <a>9</a> + <b>69</b> + <v>5085</v> + </b> + <b> + <a>85</a> <b>106</b> - <v>3880</v> + <v>122</v> </b> </bs> </hist> @@ -4497,63 +4362,68 @@ <budget>12</budget> <bs> <b> - <a>7</a> - <b>40</b> + <a>11</a> + <b>44</b> <v>7</v> </b> <b> - <a>41</a> - <b>42</b> + <a>45</a> + <b>46</b> <v>11</v> </b> <b> - <a>55</a> - <b>56</b> + <a>59</a> + <b>103</b> <v>2</v> </b> <b> - <a>70</a> - <b>71</b> + <a>122</a> + <b>123</b> <v>17</v> </b> <b> - <a>71</a> - <b>72</b> - <v>10</v> + <a>123</a> + <b>124</b> + <v>6</v> </b> <b> - <a>98</a> - <b>147</b> - <v>9</v> - </b> - <b> - <a>213</a> - <b>223</b> - <v>9</v> - </b> - <b> - <a>223</a> - <b>399</b> + <a>126</a> + <b>166</b> <v>8</v> </b> <b> - <a>453</a> - <b>477</b> + <a>173</a> + <b>319</b> + <v>6</v> + </b> + <b> + <a>327</a> + <b>328</b> <v>8</v> </b> <b> - <a>505</a> - <b>1059</b> + <a>328</a> + <b>544</b> <v>8</v> </b> <b> - <a>1142</a> - <b>3881</b> + <a>647</a> + <b>671</b> <v>8</v> </b> <b> - <a>4790</a> - <b>51791</b> + <a>699</a> + <b>1414</b> + <v>8</v> + </b> + <b> + <a>1501</a> + <b>5208</b> + <v>8</v> + </b> + <b> + <a>6334</a> + <b>67799</b> <v>8</v> </b> </bs> @@ -4568,63 +4438,68 @@ <budget>12</budget> <bs> <b> - <a>7</a> - <b>40</b> + <a>11</a> + <b>44</b> <v>7</v> </b> <b> - <a>41</a> - <b>42</b> + <a>45</a> + <b>46</b> <v>11</v> </b> <b> - <a>55</a> - <b>56</b> + <a>59</a> + <b>103</b> <v>2</v> </b> <b> - <a>70</a> - <b>71</b> + <a>122</a> + <b>123</b> <v>17</v> </b> <b> - <a>71</a> - <b>72</b> - <v>10</v> + <a>123</a> + <b>124</b> + <v>6</v> </b> <b> - <a>98</a> - <b>147</b> - <v>9</v> - </b> - <b> - <a>213</a> - <b>223</b> - <v>9</v> - </b> - <b> - <a>223</a> - <b>399</b> + <a>126</a> + <b>166</b> <v>8</v> </b> <b> - <a>453</a> - <b>477</b> + <a>173</a> + <b>319</b> + <v>6</v> + </b> + <b> + <a>327</a> + <b>328</b> <v>8</v> </b> <b> - <a>505</a> - <b>1059</b> + <a>328</a> + <b>544</b> <v>8</v> </b> <b> - <a>1142</a> - <b>3881</b> + <a>647</a> + <b>671</b> <v>8</v> </b> <b> - <a>4790</a> - <b>51791</b> + <a>699</a> + <b>1414</b> + <v>8</v> + </b> + <b> + <a>1501</a> + <b>5208</b> + <v>8</v> + </b> + <b> + <a>6334</a> + <b>67799</b> <v>8</v> </b> </bs> @@ -4641,7 +4516,7 @@ <b> <a>1</a> <b>2</b> - <v>209792</v> + <v>276677</v> </b> </bs> </hist> @@ -4657,7 +4532,7 @@ <b> <a>1</a> <b>2</b> - <v>209792</v> + <v>276677</v> </b> </bs> </hist> @@ -4667,15 +4542,15 @@ </relation> <relation> <name>dbscheme_union_decl_def</name> - <cardinality>51790</cardinality> + <cardinality>67798</cardinality> <columnsizes> <e> <k>id</k> - <v>51790</v> + <v>67798</v> </e> <e> <k>base</k> - <v>51790</v> + <v>67798</v> </e> </columnsizes> <dependencies> @@ -4689,7 +4564,7 @@ <b> <a>1</a> <b>2</b> - <v>51790</v> + <v>67798</v> </b> </bs> </hist> @@ -4705,7 +4580,7 @@ <b> <a>1</a> <b>2</b> - <v>51790</v> + <v>67798</v> </b> </bs> </hist> @@ -5242,15 +5117,15 @@ </relation> <relation> <name>files</name> - <cardinality>11682</cardinality> + <cardinality>12283</cardinality> <columnsizes> <e> <k>id</k> - <v>11682</v> + <v>12283</v> </e> <e> <k>name</k> - <v>11682</v> + <v>12283</v> </e> </columnsizes> <dependencies> @@ -5264,7 +5139,7 @@ <b> <a>1</a> <b>2</b> - <v>11682</v> + <v>12283</v> </b> </bs> </hist> @@ -5280,7 +5155,7 @@ <b> <a>1</a> <b>2</b> - <v>11682</v> + <v>12283</v> </b> </bs> </hist> @@ -5290,15 +5165,15 @@ </relation> <relation> <name>folders</name> - <cardinality>3982</cardinality> + <cardinality>4402</cardinality> <columnsizes> <e> <k>id</k> - <v>3982</v> + <v>4402</v> </e> <e> <k>name</k> - <v>3982</v> + <v>4402</v> </e> </columnsizes> <dependencies> @@ -5312,7 +5187,7 @@ <b> <a>1</a> <b>2</b> - <v>3982</v> + <v>4402</v> </b> </bs> </hist> @@ -5328,7 +5203,7 @@ <b> <a>1</a> <b>2</b> - <v>3982</v> + <v>4402</v> </b> </bs> </hist> @@ -5338,11 +5213,11 @@ </relation> <relation> <name>json_array_child</name> - <cardinality>2660</cardinality> + <cardinality>5897</cardinality> <columnsizes> <e> <k>json_array</k> - <v>450</v> + <v>1962</v> </e> <e> <k>index</k> @@ -5350,7 +5225,7 @@ </e> <e> <k>child</k> - <v>2660</v> + <v>5897</v> </e> </columnsizes> <dependencies> @@ -5364,32 +5239,27 @@ <b> <a>1</a> <b>2</b> - <v>129</v> + <v>935</v> </b> <b> <a>2</a> <b>3</b> - <v>136</v> + <v>623</v> </b> <b> <a>3</a> <b>4</b> - <v>78</v> + <v>179</v> </b> <b> <a>4</a> - <b>5</b> - <v>37</v> - </b> - <b> - <a>5</a> <b>7</b> - <v>41</v> + <v>149</v> </b> <b> <a>7</a> <b>612</b> - <v>29</v> + <v>76</v> </b> </bs> </hist> @@ -5405,32 +5275,27 @@ <b> <a>1</a> <b>2</b> - <v>129</v> + <v>935</v> </b> <b> <a>2</a> <b>3</b> - <v>136</v> + <v>623</v> </b> <b> <a>3</a> <b>4</b> - <v>78</v> + <v>179</v> </b> <b> <a>4</a> - <b>5</b> - <v>37</v> - </b> - <b> - <a>5</a> <b>7</b> - <v>41</v> + <v>149</v> </b> <b> <a>7</a> <b>612</b> - <v>29</v> + <v>76</v> </b> </bs> </hist> @@ -5451,26 +5316,31 @@ <b> <a>2</a> <b>3</b> - <v>84</v> + <v>26</v> </b> <b> <a>3</a> <b>4</b> - <v>61</v> + <v>58</v> </b> <b> <a>4</a> - <b>7</b> + <b>5</b> + <v>61</v> + </b> + <b> + <a>5</a> + <b>8</b> <v>48</v> </b> <b> - <a>7</a> - <b>22</b> + <a>8</a> + <b>61</b> <v>46</v> </b> <b> - <a>26</a> - <b>451</b> + <a>69</a> + <b>1963</b> <v>8</v> </b> </bs> @@ -5492,26 +5362,31 @@ <b> <a>2</a> <b>3</b> - <v>84</v> + <v>26</v> </b> <b> <a>3</a> <b>4</b> - <v>61</v> + <v>58</v> </b> <b> <a>4</a> - <b>7</b> + <b>5</b> + <v>61</v> + </b> + <b> + <a>5</a> + <b>8</b> <v>48</v> </b> <b> - <a>7</a> - <b>22</b> + <a>8</a> + <b>61</b> <v>46</v> </b> <b> - <a>26</a> - <b>451</b> + <a>69</a> + <b>1963</b> <v>8</v> </b> </bs> @@ -5528,7 +5403,7 @@ <b> <a>1</a> <b>2</b> - <v>2660</v> + <v>5897</v> </b> </bs> </hist> @@ -5544,7 +5419,7 @@ <b> <a>1</a> <b>2</b> - <v>2660</v> + <v>5897</v> </b> </bs> </hist> @@ -5554,35 +5429,84 @@ </relation> <relation> <name>json_array_def</name> - <cardinality>481</cardinality> + <cardinality>2026</cardinality> <columnsizes> <e> <k>id</k> - <v>481</v> + <v>2026</v> </e> </columnsizes> <dependencies/> </relation> <relation> - <name>json_ast_node_info</name> - <cardinality>34722</cardinality> + <name>json_ast_node_location</name> + <cardinality>148630</cardinality> <columnsizes> <e> <k>node</k> - <v>34722</v> + <v>148630</v> + </e> + <e> + <k>loc</k> + <v>148504</v> + </e> + </columnsizes> + <dependencies> + <dep> + <src>node</src> + <trg>loc</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>148630</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>loc</src> + <trg>node</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>148378</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>126</v> + </b> + </bs> + </hist> + </val> + </dep> + </dependencies> + </relation> + <relation> + <name>json_ast_node_parent</name> + <cardinality>148287</cardinality> + <columnsizes> + <e> + <k>node</k> + <v>148287</v> </e> <e> <k>parent</k> - <v>9501</v> + <v>42018</v> </e> <e> <k>parent_index</k> <v>1223</v> </e> - <e> - <k>loc</k> - <v>34603</v> - </e> </columnsizes> <dependencies> <dep> @@ -5595,7 +5519,7 @@ <b> <a>1</a> <b>2</b> - <v>34722</v> + <v>148287</v> </b> </bs> </hist> @@ -5611,23 +5535,7 @@ <b> <a>1</a> <b>2</b> - <v>34722</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>node</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>34722</v> + <v>148287</v> </b> </bs> </hist> @@ -5643,22 +5551,22 @@ <b> <a>1</a> <b>3</b> - <v>597</v> + <v>608</v> </b> <b> <a>3</a> <b>4</b> - <v>8027</v> + <v>36317</v> </b> <b> <a>4</a> - <b>12</b> - <v>718</v> + <b>6</b> + <v>3406</v> </b> <b> - <a>13</a> + <a>7</a> <b>1224</b> - <v>159</v> + <v>1687</v> </b> </bs> </hist> @@ -5674,53 +5582,22 @@ <b> <a>1</a> <b>3</b> - <v>597</v> + <v>608</v> </b> <b> <a>3</a> <b>4</b> - <v>8027</v> + <v>36317</v> </b> <b> <a>4</a> - <b>12</b> - <v>718</v> + <b>6</b> + <v>3406</v> </b> <b> - <a>13</a> + <a>7</a> <b>1224</b> - <v>159</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>3</b> - <v>597</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>8027</v> - </b> - <b> - <a>4</a> - <b>12</b> - <v>718</v> - </b> - <b> - <a>13</a> - <b>1224</b> - <v>159</v> + <v>1687</v> </b> </bs> </hist> @@ -5741,27 +5618,37 @@ <b> <a>2</a> <b>3</b> - <v>168</v> + <v>52</v> </b> <b> <a>3</a> <b>4</b> - <v>106</v> + <v>116</v> </b> <b> <a>4</a> + <b>6</b> + <v>54</v> + </b> + <b> + <a>6</a> <b>7</b> - <v>96</v> + <v>68</v> </b> <b> <a>7</a> - <b>22</b> - <v>94</v> + <b>12</b> + <v>96</v> </b> <b> - <a>22</a> - <b>9502</b> - <v>31</v> + <a>12</a> + <b>213</b> + <v>92</v> + </b> + <b> + <a>226</a> + <b>42019</b> + <v>17</v> </b> </bs> </hist> @@ -5782,131 +5669,37 @@ <b> <a>2</a> <b>3</b> - <v>168</v> + <v>52</v> </b> <b> <a>3</a> <b>4</b> - <v>106</v> + <v>116</v> </b> <b> <a>4</a> + <b>6</b> + <v>54</v> + </b> + <b> + <a>6</a> <b>7</b> - <v>96</v> + <v>68</v> </b> <b> <a>7</a> - <b>22</b> - <v>94</v> - </b> - <b> - <a>22</a> - <b>9502</b> - <v>31</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent_index</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>728</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>168</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>106</v> - </b> - <b> - <a>4</a> - <b>7</b> + <b>12</b> <v>96</v> </b> <b> - <a>7</a> - <b>22</b> - <v>94</v> + <a>12</a> + <b>213</b> + <v>92</v> </b> <b> - <a>22</a> - <b>9385</b> - <v>31</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>node</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>34484</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>119</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>34484</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>119</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent_index</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>34601</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>2</v> + <a>226</a> + <b>42019</b> + <v>17</v> </b> </bs> </hist> @@ -5916,11 +5709,11 @@ </relation> <relation> <name>json_document_child</name> - <cardinality>269</cardinality> + <cardinality>321</cardinality> <columnsizes> <e> <k>json_document</k> - <v>269</v> + <v>321</v> </e> <e> <k>index</k> @@ -5928,7 +5721,7 @@ </e> <e> <k>child</k> - <v>269</v> + <v>321</v> </e> </columnsizes> <dependencies> @@ -5942,7 +5735,7 @@ <b> <a>1</a> <b>2</b> - <v>269</v> + <v>321</v> </b> </bs> </hist> @@ -5958,7 +5751,7 @@ <b> <a>1</a> <b>2</b> - <v>269</v> + <v>321</v> </b> </bs> </hist> @@ -5972,8 +5765,8 @@ <budget>12</budget> <bs> <b> - <a>269</a> - <b>270</b> + <a>321</a> + <b>322</b> <v>1</v> </b> </bs> @@ -5988,8 +5781,8 @@ <budget>12</budget> <bs> <b> - <a>269</a> - <b>270</b> + <a>321</a> + <b>322</b> <v>1</v> </b> </bs> @@ -6006,7 +5799,7 @@ <b> <a>1</a> <b>2</b> - <v>269</v> + <v>321</v> </b> </bs> </hist> @@ -6022,7 +5815,7 @@ <b> <a>1</a> <b>2</b> - <v>269</v> + <v>321</v> </b> </bs> </hist> @@ -6032,30 +5825,30 @@ </relation> <relation> <name>json_document_def</name> - <cardinality>272</cardinality> + <cardinality>324</cardinality> <columnsizes> <e> <k>id</k> - <v>272</v> + <v>324</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>json_object_child</name> - <cardinality>2223</cardinality> + <cardinality>12461</cardinality> <columnsizes> <e> <k>json_object</k> - <v>763</v> + <v>4817</v> </e> <e> <k>index</k> - <v>110</v> + <v>159</v> </e> <e> <k>child</k> - <v>2223</v> + <v>12461</v> </e> </columnsizes> <dependencies> @@ -6069,32 +5862,27 @@ <b> <a>1</a> <b>2</b> - <v>211</v> + <v>754</v> </b> <b> <a>2</a> <b>3</b> - <v>322</v> + <v>2780</v> </b> <b> <a>3</a> <b>4</b> - <v>65</v> + <v>781</v> </b> <b> <a>4</a> - <b>6</b> - <v>44</v> + <b>11</b> + <v>445</v> </b> <b> - <a>6</a> - <b>7</b> - <v>102</v> - </b> - <b> - <a>7</a> - <b>111</b> - <v>19</v> + <a>11</a> + <b>160</b> + <v>57</v> </b> </bs> </hist> @@ -6110,32 +5898,27 @@ <b> <a>1</a> <b>2</b> - <v>211</v> + <v>754</v> </b> <b> <a>2</a> <b>3</b> - <v>322</v> + <v>2780</v> </b> <b> <a>3</a> <b>4</b> - <v>65</v> + <v>781</v> </b> <b> <a>4</a> - <b>6</b> - <v>44</v> + <b>11</b> + <v>445</v> </b> <b> - <a>6</a> - <b>7</b> - <v>102</v> - </b> - <b> - <a>7</a> - <b>111</b> - <v>19</v> + <a>11</a> + <b>160</b> + <v>57</v> </b> </bs> </hist> @@ -6151,37 +5934,42 @@ <b> <a>1</a> <b>2</b> - <v>61</v> + <v>23</v> </b> <b> <a>2</a> <b>3</b> - <v>11</v> + <v>65</v> </b> <b> <a>3</a> <b>4</b> - <v>10</v> + <v>2</v> </b> <b> <a>4</a> <b>5</b> - <v>2</v> + <v>20</v> </b> <b> <a>5</a> <b>6</b> + <v>11</v> + </b> + <b> + <a>6</a> + <b>9</b> + <v>12</v> + </b> + <b> + <a>9</a> + <b>10</b> <v>14</v> </b> <b> - <a>7</a> - <b>166</b> - <v>9</v> - </b> - <b> - <a>230</a> - <b>764</b> - <v>3</v> + <a>13</a> + <b>4818</b> + <v>12</v> </b> </bs> </hist> @@ -6197,37 +5985,42 @@ <b> <a>1</a> <b>2</b> - <v>61</v> + <v>23</v> </b> <b> <a>2</a> <b>3</b> - <v>11</v> + <v>65</v> </b> <b> <a>3</a> <b>4</b> - <v>10</v> + <v>2</v> </b> <b> <a>4</a> <b>5</b> - <v>2</v> + <v>20</v> </b> <b> <a>5</a> <b>6</b> + <v>11</v> + </b> + <b> + <a>6</a> + <b>9</b> + <v>12</v> + </b> + <b> + <a>9</a> + <b>10</b> <v>14</v> </b> <b> - <a>7</a> - <b>166</b> - <v>9</v> - </b> - <b> - <a>230</a> - <b>764</b> - <v>3</v> + <a>13</a> + <b>4818</b> + <v>12</v> </b> </bs> </hist> @@ -6243,7 +6036,7 @@ <b> <a>1</a> <b>2</b> - <v>2223</v> + <v>12461</v> </b> </bs> </hist> @@ -6259,7 +6052,7 @@ <b> <a>1</a> <b>2</b> - <v>2223</v> + <v>12461</v> </b> </bs> </hist> @@ -6269,30 +6062,30 @@ </relation> <relation> <name>json_object_def</name> - <cardinality>787</cardinality> + <cardinality>5034</cardinality> <columnsizes> <e> <k>id</k> - <v>787</v> + <v>5034</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>json_pair_def</name> - <cardinality>2223</cardinality> + <cardinality>12461</cardinality> <columnsizes> <e> <k>id</k> - <v>2223</v> + <v>12461</v> </e> <e> <k>key__</k> - <v>2223</v> + <v>12461</v> </e> <e> <k>value</k> - <v>2223</v> + <v>12461</v> </e> </columnsizes> <dependencies> @@ -6306,7 +6099,7 @@ <b> <a>1</a> <b>2</b> - <v>2223</v> + <v>12461</v> </b> </bs> </hist> @@ -6322,7 +6115,7 @@ <b> <a>1</a> <b>2</b> - <v>2223</v> + <v>12461</v> </b> </bs> </hist> @@ -6338,7 +6131,7 @@ <b> <a>1</a> <b>2</b> - <v>2223</v> + <v>12461</v> </b> </bs> </hist> @@ -6354,7 +6147,7 @@ <b> <a>1</a> <b>2</b> - <v>2223</v> + <v>12461</v> </b> </bs> </hist> @@ -6370,7 +6163,7 @@ <b> <a>1</a> <b>2</b> - <v>2223</v> + <v>12461</v> </b> </bs> </hist> @@ -6386,7 +6179,7 @@ <b> <a>1</a> <b>2</b> - <v>2223</v> + <v>12461</v> </b> </bs> </hist> @@ -6396,15 +6189,15 @@ </relation> <relation> <name>json_string_child</name> - <cardinality>5465</cardinality> + <cardinality>22171</cardinality> <columnsizes> <e> <k>json_string__</k> - <v>5465</v> + <v>22171</v> </e> <e> <k>child</k> - <v>5465</v> + <v>22171</v> </e> </columnsizes> <dependencies> @@ -6418,7 +6211,7 @@ <b> <a>1</a> <b>2</b> - <v>5465</v> + <v>22171</v> </b> </bs> </hist> @@ -6434,7 +6227,7 @@ <b> <a>1</a> <b>2</b> - <v>5465</v> + <v>22171</v> </b> </bs> </hist> @@ -6444,22 +6237,22 @@ </relation> <relation> <name>json_string_def</name> - <cardinality>5469</cardinality> + <cardinality>22176</cardinality> <columnsizes> <e> <k>id</k> - <v>5469</v> + <v>22176</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>json_tokeninfo</name> - <cardinality>25490</cardinality> + <cardinality>106609</cardinality> <columnsizes> <e> <k>id</k> - <v>25490</v> + <v>106609</v> </e> <e> <k>kind</k> @@ -6467,7 +6260,7 @@ </e> <e> <k>value</k> - <v>3153</v> + <v>4324</v> </e> </columnsizes> <dependencies> @@ -6481,7 +6274,7 @@ <b> <a>1</a> <b>2</b> - <v>25490</v> + <v>106609</v> </b> </bs> </hist> @@ -6497,7 +6290,7 @@ <b> <a>1</a> <b>2</b> - <v>25490</v> + <v>106609</v> </b> </bs> </hist> @@ -6511,38 +6304,38 @@ <budget>12</budget> <bs> <b> - <a>18</a> - <b>19</b> + <a>19</a> + <b>20</b> <v>1</v> </b> <b> - <a>27</a> - <b>28</b> + <a>71</a> + <b>72</b> <v>1</v> </b> <b> - <a>106</a> - <b>107</b> + <a>248</a> + <b>249</b> <v>1</v> </b> <b> - <a>246</a> - <b>247</b> + <a>607</a> + <b>608</b> <v>1</v> </b> <b> - <a>259</a> - <b>260</b> + <a>978</a> + <b>979</b> <v>1</v> </b> <b> - <a>5465</a> - <b>5466</b> + <a>22171</a> + <b>22172</b> <v>1</v> </b> <b> - <a>19369</a> - <b>19370</b> + <a>82515</a> + <b>82516</b> <v>1</v> </b> </bs> @@ -6567,18 +6360,18 @@ <v>1</v> </b> <b> - <a>14</a> - <b>15</b> + <a>16</a> + <b>17</b> <v>1</v> </b> <b> - <a>18</a> - <b>19</b> + <a>29</a> + <b>30</b> <v>1</v> </b> <b> - <a>3111</a> - <b>3112</b> + <a>4277</a> + <b>4278</b> <v>1</v> </b> </bs> @@ -6595,17 +6388,27 @@ <b> <a>1</a> <b>2</b> - <v>2832</v> + <v>3160</v> </b> <b> <a>2</a> - <b>7</b> - <v>246</v> + <b>3</b> + <v>406</v> </b> <b> - <a>7</a> - <b>10939</b> - <v>75</v> + <a>3</a> + <b>5</b> + <v>365</v> + </b> + <b> + <a>5</a> + <b>62</b> + <v>326</v> + </b> + <b> + <a>71</a> + <b>44353</b> + <v>67</v> </b> </bs> </hist> @@ -6621,7 +6424,12 @@ <b> <a>1</a> <b>2</b> - <v>3153</v> + <v>4316</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>8</v> </b> </bs> </hist> @@ -6631,31 +6439,31 @@ </relation> <relation> <name>locations_default</name> - <cardinality>8479546</cardinality> + <cardinality>9617371</cardinality> <columnsizes> <e> <k>id</k> - <v>8479546</v> + <v>9617371</v> </e> <e> <k>file</k> - <v>11682</v> + <v>12283</v> </e> <e> <k>beginLine</k> - <v>9036</v> + <v>11293</v> </e> <e> <k>beginColumn</k> - <v>1371</v> + <v>1385</v> </e> <e> <k>endLine</k> - <v>9036</v> + <v>11293</v> </e> <e> <k>endColumn</k> - <v>1376</v> + <v>1389</v> </e> </columnsizes> <dependencies> @@ -6669,7 +6477,7 @@ <b> <a>1</a> <b>2</b> - <v>8479546</v> + <v>9617371</v> </b> </bs> </hist> @@ -6685,7 +6493,7 @@ <b> <a>1</a> <b>2</b> - <v>8479546</v> + <v>9617371</v> </b> </bs> </hist> @@ -6701,7 +6509,7 @@ <b> <a>1</a> <b>2</b> - <v>8479546</v> + <v>9617371</v> </b> </bs> </hist> @@ -6717,7 +6525,7 @@ <b> <a>1</a> <b>2</b> - <v>8479546</v> + <v>9617371</v> </b> </bs> </hist> @@ -6733,7 +6541,7 @@ <b> <a>1</a> <b>2</b> - <v>8479546</v> + <v>9617371</v> </b> </bs> </hist> @@ -6749,72 +6557,72 @@ <b> <a>1</a> <b>21</b> - <v>906</v> + <v>930</v> </b> <b> <a>21</a> <b>32</b> - <v>909</v> + <v>950</v> </b> <b> <a>32</a> <b>40</b> - <v>959</v> + <v>1024</v> </b> <b> <a>40</a> <b>54</b> - <v>882</v> + <v>930</v> </b> <b> <a>54</a> - <b>70</b> - <v>903</v> + <b>72</b> + <v>952</v> </b> <b> - <a>70</a> - <b>88</b> - <v>878</v> + <a>72</a> + <b>89</b> + <v>965</v> </b> <b> - <a>88</a> - <b>117</b> - <v>880</v> + <a>89</a> + <b>119</b> + <v>929</v> </b> <b> - <a>117</a> - <b>160</b> - <v>879</v> + <a>119</a> + <b>164</b> + <v>934</v> </b> <b> - <a>160</a> - <b>236</b> - <v>880</v> + <a>164</a> + <b>243</b> + <v>923</v> </b> <b> - <a>236</a> - <b>377</b> - <v>877</v> + <a>243</a> + <b>392</b> + <v>923</v> </b> <b> - <a>377</a> - <b>709</b> - <v>878</v> + <a>392</a> + <b>748</b> + <v>923</v> </b> <b> - <a>709</a> - <b>2101</b> - <v>877</v> + <a>748</a> + <b>2678</b> + <v>922</v> </b> <b> - <a>2102</a> - <b>9785</b> - <v>880</v> + <a>2683</a> + <b>9950</b> + <v>923</v> </b> <b> - <a>9805</a> + <a>9962</a> <b>54160</b> - <v>94</v> + <v>55</v> </b> </bs> </hist> @@ -6830,72 +6638,72 @@ <b> <a>1</a> <b>3</b> - <v>511</v> + <v>434</v> </b> <b> <a>3</a> <b>4</b> - <v>1068</v> + <v>775</v> </b> <b> <a>4</a> <b>5</b> - <v>961</v> + <v>1146</v> </b> <b> <a>5</a> <b>6</b> - <v>680</v> + <v>995</v> </b> <b> <a>6</a> <b>7</b> - <v>632</v> + <v>691</v> </b> <b> <a>7</a> <b>9</b> - <v>946</v> + <v>988</v> </b> <b> <a>9</a> <b>11</b> - <v>969</v> + <v>919</v> </b> <b> <a>11</a> - <b>16</b> - <v>1044</v> + <b>15</b> + <v>992</v> </b> <b> - <a>16</a> - <b>23</b> - <v>907</v> + <a>15</a> + <b>22</b> + <v>1018</v> </b> <b> - <a>23</a> - <b>36</b> - <v>906</v> + <a>22</a> + <b>34</b> + <v>975</v> </b> <b> - <a>36</a> - <b>65</b> - <v>885</v> + <a>34</a> + <b>61</b> + <v>935</v> </b> <b> - <a>65</a> - <b>158</b> - <v>879</v> + <a>61</a> + <b>143</b> + <v>922</v> </b> <b> - <a>158</a> - <b>1002</b> - <v>877</v> + <a>143</a> + <b>975</b> + <v>923</v> </b> <b> - <a>1002</a> - <b>9027</b> - <v>417</v> + <a>977</a> + <b>11284</b> + <v>570</v> </b> </bs> </hist> @@ -6911,67 +6719,67 @@ <b> <a>1</a> <b>11</b> - <v>997</v> + <v>1028</v> </b> <b> <a>11</a> <b>17</b> - <v>858</v> + <v>920</v> </b> <b> <a>17</a> <b>21</b> - <v>876</v> + <v>913</v> </b> <b> <a>21</a> <b>26</b> - <v>967</v> + <v>1027</v> </b> <b> <a>26</a> <b>32</b> - <v>939</v> + <v>987</v> </b> <b> <a>32</a> <b>39</b> - <v>976</v> + <v>994</v> </b> <b> <a>39</a> <b>47</b> - <v>938</v> + <v>1014</v> </b> <b> <a>47</a> - <b>56</b> - <v>928</v> + <b>57</b> + <v>1003</v> </b> <b> - <a>56</a> + <a>57</a> <b>66</b> - <v>908</v> + <v>957</v> </b> <b> <a>66</a> <b>77</b> - <v>925</v> + <v>1001</v> </b> <b> <a>77</a> <b>87</b> - <v>897</v> + <v>934</v> </b> <b> <a>87</a> - <b>98</b> - <v>929</v> + <b>99</b> + <v>1024</v> </b> <b> - <a>98</a> + <a>99</a> <b>512</b> - <v>544</v> + <v>481</v> </b> </bs> </hist> @@ -6987,72 +6795,72 @@ <b> <a>1</a> <b>3</b> - <v>510</v> + <v>434</v> </b> <b> <a>3</a> <b>4</b> - <v>1068</v> + <v>774</v> </b> <b> <a>4</a> <b>5</b> - <v>962</v> + <v>1147</v> </b> <b> <a>5</a> <b>6</b> - <v>680</v> + <v>995</v> </b> <b> <a>6</a> <b>7</b> - <v>632</v> + <v>690</v> </b> <b> <a>7</a> <b>9</b> - <v>946</v> + <v>989</v> </b> <b> <a>9</a> <b>11</b> - <v>969</v> + <v>919</v> </b> <b> <a>11</a> - <b>16</b> - <v>1044</v> + <b>15</b> + <v>992</v> </b> <b> - <a>16</a> - <b>23</b> - <v>907</v> + <a>15</a> + <b>22</b> + <v>1018</v> </b> <b> - <a>23</a> - <b>36</b> - <v>906</v> + <a>22</a> + <b>34</b> + <v>975</v> </b> <b> - <a>36</a> - <b>65</b> - <v>885</v> + <a>34</a> + <b>61</b> + <v>935</v> </b> <b> - <a>65</a> - <b>158</b> - <v>879</v> + <a>61</a> + <b>143</b> + <v>922</v> </b> <b> - <a>158</a> - <b>1002</b> - <v>877</v> + <a>143</a> + <b>975</b> + <v>923</v> </b> <b> - <a>1002</a> - <b>9027</b> - <v>417</v> + <a>977</a> + <b>11284</b> + <v>570</v> </b> </bs> </hist> @@ -7068,67 +6876,67 @@ <b> <a>1</a> <b>14</b> - <v>962</v> + <v>1008</v> </b> <b> <a>14</a> - <b>20</b> - <v>888</v> + <b>21</b> + <v>1081</v> </b> <b> - <a>20</a> - <b>24</b> - <v>908</v> + <a>21</a> + <b>25</b> + <v>958</v> </b> <b> - <a>24</a> - <b>29</b> - <v>942</v> + <a>25</a> + <b>30</b> + <v>950</v> </b> <b> - <a>29</a> - <b>36</b> - <v>942</v> + <a>30</a> + <b>37</b> + <v>999</v> </b> <b> - <a>36</a> - <b>43</b> - <v>953</v> + <a>37</a> + <b>44</b> + <v>1031</v> </b> <b> - <a>43</a> - <b>51</b> - <v>914</v> + <a>44</a> + <b>52</b> + <v>923</v> </b> <b> - <a>51</a> - <b>61</b> - <v>930</v> + <a>52</a> + <b>62</b> + <v>946</v> </b> <b> - <a>61</a> - <b>72</b> - <v>954</v> + <a>62</a> + <b>73</b> + <v>1042</v> </b> <b> - <a>72</a> - <b>82</b> - <v>911</v> + <a>73</a> + <b>83</b> + <v>1006</v> </b> <b> - <a>82</a> - <b>92</b> - <v>914</v> + <a>83</a> + <b>93</b> + <v>934</v> </b> <b> - <a>92</a> - <b>102</b> - <v>933</v> + <a>93</a> + <b>104</b> + <v>945</v> </b> <b> - <a>102</a> + <a>104</a> <b>523</b> - <v>531</v> + <v>460</v> </b> </bs> </hist> @@ -7144,62 +6952,67 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>1130</v> </b> <b> - <a>2</a> - <b>10</b> - <v>621</v> + <a>4</a> + <b>5</b> + <v>1128</v> </b> <b> - <a>10</a> + <a>5</a> <b>11</b> - <v>1424</v> + <v>801</v> </b> <b> <a>11</a> - <b>20</b> - <v>819</v> + <b>16</b> + <v>994</v> </b> <b> - <a>20</a> - <b>38</b> - <v>679</v> + <a>16</a> + <b>22</b> + <v>854</v> </b> <b> - <a>38</a> + <a>22</a> + <b>30</b> + <v>890</v> + </b> + <b> + <a>30</a> + <b>41</b> + <v>877</v> + </b> + <b> + <a>41</a> + <b>56</b> + <v>860</v> + </b> + <b> + <a>56</a> <b>92</b> - <v>685</v> + <v>854</v> </b> <b> <a>92</a> - <b>170</b> - <v>680</v> + <b>1472</b> + <v>847</v> </b> <b> - <a>170</a> - <b>595</b> - <v>678</v> + <a>1499</a> + <b>2520</b> + <v>847</v> </b> <b> - <a>596</a> - <b>1692</b> - <v>679</v> + <a>2527</a> + <b>5340</b> + <v>847</v> </b> <b> - <a>1692</a> - <b>3137</b> - <v>679</v> - </b> - <b> - <a>3137</a> - <b>12009</b> - <v>678</v> - </b> - <b> - <a>12114</a> - <b>51821</b> - <v>86</v> + <a>5348</a> + <b>46386</b> + <v>364</v> </b> </bs> </hist> @@ -7215,52 +7028,62 @@ <b> <a>1</a> <b>2</b> - <v>2644</v> + <v>2258</v> </b> <b> <a>2</a> <b>3</b> - <v>1456</v> + <v>654</v> </b> <b> <a>3</a> + <b>4</b> + <v>1191</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>1015</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>658</v> + </b> + <b> + <a>6</a> + <b>7</b> + <v>532</v> + </b> + <b> + <a>7</a> + <b>8</b> + <v>712</v> + </b> + <b> + <a>8</a> <b>10</b> - <v>685</v> + <v>1014</v> </b> <b> <a>10</a> - <b>11</b> - <v>354</v> + <b>109</b> + <v>852</v> </b> <b> - <a>11</a> - <b>12</b> - <v>565</v> + <a>109</a> + <b>400</b> + <v>847</v> </b> <b> - <a>12</a> - <b>18</b> - <v>691</v> + <a>400</a> + <b>626</b> + <v>849</v> </b> <b> - <a>18</a> - <b>206</b> - <v>680</v> - </b> - <b> - <a>206</a> - <b>332</b> - <v>684</v> - </b> - <b> - <a>332</a> - <b>542</b> - <v>679</v> - </b> - <b> - <a>542</a> - <b>11511</b> - <v>598</v> + <a>626</a> + <b>12065</b> + <v>711</v> </b> </bs> </hist> @@ -7276,57 +7099,62 @@ <b> <a>1</a> <b>2</b> - <v>1516</v> + <v>1130</v> </b> <b> - <a>2</a> - <b>7</b> - <v>524</v> + <a>3</a> + <b>4</b> + <v>1454</v> </b> <b> - <a>7</a> + <a>4</a> <b>8</b> - <v>1697</v> + <v>977</v> </b> <b> <a>8</a> - <b>13</b> - <v>674</v> + <b>11</b> + <v>746</v> </b> <b> - <a>13</a> - <b>18</b> - <v>834</v> + <a>11</a> + <b>15</b> + <v>1029</v> </b> <b> - <a>18</a> - <b>28</b> - <v>695</v> + <a>15</a> + <b>20</b> + <v>966</v> </b> <b> - <a>28</a> - <b>46</b> - <v>696</v> + <a>20</a> + <b>27</b> + <v>942</v> </b> <b> - <a>46</a> - <b>76</b> - <v>685</v> + <a>27</a> + <b>37</b> + <v>854</v> </b> <b> - <a>76</a> - <b>92</b> - <v>692</v> + <a>37</a> + <b>57</b> + <v>853</v> </b> <b> - <a>92</a> - <b>105</b> - <v>687</v> + <a>57</a> + <b>84</b> + <v>882</v> </b> <b> - <a>105</a> - <b>387</b> - <v>336</v> + <a>84</a> + <b>101</b> + <v>895</v> + </b> + <b> + <a>101</a> + <b>397</b> + <v>565</v> </b> </bs> </hist> @@ -7342,42 +7170,42 @@ <b> <a>1</a> <b>2</b> - <v>4164</v> + <v>4809</v> </b> <b> <a>2</a> <b>3</b> - <v>1304</v> + <v>1797</v> </b> <b> <a>3</a> <b>4</b> - <v>500</v> + <v>961</v> </b> <b> <a>4</a> <b>6</b> - <v>624</v> + <v>940</v> </b> <b> <a>6</a> - <b>9</b> - <v>648</v> + <b>10</b> + <v>986</v> </b> <b> - <a>9</a> - <b>14</b> - <v>756</v> + <a>10</a> + <b>16</b> + <v>862</v> </b> <b> - <a>14</a> - <b>26</b> - <v>678</v> + <a>16</a> + <b>45</b> + <v>848</v> </b> <b> - <a>26</a> - <b>4558</b> - <v>362</v> + <a>45</a> + <b>5676</b> + <v>90</v> </b> </bs> </hist> @@ -7393,57 +7221,67 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>1130</v> </b> <b> - <a>2</a> - <b>7</b> - <v>666</v> + <a>3</a> + <b>4</b> + <v>1128</v> </b> <b> - <a>7</a> + <a>4</a> <b>8</b> - <v>1472</v> + <v>710</v> </b> <b> <a>8</a> - <b>13</b> - <v>824</v> + <b>10</b> + <v>808</v> </b> <b> - <a>13</a> - <b>18</b> - <v>712</v> + <a>10</a> + <b>14</b> + <v>1024</v> </b> <b> - <a>18</a> + <a>14</a> + <b>19</b> + <v>1007</v> + </b> + <b> + <a>19</a> <b>26</b> - <v>679</v> + <v>963</v> </b> <b> <a>26</a> - <b>42</b> - <v>690</v> + <b>34</b> + <v>848</v> </b> <b> - <a>42</a> - <b>73</b> - <v>701</v> + <a>34</a> + <b>49</b> + <v>857</v> </b> <b> - <a>73</a> - <b>91</b> - <v>697</v> + <a>49</a> + <b>77</b> + <v>860</v> </b> <b> - <a>91</a> - <b>105</b> - <v>721</v> + <a>77</a> + <b>97</b> + <v>895</v> </b> <b> - <a>105</a> - <b>391</b> - <v>546</v> + <a>97</a> + <b>118</b> + <v>857</v> + </b> + <b> + <a>118</a> + <b>400</b> + <v>206</v> </b> </bs> </hist> @@ -7459,7 +7297,7 @@ <b> <a>1</a> <b>4</b> - <v>92</v> + <v>102</v> </b> <b> <a>4</a> @@ -7469,658 +7307,13 @@ <b> <a>5</a> <b>8</b> + <v>65</v> + </b> + <b> + <a>8</a> + <b>9</b> <v>122</v> </b> - <b> - <a>8</a> - <b>9</b> - <v>123</v> - </b> - <b> - <a>9</a> - <b>11</b> - <v>117</v> - </b> - <b> - <a>11</a> - <b>12</b> - <v>40</v> - </b> - <b> - <a>12</a> - <b>13</b> - <v>109</v> - </b> - <b> - <a>13</a> - <b>17</b> - <v>118</v> - </b> - <b> - <a>17</a> - <b>22</b> - <v>108</v> - </b> - <b> - <a>22</a> - <b>33</b> - <v>106</v> - </b> - <b> - <a>33</a> - <b>75</b> - <v>103</v> - </b> - <b> - <a>75</a> - <b>739</b> - <v>103</v> - </b> - <b> - <a>740</a> - <b>195640</b> - <v>103</v> - </b> - <b> - <a>213807</a> - <b>865889</b> - <v>6</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>beginColumn</src> - <trg>file</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>3</b> - <v>120</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>120</v> - </b> - <b> - <a>5</a> - <b>7</b> - <v>71</v> - </b> - <b> - <a>7</a> - <b>8</b> - <v>62</v> - </b> - <b> - <a>8</a> - <b>9</b> - <v>119</v> - </b> - <b> - <a>9</a> - <b>11</b> - <v>109</v> - </b> - <b> - <a>11</a> - <b>12</b> - <v>40</v> - </b> - <b> - <a>12</a> - <b>13</b> - <v>112</v> - </b> - <b> - <a>13</a> - <b>17</b> - <v>125</v> - </b> - <b> - <a>17</a> - <b>23</b> - <v>105</v> - </b> - <b> - <a>23</a> - <b>34</b> - <v>106</v> - </b> - <b> - <a>34</a> - <b>79</b> - <v>103</v> - </b> - <b> - <a>80</a> - <b>3436</b> - <v>103</v> - </b> - <b> - <a>3468</a> - <b>11682</b> - <v>76</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>beginColumn</src> - <trg>beginLine</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>215</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>318</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>126</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>141</v> - </b> - <b> - <a>5</a> - <b>6</b> - <v>75</v> - </b> - <b> - <a>6</a> - <b>8</b> - <v>103</v> - </b> - <b> - <a>8</a> - <b>13</b> - <v>117</v> - </b> - <b> - <a>13</a> - <b>32</b> - <v>104</v> - </b> - <b> - <a>32</a> - <b>2080</b> - <v>103</v> - </b> - <b> - <a>2093</a> - <b>9035</b> - <v>69</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>beginColumn</src> - <trg>endLine</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>215</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>318</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>126</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>141</v> - </b> - <b> - <a>5</a> - <b>6</b> - <v>75</v> - </b> - <b> - <a>6</a> - <b>8</b> - <v>103</v> - </b> - <b> - <a>8</a> - <b>13</b> - <v>117</v> - </b> - <b> - <a>13</a> - <b>32</b> - <v>104</v> - </b> - <b> - <a>32</a> - <b>2112</b> - <v>103</v> - </b> - <b> - <a>2123</a> - <b>9035</b> - <v>69</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>beginColumn</src> - <trg>endColumn</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>693</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>314</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>112</v> - </b> - <b> - <a>4</a> - <b>7</b> - <v>114</v> - </b> - <b> - <a>7</a> - <b>84</b> - <v>103</v> - </b> - <b> - <a>84</a> - <b>263</b> - <v>35</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>endLine</src> - <trg>id</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1323</v> - </b> - <b> - <a>2</a> - <b>11</b> - <v>675</v> - </b> - <b> - <a>11</a> - <b>12</b> - <v>1420</v> - </b> - <b> - <a>12</a> - <b>22</b> - <v>806</v> - </b> - <b> - <a>22</a> - <b>44</b> - <v>680</v> - </b> - <b> - <a>44</a> - <b>95</b> - <v>683</v> - </b> - <b> - <a>95</a> - <b>173</b> - <v>685</v> - </b> - <b> - <a>173</a> - <b>808</b> - <v>678</v> - </b> - <b> - <a>823</a> - <b>1711</b> - <v>678</v> - </b> - <b> - <a>1711</a> - <b>3189</b> - <v>678</v> - </b> - <b> - <a>3189</a> - <b>16909</b> - <v>678</v> - </b> - <b> - <a>17178</a> - <b>52390</b> - <v>52</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>endLine</src> - <trg>file</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>2641</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>1465</v> - </b> - <b> - <a>3</a> - <b>10</b> - <v>673</v> - </b> - <b> - <a>10</a> - <b>11</b> - <v>361</v> - </b> - <b> - <a>11</a> - <b>12</b> - <v>555</v> - </b> - <b> - <a>12</a> - <b>18</b> - <v>699</v> - </b> - <b> - <a>18</a> - <b>206</b> - <v>680</v> - </b> - <b> - <a>206</a> - <b>330</b> - <v>682</v> - </b> - <b> - <a>330</a> - <b>541</b> - <v>680</v> - </b> - <b> - <a>541</a> - <b>6341</b> - <v>600</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>endLine</src> - <trg>beginLine</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>2018</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>2354</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>1144</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>627</v> - </b> - <b> - <a>5</a> - <b>8</b> - <v>797</v> - </b> - <b> - <a>8</a> - <b>12</b> - <v>693</v> - </b> - <b> - <a>12</a> - <b>20</b> - <v>679</v> - </b> - <b> - <a>20</a> - <b>50</b> - <v>682</v> - </b> - <b> - <a>50</a> - <b>64</b> - <v>42</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>endLine</src> - <trg>beginColumn</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1468</v> - </b> - <b> - <a>2</a> - <b>7</b> - <v>555</v> - </b> - <b> - <a>7</a> - <b>8</b> - <v>1644</v> - </b> - <b> - <a>8</a> - <b>13</b> - <v>721</v> - </b> - <b> - <a>13</a> - <b>18</b> - <v>825</v> - </b> - <b> - <a>18</a> - <b>28</b> - <v>709</v> - </b> - <b> - <a>28</a> - <b>45</b> - <v>682</v> - </b> - <b> - <a>45</a> - <b>76</b> - <v>699</v> - </b> - <b> - <a>76</a> - <b>92</b> - <v>694</v> - </b> - <b> - <a>92</a> - <b>105</b> - <v>695</v> - </b> - <b> - <a>105</a> - <b>388</b> - <v>344</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>endLine</src> - <trg>endColumn</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1323</v> - </b> - <b> - <a>2</a> - <b>7</b> - <v>691</v> - </b> - <b> - <a>7</a> - <b>8</b> - <v>1491</v> - </b> - <b> - <a>8</a> - <b>12</b> - <v>718</v> - </b> - <b> - <a>12</a> - <b>17</b> - <v>669</v> - </b> - <b> - <a>17</a> - <b>24</b> - <v>732</v> - </b> - <b> - <a>24</a> - <b>40</b> - <v>707</v> - </b> - <b> - <a>40</a> - <b>70</b> - <v>691</v> - </b> - <b> - <a>70</a> - <b>90</b> - <v>732</v> - </b> - <b> - <a>90</a> - <b>104</b> - <v>704</v> - </b> - <b> - <a>104</a> - <b>391</b> - <v>578</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>endColumn</src> - <trg>id</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>4</b> - <v>87</v> - </b> - <b> - <a>4</a> - <b>5</b> - <v>120</v> - </b> - <b> - <a>5</a> - <b>8</b> - <v>120</v> - </b> - <b> - <a>8</a> - <b>9</b> - <v>123</v> - </b> <b> <a>9</a> <b>11</b> @@ -8129,47 +7322,737 @@ <b> <a>11</a> <b>12</b> - <v>41</v> + <v>73</v> </b> <b> <a>12</a> <b>13</b> - <v>108</v> + <v>114</v> </b> <b> <a>13</a> - <b>17</b> - <v>121</v> + <b>18</b> + <v>106</v> </b> <b> - <a>17</a> - <b>22</b> + <a>18</a> + <b>21</b> + <v>115</v> + </b> + <b> + <a>21</a> + <b>32</b> + <v>118</v> + </b> + <b> + <a>32</a> + <b>61</b> + <v>104</v> + </b> + <b> + <a>61</a> + <b>255</b> + <v>104</v> + </b> + <b> + <a>261</a> + <b>113805</b> + <v>104</v> + </b> + <b> + <a>114086</a> + <b>1069778</b> + <v>27</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>beginColumn</src> + <trg>file</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>3</b> + <v>118</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>13</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>119</v> + </b> + <b> + <a>5</a> + <b>8</b> + <v>75</v> + </b> + <b> + <a>8</a> + <b>9</b> + <v>119</v> + </b> + <b> + <a>9</a> + <b>11</b> <v>105</v> </b> + <b> + <a>11</a> + <b>12</b> + <v>73</v> + </b> + <b> + <a>12</a> + <b>13</b> + <v>111</v> + </b> + <b> + <a>13</a> + <b>19</b> + <v>122</v> + </b> + <b> + <a>19</a> + <b>22</b> + <v>111</v> + </b> <b> <a>22</a> <b>33</b> - <v>107</v> + <v>108</v> </b> <b> <a>33</a> - <b>73</b> + <b>66</b> + <v>107</v> + </b> + <b> + <a>68</a> + <b>683</b> <v>104</v> </b> <b> - <a>73</a> - <b>547</b> + <a>732</a> + <b>12283</b> + <v>100</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>beginColumn</src> + <trg>beginLine</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>223</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>307</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>135</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>140</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>78</v> + </b> + <b> + <a>6</a> + <b>8</b> + <v>101</v> + </b> + <b> + <a>8</a> + <b>13</b> + <v>120</v> + </b> + <b> + <a>13</a> + <b>32</b> <v>104</v> </b> <b> - <a>571</a> - <b>148376</b> + <a>32</a> + <b>2144</b> <v>104</v> </b> <b> - <a>149850</a> - <b>309769</b> - <v>22</v> + <a>2186</a> + <b>11292</b> + <v>73</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>beginColumn</src> + <trg>endLine</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>223</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>307</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>135</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>140</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>78</v> + </b> + <b> + <a>6</a> + <b>8</b> + <v>100</v> + </b> + <b> + <a>8</a> + <b>13</b> + <v>121</v> + </b> + <b> + <a>13</a> + <b>32</b> + <v>104</v> + </b> + <b> + <a>32</a> + <b>2158</b> + <v>104</v> + </b> + <b> + <a>2226</a> + <b>11292</b> + <v>73</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>beginColumn</src> + <trg>endColumn</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>689</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>323</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>118</v> + </b> + <b> + <a>4</a> + <b>7</b> + <v>117</v> + </b> + <b> + <a>7</a> + <b>88</b> + <v>104</v> + </b> + <b> + <a>88</a> + <b>266</b> + <v>34</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>endLine</src> + <trg>id</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1129</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>1</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>1128</v> + </b> + <b> + <a>6</a> + <b>12</b> + <v>762</v> + </b> + <b> + <a>12</a> + <b>17</b> + <v>961</v> + </b> + <b> + <a>17</a> + <b>23</b> + <v>922</v> + </b> + <b> + <a>23</a> + <b>31</b> + <v>919</v> + </b> + <b> + <a>31</a> + <b>43</b> + <v>899</v> + </b> + <b> + <a>43</a> + <b>58</b> + <v>879</v> + </b> + <b> + <a>58</a> + <b>100</b> + <v>855</v> + </b> + <b> + <a>100</a> + <b>1721</b> + <v>847</v> + </b> + <b> + <a>1722</a> + <b>2799</b> + <v>847</v> + </b> + <b> + <a>2805</a> + <b>6136</b> + <v>847</v> + </b> + <b> + <a>6136</a> + <b>46393</b> + <v>297</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>endLine</src> + <trg>file</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>2258</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>654</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>1191</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>1017</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>652</v> + </b> + <b> + <a>6</a> + <b>7</b> + <v>522</v> + </b> + <b> + <a>7</a> + <b>8</b> + <v>735</v> + </b> + <b> + <a>8</a> + <b>10</b> + <v>1005</v> + </b> + <b> + <a>10</a> + <b>109</b> + <v>850</v> + </b> + <b> + <a>109</a> + <b>400</b> + <v>850</v> + </b> + <b> + <a>400</a> + <b>626</b> + <v>849</v> + </b> + <b> + <a>626</a> + <b>6687</b> + <v>710</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>endLine</src> + <trg>beginLine</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1130</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>3437</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>1709</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>1095</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>700</v> + </b> + <b> + <a>6</a> + <b>9</b> + <v>918</v> + </b> + <b> + <a>9</a> + <b>14</b> + <v>918</v> + </b> + <b> + <a>14</a> + <b>25</b> + <v>868</v> + </b> + <b> + <a>25</a> + <b>60</b> + <v>518</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>endLine</src> + <trg>beginColumn</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1129</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>1454</v> + </b> + <b> + <a>4</a> + <b>8</b> + <v>926</v> + </b> + <b> + <a>8</a> + <b>11</b> + <v>708</v> + </b> + <b> + <a>11</a> + <b>15</b> + <v>1045</v> + </b> + <b> + <a>15</a> + <b>20</b> + <v>968</v> + </b> + <b> + <a>20</a> + <b>27</b> + <v>954</v> + </b> + <b> + <a>27</a> + <b>37</b> + <v>880</v> + </b> + <b> + <a>37</a> + <b>57</b> + <v>867</v> + </b> + <b> + <a>57</a> + <b>84</b> + <v>872</v> + </b> + <b> + <a>84</a> + <b>100</b> + <v>847</v> + </b> + <b> + <a>100</a> + <b>397</b> + <v>642</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>endLine</src> + <trg>endColumn</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1129</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>1128</v> + </b> + <b> + <a>4</a> + <b>8</b> + <v>718</v> + </b> + <b> + <a>8</a> + <b>10</b> + <v>801</v> + </b> + <b> + <a>10</a> + <b>13</b> + <v>814</v> + </b> + <b> + <a>13</a> + <b>17</b> + <v>919</v> + </b> + <b> + <a>17</a> + <b>23</b> + <v>965</v> + </b> + <b> + <a>23</a> + <b>31</b> + <v>959</v> + </b> + <b> + <a>31</a> + <b>44</b> + <v>879</v> + </b> + <b> + <a>44</a> + <b>70</b> + <v>851</v> + </b> + <b> + <a>70</a> + <b>93</b> + <v>878</v> + </b> + <b> + <a>93</a> + <b>109</b> + <v>849</v> + </b> + <b> + <a>109</a> + <b>400</b> + <v>402</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>endColumn</src> + <trg>id</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>4</b> + <v>95</v> + </b> + <b> + <a>4</a> + <b>5</b> + <v>120</v> + </b> + <b> + <a>5</a> + <b>8</b> + <v>64</v> + </b> + <b> + <a>8</a> + <b>9</b> + <v>120</v> + </b> + <b> + <a>9</a> + <b>11</b> + <v>105</v> + </b> + <b> + <a>11</a> + <b>12</b> + <v>76</v> + </b> + <b> + <a>12</a> + <b>13</b> + <v>113</v> + </b> + <b> + <a>13</a> + <b>18</b> + <v>109</v> + </b> + <b> + <a>18</a> + <b>21</b> + <v>111</v> + </b> + <b> + <a>21</a> + <b>31</b> + <v>106</v> + </b> + <b> + <a>31</a> + <b>55</b> + <v>106</v> + </b> + <b> + <a>55</a> + <b>191</b> + <v>105</v> + </b> + <b> + <a>192</a> + <b>56899</b> + <v>105</v> + </b> + <b> + <a>58047</a> + <b>407640</b> + <v>54</v> </b> </bs> </hist> @@ -8185,72 +8068,72 @@ <b> <a>1</a> <b>3</b> - <v>113</v> + <v>110</v> </b> <b> <a>3</a> + <b>4</b> + <v>15</v> + </b> + <b> + <a>4</a> <b>5</b> - <v>122</v> + <v>119</v> </b> <b> <a>5</a> - <b>7</b> - <v>70</v> - </b> - <b> - <a>7</a> <b>8</b> - <v>63</v> + <v>74</v> </b> <b> <a>8</a> <b>9</b> - <v>117</v> + <v>116</v> </b> <b> <a>9</a> <b>11</b> - <v>108</v> + <v>104</v> </b> <b> <a>11</a> <b>12</b> - <v>38</v> + <v>73</v> </b> <b> <a>12</a> <b>13</b> - <v>112</v> + <v>114</v> </b> <b> <a>13</a> - <b>17</b> - <v>124</v> + <b>19</b> + <v>126</v> </b> <b> - <a>17</a> + <a>19</a> <b>23</b> - <v>105</v> + <v>115</v> </b> <b> <a>23</a> - <b>33</b> - <v>106</v> + <b>34</b> + <v>114</v> </b> <b> - <a>33</a> - <b>71</b> - <v>104</v> + <a>34</a> + <b>72</b> + <v>105</v> </b> <b> - <a>71</a> - <b>2586</b> - <v>104</v> + <a>72</a> + <b>1551</b> + <v>105</v> </b> <b> - <a>2841</a> - <b>10750</b> - <v>90</v> + <a>1727</a> + <b>11266</b> + <v>99</v> </b> </bs> </hist> @@ -8266,52 +8149,52 @@ <b> <a>1</a> <b>2</b> - <v>213</v> + <v>219</v> </b> <b> <a>2</a> <b>3</b> - <v>316</v> + <v>306</v> </b> <b> <a>3</a> <b>4</b> - <v>126</v> + <v>134</v> </b> <b> <a>4</a> <b>5</b> - <v>141</v> + <v>142</v> </b> <b> <a>5</a> <b>6</b> - <v>71</v> + <v>74</v> </b> <b> <a>6</a> <b>8</b> - <v>102</v> + <v>103</v> </b> <b> <a>8</a> - <b>12</b> - <v>106</v> + <b>13</b> + <v>120</v> </b> <b> - <a>12</a> - <b>28</b> - <v>106</v> + <a>13</a> + <b>33</b> + <v>108</v> </b> <b> - <a>28</a> - <b>1632</b> - <v>104</v> + <a>33</a> + <b>2296</b> + <v>105</v> </b> <b> - <a>1663</a> - <b>6417</b> - <v>91</v> + <a>2325</a> + <b>10163</b> + <v>78</v> </b> </bs> </hist> @@ -8327,31 +8210,31 @@ <b> <a>1</a> <b>2</b> - <v>683</v> + <v>676</v> </b> <b> <a>2</a> <b>3</b> - <v>268</v> + <v>276</v> </b> <b> <a>3</a> <b>4</b> - <v>116</v> + <v>124</v> </b> <b> <a>4</a> <b>7</b> - <v>109</v> + <v>112</v> </b> <b> <a>7</a> - <b>34</b> - <v>104</v> + <b>36</b> + <v>105</v> </b> <b> - <a>34</a> - <b>102</b> + <a>36</a> + <b>105</b> <v>96</v> </b> </bs> @@ -8368,52 +8251,52 @@ <b> <a>1</a> <b>2</b> - <v>213</v> + <v>219</v> </b> <b> <a>2</a> <b>3</b> - <v>316</v> + <v>306</v> </b> <b> <a>3</a> <b>4</b> - <v>126</v> + <v>134</v> </b> <b> <a>4</a> <b>5</b> - <v>141</v> + <v>142</v> </b> <b> <a>5</a> <b>6</b> - <v>71</v> + <v>74</v> </b> <b> <a>6</a> <b>8</b> - <v>102</v> + <v>103</v> </b> <b> <a>8</a> - <b>12</b> + <b>13</b> + <v>121</v> + </b> + <b> + <a>13</a> + <b>33</b> <v>107</v> </b> <b> - <a>12</a> - <b>28</b> - <v>107</v> + <a>33</a> + <b>2249</b> + <v>105</v> </b> <b> - <a>28</a> - <b>1640</b> - <v>104</v> - </b> - <b> - <a>1670</a> - <b>6384</b> - <v>89</v> + <a>2292</a> + <b>10163</b> + <v>78</v> </b> </bs> </hist> @@ -8423,23 +8306,23 @@ </relation> <relation> <name>ql_add_expr_def</name> - <cardinality>14857</cardinality> + <cardinality>13786</cardinality> <columnsizes> <e> <k>id</k> - <v>14857</v> + <v>13786</v> </e> <e> <k>left</k> - <v>14857</v> + <v>13786</v> </e> <e> <k>right</k> - <v>14857</v> + <v>13786</v> </e> <e> <k>child</k> - <v>14857</v> + <v>13786</v> </e> </columnsizes> <dependencies> @@ -8453,7 +8336,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8469,7 +8352,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8485,7 +8368,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8501,7 +8384,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8517,7 +8400,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8533,7 +8416,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8549,7 +8432,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8565,7 +8448,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8581,7 +8464,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8597,7 +8480,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8613,7 +8496,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8629,7 +8512,7 @@ <b> <a>1</a> <b>2</b> - <v>14857</v> + <v>13786</v> </b> </bs> </hist> @@ -8639,11 +8522,11 @@ </relation> <relation> <name>ql_aggregate_child</name> - <cardinality>17934</cardinality> + <cardinality>16852</cardinality> <columnsizes> <e> <k>ql_aggregate</k> - <v>9694</v> + <v>9053</v> </e> <e> <k>index</k> @@ -8651,7 +8534,7 @@ </e> <e> <k>child</k> - <v>17934</v> + <v>16852</v> </e> </columnsizes> <dependencies> @@ -8665,17 +8548,17 @@ <b> <a>1</a> <b>2</b> - <v>1687</v> + <v>1481</v> </b> <b> <a>2</a> <b>3</b> - <v>7774</v> + <v>7345</v> </b> <b> <a>3</a> <b>4</b> - <v>233</v> + <v>227</v> </b> </bs> </hist> @@ -8691,17 +8574,17 @@ <b> <a>1</a> <b>2</b> - <v>1687</v> + <v>1481</v> </b> <b> <a>2</a> <b>3</b> - <v>7774</v> + <v>7345</v> </b> <b> <a>3</a> <b>4</b> - <v>233</v> + <v>227</v> </b> </bs> </hist> @@ -8715,18 +8598,18 @@ <budget>12</budget> <bs> <b> - <a>233</a> - <b>234</b> + <a>227</a> + <b>228</b> <v>1</v> </b> <b> - <a>8007</a> - <b>8008</b> + <a>7572</a> + <b>7573</b> <v>1</v> </b> <b> - <a>9694</a> - <b>9695</b> + <a>9053</a> + <b>9054</b> <v>1</v> </b> </bs> @@ -8741,18 +8624,18 @@ <budget>12</budget> <bs> <b> - <a>233</a> - <b>234</b> + <a>227</a> + <b>228</b> <v>1</v> </b> <b> - <a>8007</a> - <b>8008</b> + <a>7572</a> + <b>7573</b> <v>1</v> </b> <b> - <a>9694</a> - <b>9695</b> + <a>9053</a> + <b>9054</b> <v>1</v> </b> </bs> @@ -8769,7 +8652,7 @@ <b> <a>1</a> <b>2</b> - <v>17934</v> + <v>16852</v> </b> </bs> </hist> @@ -8785,7 +8668,7 @@ <b> <a>1</a> <b>2</b> - <v>17934</v> + <v>16852</v> </b> </bs> </hist> @@ -8795,26 +8678,26 @@ </relation> <relation> <name>ql_aggregate_def</name> - <cardinality>9694</cardinality> + <cardinality>9053</cardinality> <columnsizes> <e> <k>id</k> - <v>9694</v> + <v>9053</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_annot_arg_def</name> - <cardinality>6094</cardinality> + <cardinality>4043</cardinality> <columnsizes> <e> <k>id</k> - <v>6094</v> + <v>4043</v> </e> <e> <k>child</k> - <v>6094</v> + <v>4043</v> </e> </columnsizes> <dependencies> @@ -8828,7 +8711,7 @@ <b> <a>1</a> <b>2</b> - <v>6094</v> + <v>4043</v> </b> </bs> </hist> @@ -8844,7 +8727,7 @@ <b> <a>1</a> <b>2</b> - <v>6094</v> + <v>4043</v> </b> </bs> </hist> @@ -8854,11 +8737,11 @@ </relation> <relation> <name>ql_annotation_args</name> - <cardinality>6862</cardinality> + <cardinality>4365</cardinality> <columnsizes> <e> <k>ql_annotation</k> - <v>5326</v> + <v>3721</v> </e> <e> <k>index</k> @@ -8866,7 +8749,7 @@ </e> <e> <k>args</k> - <v>6862</v> + <v>4365</v> </e> </columnsizes> <dependencies> @@ -8880,17 +8763,12 @@ <b> <a>1</a> <b>2</b> - <v>4776</v> + <v>3448</v> </b> <b> <a>3</a> - <b>4</b> - <v>382</v> - </b> - <b> - <a>5</a> <b>10</b> - <v>168</v> + <v>273</v> </b> </bs> </hist> @@ -8906,17 +8784,12 @@ <b> <a>1</a> <b>2</b> - <v>4776</v> + <v>3448</v> </b> <b> <a>3</a> - <b>4</b> - <v>382</v> - </b> - <b> - <a>5</a> <b>10</b> - <v>168</v> + <v>273</v> </b> </bs> </hist> @@ -8930,28 +8803,28 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>1</a> + <b>2</b> <v>2</v> </b> <b> - <a>48</a> - <b>49</b> + <a>15</a> + <b>16</b> <v>2</v> </b> <b> - <a>168</a> - <b>169</b> + <a>33</a> + <b>34</b> <v>2</v> </b> <b> - <a>550</a> - <b>551</b> + <a>273</a> + <b>274</b> <v>2</v> </b> <b> - <a>5326</a> - <b>5327</b> + <a>3721</a> + <b>3722</b> <v>1</v> </b> </bs> @@ -8966,28 +8839,28 @@ <budget>12</budget> <bs> <b> - <a>2</a> - <b>3</b> + <a>1</a> + <b>2</b> <v>2</v> </b> <b> - <a>48</a> - <b>49</b> + <a>15</a> + <b>16</b> <v>2</v> </b> <b> - <a>168</a> - <b>169</b> + <a>33</a> + <b>34</b> <v>2</v> </b> <b> - <a>550</a> - <b>551</b> + <a>273</a> + <b>274</b> <v>2</v> </b> <b> - <a>5326</a> - <b>5327</b> + <a>3721</a> + <b>3722</b> <v>1</v> </b> </bs> @@ -9004,7 +8877,7 @@ <b> <a>1</a> <b>2</b> - <v>6862</v> + <v>4365</v> </b> </bs> </hist> @@ -9020,7 +8893,7 @@ <b> <a>1</a> <b>2</b> - <v>6862</v> + <v>4365</v> </b> </bs> </hist> @@ -9030,15 +8903,15 @@ </relation> <relation> <name>ql_annotation_def</name> - <cardinality>72771</cardinality> + <cardinality>65278</cardinality> <columnsizes> <e> <k>id</k> - <v>72771</v> + <v>65278</v> </e> <e> <k>name</k> - <v>72771</v> + <v>65278</v> </e> </columnsizes> <dependencies> @@ -9052,7 +8925,7 @@ <b> <a>1</a> <b>2</b> - <v>72771</v> + <v>65278</v> </b> </bs> </hist> @@ -9068,7 +8941,7 @@ <b> <a>1</a> <b>2</b> - <v>72771</v> + <v>65278</v> </b> </bs> </hist> @@ -9078,15 +8951,15 @@ </relation> <relation> <name>ql_arityless_predicate_expr_def</name> - <cardinality>67354</cardinality> + <cardinality>58107</cardinality> <columnsizes> <e> <k>id</k> - <v>67354</v> + <v>58107</v> </e> <e> <k>name</k> - <v>67354</v> + <v>58107</v> </e> </columnsizes> <dependencies> @@ -9100,7 +8973,7 @@ <b> <a>1</a> <b>2</b> - <v>67354</v> + <v>58107</v> </b> </bs> </hist> @@ -9116,7 +8989,7 @@ <b> <a>1</a> <b>2</b> - <v>67354</v> + <v>58107</v> </b> </bs> </hist> @@ -9126,15 +8999,15 @@ </relation> <relation> <name>ql_arityless_predicate_expr_qualifier</name> - <cardinality>10179</cardinality> + <cardinality>10163</cardinality> <columnsizes> <e> <k>ql_arityless_predicate_expr</k> - <v>10179</v> + <v>10163</v> </e> <e> <k>qualifier</k> - <v>10179</v> + <v>10163</v> </e> </columnsizes> <dependencies> @@ -9148,7 +9021,7 @@ <b> <a>1</a> <b>2</b> - <v>10179</v> + <v>10163</v> </b> </bs> </hist> @@ -9164,7 +9037,7 @@ <b> <a>1</a> <b>2</b> - <v>10179</v> + <v>10163</v> </b> </bs> </hist> @@ -9174,11 +9047,11 @@ </relation> <relation> <name>ql_as_expr_child</name> - <cardinality>19682</cardinality> + <cardinality>20772</cardinality> <columnsizes> <e> <k>ql_as_expr</k> - <v>19448</v> + <v>20508</v> </e> <e> <k>index</k> @@ -9186,7 +9059,7 @@ </e> <e> <k>child</k> - <v>19682</v> + <v>20772</v> </e> </columnsizes> <dependencies> @@ -9200,12 +9073,12 @@ <b> <a>1</a> <b>2</b> - <v>19214</v> + <v>20244</v> </b> <b> <a>2</a> <b>3</b> - <v>234</v> + <v>264</v> </b> </bs> </hist> @@ -9221,12 +9094,12 @@ <b> <a>1</a> <b>2</b> - <v>19214</v> + <v>20244</v> </b> <b> <a>2</a> <b>3</b> - <v>234</v> + <v>264</v> </b> </bs> </hist> @@ -9240,13 +9113,13 @@ <budget>12</budget> <bs> <b> - <a>234</a> - <b>235</b> + <a>264</a> + <b>265</b> <v>1</v> </b> <b> - <a>19448</a> - <b>19449</b> + <a>20508</a> + <b>20509</b> <v>1</v> </b> </bs> @@ -9261,13 +9134,13 @@ <budget>12</budget> <bs> <b> - <a>234</a> - <b>235</b> + <a>264</a> + <b>265</b> <v>1</v> </b> <b> - <a>19448</a> - <b>19449</b> + <a>20508</a> + <b>20509</b> <v>1</v> </b> </bs> @@ -9284,7 +9157,7 @@ <b> <a>1</a> <b>2</b> - <v>19682</v> + <v>20772</v> </b> </bs> </hist> @@ -9300,7 +9173,7 @@ <b> <a>1</a> <b>2</b> - <v>19682</v> + <v>20772</v> </b> </bs> </hist> @@ -9310,22 +9183,22 @@ </relation> <relation> <name>ql_as_expr_def</name> - <cardinality>19448</cardinality> + <cardinality>20508</cardinality> <columnsizes> <e> <k>id</k> - <v>19448</v> + <v>20508</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_as_exprs_child</name> - <cardinality>19448</cardinality> + <cardinality>20508</cardinality> <columnsizes> <e> <k>ql_as_exprs</k> - <v>8242</v> + <v>8493</v> </e> <e> <k>index</k> @@ -9333,7 +9206,7 @@ </e> <e> <k>child</k> - <v>19448</v> + <v>20508</v> </e> </columnsizes> <dependencies> @@ -9347,32 +9220,32 @@ <b> <a>1</a> <b>2</b> - <v>3031</v> + <v>2998</v> </b> <b> <a>2</a> <b>3</b> - <v>2962</v> + <v>3100</v> </b> <b> <a>3</a> <b>4</b> - <v>672</v> + <v>714</v> </b> <b> <a>4</a> <b>5</b> - <v>702</v> + <v>739</v> </b> <b> <a>5</a> <b>7</b> - <v>678</v> + <v>714</v> </b> <b> <a>7</a> <b>36</b> - <v>197</v> + <v>228</v> </b> </bs> </hist> @@ -9388,32 +9261,32 @@ <b> <a>1</a> <b>2</b> - <v>3031</v> + <v>2998</v> </b> <b> <a>2</a> <b>3</b> - <v>2962</v> + <v>3100</v> </b> <b> <a>3</a> <b>4</b> - <v>672</v> + <v>714</v> </b> <b> <a>4</a> <b>5</b> - <v>702</v> + <v>739</v> </b> <b> <a>5</a> <b>7</b> - <v>678</v> + <v>714</v> </b> <b> <a>7</a> <b>36</b> - <v>197</v> + <v>228</v> </b> </bs> </hist> @@ -9438,47 +9311,52 @@ </b> <b> <a>3</a> - <b>4</b> - <v>4</v> - </b> - <b> - <a>4</a> <b>5</b> - <v>6</v> + <v>3</v> </b> <b> - <a>6</a> - <b>10</b> + <a>7</a> + <b>9</b> <v>2</v> </b> <b> <a>10</a> + <b>11</b> + <v>5</v> + </b> + <b> + <a>12</a> <b>13</b> - <v>3</v> + <v>2</v> </b> <b> <a>13</a> - <b>19</b> + <b>17</b> <v>3</v> </b> <b> - <a>26</a> - <b>55</b> + <a>17</a> + <b>23</b> <v>3</v> </b> <b> - <a>123</a> - <b>720</b> + <a>35</a> + <b>67</b> <v>3</v> </b> <b> - <a>875</a> - <b>2250</b> + <a>145</a> + <b>770</b> <v>3</v> </b> <b> - <a>5211</a> - <b>8243</b> + <a>942</a> + <b>2396</b> + <v>3</v> + </b> + <b> + <a>5495</a> + <b>8494</b> <v>2</v> </b> </bs> @@ -9504,47 +9382,52 @@ </b> <b> <a>3</a> - <b>4</b> - <v>4</v> - </b> - <b> - <a>4</a> <b>5</b> - <v>6</v> + <v>3</v> </b> <b> - <a>6</a> - <b>10</b> + <a>7</a> + <b>9</b> <v>2</v> </b> <b> <a>10</a> + <b>11</b> + <v>5</v> + </b> + <b> + <a>12</a> <b>13</b> - <v>3</v> + <v>2</v> </b> <b> <a>13</a> - <b>19</b> + <b>17</b> <v>3</v> </b> <b> - <a>26</a> - <b>55</b> + <a>17</a> + <b>23</b> <v>3</v> </b> <b> - <a>123</a> - <b>720</b> + <a>35</a> + <b>67</b> <v>3</v> </b> <b> - <a>875</a> - <b>2250</b> + <a>145</a> + <b>770</b> <v>3</v> </b> <b> - <a>5211</a> - <b>8243</b> + <a>942</a> + <b>2396</b> + <v>3</v> + </b> + <b> + <a>5495</a> + <b>8494</b> <v>2</v> </b> </bs> @@ -9561,7 +9444,7 @@ <b> <a>1</a> <b>2</b> - <v>19448</v> + <v>20508</v> </b> </bs> </hist> @@ -9577,7 +9460,7 @@ <b> <a>1</a> <b>2</b> - <v>19448</v> + <v>20508</v> </b> </bs> </hist> @@ -9587,35 +9470,89 @@ </relation> <relation> <name>ql_as_exprs_def</name> - <cardinality>8242</cardinality> + <cardinality>8493</cardinality> <columnsizes> <e> <k>id</k> - <v>8242</v> + <v>8493</v> </e> </columnsizes> <dependencies/> </relation> <relation> - <name>ql_ast_node_info</name> - <cardinality>6543748</cardinality> + <name>ql_ast_node_location</name> + <cardinality>6230328</cardinality> <columnsizes> <e> <k>node</k> - <v>6543748</v> + <v>6230328</v> + </e> + <e> + <k>loc</k> + <v>4563391</v> + </e> + </columnsizes> + <dependencies> + <dep> + <src>node</src> + <trg>loc</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>6230328</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>loc</src> + <trg>node</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>3246688</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>979956</v> + </b> + <b> + <a>3</a> + <b>6</b> + <v>336747</v> + </b> + </bs> + </hist> + </val> + </dep> + </dependencies> + </relation> + <relation> + <name>ql_ast_node_parent</name> + <cardinality>6197281</cardinality> + <columnsizes> + <e> + <k>node</k> + <v>6197281</v> </e> <e> <k>parent</k> - <v>3102776</v> + <v>2947735</v> </e> <e> <k>parent_index</k> <v>2057</v> </e> - <e> - <k>loc</k> - <v>4792814</v> - </e> </columnsizes> <dependencies> <dep> @@ -9628,7 +9565,7 @@ <b> <a>1</a> <b>2</b> - <v>6543748</v> + <v>6197281</v> </b> </bs> </hist> @@ -9644,23 +9581,7 @@ <b> <a>1</a> <b>2</b> - <v>6543748</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>node</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>6543748</v> + <v>6197281</v> </b> </bs> </hist> @@ -9676,27 +9597,27 @@ <b> <a>1</a> <b>2</b> - <v>1758472</v> + <v>1667033</v> </b> <b> <a>2</a> <b>3</b> - <v>308336</v> + <v>276121</v> </b> <b> <a>3</a> <b>4</b> - <v>770593</v> + <v>754976</v> </b> <b> <a>4</a> <b>11</b> - <v>240390</v> + <v>228408</v> </b> <b> <a>11</a> <b>2058</b> - <v>24985</v> + <v>21197</v> </b> </bs> </hist> @@ -9712,63 +9633,27 @@ <b> <a>1</a> <b>2</b> - <v>1758472</v> + <v>1667033</v> </b> <b> <a>2</a> <b>3</b> - <v>308336</v> + <v>276121</v> </b> <b> <a>3</a> <b>4</b> - <v>770593</v> + <v>754976</v> </b> <b> <a>4</a> <b>11</b> - <v>240390</v> + <v>228408</v> </b> <b> <a>11</a> <b>2058</b> - <v>24985</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1758472</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>308336</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>770593</v> - </b> - <b> - <a>4</a> - <b>11</b> - <v>240390</v> - </b> - <b> - <a>11</a> - <b>2058</b> - <v>24985</v> + <v>21197</v> </b> </bs> </hist> @@ -9784,12 +9669,12 @@ <b> <a>1</a> <b>2</b> - <v>805</v> + <v>739</v> </b> <b> <a>2</a> <b>3</b> - <v>251</v> + <v>317</v> </b> <b> <a>3</a> @@ -9798,23 +9683,28 @@ </b> <b> <a>4</a> - <b>9</b> - <v>188</v> + <b>8</b> + <v>126</v> </b> <b> - <a>9</a> - <b>24</b> - <v>161</v> + <a>8</a> + <b>15</b> + <v>162</v> </b> <b> - <a>24</a> - <b>119</b> + <a>15</a> + <b>47</b> + <v>158</v> + </b> + <b> + <a>48</a> + <b>11121</b> <v>155</v> </b> <b> - <a>120</a> - <b>3102777</b> - <v>109</v> + <a>16033</a> + <b>2947736</b> + <v>12</v> </b> </bs> </hist> @@ -9830,12 +9720,12 @@ <b> <a>1</a> <b>2</b> - <v>805</v> + <v>739</v> </b> <b> <a>2</a> <b>3</b> - <v>251</v> + <v>317</v> </b> <b> <a>3</a> @@ -9844,142 +9734,28 @@ </b> <b> <a>4</a> - <b>9</b> - <v>188</v> + <b>8</b> + <v>126</v> </b> <b> - <a>9</a> - <b>24</b> - <v>161</v> + <a>8</a> + <b>15</b> + <v>162</v> </b> <b> - <a>24</a> - <b>119</b> + <a>15</a> + <b>47</b> + <v>158</v> + </b> + <b> + <a>48</a> + <b>11121</b> <v>155</v> </b> <b> - <a>120</a> - <b>3102777</b> - <v>109</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>parent_index</src> - <trg>loc</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>805</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>251</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>388</v> - </b> - <b> - <a>4</a> - <b>9</b> - <v>188</v> - </b> - <b> - <a>9</a> - <b>24</b> - <v>161</v> - </b> - <b> - <a>24</a> - <b>119</b> - <v>155</v> - </b> - <b> - <a>120</a> - <b>2116191</b> - <v>109</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>node</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>3411160</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>1025095</v> - </b> - <b> - <a>3</a> - <b>6</b> - <v>356559</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>3411160</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>1025095</v> - </b> - <b> - <a>3</a> - <b>6</b> - <v>356559</v> - </b> - </bs> - </hist> - </val> - </dep> - <dep> - <src>loc</src> - <trg>parent_index</trg> - <val> - <hist> - <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>4028466</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>764348</v> + <a>16033</a> + <b>2947736</b> + <v>12</v> </b> </bs> </hist> @@ -9989,15 +9765,15 @@ </relation> <relation> <name>ql_body_def</name> - <cardinality>70726</cardinality> + <cardinality>65826</cardinality> <columnsizes> <e> <k>id</k> - <v>70726</v> + <v>65826</v> </e> <e> <k>child</k> - <v>70726</v> + <v>65826</v> </e> </columnsizes> <dependencies> @@ -10011,7 +9787,7 @@ <b> <a>1</a> <b>2</b> - <v>70726</v> + <v>65826</v> </b> </bs> </hist> @@ -10027,7 +9803,7 @@ <b> <a>1</a> <b>2</b> - <v>70726</v> + <v>65826</v> </b> </bs> </hist> @@ -10037,15 +9813,15 @@ </relation> <relation> <name>ql_bool_def</name> - <cardinality>5039</cardinality> + <cardinality>4274</cardinality> <columnsizes> <e> <k>id</k> - <v>5039</v> + <v>4274</v> </e> <e> <k>child</k> - <v>5039</v> + <v>4274</v> </e> </columnsizes> <dependencies> @@ -10059,7 +9835,7 @@ <b> <a>1</a> <b>2</b> - <v>5039</v> + <v>4274</v> </b> </bs> </hist> @@ -10075,7 +9851,7 @@ <b> <a>1</a> <b>2</b> - <v>5039</v> + <v>4274</v> </b> </bs> </hist> @@ -10085,11 +9861,11 @@ </relation> <relation> <name>ql_call_body_child</name> - <cardinality>122556</cardinality> + <cardinality>99620</cardinality> <columnsizes> <e> <k>ql_call_body</k> - <v>57429</v> + <v>49469</v> </e> <e> <k>index</k> @@ -10097,7 +9873,7 @@ </e> <e> <k>child</k> - <v>122556</v> + <v>99620</v> </e> </columnsizes> <dependencies> @@ -10111,27 +9887,27 @@ <b> <a>1</a> <b>2</b> - <v>25731</v> + <v>23173</v> </b> <b> <a>2</a> <b>3</b> - <v>15265</v> + <v>13151</v> </b> <b> <a>3</a> <b>4</b> - <v>8568</v> + <v>7473</v> </b> <b> <a>4</a> - <b>5</b> - <v>3857</v> + <b>6</b> + <v>4432</v> </b> <b> - <a>5</a> + <a>6</a> <b>16</b> - <v>4008</v> + <v>1240</v> </b> </bs> </hist> @@ -10147,27 +9923,27 @@ <b> <a>1</a> <b>2</b> - <v>25731</v> + <v>23173</v> </b> <b> <a>2</a> <b>3</b> - <v>15265</v> + <v>13151</v> </b> <b> <a>3</a> <b>4</b> - <v>8568</v> + <v>7473</v> </b> <b> <a>4</a> - <b>5</b> - <v>3857</v> + <b>6</b> + <v>4432</v> </b> <b> - <a>5</a> + <a>6</a> <b>16</b> - <v>4008</v> + <v>1240</v> </b> </bs> </hist> @@ -10181,73 +9957,78 @@ <budget>12</budget> <bs> <b> - <a>16</a> - <b>17</b> - <v>2</v> - </b> - <b> - <a>18</a> - <b>19</b> + <a>2</a> + <b>3</b> <v>1</v> </b> <b> - <a>42</a> - <b>43</b> + <a>4</a> + <b>5</b> <v>1</v> </b> <b> - <a>91</a> - <b>92</b> + <a>10</a> + <b>11</b> <v>1</v> </b> <b> - <a>184</a> - <b>185</b> + <a>17</a> + <b>18</b> <v>1</v> </b> <b> - <a>450</a> - <b>451</b> + <a>46</a> + <b>47</b> <v>1</v> </b> <b> - <a>760</a> - <b>761</b> + <a>103</a> + <b>104</b> <v>1</v> </b> <b> - <a>1254</a> - <b>1255</b> + <a>237</a> + <b>238</b> <v>1</v> </b> <b> - <a>2292</a> - <b>2293</b> + <a>342</a> + <b>343</b> <v>1</v> </b> <b> - <a>4008</a> - <b>4009</b> + <a>559</a> + <b>560</b> <v>1</v> </b> <b> - <a>7865</a> - <b>7866</b> + <a>1240</a> + <b>1241</b> <v>1</v> </b> <b> - <a>16433</a> - <b>16434</b> + <a>2478</a> + <b>2479</b> <v>1</v> </b> <b> - <a>31698</a> - <b>31699</b> + <a>5672</a> + <b>5673</b> <v>1</v> </b> <b> - <a>57429</a> - <b>57430</b> + <a>13145</a> + <b>13146</b> + <v>1</v> + </b> + <b> + <a>26296</a> + <b>26297</b> + <v>1</v> + </b> + <b> + <a>49469</a> + <b>49470</b> <v>1</v> </b> </bs> @@ -10262,73 +10043,78 @@ <budget>12</budget> <bs> <b> - <a>16</a> - <b>17</b> - <v>2</v> - </b> - <b> - <a>18</a> - <b>19</b> + <a>2</a> + <b>3</b> <v>1</v> </b> <b> - <a>42</a> - <b>43</b> + <a>4</a> + <b>5</b> <v>1</v> </b> <b> - <a>91</a> - <b>92</b> + <a>10</a> + <b>11</b> <v>1</v> </b> <b> - <a>184</a> - <b>185</b> + <a>17</a> + <b>18</b> <v>1</v> </b> <b> - <a>450</a> - <b>451</b> + <a>46</a> + <b>47</b> <v>1</v> </b> <b> - <a>760</a> - <b>761</b> + <a>103</a> + <b>104</b> <v>1</v> </b> <b> - <a>1254</a> - <b>1255</b> + <a>237</a> + <b>238</b> <v>1</v> </b> <b> - <a>2292</a> - <b>2293</b> + <a>342</a> + <b>343</b> <v>1</v> </b> <b> - <a>4008</a> - <b>4009</b> + <a>559</a> + <b>560</b> <v>1</v> </b> <b> - <a>7865</a> - <b>7866</b> + <a>1240</a> + <b>1241</b> <v>1</v> </b> <b> - <a>16433</a> - <b>16434</b> + <a>2478</a> + <b>2479</b> <v>1</v> </b> <b> - <a>31698</a> - <b>31699</b> + <a>5672</a> + <b>5673</b> <v>1</v> </b> <b> - <a>57429</a> - <b>57430</b> + <a>13145</a> + <b>13146</b> + <v>1</v> + </b> + <b> + <a>26296</a> + <b>26297</b> + <v>1</v> + </b> + <b> + <a>49469</a> + <b>49470</b> <v>1</v> </b> </bs> @@ -10345,7 +10131,7 @@ <b> <a>1</a> <b>2</b> - <v>122556</v> + <v>99620</v> </b> </bs> </hist> @@ -10361,7 +10147,7 @@ <b> <a>1</a> <b>2</b> - <v>122556</v> + <v>99620</v> </b> </bs> </hist> @@ -10371,22 +10157,22 @@ </relation> <relation> <name>ql_call_body_def</name> - <cardinality>66692</cardinality> + <cardinality>57368</cardinality> <columnsizes> <e> <k>id</k> - <v>66692</v> + <v>57368</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_call_or_unqual_agg_expr_child</name> - <cardinality>133679</cardinality> + <cardinality>115036</cardinality> <columnsizes> <e> <k>ql_call_or_unqual_agg_expr</k> - <v>66692</v> + <v>57368</v> </e> <e> <k>index</k> @@ -10394,7 +10180,7 @@ </e> <e> <k>child</k> - <v>133679</v> + <v>115036</v> </e> </columnsizes> <dependencies> @@ -10408,12 +10194,12 @@ <b> <a>2</a> <b>3</b> - <v>66397</v> + <v>57068</v> </b> <b> <a>3</a> <b>4</b> - <v>295</v> + <v>300</v> </b> </bs> </hist> @@ -10429,12 +10215,12 @@ <b> <a>2</a> <b>3</b> - <v>66397</v> + <v>57068</v> </b> <b> <a>3</a> <b>4</b> - <v>295</v> + <v>300</v> </b> </bs> </hist> @@ -10448,13 +10234,13 @@ <budget>12</budget> <bs> <b> - <a>295</a> - <b>296</b> + <a>300</a> + <b>301</b> <v>1</v> </b> <b> - <a>66692</a> - <b>66693</b> + <a>57368</a> + <b>57369</b> <v>2</v> </b> </bs> @@ -10469,13 +10255,13 @@ <budget>12</budget> <bs> <b> - <a>295</a> - <b>296</b> + <a>300</a> + <b>301</b> <v>1</v> </b> <b> - <a>66692</a> - <b>66693</b> + <a>57368</a> + <b>57369</b> <v>2</v> </b> </bs> @@ -10492,7 +10278,7 @@ <b> <a>1</a> <b>2</b> - <v>133679</v> + <v>115036</v> </b> </bs> </hist> @@ -10508,7 +10294,7 @@ <b> <a>1</a> <b>2</b> - <v>133679</v> + <v>115036</v> </b> </bs> </hist> @@ -10518,30 +10304,30 @@ </relation> <relation> <name>ql_call_or_unqual_agg_expr_def</name> - <cardinality>66692</cardinality> + <cardinality>57368</cardinality> <columnsizes> <e> <k>id</k> - <v>66692</v> + <v>57368</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_charpred_def</name> - <cardinality>12588</cardinality> + <cardinality>12088</cardinality> <columnsizes> <e> <k>id</k> - <v>12588</v> + <v>12088</v> </e> <e> <k>body</k> - <v>12588</v> + <v>12088</v> </e> <e> <k>child</k> - <v>12588</v> + <v>12088</v> </e> </columnsizes> <dependencies> @@ -10555,7 +10341,7 @@ <b> <a>1</a> <b>2</b> - <v>12588</v> + <v>12088</v> </b> </bs> </hist> @@ -10571,7 +10357,7 @@ <b> <a>1</a> <b>2</b> - <v>12588</v> + <v>12088</v> </b> </bs> </hist> @@ -10587,7 +10373,7 @@ <b> <a>1</a> <b>2</b> - <v>12588</v> + <v>12088</v> </b> </bs> </hist> @@ -10603,7 +10389,7 @@ <b> <a>1</a> <b>2</b> - <v>12588</v> + <v>12088</v> </b> </bs> </hist> @@ -10619,7 +10405,7 @@ <b> <a>1</a> <b>2</b> - <v>12588</v> + <v>12088</v> </b> </bs> </hist> @@ -10635,7 +10421,7 @@ <b> <a>1</a> <b>2</b> - <v>12588</v> + <v>12088</v> </b> </bs> </hist> @@ -10645,19 +10431,19 @@ </relation> <relation> <name>ql_class_member_child</name> - <cardinality>121852</cardinality> + <cardinality>112375</cardinality> <columnsizes> <e> <k>ql_class_member</k> - <v>84646</v> + <v>79133</v> </e> <e> <k>index</k> - <v>4</v> + <v>5</v> </e> <e> <k>child</k> - <v>121852</v> + <v>112375</v> </e> </columnsizes> <dependencies> @@ -10671,17 +10457,17 @@ <b> <a>1</a> <b>2</b> - <v>51616</v> + <v>49462</v> </b> <b> <a>2</a> <b>3</b> - <v>28924</v> + <v>26160</v> </b> <b> <a>3</a> - <b>5</b> - <v>4106</v> + <b>6</b> + <v>3511</v> </b> </bs> </hist> @@ -10697,17 +10483,17 @@ <b> <a>1</a> <b>2</b> - <v>51616</v> + <v>49462</v> </b> <b> <a>2</a> <b>3</b> - <v>28924</v> + <v>26160</v> </b> <b> <a>3</a> - <b>5</b> - <v>4106</v> + <b>6</b> + <v>3511</v> </b> </bs> </hist> @@ -10721,23 +10507,28 @@ <budget>12</budget> <bs> <b> - <a>70</a> - <b>71</b> + <a>8</a> + <b>9</b> <v>1</v> </b> <b> - <a>4106</a> - <b>4107</b> + <a>52</a> + <b>53</b> <v>1</v> </b> <b> - <a>33030</a> - <b>33031</b> + <a>3511</a> + <b>3512</b> <v>1</v> </b> <b> - <a>84646</a> - <b>84647</b> + <a>29671</a> + <b>29672</b> + <v>1</v> + </b> + <b> + <a>79133</a> + <b>79134</b> <v>1</v> </b> </bs> @@ -10752,23 +10543,28 @@ <budget>12</budget> <bs> <b> - <a>70</a> - <b>71</b> + <a>8</a> + <b>9</b> <v>1</v> </b> <b> - <a>4106</a> - <b>4107</b> + <a>52</a> + <b>53</b> <v>1</v> </b> <b> - <a>33030</a> - <b>33031</b> + <a>3511</a> + <b>3512</b> <v>1</v> </b> <b> - <a>84646</a> - <b>84647</b> + <a>29671</a> + <b>29672</b> + <v>1</v> + </b> + <b> + <a>79133</a> + <b>79134</b> <v>1</v> </b> </bs> @@ -10785,7 +10581,7 @@ <b> <a>1</a> <b>2</b> - <v>121852</v> + <v>112375</v> </b> </bs> </hist> @@ -10801,7 +10597,7 @@ <b> <a>1</a> <b>2</b> - <v>121852</v> + <v>112375</v> </b> </bs> </hist> @@ -10811,22 +10607,22 @@ </relation> <relation> <name>ql_class_member_def</name> - <cardinality>84646</cardinality> + <cardinality>79133</cardinality> <columnsizes> <e> <k>id</k> - <v>84646</v> + <v>79133</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_classless_predicate_child</name> - <cardinality>72035</cardinality> + <cardinality>63161</cardinality> <columnsizes> <e> <k>ql_classless_predicate</k> - <v>24640</v> + <v>23253</v> </e> <e> <k>index</k> @@ -10834,7 +10630,7 @@ </e> <e> <k>child</k> - <v>72035</v> + <v>63161</v> </e> </columnsizes> <dependencies> @@ -10848,32 +10644,32 @@ <b> <a>1</a> <b>2</b> - <v>2612</v> + <v>2872</v> </b> <b> <a>2</a> <b>3</b> - <v>9441</v> + <v>9678</v> </b> <b> <a>3</a> <b>4</b> - <v>6254</v> + <v>5651</v> </b> <b> <a>4</a> <b>5</b> - <v>3291</v> + <v>2828</v> </b> <b> <a>5</a> <b>7</b> - <v>2183</v> + <v>1868</v> </b> <b> <a>7</a> <b>17</b> - <v>859</v> + <v>356</v> </b> </bs> </hist> @@ -10889,32 +10685,32 @@ <b> <a>1</a> <b>2</b> - <v>2612</v> + <v>2872</v> </b> <b> <a>2</a> <b>3</b> - <v>9441</v> + <v>9678</v> </b> <b> <a>3</a> <b>4</b> - <v>6254</v> + <v>5651</v> </b> <b> <a>4</a> <b>5</b> - <v>3291</v> + <v>2828</v> </b> <b> <a>5</a> <b>7</b> - <v>2183</v> + <v>1868</v> </b> <b> <a>7</a> <b>17</b> - <v>859</v> + <v>356</v> </b> </bs> </hist> @@ -10928,9 +10724,19 @@ <budget>12</budget> <bs> <b> - <a>8</a> - <b>9</b> - <v>2</v> + <a>1</a> + <b>2</b> + <v>1</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>1</v> </b> <b> <a>9</a> @@ -10938,68 +10744,63 @@ <v>1</v> </b> <b> - <a>25</a> - <b>26</b> + <a>22</a> + <b>23</b> <v>1</v> </b> <b> - <a>43</a> - <b>44</b> + <a>37</a> + <b>38</b> <v>1</v> </b> <b> - <a>83</a> - <b>84</b> + <a>63</a> + <b>64</b> <v>1</v> </b> <b> - <a>164</a> - <b>165</b> + <a>103</a> + <b>104</b> <v>1</v> </b> <b> - <a>269</a> - <b>270</b> + <a>177</a> + <b>178</b> <v>1</v> </b> <b> - <a>491</a> - <b>492</b> + <a>356</a> + <b>357</b> <v>1</v> </b> <b> - <a>859</a> - <b>860</b> + <a>773</a> + <b>774</b> <v>1</v> </b> <b> - <a>1446</a> - <b>1447</b> + <a>2224</a> + <b>2225</b> <v>1</v> </b> <b> - <a>3042</a> - <b>3043</b> + <a>5052</a> + <b>5053</b> <v>1</v> </b> <b> - <a>6333</a> - <b>6334</b> + <a>10703</a> + <b>10704</b> <v>1</v> </b> <b> - <a>12587</a> - <b>12588</b> + <a>20381</a> + <b>20382</b> <v>1</v> </b> <b> - <a>22028</a> - <b>22029</b> - <v>1</v> - </b> - <b> - <a>24640</a> - <b>24641</b> + <a>23253</a> + <b>23254</b> <v>1</v> </b> </bs> @@ -11014,9 +10815,19 @@ <budget>12</budget> <bs> <b> - <a>8</a> - <b>9</b> - <v>2</v> + <a>1</a> + <b>2</b> + <v>1</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + <b> + <a>5</a> + <b>6</b> + <v>1</v> </b> <b> <a>9</a> @@ -11024,68 +10835,63 @@ <v>1</v> </b> <b> - <a>25</a> - <b>26</b> + <a>22</a> + <b>23</b> <v>1</v> </b> <b> - <a>43</a> - <b>44</b> + <a>37</a> + <b>38</b> <v>1</v> </b> <b> - <a>83</a> - <b>84</b> + <a>63</a> + <b>64</b> <v>1</v> </b> <b> - <a>164</a> - <b>165</b> + <a>103</a> + <b>104</b> <v>1</v> </b> <b> - <a>269</a> - <b>270</b> + <a>177</a> + <b>178</b> <v>1</v> </b> <b> - <a>491</a> - <b>492</b> + <a>356</a> + <b>357</b> <v>1</v> </b> <b> - <a>859</a> - <b>860</b> + <a>773</a> + <b>774</b> <v>1</v> </b> <b> - <a>1446</a> - <b>1447</b> + <a>2224</a> + <b>2225</b> <v>1</v> </b> <b> - <a>3042</a> - <b>3043</b> + <a>5052</a> + <b>5053</b> <v>1</v> </b> <b> - <a>6333</a> - <b>6334</b> + <a>10703</a> + <b>10704</b> <v>1</v> </b> <b> - <a>12587</a> - <b>12588</b> + <a>20381</a> + <b>20382</b> <v>1</v> </b> <b> - <a>22028</a> - <b>22029</b> - <v>1</v> - </b> - <b> - <a>24640</a> - <b>24641</b> + <a>23253</a> + <b>23254</b> <v>1</v> </b> </bs> @@ -11102,7 +10908,7 @@ <b> <a>1</a> <b>2</b> - <v>72035</v> + <v>63161</v> </b> </bs> </hist> @@ -11118,7 +10924,7 @@ <b> <a>1</a> <b>2</b> - <v>72035</v> + <v>63161</v> </b> </bs> </hist> @@ -11128,19 +10934,19 @@ </relation> <relation> <name>ql_classless_predicate_def</name> - <cardinality>24640</cardinality> + <cardinality>23253</cardinality> <columnsizes> <e> <k>id</k> - <v>24640</v> + <v>23253</v> </e> <e> <k>name</k> - <v>24640</v> + <v>23253</v> </e> <e> <k>return_type</k> - <v>24640</v> + <v>23253</v> </e> </columnsizes> <dependencies> @@ -11154,7 +10960,7 @@ <b> <a>1</a> <b>2</b> - <v>24640</v> + <v>23253</v> </b> </bs> </hist> @@ -11170,7 +10976,7 @@ <b> <a>1</a> <b>2</b> - <v>24640</v> + <v>23253</v> </b> </bs> </hist> @@ -11186,7 +10992,7 @@ <b> <a>1</a> <b>2</b> - <v>24640</v> + <v>23253</v> </b> </bs> </hist> @@ -11202,7 +11008,7 @@ <b> <a>1</a> <b>2</b> - <v>24640</v> + <v>23253</v> </b> </bs> </hist> @@ -11218,7 +11024,7 @@ <b> <a>1</a> <b>2</b> - <v>24640</v> + <v>23253</v> </b> </bs> </hist> @@ -11234,7 +11040,7 @@ <b> <a>1</a> <b>2</b> - <v>24640</v> + <v>23253</v> </b> </bs> </hist> @@ -11244,23 +11050,23 @@ </relation> <relation> <name>ql_comp_term_def</name> - <cardinality>138784</cardinality> + <cardinality>140334</cardinality> <columnsizes> <e> <k>id</k> - <v>138784</v> + <v>140334</v> </e> <e> <k>left</k> - <v>138784</v> + <v>140334</v> </e> <e> <k>right</k> - <v>138784</v> + <v>140334</v> </e> <e> <k>child</k> - <v>138784</v> + <v>140334</v> </e> </columnsizes> <dependencies> @@ -11274,7 +11080,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11290,7 +11096,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11306,7 +11112,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11322,7 +11128,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11338,7 +11144,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11354,7 +11160,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11370,7 +11176,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11386,7 +11192,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11402,7 +11208,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11418,7 +11224,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11434,7 +11240,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11450,7 +11256,7 @@ <b> <a>1</a> <b>2</b> - <v>138784</v> + <v>140334</v> </b> </bs> </hist> @@ -11460,19 +11266,19 @@ </relation> <relation> <name>ql_conjunction_def</name> - <cardinality>80925</cardinality> + <cardinality>76308</cardinality> <columnsizes> <e> <k>id</k> - <v>80925</v> + <v>76308</v> </e> <e> <k>left</k> - <v>80925</v> + <v>76308</v> </e> <e> <k>right</k> - <v>80925</v> + <v>76308</v> </e> </columnsizes> <dependencies> @@ -11486,7 +11292,7 @@ <b> <a>1</a> <b>2</b> - <v>80925</v> + <v>76308</v> </b> </bs> </hist> @@ -11502,7 +11308,7 @@ <b> <a>1</a> <b>2</b> - <v>80925</v> + <v>76308</v> </b> </bs> </hist> @@ -11518,7 +11324,7 @@ <b> <a>1</a> <b>2</b> - <v>80925</v> + <v>76308</v> </b> </bs> </hist> @@ -11534,7 +11340,7 @@ <b> <a>1</a> <b>2</b> - <v>80925</v> + <v>76308</v> </b> </bs> </hist> @@ -11550,7 +11356,7 @@ <b> <a>1</a> <b>2</b> - <v>80925</v> + <v>76308</v> </b> </bs> </hist> @@ -11566,7 +11372,7 @@ <b> <a>1</a> <b>2</b> - <v>80925</v> + <v>76308</v> </b> </bs> </hist> @@ -11576,19 +11382,19 @@ </relation> <relation> <name>ql_dataclass_child</name> - <cardinality>86140</cardinality> + <cardinality>80203</cardinality> <columnsizes> <e> <k>ql_dataclass</k> - <v>21914</v> + <v>20603</v> </e> <e> <k>index</k> - <v>148</v> + <v>160</v> </e> <e> <k>child</k> - <v>86140</v> + <v>80203</v> </e> </columnsizes> <dependencies> @@ -11602,42 +11408,42 @@ <b> <a>1</a> <b>2</b> - <v>8719</v> + <v>8138</v> </b> <b> <a>2</a> <b>3</b> - <v>3611</v> + <v>3631</v> </b> <b> <a>3</a> <b>4</b> - <v>2551</v> + <v>2206</v> </b> <b> <a>4</a> <b>5</b> - <v>1653</v> + <v>1665</v> </b> <b> <a>5</a> <b>6</b> - <v>1289</v> + <v>1187</v> </b> <b> <a>6</a> <b>9</b> - <v>1952</v> + <v>1851</v> </b> <b> <a>9</a> - <b>20</b> - <v>1644</v> + <b>22</b> + <v>1562</v> </b> <b> - <a>20</a> - <b>149</b> - <v>495</v> + <a>22</a> + <b>161</b> + <v>363</v> </b> </bs> </hist> @@ -11653,42 +11459,42 @@ <b> <a>1</a> <b>2</b> - <v>8719</v> + <v>8138</v> </b> <b> <a>2</a> <b>3</b> - <v>3611</v> + <v>3631</v> </b> <b> <a>3</a> <b>4</b> - <v>2551</v> + <v>2206</v> </b> <b> <a>4</a> <b>5</b> - <v>1653</v> + <v>1665</v> </b> <b> <a>5</a> <b>6</b> - <v>1289</v> + <v>1187</v> </b> <b> <a>6</a> <b>9</b> - <v>1952</v> + <v>1851</v> </b> <b> <a>9</a> - <b>20</b> - <v>1644</v> + <b>22</b> + <v>1562</v> </b> <b> - <a>20</a> - <b>149</b> - <v>495</v> + <a>22</a> + <b>161</b> + <v>363</v> </b> </bs> </hist> @@ -11703,68 +11509,73 @@ <bs> <b> <a>1</a> - <b>4</b> - <v>8</v> + <b>3</b> + <v>12</v> </b> <b> <a>4</a> <b>5</b> - <v>14</v> - </b> - <b> - <a>5</a> - <b>7</b> <v>8</v> </b> <b> - <a>7</a> + <a>5</a> + <b>6</b> + <v>17</v> + </b> + <b> + <a>6</a> <b>8</b> - <v>21</v> + <v>2</v> </b> <b> <a>8</a> - <b>12</b> - <v>7</v> + <b>9</b> + <v>20</v> </b> <b> - <a>12</a> - <b>18</b> + <a>9</a> + <b>13</b> <v>12</v> </b> <b> - <a>19</a> - <b>25</b> + <a>13</a> + <b>20</b> <v>12</v> </b> <b> - <a>25</a> + <a>20</a> + <b>27</b> + <v>12</v> + </b> + <b> + <a>28</a> <b>36</b> <v>12</v> </b> <b> - <a>37</a> - <b>96</b> + <a>38</a> + <b>98</b> <v>12</v> </b> <b> - <a>101</a> - <b>188</b> + <a>102</a> + <b>193</b> <v>12</v> </b> <b> - <a>198</a> - <b>538</b> + <a>203</a> + <b>541</b> <v>12</v> </b> <b> - <a>592</a> - <b>3240</b> + <a>596</a> + <b>3777</b> <v>12</v> </b> <b> - <a>4091</a> - <b>21915</b> - <v>6</v> + <a>4963</a> + <b>20604</b> + <v>5</v> </b> </bs> </hist> @@ -11779,68 +11590,73 @@ <bs> <b> <a>1</a> - <b>4</b> - <v>8</v> + <b>3</b> + <v>12</v> </b> <b> <a>4</a> <b>5</b> - <v>14</v> - </b> - <b> - <a>5</a> - <b>7</b> <v>8</v> </b> <b> - <a>7</a> + <a>5</a> + <b>6</b> + <v>17</v> + </b> + <b> + <a>6</a> <b>8</b> - <v>21</v> + <v>2</v> </b> <b> <a>8</a> - <b>12</b> - <v>7</v> + <b>9</b> + <v>20</v> </b> <b> - <a>12</a> - <b>18</b> + <a>9</a> + <b>13</b> <v>12</v> </b> <b> - <a>19</a> - <b>25</b> + <a>13</a> + <b>20</b> <v>12</v> </b> <b> - <a>25</a> + <a>20</a> + <b>27</b> + <v>12</v> + </b> + <b> + <a>28</a> <b>36</b> <v>12</v> </b> <b> - <a>37</a> - <b>96</b> + <a>38</a> + <b>98</b> <v>12</v> </b> <b> - <a>101</a> - <b>188</b> + <a>102</a> + <b>193</b> <v>12</v> </b> <b> - <a>198</a> - <b>538</b> + <a>203</a> + <b>541</b> <v>12</v> </b> <b> - <a>592</a> - <b>3240</b> + <a>596</a> + <b>3777</b> <v>12</v> </b> <b> - <a>4091</a> - <b>21915</b> - <v>6</v> + <a>4963</a> + <b>20604</b> + <v>5</v> </b> </bs> </hist> @@ -11856,7 +11672,7 @@ <b> <a>1</a> <b>2</b> - <v>86140</v> + <v>80203</v> </b> </bs> </hist> @@ -11872,7 +11688,7 @@ <b> <a>1</a> <b>2</b> - <v>86140</v> + <v>80203</v> </b> </bs> </hist> @@ -11882,15 +11698,15 @@ </relation> <relation> <name>ql_dataclass_def</name> - <cardinality>23834</cardinality> + <cardinality>22563</cardinality> <columnsizes> <e> <k>id</k> - <v>23834</v> + <v>22563</v> </e> <e> <k>name</k> - <v>23834</v> + <v>22563</v> </e> </columnsizes> <dependencies> @@ -11904,7 +11720,7 @@ <b> <a>1</a> <b>2</b> - <v>23834</v> + <v>22563</v> </b> </bs> </hist> @@ -11920,7 +11736,7 @@ <b> <a>1</a> <b>2</b> - <v>23834</v> + <v>22563</v> </b> </bs> </hist> @@ -11930,11 +11746,11 @@ </relation> <relation> <name>ql_dataclass_extends</name> - <cardinality>59928</cardinality> + <cardinality>57708</cardinality> <columnsizes> <e> <k>ql_dataclass</k> - <v>22062</v> + <v>21309</v> </e> <e> <k>index</k> @@ -11942,7 +11758,7 @@ </e> <e> <k>extends</k> - <v>59928</v> + <v>57708</v> </e> </columnsizes> <dependencies> @@ -11956,17 +11772,17 @@ <b> <a>2</a> <b>3</b> - <v>14722</v> + <v>14280</v> </b> <b> <a>4</a> <b>5</b> - <v>6891</v> + <v>6614</v> </b> <b> <a>6</a> <b>17</b> - <v>449</v> + <v>415</v> </b> </bs> </hist> @@ -11982,17 +11798,17 @@ <b> <a>2</a> <b>3</b> - <v>14722</v> + <v>14280</v> </b> <b> <a>4</a> <b>5</b> - <v>6891</v> + <v>6614</v> </b> <b> <a>6</a> <b>17</b> - <v>449</v> + <v>415</v> </b> </bs> </hist> @@ -12011,38 +11827,38 @@ <v>2</v> </b> <b> - <a>4</a> - <b>5</b> + <a>3</a> + <b>4</b> <v>2</v> </b> <b> - <a>9</a> - <b>10</b> + <a>6</a> + <b>7</b> <v>2</v> </b> <b> - <a>19</a> - <b>20</b> + <a>15</a> + <b>16</b> <v>2</v> </b> <b> - <a>80</a> - <b>81</b> + <a>76</a> + <b>77</b> <v>2</v> </b> <b> - <a>449</a> - <b>450</b> + <a>415</a> + <b>416</b> <v>2</v> </b> <b> - <a>7340</a> - <b>7341</b> + <a>7029</a> + <b>7030</b> <v>2</v> </b> <b> - <a>22062</a> - <b>22063</b> + <a>21309</a> + <b>21310</b> <v>2</v> </b> </bs> @@ -12062,38 +11878,38 @@ <v>2</v> </b> <b> - <a>4</a> - <b>5</b> + <a>3</a> + <b>4</b> <v>2</v> </b> <b> - <a>9</a> - <b>10</b> + <a>6</a> + <b>7</b> <v>2</v> </b> <b> - <a>19</a> - <b>20</b> + <a>15</a> + <b>16</b> <v>2</v> </b> <b> - <a>80</a> - <b>81</b> + <a>76</a> + <b>77</b> <v>2</v> </b> <b> - <a>449</a> - <b>450</b> + <a>415</a> + <b>416</b> <v>2</v> </b> <b> - <a>7340</a> - <b>7341</b> + <a>7029</a> + <b>7030</b> <v>2</v> </b> <b> - <a>22062</a> - <b>22063</b> + <a>21309</a> + <b>21310</b> <v>2</v> </b> </bs> @@ -12110,7 +11926,7 @@ <b> <a>1</a> <b>2</b> - <v>59928</v> + <v>57708</v> </b> </bs> </hist> @@ -12126,7 +11942,7 @@ <b> <a>1</a> <b>2</b> - <v>59928</v> + <v>57708</v> </b> </bs> </hist> @@ -12136,11 +11952,11 @@ </relation> <relation> <name>ql_dataclass_instanceof</name> - <cardinality>1584</cardinality> + <cardinality>1896</cardinality> <columnsizes> <e> <k>ql_dataclass</k> - <v>791</v> + <v>942</v> </e> <e> <k>index</k> @@ -12148,7 +11964,7 @@ </e> <e> <k>instanceof</k> - <v>1584</v> + <v>1896</v> </e> </columnsizes> <dependencies> @@ -12162,12 +11978,12 @@ <b> <a>2</a> <b>3</b> - <v>790</v> + <v>936</v> </b> <b> <a>4</a> <b>5</b> - <v>1</v> + <v>6</v> </b> </bs> </hist> @@ -12183,12 +11999,12 @@ <b> <a>2</a> <b>3</b> - <v>790</v> + <v>936</v> </b> <b> <a>4</a> <b>5</b> - <v>1</v> + <v>6</v> </b> </bs> </hist> @@ -12202,13 +12018,13 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>6</a> + <b>7</b> <v>2</v> </b> <b> - <a>791</a> - <b>792</b> + <a>942</a> + <b>943</b> <v>2</v> </b> </bs> @@ -12223,13 +12039,13 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>6</a> + <b>7</b> <v>2</v> </b> <b> - <a>791</a> - <b>792</b> + <a>942</a> + <b>943</b> <v>2</v> </b> </bs> @@ -12246,7 +12062,7 @@ <b> <a>1</a> <b>2</b> - <v>1584</v> + <v>1896</v> </b> </bs> </hist> @@ -12262,7 +12078,7 @@ <b> <a>1</a> <b>2</b> - <v>1584</v> + <v>1896</v> </b> </bs> </hist> @@ -12272,11 +12088,11 @@ </relation> <relation> <name>ql_datatype_branch_child</name> - <cardinality>5604</cardinality> + <cardinality>4787</cardinality> <columnsizes> <e> <k>ql_datatype_branch</k> - <v>2323</v> + <v>1984</v> </e> <e> <k>index</k> @@ -12284,7 +12100,7 @@ </e> <e> <k>child</k> - <v>5604</v> + <v>4787</v> </e> </columnsizes> <dependencies> @@ -12298,27 +12114,27 @@ <b> <a>1</a> <b>2</b> - <v>629</v> + <v>517</v> </b> <b> <a>2</a> <b>3</b> - <v>706</v> + <v>600</v> </b> <b> <a>3</a> <b>4</b> - <v>664</v> + <v>563</v> </b> <b> <a>4</a> <b>5</b> - <v>161</v> + <v>180</v> </b> <b> <a>5</a> <b>11</b> - <v>163</v> + <v>124</v> </b> </bs> </hist> @@ -12334,27 +12150,27 @@ <b> <a>1</a> <b>2</b> - <v>629</v> + <v>517</v> </b> <b> <a>2</a> <b>3</b> - <v>706</v> + <v>600</v> </b> <b> <a>3</a> <b>4</b> - <v>664</v> + <v>563</v> </b> <b> <a>4</a> <b>5</b> - <v>161</v> + <v>180</v> </b> <b> <a>5</a> <b>11</b> - <v>163</v> + <v>124</v> </b> </bs> </hist> @@ -12367,49 +12183,44 @@ <hist> <budget>12</budget> <bs> + <b> + <a>2</a> + <b>3</b> + <v>3</v> + </b> <b> <a>8</a> <b>9</b> - <v>2</v> - </b> - <b> - <a>16</a> - <b>17</b> <v>1</v> </b> <b> - <a>30</a> - <b>31</b> + <a>27</a> + <b>28</b> <v>1</v> </b> <b> - <a>50</a> - <b>51</b> + <a>124</a> + <b>125</b> <v>1</v> </b> <b> - <a>163</a> - <b>164</b> + <a>304</a> + <b>305</b> <v>1</v> </b> <b> - <a>324</a> - <b>325</b> + <a>867</a> + <b>868</b> <v>1</v> </b> <b> - <a>988</a> - <b>989</b> + <a>1467</a> + <b>1468</b> <v>1</v> </b> <b> - <a>1694</a> - <b>1695</b> - <v>1</v> - </b> - <b> - <a>2323</a> - <b>2324</b> + <a>1984</a> + <b>1985</b> <v>1</v> </b> </bs> @@ -12423,49 +12234,44 @@ <hist> <budget>12</budget> <bs> + <b> + <a>2</a> + <b>3</b> + <v>3</v> + </b> <b> <a>8</a> <b>9</b> - <v>2</v> - </b> - <b> - <a>16</a> - <b>17</b> <v>1</v> </b> <b> - <a>30</a> - <b>31</b> + <a>27</a> + <b>28</b> <v>1</v> </b> <b> - <a>50</a> - <b>51</b> + <a>124</a> + <b>125</b> <v>1</v> </b> <b> - <a>163</a> - <b>164</b> + <a>304</a> + <b>305</b> <v>1</v> </b> <b> - <a>324</a> - <b>325</b> + <a>867</a> + <b>868</b> <v>1</v> </b> <b> - <a>988</a> - <b>989</b> + <a>1467</a> + <b>1468</b> <v>1</v> </b> <b> - <a>1694</a> - <b>1695</b> - <v>1</v> - </b> - <b> - <a>2323</a> - <b>2324</b> + <a>1984</a> + <b>1985</b> <v>1</v> </b> </bs> @@ -12482,7 +12288,7 @@ <b> <a>1</a> <b>2</b> - <v>5604</v> + <v>4787</v> </b> </bs> </hist> @@ -12498,7 +12304,7 @@ <b> <a>1</a> <b>2</b> - <v>5604</v> + <v>4787</v> </b> </bs> </hist> @@ -12508,15 +12314,15 @@ </relation> <relation> <name>ql_datatype_branch_def</name> - <cardinality>3437</cardinality> + <cardinality>2719</cardinality> <columnsizes> <e> <k>id</k> - <v>3437</v> + <v>2719</v> </e> <e> <k>name</k> - <v>3437</v> + <v>2719</v> </e> </columnsizes> <dependencies> @@ -12530,7 +12336,7 @@ <b> <a>1</a> <b>2</b> - <v>3437</v> + <v>2719</v> </b> </bs> </hist> @@ -12546,7 +12352,7 @@ <b> <a>1</a> <b>2</b> - <v>3437</v> + <v>2719</v> </b> </bs> </hist> @@ -12556,19 +12362,19 @@ </relation> <relation> <name>ql_datatype_branches_child</name> - <cardinality>3437</cardinality> + <cardinality>2719</cardinality> <columnsizes> <e> <k>ql_datatype_branches</k> - <v>809</v> + <v>548</v> </e> <e> <k>index</k> - <v>231</v> + <v>246</v> </e> <e> <k>child</k> - <v>3437</v> + <v>2719</v> </e> </columnsizes> <dependencies> @@ -12582,37 +12388,37 @@ <b> <a>1</a> <b>2</b> - <v>163</v> + <v>132</v> </b> <b> <a>2</a> <b>3</b> - <v>348</v> + <v>182</v> </b> <b> <a>3</a> <b>4</b> - <v>104</v> + <v>81</v> </b> <b> <a>4</a> - <b>5</b> - <v>63</v> + <b>6</b> + <v>49</v> </b> <b> - <a>5</a> + <a>6</a> <b>9</b> - <v>65</v> + <v>43</v> </b> <b> <a>9</a> - <b>61</b> - <v>61</v> + <b>15</b> + <v>42</v> </b> <b> - <a>82</a> - <b>232</b> - <v>5</v> + <a>15</a> + <b>247</b> + <v>19</v> </b> </bs> </hist> @@ -12628,37 +12434,37 @@ <b> <a>1</a> <b>2</b> - <v>163</v> + <v>132</v> </b> <b> <a>2</a> <b>3</b> - <v>348</v> + <v>182</v> </b> <b> <a>3</a> <b>4</b> - <v>104</v> + <v>81</v> </b> <b> <a>4</a> - <b>5</b> - <v>63</v> + <b>6</b> + <v>49</v> </b> <b> - <a>5</a> + <a>6</a> <b>9</b> - <v>65</v> + <v>43</v> </b> <b> <a>9</a> - <b>61</b> - <v>61</v> + <b>15</b> + <v>42</v> </b> <b> - <a>82</a> - <b>232</b> - <v>5</v> + <a>15</a> + <b>247</b> + <v>19</v> </b> </bs> </hist> @@ -12674,42 +12480,37 @@ <b> <a>1</a> <b>2</b> - <v>38</v> + <v>51</v> </b> <b> <a>2</a> <b>3</b> - <v>110</v> + <v>111</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>1</v> </b> <b> <a>4</a> <b>5</b> - <v>1</v> + <v>32</v> </b> <b> <a>5</a> - <b>6</b> - <v>22</v> - </b> - <b> - <a>6</a> - <b>8</b> - <v>21</v> - </b> - <b> - <a>8</a> - <b>14</b> - <v>15</v> - </b> - <b> - <a>14</a> - <b>91</b> + <b>11</b> <v>18</v> </b> <b> - <a>109</a> - <b>810</b> - <v>6</v> + <a>11</a> + <b>20</b> + <v>19</v> + </b> + <b> + <a>21</a> + <b>549</b> + <v>14</v> </b> </bs> </hist> @@ -12725,42 +12526,37 @@ <b> <a>1</a> <b>2</b> - <v>38</v> + <v>51</v> </b> <b> <a>2</a> <b>3</b> - <v>110</v> + <v>111</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>1</v> </b> <b> <a>4</a> <b>5</b> - <v>1</v> + <v>32</v> </b> <b> <a>5</a> - <b>6</b> - <v>22</v> - </b> - <b> - <a>6</a> - <b>8</b> - <v>21</v> - </b> - <b> - <a>8</a> - <b>14</b> - <v>15</v> - </b> - <b> - <a>14</a> - <b>91</b> + <b>11</b> <v>18</v> </b> <b> - <a>109</a> - <b>810</b> - <v>6</v> + <a>11</a> + <b>20</b> + <v>19</v> + </b> + <b> + <a>21</a> + <b>549</b> + <v>14</v> </b> </bs> </hist> @@ -12776,7 +12572,7 @@ <b> <a>1</a> <b>2</b> - <v>3437</v> + <v>2719</v> </b> </bs> </hist> @@ -12792,7 +12588,7 @@ <b> <a>1</a> <b>2</b> - <v>3437</v> + <v>2719</v> </b> </bs> </hist> @@ -12802,30 +12598,30 @@ </relation> <relation> <name>ql_datatype_branches_def</name> - <cardinality>809</cardinality> + <cardinality>548</cardinality> <columnsizes> <e> <k>id</k> - <v>809</v> + <v>548</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_datatype_def</name> - <cardinality>809</cardinality> + <cardinality>548</cardinality> <columnsizes> <e> <k>id</k> - <v>809</v> + <v>548</v> </e> <e> <k>name</k> - <v>809</v> + <v>548</v> </e> <e> <k>child</k> - <v>809</v> + <v>548</v> </e> </columnsizes> <dependencies> @@ -12839,7 +12635,7 @@ <b> <a>1</a> <b>2</b> - <v>809</v> + <v>548</v> </b> </bs> </hist> @@ -12855,7 +12651,7 @@ <b> <a>1</a> <b>2</b> - <v>809</v> + <v>548</v> </b> </bs> </hist> @@ -12871,7 +12667,7 @@ <b> <a>1</a> <b>2</b> - <v>809</v> + <v>548</v> </b> </bs> </hist> @@ -12887,7 +12683,7 @@ <b> <a>1</a> <b>2</b> - <v>809</v> + <v>548</v> </b> </bs> </hist> @@ -12903,7 +12699,7 @@ <b> <a>1</a> <b>2</b> - <v>809</v> + <v>548</v> </b> </bs> </hist> @@ -12919,7 +12715,7 @@ <b> <a>1</a> <b>2</b> - <v>809</v> + <v>548</v> </b> </bs> </hist> @@ -12929,19 +12725,19 @@ </relation> <relation> <name>ql_disjunction_def</name> - <cardinality>40259</cardinality> + <cardinality>44890</cardinality> <columnsizes> <e> <k>id</k> - <v>40259</v> + <v>44890</v> </e> <e> <k>left</k> - <v>40259</v> + <v>44890</v> </e> <e> <k>right</k> - <v>40259</v> + <v>44890</v> </e> </columnsizes> <dependencies> @@ -12955,7 +12751,7 @@ <b> <a>1</a> <b>2</b> - <v>40259</v> + <v>44890</v> </b> </bs> </hist> @@ -12971,7 +12767,7 @@ <b> <a>1</a> <b>2</b> - <v>40259</v> + <v>44890</v> </b> </bs> </hist> @@ -12987,7 +12783,7 @@ <b> <a>1</a> <b>2</b> - <v>40259</v> + <v>44890</v> </b> </bs> </hist> @@ -13003,7 +12799,7 @@ <b> <a>1</a> <b>2</b> - <v>40259</v> + <v>44890</v> </b> </bs> </hist> @@ -13019,7 +12815,7 @@ <b> <a>1</a> <b>2</b> - <v>40259</v> + <v>44890</v> </b> </bs> </hist> @@ -13035,7 +12831,7 @@ <b> <a>1</a> <b>2</b> - <v>40259</v> + <v>44890</v> </b> </bs> </hist> @@ -13045,15 +12841,15 @@ </relation> <relation> <name>ql_expr_aggregate_body_def</name> - <cardinality>1293</cardinality> + <cardinality>1216</cardinality> <columnsizes> <e> <k>id</k> - <v>1293</v> + <v>1216</v> </e> <e> <k>as_exprs</k> - <v>1293</v> + <v>1216</v> </e> </columnsizes> <dependencies> @@ -13067,7 +12863,7 @@ <b> <a>1</a> <b>2</b> - <v>1293</v> + <v>1216</v> </b> </bs> </hist> @@ -13083,7 +12879,7 @@ <b> <a>1</a> <b>2</b> - <v>1293</v> + <v>1216</v> </b> </bs> </hist> @@ -13141,23 +12937,23 @@ </relation> <relation> <name>ql_expr_annotation_def</name> - <cardinality>1328</cardinality> + <cardinality>601</cardinality> <columnsizes> <e> <k>id</k> - <v>1328</v> + <v>601</v> </e> <e> <k>annot_arg</k> - <v>1328</v> + <v>601</v> </e> <e> <k>name</k> - <v>1328</v> + <v>601</v> </e> <e> <k>child</k> - <v>1328</v> + <v>601</v> </e> </columnsizes> <dependencies> @@ -13171,7 +12967,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13187,7 +12983,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13203,7 +12999,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13219,7 +13015,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13235,7 +13031,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13251,7 +13047,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13267,7 +13063,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13283,7 +13079,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13299,7 +13095,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13315,7 +13111,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13331,7 +13127,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13347,7 +13143,7 @@ <b> <a>1</a> <b>2</b> - <v>1328</v> + <v>601</v> </b> </bs> </hist> @@ -13357,15 +13153,15 @@ </relation> <relation> <name>ql_field_def</name> - <cardinality>4149</cardinality> + <cardinality>3721</cardinality> <columnsizes> <e> <k>id</k> - <v>4149</v> + <v>3721</v> </e> <e> <k>child</k> - <v>4149</v> + <v>3721</v> </e> </columnsizes> <dependencies> @@ -13379,7 +13175,7 @@ <b> <a>1</a> <b>2</b> - <v>4149</v> + <v>3721</v> </b> </bs> </hist> @@ -13395,7 +13191,7 @@ <b> <a>1</a> <b>2</b> - <v>4149</v> + <v>3721</v> </b> </bs> </hist> @@ -13405,15 +13201,15 @@ </relation> <relation> <name>ql_full_aggregate_body_as_exprs</name> - <cardinality>1309</cardinality> + <cardinality>1288</cardinality> <columnsizes> <e> <k>ql_full_aggregate_body</k> - <v>1309</v> + <v>1288</v> </e> <e> <k>as_exprs</k> - <v>1309</v> + <v>1288</v> </e> </columnsizes> <dependencies> @@ -13427,7 +13223,7 @@ <b> <a>1</a> <b>2</b> - <v>1309</v> + <v>1288</v> </b> </bs> </hist> @@ -13443,7 +13239,7 @@ <b> <a>1</a> <b>2</b> - <v>1309</v> + <v>1288</v> </b> </bs> </hist> @@ -13453,11 +13249,11 @@ </relation> <relation> <name>ql_full_aggregate_body_child</name> - <cardinality>7577</cardinality> + <cardinality>7058</cardinality> <columnsizes> <e> <k>ql_full_aggregate_body</k> - <v>6655</v> + <v>6301</v> </e> <e> <k>index</k> @@ -13465,7 +13261,7 @@ </e> <e> <k>child</k> - <v>7577</v> + <v>7058</v> </e> </columnsizes> <dependencies> @@ -13479,17 +13275,17 @@ <b> <a>1</a> <b>2</b> - <v>6061</v> + <v>5788</v> </b> <b> <a>2</a> - <b>4</b> - <v>527</v> + <b>5</b> + <v>480</v> </b> <b> - <a>4</a> + <a>5</a> <b>10</b> - <v>67</v> + <v>33</v> </b> </bs> </hist> @@ -13505,17 +13301,17 @@ <b> <a>1</a> <b>2</b> - <v>6061</v> + <v>5788</v> </b> <b> <a>2</a> - <b>4</b> - <v>527</v> + <b>5</b> + <v>480</v> </b> <b> - <a>4</a> + <a>5</a> <b>10</b> - <v>67</v> + <v>33</v> </b> </bs> </hist> @@ -13534,38 +13330,43 @@ <v>1</v> </b> <b> - <a>20</a> - <b>21</b> - <v>2</v> - </b> - <b> - <a>22</a> - <b>23</b> + <a>13</a> + <b>14</b> <v>1</v> </b> <b> - <a>48</a> - <b>49</b> + <a>14</a> + <b>15</b> <v>1</v> </b> <b> - <a>67</a> - <b>68</b> + <a>18</a> + <b>19</b> <v>1</v> </b> <b> - <a>147</a> - <b>148</b> + <a>33</a> + <b>34</b> <v>1</v> </b> <b> - <a>594</a> - <b>595</b> + <a>51</a> + <b>52</b> <v>1</v> </b> <b> - <a>6655</a> - <b>6656</b> + <a>111</a> + <b>112</b> + <v>1</v> + </b> + <b> + <a>513</a> + <b>514</b> + <v>1</v> + </b> + <b> + <a>6301</a> + <b>6302</b> <v>1</v> </b> </bs> @@ -13585,38 +13386,43 @@ <v>1</v> </b> <b> - <a>20</a> - <b>21</b> - <v>2</v> - </b> - <b> - <a>22</a> - <b>23</b> + <a>13</a> + <b>14</b> <v>1</v> </b> <b> - <a>48</a> - <b>49</b> + <a>14</a> + <b>15</b> <v>1</v> </b> <b> - <a>67</a> - <b>68</b> + <a>18</a> + <b>19</b> <v>1</v> </b> <b> - <a>147</a> - <b>148</b> + <a>33</a> + <b>34</b> <v>1</v> </b> <b> - <a>594</a> - <b>595</b> + <a>51</a> + <b>52</b> <v>1</v> </b> <b> - <a>6655</a> - <b>6656</b> + <a>111</a> + <b>112</b> + <v>1</v> + </b> + <b> + <a>513</a> + <b>514</b> + <v>1</v> + </b> + <b> + <a>6301</a> + <b>6302</b> <v>1</v> </b> </bs> @@ -13633,7 +13439,7 @@ <b> <a>1</a> <b>2</b> - <v>7577</v> + <v>7058</v> </b> </bs> </hist> @@ -13649,7 +13455,7 @@ <b> <a>1</a> <b>2</b> - <v>7577</v> + <v>7058</v> </b> </bs> </hist> @@ -13659,26 +13465,26 @@ </relation> <relation> <name>ql_full_aggregate_body_def</name> - <cardinality>6714</cardinality> + <cardinality>6356</cardinality> <columnsizes> <e> <k>id</k> - <v>6714</v> + <v>6356</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_full_aggregate_body_guard</name> - <cardinality>3739</cardinality> + <cardinality>3549</cardinality> <columnsizes> <e> <k>ql_full_aggregate_body</k> - <v>3739</v> + <v>3549</v> </e> <e> <k>guard</k> - <v>3739</v> + <v>3549</v> </e> </columnsizes> <dependencies> @@ -13692,7 +13498,7 @@ <b> <a>1</a> <b>2</b> - <v>3739</v> + <v>3549</v> </b> </bs> </hist> @@ -13708,7 +13514,7 @@ <b> <a>1</a> <b>2</b> - <v>3739</v> + <v>3549</v> </b> </bs> </hist> @@ -13718,15 +13524,15 @@ </relation> <relation> <name>ql_full_aggregate_body_order_bys</name> - <cardinality>449</cardinality> + <cardinality>429</cardinality> <columnsizes> <e> <k>ql_full_aggregate_body</k> - <v>449</v> + <v>429</v> </e> <e> <k>order_bys</k> - <v>449</v> + <v>429</v> </e> </columnsizes> <dependencies> @@ -13740,7 +13546,7 @@ <b> <a>1</a> <b>2</b> - <v>449</v> + <v>429</v> </b> </bs> </hist> @@ -13756,7 +13562,7 @@ <b> <a>1</a> <b>2</b> - <v>449</v> + <v>429</v> </b> </bs> </hist> @@ -13766,11 +13572,11 @@ </relation> <relation> <name>ql_higher_order_term_child</name> - <cardinality>469</cardinality> + <cardinality>343</cardinality> <columnsizes> <e> <k>ql_higher_order_term</k> - <v>105</v> + <v>77</v> </e> <e> <k>index</k> @@ -13778,7 +13584,7 @@ </e> <e> <k>child</k> - <v>469</v> + <v>343</v> </e> </columnsizes> <dependencies> @@ -13792,12 +13598,12 @@ <b> <a>3</a> <b>4</b> - <v>31</v> + <v>24</v> </b> <b> <a>5</a> <b>6</b> - <v>72</v> + <v>51</v> </b> <b> <a>8</a> @@ -13818,12 +13624,12 @@ <b> <a>3</a> <b>4</b> - <v>31</v> + <v>24</v> </b> <b> <a>5</a> <b>6</b> - <v>72</v> + <v>51</v> </b> <b> <a>8</a> @@ -13847,13 +13653,13 @@ <v>3</v> </b> <b> - <a>74</a> - <b>75</b> + <a>53</a> + <b>54</b> <v>2</v> </b> <b> - <a>105</a> - <b>106</b> + <a>77</a> + <b>78</b> <v>3</v> </b> </bs> @@ -13873,13 +13679,13 @@ <v>3</v> </b> <b> - <a>74</a> - <b>75</b> + <a>53</a> + <b>54</b> <v>2</v> </b> <b> - <a>105</a> - <b>106</b> + <a>77</a> + <b>78</b> <v>3</v> </b> </bs> @@ -13896,7 +13702,7 @@ <b> <a>1</a> <b>2</b> - <v>469</v> + <v>343</v> </b> </bs> </hist> @@ -13912,7 +13718,7 @@ <b> <a>1</a> <b>2</b> - <v>469</v> + <v>343</v> </b> </bs> </hist> @@ -13922,15 +13728,15 @@ </relation> <relation> <name>ql_higher_order_term_def</name> - <cardinality>105</cardinality> + <cardinality>77</cardinality> <columnsizes> <e> <k>id</k> - <v>105</v> + <v>77</v> </e> <e> <k>name</k> - <v>105</v> + <v>77</v> </e> </columnsizes> <dependencies> @@ -13944,7 +13750,7 @@ <b> <a>1</a> <b>2</b> - <v>105</v> + <v>77</v> </b> </bs> </hist> @@ -13960,7 +13766,7 @@ <b> <a>1</a> <b>2</b> - <v>105</v> + <v>77</v> </b> </bs> </hist> @@ -13970,23 +13776,23 @@ </relation> <relation> <name>ql_if_term_def</name> - <cardinality>3226</cardinality> + <cardinality>2953</cardinality> <columnsizes> <e> <k>id</k> - <v>3226</v> + <v>2953</v> </e> <e> <k>cond</k> - <v>3226</v> + <v>2953</v> </e> <e> <k>first</k> - <v>3226</v> + <v>2953</v> </e> <e> <k>second</k> - <v>3226</v> + <v>2953</v> </e> </columnsizes> <dependencies> @@ -14000,7 +13806,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14016,7 +13822,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14032,7 +13838,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14048,7 +13854,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14064,7 +13870,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14080,7 +13886,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14096,7 +13902,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14112,7 +13918,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14128,7 +13934,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14144,7 +13950,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14160,7 +13966,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14176,7 +13982,7 @@ <b> <a>1</a> <b>2</b> - <v>3226</v> + <v>2953</v> </b> </bs> </hist> @@ -14186,19 +13992,19 @@ </relation> <relation> <name>ql_implication_def</name> - <cardinality>87</cardinality> + <cardinality>101</cardinality> <columnsizes> <e> <k>id</k> - <v>87</v> + <v>101</v> </e> <e> <k>left</k> - <v>87</v> + <v>101</v> </e> <e> <k>right</k> - <v>87</v> + <v>101</v> </e> </columnsizes> <dependencies> @@ -14212,7 +14018,7 @@ <b> <a>1</a> <b>2</b> - <v>87</v> + <v>101</v> </b> </bs> </hist> @@ -14228,7 +14034,7 @@ <b> <a>1</a> <b>2</b> - <v>87</v> + <v>101</v> </b> </bs> </hist> @@ -14244,7 +14050,7 @@ <b> <a>1</a> <b>2</b> - <v>87</v> + <v>101</v> </b> </bs> </hist> @@ -14260,7 +14066,7 @@ <b> <a>1</a> <b>2</b> - <v>87</v> + <v>101</v> </b> </bs> </hist> @@ -14276,7 +14082,7 @@ <b> <a>1</a> <b>2</b> - <v>87</v> + <v>101</v> </b> </bs> </hist> @@ -14292,7 +14098,7 @@ <b> <a>1</a> <b>2</b> - <v>87</v> + <v>101</v> </b> </bs> </hist> @@ -14302,11 +14108,11 @@ </relation> <relation> <name>ql_import_directive_child</name> - <cardinality>26183</cardinality> + <cardinality>27063</cardinality> <columnsizes> <e> <k>ql_import_directive</k> - <v>24818</v> + <v>25764</v> </e> <e> <k>index</k> @@ -14314,7 +14120,7 @@ </e> <e> <k>child</k> - <v>26183</v> + <v>27063</v> </e> </columnsizes> <dependencies> @@ -14328,12 +14134,12 @@ <b> <a>1</a> <b>2</b> - <v>23453</v> + <v>24465</v> </b> <b> <a>2</a> <b>3</b> - <v>1365</v> + <v>1299</v> </b> </bs> </hist> @@ -14349,12 +14155,12 @@ <b> <a>1</a> <b>2</b> - <v>23453</v> + <v>24465</v> </b> <b> <a>2</a> <b>3</b> - <v>1365</v> + <v>1299</v> </b> </bs> </hist> @@ -14368,13 +14174,13 @@ <budget>12</budget> <bs> <b> - <a>1365</a> - <b>1366</b> + <a>1299</a> + <b>1300</b> <v>1</v> </b> <b> - <a>24818</a> - <b>24819</b> + <a>25764</a> + <b>25765</b> <v>1</v> </b> </bs> @@ -14389,13 +14195,13 @@ <budget>12</budget> <bs> <b> - <a>1365</a> - <b>1366</b> + <a>1299</a> + <b>1300</b> <v>1</v> </b> <b> - <a>24818</a> - <b>24819</b> + <a>25764</a> + <b>25765</b> <v>1</v> </b> </bs> @@ -14412,7 +14218,7 @@ <b> <a>1</a> <b>2</b> - <v>26183</v> + <v>27063</v> </b> </bs> </hist> @@ -14428,7 +14234,7 @@ <b> <a>1</a> <b>2</b> - <v>26183</v> + <v>27063</v> </b> </bs> </hist> @@ -14438,26 +14244,26 @@ </relation> <relation> <name>ql_import_directive_def</name> - <cardinality>24818</cardinality> + <cardinality>25764</cardinality> <columnsizes> <e> <k>id</k> - <v>24818</v> + <v>25764</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_import_module_expr_def</name> - <cardinality>24818</cardinality> + <cardinality>25764</cardinality> <columnsizes> <e> <k>id</k> - <v>24818</v> + <v>25764</v> </e> <e> <k>child</k> - <v>24818</v> + <v>25764</v> </e> </columnsizes> <dependencies> @@ -14471,7 +14277,7 @@ <b> <a>1</a> <b>2</b> - <v>24818</v> + <v>25764</v> </b> </bs> </hist> @@ -14487,7 +14293,7 @@ <b> <a>1</a> <b>2</b> - <v>24818</v> + <v>25764</v> </b> </bs> </hist> @@ -14497,11 +14303,11 @@ </relation> <relation> <name>ql_import_module_expr_qual_name</name> - <cardinality>43119</cardinality> + <cardinality>44946</cardinality> <columnsizes> <e> <k>ql_import_module_expr</k> - <v>12715</v> + <v>13345</v> </e> <e> <k>index</k> @@ -14509,7 +14315,7 @@ </e> <e> <k>qual_name</k> - <v>43119</v> + <v>44946</v> </e> </columnsizes> <dependencies> @@ -14523,32 +14329,32 @@ <b> <a>1</a> <b>2</b> - <v>969</v> + <v>972</v> </b> <b> <a>2</a> <b>3</b> - <v>1837</v> + <v>2220</v> </b> <b> <a>3</a> <b>4</b> - <v>3420</v> + <v>3431</v> </b> <b> <a>4</a> <b>5</b> - <v>4818</v> + <v>4933</v> </b> <b> <a>5</a> <b>6</b> - <v>1222</v> + <v>1355</v> </b> <b> <a>6</a> <b>9</b> - <v>449</v> + <v>434</v> </b> </bs> </hist> @@ -14564,32 +14370,32 @@ <b> <a>1</a> <b>2</b> - <v>969</v> + <v>972</v> </b> <b> <a>2</a> <b>3</b> - <v>1837</v> + <v>2220</v> </b> <b> <a>3</a> <b>4</b> - <v>3420</v> + <v>3431</v> </b> <b> <a>4</a> <b>5</b> - <v>4818</v> + <v>4933</v> </b> <b> <a>5</a> <b>6</b> - <v>1222</v> + <v>1355</v> </b> <b> <a>6</a> <b>9</b> - <v>449</v> + <v>434</v> </b> </bs> </hist> @@ -14603,43 +14409,43 @@ <budget>12</budget> <bs> <b> - <a>30</a> - <b>31</b> + <a>25</a> + <b>26</b> <v>1</v> </b> <b> - <a>110</a> - <b>111</b> + <a>105</a> + <b>106</b> <v>1</v> </b> <b> - <a>449</a> - <b>450</b> + <a>434</a> + <b>435</b> <v>1</v> </b> <b> - <a>1671</a> - <b>1672</b> + <a>1789</a> + <b>1790</b> <v>1</v> </b> <b> - <a>6489</a> - <b>6490</b> + <a>6722</a> + <b>6723</b> <v>1</v> </b> <b> - <a>9909</a> - <b>9910</b> + <a>10153</a> + <b>10154</b> <v>1</v> </b> <b> - <a>11746</a> - <b>11747</b> + <a>12373</a> + <b>12374</b> <v>1</v> </b> <b> - <a>12715</a> - <b>12716</b> + <a>13345</a> + <b>13346</b> <v>1</v> </b> </bs> @@ -14654,43 +14460,43 @@ <budget>12</budget> <bs> <b> - <a>30</a> - <b>31</b> + <a>25</a> + <b>26</b> <v>1</v> </b> <b> - <a>110</a> - <b>111</b> + <a>105</a> + <b>106</b> <v>1</v> </b> <b> - <a>449</a> - <b>450</b> + <a>434</a> + <b>435</b> <v>1</v> </b> <b> - <a>1671</a> - <b>1672</b> + <a>1789</a> + <b>1790</b> <v>1</v> </b> <b> - <a>6489</a> - <b>6490</b> + <a>6722</a> + <b>6723</b> <v>1</v> </b> <b> - <a>9909</a> - <b>9910</b> + <a>10153</a> + <b>10154</b> <v>1</v> </b> <b> - <a>11746</a> - <b>11747</b> + <a>12373</a> + <b>12374</b> <v>1</v> </b> <b> - <a>12715</a> - <b>12716</b> + <a>13345</a> + <b>13346</b> <v>1</v> </b> </bs> @@ -14707,7 +14513,7 @@ <b> <a>1</a> <b>2</b> - <v>43119</v> + <v>44946</v> </b> </bs> </hist> @@ -14723,7 +14529,7 @@ <b> <a>1</a> <b>2</b> - <v>43119</v> + <v>44946</v> </b> </bs> </hist> @@ -14733,19 +14539,19 @@ </relation> <relation> <name>ql_in_expr_def</name> - <cardinality>1003</cardinality> + <cardinality>1037</cardinality> <columnsizes> <e> <k>id</k> - <v>1003</v> + <v>1037</v> </e> <e> <k>left</k> - <v>1003</v> + <v>1037</v> </e> <e> <k>right</k> - <v>1003</v> + <v>1037</v> </e> </columnsizes> <dependencies> @@ -14759,7 +14565,7 @@ <b> <a>1</a> <b>2</b> - <v>1003</v> + <v>1037</v> </b> </bs> </hist> @@ -14775,7 +14581,7 @@ <b> <a>1</a> <b>2</b> - <v>1003</v> + <v>1037</v> </b> </bs> </hist> @@ -14791,7 +14597,7 @@ <b> <a>1</a> <b>2</b> - <v>1003</v> + <v>1037</v> </b> </bs> </hist> @@ -14807,7 +14613,7 @@ <b> <a>1</a> <b>2</b> - <v>1003</v> + <v>1037</v> </b> </bs> </hist> @@ -14823,7 +14629,7 @@ <b> <a>1</a> <b>2</b> - <v>1003</v> + <v>1037</v> </b> </bs> </hist> @@ -14839,7 +14645,7 @@ <b> <a>1</a> <b>2</b> - <v>1003</v> + <v>1037</v> </b> </bs> </hist> @@ -14849,11 +14655,11 @@ </relation> <relation> <name>ql_instance_of_child</name> - <cardinality>34256</cardinality> + <cardinality>31826</cardinality> <columnsizes> <e> <k>ql_instance_of</k> - <v>17128</v> + <v>15913</v> </e> <e> <k>index</k> @@ -14861,7 +14667,7 @@ </e> <e> <k>child</k> - <v>34256</v> + <v>31826</v> </e> </columnsizes> <dependencies> @@ -14875,7 +14681,7 @@ <b> <a>2</a> <b>3</b> - <v>17128</v> + <v>15913</v> </b> </bs> </hist> @@ -14891,7 +14697,7 @@ <b> <a>2</a> <b>3</b> - <v>17128</v> + <v>15913</v> </b> </bs> </hist> @@ -14905,8 +14711,8 @@ <budget>12</budget> <bs> <b> - <a>17128</a> - <b>17129</b> + <a>15913</a> + <b>15914</b> <v>2</v> </b> </bs> @@ -14921,8 +14727,8 @@ <budget>12</budget> <bs> <b> - <a>17128</a> - <b>17129</b> + <a>15913</a> + <b>15914</b> <v>2</v> </b> </bs> @@ -14939,7 +14745,7 @@ <b> <a>1</a> <b>2</b> - <v>34256</v> + <v>31826</v> </b> </bs> </hist> @@ -14955,7 +14761,7 @@ <b> <a>1</a> <b>2</b> - <v>34256</v> + <v>31826</v> </b> </bs> </hist> @@ -14965,26 +14771,26 @@ </relation> <relation> <name>ql_instance_of_def</name> - <cardinality>17128</cardinality> + <cardinality>15913</cardinality> <columnsizes> <e> <k>id</k> - <v>17128</v> + <v>15913</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_literal_def</name> - <cardinality>98847</cardinality> + <cardinality>109390</cardinality> <columnsizes> <e> <k>id</k> - <v>98847</v> + <v>109390</v> </e> <e> <k>child</k> - <v>98847</v> + <v>109390</v> </e> </columnsizes> <dependencies> @@ -14998,7 +14804,7 @@ <b> <a>1</a> <b>2</b> - <v>98847</v> + <v>109390</v> </b> </bs> </hist> @@ -15014,7 +14820,7 @@ <b> <a>1</a> <b>2</b> - <v>98847</v> + <v>109390</v> </b> </bs> </hist> @@ -15024,19 +14830,19 @@ </relation> <relation> <name>ql_member_predicate_child</name> - <cardinality>70661</cardinality> + <cardinality>63378</cardinality> <columnsizes> <e> <k>ql_member_predicate</k> - <v>47549</v> + <v>43952</v> </e> <e> <k>index</k> - <v>11</v> + <v>12</v> </e> <e> <k>child</k> - <v>70661</v> + <v>63378</v> </e> </columnsizes> <dependencies> @@ -15050,22 +14856,22 @@ <b> <a>1</a> <b>2</b> - <v>34294</v> + <v>32505</v> </b> <b> <a>2</a> <b>3</b> - <v>7406</v> + <v>6417</v> </b> <b> <a>3</a> <b>4</b> - <v>3503</v> + <v>3219</v> </b> <b> <a>4</a> - <b>12</b> - <v>2346</v> + <b>13</b> + <v>1811</v> </b> </bs> </hist> @@ -15081,22 +14887,22 @@ <b> <a>1</a> <b>2</b> - <v>34294</v> + <v>32505</v> </b> <b> <a>2</a> <b>3</b> - <v>7406</v> + <v>6417</v> </b> <b> <a>3</a> <b>4</b> - <v>3503</v> + <v>3219</v> </b> <b> <a>4</a> - <b>12</b> - <v>2346</v> + <b>13</b> + <v>1811</v> </b> </bs> </hist> @@ -15110,8 +14916,8 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>2</a> + <b>3</b> <v>1</v> </b> <b> @@ -15120,8 +14926,13 @@ <v>1</v> </b> <b> - <a>4</a> - <b>5</b> + <a>5</a> + <b>6</b> + <v>1</v> + </b> + <b> + <a>6</a> + <b>7</b> <v>1</v> </b> <b> @@ -15130,38 +14941,38 @@ <v>1</v> </b> <b> - <a>40</a> - <b>41</b> + <a>39</a> + <b>40</b> <v>1</v> </b> <b> - <a>588</a> - <b>589</b> + <a>420</a> + <b>421</b> <v>1</v> </b> <b> - <a>1017</a> - <b>1018</b> + <a>654</a> + <b>655</b> <v>1</v> </b> <b> - <a>2346</a> - <b>2347</b> + <a>1811</a> + <b>1812</b> <v>1</v> </b> <b> - <a>5849</a> - <b>5850</b> + <a>5030</a> + <b>5031</b> <v>1</v> </b> <b> - <a>13255</a> - <b>13256</b> + <a>11447</a> + <b>11448</b> <v>1</v> </b> <b> - <a>47549</a> - <b>47550</b> + <a>43952</a> + <b>43953</b> <v>1</v> </b> </bs> @@ -15176,8 +14987,8 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>2</a> + <b>3</b> <v>1</v> </b> <b> @@ -15186,8 +14997,13 @@ <v>1</v> </b> <b> - <a>4</a> - <b>5</b> + <a>5</a> + <b>6</b> + <v>1</v> + </b> + <b> + <a>6</a> + <b>7</b> <v>1</v> </b> <b> @@ -15196,38 +15012,38 @@ <v>1</v> </b> <b> - <a>40</a> - <b>41</b> + <a>39</a> + <b>40</b> <v>1</v> </b> <b> - <a>588</a> - <b>589</b> + <a>420</a> + <b>421</b> <v>1</v> </b> <b> - <a>1017</a> - <b>1018</b> + <a>654</a> + <b>655</b> <v>1</v> </b> <b> - <a>2346</a> - <b>2347</b> + <a>1811</a> + <b>1812</b> <v>1</v> </b> <b> - <a>5849</a> - <b>5850</b> + <a>5030</a> + <b>5031</b> <v>1</v> </b> <b> - <a>13255</a> - <b>13256</b> + <a>11447</a> + <b>11448</b> <v>1</v> </b> <b> - <a>47549</a> - <b>47550</b> + <a>43952</a> + <b>43953</b> <v>1</v> </b> </bs> @@ -15244,7 +15060,7 @@ <b> <a>1</a> <b>2</b> - <v>70661</v> + <v>63378</v> </b> </bs> </hist> @@ -15260,7 +15076,7 @@ <b> <a>1</a> <b>2</b> - <v>70661</v> + <v>63378</v> </b> </bs> </hist> @@ -15270,19 +15086,19 @@ </relation> <relation> <name>ql_member_predicate_def</name> - <cardinality>47549</cardinality> + <cardinality>43952</cardinality> <columnsizes> <e> <k>id</k> - <v>47549</v> + <v>43952</v> </e> <e> <k>name</k> - <v>47549</v> + <v>43952</v> </e> <e> <k>return_type</k> - <v>47549</v> + <v>43952</v> </e> </columnsizes> <dependencies> @@ -15296,7 +15112,7 @@ <b> <a>1</a> <b>2</b> - <v>47549</v> + <v>43952</v> </b> </bs> </hist> @@ -15312,7 +15128,7 @@ <b> <a>1</a> <b>2</b> - <v>47549</v> + <v>43952</v> </b> </bs> </hist> @@ -15328,7 +15144,7 @@ <b> <a>1</a> <b>2</b> - <v>47549</v> + <v>43952</v> </b> </bs> </hist> @@ -15344,7 +15160,7 @@ <b> <a>1</a> <b>2</b> - <v>47549</v> + <v>43952</v> </b> </bs> </hist> @@ -15360,7 +15176,7 @@ <b> <a>1</a> <b>2</b> - <v>47549</v> + <v>43952</v> </b> </bs> </hist> @@ -15376,7 +15192,7 @@ <b> <a>1</a> <b>2</b> - <v>47549</v> + <v>43952</v> </b> </bs> </hist> @@ -15386,15 +15202,15 @@ </relation> <relation> <name>ql_module_alias_body_def</name> - <cardinality>725</cardinality> + <cardinality>917</cardinality> <columnsizes> <e> <k>id</k> - <v>725</v> + <v>917</v> </e> <e> <k>child</k> - <v>725</v> + <v>917</v> </e> </columnsizes> <dependencies> @@ -15408,7 +15224,7 @@ <b> <a>1</a> <b>2</b> - <v>725</v> + <v>917</v> </b> </bs> </hist> @@ -15424,7 +15240,7 @@ <b> <a>1</a> <b>2</b> - <v>725</v> + <v>917</v> </b> </bs> </hist> @@ -15434,19 +15250,19 @@ </relation> <relation> <name>ql_module_child</name> - <cardinality>35070</cardinality> + <cardinality>33181</cardinality> <columnsizes> <e> <k>ql_module</k> - <v>3910</v> + <v>4556</v> </e> <e> <k>index</k> - <v>1248</v> + <v>1314</v> </e> <e> <k>child</k> - <v>35070</v> + <v>33181</v> </e> </columnsizes> <dependencies> @@ -15460,47 +15276,42 @@ <b> <a>1</a> <b>2</b> - <v>1257</v> + <v>1138</v> </b> <b> <a>2</a> <b>3</b> - <v>624</v> + <v>1239</v> </b> <b> <a>3</a> <b>4</b> - <v>294</v> + <v>385</v> </b> <b> <a>4</a> <b>5</b> - <v>294</v> + <v>392</v> </b> <b> <a>5</a> <b>8</b> - <v>324</v> + <v>383</v> </b> <b> <a>8</a> - <b>12</b> - <v>311</v> + <b>13</b> + <v>407</v> </b> <b> - <a>12</a> - <b>17</b> - <v>322</v> + <a>13</a> + <b>23</b> + <v>351</v> </b> <b> - <a>17</a> - <b>34</b> - <v>295</v> - </b> - <b> - <a>34</a> - <b>1249</b> - <v>189</v> + <a>23</a> + <b>1315</b> + <v>261</v> </b> </bs> </hist> @@ -15516,47 +15327,42 @@ <b> <a>1</a> <b>2</b> - <v>1257</v> + <v>1138</v> </b> <b> <a>2</a> <b>3</b> - <v>624</v> + <v>1239</v> </b> <b> <a>3</a> <b>4</b> - <v>294</v> + <v>385</v> </b> <b> <a>4</a> <b>5</b> - <v>294</v> + <v>392</v> </b> <b> <a>5</a> <b>8</b> - <v>324</v> + <v>383</v> </b> <b> <a>8</a> - <b>12</b> - <v>311</v> + <b>13</b> + <v>407</v> </b> <b> - <a>12</a> - <b>17</b> - <v>322</v> + <a>13</a> + <b>23</b> + <v>351</v> </b> <b> - <a>17</a> - <b>34</b> - <v>295</v> - </b> - <b> - <a>34</a> - <b>1249</b> - <v>189</v> + <a>23</a> + <b>1315</b> + <v>261</v> </b> </bs> </hist> @@ -15572,33 +15378,33 @@ <b> <a>1</a> <b>2</b> - <v>684</v> + <v>718</v> </b> <b> <a>2</a> <b>3</b> - <v>144</v> + <v>180</v> </b> <b> <a>3</a> - <b>4</b> - <v>131</v> + <b>5</b> + <v>114</v> </b> <b> - <a>4</a> - <b>8</b> - <v>109</v> + <a>5</a> + <b>7</b> + <v>102</v> </b> <b> - <a>15</a> - <b>30</b> + <a>7</a> + <b>17</b> + <v>106</v> + </b> + <b> + <a>17</a> + <b>4557</b> <v>94</v> </b> - <b> - <a>31</a> - <b>3911</b> - <v>86</v> - </b> </bs> </hist> </val> @@ -15613,33 +15419,33 @@ <b> <a>1</a> <b>2</b> - <v>684</v> + <v>718</v> </b> <b> <a>2</a> <b>3</b> - <v>144</v> + <v>180</v> </b> <b> <a>3</a> - <b>4</b> - <v>131</v> + <b>5</b> + <v>114</v> </b> <b> - <a>4</a> - <b>8</b> - <v>109</v> + <a>5</a> + <b>7</b> + <v>102</v> </b> <b> - <a>15</a> - <b>30</b> + <a>7</a> + <b>17</b> + <v>106</v> + </b> + <b> + <a>17</a> + <b>4557</b> <v>94</v> </b> - <b> - <a>31</a> - <b>3911</b> - <v>86</v> - </b> </bs> </hist> </val> @@ -15654,7 +15460,7 @@ <b> <a>1</a> <b>2</b> - <v>35070</v> + <v>33181</v> </b> </bs> </hist> @@ -15670,7 +15476,7 @@ <b> <a>1</a> <b>2</b> - <v>35070</v> + <v>33181</v> </b> </bs> </hist> @@ -15680,15 +15486,15 @@ </relation> <relation> <name>ql_module_def</name> - <cardinality>3916</cardinality> + <cardinality>4567</cardinality> <columnsizes> <e> <k>id</k> - <v>3916</v> + <v>4567</v> </e> <e> <k>name</k> - <v>3916</v> + <v>4567</v> </e> </columnsizes> <dependencies> @@ -15702,7 +15508,7 @@ <b> <a>1</a> <b>2</b> - <v>3916</v> + <v>4567</v> </b> </bs> </hist> @@ -15718,7 +15524,7 @@ <b> <a>1</a> <b>2</b> - <v>3916</v> + <v>4567</v> </b> </bs> </hist> @@ -15728,15 +15534,15 @@ </relation> <relation> <name>ql_module_expr_def</name> - <cardinality>72503</cardinality> + <cardinality>76399</cardinality> <columnsizes> <e> <k>id</k> - <v>72503</v> + <v>76399</v> </e> <e> <k>child</k> - <v>72503</v> + <v>76399</v> </e> </columnsizes> <dependencies> @@ -15750,7 +15556,7 @@ <b> <a>1</a> <b>2</b> - <v>72503</v> + <v>76399</v> </b> </bs> </hist> @@ -15766,7 +15572,7 @@ <b> <a>1</a> <b>2</b> - <v>72503</v> + <v>76399</v> </b> </bs> </hist> @@ -15776,15 +15582,15 @@ </relation> <relation> <name>ql_module_expr_name</name> - <cardinality>4091</cardinality> + <cardinality>4773</cardinality> <columnsizes> <e> <k>ql_module_expr</k> - <v>4091</v> + <v>4773</v> </e> <e> <k>name</k> - <v>4091</v> + <v>4773</v> </e> </columnsizes> <dependencies> @@ -15798,7 +15604,7 @@ <b> <a>1</a> <b>2</b> - <v>4091</v> + <v>4773</v> </b> </bs> </hist> @@ -15814,7 +15620,7 @@ <b> <a>1</a> <b>2</b> - <v>4091</v> + <v>4773</v> </b> </bs> </hist> @@ -15824,11 +15630,11 @@ </relation> <relation> <name>ql_module_implements</name> - <cardinality>759</cardinality> + <cardinality>1251</cardinality> <columnsizes> <e> <k>ql_module</k> - <v>759</v> + <v>1251</v> </e> <e> <k>index</k> @@ -15836,7 +15642,7 @@ </e> <e> <k>implements</k> - <v>759</v> + <v>1251</v> </e> </columnsizes> <dependencies> @@ -15850,7 +15656,7 @@ <b> <a>1</a> <b>2</b> - <v>759</v> + <v>1251</v> </b> </bs> </hist> @@ -15866,7 +15672,7 @@ <b> <a>1</a> <b>2</b> - <v>759</v> + <v>1251</v> </b> </bs> </hist> @@ -15880,8 +15686,8 @@ <budget>12</budget> <bs> <b> - <a>759</a> - <b>760</b> + <a>1251</a> + <b>1252</b> <v>1</v> </b> </bs> @@ -15896,8 +15702,8 @@ <budget>12</budget> <bs> <b> - <a>759</a> - <b>760</b> + <a>1251</a> + <b>1252</b> <v>1</v> </b> </bs> @@ -15914,7 +15720,7 @@ <b> <a>1</a> <b>2</b> - <v>759</v> + <v>1251</v> </b> </bs> </hist> @@ -15930,7 +15736,7 @@ <b> <a>1</a> <b>2</b> - <v>759</v> + <v>1251</v> </b> </bs> </hist> @@ -15940,19 +15746,19 @@ </relation> <relation> <name>ql_module_instantiation_child</name> - <cardinality>1190</cardinality> + <cardinality>2192</cardinality> <columnsizes> <e> <k>ql_module_instantiation</k> - <v>1043</v> + <v>1740</v> </e> <e> <k>index</k> - <v>6</v> + <v>8</v> </e> <e> <k>child</k> - <v>1190</v> + <v>2192</v> </e> </columnsizes> <dependencies> @@ -15966,12 +15772,17 @@ <b> <a>1</a> <b>2</b> - <v>966</v> + <v>1473</v> </b> <b> <a>2</a> - <b>7</b> - <v>77</v> + <b>3</b> + <v>172</v> + </b> + <b> + <a>3</a> + <b>9</b> + <v>95</v> </b> </bs> </hist> @@ -15987,12 +15798,17 @@ <b> <a>1</a> <b>2</b> - <v>966</v> + <v>1473</v> </b> <b> <a>2</a> - <b>7</b> - <v>77</v> + <b>3</b> + <v>172</v> + </b> + <b> + <a>3</a> + <b>9</b> + <v>95</v> </b> </bs> </hist> @@ -16008,31 +15824,36 @@ <b> <a>3</a> <b>4</b> + <v>2</v> + </b> + <b> + <a>8</a> + <b>9</b> <v>1</v> </b> <b> - <a>5</a> - <b>6</b> + <a>20</a> + <b>21</b> <v>1</v> </b> <b> - <a>26</a> - <b>27</b> + <a>56</a> + <b>57</b> <v>1</v> </b> <b> - <a>36</a> - <b>37</b> + <a>95</a> + <b>96</b> <v>1</v> </b> <b> - <a>77</a> - <b>78</b> + <a>267</a> + <b>268</b> <v>1</v> </b> <b> - <a>1043</a> - <b>1044</b> + <a>1740</a> + <b>1741</b> <v>1</v> </b> </bs> @@ -16049,31 +15870,36 @@ <b> <a>3</a> <b>4</b> + <v>2</v> + </b> + <b> + <a>8</a> + <b>9</b> <v>1</v> </b> <b> - <a>5</a> - <b>6</b> + <a>20</a> + <b>21</b> <v>1</v> </b> <b> - <a>26</a> - <b>27</b> + <a>56</a> + <b>57</b> <v>1</v> </b> <b> - <a>36</a> - <b>37</b> + <a>95</a> + <b>96</b> <v>1</v> </b> <b> - <a>77</a> - <b>78</b> + <a>267</a> + <b>268</b> <v>1</v> </b> <b> - <a>1043</a> - <b>1044</b> + <a>1740</a> + <b>1741</b> <v>1</v> </b> </bs> @@ -16090,7 +15916,7 @@ <b> <a>1</a> <b>2</b> - <v>1190</v> + <v>2192</v> </b> </bs> </hist> @@ -16106,7 +15932,7 @@ <b> <a>1</a> <b>2</b> - <v>1190</v> + <v>2192</v> </b> </bs> </hist> @@ -16116,15 +15942,15 @@ </relation> <relation> <name>ql_module_instantiation_def</name> - <cardinality>1043</cardinality> + <cardinality>1740</cardinality> <columnsizes> <e> <k>id</k> - <v>1043</v> + <v>1740</v> </e> <e> <k>name</k> - <v>1043</v> + <v>1740</v> </e> </columnsizes> <dependencies> @@ -16138,7 +15964,7 @@ <b> <a>1</a> <b>2</b> - <v>1043</v> + <v>1740</v> </b> </bs> </hist> @@ -16154,7 +15980,7 @@ <b> <a>1</a> <b>2</b> - <v>1043</v> + <v>1740</v> </b> </bs> </hist> @@ -16164,19 +15990,19 @@ </relation> <relation> <name>ql_module_member_child</name> - <cardinality>155140</cardinality> + <cardinality>150156</cardinality> <columnsizes> <e> <k>ql_module_member</k> - <v>119591</v> + <v>118178</v> </e> <e> <k>index</k> - <v>5</v> + <v>6</v> </e> <e> <k>child</k> - <v>155140</v> + <v>150156</v> </e> </columnsizes> <dependencies> @@ -16190,17 +16016,17 @@ <b> <a>1</a> <b>2</b> - <v>87424</v> + <v>88793</v> </b> <b> <a>2</a> <b>3</b> - <v>28864</v> + <v>26917</v> </b> <b> <a>3</a> - <b>6</b> - <v>3303</v> + <b>7</b> + <v>2468</v> </b> </bs> </hist> @@ -16216,17 +16042,17 @@ <b> <a>1</a> <b>2</b> - <v>87424</v> + <v>88793</v> </b> <b> <a>2</a> <b>3</b> - <v>28864</v> + <v>26917</v> </b> <b> <a>3</a> - <b>6</b> - <v>3303</v> + <b>7</b> + <v>2468</v> </b> </bs> </hist> @@ -16240,28 +16066,33 @@ <budget>12</budget> <bs> <b> - <a>4</a> - <b>5</b> + <a>2</a> + <b>3</b> <v>1</v> </b> <b> - <a>75</a> - <b>76</b> + <a>10</a> + <b>11</b> <v>1</v> </b> <b> - <a>3303</a> - <b>3304</b> + <a>113</a> + <b>114</b> <v>1</v> </b> <b> - <a>32167</a> - <b>32168</b> + <a>2468</a> + <b>2469</b> <v>1</v> </b> <b> - <a>119591</a> - <b>119592</b> + <a>29385</a> + <b>29386</b> + <v>1</v> + </b> + <b> + <a>118178</a> + <b>118179</b> <v>1</v> </b> </bs> @@ -16276,28 +16107,33 @@ <budget>12</budget> <bs> <b> - <a>4</a> - <b>5</b> + <a>2</a> + <b>3</b> <v>1</v> </b> <b> - <a>75</a> - <b>76</b> + <a>10</a> + <b>11</b> <v>1</v> </b> <b> - <a>3303</a> - <b>3304</b> + <a>113</a> + <b>114</b> <v>1</v> </b> <b> - <a>32167</a> - <b>32168</b> + <a>2468</a> + <b>2469</b> <v>1</v> </b> <b> - <a>119591</a> - <b>119592</b> + <a>29385</a> + <b>29386</b> + <v>1</v> + </b> + <b> + <a>118178</a> + <b>118179</b> <v>1</v> </b> </bs> @@ -16314,7 +16150,7 @@ <b> <a>1</a> <b>2</b> - <v>155140</v> + <v>150156</v> </b> </bs> </hist> @@ -16330,7 +16166,7 @@ <b> <a>1</a> <b>2</b> - <v>155140</v> + <v>150156</v> </b> </bs> </hist> @@ -16340,26 +16176,26 @@ </relation> <relation> <name>ql_module_member_def</name> - <cardinality>119591</cardinality> + <cardinality>118178</cardinality> <columnsizes> <e> <k>id</k> - <v>119591</v> + <v>118178</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_module_name_def</name> - <cardinality>6324</cardinality> + <cardinality>7606</cardinality> <columnsizes> <e> <k>id</k> - <v>6324</v> + <v>7606</v> </e> <e> <k>child</k> - <v>6324</v> + <v>7606</v> </e> </columnsizes> <dependencies> @@ -16373,7 +16209,7 @@ <b> <a>1</a> <b>2</b> - <v>6324</v> + <v>7606</v> </b> </bs> </hist> @@ -16389,7 +16225,7 @@ <b> <a>1</a> <b>2</b> - <v>6324</v> + <v>7606</v> </b> </bs> </hist> @@ -16399,19 +16235,19 @@ </relation> <relation> <name>ql_module_param_def</name> - <cardinality>299</cardinality> + <cardinality>266</cardinality> <columnsizes> <e> <k>id</k> - <v>299</v> + <v>266</v> </e> <e> <k>parameter</k> - <v>299</v> + <v>266</v> </e> <e> <k>signature</k> - <v>299</v> + <v>266</v> </e> </columnsizes> <dependencies> @@ -16425,7 +16261,7 @@ <b> <a>1</a> <b>2</b> - <v>299</v> + <v>266</v> </b> </bs> </hist> @@ -16441,7 +16277,7 @@ <b> <a>1</a> <b>2</b> - <v>299</v> + <v>266</v> </b> </bs> </hist> @@ -16457,7 +16293,7 @@ <b> <a>1</a> <b>2</b> - <v>299</v> + <v>266</v> </b> </bs> </hist> @@ -16473,7 +16309,7 @@ <b> <a>1</a> <b>2</b> - <v>299</v> + <v>266</v> </b> </bs> </hist> @@ -16489,7 +16325,7 @@ <b> <a>1</a> <b>2</b> - <v>299</v> + <v>266</v> </b> </bs> </hist> @@ -16505,7 +16341,7 @@ <b> <a>1</a> <b>2</b> - <v>299</v> + <v>266</v> </b> </bs> </hist> @@ -16515,19 +16351,19 @@ </relation> <relation> <name>ql_module_parameter</name> - <cardinality>299</cardinality> + <cardinality>266</cardinality> <columnsizes> <e> <k>ql_module</k> - <v>214</v> + <v>185</v> </e> <e> <k>index</k> - <v>6</v> + <v>8</v> </e> <e> <k>parameter</k> - <v>299</v> + <v>266</v> </e> </columnsizes> <dependencies> @@ -16541,17 +16377,22 @@ <b> <a>1</a> <b>2</b> - <v>183</v> + <v>138</v> </b> <b> <a>2</a> - <b>4</b> - <v>14</v> + <b>3</b> + <v>30</v> </b> <b> - <a>4</a> - <b>7</b> - <v>17</v> + <a>3</a> + <b>6</b> + <v>15</v> + </b> + <b> + <a>6</a> + <b>9</b> + <v>2</v> </b> </bs> </hist> @@ -16567,17 +16408,22 @@ <b> <a>1</a> <b>2</b> - <v>183</v> + <v>138</v> </b> <b> <a>2</a> - <b>4</b> - <v>14</v> + <b>3</b> + <v>30</v> </b> <b> - <a>4</a> - <b>7</b> - <v>17</v> + <a>3</a> + <b>6</b> + <v>15</v> + </b> + <b> + <a>6</a> + <b>9</b> + <v>2</v> </b> </bs> </hist> @@ -16591,8 +16437,18 @@ <budget>12</budget> <bs> <b> - <a>8</a> - <b>9</b> + <a>1</a> + <b>2</b> + <v>2</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + <b> + <a>4</a> + <b>5</b> <v>1</v> </b> <b> @@ -16606,18 +16462,13 @@ <v>1</v> </b> <b> - <a>20</a> - <b>21</b> + <a>47</a> + <b>48</b> <v>1</v> </b> <b> - <a>31</a> - <b>32</b> - <v>1</v> - </b> - <b> - <a>214</a> - <b>215</b> + <a>185</a> + <b>186</b> <v>1</v> </b> </bs> @@ -16632,8 +16483,18 @@ <budget>12</budget> <bs> <b> - <a>8</a> - <b>9</b> + <a>1</a> + <b>2</b> + <v>2</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + <b> + <a>4</a> + <b>5</b> <v>1</v> </b> <b> @@ -16647,18 +16508,13 @@ <v>1</v> </b> <b> - <a>20</a> - <b>21</b> + <a>47</a> + <b>48</b> <v>1</v> </b> <b> - <a>31</a> - <b>32</b> - <v>1</v> - </b> - <b> - <a>214</a> - <b>215</b> + <a>185</a> + <b>186</b> <v>1</v> </b> </bs> @@ -16675,7 +16531,7 @@ <b> <a>1</a> <b>2</b> - <v>299</v> + <v>266</v> </b> </bs> </hist> @@ -16691,7 +16547,7 @@ <b> <a>1</a> <b>2</b> - <v>299</v> + <v>266</v> </b> </bs> </hist> @@ -16701,23 +16557,23 @@ </relation> <relation> <name>ql_mul_expr_def</name> - <cardinality>631</cardinality> + <cardinality>585</cardinality> <columnsizes> <e> <k>id</k> - <v>631</v> + <v>585</v> </e> <e> <k>left</k> - <v>631</v> + <v>585</v> </e> <e> <k>right</k> - <v>631</v> + <v>585</v> </e> <e> <k>child</k> - <v>631</v> + <v>585</v> </e> </columnsizes> <dependencies> @@ -16731,7 +16587,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16747,7 +16603,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16763,7 +16619,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16779,7 +16635,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16795,7 +16651,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16811,7 +16667,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16827,7 +16683,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16843,7 +16699,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16859,7 +16715,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16875,7 +16731,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16891,7 +16747,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16907,7 +16763,7 @@ <b> <a>1</a> <b>2</b> - <v>631</v> + <v>585</v> </b> </bs> </hist> @@ -16917,15 +16773,15 @@ </relation> <relation> <name>ql_negation_def</name> - <cardinality>12010</cardinality> + <cardinality>11727</cardinality> <columnsizes> <e> <k>id</k> - <v>12010</v> + <v>11727</v> </e> <e> <k>child</k> - <v>12010</v> + <v>11727</v> </e> </columnsizes> <dependencies> @@ -16939,7 +16795,7 @@ <b> <a>1</a> <b>2</b> - <v>12010</v> + <v>11727</v> </b> </bs> </hist> @@ -16955,7 +16811,7 @@ <b> <a>1</a> <b>2</b> - <v>12010</v> + <v>11727</v> </b> </bs> </hist> @@ -16965,11 +16821,11 @@ </relation> <relation> <name>ql_order_by_child</name> - <cardinality>1298</cardinality> + <cardinality>1272</cardinality> <columnsizes> <e> <k>ql_order_by</k> - <v>1098</v> + <v>1067</v> </e> <e> <k>index</k> @@ -16977,7 +16833,7 @@ </e> <e> <k>child</k> - <v>1298</v> + <v>1272</v> </e> </columnsizes> <dependencies> @@ -16991,12 +16847,12 @@ <b> <a>1</a> <b>2</b> - <v>898</v> + <v>862</v> </b> <b> <a>2</a> <b>3</b> - <v>200</v> + <v>205</v> </b> </bs> </hist> @@ -17012,12 +16868,12 @@ <b> <a>1</a> <b>2</b> - <v>898</v> + <v>862</v> </b> <b> <a>2</a> <b>3</b> - <v>200</v> + <v>205</v> </b> </bs> </hist> @@ -17031,13 +16887,13 @@ <budget>12</budget> <bs> <b> - <a>200</a> - <b>201</b> + <a>205</a> + <b>206</b> <v>1</v> </b> <b> - <a>1098</a> - <b>1099</b> + <a>1067</a> + <b>1068</b> <v>1</v> </b> </bs> @@ -17052,13 +16908,13 @@ <budget>12</budget> <bs> <b> - <a>200</a> - <b>201</b> + <a>205</a> + <b>206</b> <v>1</v> </b> <b> - <a>1098</a> - <b>1099</b> + <a>1067</a> + <b>1068</b> <v>1</v> </b> </bs> @@ -17075,7 +16931,7 @@ <b> <a>1</a> <b>2</b> - <v>1298</v> + <v>1272</v> </b> </bs> </hist> @@ -17091,7 +16947,7 @@ <b> <a>1</a> <b>2</b> - <v>1298</v> + <v>1272</v> </b> </bs> </hist> @@ -17101,30 +16957,30 @@ </relation> <relation> <name>ql_order_by_def</name> - <cardinality>1098</cardinality> + <cardinality>1067</cardinality> <columnsizes> <e> <k>id</k> - <v>1098</v> + <v>1067</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_order_bys_child</name> - <cardinality>1098</cardinality> + <cardinality>1067</cardinality> <columnsizes> <e> <k>ql_order_bys</k> - <v>674</v> + <v>661</v> </e> <e> <k>index</k> - <v>9</v> + <v>8</v> </e> <e> <k>child</k> - <v>1098</v> + <v>1067</v> </e> </columnsizes> <dependencies> @@ -17138,22 +16994,22 @@ <b> <a>1</a> <b>2</b> - <v>488</v> + <v>477</v> </b> <b> <a>2</a> <b>3</b> - <v>100</v> + <v>101</v> </b> <b> <a>3</a> <b>5</b> - <v>43</v> + <v>41</v> </b> <b> <a>5</a> - <b>10</b> - <v>43</v> + <b>9</b> + <v>42</v> </b> </bs> </hist> @@ -17169,22 +17025,22 @@ <b> <a>1</a> <b>2</b> - <v>488</v> + <v>477</v> </b> <b> <a>2</a> <b>3</b> - <v>100</v> + <v>101</v> </b> <b> <a>3</a> <b>5</b> - <v>43</v> + <v>41</v> </b> <b> <a>5</a> - <b>10</b> - <v>43</v> + <b>9</b> + <v>42</v> </b> </bs> </hist> @@ -17198,28 +17054,23 @@ <budget>12</budget> <bs> <b> - <a>3</a> - <b>4</b> + <a>1</a> + <b>2</b> <v>1</v> </b> <b> - <a>6</a> - <b>7</b> + <a>12</a> + <b>13</b> <v>1</v> </b> <b> - <a>15</a> - <b>16</b> + <a>21</a> + <b>22</b> <v>1</v> </b> <b> - <a>22</a> - <b>23</b> - <v>1</v> - </b> - <b> - <a>43</a> - <b>44</b> + <a>42</a> + <b>43</b> <v>1</v> </b> <b> @@ -17228,18 +17079,18 @@ <v>1</v> </b> <b> - <a>86</a> - <b>87</b> + <a>83</a> + <b>84</b> <v>1</v> </b> <b> - <a>186</a> - <b>187</b> + <a>184</a> + <b>185</b> <v>1</v> </b> <b> - <a>674</a> - <b>675</b> + <a>661</a> + <b>662</b> <v>1</v> </b> </bs> @@ -17254,28 +17105,23 @@ <budget>12</budget> <bs> <b> - <a>3</a> - <b>4</b> + <a>1</a> + <b>2</b> <v>1</v> </b> <b> - <a>6</a> - <b>7</b> + <a>12</a> + <b>13</b> <v>1</v> </b> <b> - <a>15</a> - <b>16</b> + <a>21</a> + <b>22</b> <v>1</v> </b> <b> - <a>22</a> - <b>23</b> - <v>1</v> - </b> - <b> - <a>43</a> - <b>44</b> + <a>42</a> + <b>43</b> <v>1</v> </b> <b> @@ -17284,18 +17130,18 @@ <v>1</v> </b> <b> - <a>86</a> - <b>87</b> + <a>83</a> + <b>84</b> <v>1</v> </b> <b> - <a>186</a> - <b>187</b> + <a>184</a> + <b>185</b> <v>1</v> </b> <b> - <a>674</a> - <b>675</b> + <a>661</a> + <b>662</b> <v>1</v> </b> </bs> @@ -17312,7 +17158,7 @@ <b> <a>1</a> <b>2</b> - <v>1098</v> + <v>1067</v> </b> </bs> </hist> @@ -17328,7 +17174,7 @@ <b> <a>1</a> <b>2</b> - <v>1098</v> + <v>1067</v> </b> </bs> </hist> @@ -17338,26 +17184,26 @@ </relation> <relation> <name>ql_order_bys_def</name> - <cardinality>674</cardinality> + <cardinality>661</cardinality> <columnsizes> <e> <k>id</k> - <v>674</v> + <v>661</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_par_expr_def</name> - <cardinality>6038</cardinality> + <cardinality>5799</cardinality> <columnsizes> <e> <k>id</k> - <v>6038</v> + <v>5799</v> </e> <e> <k>child</k> - <v>6038</v> + <v>5799</v> </e> </columnsizes> <dependencies> @@ -17371,7 +17217,7 @@ <b> <a>1</a> <b>2</b> - <v>6038</v> + <v>5799</v> </b> </bs> </hist> @@ -17387,7 +17233,7 @@ <b> <a>1</a> <b>2</b> - <v>6038</v> + <v>5799</v> </b> </bs> </hist> @@ -17397,15 +17243,15 @@ </relation> <relation> <name>ql_predicate_alias_body_def</name> - <cardinality>329</cardinality> + <cardinality>372</cardinality> <columnsizes> <e> <k>id</k> - <v>329</v> + <v>372</v> </e> <e> <k>child</k> - <v>329</v> + <v>372</v> </e> </columnsizes> <dependencies> @@ -17419,7 +17265,7 @@ <b> <a>1</a> <b>2</b> - <v>329</v> + <v>372</v> </b> </bs> </hist> @@ -17435,7 +17281,7 @@ <b> <a>1</a> <b>2</b> - <v>329</v> + <v>372</v> </b> </bs> </hist> @@ -17445,11 +17291,11 @@ </relation> <relation> <name>ql_predicate_expr_child</name> - <cardinality>1324</cardinality> + <cardinality>1478</cardinality> <columnsizes> <e> <k>ql_predicate_expr</k> - <v>662</v> + <v>739</v> </e> <e> <k>index</k> @@ -17457,7 +17303,7 @@ </e> <e> <k>child</k> - <v>1324</v> + <v>1478</v> </e> </columnsizes> <dependencies> @@ -17471,7 +17317,7 @@ <b> <a>2</a> <b>3</b> - <v>662</v> + <v>739</v> </b> </bs> </hist> @@ -17487,7 +17333,7 @@ <b> <a>2</a> <b>3</b> - <v>662</v> + <v>739</v> </b> </bs> </hist> @@ -17501,8 +17347,8 @@ <budget>12</budget> <bs> <b> - <a>662</a> - <b>663</b> + <a>739</a> + <b>740</b> <v>2</v> </b> </bs> @@ -17517,8 +17363,8 @@ <budget>12</budget> <bs> <b> - <a>662</a> - <b>663</b> + <a>739</a> + <b>740</b> <v>2</v> </b> </bs> @@ -17535,7 +17381,7 @@ <b> <a>1</a> <b>2</b> - <v>1324</v> + <v>1478</v> </b> </bs> </hist> @@ -17551,7 +17397,7 @@ <b> <a>1</a> <b>2</b> - <v>1324</v> + <v>1478</v> </b> </bs> </hist> @@ -17561,11 +17407,11 @@ </relation> <relation> <name>ql_predicate_expr_def</name> - <cardinality>662</cardinality> + <cardinality>739</cardinality> <columnsizes> <e> <k>id</k> - <v>662</v> + <v>739</v> </e> </columnsizes> <dependencies/> @@ -17675,19 +17521,19 @@ </relation> <relation> <name>ql_ql_child</name> - <cardinality>85246</cardinality> + <cardinality>85914</cardinality> <columnsizes> <e> <k>ql_ql</k> - <v>10779</v> + <v>11162</v> </e> <e> <k>index</k> - <v>326</v> + <v>340</v> </e> <e> <k>child</k> - <v>85246</v> + <v>85914</v> </e> </columnsizes> <dependencies> @@ -17701,47 +17547,52 @@ <b> <a>1</a> <b>2</b> - <v>134</v> + <v>96</v> </b> <b> <a>2</a> <b>3</b> - <v>2560</v> + <v>2238</v> </b> <b> <a>3</a> <b>4</b> - <v>2291</v> + <v>2551</v> </b> <b> <a>4</a> <b>5</b> - <v>1380</v> + <v>1524</v> </b> <b> <a>5</a> <b>6</b> - <v>1013</v> + <v>1041</v> </b> <b> <a>6</a> - <b>8</b> - <v>949</v> + <b>7</b> + <v>730</v> </b> <b> - <a>8</a> - <b>12</b> - <v>954</v> + <a>7</a> + <b>9</b> + <v>829</v> </b> <b> - <a>12</a> - <b>24</b> - <v>827</v> + <a>9</a> + <b>14</b> + <v>913</v> </b> <b> - <a>24</a> - <b>327</b> - <v>671</v> + <a>14</a> + <b>31</b> + <v>844</v> + </b> + <b> + <a>31</a> + <b>341</b> + <v>396</v> </b> </bs> </hist> @@ -17757,47 +17608,52 @@ <b> <a>1</a> <b>2</b> - <v>134</v> + <v>96</v> </b> <b> <a>2</a> <b>3</b> - <v>2560</v> + <v>2238</v> </b> <b> <a>3</a> <b>4</b> - <v>2291</v> + <v>2551</v> </b> <b> <a>4</a> <b>5</b> - <v>1380</v> + <v>1524</v> </b> <b> <a>5</a> <b>6</b> - <v>1013</v> + <v>1041</v> </b> <b> <a>6</a> - <b>8</b> - <v>949</v> + <b>7</b> + <v>730</v> </b> <b> - <a>8</a> - <b>12</b> - <v>954</v> + <a>7</a> + <b>9</b> + <v>829</v> </b> <b> - <a>12</a> - <b>24</b> - <v>827</v> + <a>9</a> + <b>14</b> + <v>913</v> </b> <b> - <a>24</a> - <b>327</b> - <v>671</v> + <a>14</a> + <b>31</b> + <v>844</v> + </b> + <b> + <a>31</a> + <b>341</b> + <v>396</v> </b> </bs> </hist> @@ -17813,68 +17669,63 @@ <b> <a>1</a> <b>2</b> - <v>45</v> + <v>42</v> </b> <b> <a>2</a> - <b>5</b> - <v>17</v> + <b>4</b> + <v>25</v> </b> <b> - <a>5</a> - <b>11</b> - <v>26</v> - </b> - <b> - <a>11</a> - <b>13</b> - <v>24</v> - </b> - <b> - <a>13</a> - <b>15</b> - <v>30</v> - </b> - <b> - <a>15</a> - <b>23</b> - <v>26</v> - </b> - <b> - <a>23</a> - <b>30</b> - <v>27</v> - </b> - <b> - <a>30</a> - <b>47</b> + <a>4</a> + <b>6</b> <v>28</v> </b> + <b> + <a>6</a> + <b>10</b> + <v>31</v> + </b> + <b> + <a>10</a> + <b>13</b> + <v>28</v> + </b> + <b> + <a>13</a> + <b>22</b> + <v>30</v> + </b> + <b> + <a>22</a> + <b>29</b> + <v>26</v> + </b> + <b> + <a>29</a> + <b>46</b> + <v>27</v> + </b> <b> <a>48</a> - <b>94</b> - <v>25</v> + <b>83</b> + <v>26</v> </b> <b> - <a>96</a> - <b>185</b> - <v>25</v> + <a>84</a> + <b>176</b> + <v>26</v> </b> <b> - <a>187</a> - <b>519</b> - <v>25</v> + <a>179</a> + <b>553</b> + <v>26</v> </b> <b> - <a>548</a> - <b>5795</b> + <a>584</a> + <b>11163</b> <v>25</v> </b> - <b> - <a>8085</a> - <b>10780</b> - <v>3</v> - </b> </bs> </hist> </val> @@ -17889,68 +17740,63 @@ <b> <a>1</a> <b>2</b> - <v>45</v> + <v>42</v> </b> <b> <a>2</a> - <b>5</b> - <v>17</v> + <b>4</b> + <v>25</v> </b> <b> - <a>5</a> - <b>11</b> - <v>26</v> - </b> - <b> - <a>11</a> - <b>13</b> - <v>24</v> - </b> - <b> - <a>13</a> - <b>15</b> - <v>30</v> - </b> - <b> - <a>15</a> - <b>23</b> - <v>26</v> - </b> - <b> - <a>23</a> - <b>30</b> - <v>27</v> - </b> - <b> - <a>30</a> - <b>47</b> + <a>4</a> + <b>6</b> <v>28</v> </b> + <b> + <a>6</a> + <b>10</b> + <v>31</v> + </b> + <b> + <a>10</a> + <b>13</b> + <v>28</v> + </b> + <b> + <a>13</a> + <b>22</b> + <v>30</v> + </b> + <b> + <a>22</a> + <b>29</b> + <v>26</v> + </b> + <b> + <a>29</a> + <b>46</b> + <v>27</v> + </b> <b> <a>48</a> - <b>94</b> - <v>25</v> + <b>83</b> + <v>26</v> </b> <b> - <a>96</a> - <b>185</b> - <v>25</v> + <a>84</a> + <b>176</b> + <v>26</v> </b> <b> - <a>187</a> - <b>519</b> - <v>25</v> + <a>179</a> + <b>553</b> + <v>26</v> </b> <b> - <a>548</a> - <b>5795</b> + <a>584</a> + <b>11163</b> <v>25</v> </b> - <b> - <a>8085</a> - <b>10780</b> - <v>3</v> - </b> </bs> </hist> </val> @@ -17965,7 +17811,7 @@ <b> <a>1</a> <b>2</b> - <v>85246</v> + <v>85914</v> </b> </bs> </hist> @@ -17981,7 +17827,7 @@ <b> <a>1</a> <b>2</b> - <v>85246</v> + <v>85914</v> </b> </bs> </hist> @@ -17991,22 +17837,22 @@ </relation> <relation> <name>ql_ql_def</name> - <cardinality>10785</cardinality> + <cardinality>11167</cardinality> <columnsizes> <e> <k>id</k> - <v>10785</v> + <v>11167</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_qualified_expr_child</name> - <cardinality>337022</cardinality> + <cardinality>330314</cardinality> <columnsizes> <e> <k>ql_qualified_expr</k> - <v>168511</v> + <v>165157</v> </e> <e> <k>index</k> @@ -18014,7 +17860,7 @@ </e> <e> <k>child</k> - <v>337022</v> + <v>330314</v> </e> </columnsizes> <dependencies> @@ -18028,7 +17874,7 @@ <b> <a>2</a> <b>3</b> - <v>168511</v> + <v>165157</v> </b> </bs> </hist> @@ -18044,7 +17890,7 @@ <b> <a>2</a> <b>3</b> - <v>168511</v> + <v>165157</v> </b> </bs> </hist> @@ -18058,8 +17904,8 @@ <budget>12</budget> <bs> <b> - <a>168511</a> - <b>168512</b> + <a>165157</a> + <b>165158</b> <v>2</v> </b> </bs> @@ -18074,8 +17920,8 @@ <budget>12</budget> <bs> <b> - <a>168511</a> - <b>168512</b> + <a>165157</a> + <b>165158</b> <v>2</v> </b> </bs> @@ -18092,7 +17938,7 @@ <b> <a>1</a> <b>2</b> - <v>337022</v> + <v>330314</v> </b> </bs> </hist> @@ -18108,7 +17954,7 @@ <b> <a>1</a> <b>2</b> - <v>337022</v> + <v>330314</v> </b> </bs> </hist> @@ -18118,30 +17964,30 @@ </relation> <relation> <name>ql_qualified_expr_def</name> - <cardinality>168511</cardinality> + <cardinality>165157</cardinality> <columnsizes> <e> <k>id</k> - <v>168511</v> + <v>165157</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_qualified_rhs_child</name> - <cardinality>68675</cardinality> + <cardinality>68095</cardinality> <columnsizes> <e> <k>ql_qualified_rhs</k> - <v>52287</v> + <v>52354</v> </e> <e> <k>index</k> - <v>10</v> + <v>11</v> </e> <e> <k>child</k> - <v>68675</v> + <v>68095</v> </e> </columnsizes> <dependencies> @@ -18155,17 +18001,17 @@ <b> <a>1</a> <b>2</b> - <v>41503</v> + <v>41965</v> </b> <b> <a>2</a> <b>3</b> - <v>7598</v> + <v>7314</v> </b> <b> <a>3</a> - <b>11</b> - <v>3186</v> + <b>12</b> + <v>3075</v> </b> </bs> </hist> @@ -18181,17 +18027,17 @@ <b> <a>1</a> <b>2</b> - <v>41503</v> + <v>41965</v> </b> <b> <a>2</a> <b>3</b> - <v>7598</v> + <v>7314</v> </b> <b> <a>3</a> - <b>11</b> - <v>3186</v> + <b>12</b> + <v>3075</v> </b> </bs> </hist> @@ -18205,18 +18051,18 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>8</a> + <b>9</b> <v>1</v> </b> <b> - <a>3</a> - <b>4</b> + <a>9</a> + <b>10</b> <v>1</v> </b> <b> - <a>12</a> - <b>13</b> + <a>11</a> + <b>12</b> <v>1</v> </b> <b> @@ -18225,33 +18071,38 @@ <v>1</v> </b> <b> - <a>60</a> - <b>61</b> + <a>25</a> + <b>26</b> <v>1</v> </b> <b> - <a>905</a> - <b>906</b> + <a>66</a> + <b>67</b> <v>1</v> </b> <b> - <a>1417</a> - <b>1418</b> + <a>802</a> + <b>803</b> <v>1</v> </b> <b> - <a>3186</a> - <b>3187</b> + <a>1336</a> + <b>1337</b> <v>1</v> </b> <b> - <a>10784</a> - <b>10785</b> + <a>3075</a> + <b>3076</b> <v>1</v> </b> <b> - <a>52287</a> - <b>52288</b> + <a>10389</a> + <b>10390</b> + <v>1</v> + </b> + <b> + <a>52354</a> + <b>52355</b> <v>1</v> </b> </bs> @@ -18266,18 +18117,18 @@ <budget>12</budget> <bs> <b> - <a>1</a> - <b>2</b> + <a>8</a> + <b>9</b> <v>1</v> </b> <b> - <a>3</a> - <b>4</b> + <a>9</a> + <b>10</b> <v>1</v> </b> <b> - <a>12</a> - <b>13</b> + <a>11</a> + <b>12</b> <v>1</v> </b> <b> @@ -18286,33 +18137,38 @@ <v>1</v> </b> <b> - <a>60</a> - <b>61</b> + <a>25</a> + <b>26</b> <v>1</v> </b> <b> - <a>905</a> - <b>906</b> + <a>66</a> + <b>67</b> <v>1</v> </b> <b> - <a>1417</a> - <b>1418</b> + <a>802</a> + <b>803</b> <v>1</v> </b> <b> - <a>3186</a> - <b>3187</b> + <a>1336</a> + <b>1337</b> <v>1</v> </b> <b> - <a>10784</a> - <b>10785</b> + <a>3075</a> + <b>3076</b> <v>1</v> </b> <b> - <a>52287</a> - <b>52288</b> + <a>10389</a> + <b>10390</b> + <v>1</v> + </b> + <b> + <a>52354</a> + <b>52355</b> <v>1</v> </b> </bs> @@ -18329,7 +18185,7 @@ <b> <a>1</a> <b>2</b> - <v>68675</v> + <v>68095</v> </b> </bs> </hist> @@ -18345,7 +18201,7 @@ <b> <a>1</a> <b>2</b> - <v>68675</v> + <v>68095</v> </b> </bs> </hist> @@ -18355,26 +18211,26 @@ </relation> <relation> <name>ql_qualified_rhs_def</name> - <cardinality>168511</cardinality> + <cardinality>165157</cardinality> <columnsizes> <e> <k>id</k> - <v>168511</v> + <v>165157</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_qualified_rhs_name</name> - <cardinality>157179</cardinality> + <cardinality>153874</cardinality> <columnsizes> <e> <k>ql_qualified_rhs</k> - <v>157179</v> + <v>153874</v> </e> <e> <k>name</k> - <v>157179</v> + <v>153874</v> </e> </columnsizes> <dependencies> @@ -18388,7 +18244,7 @@ <b> <a>1</a> <b>2</b> - <v>157179</v> + <v>153874</v> </b> </bs> </hist> @@ -18404,7 +18260,7 @@ <b> <a>1</a> <b>2</b> - <v>157179</v> + <v>153874</v> </b> </bs> </hist> @@ -18414,11 +18270,11 @@ </relation> <relation> <name>ql_quantified_child</name> - <cardinality>57793</cardinality> + <cardinality>52811</cardinality> <columnsizes> <e> <k>ql_quantified</k> - <v>26111</v> + <v>24227</v> </e> <e> <k>index</k> @@ -18426,7 +18282,7 @@ </e> <e> <k>child</k> - <v>57793</v> + <v>52811</v> </e> </columnsizes> <dependencies> @@ -18440,27 +18296,27 @@ <b> <a>1</a> <b>2</b> - <v>4431</v> + <v>4452</v> </b> <b> <a>2</a> <b>3</b> - <v>15291</v> + <v>14178</v> </b> <b> <a>3</a> <b>4</b> - <v>4044</v> + <v>3526</v> </b> <b> <a>4</a> <b>6</b> - <v>2065</v> + <v>1823</v> </b> <b> <a>6</a> <b>23</b> - <v>280</v> + <v>248</v> </b> </bs> </hist> @@ -18476,27 +18332,27 @@ <b> <a>1</a> <b>2</b> - <v>4431</v> + <v>4452</v> </b> <b> <a>2</a> <b>3</b> - <v>15291</v> + <v>14178</v> </b> <b> <a>3</a> <b>4</b> - <v>4044</v> + <v>3526</v> </b> <b> <a>4</a> <b>6</b> - <v>2065</v> + <v>1823</v> </b> <b> <a>6</a> <b>23</b> - <v>280</v> + <v>248</v> </b> </bs> </hist> @@ -18515,33 +18371,33 @@ <v>11</v> </b> <b> - <a>4</a> - <b>12</b> + <a>3</a> + <b>9</b> <v>2</v> </b> <b> - <a>22</a> - <b>47</b> + <a>19</a> + <b>45</b> <v>2</v> </b> <b> - <a>110</a> - <b>281</b> + <a>102</a> + <b>249</b> <v>2</v> </b> <b> - <a>784</a> - <b>2346</b> + <a>706</a> + <b>2072</b> <v>2</v> </b> <b> - <a>6389</a> - <b>21681</b> + <a>5597</a> + <b>19776</b> <v>2</v> </b> <b> - <a>26111</a> - <b>26112</b> + <a>24227</a> + <b>24228</b> <v>1</v> </b> </bs> @@ -18561,33 +18417,33 @@ <v>11</v> </b> <b> - <a>4</a> - <b>12</b> + <a>3</a> + <b>9</b> <v>2</v> </b> <b> - <a>22</a> - <b>47</b> + <a>19</a> + <b>45</b> <v>2</v> </b> <b> - <a>110</a> - <b>281</b> + <a>102</a> + <b>249</b> <v>2</v> </b> <b> - <a>784</a> - <b>2346</b> + <a>706</a> + <b>2072</b> <v>2</v> </b> <b> - <a>6389</a> - <b>21681</b> + <a>5597</a> + <b>19776</b> <v>2</v> </b> <b> - <a>26111</a> - <b>26112</b> + <a>24227</a> + <b>24228</b> <v>1</v> </b> </bs> @@ -18604,7 +18460,7 @@ <b> <a>1</a> <b>2</b> - <v>57793</v> + <v>52811</v> </b> </bs> </hist> @@ -18620,7 +18476,7 @@ <b> <a>1</a> <b>2</b> - <v>57793</v> + <v>52811</v> </b> </bs> </hist> @@ -18630,26 +18486,26 @@ </relation> <relation> <name>ql_quantified_def</name> - <cardinality>26111</cardinality> + <cardinality>24227</cardinality> <columnsizes> <e> <k>id</k> - <v>26111</v> + <v>24227</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_quantified_expr</name> - <cardinality>4431</cardinality> + <cardinality>4452</cardinality> <columnsizes> <e> <k>ql_quantified</k> - <v>4431</v> + <v>4452</v> </e> <e> <k>expr</k> - <v>4431</v> + <v>4452</v> </e> </columnsizes> <dependencies> @@ -18663,7 +18519,7 @@ <b> <a>1</a> <b>2</b> - <v>4431</v> + <v>4452</v> </b> </bs> </hist> @@ -18679,7 +18535,7 @@ <b> <a>1</a> <b>2</b> - <v>4431</v> + <v>4452</v> </b> </bs> </hist> @@ -18689,15 +18545,15 @@ </relation> <relation> <name>ql_quantified_formula</name> - <cardinality>7682</cardinality> + <cardinality>7476</cardinality> <columnsizes> <e> <k>ql_quantified</k> - <v>7682</v> + <v>7476</v> </e> <e> <k>formula</k> - <v>7682</v> + <v>7476</v> </e> </columnsizes> <dependencies> @@ -18711,7 +18567,7 @@ <b> <a>1</a> <b>2</b> - <v>7682</v> + <v>7476</v> </b> </bs> </hist> @@ -18727,7 +18583,7 @@ <b> <a>1</a> <b>2</b> - <v>7682</v> + <v>7476</v> </b> </bs> </hist> @@ -18737,15 +18593,15 @@ </relation> <relation> <name>ql_quantified_range</name> - <cardinality>21641</cardinality> + <cardinality>19737</cardinality> <columnsizes> <e> <k>ql_quantified</k> - <v>21641</v> + <v>19737</v> </e> <e> <k>range</k> - <v>21641</v> + <v>19737</v> </e> </columnsizes> <dependencies> @@ -18759,7 +18615,7 @@ <b> <a>1</a> <b>2</b> - <v>21641</v> + <v>19737</v> </b> </bs> </hist> @@ -18775,7 +18631,7 @@ <b> <a>1</a> <b>2</b> - <v>21641</v> + <v>19737</v> </b> </bs> </hist> @@ -18785,19 +18641,19 @@ </relation> <relation> <name>ql_range_def</name> - <cardinality>417</cardinality> + <cardinality>365</cardinality> <columnsizes> <e> <k>id</k> - <v>417</v> + <v>365</v> </e> <e> <k>lower</k> - <v>417</v> + <v>365</v> </e> <e> <k>upper</k> - <v>417</v> + <v>365</v> </e> </columnsizes> <dependencies> @@ -18811,7 +18667,7 @@ <b> <a>1</a> <b>2</b> - <v>417</v> + <v>365</v> </b> </bs> </hist> @@ -18827,7 +18683,7 @@ <b> <a>1</a> <b>2</b> - <v>417</v> + <v>365</v> </b> </bs> </hist> @@ -18843,7 +18699,7 @@ <b> <a>1</a> <b>2</b> - <v>417</v> + <v>365</v> </b> </bs> </hist> @@ -18859,7 +18715,7 @@ <b> <a>1</a> <b>2</b> - <v>417</v> + <v>365</v> </b> </bs> </hist> @@ -18875,7 +18731,7 @@ <b> <a>1</a> <b>2</b> - <v>417</v> + <v>365</v> </b> </bs> </hist> @@ -18891,7 +18747,7 @@ <b> <a>1</a> <b>2</b> - <v>417</v> + <v>365</v> </b> </bs> </hist> @@ -18901,11 +18757,11 @@ </relation> <relation> <name>ql_select_child</name> - <cardinality>22594</cardinality> + <cardinality>23801</cardinality> <columnsizes> <e> <k>ql_select</k> - <v>5640</v> + <v>5989</v> </e> <e> <k>index</k> @@ -18913,7 +18769,7 @@ </e> <e> <k>child</k> - <v>22594</v> + <v>23801</v> </e> </columnsizes> <dependencies> @@ -18927,37 +18783,37 @@ <b> <a>1</a> <b>2</b> - <v>137</v> + <v>149</v> </b> <b> <a>2</a> <b>3</b> - <v>787</v> + <v>854</v> </b> <b> <a>3</a> <b>4</b> - <v>1249</v> + <v>1341</v> </b> <b> <a>4</a> <b>5</b> - <v>1613</v> + <v>1821</v> </b> <b> <a>5</a> <b>6</b> - <v>1087</v> + <v>1028</v> </b> <b> <a>6</a> <b>7</b> - <v>453</v> + <v>465</v> </b> <b> <a>7</a> <b>21</b> - <v>314</v> + <v>331</v> </b> </bs> </hist> @@ -18973,37 +18829,37 @@ <b> <a>1</a> <b>2</b> - <v>137</v> + <v>149</v> </b> <b> <a>2</a> <b>3</b> - <v>787</v> + <v>854</v> </b> <b> <a>3</a> <b>4</b> - <v>1249</v> + <v>1341</v> </b> <b> <a>4</a> <b>5</b> - <v>1613</v> + <v>1821</v> </b> <b> <a>5</a> <b>6</b> - <v>1087</v> + <v>1028</v> </b> <b> <a>6</a> <b>7</b> - <v>453</v> + <v>465</v> </b> <b> <a>7</a> <b>21</b> - <v>314</v> + <v>331</v> </b> </bs> </hist> @@ -19027,18 +18883,23 @@ <v>2</v> </b> <b> - <a>3</a> - <b>4</b> - <v>2</v> + <a>4</a> + <b>5</b> + <v>1</v> </b> <b> - <a>7</a> - <b>8</b> - <v>2</v> + <a>6</a> + <b>7</b> + <v>1</v> </b> <b> - <a>12</a> - <b>13</b> + <a>11</a> + <b>12</b> + <v>1</v> + </b> + <b> + <a>13</a> + <b>14</b> <v>1</v> </b> <b> @@ -19047,58 +18908,63 @@ <v>1</v> </b> <b> - <a>25</a> - <b>26</b> + <a>27</a> + <b>28</b> <v>1</v> </b> <b> - <a>37</a> - <b>38</b> + <a>29</a> + <b>30</b> <v>1</v> </b> <b> - <a>64</a> - <b>65</b> + <a>44</a> + <b>45</b> <v>1</v> </b> <b> - <a>150</a> - <b>151</b> + <a>71</a> + <b>72</b> <v>1</v> </b> <b> - <a>314</a> - <b>315</b> + <a>160</a> + <b>161</b> <v>1</v> </b> <b> - <a>767</a> - <b>768</b> + <a>331</a> + <b>332</b> <v>1</v> </b> <b> - <a>1854</a> - <b>1855</b> + <a>796</a> + <b>797</b> <v>1</v> </b> <b> - <a>3467</a> - <b>3468</b> + <a>1824</a> + <b>1825</b> <v>1</v> </b> <b> - <a>4716</a> - <b>4717</b> + <a>3645</a> + <b>3646</b> <v>1</v> </b> <b> - <a>5503</a> - <b>5504</b> + <a>4986</a> + <b>4987</b> <v>1</v> </b> <b> - <a>5640</a> - <b>5641</b> + <a>5840</a> + <b>5841</b> + <v>1</v> + </b> + <b> + <a>5989</a> + <b>5990</b> <v>1</v> </b> </bs> @@ -19123,18 +18989,23 @@ <v>2</v> </b> <b> - <a>3</a> - <b>4</b> - <v>2</v> + <a>4</a> + <b>5</b> + <v>1</v> </b> <b> - <a>7</a> - <b>8</b> - <v>2</v> + <a>6</a> + <b>7</b> + <v>1</v> </b> <b> - <a>12</a> - <b>13</b> + <a>11</a> + <b>12</b> + <v>1</v> + </b> + <b> + <a>13</a> + <b>14</b> <v>1</v> </b> <b> @@ -19143,58 +19014,63 @@ <v>1</v> </b> <b> - <a>25</a> - <b>26</b> + <a>27</a> + <b>28</b> <v>1</v> </b> <b> - <a>37</a> - <b>38</b> + <a>29</a> + <b>30</b> <v>1</v> </b> <b> - <a>64</a> - <b>65</b> + <a>44</a> + <b>45</b> <v>1</v> </b> <b> - <a>150</a> - <b>151</b> + <a>71</a> + <b>72</b> <v>1</v> </b> <b> - <a>314</a> - <b>315</b> + <a>160</a> + <b>161</b> <v>1</v> </b> <b> - <a>767</a> - <b>768</b> + <a>331</a> + <b>332</b> <v>1</v> </b> <b> - <a>1854</a> - <b>1855</b> + <a>796</a> + <b>797</b> <v>1</v> </b> <b> - <a>3467</a> - <b>3468</b> + <a>1824</a> + <b>1825</b> <v>1</v> </b> <b> - <a>4716</a> - <b>4717</b> + <a>3645</a> + <b>3646</b> <v>1</v> </b> <b> - <a>5503</a> - <b>5504</b> + <a>4986</a> + <b>4987</b> <v>1</v> </b> <b> - <a>5640</a> - <b>5641</b> + <a>5840</a> + <b>5841</b> + <v>1</v> + </b> + <b> + <a>5989</a> + <b>5990</b> <v>1</v> </b> </bs> @@ -19211,7 +19087,7 @@ <b> <a>1</a> <b>2</b> - <v>22594</v> + <v>23801</v> </b> </bs> </hist> @@ -19227,7 +19103,7 @@ <b> <a>1</a> <b>2</b> - <v>22594</v> + <v>23801</v> </b> </bs> </hist> @@ -19237,22 +19113,22 @@ </relation> <relation> <name>ql_select_def</name> - <cardinality>5640</cardinality> + <cardinality>5989</cardinality> <columnsizes> <e> <k>id</k> - <v>5640</v> + <v>5989</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_set_literal_child</name> - <cardinality>18133</cardinality> + <cardinality>20149</cardinality> <columnsizes> <e> <k>ql_set_literal</k> - <v>3557</v> + <v>4014</v> </e> <e> <k>index</k> @@ -19260,7 +19136,7 @@ </e> <e> <k>child</k> - <v>18133</v> + <v>20149</v> </e> </columnsizes> <dependencies> @@ -19274,37 +19150,37 @@ <b> <a>1</a> <b>2</b> - <v>5</v> + <v>9</v> </b> <b> <a>2</a> <b>3</b> - <v>2131</v> + <v>2354</v> </b> <b> <a>3</a> <b>4</b> - <v>426</v> + <v>506</v> </b> <b> <a>4</a> <b>5</b> - <v>309</v> + <v>351</v> </b> <b> <a>5</a> <b>7</b> - <v>258</v> + <v>291</v> </b> <b> <a>7</a> - <b>14</b> - <v>276</v> + <b>13</b> + <v>315</v> </b> <b> - <a>14</a> + <a>13</a> <b>1029</b> - <v>152</v> + <v>188</v> </b> </bs> </hist> @@ -19320,37 +19196,37 @@ <b> <a>1</a> <b>2</b> - <v>5</v> + <v>9</v> </b> <b> <a>2</a> <b>3</b> - <v>2131</v> + <v>2354</v> </b> <b> <a>3</a> <b>4</b> - <v>426</v> + <v>506</v> </b> <b> <a>4</a> <b>5</b> - <v>309</v> + <v>351</v> </b> <b> <a>5</a> <b>7</b> - <v>258</v> + <v>291</v> </b> <b> <a>7</a> - <b>14</b> - <v>276</v> + <b>13</b> + <v>315</v> </b> <b> - <a>14</a> + <a>13</a> <b>1029</b> - <v>152</v> + <v>188</v> </b> </bs> </hist> @@ -19375,23 +19251,23 @@ </b> <b> <a>3</a> - <b>6</b> - <v>94</v> + <b>5</b> + <v>63</v> </b> <b> - <a>6</a> - <b>11</b> - <v>84</v> + <a>5</a> + <b>9</b> + <v>90</v> </b> <b> - <a>11</a> - <b>31</b> - <v>79</v> + <a>9</a> + <b>19</b> + <v>83</v> </b> <b> - <a>31</a> - <b>3558</b> - <v>49</v> + <a>19</a> + <b>4015</b> + <v>70</v> </b> </bs> </hist> @@ -19416,23 +19292,23 @@ </b> <b> <a>3</a> - <b>6</b> - <v>94</v> + <b>5</b> + <v>63</v> </b> <b> - <a>6</a> - <b>11</b> - <v>84</v> + <a>5</a> + <b>9</b> + <v>90</v> </b> <b> - <a>11</a> - <b>31</b> - <v>79</v> + <a>9</a> + <b>19</b> + <v>83</v> </b> <b> - <a>31</a> - <b>3558</b> - <v>49</v> + <a>19</a> + <b>4015</b> + <v>70</v> </b> </bs> </hist> @@ -19448,7 +19324,7 @@ <b> <a>1</a> <b>2</b> - <v>18133</v> + <v>20149</v> </b> </bs> </hist> @@ -19464,7 +19340,7 @@ <b> <a>1</a> <b>2</b> - <v>18133</v> + <v>20149</v> </b> </bs> </hist> @@ -19474,37 +19350,37 @@ </relation> <relation> <name>ql_set_literal_def</name> - <cardinality>3557</cardinality> + <cardinality>4014</cardinality> <columnsizes> <e> <k>id</k> - <v>3557</v> + <v>4014</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_signature_expr_def</name> - <cardinality>2248</cardinality> + <cardinality>3709</cardinality> <columnsizes> <e> <k>id</k> - <v>2248</v> + <v>3709</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_signature_expr_mod_expr</name> - <cardinality>92</cardinality> + <cardinality>180</cardinality> <columnsizes> <e> <k>ql_signature_expr</k> - <v>92</v> + <v>180</v> </e> <e> <k>mod_expr</k> - <v>92</v> + <v>180</v> </e> </columnsizes> <dependencies> @@ -19518,7 +19394,7 @@ <b> <a>1</a> <b>2</b> - <v>92</v> + <v>180</v> </b> </bs> </hist> @@ -19534,7 +19410,7 @@ <b> <a>1</a> <b>2</b> - <v>92</v> + <v>180</v> </b> </bs> </hist> @@ -19544,15 +19420,15 @@ </relation> <relation> <name>ql_signature_expr_predicate</name> - <cardinality>149</cardinality> + <cardinality>232</cardinality> <columnsizes> <e> <k>ql_signature_expr</k> - <v>149</v> + <v>232</v> </e> <e> <k>predicate</k> - <v>149</v> + <v>232</v> </e> </columnsizes> <dependencies> @@ -19566,7 +19442,7 @@ <b> <a>1</a> <b>2</b> - <v>149</v> + <v>232</v> </b> </bs> </hist> @@ -19582,7 +19458,7 @@ <b> <a>1</a> <b>2</b> - <v>149</v> + <v>232</v> </b> </bs> </hist> @@ -19592,15 +19468,15 @@ </relation> <relation> <name>ql_signature_expr_type_expr</name> - <cardinality>2007</cardinality> + <cardinality>3297</cardinality> <columnsizes> <e> <k>ql_signature_expr</k> - <v>2007</v> + <v>3297</v> </e> <e> <k>type_expr</k> - <v>2007</v> + <v>3297</v> </e> </columnsizes> <dependencies> @@ -19614,7 +19490,7 @@ <b> <a>1</a> <b>2</b> - <v>2007</v> + <v>3297</v> </b> </bs> </hist> @@ -19630,7 +19506,7 @@ <b> <a>1</a> <b>2</b> - <v>2007</v> + <v>3297</v> </b> </bs> </hist> @@ -19640,15 +19516,15 @@ </relation> <relation> <name>ql_special_call_def</name> - <cardinality>4863</cardinality> + <cardinality>4424</cardinality> <columnsizes> <e> <k>id</k> - <v>4863</v> + <v>4424</v> </e> <e> <k>child</k> - <v>4863</v> + <v>4424</v> </e> </columnsizes> <dependencies> @@ -19662,7 +19538,7 @@ <b> <a>1</a> <b>2</b> - <v>4863</v> + <v>4424</v> </b> </bs> </hist> @@ -19678,7 +19554,7 @@ <b> <a>1</a> <b>2</b> - <v>4863</v> + <v>4424</v> </b> </bs> </hist> @@ -19688,11 +19564,11 @@ </relation> <relation> <name>ql_super_ref_child</name> - <cardinality>3070</cardinality> + <cardinality>3530</cardinality> <columnsizes> <e> <k>ql_super_ref</k> - <v>2444</v> + <v>2901</v> </e> <e> <k>index</k> @@ -19700,7 +19576,7 @@ </e> <e> <k>child</k> - <v>3070</v> + <v>3530</v> </e> </columnsizes> <dependencies> @@ -19714,12 +19590,12 @@ <b> <a>1</a> <b>2</b> - <v>1818</v> + <v>2272</v> </b> <b> <a>2</a> <b>3</b> - <v>626</v> + <v>629</v> </b> </bs> </hist> @@ -19735,12 +19611,12 @@ <b> <a>1</a> <b>2</b> - <v>1818</v> + <v>2272</v> </b> <b> <a>2</a> <b>3</b> - <v>626</v> + <v>629</v> </b> </bs> </hist> @@ -19754,13 +19630,13 @@ <budget>12</budget> <bs> <b> - <a>626</a> - <b>627</b> + <a>629</a> + <b>630</b> <v>1</v> </b> <b> - <a>2444</a> - <b>2445</b> + <a>2901</a> + <b>2902</b> <v>1</v> </b> </bs> @@ -19775,13 +19651,13 @@ <budget>12</budget> <bs> <b> - <a>626</a> - <b>627</b> + <a>629</a> + <b>630</b> <v>1</v> </b> <b> - <a>2444</a> - <b>2445</b> + <a>2901</a> + <b>2902</b> <v>1</v> </b> </bs> @@ -19798,7 +19674,7 @@ <b> <a>1</a> <b>2</b> - <v>3070</v> + <v>3530</v> </b> </bs> </hist> @@ -19814,7 +19690,7 @@ <b> <a>1</a> <b>2</b> - <v>3070</v> + <v>3530</v> </b> </bs> </hist> @@ -19824,22 +19700,22 @@ </relation> <relation> <name>ql_super_ref_def</name> - <cardinality>2444</cardinality> + <cardinality>2901</cardinality> <columnsizes> <e> <k>id</k> - <v>2444</v> + <v>2901</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_tokeninfo</name> - <cardinality>3697389</cardinality> + <cardinality>3524470</cardinality> <columnsizes> <e> <k>id</k> - <v>3697389</v> + <v>3524470</v> </e> <e> <k>kind</k> @@ -19847,7 +19723,7 @@ </e> <e> <k>value</k> - <v>145712</v> + <v>159352</v> </e> </columnsizes> <dependencies> @@ -19861,7 +19737,7 @@ <b> <a>1</a> <b>2</b> - <v>3697389</v> + <v>3524470</v> </b> </bs> </hist> @@ -19877,7 +19753,7 @@ <b> <a>1</a> <b>2</b> - <v>3697389</v> + <v>3524470</v> </b> </bs> </hist> @@ -19891,83 +19767,83 @@ <budget>12</budget> <bs> <b> - <a>200</a> - <b>297</b> + <a>205</a> + <b>306</b> <v>2</v> </b> <b> - <a>631</a> - <b>1062</b> + <a>585</a> + <b>993</b> <v>2</v> </b> <b> - <a>1171</a> - <b>2124</b> + <a>1158</a> + <b>1974</b> <v>2</v> </b> <b> - <a>2391</a> - <b>2445</b> + <a>2234</a> + <b>2302</b> <v>2</v> </b> <b> - <a>2648</a> - <b>2684</b> + <a>2344</a> + <b>2902</b> <v>2</v> </b> <b> - <a>3604</a> - <b>4864</b> + <a>3766</a> + <b>4425</b> <v>2</v> </b> <b> - <a>9694</a> - <b>14858</b> + <a>9053</a> + <b>13787</b> <v>2</v> </b> <b> - <a>20351</a> - <b>20707</b> + <a>17184</a> + <b>20889</b> <v>2</v> </b> <b> - <a>20738</a> - <b>26112</b> + <a>21612</a> + <b>24228</b> <v>2</v> </b> <b> - <a>28901</a> - <b>49385</b> + <a>26200</a> + <b>47957</b> <v>2</v> </b> <b> - <a>53091</a> - <b>55182</b> + <a>50826</a> + <b>52494</b> <v>2</v> </b> <b> - <a>56786</a> - <b>67460</b> + <a>55406</a> + <b>58185</b> <v>2</v> </b> <b> - <a>73436</a> - <b>75428</b> + <a>66480</a> + <b>83939</b> <v>2</v> </b> <b> - <a>138784</a> - <b>224656</b> + <a>140334</a> + <b>204254</b> <v>2</v> </b> <b> - <a>229368</a> - <b>542287</b> + <a>221079</a> + <b>512065</b> <v>2</v> </b> <b> - <a>1966059</a> - <b>1966060</b> + <a>1875319</a> + <b>1875320</b> <v>1</v> </b> </bs> @@ -20003,7 +19879,7 @@ </b> <b> <a>12</a> - <b>19</b> + <b>18</b> <v>2</v> </b> <b> @@ -20012,28 +19888,28 @@ <v>2</v> </b> <b> - <a>173</a> - <b>883</b> + <a>635</a> + <b>858</b> <v>2</v> </b> <b> - <a>2434</a> - <b>11721</b> + <a>2472</a> + <b>12791</b> <v>2</v> </b> <b> - <a>14851</a> - <b>14868</b> + <a>15738</a> + <b>15845</b> <v>2</v> </b> <b> - <a>18243</a> - <b>20539</b> + <a>18782</a> + <b>21406</b> <v>2</v> </b> <b> - <a>35688</a> - <b>41928</b> + <a>42941</a> + <b>44802</b> <v>2</v> </b> </bs> @@ -20050,32 +19926,32 @@ <b> <a>1</a> <b>2</b> - <v>85140</v> + <v>96196</v> </b> <b> <a>2</a> <b>3</b> - <v>21743</v> + <v>23735</v> </b> <b> <a>3</a> <b>4</b> - <v>10555</v> + <v>11475</v> </b> <b> <a>4</a> <b>7</b> - <v>13169</v> + <v>13411</v> </b> <b> <a>7</a> - <b>27</b> - <v>11024</v> + <b>41</b> + <v>12004</v> </b> <b> - <a>27</a> - <b>371333</b> - <v>4081</v> + <a>41</a> + <b>348424</b> + <v>2531</v> </b> </bs> </hist> @@ -20091,17 +19967,17 @@ <b> <a>1</a> <b>2</b> - <v>130386</v> + <v>142727</v> </b> <b> <a>2</a> <b>3</b> - <v>14775</v> + <v>16072</v> </b> <b> <a>3</a> <b>5</b> - <v>551</v> + <v>553</v> </b> </bs> </hist> @@ -20111,15 +19987,15 @@ </relation> <relation> <name>ql_type_alias_body_def</name> - <cardinality>1245</cardinality> + <cardinality>817</cardinality> <columnsizes> <e> <k>id</k> - <v>1245</v> + <v>817</v> </e> <e> <k>child</k> - <v>1245</v> + <v>817</v> </e> </columnsizes> <dependencies> @@ -20133,7 +20009,7 @@ <b> <a>1</a> <b>2</b> - <v>1245</v> + <v>817</v> </b> </bs> </hist> @@ -20149,7 +20025,7 @@ <b> <a>1</a> <b>2</b> - <v>1245</v> + <v>817</v> </b> </bs> </hist> @@ -20159,15 +20035,15 @@ </relation> <relation> <name>ql_type_expr_child</name> - <cardinality>52988</cardinality> + <cardinality>51722</cardinality> <columnsizes> <e> <k>ql_type_expr</k> - <v>52988</v> + <v>51722</v> </e> <e> <k>child</k> - <v>52988</v> + <v>51722</v> </e> </columnsizes> <dependencies> @@ -20181,7 +20057,7 @@ <b> <a>1</a> <b>2</b> - <v>52988</v> + <v>51722</v> </b> </bs> </hist> @@ -20197,7 +20073,7 @@ <b> <a>1</a> <b>2</b> - <v>52988</v> + <v>51722</v> </b> </bs> </hist> @@ -20207,26 +20083,26 @@ </relation> <relation> <name>ql_type_expr_def</name> - <cardinality>236975</cardinality> + <cardinality>218057</cardinality> <columnsizes> <e> <k>id</k> - <v>236975</v> + <v>218057</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_type_expr_name</name> - <cardinality>183987</cardinality> + <cardinality>166335</cardinality> <columnsizes> <e> <k>ql_type_expr</k> - <v>183987</v> + <v>166335</v> </e> <e> <k>name</k> - <v>183987</v> + <v>166335</v> </e> </columnsizes> <dependencies> @@ -20240,7 +20116,7 @@ <b> <a>1</a> <b>2</b> - <v>183987</v> + <v>166335</v> </b> </bs> </hist> @@ -20256,7 +20132,7 @@ <b> <a>1</a> <b>2</b> - <v>183987</v> + <v>166335</v> </b> </bs> </hist> @@ -20266,15 +20142,15 @@ </relation> <relation> <name>ql_type_expr_qualifier</name> - <cardinality>32598</cardinality> + <cardinality>34602</cardinality> <columnsizes> <e> <k>ql_type_expr</k> - <v>32598</v> + <v>34602</v> </e> <e> <k>qualifier</k> - <v>32598</v> + <v>34602</v> </e> </columnsizes> <dependencies> @@ -20288,7 +20164,7 @@ <b> <a>1</a> <b>2</b> - <v>32598</v> + <v>34602</v> </b> </bs> </hist> @@ -20304,7 +20180,7 @@ <b> <a>1</a> <b>2</b> - <v>32598</v> + <v>34602</v> </b> </bs> </hist> @@ -20314,11 +20190,11 @@ </relation> <relation> <name>ql_type_union_body_child</name> - <cardinality>1152</cardinality> + <cardinality>1174</cardinality> <columnsizes> <e> <k>ql_type_union_body</k> - <v>249</v> + <v>253</v> </e> <e> <k>index</k> @@ -20326,7 +20202,7 @@ </e> <e> <k>child</k> - <v>1152</v> + <v>1174</v> </e> </columnsizes> <dependencies> @@ -20340,7 +20216,7 @@ <b> <a>2</a> <b>3</b> - <v>117</v> + <v>121</v> </b> <b> <a>3</a> @@ -20350,12 +20226,12 @@ <b> <a>4</a> <b>5</b> - <v>35</v> + <v>32</v> </b> <b> <a>5</a> <b>6</b> - <v>14</v> + <v>17</v> </b> <b> <a>6</a> @@ -20381,7 +20257,7 @@ <b> <a>2</a> <b>3</b> - <v>117</v> + <v>121</v> </b> <b> <a>3</a> @@ -20391,12 +20267,12 @@ <b> <a>4</a> <b>5</b> - <v>35</v> + <v>32</v> </b> <b> <a>5</a> <b>6</b> - <v>14</v> + <v>17</v> </b> <b> <a>6</a> @@ -20422,32 +20298,27 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>98</v> </b> <b> <a>2</a> <b>3</b> - <v>15</v> + <v>21</v> </b> <b> <a>3</a> - <b>4</b> - <v>2</v> - </b> - <b> - <a>4</a> <b>5</b> <v>13</v> </b> <b> <a>5</a> - <b>21</b> + <b>18</b> <v>12</v> </b> <b> - <a>23</a> - <b>250</b> - <v>7</v> + <a>19</a> + <b>254</b> + <v>9</v> </b> </bs> </hist> @@ -20463,32 +20334,27 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>98</v> </b> <b> <a>2</a> <b>3</b> - <v>15</v> + <v>21</v> </b> <b> <a>3</a> - <b>4</b> - <v>2</v> - </b> - <b> - <a>4</a> <b>5</b> <v>13</v> </b> <b> <a>5</a> - <b>21</b> + <b>18</b> <v>12</v> </b> <b> - <a>23</a> - <b>250</b> - <v>7</v> + <a>19</a> + <b>254</b> + <v>9</v> </b> </bs> </hist> @@ -20504,7 +20370,7 @@ <b> <a>1</a> <b>2</b> - <v>1152</v> + <v>1174</v> </b> </bs> </hist> @@ -20520,7 +20386,7 @@ <b> <a>1</a> <b>2</b> - <v>1152</v> + <v>1174</v> </b> </bs> </hist> @@ -20530,22 +20396,22 @@ </relation> <relation> <name>ql_type_union_body_def</name> - <cardinality>249</cardinality> + <cardinality>253</cardinality> <columnsizes> <e> <k>id</k> - <v>249</v> + <v>253</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_unary_expr_child</name> - <cardinality>2342</cardinality> + <cardinality>2316</cardinality> <columnsizes> <e> <k>ql_unary_expr</k> - <v>1171</v> + <v>1158</v> </e> <e> <k>index</k> @@ -20553,7 +20419,7 @@ </e> <e> <k>child</k> - <v>2342</v> + <v>2316</v> </e> </columnsizes> <dependencies> @@ -20567,7 +20433,7 @@ <b> <a>2</a> <b>3</b> - <v>1171</v> + <v>1158</v> </b> </bs> </hist> @@ -20583,7 +20449,7 @@ <b> <a>2</a> <b>3</b> - <v>1171</v> + <v>1158</v> </b> </bs> </hist> @@ -20597,8 +20463,8 @@ <budget>12</budget> <bs> <b> - <a>1171</a> - <b>1172</b> + <a>1158</a> + <b>1159</b> <v>2</v> </b> </bs> @@ -20613,8 +20479,8 @@ <budget>12</budget> <bs> <b> - <a>1171</a> - <b>1172</b> + <a>1158</a> + <b>1159</b> <v>2</v> </b> </bs> @@ -20631,7 +20497,7 @@ <b> <a>1</a> <b>2</b> - <v>2342</v> + <v>2316</v> </b> </bs> </hist> @@ -20647,7 +20513,7 @@ <b> <a>1</a> <b>2</b> - <v>2342</v> + <v>2316</v> </b> </bs> </hist> @@ -20657,11 +20523,11 @@ </relation> <relation> <name>ql_unary_expr_def</name> - <cardinality>1171</cardinality> + <cardinality>1158</cardinality> <columnsizes> <e> <k>id</k> - <v>1171</v> + <v>1158</v> </e> </columnsizes> <dependencies/> @@ -20911,11 +20777,11 @@ </relation> <relation> <name>ql_var_decl_child</name> - <cardinality>258882</cardinality> + <cardinality>228274</cardinality> <columnsizes> <e> <k>ql_var_decl</k> - <v>129441</v> + <v>114137</v> </e> <e> <k>index</k> @@ -20923,7 +20789,7 @@ </e> <e> <k>child</k> - <v>258882</v> + <v>228274</v> </e> </columnsizes> <dependencies> @@ -20937,7 +20803,7 @@ <b> <a>2</a> <b>3</b> - <v>129441</v> + <v>114137</v> </b> </bs> </hist> @@ -20953,7 +20819,7 @@ <b> <a>2</a> <b>3</b> - <v>129441</v> + <v>114137</v> </b> </bs> </hist> @@ -20967,8 +20833,8 @@ <budget>12</budget> <bs> <b> - <a>129441</a> - <b>129442</b> + <a>114137</a> + <b>114138</b> <v>2</v> </b> </bs> @@ -20983,8 +20849,8 @@ <budget>12</budget> <bs> <b> - <a>129441</a> - <b>129442</b> + <a>114137</a> + <b>114138</b> <v>2</v> </b> </bs> @@ -21001,7 +20867,7 @@ <b> <a>1</a> <b>2</b> - <v>258882</v> + <v>228274</v> </b> </bs> </hist> @@ -21017,7 +20883,7 @@ <b> <a>1</a> <b>2</b> - <v>258882</v> + <v>228274</v> </b> </bs> </hist> @@ -21027,26 +20893,26 @@ </relation> <relation> <name>ql_var_decl_def</name> - <cardinality>129441</cardinality> + <cardinality>114137</cardinality> <columnsizes> <e> <k>id</k> - <v>129441</v> + <v>114137</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>ql_var_name_def</name> - <cardinality>415356</cardinality> + <cardinality>380908</cardinality> <columnsizes> <e> <k>id</k> - <v>415356</v> + <v>380908</v> </e> <e> <k>child</k> - <v>415356</v> + <v>380908</v> </e> </columnsizes> <dependencies> @@ -21060,7 +20926,7 @@ <b> <a>1</a> <b>2</b> - <v>415356</v> + <v>380908</v> </b> </bs> </hist> @@ -21076,7 +20942,7 @@ <b> <a>1</a> <b>2</b> - <v>415356</v> + <v>380908</v> </b> </bs> </hist> @@ -21086,15 +20952,15 @@ </relation> <relation> <name>ql_variable_def</name> - <cardinality>393587</cardinality> + <cardinality>369462</cardinality> <columnsizes> <e> <k>id</k> - <v>393587</v> + <v>369462</v> </e> <e> <k>child</k> - <v>393587</v> + <v>369462</v> </e> </columnsizes> <dependencies> @@ -21108,7 +20974,7 @@ <b> <a>1</a> <b>2</b> - <v>393587</v> + <v>369462</v> </b> </bs> </hist> @@ -21124,7 +20990,7 @@ <b> <a>1</a> <b>2</b> - <v>393587</v> + <v>369462</v> </b> </bs> </hist> @@ -21145,11 +21011,11 @@ </relation> <relation> <name>yaml</name> - <cardinality>1348</cardinality> + <cardinality>1726</cardinality> <columnsizes> <e> <k>id</k> - <v>1348</v> + <v>1726</v> </e> <e> <k>kind</k> @@ -21157,7 +21023,7 @@ </e> <e> <k>parent</k> - <v>304</v> + <v>350</v> </e> <e> <k>idx</k> @@ -21169,7 +21035,7 @@ </e> <e> <k>tostring</k> - <v>236</v> + <v>263</v> </e> </columnsizes> <dependencies> @@ -21183,7 +21049,7 @@ <b> <a>1</a> <b>2</b> - <v>1348</v> + <v>1726</v> </b> </bs> </hist> @@ -21199,7 +21065,7 @@ <b> <a>1</a> <b>2</b> - <v>1348</v> + <v>1726</v> </b> </bs> </hist> @@ -21215,7 +21081,7 @@ <b> <a>1</a> <b>2</b> - <v>1348</v> + <v>1726</v> </b> </bs> </hist> @@ -21231,7 +21097,7 @@ <b> <a>1</a> <b>2</b> - <v>1348</v> + <v>1726</v> </b> </bs> </hist> @@ -21247,7 +21113,7 @@ <b> <a>1</a> <b>2</b> - <v>1348</v> + <v>1726</v> </b> </bs> </hist> @@ -21261,18 +21127,18 @@ <budget>12</budget> <bs> <b> - <a>52</a> - <b>53</b> + <a>59</a> + <b>60</b> <v>1</v> </b> <b> - <a>160</a> - <b>161</b> + <a>186</a> + <b>187</b> <v>1</v> </b> <b> - <a>1136</a> - <b>1137</b> + <a>1481</a> + <b>1482</b> <v>1</v> </b> </bs> @@ -21287,18 +21153,18 @@ <budget>12</budget> <bs> <b> - <a>49</a> - <b>50</b> + <a>56</a> + <b>57</b> <v>1</v> </b> <b> - <a>160</a> - <b>161</b> + <a>186</a> + <b>187</b> <v>1</v> </b> <b> - <a>212</a> - <b>213</b> + <a>245</a> + <b>246</b> <v>1</v> </b> </bs> @@ -21360,18 +21226,18 @@ <budget>12</budget> <bs> <b> - <a>32</a> - <b>33</b> + <a>33</a> + <b>34</b> <v>1</v> </b> <b> - <a>59</a> - <b>60</b> + <a>68</a> + <b>69</b> <v>1</v> </b> <b> - <a>145</a> - <b>146</b> + <a>162</a> + <b>163</b> <v>1</v> </b> </bs> @@ -21388,37 +21254,47 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>118</v> </b> <b> <a>2</a> <b>3</b> - <v>68</v> + <v>71</v> </b> <b> <a>3</a> + <b>4</b> + <v>8</v> + </b> + <b> + <a>4</a> <b>5</b> - <v>25</v> + <v>26</v> </b> <b> <a>6</a> <b>7</b> - <v>47</v> + <v>26</v> </b> <b> <a>8</a> <b>9</b> - <v>18</v> + <v>30</v> </b> <b> <a>10</a> - <b>15</b> - <v>25</v> + <b>11</b> + <v>16</v> </b> <b> - <a>16</a> + <a>12</a> + <b>13</b> + <v>30</v> + </b> + <b> + <a>14</a> <b>21</b> - <v>17</v> + <v>25</v> </b> </bs> </hist> @@ -21434,17 +21310,17 @@ <b> <a>1</a> <b>2</b> - <v>230</v> + <v>262</v> </b> <b> <a>2</a> <b>3</b> - <v>31</v> + <v>39</v> </b> <b> <a>3</a> <b>4</b> - <v>43</v> + <v>49</v> </b> </bs> </hist> @@ -21460,37 +21336,47 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>118</v> </b> <b> <a>2</a> <b>3</b> - <v>68</v> + <v>71</v> </b> <b> <a>3</a> + <b>4</b> + <v>8</v> + </b> + <b> + <a>4</a> <b>5</b> - <v>25</v> + <v>26</v> </b> <b> <a>6</a> <b>7</b> - <v>47</v> + <v>26</v> </b> <b> <a>8</a> <b>9</b> - <v>18</v> + <v>30</v> </b> <b> <a>10</a> - <b>15</b> - <v>25</v> + <b>11</b> + <v>16</v> </b> <b> - <a>16</a> + <a>12</a> + <b>13</b> + <v>30</v> + </b> + <b> + <a>14</a> <b>21</b> - <v>17</v> + <v>25</v> </b> </bs> </hist> @@ -21506,22 +21392,22 @@ <b> <a>1</a> <b>2</b> - <v>215</v> + <v>245</v> </b> <b> <a>2</a> <b>3</b> - <v>40</v> + <v>15</v> </b> <b> <a>3</a> <b>4</b> - <v>24</v> + <v>41</v> </b> <b> <a>4</a> <b>5</b> - <v>25</v> + <v>49</v> </b> </bs> </hist> @@ -21537,47 +21423,47 @@ <b> <a>1</a> <b>2</b> - <v>104</v> + <v>118</v> </b> <b> <a>2</a> <b>3</b> - <v>68</v> + <v>71</v> </b> <b> <a>3</a> <b>4</b> - <v>19</v> + <v>22</v> </b> <b> <a>4</a> <b>5</b> - <v>29</v> + <v>35</v> </b> <b> <a>5</a> - <b>6</b> - <v>5</v> - </b> - <b> - <a>6</a> - <b>7</b> - <v>25</v> + <b>8</b> + <v>10</v> </b> <b> <a>8</a> - <b>11</b> - <v>23</v> + <b>9</b> + <v>29</v> </b> <b> - <a>11</a> + <a>9</a> + <b>12</b> + <v>27</v> + </b> + <b> + <a>12</a> <b>17</b> - <v>23</v> + <v>29</v> </b> <b> <a>17</a> <b>19</b> - <v>8</v> + <v>9</v> </b> </bs> </hist> @@ -21596,63 +21482,63 @@ <v>2</v> </b> <b> - <a>10</a> - <b>11</b> + <a>11</a> + <b>12</b> <v>2</v> </b> <b> - <a>17</a> - <b>18</b> + <a>19</a> + <b>20</b> <v>2</v> </b> <b> - <a>20</a> - <b>21</b> + <a>25</a> + <b>26</b> <v>2</v> </b> <b> - <a>31</a> - <b>32</b> + <a>55</a> + <b>56</b> <v>2</v> </b> <b> - <a>42</a> - <b>43</b> + <a>71</a> + <b>72</b> <v>2</v> </b> <b> - <a>60</a> - <b>61</b> + <a>101</a> + <b>102</b> <v>2</v> </b> <b> - <a>107</a> - <b>108</b> + <a>127</a> + <b>128</b> <v>2</v> </b> <b> - <a>126</a> - <b>127</b> + <a>153</a> + <b>154</b> <v>1</v> </b> <b> - <a>132</a> - <b>133</b> + <a>161</a> + <b>162</b> <v>1</v> </b> <b> - <a>144</a> - <b>145</b> + <a>164</a> + <b>165</b> <v>1</v> </b> <b> - <a>160</a> - <b>161</b> + <a>186</a> + <b>187</b> <v>1</v> </b> <b> - <a>200</a> - <b>201</b> + <a>232</a> + <b>233</b> <v>1</v> </b> </bs> @@ -21698,63 +21584,63 @@ <v>2</v> </b> <b> - <a>10</a> - <b>11</b> + <a>11</a> + <b>12</b> <v>2</v> </b> <b> - <a>17</a> - <b>18</b> + <a>19</a> + <b>20</b> <v>2</v> </b> <b> - <a>20</a> - <b>21</b> + <a>25</a> + <b>26</b> <v>2</v> </b> <b> - <a>31</a> - <b>32</b> + <a>55</a> + <b>56</b> <v>2</v> </b> <b> - <a>42</a> - <b>43</b> + <a>71</a> + <b>72</b> <v>2</v> </b> <b> - <a>60</a> - <b>61</b> + <a>101</a> + <b>102</b> <v>2</v> </b> <b> - <a>107</a> - <b>108</b> + <a>127</a> + <b>128</b> <v>2</v> </b> <b> - <a>126</a> - <b>127</b> + <a>153</a> + <b>154</b> <v>1</v> </b> <b> - <a>132</a> - <b>133</b> + <a>161</a> + <b>162</b> <v>1</v> </b> <b> - <a>144</a> - <b>145</b> + <a>164</a> + <b>165</b> <v>1</v> </b> <b> - <a>160</a> - <b>161</b> + <a>186</a> + <b>187</b> <v>1</v> </b> <b> - <a>200</a> - <b>201</b> + <a>232</a> + <b>233</b> <v>1</v> </b> </bs> @@ -21778,15 +21664,10 @@ <b>3</b> <v>3</v> </b> - <b> - <a>3</a> - <b>4</b> - <v>2</v> - </b> <b> <a>4</a> <b>5</b> - <v>4</v> + <v>6</v> </b> <b> <a>5</a> @@ -21814,20 +21695,10 @@ <b>3</b> <v>1</v> </b> - <b> - <a>3</a> - <b>4</b> - <v>2</v> - </b> <b> <a>4</a> <b>5</b> - <v>1</v> - </b> - <b> - <a>6</a> - <b>7</b> - <v>1</v> + <v>3</v> </b> <b> <a>7</a> @@ -21835,8 +21706,8 @@ <v>1</v> </b> <b> - <a>8</a> - <b>9</b> + <a>9</a> + <b>10</b> <v>2</v> </b> <b> @@ -21845,18 +21716,18 @@ <v>1</v> </b> <b> - <a>12</a> - <b>13</b> + <a>14</a> + <b>15</b> <v>1</v> </b> <b> - <a>17</a> - <b>18</b> + <a>16</a> + <b>17</b> <v>1</v> </b> <b> - <a>19</a> - <b>20</b> + <a>20</a> + <b>21</b> <v>1</v> </b> <b> @@ -21865,8 +21736,13 @@ <v>2</v> </b> <b> - <a>28</a> - <b>29</b> + <a>27</a> + <b>28</b> + <v>1</v> + </b> + <b> + <a>29</a> + <b>30</b> <v>1</v> </b> <b> @@ -21875,18 +21751,18 @@ <v>1</v> </b> <b> - <a>49</a> - <b>50</b> + <a>59</a> + <b>60</b> <v>1</v> </b> <b> - <a>71</a> - <b>72</b> + <a>80</a> + <b>81</b> <v>1</v> </b> <b> - <a>72</a> - <b>73</b> + <a>81</a> + <b>82</b> <v>1</v> </b> </bs> @@ -21905,24 +21781,24 @@ <b>3</b> <v>1</v> </b> - <b> - <a>52</a> - <b>53</b> - <v>1</v> - </b> <b> <a>59</a> <b>60</b> <v>1</v> </b> <b> - <a>160</a> - <b>161</b> + <a>137</a> + <b>138</b> <v>1</v> </b> <b> - <a>1075</a> - <b>1076</b> + <a>186</a> + <b>187</b> + <v>1</v> + </b> + <b> + <a>1342</a> + <b>1343</b> <v>1</v> </b> </bs> @@ -21958,23 +21834,23 @@ <v>1</v> </b> <b> - <a>44</a> - <b>45</b> + <a>56</a> + <b>57</b> <v>1</v> </b> <b> - <a>49</a> - <b>50</b> + <a>105</a> + <b>106</b> <v>1</v> </b> <b> - <a>160</a> - <b>161</b> + <a>186</a> + <b>187</b> <v>1</v> </b> <b> - <a>212</a> - <b>213</b> + <a>245</a> + <b>246</b> <v>1</v> </b> </bs> @@ -21996,16 +21872,16 @@ <b> <a>8</a> <b>9</b> - <v>2</v> + <v>1</v> </b> <b> <a>9</a> <b>10</b> - <v>1</v> + <v>2</v> </b> <b> - <a>18</a> - <b>19</b> + <a>19</a> + <b>20</b> <v>1</v> </b> </bs> @@ -22030,18 +21906,18 @@ <v>1</v> </b> <b> - <a>32</a> - <b>33</b> + <a>33</a> + <b>34</b> <v>1</v> </b> <b> - <a>59</a> - <b>60</b> + <a>68</a> + <b>69</b> <v>1</v> </b> <b> - <a>142</a> - <b>143</b> + <a>159</a> + <b>160</b> <v>1</v> </b> </bs> @@ -22058,37 +21934,37 @@ <b> <a>1</a> <b>2</b> - <v>123</v> + <v>141</v> </b> <b> <a>2</a> <b>3</b> - <v>29</v> + <v>28</v> </b> <b> <a>3</a> - <b>5</b> - <v>21</v> + <b>4</b> + <v>16</v> </b> <b> - <a>5</a> - <b>8</b> - <v>15</v> + <a>4</a> + <b>7</b> + <v>22</v> </b> <b> - <a>8</a> + <a>7</a> <b>10</b> - <v>15</v> + <v>18</v> </b> <b> <a>10</a> <b>17</b> - <v>20</v> + <v>21</v> </b> <b> <a>18</a> - <b>104</b> - <v>13</v> + <b>145</b> + <v>17</v> </b> </bs> </hist> @@ -22104,7 +21980,7 @@ <b> <a>1</a> <b>2</b> - <v>236</v> + <v>263</v> </b> </bs> </hist> @@ -22120,37 +21996,37 @@ <b> <a>1</a> <b>2</b> - <v>123</v> + <v>142</v> </b> <b> <a>2</a> <b>3</b> - <v>29</v> + <v>27</v> </b> <b> <a>3</a> - <b>5</b> + <b>4</b> + <v>16</v> + </b> + <b> + <a>4</a> + <b>7</b> + <v>22</v> + </b> + <b> + <a>7</a> + <b>10</b> <v>21</v> </b> <b> - <a>5</a> - <b>8</b> - <v>19</v> - </b> - <b> - <a>8</a> - <b>11</b> + <a>10</a> + <b>19</b> <v>21</v> </b> <b> - <a>11</a> - <b>45</b> - <v>18</v> - </b> - <b> - <a>49</a> - <b>84</b> - <v>5</v> + <a>19</a> + <b>106</b> + <v>14</v> </b> </bs> </hist> @@ -22166,7 +22042,7 @@ <b> <a>1</a> <b>2</b> - <v>159</v> + <v>179</v> </b> <b> <a>2</a> @@ -22176,7 +22052,7 @@ <b> <a>3</a> <b>4</b> - <v>20</v> + <v>24</v> </b> <b> <a>4</a> @@ -22185,8 +22061,8 @@ </b> <b> <a>8</a> - <b>9</b> - <v>2</v> + <b>10</b> + <v>5</v> </b> </bs> </hist> @@ -22202,7 +22078,7 @@ <b> <a>1</a> <b>2</b> - <v>236</v> + <v>263</v> </b> </bs> </hist> @@ -22338,15 +22214,15 @@ </relation> <relation> <name>yaml_locations</name> - <cardinality>1348</cardinality> + <cardinality>1726</cardinality> <columnsizes> <e> <k>locatable</k> - <v>1348</v> + <v>1726</v> </e> <e> <k>location</k> - <v>1348</v> + <v>1726</v> </e> </columnsizes> <dependencies> @@ -22360,7 +22236,7 @@ <b> <a>1</a> <b>2</b> - <v>1348</v> + <v>1726</v> </b> </bs> </hist> @@ -22376,7 +22252,7 @@ <b> <a>1</a> <b>2</b> - <v>1348</v> + <v>1726</v> </b> </bs> </hist> @@ -22386,11 +22262,11 @@ </relation> <relation> <name>yaml_scalars</name> - <cardinality>1136</cardinality> + <cardinality>1481</cardinality> <columnsizes> <e> <k>scalar</k> - <v>1136</v> + <v>1481</v> </e> <e> <k>style</k> @@ -22398,7 +22274,7 @@ </e> <e> <k>value</k> - <v>176</v> + <v>195</v> </e> </columnsizes> <dependencies> @@ -22412,7 +22288,7 @@ <b> <a>1</a> <b>2</b> - <v>1136</v> + <v>1481</v> </b> </bs> </hist> @@ -22428,7 +22304,7 @@ <b> <a>1</a> <b>2</b> - <v>1136</v> + <v>1481</v> </b> </bs> </hist> @@ -22442,18 +22318,18 @@ <budget>12</budget> <bs> <b> - <a>3</a> - <b>4</b> + <a>5</a> + <b>6</b> <v>1</v> </b> <b> - <a>40</a> - <b>41</b> + <a>41</a> + <b>42</b> <v>1</v> </b> <b> - <a>1093</a> - <b>1094</b> + <a>1435</a> + <b>1436</b> <v>1</v> </b> </bs> @@ -22473,13 +22349,13 @@ <v>1</v> </b> <b> - <a>2</a> - <b>3</b> + <a>3</a> + <b>4</b> <v>1</v> </b> <b> - <a>173</a> - <b>174</b> + <a>192</a> + <b>193</b> <v>1</v> </b> </bs> @@ -22496,37 +22372,42 @@ <b> <a>1</a> <b>2</b> - <v>89</v> + <v>101</v> </b> <b> <a>2</a> <b>3</b> - <v>17</v> + <v>16</v> </b> <b> <a>3</a> <b>4</b> - <v>13</v> + <v>17</v> </b> <b> <a>4</a> - <b>7</b> - <v>15</v> + <b>8</b> + <v>17</v> </b> <b> - <a>7</a> + <a>8</a> <b>10</b> - <v>14</v> + <v>12</v> </b> <b> <a>10</a> - <b>17</b> - <v>16</v> + <b>15</b> + <v>15</v> </b> <b> - <a>18</a> - <b>104</b> - <v>12</v> + <a>15</a> + <b>106</b> + <v>15</v> + </b> + <b> + <a>136</a> + <b>145</b> + <v>2</v> </b> </bs> </hist> @@ -22542,7 +22423,12 @@ <b> <a>1</a> <b>2</b> - <v>176</v> + <v>194</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> </b> </bs> </hist> From 22ddf2129b8f40a21332c67e3aa4132f27c5f47f Mon Sep 17 00:00:00 2001 From: Harry Maclean <hmac@github.com> Date: Tue, 19 Mar 2024 08:46:07 +0000 Subject: [PATCH 247/309] Ruby: remove isString from TSymbol --- ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll index c18474df099..09fdd8ef2f2 100644 --- a/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll +++ b/ruby/ql/lib/codeql/ruby/ast/internal/Constant.qll @@ -423,7 +423,7 @@ private module Cached { or s = any(StringComponentImpl c).getValue() } or - TSymbol(string s) { isString(_, s) or isSymbolExpr(_, s) } or + TSymbol(string s) { isSymbolExpr(_, s) } or TRegExp(string s, string flags) { isRegExp(_, s, flags) or From 42c5066cae49b6ff8e9c5aad31c7394d2135180d Mon Sep 17 00:00:00 2001 From: Cornelius Riemenschneider <cornelius@github.com> Date: Tue, 19 Mar 2024 13:40:45 +0100 Subject: [PATCH 248/309] Upgrade to bazel 7.1 --- .bazelversion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bazelversion b/.bazelversion index a8907c025d5..a3fcc7121bb 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -7.0.2 +7.1.0 From 90db9b330f6291aad7ea56b2bdced31ce3909753 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 15 Mar 2024 15:37:03 +0100 Subject: [PATCH 249/309] C#: Add MaD source and sink test query to shared library. --- .../csharp/dataflow/internal/ExternalFlow.qll | 4 +- .../dataflow/internal/FlowSummaryImpl.qll | 8 +- .../dataflow/library/FlowSummaries.ql | 17 +++++ .../dataflow/internal/FlowSummaryImpl.qll | 75 +++++++++++++++++-- 4 files changed, 90 insertions(+), 14 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index 5c985759b78..7e22351ee66 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -395,14 +395,14 @@ Declaration interpretElement( * A callable where there exists a MaD sink model that applies to it. */ class SinkCallable extends Callable { - SinkCallable() { SourceSinkInterpretationInput::sinkElement(this, _, _) } + SinkCallable() { SourceSinkInterpretationInput::sinkElement(this, _, _, _) } } /** * A callable where there exists a MaD source model that applies to it. */ class SourceCallable extends Callable { - SourceCallable() { SourceSinkInterpretationInput::sourceElement(this, _, _) } + SourceCallable() { SourceSinkInterpretationInput::sourceElement(this, _, _, _) } } cached diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index 19972a86ab6..f1113e6e437 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -160,20 +160,20 @@ module SourceSinkInterpretationInput implements class Element = Cs::Element; - predicate sourceElement(Element e, string output, string kind) { + predicate sourceElement(Element e, string output, string kind, Public::Provenance provenance) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext | - sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, _) and + sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance) and e = interpretElement(namespace, type, subtypes, name, signature, ext) ) } - predicate sinkElement(Element e, string input, string kind) { + predicate sinkElement(Element e, string input, string kind, Public::Provenance provenance) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext | - sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, _) and + sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance) and e = interpretElement(namespace, type, subtypes, name, signature, ext) ) } diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql index ee3ac53742a..76f5c8f8840 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql @@ -1,5 +1,6 @@ import shared.FlowSummaries import semmle.code.csharp.dataflow.internal.ExternalFlow +import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Private::External private class IncludeAllSummarizedCallable extends IncludeSummarizedCallable { IncludeAllSummarizedCallable() { exists(this) } @@ -9,3 +10,19 @@ private class IncludeNeutralSummarizedCallable extends RelevantNeutralCallable { /** Gets a string representing the callable in semi-colon separated format for use in flow summaries. */ final override string getCallableCsv() { result = asPartialNeutralModel(this) } } + +module TestSourceSinkInput implements TestSourceSinkInputSig { + class RelevantSourceCallable instanceof SourceCallable { + string getCallableCsv() { result = asPartialModel(this) } + + string toString() { result = super.toString() } + } + + class RelevantSinkCallable instanceof SinkCallable { + string getCallableCsv() { result = asPartialModel(this) } + + string toString() { result = super.toString() } + } +} + +import TestSourceSinkOutput<TestSourceSinkInput> diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index f3e840720ab..19a33ec810a 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -1468,13 +1468,13 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { * Holds if an external source specification exists for `n` with output specification * `output` and kind `kind`. */ - predicate sourceElement(Element n, string output, string kind); + predicate sourceElement(Element n, string output, string kind, Provenance provenance); /** * Holds if an external sink specification exists for `n` with input specification * `input` and kind `kind`. */ - predicate sinkElement(Element n, string input, string kind); + predicate sinkElement(Element n, string input, string kind, Provenance provenance); class SourceOrSinkElement extends Element; @@ -1529,8 +1529,8 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { private import SourceSinkInterpretationInput private predicate sourceSinkSpec(string spec) { - sourceElement(_, spec, _) or - sinkElement(_, spec, _) + sourceElement(_, spec, _, _) or + sinkElement(_, spec, _, _) } private module AccessPath = AccessPathSyntax::AccessPath<sourceSinkSpec/1>; @@ -1562,7 +1562,7 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { InterpretNode ref, SourceSinkAccessPath output, string kind ) { exists(SourceOrSinkElement e | - sourceElement(e, output, kind) and + sourceElement(e, output, kind, _) and if outputNeedsReferenceExt(output.getToken(0)) then e = ref.getCallTarget() else e = ref.asElement() @@ -1576,7 +1576,7 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { private predicate sinkElementRef(InterpretNode ref, SourceSinkAccessPath input, string kind) { exists(SourceOrSinkElement e | - sinkElement(e, input, kind) and + sinkElement(e, input, kind, _) and if inputNeedsReferenceExt(input.getToken(0)) then e = ref.getCallTarget() else e = ref.asElement() @@ -1691,6 +1691,63 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { interpretInput(input, input.getNumToken(), ref, node) ) } + + signature module TestSourceSinkInputSig { + /** + * A class or source elements relevant for testing. + */ + class RelevantSourceCallable instanceof SourceOrSinkElement { + /** Gets the string representation of this callable used by `source/1`. */ + string getCallableCsv(); + } + + /** + * A class or sink elements relevant for testing. + */ + class RelevantSinkCallable instanceof SourceOrSinkElement { + /** Gets the string representation of this callable used by `source/1`. */ + string getCallableCsv(); + } + } + + /** Provides query predicates for outputting a set of relevant sources and sinks. */ + module TestSourceSinkOutput<TestSourceSinkInputSig TestSourceSinkInput> { + private import TestSourceSinkInput + + /** + * Holds if there exists a relevant source callable with information roughly corresponding to `csv`. + * Used for testing. + * The syntax is: "namespace;type;overrides;name;signature;ext;outputspec;kind;provenance", + * ext is hardcoded to empty. + */ + query predicate source(string csv) { + exists(RelevantSourceCallable c, string output, string kind, Provenance provenance | + sourceElement(c, output, kind, provenance) and + csv = + c.getCallableCsv() // Callable information + + output + ";" // output + + kind + ";" // kind + + provenance // provenance + ) + } + + /** + * Holds if there exists a relevant sink callable with information roughly corresponding to `csv`. + * Used for testing. + * The syntax is: "namespace;type;overrides;name;signature;ext;inputspec;kind;provenance", + * ext is hardcoded to empty. + */ + query predicate sink(string csv) { + exists(RelevantSinkCallable c, string input, string kind, Provenance provenance | + sinkElement(c, input, kind, provenance) and + csv = + c.getCallableCsv() // Callable information + + input + ";" // input + + kind + ";" // kind + + provenance // provenance + ) + } + } } } @@ -1746,7 +1803,8 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { } /** - * A query predicate for outputting flow summaries in semi-colon separated format in QL tests. + * Holds if there exists a relevant summary callable with information roughly corresponding to `csv`. + * Used for testing. * The syntax is: "namespace;type;overrides;name;signature;ext;inputspec;outputspec;kind;provenance", * ext is hardcoded to empty. */ @@ -1766,7 +1824,8 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { } /** - * Holds if a neutral model `csv` exists (semi-colon separated format). Used for testing purposes. + * Holds if there exists a relevant neutral callable with information roughly corresponding to `csv`. + * Used for testing. * The syntax is: "namespace;type;name;signature;kind;provenance"", */ query predicate neutral(string csv) { From f36b48346eaa4343e4dc143cee73b58dfda77004 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 12:50:43 +0000 Subject: [PATCH 250/309] C++: Accept test changes. --- .../ir/range-analysis/SimpleRangeAnalysis_tests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp b/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp index 7b359a046d8..cd392210d47 100644 --- a/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp +++ b/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp @@ -1014,7 +1014,7 @@ void test_overflow() { if ((x + y) <= 512) { range(x); // $ range===2147483647 range(y); // $ range===256 - range(x + y); // $ range===-2147483393 + range(x + y); // $ range=<=2147483903 overflow=+ } } From a97891cbc131bb7fc94fbede286832a675db2cba Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 12:56:15 +0000 Subject: [PATCH 251/309] C++: Add QLDoc to 'getNumberOfBinaryOperands' (and rename it to 'getNumberOfNestedBinaryOperands'). --- .../ir/implementation/raw/internal/TranslatedElement.qll | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll index e96959f5a68..d258056f11f 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll @@ -40,9 +40,14 @@ IRTempVariable getIRTempVariable(Locatable ast, TempVariableTag tag) { result.getTag() = tag } +/** Gets an operand of `binOp`. */ private Expr getAnOperand(BinaryOperation binOp) { result = binOp.getAnOperand() } -private int getNumberOfBinaryOperands(BinaryOperation binOp) { +/** + * Gets the number of nested operands of `binOp`. For example, + * `getNumberOfNestedBinaryOperands((1 + 2) + 3))` is `3`. + */ +private int getNumberOfNestedBinaryOperands(BinaryOperation binOp) { result = count(getAnOperand*(binOp)) } @@ -60,7 +65,7 @@ predicate isIRConstant(Expr expr) { // But to avoid creating an outrageous amount of IR from very large // constant expressions we fall back to constant folding if the operation // has more than 50 operands (i.e., 1 + 2 + 3 + 4 + ... + 50) - if expr instanceof BinaryOperation then getNumberOfBinaryOperands(expr) > 50 else any() + if expr instanceof BinaryOperation then getNumberOfNestedBinaryOperands(expr) > 50 else any() } // Pulled out for performance. See From a88d8b260d516ca279ef83cee4d4b4becf662026 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 13:17:49 +0000 Subject: [PATCH 252/309] C++: Only ignore constant folding for certain binary operations. --- .../raw/internal/TranslatedElement.qll | 24 +- .../library-tests/ir/ir/PrintAST.expected | 386 +++++++++--------- .../library-tests/ir/ir/aliased_ir.expected | 60 +-- cpp/ql/test/library-tests/ir/ir/ir.cpp | 14 +- .../ir/ir/operand_locations.expected | 30 +- .../test/library-tests/ir/ir/raw_ir.expected | 71 +--- 6 files changed, 268 insertions(+), 317 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll index d258056f11f..51e3311a9a2 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll @@ -40,15 +40,25 @@ IRTempVariable getIRTempVariable(Locatable ast, TempVariableTag tag) { result.getTag() = tag } -/** Gets an operand of `binOp`. */ -private Expr getAnOperand(BinaryOperation binOp) { result = binOp.getAnOperand() } +/** Gets an operand of `op`. */ +private Expr getAnOperand(Operation op) { result = op.getAnOperand() } /** - * Gets the number of nested operands of `binOp`. For example, + * Gets the number of nested operands of `op`. For example, * `getNumberOfNestedBinaryOperands((1 + 2) + 3))` is `3`. */ -private int getNumberOfNestedBinaryOperands(BinaryOperation binOp) { - result = count(getAnOperand*(binOp)) +private int getNumberOfNestedBinaryOperands(Operation op) { result = count(getAnOperand*(op)) } + +/** + * Holds if `op` should not be translated to a `ConstantInstruction` as part of + * IR generation, even if the value of `op` is constant. + */ +private predicate ignoreConstantValue(Operation op) { + op instanceof BitwiseAndExpr + or + op instanceof BitwiseOrExpr + or + op instanceof BitwiseXorExpr } /** @@ -58,14 +68,14 @@ private int getNumberOfNestedBinaryOperands(BinaryOperation binOp) { */ predicate isIRConstant(Expr expr) { exists(expr.getValue()) and - // We avoid constant folding binary operations since it's often useful to + // We avoid constant folding certain operations since it's often useful to // mark one of those as a source in dataflow, and if the operation is // constant folded it's not possible to mark its operands as a source (or // sink). // But to avoid creating an outrageous amount of IR from very large // constant expressions we fall back to constant folding if the operation // has more than 50 operands (i.e., 1 + 2 + 3 + 4 + ... + 50) - if expr instanceof BinaryOperation then getNumberOfNestedBinaryOperands(expr) > 50 else any() + if ignoreConstantValue(expr) then getNumberOfNestedBinaryOperands(expr) > 50 else any() } // Pulled out for performance. See diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 11ca89a3b45..18bce41d0b2 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -18674,45 +18674,45 @@ ir.cpp: # 2381| <params>: # 2381| getEntryPoint(): [BlockStmt] { ... } # 2382| getStmt(0): [ReturnStmt] return ... -# 2382| getExpr(): [AddExpr] ... + ... +# 2382| getExpr(): [BitwiseXorExpr] ... ^ ... # 2382| Type = [IntType] int -# 2382| Value = [AddExpr] 2 +# 2382| Value = [BitwiseXorExpr] 3 # 2382| ValueCategory = prvalue # 2382| getLeftOperand(): [Literal] 1 # 2382| Type = [IntType] int # 2382| Value = [Literal] 1 # 2382| ValueCategory = prvalue -# 2382| getRightOperand(): [Literal] 1 +# 2382| getRightOperand(): [Literal] 2 # 2382| Type = [IntType] int -# 2382| Value = [Literal] 1 +# 2382| Value = [Literal] 2 # 2382| ValueCategory = prvalue # 2392| [TopLevelFunction] int large_operation_should_be_constant_folded() # 2392| <params>: # 2392| getEntryPoint(): [BlockStmt] { ... } # 2393| getStmt(0): [ReturnStmt] return ... -# 2393| getExpr(): [AddExpr] ... + ... +# 2393| getExpr(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 64 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 32 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 16 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 8 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18722,9 +18722,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18736,19 +18736,19 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18758,9 +18758,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18772,31 +18772,31 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 8 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18806,9 +18806,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18820,19 +18820,19 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18842,9 +18842,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18856,43 +18856,43 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 8 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 8 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 16 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 8 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18902,9 +18902,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18916,19 +18916,19 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18938,9 +18938,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18952,31 +18952,31 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 8 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -18986,9 +18986,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19000,19 +19000,19 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19022,9 +19022,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19036,55 +19036,55 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 8 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 8 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 16 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 16 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 32 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 16 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 8 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19094,9 +19094,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19108,19 +19108,19 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19130,9 +19130,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19144,31 +19144,31 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 8 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19178,9 +19178,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19192,19 +19192,19 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19214,9 +19214,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19228,43 +19228,43 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 8 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 8 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 16 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 8 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19274,9 +19274,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19288,19 +19288,19 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19310,9 +19310,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19324,31 +19324,31 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 8 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19358,9 +19358,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19372,19 +19372,19 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 4 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue -# 2393| getLeftOperand(): [AddExpr] ... + ... +# 2393| getLeftOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19394,9 +19394,9 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [Literal] 1 # 2393| ValueCategory = prvalue -# 2393| getRightOperand(): [AddExpr] ... + ... +# 2393| getRightOperand(): [BitwiseXorExpr] ... ^ ... # 2393| Type = [IntType] int -# 2393| Value = [AddExpr] 2 +# 2393| Value = [BitwiseXorExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand(): [Literal] 1 # 2393| Type = [IntType] int @@ -19408,47 +19408,47 @@ ir.cpp: # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 2 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 4 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 8 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 8 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 16 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 16 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 32 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getRightOperand().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 32 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue # 2393| getExpr().getFullyConverted(): [ParenthesisExpr] (...) # 2393| Type = [IntType] int -# 2393| Value = [ParenthesisExpr] 64 +# 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue perf-regression.cpp: # 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&) 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 2efc51f1bcd..588aa16238b 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -1457,15 +1457,13 @@ ir.cpp: # 43| m43_3(unknown) = InitializeNonLocal : # 43| m43_4(unknown) = Chi : total:m43_2, partial:m43_3 # 44| r44_1(glval<int>) = VariableAddress[x] : -# 44| r44_2(int) = Constant[5] : -# 44| r44_3(int) = Constant[12] : -# 44| r44_4(int) = Add : r44_2, r44_3 -# 44| m44_5(int) = Store[x] : &:r44_1, r44_4 +# 44| r44_2(int) = Constant[17] : +# 44| m44_3(int) = Store[x] : &:r44_1, r44_2 # 45| r45_1(glval<short>) = VariableAddress[y] : # 45| r45_2(short) = Constant[7] : # 45| m45_3(short) = Store[y] : &:r45_1, r45_2 # 46| r46_1(glval<int>) = VariableAddress[x] : -# 46| r46_2(int) = Load[x] : &:r46_1, m44_5 +# 46| r46_2(int) = Load[x] : &:r46_1, m44_3 # 46| r46_3(glval<short>) = VariableAddress[y] : # 46| r46_4(short) = Load[y] : &:r46_3, m45_3 # 46| r46_5(int) = Convert : r46_4 @@ -1474,7 +1472,7 @@ ir.cpp: # 46| r46_8(glval<short>) = VariableAddress[y] : # 46| m46_9(short) = Store[y] : &:r46_8, r46_7 # 47| r47_1(glval<int>) = VariableAddress[x] : -# 47| r47_2(int) = Load[x] : &:r47_1, m44_5 +# 47| r47_2(int) = Load[x] : &:r47_1, m44_3 # 47| r47_3(glval<short>) = VariableAddress[y] : # 47| r47_4(short) = Load[y] : &:r47_3, m46_9 # 47| r47_5(int) = Convert : r47_4 @@ -6104,30 +6102,14 @@ ir.cpp: # 913| m913_6(int) = InitializeParameter[x] : &:r913_5 # 914| r914_1(glval<bool>) = VariableAddress[a] : # 914| r914_2(bool) = Constant[1] : -# 914| v914_3(void) = ConditionalBranch : r914_2 -#-----| False -> Block 4 -#-----| True -> Block 2 - -# 914| Block 1 -# 914| r914_4(glval<bool>) = VariableAddress[#temp914:12] : -# 914| r914_5(bool) = Constant[1] : -# 914| m914_6(bool) = Store[#temp914:12] : &:r914_4, r914_5 -# 914| r914_7(glval<bool>) = VariableAddress[#temp914:12] : -# 914| r914_8(bool) = Load[#temp914:12] : &:r914_7, m914_6 -# 914| m914_9(bool) = Store[a] : &:r914_1, r914_8 -# 915| r915_1(glval<int>) = VariableAddress[b] : -# 915| r915_2(bool) = Constant[1] : -# 915| v915_3(void) = ConditionalBranch : r915_2 -#-----| False -> Block 4 -#-----| True -> Block 3 - -# 914| Block 2 -# 914| r914_10(bool) = Constant[1] : -# 914| v914_11(void) = ConditionalBranch : r914_10 -#-----| False -> Block 4 +# 914| m914_3(bool) = Store[a] : &:r914_1, r914_2 +# 915| r915_1(glval<int>) = VariableAddress[b] : +# 915| r915_2(bool) = Constant[1] : +# 915| v915_3(void) = ConditionalBranch : r915_2 +#-----| False -> Block 2 #-----| True -> Block 1 -# 915| Block 3 +# 915| Block 1 # 915| r915_4(glval<int>) = VariableAddress[x] : # 915| r915_5(int) = Load[x] : &:r915_4, m913_6 # 915| r915_6(glval<int>) = VariableAddress[#temp915:11] : @@ -6140,7 +6122,7 @@ ir.cpp: # 913| v913_8(void) = AliasedUse : m913_3 # 913| v913_9(void) = ExitFunction : -# 913| Block 4 +# 913| Block 2 # 913| v913_10(void) = Unreached : # 949| void OperatorNew() @@ -7736,17 +7718,15 @@ ir.cpp: # 1215| r1215_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1215| r1215_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1215_4, m1214_8 # 1215| r1215_6(int) = Constant[3] : -# 1215| r1215_7(int) = Constant[0] : -# 1215| r1215_8(int) = Add : r1215_6, r1215_7 -# 1215| r1215_9(int) = Constant[2] : -# 1215| r1215_10(int) = Constant[1] : -# 1215| r1215_11(int) = Constant[0] : -# 1215| r1215_12(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_8, 3:r1215_9, 4:r1215_10, 5:r1215_11 -# 1215| m1215_13(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_12 +# 1215| r1215_7(int) = Constant[2] : +# 1215| r1215_8(int) = Constant[1] : +# 1215| r1215_9(int) = Constant[0] : +# 1215| r1215_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_6, 3:r1215_7, 4:r1215_8, 5:r1215_9 +# 1215| m1215_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_10 # 1216| r1216_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1216| r1216_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1216_1, m1214_8 # 1216| r1216_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : -# 1216| r1216_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1216_3, m1215_13 +# 1216| r1216_4(__attribute((vector_size(16UL))) int) = Load[vi4_shuffle] : &:r1216_3, m1215_11 # 1216| r1216_5(__attribute((vector_size(16UL))) int) = Add : r1216_2, r1216_4 # 1216| r1216_6(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1216| m1216_7(__attribute((vector_size(16UL))) int) = Store[vi4] : &:r1216_6, r1216_5 @@ -15163,8 +15143,8 @@ ir.cpp: # 2381| m2381_4(unknown) = Chi : total:m2381_2, partial:m2381_3 # 2382| r2382_1(glval<int>) = VariableAddress[#return] : # 2382| r2382_2(int) = Constant[1] : -# 2382| r2382_3(int) = Constant[1] : -# 2382| r2382_4(int) = Add : r2382_2, r2382_3 +# 2382| r2382_3(int) = Constant[2] : +# 2382| r2382_4(int) = BitXor : r2382_2, r2382_3 # 2382| m2382_5(int) = Store[#return] : &:r2382_1, r2382_4 # 2381| r2381_5(glval<int>) = VariableAddress[#return] : # 2381| v2381_6(void) = ReturnValue : &:r2381_5, m2382_5 @@ -15178,7 +15158,7 @@ ir.cpp: # 2392| m2392_3(unknown) = InitializeNonLocal : # 2392| m2392_4(unknown) = Chi : total:m2392_2, partial:m2392_3 # 2393| r2393_1(glval<int>) = VariableAddress[#return] : -# 2393| r2393_2(int) = Constant[64] : +# 2393| r2393_2(int) = Constant[0] : # 2393| m2393_3(int) = Store[#return] : &:r2393_1, r2393_2 # 2392| r2392_5(glval<int>) = VariableAddress[#return] : # 2392| v2392_6(void) = ReturnValue : &:r2392_5, m2393_3 diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index a195dcd5aa4..2f51b63dff1 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -2379,15 +2379,15 @@ namespace return_routine_type { } int small_operation_should_not_be_constant_folded() { - return 1 + 1; + return 1 ^ 2; } -#define BINOP2(x) (x + x) -#define BINOP4(x) (BINOP2(x) + BINOP2(x)) -#define BINOP8(x) (BINOP4(x) + BINOP4(x)) -#define BINOP16(x) (BINOP8(x) + BINOP8(x)) -#define BINOP32(x) (BINOP16(x) + BINOP16(x)) -#define BINOP64(x) (BINOP32(x) + BINOP32(x)) +#define BINOP2(x) (x ^ x) +#define BINOP4(x) (BINOP2(x) ^ BINOP2(x)) +#define BINOP8(x) (BINOP4(x) ^ BINOP4(x)) +#define BINOP16(x) (BINOP8(x) ^ BINOP8(x)) +#define BINOP32(x) (BINOP16(x) ^ BINOP16(x)) +#define BINOP64(x) (BINOP32(x) ^ BINOP32(x)) int large_operation_should_be_constant_folded() { return BINOP64(1); diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index 9b9c4888092..add30395130 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -1668,15 +1668,13 @@ | ir.cpp:43:6:43:8 | ChiTotal | total:m43_2 | | ir.cpp:43:6:43:8 | SideEffect | m43_3 | | ir.cpp:44:9:44:9 | Address | &:r44_1 | -| ir.cpp:44:13:44:13 | Left | r44_2 | -| ir.cpp:44:13:44:18 | StoreValue | r44_4 | -| ir.cpp:44:17:44:18 | Right | r44_3 | +| ir.cpp:44:13:44:18 | StoreValue | r44_2 | | ir.cpp:45:11:45:11 | Address | &:r45_1 | | ir.cpp:45:15:45:15 | StoreValue | r45_2 | | ir.cpp:46:5:46:5 | Address | &:r46_8 | | ir.cpp:46:9:46:9 | Address | &:r46_1 | | ir.cpp:46:9:46:9 | Left | r46_2 | -| ir.cpp:46:9:46:9 | Load | m44_5 | +| ir.cpp:46:9:46:9 | Load | m44_3 | | ir.cpp:46:9:46:13 | StoreValue | r46_7 | | ir.cpp:46:9:46:13 | Unary | r46_6 | | ir.cpp:46:13:46:13 | Address | &:r46_3 | @@ -1686,7 +1684,7 @@ | ir.cpp:47:5:47:5 | Address | &:r47_7 | | ir.cpp:47:9:47:9 | Address | &:r47_1 | | ir.cpp:47:9:47:9 | Left | r47_2 | -| ir.cpp:47:9:47:9 | Load | m44_5 | +| ir.cpp:47:9:47:9 | Load | m44_3 | | ir.cpp:47:9:47:13 | StoreValue | r47_6 | | ir.cpp:47:13:47:13 | Address | &:r47_3 | | ir.cpp:47:13:47:13 | Load | m46_9 | @@ -5229,13 +5227,7 @@ | ir.cpp:913:6:913:23 | SideEffect | m913_3 | | ir.cpp:913:29:913:29 | Address | &:r913_5 | | ir.cpp:914:8:914:8 | Address | &:r914_1 | -| ir.cpp:914:12:914:15 | Condition | r914_2 | -| ir.cpp:914:12:914:23 | Address | &:r914_4 | -| ir.cpp:914:12:914:23 | Address | &:r914_7 | -| ir.cpp:914:12:914:23 | Load | m914_6 | -| ir.cpp:914:12:914:23 | StoreValue | r914_5 | -| ir.cpp:914:12:914:23 | StoreValue | r914_8 | -| ir.cpp:914:20:914:23 | Condition | r914_10 | +| ir.cpp:914:12:914:23 | StoreValue | r914_2 | | ir.cpp:915:7:915:7 | Address | &:r915_1 | | ir.cpp:915:11:915:16 | Condition | r915_2 | | ir.cpp:915:11:915:24 | Address | &:r915_6 | @@ -6529,26 +6521,24 @@ | ir.cpp:1214:12:1214:12 | Load | m1213_7 | | ir.cpp:1214:12:1214:12 | StoreValue | r1214_2 | | ir.cpp:1215:18:1215:28 | Address | &:r1215_1 | -| ir.cpp:1215:32:1215:78 | Arg(2) | 2:r1215_8 | -| ir.cpp:1215:32:1215:78 | StoreValue | r1215_12 | +| ir.cpp:1215:32:1215:78 | Arg(2) | 2:r1215_6 | +| ir.cpp:1215:32:1215:78 | StoreValue | r1215_10 | | ir.cpp:1215:56:1215:58 | Address | &:r1215_2 | | ir.cpp:1215:56:1215:58 | Arg(0) | 0:r1215_3 | | ir.cpp:1215:56:1215:58 | Load | m1214_8 | | ir.cpp:1215:61:1215:63 | Address | &:r1215_4 | | ir.cpp:1215:61:1215:63 | Arg(1) | 1:r1215_5 | | ir.cpp:1215:61:1215:63 | Load | m1214_8 | -| ir.cpp:1215:66:1215:66 | Left | r1215_6 | -| ir.cpp:1215:68:1215:68 | Right | r1215_7 | -| ir.cpp:1215:71:1215:71 | Arg(3) | 3:r1215_9 | -| ir.cpp:1215:74:1215:74 | Arg(4) | 4:r1215_10 | -| ir.cpp:1215:77:1215:77 | Arg(5) | 5:r1215_11 | +| ir.cpp:1215:71:1215:71 | Arg(3) | 3:r1215_7 | +| ir.cpp:1215:74:1215:74 | Arg(4) | 4:r1215_8 | +| ir.cpp:1215:77:1215:77 | Arg(5) | 5:r1215_9 | | ir.cpp:1216:3:1216:5 | Address | &:r1216_6 | | ir.cpp:1216:9:1216:11 | Address | &:r1216_1 | | ir.cpp:1216:9:1216:11 | Left | r1216_2 | | ir.cpp:1216:9:1216:11 | Load | m1214_8 | | ir.cpp:1216:9:1216:25 | StoreValue | r1216_5 | | ir.cpp:1216:15:1216:25 | Address | &:r1216_3 | -| ir.cpp:1216:15:1216:25 | Load | m1215_13 | +| ir.cpp:1216:15:1216:25 | Load | m1215_11 | | ir.cpp:1216:15:1216:25 | Right | r1216_4 | | ir.cpp:1221:5:1221:21 | Address | &:r1221_7 | | ir.cpp:1221:5:1221:21 | ChiPartial | partial:m1221_3 | 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 1a4c34b9fc7..b721a11e484 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -1357,10 +1357,8 @@ ir.cpp: # 43| mu43_2(unknown) = AliasedDefinition : # 43| mu43_3(unknown) = InitializeNonLocal : # 44| r44_1(glval<int>) = VariableAddress[x] : -# 44| r44_2(int) = Constant[5] : -# 44| r44_3(int) = Constant[12] : -# 44| r44_4(int) = Add : r44_2, r44_3 -# 44| mu44_5(int) = Store[x] : &:r44_1, r44_4 +# 44| r44_2(int) = Constant[17] : +# 44| mu44_3(int) = Store[x] : &:r44_1, r44_2 # 45| r45_1(glval<short>) = VariableAddress[y] : # 45| r45_2(short) = Constant[7] : # 45| mu45_3(short) = Store[y] : &:r45_1, r45_2 @@ -5749,39 +5747,14 @@ ir.cpp: # 913| mu913_5(int) = InitializeParameter[x] : &:r913_4 # 914| r914_1(glval<bool>) = VariableAddress[a] : # 914| r914_2(bool) = Constant[1] : -# 914| v914_3(void) = ConditionalBranch : r914_2 -#-----| False -> Block 1 -#-----| True -> Block 4 +# 914| mu914_3(bool) = Store[a] : &:r914_1, r914_2 +# 915| r915_1(glval<int>) = VariableAddress[b] : +# 915| r915_2(bool) = Constant[1] : +# 915| v915_3(void) = ConditionalBranch : r915_2 +#-----| False -> Block 3 +#-----| True -> Block 2 -# 914| Block 1 -# 914| r914_4(glval<bool>) = VariableAddress[#temp914:12] : -# 914| r914_5(bool) = Constant[0] : -# 914| mu914_6(bool) = Store[#temp914:12] : &:r914_4, r914_5 -#-----| Goto -> Block 2 - -# 914| Block 2 -# 914| r914_7(glval<bool>) = VariableAddress[#temp914:12] : -# 914| r914_8(bool) = Load[#temp914:12] : &:r914_7, ~m? -# 914| mu914_9(bool) = Store[a] : &:r914_1, r914_8 -# 915| r915_1(glval<int>) = VariableAddress[b] : -# 915| r915_2(bool) = Constant[1] : -# 915| v915_3(void) = ConditionalBranch : r915_2 -#-----| False -> Block 7 -#-----| True -> Block 6 - -# 914| Block 3 -# 914| r914_10(glval<bool>) = VariableAddress[#temp914:12] : -# 914| r914_11(bool) = Constant[1] : -# 914| mu914_12(bool) = Store[#temp914:12] : &:r914_10, r914_11 -#-----| Goto -> Block 2 - -# 914| Block 4 -# 914| r914_13(bool) = Constant[1] : -# 914| v914_14(void) = ConditionalBranch : r914_13 -#-----| False -> Block 1 -#-----| True -> Block 3 - -# 915| Block 5 +# 915| Block 1 # 915| r915_4(glval<int>) = VariableAddress[#temp915:11] : # 915| r915_5(int) = Load[#temp915:11] : &:r915_4, ~m? # 915| mu915_6(int) = Store[b] : &:r915_1, r915_5 @@ -5790,19 +5763,19 @@ ir.cpp: # 913| v913_7(void) = AliasedUse : ~m? # 913| v913_8(void) = ExitFunction : -# 915| Block 6 +# 915| Block 2 # 915| r915_7(glval<int>) = VariableAddress[x] : # 915| r915_8(int) = Load[x] : &:r915_7, ~m? # 915| r915_9(glval<int>) = VariableAddress[#temp915:11] : # 915| mu915_10(int) = Store[#temp915:11] : &:r915_9, r915_8 -#-----| Goto -> Block 5 +#-----| Goto -> Block 1 -# 915| Block 7 +# 915| Block 3 # 915| r915_11(glval<int>) = VariableAddress[x] : # 915| r915_12(int) = Load[x] : &:r915_11, ~m? # 915| r915_13(glval<int>) = VariableAddress[#temp915:11] : # 915| mu915_14(int) = Store[#temp915:11] : &:r915_13, r915_12 -#-----| Goto -> Block 5 +#-----| Goto -> Block 1 # 949| void OperatorNew() # 949| Block 0 @@ -7293,13 +7266,11 @@ ir.cpp: # 1215| r1215_4(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1215| r1215_5(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1215_4, ~m? # 1215| r1215_6(int) = Constant[3] : -# 1215| r1215_7(int) = Constant[0] : -# 1215| r1215_8(int) = Add : r1215_6, r1215_7 -# 1215| r1215_9(int) = Constant[2] : -# 1215| r1215_10(int) = Constant[1] : -# 1215| r1215_11(int) = Constant[0] : -# 1215| r1215_12(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_8, 3:r1215_9, 4:r1215_10, 5:r1215_11 -# 1215| mu1215_13(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_12 +# 1215| r1215_7(int) = Constant[2] : +# 1215| r1215_8(int) = Constant[1] : +# 1215| r1215_9(int) = Constant[0] : +# 1215| r1215_10(__attribute((vector_size(16))) int) = BuiltIn[__builtin_shufflevector] : 0:r1215_3, 1:r1215_5, 2:r1215_6, 3:r1215_7, 4:r1215_8, 5:r1215_9 +# 1215| mu1215_11(__attribute((vector_size(16UL))) int) = Store[vi4_shuffle] : &:r1215_1, r1215_10 # 1216| r1216_1(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4] : # 1216| r1216_2(__attribute((vector_size(16UL))) int) = Load[vi4] : &:r1216_1, ~m? # 1216| r1216_3(glval<__attribute((vector_size(16UL))) int>) = VariableAddress[vi4_shuffle] : @@ -14013,8 +13984,8 @@ ir.cpp: # 2381| mu2381_3(unknown) = InitializeNonLocal : # 2382| r2382_1(glval<int>) = VariableAddress[#return] : # 2382| r2382_2(int) = Constant[1] : -# 2382| r2382_3(int) = Constant[1] : -# 2382| r2382_4(int) = Add : r2382_2, r2382_3 +# 2382| r2382_3(int) = Constant[2] : +# 2382| r2382_4(int) = BitXor : r2382_2, r2382_3 # 2382| mu2382_5(int) = Store[#return] : &:r2382_1, r2382_4 # 2381| r2381_4(glval<int>) = VariableAddress[#return] : # 2381| v2381_5(void) = ReturnValue : &:r2381_4, ~m? @@ -14027,7 +13998,7 @@ ir.cpp: # 2392| mu2392_2(unknown) = AliasedDefinition : # 2392| mu2392_3(unknown) = InitializeNonLocal : # 2393| r2393_1(glval<int>) = VariableAddress[#return] : -# 2393| r2393_2(int) = Constant[64] : +# 2393| r2393_2(int) = Constant[0] : # 2393| mu2393_3(int) = Store[#return] : &:r2393_1, r2393_2 # 2392| r2392_4(glval<int>) = VariableAddress[#return] : # 2392| v2392_5(void) = ReturnValue : &:r2392_4, ~m? From 54262a53c30a952ebebdd1be7a3028807db7faa2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 13:18:01 +0000 Subject: [PATCH 253/309] Revert "C++: Accept test changes." This reverts commit f36b48346eaa4343e4dc143cee73b58dfda77004. --- .../ir/range-analysis/SimpleRangeAnalysis_tests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp b/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp index cd392210d47..7b359a046d8 100644 --- a/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp +++ b/cpp/ql/test/library-tests/ir/range-analysis/SimpleRangeAnalysis_tests.cpp @@ -1014,7 +1014,7 @@ void test_overflow() { if ((x + y) <= 512) { range(x); // $ range===2147483647 range(y); // $ range===256 - range(x + y); // $ range=<=2147483903 overflow=+ + range(x + y); // $ range===-2147483393 } } From 5b37ee4ec79ee9df2fc53d86712e218d2a634982 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Tue, 19 Mar 2024 11:37:53 +0100 Subject: [PATCH 254/309] Re-factor TestOutput into a param module. --- .../dataflow/library/FlowSummaries.ql | 17 ++-- .../dataflow/library/FlowSummariesFiltered.ql | 12 ++- .../EntityFramework/FlowSummaries.ql | 8 +- csharp/ql/test/shared/FlowSummaries.qll | 7 +- .../dataflow/internal/FlowSummaryImpl.qll | 77 ++++++++++++------- 5 files changed, 80 insertions(+), 41 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql index 76f5c8f8840..b09721b4f3f 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql @@ -1,14 +1,17 @@ import shared.FlowSummaries import semmle.code.csharp.dataflow.internal.ExternalFlow -import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Private::External +import External -private class IncludeAllSummarizedCallable extends IncludeSummarizedCallable { - IncludeAllSummarizedCallable() { exists(this) } +module TestSummaryInput implements TestSummaryInputSig { + class RelevantSummarizedCallable = IncludeSummarizedCallable; } -private class IncludeNeutralSummarizedCallable extends RelevantNeutralCallable { - /** Gets a string representing the callable in semi-colon separated format for use in flow summaries. */ - final override string getCallableCsv() { result = asPartialNeutralModel(this) } +module TestNeutralInput implements TestNeutralInputSig { + class RelevantNeutralCallable instanceof NeutralCallable { + final string getCallableCsv() { result = asPartialNeutralModel(this) } + + string toString() { result = super.toString() } + } } module TestSourceSinkInput implements TestSourceSinkInputSig { @@ -25,4 +28,6 @@ module TestSourceSinkInput implements TestSourceSinkInputSig { } } +import TestSummaryOutput<TestSummaryInput> +import TestNeutralOutput<TestNeutralInput> import TestSourceSinkOutput<TestSourceSinkInput> diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql index c3584afcbc3..fe3a931b451 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql @@ -1,9 +1,13 @@ import shared.FlowSummaries private import semmle.code.csharp.dataflow.internal.ExternalFlow -class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable { - IncludeFilteredSummarizedCallable() { exists(this) } +module TestSummaryInput implements TestSummaryInputSig { + class RelevantSummarizedCallable = IncludeSummarizedCallable; +} +import TestSummaryOutput<TestSummaryInput> + +class IncludeFilteredSummarizedCallable extends RelevantSummarizedCallable { /** * Holds if flow is propagated between `input` and `output` and * if there is no summary for a callable in a `base` class or interface @@ -12,10 +16,10 @@ class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable { override predicate relevantSummary( SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue ) { - super.propagatesFlow(input, output, preservesValue) and + this.(SummarizedCallableImpl).propagatesFlow(input, output, preservesValue) and not exists(IncludeSummarizedCallable rsc | isBaseCallableOrPrototype(rsc) and - rsc.propagatesFlow(input, output, preservesValue) and + rsc.(SummarizedCallableImpl).propagatesFlow(input, output, preservesValue) and this.(UnboundCallable).overridesOrImplementsUnbound(rsc) ) } diff --git a/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.ql b/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.ql index bef72ca30a1..b5f0aa90ed4 100644 --- a/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.ql +++ b/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.ql @@ -3,8 +3,12 @@ import shared.FlowSummaries import semmle.code.csharp.frameworks.EntityFramework::EntityFramework import semmle.code.csharp.dataflow.internal.ExternalFlow as ExternalFlow -private class IncludeEFSummarizedCallable extends IncludeSummarizedCallable instanceof EFSummarizedCallable -{ } +module TestSummaryInput implements TestSummaryInputSig { + class RelevantSummarizedCallable extends IncludeSummarizedCallable instanceof EFSummarizedCallable + { } +} + +import TestSummaryOutput<TestSummaryInput> query predicate sourceNode(DataFlow::Node node, string kind) { ExternalFlow::sourceNode(node, kind) diff --git a/csharp/ql/test/shared/FlowSummaries.qll b/csharp/ql/test/shared/FlowSummaries.qll index 83a1530b028..39028ef2df7 100644 --- a/csharp/ql/test/shared/FlowSummaries.qll +++ b/csharp/ql/test/shared/FlowSummaries.qll @@ -1,13 +1,14 @@ import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Public -import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Private::TestOutput private import semmle.code.csharp.dataflow.internal.ExternalFlow -abstract class IncludeSummarizedCallable extends RelevantSummarizedCallable { +class IncludeSummarizedCallable instanceof SummarizedCallableImpl { IncludeSummarizedCallable() { [this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() } /** Gets a string representing the callable in semi-colon separated format for use in flow summaries. */ - final override string getCallableCsv() { result = asPartialModel(this) } + final string getCallableCsv() { result = asPartialModel(this) } + + string toString() { result = super.toString() } } diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 19a33ec810a..9d059366513 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -1751,32 +1751,31 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { } } - /** Provides a query predicate for outputting a set of relevant flow summaries. */ - module TestOutput { - final private class SummarizedCallableImplFinal = SummarizedCallableImpl; - - /** A flow summary to include in the `summary/1` query predicate. */ - abstract class RelevantSummarizedCallable extends SummarizedCallableImplFinal { + signature module TestSummaryInputSig { + /** + * A class of callables where the flow summary should be included + * in the `summary/1` query predicate. + */ + class RelevantSummarizedCallable instanceof SummarizedCallableImpl { /** Gets the string representation of this callable used by `summary/1`. */ - abstract string getCallableCsv(); + string getCallableCsv(); + } + } + /** Provides a query predicate for outputting a set of relevant flow summaries. */ + module TestSummaryOutput<TestSummaryInputSig TestInput> { + private import TestInput + + final class RelevantSummarizedCallableFinal = TestInput::RelevantSummarizedCallable; + + class RelevantSummarizedCallable extends RelevantSummarizedCallableFinal instanceof SummarizedCallableImpl + { /** Holds if flow is propagated between `input` and `output`. */ predicate relevantSummary( SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue ) { super.propagatesFlow(input, output, preservesValue) } - } - - /** A model to include in the `neutral/1` query predicate. */ - abstract class RelevantNeutralCallable instanceof NeutralCallable { - /** Gets the string representation of this callable used by `neutral/1`. */ - abstract string getCallableCsv(); - - /** - * Gets the kind of the neutral. - */ - string getKind() { result = super.getKind() } string toString() { result = super.toString() } } @@ -1795,13 +1794,6 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { c.hasProvenance(result) } - private string renderProvenanceNeutral(NeutralCallable c) { - exists(Provenance p | p.isManual() and c.hasProvenance(p) and result = p.toString()) - or - not c.hasManualModel() and - c.hasProvenance(result) - } - /** * Holds if there exists a relevant summary callable with information roughly corresponding to `csv`. * Used for testing. @@ -1822,6 +1814,39 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { + renderProvenance(c) // provenance ) } + } + + signature module TestNeutralInputSig { + /** + * A class of callables where the neutral model should be included + * in the `neutral/1` query predicate. + */ + class RelevantNeutralCallable instanceof NeutralCallable { + /** Gets the string representation of this callable used by `neutral/1`. */ + string getCallableCsv(); + } + } + + module TestNeutralOutput<TestNeutralInputSig TestInput> { + private import TestInput + + final class RelevantNeutralCallableFinal = TestInput::RelevantNeutralCallable; + + class RelevantNeutralCallable extends RelevantNeutralCallableFinal instanceof NeutralCallable { + /** + * Gets the kind of the neutral. + */ + string getKind() { result = super.getKind() } + + string toString() { result = super.toString() } + } + + private string renderProvenance(NeutralCallable c) { + exists(Provenance p | p.isManual() and c.hasProvenance(p) and result = p.toString()) + or + not c.hasManualModel() and + c.hasProvenance(result) + } /** * Holds if there exists a relevant neutral callable with information roughly corresponding to `csv`. @@ -1833,7 +1858,7 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { csv = c.getCallableCsv() // Callable information + c.getKind() + ";" // kind - + renderProvenanceNeutral(c) // provenance + + renderProvenance(c) // provenance ) } } From e32902ad47df61966fd0888c380dae5010afc255 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 15 Mar 2024 15:39:45 +0100 Subject: [PATCH 255/309] C#: Update source expected test output. --- .../dataflow/library/FlowSummaries.expected | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index fc02c1916a8..af6a55c64f7 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -1,3 +1,80 @@ +source +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;Argument[0];environment;manual | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder);;ReturnValue;environment;manual | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action<Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationSource>);;Argument[0];environment;manual | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action<Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationSource>);;ReturnValue;environment;manual | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;Argument[0];environment;manual | +| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;false;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);;ReturnValue;environment;manual | +| Microsoft.Win32;Registry;false;GetValue;(System.String,System.String,System.Object);;ReturnValue;windows-registry;manual | +| Microsoft.Win32;RegistryKey;false;GetSubKeyNames;();;ReturnValue;windows-registry;manual | +| Microsoft.Win32;RegistryKey;false;GetValue;(System.String);;ReturnValue;windows-registry;manual | +| Microsoft.Win32;RegistryKey;false;GetValue;(System.String,System.Object);;ReturnValue;windows-registry;manual | +| Microsoft.Win32;RegistryKey;false;GetValue;(System.String,System.Object,Microsoft.Win32.RegistryValueOptions);;ReturnValue;windows-registry;manual | +| Microsoft.Win32;RegistryKey;false;GetValueNames;();;ReturnValue;windows-registry;manual | +| System.IO;File;false;AppendText;(System.String);;ReturnValue;file-write;manual | +| System.IO;File;false;Create;(System.String);;ReturnValue;file-write;manual | +| System.IO;File;false;Create;(System.String,System.Int32);;ReturnValue;file-write;manual | +| System.IO;File;false;Create;(System.String,System.Int32,System.IO.FileOptions);;ReturnValue;file-write;manual | +| System.IO;File;false;CreateText;(System.String);;ReturnValue;file-write;manual | +| System.IO;File;false;Open;(System.String,System.IO.FileMode);;ReturnValue;file-write;manual | +| System.IO;File;false;Open;(System.String,System.IO.FileMode,System.IO.FileAccess);;ReturnValue;file-write;manual | +| System.IO;File;false;Open;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare);;ReturnValue;file-write;manual | +| System.IO;File;false;Open;(System.String,System.IO.FileStreamOptions);;ReturnValue;file-write;manual | +| System.IO;File;false;OpenWrite;(System.String);;ReturnValue;file-write;manual | +| System.IO;FileInfo;false;AppendText;();;ReturnValue;file-write;manual | +| System.IO;FileInfo;false;Create;();;ReturnValue;file-write;manual | +| System.IO;FileInfo;false;CreateText;();;ReturnValue;file-write;manual | +| System.IO;FileInfo;false;Open;(System.IO.FileMode);;ReturnValue;file-write;manual | +| System.IO;FileInfo;false;Open;(System.IO.FileMode,System.IO.FileAccess);;ReturnValue;file-write;manual | +| System.IO;FileInfo;false;Open;(System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare);;ReturnValue;file-write;manual | +| System.IO;FileInfo;false;Open;(System.IO.FileStreamOptions);;ReturnValue;file-write;manual | +| System.IO;FileInfo;false;OpenWrite;();;ReturnValue;file-write;manual | +| System.IO;FileStream;false;FileStream;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.FileAccess);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.FileAccess);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.FileAccess,System.Int32);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.FileAccess,System.Int32);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.FileAccess,System.Int32,System.Boolean);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.FileAccess,System.Int32,System.Boolean);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.IntPtr,System.IO.FileAccess);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.IntPtr,System.IO.FileAccess);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.IntPtr,System.IO.FileAccess,System.Boolean);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.IntPtr,System.IO.FileAccess,System.Boolean);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32,System.Boolean);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32,System.Boolean);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions);;Argument[this];file;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileStreamOptions);;Argument[this];file-write;manual | +| System.IO;FileStream;false;FileStream;(System.String,System.IO.FileStreamOptions);;Argument[this];file;manual | +| System.IO;StreamWriter;false;StreamWriter;(System.String);;Argument[this];file-write;manual | +| System.IO;StreamWriter;false;StreamWriter;(System.String,System.Boolean);;Argument[this];file-write;manual | +| System.IO;StreamWriter;false;StreamWriter;(System.String,System.Boolean,System.Text.Encoding);;Argument[this];file-write;manual | +| System.IO;StreamWriter;false;StreamWriter;(System.String,System.Boolean,System.Text.Encoding,System.Int32);;Argument[this];file-write;manual | +| System.IO;StreamWriter;false;StreamWriter;(System.String,System.IO.FileStreamOptions);;Argument[this];file-write;manual | +| System.IO;StreamWriter;false;StreamWriter;(System.String,System.Text.Encoding,System.IO.FileStreamOptions);;Argument[this];file-write;manual | +| System.Net.Sockets;TcpClient;false;GetStream;();;ReturnValue;remote;manual | +| System;Console;false;Read;();;ReturnValue;local;manual | +| System;Console;false;ReadKey;();;ReturnValue;local;manual | +| System;Console;false;ReadKey;(System.Boolean);;ReturnValue;local;manual | +| System;Console;false;ReadLine;();;ReturnValue;local;manual | +| System;Environment;false;ExpandEnvironmentVariables;(System.String);;ReturnValue;environment;manual | +| System;Environment;false;GetCommandLineArgs;();;ReturnValue;commandargs;manual | +| System;Environment;false;GetEnvironmentVariable;(System.String);;ReturnValue;environment;manual | +| System;Environment;false;GetEnvironmentVariable;(System.String,System.EnvironmentVariableTarget);;ReturnValue;environment;manual | +| System;Environment;false;GetEnvironmentVariables;();;ReturnValue;environment;manual | +| System;Environment;false;GetEnvironmentVariables;(System.EnvironmentVariableTarget);;ReturnValue;environment;manual | +| System;Environment;false;get_CommandLine;();;ReturnValue;commandargs;manual | summary | Dapper;CustomPropertyTypeMap;false;CustomPropertyTypeMap;(System.Type,System.Func<System.Type,System.String,System.Reflection.PropertyInfo>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Dapper;DynamicParameters;false;Output<T>;(T,System.Linq.Expressions.Expression<System.Func<T,System.Object>>,System.Nullable<System.Data.DbType>,System.Nullable<System.Int32>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | From b39842501adfea160697dfe6dab99aa0861740ef Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 15 Mar 2024 15:50:01 +0100 Subject: [PATCH 256/309] C#: Update sink test expected output. --- .../dataflow/library/FlowSummaries.expected | 533 ++++++++++++++++++ 1 file changed, 533 insertions(+) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index af6a55c64f7..30396dbf410 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -75,6 +75,539 @@ source | System;Environment;false;GetEnvironmentVariables;();;ReturnValue;environment;manual | | System;Environment;false;GetEnvironmentVariables;(System.EnvironmentVariableTarget);;ReturnValue;environment;manual | | System;Environment;false;get_CommandLine;();;ReturnValue;commandargs;manual | +sink +| Dapper;SqlMapper;false;Execute;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;ExecuteAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;ExecuteReader;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;ExecuteReaderAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;ExecuteScalar;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;ExecuteScalar<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;ExecuteScalarAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;ExecuteScalarAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Boolean,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Boolean,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;Query<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Boolean,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query<TFirst,TSecond,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query<TFirst,TSecond,TThird,TFourth,TFifth,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TFourth,TFifth,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TSeventh,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TSeventh,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query<TFirst,TSecond,TThird,TFourth,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TFourth,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query<TFirst,TSecond,TThird,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;Query<TReturn>;(System.Data.IDbConnection,System.String,System.Type[],System.Func<System.Object[],TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync<TFirst,TSecond,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync<TFirst,TSecond,TThird,TFourth,TFifth,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TFourth,TFifth,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TSeventh,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TSeventh,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync<TFirst,TSecond,TThird,TFourth,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TFourth,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync<TFirst,TSecond,TThird,TReturn>;(System.Data.IDbConnection,System.String,System.Func<TFirst,TSecond,TThird,TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryAsync<TReturn>;(System.Data.IDbConnection,System.String,System.Type[],System.Func<System.Object[],TReturn>,System.Object,System.Data.IDbTransaction,System.Boolean,System.String,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirst;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirst;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirst<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstAsync;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstOrDefault;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstOrDefault;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstOrDefault<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstOrDefaultAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstOrDefaultAsync;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;QueryFirstOrDefaultAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryMultiple;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QueryMultipleAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingle;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingle;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingle<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleAsync;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleOrDefault;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleOrDefault;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleOrDefault<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleOrDefaultAsync;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleOrDefaultAsync;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[2];sql-injection;manual | +| Dapper;SqlMapper;false;QuerySingleOrDefaultAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable<System.Int32>,System.Nullable<System.Data.CommandType>);;Argument[1];sql-injection;manual | +| Microsoft.EntityFrameworkCore;RelationalDatabaseFacadeExtensions;false;ExecuteSqlRaw;(Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade,System.String,System.Collections.Generic.IEnumerable<System.Object>);;Argument[1];sql-injection;manual | +| Microsoft.EntityFrameworkCore;RelationalDatabaseFacadeExtensions;false;ExecuteSqlRaw;(Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade,System.String,System.Object[]);;Argument[1];sql-injection;manual | +| Microsoft.EntityFrameworkCore;RelationalDatabaseFacadeExtensions;false;ExecuteSqlRawAsync;(Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade,System.String,System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| Microsoft.EntityFrameworkCore;RelationalDatabaseFacadeExtensions;false;ExecuteSqlRawAsync;(Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade,System.String,System.Object[]);;Argument[1];sql-injection;manual | +| Microsoft.EntityFrameworkCore;RelationalDatabaseFacadeExtensions;false;ExecuteSqlRawAsync;(Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade,System.String,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| Microsoft.EntityFrameworkCore;RelationalQueryableExtensions;false;FromSqlRaw<TEntity>;(Microsoft.EntityFrameworkCore.DbSet<TEntity>,System.String,System.Object[]);;Argument[1];sql-injection;manual | +| ServiceStack.Messaging;BackgroundMqClient;false;SendAllOneWay;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[1].Element;file-content-store;manual | +| ServiceStack.Messaging;BackgroundMqClient;false;SendOneWay;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack.Messaging;BackgroundMqClient;false;SendOneWay;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack.Messaging;InMemoryMessageQueueClient;false;SendAllOneWay;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[1].Element;file-content-store;manual | +| ServiceStack.Messaging;InMemoryMessageQueueClient;false;SendOneWay;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack.Messaging;InMemoryMessageQueueClient;false;SendOneWay;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack.Messaging;RedisMessageProducer;false;SendAllOneWay;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[1].Element;file-content-store;manual | +| ServiceStack.Messaging;RedisMessageProducer;false;SendOneWay;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack.Messaging;RedisMessageProducer;false;SendOneWay;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack.Messaging;RedisMessageQueueClient;false;SendAllOneWay;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[1].Element;file-content-store;manual | +| ServiceStack.Messaging;RedisMessageQueueClient;false;SendOneWay;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack.Messaging;RedisMessageQueueClient;false;SendOneWay;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack.OrmLite;IUntypedSqlExpression;true;UnsafeAnd;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;IUntypedSqlExpression;true;UnsafeFrom;(System.String);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;IUntypedSqlExpression;true;UnsafeOr;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;IUntypedSqlExpression;true;UnsafeSelect;(System.String);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;IUntypedSqlExpression;true;UnsafeWhere;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Column<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Column<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;ColumnDistinct<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;ColumnDistinct<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;ColumnLazy<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;ColumnLazy<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Dictionary<K,V>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;ExecuteNonQuery;(System.Data.IDbConnection,System.String);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;ExecuteNonQuery;(System.Data.IDbConnection,System.String,System.Action<System.Data.IDbCommand>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;ExecuteNonQuery;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;ExecuteNonQuery;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Exists<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Lookup<K,V>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Lookup<K,V>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Scalar<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Scalar<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Select<T>;(System.Data.IDbConnection,System.String);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Select<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Select<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Select<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Select<TModel>;(System.Data.IDbConnection,System.Type,System.String,System.Object);;Argument[2];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SelectLazy<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SelectNonDefaults<T>;(System.Data.IDbConnection,System.String,T);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Single<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;Single<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlColumn<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlColumn<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlColumn<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlList<T>;(System.Data.IDbConnection,System.String,System.Action<System.Data.IDbCommand>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlList<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlList<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlList<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlScalar<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlScalar<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApi;false;SqlScalar<T>;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ColumnAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ColumnAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ColumnDistinctAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ColumnDistinctAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;DictionaryAsync<K,V>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ExecuteNonQueryAsync;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ExecuteNonQueryAsync;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ExecuteNonQueryAsync;(System.Data.IDbConnection,System.String,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ExistsAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;KeyValuePairsAsync<K,V>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;KeyValuePairsAsync<K,V>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;LookupAsync<K,V>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;LookupAsync<K,V>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ScalarAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;ScalarAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SelectAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SelectAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SelectAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SelectAsync<T>;(System.Data.IDbConnection,System.String,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SelectAsync<TModel>;(System.Data.IDbConnection,System.Type,System.String,System.Object,System.Threading.CancellationToken);;Argument[2];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SelectNonDefaultsAsync<T>;(System.Data.IDbConnection,System.String,T,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SingleAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SingleAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlColumnAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlColumnAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlColumnAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlListAsync<T>;(System.Data.IDbConnection,System.String,System.Action<System.Data.IDbCommand>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlListAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlListAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlListAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlScalarAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlScalarAsync<T>;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadApiAsync;false;SqlScalarAsync<T>;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadExpressionsApi;false;RowCount;(System.Data.IDbConnection,System.String,System.Collections.Generic.IEnumerable<System.Data.IDbDataParameter>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadExpressionsApi;false;RowCount;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteReadExpressionsApiAsync;false;RowCountAsync;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteWriteApi;false;ExecuteSql;(System.Data.IDbConnection,System.String);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteWriteApi;false;ExecuteSql;(System.Data.IDbConnection,System.String,System.Collections.Generic.Dictionary<System.String,System.Object>);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteWriteApi;false;ExecuteSql;(System.Data.IDbConnection,System.String,System.Object);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteWriteApiAsync;false;ExecuteSqlAsync;(System.Data.IDbConnection,System.String,System.Object,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;OrmLiteWriteApiAsync;false;ExecuteSqlAsync;(System.Data.IDbConnection,System.String,System.Threading.CancellationToken);;Argument[1];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeAnd;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeFrom;(System.String);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeGroupBy;(System.String);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeHaving;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeOr;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeOrderBy;(System.String);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeSelect;(System.String);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeSelect;(System.String,System.Boolean);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;SqlExpression<T>;true;UnsafeWhere;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;UntypedSqlExpressionProxy<T>;false;UnsafeAnd;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;UntypedSqlExpressionProxy<T>;false;UnsafeFrom;(System.String);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;UntypedSqlExpressionProxy<T>;false;UnsafeOr;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;UntypedSqlExpressionProxy<T>;false;UnsafeSelect;(System.String);;Argument[0];sql-injection;manual | +| ServiceStack.OrmLite;UntypedSqlExpressionProxy<T>;false;UnsafeWhere;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| ServiceStack.Redis;IRedisClient;true;Custom;(System.Object[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;ExecLua;(System.String,System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;ExecLua;(System.String,System.String[],System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;ExecLuaAsInt;(System.String,System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;ExecLuaAsInt;(System.String,System.String[],System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;ExecLuaAsList;(System.String,System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;ExecLuaAsList;(System.String,System.String[],System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;ExecLuaAsString;(System.String,System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;ExecLuaAsString;(System.String,System.String[],System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClient;true;LoadLuaScript;(System.String);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;CustomAsync;(System.Object[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;CustomAsync;(System.Object[],System.Threading.CancellationToken);;Argument[0].Element;code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsIntAsync;(System.String,System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsIntAsync;(System.String,System.String[],System.String[],System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsIntAsync;(System.String,System.String[],System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsListAsync;(System.String,System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsListAsync;(System.String,System.String[],System.String[],System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsListAsync;(System.String,System.String[],System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsStringAsync;(System.String,System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsStringAsync;(System.String,System.String[],System.String[],System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsStringAsync;(System.String,System.String[],System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsync;(System.String,System.String[]);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsync;(System.String,System.String[],System.String[],System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;ExecLuaAsync;(System.String,System.String[],System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Redis;IRedisClientAsync;true;LoadLuaScriptAsync;(System.String,System.Threading.CancellationToken);;Argument[0];code-injection;manual | +| ServiceStack.Testing;MockRestGateway;false;Delete<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack.Testing;MockRestGateway;false;Get<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack.Testing;MockRestGateway;false;Post<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack.Testing;MockRestGateway;false;Put<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack.Testing;MockRestGateway;false;Send<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;CustomMethod;(System.String,ServiceStack.IReturnVoid);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;CustomMethod<TResponse>;(System.String,ServiceStack.IReturn<TResponse>);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;CustomMethod<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;CustomMethodAsync;(System.String,ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;CustomMethodAsync<TResponse>;(System.String,ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;CustomMethodAsync<TResponse>;(System.String,System.Object,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Delete;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Delete<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Delete<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;DeleteAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;DeleteAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;DeleteAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Get;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Get<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Get<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;GetAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;GetAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;GetAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Patch;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Patch<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Patch<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Patch<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PatchAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PatchAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PatchAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Post;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Post<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Post<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Post<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PostAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PostAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PostAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Publish;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PublishAll;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PublishAllAsync;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PublishAsync;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Put;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Put<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Put<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Put<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PutAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PutAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;PutAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Send<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;Send<TResponse>;(System.String,System.String,System.Object);;Argument[2];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;SendAll<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;CachedServiceClient;false;SendAllAsync<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;CachedServiceClient;false;SendAllOneWay;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[1].Element;file-content-store;manual | +| ServiceStack;CachedServiceClient;false;SendAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;SendOneWay;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;CachedServiceClient;false;SendOneWay;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;EncryptedServiceClient;false;Publish;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;EncryptedServiceClient;false;PublishAll;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;EncryptedServiceClient;false;Send<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;EncryptedServiceClient;false;SendAll<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;IOneWayClient;true;SendAllOneWay;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[1].Element;file-content-store;manual | +| ServiceStack;IOneWayClient;true;SendOneWay;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;IOneWayClient;true;SendOneWay;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClient;true;Patch<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClient;true;Post<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClient;true;Put<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClient;true;Send<TResponse>;(System.String,System.String,System.Object);;Argument[2];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;CustomMethodAsync;(System.String,ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;CustomMethodAsync<TResponse>;(System.String,ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;CustomMethodAsync<TResponse>;(System.String,System.Object,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;DeleteAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;DeleteAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;DeleteAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;GetAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;GetAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;GetAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PatchAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PatchAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PatchAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PostAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PostAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PostAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PutAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PutAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientAsync;true;PutAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;CustomMethod;(System.String,ServiceStack.IReturnVoid);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClientSync;true;CustomMethod<TResponse>;(System.String,ServiceStack.IReturn<TResponse>);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClientSync;true;CustomMethod<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Delete;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Delete<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Delete<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Get;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Get<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Get<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Patch;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Patch<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Patch<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Post;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Post<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Post<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Put;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Put<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestClientSync;true;Put<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGateway;true;Delete<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGateway;true;Get<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGateway;true;Post<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGateway;true;Put<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGateway;true;Send<T>;(ServiceStack.IReturn<T>);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGatewayAsync;true;DeleteAsync<T>;(ServiceStack.IReturn<T>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGatewayAsync;true;GetAsync<T>;(ServiceStack.IReturn<T>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGatewayAsync;true;PostAsync<T>;(ServiceStack.IReturn<T>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGatewayAsync;true;PutAsync<T>;(ServiceStack.IReturn<T>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IRestGatewayAsync;true;SendAsync<T>;(ServiceStack.IReturn<T>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IServiceGateway;true;Publish;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;IServiceGateway;true;PublishAll;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;IServiceGateway;true;Send<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;IServiceGateway;true;SendAll<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;IServiceGatewayAsync;true;PublishAllAsync;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;IServiceGatewayAsync;true;PublishAsync;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;IServiceGatewayAsync;true;SendAllAsync<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;IServiceGatewayAsync;true;SendAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;InProcessServiceGateway;false;Publish;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;InProcessServiceGateway;false;PublishAll;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;InProcessServiceGateway;false;PublishAllAsync;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;InProcessServiceGateway;false;PublishAsync;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;InProcessServiceGateway;false;Send<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;InProcessServiceGateway;false;SendAll<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;InProcessServiceGateway;false;SendAllAsync<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;InProcessServiceGateway;false;SendAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;CustomMethod;(System.String,ServiceStack.IReturnVoid);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;CustomMethod<TResponse>;(System.String,ServiceStack.IReturn<TResponse>);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;CustomMethod<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;CustomMethodAsync;(System.String,ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;CustomMethodAsync<TResponse>;(System.String,ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;CustomMethodAsync<TResponse>;(System.String,System.Object,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Delete;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Delete<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Delete<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;DeleteAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;DeleteAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;DeleteAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Get;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Get<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Get<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;GetAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;GetAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;GetAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Patch;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Patch<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Patch<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Patch<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PatchAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PatchAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PatchAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Post;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Post<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Post<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Post<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PostAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PostAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PostAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Publish;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PublishAll;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;JsonApiClient;false;PublishAllAsync;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;JsonApiClient;false;PublishAsync;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Put;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Put<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Put<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Put<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PutAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PutAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;PutAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Send<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;Send<TResponse>;(System.String,System.String,System.Object);;Argument[2];file-content-store;manual | +| ServiceStack;JsonApiClient;false;SendAll<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;JsonApiClient;false;SendAllAsync<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;JsonApiClient;false;SendAllOneWay;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[1].Element;file-content-store;manual | +| ServiceStack;JsonApiClient;false;SendAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;SendOneWay;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;JsonApiClient;false;SendOneWay;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;false;DownloadBytes;(System.String,System.String,System.Object);;Argument[2];file-content-store;manual | +| ServiceStack;ServiceClientBase;false;DownloadBytesAsync;(System.String,System.String,System.Object);;Argument[2];file-content-store;manual | +| ServiceStack;ServiceClientBase;false;Publish<T>;(ServiceStack.Messaging.IMessage<T>);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;false;Publish<T>;(T);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;false;PublishAll;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;ServiceClientBase;false;PublishAllAsync;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;ServiceClientBase;false;PublishAsync;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;false;SendAllAsync<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethod;(System.String,ServiceStack.IReturnVoid);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethod;(System.String,System.String,System.Object);;Argument[2];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethod<TResponse>;(System.String,ServiceStack.IReturn<TResponse>);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethod<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethod<TResponse>;(System.String,System.String,System.Object);;Argument[2];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethodAsync;(System.String,ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethodAsync<TResponse>;(System.String,ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethodAsync<TResponse>;(System.String,System.Object,System.Threading.CancellationToken);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;CustomMethodAsync<TResponse>;(System.String,System.String,System.Object,System.Threading.CancellationToken);;Argument[2];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Delete;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Delete;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Delete<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Delete<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;DeleteAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;DeleteAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;DeleteAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Get;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Get;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Get<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Get<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;GetAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;GetAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;GetAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Head;(ServiceStack.IReturn);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Head;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Patch;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Patch;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Patch<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Patch<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Patch<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PatchAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PatchAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PatchAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Post;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Post;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Post<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Post<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Post<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PostAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PostAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PostAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Publish;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Put;(ServiceStack.IReturnVoid);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Put;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Put<TResponse>;(ServiceStack.IReturn<TResponse>);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Put<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Put<TResponse>;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PutAsync;(ServiceStack.IReturnVoid,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PutAsync<TResponse>;(ServiceStack.IReturn<TResponse>,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;PutAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Send<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;Send<TResponse>;(System.String,System.String,System.Object);;Argument[2];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;SendAll<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;ServiceClientBase;true;SendAllOneWay;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[1].Element;file-content-store;manual | +| ServiceStack;ServiceClientBase;true;SendAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;SendOneWay;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceClientBase;true;SendOneWay;(System.String,System.Object);;Argument[1];file-content-store;manual | +| ServiceStack;ServiceGatewayFactoryBase;false;Publish;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceGatewayFactoryBase;false;PublishAll;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;ServiceGatewayFactoryBase;false;PublishAllAsync;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;ServiceGatewayFactoryBase;false;PublishAsync;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceGatewayFactoryBase;false;Send<TResponse>;(System.Object);;Argument[0];file-content-store;manual | +| ServiceStack;ServiceGatewayFactoryBase;false;SendAll<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;file-content-store;manual | +| ServiceStack;ServiceGatewayFactoryBase;false;SendAllAsync<TResponse>;(System.Collections.Generic.IEnumerable<System.Object>,System.Threading.CancellationToken);;Argument[0].Element;file-content-store;manual | +| ServiceStack;ServiceGatewayFactoryBase;false;SendAsync<TResponse>;(System.Object,System.Threading.CancellationToken);;Argument[0];file-content-store;manual | +| System.Data.Entity;Database;false;ExecuteSqlCommand;(System.Data.Entity.TransactionalBehavior,System.String,System.Object[]);;Argument[1];sql-injection;manual | +| System.Data.Entity;Database;false;ExecuteSqlCommand;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| System.Data.Entity;Database;false;ExecuteSqlCommandAsync;(System.Data.Entity.TransactionalBehavior,System.String,System.Object[]);;Argument[1];sql-injection;manual | +| System.Data.Entity;Database;false;ExecuteSqlCommandAsync;(System.Data.Entity.TransactionalBehavior,System.String,System.Threading.CancellationToken,System.Object[]);;Argument[1];sql-injection;manual | +| System.Data.Entity;Database;false;ExecuteSqlCommandAsync;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| System.Data.Entity;Database;false;ExecuteSqlCommandAsync;(System.String,System.Threading.CancellationToken,System.Object[]);;Argument[0];sql-injection;manual | +| System.Data.Entity;Database;false;SqlQuery;(System.Type,System.String,System.Object[]);;Argument[1];sql-injection;manual | +| System.Data.Entity;Database;false;SqlQuery<TElement>;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| System.Data.Entity;DbSet;true;SqlQuery;(System.String,System.Object[]);;Argument[0];sql-injection;manual | +| System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String);;Argument[0];sql-injection;manual | +| System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String,System.Data.SqlClient.SqlConnection);;Argument[0];sql-injection;manual | +| System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String,System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction);;Argument[0];sql-injection;manual | +| System.Data.SqlClient;SqlDataAdapter;false;SqlDataAdapter;(System.Data.SqlClient.SqlCommand);;Argument[0];sql-injection;manual | +| System.Data.SqlClient;SqlDataAdapter;false;SqlDataAdapter;(System.String,System.Data.SqlClient.SqlConnection);;Argument[0];sql-injection;manual | +| System.Data.SqlClient;SqlDataAdapter;false;SqlDataAdapter;(System.String,System.String);;Argument[0];sql-injection;manual | +| System.Net.Http;StringContent;false;StringContent;(System.String);;Argument[0];js-injection;df-generated | +| System.Net.Http;StringContent;false;StringContent;(System.String);;Argument[0];js-injection;manual | +| System.Net.Http;StringContent;false;StringContent;(System.String,System.Net.Http.Headers.MediaTypeHeaderValue);;Argument[0];js-injection;df-generated | +| System.Net.Http;StringContent;false;StringContent;(System.String,System.Net.Http.Headers.MediaTypeHeaderValue);;Argument[0];js-injection;manual | +| System.Net.Http;StringContent;false;StringContent;(System.String,System.Text.Encoding);;Argument[0];js-injection;df-generated | +| System.Net.Http;StringContent;false;StringContent;(System.String,System.Text.Encoding);;Argument[0];js-injection;manual | +| System.Net.Http;StringContent;false;StringContent;(System.String,System.Text.Encoding,System.Net.Http.Headers.MediaTypeHeaderValue);;Argument[0];js-injection;manual | +| System.Net.Http;StringContent;false;StringContent;(System.String,System.Text.Encoding,System.String);;Argument[0];js-injection;df-generated | +| System.Net.Http;StringContent;false;StringContent;(System.String,System.Text.Encoding,System.String);;Argument[0];js-injection;manual | +| System.Security.Cryptography;AesCng;false;CreateDecryptor;();;Argument[this];encryption-decryptor;df-generated | +| System.Security.Cryptography;AesCng;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;AesCng;false;CreateEncryptor;();;Argument[this];encryption-encryptor;df-generated | +| System.Security.Cryptography;AesCng;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;AesCng;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Security.Cryptography;AesCryptoServiceProvider;false;CreateDecryptor;();;Argument[this];encryption-decryptor;df-generated | +| System.Security.Cryptography;AesCryptoServiceProvider;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;df-generated | +| System.Security.Cryptography;AesCryptoServiceProvider;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;AesCryptoServiceProvider;false;CreateEncryptor;();;Argument[this];encryption-encryptor;df-generated | +| System.Security.Cryptography;AesCryptoServiceProvider;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;df-generated | +| System.Security.Cryptography;AesCryptoServiceProvider;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;AesCryptoServiceProvider;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;df-generated | +| System.Security.Cryptography;AesCryptoServiceProvider;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Security.Cryptography;AesManaged;false;CreateDecryptor;();;Argument[this];encryption-decryptor;df-generated | +| System.Security.Cryptography;AesManaged;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;df-generated | +| System.Security.Cryptography;AesManaged;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;AesManaged;false;CreateEncryptor;();;Argument[this];encryption-encryptor;df-generated | +| System.Security.Cryptography;AesManaged;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;df-generated | +| System.Security.Cryptography;AesManaged;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;AesManaged;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;df-generated | +| System.Security.Cryptography;AesManaged;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Security.Cryptography;DES;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;df-generated | +| System.Security.Cryptography;DES;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Security.Cryptography;DESCryptoServiceProvider;false;CreateDecryptor;();;Argument[this];encryption-decryptor;df-generated | +| System.Security.Cryptography;DESCryptoServiceProvider;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;df-generated | +| System.Security.Cryptography;DESCryptoServiceProvider;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;DESCryptoServiceProvider;false;CreateEncryptor;();;Argument[this];encryption-encryptor;df-generated | +| System.Security.Cryptography;DESCryptoServiceProvider;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;df-generated | +| System.Security.Cryptography;DESCryptoServiceProvider;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;RC2CryptoServiceProvider;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;df-generated | +| System.Security.Cryptography;RC2CryptoServiceProvider;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;RC2CryptoServiceProvider;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;df-generated | +| System.Security.Cryptography;RC2CryptoServiceProvider;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;RijndaelManaged;false;CreateDecryptor;();;Argument[this];encryption-decryptor;df-generated | +| System.Security.Cryptography;RijndaelManaged;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;df-generated | +| System.Security.Cryptography;RijndaelManaged;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;RijndaelManaged;false;CreateEncryptor;();;Argument[this];encryption-encryptor;df-generated | +| System.Security.Cryptography;RijndaelManaged;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;df-generated | +| System.Security.Cryptography;RijndaelManaged;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;RijndaelManaged;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;df-generated | +| System.Security.Cryptography;RijndaelManaged;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;();;Argument[this];encryption-decryptor;df-generated | +| System.Security.Cryptography;SymmetricAlgorithm;true;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;();;Argument[this];encryption-encryptor;df-generated | +| System.Security.Cryptography;SymmetricAlgorithm;true;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;SymmetricAlgorithm;true;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Security.Cryptography;TripleDES;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;df-generated | +| System.Security.Cryptography;TripleDES;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Security.Cryptography;TripleDESCng;false;CreateDecryptor;();;Argument[this];encryption-decryptor;df-generated | +| System.Security.Cryptography;TripleDESCng;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;TripleDESCng;false;CreateEncryptor;();;Argument[this];encryption-encryptor;df-generated | +| System.Security.Cryptography;TripleDESCng;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;TripleDESCng;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Security.Cryptography;TripleDESCryptoServiceProvider;false;CreateDecryptor;();;Argument[this];encryption-decryptor;df-generated | +| System.Security.Cryptography;TripleDESCryptoServiceProvider;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;df-generated | +| System.Security.Cryptography;TripleDESCryptoServiceProvider;false;CreateDecryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-decryptor;manual | +| System.Security.Cryptography;TripleDESCryptoServiceProvider;false;CreateEncryptor;();;Argument[this];encryption-encryptor;df-generated | +| System.Security.Cryptography;TripleDESCryptoServiceProvider;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;df-generated | +| System.Security.Cryptography;TripleDESCryptoServiceProvider;false;CreateEncryptor;(System.Byte[],System.Byte[]);;Argument[0];encryption-encryptor;manual | +| System.Security.Cryptography;TripleDESCryptoServiceProvider;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;df-generated | +| System.Security.Cryptography;TripleDESCryptoServiceProvider;false;set_Key;(System.Byte[]);;Argument[0];encryption-keyprop;manual | +| System.Web;HttpResponse;false;Write;(System.Object);;Argument[0];html-injection;manual | +| System.Web;HttpResponse;false;Write;(System.String);;Argument[0];html-injection;manual | +| System.Web;HttpResponse;false;WriteFile;(System.String);;Argument[0];html-injection;manual | summary | Dapper;CustomPropertyTypeMap;false;CustomPropertyTypeMap;(System.Type,System.Func<System.Type,System.String,System.Reflection.PropertyInfo>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Dapper;DynamicParameters;false;Output<T>;(T,System.Linq.Expressions.Expression<System.Func<T,System.Object>>,System.Nullable<System.Data.DbType>,System.Nullable<System.Int32>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | From d24f032d976778c25cee1ea74efb5ebbf9acc54d Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Mon, 18 Mar 2024 12:54:04 +0100 Subject: [PATCH 257/309] C#: Update other tests. --- .../dataflow/library/FlowSummariesFiltered.expected | 2 -- .../frameworks/EntityFramework/FlowSummaries.expected | 1 - 2 files changed, 3 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index 4dec1bdd7d1..cf17fed3269 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -1,4 +1,3 @@ -summary | Dapper;CustomPropertyTypeMap;false;CustomPropertyTypeMap;(System.Type,System.Func<System.Type,System.String,System.Reflection.PropertyInfo>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Dapper;DynamicParameters;false;Output<T>;(T,System.Linq.Expressions.Expression<System.Func<T,System.Object>>,System.Nullable<System.Data.DbType>,System.Nullable<System.Int32>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Dapper;SqlMapper+GridReader;false;GridReader;(System.Data.IDbCommand,System.Data.Common.DbDataReader,Dapper.SqlMapper+Identity,System.Action<System.Object>,System.Object,System.Boolean,System.Threading.CancellationToken);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | @@ -16125,4 +16124,3 @@ summary | System;ValueTuple<T1>;false;ToString;();;Argument[this];ReturnValue;taint;df-generated | | System;ValueTuple<T1>;false;ValueTuple;(T1);;Argument[0];Argument[this].Field[System.ValueTuple`1.Item1];value;manual | | System;ValueTuple<T1>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple`1.Item1];ReturnValue;value;manual | -neutral diff --git a/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.expected b/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.expected index 8522487dff7..db1bacefb33 100644 --- a/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.expected @@ -170,7 +170,6 @@ summary | System.Data.Entity;DbContext;false;SaveChangesAsync;(System.Threading.CancellationToken);;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];SyntheticGlobal[EFTests.MyContext.Persons#ReturnValue.Element.Property[EFTests.Person.Id]];value;manual | | System.Data.Entity;DbContext;false;SaveChangesAsync;(System.Threading.CancellationToken);;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];SyntheticGlobal[EFTests.MyContext.PersonAddresses#ReturnValue.Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name]];value;manual | | System.Data.Entity;DbContext;false;SaveChangesAsync;(System.Threading.CancellationToken);;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];SyntheticGlobal[EFTests.MyContext.Persons#ReturnValue.Element.Property[EFTests.Person.Name]];value;manual | -neutral sourceNode sinkNode | EntityFrameworkCore.cs:72:36:72:40 | "sql" | sql-injection | From 70c674494409c4d29563d35a34fbbc6c01abedaa Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Mon, 18 Mar 2024 13:04:45 +0100 Subject: [PATCH 258/309] Java/Go/Swift: Sync changes. --- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 4 ++-- .../semmle/go/dataflow/internal/FlowSummaryImpl.qll | 12 ++++++++---- .../code/java/dataflow/internal/FlowSummaryImpl.qll | 8 ++++---- .../modeleditor/FrameworkModeEndpointsQuery.qll | 4 ++-- .../swift/dataflow/internal/FlowSummaryImpl.qll | 12 ++++++++---- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index cacad869509..ba5270483fc 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -299,8 +299,8 @@ predicate hasExternalSpecification(Function f) { f = any(SummarizedCallable sc).asFunction() or exists(SourceSinkInterpretationInput::SourceOrSinkElement e | f = e.asEntity() | - SourceSinkInterpretationInput::sourceElement(e, _, _) or - SourceSinkInterpretationInput::sinkElement(e, _, _) + SourceSinkInterpretationInput::sourceElement(e, _, _, _) or + SourceSinkInterpretationInput::sinkElement(e, _, _, _) ) } diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index cbf33afff25..1c7ef2e362c 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -103,11 +103,13 @@ module SourceSinkInterpretationInput implements * Holds if an external source specification exists for `e` with output specification * `output`, kind `kind`, and provenance `provenance`. */ - predicate sourceElement(SourceOrSinkElement e, string output, string kind) { + predicate sourceElement( + SourceOrSinkElement e, string output, string kind, Public::Provenance provenance + ) { exists( string package, string type, boolean subtypes, string name, string signature, string ext | - sourceModel(package, type, subtypes, name, signature, ext, output, kind, _) and + sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance) and e = interpretElement(package, type, subtypes, name, signature, ext) ) } @@ -116,11 +118,13 @@ module SourceSinkInterpretationInput implements * Holds if an external sink specification exists for `e` with input specification * `input`, kind `kind` and provenance `provenance`. */ - predicate sinkElement(SourceOrSinkElement e, string input, string kind) { + predicate sinkElement( + SourceOrSinkElement e, string input, string kind, Public::Provenance provenance + ) { exists( string package, string type, boolean subtypes, string name, string signature, string ext | - sinkModel(package, type, subtypes, name, signature, ext, input, kind, _) and + sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance) and e = interpretElement(package, type, subtypes, name, signature, ext) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index d5364567d88..0fbe7c3a1d1 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -192,12 +192,12 @@ module SourceSinkInterpretationInput implements class Element = J::Element; - predicate sourceElement(Element e, string output, string kind) { + predicate sourceElement(Element e, string output, string kind, Public::Provenance provenance) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, SourceOrSinkElement baseSource, string originalOutput | - sourceModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, _) and + sourceModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, provenance) and baseSource = interpretElement(namespace, type, subtypes, name, signature, ext) and ( e = baseSource and output = originalOutput @@ -207,12 +207,12 @@ module SourceSinkInterpretationInput implements ) } - predicate sinkElement(Element e, string input, string kind) { + predicate sinkElement(Element e, string input, string kind, Public::Provenance provenance) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, SourceOrSinkElement baseSink, string originalInput | - sinkModel(namespace, type, subtypes, name, signature, ext, originalInput, kind, _) and + sinkModel(namespace, type, subtypes, name, signature, ext, originalInput, kind, provenance) and baseSink = interpretElement(namespace, type, subtypes, name, signature, ext) and ( e = baseSink and originalInput = input diff --git a/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll b/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll index d8af480c6d3..76c727a4bf5 100644 --- a/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll +++ b/java/ql/src/utils/modeleditor/FrameworkModeEndpointsQuery.qll @@ -8,7 +8,7 @@ private import ModelEditor * A class of effectively public callables from source code. */ class PublicEndpointFromSource extends Endpoint, ModelApi { - override predicate isSource() { SourceSinkInterpretationInput::sourceElement(this, _, _) } + override predicate isSource() { SourceSinkInterpretationInput::sourceElement(this, _, _, _) } - override predicate isSink() { SourceSinkInterpretationInput::sinkElement(this, _, _) } + override predicate isSink() { SourceSinkInterpretationInput::sinkElement(this, _, _, _) } } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll index 1151a7aeec8..0a8c8605472 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll @@ -119,11 +119,13 @@ module SourceSinkInterpretationInput implements * Holds if an external source specification exists for `e` with output specification * `output`, kind `kind`, and provenance `provenance`. */ - predicate sourceElement(SourceOrSinkElement e, string output, string kind) { + predicate sourceElement( + SourceOrSinkElement e, string output, string kind, Public::Provenance provenance + ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext | - sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, _) and + sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance) and e = interpretElement(namespace, type, subtypes, name, signature, ext) ) } @@ -132,11 +134,13 @@ module SourceSinkInterpretationInput implements * Holds if an external sink specification exists for `e` with input specification * `input`, kind `kind` and provenance `provenance`. */ - predicate sinkElement(SourceOrSinkElement e, string input, string kind) { + predicate sinkElement( + SourceOrSinkElement e, string input, string kind, Public::Provenance provenance + ) { exists( string package, string type, boolean subtypes, string name, string signature, string ext | - sinkModel(package, type, subtypes, name, signature, ext, input, kind, _) and + sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance) and e = interpretElement(package, type, subtypes, name, signature, ext) ) } From 7371f5e508451ee8044500eeb92e9d7101ac33db Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <owen-mc@github.com> Date: Tue, 19 Mar 2024 13:33:49 +0000 Subject: [PATCH 259/309] Provenance should be "df-manual" --- java/ql/lib/ext/java.lang.model.yml | 2 +- java/ql/lib/ext/java.util.model.yml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/java/ql/lib/ext/java.lang.model.yml b/java/ql/lib/ext/java.lang.model.yml index 92f0a7a0805..8bcfa7d242d 100644 --- a/java/ql/lib/ext/java.lang.model.yml +++ b/java/ql/lib/ext/java.lang.model.yml @@ -114,7 +114,7 @@ extensions: - ["java.lang", "String", False, "indent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "intern", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "lines", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "df-generated"] + - ["java.lang", "String", False, "lines", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "df-manual"] - ["java.lang", "String", False, "repeat", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "replace", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "replace", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index fe4958856d3..e2617815008 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -527,11 +527,11 @@ extensions: - ["java.util", "Optional", "isPresent", "()", "summary", "manual"] - ["java.util", "Random", "nextInt", "(int)", "summary", "manual"] - ["java.util", "ResourceBundle", "getBundle", "", "summary", "df-manual"] - - ["java.util", "Scanner", "delimiter", "()", "summary", "df-generated"] - - ["java.util", "Scanner", "hasNext", "(Pattern)", "summary", "df-generated"] - - ["java.util", "Scanner", "hasNext", "(String)", "summary", "df-generated"] - - ["java.util", "Scanner", "ioException", "()", "summary", "df-generated"] - - ["java.util", "Scanner", "locale", "()", "summary", "df-generated"] + - ["java.util", "Scanner", "delimiter", "()", "summary", "df-manual"] + - ["java.util", "Scanner", "hasNext", "(Pattern)", "summary", "df-manual"] + - ["java.util", "Scanner", "hasNext", "(String)", "summary", "df-manual"] + - ["java.util", "Scanner", "ioException", "()", "summary", "df-manual"] + - ["java.util", "Scanner", "locale", "()", "summary", "df-manual"] - ["java.util", "Set", "contains", "(Object)", "summary", "manual"] - ["java.util", "Set", "isEmpty", "()", "summary", "manual"] - ["java.util", "Set", "size", "()", "summary", "manual"] From ee3e38f0eb57fe121b1ad358f3f86d93e6b60afe Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Tue, 19 Mar 2024 14:35:00 +0100 Subject: [PATCH 260/309] Simplify test interface in `FlowSummaryImpl.qll` --- .../dataflow/library/FlowSummaries.ql | 34 ++---- .../dataflow/library/FlowSummariesFiltered.ql | 12 +-- csharp/ql/test/shared/FlowSummaries.qll | 10 +- .../dataflow/internal/FlowSummaryImpl.qll | 101 +++++------------- 4 files changed, 51 insertions(+), 106 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql index b09721b4f3f..856ea6d99e9 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql @@ -2,32 +2,20 @@ import shared.FlowSummaries import semmle.code.csharp.dataflow.internal.ExternalFlow import External -module TestSummaryInput implements TestSummaryInputSig { - class RelevantSummarizedCallable = IncludeSummarizedCallable; +final private class NeutralCallableFinal = NeutralCallable; + +class RelevantNeutralCallable extends NeutralCallableFinal { + final string getCallableCsv() { result = asPartialNeutralModel(this) } } -module TestNeutralInput implements TestNeutralInputSig { - class RelevantNeutralCallable instanceof NeutralCallable { - final string getCallableCsv() { result = asPartialNeutralModel(this) } - - string toString() { result = super.toString() } - } +class RelevantSourceCallable extends SourceCallable { + string getCallableCsv() { result = asPartialModel(this) } } -module TestSourceSinkInput implements TestSourceSinkInputSig { - class RelevantSourceCallable instanceof SourceCallable { - string getCallableCsv() { result = asPartialModel(this) } - - string toString() { result = super.toString() } - } - - class RelevantSinkCallable instanceof SinkCallable { - string getCallableCsv() { result = asPartialModel(this) } - - string toString() { result = super.toString() } - } +class RelevantSinkCallable extends SinkCallable { + string getCallableCsv() { result = asPartialModel(this) } } -import TestSummaryOutput<TestSummaryInput> -import TestNeutralOutput<TestNeutralInput> -import TestSourceSinkOutput<TestSourceSinkInput> +import TestSummaryOutput<IncludeSummarizedCallable> +import TestNeutralOutput<RelevantNeutralCallable> +import TestSourceSinkOutput<RelevantSourceCallable, RelevantSinkCallable> diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql index fe3a931b451..5bbb7ec0c6f 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql @@ -1,13 +1,7 @@ import shared.FlowSummaries private import semmle.code.csharp.dataflow.internal.ExternalFlow -module TestSummaryInput implements TestSummaryInputSig { - class RelevantSummarizedCallable = IncludeSummarizedCallable; -} - -import TestSummaryOutput<TestSummaryInput> - -class IncludeFilteredSummarizedCallable extends RelevantSummarizedCallable { +class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable { /** * Holds if flow is propagated between `input` and `output` and * if there is no summary for a callable in a `base` class or interface @@ -16,7 +10,7 @@ class IncludeFilteredSummarizedCallable extends RelevantSummarizedCallable { override predicate relevantSummary( SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue ) { - this.(SummarizedCallableImpl).propagatesFlow(input, output, preservesValue) and + this.propagatesFlow(input, output, preservesValue) and not exists(IncludeSummarizedCallable rsc | isBaseCallableOrPrototype(rsc) and rsc.(SummarizedCallableImpl).propagatesFlow(input, output, preservesValue) and @@ -24,3 +18,5 @@ class IncludeFilteredSummarizedCallable extends RelevantSummarizedCallable { ) } } + +import TestSummaryOutput<IncludeFilteredSummarizedCallable> diff --git a/csharp/ql/test/shared/FlowSummaries.qll b/csharp/ql/test/shared/FlowSummaries.qll index 39028ef2df7..b68966afa34 100644 --- a/csharp/ql/test/shared/FlowSummaries.qll +++ b/csharp/ql/test/shared/FlowSummaries.qll @@ -2,7 +2,9 @@ import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Public private import semmle.code.csharp.dataflow.internal.ExternalFlow -class IncludeSummarizedCallable instanceof SummarizedCallableImpl { +final private class SummarizedCallableImplFinal = SummarizedCallableImpl; + +class IncludeSummarizedCallable extends SummarizedCallableImplFinal { IncludeSummarizedCallable() { [this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() } @@ -10,5 +12,11 @@ class IncludeSummarizedCallable instanceof SummarizedCallableImpl { /** Gets a string representing the callable in semi-colon separated format for use in flow summaries. */ final string getCallableCsv() { result = asPartialModel(this) } + predicate relevantSummary( + SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue + ) { + this.propagatesFlow(input, output, preservesValue) + } + string toString() { result = super.toString() } } diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 9d059366513..48a56890e78 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -1692,28 +1692,16 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { ) } - signature module TestSourceSinkInputSig { - /** - * A class or source elements relevant for testing. - */ - class RelevantSourceCallable instanceof SourceOrSinkElement { - /** Gets the string representation of this callable used by `source/1`. */ - string getCallableCsv(); - } - - /** - * A class or sink elements relevant for testing. - */ - class RelevantSinkCallable instanceof SourceOrSinkElement { - /** Gets the string representation of this callable used by `source/1`. */ - string getCallableCsv(); - } + /** A source or sink relevant for testing. */ + signature class RelevantSourceOrSinkElementSig extends SourceOrSinkElement { + /** Gets the string representation of this callable used by `source/1` or `sink/1`. */ + string getCallableCsv(); } /** Provides query predicates for outputting a set of relevant sources and sinks. */ - module TestSourceSinkOutput<TestSourceSinkInputSig TestSourceSinkInput> { - private import TestSourceSinkInput - + module TestSourceSinkOutput< + RelevantSourceOrSinkElementSig RelevantSource, RelevantSourceOrSinkElementSig RelevantSink> + { /** * Holds if there exists a relevant source callable with information roughly corresponding to `csv`. * Used for testing. @@ -1721,10 +1709,10 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { * ext is hardcoded to empty. */ query predicate source(string csv) { - exists(RelevantSourceCallable c, string output, string kind, Provenance provenance | - sourceElement(c, output, kind, provenance) and + exists(RelevantSource s, string output, string kind, Provenance provenance | + sourceElement(s, output, kind, provenance) and csv = - c.getCallableCsv() // Callable information + s.getCallableCsv() // Callable information + output + ";" // output + kind + ";" // kind + provenance // provenance @@ -1738,10 +1726,10 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { * ext is hardcoded to empty. */ query predicate sink(string csv) { - exists(RelevantSinkCallable c, string input, string kind, Provenance provenance | - sinkElement(c, input, kind, provenance) and + exists(RelevantSink s, string input, string kind, Provenance provenance | + sinkElement(s, input, kind, provenance) and csv = - c.getCallableCsv() // Callable information + s.getCallableCsv() // Callable information + input + ";" // input + kind + ";" // kind + provenance // provenance @@ -1751,35 +1739,18 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { } } - signature module TestSummaryInputSig { - /** - * A class of callables where the flow summary should be included - * in the `summary/1` query predicate. - */ - class RelevantSummarizedCallable instanceof SummarizedCallableImpl { - /** Gets the string representation of this callable used by `summary/1`. */ - string getCallableCsv(); - } + /** A summarized callable relevant for testing. */ + signature class RelevantSummarizedCallableSig extends SummarizedCallableImpl { + /** Gets the string representation of this callable used by `summary/1`. */ + string getCallableCsv(); + + predicate relevantSummary( + SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue + ); } /** Provides a query predicate for outputting a set of relevant flow summaries. */ - module TestSummaryOutput<TestSummaryInputSig TestInput> { - private import TestInput - - final class RelevantSummarizedCallableFinal = TestInput::RelevantSummarizedCallable; - - class RelevantSummarizedCallable extends RelevantSummarizedCallableFinal instanceof SummarizedCallableImpl - { - /** Holds if flow is propagated between `input` and `output`. */ - predicate relevantSummary( - SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue - ) { - super.propagatesFlow(input, output, preservesValue) - } - - string toString() { result = super.toString() } - } - + module TestSummaryOutput<RelevantSummarizedCallableSig RelevantSummarizedCallable> { /** Render the kind in the format used in flow summaries. */ private string renderKind(boolean preservesValue) { preservesValue = true and result = "value" @@ -1816,31 +1787,13 @@ module Make<DF::InputSig DataFlowLang, InputSig<DataFlowLang> Input> { } } - signature module TestNeutralInputSig { - /** - * A class of callables where the neutral model should be included - * in the `neutral/1` query predicate. - */ - class RelevantNeutralCallable instanceof NeutralCallable { - /** Gets the string representation of this callable used by `neutral/1`. */ - string getCallableCsv(); - } + /** A summarized callable relevant for testing. */ + signature class RelevantNeutralCallableSig extends NeutralCallable { + /** Gets the string representation of this callable used by `neutral/1`. */ + string getCallableCsv(); } - module TestNeutralOutput<TestNeutralInputSig TestInput> { - private import TestInput - - final class RelevantNeutralCallableFinal = TestInput::RelevantNeutralCallable; - - class RelevantNeutralCallable extends RelevantNeutralCallableFinal instanceof NeutralCallable { - /** - * Gets the kind of the neutral. - */ - string getKind() { result = super.getKind() } - - string toString() { result = super.toString() } - } - + module TestNeutralOutput<RelevantNeutralCallableSig RelevantNeutralCallable> { private string renderProvenance(NeutralCallable c) { exists(Provenance p | p.isManual() and c.hasProvenance(p) and result = p.toString()) or From 7e479e3c8ee7a0246c50a63b3a069259ec08448f Mon Sep 17 00:00:00 2001 From: Harry Maclean <hmac@github.com> Date: Tue, 19 Mar 2024 13:47:45 +0000 Subject: [PATCH 261/309] Ruby: Fix Hash#keys flow summary --- .../lib/codeql/ruby/frameworks/core/Hash.qll | 4 +- .../dataflow/hash-flow/hash-flow.expected | 49 +++++++------------ .../dataflow/hash-flow/hash-flow.ql | 2 +- .../dataflow/hash-flow/hash_flow.rb | 9 ++-- 4 files changed, 24 insertions(+), 40 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll index 7583498ed08..38a9a70f0d3 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/core/Hash.qll @@ -530,8 +530,8 @@ private class KeysSummary extends SimpleSummarizedCallable { KeysSummary() { this = "keys" } override predicate propagatesFlow(string input, string output, boolean preservesValue) { - input = "Argument[self].Element[any]" and + input = "Argument[self]" and output = "ReturnValue.Element[?]" and - preservesValue = true + preservesValue = false } } diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected index 23027a7d73f..68cb5a53dc2 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected @@ -1089,19 +1089,13 @@ edges | hash_flow.rb:994:30:994:40 | call to taint | hash_flow.rb:994:14:994:47 | ...[...] [element :b] | provenance | | | hash_flow.rb:996:14:996:15 | h2 [element :b] | hash_flow.rb:996:14:996:19 | ...[...] | provenance | | | hash_flow.rb:998:14:998:15 | h2 [element :b] | hash_flow.rb:998:14:998:18 | ...[...] | provenance | | -| hash_flow.rb:1006:5:1006:5 | [post] h [element] | hash_flow.rb:1007:12:1007:12 | h [element] | provenance | | -| hash_flow.rb:1006:14:1006:24 | call to taint | hash_flow.rb:1006:5:1006:5 | [post] h [element] | provenance | | -| hash_flow.rb:1007:5:1007:8 | keys [element] | hash_flow.rb:1008:10:1008:13 | keys [element] | provenance | | -| hash_flow.rb:1007:12:1007:12 | h [element] | hash_flow.rb:1007:12:1007:17 | call to keys [element] | provenance | | -| hash_flow.rb:1007:12:1007:17 | call to keys [element] | hash_flow.rb:1007:5:1007:8 | keys [element] | provenance | | -| hash_flow.rb:1008:10:1008:13 | keys [element] | hash_flow.rb:1008:10:1008:17 | ...[...] | provenance | | -| hash_flow.rb:1012:5:1012:5 | h [element :a] | hash_flow.rb:1013:5:1013:5 | h [element :a] | provenance | | -| hash_flow.rb:1012:9:1012:45 | call to [] [element :a] | hash_flow.rb:1012:5:1012:5 | h [element :a] | provenance | | -| hash_flow.rb:1012:14:1012:24 | call to taint | hash_flow.rb:1012:9:1012:45 | call to [] [element :a] | provenance | | -| hash_flow.rb:1013:5:1013:5 | h [element :a] | hash_flow.rb:1013:15:1013:15 | k | provenance | | -| hash_flow.rb:1013:5:1013:5 | h [element :a] | hash_flow.rb:1013:18:1013:18 | v | provenance | | -| hash_flow.rb:1013:15:1013:15 | k | hash_flow.rb:1015:14:1015:14 | k | provenance | | -| hash_flow.rb:1013:18:1013:18 | v | hash_flow.rb:1014:14:1014:14 | v | provenance | | +| hash_flow.rb:1011:5:1011:5 | h [element :a] | hash_flow.rb:1012:5:1012:5 | h [element :a] | provenance | | +| hash_flow.rb:1011:9:1011:45 | call to [] [element :a] | hash_flow.rb:1011:5:1011:5 | h [element :a] | provenance | | +| hash_flow.rb:1011:14:1011:24 | call to taint | hash_flow.rb:1011:9:1011:45 | call to [] [element :a] | provenance | | +| hash_flow.rb:1012:5:1012:5 | h [element :a] | hash_flow.rb:1012:15:1012:15 | k | provenance | | +| hash_flow.rb:1012:5:1012:5 | h [element :a] | hash_flow.rb:1012:18:1012:18 | v | provenance | | +| hash_flow.rb:1012:15:1012:15 | k | hash_flow.rb:1014:14:1014:14 | k | provenance | | +| hash_flow.rb:1012:18:1012:18 | v | hash_flow.rb:1013:14:1013:14 | v | provenance | | nodes | hash_flow.rb:10:5:10:8 | hash [element 0] | semmle.label | hash [element 0] | | hash_flow.rb:10:5:10:8 | hash [element :a] | semmle.label | hash [element :a] | @@ -2264,21 +2258,14 @@ nodes | hash_flow.rb:996:14:996:19 | ...[...] | semmle.label | ...[...] | | hash_flow.rb:998:14:998:15 | h2 [element :b] | semmle.label | h2 [element :b] | | hash_flow.rb:998:14:998:18 | ...[...] | semmle.label | ...[...] | -| hash_flow.rb:1006:5:1006:5 | [post] h [element] | semmle.label | [post] h [element] | -| hash_flow.rb:1006:14:1006:24 | call to taint | semmle.label | call to taint | -| hash_flow.rb:1007:5:1007:8 | keys [element] | semmle.label | keys [element] | -| hash_flow.rb:1007:12:1007:12 | h [element] | semmle.label | h [element] | -| hash_flow.rb:1007:12:1007:17 | call to keys [element] | semmle.label | call to keys [element] | -| hash_flow.rb:1008:10:1008:13 | keys [element] | semmle.label | keys [element] | -| hash_flow.rb:1008:10:1008:17 | ...[...] | semmle.label | ...[...] | +| hash_flow.rb:1011:5:1011:5 | h [element :a] | semmle.label | h [element :a] | +| hash_flow.rb:1011:9:1011:45 | call to [] [element :a] | semmle.label | call to [] [element :a] | +| hash_flow.rb:1011:14:1011:24 | call to taint | semmle.label | call to taint | | hash_flow.rb:1012:5:1012:5 | h [element :a] | semmle.label | h [element :a] | -| hash_flow.rb:1012:9:1012:45 | call to [] [element :a] | semmle.label | call to [] [element :a] | -| hash_flow.rb:1012:14:1012:24 | call to taint | semmle.label | call to taint | -| hash_flow.rb:1013:5:1013:5 | h [element :a] | semmle.label | h [element :a] | -| hash_flow.rb:1013:15:1013:15 | k | semmle.label | k | -| hash_flow.rb:1013:18:1013:18 | v | semmle.label | v | -| hash_flow.rb:1014:14:1014:14 | v | semmle.label | v | -| hash_flow.rb:1015:14:1015:14 | k | semmle.label | k | +| hash_flow.rb:1012:15:1012:15 | k | semmle.label | k | +| hash_flow.rb:1012:18:1012:18 | v | semmle.label | v | +| hash_flow.rb:1013:14:1013:14 | v | semmle.label | v | +| hash_flow.rb:1014:14:1014:14 | k | semmle.label | k | subpaths hashLiteral | hash_flow.rb:10:12:21:5 | call to [] | @@ -2352,8 +2339,7 @@ hashLiteral | hash_flow.rb:946:13:950:5 | call to [] | | hash_flow.rb:971:9:971:38 | ...[...] | | hash_flow.rb:994:14:994:47 | ...[...] | -| hash_flow.rb:1005:9:1005:10 | call to [] | -| hash_flow.rb:1012:9:1012:45 | call to [] | +| hash_flow.rb:1011:9:1011:45 | call to [] | #select | hash_flow.rb:22:10:22:17 | ...[...] | hash_flow.rb:11:15:11:24 | call to taint | hash_flow.rb:22:10:22:17 | ...[...] | $@ | hash_flow.rb:11:15:11:24 | call to taint | call to taint | | hash_flow.rb:24:10:24:17 | ...[...] | hash_flow.rb:13:12:13:21 | call to taint | hash_flow.rb:24:10:24:17 | ...[...] | $@ | hash_flow.rb:13:12:13:21 | call to taint | call to taint | @@ -2599,6 +2585,5 @@ hashLiteral | hash_flow.rb:975:10:975:13 | ...[...] | hash_flow.rb:971:23:971:31 | call to taint | hash_flow.rb:975:10:975:13 | ...[...] | $@ | hash_flow.rb:971:23:971:31 | call to taint | call to taint | | hash_flow.rb:996:14:996:19 | ...[...] | hash_flow.rb:994:30:994:40 | call to taint | hash_flow.rb:996:14:996:19 | ...[...] | $@ | hash_flow.rb:994:30:994:40 | call to taint | call to taint | | hash_flow.rb:998:14:998:18 | ...[...] | hash_flow.rb:994:30:994:40 | call to taint | hash_flow.rb:998:14:998:18 | ...[...] | $@ | hash_flow.rb:994:30:994:40 | call to taint | call to taint | -| hash_flow.rb:1008:10:1008:17 | ...[...] | hash_flow.rb:1006:14:1006:24 | call to taint | hash_flow.rb:1008:10:1008:17 | ...[...] | $@ | hash_flow.rb:1006:14:1006:24 | call to taint | call to taint | -| hash_flow.rb:1014:14:1014:14 | v | hash_flow.rb:1012:14:1012:24 | call to taint | hash_flow.rb:1014:14:1014:14 | v | $@ | hash_flow.rb:1012:14:1012:24 | call to taint | call to taint | -| hash_flow.rb:1015:14:1015:14 | k | hash_flow.rb:1012:14:1012:24 | call to taint | hash_flow.rb:1015:14:1015:14 | k | $@ | hash_flow.rb:1012:14:1012:24 | call to taint | call to taint | +| hash_flow.rb:1013:14:1013:14 | v | hash_flow.rb:1011:14:1011:24 | call to taint | hash_flow.rb:1013:14:1013:14 | v | $@ | hash_flow.rb:1011:14:1011:24 | call to taint | call to taint | +| hash_flow.rb:1014:14:1014:14 | k | hash_flow.rb:1011:14:1011:24 | call to taint | hash_flow.rb:1014:14:1014:14 | k | $@ | hash_flow.rb:1011:14:1011:24 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.ql b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.ql index e3b694d3e75..5ec8ec0a0d6 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.ql +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.ql @@ -5,7 +5,7 @@ import codeql.ruby.AST import codeql.ruby.CFG import TestUtilities.InlineFlowTest -import ValueFlowTest<DefaultFlowConfig> +import DefaultFlowTest import ValueFlow::PathGraph query predicate hashLiteral(CfgNodes::ExprNodes::HashLiteralCfgNode n) { any() } diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb b/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb index b88f8c3a4d4..edc1e325b09 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash_flow.rb @@ -59,7 +59,7 @@ def m3() x = {a: taint(3.2), b: 1} hash2 = Hash[x] sink(hash2[:a]) # $ hasValueFlow=3.2 - sink(hash2[:b]) + sink(hash2[:b]) # $ hasTaintFlow=3.2 hash3 = Hash[[[:a, taint(3.3)], [:b, 1]]] sink(hash3[:a]) # $ hasValueFlow=3.3 @@ -75,7 +75,7 @@ def m3() hash6 = Hash[{"a" => taint(3.6), "b" => 1}] sink(hash6["a"]) # $ hasValueFlow=3.6 - sink(hash6["b"]) + sink(hash6["b"]) # $ hasTaintFlow=3.6 end m3() @@ -1002,10 +1002,9 @@ end M54.new.m54(:b) def m55 - h = {} - h[f()] = taint(55.1) + h = taint(55.1) keys = h.keys - sink(keys[:a]) # $ hasValueFlow=55.1 + sink(keys[f()]) # $ hasTaintFlow=55.1 end def m56 From 6ce3f35ef5ad81b2896b65a8de683276e52ce436 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 14:43:10 +0000 Subject: [PATCH 262/309] C++: Fix API for guards. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 42 ++++++++----------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index ab67d77f5cd..83999cff947 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -138,9 +138,9 @@ class GuardCondition extends Expr { cached predicate ensuresEq(Expr left, Expr right, int k, BasicBlock block, boolean areEqual) { none() } - /** Holds if (determined by this guard) `e == k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ + /** Holds if (determined by this guard) `e == k` evaluates to `areEqual` if this expression evaluates to `value`. */ cached - predicate comparesEq(Expr e, int k, boolean areEqual, boolean testIsTrue) { none() } + predicate comparesEq(Expr e, int k, boolean areEqual, AbstractValue value) { none() } /** * Holds if (determined by this guard) `e == k` must be `areEqual` in `block`. @@ -196,17 +196,18 @@ private class GuardConditionFromBinaryLogicalOperator extends GuardCondition { ) } - override predicate comparesEq(Expr e, int k, boolean areEqual, boolean testIsTrue) { - exists(boolean partIsTrue, GuardCondition part | - this.(BinaryLogicalOperation).impliesValue(part, partIsTrue, testIsTrue) + override predicate comparesEq(Expr e, int k, boolean areEqual, AbstractValue value) { + exists(BooleanValue partValue, GuardCondition part | + this.(BinaryLogicalOperation) + .impliesValue(part, partValue.getValue(), value.(BooleanValue).getValue()) | - part.comparesEq(e, k, areEqual, partIsTrue) + part.comparesEq(e, k, areEqual, partValue) ) } override predicate ensuresEq(Expr e, int k, BasicBlock block, boolean areEqual) { - exists(boolean testIsTrue | - this.comparesEq(e, k, areEqual, testIsTrue) and this.controls(block, testIsTrue) + exists(AbstractValue value | + this.comparesEq(e, k, areEqual, value) and this.valueControls(block, value) ) } } @@ -270,18 +271,18 @@ private class GuardConditionFromIR extends GuardCondition { ) } - override predicate comparesEq(Expr e, int k, boolean areEqual, boolean testIsTrue) { + override predicate comparesEq(Expr e, int k, boolean areEqual, AbstractValue value) { exists(Instruction i | i.getUnconvertedResultExpression() = e and - ir.comparesEq(i.getAUse(), k, areEqual, testIsTrue) + ir.comparesEq(i.getAUse(), k, areEqual, value) ) } override predicate ensuresEq(Expr e, int k, BasicBlock block, boolean areEqual) { - exists(Instruction i, boolean testIsTrue | + exists(Instruction i, AbstractValue value | i.getUnconvertedResultExpression() = e and - ir.comparesEq(i.getAUse(), k, areEqual, testIsTrue) and - this.controls(block, testIsTrue) + ir.comparesEq(i.getAUse(), k, areEqual, value) and + this.valueControls(block, value) ) } @@ -492,19 +493,10 @@ class IRGuardCondition extends Instruction { ) } - /** Holds if (determined by this guard) `op == k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ + /** Holds if (determined by this guard) `op == k` evaluates to `areEqual` if this expression evaluates to `value`. */ cached - predicate comparesEq(Operand op, int k, boolean areEqual, boolean testIsTrue) { - exists(MatchValue mv | - compares_eq(this, op, k, areEqual, mv) and - // A match value cannot be dualized, so `testIsTrue` is always true - testIsTrue = true - ) - or - exists(BooleanValue bv | - compares_eq(this, op, k, areEqual, bv) and - bv.getValue() = testIsTrue - ) + predicate comparesEq(Operand op, int k, boolean areEqual, AbstractValue value) { + compares_eq(this, op, k, areEqual, value) } /** From c640bd67e934de2efcbbb3c26abe4bc77afdcd45 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 14:35:53 +0000 Subject: [PATCH 263/309] C++: Fix tests for guards. --- .../controlflow/guards-ir/tests.ql | 40 ++++++++++--------- .../controlflow/guards/GuardsCompare.expected | 6 +-- .../controlflow/guards/GuardsCompare.ql | 17 ++++---- 3 files changed, 34 insertions(+), 29 deletions(-) diff --git a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql index 263c30c2fec..6016f864822 100644 --- a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql +++ b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql @@ -4,8 +4,8 @@ import semmle.code.cpp.controlflow.IRGuards query predicate astGuards(GuardCondition guard) { any() } query predicate astGuardsCompare(int startLine, string msg) { - exists(GuardCondition guard, Expr left, int k, string which, string op | - exists(boolean sense | + exists(GuardCondition guard, Expr left, int k, string op | + exists(boolean sense, string which | sense = true and which = "true" or sense = false and which = "false" @@ -21,14 +21,16 @@ query predicate astGuardsCompare(int startLine, string msg) { | msg = left + op + right + "+" + k + " when " + guard + " is " + which ) + ) + or + exists(AbstractValue value | + guard.comparesEq(left, k, true, value) and op = " == " or - ( - guard.comparesEq(left, k, true, sense) and op = " == " - or - guard.comparesEq(left, k, false, sense) and op = " != " - ) and - msg = left + op + k + " when " + guard + " is " + which - ) and + guard.comparesEq(left, k, false, value) and op = " != " + | + msg = left + op + k + " when " + guard + " is " + value + ) + | startLine = guard.getLocation().getStartLine() ) } @@ -71,8 +73,8 @@ query predicate astGuardsEnsure_const( query predicate irGuards(IRGuardCondition guard) { any() } query predicate irGuardsCompare(int startLine, string msg) { - exists(IRGuardCondition guard, Operand left, int k, string which, string op | - exists(boolean sense | + exists(IRGuardCondition guard, Operand left, int k, string op | + exists(boolean sense, string which | sense = true and which = "true" or sense = false and which = "false" @@ -91,16 +93,18 @@ query predicate irGuardsCompare(int startLine, string msg) { right.getAnyDef().getUnconvertedResultExpression() + "+" + k + " when " + guard + " is " + which ) + ) + or + exists(AbstractValue value | + guard.comparesEq(left, k, true, value) and op = " == " or - ( - guard.comparesEq(left, k, true, sense) and op = " == " - or - guard.comparesEq(left, k, false, sense) and op = " != " - ) and + guard.comparesEq(left, k, false, value) and op = " != " + | msg = left.getAnyDef().getUnconvertedResultExpression() + op + k + " when " + guard + " is " + - which - ) and + value + ) + | startLine = guard.getLocation().getStartLine() ) } diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected index 1057e8e1046..398c7f1558f 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected @@ -55,9 +55,9 @@ | 58 | y < 0+0 when ... < ... is true | | 58 | y >= 0+0 when ... < ... is false | | 58 | y >= 0+0 when ... \|\| ... is false | -| 61 | i == 0 when i is true | -| 61 | i == 1 when i is true | -| 61 | i == 2 when i is true | +| 61 | i == 0 when i is Case[0] | +| 61 | i == 1 when i is Case[1] | +| 61 | i == 2 when i is Case[2] | | 75 | 0 != x+0 when ... == ... is false | | 75 | 0 == x+0 when ... == ... is true | | 75 | x != 0 when ... == ... is false | diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql index 17d4fcaae94..5db52cd4a6e 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql @@ -7,9 +7,9 @@ import cpp import semmle.code.cpp.controlflow.Guards -from GuardCondition guard, Expr left, int k, string which, string op, string msg +from GuardCondition guard, Expr left, int k, string op, string msg where - exists(boolean sense | + exists(boolean sense, string which | sense = true and which = "true" or sense = false and which = "false" @@ -25,12 +25,13 @@ where | msg = left + op + right + "+" + k + " when " + guard + " is " + which ) + ) + or + exists(AbstractValue value | + guard.comparesEq(left, k, true, value) and op = " == " or - ( - guard.comparesEq(left, k, true, sense) and op = " == " - or - guard.comparesEq(left, k, false, sense) and op = " != " - ) and - msg = left + op + k + " when " + guard + " is " + which + guard.comparesEq(left, k, false, value) and op = " != " + | + msg = left + op + k + " when " + guard + " is " + value ) select guard.getLocation().getStartLine(), msg From d3aa2eed646c9b8b623fcdf0c055123d4b849f40 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Tue, 19 Mar 2024 16:30:24 +0100 Subject: [PATCH 264/309] C#: Fix test. --- .../ql/test/library-tests/dataflow/library/FlowSummaries.ql | 3 +-- .../frameworks/EntityFramework/FlowSummaries.ql | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql index 856ea6d99e9..6b117c03ac0 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.ql @@ -1,6 +1,5 @@ import shared.FlowSummaries import semmle.code.csharp.dataflow.internal.ExternalFlow -import External final private class NeutralCallableFinal = NeutralCallable; @@ -18,4 +17,4 @@ class RelevantSinkCallable extends SinkCallable { import TestSummaryOutput<IncludeSummarizedCallable> import TestNeutralOutput<RelevantNeutralCallable> -import TestSourceSinkOutput<RelevantSourceCallable, RelevantSinkCallable> +import External::TestSourceSinkOutput<RelevantSourceCallable, RelevantSinkCallable> diff --git a/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.ql b/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.ql index b5f0aa90ed4..55cd03ede10 100644 --- a/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.ql +++ b/csharp/ql/test/library-tests/frameworks/EntityFramework/FlowSummaries.ql @@ -3,12 +3,10 @@ import shared.FlowSummaries import semmle.code.csharp.frameworks.EntityFramework::EntityFramework import semmle.code.csharp.dataflow.internal.ExternalFlow as ExternalFlow -module TestSummaryInput implements TestSummaryInputSig { - class RelevantSummarizedCallable extends IncludeSummarizedCallable instanceof EFSummarizedCallable - { } +class RelevantSummarizedCallable extends IncludeSummarizedCallable instanceof EFSummarizedCallable { } -import TestSummaryOutput<TestSummaryInput> +import TestSummaryOutput<RelevantSummarizedCallable> query predicate sourceNode(DataFlow::Node node, string kind) { ExternalFlow::sourceNode(node, kind) From 458ee13345a93021f1da581d4cc9ccc36b2918ce Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 16:23:57 +0000 Subject: [PATCH 265/309] C++: Add constant analysis for bitwise operations now that these are no longer constant folded by IR construction. --- .../implementation/raw/constant/ConstantAnalysis.qll | 6 ++++++ .../semmle/code/cpp/ir/internal/IntegerPartial.qll | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/constant/ConstantAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/constant/ConstantAnalysis.qll index 47b744b3f7c..f65799f9a61 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/constant/ConstantAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/constant/ConstantAnalysis.qll @@ -38,6 +38,12 @@ private int getBinaryInstructionValue(BinaryInstruction instr) { or instr instanceof DivInstruction and result = div(left, right) or + instr instanceof BitOrInstruction and result = bitOr(left, right) + or + instr instanceof BitAndInstruction and result = bitAnd(left, right) + or + instr instanceof BitXorInstruction and result = bitXor(left, right) + or instr instanceof CompareEQInstruction and result = compareEQ(left, right) or instr instanceof CompareNEInstruction and result = compareNE(left, right) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll index 0e24f283b17..33681dde0d4 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll @@ -89,6 +89,18 @@ int compareLE(int a, int b) { if a <= b then result = 1 else result = 0 } bindingset[a, b] int compareGE(int a, int b) { if a >= b then result = 1 else result = 0 } +/** Returns `a >= b`. */ +bindingset[a, b] +int bitOr(int a, int b) { result = a.bitOr(b) } + +/** Returns `a >= b`. */ +bindingset[a, b] +int bitAnd(int a, int b) { result = a.bitAnd(b) } + +/** Returns `a >= b`. */ +bindingset[a, b] +int bitXor(int a, int b) { result = a.bitXor(b) } + /** * Returns `-a`. If the negation would overflow, there is no result. */ From 357a2ba733ea4ffea451b455d5ac57588cd69154 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 16:24:11 +0000 Subject: [PATCH 266/309] C++: Sync identical files. --- .../aliased_ssa/constant/ConstantAnalysis.qll | 6 ++++++ .../unaliased_ssa/constant/ConstantAnalysis.qll | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/constant/ConstantAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/constant/ConstantAnalysis.qll index 47b744b3f7c..f65799f9a61 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/constant/ConstantAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/constant/ConstantAnalysis.qll @@ -38,6 +38,12 @@ private int getBinaryInstructionValue(BinaryInstruction instr) { or instr instanceof DivInstruction and result = div(left, right) or + instr instanceof BitOrInstruction and result = bitOr(left, right) + or + instr instanceof BitAndInstruction and result = bitAnd(left, right) + or + instr instanceof BitXorInstruction and result = bitXor(left, right) + or instr instanceof CompareEQInstruction and result = compareEQ(left, right) or instr instanceof CompareNEInstruction and result = compareNE(left, right) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/constant/ConstantAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/constant/ConstantAnalysis.qll index 47b744b3f7c..f65799f9a61 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/constant/ConstantAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/constant/ConstantAnalysis.qll @@ -38,6 +38,12 @@ private int getBinaryInstructionValue(BinaryInstruction instr) { or instr instanceof DivInstruction and result = div(left, right) or + instr instanceof BitOrInstruction and result = bitOr(left, right) + or + instr instanceof BitAndInstruction and result = bitAnd(left, right) + or + instr instanceof BitXorInstruction and result = bitXor(left, right) + or instr instanceof CompareEQInstruction and result = compareEQ(left, right) or instr instanceof CompareNEInstruction and result = compareNE(left, right) From 6bf1611f10a24d6c7ec3117153987241a0839bdd Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 16:26:37 +0000 Subject: [PATCH 267/309] C++: Fix comments. --- cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll index 33681dde0d4..923ee7293f9 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/IntegerPartial.qll @@ -89,15 +89,15 @@ int compareLE(int a, int b) { if a <= b then result = 1 else result = 0 } bindingset[a, b] int compareGE(int a, int b) { if a >= b then result = 1 else result = 0 } -/** Returns `a >= b`. */ +/** Returns `a | b`. */ bindingset[a, b] int bitOr(int a, int b) { result = a.bitOr(b) } -/** Returns `a >= b`. */ +/** Returns `a & b`. */ bindingset[a, b] int bitAnd(int a, int b) { result = a.bitAnd(b) } -/** Returns `a >= b`. */ +/** Returns `a ^ b`. */ bindingset[a, b] int bitXor(int a, int b) { result = a.bitXor(b) } From 8b85735cdcfa0d6240b7691d5dcbc5764dcc9cc7 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 17:03:59 +0000 Subject: [PATCH 268/309] C++: Generalize predicates from booleans to abstract values. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 83999cff947..8232ffe7190 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -456,7 +456,10 @@ class IRGuardCondition extends Instruction { /** Holds if (determined by this guard) `left < right + k` evaluates to `isLessThan` if this expression evaluates to `testIsTrue`. */ cached predicate comparesLt(Operand left, Operand right, int k, boolean isLessThan, boolean testIsTrue) { - compares_lt(this, left, right, k, isLessThan, testIsTrue) + exists(BooleanValue value | + compares_lt(this, left, right, k, isLessThan, value) and + value.getValue() = testIsTrue + ) } /** @@ -465,8 +468,8 @@ class IRGuardCondition extends Instruction { */ cached predicate ensuresLt(Operand left, Operand right, int k, IRBlock block, boolean isLessThan) { - exists(boolean testIsTrue | - compares_lt(this, left, right, k, isLessThan, testIsTrue) and this.controls(block, testIsTrue) + exists(AbstractValue value | + compares_lt(this, left, right, k, isLessThan, value) and this.valueControls(block, value) ) } @@ -478,9 +481,9 @@ class IRGuardCondition extends Instruction { predicate ensuresLtEdge( Operand left, Operand right, int k, IRBlock pred, IRBlock succ, boolean isLessThan ) { - exists(boolean testIsTrue | - compares_lt(this, left, right, k, isLessThan, testIsTrue) and - this.controlsEdge(pred, succ, testIsTrue) + exists(AbstractValue value | + compares_lt(this, left, right, k, isLessThan, value) and + this.valueControlsEdge(pred, succ, value) ) } @@ -746,31 +749,28 @@ private predicate complex_eq( /** Holds if `left < right + k` evaluates to `isLt` given that test is `testIsTrue`. */ private predicate compares_lt( - Instruction test, Operand left, Operand right, int k, boolean isLt, boolean testIsTrue + Instruction test, Operand left, Operand right, int k, boolean isLt, AbstractValue value ) { /* In the simple case, the test is the comparison, so isLt = testIsTrue */ - simple_comparison_lt(test, left, right, k) and isLt = true and testIsTrue = true + simple_comparison_lt(test, left, right, k) and + value.(BooleanValue).getValue() = isLt or - simple_comparison_lt(test, left, right, k) and isLt = false and testIsTrue = false - or - complex_lt(test, left, right, k, isLt, testIsTrue) + complex_lt(test, left, right, k, isLt, value) or /* (not (left < right + k)) => (left >= right + k) */ - exists(boolean isGe | isLt = isGe.booleanNot() | - compares_ge(test, left, right, k, isGe, testIsTrue) - ) + exists(boolean isGe | isLt = isGe.booleanNot() | compares_ge(test, left, right, k, isGe, value)) or /* (x is true => (left < right + k)) => (!x is false => (left < right + k)) */ - exists(boolean isFalse | testIsTrue = isFalse.booleanNot() | - compares_lt(test.(LogicalNotInstruction).getUnary(), left, right, k, isLt, isFalse) + exists(AbstractValue dual | value = dual.getDualValue() | + compares_lt(test.(LogicalNotInstruction).getUnary(), left, right, k, isLt, dual) ) } /** `(a < b + k) => (b > a - k) => (b >= a + (1-k))` */ private predicate compares_ge( - Instruction test, Operand left, Operand right, int k, boolean isGe, boolean testIsTrue + Instruction test, Operand left, Operand right, int k, boolean isGe, AbstractValue value ) { - exists(int onemk | k = 1 - onemk | compares_lt(test, right, left, onemk, isGe, testIsTrue)) + exists(int onemk | k = 1 - onemk | compares_lt(test, right, left, onemk, isGe, value)) } /** Rearrange various simple comparisons into `left < right + k` form. */ @@ -797,41 +797,41 @@ private predicate simple_comparison_lt(CompareInstruction cmp, Operand left, Ope } private predicate complex_lt( - CompareInstruction cmp, Operand left, Operand right, int k, boolean isLt, boolean testIsTrue + CompareInstruction cmp, Operand left, Operand right, int k, boolean isLt, AbstractValue value ) { - sub_lt(cmp, left, right, k, isLt, testIsTrue) + sub_lt(cmp, left, right, k, isLt, value) or - add_lt(cmp, left, right, k, isLt, testIsTrue) + add_lt(cmp, left, right, k, isLt, value) } // left - x < right + c => left < right + (c+x) // left < (right - x) + c => left < right + (c-x) private predicate sub_lt( - CompareInstruction cmp, Operand left, Operand right, int k, boolean isLt, boolean testIsTrue + CompareInstruction cmp, Operand left, Operand right, int k, boolean isLt, AbstractValue value ) { exists(SubInstruction lhs, int c, int x | - compares_lt(cmp, lhs.getAUse(), right, c, isLt, testIsTrue) and + compares_lt(cmp, lhs.getAUse(), right, c, isLt, value) and left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) and k = c + x ) or exists(SubInstruction rhs, int c, int x | - compares_lt(cmp, left, rhs.getAUse(), c, isLt, testIsTrue) and + compares_lt(cmp, left, rhs.getAUse(), c, isLt, value) and right = rhs.getLeftOperand() and x = int_value(rhs.getRight()) and k = c - x ) or exists(PointerSubInstruction lhs, int c, int x | - compares_lt(cmp, lhs.getAUse(), right, c, isLt, testIsTrue) and + compares_lt(cmp, lhs.getAUse(), right, c, isLt, value) and left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) and k = c + x ) or exists(PointerSubInstruction rhs, int c, int x | - compares_lt(cmp, left, rhs.getAUse(), c, isLt, testIsTrue) and + compares_lt(cmp, left, rhs.getAUse(), c, isLt, value) and right = rhs.getLeftOperand() and x = int_value(rhs.getRight()) and k = c - x @@ -841,10 +841,10 @@ private predicate sub_lt( // left + x < right + c => left < right + (c-x) // left < (right + x) + c => left < right + (c+x) private predicate add_lt( - CompareInstruction cmp, Operand left, Operand right, int k, boolean isLt, boolean testIsTrue + CompareInstruction cmp, Operand left, Operand right, int k, boolean isLt, AbstractValue value ) { exists(AddInstruction lhs, int c, int x | - compares_lt(cmp, lhs.getAUse(), right, c, isLt, testIsTrue) and + compares_lt(cmp, lhs.getAUse(), right, c, isLt, value) and ( left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) or @@ -854,7 +854,7 @@ private predicate add_lt( ) or exists(AddInstruction rhs, int c, int x | - compares_lt(cmp, left, rhs.getAUse(), c, isLt, testIsTrue) and + compares_lt(cmp, left, rhs.getAUse(), c, isLt, value) and ( right = rhs.getLeftOperand() and x = int_value(rhs.getRight()) or @@ -864,7 +864,7 @@ private predicate add_lt( ) or exists(PointerAddInstruction lhs, int c, int x | - compares_lt(cmp, lhs.getAUse(), right, c, isLt, testIsTrue) and + compares_lt(cmp, lhs.getAUse(), right, c, isLt, value) and ( left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) or @@ -874,7 +874,7 @@ private predicate add_lt( ) or exists(PointerAddInstruction rhs, int c, int x | - compares_lt(cmp, left, rhs.getAUse(), c, isLt, testIsTrue) and + compares_lt(cmp, left, rhs.getAUse(), c, isLt, value) and ( right = rhs.getLeftOperand() and x = int_value(rhs.getRight()) or From a78080cc0ecfbbbfdef88b1e22f39d8933f70012 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 17:06:26 +0000 Subject: [PATCH 269/309] C++: Implement less-than logic for guard conditions when comparing to constants. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 8232ffe7190..1416fb2cd8a 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -125,6 +125,20 @@ class GuardCondition extends Expr { cached predicate ensuresLt(Expr left, Expr right, int k, BasicBlock block, boolean isLessThan) { none() } + /** + * Holds if (determined by this guard) `e < k` evaluates to `isLessThan` if + * this expression evaluates to `value`. + */ + cached + predicate comparesLt(Expr e, int k, boolean isLessThan, AbstractValue value) { none() } + + /** + * Holds if (determined by this guard) `e < k` must be `isLessThan` in `block`. + * If `isLessThan = false` then this implies `left >= k`. + */ + cached + predicate ensuresLt(Expr e, int k, BasicBlock block, boolean isLessThan) { none() } + /** Holds if (determined by this guard) `left == right + k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ cached predicate comparesEq(Expr left, Expr right, int k, boolean areEqual, boolean testIsTrue) { @@ -176,12 +190,27 @@ private class GuardConditionFromBinaryLogicalOperator extends GuardCondition { ) } + override predicate comparesLt(Expr e, int k, boolean isLessThan, AbstractValue value) { + exists(BooleanValue partValue, GuardCondition part | + this.(BinaryLogicalOperation) + .impliesValue(part, partValue.getValue(), value.(BooleanValue).getValue()) + | + part.comparesLt(e, k, isLessThan, partValue) + ) + } + override predicate ensuresLt(Expr left, Expr right, int k, BasicBlock block, boolean isLessThan) { exists(boolean testIsTrue | this.comparesLt(left, right, k, isLessThan, testIsTrue) and this.controls(block, testIsTrue) ) } + override predicate ensuresLt(Expr e, int k, BasicBlock block, boolean isLessThan) { + exists(AbstractValue value | + this.comparesLt(e, k, isLessThan, value) and this.valueControls(block, value) + ) + } + override predicate comparesEq(Expr left, Expr right, int k, boolean areEqual, boolean testIsTrue) { exists(boolean partIsTrue, GuardCondition part | this.(BinaryLogicalOperation).impliesValue(part, partIsTrue, testIsTrue) @@ -236,6 +265,17 @@ private class GuardConditionFromIR extends GuardCondition { ) } + /** + * Holds if (determined by this guard) `e < k` evaluates to `isLessThan` if + * this expression evaluates to `value`. + */ + override predicate comparesLt(Expr e, int k, boolean isLessThan, AbstractValue value) { + exists(Instruction i | + i.getUnconvertedResultExpression() = e and + ir.comparesLt(i.getAUse(), k, isLessThan, value) + ) + } + /** * Holds if (determined by this guard) `left < right + k` must be `isLessThan` in `block`. * If `isLessThan = false` then this implies `left >= right + k`. @@ -249,6 +289,18 @@ private class GuardConditionFromIR extends GuardCondition { ) } + /** + * Holds if (determined by this guard) `e < k` must be `isLessThan` in `block`. + * If `isLessThan = false` then this implies `e >= k`. + */ + override predicate ensuresLt(Expr e, int k, BasicBlock block, boolean isLessThan) { + exists(Instruction i, AbstractValue value | + i.getUnconvertedResultExpression() = e and + ir.comparesLt(i.getAUse(), k, isLessThan, value) and + this.valueControls(block, value) + ) + } + /** Holds if (determined by this guard) `left == right + k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ override predicate comparesEq(Expr left, Expr right, int k, boolean areEqual, boolean testIsTrue) { exists(Instruction li, Instruction ri | @@ -462,6 +514,15 @@ class IRGuardCondition extends Instruction { ) } + /** + * Holds if (determined by this guard) `op < k` evaluates to `isLessThan` if + * this expression evaluates to `value`. + */ + cached + predicate comparesLt(Operand op, int k, boolean isLessThan, AbstractValue value) { + compares_lt(this, op, k, isLessThan, value) + } + /** * Holds if (determined by this guard) `left < right + k` must be `isLessThan` in `block`. * If `isLessThan = false` then this implies `left >= right + k`. @@ -473,6 +534,17 @@ class IRGuardCondition extends Instruction { ) } + /** + * Holds if (determined by this guard) `op < k` must be `isLessThan` in `block`. + * If `isLessThan = false` then this implies `op >= k`. + */ + cached + predicate ensuresLt(Operand op, int k, IRBlock block, boolean isLessThan) { + exists(AbstractValue value | + compares_lt(this, op, k, isLessThan, value) and this.valueControls(block, value) + ) + } + /** * Holds if (determined by this guard) `left < right + k` must be `isLessThan` on the edge from * `pred` to `succ`. If `isLessThan = false` then this implies `left >= right + k`. @@ -487,6 +559,18 @@ class IRGuardCondition extends Instruction { ) } + /** + * Holds if (determined by this guard) `op < k` must be `isLessThan` on the edge from + * `pred` to `succ`. If `isLessThan = false` then this implies `op >= k`. + */ + cached + predicate ensuresLtEdge(Operand left, int k, IRBlock pred, IRBlock succ, boolean isLessThan) { + exists(AbstractValue value | + compares_lt(this, left, k, isLessThan, value) and + this.valueControlsEdge(pred, succ, value) + ) + } + /** Holds if (determined by this guard) `left == right + k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ cached predicate comparesEq(Operand left, Operand right, int k, boolean areEqual, boolean testIsTrue) { @@ -766,6 +850,24 @@ private predicate compares_lt( ) } +/** Holds if `op < k` evaluates to `isLt` given that `test` evaluates to `value`. */ +private predicate compares_lt(Instruction test, Operand op, int k, boolean isLt, AbstractValue value) { + simple_comparison_lt(test, op, k, isLt, value) + or + complex_lt(test, op, k, isLt, value) + or + /* (x is true => (op < k)) => (!x is false => (op < k)) */ + exists(AbstractValue dual | value = dual.getDualValue() | + compares_lt(test.(LogicalNotInstruction).getUnary(), op, k, isLt, dual) + ) + or + exists(int k1, int k2, ConstantInstruction const | + compares_lt(test, op, const.getAUse(), k2, isLt, value) and + int_value(const) = k1 and + k = k1 + k2 + ) +} + /** `(a < b + k) => (b > a - k) => (b >= a + (1-k))` */ private predicate compares_ge( Instruction test, Operand left, Operand right, int k, boolean isGe, AbstractValue value @@ -796,6 +898,26 @@ private predicate simple_comparison_lt(CompareInstruction cmp, Operand left, Ope k = 1 } +/** Rearrange various simple comparisons into `op < k` form. */ +private predicate simple_comparison_lt( + Instruction test, Operand op, int k, boolean isLt, AbstractValue value +) { + exists(SwitchInstruction switch, CaseEdge case | + test = switch.getExpression() and + op.getDef() = test and + case = value.(MatchValue).getCase() and + exists(switch.getSuccessor(case)) and + case.getMaxValue() > case.getMinValue() + | + // op <= k => op < k - 1 + isLt = true and + case.getMaxValue().toInt() = k - 1 + or + isLt = false and + case.getMinValue().toInt() = k + ) +} + private predicate complex_lt( CompareInstruction cmp, Operand left, Operand right, int k, boolean isLt, AbstractValue value ) { @@ -804,6 +926,14 @@ private predicate complex_lt( add_lt(cmp, left, right, k, isLt, value) } +private predicate complex_lt( + Instruction test, Operand left, int k, boolean isLt, AbstractValue value +) { + sub_lt(test, left, k, isLt, value) + or + add_lt(test, left, k, isLt, value) +} + // left - x < right + c => left < right + (c+x) // left < (right - x) + c => left < right + (c-x) private predicate sub_lt( @@ -838,6 +968,22 @@ private predicate sub_lt( ) } +private predicate sub_lt(Instruction test, Operand left, int k, boolean isLt, AbstractValue value) { + exists(SubInstruction lhs, int c, int x | + compares_lt(test, lhs.getAUse(), c, isLt, value) and + left = lhs.getLeftOperand() and + x = int_value(lhs.getRight()) and + k = c + x + ) + or + exists(PointerSubInstruction lhs, int c, int x | + compares_lt(test, lhs.getAUse(), c, isLt, value) and + left = lhs.getLeftOperand() and + x = int_value(lhs.getRight()) and + k = c + x + ) +} + // left + x < right + c => left < right + (c-x) // left < (right + x) + c => left < right + (c+x) private predicate add_lt( @@ -884,6 +1030,28 @@ private predicate add_lt( ) } +private predicate add_lt(Instruction test, Operand left, int k, boolean isLt, AbstractValue value) { + exists(AddInstruction lhs, int c, int x | + compares_lt(test, lhs.getAUse(), c, isLt, value) and + ( + left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) + or + left = lhs.getRightOperand() and x = int_value(lhs.getLeft()) + ) and + k = c - x + ) + or + exists(PointerAddInstruction lhs, int c, int x | + compares_lt(test, lhs.getAUse(), c, isLt, value) and + ( + left = lhs.getLeftOperand() and x = int_value(lhs.getRight()) + or + left = lhs.getRightOperand() and x = int_value(lhs.getLeft()) + ) and + k = c - x + ) +} + // left - x == right + c => left == right + (c+x) // left == (right - x) + c => left == right + (c-x) private predicate sub_eq( From 1411ee5b26ed8d372eec2e9090ada0d8b21ec77c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 17:09:22 +0000 Subject: [PATCH 270/309] C++: Extend tests to also test the new predicates and accept test changes. --- .../controlflow/guards-ir/tests.ql | 8 +++++ .../controlflow/guards/GuardsCompare.expected | 30 +++++++++++++++++++ .../controlflow/guards/GuardsCompare.ql | 4 +++ 3 files changed, 42 insertions(+) diff --git a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql index 6016f864822..0f147f9ea8d 100644 --- a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql +++ b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.ql @@ -96,6 +96,10 @@ query predicate irGuardsCompare(int startLine, string msg) { ) or exists(AbstractValue value | + guard.comparesLt(left, k, true, value) and op = " < " + or + guard.comparesLt(left, k, false, value) and op = " >= " + or guard.comparesEq(left, k, true, value) and op = " == " or guard.comparesEq(left, k, false, value) and op = " != " @@ -138,6 +142,10 @@ query predicate irGuardsEnsure_const( IRGuardCondition guard, Instruction left, string op, int k, int start, int end ) { exists(IRBlock block, Operand leftOp | + guard.ensuresLt(leftOp, k, block, true) and op = "<" + or + guard.ensuresLt(leftOp, k, block, false) and op = ">=" + or guard.ensuresEq(leftOp, k, block, true) and op = "==" or guard.ensuresEq(leftOp, k, block, false) and op = "!=" diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected index 398c7f1558f..b88856d90cf 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.expected @@ -1,23 +1,33 @@ | 7 | 0 < x+0 when ... > ... is true | | 7 | 0 >= x+0 when ... > ... is false | | 7 | x < 0+1 when ... > ... is false | +| 7 | x < 1 when ... > ... is false | | 7 | x >= 0+1 when ... > ... is true | +| 7 | x >= 1 when ... > ... is true | | 17 | 0 < x+1 when ... < ... is false | | 17 | 0 >= x+1 when ... && ... is true | | 17 | 0 >= x+1 when ... < ... is true | | 17 | 1 < y+0 when ... && ... is true | | 17 | 1 < y+0 when ... > ... is true | | 17 | 1 >= y+0 when ... > ... is false | +| 17 | x < 0 when ... && ... is true | +| 17 | x < 0 when ... < ... is true | | 17 | x < 0+0 when ... && ... is true | | 17 | x < 0+0 when ... < ... is true | +| 17 | x >= 0 when ... < ... is false | | 17 | x >= 0+0 when ... < ... is false | | 17 | y < 1+1 when ... > ... is false | +| 17 | y < 2 when ... > ... is false | | 17 | y >= 1+1 when ... && ... is true | | 17 | y >= 1+1 when ... > ... is true | +| 17 | y >= 2 when ... && ... is true | +| 17 | y >= 2 when ... > ... is true | | 26 | 0 < x+0 when ... > ... is true | | 26 | 0 >= x+0 when ... > ... is false | | 26 | x < 0+1 when ... > ... is false | +| 26 | x < 1 when ... > ... is false | | 26 | x >= 0+1 when ... > ... is true | +| 26 | x >= 1 when ... > ... is true | | 31 | - ... != x+0 when ... == ... is false | | 31 | - ... == x+0 when ... == ... is true | | 31 | x != -1 when ... == ... is false | @@ -26,20 +36,28 @@ | 31 | x == - ...+0 when ... == ... is true | | 34 | 10 < j+1 when ... < ... is false | | 34 | 10 >= j+1 when ... < ... is true | +| 34 | j < 10 when ... < ... is true | | 34 | j < 10+0 when ... < ... is true | +| 34 | j >= 10 when ... < ... is false | | 34 | j >= 10+0 when ... < ... is false | | 42 | 10 < j+1 when ... < ... is false | | 42 | 10 >= j+1 when ... < ... is true | +| 42 | j < 10 when ... < ... is true | | 42 | j < 10+0 when ... < ... is true | +| 42 | j >= 10 when ... < ... is false | | 42 | j >= 10+0 when ... < ... is false | | 44 | 0 < z+0 when ... > ... is true | | 44 | 0 >= z+0 when ... > ... is false | | 44 | z < 0+1 when ... > ... is false | +| 44 | z < 1 when ... > ... is false | | 44 | z >= 0+1 when ... > ... is true | +| 44 | z >= 1 when ... > ... is true | | 45 | 0 < y+0 when ... > ... is true | | 45 | 0 >= y+0 when ... > ... is false | | 45 | y < 0+1 when ... > ... is false | +| 45 | y < 1 when ... > ... is false | | 45 | y >= 0+1 when ... > ... is true | +| 45 | y >= 1 when ... > ... is true | | 58 | 0 != x+0 when ... == ... is false | | 58 | 0 != x+0 when ... \|\| ... is false | | 58 | 0 < y+1 when ... < ... is false | @@ -52,12 +70,19 @@ | 58 | x != 0+0 when ... \|\| ... is false | | 58 | x == 0 when ... == ... is true | | 58 | x == 0+0 when ... == ... is true | +| 58 | y < 0 when ... < ... is true | | 58 | y < 0+0 when ... < ... is true | +| 58 | y >= 0 when ... < ... is false | +| 58 | y >= 0 when ... \|\| ... is false | | 58 | y >= 0+0 when ... < ... is false | | 58 | y >= 0+0 when ... \|\| ... is false | | 61 | i == 0 when i is Case[0] | | 61 | i == 1 when i is Case[1] | | 61 | i == 2 when i is Case[2] | +| 74 | i < 11 when i is Case[0..10] | +| 74 | i < 21 when i is Case[11..20] | +| 74 | i >= 0 when i is Case[0..10] | +| 74 | i >= 11 when i is Case[11..20] | | 75 | 0 != x+0 when ... == ... is false | | 75 | 0 == x+0 when ... == ... is true | | 75 | x != 0 when ... == ... is false | @@ -90,7 +115,9 @@ | 94 | x == 0+0 when ... != ... is false | | 102 | 10 < j+1 when ... < ... is false | | 102 | 10 >= j+1 when ... < ... is true | +| 102 | j < 10 when ... < ... is true | | 102 | j < 10+0 when ... < ... is true | +| 102 | j >= 10 when ... < ... is false | | 102 | j >= 10+0 when ... < ... is false | | 109 | 0 != x+0 when ... == ... is false | | 109 | 0 != x+0 when ... \|\| ... is false | @@ -104,6 +131,9 @@ | 109 | x != 0+0 when ... \|\| ... is false | | 109 | x == 0 when ... == ... is true | | 109 | x == 0+0 when ... == ... is true | +| 109 | y < 0 when ... < ... is true | | 109 | y < 0+0 when ... < ... is true | +| 109 | y >= 0 when ... < ... is false | +| 109 | y >= 0 when ... \|\| ... is false | | 109 | y >= 0+0 when ... < ... is false | | 109 | y >= 0+0 when ... \|\| ... is false | diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql index 5db52cd4a6e..b05f5b95d00 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsCompare.ql @@ -28,6 +28,10 @@ where ) or exists(AbstractValue value | + guard.comparesLt(left, k, true, value) and op = " < " + or + guard.comparesLt(left, k, false, value) and op = " >= " + or guard.comparesEq(left, k, true, value) and op = " == " or guard.comparesEq(left, k, false, value) and op = " != " From cdc879ee8925c99f8ffaef1620ad572d19d06846 Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Thu, 29 Feb 2024 12:22:59 +0000 Subject: [PATCH 271/309] Python: Fix up some bazel references --- python/extractor/tsg-python/BUILD.bazel | 2 +- python/extractor/tsg-python/Cargo.Bazel.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/python/extractor/tsg-python/BUILD.bazel b/python/extractor/tsg-python/BUILD.bazel index 8e1425e3f3e..6835f8e6689 100644 --- a/python/extractor/tsg-python/BUILD.bazel +++ b/python/extractor/tsg-python/BUILD.bazel @@ -12,5 +12,5 @@ codeql_rust_binary( visibility = ["//visibility:public"], deps = all_crate_deps( normal = True, - ) + ["//extractor-python/tsg-python/tree-sitter-python"], + ) + ["//python/extractor/tsg-python/tree-sitter-python"], ) diff --git a/python/extractor/tsg-python/Cargo.Bazel.lock b/python/extractor/tsg-python/Cargo.Bazel.lock index fbbd661c9e4..b8a4d822653 100644 --- a/python/extractor/tsg-python/Cargo.Bazel.lock +++ b/python/extractor/tsg-python/Cargo.Bazel.lock @@ -1,5 +1,5 @@ { - "checksum": "54f1095f5a2e74da736682bc8d355b3dbce47558983feba04faba84cf3abfaca", + "checksum": "5ea5454a42d65412a64a48233e83f21d17461b20f8c283260a3de1d964645868", "crates": { "ahash 0.4.7": { "name": "ahash", @@ -2152,8 +2152,8 @@ }, "binary_crates": [], "workspace_members": { - "tree-sitter-python 0.19.0": "extractor-python/tsg-python/tree-sitter-python", - "tsg-python 0.1.0": "extractor-python/tsg-python" + "tree-sitter-python 0.19.0": "python/extractor/tsg-python/tree-sitter-python", + "tsg-python 0.1.0": "python/extractor/tsg-python" }, "conditions": { "aarch64-apple-darwin": [ From 016aedab0aba50e6a7007e537de7f2a10e3b0d11 Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Thu, 7 Mar 2024 13:33:58 +0000 Subject: [PATCH 272/309] Python: Move Python language pack tooling to external repo This is essentially the contents of `language-packs/python/tools` with some minor modifications to account for the changed location. Of note: we explicitly exclude the `recorded-call-graph-metrics` director that was already present in `python/tools`. When we revisit this directory for some cleanup (e.g. to get rid of the `lgtm` references), we'll probably want to switch to an explicit list of sources to include. --- python/tools/BUILD.bazel | 11 +++++++++++ python/tools/autobuild.cmd | 8 ++++++++ python/tools/autobuild.sh | 18 ++++++++++++++++++ python/tools/lgtm-scripts/index.cmd | 3 +++ python/tools/lgtm-scripts/index.sh | 5 +++++ python/tools/lgtm-scripts/python_setup.cmd | 3 +++ python/tools/lgtm-scripts/python_setup.sh | 5 +++++ python/tools/pre-finalize.cmd | 11 +++++++++++ python/tools/pre-finalize.sh | 11 +++++++++++ 9 files changed, 75 insertions(+) create mode 100644 python/tools/BUILD.bazel create mode 100644 python/tools/autobuild.cmd create mode 100755 python/tools/autobuild.sh create mode 100644 python/tools/lgtm-scripts/index.cmd create mode 100755 python/tools/lgtm-scripts/index.sh create mode 100644 python/tools/lgtm-scripts/python_setup.cmd create mode 100755 python/tools/lgtm-scripts/python_setup.sh create mode 100644 python/tools/pre-finalize.cmd create mode 100755 python/tools/pre-finalize.sh diff --git a/python/tools/BUILD.bazel b/python/tools/BUILD.bazel new file mode 100644 index 00000000000..81762c150fb --- /dev/null +++ b/python/tools/BUILD.bazel @@ -0,0 +1,11 @@ +load("@semmle_code//:dist.bzl", "pack_zip") + +pack_zip( + name = "tools", + srcs = glob(["**/*"]), + excludes = [ + "BUILD.bazel", + ] + glob(["recorded-call-graph-metrics/**"]), + prefix = "tools", + visibility = ["//visibility:public"], +) diff --git a/python/tools/autobuild.cmd b/python/tools/autobuild.cmd new file mode 100644 index 00000000000..051d119f9ec --- /dev/null +++ b/python/tools/autobuild.cmd @@ -0,0 +1,8 @@ +@echo off + +rem Legacy environment variables for the autobuild infrastructure. +set LGTM_SRC=%CD% +set LGTM_WORKSPACE=%CODEQL_EXTRACTOR_PYTHON_SCRATCH_DIR% + +type NUL && python "%CODEQL_EXTRACTOR_PYTHON_ROOT%\tools\index.py" +exit /b %ERRORLEVEL% diff --git a/python/tools/autobuild.sh b/python/tools/autobuild.sh new file mode 100755 index 00000000000..88134d120fd --- /dev/null +++ b/python/tools/autobuild.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -eu + +# Legacy environment variables for the autobuild infrastructure. +LGTM_SRC="$(pwd)" +LGTM_WORKSPACE="$CODEQL_EXTRACTOR_PYTHON_SCRATCH_DIR" +export LGTM_SRC +export LGTM_WORKSPACE + +if which python3 >/dev/null; then + exec python3 "$CODEQL_EXTRACTOR_PYTHON_ROOT/tools/index.py" +elif which python >/dev/null; then + exec python "$CODEQL_EXTRACTOR_PYTHON_ROOT/tools/index.py" +else + echo "ERROR: Could not find a valid Python distribution. It should be available when running 'which python' or 'which python3' in your shell. Python 2 is no longer supported." + exit 1 +fi diff --git a/python/tools/lgtm-scripts/index.cmd b/python/tools/lgtm-scripts/index.cmd new file mode 100644 index 00000000000..254f4472262 --- /dev/null +++ b/python/tools/lgtm-scripts/index.cmd @@ -0,0 +1,3 @@ +@echo off + +py "%CODEQL_EXTRACTOR_PYTHON_ROOT%\tools\index.py" diff --git a/python/tools/lgtm-scripts/index.sh b/python/tools/lgtm-scripts/index.sh new file mode 100755 index 00000000000..f57637260b0 --- /dev/null +++ b/python/tools/lgtm-scripts/index.sh @@ -0,0 +1,5 @@ +#! /bin/bash + +set -eu + +python "${CODEQL_EXTRACTOR_PYTHON_ROOT}/tools/index.py" diff --git a/python/tools/lgtm-scripts/python_setup.cmd b/python/tools/lgtm-scripts/python_setup.cmd new file mode 100644 index 00000000000..0abc4c21dcf --- /dev/null +++ b/python/tools/lgtm-scripts/python_setup.cmd @@ -0,0 +1,3 @@ +@echo off + +py "%CODEQL_EXTRACTOR_PYTHON_ROOT%\tools\setup.py" || EXIT /B 0 diff --git a/python/tools/lgtm-scripts/python_setup.sh b/python/tools/lgtm-scripts/python_setup.sh new file mode 100755 index 00000000000..9e398d11bd3 --- /dev/null +++ b/python/tools/lgtm-scripts/python_setup.sh @@ -0,0 +1,5 @@ +#! /bin/bash + +set -eu + +python "${CODEQL_EXTRACTOR_PYTHON_ROOT}/tools/setup.py" || true diff --git a/python/tools/pre-finalize.cmd b/python/tools/pre-finalize.cmd new file mode 100644 index 00000000000..07454671062 --- /dev/null +++ b/python/tools/pre-finalize.cmd @@ -0,0 +1,11 @@ +@echo off + +type NUL && "%CODEQL_DIST%\codeql" database index-files ^ + --include-extension=.yaml ^ + --include-extension=.yml ^ + --size-limit=5m ^ + --language yaml ^ + -- ^ + "%CODEQL_EXTRACTOR_PYTHON_WIP_DATABASE%" + +exit /b %ERRORLEVEL% diff --git a/python/tools/pre-finalize.sh b/python/tools/pre-finalize.sh new file mode 100755 index 00000000000..9fe5200a38f --- /dev/null +++ b/python/tools/pre-finalize.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -eu + +"$CODEQL_DIST/codeql" database index-files \ + --include-extension=.yaml \ + --include-extension=.yml \ + --size-limit=5m \ + --language yaml \ + -- \ + "$CODEQL_EXTRACTOR_PYTHON_WIP_DATABASE" From 5fed8bc57bd1b7024f7809582d121636d97d87f8 Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Thu, 7 Mar 2024 13:40:04 +0000 Subject: [PATCH 273/309] Python: Add `codeql-extractor.yml` --- python/codeql-extractor.yml | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 python/codeql-extractor.yml diff --git a/python/codeql-extractor.yml b/python/codeql-extractor.yml new file mode 100644 index 00000000000..97a9e1f2cf2 --- /dev/null +++ b/python/codeql-extractor.yml @@ -0,0 +1,46 @@ +name: "python" +display_name: "Python" +version: 1.22.1 +column_kind: utf32 +build_modes: + - none +github_api_languages: + - Python +scc_languages: + - Python +file_types: + - name: python + display_name: Python sources + extensions: + - .py +legacy_qltest_extraction: true +options: + logging: + title: Options pertaining to logging. + type: object + properties: + verbosity: + title: Python extractor logging verbosity level. + description: > + Controls the level of verbosity of the CodeQL Python extractor. + + The supported levels are (in order of increasing verbosity): + + - off + - errors + - warnings + - info or progress + - debug or progress+ + - trace or progress++ + - progress+++ + type: string + pattern: "^(off|errors|warnings|(info|progress)|(debug|progress\\+)|(trace|progress\\+\\+)|progress\\+\\+\\+)$" + python_executable_name: + title: Controls the name of the Python executable used by the Python extractor. + description: > + The Python extractor uses platform-dependent heuristics to determine the name of the Python executable to use. + Specifying a value for this option overrides the name of the Python executable used by the extractor. + Accepted values are py, python and python3. + Use this setting with caution, the Python extractor requires Python 3 to run. + type: string + pattern: "^(py|python|python3)$" From 0550c46766de05bc689cda3ad0bf50e5c49b3fb6 Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Thu, 7 Mar 2024 13:41:35 +0000 Subject: [PATCH 274/309] Python: Fix Bazel build --- python/BUILD.bazel | 33 ++++++++++++++++++++++++- python/extractor/BUILD.bazel | 4 +-- python/extractor/tsg-python/BUILD.bazel | 2 +- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/python/BUILD.bazel b/python/BUILD.bazel index e6d1387e4c2..481dbbd0dd8 100644 --- a/python/BUILD.bazel +++ b/python/BUILD.bazel @@ -1,4 +1,6 @@ -load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files") +load("@rules_pkg//pkg:mappings.bzl", "pkg_filegroup", "pkg_files") +load("@semmle_code//:dist.bzl", "dist", "pack_zip") +load("//:defs.bzl", "codeql_platform") package(default_visibility = ["//visibility:public"]) @@ -28,3 +30,32 @@ pkg_filegroup( "//python/downgrades", ], ) + +pkg_files( + name = "codeql-extractor-yml", + srcs = ["codeql-extractor.yml"], + strip_prefix = None, +) + +dist( + name = "extractor-generic", + srcs = [ + ":codeql-extractor-yml", + ":dbscheme-group", + "//python/downgrades", + "//python/extractor", + "//python/tools", + ], + prefix = "python", + visibility = ["//visibility:public"], +) + +pack_zip( + name = "extractor-arch", + srcs = [ + "//python/extractor/tsg-python", + ], + package_file_name = "extractor-" + codeql_platform + ".zip", + prefix = "python/tools/" + codeql_platform, + visibility = ["//visibility:public"], +) diff --git a/python/extractor/BUILD.bazel b/python/extractor/BUILD.bazel index 4e93f539bde..3b5a5b3a617 100644 --- a/python/extractor/BUILD.bazel +++ b/python/extractor/BUILD.bazel @@ -1,4 +1,4 @@ -load("//:dist.bzl", "pack_zip") +load("@semmle_code//:dist.bzl", "pack_zip") py_binary( name = "make-zips-py", @@ -33,7 +33,7 @@ genrule( ) pack_zip( - name = "extractor-python", + name = "extractor", srcs = [ "LICENSE-PSF.md", # because we distribute imp.py "convert_setup.py", diff --git a/python/extractor/tsg-python/BUILD.bazel b/python/extractor/tsg-python/BUILD.bazel index 6835f8e6689..55dbdd97855 100644 --- a/python/extractor/tsg-python/BUILD.bazel +++ b/python/extractor/tsg-python/BUILD.bazel @@ -1,5 +1,5 @@ load("@tsg_python_crate_index//:defs.bzl", "aliases", "all_crate_deps") -load("//:common.bzl", "codeql_rust_binary") +load("@semmle_code//:common.bzl", "codeql_rust_binary") codeql_rust_binary( name = "tsg-python", From cac5a8236ea5d57c93a05a71d444c2ace4a65a1d Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Thu, 7 Mar 2024 13:43:08 +0000 Subject: [PATCH 275/309] Python: Fix CLI integration tests Two issues: - Tests relying on existing query machinery (i.e. `import python`) were not resolving correctly due to a bad `qlpack.yml` file. - The diagnostics output tests needed an updated import to account for their new location. --- codeql-workspace.yml | 1 + .../writing-diagnostics/test_diagnostics_output.py | 2 +- python/extractor/qlpack.yml | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/codeql-workspace.yml b/codeql-workspace.yml index 5d8b300c8f4..7078818d1f3 100644 --- a/codeql-workspace.yml +++ b/codeql-workspace.yml @@ -6,6 +6,7 @@ provide: - "*/ql/consistency-queries/qlpack.yml" - "*/ql/automodel/src/qlpack.yml" - "*/ql/automodel/test/qlpack.yml" + - "python/extractor/qlpack.yml" - "shared/**/qlpack.yml" - "cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/tainted/qlpack.yml" - "go/ql/config/legacy-support/qlpack.yml" diff --git a/python/extractor/cli-integration-test/writing-diagnostics/test_diagnostics_output.py b/python/extractor/cli-integration-test/writing-diagnostics/test_diagnostics_output.py index 39982596fc5..0dce022a0f9 100644 --- a/python/extractor/cli-integration-test/writing-diagnostics/test_diagnostics_output.py +++ b/python/extractor/cli-integration-test/writing-diagnostics/test_diagnostics_output.py @@ -1,6 +1,6 @@ import os import sys -sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "integration-tests")) +sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", "..", "integration-tests")) import diagnostics_test_utils test_db = "db" diff --git a/python/extractor/qlpack.yml b/python/extractor/qlpack.yml index 783c301abbb..88164c64ee8 100644 --- a/python/extractor/qlpack.yml +++ b/python/extractor/qlpack.yml @@ -1,6 +1,6 @@ name: extractor-python dependencies: - codeql/python-all: "*" - codeql/python-queries: "*" + codeql/python-all: ${workspace} + codeql/python-queries: ${workspace} extractor: python warnOnImplicitThis: true From 04c9ed37a7017646e3ab3cd6ab4b4235ca125308 Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Fri, 8 Mar 2024 13:26:04 +0000 Subject: [PATCH 276/309] Python: Fix reference in unit test The referenced file lives in the internal repo, so this is perhaps a bit of a hack, but I think it should be fine in the short run. --- python/extractor/tests/test_patterns.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/extractor/tests/test_patterns.py b/python/extractor/tests/test_patterns.py index f218e7a4907..eb05d91c1a5 100644 --- a/python/extractor/tests/test_patterns.py +++ b/python/extractor/tests/test_patterns.py @@ -12,7 +12,7 @@ class ExtractorPatternsTest(test_utils.ExtractorTest): def test(self): repo_dir = subprocess.Popen(["git", "rev-parse", "--show-toplevel"], stdout=subprocess.PIPE).communicate()[0].rstrip().decode("utf-8") - test_file_path = os.path.abspath(os.path.join(repo_dir, "unit-tests", "files", "pattern-matching", "patterns.json")) + test_file_path = os.path.abspath(os.path.join(repo_dir, "..", "unit-tests", "files", "pattern-matching", "patterns.json")) with open(test_file_path) as test_file: test_patterns = json.load(test_file) for test_pattern in test_patterns: From 6f388acdd805ac1caa24b9868e274918a37eb907 Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Fri, 8 Mar 2024 15:23:44 +0000 Subject: [PATCH 277/309] Python: Rename `tsg_python_crate_index` to `py_deps` This aligns us a bit more with Ruby. --- python/extractor/tsg-python/BUILD.bazel | 2 +- python/extractor/tsg-python/Cargo.Bazel.lock | 2 +- python/extractor/tsg-python/Cargo.toml | 2 +- python/extractor/tsg-python/tree-sitter-python/BUILD.bazel | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/python/extractor/tsg-python/BUILD.bazel b/python/extractor/tsg-python/BUILD.bazel index 55dbdd97855..cf95619c5a1 100644 --- a/python/extractor/tsg-python/BUILD.bazel +++ b/python/extractor/tsg-python/BUILD.bazel @@ -1,4 +1,4 @@ -load("@tsg_python_crate_index//:defs.bzl", "aliases", "all_crate_deps") +load("@py_deps//:defs.bzl", "aliases", "all_crate_deps") load("@semmle_code//:common.bzl", "codeql_rust_binary") codeql_rust_binary( diff --git a/python/extractor/tsg-python/Cargo.Bazel.lock b/python/extractor/tsg-python/Cargo.Bazel.lock index b8a4d822653..3b777f1e5a4 100644 --- a/python/extractor/tsg-python/Cargo.Bazel.lock +++ b/python/extractor/tsg-python/Cargo.Bazel.lock @@ -1,5 +1,5 @@ { - "checksum": "5ea5454a42d65412a64a48233e83f21d17461b20f8c283260a3de1d964645868", + "checksum": "1bc1ce89845efff4ebef4861d3b9e4e8efeb1ba5b27565db4c6fd18175e1ee59", "crates": { "ahash 0.4.7": { "name": "ahash", diff --git a/python/extractor/tsg-python/Cargo.toml b/python/extractor/tsg-python/Cargo.toml index b88adbc42d9..71c5b498bae 100644 --- a/python/extractor/tsg-python/Cargo.toml +++ b/python/extractor/tsg-python/Cargo.toml @@ -8,7 +8,7 @@ edition = "2018" # When changing/updating these, the `Cargo.Bazel.lock` file has to be regenerated. # Check out the documentation at https://bazelbuild.github.io/rules_rust/crate_universe.html#repinning--updating-dependencies -# for how to do so. The bazel repository for the tsg-python project is called `tsg_python_crate_index`, +# for how to do so. The bazel repository for the tsg-python project is called `py_deps`, # and instead of calling `bazel sync`, `./build --bazel sync` should be used instead, to always use the correct bazel version. [dependencies] anyhow = "1.0" diff --git a/python/extractor/tsg-python/tree-sitter-python/BUILD.bazel b/python/extractor/tsg-python/tree-sitter-python/BUILD.bazel index 98b636c0d79..101fdad2100 100644 --- a/python/extractor/tsg-python/tree-sitter-python/BUILD.bazel +++ b/python/extractor/tsg-python/tree-sitter-python/BUILD.bazel @@ -1,6 +1,6 @@ load("@rules_rust//cargo:defs.bzl", "cargo_build_script") load("@rules_rust//rust:defs.bzl", "rust_library") -load("@tsg_python_crate_index//:defs.bzl", "aliases", "all_crate_deps") +load("@py_deps//:defs.bzl", "aliases", "all_crate_deps") package(default_visibility = ["//visibility:public"]) From 38169a981d295229474f1136fa8a8c3562fd157d Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Tue, 19 Mar 2024 15:07:02 +0000 Subject: [PATCH 278/309] Python: Shorten `tree-sitter-python` directory name The current name results in a path that is more than 260 characters long, and this causes issues for the build on Windows. --- python/extractor/tsg-python/Cargo.toml | 2 +- .../extractor/tsg-python/{tree-sitter-python => tsp}/.gitignore | 0 .../extractor/tsg-python/{tree-sitter-python => tsp}/.npmignore | 0 .../tsg-python/{tree-sitter-python => tsp}/BUILD.bazel | 0 .../extractor/tsg-python/{tree-sitter-python => tsp}/Cargo.toml | 0 python/extractor/tsg-python/{tree-sitter-python => tsp}/LICENSE | 0 .../extractor/tsg-python/{tree-sitter-python => tsp}/README.md | 0 .../tsg-python/{tree-sitter-python => tsp}/binding.gyp | 0 .../{tree-sitter-python => tsp}/bindings/node/binding.cc | 0 .../{tree-sitter-python => tsp}/bindings/node/index.js | 0 .../{tree-sitter-python => tsp}/bindings/rust/README.md | 0 .../{tree-sitter-python => tsp}/bindings/rust/build.rs | 0 .../tsg-python/{tree-sitter-python => tsp}/bindings/rust/lib.rs | 0 .../extractor/tsg-python/{tree-sitter-python => tsp}/grammar.js | 0 .../extractor/tsg-python/{tree-sitter-python => tsp}/log.html | 0 .../tsg-python/{tree-sitter-python => tsp}/package.json | 0 .../{tree-sitter-python => tsp}/queries/highlights.scm | 0 .../tsg-python/{tree-sitter-python => tsp}/queries/tags.scm | 0 .../tsg-python/{tree-sitter-python => tsp}/src/grammar.json | 0 .../tsg-python/{tree-sitter-python => tsp}/src/node-types.json | 0 .../tsg-python/{tree-sitter-python => tsp}/src/parser.c | 0 .../tsg-python/{tree-sitter-python => tsp}/src/scanner.cc | 0 .../{tree-sitter-python => tsp}/src/tree_sitter/parser.h | 0 23 files changed, 1 insertion(+), 1 deletion(-) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/.gitignore (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/.npmignore (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/BUILD.bazel (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/Cargo.toml (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/LICENSE (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/README.md (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/binding.gyp (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/bindings/node/binding.cc (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/bindings/node/index.js (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/bindings/rust/README.md (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/bindings/rust/build.rs (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/bindings/rust/lib.rs (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/grammar.js (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/log.html (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/package.json (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/queries/highlights.scm (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/queries/tags.scm (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/src/grammar.json (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/src/node-types.json (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/src/parser.c (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/src/scanner.cc (100%) rename python/extractor/tsg-python/{tree-sitter-python => tsp}/src/tree_sitter/parser.h (100%) diff --git a/python/extractor/tsg-python/Cargo.toml b/python/extractor/tsg-python/Cargo.toml index 71c5b498bae..b183aa83dcf 100644 --- a/python/extractor/tsg-python/Cargo.toml +++ b/python/extractor/tsg-python/Cargo.toml @@ -17,7 +17,7 @@ smallvec = { version="1.6", features=["union"] } thiserror = "1.0" tree-sitter = "0.20.4" tree-sitter-graph = "0.7.0" -tree-sitter-python = {path = "tree-sitter-python"} +tree-sitter-python = {path = "tsp"} clap = "2.32" [dependencies.string-interner] diff --git a/python/extractor/tsg-python/tree-sitter-python/.gitignore b/python/extractor/tsg-python/tsp/.gitignore similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/.gitignore rename to python/extractor/tsg-python/tsp/.gitignore diff --git a/python/extractor/tsg-python/tree-sitter-python/.npmignore b/python/extractor/tsg-python/tsp/.npmignore similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/.npmignore rename to python/extractor/tsg-python/tsp/.npmignore diff --git a/python/extractor/tsg-python/tree-sitter-python/BUILD.bazel b/python/extractor/tsg-python/tsp/BUILD.bazel similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/BUILD.bazel rename to python/extractor/tsg-python/tsp/BUILD.bazel diff --git a/python/extractor/tsg-python/tree-sitter-python/Cargo.toml b/python/extractor/tsg-python/tsp/Cargo.toml similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/Cargo.toml rename to python/extractor/tsg-python/tsp/Cargo.toml diff --git a/python/extractor/tsg-python/tree-sitter-python/LICENSE b/python/extractor/tsg-python/tsp/LICENSE similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/LICENSE rename to python/extractor/tsg-python/tsp/LICENSE diff --git a/python/extractor/tsg-python/tree-sitter-python/README.md b/python/extractor/tsg-python/tsp/README.md similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/README.md rename to python/extractor/tsg-python/tsp/README.md diff --git a/python/extractor/tsg-python/tree-sitter-python/binding.gyp b/python/extractor/tsg-python/tsp/binding.gyp similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/binding.gyp rename to python/extractor/tsg-python/tsp/binding.gyp diff --git a/python/extractor/tsg-python/tree-sitter-python/bindings/node/binding.cc b/python/extractor/tsg-python/tsp/bindings/node/binding.cc similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/bindings/node/binding.cc rename to python/extractor/tsg-python/tsp/bindings/node/binding.cc diff --git a/python/extractor/tsg-python/tree-sitter-python/bindings/node/index.js b/python/extractor/tsg-python/tsp/bindings/node/index.js similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/bindings/node/index.js rename to python/extractor/tsg-python/tsp/bindings/node/index.js diff --git a/python/extractor/tsg-python/tree-sitter-python/bindings/rust/README.md b/python/extractor/tsg-python/tsp/bindings/rust/README.md similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/bindings/rust/README.md rename to python/extractor/tsg-python/tsp/bindings/rust/README.md diff --git a/python/extractor/tsg-python/tree-sitter-python/bindings/rust/build.rs b/python/extractor/tsg-python/tsp/bindings/rust/build.rs similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/bindings/rust/build.rs rename to python/extractor/tsg-python/tsp/bindings/rust/build.rs diff --git a/python/extractor/tsg-python/tree-sitter-python/bindings/rust/lib.rs b/python/extractor/tsg-python/tsp/bindings/rust/lib.rs similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/bindings/rust/lib.rs rename to python/extractor/tsg-python/tsp/bindings/rust/lib.rs diff --git a/python/extractor/tsg-python/tree-sitter-python/grammar.js b/python/extractor/tsg-python/tsp/grammar.js similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/grammar.js rename to python/extractor/tsg-python/tsp/grammar.js diff --git a/python/extractor/tsg-python/tree-sitter-python/log.html b/python/extractor/tsg-python/tsp/log.html similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/log.html rename to python/extractor/tsg-python/tsp/log.html diff --git a/python/extractor/tsg-python/tree-sitter-python/package.json b/python/extractor/tsg-python/tsp/package.json similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/package.json rename to python/extractor/tsg-python/tsp/package.json diff --git a/python/extractor/tsg-python/tree-sitter-python/queries/highlights.scm b/python/extractor/tsg-python/tsp/queries/highlights.scm similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/queries/highlights.scm rename to python/extractor/tsg-python/tsp/queries/highlights.scm diff --git a/python/extractor/tsg-python/tree-sitter-python/queries/tags.scm b/python/extractor/tsg-python/tsp/queries/tags.scm similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/queries/tags.scm rename to python/extractor/tsg-python/tsp/queries/tags.scm diff --git a/python/extractor/tsg-python/tree-sitter-python/src/grammar.json b/python/extractor/tsg-python/tsp/src/grammar.json similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/src/grammar.json rename to python/extractor/tsg-python/tsp/src/grammar.json diff --git a/python/extractor/tsg-python/tree-sitter-python/src/node-types.json b/python/extractor/tsg-python/tsp/src/node-types.json similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/src/node-types.json rename to python/extractor/tsg-python/tsp/src/node-types.json diff --git a/python/extractor/tsg-python/tree-sitter-python/src/parser.c b/python/extractor/tsg-python/tsp/src/parser.c similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/src/parser.c rename to python/extractor/tsg-python/tsp/src/parser.c diff --git a/python/extractor/tsg-python/tree-sitter-python/src/scanner.cc b/python/extractor/tsg-python/tsp/src/scanner.cc similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/src/scanner.cc rename to python/extractor/tsg-python/tsp/src/scanner.cc diff --git a/python/extractor/tsg-python/tree-sitter-python/src/tree_sitter/parser.h b/python/extractor/tsg-python/tsp/src/tree_sitter/parser.h similarity index 100% rename from python/extractor/tsg-python/tree-sitter-python/src/tree_sitter/parser.h rename to python/extractor/tsg-python/tsp/src/tree_sitter/parser.h From d12ac1e7ce083f4a8cd55f5ace07f33cf81e806a Mon Sep 17 00:00:00 2001 From: Taus <tausbn@github.com> Date: Tue, 19 Mar 2024 15:34:48 +0000 Subject: [PATCH 279/309] Python: Use `tsp` instead of `tree-sitter-python` --- python/extractor/tsg-python/BUILD.bazel | 2 +- python/extractor/tsg-python/Cargo.Bazel.lock | 212 +++++++++---------- python/extractor/tsg-python/Cargo.lock | 18 +- python/extractor/tsg-python/Cargo.toml | 2 +- python/extractor/tsg-python/src/main.rs | 2 +- python/extractor/tsg-python/tsp/BUILD.bazel | 6 +- python/extractor/tsg-python/tsp/Cargo.toml | 2 +- 7 files changed, 122 insertions(+), 122 deletions(-) diff --git a/python/extractor/tsg-python/BUILD.bazel b/python/extractor/tsg-python/BUILD.bazel index cf95619c5a1..204bd89475a 100644 --- a/python/extractor/tsg-python/BUILD.bazel +++ b/python/extractor/tsg-python/BUILD.bazel @@ -12,5 +12,5 @@ codeql_rust_binary( visibility = ["//visibility:public"], deps = all_crate_deps( normal = True, - ) + ["//python/extractor/tsg-python/tree-sitter-python"], + ) + ["//python/extractor/tsg-python/tsp"], ) diff --git a/python/extractor/tsg-python/Cargo.Bazel.lock b/python/extractor/tsg-python/Cargo.Bazel.lock index 3b777f1e5a4..e3b5a249e4f 100644 --- a/python/extractor/tsg-python/Cargo.Bazel.lock +++ b/python/extractor/tsg-python/Cargo.Bazel.lock @@ -1,5 +1,5 @@ { - "checksum": "1bc1ce89845efff4ebef4861d3b9e4e8efeb1ba5b27565db4c6fd18175e1ee59", + "checksum": "35a1ce4b6c4f997c496c11d3a8fcfaadc5833dfd41bebb022941687d73dde159", "crates": { "ahash 0.4.7": { "name": "ahash", @@ -7,7 +7,7 @@ "package_url": "https://github.com/tkaitchuck/ahash", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/ahash/0.4.7/download", + "url": "https://static.crates.io/crates/ahash/0.4.7/download", "sha256": "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" } }, @@ -43,7 +43,7 @@ "package_url": "https://github.com/BurntSushi/aho-corasick", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download", + "url": "https://static.crates.io/crates/aho-corasick/0.7.18/download", "sha256": "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" } }, @@ -95,7 +95,7 @@ "package_url": "https://github.com/ogham/rust-ansi-term", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/ansi_term/0.11.0/download", + "url": "https://static.crates.io/crates/ansi_term/0.11.0/download", "sha256": "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" } }, @@ -141,7 +141,7 @@ "package_url": "https://github.com/dtolnay/anyhow", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/anyhow/1.0.44/download", + "url": "https://static.crates.io/crates/anyhow/1.0.44/download", "sha256": "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1" } }, @@ -207,7 +207,7 @@ "package_url": "https://github.com/softprops/atty", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/atty/0.2.14/download", + "url": "https://static.crates.io/crates/atty/0.2.14/download", "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" } }, @@ -265,7 +265,7 @@ "package_url": "https://github.com/bitflags/bitflags", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download", + "url": "https://static.crates.io/crates/bitflags/1.3.2/download", "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" } }, @@ -307,7 +307,7 @@ "package_url": "https://github.com/alexcrichton/cc-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cc/1.0.70/download", + "url": "https://static.crates.io/crates/cc/1.0.70/download", "sha256": "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0" } }, @@ -343,7 +343,7 @@ "package_url": "https://github.com/alexcrichton/cfg-if", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download", + "url": "https://static.crates.io/crates/cfg-if/1.0.0/download", "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" } }, @@ -379,7 +379,7 @@ "package_url": "https://github.com/clap-rs/clap", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/clap/2.33.3/download", + "url": "https://static.crates.io/crates/clap/2.33.3/download", "sha256": "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" } }, @@ -462,7 +462,7 @@ "package_url": "https://github.com/rust-lang/hashbrown", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/hashbrown/0.9.1/download", + "url": "https://static.crates.io/crates/hashbrown/0.9.1/download", "sha256": "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" } }, @@ -514,7 +514,7 @@ "package_url": "https://github.com/hermitcore/libhermit-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download", + "url": "https://static.crates.io/crates/hermit-abi/0.1.19/download", "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" } }, @@ -559,7 +559,7 @@ "package_url": "https://github.com/dtolnay/itoa", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/itoa/1.0.1/download", + "url": "https://static.crates.io/crates/itoa/1.0.1/download", "sha256": "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" } }, @@ -595,7 +595,7 @@ "package_url": "https://github.com/rust-lang/libc", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/libc/0.2.101/download", + "url": "https://static.crates.io/crates/libc/0.2.101/download", "sha256": "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21" } }, @@ -654,7 +654,7 @@ "package_url": "https://github.com/rust-lang/log", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/log/0.4.14/download", + "url": "https://static.crates.io/crates/log/0.4.14/download", "sha256": "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" } }, @@ -717,7 +717,7 @@ "package_url": "https://github.com/BurntSushi/memchr", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/memchr/2.4.1/download", + "url": "https://static.crates.io/crates/memchr/2.4.1/download", "sha256": "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" } }, @@ -783,7 +783,7 @@ "package_url": "https://github.com/alexcrichton/proc-macro2", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.29/download", + "url": "https://static.crates.io/crates/proc-macro2/1.0.29/download", "sha256": "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" } }, @@ -853,7 +853,7 @@ "package_url": "https://github.com/dtolnay/quote", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/quote/1.0.9/download", + "url": "https://static.crates.io/crates/quote/1.0.9/download", "sha256": "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" } }, @@ -905,7 +905,7 @@ "package_url": "https://github.com/rust-lang/regex", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex/1.5.5/download", + "url": "https://static.crates.io/crates/regex/1.5.5/download", "sha256": "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" } }, @@ -980,7 +980,7 @@ "package_url": "https://github.com/rust-lang/regex", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download", + "url": "https://static.crates.io/crates/regex-syntax/0.6.25/download", "sha256": "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" } }, @@ -1030,7 +1030,7 @@ "package_url": "https://github.com/dtolnay/ryu", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/ryu/1.0.9/download", + "url": "https://static.crates.io/crates/ryu/1.0.9/download", "sha256": "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" } }, @@ -1066,7 +1066,7 @@ "package_url": "https://github.com/serde-rs/serde", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/serde/1.0.136/download", + "url": "https://static.crates.io/crates/serde/1.0.136/download", "sha256": "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" } }, @@ -1132,7 +1132,7 @@ "package_url": "https://github.com/serde-rs/json", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/serde_json/1.0.79/download", + "url": "https://static.crates.io/crates/serde_json/1.0.79/download", "sha256": "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" } }, @@ -1210,7 +1210,7 @@ "package_url": "https://github.com/servo/rust-smallvec", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/smallvec/1.6.1/download", + "url": "https://static.crates.io/crates/smallvec/1.6.1/download", "sha256": "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" } }, @@ -1252,7 +1252,7 @@ "package_url": "https://github.com/robbepop/string-interner", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/string-interner/0.12.2/download", + "url": "https://static.crates.io/crates/string-interner/0.12.2/download", "sha256": "383196d1876517ee6f9f0864d1fc1070331b803335d3c6daaa04bbcccd823c08" } }, @@ -1309,7 +1309,7 @@ "package_url": "https://github.com/dguo/strsim-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/strsim/0.8.0/download", + "url": "https://static.crates.io/crates/strsim/0.8.0/download", "sha256": "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" } }, @@ -1344,7 +1344,7 @@ "package_url": "https://github.com/dtolnay/syn", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/syn/1.0.76/download", + "url": "https://static.crates.io/crates/syn/1.0.76/download", "sha256": "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" } }, @@ -1427,7 +1427,7 @@ "package_url": "https://github.com/mgeisler/textwrap", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/textwrap/0.11.0/download", + "url": "https://static.crates.io/crates/textwrap/0.11.0/download", "sha256": "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" } }, @@ -1471,7 +1471,7 @@ "package_url": "https://github.com/dtolnay/thiserror", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/thiserror/1.0.29/download", + "url": "https://static.crates.io/crates/thiserror/1.0.29/download", "sha256": "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88" } }, @@ -1516,7 +1516,7 @@ "package_url": "https://github.com/dtolnay/thiserror", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/thiserror-impl/1.0.29/download", + "url": "https://static.crates.io/crates/thiserror-impl/1.0.29/download", "sha256": "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" } }, @@ -1569,7 +1569,7 @@ "package_url": "https://github.com/tree-sitter/tree-sitter", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tree-sitter/0.20.4/download", + "url": "https://static.crates.io/crates/tree-sitter/0.20.4/download", "sha256": "4e34327f8eac545e3f037382471b2b19367725a242bba7bc45edb9efb49fe39a" } }, @@ -1640,7 +1640,7 @@ "package_url": "https://github.com/tree-sitter/tree-sitter-graph/", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/tree-sitter-graph/0.7.0/download", + "url": "https://static.crates.io/crates/tree-sitter-graph/0.7.0/download", "sha256": "639d21e886f581d293de5f5081f09af003c54607ff3fa85efa159b243ba1f97a" } }, @@ -1707,72 +1707,6 @@ ], "license_file": null }, - "tree-sitter-python 0.19.0": { - "name": "tree-sitter-python", - "version": "0.19.0", - "package_url": "https://github.com/tree-sitter/tree-sitter-python", - "repository": null, - "targets": [ - { - "Library": { - "crate_name": "tree_sitter_python", - "crate_root": "bindings/rust/lib.rs", - "srcs": [ - "**/*.rs" - ] - } - }, - { - "BuildScript": { - "crate_name": "build_script_build", - "crate_root": "bindings/rust/build.rs", - "srcs": [ - "**/*.rs" - ] - } - } - ], - "library_target_name": "tree_sitter_python", - "common_attrs": { - "compile_data_glob": [ - "**" - ], - "deps": { - "common": [ - { - "id": "tree-sitter 0.20.4", - "target": "tree_sitter" - }, - { - "id": "tree-sitter-python 0.19.0", - "target": "build_script_build" - } - ], - "selects": {} - }, - "edition": "2018", - "version": "0.19.0" - }, - "build_script_attrs": { - "data_glob": [ - "**" - ], - "deps": { - "common": [ - { - "id": "cc 1.0.70", - "target": "cc" - } - ], - "selects": {} - } - }, - "license": "MIT", - "license_ids": [ - "MIT" - ], - "license_file": null - }, "tsg-python 0.1.0": { "name": "tsg-python", "version": "0.1.0", @@ -1828,13 +1762,79 @@ "license_ids": [], "license_file": null }, + "tsp 0.19.0": { + "name": "tsp", + "version": "0.19.0", + "package_url": "https://github.com/tree-sitter/tree-sitter-python", + "repository": null, + "targets": [ + { + "Library": { + "crate_name": "tsp", + "crate_root": "bindings/rust/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "bindings/rust/build.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "tsp", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "tree-sitter 0.20.4", + "target": "tree_sitter" + }, + { + "id": "tsp 0.19.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.19.0" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "cc 1.0.70", + "target": "cc" + } + ], + "selects": {} + } + }, + "license": "MIT", + "license_ids": [ + "MIT" + ], + "license_file": null + }, "unicode-width 0.1.8": { "name": "unicode-width", "version": "0.1.8", "package_url": "https://github.com/unicode-rs/unicode-width", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/unicode-width/0.1.8/download", + "url": "https://static.crates.io/crates/unicode-width/0.1.8/download", "sha256": "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" } }, @@ -1876,7 +1876,7 @@ "package_url": "https://github.com/unicode-rs/unicode-xid", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download", + "url": "https://static.crates.io/crates/unicode-xid/0.2.2/download", "sha256": "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" } }, @@ -1918,7 +1918,7 @@ "package_url": "https://github.com/contain-rs/vec-map", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/vec_map/0.8.2/download", + "url": "https://static.crates.io/crates/vec_map/0.8.2/download", "sha256": "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" } }, @@ -1954,7 +1954,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download", + "url": "https://static.crates.io/crates/winapi/0.3.9/download", "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" } }, @@ -2037,7 +2037,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download", + "url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download", "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" } }, @@ -2096,7 +2096,7 @@ "package_url": "https://github.com/retep998/winapi-rs", "repository": { "Http": { - "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download", + "url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download", "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" } }, @@ -2152,8 +2152,8 @@ }, "binary_crates": [], "workspace_members": { - "tree-sitter-python 0.19.0": "python/extractor/tsg-python/tree-sitter-python", - "tsg-python 0.1.0": "python/extractor/tsg-python" + "tsg-python 0.1.0": "python/extractor/tsg-python", + "tsp 0.19.0": "python/extractor/tsg-python/tsp" }, "conditions": { "aarch64-apple-darwin": [ diff --git a/python/extractor/tsg-python/Cargo.lock b/python/extractor/tsg-python/Cargo.lock index 9ee8840bde1..c179dd3036f 100644 --- a/python/extractor/tsg-python/Cargo.lock +++ b/python/extractor/tsg-python/Cargo.lock @@ -267,14 +267,6 @@ dependencies = [ "tree-sitter", ] -[[package]] -name = "tree-sitter-python" -version = "0.19.0" -dependencies = [ - "cc", - "tree-sitter", -] - [[package]] name = "tsg-python" version = "0.1.0" @@ -287,7 +279,15 @@ dependencies = [ "thiserror", "tree-sitter", "tree-sitter-graph", - "tree-sitter-python", + "tsp", +] + +[[package]] +name = "tsp" +version = "0.19.0" +dependencies = [ + "cc", + "tree-sitter", ] [[package]] diff --git a/python/extractor/tsg-python/Cargo.toml b/python/extractor/tsg-python/Cargo.toml index b183aa83dcf..feecd254159 100644 --- a/python/extractor/tsg-python/Cargo.toml +++ b/python/extractor/tsg-python/Cargo.toml @@ -17,7 +17,7 @@ smallvec = { version="1.6", features=["union"] } thiserror = "1.0" tree-sitter = "0.20.4" tree-sitter-graph = "0.7.0" -tree-sitter-python = {path = "tsp"} +tsp = {path = "tsp"} clap = "2.32" [dependencies.string-interner] diff --git a/python/extractor/tsg-python/src/main.rs b/python/extractor/tsg-python/src/main.rs index fa528d8138d..ebfcd01a74e 100644 --- a/python/extractor/tsg-python/src/main.rs +++ b/python/extractor/tsg-python/src/main.rs @@ -488,7 +488,7 @@ fn main() -> Result<()> { "bundled `python.tsg`".to_owned() }; let source_path = Path::new(matches.value_of("source").unwrap()); - let language = tree_sitter_python::language(); + let language = tsp::language(); let mut parser = Parser::new(); parser.set_language(language)?; // Statically include `python.tsg`: diff --git a/python/extractor/tsg-python/tsp/BUILD.bazel b/python/extractor/tsg-python/tsp/BUILD.bazel index 101fdad2100..71319e894f6 100644 --- a/python/extractor/tsg-python/tsp/BUILD.bazel +++ b/python/extractor/tsg-python/tsp/BUILD.bazel @@ -7,7 +7,7 @@ package(default_visibility = ["//visibility:public"]) # This will run the build script from the root of the workspace, and # collect the outputs. cargo_build_script( - name = "tsg-build-script", + name = "tsg-build", srcs = ["bindings/rust/build.rs"], data = glob([ "src/**", @@ -18,7 +18,7 @@ cargo_build_script( ) rust_library( - name = "tree-sitter-python", + name = "tsp", srcs = [ "bindings/rust/lib.rs", ], @@ -32,7 +32,7 @@ rust_library( proc_macro_deps = all_crate_deps( proc_macro = True, ), - deps = [":tsg-build-script"] + all_crate_deps( + deps = [":tsg-build"] + all_crate_deps( normal = True, ), ) diff --git a/python/extractor/tsg-python/tsp/Cargo.toml b/python/extractor/tsg-python/tsp/Cargo.toml index 4c863753b93..995f39a3bd9 100644 --- a/python/extractor/tsg-python/tsp/Cargo.toml +++ b/python/extractor/tsg-python/tsp/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "tree-sitter-python" +name = "tsp" description = "Python grammar for the tree-sitter parsing library" version = "0.19.0" authors = [ From 88bfb81b1f508da2b9346c403bc6347809c573bc Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 17:14:07 +0000 Subject: [PATCH 280/309] C++: Add change note. --- .../2024-03-19-predicates-for-switches-as-guards-2.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2024-03-19-predicates-for-switches-as-guards-2.md diff --git a/cpp/ql/lib/change-notes/2024-03-19-predicates-for-switches-as-guards-2.md b/cpp/ql/lib/change-notes/2024-03-19-predicates-for-switches-as-guards-2.md new file mode 100644 index 00000000000..88b4048f8cd --- /dev/null +++ b/cpp/ql/lib/change-notes/2024-03-19-predicates-for-switches-as-guards-2.md @@ -0,0 +1,5 @@ +--- +category: feature +--- +* Added a predicate `GuardCondition.comparesLt/4` to query whether an expression is compared to a constant. +* Added a predicate `GuardCondition.ensuresLt/4` to query whether a basic block is guarded by an expression being less than a constant. \ No newline at end of file From 97aa301ac9d234254a10ec6ffdb93c808460aa20 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 19 Mar 2024 17:33:23 +0000 Subject: [PATCH 281/309] C++: Accept more test changes. --- .../controlflow/guards-ir/tests.expected | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected index 2eb749580b4..cc29559d5d3 100644 --- a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected +++ b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected @@ -530,19 +530,27 @@ irGuardsCompare | 7 | 0 < x+0 when CompareGT: ... > ... is true | | 7 | 0 >= x+0 when CompareGT: ... > ... is false | | 7 | x < 0+1 when CompareGT: ... > ... is false | +| 7 | x < 1 when CompareGT: ... > ... is false | | 7 | x >= 0+1 when CompareGT: ... > ... is true | +| 7 | x >= 1 when CompareGT: ... > ... is true | | 17 | 0 < x+1 when CompareLT: ... < ... is false | | 17 | 0 >= x+1 when CompareLT: ... < ... is true | | 17 | 1 < y+0 when CompareGT: ... > ... is true | | 17 | 1 >= y+0 when CompareGT: ... > ... is false | +| 17 | x < 0 when CompareLT: ... < ... is true | | 17 | x < 0+0 when CompareLT: ... < ... is true | +| 17 | x >= 0 when CompareLT: ... < ... is false | | 17 | x >= 0+0 when CompareLT: ... < ... is false | | 17 | y < 1+1 when CompareGT: ... > ... is false | +| 17 | y < 2 when CompareGT: ... > ... is false | | 17 | y >= 1+1 when CompareGT: ... > ... is true | +| 17 | y >= 2 when CompareGT: ... > ... is true | | 26 | 0 < x+0 when CompareGT: ... > ... is true | | 26 | 0 >= x+0 when CompareGT: ... > ... is false | | 26 | x < 0+1 when CompareGT: ... > ... is false | +| 26 | x < 1 when CompareGT: ... > ... is false | | 26 | x >= 0+1 when CompareGT: ... > ... is true | +| 26 | x >= 1 when CompareGT: ... > ... is true | | 31 | - ... != x+0 when CompareEQ: ... == ... is false | | 31 | - ... == x+0 when CompareEQ: ... == ... is true | | 31 | x != -1 when CompareEQ: ... == ... is false | @@ -551,20 +559,28 @@ irGuardsCompare | 31 | x == - ...+0 when CompareEQ: ... == ... is true | | 34 | 10 < j+1 when CompareLT: ... < ... is false | | 34 | 10 >= j+1 when CompareLT: ... < ... is true | +| 34 | j < 10 when CompareLT: ... < ... is true | | 34 | j < 10+0 when CompareLT: ... < ... is true | +| 34 | j >= 10 when CompareLT: ... < ... is false | | 34 | j >= 10+0 when CompareLT: ... < ... is false | | 42 | 10 < j+1 when CompareLT: ... < ... is false | | 42 | 10 >= j+1 when CompareLT: ... < ... is true | +| 42 | j < 10 when CompareLT: ... < ... is true | | 42 | j < 10+0 when CompareLT: ... < ... is true | +| 42 | j >= 10 when CompareLT: ... < ... is false | | 42 | j >= 10+0 when CompareLT: ... < ... is false | | 44 | 0 < z+0 when CompareGT: ... > ... is true | | 44 | 0 >= z+0 when CompareGT: ... > ... is false | | 44 | z < 0+1 when CompareGT: ... > ... is false | +| 44 | z < 1 when CompareGT: ... > ... is false | | 44 | z >= 0+1 when CompareGT: ... > ... is true | +| 44 | z >= 1 when CompareGT: ... > ... is true | | 45 | 0 < y+0 when CompareGT: ... > ... is true | | 45 | 0 >= y+0 when CompareGT: ... > ... is false | | 45 | y < 0+1 when CompareGT: ... > ... is false | +| 45 | y < 1 when CompareGT: ... > ... is false | | 45 | y >= 0+1 when CompareGT: ... > ... is true | +| 45 | y >= 1 when CompareGT: ... > ... is true | | 58 | 0 != x+0 when CompareEQ: ... == ... is false | | 58 | 0 < y+1 when CompareLT: ... < ... is false | | 58 | 0 == x+0 when CompareEQ: ... == ... is true | @@ -573,7 +589,9 @@ irGuardsCompare | 58 | x != 0+0 when CompareEQ: ... == ... is false | | 58 | x == 0 when CompareEQ: ... == ... is true | | 58 | x == 0+0 when CompareEQ: ... == ... is true | +| 58 | y < 0 when CompareLT: ... < ... is true | | 58 | y < 0+0 when CompareLT: ... < ... is true | +| 58 | y >= 0 when CompareLT: ... < ... is false | | 58 | y >= 0+0 when CompareLT: ... < ... is false | | 75 | 0 != x+0 when CompareEQ: ... == ... is false | | 75 | 0 == x+0 when CompareEQ: ... == ... is true | @@ -601,7 +619,9 @@ irGuardsCompare | 94 | x == 0+0 when CompareNE: ... != ... is false | | 102 | 10 < j+1 when CompareLT: ... < ... is false | | 102 | 10 >= j+1 when CompareLT: ... < ... is true | +| 102 | j < 10 when CompareLT: ... < ... is true | | 102 | j < 10+0 when CompareLT: ... < ... is true | +| 102 | j >= 10 when CompareLT: ... < ... is false | | 102 | j >= 10+0 when CompareLT: ... < ... is false | | 109 | 0 != x+0 when CompareEQ: ... == ... is false | | 109 | 0 < y+1 when CompareLT: ... < ... is false | @@ -611,7 +631,9 @@ irGuardsCompare | 109 | x != 0+0 when CompareEQ: ... == ... is false | | 109 | x == 0 when CompareEQ: ... == ... is true | | 109 | x == 0+0 when CompareEQ: ... == ... is true | +| 109 | y < 0 when CompareLT: ... < ... is true | | 109 | y < 0+0 when CompareLT: ... < ... is true | +| 109 | y >= 0 when CompareLT: ... < ... is false | | 109 | y >= 0+0 when CompareLT: ... < ... is false | | 156 | ... + ... != x+0 when CompareEQ: ... == ... is false | | 156 | ... + ... == x+0 when CompareEQ: ... == ... is true | @@ -906,8 +928,49 @@ irGuardsEnsure | test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:12:31:13 | Constant: - ... | == | test.cpp:31:7:31:7 | Load: x | 0 | 30 | 30 | | test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:12:31:13 | Constant: - ... | == | test.cpp:31:7:31:7 | Load: x | 0 | 32 | 32 | irGuardsEnsure_const +| test.c:7:9:7:13 | CompareGT: ... > ... | test.c:7:9:7:9 | Load: x | < | 1 | 11 | 11 | +| test.c:7:9:7:13 | CompareGT: ... > ... | test.c:7:9:7:9 | Load: x | >= | 1 | 8 | 8 | +| test.c:17:8:17:12 | CompareLT: ... < ... | test.c:17:8:17:8 | Load: x | < | 0 | 17 | 17 | +| test.c:17:8:17:12 | CompareLT: ... < ... | test.c:17:8:17:8 | Load: x | < | 0 | 18 | 18 | +| test.c:17:17:17:21 | CompareGT: ... > ... | test.c:17:17:17:17 | Load: y | >= | 2 | 18 | 18 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 2 | 2 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 31 | 31 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 34 | 34 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 35 | 35 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 39 | 39 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 42 | 42 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 43 | 43 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 45 | 45 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 46 | 46 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 52 | 52 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 56 | 56 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 58 | 58 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 59 | 59 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | < | 1 | 62 | 62 | +| test.c:26:11:26:15 | CompareGT: ... > ... | test.c:26:11:26:11 | Load: x | >= | 1 | 27 | 27 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | < | 10 | 35 | 35 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 2 | 2 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 39 | 39 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 42 | 42 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 43 | 43 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 45 | 45 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 46 | 46 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 52 | 52 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 56 | 56 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 58 | 58 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 59 | 59 | +| test.c:34:16:34:21 | CompareLT: ... < ... | test.c:34:16:34:16 | Load: j | >= | 10 | 62 | 62 | +| test.c:42:16:42:21 | CompareLT: ... < ... | test.c:42:16:42:16 | Load: j | < | 10 | 43 | 43 | +| test.c:42:16:42:21 | CompareLT: ... < ... | test.c:42:16:42:16 | Load: j | < | 10 | 45 | 45 | +| test.c:42:16:42:21 | CompareLT: ... < ... | test.c:42:16:42:16 | Load: j | < | 10 | 46 | 46 | +| test.c:42:16:42:21 | CompareLT: ... < ... | test.c:42:16:42:16 | Load: j | < | 10 | 52 | 52 | +| test.c:44:12:44:16 | CompareGT: ... > ... | test.c:44:12:44:12 | Load: z | < | 1 | 52 | 52 | +| test.c:44:12:44:16 | CompareGT: ... > ... | test.c:44:12:44:12 | Load: z | >= | 1 | 45 | 45 | +| test.c:44:12:44:16 | CompareGT: ... > ... | test.c:44:12:44:12 | Load: z | >= | 1 | 46 | 46 | +| test.c:45:16:45:20 | CompareGT: ... > ... | test.c:45:16:45:16 | Load: y | >= | 1 | 46 | 46 | | test.c:58:9:58:14 | CompareEQ: ... == ... | test.c:58:9:58:9 | Load: x | != | 0 | 58 | 58 | | test.c:58:9:58:14 | CompareEQ: ... == ... | test.c:58:9:58:9 | Load: x | != | 0 | 62 | 62 | +| test.c:58:19:58:23 | CompareLT: ... < ... | test.c:58:19:58:19 | Load: y | >= | 0 | 62 | 62 | | test.c:75:9:75:14 | CompareEQ: ... == ... | test.c:75:9:75:9 | Load: x | != | 0 | 79 | 79 | | test.c:75:9:75:14 | CompareEQ: ... == ... | test.c:75:9:75:9 | Load: x | == | 0 | 76 | 76 | | test.c:85:8:85:13 | CompareEQ: ... == ... | test.c:85:8:85:8 | Load: x | == | 0 | 85 | 85 | @@ -922,8 +985,15 @@ irGuardsEnsure_const | test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 109 | 109 | | test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 110 | 110 | | test.c:94:11:94:16 | CompareNE: ... != ... | test.c:94:11:94:11 | Load: x | == | 0 | 113 | 113 | +| test.c:102:16:102:21 | CompareLT: ... < ... | test.c:102:16:102:16 | Load: j | < | 10 | 103 | 103 | +| test.c:102:16:102:21 | CompareLT: ... < ... | test.c:102:16:102:16 | Load: j | >= | 10 | 70 | 70 | +| test.c:102:16:102:21 | CompareLT: ... < ... | test.c:102:16:102:16 | Load: j | >= | 10 | 107 | 107 | +| test.c:102:16:102:21 | CompareLT: ... < ... | test.c:102:16:102:16 | Load: j | >= | 10 | 109 | 109 | +| test.c:102:16:102:21 | CompareLT: ... < ... | test.c:102:16:102:16 | Load: j | >= | 10 | 110 | 110 | +| test.c:102:16:102:21 | CompareLT: ... < ... | test.c:102:16:102:16 | Load: j | >= | 10 | 113 | 113 | | test.c:109:9:109:14 | CompareEQ: ... == ... | test.c:109:9:109:9 | Load: x | != | 0 | 109 | 109 | | test.c:109:9:109:14 | CompareEQ: ... == ... | test.c:109:9:109:9 | Load: x | != | 0 | 113 | 113 | +| test.c:109:19:109:23 | CompareLT: ... < ... | test.c:109:19:109:19 | Load: y | >= | 0 | 113 | 113 | | test.c:175:13:175:32 | CompareEQ: ... == ... | test.c:175:13:175:15 | Call: call to foo | != | 0 | 175 | 175 | | test.c:175:13:175:32 | CompareEQ: ... == ... | test.c:175:13:175:15 | Call: call to foo | == | 0 | 175 | 175 | | test.cpp:31:7:31:13 | CompareEQ: ... == ... | test.cpp:31:7:31:7 | Load: x | != | -1 | 34 | 34 | From f6f707352060095d9021c2d89b45e66554dfab8d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 00:15:31 +0000 Subject: [PATCH 282/309] Add changed framework coverage reports --- java/documentation/library-coverage/coverage.csv | 6 +++--- java/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index ad4f7bdd07f..03d97bcb9d8 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -76,13 +76,13 @@ jakarta.ws.rs.core,2,,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,94,55 jakarta.xml.bind.attachment,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,, java.awt,1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,3 java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, -java.io,51,1,45,,,,,,,,,22,,,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,1,,43,2 -java.lang,38,3,101,,13,,,,,,1,,,,,,,,,,,,8,,,,11,,,4,,,1,,,,,,,,,,,,,,3,,,58,43 +java.io,51,1,47,,,,,,,,,22,,,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,1,,45,2 +java.lang,38,3,102,,13,,,,,,1,,,,,,,,,,,,8,,,,11,,,4,,,1,,,,,,,,,,,,,,3,,,59,43 java.net,22,3,24,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,20,,,,,,,,,,,,,3,24, java.nio,44,,38,,,,,,,,,5,,,,,,,,,,,,,,,38,,,,,,,,,1,,,,,,,,,,,,,,38, java.security,21,,,,,11,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, java.sql,15,1,2,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,9,,,,,,,,1,,,,2, -java.util,47,2,524,,,,,,,,,1,,,,,,,,,,,34,,,,2,,,,5,2,,1,2,,,,,,,,,,,,2,,,46,478 +java.util,47,2,529,,,,,,,,,1,,,,,,,,,,,34,,,,2,,,,5,2,,1,2,,,,,,,,,,,,2,,,49,480 javafx.scene.web,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,, javax.activation,2,,7,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,7, javax.crypto,19,,4,,,12,3,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index a37dc0a71ef..ce93e37f09a 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -18,10 +18,10 @@ Java framework & library support `Google Guava <https://guava.dev/>`_,``com.google.common.*``,,730,43,9,,,,, JBoss Logging,``org.jboss.logging``,,,324,,,,,, `JSON-java <https://github.com/stleary/JSON-java>`_,``org.json``,,236,,,,,,, - Java Standard Library,``java.*``,10,738,239,80,,9,,,25 + Java Standard Library,``java.*``,10,746,239,80,,9,,,25 Java extensions,"``javax.*``, ``jakarta.*``",67,688,80,5,4,2,1,1,4 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 `Spring <https://spring.io/>`_,``org.springframework.*``,38,481,118,5,,28,14,,35 Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.mongodb``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.influxdb``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",131,10518,893,125,6,22,18,,209 - Totals,,308,18954,2559,338,16,128,33,1,409 + Totals,,308,18962,2559,338,16,128,33,1,409 From 10efcc2bb449726a4bdcddcfe31e46c10b13cefa Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli <redsun82@github.com> Date: Tue, 19 Mar 2024 11:52:19 +0100 Subject: [PATCH 283/309] Swift: add `-headerpad_max_install_names` to link options --- swift/extractor/BUILD.bazel | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swift/extractor/BUILD.bazel b/swift/extractor/BUILD.bazel index f711b3b9d2b..42c1105053c 100644 --- a/swift/extractor/BUILD.bazel +++ b/swift/extractor/BUILD.bazel @@ -17,6 +17,10 @@ swift_cc_binary( "//swift/third_party/swift-llvm-support", "@absl//absl/strings", ], + linkopts = select({ + "@platforms//os:macos": ["-headerpad_max_install_names"], + "//conditions:default": [], + }), ) sh_binary( From 3ee965f2b94df2fa6da2bb11773f5789be3bcd78 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Tue, 19 Mar 2024 16:42:52 +0100 Subject: [PATCH 284/309] C++: Update test results --- .../library-tests/ir/ir/PrintAST.expected | 204 ++++++++++ .../conditional_destructors/cfg.expected | 362 +++++++++--------- 2 files changed, 392 insertions(+), 174 deletions(-) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 669ec52376f..e583b2328e4 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -1823,6 +1823,12 @@ destructors_for_temps.cpp: # 17| getQualifier(): [ConstructorCall] call to ClassWithDestructor2 # 17| Type = [VoidType] void # 17| ValueCategory = prvalue +# 17| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 17| Type = [VoidType] void +# 17| ValueCategory = prvalue +# 17| getQualifier(): [ReuseExpr] reuse of temporary object +# 17| Type = [Class] ClassWithDestructor2 +# 17| ValueCategory = xvalue # 17| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 17| Type = [Class] ClassWithDestructor2 # 17| ValueCategory = prvalue(load) @@ -1858,6 +1864,18 @@ destructors_for_temps.cpp: # 23| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 23| Type = [Class] ClassWithDestructor2 # 23| ValueCategory = prvalue(load) +# 23| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 23| Type = [VoidType] void +# 23| ValueCategory = prvalue +# 23| getQualifier(): [ReuseExpr] reuse of temporary object +# 23| Type = [Class] ClassWithDestructor2 +# 23| ValueCategory = xvalue +# 23| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor2 +# 23| Type = [VoidType] void +# 23| ValueCategory = prvalue +# 23| getQualifier(): [ReuseExpr] reuse of temporary object +# 23| Type = [Class] ClassWithDestructor2 +# 23| ValueCategory = xvalue # 23| getLeftOperand().getFullyConverted(): [CStyleCast] (int)... # 23| Conversion = [IntegralConversion] integral conversion # 23| Type = [IntType] int @@ -1959,6 +1977,12 @@ destructors_for_temps.cpp: # 39| getElse(): [ConstructorCall] call to ClassWithDestructor2 # 39| Type = [VoidType] void # 39| ValueCategory = prvalue +# 39| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 39| Type = [VoidType] void +# 39| ValueCategory = prvalue +# 39| getQualifier(): [ReuseExpr] reuse of temporary object +# 39| Type = [Class] ClassWithDestructor2 +# 39| ValueCategory = xvalue # 39| getThen().getFullyConverted(): [TemporaryObjectExpr] temporary object # 39| Type = [Class] ClassWithDestructor2 # 39| ValueCategory = prvalue(load) @@ -2066,6 +2090,24 @@ destructors_for_temps.cpp: # 51| getElse(): [ConstructorCall] call to ClassWithDestructor2 # 51| Type = [VoidType] void # 51| ValueCategory = prvalue +# 51| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 51| Type = [VoidType] void +# 51| ValueCategory = prvalue +# 51| getQualifier(): [ReuseExpr] reuse of temporary object +# 51| Type = [Class] ClassWithDestructor2 +# 51| ValueCategory = xvalue +# 51| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor2 +# 51| Type = [VoidType] void +# 51| ValueCategory = prvalue +# 51| getQualifier(): [ReuseExpr] reuse of temporary object +# 51| Type = [Class] ClassWithDestructor2 +# 51| ValueCategory = xvalue +# 51| getImplicitDestructorCall(2): [DestructorCall] call to ~ClassWithDestructor2 +# 51| Type = [VoidType] void +# 51| ValueCategory = prvalue +# 51| getQualifier(): [ReuseExpr] reuse of temporary object +# 51| Type = [Class] ClassWithDestructor2 +# 51| ValueCategory = xvalue # 51| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object # 51| Type = [Class] ClassWithDestructor2 # 51| ValueCategory = prvalue(load) @@ -2113,6 +2155,24 @@ destructors_for_temps.cpp: # 55| getElse(): [ConstructorCall] call to ClassWithDestructor2 # 55| Type = [VoidType] void # 55| ValueCategory = prvalue +# 55| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 55| Type = [VoidType] void +# 55| ValueCategory = prvalue +# 55| getQualifier(): [ReuseExpr] reuse of temporary object +# 55| Type = [Class] ClassWithDestructor2 +# 55| ValueCategory = xvalue +# 55| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor2 +# 55| Type = [VoidType] void +# 55| ValueCategory = prvalue +# 55| getQualifier(): [ReuseExpr] reuse of temporary object +# 55| Type = [Class] ClassWithDestructor2 +# 55| ValueCategory = xvalue +# 55| getImplicitDestructorCall(2): [DestructorCall] call to ~ClassWithDestructor2 +# 55| Type = [VoidType] void +# 55| ValueCategory = prvalue +# 55| getQualifier(): [ReuseExpr] reuse of temporary object +# 55| Type = [Class] ClassWithDestructor2 +# 55| ValueCategory = xvalue # 55| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object # 55| Type = [Class] ClassWithDestructor2 # 55| ValueCategory = prvalue(load) @@ -7245,6 +7305,12 @@ ir.cpp: # 809| Conversion = [BaseClassConversion] base class conversion # 809| Type = [SpecifiedType] const Base # 809| ValueCategory = lvalue +# 809| getImplicitDestructorCall(0): [DestructorCall] call to ~Base +# 809| Type = [VoidType] void +# 809| ValueCategory = prvalue +# 809| getQualifier(): [ReuseExpr] reuse of temporary object +# 809| Type = [Struct,VirtualBaseClass] Base +# 809| ValueCategory = xvalue # 809| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 809| Type = [LValueReferenceType] const Base & # 809| ValueCategory = prvalue @@ -7278,6 +7344,12 @@ ir.cpp: # 810| Conversion = [BaseClassConversion] base class conversion # 810| Type = [SpecifiedType] const Base # 810| ValueCategory = lvalue +# 810| getImplicitDestructorCall(0): [DestructorCall] call to ~Base +# 810| Type = [VoidType] void +# 810| ValueCategory = prvalue +# 810| getQualifier(): [ReuseExpr] reuse of temporary object +# 810| Type = [Struct,VirtualBaseClass] Base +# 810| ValueCategory = xvalue # 810| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 810| Type = [LValueReferenceType] const Base & # 810| ValueCategory = prvalue @@ -7485,6 +7557,12 @@ ir.cpp: # 823| Conversion = [BaseClassConversion] base class conversion # 823| Type = [SpecifiedType] const Middle # 823| ValueCategory = lvalue +# 823| getImplicitDestructorCall(0): [DestructorCall] call to ~Base +# 823| Type = [VoidType] void +# 823| ValueCategory = prvalue +# 823| getQualifier(): [ReuseExpr] reuse of temporary object +# 823| Type = [Struct,VirtualBaseClass] Base +# 823| ValueCategory = xvalue # 823| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 823| Type = [LValueReferenceType] const Base & # 823| ValueCategory = prvalue @@ -7522,6 +7600,12 @@ ir.cpp: # 824| Conversion = [BaseClassConversion] base class conversion # 824| Type = [SpecifiedType] const Middle # 824| ValueCategory = lvalue +# 824| getImplicitDestructorCall(0): [DestructorCall] call to ~Base +# 824| Type = [VoidType] void +# 824| ValueCategory = prvalue +# 824| getQualifier(): [ReuseExpr] reuse of temporary object +# 824| Type = [Struct,VirtualBaseClass] Base +# 824| ValueCategory = xvalue # 824| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 824| Type = [LValueReferenceType] const Base & # 824| ValueCategory = prvalue @@ -11685,6 +11769,12 @@ ir.cpp: # 1419| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 1419| Type = [PointerType] const char * # 1419| ValueCategory = prvalue +# 1419| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1419| Type = [VoidType] void +# 1419| ValueCategory = prvalue +# 1419| getQualifier(): [ReuseExpr] reuse of temporary object +# 1419| Type = [SpecifiedType] const String +# 1419| ValueCategory = xvalue # 1419| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 1419| Type = [LValueReferenceType] const String & # 1419| ValueCategory = prvalue @@ -11708,6 +11798,12 @@ ir.cpp: # 1420| Conversion = [GlvalueConversion] glvalue conversion # 1420| Type = [SpecifiedType] const String # 1420| ValueCategory = lvalue +# 1420| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1420| Type = [VoidType] void +# 1420| ValueCategory = prvalue +# 1420| getQualifier(): [ReuseExpr] reuse of temporary object +# 1420| Type = [Struct] String +# 1420| ValueCategory = xvalue # 1420| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 1420| Type = [Struct] String # 1420| ValueCategory = lvalue @@ -11725,6 +11821,12 @@ ir.cpp: # 1421| getArgument(0).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 1421| Type = [PointerType] const char * # 1421| ValueCategory = prvalue +# 1421| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1421| Type = [VoidType] void +# 1421| ValueCategory = prvalue +# 1421| getQualifier(): [ReuseExpr] reuse of temporary object +# 1421| Type = [Struct] String +# 1421| ValueCategory = xvalue # 1421| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 1421| Type = [Struct] String # 1421| ValueCategory = lvalue @@ -11735,6 +11837,12 @@ ir.cpp: # 1422| getQualifier(): [ConstructorCall] call to String # 1422| Type = [VoidType] void # 1422| ValueCategory = prvalue +# 1422| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1422| Type = [VoidType] void +# 1422| ValueCategory = prvalue +# 1422| getQualifier(): [ReuseExpr] reuse of temporary object +# 1422| Type = [Struct] String +# 1422| ValueCategory = xvalue # 1422| getQualifier().getFullyConverted(): [CStyleCast] (const String)... # 1422| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion # 1422| Type = [SpecifiedType] const String @@ -11749,6 +11857,12 @@ ir.cpp: # 1423| getQualifier(): [FunctionCall] call to returnValue # 1423| Type = [Struct] String # 1423| ValueCategory = prvalue +# 1423| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1423| Type = [VoidType] void +# 1423| ValueCategory = prvalue +# 1423| getQualifier(): [ReuseExpr] reuse of temporary object +# 1423| Type = [Struct] String +# 1423| ValueCategory = xvalue # 1423| getQualifier().getFullyConverted(): [CStyleCast] (const String)... # 1423| Conversion = [PrvalueAdjustmentConversion] prvalue adjustment conversion # 1423| Type = [SpecifiedType] const String @@ -11760,6 +11874,12 @@ ir.cpp: # 1425| getExpr(): [FunctionCall] call to defaultConstruct # 1425| Type = [Struct] String # 1425| ValueCategory = prvalue +# 1425| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1425| Type = [VoidType] void +# 1425| ValueCategory = prvalue +# 1425| getQualifier(): [ReuseExpr] reuse of temporary object +# 1425| Type = [Struct] String +# 1425| ValueCategory = xvalue # 1425| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object # 1425| Type = [Struct] String # 1425| ValueCategory = prvalue @@ -11827,6 +11947,12 @@ ir.cpp: # 1433| getArgument(0): [VariableAccess] d # 1433| Type = [Class] destructor_only # 1433| ValueCategory = prvalue(load) +# 1433| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only +# 1433| Type = [VoidType] void +# 1433| ValueCategory = prvalue +# 1433| getQualifier(): [ReuseExpr] reuse of temporary object +# 1433| Type = [Class] destructor_only +# 1433| ValueCategory = xvalue # 1433| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 1433| Type = [Class] destructor_only # 1433| ValueCategory = lvalue @@ -11838,6 +11964,12 @@ ir.cpp: # 1434| Type = [Class] destructor_only # 1434| Value = [Literal] 0 # 1434| ValueCategory = prvalue +# 1434| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only +# 1434| Type = [VoidType] void +# 1434| ValueCategory = prvalue +# 1434| getQualifier(): [ReuseExpr] reuse of temporary object +# 1434| Type = [Class] destructor_only +# 1434| ValueCategory = xvalue # 1434| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 1434| Type = [Class] destructor_only # 1434| ValueCategory = prvalue(load) @@ -11848,6 +11980,12 @@ ir.cpp: # 1435| getQualifier(): [FunctionCall] call to returnValue # 1435| Type = [Class] destructor_only # 1435| ValueCategory = prvalue +# 1435| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only +# 1435| Type = [VoidType] void +# 1435| ValueCategory = prvalue +# 1435| getQualifier(): [ReuseExpr] reuse of temporary object +# 1435| Type = [Class] destructor_only +# 1435| ValueCategory = xvalue # 1435| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 1435| Type = [Class] destructor_only # 1435| ValueCategory = prvalue(load) @@ -11855,6 +11993,12 @@ ir.cpp: # 1437| getExpr(): [FunctionCall] call to defaultConstruct # 1437| Type = [Class] destructor_only # 1437| ValueCategory = prvalue +# 1437| getImplicitDestructorCall(0): [DestructorCall] call to ~destructor_only +# 1437| Type = [VoidType] void +# 1437| ValueCategory = prvalue +# 1437| getQualifier(): [ReuseExpr] reuse of temporary object +# 1437| Type = [Class] destructor_only +# 1437| ValueCategory = xvalue # 1437| getExpr().getFullyConverted(): [TemporaryObjectExpr] temporary object # 1437| Type = [Class] destructor_only # 1437| ValueCategory = prvalue @@ -16229,6 +16373,12 @@ ir.cpp: # 2068| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2068| Type = [Struct] TernaryNonPodObj # 2068| ValueCategory = prvalue(load) +# 2068| getImplicitDestructorCall(0): [DestructorCall] call to ~TernaryNonPodObj +# 2068| Type = [VoidType] void +# 2068| ValueCategory = prvalue +# 2068| getQualifier(): [ReuseExpr] reuse of temporary object +# 2068| Type = [Struct] TernaryNonPodObj +# 2068| ValueCategory = xvalue # 2068| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 2068| Type = [LValueReferenceType] const TernaryNonPodObj & # 2068| ValueCategory = prvalue @@ -16267,6 +16417,12 @@ ir.cpp: # 2069| getElse().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2069| Type = [Struct] TernaryNonPodObj # 2069| ValueCategory = prvalue(load) +# 2069| getImplicitDestructorCall(0): [DestructorCall] call to ~TernaryNonPodObj +# 2069| Type = [VoidType] void +# 2069| ValueCategory = prvalue +# 2069| getQualifier(): [ReuseExpr] reuse of temporary object +# 2069| Type = [Struct] TernaryNonPodObj +# 2069| ValueCategory = xvalue # 2069| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 2069| Type = [LValueReferenceType] const TernaryNonPodObj & # 2069| ValueCategory = prvalue @@ -16312,6 +16468,12 @@ ir.cpp: # 2070| getArgument(0): [ConstructorCall] call to TernaryNonPodObj # 2070| Type = [VoidType] void # 2070| ValueCategory = prvalue +# 2070| getImplicitDestructorCall(0): [DestructorCall] call to ~TernaryNonPodObj +# 2070| Type = [VoidType] void +# 2070| ValueCategory = prvalue +# 2070| getQualifier(): [ReuseExpr] reuse of temporary object +# 2070| Type = [Struct] TernaryNonPodObj +# 2070| ValueCategory = xvalue # 2070| getQualifier().getFullyConverted(): [ParenthesisExpr] (...) # 2070| Type = [Struct] TernaryNonPodObj # 2070| ValueCategory = lvalue @@ -18767,6 +18929,12 @@ smart_ptr.cpp: # 12| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) # 12| Type = [LValueReferenceType] unique_ptr<int, default_delete<int>> & # 12| ValueCategory = prvalue +# 12| getImplicitDestructorCall(0): [DestructorCall] call to ~unique_ptr +# 12| Type = [VoidType] void +# 12| ValueCategory = prvalue +# 12| getQualifier(): [ReuseExpr] reuse of temporary object +# 12| Type = [ClassTemplateInstantiation] unique_ptr<int, default_delete<int>> +# 12| ValueCategory = xvalue # 12| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 12| Type = [ClassTemplateInstantiation] unique_ptr<int, default_delete<int>> # 12| ValueCategory = lvalue @@ -18816,6 +18984,12 @@ smart_ptr.cpp: # 19| Conversion = [GlvalueConversion] glvalue conversion # 19| Type = [SpecifiedType] const shared_ptr<float> # 19| ValueCategory = lvalue +# 19| getImplicitDestructorCall(0): [DestructorCall] call to ~shared_ptr +# 19| Type = [VoidType] void +# 19| ValueCategory = prvalue +# 19| getQualifier(): [ReuseExpr] reuse of temporary object +# 19| Type = [ClassTemplateInstantiation] shared_ptr<float> +# 19| ValueCategory = xvalue # 19| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 19| Type = [ClassTemplateInstantiation] shared_ptr<float> # 19| ValueCategory = lvalue @@ -18869,6 +19043,12 @@ smart_ptr.cpp: # 31| Conversion = [GlvalueConversion] glvalue conversion # 31| Type = [SpecifiedType] const shared_ptr<const int> # 31| ValueCategory = lvalue +# 31| getImplicitDestructorCall(0): [DestructorCall] call to ~shared_ptr +# 31| Type = [VoidType] void +# 31| ValueCategory = prvalue +# 31| getQualifier(): [ReuseExpr] reuse of temporary object +# 31| Type = [ClassTemplateInstantiation] shared_ptr<const int> +# 31| ValueCategory = xvalue # 31| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 31| Type = [ClassTemplateInstantiation] shared_ptr<const int> # 31| ValueCategory = lvalue @@ -18892,6 +19072,12 @@ smart_ptr.cpp: # 35| Conversion = [GlvalueConversion] glvalue conversion # 35| Type = [SpecifiedType] const shared_ptr<int *const> # 35| ValueCategory = lvalue +# 35| getImplicitDestructorCall(0): [DestructorCall] call to ~shared_ptr +# 35| Type = [VoidType] void +# 35| ValueCategory = prvalue +# 35| getQualifier(): [ReuseExpr] reuse of temporary object +# 35| Type = [ClassTemplateInstantiation] shared_ptr<int *const> +# 35| ValueCategory = xvalue # 35| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 35| Type = [ClassTemplateInstantiation] shared_ptr<int *const> # 35| ValueCategory = lvalue @@ -18915,6 +19101,12 @@ smart_ptr.cpp: # 39| Conversion = [GlvalueConversion] glvalue conversion # 39| Type = [SpecifiedType] const shared_ptr<shared_ptr<const int>> # 39| ValueCategory = lvalue +# 39| getImplicitDestructorCall(0): [DestructorCall] call to ~shared_ptr +# 39| Type = [VoidType] void +# 39| ValueCategory = prvalue +# 39| getQualifier(): [ReuseExpr] reuse of temporary object +# 39| Type = [ClassTemplateInstantiation] shared_ptr<shared_ptr<const int>> +# 39| ValueCategory = xvalue # 39| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 39| Type = [ClassTemplateInstantiation] shared_ptr<shared_ptr<const int>> # 39| ValueCategory = lvalue @@ -18938,6 +19130,12 @@ smart_ptr.cpp: # 43| Conversion = [GlvalueConversion] glvalue conversion # 43| Type = [SpecifiedType] const shared_ptr<const shared_ptr<int>> # 43| ValueCategory = lvalue +# 43| getImplicitDestructorCall(0): [DestructorCall] call to ~shared_ptr +# 43| Type = [VoidType] void +# 43| ValueCategory = prvalue +# 43| getQualifier(): [ReuseExpr] reuse of temporary object +# 43| Type = [ClassTemplateInstantiation] shared_ptr<const shared_ptr<int>> +# 43| ValueCategory = xvalue # 43| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 43| Type = [ClassTemplateInstantiation] shared_ptr<const shared_ptr<int>> # 43| ValueCategory = lvalue @@ -18961,6 +19159,12 @@ smart_ptr.cpp: # 47| Conversion = [GlvalueConversion] glvalue conversion # 47| Type = [SpecifiedType] const shared_ptr<const shared_ptr<const int>> # 47| ValueCategory = lvalue +# 47| getImplicitDestructorCall(0): [DestructorCall] call to ~shared_ptr +# 47| Type = [VoidType] void +# 47| ValueCategory = prvalue +# 47| getQualifier(): [ReuseExpr] reuse of temporary object +# 47| Type = [ClassTemplateInstantiation] shared_ptr<const shared_ptr<const int>> +# 47| ValueCategory = xvalue # 47| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 47| Type = [ClassTemplateInstantiation] shared_ptr<const shared_ptr<const int>> # 47| ValueCategory = lvalue diff --git a/cpp/ql/test/successor-tests/conditional_destructors/cfg.expected b/cpp/ql/test/successor-tests/conditional_destructors/cfg.expected index a47bcaf6fbf..006ed12e35f 100644 --- a/cpp/ql/test/successor-tests/conditional_destructors/cfg.expected +++ b/cpp/ql/test/successor-tests/conditional_destructors/cfg.expected @@ -1,175 +1,189 @@ -| C1::C1 | false | 237 | 237 | C1 | -| C1::C1 | false | 359 | 359 | C1 | -| C1::C1 | false | 363 | 363 | C1 | -| C1::C1 | false | 398 | 398 | ExprStmt | -| C1::C1 | false | 400 | 400 | this | -| C1::C1 | false | 401 | 401 | val | -| C1::C1 | false | 403 | 403 | x | -| C1::C1 | false | 405 | 405 | ... = ... | -| C1::C1 | false | 407 | 407 | return ... | -| C1::C1 | false | 409 | 409 | { ... } | -| C1::C1 | true | 398 | 403 | | -| C1::C1 | true | 400 | 401 | | -| C1::C1 | true | 401 | 405 | | -| C1::C1 | true | 403 | 400 | | -| C1::C1 | true | 405 | 407 | | -| C1::C1 | true | 407 | 237 | | -| C1::C1 | true | 409 | 398 | | -| C1::operator= | false | 348 | 348 | operator= | -| C1::operator= | false | 355 | 355 | operator= | -| C1::operator== | false | 226 | 226 | operator== | -| C1::operator== | false | 376 | 376 | return ... | -| C1::operator== | false | 378 | 378 | this | -| C1::operator== | false | 379 | 379 | val | -| C1::operator== | false | 382 | 382 | other | -| C1::operator== | false | 384 | 384 | (reference dereference) | -| C1::operator== | false | 385 | 385 | val | -| C1::operator== | false | 387 | 387 | ... == ... | -| C1::operator== | false | 389 | 389 | { ... } | -| C1::operator== | true | 376 | 378 | | -| C1::operator== | true | 378 | 379 | | -| C1::operator== | true | 379 | 382 | | -| C1::operator== | true | 382 | 385 | | -| C1::operator== | true | 385 | 387 | | -| C1::operator== | true | 387 | 226 | | -| C1::operator== | true | 389 | 376 | | -| C2::C2 | false | 170 | 170 | C2 | -| C2::C2 | false | 288 | 288 | C2 | -| C2::C2 | false | 334 | 334 | ExprStmt | -| C2::C2 | false | 336 | 336 | this | -| C2::C2 | false | 337 | 337 | val | -| C2::C2 | false | 339 | 339 | x | -| C2::C2 | false | 341 | 341 | ... = ... | -| C2::C2 | false | 343 | 343 | return ... | -| C2::C2 | false | 345 | 345 | { ... } | -| C2::C2 | true | 334 | 339 | | -| C2::C2 | true | 336 | 337 | | -| C2::C2 | true | 337 | 341 | | -| C2::C2 | true | 339 | 336 | | -| C2::C2 | true | 341 | 343 | | -| C2::C2 | true | 343 | 170 | | -| C2::C2 | true | 345 | 334 | | -| C2::operator= | false | 282 | 282 | operator= | -| C2::operator== | false | 159 | 159 | operator== | -| C2::operator== | false | 301 | 301 | return ... | -| C2::operator== | false | 303 | 303 | this | -| C2::operator== | false | 304 | 304 | val | -| C2::operator== | false | 307 | 307 | other | -| C2::operator== | false | 309 | 309 | (reference dereference) | -| C2::operator== | false | 310 | 310 | val | -| C2::operator== | false | 312 | 312 | ... == ... | -| C2::operator== | false | 314 | 314 | { ... } | -| C2::operator== | true | 301 | 303 | | -| C2::operator== | true | 303 | 304 | | -| C2::operator== | true | 304 | 307 | | -| C2::operator== | true | 307 | 310 | | -| C2::operator== | true | 310 | 312 | | -| C2::operator== | true | 312 | 159 | | -| C2::operator== | true | 314 | 301 | | -| C2::~C2 | false | 316 | 316 | ~C2 | -| C2::~C2 | false | 321 | 321 | ; | -| C2::~C2 | false | 323 | 323 | return ... | -| C2::~C2 | false | 325 | 325 | { ... } | -| C2::~C2 | true | 321 | 323 | | -| C2::~C2 | true | 323 | 316 | | -| C2::~C2 | true | 325 | 321 | | -| __va_list_tag::operator= | false | 57 | 57 | operator= | -| __va_list_tag::operator= | false | 63 | 63 | operator= | -| f1 | false | 215 | 215 | f1 | -| f1 | false | 220 | 220 | if (...) ... | -| f1 | false | 234 | 234 | call to operator== | -| f1 | false | 235 | 235 | call to C1 | -| f1 | false | 240 | 240 | 1 | -| f1 | false | 241 | 241 | temporary object | -| f1 | false | 242 | 242 | (const C1)... | -| f1 | false | 243 | 243 | call to C1 | -| f1 | false | 247 | 247 | 2 | -| f1 | false | 248 | 248 | temporary object | -| f1 | false | 249 | 249 | (const C1)... | -| f1 | false | 250 | 250 | (reference to) | -| f1 | false | 251 | 251 | ; | -| f1 | false | 253 | 253 | { ... } | -| f1 | false | 255 | 255 | if (...) ... | -| f1 | false | 258 | 258 | call to operator== | -| f1 | false | 259 | 259 | call to C1 | -| f1 | false | 263 | 263 | 3 | -| f1 | false | 264 | 264 | temporary object | -| f1 | false | 265 | 265 | (const C1)... | -| f1 | false | 266 | 266 | call to C1 | -| f1 | false | 270 | 270 | 3 | -| f1 | false | 271 | 271 | temporary object | -| f1 | false | 272 | 272 | (const C1)... | -| f1 | false | 273 | 273 | (reference to) | -| f1 | false | 274 | 274 | ; | -| f1 | false | 276 | 276 | { ... } | -| f1 | false | 278 | 278 | return ... | -| f1 | false | 280 | 280 | { ... } | -| f1 | true | 220 | 247 | | -| f1 | true | 234 | 253 | T | -| f1 | true | 234 | 255 | F | -| f1 | true | 235 | 234 | | -| f1 | true | 240 | 235 | | -| f1 | true | 243 | 240 | | -| f1 | true | 247 | 243 | | -| f1 | true | 251 | 255 | | -| f1 | true | 253 | 251 | | -| f1 | true | 255 | 270 | | -| f1 | true | 258 | 276 | T | -| f1 | true | 258 | 278 | F | -| f1 | true | 259 | 258 | | -| f1 | true | 263 | 259 | | -| f1 | true | 266 | 263 | | -| f1 | true | 270 | 266 | | -| f1 | true | 274 | 278 | | -| f1 | true | 276 | 274 | | -| f1 | true | 278 | 215 | | -| f1 | true | 280 | 220 | | -| f2 | false | 148 | 148 | f2 | -| f2 | false | 153 | 153 | if (...) ... | -| f2 | false | 167 | 167 | call to operator== | -| f2 | false | 168 | 168 | call to C2 | -| f2 | false | 173 | 173 | 1 | -| f2 | false | 174 | 174 | temporary object | -| f2 | false | 175 | 175 | (const C2)... | -| f2 | false | 176 | 176 | call to C2 | -| f2 | false | 180 | 180 | 2 | -| f2 | false | 181 | 181 | temporary object | -| f2 | false | 182 | 182 | (const C2)... | -| f2 | false | 183 | 183 | (reference to) | -| f2 | false | 184 | 184 | ; | -| f2 | false | 186 | 186 | { ... } | -| f2 | false | 188 | 188 | if (...) ... | -| f2 | false | 191 | 191 | call to operator== | -| f2 | false | 192 | 192 | call to C2 | -| f2 | false | 196 | 196 | 3 | -| f2 | false | 197 | 197 | temporary object | +| C1::C1 | false | 305 | 305 | C1 | +| C1::C1 | false | 473 | 473 | C1 | +| C1::C1 | false | 477 | 477 | C1 | +| C1::C1 | false | 521 | 521 | ExprStmt | +| C1::C1 | false | 524 | 524 | this | +| C1::C1 | false | 526 | 526 | val | +| C1::C1 | false | 529 | 529 | x | +| C1::C1 | false | 532 | 532 | ... = ... | +| C1::C1 | false | 535 | 535 | return ... | +| C1::C1 | false | 538 | 538 | { ... } | +| C1::C1 | true | 521 | 529 | | +| C1::C1 | true | 524 | 526 | | +| C1::C1 | true | 526 | 532 | | +| C1::C1 | true | 529 | 524 | | +| C1::C1 | true | 532 | 535 | | +| C1::C1 | true | 535 | 305 | | +| C1::C1 | true | 538 | 521 | | +| C1::operator= | false | 462 | 462 | operator= | +| C1::operator= | false | 469 | 469 | operator= | +| C1::operator== | false | 292 | 292 | operator== | +| C1::operator== | false | 491 | 491 | return ... | +| C1::operator== | false | 494 | 494 | this | +| C1::operator== | false | 496 | 496 | val | +| C1::operator== | false | 500 | 500 | other | +| C1::operator== | false | 503 | 503 | (reference dereference) | +| C1::operator== | false | 505 | 505 | val | +| C1::operator== | false | 508 | 508 | ... == ... | +| C1::operator== | false | 511 | 511 | { ... } | +| C1::operator== | true | 491 | 494 | | +| C1::operator== | true | 494 | 496 | | +| C1::operator== | true | 496 | 500 | | +| C1::operator== | true | 500 | 505 | | +| C1::operator== | true | 505 | 508 | | +| C1::operator== | true | 508 | 292 | | +| C1::operator== | true | 511 | 491 | | +| C2::C2 | false | 189 | 189 | C2 | +| C2::C2 | false | 385 | 385 | C2 | +| C2::C2 | false | 442 | 442 | ExprStmt | +| C2::C2 | false | 445 | 445 | this | +| C2::C2 | false | 447 | 447 | val | +| C2::C2 | false | 450 | 450 | x | +| C2::C2 | false | 453 | 453 | ... = ... | +| C2::C2 | false | 456 | 456 | return ... | +| C2::C2 | false | 459 | 459 | { ... } | +| C2::C2 | true | 442 | 450 | | +| C2::C2 | true | 445 | 447 | | +| C2::C2 | true | 447 | 453 | | +| C2::C2 | true | 450 | 445 | | +| C2::C2 | true | 453 | 456 | | +| C2::C2 | true | 456 | 189 | | +| C2::C2 | true | 459 | 442 | | +| C2::operator= | false | 379 | 379 | operator= | +| C2::operator== | false | 176 | 176 | operator== | +| C2::operator== | false | 399 | 399 | return ... | +| C2::operator== | false | 402 | 402 | this | +| C2::operator== | false | 404 | 404 | val | +| C2::operator== | false | 408 | 408 | other | +| C2::operator== | false | 411 | 411 | (reference dereference) | +| C2::operator== | false | 413 | 413 | val | +| C2::operator== | false | 416 | 416 | ... == ... | +| C2::operator== | false | 419 | 419 | { ... } | +| C2::operator== | true | 399 | 402 | | +| C2::operator== | true | 402 | 404 | | +| C2::operator== | true | 404 | 408 | | +| C2::operator== | true | 408 | 413 | | +| C2::operator== | true | 413 | 416 | | +| C2::operator== | true | 416 | 176 | | +| C2::operator== | true | 419 | 399 | | +| C2::~C2 | false | 267 | 267 | ~C2 | +| C2::~C2 | false | 426 | 426 | ; | +| C2::~C2 | false | 429 | 429 | return ... | +| C2::~C2 | false | 432 | 432 | { ... } | +| C2::~C2 | true | 426 | 429 | | +| C2::~C2 | true | 429 | 267 | | +| C2::~C2 | true | 432 | 426 | | +| __va_list_tag::operator= | false | 66 | 66 | operator= | +| __va_list_tag::operator= | false | 72 | 72 | operator= | +| f1 | false | 280 | 280 | f1 | +| f1 | false | 286 | 286 | if (...) ... | +| f1 | false | 301 | 301 | call to operator== | +| f1 | false | 303 | 303 | call to C1 | +| f1 | false | 310 | 310 | 1 | +| f1 | false | 312 | 312 | temporary object | +| f1 | false | 314 | 314 | (const C1)... | +| f1 | false | 316 | 316 | call to C1 | +| f1 | false | 322 | 322 | 2 | +| f1 | false | 324 | 324 | temporary object | +| f1 | false | 326 | 326 | (const C1)... | +| f1 | false | 328 | 328 | (reference to) | +| f1 | false | 330 | 330 | ; | +| f1 | false | 333 | 333 | { ... } | +| f1 | false | 336 | 336 | if (...) ... | +| f1 | false | 340 | 340 | call to operator== | +| f1 | false | 342 | 342 | call to C1 | +| f1 | false | 348 | 348 | 3 | +| f1 | false | 350 | 350 | temporary object | +| f1 | false | 352 | 352 | (const C1)... | +| f1 | false | 354 | 354 | call to C1 | +| f1 | false | 360 | 360 | 3 | +| f1 | false | 362 | 362 | temporary object | +| f1 | false | 364 | 364 | (const C1)... | +| f1 | false | 366 | 366 | (reference to) | +| f1 | false | 368 | 368 | ; | +| f1 | false | 371 | 371 | { ... } | +| f1 | false | 374 | 374 | return ... | +| f1 | false | 377 | 377 | { ... } | +| f1 | true | 286 | 322 | | +| f1 | true | 301 | 333 | T | +| f1 | true | 301 | 336 | F | +| f1 | true | 303 | 301 | | +| f1 | true | 310 | 303 | | +| f1 | true | 316 | 310 | | +| f1 | true | 322 | 316 | | +| f1 | true | 330 | 336 | | +| f1 | true | 333 | 330 | | +| f1 | true | 336 | 360 | | +| f1 | true | 340 | 371 | T | +| f1 | true | 340 | 374 | F | +| f1 | true | 342 | 340 | | +| f1 | true | 348 | 342 | | +| f1 | true | 354 | 348 | | +| f1 | true | 360 | 354 | | +| f1 | true | 368 | 374 | | +| f1 | true | 371 | 368 | | +| f1 | true | 374 | 280 | | +| f1 | true | 377 | 286 | | +| f2 | false | 164 | 164 | f2 | +| f2 | false | 170 | 170 | if (...) ... | +| f2 | false | 185 | 185 | call to operator== | +| f2 | false | 187 | 187 | call to C2 | +| f2 | false | 194 | 194 | 1 | +| f2 | false | 196 | 196 | temporary object | | f2 | false | 198 | 198 | (const C2)... | -| f2 | false | 199 | 199 | call to C2 | -| f2 | false | 203 | 203 | 3 | -| f2 | false | 204 | 204 | temporary object | -| f2 | false | 205 | 205 | (const C2)... | -| f2 | false | 206 | 206 | (reference to) | -| f2 | false | 207 | 207 | ; | -| f2 | false | 209 | 209 | { ... } | -| f2 | false | 211 | 211 | return ... | -| f2 | false | 213 | 213 | { ... } | -| f2 | true | 153 | 180 | | -| f2 | true | 167 | 186 | T | -| f2 | true | 167 | 188 | F | -| f2 | true | 168 | 167 | | -| f2 | true | 173 | 168 | | -| f2 | true | 176 | 173 | | -| f2 | true | 180 | 176 | | -| f2 | true | 184 | 188 | | -| f2 | true | 186 | 184 | | -| f2 | true | 188 | 203 | | -| f2 | true | 191 | 209 | T | -| f2 | true | 191 | 211 | F | -| f2 | true | 192 | 191 | | -| f2 | true | 196 | 192 | | -| f2 | true | 199 | 196 | | -| f2 | true | 203 | 199 | | -| f2 | true | 207 | 211 | | -| f2 | true | 209 | 207 | | -| f2 | true | 211 | 148 | | -| f2 | true | 213 | 153 | | +| f2 | false | 200 | 200 | call to C2 | +| f2 | false | 206 | 206 | 2 | +| f2 | false | 208 | 208 | temporary object | +| f2 | false | 210 | 210 | (const C2)... | +| f2 | false | 212 | 212 | (reference to) | +| f2 | false | 214 | 214 | ; | +| f2 | false | 217 | 217 | { ... } | +| f2 | false | 220 | 220 | if (...) ... | +| f2 | false | 224 | 224 | call to operator== | +| f2 | false | 226 | 226 | call to C2 | +| f2 | false | 232 | 232 | 3 | +| f2 | false | 234 | 234 | temporary object | +| f2 | false | 236 | 236 | (const C2)... | +| f2 | false | 238 | 238 | call to C2 | +| f2 | false | 244 | 244 | 3 | +| f2 | false | 246 | 246 | temporary object | +| f2 | false | 248 | 248 | (const C2)... | +| f2 | false | 250 | 250 | (reference to) | +| f2 | false | 252 | 252 | ; | +| f2 | false | 255 | 255 | { ... } | +| f2 | false | 258 | 258 | return ... | +| f2 | false | 261 | 261 | { ... } | +| f2 | false | 264 | 264 | reuse of temporary object | +| f2 | false | 266 | 266 | call to ~C2 | +| f2 | false | 269 | 269 | reuse of temporary object | +| f2 | false | 271 | 271 | call to ~C2 | +| f2 | false | 273 | 273 | reuse of temporary object | +| f2 | false | 275 | 275 | call to ~C2 | +| f2 | false | 277 | 277 | reuse of temporary object | +| f2 | false | 279 | 279 | call to ~C2 | +| f2 | true | 170 | 206 | | +| f2 | true | 185 | 217 | T | +| f2 | true | 185 | 220 | F | +| f2 | true | 187 | 185 | | +| f2 | true | 194 | 187 | | +| f2 | true | 200 | 194 | | +| f2 | true | 206 | 200 | | +| f2 | true | 214 | 220 | | +| f2 | true | 217 | 214 | | +| f2 | true | 220 | 244 | | +| f2 | true | 224 | 255 | T | +| f2 | true | 224 | 258 | F | +| f2 | true | 226 | 224 | | +| f2 | true | 232 | 226 | | +| f2 | true | 238 | 232 | | +| f2 | true | 244 | 238 | | +| f2 | true | 252 | 258 | | +| f2 | true | 255 | 252 | | +| f2 | true | 258 | 164 | | +| f2 | true | 261 | 170 | | +| f2 | true | 264 | 266 | | +| f2 | true | 269 | 271 | | +| f2 | true | 271 | 264 | | +| f2 | true | 273 | 275 | | +| f2 | true | 277 | 279 | | +| f2 | true | 279 | 273 | | From 3a7b80da47417183f73fe68b67ba0c647ab65c8f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 20 Mar 2024 10:12:29 +0000 Subject: [PATCH 285/309] C++: Respond to review comments. --- .../semmle/code/cpp/controlflow/IRGuards.qll | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index 1416fb2cd8a..ee419dd7024 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -134,7 +134,7 @@ class GuardCondition extends Expr { /** * Holds if (determined by this guard) `e < k` must be `isLessThan` in `block`. - * If `isLessThan = false` then this implies `left >= k`. + * If `isLessThan = false` then this implies `e >= k`. */ cached predicate ensuresLt(Expr e, int k, BasicBlock block, boolean isLessThan) { none() } @@ -256,7 +256,6 @@ private class GuardConditionFromIR extends GuardCondition { this.controlsBlock(controlled, v) } - /** Holds if (determined by this guard) `left < right + k` evaluates to `isLessThan` if this expression evaluates to `testIsTrue`. */ override predicate comparesLt(Expr left, Expr right, int k, boolean isLessThan, boolean testIsTrue) { exists(Instruction li, Instruction ri | li.getUnconvertedResultExpression() = left and @@ -265,10 +264,6 @@ private class GuardConditionFromIR extends GuardCondition { ) } - /** - * Holds if (determined by this guard) `e < k` evaluates to `isLessThan` if - * this expression evaluates to `value`. - */ override predicate comparesLt(Expr e, int k, boolean isLessThan, AbstractValue value) { exists(Instruction i | i.getUnconvertedResultExpression() = e and @@ -276,10 +271,6 @@ private class GuardConditionFromIR extends GuardCondition { ) } - /** - * Holds if (determined by this guard) `left < right + k` must be `isLessThan` in `block`. - * If `isLessThan = false` then this implies `left >= right + k`. - */ override predicate ensuresLt(Expr left, Expr right, int k, BasicBlock block, boolean isLessThan) { exists(Instruction li, Instruction ri, boolean testIsTrue | li.getUnconvertedResultExpression() = left and @@ -289,10 +280,6 @@ private class GuardConditionFromIR extends GuardCondition { ) } - /** - * Holds if (determined by this guard) `e < k` must be `isLessThan` in `block`. - * If `isLessThan = false` then this implies `e >= k`. - */ override predicate ensuresLt(Expr e, int k, BasicBlock block, boolean isLessThan) { exists(Instruction i, AbstractValue value | i.getUnconvertedResultExpression() = e and @@ -301,7 +288,6 @@ private class GuardConditionFromIR extends GuardCondition { ) } - /** Holds if (determined by this guard) `left == right + k` evaluates to `areEqual` if this expression evaluates to `testIsTrue`. */ override predicate comparesEq(Expr left, Expr right, int k, boolean areEqual, boolean testIsTrue) { exists(Instruction li, Instruction ri | li.getUnconvertedResultExpression() = left and @@ -310,10 +296,6 @@ private class GuardConditionFromIR extends GuardCondition { ) } - /** - * Holds if (determined by this guard) `left == right + k` must be `areEqual` in `block`. - * If `areEqual = false` then this implies `left != right + k`. - */ override predicate ensuresEq(Expr left, Expr right, int k, BasicBlock block, boolean areEqual) { exists(Instruction li, Instruction ri, boolean testIsTrue | li.getUnconvertedResultExpression() = left and From 3fa7532b4324eae5b067f9f236a3c5c87b44f05f Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igfoo@github.com> Date: Tue, 19 Mar 2024 13:16:45 +0000 Subject: [PATCH 286/309] Kotlin 2: Accept more test changes --- .../library-tests/exprs/exprs.expected | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 13dfc71b6c3..63adc378aeb 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -68,16 +68,16 @@ | delegatedProperties.kt:18:12:18:33 | Map<String,? extends Object> | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:18:12:18:33 | Object | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:18:12:18:33 | String | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | PropertyRefExpr | -| delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | PropertyRefExpr | +| delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:9:19:51 | <get-varResource1> | PropertyRefExpr | +| delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:9:19:51 | <set-varResource1> | PropertyRefExpr | | delegatedProperties.kt:19:34:19:51 | <get-varResource1>(...) | delegatedProperties.kt:19:34:19:51 | get | MethodCall | | delegatedProperties.kt:19:34:19:51 | <get-varResource1>(...) | delegatedProperties.kt:19:34:19:51 | get | MethodCall | | delegatedProperties.kt:19:34:19:51 | <set-varResource1>(...) | delegatedProperties.kt:19:34:19:51 | set | MethodCall | | delegatedProperties.kt:19:34:19:51 | <set-varResource1>(...) | delegatedProperties.kt:19:34:19:51 | set | MethodCall | -| delegatedProperties.kt:19:34:19:51 | Integer | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | TypeAccess | -| delegatedProperties.kt:19:34:19:51 | Integer | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | TypeAccess | -| delegatedProperties.kt:19:34:19:51 | KMutableProperty0<Integer> | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | TypeAccess | -| delegatedProperties.kt:19:34:19:51 | KMutableProperty0<Integer> | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | Integer | delegatedProperties.kt:19:9:19:51 | <get-varResource1> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | Integer | delegatedProperties.kt:19:9:19:51 | <set-varResource1> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | KMutableProperty0<Integer> | delegatedProperties.kt:19:9:19:51 | <get-varResource1> | TypeAccess | +| delegatedProperties.kt:19:34:19:51 | KMutableProperty0<Integer> | delegatedProperties.kt:19:9:19:51 | <set-varResource1> | TypeAccess | | delegatedProperties.kt:19:34:19:51 | Object | delegatedProperties.kt:19:34:19:51 | get | TypeAccess | | delegatedProperties.kt:19:34:19:51 | Object | delegatedProperties.kt:19:34:19:51 | get | TypeAccess | | delegatedProperties.kt:19:34:19:51 | Object | delegatedProperties.kt:19:34:19:51 | set | TypeAccess | @@ -87,19 +87,19 @@ | delegatedProperties.kt:19:34:19:51 | a0 | delegatedProperties.kt:19:34:19:51 | set | VarAccess | | delegatedProperties.kt:19:34:19:51 | get(...) | delegatedProperties.kt:19:34:19:51 | invoke | MethodCall | | delegatedProperties.kt:19:34:19:51 | get(...) | delegatedProperties.kt:19:34:19:51 | invoke | MethodCall | -| delegatedProperties.kt:19:34:19:51 | getValue(...) | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | MethodCall | +| delegatedProperties.kt:19:34:19:51 | getValue(...) | delegatedProperties.kt:19:9:19:51 | <get-varResource1> | MethodCall | | delegatedProperties.kt:19:34:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:19:34:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | get | ClassInstanceExpr | | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | get | ClassInstanceExpr | | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | set | ClassInstanceExpr | | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | set | ClassInstanceExpr | -| delegatedProperties.kt:19:34:19:51 | setValue(...) | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | MethodCall | +| delegatedProperties.kt:19:34:19:51 | setValue(...) | delegatedProperties.kt:19:9:19:51 | <set-varResource1> | MethodCall | | delegatedProperties.kt:19:34:19:51 | this | delegatedProperties.kt:19:34:19:51 | invoke | ThisAccess | | delegatedProperties.kt:19:34:19:51 | this | delegatedProperties.kt:19:34:19:51 | invoke | ThisAccess | | delegatedProperties.kt:19:34:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | -| delegatedProperties.kt:19:34:19:51 | varResource1$delegate | delegatedProperties.kt:19:34:19:51 | <get-varResource1> | VarAccess | -| delegatedProperties.kt:19:34:19:51 | varResource1$delegate | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | VarAccess | +| delegatedProperties.kt:19:34:19:51 | varResource1$delegate | delegatedProperties.kt:19:9:19:51 | <get-varResource1> | VarAccess | +| delegatedProperties.kt:19:34:19:51 | varResource1$delegate | delegatedProperties.kt:19:9:19:51 | <set-varResource1> | VarAccess | | delegatedProperties.kt:19:34:19:51 | ResourceDelegate | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:19:34:19:51 | value | delegatedProperties.kt:19:34:19:51 | <set-varResource1> | VarAccess | @@ -112,19 +112,19 @@ | delegatedProperties.kt:21:9:21:24 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:21:9:21:24 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:21:24:21:24 | 2 | delegatedProperties.kt:18:5:40:5 | fn | IntegerLiteral | -| delegatedProperties.kt:23:29:23:31 | ...::... | delegatedProperties.kt:23:29:23:31 | <get-name> | PropertyRefExpr | +| delegatedProperties.kt:23:29:23:31 | ...::... | delegatedProperties.kt:23:9:23:31 | <get-name> | PropertyRefExpr | | delegatedProperties.kt:23:29:23:31 | <get-name>(...) | delegatedProperties.kt:23:29:23:31 | get | MethodCall | -| delegatedProperties.kt:23:29:23:31 | KProperty0<String> | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | -| delegatedProperties.kt:23:29:23:31 | MapAccessorsKt | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | -| delegatedProperties.kt:23:29:23:31 | Object | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | KProperty0<String> | delegatedProperties.kt:23:9:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | MapAccessorsKt | delegatedProperties.kt:23:9:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | Object | delegatedProperties.kt:23:9:23:31 | <get-name> | TypeAccess | | delegatedProperties.kt:23:29:23:31 | Object | delegatedProperties.kt:23:29:23:31 | get | TypeAccess | -| delegatedProperties.kt:23:29:23:31 | String | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | -| delegatedProperties.kt:23:29:23:31 | String | delegatedProperties.kt:23:29:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | String | delegatedProperties.kt:23:9:23:31 | <get-name> | TypeAccess | +| delegatedProperties.kt:23:29:23:31 | String | delegatedProperties.kt:23:9:23:31 | <get-name> | TypeAccess | | delegatedProperties.kt:23:29:23:31 | String | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:23:29:23:31 | get(...) | delegatedProperties.kt:23:29:23:31 | invoke | MethodCall | +| delegatedProperties.kt:23:29:23:31 | get(...) | delegatedProperties.kt:23:9:23:31 | invoke | MethodCall | | delegatedProperties.kt:23:29:23:31 | getValue(...) | delegatedProperties.kt:23:29:23:31 | <get-name> | MethodCall | | delegatedProperties.kt:23:29:23:31 | name$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | -| delegatedProperties.kt:23:29:23:31 | name$delegate | delegatedProperties.kt:23:29:23:31 | <get-name> | VarAccess | +| delegatedProperties.kt:23:29:23:31 | name$delegate | delegatedProperties.kt:23:9:23:31 | <get-name> | VarAccess | | delegatedProperties.kt:23:29:23:31 | new (...) | delegatedProperties.kt:23:29:23:31 | get | ClassInstanceExpr | | delegatedProperties.kt:23:29:23:31 | this | delegatedProperties.kt:23:29:23:31 | invoke | ThisAccess | | delegatedProperties.kt:23:29:23:31 | map | delegatedProperties.kt:18:5:40:5 | fn | VarAccess | @@ -158,13 +158,13 @@ | delegatedProperties.kt:28:50:28:71 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess | | delegatedProperties.kt:28:50:28:71 | KProperty<?> | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:28:74:28:83 | int | file://:0:0:0:0 | <none> | TypeAccess | -| delegatedProperties.kt:29:17:29:24 | setCurValue(...) | delegatedProperties.kt:28:22:30:13 | setValue | MethodCall | -| delegatedProperties.kt:29:17:29:24 | this | delegatedProperties.kt:28:22:30:13 | setValue | ThisAccess | -| delegatedProperties.kt:29:28:29:32 | value | delegatedProperties.kt:28:22:30:13 | setValue | VarAccess | -| delegatedProperties.kt:33:30:33:47 | ...::... | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | PropertyRefExpr | +| delegatedProperties.kt:29:17:29:24 | setCurValue(...) | delegatedProperties.kt:28:13:30:13 | setValue | MethodCall | +| delegatedProperties.kt:29:17:29:24 | this | delegatedProperties.kt:28:13:30:13 | setValue | ThisAccess | +| delegatedProperties.kt:29:28:29:32 | value | delegatedProperties.kt:28:13:30:13 | setValue | VarAccess | +| delegatedProperties.kt:33:30:33:47 | ...::... | delegatedProperties.kt:33:9:33:47 | <get-readOnly> | PropertyRefExpr | | delegatedProperties.kt:33:30:33:47 | <get-readOnly>(...) | delegatedProperties.kt:33:30:33:47 | get | MethodCall | -| delegatedProperties.kt:33:30:33:47 | Integer | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | TypeAccess | -| delegatedProperties.kt:33:30:33:47 | KProperty0<Integer> | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | TypeAccess | +| delegatedProperties.kt:33:30:33:47 | Integer | delegatedProperties.kt:33:9:33:47 | <get-readOnly> | TypeAccess | +| delegatedProperties.kt:33:30:33:47 | KProperty0<Integer> | delegatedProperties.kt:33:9:33:47 | <get-readOnly> | TypeAccess | | delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:33:30:33:47 | get | TypeAccess | | delegatedProperties.kt:33:30:33:47 | get(...) | delegatedProperties.kt:33:30:33:47 | invoke | MethodCall | | delegatedProperties.kt:33:30:33:47 | getValue(...) | delegatedProperties.kt:33:30:33:47 | <get-readOnly> | MethodCall | @@ -176,16 +176,16 @@ | delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:33:30:33:47 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | -| delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | PropertyRefExpr | -| delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | PropertyRefExpr | +| delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:9:34:48 | <get-readWrite> | PropertyRefExpr | +| delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:9:34:48 | <set-readWrite> | PropertyRefExpr | | delegatedProperties.kt:34:31:34:48 | <get-readWrite>(...) | delegatedProperties.kt:34:31:34:48 | get | MethodCall | | delegatedProperties.kt:34:31:34:48 | <get-readWrite>(...) | delegatedProperties.kt:34:31:34:48 | get | MethodCall | | delegatedProperties.kt:34:31:34:48 | <set-readWrite>(...) | delegatedProperties.kt:34:31:34:48 | set | MethodCall | | delegatedProperties.kt:34:31:34:48 | <set-readWrite>(...) | delegatedProperties.kt:34:31:34:48 | set | MethodCall | -| delegatedProperties.kt:34:31:34:48 | Integer | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | TypeAccess | -| delegatedProperties.kt:34:31:34:48 | Integer | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | TypeAccess | -| delegatedProperties.kt:34:31:34:48 | KMutableProperty0<Integer> | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | TypeAccess | -| delegatedProperties.kt:34:31:34:48 | KMutableProperty0<Integer> | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | Integer | delegatedProperties.kt:34:9:34:48 | <get-readWrite> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | Integer | delegatedProperties.kt:34:9:34:48 | <set-readWrite> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | KMutableProperty0<Integer> | delegatedProperties.kt:34:9:34:48 | <get-readWrite> | TypeAccess | +| delegatedProperties.kt:34:31:34:48 | KMutableProperty0<Integer> | delegatedProperties.kt:34:9:34:48 | <set-readWrite> | TypeAccess | | delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:34:31:34:48 | get | TypeAccess | | delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:34:31:34:48 | get | TypeAccess | | delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:34:31:34:48 | set | TypeAccess | @@ -195,7 +195,7 @@ | delegatedProperties.kt:34:31:34:48 | a0 | delegatedProperties.kt:34:31:34:48 | set | VarAccess | | delegatedProperties.kt:34:31:34:48 | get(...) | delegatedProperties.kt:34:31:34:48 | invoke | MethodCall | | delegatedProperties.kt:34:31:34:48 | get(...) | delegatedProperties.kt:34:31:34:48 | invoke | MethodCall | -| delegatedProperties.kt:34:31:34:48 | getValue(...) | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | MethodCall | +| delegatedProperties.kt:34:31:34:48 | getValue(...) | delegatedProperties.kt:34:9:34:48 | <get-readWrite> | MethodCall | | delegatedProperties.kt:34:31:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:34:31:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | get | ClassInstanceExpr | @@ -205,7 +205,7 @@ | delegatedProperties.kt:34:31:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:34:31:34:48 | readWrite$delegate | delegatedProperties.kt:34:31:34:48 | <get-readWrite> | VarAccess | | delegatedProperties.kt:34:31:34:48 | readWrite$delegate | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | VarAccess | -| delegatedProperties.kt:34:31:34:48 | setValue(...) | delegatedProperties.kt:34:31:34:48 | <set-readWrite> | MethodCall | +| delegatedProperties.kt:34:31:34:48 | setValue(...) | delegatedProperties.kt:34:9:34:48 | <set-readWrite> | MethodCall | | delegatedProperties.kt:34:31:34:48 | this | delegatedProperties.kt:34:31:34:48 | invoke | ThisAccess | | delegatedProperties.kt:34:31:34:48 | this | delegatedProperties.kt:34:31:34:48 | invoke | ThisAccess | | delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | @@ -220,18 +220,18 @@ | delegatedProperties.kt:37:9:37:24 | this | delegatedProperties.kt:18:5:40:5 | fn | ThisAccess | | delegatedProperties.kt:37:24:37:24 | 3 | delegatedProperties.kt:18:5:40:5 | fn | IntegerLiteral | | delegatedProperties.kt:39:34:39:51 | ...::... | delegatedProperties.kt:18:5:40:5 | fn | PropertyRefExpr | -| delegatedProperties.kt:39:34:39:51 | ...::... | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | PropertyRefExpr | +| delegatedProperties.kt:39:34:39:51 | ...::... | delegatedProperties.kt:39:9:39:51 | <get-varResource2> | PropertyRefExpr | | delegatedProperties.kt:39:34:39:51 | <get-varResource2>(...) | delegatedProperties.kt:39:34:39:51 | get | MethodCall | | delegatedProperties.kt:39:34:39:51 | <get-varResource2>(...) | delegatedProperties.kt:39:34:39:51 | get | MethodCall | | delegatedProperties.kt:39:34:39:51 | Integer | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:39:34:39:51 | Integer | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | TypeAccess | | delegatedProperties.kt:39:34:39:51 | KProperty0<Integer> | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | -| delegatedProperties.kt:39:34:39:51 | KProperty0<Integer> | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | TypeAccess | +| delegatedProperties.kt:39:34:39:51 | KProperty0<Integer> | delegatedProperties.kt:39:9:39:51 | <get-varResource2> | TypeAccess | | delegatedProperties.kt:39:34:39:51 | Object | delegatedProperties.kt:39:34:39:51 | get | TypeAccess | | delegatedProperties.kt:39:34:39:51 | Object | delegatedProperties.kt:39:34:39:51 | get | TypeAccess | | delegatedProperties.kt:39:34:39:51 | get(...) | delegatedProperties.kt:39:34:39:51 | invoke | MethodCall | | delegatedProperties.kt:39:34:39:51 | get(...) | delegatedProperties.kt:39:34:39:51 | invoke | MethodCall | -| delegatedProperties.kt:39:34:39:51 | getValue(...) | delegatedProperties.kt:39:34:39:51 | <get-varResource2> | MethodCall | +| delegatedProperties.kt:39:34:39:51 | getValue(...) | delegatedProperties.kt:39:9:39:51 | <get-varResource2> | MethodCall | | delegatedProperties.kt:39:34:39:51 | int | file://:0:0:0:0 | <none> | TypeAccess | | delegatedProperties.kt:39:34:39:51 | new (...) | delegatedProperties.kt:39:34:39:51 | get | ClassInstanceExpr | | delegatedProperties.kt:39:34:39:51 | new (...) | delegatedProperties.kt:39:34:39:51 | get | ClassInstanceExpr | From 06134467e9e5317ac327ad439e7c776a116a8160 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" <mbg@github.com> Date: Tue, 19 Mar 2024 16:39:57 +0000 Subject: [PATCH 287/309] Go: Make `CODEQL_EXTRACTOR_GO_FAST_PACKAGE_INFO` true by default --- go/extractor/extractor.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index f2ba68a20f0..2e846b66e28 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -119,7 +119,7 @@ func ExtractWithFlags(buildFlags []string, patterns []string) error { // root directories of packages that we want to extract wantedRoots := make(map[string]bool) - if os.Getenv("CODEQL_EXTRACTOR_GO_FAST_PACKAGE_INFO") != "" { + if os.Getenv("CODEQL_EXTRACTOR_GO_FAST_PACKAGE_INFO") != "false" { log.Printf("Running go list to resolve package and module directories.") // get all packages information pkgInfos, err = util.GetPkgsInfo(patterns, true, modFlags...) From c9dbb7c5a9ff739f014b303ddb147f9e90331c5b Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 20 Mar 2024 12:01:57 +0000 Subject: [PATCH 288/309] C++: Rewrite 'cpp/missing-check-scanf' to use standard dataflow configurations. --- cpp/ql/src/Critical/MissingCheckScanf.ql | 112 +++++++++-------------- 1 file changed, 44 insertions(+), 68 deletions(-) diff --git a/cpp/ql/src/Critical/MissingCheckScanf.ql b/cpp/ql/src/Critical/MissingCheckScanf.ql index 78560383b00..3418fb8485c 100644 --- a/cpp/ql/src/Critical/MissingCheckScanf.ql +++ b/cpp/ql/src/Critical/MissingCheckScanf.ql @@ -21,14 +21,6 @@ import semmle.code.cpp.ir.IR import semmle.code.cpp.ir.ValueNumbering import ScanfChecks -/** Holds if `n` reaches an argument to a call to a `scanf`-like function. */ -pragma[nomagic] -predicate revFlow0(Node n) { - isSink(_, _, n, _) - or - exists(Node succ | revFlow0(succ) | localFlowStep(n, succ)) -} - /** * Holds if `n` represents an uninitialized stack-allocated variable, or a * newly (and presumed uninitialized) heap allocation. @@ -38,30 +30,45 @@ predicate isUninitialized(Node n) { n.asIndirectExpr(1) instanceof AllocationExpr } -pragma[nomagic] -predicate fwdFlow0(Node n) { - revFlow0(n) and - ( - isUninitialized(n) - or - exists(Node prev | - fwdFlow0(prev) and - localFlowStep(prev, n) - ) - ) -} - predicate isSink(ScanfFunctionCall call, int index, Node n, Expr input) { input = call.getOutputArgument(index) and n.asIndirectExpr() = input } +/** + * A configuration to track a uninitialized data flowing to a `scanf`-like + * output parameter position. + * + * This is meant to be a simple flow to rule out cases like: + * ``` + * int x = 0; + * scanf(..., &x); + * use(x); + * ``` + * since `x` is already initialized it's not a security concern that `x` is + * used without checking the return value of `scanf`. + * + * Since this flow is meant to be simple, we disable field flow and require the + * source and the sink to be in the same callable. + */ +module UninitializedToScanfConfig implements ConfigSig { + predicate isSource(Node source) { isUninitialized(source) } + + predicate isSink(Node sink) { isSink(_, _, sink, _) } + + FlowFeature getAFeature() { result instanceof FeatureEqualSourceSinkCallContext } + + int accessPathLimit() { result = 0 } +} + +module UninitializedToScanfFlow = Global<UninitializedToScanfConfig>; + /** * Holds if `call` is a `scanf`-like call and `output` is the `index`'th * argument that has not been previously initialized. */ predicate isRelevantScanfCall(ScanfFunctionCall call, int index, Expr output) { - exists(Node n | fwdFlow0(n) and isSink(call, index, n, output)) and + exists(Node n | UninitializedToScanfFlow::flowTo(n) and isSink(call, index, n, output)) and // Exclude results from incorrectky checked scanf query not incorrectlyCheckedScanf(call) } @@ -77,31 +84,6 @@ predicate isSource(ScanfFunctionCall call, int index, Node n, Expr output) { n.asDefiningArgument() = output } -/** - * Holds if `n` is reachable from an output argument of a relevant call to - * a `scanf`-like function. - */ -pragma[nomagic] -predicate fwdFlow(Node n) { - isSource(_, _, n, _) - or - exists(Node prev | - fwdFlow(prev) and - localFlowStep(prev, n) and - not isSanitizerOut(prev) - ) -} - -/** Holds if `n` should not have outgoing flow. */ -predicate isSanitizerOut(Node n) { - // We disable flow out of sinks to reduce result duplication - isSink(n, _) - or - // If the node is being passed to a function it may be - // modified, and thus it's safe to later read the value. - exists(n.asIndirectArgument()) -} - /** * Holds if `n` is a node such that `n.asExpr() = e` and `e` is not an * argument of a deallocation expression. @@ -112,31 +94,25 @@ predicate isSink(Node n, Expr e) { } /** - * Holds if `n` is part of a path from a call to a `scanf`-like function - * to a use of the written variable. + * A configuration to track flow from the output argument of a call to a + * `scanf`-like function, and to a use of the defined variable. */ -pragma[nomagic] -predicate revFlow(Node n) { - fwdFlow(n) and - ( +module ScanfToUseConfig implements ConfigSig { + predicate isSource(Node source) { isSource(_, _, source, _) } + + predicate isSink(Node sink) { isSink(sink, _) } + + predicate isBarrierOut(Node n) { + // We disable flow out of sinks to reduce result duplication isSink(n, _) or - exists(Node succ | - revFlow(succ) and - localFlowStep(n, succ) and - not isSanitizerOut(n) - ) - ) + // If the node is being passed to a function it may be + // modified, and thus it's safe to later read the value. + exists(n.asIndirectArgument()) + } } -/** A local flow step, restricted to relevant dataflow nodes. */ -private predicate step(Node n1, Node n2) { - revFlow(n1) and - revFlow(n2) and - localFlowStep(n1, n2) -} - -predicate hasFlow(Node n1, Node n2) = fastTC(step/2)(n1, n2) +module ScanfToUseFlow = Global<ScanfToUseConfig>; /** * Holds if `source` is the `index`'th argument to the `scanf`-like call `call`, and `sink` is @@ -144,7 +120,7 @@ predicate hasFlow(Node n1, Node n2) = fastTC(step/2)(n1, n2) */ predicate hasFlow(Node source, ScanfFunctionCall call, int index, Node sink, Expr e) { isSource(call, index, source, _) and - hasFlow(source, sink) and + ScanfToUseFlow::flow(source, sink) and isSink(sink, e) } From c71ba0361edf9f1d3501f383f3de2e190de80352 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" <mbg@github.com> Date: Wed, 20 Mar 2024 12:12:20 +0000 Subject: [PATCH 289/309] Docs: Add Go 1.22 to supported versions range --- docs/codeql/reusables/supported-versions-compilers.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index 05cc675c71c..727642a87ac 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -16,7 +16,7 @@ .NET Core up to 3.1 .NET 5, .NET 6, .NET 7, .NET 8","``.sln``, ``.csproj``, ``.cs``, ``.cshtml``, ``.xaml``" - Go (aka Golang), "Go up to 1.21", "Go 1.11 or more recent", ``.go`` + Go (aka Golang), "Go up to 1.22", "Go 1.11 or more recent", ``.go`` Java,"Java 7 to 21 [5]_","javac (OpenJDK and Oracle JDK), Eclipse compiler for Java (ECJ) [6]_",``.java`` From 79dc7fcc048ab7c7402f7a0f5702c14155c7088d Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Wed, 20 Mar 2024 15:21:36 +0100 Subject: [PATCH 290/309] C#: Avoid using TRAP stack in buildless mode --- csharp/extractor/Semmle.Extraction/Context.cs | 50 +++++++++++-------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/csharp/extractor/Semmle.Extraction/Context.cs b/csharp/extractor/Semmle.Extraction/Context.cs index a6442758daf..6697bfb06fd 100644 --- a/csharp/extractor/Semmle.Extraction/Context.cs +++ b/csharp/extractor/Semmle.Extraction/Context.cs @@ -274,28 +274,36 @@ namespace Semmle.Extraction bool duplicationGuard, deferred; - switch (entity.TrapStackBehaviour) + if (Extractor.Mode is ExtractorMode.Standalone) { - case TrapStackBehaviour.NeedsLabel: - if (!tagStack.Any()) - ExtractionError("TagStack unexpectedly empty", optionalSymbol, entity); - duplicationGuard = false; - deferred = false; - break; - case TrapStackBehaviour.NoLabel: - duplicationGuard = false; - deferred = tagStack.Any(); - break; - case TrapStackBehaviour.OptionalLabel: - duplicationGuard = false; - deferred = false; - break; - case TrapStackBehaviour.PushesLabel: - duplicationGuard = true; - deferred = duplicationGuard && tagStack.Any(); - break; - default: - throw new InternalError("Unexpected TrapStackBehaviour"); + duplicationGuard = false; + deferred = false; + } + else + { + switch (entity.TrapStackBehaviour) + { + case TrapStackBehaviour.NeedsLabel: + if (!tagStack.Any()) + ExtractionError("TagStack unexpectedly empty", optionalSymbol, entity); + duplicationGuard = false; + deferred = false; + break; + case TrapStackBehaviour.NoLabel: + duplicationGuard = false; + deferred = tagStack.Any(); + break; + case TrapStackBehaviour.OptionalLabel: + duplicationGuard = false; + deferred = false; + break; + case TrapStackBehaviour.PushesLabel: + duplicationGuard = true; + deferred = duplicationGuard && tagStack.Any(); + break; + default: + throw new InternalError("Unexpected TrapStackBehaviour"); + } } var a = duplicationGuard && IsEntityDuplicationGuarded(entity, out var loc) From 969676975d5be45ace129e709988d52734f8bf2f Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Wed, 20 Mar 2024 15:28:56 +0100 Subject: [PATCH 291/309] C#: Address review comments. --- .../library-tests/dataflow/library/FlowSummariesFiltered.ql | 2 +- csharp/ql/test/shared/FlowSummaries.qll | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql index 5bbb7ec0c6f..9c19d00cb59 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql @@ -13,7 +13,7 @@ class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable { this.propagatesFlow(input, output, preservesValue) and not exists(IncludeSummarizedCallable rsc | isBaseCallableOrPrototype(rsc) and - rsc.(SummarizedCallableImpl).propagatesFlow(input, output, preservesValue) and + rsc.propagatesFlow(input, output, preservesValue) and this.(UnboundCallable).overridesOrImplementsUnbound(rsc) ) } diff --git a/csharp/ql/test/shared/FlowSummaries.qll b/csharp/ql/test/shared/FlowSummaries.qll index b68966afa34..2fecea3f62f 100644 --- a/csharp/ql/test/shared/FlowSummaries.qll +++ b/csharp/ql/test/shared/FlowSummaries.qll @@ -17,6 +17,4 @@ class IncludeSummarizedCallable extends SummarizedCallableImplFinal { ) { this.propagatesFlow(input, output, preservesValue) } - - string toString() { result = super.toString() } } From 14aff5c94c2e838b51fd1e50bee3943aea5e17eb Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 20 Mar 2024 14:54:53 +0000 Subject: [PATCH 292/309] C++: Convert 'cpp/missing-check-scanf' to a path-problem query. --- cpp/ql/src/Critical/MissingCheckScanf.ql | 29 ++-- .../MissingCheckScanf.expected | 154 ++++++++++++++++-- 2 files changed, 155 insertions(+), 28 deletions(-) diff --git a/cpp/ql/src/Critical/MissingCheckScanf.ql b/cpp/ql/src/Critical/MissingCheckScanf.ql index 3418fb8485c..ba09aae2a73 100644 --- a/cpp/ql/src/Critical/MissingCheckScanf.ql +++ b/cpp/ql/src/Critical/MissingCheckScanf.ql @@ -2,7 +2,7 @@ * @name Missing return-value check for a 'scanf'-like function * @description Failing to check that a call to 'scanf' actually writes to an * output variable can lead to unexpected behavior at reading time. - * @kind problem + * @kind path-problem * @problem.severity warning * @security-severity 7.5 * @precision medium @@ -20,6 +20,7 @@ import semmle.code.cpp.dataflow.new.DataFlow::DataFlow import semmle.code.cpp.ir.IR import semmle.code.cpp.ir.ValueNumbering import ScanfChecks +import ScanfToUseFlow::PathGraph /** * Holds if `n` represents an uninitialized stack-allocated variable, or a @@ -118,10 +119,13 @@ module ScanfToUseFlow = Global<ScanfToUseConfig>; * Holds if `source` is the `index`'th argument to the `scanf`-like call `call`, and `sink` is * a dataflow node that represents the expression `e`. */ -predicate hasFlow(Node source, ScanfFunctionCall call, int index, Node sink, Expr e) { - isSource(call, index, source, _) and - ScanfToUseFlow::flow(source, sink) and - isSink(sink, e) +predicate flowPath( + ScanfToUseFlow::PathNode source, ScanfFunctionCall call, int index, ScanfToUseFlow::PathNode sink, + Expr e +) { + isSource(call, index, source.getNode(), _) and + ScanfToUseFlow::flowPath(source, sink) and + isSink(sink.getNode(), e) } /** @@ -143,9 +147,12 @@ int getMinimumGuardConstant(ScanfFunctionCall call, int index) { * Holds the access to `e` isn't guarded by a check that ensures that `call` returned * at least `minGuard`. */ -predicate hasNonGuardedAccess(ScanfFunctionCall call, Expr e, int minGuard) { +predicate hasNonGuardedAccess( + ScanfToUseFlow::PathNode source, ScanfFunctionCall call, ScanfToUseFlow::PathNode sink, Expr e, + int minGuard +) { exists(int index | - hasFlow(_, call, index, _, e) and + flowPath(source, call, index, sink, e) and minGuard = getMinimumGuardConstant(call, index) | not exists(int value | @@ -173,9 +180,11 @@ BasicBlock blockGuardedBy(int value, string op, ScanfFunctionCall call) { ) } -from ScanfFunctionCall call, Expr e, int minGuard -where hasNonGuardedAccess(call, e, minGuard) -select e, +from + ScanfToUseFlow::PathNode source, ScanfToUseFlow::PathNode sink, ScanfFunctionCall call, Expr e, + int minGuard +where hasNonGuardedAccess(source, call, sink, e, minGuard) +select e, source, sink, "This variable is read, but may not have been written. " + "It should be guarded by a check that the $@ returns at least " + minGuard + ".", call, call.toString() diff --git a/cpp/ql/test/query-tests/Critical/MissingCheckScanf/MissingCheckScanf.expected b/cpp/ql/test/query-tests/Critical/MissingCheckScanf/MissingCheckScanf.expected index 69f9ab820eb..8bb2c9643a9 100644 --- a/cpp/ql/test/query-tests/Critical/MissingCheckScanf/MissingCheckScanf.expected +++ b/cpp/ql/test/query-tests/Critical/MissingCheckScanf/MissingCheckScanf.expected @@ -1,18 +1,136 @@ -| 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 | -| test.cpp:68:7:68: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:67:3:67:7 | call to scanf | call to scanf | -| test.cpp:80:7:80: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:79:3:79:7 | call to scanf | call to scanf | -| test.cpp:90:7:90:8 | * ... | 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:89:3:89:7 | call to scanf | call to scanf | -| test.cpp:98:7:98:8 | * ... | 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:97:3:97:7 | call to scanf | call to scanf | -| test.cpp:108:7:108: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:107:3:107:8 | call to fscanf | call to fscanf | -| test.cpp:115:7:115: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:114:3:114:8 | call to sscanf | call to sscanf | -| test.cpp:224:8:224:8 | j | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 2. | test.cpp:221:7:221:11 | call to scanf | call to scanf | -| test.cpp:248:9:248:9 | d | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 2. | test.cpp:246:25:246:29 | call to scanf | call to scanf | -| test.cpp:252:9:252:9 | d | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 2. | test.cpp:250:14:250:18 | call to scanf | call to scanf | -| test.cpp:272:7:272: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:271:3:271:7 | call to scanf | call to scanf | -| test.cpp:280:7:280: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:279:3:279:7 | call to scanf | call to scanf | -| test.cpp:292:7:292: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:291:3:291:7 | call to scanf | call to scanf | -| test.cpp:404:25:404:25 | u | 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:403:6:403:11 | call to sscanf | call to sscanf | -| test.cpp:416:7:416: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:413:7:413:11 | call to scanf | call to scanf | -| 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 | 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 | 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 | +edges +| test.cpp:34:15:34:16 | scanf output argument | test.cpp:35:7:35:7 | i | provenance | | +| test.cpp:41:19:41:20 | scanf output argument | test.cpp:43:8:43:8 | i | provenance | | +| test.cpp:58:19:58:20 | scanf output argument | test.cpp:60:8:60:8 | i | provenance | | +| test.cpp:67:15:67:16 | scanf output argument | test.cpp:68:7:68:7 | i | provenance | | +| test.cpp:70:19:70:20 | scanf output argument | test.cpp:72:8:72:8 | i | provenance | | +| test.cpp:79:15:79:16 | scanf output argument | test.cpp:80:7:80:7 | i | provenance | | +| test.cpp:89:15:89:15 | scanf output argument | test.cpp:90:7:90:8 | * ... | provenance | | +| test.cpp:97:15:97:15 | scanf output argument | test.cpp:98:7:98:8 | * ... | provenance | | +| test.cpp:107:32:107:33 | fscanf output argument | test.cpp:108:7:108:7 | i | provenance | | +| test.cpp:114:32:114:33 | sscanf output argument | test.cpp:115:7:115:7 | i | provenance | | +| test.cpp:121:38:121:39 | _scanf_l output argument | test.cpp:123:8:123:8 | i | provenance | | +| test.cpp:132:19:132:20 | scanf output argument | test.cpp:134:8:134:8 | i | provenance | | +| test.cpp:141:19:141:20 | scanf output argument | test.cpp:143:8:143:8 | i | provenance | | +| test.cpp:150:23:150:24 | scanf output argument | test.cpp:154:9:154:9 | i | provenance | | +| test.cpp:181:19:181:20 | scanf output argument | test.cpp:185:8:185:8 | i | provenance | | +| test.cpp:193:19:193:20 | scanf output argument | test.cpp:197:8:197:8 | i | provenance | | +| test.cpp:211:22:211:23 | scanf output argument | test.cpp:213:8:213:8 | i | provenance | | +| test.cpp:221:22:221:23 | scanf output argument | test.cpp:223:8:223:8 | i | provenance | | +| test.cpp:221:26:221:27 | scanf output argument | test.cpp:224:8:224:8 | j | provenance | | +| test.cpp:231:22:231:23 | scanf output argument | test.cpp:233:8:233:8 | i | provenance | | +| test.cpp:231:26:231:27 | scanf output argument | test.cpp:234:8:234:8 | j | provenance | | +| test.cpp:246:44:246:45 | scanf output argument | test.cpp:248:9:248:9 | d | provenance | | +| test.cpp:250:33:250:34 | scanf output argument | test.cpp:252:9:252:9 | d | provenance | | +| test.cpp:271:15:271:16 | scanf output argument | test.cpp:272:7:272:7 | i | provenance | | +| test.cpp:279:15:279:16 | scanf output argument | test.cpp:280:7:280:7 | i | provenance | | +| test.cpp:291:15:291:16 | scanf output argument | test.cpp:292:7:292:7 | i | provenance | | +| test.cpp:325:34:325:35 | sscanf output argument | test.cpp:327:8:327:8 | i | provenance | | +| test.cpp:325:38:325:39 | sscanf output argument | test.cpp:328:8:328:8 | j | provenance | | +| test.cpp:335:22:335:23 | scanf output argument | test.cpp:337:8:337:8 | i | provenance | | +| test.cpp:344:23:344:24 | scanf output argument | test.cpp:346:8:346:8 | i | provenance | | +| test.cpp:353:26:353:27 | scanf output argument | test.cpp:354:8:354:8 | d | provenance | | +| test.cpp:353:30:353:31 | scanf output argument | test.cpp:355:8:355:8 | n | provenance | | +| test.cpp:362:62:362:63 | sscanf output argument | test.cpp:364:17:364:17 | n | provenance | | +| test.cpp:403:29:403:30 | sscanf output argument | test.cpp:404:18:404:25 | u | provenance | | +| test.cpp:413:19:413:20 | scanf output argument | test.cpp:416:7:416:7 | i | provenance | | +| 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 | | +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 | +| test.cpp:41:19:41:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:43:8:43:8 | i | semmle.label | i | +| test.cpp:58:19:58:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:60:8:60:8 | i | semmle.label | i | +| test.cpp:67:15:67:16 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:68:7:68:7 | i | semmle.label | i | +| test.cpp:70:19:70:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:72:8:72:8 | i | semmle.label | i | +| test.cpp:79:15:79:16 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:80:7:80:7 | i | semmle.label | i | +| test.cpp:89:15:89:15 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:90:7:90:8 | * ... | semmle.label | * ... | +| test.cpp:97:15:97:15 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:98:7:98:8 | * ... | semmle.label | * ... | +| test.cpp:107:32:107:33 | fscanf output argument | semmle.label | fscanf output argument | +| test.cpp:108:7:108:7 | i | semmle.label | i | +| test.cpp:114:32:114:33 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:115:7:115:7 | i | semmle.label | i | +| test.cpp:121:38:121:39 | _scanf_l output argument | semmle.label | _scanf_l output argument | +| test.cpp:123:8:123:8 | i | semmle.label | i | +| test.cpp:132:19:132:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:134:8:134:8 | i | semmle.label | i | +| test.cpp:141:19:141:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:143:8:143:8 | i | semmle.label | i | +| test.cpp:150:23:150:24 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:154:9:154:9 | i | semmle.label | i | +| test.cpp:181:19:181:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:185:8:185:8 | i | semmle.label | i | +| test.cpp:193:19:193:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:197:8:197:8 | i | semmle.label | i | +| test.cpp:211:22:211:23 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:213:8:213:8 | i | semmle.label | i | +| test.cpp:221:22:221:23 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:221:26:221:27 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:223:8:223:8 | i | semmle.label | i | +| test.cpp:224:8:224:8 | j | semmle.label | j | +| test.cpp:231:22:231:23 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:231:26:231:27 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:233:8:233:8 | i | semmle.label | i | +| test.cpp:234:8:234:8 | j | semmle.label | j | +| test.cpp:246:44:246:45 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:248:9:248:9 | d | semmle.label | d | +| test.cpp:250:33:250:34 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:252:9:252:9 | d | semmle.label | d | +| test.cpp:271:15:271:16 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:272:7:272:7 | i | semmle.label | i | +| test.cpp:279:15:279:16 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:280:7:280:7 | i | semmle.label | i | +| test.cpp:291:15:291:16 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:292:7:292:7 | i | semmle.label | i | +| test.cpp:325:34:325:35 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:325:38:325:39 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:327:8:327:8 | i | semmle.label | i | +| test.cpp:328:8:328:8 | j | semmle.label | j | +| test.cpp:335:22:335:23 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:337:8:337:8 | i | semmle.label | i | +| test.cpp:344:23:344:24 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:346:8:346:8 | i | semmle.label | i | +| test.cpp:353:26:353:27 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:353:30:353:31 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:354:8:354:8 | d | semmle.label | d | +| test.cpp:355:8:355:8 | n | semmle.label | n | +| test.cpp:362:62:362:63 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:364:17:364:17 | n | semmle.label | n | +| test.cpp:403:29:403:30 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:404:18:404:25 | u | semmle.label | u | +| test.cpp:413:19:413:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:416:7:416:7 | i | semmle.label | i | +| test.cpp:420:19:420:20 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:423:7:423:7 | i | semmle.label | i | +| test.cpp:455:41:455:46 | sscanf output argument | semmle.label | sscanf output argument | +| 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 | +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 | +| test.cpp:68:7:68:7 | i | test.cpp:67:15:67:16 | scanf output argument | test.cpp:68:7:68: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:67:3:67:7 | call to scanf | call to scanf | +| test.cpp:80:7:80:7 | i | test.cpp:79:15:79:16 | scanf output argument | test.cpp:80:7:80: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:79:3:79:7 | call to scanf | call to scanf | +| test.cpp:90:7:90:8 | * ... | test.cpp:89:15:89:15 | scanf output argument | test.cpp:90:7:90:8 | * ... | 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:89:3:89:7 | call to scanf | call to scanf | +| test.cpp:98:7:98:8 | * ... | test.cpp:97:15:97:15 | scanf output argument | test.cpp:98:7:98:8 | * ... | 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:97:3:97:7 | call to scanf | call to scanf | +| test.cpp:108:7:108:7 | i | test.cpp:107:32:107:33 | fscanf output argument | test.cpp:108:7:108: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:107:3:107:8 | call to fscanf | call to fscanf | +| test.cpp:115:7:115:7 | i | test.cpp:114:32:114:33 | sscanf output argument | test.cpp:115:7:115: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:114:3:114:8 | call to sscanf | call to sscanf | +| test.cpp:224:8:224:8 | j | test.cpp:221:26:221:27 | scanf output argument | test.cpp:224:8:224:8 | j | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 2. | test.cpp:221:7:221:11 | call to scanf | call to scanf | +| test.cpp:248:9:248:9 | d | test.cpp:246:44:246:45 | scanf output argument | test.cpp:248:9:248:9 | d | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 2. | test.cpp:246:25:246:29 | call to scanf | call to scanf | +| test.cpp:252:9:252:9 | d | test.cpp:250:33:250:34 | scanf output argument | test.cpp:252:9:252:9 | d | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 2. | test.cpp:250:14:250:18 | call to scanf | call to scanf | +| test.cpp:272:7:272:7 | i | test.cpp:271:15:271:16 | scanf output argument | test.cpp:272:7:272: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:271:3:271:7 | call to scanf | call to scanf | +| test.cpp:280:7:280:7 | i | test.cpp:279:15:279:16 | scanf output argument | test.cpp:280:7:280: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:279:3:279:7 | call to scanf | call to scanf | +| test.cpp:292:7:292:7 | i | test.cpp:291:15:291:16 | scanf output argument | test.cpp:292:7:292: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:291:3:291:7 | call to scanf | call to scanf | +| test.cpp:404:25:404:25 | u | test.cpp:403:29:403:30 | sscanf output argument | test.cpp:404:18:404:25 | u | 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:403:6:403:11 | call to sscanf | call to sscanf | +| test.cpp:416:7:416:7 | i | test.cpp:413:19:413:20 | scanf output argument | test.cpp:416:7:416: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:413:7:413:11 | call to scanf | call to scanf | +| 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 | From 96cd259eda97c163d19cd70b4253900bcdd1c7fc Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 20 Mar 2024 14:56:39 +0000 Subject: [PATCH 293/309] C++: Add change note. --- .../2024-03-20-missing-check-scanf-path-problem.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2024-03-20-missing-check-scanf-path-problem.md diff --git a/cpp/ql/src/change-notes/2024-03-20-missing-check-scanf-path-problem.md b/cpp/ql/src/change-notes/2024-03-20-missing-check-scanf-path-problem.md new file mode 100644 index 00000000000..12a185add1e --- /dev/null +++ b/cpp/ql/src/change-notes/2024-03-20-missing-check-scanf-path-problem.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The "Missing return-value check for a 'scanf'-like function" query (`cpp/missing-check-scanf`) has been converted to a `path-problem` query. \ No newline at end of file From 5476f42d2c7872d9343e8f1d122e7ed4a33f5b98 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 20 Mar 2024 14:11:28 +0000 Subject: [PATCH 294/309] C++: Simplify use of 'GuardCondition's in 'cpp/missing-check-scanf'. --- cpp/ql/src/Critical/MissingCheckScanf.ql | 31 ++++++++---------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/cpp/ql/src/Critical/MissingCheckScanf.ql b/cpp/ql/src/Critical/MissingCheckScanf.ql index ba09aae2a73..5d8ce9e8846 100644 --- a/cpp/ql/src/Critical/MissingCheckScanf.ql +++ b/cpp/ql/src/Critical/MissingCheckScanf.ql @@ -18,7 +18,7 @@ import semmle.code.cpp.commons.Scanf import semmle.code.cpp.controlflow.Guards import semmle.code.cpp.dataflow.new.DataFlow::DataFlow import semmle.code.cpp.ir.IR -import semmle.code.cpp.ir.ValueNumbering +import semmle.code.cpp.valuenumbering.GlobalValueNumbering import ScanfChecks import ScanfToUseFlow::PathGraph @@ -155,31 +155,20 @@ predicate hasNonGuardedAccess( flowPath(source, call, index, sink, e) and minGuard = getMinimumGuardConstant(call, index) | - not exists(int value | - e.getBasicBlock() = blockGuardedBy(value, "==", call) and minGuard <= value + not exists(GuardCondition guard | + // call == k and k >= minGuard so call >= minGuard + guard + .ensuresEq(globalValueNumber(call).getAnExpr(), any(int k | minGuard <= k), + e.getBasicBlock(), true) or - e.getBasicBlock() = blockGuardedBy(value, "<", call) and minGuard - 1 <= value - or - e.getBasicBlock() = blockGuardedBy(value, "<=", call) and minGuard <= value + // call >= k and k >= minGuard so call >= minGuard + guard + .ensuresLt(globalValueNumber(call).getAnExpr(), any(int k | minGuard <= k), + e.getBasicBlock(), false) ) ) } -/** Returns a block guarded by the assertion of `value op call` */ -BasicBlock blockGuardedBy(int value, string op, ScanfFunctionCall call) { - exists(GuardCondition g, Expr left, Expr right | - right = g.getAChild() and - value = left.getValue().toInt() and - localExprFlow(call, right) - | - g.ensuresEq(left, right, 0, result, true) and op = "==" - or - g.ensuresLt(left, right, 0, result, true) and op = "<" - or - g.ensuresLt(left, right, 1, result, true) and op = "<=" - ) -} - from ScanfToUseFlow::PathNode source, ScanfToUseFlow::PathNode sink, ScanfFunctionCall call, Expr e, int minGuard From f31bb1391dee7f56f8d660dec61ec52262ac3668 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 20 Mar 2024 16:59:39 +0000 Subject: [PATCH 295/309] C++: Simplify 'checkedForEof'. --- cpp/ql/src/Critical/ScanfChecks.qll | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cpp/ql/src/Critical/ScanfChecks.qll b/cpp/ql/src/Critical/ScanfChecks.qll index 403df4715f3..6f50172537e 100644 --- a/cpp/ql/src/Critical/ScanfChecks.qll +++ b/cpp/ql/src/Critical/ScanfChecks.qll @@ -3,10 +3,6 @@ private import semmle.code.cpp.commons.Scanf private import semmle.code.cpp.controlflow.IRGuards private import semmle.code.cpp.ir.ValueNumbering -private ConstantInstruction getZeroInstruction() { result.getValue() = "0" } - -private Operand zero() { result.getDef() = getZeroInstruction() } - private predicate exprInBooleanContext(Expr e) { exists(IRGuardCondition gc | exists(Instruction i | @@ -46,7 +42,7 @@ private predicate checkedForEof(ScanfFunctionCall call) { gc.comparesEq(valueNumber(i).getAUse(), getEofValue().toInt(), _, _) or // call < 0 (EOF is guaranteed to be negative) - gc.comparesLt(valueNumber(i).getAUse(), zero(), 0, true, _) + gc.comparesLt(valueNumber(i).getAUse(), 0, true, _) ) ) } From 1330c885c8ceecbe670398806139b7280164441d Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 20 Mar 2024 18:04:59 +0000 Subject: [PATCH 296/309] C++: Use 'asIndirectExpr' in the sink of 'ExistsAnyFlowConfig. --- .../Protocols/TlsSettingsMisconfiguration.ql | 50 +++++++++++-------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql b/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql index 61989db1c6e..f20b299da60 100644 --- a/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql +++ b/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql @@ -12,34 +12,42 @@ import cpp import semmle.code.cpp.security.boostorg.asio.protocols -module ExistsAnyFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - exists(BoostorgAsio::SslContextClass c | c.getAContructorCall() = source.asExpr()) - } +predicate isSourceImpl(DataFlow::Node source, ConstructorCall cc) { + exists(BoostorgAsio::SslContextClass c | c.getAContructorCall() = cc and cc = source.asExpr()) +} - predicate isSink(DataFlow::Node sink) { - exists(BoostorgAsio::SslSetOptionsFunction f, FunctionCall fcSetOptions | - f.getACallToThisFunction() = fcSetOptions and - fcSetOptions.getQualifier() = sink.asExpr() - ) - } +predicate isSinkImpl(DataFlow::Node sink, FunctionCall fcSetOptions) { + exists(BoostorgAsio::SslSetOptionsFunction f | + f.getACallToThisFunction() = fcSetOptions and + fcSetOptions.getQualifier() = sink.asIndirectExpr() + ) +} + +module ExistsAnyFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { isSourceImpl(source, _) } + + predicate isSink(DataFlow::Node sink) { isSinkImpl(sink, _) } } module ExistsAnyFlow = DataFlow::Global<ExistsAnyFlowConfig>; bindingset[flag] predicate isOptionSet(ConstructorCall cc, int flag, FunctionCall fcSetOptions) { - exists(VariableAccess contextSetOptions | - ExistsAnyFlow::flow(DataFlow::exprNode(cc), DataFlow::exprNode(contextSetOptions)) and - exists(BoostorgAsio::SslSetOptionsFunction f | f.getACallToThisFunction() = fcSetOptions | - contextSetOptions = fcSetOptions.getQualifier() and - forall(Expr optionArgument, Expr optionArgumentSource | - optionArgument = fcSetOptions.getArgument(0) and - BoostorgAsio::SslOptionFlow::flow(DataFlow::exprNode(optionArgumentSource), - DataFlow::exprNode(optionArgument)) - | - optionArgument.getValue().toInt().bitShiftRight(16).bitAnd(flag) = flag - ) + exists( + VariableAccess contextSetOptions, BoostorgAsio::SslSetOptionsFunction f, DataFlow::Node source, + DataFlow::Node sink + | + isSourceImpl(source, cc) and + isSinkImpl(sink, fcSetOptions) and + ExistsAnyFlow::flow(source, sink) and + f.getACallToThisFunction() = fcSetOptions and + contextSetOptions = fcSetOptions.getQualifier() and + forall(Expr optionArgument, Expr optionArgumentSource | + optionArgument = fcSetOptions.getArgument(0) and + BoostorgAsio::SslOptionFlow::flow(DataFlow::exprNode(optionArgumentSource), + DataFlow::exprNode(optionArgument)) + | + optionArgument.getValue().toInt().bitShiftRight(16).bitAnd(flag) = flag ) ) } From 0ef8c7d87f368db9ece16cfe00d5acb9e5b2409b Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Wed, 20 Mar 2024 18:05:14 +0000 Subject: [PATCH 297/309] C++: Accept test changes. --- .../Protocols/TlsSettingsMisconfiguration.expected | 5 ----- cpp/ql/test/query-tests/Likely Bugs/Protocols/test2.cpp | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/cpp/ql/test/query-tests/Likely Bugs/Protocols/TlsSettingsMisconfiguration.expected b/cpp/ql/test/query-tests/Likely Bugs/Protocols/TlsSettingsMisconfiguration.expected index f889cb12a68..b2191d5b544 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Protocols/TlsSettingsMisconfiguration.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Protocols/TlsSettingsMisconfiguration.expected @@ -5,12 +5,7 @@ | test2.cpp:31:32:31:65 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:31:32:31:64 | sslv23 | sslv23 | test2.cpp:31:32:31:65 | call to context | no_sslv3 has not been set | | test2.cpp:31:32:31:65 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:31:32:31:64 | sslv23 | sslv23 | test2.cpp:31:32:31:65 | call to context | no_tlsv1 has not been set | | test2.cpp:31:32:31:65 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:31:32:31:64 | sslv23 | sslv23 | test2.cpp:31:32:31:65 | call to context | no_tlsv1_1 has not been set | -| test2.cpp:38:35:38:98 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:38:65:38:97 | sslv23 | sslv23 | test2.cpp:38:35:38:98 | call to context | no_sslv3 has not been set | -| test2.cpp:38:35:38:98 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:38:65:38:97 | sslv23 | sslv23 | test2.cpp:38:35:38:98 | call to context | no_tlsv1 has not been set | -| test2.cpp:38:35:38:98 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:38:65:38:97 | sslv23 | sslv23 | test2.cpp:38:35:38:98 | call to context | no_tlsv1_1 has not been set | | test2.cpp:45:35:45:98 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:45:65:45:97 | sslv23 | sslv23 | test2.cpp:45:35:45:98 | call to context | no_sslv3 has not been set | -| test2.cpp:45:35:45:98 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:45:65:45:97 | sslv23 | sslv23 | test2.cpp:45:35:45:98 | call to context | no_tlsv1 has not been set | -| test2.cpp:45:35:45:98 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:45:65:45:97 | sslv23 | sslv23 | test2.cpp:45:35:45:98 | call to context | no_tlsv1_1 has not been set | | test2.cpp:52:32:52:65 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:52:32:52:64 | sslv23 | sslv23 | test2.cpp:52:32:52:65 | call to context | no_sslv3 has not been set | | test2.cpp:52:32:52:65 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:52:32:52:64 | sslv23 | sslv23 | test2.cpp:52:32:52:65 | call to context | no_tlsv1 has not been set | | test2.cpp:52:32:52:65 | call to context | This usage of 'boost::asio::ssl::context::context' with protocol $@ is not configured correctly: The option $@. | test2.cpp:52:32:52:64 | sslv23 | sslv23 | test2.cpp:52:32:52:65 | call to context | no_tlsv1_1 has not been set | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Protocols/test2.cpp b/cpp/ql/test/query-tests/Likely Bugs/Protocols/test2.cpp index e8c802d6902..5679cee8b0f 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Protocols/test2.cpp +++ b/cpp/ql/test/query-tests/Likely Bugs/Protocols/test2.cpp @@ -34,7 +34,7 @@ void bad2() void good3() { - // GOOD [FALSE POSITIVE] + // GOOD boost::asio::ssl::context *ctx = new boost::asio::ssl::context(boost::asio::ssl::context::sslv23); ctx->set_options(boost::asio::ssl::context::no_tlsv1 | boost::asio::ssl::context::no_tlsv1_1 | boost::asio::ssl::context::no_sslv3); } From a76832f4e0ee375adda4904f090e68aab064d8e1 Mon Sep 17 00:00:00 2001 From: Henry Mercer <henrymercer@github.com> Date: Wed, 20 Mar 2024 21:15:23 +0000 Subject: [PATCH 298/309] Mark LOC queries as `debug` instead --- cpp/ql/src/Summary/LinesOfUserCode.ql | 2 +- csharp/ql/src/Metrics/Summaries/LinesOfCode.ql | 2 +- go/ql/src/Summary/LinesOfCode.ql | 2 +- java/ql/src/Metrics/Summaries/LinesOfCode.ql | 2 +- javascript/ql/src/Summary/LinesOfUserCode.ql | 2 +- python/ql/src/Summary/LinesOfUserCode.ql | 2 +- ql/ql/src/queries/summary/LinesOfCode.ql | 2 +- ql/ql/src/queries/summary/LinesOfUserCode.ql | 2 +- ruby/ql/src/queries/summary/LinesOfCode.ql | 2 +- ruby/ql/src/queries/summary/LinesOfUserCode.ql | 2 +- swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cpp/ql/src/Summary/LinesOfUserCode.ql b/cpp/ql/src/Summary/LinesOfUserCode.ql index 2c198a1488d..468dbda4ffb 100644 --- a/cpp/ql/src/Summary/LinesOfUserCode.ql +++ b/cpp/ql/src/Summary/LinesOfUserCode.ql @@ -4,7 +4,7 @@ * @kind metric * @tags summary * lines-of-code - * telemetry + * debug * @id cpp/summary/lines-of-user-code */ diff --git a/csharp/ql/src/Metrics/Summaries/LinesOfCode.ql b/csharp/ql/src/Metrics/Summaries/LinesOfCode.ql index 4c6eb55e5ab..ca4da7bd4b9 100644 --- a/csharp/ql/src/Metrics/Summaries/LinesOfCode.ql +++ b/csharp/ql/src/Metrics/Summaries/LinesOfCode.ql @@ -5,7 +5,7 @@ * @kind metric * @tags summary * lines-of-code - * telemetry + * debug */ import csharp diff --git a/go/ql/src/Summary/LinesOfCode.ql b/go/ql/src/Summary/LinesOfCode.ql index 04864e5c4a0..987648f604c 100644 --- a/go/ql/src/Summary/LinesOfCode.ql +++ b/go/ql/src/Summary/LinesOfCode.ql @@ -5,7 +5,7 @@ * @kind metric * @tags summary * lines-of-code - * telemetry + * debug */ import go diff --git a/java/ql/src/Metrics/Summaries/LinesOfCode.ql b/java/ql/src/Metrics/Summaries/LinesOfCode.ql index 1ead46f1b20..e2e83b35631 100644 --- a/java/ql/src/Metrics/Summaries/LinesOfCode.ql +++ b/java/ql/src/Metrics/Summaries/LinesOfCode.ql @@ -7,7 +7,7 @@ * @kind metric * @tags summary * lines-of-code - * telemetry + * debug */ import java diff --git a/javascript/ql/src/Summary/LinesOfUserCode.ql b/javascript/ql/src/Summary/LinesOfUserCode.ql index 83fbb9b32da..1f8f2b9fef7 100644 --- a/javascript/ql/src/Summary/LinesOfUserCode.ql +++ b/javascript/ql/src/Summary/LinesOfUserCode.ql @@ -6,7 +6,7 @@ * @kind metric * @tags summary * lines-of-code - * telemetry + * debug * @id js/summary/lines-of-user-code */ diff --git a/python/ql/src/Summary/LinesOfUserCode.ql b/python/ql/src/Summary/LinesOfUserCode.ql index a30ba7afd19..f6d6f25872f 100644 --- a/python/ql/src/Summary/LinesOfUserCode.ql +++ b/python/ql/src/Summary/LinesOfUserCode.ql @@ -8,7 +8,7 @@ * @kind metric * @tags summary * lines-of-code - * telemetry + * debug * @id py/summary/lines-of-user-code */ diff --git a/ql/ql/src/queries/summary/LinesOfCode.ql b/ql/ql/src/queries/summary/LinesOfCode.ql index c0dbe831967..7a552137cf3 100644 --- a/ql/ql/src/queries/summary/LinesOfCode.ql +++ b/ql/ql/src/queries/summary/LinesOfCode.ql @@ -8,7 +8,7 @@ * @kind metric * @tags summary * lines-of-code - * telemetry + * debug */ import ql diff --git a/ql/ql/src/queries/summary/LinesOfUserCode.ql b/ql/ql/src/queries/summary/LinesOfUserCode.ql index 8f49ce27d2f..b1d8481a564 100644 --- a/ql/ql/src/queries/summary/LinesOfUserCode.ql +++ b/ql/ql/src/queries/summary/LinesOfUserCode.ql @@ -6,7 +6,7 @@ * query counts the lines of code, excluding whitespace or comments. * @kind metric * @tags summary - * telemetry + * debug */ import ql diff --git a/ruby/ql/src/queries/summary/LinesOfCode.ql b/ruby/ql/src/queries/summary/LinesOfCode.ql index 34e7438bab1..f90cf34d046 100644 --- a/ruby/ql/src/queries/summary/LinesOfCode.ql +++ b/ruby/ql/src/queries/summary/LinesOfCode.ql @@ -8,7 +8,7 @@ * @kind metric * @tags summary * lines-of-code - * telemetry + * debug */ import codeql.ruby.AST diff --git a/ruby/ql/src/queries/summary/LinesOfUserCode.ql b/ruby/ql/src/queries/summary/LinesOfUserCode.ql index 121124862a1..91471c417ee 100644 --- a/ruby/ql/src/queries/summary/LinesOfUserCode.ql +++ b/ruby/ql/src/queries/summary/LinesOfUserCode.ql @@ -6,7 +6,7 @@ * query counts the lines of code, excluding whitespace or comments. * @kind metric * @tags summary - * telemetry + * debug */ import codeql.ruby.AST diff --git a/swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql b/swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql index 9fc40680852..5aec16da4ef 100644 --- a/swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql +++ b/swift/ql/src/diagnostics/SuccessfullyExtractedLines.ql @@ -4,7 +4,7 @@ * @kind metric * @id swift/diagnostics/successfully-extracted-lines * @tags summary - * telemetry + * debug */ import swift From 9300b04defceca67d2ab26c24da0590170503048 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Wed, 20 Mar 2024 14:28:25 +0100 Subject: [PATCH 299/309] C++: Update test results --- cpp/ql/test/library-tests/ir/ir/PrintAST.expected | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 8d71b7cedce..a8cc2321f2e 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -2030,7 +2030,13 @@ destructors_for_temps.cpp: # 45| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 45| Type = [Class] ClassWithDestructor2 # 45| ValueCategory = prvalue(load) -# 47| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 45| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor2 +# 45| Type = [VoidType] void +# 45| ValueCategory = prvalue +# 45| getQualifier(): [ReuseExpr] reuse of temporary object +# 45| Type = [Class] ClassWithDestructor2 +# 45| ValueCategory = xvalue +# 47| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor2 # 47| Type = [VoidType] void # 47| ValueCategory = prvalue # 47| getQualifier(): [VariableAccess] c From 84646cd795a389bbd89588652b28e64b2940df7c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Thu, 21 Mar 2024 09:40:00 +0100 Subject: [PATCH 300/309] C++: Add tests showing missing destructors for initialization statements Incidentially this also shows that for contructs like `if (char x = ...)`, so there is an initialization but not initializer statement, the initialization is not displayed in the AST, although the IR does contain the initialization. --- .../library-tests/ir/ir/PrintAST.expected | 304 ++++++++++++++++++ .../library-tests/ir/ir/aliased_ir.expected | 289 +++++++++++++++++ cpp/ql/test/library-tests/ir/ir/ir.cpp | 24 ++ .../ir/ir/operand_locations.expected | 279 ++++++++++++++++ .../test/library-tests/ir/ir/raw_ir.expected | 254 +++++++++++++++ 5 files changed, 1150 insertions(+) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index a8cc2321f2e..3c922cd3a5a 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -9872,6 +9872,10 @@ ir.cpp: # 1078| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> & +# 1078| [CopyAssignmentOperator] std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&>& std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&>::operator=(std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&> const&) +# 1078| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> & # 1078| [CopyAssignmentOperator] std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>& std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::operator=(std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&> const&) # 1078| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) @@ -9890,6 +9894,10 @@ ir.cpp: # 1082| <params>: # 1082| getParameter(0): [Parameter] other # 1082| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> & +# 1082| [CopyConstructor] void std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&>::iterator(std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&> const&) +# 1082| <params>: +# 1082| getParameter(0): [Parameter] other +# 1082| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> & # 1082| [CopyConstructor] void std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::iterator(std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&> const&) # 1082| <params>: # 1082| getParameter(0): [Parameter] other @@ -9900,6 +9908,8 @@ ir.cpp: # 1084| <params>: # 1084| [MemberFunction] std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>& std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>::operator++() # 1084| <params>: +# 1084| [MemberFunction] std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&>& std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&>::operator++() +# 1084| <params>: # 1084| [MemberFunction] std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>& std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::operator++() # 1084| <params>: # 1085| [MemberFunction] std::iterator<Category, value_type, difference_type, pointer_type, reference_type> std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator++(int) @@ -9928,6 +9938,10 @@ ir.cpp: # 1089| <params>: # 1089| getParameter(0): [Parameter] other # 1089| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, String, ptrdiff_t, String *, String &> +# 1089| [ConstMemberFunction] bool std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&>::operator!=(std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&>) const +# 1089| <params>: +# 1089| getParameter(0): [Parameter] other +# 1089| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> # 1089| [ConstMemberFunction] bool std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::operator!=(std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>) const # 1089| <params>: # 1089| getParameter(0): [Parameter] other @@ -9936,6 +9950,8 @@ ir.cpp: # 1090| <params>: # 1090| [ConstMemberFunction] String& std::iterator<std::random_access_iterator_tag, String, std::ptrdiff_t, String*, String&>::operator*() const # 1090| <params>: +# 1090| [ConstMemberFunction] char& std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&>::operator*() const +# 1090| <params>: # 1090| [ConstMemberFunction] int& std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, int*, int&>::operator*() const # 1090| <params>: # 1090| [ConstMemberFunction] reference_type std::iterator<Category, value_type, difference_type, pointer_type, reference_type>::operator*() const @@ -10020,6 +10036,10 @@ ir.cpp: # 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const vector<String> & +# 1108| [CopyAssignmentOperator] std::vector<char>& std::vector<char>::operator=(std::vector<char> const&) +# 1108| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const vector<char> & # 1108| [CopyAssignmentOperator] std::vector<int>& std::vector<int>::operator=(std::vector<int> const&) # 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) @@ -10032,6 +10052,10 @@ ir.cpp: # 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) #-----| Type = [LValueReferenceType] const vector<String> & +# 1108| [CopyConstructor] void std::vector<char>::vector(std::vector<char> const&) +# 1108| <params>: +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const vector<char> & # 1108| [CopyConstructor] void std::vector<int>::vector(std::vector<int> const&) # 1108| <params>: #-----| getParameter(0): [Parameter] (unnamed parameter 0) @@ -10048,6 +10072,10 @@ ir.cpp: # 1109| <params>: # 1109| getParameter(0): [Parameter] (unnamed parameter 0) # 1109| Type = [TemplateParameter] T +# 1109| [Constructor] void std::vector<char>::vector(char) +# 1109| <params>: +# 1109| getParameter(0): [Parameter] (unnamed parameter 0) +# 1109| Type = [PlainCharType] char # 1109| [Constructor] void std::vector<int>::vector(int) # 1109| <params>: # 1109| getParameter(0): [Parameter] (unnamed parameter 0) @@ -10064,6 +10092,8 @@ ir.cpp: # 1115| <params>: # 1115| [ConstMemberFunction] std::vector<T>::iterator std::vector<T>::begin() const # 1115| <params>: +# 1115| [ConstMemberFunction] std::vector<char>::iterator std::vector<char>::begin() const +# 1115| <params>: # 1115| [ConstMemberFunction] std::vector<int>::iterator std::vector<int>::begin() const # 1115| <params>: # 1116| [ConstMemberFunction] std::vector<ClassWithDestructor>::iterator std::vector<ClassWithDestructor>::end() const @@ -10072,6 +10102,8 @@ ir.cpp: # 1116| <params>: # 1116| [ConstMemberFunction] std::vector<T>::iterator std::vector<T>::end() const # 1116| <params>: +# 1116| [ConstMemberFunction] std::vector<char>::iterator std::vector<char>::end() const +# 1116| <params>: # 1116| [ConstMemberFunction] std::vector<int>::iterator std::vector<int>::end() const # 1116| <params>: # 1120| [Operator,TemplateFunction,TopLevelFunction] bool std::operator==<T>(iterator, iterator) @@ -19636,6 +19668,278 @@ ir.cpp: # 2393| Type = [IntType] int # 2393| Value = [ParenthesisExpr] 0 # 2393| ValueCategory = prvalue +# 2396| [TopLevelFunction] void initialization_with_temp_destructor() +# 2396| <params>: +# 2396| getEntryPoint(): [BlockStmt] { ... } +# 2397| getStmt(0): [IfStmt] if (...) ... +# 2397| getCondition(): [ConditionDeclExpr] (condition decl) +# 2397| Type = [BoolType] bool +# 2397| ValueCategory = prvalue +# 2397| getVariableAccess(): [VariableAccess] x +# 2397| Type = [PlainCharType] char +# 2397| ValueCategory = prvalue(load) +# 2397| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... +# 2397| Conversion = [BoolConversion] conversion to bool +# 2397| Type = [BoolType] bool +# 2397| ValueCategory = prvalue +# 2398| getThen(): [ExprStmt] ExprStmt +# 2398| getExpr(): [PostfixIncrExpr] ... ++ +# 2398| Type = [PlainCharType] char +# 2398| ValueCategory = prvalue +# 2398| getOperand(): [VariableAccess] x +# 2398| Type = [PlainCharType] char +# 2398| ValueCategory = lvalue +# 2400| getStmt(1): [IfStmt] if (...) ... +# 2400| getInitialization(): [DeclStmt] declaration +# 2400| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2400| Type = [PlainCharType] char +# 2400| getVariable().getInitializer(): [Initializer] initializer for x +# 2400| getExpr(): [FunctionCall] call to get_x +# 2400| Type = [PlainCharType] char +# 2400| ValueCategory = prvalue +# 2400| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2400| Type = [VoidType] void +# 2400| ValueCategory = prvalue +# 2400| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2400| Type = [Class] ClassWithDestructor +# 2400| ValueCategory = prvalue(load) +# 2400| getCondition(): [VariableAccess] x +# 2400| Type = [PlainCharType] char +# 2400| ValueCategory = prvalue(load) +# 2401| getThen(): [ExprStmt] ExprStmt +# 2401| getExpr(): [PostfixIncrExpr] ... ++ +# 2401| Type = [PlainCharType] char +# 2401| ValueCategory = prvalue +# 2401| getOperand(): [VariableAccess] x +# 2401| Type = [PlainCharType] char +# 2401| ValueCategory = lvalue +# 2400| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2400| Conversion = [BoolConversion] conversion to bool +# 2400| Type = [BoolType] bool +# 2400| ValueCategory = prvalue +# 2403| getStmt(2): [ConstexprIfStmt] if constexpr (...) ... +# 2403| getInitialization(): [DeclStmt] declaration +# 2403| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2403| Type = [PlainCharType] char +# 2403| getVariable().getInitializer(): [Initializer] initializer for x +# 2403| getExpr(): [FunctionCall] call to get_x +# 2403| Type = [PlainCharType] char +# 2403| ValueCategory = prvalue +# 2403| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2403| Type = [VoidType] void +# 2403| ValueCategory = prvalue +# 2403| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2403| Type = [Class] ClassWithDestructor +# 2403| ValueCategory = prvalue(load) +# 2403| getCondition(): [VariableAccess] initialization_with_destructor_bool +# 2403| Type = [BoolType] bool +# 2403| Value = [VariableAccess] 1 +# 2403| ValueCategory = prvalue(load) +# 2404| getThen(): [ExprStmt] ExprStmt +# 2404| getExpr(): [PostfixIncrExpr] ... ++ +# 2404| Type = [PlainCharType] char +# 2404| ValueCategory = prvalue +# 2404| getOperand(): [VariableAccess] x +# 2404| Type = [PlainCharType] char +# 2404| ValueCategory = lvalue +# 2406| getStmt(3): [SwitchStmt] switch (...) ... +# 2406| getExpr(): [ConditionDeclExpr] (condition decl) +# 2406| Type = [IntType] int +# 2406| ValueCategory = prvalue +# 2406| getVariableAccess(): [VariableAccess] x +# 2406| Type = [PlainCharType] char +# 2406| ValueCategory = prvalue(load) +# 2406| getVariableAccess().getFullyConverted(): [CStyleCast] (int)... +# 2406| Conversion = [IntegralConversion] integral conversion +# 2406| Type = [IntType] int +# 2406| ValueCategory = prvalue +# 2406| getStmt(): [BlockStmt] { ... } +# 2407| getStmt(0): [SwitchCase] case ...: +# 2407| getExpr(): [CharLiteral] 97 +# 2407| Type = [PlainCharType] char +# 2407| Value = [CharLiteral] 97 +# 2407| ValueCategory = prvalue +# 2407| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2407| Conversion = [IntegralConversion] integral conversion +# 2407| Type = [IntType] int +# 2407| Value = [CStyleCast] 97 +# 2407| ValueCategory = prvalue +# 2408| getStmt(1): [ExprStmt] ExprStmt +# 2408| getExpr(): [PostfixIncrExpr] ... ++ +# 2408| Type = [PlainCharType] char +# 2408| ValueCategory = prvalue +# 2408| getOperand(): [VariableAccess] x +# 2408| Type = [PlainCharType] char +# 2408| ValueCategory = lvalue +# 2411| getStmt(4): [SwitchStmt] switch (...) ... +# 2411| getInitialization(): [DeclStmt] declaration +# 2411| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2411| Type = [PlainCharType] char +# 2411| getVariable().getInitializer(): [Initializer] initializer for x +# 2411| getExpr(): [FunctionCall] call to get_x +# 2411| Type = [PlainCharType] char +# 2411| ValueCategory = prvalue +# 2411| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2411| Type = [VoidType] void +# 2411| ValueCategory = prvalue +# 2411| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2411| Type = [Class] ClassWithDestructor +# 2411| ValueCategory = prvalue(load) +# 2411| getExpr(): [VariableAccess] x +# 2411| Type = [PlainCharType] char +# 2411| ValueCategory = prvalue(load) +# 2411| getStmt(): [BlockStmt] { ... } +# 2412| getStmt(0): [SwitchCase] case ...: +# 2412| getExpr(): [CharLiteral] 97 +# 2412| Type = [PlainCharType] char +# 2412| Value = [CharLiteral] 97 +# 2412| ValueCategory = prvalue +# 2412| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2412| Conversion = [IntegralConversion] integral conversion +# 2412| Type = [IntType] int +# 2412| Value = [CStyleCast] 97 +# 2412| ValueCategory = prvalue +# 2413| getStmt(1): [ExprStmt] ExprStmt +# 2413| getExpr(): [PostfixIncrExpr] ... ++ +# 2413| Type = [PlainCharType] char +# 2413| ValueCategory = prvalue +# 2413| getOperand(): [VariableAccess] x +# 2413| Type = [PlainCharType] char +# 2413| ValueCategory = lvalue +# 2411| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2411| Conversion = [IntegralConversion] integral conversion +# 2411| Type = [IntType] int +# 2411| ValueCategory = prvalue +# 2416| getStmt(5): [RangeBasedForStmt] for(...:...) ... +# 2416| getInitialization(): [DeclStmt] declaration +# 2416| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x +# 2416| Type = [PlainCharType] char +# 2416| getVariable().getInitializer(): [Initializer] initializer for x +# 2416| getExpr(): [FunctionCall] call to get_x +# 2416| Type = [PlainCharType] char +# 2416| ValueCategory = prvalue +# 2416| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2416| Type = [VoidType] void +# 2416| ValueCategory = prvalue +# 2416| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2416| Type = [Class] ClassWithDestructor +# 2416| ValueCategory = prvalue(load) +# 2416| getChild(1): [DeclStmt] declaration +# 2416| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range) +# 2416| Type = [RValueReferenceType] vector<char> && +#-----| getVariable().getInitializer(): [Initializer] initializer for (__range) +# 2416| getExpr(): [ConstructorCall] call to vector +# 2416| Type = [VoidType] void +# 2416| ValueCategory = prvalue +# 2416| getArgument(0): [VariableAccess] x +# 2416| Type = [PlainCharType] char +# 2416| ValueCategory = prvalue(load) +# 2416| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to) +# 2416| Type = [LValueReferenceType] vector<char> & +# 2416| ValueCategory = prvalue +# 2416| getExpr(): [TemporaryObjectExpr] temporary object +# 2416| Type = [ClassTemplateInstantiation,Struct] vector<char> +# 2416| ValueCategory = xvalue +# 2416| getBeginEndDeclaration(): [DeclStmt] declaration +# 2416| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin) +# 2416| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin) +# 2416| getExpr(): [FunctionCall] call to begin +# 2416| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2416| ValueCategory = prvalue +# 2416| getQualifier(): [VariableAccess] (__range) +# 2416| Type = [RValueReferenceType] vector<char> && +# 2416| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<char>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<char> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<char> +#-----| ValueCategory = lvalue +# 2416| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end) +# 2416| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +#-----| getVariable().getInitializer(): [Initializer] initializer for (__end) +# 2416| getExpr(): [FunctionCall] call to end +# 2416| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2416| ValueCategory = prvalue +# 2416| getQualifier(): [VariableAccess] (__range) +# 2416| Type = [RValueReferenceType] vector<char> && +# 2416| ValueCategory = prvalue(load) +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<char>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const vector<char> +#-----| ValueCategory = lvalue +#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference) +#-----| Type = [ClassTemplateInstantiation,Struct] vector<char> +#-----| ValueCategory = lvalue +# 2416| getCondition(): [FunctionCall] call to operator!= +# 2416| Type = [BoolType] bool +# 2416| ValueCategory = prvalue +# 2416| getQualifier(): [VariableAccess] (__begin) +# 2416| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2416| ValueCategory = lvalue +# 2416| getArgument(0): [ConstructorCall] call to iterator +# 2416| Type = [VoidType] void +# 2416| ValueCategory = prvalue +# 2416| getArgument(0): [VariableAccess] (__end) +# 2416| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2416| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [ReferenceToExpr] (reference to) +#-----| Type = [LValueReferenceType] const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> & +#-----| ValueCategory = prvalue +#-----| getExpr(): [CStyleCast] (const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> +#-----| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> +#-----| ValueCategory = lvalue +#-----| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object +#-----| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> +#-----| ValueCategory = lvalue +# 2416| getUpdate(): [FunctionCall] call to operator++ +# 2416| Type = [LValueReferenceType] iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> & +# 2416| ValueCategory = prvalue +# 2416| getQualifier(): [VariableAccess] (__begin) +# 2416| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2416| ValueCategory = lvalue +# 2416| getChild(5): [DeclStmt] declaration +# 2416| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2416| Type = [PlainCharType] char +# 2416| getVariable().getInitializer(): [Initializer] initializer for y +# 2416| getExpr(): [OverloadedPointerDereferenceExpr] call to operator* +# 2416| Type = [LValueReferenceType] char & +# 2416| ValueCategory = prvalue +# 2416| getQualifier(): [VariableAccess] (__begin) +# 2416| Type = [NestedTypedefType,UsingAliasTypedefType] iterator +# 2416| ValueCategory = lvalue +#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>)... +#-----| Conversion = [GlvalueConversion] glvalue conversion +#-----| Type = [SpecifiedType] const iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> +#-----| ValueCategory = lvalue +# 2416| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2416| Type = [PlainCharType] char +# 2416| ValueCategory = prvalue(load) +# 2417| getStmt(): [ExprStmt] ExprStmt +# 2417| getExpr(): [AssignAddExpr] ... += ... +# 2417| Type = [PlainCharType] char +# 2417| ValueCategory = lvalue +# 2417| getLValue(): [VariableAccess] y +# 2417| Type = [PlainCharType] char +# 2417| ValueCategory = lvalue +# 2417| getRValue(): [VariableAccess] x +# 2417| Type = [PlainCharType] char +# 2417| ValueCategory = prvalue(load) +# 2417| getRValue().getFullyConverted(): [CStyleCast] (int)... +# 2417| Conversion = [IntegralConversion] integral conversion +# 2417| Type = [IntType] int +# 2417| ValueCategory = prvalue +# 2416| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) +# 2416| Type = [ClassTemplateInstantiation,Struct] iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> +# 2416| ValueCategory = lvalue +# 2418| getStmt(6): [ReturnStmt] return ... perf-regression.cpp: # 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&) # 4| <params>: 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 588aa16238b..e80688b355a 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -15165,6 +15165,295 @@ ir.cpp: # 2392| v2392_7(void) = AliasedUse : m2392_3 # 2392| v2392_8(void) = ExitFunction : +# 2396| void initialization_with_temp_destructor() +# 2396| Block 0 +# 2396| v2396_1(void) = EnterFunction : +# 2396| m2396_2(unknown) = AliasedDefinition : +# 2396| m2396_3(unknown) = InitializeNonLocal : +# 2396| m2396_4(unknown) = Chi : total:m2396_2, partial:m2396_3 +# 2397| r2397_1(glval<char>) = VariableAddress[x] : +# 2397| r2397_2(glval<ClassWithDestructor>) = VariableAddress[#temp2397:18] : +# 2397| m2397_3(ClassWithDestructor) = Uninitialized[#temp2397:18] : &:r2397_2 +# 2397| r2397_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2397| v2397_5(void) = Call[ClassWithDestructor] : func:r2397_4, this:r2397_2 +# 2397| m2397_6(unknown) = ^CallSideEffect : ~m2396_4 +# 2397| m2397_7(unknown) = Chi : total:m2396_4, partial:m2397_6 +# 2397| m2397_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2397_2 +# 2397| m2397_9(ClassWithDestructor) = Chi : total:m2397_3, partial:m2397_8 +# 2397| r2397_10(glval<unknown>) = FunctionAddress[get_x] : +# 2397| r2397_11(char) = Call[get_x] : func:r2397_10, this:r2397_2 +# 2397| m2397_12(unknown) = ^CallSideEffect : ~m2397_7 +# 2397| m2397_13(unknown) = Chi : total:m2397_7, partial:m2397_12 +# 2397| v2397_14(void) = ^IndirectReadSideEffect[-1] : &:r2397_2, m2397_9 +# 2397| m2397_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2397_2 +# 2397| m2397_16(ClassWithDestructor) = Chi : total:m2397_9, partial:m2397_15 +# 2397| m2397_17(char) = Store[x] : &:r2397_1, r2397_11 +# 2397| r2397_18(glval<char>) = VariableAddress[x] : +# 2397| r2397_19(char) = Load[x] : &:r2397_18, m2397_17 +# 2397| r2397_20(char) = Constant[0] : +# 2397| r2397_21(bool) = CompareNE : r2397_19, r2397_20 +# 2397| r2397_22(bool) = CopyValue : r2397_21 +# 2397| v2397_23(void) = ConditionalBranch : r2397_22 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2398| Block 1 +# 2398| r2398_1(glval<char>) = VariableAddress[x] : +# 2398| r2398_2(char) = Load[x] : &:r2398_1, m2397_17 +# 2398| r2398_3(char) = Constant[1] : +# 2398| r2398_4(char) = Add : r2398_2, r2398_3 +# 2398| m2398_5(char) = Store[x] : &:r2398_1, r2398_4 +#-----| Goto -> Block 2 + +# 2400| Block 2 +# 2400| r2400_1(glval<char>) = VariableAddress[x] : +# 2400| r2400_2(glval<ClassWithDestructor>) = VariableAddress[#temp2400:18] : +# 2400| m2400_3(ClassWithDestructor) = Uninitialized[#temp2400:18] : &:r2400_2 +# 2400| r2400_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2400| v2400_5(void) = Call[ClassWithDestructor] : func:r2400_4, this:r2400_2 +# 2400| m2400_6(unknown) = ^CallSideEffect : ~m2397_13 +# 2400| m2400_7(unknown) = Chi : total:m2397_13, partial:m2400_6 +# 2400| m2400_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2400_2 +# 2400| m2400_9(ClassWithDestructor) = Chi : total:m2400_3, partial:m2400_8 +# 2400| r2400_10(glval<unknown>) = FunctionAddress[get_x] : +# 2400| r2400_11(char) = Call[get_x] : func:r2400_10, this:r2400_2 +# 2400| m2400_12(unknown) = ^CallSideEffect : ~m2400_7 +# 2400| m2400_13(unknown) = Chi : total:m2400_7, partial:m2400_12 +# 2400| v2400_14(void) = ^IndirectReadSideEffect[-1] : &:r2400_2, m2400_9 +# 2400| m2400_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2400_2 +# 2400| m2400_16(ClassWithDestructor) = Chi : total:m2400_9, partial:m2400_15 +# 2400| m2400_17(char) = Store[x] : &:r2400_1, r2400_11 +# 2400| r2400_18(glval<char>) = VariableAddress[x] : +# 2400| r2400_19(char) = Load[x] : &:r2400_18, m2400_17 +# 2400| r2400_20(char) = Constant[0] : +# 2400| r2400_21(bool) = CompareNE : r2400_19, r2400_20 +# 2400| v2400_22(void) = ConditionalBranch : r2400_21 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 2401| Block 3 +# 2401| r2401_1(glval<char>) = VariableAddress[x] : +# 2401| r2401_2(char) = Load[x] : &:r2401_1, m2400_17 +# 2401| r2401_3(char) = Constant[1] : +# 2401| r2401_4(char) = Add : r2401_2, r2401_3 +# 2401| m2401_5(char) = Store[x] : &:r2401_1, r2401_4 +#-----| Goto -> Block 4 + +# 2403| Block 4 +# 2403| r2403_1(glval<char>) = VariableAddress[x] : +# 2403| r2403_2(glval<ClassWithDestructor>) = VariableAddress[#temp2403:28] : +# 2403| m2403_3(ClassWithDestructor) = Uninitialized[#temp2403:28] : &:r2403_2 +# 2403| r2403_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2403| v2403_5(void) = Call[ClassWithDestructor] : func:r2403_4, this:r2403_2 +# 2403| m2403_6(unknown) = ^CallSideEffect : ~m2400_13 +# 2403| m2403_7(unknown) = Chi : total:m2400_13, partial:m2403_6 +# 2403| m2403_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2403_2 +# 2403| m2403_9(ClassWithDestructor) = Chi : total:m2403_3, partial:m2403_8 +# 2403| r2403_10(glval<unknown>) = FunctionAddress[get_x] : +# 2403| r2403_11(char) = Call[get_x] : func:r2403_10, this:r2403_2 +# 2403| m2403_12(unknown) = ^CallSideEffect : ~m2403_7 +# 2403| m2403_13(unknown) = Chi : total:m2403_7, partial:m2403_12 +# 2403| v2403_14(void) = ^IndirectReadSideEffect[-1] : &:r2403_2, m2403_9 +# 2403| m2403_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2403_2 +# 2403| m2403_16(ClassWithDestructor) = Chi : total:m2403_9, partial:m2403_15 +# 2403| m2403_17(char) = Store[x] : &:r2403_1, r2403_11 +# 2403| r2403_18(bool) = Constant[1] : +# 2403| v2403_19(void) = ConditionalBranch : r2403_18 +#-----| False -> Block 13 +#-----| True -> Block 5 + +# 2404| Block 5 +# 2404| r2404_1(glval<char>) = VariableAddress[x] : +# 2404| r2404_2(char) = Load[x] : &:r2404_1, m2403_17 +# 2404| r2404_3(char) = Constant[1] : +# 2404| r2404_4(char) = Add : r2404_2, r2404_3 +# 2404| m2404_5(char) = Store[x] : &:r2404_1, r2404_4 +# 2406| r2406_1(glval<char>) = VariableAddress[x] : +# 2406| r2406_2(glval<ClassWithDestructor>) = VariableAddress[#temp2406:21] : +# 2406| m2406_3(ClassWithDestructor) = Uninitialized[#temp2406:21] : &:r2406_2 +# 2406| r2406_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2406| v2406_5(void) = Call[ClassWithDestructor] : func:r2406_4, this:r2406_2 +# 2406| m2406_6(unknown) = ^CallSideEffect : ~m2403_13 +# 2406| m2406_7(unknown) = Chi : total:m2403_13, partial:m2406_6 +# 2406| m2406_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2406_2 +# 2406| m2406_9(ClassWithDestructor) = Chi : total:m2406_3, partial:m2406_8 +# 2406| r2406_10(glval<unknown>) = FunctionAddress[get_x] : +# 2406| r2406_11(char) = Call[get_x] : func:r2406_10, this:r2406_2 +# 2406| m2406_12(unknown) = ^CallSideEffect : ~m2406_7 +# 2406| m2406_13(unknown) = Chi : total:m2406_7, partial:m2406_12 +# 2406| v2406_14(void) = ^IndirectReadSideEffect[-1] : &:r2406_2, m2406_9 +# 2406| m2406_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2406_2 +# 2406| m2406_16(ClassWithDestructor) = Chi : total:m2406_9, partial:m2406_15 +# 2406| m2406_17(char) = Store[x] : &:r2406_1, r2406_11 +# 2406| r2406_18(glval<char>) = VariableAddress[x] : +# 2406| r2406_19(char) = Load[x] : &:r2406_18, m2406_17 +# 2406| r2406_20(int) = Convert : r2406_19 +# 2406| r2406_21(int) = CopyValue : r2406_20 +# 2406| v2406_22(void) = Switch : r2406_21 +#-----| Case[97] -> Block 6 +#-----| Default -> Block 7 + +# 2407| Block 6 +# 2407| v2407_1(void) = NoOp : +# 2408| r2408_1(glval<char>) = VariableAddress[x] : +# 2408| r2408_2(char) = Load[x] : &:r2408_1, m2406_17 +# 2408| r2408_3(char) = Constant[1] : +# 2408| r2408_4(char) = Add : r2408_2, r2408_3 +# 2408| m2408_5(char) = Store[x] : &:r2408_1, r2408_4 +#-----| Goto -> Block 7 + +# 2411| Block 7 +# 2411| r2411_1(glval<char>) = VariableAddress[x] : +# 2411| r2411_2(glval<ClassWithDestructor>) = VariableAddress[#temp2411:21] : +# 2411| m2411_3(ClassWithDestructor) = Uninitialized[#temp2411:21] : &:r2411_2 +# 2411| r2411_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2411| v2411_5(void) = Call[ClassWithDestructor] : func:r2411_4, this:r2411_2 +# 2411| m2411_6(unknown) = ^CallSideEffect : ~m2406_13 +# 2411| m2411_7(unknown) = Chi : total:m2406_13, partial:m2411_6 +# 2411| m2411_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2411_2 +# 2411| m2411_9(ClassWithDestructor) = Chi : total:m2411_3, partial:m2411_8 +# 2411| r2411_10(glval<unknown>) = FunctionAddress[get_x] : +# 2411| r2411_11(char) = Call[get_x] : func:r2411_10, this:r2411_2 +# 2411| m2411_12(unknown) = ^CallSideEffect : ~m2411_7 +# 2411| m2411_13(unknown) = Chi : total:m2411_7, partial:m2411_12 +# 2411| v2411_14(void) = ^IndirectReadSideEffect[-1] : &:r2411_2, m2411_9 +# 2411| m2411_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2411_2 +# 2411| m2411_16(ClassWithDestructor) = Chi : total:m2411_9, partial:m2411_15 +# 2411| m2411_17(char) = Store[x] : &:r2411_1, r2411_11 +# 2411| r2411_18(glval<char>) = VariableAddress[x] : +# 2411| r2411_19(char) = Load[x] : &:r2411_18, m2411_17 +# 2411| r2411_20(int) = Convert : r2411_19 +# 2411| v2411_21(void) = Switch : r2411_20 +#-----| Case[97] -> Block 8 +#-----| Default -> Block 9 + +# 2412| Block 8 +# 2412| v2412_1(void) = NoOp : +# 2413| r2413_1(glval<char>) = VariableAddress[x] : +# 2413| r2413_2(char) = Load[x] : &:r2413_1, m2411_17 +# 2413| r2413_3(char) = Constant[1] : +# 2413| r2413_4(char) = Add : r2413_2, r2413_3 +# 2413| m2413_5(char) = Store[x] : &:r2413_1, r2413_4 +#-----| Goto -> Block 9 + +# 2416| Block 9 +# 2416| r2416_1(glval<char>) = VariableAddress[x] : +# 2416| r2416_2(glval<ClassWithDestructor>) = VariableAddress[#temp2416:18] : +# 2416| m2416_3(ClassWithDestructor) = Uninitialized[#temp2416:18] : &:r2416_2 +# 2416| r2416_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2416| v2416_5(void) = Call[ClassWithDestructor] : func:r2416_4, this:r2416_2 +# 2416| m2416_6(unknown) = ^CallSideEffect : ~m2411_13 +# 2416| m2416_7(unknown) = Chi : total:m2411_13, partial:m2416_6 +# 2416| m2416_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2416_2 +# 2416| m2416_9(ClassWithDestructor) = Chi : total:m2416_3, partial:m2416_8 +# 2416| r2416_10(glval<unknown>) = FunctionAddress[get_x] : +# 2416| r2416_11(char) = Call[get_x] : func:r2416_10, this:r2416_2 +# 2416| m2416_12(unknown) = ^CallSideEffect : ~m2416_7 +# 2416| m2416_13(unknown) = Chi : total:m2416_7, partial:m2416_12 +# 2416| v2416_14(void) = ^IndirectReadSideEffect[-1] : &:r2416_2, m2416_9 +# 2416| m2416_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2416_2 +# 2416| m2416_16(ClassWithDestructor) = Chi : total:m2416_9, partial:m2416_15 +# 2416| m2416_17(char) = Store[x] : &:r2416_1, r2416_11 +# 2416| r2416_18(glval<vector<char> &&>) = VariableAddress[(__range)] : +# 2416| r2416_19(glval<vector<char>>) = VariableAddress[#temp2416:58] : +# 2416| m2416_20(vector<char>) = Uninitialized[#temp2416:58] : &:r2416_19 +# 2416| r2416_21(glval<unknown>) = FunctionAddress[vector] : +# 2416| r2416_22(glval<char>) = VariableAddress[x] : +# 2416| r2416_23(char) = Load[x] : &:r2416_22, m2416_17 +# 2416| v2416_24(void) = Call[vector] : func:r2416_21, this:r2416_19, 0:r2416_23 +# 2416| m2416_25(unknown) = ^CallSideEffect : ~m2416_13 +# 2416| m2416_26(unknown) = Chi : total:m2416_13, partial:m2416_25 +# 2416| m2416_27(vector<char>) = ^IndirectMayWriteSideEffect[-1] : &:r2416_19 +# 2416| m2416_28(vector<char>) = Chi : total:m2416_20, partial:m2416_27 +# 2416| r2416_29(vector<char> &) = CopyValue : r2416_19 +# 2416| m2416_30(vector<char> &&) = Store[(__range)] : &:r2416_18, r2416_29 +# 2416| r2416_31(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__begin)] : +# 2416| r2416_32(glval<vector<char> &&>) = VariableAddress[(__range)] : +# 2416| r2416_33(vector<char> &&) = Load[(__range)] : &:r2416_32, m2416_30 +#-----| r0_1(glval<vector<char>>) = CopyValue : r2416_33 +#-----| r0_2(glval<vector<char>>) = Convert : r0_1 +# 2416| r2416_34(glval<unknown>) = FunctionAddress[begin] : +# 2416| r2416_35(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Call[begin] : func:r2416_34, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2416_28 +# 2416| m2416_36(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Store[(__begin)] : &:r2416_31, r2416_35 +# 2416| r2416_37(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__end)] : +# 2416| r2416_38(glval<vector<char> &&>) = VariableAddress[(__range)] : +# 2416| r2416_39(vector<char> &&) = Load[(__range)] : &:r2416_38, m2416_30 +#-----| r0_4(glval<vector<char>>) = CopyValue : r2416_39 +#-----| r0_5(glval<vector<char>>) = Convert : r0_4 +# 2416| r2416_40(glval<unknown>) = FunctionAddress[end] : +# 2416| r2416_41(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Call[end] : func:r2416_40, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2416_28 +# 2416| m2416_42(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Store[(__end)] : &:r2416_37, r2416_41 +#-----| Goto -> Block 10 + +# 2416| Block 10 +# 2416| m2416_43(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Phi : from 9:m2416_36, from 11:m2416_73 +# 2416| m2416_44(unknown) = Phi : from 9:~m2416_26, from 11:~m2416_70 +# 2416| r2416_45(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = Convert : r2416_45 +# 2416| r2416_46(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[#temp0:0] : +#-----| m0_9(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Uninitialized[#temp0:0] : &:r0_8 +# 2416| r2416_47(glval<unknown>) = FunctionAddress[iterator] : +# 2416| r2416_48(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = Convert : r2416_48 +#-----| r0_11(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> &) = CopyValue : r0_10 +# 2416| v2416_49(void) = Call[iterator] : func:r2416_47, this:r0_8, 0:r0_11 +# 2416| m2416_50(unknown) = ^CallSideEffect : ~m2416_44 +# 2416| m2416_51(unknown) = Chi : total:m2416_44, partial:m2416_50 +#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m2416_42 +# 2416| m2416_52(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2416| m2416_53(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Chi : total:m0_9, partial:m2416_52 +#-----| r0_13(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Load[#temp0:0] : &:r0_8, m2416_53 +# 2416| r2416_54(bool) = Call[operator!=] : func:r2416_46, this:r0_7, 0:r0_13 +# 2416| m2416_55(unknown) = ^CallSideEffect : ~m2416_51 +# 2416| m2416_56(unknown) = Chi : total:m2416_51, partial:m2416_55 +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2416_43 +# 2416| v2416_57(void) = ConditionalBranch : r2416_54 +#-----| False -> Block 12 +#-----| True -> Block 11 + +# 2416| Block 11 +# 2416| r2416_58(glval<char>) = VariableAddress[y] : +# 2416| r2416_59(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = Convert : r2416_59 +# 2416| r2416_60(glval<unknown>) = FunctionAddress[operator*] : +# 2416| r2416_61(char &) = Call[operator*] : func:r2416_60, this:r0_15 +# 2416| m2416_62(unknown) = ^CallSideEffect : ~m2416_56 +# 2416| m2416_63(unknown) = Chi : total:m2416_56, partial:m2416_62 +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, m2416_43 +# 2416| r2416_64(char) = Load[?] : &:r2416_61, ~m2416_63 +# 2416| m2416_65(char) = Store[y] : &:r2416_58, r2416_64 +# 2417| r2417_1(glval<char>) = VariableAddress[x] : +# 2417| r2417_2(char) = Load[x] : &:r2417_1, m2416_17 +# 2417| r2417_3(int) = Convert : r2417_2 +# 2417| r2417_4(glval<char>) = VariableAddress[y] : +# 2417| r2417_5(char) = Load[y] : &:r2417_4, m2416_65 +# 2417| r2417_6(int) = Convert : r2417_5 +# 2417| r2417_7(int) = Add : r2417_6, r2417_3 +# 2417| r2417_8(char) = Convert : r2417_7 +# 2417| m2417_9(char) = Store[y] : &:r2417_4, r2417_8 +# 2416| r2416_66(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__begin)] : +# 2416| r2416_67(glval<unknown>) = FunctionAddress[operator++] : +# 2416| r2416_68(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> &) = Call[operator++] : func:r2416_67, this:r2416_66 +# 2416| m2416_69(unknown) = ^CallSideEffect : ~m2416_63 +# 2416| m2416_70(unknown) = Chi : total:m2416_63, partial:m2416_69 +# 2416| v2416_71(void) = ^IndirectReadSideEffect[-1] : &:r2416_66, m2416_43 +# 2416| m2416_72(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = ^IndirectMayWriteSideEffect[-1] : &:r2416_66 +# 2416| m2416_73(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Chi : total:m2416_43, partial:m2416_72 +# 2416| r2416_74(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = CopyValue : r2416_68 +#-----| Goto (back edge) -> Block 10 + +# 2418| Block 12 +# 2418| v2418_1(void) = NoOp : +# 2396| v2396_5(void) = ReturnVoid : +# 2396| v2396_6(void) = AliasedUse : ~m2416_56 +# 2396| v2396_7(void) = ExitFunction : + +# 2396| Block 13 +# 2396| v2396_8(void) = Unreached : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index 2f51b63dff1..67327ddc846 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -2393,4 +2393,28 @@ int large_operation_should_be_constant_folded() { return BINOP64(1); } +void initialization_with_temp_destructor() { + if (char x = ClassWithDestructor().get_x()) + x++; + + if (char x = ClassWithDestructor().get_x(); x) + x++; + + if constexpr (char x = ClassWithDestructor().get_x(); initialization_with_destructor_bool) + x++; + + switch(char x = ClassWithDestructor().get_x()) { + case 'a': + x++; + } + + switch(char x = ClassWithDestructor().get_x(); x) { + case 'a': + x++; + } + + for(char x = ClassWithDestructor().get_x(); char y : std::vector<char>(x)) + y += x; +} + // semmle-extractor-options: -std=c++20 --clang diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index add30395130..912d2984956 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -1127,6 +1127,7 @@ | file://:0:0:0:0 | Address | &:r0_2 | | file://:0:0:0:0 | Address | &:r0_2 | | file://:0:0:0:0 | Address | &:r0_2 | +| file://:0:0:0:0 | Address | &:r0_2 | | file://:0:0:0:0 | Address | &:r0_3 | | file://:0:0:0:0 | Address | &:r0_3 | | file://:0:0:0:0 | Address | &:r0_3 | @@ -1176,6 +1177,7 @@ | file://:0:0:0:0 | Address | &:r0_5 | | file://:0:0:0:0 | Address | &:r0_5 | | file://:0:0:0:0 | Address | &:r0_5 | +| file://:0:0:0:0 | Address | &:r0_5 | | file://:0:0:0:0 | Address | &:r0_6 | | file://:0:0:0:0 | Address | &:r0_6 | | file://:0:0:0:0 | Address | &:r0_6 | @@ -1186,6 +1188,10 @@ | file://:0:0:0:0 | Address | &:r0_7 | | file://:0:0:0:0 | Address | &:r0_7 | | file://:0:0:0:0 | Address | &:r0_7 | +| file://:0:0:0:0 | Address | &:r0_7 | +| file://:0:0:0:0 | Address | &:r0_8 | +| file://:0:0:0:0 | Address | &:r0_8 | +| file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_8 | @@ -1208,6 +1214,7 @@ | file://:0:0:0:0 | Address | &:r0_11 | | file://:0:0:0:0 | Address | &:r0_11 | | file://:0:0:0:0 | Address | &:r0_11 | +| file://:0:0:0:0 | Address | &:r0_11 | | file://:0:0:0:0 | Address | &:r0_13 | | file://:0:0:0:0 | Address | &:r0_13 | | file://:0:0:0:0 | Address | &:r0_13 | @@ -1217,6 +1224,7 @@ | file://:0:0:0:0 | Address | &:r0_15 | | file://:0:0:0:0 | Address | &:r0_15 | | file://:0:0:0:0 | Address | &:r0_15 | +| file://:0:0:0:0 | Address | &:r0_15 | | file://:0:0:0:0 | Address | &:r0_16 | | file://:0:0:0:0 | Address | &:r0_16 | | file://:0:0:0:0 | Address | &:r0_16 | @@ -1265,6 +1273,8 @@ | file://:0:0:0:0 | Arg(0) | 0:r0_11 | | file://:0:0:0:0 | Arg(0) | 0:r0_11 | | file://:0:0:0:0 | Arg(0) | 0:r0_11 | +| file://:0:0:0:0 | Arg(0) | 0:r0_11 | +| file://:0:0:0:0 | Arg(0) | 0:r0_13 | | file://:0:0:0:0 | Arg(0) | 0:r0_13 | | file://:0:0:0:0 | Arg(0) | 0:r0_13 | | file://:0:0:0:0 | Arg(0) | 0:r0_15 | @@ -1363,6 +1373,7 @@ | file://:0:0:0:0 | Load | m2210_36 | | file://:0:0:0:0 | Load | m2215_40 | | file://:0:0:0:0 | Load | m2293_46 | +| file://:0:0:0:0 | Load | m2416_53 | | file://:0:0:0:0 | Load | ~m0_4 | | file://:0:0:0:0 | Load | ~m1493_6 | | file://:0:0:0:0 | Load | ~m1761_10 | @@ -1412,6 +1423,10 @@ | file://:0:0:0:0 | SideEffect | m2293_21 | | file://:0:0:0:0 | SideEffect | m2293_36 | | file://:0:0:0:0 | SideEffect | m2293_36 | +| file://:0:0:0:0 | SideEffect | m2416_28 | +| file://:0:0:0:0 | SideEffect | m2416_28 | +| file://:0:0:0:0 | SideEffect | m2416_43 | +| file://:0:0:0:0 | SideEffect | m2416_43 | | file://:0:0:0:0 | SideEffect | ~m0_4 | | file://:0:0:0:0 | SideEffect | ~m0_4 | | file://:0:0:0:0 | SideEffect | ~m0_4 | @@ -1438,6 +1453,7 @@ | file://:0:0:0:0 | SideEffect | ~m2226_4 | | file://:0:0:0:0 | SideEffect | ~m2233_6 | | file://:0:0:0:0 | SideEffect | ~m2293_35 | +| file://:0:0:0:0 | SideEffect | ~m2416_42 | | file://:0:0:0:0 | StoreValue | r0_1 | | file://:0:0:0:0 | StoreValue | r0_1 | | file://:0:0:0:0 | StoreValue | r0_1 | @@ -1469,10 +1485,12 @@ | file://:0:0:0:0 | Unary | r0_1 | | file://:0:0:0:0 | Unary | r0_1 | | file://:0:0:0:0 | Unary | r0_1 | +| file://:0:0:0:0 | Unary | r0_1 | | file://:0:0:0:0 | Unary | r0_2 | | file://:0:0:0:0 | Unary | r0_3 | | file://:0:0:0:0 | Unary | r0_4 | | file://:0:0:0:0 | Unary | r0_4 | +| file://:0:0:0:0 | Unary | r0_4 | | file://:0:0:0:0 | Unary | r0_5 | | file://:0:0:0:0 | Unary | r0_5 | | file://:0:0:0:0 | Unary | r0_6 | @@ -1497,6 +1515,7 @@ | file://:0:0:0:0 | Unary | r0_10 | | file://:0:0:0:0 | Unary | r0_10 | | file://:0:0:0:0 | Unary | r0_10 | +| file://:0:0:0:0 | Unary | r0_10 | | file://:0:0:0:0 | Unary | r0_11 | | file://:0:0:0:0 | Unary | r0_12 | | file://:0:0:0:0 | Unary | r0_14 | @@ -12546,6 +12565,266 @@ | ir.cpp:2392:5:2392:45 | SideEffect | m2392_3 | | ir.cpp:2393:5:2393:22 | Address | &:r2393_1 | | ir.cpp:2393:12:2393:21 | StoreValue | r2393_2 | +| ir.cpp:2396:6:2396:40 | ChiPartial | partial:m2396_3 | +| ir.cpp:2396:6:2396:40 | ChiTotal | total:m2396_2 | +| ir.cpp:2396:6:2396:40 | SideEffect | ~m2416_56 | +| ir.cpp:2397:9:2397:46 | Address | &:r2397_1 | +| ir.cpp:2397:9:2397:46 | Condition | r2397_22 | +| ir.cpp:2397:14:2397:14 | Address | &:r2397_18 | +| ir.cpp:2397:14:2397:14 | Left | r2397_19 | +| ir.cpp:2397:14:2397:14 | Load | m2397_17 | +| ir.cpp:2397:14:2397:14 | Right | r2397_20 | +| ir.cpp:2397:14:2397:14 | Unary | r2397_21 | +| ir.cpp:2397:18:2397:38 | Address | &:r2397_2 | +| ir.cpp:2397:18:2397:38 | Address | &:r2397_2 | +| ir.cpp:2397:18:2397:38 | Address | &:r2397_2 | +| ir.cpp:2397:18:2397:38 | Address | &:r2397_2 | +| ir.cpp:2397:18:2397:38 | Arg(this) | this:r2397_2 | +| ir.cpp:2397:18:2397:38 | Arg(this) | this:r2397_2 | +| ir.cpp:2397:18:2397:38 | CallTarget | func:r2397_4 | +| ir.cpp:2397:18:2397:38 | ChiPartial | partial:m2397_6 | +| ir.cpp:2397:18:2397:38 | ChiPartial | partial:m2397_8 | +| ir.cpp:2397:18:2397:38 | ChiPartial | partial:m2397_15 | +| ir.cpp:2397:18:2397:38 | ChiTotal | total:m2396_4 | +| ir.cpp:2397:18:2397:38 | ChiTotal | total:m2397_3 | +| ir.cpp:2397:18:2397:38 | ChiTotal | total:m2397_9 | +| ir.cpp:2397:18:2397:38 | SideEffect | m2397_9 | +| ir.cpp:2397:18:2397:38 | SideEffect | ~m2396_4 | +| ir.cpp:2397:40:2397:44 | CallTarget | func:r2397_10 | +| ir.cpp:2397:40:2397:44 | ChiPartial | partial:m2397_12 | +| ir.cpp:2397:40:2397:44 | ChiTotal | total:m2397_7 | +| ir.cpp:2397:40:2397:44 | SideEffect | ~m2397_7 | +| ir.cpp:2397:40:2397:44 | StoreValue | r2397_11 | +| ir.cpp:2398:9:2398:9 | Address | &:r2398_1 | +| ir.cpp:2398:9:2398:9 | Address | &:r2398_1 | +| ir.cpp:2398:9:2398:9 | Left | r2398_2 | +| ir.cpp:2398:9:2398:9 | Load | m2397_17 | +| ir.cpp:2398:9:2398:11 | Right | r2398_3 | +| ir.cpp:2398:9:2398:11 | StoreValue | r2398_4 | +| ir.cpp:2400:14:2400:14 | Address | &:r2400_1 | +| ir.cpp:2400:18:2400:38 | Address | &:r2400_2 | +| ir.cpp:2400:18:2400:38 | Address | &:r2400_2 | +| ir.cpp:2400:18:2400:38 | Address | &:r2400_2 | +| ir.cpp:2400:18:2400:38 | Address | &:r2400_2 | +| ir.cpp:2400:18:2400:38 | Arg(this) | this:r2400_2 | +| ir.cpp:2400:18:2400:38 | Arg(this) | this:r2400_2 | +| ir.cpp:2400:18:2400:38 | CallTarget | func:r2400_4 | +| ir.cpp:2400:18:2400:38 | ChiPartial | partial:m2400_6 | +| ir.cpp:2400:18:2400:38 | ChiPartial | partial:m2400_8 | +| ir.cpp:2400:18:2400:38 | ChiPartial | partial:m2400_15 | +| ir.cpp:2400:18:2400:38 | ChiTotal | total:m2397_13 | +| ir.cpp:2400:18:2400:38 | ChiTotal | total:m2400_3 | +| ir.cpp:2400:18:2400:38 | ChiTotal | total:m2400_9 | +| ir.cpp:2400:18:2400:38 | SideEffect | m2400_9 | +| ir.cpp:2400:18:2400:38 | SideEffect | ~m2397_13 | +| ir.cpp:2400:40:2400:44 | CallTarget | func:r2400_10 | +| ir.cpp:2400:40:2400:44 | ChiPartial | partial:m2400_12 | +| ir.cpp:2400:40:2400:44 | ChiTotal | total:m2400_7 | +| ir.cpp:2400:40:2400:44 | SideEffect | ~m2400_7 | +| ir.cpp:2400:40:2400:44 | StoreValue | r2400_11 | +| ir.cpp:2400:49:2400:49 | Address | &:r2400_18 | +| ir.cpp:2400:49:2400:49 | Condition | r2400_21 | +| ir.cpp:2400:49:2400:49 | Left | r2400_19 | +| ir.cpp:2400:49:2400:49 | Load | m2400_17 | +| ir.cpp:2400:49:2400:49 | Right | r2400_20 | +| ir.cpp:2401:9:2401:9 | Address | &:r2401_1 | +| ir.cpp:2401:9:2401:9 | Address | &:r2401_1 | +| ir.cpp:2401:9:2401:9 | Left | r2401_2 | +| ir.cpp:2401:9:2401:9 | Load | m2400_17 | +| ir.cpp:2401:9:2401:11 | Right | r2401_3 | +| ir.cpp:2401:9:2401:11 | StoreValue | r2401_4 | +| ir.cpp:2403:24:2403:24 | Address | &:r2403_1 | +| ir.cpp:2403:28:2403:48 | Address | &:r2403_2 | +| ir.cpp:2403:28:2403:48 | Address | &:r2403_2 | +| ir.cpp:2403:28:2403:48 | Address | &:r2403_2 | +| ir.cpp:2403:28:2403:48 | Address | &:r2403_2 | +| ir.cpp:2403:28:2403:48 | Arg(this) | this:r2403_2 | +| ir.cpp:2403:28:2403:48 | Arg(this) | this:r2403_2 | +| ir.cpp:2403:28:2403:48 | CallTarget | func:r2403_4 | +| ir.cpp:2403:28:2403:48 | ChiPartial | partial:m2403_6 | +| ir.cpp:2403:28:2403:48 | ChiPartial | partial:m2403_8 | +| ir.cpp:2403:28:2403:48 | ChiPartial | partial:m2403_15 | +| ir.cpp:2403:28:2403:48 | ChiTotal | total:m2400_13 | +| ir.cpp:2403:28:2403:48 | ChiTotal | total:m2403_3 | +| ir.cpp:2403:28:2403:48 | ChiTotal | total:m2403_9 | +| ir.cpp:2403:28:2403:48 | SideEffect | m2403_9 | +| ir.cpp:2403:28:2403:48 | SideEffect | ~m2400_13 | +| ir.cpp:2403:50:2403:54 | CallTarget | func:r2403_10 | +| ir.cpp:2403:50:2403:54 | ChiPartial | partial:m2403_12 | +| ir.cpp:2403:50:2403:54 | ChiTotal | total:m2403_7 | +| ir.cpp:2403:50:2403:54 | SideEffect | ~m2403_7 | +| ir.cpp:2403:50:2403:54 | StoreValue | r2403_11 | +| ir.cpp:2403:59:2403:93 | Condition | r2403_18 | +| ir.cpp:2404:9:2404:9 | Address | &:r2404_1 | +| ir.cpp:2404:9:2404:9 | Address | &:r2404_1 | +| ir.cpp:2404:9:2404:9 | Left | r2404_2 | +| ir.cpp:2404:9:2404:9 | Load | m2403_17 | +| ir.cpp:2404:9:2404:11 | Right | r2404_3 | +| ir.cpp:2404:9:2404:11 | StoreValue | r2404_4 | +| ir.cpp:2406:12:2406:49 | Address | &:r2406_1 | +| ir.cpp:2406:12:2406:49 | Condition | r2406_21 | +| ir.cpp:2406:17:2406:17 | Address | &:r2406_18 | +| ir.cpp:2406:17:2406:17 | Load | m2406_17 | +| ir.cpp:2406:17:2406:17 | Unary | r2406_19 | +| ir.cpp:2406:17:2406:17 | Unary | r2406_20 | +| ir.cpp:2406:21:2406:41 | Address | &:r2406_2 | +| ir.cpp:2406:21:2406:41 | Address | &:r2406_2 | +| ir.cpp:2406:21:2406:41 | Address | &:r2406_2 | +| ir.cpp:2406:21:2406:41 | Address | &:r2406_2 | +| ir.cpp:2406:21:2406:41 | Arg(this) | this:r2406_2 | +| ir.cpp:2406:21:2406:41 | Arg(this) | this:r2406_2 | +| ir.cpp:2406:21:2406:41 | CallTarget | func:r2406_4 | +| ir.cpp:2406:21:2406:41 | ChiPartial | partial:m2406_6 | +| ir.cpp:2406:21:2406:41 | ChiPartial | partial:m2406_8 | +| ir.cpp:2406:21:2406:41 | ChiPartial | partial:m2406_15 | +| ir.cpp:2406:21:2406:41 | ChiTotal | total:m2403_13 | +| ir.cpp:2406:21:2406:41 | ChiTotal | total:m2406_3 | +| ir.cpp:2406:21:2406:41 | ChiTotal | total:m2406_9 | +| ir.cpp:2406:21:2406:41 | SideEffect | m2406_9 | +| ir.cpp:2406:21:2406:41 | SideEffect | ~m2403_13 | +| ir.cpp:2406:43:2406:47 | CallTarget | func:r2406_10 | +| ir.cpp:2406:43:2406:47 | ChiPartial | partial:m2406_12 | +| ir.cpp:2406:43:2406:47 | ChiTotal | total:m2406_7 | +| ir.cpp:2406:43:2406:47 | SideEffect | ~m2406_7 | +| ir.cpp:2406:43:2406:47 | StoreValue | r2406_11 | +| ir.cpp:2408:11:2408:11 | Address | &:r2408_1 | +| ir.cpp:2408:11:2408:11 | Address | &:r2408_1 | +| ir.cpp:2408:11:2408:11 | Left | r2408_2 | +| ir.cpp:2408:11:2408:11 | Load | m2406_17 | +| ir.cpp:2408:11:2408:13 | Right | r2408_3 | +| ir.cpp:2408:11:2408:13 | StoreValue | r2408_4 | +| ir.cpp:2411:17:2411:17 | Address | &:r2411_1 | +| ir.cpp:2411:21:2411:41 | Address | &:r2411_2 | +| ir.cpp:2411:21:2411:41 | Address | &:r2411_2 | +| ir.cpp:2411:21:2411:41 | Address | &:r2411_2 | +| ir.cpp:2411:21:2411:41 | Address | &:r2411_2 | +| ir.cpp:2411:21:2411:41 | Arg(this) | this:r2411_2 | +| ir.cpp:2411:21:2411:41 | Arg(this) | this:r2411_2 | +| ir.cpp:2411:21:2411:41 | CallTarget | func:r2411_4 | +| ir.cpp:2411:21:2411:41 | ChiPartial | partial:m2411_6 | +| ir.cpp:2411:21:2411:41 | ChiPartial | partial:m2411_8 | +| ir.cpp:2411:21:2411:41 | ChiPartial | partial:m2411_15 | +| ir.cpp:2411:21:2411:41 | ChiTotal | total:m2406_13 | +| ir.cpp:2411:21:2411:41 | ChiTotal | total:m2411_3 | +| ir.cpp:2411:21:2411:41 | ChiTotal | total:m2411_9 | +| ir.cpp:2411:21:2411:41 | SideEffect | m2411_9 | +| ir.cpp:2411:21:2411:41 | SideEffect | ~m2406_13 | +| ir.cpp:2411:43:2411:47 | CallTarget | func:r2411_10 | +| ir.cpp:2411:43:2411:47 | ChiPartial | partial:m2411_12 | +| ir.cpp:2411:43:2411:47 | ChiTotal | total:m2411_7 | +| ir.cpp:2411:43:2411:47 | SideEffect | ~m2411_7 | +| ir.cpp:2411:43:2411:47 | StoreValue | r2411_11 | +| ir.cpp:2411:52:2411:52 | Address | &:r2411_18 | +| ir.cpp:2411:52:2411:52 | Condition | r2411_20 | +| ir.cpp:2411:52:2411:52 | Load | m2411_17 | +| ir.cpp:2411:52:2411:52 | Unary | r2411_19 | +| ir.cpp:2413:11:2413:11 | Address | &:r2413_1 | +| ir.cpp:2413:11:2413:11 | Address | &:r2413_1 | +| ir.cpp:2413:11:2413:11 | Left | r2413_2 | +| ir.cpp:2413:11:2413:11 | Load | m2411_17 | +| ir.cpp:2413:11:2413:13 | Right | r2413_3 | +| ir.cpp:2413:11:2413:13 | StoreValue | r2413_4 | +| ir.cpp:2416:5:2416:5 | Address | &:r2416_18 | +| ir.cpp:2416:5:2416:5 | Address | &:r2416_31 | +| ir.cpp:2416:5:2416:5 | Address | &:r2416_37 | +| ir.cpp:2416:14:2416:14 | Address | &:r2416_1 | +| ir.cpp:2416:18:2416:38 | Address | &:r2416_2 | +| ir.cpp:2416:18:2416:38 | Address | &:r2416_2 | +| ir.cpp:2416:18:2416:38 | Address | &:r2416_2 | +| ir.cpp:2416:18:2416:38 | Address | &:r2416_2 | +| ir.cpp:2416:18:2416:38 | Arg(this) | this:r2416_2 | +| ir.cpp:2416:18:2416:38 | Arg(this) | this:r2416_2 | +| ir.cpp:2416:18:2416:38 | CallTarget | func:r2416_4 | +| ir.cpp:2416:18:2416:38 | ChiPartial | partial:m2416_6 | +| ir.cpp:2416:18:2416:38 | ChiPartial | partial:m2416_8 | +| ir.cpp:2416:18:2416:38 | ChiPartial | partial:m2416_15 | +| ir.cpp:2416:18:2416:38 | ChiTotal | total:m2411_13 | +| ir.cpp:2416:18:2416:38 | ChiTotal | total:m2416_3 | +| ir.cpp:2416:18:2416:38 | ChiTotal | total:m2416_9 | +| ir.cpp:2416:18:2416:38 | SideEffect | m2416_9 | +| ir.cpp:2416:18:2416:38 | SideEffect | ~m2411_13 | +| ir.cpp:2416:40:2416:44 | CallTarget | func:r2416_10 | +| ir.cpp:2416:40:2416:44 | ChiPartial | partial:m2416_12 | +| ir.cpp:2416:40:2416:44 | ChiTotal | total:m2416_7 | +| ir.cpp:2416:40:2416:44 | SideEffect | ~m2416_7 | +| ir.cpp:2416:40:2416:44 | StoreValue | r2416_11 | +| ir.cpp:2416:54:2416:54 | Address | &:r2416_58 | +| ir.cpp:2416:58:2416:58 | Address | &:r2416_32 | +| ir.cpp:2416:58:2416:58 | Address | &:r2416_38 | +| ir.cpp:2416:58:2416:58 | Address | &:r2416_61 | +| ir.cpp:2416:58:2416:58 | Address | &:r2416_66 | +| ir.cpp:2416:58:2416:58 | Address | &:r2416_66 | +| ir.cpp:2416:58:2416:58 | Arg(this) | this:r0_2 | +| ir.cpp:2416:58:2416:58 | Arg(this) | this:r0_5 | +| ir.cpp:2416:58:2416:58 | Arg(this) | this:r0_7 | +| ir.cpp:2416:58:2416:58 | Arg(this) | this:r0_8 | +| ir.cpp:2416:58:2416:58 | Arg(this) | this:r0_15 | +| ir.cpp:2416:58:2416:58 | Arg(this) | this:r2416_66 | +| ir.cpp:2416:58:2416:58 | CallTarget | func:r2416_34 | +| ir.cpp:2416:58:2416:58 | CallTarget | func:r2416_40 | +| ir.cpp:2416:58:2416:58 | CallTarget | func:r2416_46 | +| ir.cpp:2416:58:2416:58 | CallTarget | func:r2416_47 | +| ir.cpp:2416:58:2416:58 | CallTarget | func:r2416_60 | +| ir.cpp:2416:58:2416:58 | CallTarget | func:r2416_67 | +| ir.cpp:2416:58:2416:58 | ChiPartial | partial:m2416_50 | +| ir.cpp:2416:58:2416:58 | ChiPartial | partial:m2416_52 | +| ir.cpp:2416:58:2416:58 | ChiPartial | partial:m2416_55 | +| ir.cpp:2416:58:2416:58 | ChiPartial | partial:m2416_62 | +| ir.cpp:2416:58:2416:58 | ChiPartial | partial:m2416_69 | +| ir.cpp:2416:58:2416:58 | ChiPartial | partial:m2416_72 | +| ir.cpp:2416:58:2416:58 | ChiTotal | total:m0_9 | +| ir.cpp:2416:58:2416:58 | ChiTotal | total:m2416_43 | +| ir.cpp:2416:58:2416:58 | ChiTotal | total:m2416_44 | +| ir.cpp:2416:58:2416:58 | ChiTotal | total:m2416_51 | +| ir.cpp:2416:58:2416:58 | ChiTotal | total:m2416_56 | +| ir.cpp:2416:58:2416:58 | ChiTotal | total:m2416_63 | +| ir.cpp:2416:58:2416:58 | Condition | r2416_54 | +| ir.cpp:2416:58:2416:58 | Load | m2416_30 | +| ir.cpp:2416:58:2416:58 | Load | m2416_30 | +| ir.cpp:2416:58:2416:58 | Phi | from 9:m2416_36 | +| ir.cpp:2416:58:2416:58 | Phi | from 9:~m2416_26 | +| ir.cpp:2416:58:2416:58 | Phi | from 11:m2416_73 | +| ir.cpp:2416:58:2416:58 | Phi | from 11:~m2416_70 | +| ir.cpp:2416:58:2416:58 | SideEffect | m2416_43 | +| ir.cpp:2416:58:2416:58 | SideEffect | ~m2416_44 | +| ir.cpp:2416:58:2416:58 | SideEffect | ~m2416_51 | +| ir.cpp:2416:58:2416:58 | SideEffect | ~m2416_56 | +| ir.cpp:2416:58:2416:58 | SideEffect | ~m2416_63 | +| ir.cpp:2416:58:2416:58 | StoreValue | r2416_35 | +| ir.cpp:2416:58:2416:58 | StoreValue | r2416_41 | +| ir.cpp:2416:58:2416:58 | Unary | r2416_33 | +| ir.cpp:2416:58:2416:58 | Unary | r2416_39 | +| ir.cpp:2416:58:2416:58 | Unary | r2416_45 | +| ir.cpp:2416:58:2416:58 | Unary | r2416_48 | +| ir.cpp:2416:58:2416:58 | Unary | r2416_59 | +| ir.cpp:2416:58:2416:58 | Unary | r2416_68 | +| ir.cpp:2416:58:2416:77 | Address | &:r2416_19 | +| ir.cpp:2416:58:2416:77 | Address | &:r2416_19 | +| ir.cpp:2416:58:2416:77 | Arg(this) | this:r2416_19 | +| ir.cpp:2416:58:2416:77 | CallTarget | func:r2416_21 | +| ir.cpp:2416:58:2416:77 | ChiPartial | partial:m2416_25 | +| ir.cpp:2416:58:2416:77 | ChiPartial | partial:m2416_27 | +| ir.cpp:2416:58:2416:77 | ChiTotal | total:m2416_13 | +| ir.cpp:2416:58:2416:77 | ChiTotal | total:m2416_20 | +| ir.cpp:2416:58:2416:77 | SideEffect | ~m2416_13 | +| ir.cpp:2416:58:2416:77 | StoreValue | r2416_29 | +| ir.cpp:2416:58:2416:77 | Unary | r2416_19 | +| ir.cpp:2416:58:2416:78 | Load | ~m2416_63 | +| ir.cpp:2416:58:2416:78 | StoreValue | r2416_64 | +| ir.cpp:2416:76:2416:76 | Address | &:r2416_22 | +| ir.cpp:2416:76:2416:76 | Arg(0) | 0:r2416_23 | +| ir.cpp:2416:76:2416:76 | Load | m2416_17 | +| ir.cpp:2417:9:2417:9 | Address | &:r2417_4 | +| ir.cpp:2417:9:2417:9 | Address | &:r2417_4 | +| ir.cpp:2417:9:2417:9 | Load | m2416_65 | +| ir.cpp:2417:9:2417:9 | Unary | r2417_5 | +| ir.cpp:2417:9:2417:14 | Left | r2417_6 | +| ir.cpp:2417:9:2417:14 | StoreValue | r2417_8 | +| ir.cpp:2417:9:2417:14 | Unary | r2417_7 | +| ir.cpp:2417:14:2417:14 | Address | &:r2417_1 | +| ir.cpp:2417:14:2417:14 | Load | m2416_17 | +| ir.cpp:2417:14:2417:14 | Right | r2417_3 | +| ir.cpp:2417:14:2417:14 | Unary | r2417_2 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | 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 b721a11e484..7698e996e12 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -14005,6 +14005,260 @@ ir.cpp: # 2392| v2392_6(void) = AliasedUse : ~m? # 2392| v2392_7(void) = ExitFunction : +# 2396| void initialization_with_temp_destructor() +# 2396| Block 0 +# 2396| v2396_1(void) = EnterFunction : +# 2396| mu2396_2(unknown) = AliasedDefinition : +# 2396| mu2396_3(unknown) = InitializeNonLocal : +# 2397| r2397_1(glval<char>) = VariableAddress[x] : +# 2397| r2397_2(glval<ClassWithDestructor>) = VariableAddress[#temp2397:18] : +# 2397| mu2397_3(ClassWithDestructor) = Uninitialized[#temp2397:18] : &:r2397_2 +# 2397| r2397_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2397| v2397_5(void) = Call[ClassWithDestructor] : func:r2397_4, this:r2397_2 +# 2397| mu2397_6(unknown) = ^CallSideEffect : ~m? +# 2397| mu2397_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2397_2 +# 2397| r2397_8(glval<unknown>) = FunctionAddress[get_x] : +# 2397| r2397_9(char) = Call[get_x] : func:r2397_8, this:r2397_2 +# 2397| mu2397_10(unknown) = ^CallSideEffect : ~m? +# 2397| v2397_11(void) = ^IndirectReadSideEffect[-1] : &:r2397_2, ~m? +# 2397| mu2397_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2397_2 +# 2397| mu2397_13(char) = Store[x] : &:r2397_1, r2397_9 +# 2397| r2397_14(glval<char>) = VariableAddress[x] : +# 2397| r2397_15(char) = Load[x] : &:r2397_14, ~m? +# 2397| r2397_16(char) = Constant[0] : +# 2397| r2397_17(bool) = CompareNE : r2397_15, r2397_16 +# 2397| r2397_18(bool) = CopyValue : r2397_17 +# 2397| v2397_19(void) = ConditionalBranch : r2397_18 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2398| Block 1 +# 2398| r2398_1(glval<char>) = VariableAddress[x] : +# 2398| r2398_2(char) = Load[x] : &:r2398_1, ~m? +# 2398| r2398_3(char) = Constant[1] : +# 2398| r2398_4(char) = Add : r2398_2, r2398_3 +# 2398| mu2398_5(char) = Store[x] : &:r2398_1, r2398_4 +#-----| Goto -> Block 2 + +# 2400| Block 2 +# 2400| r2400_1(glval<char>) = VariableAddress[x] : +# 2400| r2400_2(glval<ClassWithDestructor>) = VariableAddress[#temp2400:18] : +# 2400| mu2400_3(ClassWithDestructor) = Uninitialized[#temp2400:18] : &:r2400_2 +# 2400| r2400_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2400| v2400_5(void) = Call[ClassWithDestructor] : func:r2400_4, this:r2400_2 +# 2400| mu2400_6(unknown) = ^CallSideEffect : ~m? +# 2400| mu2400_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2400_2 +# 2400| r2400_8(glval<unknown>) = FunctionAddress[get_x] : +# 2400| r2400_9(char) = Call[get_x] : func:r2400_8, this:r2400_2 +# 2400| mu2400_10(unknown) = ^CallSideEffect : ~m? +# 2400| v2400_11(void) = ^IndirectReadSideEffect[-1] : &:r2400_2, ~m? +# 2400| mu2400_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2400_2 +# 2400| mu2400_13(char) = Store[x] : &:r2400_1, r2400_9 +# 2400| r2400_14(glval<char>) = VariableAddress[x] : +# 2400| r2400_15(char) = Load[x] : &:r2400_14, ~m? +# 2400| r2400_16(char) = Constant[0] : +# 2400| r2400_17(bool) = CompareNE : r2400_15, r2400_16 +# 2400| v2400_18(void) = ConditionalBranch : r2400_17 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 2401| Block 3 +# 2401| r2401_1(glval<char>) = VariableAddress[x] : +# 2401| r2401_2(char) = Load[x] : &:r2401_1, ~m? +# 2401| r2401_3(char) = Constant[1] : +# 2401| r2401_4(char) = Add : r2401_2, r2401_3 +# 2401| mu2401_5(char) = Store[x] : &:r2401_1, r2401_4 +#-----| Goto -> Block 4 + +# 2403| Block 4 +# 2403| r2403_1(glval<char>) = VariableAddress[x] : +# 2403| r2403_2(glval<ClassWithDestructor>) = VariableAddress[#temp2403:28] : +# 2403| mu2403_3(ClassWithDestructor) = Uninitialized[#temp2403:28] : &:r2403_2 +# 2403| r2403_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2403| v2403_5(void) = Call[ClassWithDestructor] : func:r2403_4, this:r2403_2 +# 2403| mu2403_6(unknown) = ^CallSideEffect : ~m? +# 2403| mu2403_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2403_2 +# 2403| r2403_8(glval<unknown>) = FunctionAddress[get_x] : +# 2403| r2403_9(char) = Call[get_x] : func:r2403_8, this:r2403_2 +# 2403| mu2403_10(unknown) = ^CallSideEffect : ~m? +# 2403| v2403_11(void) = ^IndirectReadSideEffect[-1] : &:r2403_2, ~m? +# 2403| mu2403_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2403_2 +# 2403| mu2403_13(char) = Store[x] : &:r2403_1, r2403_9 +# 2403| r2403_14(bool) = Constant[1] : +# 2403| v2403_15(void) = ConditionalBranch : r2403_14 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 2404| Block 5 +# 2404| r2404_1(glval<char>) = VariableAddress[x] : +# 2404| r2404_2(char) = Load[x] : &:r2404_1, ~m? +# 2404| r2404_3(char) = Constant[1] : +# 2404| r2404_4(char) = Add : r2404_2, r2404_3 +# 2404| mu2404_5(char) = Store[x] : &:r2404_1, r2404_4 +#-----| Goto -> Block 6 + +# 2406| Block 6 +# 2406| r2406_1(glval<char>) = VariableAddress[x] : +# 2406| r2406_2(glval<ClassWithDestructor>) = VariableAddress[#temp2406:21] : +# 2406| mu2406_3(ClassWithDestructor) = Uninitialized[#temp2406:21] : &:r2406_2 +# 2406| r2406_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2406| v2406_5(void) = Call[ClassWithDestructor] : func:r2406_4, this:r2406_2 +# 2406| mu2406_6(unknown) = ^CallSideEffect : ~m? +# 2406| mu2406_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2406_2 +# 2406| r2406_8(glval<unknown>) = FunctionAddress[get_x] : +# 2406| r2406_9(char) = Call[get_x] : func:r2406_8, this:r2406_2 +# 2406| mu2406_10(unknown) = ^CallSideEffect : ~m? +# 2406| v2406_11(void) = ^IndirectReadSideEffect[-1] : &:r2406_2, ~m? +# 2406| mu2406_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2406_2 +# 2406| mu2406_13(char) = Store[x] : &:r2406_1, r2406_9 +# 2406| r2406_14(glval<char>) = VariableAddress[x] : +# 2406| r2406_15(char) = Load[x] : &:r2406_14, ~m? +# 2406| r2406_16(int) = Convert : r2406_15 +# 2406| r2406_17(int) = CopyValue : r2406_16 +# 2406| v2406_18(void) = Switch : r2406_17 +#-----| Case[97] -> Block 7 +#-----| Default -> Block 8 + +# 2407| Block 7 +# 2407| v2407_1(void) = NoOp : +# 2408| r2408_1(glval<char>) = VariableAddress[x] : +# 2408| r2408_2(char) = Load[x] : &:r2408_1, ~m? +# 2408| r2408_3(char) = Constant[1] : +# 2408| r2408_4(char) = Add : r2408_2, r2408_3 +# 2408| mu2408_5(char) = Store[x] : &:r2408_1, r2408_4 +#-----| Goto -> Block 8 + +# 2411| Block 8 +# 2411| r2411_1(glval<char>) = VariableAddress[x] : +# 2411| r2411_2(glval<ClassWithDestructor>) = VariableAddress[#temp2411:21] : +# 2411| mu2411_3(ClassWithDestructor) = Uninitialized[#temp2411:21] : &:r2411_2 +# 2411| r2411_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2411| v2411_5(void) = Call[ClassWithDestructor] : func:r2411_4, this:r2411_2 +# 2411| mu2411_6(unknown) = ^CallSideEffect : ~m? +# 2411| mu2411_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2411_2 +# 2411| r2411_8(glval<unknown>) = FunctionAddress[get_x] : +# 2411| r2411_9(char) = Call[get_x] : func:r2411_8, this:r2411_2 +# 2411| mu2411_10(unknown) = ^CallSideEffect : ~m? +# 2411| v2411_11(void) = ^IndirectReadSideEffect[-1] : &:r2411_2, ~m? +# 2411| mu2411_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2411_2 +# 2411| mu2411_13(char) = Store[x] : &:r2411_1, r2411_9 +# 2411| r2411_14(glval<char>) = VariableAddress[x] : +# 2411| r2411_15(char) = Load[x] : &:r2411_14, ~m? +# 2411| r2411_16(int) = Convert : r2411_15 +# 2411| v2411_17(void) = Switch : r2411_16 +#-----| Case[97] -> Block 9 +#-----| Default -> Block 10 + +# 2412| Block 9 +# 2412| v2412_1(void) = NoOp : +# 2413| r2413_1(glval<char>) = VariableAddress[x] : +# 2413| r2413_2(char) = Load[x] : &:r2413_1, ~m? +# 2413| r2413_3(char) = Constant[1] : +# 2413| r2413_4(char) = Add : r2413_2, r2413_3 +# 2413| mu2413_5(char) = Store[x] : &:r2413_1, r2413_4 +#-----| Goto -> Block 10 + +# 2416| Block 10 +# 2416| r2416_1(glval<char>) = VariableAddress[x] : +# 2416| r2416_2(glval<ClassWithDestructor>) = VariableAddress[#temp2416:18] : +# 2416| mu2416_3(ClassWithDestructor) = Uninitialized[#temp2416:18] : &:r2416_2 +# 2416| r2416_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] : +# 2416| v2416_5(void) = Call[ClassWithDestructor] : func:r2416_4, this:r2416_2 +# 2416| mu2416_6(unknown) = ^CallSideEffect : ~m? +# 2416| mu2416_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2416_2 +# 2416| r2416_8(glval<unknown>) = FunctionAddress[get_x] : +# 2416| r2416_9(char) = Call[get_x] : func:r2416_8, this:r2416_2 +# 2416| mu2416_10(unknown) = ^CallSideEffect : ~m? +# 2416| v2416_11(void) = ^IndirectReadSideEffect[-1] : &:r2416_2, ~m? +# 2416| mu2416_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2416_2 +# 2416| mu2416_13(char) = Store[x] : &:r2416_1, r2416_9 +# 2416| r2416_14(glval<vector<char> &&>) = VariableAddress[(__range)] : +# 2416| r2416_15(glval<vector<char>>) = VariableAddress[#temp2416:58] : +# 2416| mu2416_16(vector<char>) = Uninitialized[#temp2416:58] : &:r2416_15 +# 2416| r2416_17(glval<unknown>) = FunctionAddress[vector] : +# 2416| r2416_18(glval<char>) = VariableAddress[x] : +# 2416| r2416_19(char) = Load[x] : &:r2416_18, ~m? +# 2416| v2416_20(void) = Call[vector] : func:r2416_17, this:r2416_15, 0:r2416_19 +# 2416| mu2416_21(unknown) = ^CallSideEffect : ~m? +# 2416| mu2416_22(vector<char>) = ^IndirectMayWriteSideEffect[-1] : &:r2416_15 +# 2416| r2416_23(vector<char> &) = CopyValue : r2416_15 +# 2416| mu2416_24(vector<char> &&) = Store[(__range)] : &:r2416_14, r2416_23 +# 2416| r2416_25(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__begin)] : +# 2416| r2416_26(glval<vector<char> &&>) = VariableAddress[(__range)] : +# 2416| r2416_27(vector<char> &&) = Load[(__range)] : &:r2416_26, ~m? +#-----| r0_1(glval<vector<char>>) = CopyValue : r2416_27 +#-----| r0_2(glval<vector<char>>) = Convert : r0_1 +# 2416| r2416_28(glval<unknown>) = FunctionAddress[begin] : +# 2416| r2416_29(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Call[begin] : func:r2416_28, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? +# 2416| mu2416_30(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Store[(__begin)] : &:r2416_25, r2416_29 +# 2416| r2416_31(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__end)] : +# 2416| r2416_32(glval<vector<char> &&>) = VariableAddress[(__range)] : +# 2416| r2416_33(vector<char> &&) = Load[(__range)] : &:r2416_32, ~m? +#-----| r0_4(glval<vector<char>>) = CopyValue : r2416_33 +#-----| r0_5(glval<vector<char>>) = Convert : r0_4 +# 2416| r2416_34(glval<unknown>) = FunctionAddress[end] : +# 2416| r2416_35(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Call[end] : func:r2416_34, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? +# 2416| mu2416_36(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Store[(__end)] : &:r2416_31, r2416_35 +#-----| Goto -> Block 11 + +# 2416| Block 11 +# 2416| r2416_37(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__begin)] : +#-----| r0_7(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = Convert : r2416_37 +# 2416| r2416_38(glval<unknown>) = FunctionAddress[operator!=] : +#-----| r0_8(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[#temp0:0] : +#-----| mu0_9(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Uninitialized[#temp0:0] : &:r0_8 +# 2416| r2416_39(glval<unknown>) = FunctionAddress[iterator] : +# 2416| r2416_40(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__end)] : +#-----| r0_10(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = Convert : r2416_40 +#-----| r0_11(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> &) = CopyValue : r0_10 +# 2416| v2416_41(void) = Call[iterator] : func:r2416_39, this:r0_8, 0:r0_11 +# 2416| mu2416_42(unknown) = ^CallSideEffect : ~m? +#-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? +# 2416| mu2416_43(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +#-----| r0_13(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = Load[#temp0:0] : &:r0_8, ~m? +# 2416| r2416_44(bool) = Call[operator!=] : func:r2416_38, this:r0_7, 0:r0_13 +# 2416| mu2416_45(unknown) = ^CallSideEffect : ~m? +#-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? +# 2416| v2416_46(void) = ConditionalBranch : r2416_44 +#-----| False -> Block 13 +#-----| True -> Block 12 + +# 2416| Block 12 +# 2416| r2416_47(glval<char>) = VariableAddress[y] : +# 2416| r2416_48(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__begin)] : +#-----| r0_15(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = Convert : r2416_48 +# 2416| r2416_49(glval<unknown>) = FunctionAddress[operator*] : +# 2416| r2416_50(char &) = Call[operator*] : func:r2416_49, this:r0_15 +# 2416| mu2416_51(unknown) = ^CallSideEffect : ~m? +#-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? +# 2416| r2416_52(char) = Load[?] : &:r2416_50, ~m? +# 2416| mu2416_53(char) = Store[y] : &:r2416_47, r2416_52 +# 2417| r2417_1(glval<char>) = VariableAddress[x] : +# 2417| r2417_2(char) = Load[x] : &:r2417_1, ~m? +# 2417| r2417_3(int) = Convert : r2417_2 +# 2417| r2417_4(glval<char>) = VariableAddress[y] : +# 2417| r2417_5(char) = Load[y] : &:r2417_4, ~m? +# 2417| r2417_6(int) = Convert : r2417_5 +# 2417| r2417_7(int) = Add : r2417_6, r2417_3 +# 2417| r2417_8(char) = Convert : r2417_7 +# 2417| mu2417_9(char) = Store[y] : &:r2417_4, r2417_8 +# 2416| r2416_54(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = VariableAddress[(__begin)] : +# 2416| r2416_55(glval<unknown>) = FunctionAddress[operator++] : +# 2416| r2416_56(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &> &) = Call[operator++] : func:r2416_55, this:r2416_54 +# 2416| mu2416_57(unknown) = ^CallSideEffect : ~m? +# 2416| v2416_58(void) = ^IndirectReadSideEffect[-1] : &:r2416_54, ~m? +# 2416| mu2416_59(iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>) = ^IndirectMayWriteSideEffect[-1] : &:r2416_54 +# 2416| r2416_60(glval<iterator<random_access_iterator_tag, char, ptrdiff_t, char *, char &>>) = CopyValue : r2416_56 +#-----| Goto (back edge) -> Block 11 + +# 2418| Block 13 +# 2418| v2418_1(void) = NoOp : +# 2396| v2396_4(void) = ReturnVoid : +# 2396| v2396_5(void) = AliasedUse : ~m? +# 2396| v2396_6(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 From 9da8cb1165b3564077262e3a9d92d02e49c112fb Mon Sep 17 00:00:00 2001 From: Tamas Vajk <tamasvajk@github.com> Date: Thu, 21 Mar 2024 09:44:12 +0100 Subject: [PATCH 301/309] C#: Simplify the output of `cs/wrong-compareto-signature` to remove entity locations --- csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql | 5 ++--- .../IncorrectCompareToSignature.expected | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql b/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql index 9f9eff6f1f6..cf3298b09ea 100644 --- a/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql +++ b/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql @@ -40,6 +40,5 @@ where compareToMethod(m, actualParamType) and not implementsIComparable(declaringType, actualParamType) select m, - "The parameter of this 'CompareTo' method is of type $@, but $@ does not implement 'IComparable<$@>'.", - actualParamType, actualParamType.getName(), declaringType, declaringType.getName(), - actualParamType, actualParamType.getName() + "The parameter of this 'CompareTo' method is of type '" + actualParamType.getName() + + "', but the declaring type does not implement 'IComparable<" + actualParamType.getName() + ">'." diff --git a/csharp/ql/test/query-tests/API Abuse/IncorrectCompareToSignature/IncorrectCompareToSignature.expected b/csharp/ql/test/query-tests/API Abuse/IncorrectCompareToSignature/IncorrectCompareToSignature.expected index 46561c8184d..2b0e89de399 100644 --- a/csharp/ql/test/query-tests/API Abuse/IncorrectCompareToSignature/IncorrectCompareToSignature.expected +++ b/csharp/ql/test/query-tests/API Abuse/IncorrectCompareToSignature/IncorrectCompareToSignature.expected @@ -1,2 +1,2 @@ -| IncorrectCompareToSignature.cs:5:16:5:24 | CompareTo | The parameter of this 'CompareTo' method is of type $@, but $@ does not implement 'IComparable<$@>'. | IncorrectCompareToSignature.cs:3:10:3:10 | T | T | IncorrectCompareToSignature.cs:3:7:3:11 | C1`1 | C1`1 | IncorrectCompareToSignature.cs:3:10:3:10 | T | T | -| IncorrectCompareToSignatureBad.cs:5:16:5:24 | CompareTo | The parameter of this 'CompareTo' method is of type $@, but $@ does not implement 'IComparable<$@>'. | IncorrectCompareToSignatureBad.cs:3:7:3:9 | Bad | Bad | IncorrectCompareToSignatureBad.cs:3:7:3:9 | Bad | Bad | IncorrectCompareToSignatureBad.cs:3:7:3:9 | Bad | Bad | +| IncorrectCompareToSignature.cs:5:16:5:24 | CompareTo | The parameter of this 'CompareTo' method is of type 'T', but the declaring type does not implement 'IComparable<T>'. | +| IncorrectCompareToSignatureBad.cs:5:16:5:24 | CompareTo | The parameter of this 'CompareTo' method is of type 'Bad', but the declaring type does not implement 'IComparable<Bad>'. | From d0c09f43a9aeeb58400077379251caa347ce8243 Mon Sep 17 00:00:00 2001 From: Tamas Vajk <tamasvajk@github.com> Date: Thu, 21 Mar 2024 11:13:42 +0100 Subject: [PATCH 302/309] Add change note --- .../change-notes/2024-03-21-change-compareto-signature.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 csharp/ql/src/change-notes/2024-03-21-change-compareto-signature.md diff --git a/csharp/ql/src/change-notes/2024-03-21-change-compareto-signature.md b/csharp/ql/src/change-notes/2024-03-21-change-compareto-signature.md new file mode 100644 index 00000000000..026321ea9af --- /dev/null +++ b/csharp/ql/src/change-notes/2024-03-21-change-compareto-signature.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* The alert message of `cs/wrong-compareto-signature` has been changed to remove unnecessary element references. + From 9d655520cc083cf888c80ebe43ef5d43649864dc Mon Sep 17 00:00:00 2001 From: Tamas Vajk <tamasvajk@github.com> Date: Thu, 21 Mar 2024 11:26:45 +0100 Subject: [PATCH 303/309] Code quality improvement --- csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql b/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql index cf3298b09ea..6f6c17566bf 100644 --- a/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql +++ b/csharp/ql/src/API Abuse/IncorrectCompareToSignature.ql @@ -33,12 +33,13 @@ predicate compareToMethod(Method m, Type paramType) { paramType = m.getAParameter().getType() } -from Method m, RefType declaringType, Type actualParamType +from Method m, RefType declaringType, Type actualParamType, string paramTypeName where m.isSourceDeclaration() and declaringType = m.getDeclaringType() and compareToMethod(m, actualParamType) and - not implementsIComparable(declaringType, actualParamType) + not implementsIComparable(declaringType, actualParamType) and + paramTypeName = actualParamType.getName() select m, - "The parameter of this 'CompareTo' method is of type '" + actualParamType.getName() + - "', but the declaring type does not implement 'IComparable<" + actualParamType.getName() + ">'." + "The parameter of this 'CompareTo' method is of type '" + paramTypeName + + "', but the declaring type does not implement 'IComparable<" + paramTypeName + ">'." From a3ae304dfea10b29a712715a86f1cbbd585c09d3 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Thu, 21 Mar 2024 11:32:23 +0100 Subject: [PATCH 304/309] C++: Handle `getInitializingExpr` in PrintAST --- cpp/ql/lib/semmle/code/cpp/PrintAST.qll | 7 +- .../library-tests/ir/ir/PrintAST.expected | 112 ++++++++++++++++++ 2 files changed, 118 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/PrintAST.qll b/cpp/ql/lib/semmle/code/cpp/PrintAST.qll index fa894a8b0fb..88dce1ce0b4 100644 --- a/cpp/ql/lib/semmle/code/cpp/PrintAST.qll +++ b/cpp/ql/lib/semmle/code/cpp/PrintAST.qll @@ -309,9 +309,12 @@ class ExprNode extends AstNode { override AstNode getChildInternal(int childIndex) { result.getAst() = expr.getChild(childIndex) or + childIndex = max(int index | exists(expr.getChild(index)) or index = 0) + 1 and + result.getAst() = expr.(ConditionDeclExpr).getInitializingExpr() + or exists(int destructorIndex | result.getAst() = expr.getImplicitDestructorCall(destructorIndex) and - childIndex = destructorIndex + max(int index | exists(expr.getChild(index)) or index = 0) + 1 + childIndex = destructorIndex + max(int index | exists(expr.getChild(index)) or index = 0) + 2 ) } @@ -686,6 +689,8 @@ private string getChildAccessorWithoutConversions(Locatable parent, Element chil not namedExprChildPredicates(expr, child, _) and exists(int n | expr.getChild(n) = child and result = "getChild(" + n + ")") or + expr.(ConditionDeclExpr).getInitializingExpr() = child and result = "getInitializingExpr()" + or exists(int n | expr.getImplicitDestructorCall(n) = child and result = "getImplicitDestructorCall(" + n + ")" diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 3c922cd3a5a..ddf5d8b1f5c 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -8812,6 +8812,15 @@ ir.cpp: # 976| getVariableAccess(): [VariableAccess] b # 976| Type = [BoolType] bool # 976| ValueCategory = prvalue(load) +# 976| getInitializingExpr(): [LTExpr] ... < ... +# 976| Type = [BoolType] bool +# 976| ValueCategory = prvalue +# 976| getLesserOperand(): [VariableAccess] x +# 976| Type = [IntType] int +# 976| ValueCategory = prvalue(load) +# 976| getGreaterOperand(): [VariableAccess] y +# 976| Type = [IntType] int +# 976| ValueCategory = prvalue(load) # 976| getThen(): [BlockStmt] { ... } # 977| getStmt(0): [ExprStmt] ExprStmt # 977| getExpr(): [AssignExpr] ... = ... @@ -8831,6 +8840,15 @@ ir.cpp: # 979| getVariableAccess(): [VariableAccess] z # 979| Type = [IntType] int # 979| ValueCategory = prvalue(load) +# 979| getInitializingExpr(): [AddExpr] ... + ... +# 979| Type = [IntType] int +# 979| ValueCategory = prvalue +# 979| getLeftOperand(): [VariableAccess] x +# 979| Type = [IntType] int +# 979| ValueCategory = prvalue(load) +# 979| getRightOperand(): [VariableAccess] y +# 979| Type = [IntType] int +# 979| ValueCategory = prvalue(load) # 979| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 979| Conversion = [BoolConversion] conversion to bool # 979| Type = [BoolType] bool @@ -8854,6 +8872,12 @@ ir.cpp: # 982| getVariableAccess(): [VariableAccess] p # 982| Type = [IntPointerType] int * # 982| ValueCategory = prvalue(load) +# 982| getInitializingExpr(): [AddressOfExpr] & ... +# 982| Type = [IntPointerType] int * +# 982| ValueCategory = prvalue +# 982| getOperand(): [VariableAccess] x +# 982| Type = [IntType] int +# 982| ValueCategory = lvalue # 982| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 982| Conversion = [BoolConversion] conversion to bool # 982| Type = [BoolType] bool @@ -8888,6 +8912,15 @@ ir.cpp: # 988| getVariableAccess(): [VariableAccess] b # 988| Type = [BoolType] bool # 988| ValueCategory = prvalue(load) +# 988| getInitializingExpr(): [LTExpr] ... < ... +# 988| Type = [BoolType] bool +# 988| ValueCategory = prvalue +# 988| getLesserOperand(): [VariableAccess] x +# 988| Type = [IntType] int +# 988| ValueCategory = prvalue(load) +# 988| getGreaterOperand(): [VariableAccess] y +# 988| Type = [IntType] int +# 988| ValueCategory = prvalue(load) # 988| getStmt(): [BlockStmt] { ... } # 990| getStmt(1): [WhileStmt] while (...) ... # 990| getCondition(): [ConditionDeclExpr] (condition decl) @@ -8896,6 +8929,15 @@ ir.cpp: # 990| getVariableAccess(): [VariableAccess] z # 990| Type = [IntType] int # 990| ValueCategory = prvalue(load) +# 990| getInitializingExpr(): [AddExpr] ... + ... +# 990| Type = [IntType] int +# 990| ValueCategory = prvalue +# 990| getLeftOperand(): [VariableAccess] x +# 990| Type = [IntType] int +# 990| ValueCategory = prvalue(load) +# 990| getRightOperand(): [VariableAccess] y +# 990| Type = [IntType] int +# 990| ValueCategory = prvalue(load) # 990| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 990| Conversion = [BoolConversion] conversion to bool # 990| Type = [BoolType] bool @@ -8908,6 +8950,12 @@ ir.cpp: # 992| getVariableAccess(): [VariableAccess] p # 992| Type = [IntPointerType] int * # 992| ValueCategory = prvalue(load) +# 992| getInitializingExpr(): [AddressOfExpr] & ... +# 992| Type = [IntPointerType] int * +# 992| ValueCategory = prvalue +# 992| getOperand(): [VariableAccess] x +# 992| Type = [IntType] int +# 992| ValueCategory = lvalue # 992| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 992| Conversion = [BoolConversion] conversion to bool # 992| Type = [BoolType] bool @@ -14780,6 +14828,9 @@ ir.cpp: # 1816| getVariableAccess(): [VariableAccess] w2 # 1816| Type = [IntType] int # 1816| ValueCategory = prvalue(load) +# 1816| getInitializingExpr(): [VariableAccess] w +# 1816| Type = [IntType] int +# 1816| ValueCategory = prvalue(load) # 1816| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 1816| Conversion = [BoolConversion] conversion to bool # 1816| Type = [BoolType] bool @@ -14815,6 +14866,9 @@ ir.cpp: # 1820| getVariableAccess(): [VariableAccess] v2 # 1820| Type = [IntType] int # 1820| ValueCategory = prvalue(load) +# 1820| getInitializingExpr(): [VariableAccess] v +# 1820| Type = [IntType] int +# 1820| ValueCategory = prvalue(load) # 1820| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 1820| Conversion = [BoolConversion] conversion to bool # 1820| Type = [BoolType] bool @@ -14875,6 +14929,9 @@ ir.cpp: # 1829| getVariableAccess(): [VariableAccess] z2 # 1829| Type = [IntType] int # 1829| ValueCategory = prvalue(load) +# 1829| getInitializingExpr(): [VariableAccess] z +# 1829| Type = [IntType] int +# 1829| ValueCategory = prvalue(load) # 1829| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 1829| Conversion = [BoolConversion] conversion to bool # 1829| Type = [BoolType] bool @@ -14991,6 +15048,9 @@ ir.cpp: # 1846| getVariableAccess(): [VariableAccess] w2 # 1846| Type = [IntType] int # 1846| ValueCategory = prvalue(load) +# 1846| getInitializingExpr(): [VariableAccess] w +# 1846| Type = [IntType] int +# 1846| ValueCategory = prvalue(load) # 1846| getStmt(): [BlockStmt] { ... } # 1847| getStmt(0): [SwitchCase] default: # 1848| getStmt(1): [ExprStmt] ExprStmt @@ -15023,6 +15083,9 @@ ir.cpp: # 1851| getVariableAccess(): [VariableAccess] v2 # 1851| Type = [IntType] int # 1851| ValueCategory = prvalue(load) +# 1851| getInitializingExpr(): [VariableAccess] v +# 1851| Type = [IntType] int +# 1851| ValueCategory = prvalue(load) # 1851| getStmt(): [BlockStmt] { ... } # 1852| getStmt(0): [SwitchCase] default: # 1853| getStmt(1): [ExprStmt] ExprStmt @@ -15077,6 +15140,9 @@ ir.cpp: # 1862| getVariableAccess(): [VariableAccess] z2 # 1862| Type = [IntType] int # 1862| ValueCategory = prvalue(load) +# 1862| getInitializingExpr(): [VariableAccess] z +# 1862| Type = [IntType] int +# 1862| ValueCategory = prvalue(load) # 1862| getStmt(): [BlockStmt] { ... } # 1863| getStmt(0): [SwitchCase] default: # 1864| getStmt(1): [ExprStmt] ExprStmt @@ -17048,6 +17114,10 @@ ir.cpp: # 2169| getQualifier(): [VariableAccess] b # 2169| Type = [Struct] HasOperatorBool # 2169| ValueCategory = prvalue(load) +# 2169| getInitializingExpr(): [Literal] 0 +# 2169| Type = [Struct] HasOperatorBool +# 2169| Value = [Literal] 0 +# 2169| ValueCategory = prvalue # 2169| getThen(): [BlockStmt] { ... } # 2170| getStmt(1): [ReturnStmt] return ... # 2172| [CopyAssignmentOperator] ClassWithDestructor& ClassWithDestructor::operator=(ClassWithDestructor const&) @@ -18650,6 +18720,12 @@ ir.cpp: # 2318| getQualifier(): [VariableAccess] B # 2318| Type = [Class] Bool # 2318| ValueCategory = prvalue(load) +# 2318| getInitializingExpr(): [ConstructorCall] call to Bool +# 2318| Type = [VoidType] void +# 2318| ValueCategory = prvalue +# 2318| getArgument(0): [VariableAccess] b +# 2318| Type = [BoolType] bool +# 2318| ValueCategory = prvalue(load) # 2318| getThen(): [BlockStmt] { ... } # 2319| getStmt(0): [DeclStmt] declaration # 2319| getDeclarationEntry(0): [VariableDeclarationEntry] definition of s1 @@ -18731,6 +18807,12 @@ ir.cpp: # 2334| getQualifier(): [VariableAccess] B # 2334| Type = [Class] Bool # 2334| ValueCategory = prvalue(load) +# 2334| getInitializingExpr(): [ConstructorCall] call to Bool +# 2334| Type = [VoidType] void +# 2334| ValueCategory = prvalue +# 2334| getArgument(0): [VariableAccess] b +# 2334| Type = [BoolType] bool +# 2334| ValueCategory = prvalue(load) # 2334| getStmt(): [BlockStmt] { ... } # 2335| getStmt(0): [ExprStmt] ExprStmt # 2335| getExpr(): [AssignExpr] ... = ... @@ -19678,6 +19760,21 @@ ir.cpp: # 2397| getVariableAccess(): [VariableAccess] x # 2397| Type = [PlainCharType] char # 2397| ValueCategory = prvalue(load) +# 2397| getInitializingExpr(): [FunctionCall] call to get_x +# 2397| Type = [PlainCharType] char +# 2397| ValueCategory = prvalue +# 2397| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2397| Type = [VoidType] void +# 2397| ValueCategory = prvalue +# 2397| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2397| Type = [VoidType] void +# 2397| ValueCategory = prvalue +# 2397| getQualifier(): [ReuseExpr] reuse of temporary object +# 2397| Type = [Class] ClassWithDestructor +# 2397| ValueCategory = xvalue +# 2397| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2397| Type = [Class] ClassWithDestructor +# 2397| ValueCategory = prvalue(load) # 2397| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 2397| Conversion = [BoolConversion] conversion to bool # 2397| Type = [BoolType] bool @@ -19749,6 +19846,21 @@ ir.cpp: # 2406| getVariableAccess(): [VariableAccess] x # 2406| Type = [PlainCharType] char # 2406| ValueCategory = prvalue(load) +# 2406| getInitializingExpr(): [FunctionCall] call to get_x +# 2406| Type = [PlainCharType] char +# 2406| ValueCategory = prvalue +# 2406| getQualifier(): [ConstructorCall] call to ClassWithDestructor +# 2406| Type = [VoidType] void +# 2406| ValueCategory = prvalue +# 2406| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2406| Type = [VoidType] void +# 2406| ValueCategory = prvalue +# 2406| getQualifier(): [ReuseExpr] reuse of temporary object +# 2406| Type = [Class] ClassWithDestructor +# 2406| ValueCategory = xvalue +# 2406| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object +# 2406| Type = [Class] ClassWithDestructor +# 2406| ValueCategory = prvalue(load) # 2406| getVariableAccess().getFullyConverted(): [CStyleCast] (int)... # 2406| Conversion = [IntegralConversion] integral conversion # 2406| Type = [IntType] int From 4c4ebd907e51be023d59c50792a3047aec46f6dd Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Thu, 21 Mar 2024 11:54:29 +0100 Subject: [PATCH 305/309] C++: Update more expected test results --- cpp/ql/test/examples/expressions/PrintAST.expected | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cpp/ql/test/examples/expressions/PrintAST.expected b/cpp/ql/test/examples/expressions/PrintAST.expected index 86aa1e36414..4aefbff5c55 100644 --- a/cpp/ql/test/examples/expressions/PrintAST.expected +++ b/cpp/ql/test/examples/expressions/PrintAST.expected @@ -105,10 +105,24 @@ ConditionDecl.cpp: # 3| getVariableAccess(): [VariableAccess] k # 3| Type = [IntType] int # 3| ValueCategory = prvalue(load) +# 3| getInitializingExpr(): [LTExpr] ... < ... +# 3| Type = [BoolType] bool +# 3| ValueCategory = prvalue +# 3| getLesserOperand(): [VariableAccess] j +# 3| Type = [IntType] int +# 3| ValueCategory = prvalue(load) +# 3| getGreaterOperand(): [Literal] 5 +# 3| Type = [IntType] int +# 3| Value = [Literal] 5 +# 3| ValueCategory = prvalue # 3| getVariableAccess().getFullyConverted(): [CStyleCast] (bool)... # 3| Conversion = [BoolConversion] conversion to bool # 3| Type = [BoolType] bool # 3| ValueCategory = prvalue +# 3| getInitializingExpr().getFullyConverted(): [CStyleCast] (int)... +# 3| Conversion = [IntegralConversion] integral conversion +# 3| Type = [IntType] int +# 3| ValueCategory = prvalue # 3| getStmt(): [BlockStmt] { ... } # 5| getStmt(2): [ReturnStmt] return ... ConstructorCall.cpp: From 79094e4b89dfcc9e9d6180b64285ec46ae52994d Mon Sep 17 00:00:00 2001 From: Cornelius Riemenschneider <cornelius@github.com> Date: Thu, 21 Mar 2024 13:51:03 +0000 Subject: [PATCH 306/309] Swift genrule: Replace local with no-sandbox. This allows the bazel cache to cache this genrule invocation. It shouldn't depend on system-specific binaries, so I believe this is correct. This is the only part of our build where we otherwise need to recompute parts after pulling in a full cache. --- swift/third_party/BUILD.swift-toolchain-linux.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swift/third_party/BUILD.swift-toolchain-linux.bazel b/swift/third_party/BUILD.swift-toolchain-linux.bazel index 7c00eae382a..8125d4a0448 100644 --- a/swift/third_party/BUILD.swift-toolchain-linux.bazel +++ b/swift/third_party/BUILD.swift-toolchain-linux.bazel @@ -30,7 +30,7 @@ _pm_interface_files = [ srcs = ["%s/%s/%s" % (_strip_prefix, dir, interface)], outs = [module], cmd = "$(location usr/bin/swift-frontend) -compile-module-from-interface $< -o $@ -I $$(dirname $<)", - local = True, + tags = ["no-sandbox"], tools = ["usr/bin/swift-frontend"], ), pkg_files( From 9cc287dff164b27653b60ca6298fbe8faaca02c5 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Thu, 21 Mar 2024 14:45:54 +0100 Subject: [PATCH 307/309] C++: Handle destructors of range-based for-loop initializer statements --- .../library-tests/ir/ir/PrintAST.expected | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index ddf5d8b1f5c..aa703b63af7 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -17357,6 +17357,12 @@ ir.cpp: # 2201| getArgument(0): [VariableAccess] x # 2201| Type = [Class] ClassWithDestructor # 2201| ValueCategory = prvalue(load) +# 2201| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2201| Type = [VoidType] void +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [ReuseExpr] reuse of temporary object +# 2201| Type = [Class] ClassWithDestructor +# 2201| ValueCategory = xvalue # 2201| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 2201| Type = [Class] ClassWithDestructor # 2201| ValueCategory = lvalue @@ -17489,6 +17495,12 @@ ir.cpp: # 2204| getArgument(0): [VariableAccess] x # 2204| Type = [Class] ClassWithDestructor # 2204| ValueCategory = prvalue(load) +# 2204| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2204| Type = [VoidType] void +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [ReuseExpr] reuse of temporary object +# 2204| Type = [Class] ClassWithDestructor +# 2204| ValueCategory = xvalue # 2204| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 2204| Type = [Class] ClassWithDestructor # 2204| ValueCategory = lvalue @@ -17802,6 +17814,12 @@ ir.cpp: # 2215| getArgument(0): [VariableAccess] x # 2215| Type = [Class] ClassWithDestructor # 2215| ValueCategory = prvalue(load) +# 2215| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2215| Type = [VoidType] void +# 2215| ValueCategory = prvalue +# 2215| getQualifier(): [ReuseExpr] reuse of temporary object +# 2215| Type = [Class] ClassWithDestructor +# 2215| ValueCategory = xvalue # 2215| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object # 2215| Type = [Class] ClassWithDestructor # 2215| ValueCategory = lvalue @@ -19933,6 +19951,12 @@ ir.cpp: # 2416| getQualifier(): [ConstructorCall] call to ClassWithDestructor # 2416| Type = [VoidType] void # 2416| ValueCategory = prvalue +# 2416| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2416| Type = [VoidType] void +# 2416| ValueCategory = prvalue +# 2416| getQualifier(): [ReuseExpr] reuse of temporary object +# 2416| Type = [Class] ClassWithDestructor +# 2416| ValueCategory = xvalue # 2416| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2416| Type = [Class] ClassWithDestructor # 2416| ValueCategory = prvalue(load) From 98de4e209b320b778b2c07af9d0ee28c42ef990b Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Thu, 21 Mar 2024 15:43:18 +0100 Subject: [PATCH 308/309] C++: Handle destructors of if and switch initializer statements --- .../test/library-tests/ir/ir/PrintAST.expected | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index aa703b63af7..a6276ecfc5a 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -19815,6 +19815,12 @@ ir.cpp: # 2400| getQualifier(): [ConstructorCall] call to ClassWithDestructor # 2400| Type = [VoidType] void # 2400| ValueCategory = prvalue +# 2400| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2400| Type = [VoidType] void +# 2400| ValueCategory = prvalue +# 2400| getQualifier(): [ReuseExpr] reuse of temporary object +# 2400| Type = [Class] ClassWithDestructor +# 2400| ValueCategory = xvalue # 2400| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2400| Type = [Class] ClassWithDestructor # 2400| ValueCategory = prvalue(load) @@ -19843,6 +19849,12 @@ ir.cpp: # 2403| getQualifier(): [ConstructorCall] call to ClassWithDestructor # 2403| Type = [VoidType] void # 2403| ValueCategory = prvalue +# 2403| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2403| Type = [VoidType] void +# 2403| ValueCategory = prvalue +# 2403| getQualifier(): [ReuseExpr] reuse of temporary object +# 2403| Type = [Class] ClassWithDestructor +# 2403| ValueCategory = xvalue # 2403| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2403| Type = [Class] ClassWithDestructor # 2403| ValueCategory = prvalue(load) @@ -19912,6 +19924,12 @@ ir.cpp: # 2411| getQualifier(): [ConstructorCall] call to ClassWithDestructor # 2411| Type = [VoidType] void # 2411| ValueCategory = prvalue +# 2411| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor +# 2411| Type = [VoidType] void +# 2411| ValueCategory = prvalue +# 2411| getQualifier(): [ReuseExpr] reuse of temporary object +# 2411| Type = [Class] ClassWithDestructor +# 2411| ValueCategory = xvalue # 2411| getQualifier().getFullyConverted(): [TemporaryObjectExpr] temporary object # 2411| Type = [Class] ClassWithDestructor # 2411| ValueCategory = prvalue(load) From 3f0ce98ccbcf677342b4a2de61db41986c1bb3a5 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Fri, 22 Mar 2024 10:22:59 +0100 Subject: [PATCH 309/309] C++: Add destructor test cases for AV Rule 114 --- .../AV Rule 114/AV Rule 114.expected | 1 + .../jsf/4.13 Functions/AV Rule 114/test.cpp | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/AV Rule 114.expected b/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/AV Rule 114.expected index ce056261514..390da977d3f 100644 --- a/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/AV Rule 114.expected +++ b/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/AV Rule 114.expected @@ -10,3 +10,4 @@ | test.cpp:112:1:112:1 | return ... | Function g14 should return a value of type int but does not return a value here | | test.cpp:134:2:134:36 | ExprStmt | Function g16 should return a value of type int but does not return a value here | | test.cpp:141:3:141:37 | ExprStmt | Function g17 should return a value of type int but does not return a value here | +| test.cpp:189:2:189:16 | ExprStmt | Function g23 should return a value of type int but does not return a value here | diff --git a/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/test.cpp b/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/test.cpp index c68ad23805c..c19c5de13f9 100644 --- a/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/test.cpp +++ b/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/test.cpp @@ -170,3 +170,21 @@ int g19(int x) int g21() { g20(); // GOOD } + +class Aborting { +public: + [[noreturn]] + ~Aborting(); + + void a() {}; +}; + +int g22() { + Aborting x; + + x.a(); // GOOD +} + +int g23() { + Aborting().a(); // GOOD [FALSE POSITIVE] +}